idnits 2.17.00 (12 Aug 2021) /tmp/idnits40669/draft-ietf-megaco-merged-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing document type: Expected "INTERNET-DRAFT" in the upper left hand corner of the first page ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity -- however, there's a paragraph with a matching beginning. Boilerplate error? ** The document seems to lack a 1id_guidelines paragraph about the list of current Internet-Drafts. ** The document seems to lack a 1id_guidelines paragraph about the list of Shadow Directories. == The page length should not exceed 58 lines per page, but there was 1 longer page, the longest (page 1) being 9448 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an Authors' Addresses Section. ** There is 1 instance of too long lines in the document, the longest one being 64 characters in excess of 72. == There are 8 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 961 has weird spacing: '...signals are n...' == Line 1174 has weird spacing: '...roperty speci...' == Line 1331 has weird spacing: '...sts for the M...' == Line 1470 has weird spacing: '...ockStep and t...' == Line 2613 has weird spacing: '... be set to "i...' == (9 more instances...) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- Couldn't find a document date in the document -- date freshness check skipped. -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Missing reference section? '1' on line 21 looks like a reference -- Missing reference section? 'ErrorDescriptor' on line 2529 looks like a reference -- Missing reference section? 'ServiceChangeDescriptor' on line 2565 looks like a reference -- Missing reference section? 'RFC2402' on line 3343 looks like a reference -- Missing reference section? 'RFC2406' on line 3297 looks like a reference -- Missing reference section? 'RFC2409' on line 3307 looks like a reference -- Missing reference section? 'RFC 2234' on line 4807 looks like a reference -- Missing reference section? '3' on line 6257 looks like a reference -- Missing reference section? '5' on line 6258 looks like a reference Summary: 7 errors (**), 0 flaws (~~), 8 warnings (==), 12 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Media Gateway Control (Megaco) Working Group Fernando Cuervo 3 Nortel Networks Internet Draft 4 Document: draft-ietf-megaco-merged-01.txt Nancy Greene 5 Category: Standards Track Nortel Networks 6 Christian Huitema 7 May 2000 Telcordia Technologies 8 Abdallah Rayhan 9 Nortel Networks 10 Brian Rosen 11 Marconi 12 John Segers 13 Lucent Technologies 15 Megaco Protocol 17 Status of this Memo 19 This document is an Internet-Draft and is in full conformance with 20 all provisions of Section 10 of RFC2026 [1]. 22 Internet-Drafts are working documents of the Internet Engineering 23 Task Force (IETF), its areas, and its working groups. Note that 24 other groups may also distribute working documents as Internet- 25 Drafts. Internet-Drafts are draft documents valid for a maximum of 26 six months and may be updated, replaced, or obsoleted by other 27 documents at any time. It is inappropriate to use Internet- Drafts 28 as reference material or to cite them other than as "work in 29 progress." 30 The list of current Internet-Drafts can be accessed at 31 http://www.ietf.org/ietf/1id-abstracts.txt 32 The list of Internet-Draft Shadow Directories can be accessed at 33 http://www.ietf.org/shadow.html. 35 Abstract 37 This document reflects the application of the changes proposed in 38 draft-ietf-megaco-errata-03.txt to the base protocol document draft- 39 ietf-megaco-protocol-08.txt, plus a number of editorial changes that 40 do not affect the substance of the document. It thus has common 41 text with the document that is about to be decided by ITU-T Study 42 Group 16 as Recommendation H.248. 44 The protocol presented in this document meets the requirements for a 45 media gateway control protocol as presented in RFC 2805. 47 Rosen et al Standards Track -- Expires Nov 2000 1 48 Megaco Protocol May 2000 50 TABLE OF CONTENTS 52 Abstract..........................................................1 53 TABLE OF CONTENTS.................................................2 54 1. SCOPE..........................................................7 55 2. REFERENCES.....................................................7 56 2.1 Normative references.....................................7 57 2.2 Informative references...................................9 58 3. DEFINITIONS...................................................10 59 4. ABBREVIATIONS.................................................11 60 5. CONVENTIONS...................................................11 61 6. CONNECTION MODEL..............................................11 62 6.1 Contexts................................................14 63 6.1.1 Context Attributes and Descriptors............15 64 6.1.2 Creating, Deleting and Modifying Contexts.....15 65 6.2 Terminations............................................15 66 6.2.1 Termination Dynamics..........................16 67 6.2.2 TerminationIDs................................16 68 6.2.3 Packages......................................17 69 6.2.4 Termination Properties and Descriptors........17 70 6.2.5 Root Termination..............................19 71 7. COMMANDS......................................................19 72 7.1 Descriptors.............................................21 73 7.1.1 Specifying Parameters.........................21 74 7.1.2 Modem Descriptor..............................22 75 7.1.3 Multiplex Descriptor..........................22 76 7.1.4 Media Descriptor..............................22 77 7.1.5 Termination State Descriptor..................22 78 7.1.6 Stream Descriptor.............................23 79 7.1.7 LocalControl Descriptor.......................24 80 7.1.8 Local and Remote Descriptors..................25 81 7.1.9 Events Descriptor.............................27 82 7.1.10 EventBuffer Descriptor.......................30 83 7.1.11 Signals Descriptor...........................30 84 7.1.12 Audit Descriptor.............................32 85 7.1.13 ServiceChange Descriptor.....................32 86 7.1.14 DigitMap Descriptor..........................33 87 7.1.15 Statistics Descriptor........................37 88 7.1.16 Packages Descriptor..........................38 89 7.1.17 ObservedEvents Descriptor....................38 90 7.1.18 Topology Descriptor.........................38 91 7.2 Command Application Programming Interface...............41 92 7.2.1 Add...........................................41 93 7.2.2 Modify........................................42 94 7.2.3 Subtract......................................43 95 7.2.4 Move..........................................44 96 7.2.5 AuditValue....................................45 97 7.2.6 AuditCapabilities.............................47 98 7.2.7 Notify........................................48 99 7.2.8 ServiceChange.................................48 100 7.2.9 Manipulating and Auditing Context Attributes..52 101 7.2.10 Generic Command Syntax.......................52 103 Rosen et al Standards Track -- Expires Nov 2000 2 104 Megaco Protocol May 2000 106 7.3 Command Error Codes.....................................53 107 8. TRANSACTIONS..................................................55 108 8.1 Common Parameters.......................................56 109 8.1.1 Transaction Identifiers.......................56 110 8.1.2 Context Identifiers...........................56 111 8.2 Transaction Application Programming Interface...........57 112 8.2.1 TransactionRequest............................57 113 8.2.2 TransactionReply..............................57 114 8.2.3 TransactionPending............................59 115 8.3 Messages................................................59 116 9. TRANSPORT.....................................................59 117 9.1 Ordering of Commands....................................60 118 9.2 Protection against Restart Avalanche....................61 119 10. SECURITY CONSIDERATIONS......................................62 120 10.1 Protection of Protocol Connections.....................62 121 10.2 Interim AH scheme......................................63 122 10.3 Protection of Media Connections........................64 123 11. MG-MGC CONTROL INTERFACE....................................64 124 11.1 Multiple Virtual MGs...................................64 125 11.2 Cold Start.............................................65 126 11.3 Negotiation of Protocol Version........................66 127 11.4 Failure of an MG.......................................67 128 11.5 Failure of an MGC......................................67 129 12. PACKAGE DEFINITION...........................................68 130 12.1 Guidelines for defining packages.......................68 131 12.1.1 Package......................................69 132 12.1.2 Properties...................................69 133 12.1.3 Events.......................................70 134 12.1.4 Signals......................................70 135 12.1.5 Statistics...................................70 136 12.1.6 Procedures...................................71 137 12.2 Guidelines to defining Properties, Statistics and 138 Parameters to Events and Signals............................71 139 12.3 Lists..................................................71 140 12.4 Identifiers............................................71 141 12.5 Package Registration...................................71 142 13. IANA CONSIDERATIONS.........................................72 143 13.1 Packages...............................................72 144 13.2 Error Codes............................................72 145 13.3 ServiceChange Reasons..................................73 146 ANNEX A: BINARY ENCODING OF THE PROTOCOL (NORMATIVE).............74 147 A.1 Coding of wildcards.....................................74 148 A.2 ASN.1 syntax specification..............................75 149 A.3 Digit maps and path names...............................91 150 ANNEX B TEXT ENCODING OF THE PROTOCOL (NORMATIVE)................93 151 B.1 Coding of wildcards.....................................93 152 B.2 ABNF specification......................................93 153 ANNEX C TAGS FOR MEDIA STREAM PROPERTIES (NORMATIVE)............105 154 C.1 General Media Attributes...............................105 155 C.2 Mux Properties.........................................106 156 C.3 General bearer properties..............................107 157 C.4 General ATM properties.................................107 159 Rosen et al Standards Track -- Expires Nov 2000 3 160 Megaco Protocol May 2000 162 C.5 Frame Relay............................................110 163 C.6 IP.....................................................110 164 C.7 ATM AAL2...............................................111 165 C.8 ATM AAL1...............................................112 166 C.9 Bearer Capabilities....................................113 167 C.10 AAL5 Properties.......................................121 168 C.11 SDP Equivalents.......................................122 169 C.12 H.245.................................................123 170 ANNEX D TRANSPORT OVER IP (NORMATIVE)...........................124 171 D.1 Transport over IP/UDP using Application Level Framing..124 172 D.1.1 Providing At-Most-Once Functionality.........124 173 D.1.2 Transaction identifiers and three-way handshake 174 ...................................................125 175 D.1.3 Computing retransmission timers..............125 176 D.1.4 Provisional responses........................126 177 D.1.5 Repeating Requests, Responses and 178 Acknowledgements...................................127 179 D.2 Using TCP..............................................128 180 D.2.1 Providing the At-Most-Once functionality.....129 181 D.2.2 Transaction identifiers and three way handshake 182 ...................................................129 183 D.2.3 Computing retransmission timers..............129 184 D.2.4 Provisional responses........................129 185 D.2.5 Ordering of commands.........................129 186 ANNEX E BASIC PACKAGES (NORMATIVE)..............................130 187 E.1 Generic................................................130 188 E.1.1 Properties...................................130 189 E.1.2 Events.......................................130 190 E.1.3 Signals......................................131 191 E.1.4 Statistics...................................131 192 E.2 Base Root Package......................................132 193 E.2.1 Properties...................................132 194 E.2.2 Events.......................................133 195 E.2.3 Signals......................................133 196 E.2.4 Statistics...................................133 197 E.2.5 Procedures...................................133 198 E.3 Tone Generator Package.................................134 199 E.3.1 Properties...................................134 200 E.3.2 Events.......................................134 201 E.3.3 Signals......................................134 202 E.3.4 Statistics...................................135 203 E.3.5 Procedures...................................135 204 E.4 Tone Detection Package.................................135 205 E.4.1 Properties...................................135 206 E.4.2 Events.......................................135 207 E.4.3 Signals......................................138 208 E.4.4 Statistics...................................138 209 E.4.5 Procedures...................................138 210 E.5 Basic DTMF Generator Package...........................138 211 E.5.1 Properties...................................138 212 E.5.2 Events.......................................138 213 E.5.3 Signals......................................138 215 Rosen et al Standards Track -- Expires Nov 2000 4 216 Megaco Protocol May 2000 218 E.5.4 Statistics...................................139 219 E.5.5 Procedures...................................139 220 E.6 DTMF detection Package.................................139 221 E.6.1 Properties...................................140 222 E.6.2 Events.......................................140 223 E.6.3 Signals......................................141 224 E.6.4 Statistics...................................141 225 E.6.5 Procedures...................................141 226 E.7 Call Progress Tones Generator Package..................141 227 E.7.1 Properties...................................141 228 E.7.2 Events.......................................142 229 E.7.3 Signals......................................142 230 E.7.4 Statistics...................................142 231 E.7.5 Procedures...................................142 232 E.8 Call Progress Tones Detection Package..................143 233 E.8.1 Properties...................................143 234 E.8.2 Events.......................................143 235 E.8.3 Signals......................................143 236 E.8.4 Statistics...................................143 237 E.8.5 Procedures...................................143 238 E.9 Analog Line Supervision Package........................143 239 E.9.1 Properties...................................144 240 E.9.2 Events.......................................144 241 E.9.3 Signals......................................146 242 E.9.4 Statistics...................................147 243 E.9.5 Procedures...................................147 244 E.9.6 Error Code...................................147 245 E.10 Basic Continuity Package..............................147 246 E.10.1 Properties..................................147 247 E.10.2 Events......................................148 248 E.10.3 Signals.....................................148 249 E.10.4 Statistics..................................149 250 E.10.5 Procedures..................................149 251 E.11 Network Package.......................................149 252 E.11.1 Properties..................................150 253 E.11.2 Events......................................150 254 E.11.3 Signals.....................................151 255 E.11.4 Statistics..................................151 256 E.11.5 Procedures..................................152 257 E.12 RTP Package..........................................152 258 E.12.1 Properties..................................152 259 E.12.2 Events......................................152 260 E.12.3 Signals.....................................153 261 E.12.4 Statistics..................................153 262 E.12.5 Procedures..................................154 263 E.13 TDM Circuit Package...................................154 264 E.13.1 Properties..................................154 265 E.13.2 Events......................................155 266 E.13.3 Signals.....................................155 267 E.13.4 Statistics..................................155 268 E.13.5 Procedures..................................155 270 Rosen et al Standards Track -- Expires Nov 2000 5 271 Megaco Protocol May 2000 273 APPENDIX A EXAMPLE CALL FLOWS (INFORMATIVE).....................156 274 A.1 Residential Gateway to Residential Gateway Call........156 275 A.1.1 Programming Residential GW Analog Line 276 Terminations for Idle Behavior.....................156 277 A.1.2 Collecting Originator Digits and Initiating 278 Termination........................................158 280 Rosen et al Standards Track -- Expires Nov 2000 6 282 1. SCOPE 284 This document defines the protocol used between elements of a 285 physically decomposed multimedia gateway. There are no functional 286 differences from a system view between a decomposed gateway, with 287 distributed sub-components potentially on more than one physical 288 device, and a monolithic gateway such as described in H.246. This 289 document does not define how gateways, multipoint control 290 units or interactive voice response units (IVRs) work. Instead it 291 creates a general framework that is suitable for these applications. 293 Packet network interfaces may include IP, ATM or possibly others. 294 The interfaces will support a variety of SCN signalling systems, 295 including tone signalling, ISDN, ISUP, QSIG, and GSM. National 296 variants of these signalling systems will be supported where 297 applicable. 299 The protocol definition in this document is common text with ITU-T 300 Recommendation H.248. It meets the requirements documented in RFC 301 2805. 303 2. REFERENCES 305 2.1 Normative references 307 ATM Forum (1994): "User-Network Interface, Version 4.0". 309 ITU-T Recommendation H.225.0: "Call Signalling Protocols and Media 310 Stream Packetization for Packet Based Multimedia Communications 311 Systems". 313 ITU-T Recommendation H.235: "Security and encryption for H-Series 314 (H.323 and other H.245-based) multimedia terminals". 316 ITU-T Recommendation H.245: "Control Protocol for Multimedia 317 Communication". 319 ITU-T Recommendation H.323: "Packet Based Multimedia Communication 320 Systems". 322 ITU-T Recommendation I.363.1, "B-ISDN ATM Adaptation Layer 323 specification: Type 1 AAL". 325 ITU-T Recommendation I.363.2, "B-ISDN ATM Adaptation Layer 326 specification: Type 2 AAL". 328 ITU-T Recommendation I.363.5, "B-ISDN ATM Adaptation Layer 329 specification: Type 5 AAL". 331 ITU-T Recommendation I.363.5, "B-ISDN ATM Adaptation Layer 332 specification: Type 5 AAL". 334 Rosen et al Standards Track -- Expires Nov 2000 7 335 Megaco Protocol May 2000 337 ITU-T Recommendation I.366.1, "Segmentation and Reassembly Service 338 Specific Convergence Sublayer for the AAL type 2". 340 ITU-T Recommendation I.366.2, "AAL type 2 service specific 341 convergence sublayer for trunking". 343 ITU-T Recommendation I.371, "Traffic control and congestion control 344 in B-ISDN". 346 ITU-T Recommendation Q.763, "Signalling System No. 7 - ISDN user 347 part formats and codes". 349 ITU-T Recommendation Q.765, "Signalling System No. 7 - Application 350 transport mechanism". 352 ITU-T Recommendation Q.931: "Digital Subscriber Signalling System 353 No. 1 (DSS 1) - ISDN User-Network Interface Layer 3 Specification 354 for Basic Call Control". 356 ITU-T Recommendation Q.2630.1, "AAL Type 2 Signalling Protocol 357 (Capability Set 1)". 359 ITU-T Recommendation Q.2931, "Broadband Integrated Services Digital 360 Network (B-ISDN) - Digital Subscriber Signalling System No. 2 (DSS 361 2) - User-Network Interface (UNI) - Layer 3 specification for basic 362 call/connection control". 364 ITU-T Recommendation Q.2941.1, "Digital Subscriber Signalling System 365 No. 2 - Generic Identifier Transport". 367 ITU-T Recommendation Q.2961, "Broadband integrated services digital 368 network (B-ISDN) - Digital subscriber signalling system no.2 (DSS 2) 369 - additional traffic parameters". 371 ITU-T Recommendation Q.2965.1, "Digital subscriber signalling sytem 372 No. 2 _ Support of Quality of Service classes." 374 ITU-T Recommendation Q.2965.2, "Digital subscriber signalling 375 system No. 2 _ Signalling of individual Quality of Service 376 parameters." 378 ITU-T Recommendation Q.2961.2, "Digital subscriber signalling system 379 No. 2 - Additional traffic parameters: Support of ATM transfer 380 capability in the broadband bearer capability information element." 382 ITU-T Recommendation X.213, "Information technology - Open System 383 Interconnection - Network service definition plus Amendment 1 384 (08/1997), Addition of the Internet protocol address format 385 identifier". 387 ITU-T Recommendation V.76 (08/96), "Generic multiplexer using V.42 388 LAPM-based procedures". 390 Rosen et al Standards Track -- Expires Nov 2000 8 391 Megaco Protocol May 2000 393 ITU-T Recommendation X.680 (1997): "Information technology-Abstract 394 Syntax Notation One (ASN.1): Specification of basic notation". 396 ITU-T Recommendation H.246 (1998), "Interworking of H-series 397 multimedia terminals with H-series multimedia terminals and 398 voice/voiceband terminals on GSTN and ISDN". 400 RFC 1006, "ISO Transport Service on top of the TCP, Version 3", 401 Marshall T. Rose, Dwight E. Cass, May 1987. 403 RFC 2234, "Augmented BNF for Syntax Specifications: ABNF", D. 404 Crocker, P. Overell, November 1997. 406 RFC 2327, "SDP: Session Description Protocol", M. Handley, V. 407 Jacobson, April 1998. 409 RFC 2402, "IP Authentication Header", S. Kent, R. Atkinson, November 410 1998. 412 RFC 2406, "IP Encapsulating Security Payload (ESP)", S. Kent, R. 413 Atkinson, November 1998. 415 2.2 Informative references 417 ITU-T Recommendation E.180/Q.35 (1998): "Technical characteristics 418 of tones for the telephone service". 420 CCITT Recommendation G.711 (1988), "Pulse Code Modulation (PCM) of 421 voice frequencies". 423 ITU-T Recommendation H.221 (05/99),"Frame structure for a 64 to 1920 424 kbit/s channel in audiovisual teleservices". 426 ITU-T Recommendation H.223 (1996), "Multiplexing protocol for low 427 bit rate multimedia communication". 429 RFC 768, "User Datagram Protocol", J.Postel, August 1980. 431 RFC 791, "Internet protocol", J.Postel, September 1981. 433 RFC 793, "TRANSMISSION CONTROL PROTOCOL", J.Postel, September 1981. 435 RFC 1661, "The Point-to-Point Protocol", W. Simpson, July 1994. 437 RFC 1889, "RTP: A Transport Protocol for Real-Time Applications", H. 438 Schulzrinne, S. Casner, R. Frederick, V. Jacobson, January 1996. 440 RFC 1890, "RTP Profile for Audio and Video Conferences with Minimal 441 Control", H. Schulzrinne, January 1996. 443 Rosen et al Standards Track -- Expires Nov 2000 9 444 Megaco Protocol May 2000 446 RFC 2401, "Security Architecture for the Internet Protocol", S. 447 Kent, R. Atkinson, November 1998. 449 RFC 2460, "Internet Protocol, Version 6 (IPv6) Specification", S. 450 Deering, R. Hinden, December 1998. 452 RFC 2543, "SIP: Session Initiation Protocol", M. Handley, H. 453 Schulzrinne, E. Schooler, J. Rosenberg, March 1999. 455 RFC 2805, "Media Gateway control protocol architecture and 456 requirements", N. Greene, M. Ramalho, B. Rosen, April 1999. 458 3. DEFINITIONS 460 Access Gateway: A type of gateway that provides a User to Network 461 Interface (UNI) such as ISDN. 463 Descriptor: A syntactic element of the protocol that groups related 464 properties. For instance, the properties of a media flow on the MG 465 can be set by the MGC by including the appropriate descriptor in a 466 command. 468 Media Gateway (MG): The media gateway converts media provided in one 469 type of network to the format required in another type of network. 470 For example, a MG could terminate bearer channels from a switched 471 circuit network (e.g., DS0s) and media streams from a packet network 472 (e.g., RTP streams in an IP network). This gateway may be capable 473 of processing audio, video and T.120 alone or in any combination, 474 and will be capable of full duplex media translations. The MG may 475 also play audio/video messages and perform other IVR functions, or 476 may perform media conferencing. 478 Media Gateway Controller (MGC): Controls the parts of the call state 479 that pertain to connection control for media channels in a MG. 481 Multipoint Control Unit (MCU): An entity that controls the setup and 482 coordination of a multi-user conference that typically includes 483 processing of audio, video and data. 485 Residential Gateway: A gateway that interworks an analogue line to a 486 packet network. A residential gateway typically contains one or two 487 analogue lines and is located at the customer premises. 489 SCN FAS Signalling Gateway: This function contains the SCN 490 Signalling Interface that terminates SS7, ISDN or other signalling 491 links where the call control channel and bearer channels are 492 collocated in the same physical span. 494 SCN NFAS Signalling Gateway: This function contains the SCN 495 Signalling Interface that terminates SS7 or other signalling links 496 where the call control channels are separated from bearer channels. 498 Rosen et al Standards Track -- Expires Nov 2000 10 499 Megaco Protocol May 2000 501 Stream: Bidirectional media or control flow received/sent by a media 502 gateway as part of a call or conference. 504 Trunk: A communication channel between two switching systems such as 505 a DS0 on a T1 or E1 line. 507 Trunking Gateway: A gateway between SCN network and packet network 508 that typically terminates a large number of digital circuits. 510 4. ABBREVIATIONS 512 This recommendation defines the following terms. 514 ATM Asynchronous Transfer Mode 515 CAS Channel Associated Signalling 516 DTMF Dual Tone Multi-Frequency 517 FAS Facility Associated Signalling 518 GSM Global System for Mobile communications 519 GW GateWay 520 IANA Internet Assigned Numbers Authority 521 IP Internet Protocol 522 ISUP ISDN User Part 523 IVR Interactive Voice Response 524 MG Media Gateway 525 MGC Media Gateway Controller 526 NFAS Non-Facility Associated Signalling 527 PRI Primary Rate Interface 528 PSTN Public Switched Telephone Network 529 QoS Quality of Service 530 RTP Real-time Transport Protocol 531 SCN Switched Circuit Network 532 SG Signalling Gateway 533 SS7 Signalling System No. 7 535 5. CONVENTIONS 537 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 538 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 539 document are to be interpreted as described in RFC2119. 541 6. CONNECTION MODEL 543 The connection model for the protocol describes the logical 544 entities, or objects, within the Media Gateway that can be 545 controlled by the Media Gateway Controller. The main abstractions 546 used in the connection model are Terminations and Contexts. 548 Rosen et al Standards Track -- Expires Nov 2000 11 549 Megaco Protocol May 2000 551 A Termination sources and/or sinks one or more streams. In a 552 multimedia conference, a Termination can be multimedia and sources 553 or sinks multiple media streams. The media stream parameters, as 554 well as modem, and bearer parameters are encapsulated within the 555 Termination. 557 +------------------------------------------------------+ 558 |Media Gateway | 559 | +-------------------------------------------------+ | 560 | |Context +-------------+ | | 561 | | | Termination | | | 562 | | |-------------| | | 563 | | +-------------+ +->| SCN Bearer |<---+-> 564 | | | Termination | +-----+ | | Channel | | | 565 | | |-------------| | |---+ +-------------+ | | 566 <-+--->| RTP Stream |---| * | | | 567 | | | | | |---+ +-------------+ | | 568 | | +-------------+ +-----+ | | Termination | | | 569 | | | |-------------| | | 570 | | +->| SCN Bearer |<---+-> 571 | | | Channel | | | 572 | | +-------------+ | | 573 | +-------------------------------------------------+ | 574 | | 575 | | 576 | +------------------------------+ | 577 | |Context | | 578 | +-------------+ | +-------------+ | | 579 | | Termination | | +-----+ | Termination | | | 580 | |-------------| | | | |-------------| | | 581 <-+->| SCN Bearer | | | * |------| SCN Bearer |<---+-> 582 | | Channel | | | | | Channel | | | 583 | +-------------+ | +-----+ +-------------+ | | 584 | +------------------------------+ | 585 | | 586 | | 587 | +-------------------------------------------------+ | 588 | |Context | | 589 | | +-------------+ +-------------+ | | 590 | | | Termination | +-----+ | Termination | | | 591 | | |-------------| | | |-------------| | | 592 <-+--->| SCN Bearer |---| * |------| SCN Bearer |<---+-> 593 | | | Channel | | | | Channel | | | 594 | | +-------------+ +-----+ +-------------+ | | 595 | +-------------------------------------------------+ | 596 | ___________________________________________________ | 597 +------------------------------------------------------+ 599 Figure 1: Example of H.248 Connection Model 601 A Context is an association between a collection of Terminations. 602 There is a special type of Context, the null Context, which contains 604 Rosen et al Standards Track -- Expires Nov 2000 12 605 Megaco Protocol May 2000 607 all Terminations that are not associated to any other Termination. 608 For instance, in a decomposed access gateway, all idle lines are 609 represented by Terminations in the null Context. 611 Figure 1 above is a graphical depiction of these concepts. The 612 diagram of Figure 1 gives several examples and is not meant to be an 613 all-inclusive illustration. The asterisk box in each of the 614 Contexts represents the logical association of Terminations implied 615 by the Context. 617 The example below shows an example of one way to accomplish a call- 618 waiting scenario in a decomposed access gateway, illustrating the 619 relocation of a Termination between Contexts. Terminations T1 and 620 T2 belong to Context C1 in a two-way audio call. A second audio 621 call is waiting for T1 from Termination T3. T3 is alone in Context 622 C2. T1 accepts the call from T3, placing T2 on hold. This action 623 results in T1 moving into Context C2, as shown below. 625 +------------------------------------------------------+ 626 |Media Gateway | 627 | +-------------------------------------------------+ | 628 | |Context C1 | | 629 | | +-------------+ +-------------+ | | 630 | | | Term. T2 | +-----+ | Term. T1 | | | 631 | | |-------------| | | |-------------| | | 632 <-+--->| RTP Stream |---| * |------| SCN Bearer |<---+-> 633 | | | | | | | Channel | | | 634 | | +-------------+ +-----+ +-------------+ | | 635 | +-------------------------------------------------+ | 636 | | 637 | +-------------------------------------------------+ | 638 | |Context C2 | | 639 | | +-------------+ | | 640 | | +-----+ | Term. T3 | | | 641 | | | | |-------------| | | 642 | | | * |------| SCN Bearer |<---+-> 643 | | | | | Channel | | | 644 | | +-----+ +-------------+ | | 645 | +-------------------------------------------------+ | 646 +------------------------------------------------------+ 648 Figure 2: Example Call Waiting Scenario / Alerting Applied to T1 650 Rosen et al Standards Track -- Expires Nov 2000 13 651 Megaco Protocol May 2000 653 +------------------------------------------------------+ 654 |Media Gateway | 655 | +-------------------------------------------------+ | 656 | |Context C1 | | 657 | | +-------------+ | | 658 | | | Term. T2 | +-----+ | | 659 | | |-------------| | | | | 660 <-+--->| RTP Stream |---| * | | | 661 | | | | | | | | 662 | | +-------------+ +-----+ | | 663 | +-------------------------------------------------+ | 664 | | 665 | +-------------------------------------------------+ | 666 | |Context C2 | | 667 | | +-------------+ +-------------+ | | 668 | | | Term. T1 | +-----+ | Term. T3 | | | 669 | | |-------------| | | |-------------| | | 670 <-+--->| SCN Bearer |---| * |------| SCN Bearer |<---+-> 671 | | | Channel | | | | Channel | | | 672 | | +-------------+ +-----+ +-------------+ | | 673 | +-------------------------------------------------+ | 674 +------------------------------------------------------+ 676 Figure 3. Example Call Waiting Scenario / Answer by T1 678 6.1 Contexts 680 A Context is an association between a number of Terminations. The 681 Context describes the topology (who hears/sees whom) and the media 682 mixing and/or switching parameters if more than two Terminations are 683 involved in the association. 685 There is a special Context called the null Context. It contains 686 Terminations that are not associated to any other Termination. 687 Terminations in the null Context can have their parameters examined 688 or modified, and may have events detected on them. 690 In general, an Add command is used to add Terminations to Contexts. 691 If the MGC does not specify an existing Context to which the 692 Termination is to be added, the MG creates a new Context. A 693 Termination may be removed from a Context with a Subtract command, 694 and a Termination may be moved from one Context to another with a 695 Move command. A Termination SHALL exist in only one Context at a 696 time. 698 The maximum number of Terminations in a Context is a MG property. 699 Media gateways that offer only point-to-point connectivity might 700 allow at most two Terminations per Context. Media gateways that 701 support multipoint conferences might allow three or more 702 terminations per Context. 704 Rosen et al Standards Track -- Expires Nov 2000 14 705 Megaco Protocol May 2000 707 6.1.1 Context Attributes and Descriptors 709 The attributes of Contexts are: 711 * ContextID. 713 * The topology (who hears/sees whom). 714 The topology of a Context describes the flow of media between the 715 Terminations within a Context. In contrast, the mode of a 716 Termination (send/receive/_) describes the flow of the media at 717 the ingress/egress of the media gateway. 719 * The priority is used for a context in order to provide the MG with 720 information about a certain precedence handling for a context. The 721 MGC can also use the priority to control autonomously the traffic 722 precedence in the MG in a smooth way in certain situations (e.g. 723 restart), when a lot of contexts must be handled simultaneously. 725 * An indicator for an emergency call is also provided to allow a 726 preference handling in the MG. 728 6.1.2 Creating, Deleting and Modifying Contexts 730 The protocol can be used to (implicitly) create Contexts and modify 731 the parameter values of existing Contexts. The protocol has 732 commands to add Terminations to Contexts, subtract them from 733 Contexts, and to move Terminations between Contexts. Contexts are 734 deleted implicitly when the last remaining Termination is subtracted 735 or moved out. 737 6.2 Terminations 739 A Termination is a logical entity on a MG that sources and/or sinks 740 media and/or control streams. A Termination is described by a 741 number of characterizing Properties, which are grouped in a set of 742 Descriptors that are included in commands. Terminations have unique 743 identities (TerminationIDs), assigned by the MG at the time of their 744 creation. 746 Terminations representing physical entities have a semi-permanent 747 existence. For example, a Termination representing a TDM channel 748 might exist for as long as it is provisioned in the gateway. 749 Terminations representing ephemeral information flows, such as RTP 750 flows, would usually exist only for the duration of their use. 752 Ephemeral Terminations are created by means of an Add command. They 753 are destroyed by means of a Subtract command. In contrast, when a 754 physical Termination is Added to or Subtracted from a Context, it is 755 taken from or to the null Context, respectively. 757 Terminations may have signals applied to them. Signals are MG 758 generated media streams such as tones and announcements as well as 760 Rosen et al Standards Track -- Expires Nov 2000 15 761 Megaco Protocol May 2000 763 line signals such as hookswitch. Terminations may be programmed to 764 detect Events, the occurrence of which can trigger notification 765 messages to the MGC, or action by the MG. Statistics may be 766 accumulated on a Termination. Statistics are reported to the MGC 767 upon request (by means of the AuditValue command, see section 7.2.5) 768 and when the Termination is taken out of the call it is in. 770 Multimedia gateways may process multiplexed media streams. For 771 example, Recommendation H.221 describes a frame structure for 772 multiple media streams multiplexed on a number of digital 64 kbit/s 773 channels. Such a case is handled in the connection model in the 774 following way. For every bearer channel that carries part of the 775 multiplexed streams, there is a Termination. The Terminations that 776 source/sink the digital channels are connected to a separate 777 Termination called the multiplexing Termination. This Termination 778 describes the multiplex used (e.g. how the H.221 frames are carried 779 over the digital channels used). The MuxDescriptor is used to this 780 end. If multiple media are carried, this Termination contains 781 multiple StreamDescriptors. The media streams can be associated with 782 streams sourced/sunk by other Terminations in the Context. 784 Terminations may be created which represent multiplexed bearers, 785 such as an ATM AAL Type 2 bearer. When a new multiplexed bearer is 786 to be created, an ephemeral termination is created in a context 787 established for this purpose. When the termination is subtracted, 788 the multiplexed bearer is destroyed. 790 6.2.1 Termination Dynamics 792 The protocol can be used to create new Terminations and to modify 793 property values of existing Terminations. These modifications 794 include the possibility of adding or removing events and/or signals. 795 The Termination properties, and events and signals are described in 796 the ensuing sections. An MGC can only release/modify terminations 797 and the resources that the termination represents which it has 798 previously seized via, e.g., the Add command. 800 6.2.2 TerminationIDs 802 Terminations are referenced by a TerminationID, which is an 803 arbitrary schema chosen by the MG. 805 TerminationIDs of physical Terminations are provisioned in the Media 806 Gateway. The TerminationIDs may be chosen to have structure. For 807 instance, a TerminationID may consist of trunk group and a trunk 808 within the group. 810 A wildcarding mechanism using two types of wildcards can be used 811 with TerminationIDs. The two wildcards are ALL and CHOOSE. The 812 former is used to address multiple Terminations at once, while the 813 latter is used to indicate to a media gateway that it must select a 814 Termination satisfying the partially specified TerminationID. This 816 Rosen et al Standards Track -- Expires Nov 2000 16 817 Megaco Protocol May 2000 819 allows, for instance, that a MGC instructs a MG to choose a circuit 820 within a trunk group. 822 When ALL is used in the TerminationID of a command, the effect is 823 identical to repeating the command with each of the matching 824 TerminationIDs. Since each of these commands may generate a 825 response, the size of the entire response may be large. If 826 individual responses are not required, a wildcard response may be 827 requested. In such a case, a single response is generated, which 828 contains the UNION of all of the individual responses which 829 otherwise would have been generated, with duplicate values 830 suppressed. For instance, given a Termination Ta with properties 831 p1=a, p2=b and Termination Tb with properties p2=c, p3=d, a UNION 832 response would consist of a wildcarded TerminationId and the 833 sequence of properties p1=a, p2=b,c and p3=d. Wildcard response may 834 be particularly useful in the Audit commands. 836 The encoding of the wildcarding mechanism is detailed in Annexes A 837 and B. 839 6.2.3 Packages 841 Different types of gateways may implement Terminations that have 842 widely differing characteristics. Variations in Terminations are 843 accommodated in the protocol by allowing Terminations to have 844 optional Properties, Events, Signals and Statistics implemented by 845 MGs. 847 In order to achieve MG/MGC interoperability, such options are 848 grouped into Packages, and a Termination realizes a set of such 849 Packages. More information on definition of packages can be found 850 in section 12. An MGC can audit a Termination to determine which 851 Packages it realizes. 853 Properties, Events, Signals and Statistics defined in Packages, as 854 well as parameters to them, are referenced by identifiers (Ids). 855 Identifiers are scoped. For each package, PropertyIds, EventIds, 856 SignalIds, StatisticsIds and ParameterIds have unique name spaces 857 and the same identifier may be used in each of them. Two 858 PropertyIds in different packages may also have the same identifier, 859 etc. 861 6.2.4 Termination Properties and Descriptors 863 Terminations have properties. The properties have unique 864 PropertyIDs. Most properties have default values, which are 865 explicitly defined in this standard or in a package (see Section 12) 866 or set by provisioning. If not provisioned otherwise, all 867 descriptors except TerminationState and LocalControl default to 868 empty/"no value" when a Termination is first created or returned to 869 the null Context. The default contents of the two exceptions are 870 described in sections 7.1.5 and 7.1.7. 872 Rosen et al Standards Track -- Expires Nov 2000 17 873 Megaco Protocol May 2000 875 There are a number of common properties for Terminations and 876 properties specific to media streams. The common properties are also 877 called the termination state properties. For each media stream, 878 there are local properties and properties of the received and 879 transmitted flows. 881 Properties not included in the base protocol are defined in 882 Packages. These properties are referred to by a name consisting of 883 the PackageName and a PropertyId. Most properties have default 884 values described in the Package description. Properties may be read- 885 only or read/write. The possible values of a property may be 886 audited, as can their current values. For properties that are 887 read/write, the MGC can set their values. A property may be 888 declared as "Global" which has a single value shared by all 889 terminations realizing the package. Related properties are grouped 890 into descriptors for convenience. 892 When a Termination is Added to a Context, the value of its 893 read/write properties can be set by including the appropriate 894 descriptors as parameters to the Add command. Properties not 895 mentioned in the command retain their prior values. Similarly, a 896 property of a Termination in a Context may have its value changed by 897 the Modify command. Properties not mentioned in the Modify command 898 retain their prior values. Properties may also have their values 899 changed when a Termination is moved from one Context to another as a 900 result of a Move command. In some cases, descriptors are returned 901 as output from a command. 903 The following table lists all of the possible Descriptors and their 904 use. Not all descriptors are legal as input or output parameters to 905 every command. 907 +------------------+-----------------------------------------------+ 908 | Descriptor Name | Description | 909 |------------------|-----------------------------------------------| 910 | Modem | Identifies modem type and properties | 911 | | when applicable. | 912 | Mux | Describes multiplex type for multimedia | 913 | | terminations (e.g. H.221, H.223, H.225.0) | 914 | | and Terminations forming the input mux. | 915 | Media | A list of media stream specifications | 916 | | (see 7.1.4). | 917 | TerminationState | Properties of a Termination (which can be | 918 | | defined in Packages) that are not stream | 919 | | specific. | 920 | Stream | A list of remote/local/localControl | 921 | | descriptors for a single stream. | 922 | Local | Contains properties that specify the media | 923 | | flows that the MG receives from the remote | 924 | | entity. | 926 Rosen et al Standards Track -- Expires Nov 2000 18 927 Megaco Protocol May 2000 929 | Remote | Contains properties that specify the media | 930 | | flows that the MG sends to the remote entity. | 931 | LocalControl | Contains properties (which can be defined in | 932 | | packages) that are of interest between the MG | 933 | | and the MGC. | 934 | Events | Describes events to be detected by the MG and | 935 | | what to do when an event is detected. | 936 | EventBuffer | Describes events to be detected by the MG | 937 | | when Event Buffering is active. | 938 | Signals | Describes signals and/or actions to be | 939 | | applied (e.g. Busy Tone) to the Terminations. | 940 | Audit | In Audit commands, identifies which | 941 | | information is desired. | 942 | Packages | In AuditValue, returns a list of Packages | 943 | | realized by Termination. | 944 | DigitMap | Defines patterns against which sequences of a | 945 | | specified set of events are to be matched so | 946 | | they can be reported as a group rather than | 947 | | singly. | 948 | ServiceChange | In ServiceChange, what, why service change | 949 | | occurred, etc. | 950 | ObservedEvents | In Notify or AuditValue, report of events | 951 | | observed. | 952 | Statistics | In Subtract and Audit, Report of Statistics | 953 | | kept on a Termination. | 954 +------------------------------------------------------------------+ 956 6.2.5 Root Termination 958 Occasionally, a command must refer to the entire gateway, rather 959 than a termination within it. A special TerminationID, "Root" is 960 reserved for this purpose. Packages may be defined on Root. Root 961 thus may have properties, events and statistics (signals are not 962 appropriate for root). Accordingly, the root TerminationID may 963 appear in: 965 * a Modify command - to change a property or set an event 966 * a Notify command - to report an event 967 * an AuditValue return - to examine the values of properties and 968 statistics implemented on root 969 * an AuditCapability - to determine what properties of root are 970 implemented 971 * a ServiceChange - to declare the gateway in or out of service. 973 Any other use of the root TerminationID is an error. 975 7. COMMANDS 977 The protocol provides commands for manipulating the logical entities 978 of the protocol connection model, Contexts and Terminations. 980 Rosen et al Standards Track -- Expires Nov 2000 19 981 Megaco Protocol May 2000 983 Commands provide control at the finest level of granularity 984 supported by the protocol. For example, Commands exist to add 985 Terminations to a Context, modify Terminations, subtract 986 Terminations from a Context, and audit properties of Contexts or 987 Terminations. Commands provide for complete control of the 988 properties of Contexts and Terminations. This includes specifying 989 which events a Termination is to report, which signals/actions are 990 to be applied to a Termination and specifying the topology of a 991 Context (who hears/sees whom). 993 Most commands are for the specific use of the Media Gateway 994 Controller as command initiator in controlling Media Gateways as 995 command responders. The exceptions are the Notify and ServiceChange 996 commands: Notify is sent from Media Gateway to Media Gateway 997 Controller, and ServiceChange may be sent by either entity. Below 998 is an overview of the commands; they are explained in more detail in 999 section 7.2. 1001 1. Add. The Add command adds a termination to a context. The Add 1002 command on the first Termination in a Context is used to create a 1003 Context. 1005 2. Modify. The Modify command modifies the properties, events and 1006 signals of a termination. 1008 3. Subtract. The Subtract command disconnects a Termination from its 1009 Context and returns statistics on the Termination's participation 1010 in the Context. The Subtract command on the last Termination in 1011 a Context deletes the Context. 1012 4. Move. The Move command atomically moves a Termination to another 1013 context. 1015 5. AuditValue. The AuditValue command returns the current state of 1016 properties, events, signals and statistics of Terminations. 1018 6. AuditCapabilities. The AuditCapabilities command returns all the 1019 possible values for Termination properties, events and signals 1020 allowed by the Media Gateway. 1022 7. Notify. The Notify command allows the Media Gateway to inform the 1023 Media Gateway Controller of the occurrence of events in the Media 1024 Gateway. 1026 8. ServiceChange. The ServiceChange Command allows the Media Gateway 1027 to notify the Media Gateway Controller that a Termination or 1028 group of Terminations is about to be taken out of service or has 1029 just been returned to service. ServiceChange is also used by 1030 the MG to announce its availability to an MGC (registration), and 1031 to notify the MGC of impending or completed restart of the MG. 1032 The MGC may announce a handover to the MG by sending it a 1033 ServiceChange command. The MGC may also use ServiceChange to 1035 Rosen et al Standards Track -- Expires Nov 2000 20 1036 Megaco Protocol May 2000 1038 instruct the MG to take a Termination or group of Terminations in 1039 or out of service. 1041 These commands are detailed in sections 7.2.1 through 7.2.8 1043 7.1 Descriptors 1045 The parameters to a command are termed Descriptors. A Descriptor 1046 consists of a name and a list of items. Some items may have values. 1047 Many Commands share common Descriptors. This subsection enumerates 1048 these Descriptors. Descriptors may be returned as output from a 1049 command. In any such return of descriptor contents, an empty 1050 descriptor is represented by its name unaccompanied by any list. 1051 Parameters and parameter usage specific to a given Command type are 1052 described in the subsection that describes the Command. 1054 7.1.1 Specifying Parameters 1056 Command parameters are structured into a number of descriptors. In 1057 general, the text format of descriptors is 1058 DescriptorName={parm=value, parm=value_.}. 1060 Parameters may be fully specified, over-specified or under- 1061 specified: 1063 1. Fully specified parameters have a single, unambiguous value that 1064 the command initiator is instructing the command responder to use 1065 for the specified parameter. 1067 2. Under-specified parameters, using the CHOOSE value, allow the 1068 command responder to choose any value it can support. 1070 3. Over-specified parameters have a list of potential values. The 1071 list order specifies the command initiator's order of preference 1072 of selection. The command responder chooses one value from the 1073 offered list and returns that value to the command initiator. 1075 If a required descriptor other than the Audit descriptor is 1076 unspecified (i.e., entirely absent) from a command, the previous 1077 values set in that descriptor for that termination, if any, are 1078 retained. A missing Audit descriptor is equivalent to an empty 1079 Audit Descriptor. The behavior of the MG with respect to 1080 unspecified parameters within a descriptor varies with the 1081 descriptor concerned, as indicated in succeeding sections. Whenever 1082 a parameter is underspecified or overspecified, the descriptor 1083 containing the value chosen by the responder is included as output 1084 from the command. 1086 Each command specifies the TerminationId the command operates on. 1087 This TerminationId may be "wildcarded". When the TerminationId of a 1088 command is wildcarded, the effect shall be as if the command was 1089 repeated with each of the TerminationIds matched. 1091 Rosen et al Standards Track -- Expires Nov 2000 21 1092 Megaco Protocol May 2000 1094 7.1.2 Modem Descriptor 1096 The Modem descriptor specifies the modem type and parameters, if 1097 any, required for use in e.g. H.324 and text conversation. The 1098 descriptor includes the following modem types: V.18, V.22, V.22bis, 1099 V.32, V.32bis, V.34, V.90, V.91, Synchronous ISDN, and allows for 1100 extensions. By default, no modem descriptor is present in a 1101 Termination. 1103 7.1.3 Multiplex Descriptor 1105 In multimedia calls, a number of media streams are carried on a 1106 (possibly different) number of bearers. The multiplex descriptor 1107 associates the media and the bearers. The descriptor includes the 1108 multiplex type: 1109 * H.221 1110 * H.223, 1111 * H.226, 1112 * V.76, 1113 * Possible Extensions 1114 and a set of TerminationIDs representing the multiplexed inputs, in 1115 order. For example: 1116 Mux = H.221{ MyT3/1/2, MyT3/2/13, MyT3/3/6, MyT3/21/22} 1118 7.1.4 Media Descriptor 1120 The Media Descriptor specifies the parameters for all the media 1121 streams. These parameters are structured into two descriptors, a 1122 Termination State Descriptor, which specifies the properties of a 1123 termination that are not stream dependent, and one or more Stream 1124 Descriptors each of which describes a single media stream. 1126 A stream is identified by a StreamID. The StreamID is used to link 1127 the streams in a Context that belong together. Multiple streams 1128 exiting a termination shall be synchronized with each other. Within 1129 the Stream Descriptor, there are up to three subsidiary descriptors, 1130 LocalControl, Local, and Remote. The relationship between these 1131 descriptors is thus: 1133 Media Descriptor 1134 TerminationStateDescriptor 1135 Stream Descriptor 1136 LocalControl Descriptor 1137 Local Descriptor 1138 Remote Descriptor 1140 As a convenience a LocalControl, Local, or Remote descriptor may be 1141 included in the Media Descriptor without an enclosing Stream 1142 descriptor. In this case, the StreamID is assumed to be 1. 1144 7.1.5 Termination State Descriptor 1146 Rosen et al Standards Track -- Expires Nov 2000 22 1147 Megaco Protocol May 2000 1149 The Termination State Descriptor contains the ServiceStates 1150 property, the EventBufferControl property and properties of a 1151 termination (defined in Packages) that are not stream specific. 1153 The ServiceStates property describes the overall state of the 1154 termination (not stream-specific). A Termination can be in one of 1155 the following states: "test", "out of service", or "in service". 1156 The "test" state indicates that the termination is being tested. The 1157 state "out of service" indicates that the termination cannot be used 1158 for traffic. The state "in service" indicates that a termination 1159 can be used or is being used for normal traffic. "in service" is 1160 the default state. 1162 Values assigned to Properties may be simple values 1163 (integer/string/enumeration) or may be underspecified, where more 1164 than one value is supplied and the MG may make a choice: 1165 * Alternative Values: multiple values in a list, one of which must 1166 be selected 1167 * Ranges: minimum and maximum values, any value between min and max 1168 must be selected, boundary values included 1169 * Greater Than/Less Than: value must be greater/less than specified 1170 value 1171 * CHOOSE Wildcard: the MG chooses from the allowed values for the 1172 property 1174 The EventBufferControl property specifies whether events are 1175 buffered following detection of an event in the Events Descriptor, 1176 or processed immediately. See section 7.1.9 for details. 1178 7.1.6 Stream Descriptor 1180 A Stream descriptor specifies the parameters of a single bi- 1181 directional stream. These parameters are structured into three 1182 descriptors: one that contains termination properties specific to a 1183 stream and one each for local and remote flows. The Stream 1184 Descriptor includes a StreamID which identifies the stream. Streams 1185 are created by specifying a new StreamID on one of the terminations 1186 in a Context. A stream is deleted by setting empty Local and Remote 1187 descriptors for the stream with ReserveGroup and ReserveValue in 1188 LocalControl set to "false" on all terminations in the context that 1189 previously supported that stream. 1191 StreamIDs are of local significance between MGC and MG and they are 1192 assigned by the MGC. Within a context, StreamID is a means by which 1193 to indicate which media flows are interconnected: streams with the 1194 same StreamID are connected. 1196 If a termination is moved from one context to another, the effect on 1197 the context to which the termination is moved is the same as in the 1198 case that a new termination were added with the same StreamIDs as 1199 the moved termination. 1201 Rosen et al Standards Track -- Expires Nov 2000 23 1202 Megaco Protocol May 2000 1204 7.1.7 LocalControl Descriptor 1206 The LocalControl Descriptor contains the Mode property, the 1207 ReserveGroup and ReserveValue properties and properties of a 1208 termination (defined in Packages) that are stream specific, and are 1209 of interest between the MG and the MGC. Values of properties may be 1210 underspecified as in section 7.1.1. 1212 The allowed values for the mode property are send-only, receive- 1213 only, send/receive, inactive and loop-back. "Send" and "receive" 1214 are with respect to the exterior of the context, so that, for 1215 example, a stream set to mode=sendonly does not pass received media 1216 into the context. Signals and Events are not affected by mode. 1218 The boolean-valued Reserve properties, ReserveValue and 1219 ReserveGroup, of a Termination indicate what the MG is expected to 1220 do when it receives a local and/or remote descriptor. 1222 If the value of a Reserve property is True, the MG SHALL reserve 1223 resources for all alternatives specified in the local and/or remote 1224 descriptors for which it currently has resources available. It 1225 SHALL respond with the alternatives for which it reserves resources. 1226 If it cannot not support any of the alternatives, it SHALL respond 1227 with a reply to the MGC that contains empty local and/or remote 1228 descriptors. 1230 If the value of a Reserve property is False, the MG SHALL choose one 1231 of the alternatives specified in the local descriptor (if present) 1232 and one of the alternatives specified in the remote descriptor (if 1233 present). If the MG has not yet reserved resources to support the 1234 selected alternative, it SHALL reserve the resources. If, on the 1235 other hand, it already reserved resources for the Termination 1236 addressed (because of a prior exchange with ReserveValue and/or 1237 ReserveGroup equal to True), it SHALL release any excess resources 1238 it reserved previously. Finally, the MG shall send a reply to the 1239 MGC containing the alternatives for the local and/or remote 1240 descriptor that it selected. If the MG does not have sufficient 1241 resources to support any of the alternatives specified, is SHALL 1242 respond with error 510 (insufficient resources). 1244 The default value of ReserveValue and ReserveGroup is False. More 1245 information on the use of the two Reserve properties is provided in 1246 section 7.1.8. 1248 A new setting of the LocalControl Descriptor completely replaces the 1249 previous setting of that descriptor in the MG. Thus to retain 1250 information from the previous setting the MGC must include that 1251 information in the new setting. If the MGC wishes to delete some 1252 information from the existing descriptor, it merely resends the 1253 descriptor (in a Modify command) with the unwanted information 1254 stripped out. 1256 Rosen et al Standards Track -- Expires Nov 2000 24 1257 Megaco Protocol May 2000 1259 7.1.8 Local and Remote Descriptors 1261 The MGC uses Local and Remote descriptors to reserve and commit MG 1262 resources for media decoding and encoding for the given Stream(s) 1263 and Termination to which they apply. The MG includes these 1264 descriptors in its response to indicate what it is actually prepared 1265 to support. The MG SHALL include additional properties and their 1266 values in its response if these properties are mandatory yet not 1267 present in the requests made by the MGC (e.g., by specifying 1268 detailed video encoding parameters where the MGC only specified the 1269 payload type). 1271 Local refers to the media received by the MG and Remote refers to 1272 the media sent by the MG. 1274 When text encoding the protocol, the descriptors consist of session 1275 descriptions as defined in SDP (RFC2327). In session descriptions 1276 sent from the MGC to the MG, the following exceptions to the syntax 1277 of RFC 2327 are allowed: 1278 * the "s=", "t=" and "o=" lines are optional, 1279 * the use of CHOOSE is allowed in place of a single parameter value, 1280 and 1281 * the use of alternatives is allowed in place of a single parameter 1282 value. 1284 When multiple session descriptions are provided in one descriptor, 1285 the "v=" lines are required as delimiters; otherwise they are 1286 optional in session descriptions sent to the MG. Implementations 1287 shall accept session descriptions that are fully conformant to 1288 RFC2327. When binary encoding the protocol the descriptor consists 1289 of groups of properties (tag-value pairs) as specified in Annex C. 1290 Each such group may contain the parameters of a session description. 1292 Below, the semantics of the local and remote descriptors are 1293 specified in detail. The specification consists of two parts. The 1294 first part specifies the interpretation of the contents of the 1295 descriptor. The second part specifies the actions the MG must take 1296 upon receiving the local and remote descriptors. The actions to be 1297 taken by the MG depend on the values of the ReserveValue and 1298 ReserveGroup properties of the LocalControl descriptor. 1300 Either the local or the remote descriptor or both may be 1301 * unspecified (i.e., absent), 1302 * empty, 1303 * underspecified through use of CHOOSE in a property value, 1304 * fully specified, or 1305 * overspecified through presentation of multiple groups of 1306 properties and possibly multiple property values in one or more of 1307 these groups. 1309 Rosen et al Standards Track -- Expires Nov 2000 25 1310 Megaco Protocol May 2000 1312 Where the descriptors have been passed from the MGC to the MG, they 1313 are interpreted according to the rules given in section 7.1.1, with 1314 the following additional comments for clarification: 1316 (a) An unspecified Local or Remote descriptor is considered to be a 1317 missing mandatory parameter. It requires the MG to use whatever was 1318 last specified for that descriptor. It is possible that there was 1319 no previously-specified value, in which case the descriptor 1320 concerned is ignored in further processing of the command. 1322 (b) An empty Local (Remote) descriptor in a message from the MGC 1323 signifies a request to release any resources reserved for the media 1324 flow received (sent). 1326 (c) If multiple groups of properties are present in a Local or 1327 Remote descriptor or multiple values within a group, the order of 1328 preference is descending. 1330 (d) Underspecified or overspecified properties within a group of 1331 properties sent by the MGC are requests for the MG to choose one or 1332 more values which it can support for each of those properties. In 1333 case of an overspecified property, the list of values is in 1334 descending order of preference. 1336 Subject to the above rules, subsequent action depends on the values 1337 of the ReserveValue and ReserveGroup properties in LocalControl. 1339 If ReserveGroup is true, the MG reserves the resources required to 1340 support any of the requested property group alternatives that it can 1341 currently support. If ReserveValue is true, the MG reserves the 1342 resources required to support any of the requested property value 1343 alternatives that it can currently support. 1345 NOTE - If a Local or Remote descriptor contains multiple groups of 1346 properties, and ReserveGroup is true, then the MG is requested to 1347 reserve resources so that it can decode or encode the media stream 1348 according to any of the alternatives. For instance, if the Local 1349 descriptor contains two groups of properties, one specifying 1350 packetized G.711 A-law audio and the other G.723.1 audio, the MG 1351 reserves resources so that it can decode one audio stream encoded in 1352 either G.711 A-law format or G.723.1 format. The MG does not have 1353 to reserve resources to decode two audio streams simultaneously, one 1354 encoded in G.711 A-law and one in G.723.1. The intention for the 1355 use of ReserveValue is analogous. 1357 If ReserveGroup is true or ReserveValue is true, then the following 1358 rules apply. 1359 * If the MG has insufficient resources to support all alternatives 1360 requested by the MGC and the MGC requested resources in both Local 1361 and Remote, the MG should reserve resources to support at least 1362 one alternative each within Local and Remote. 1364 Rosen et al Standards Track -- Expires Nov 2000 26 1365 Megaco Protocol May 2000 1367 * If the MG has insufficient resources to support at least one 1368 alternative within a Local (Remote) descriptor received from the 1369 MGC, it shall return an empty Local (Remote) in response. 1371 * In its response to the MGC, when the MGC included Local and Remote 1372 descriptors, the MG SHALL include Local and Remote descriptors for 1373 all groups of properties and property values it reserved resources 1374 for. If the MG is incapable of supporting at least one of the 1375 alternatives within the Local (Remote) descriptor received from 1376 the MGC, it SHALL return an empty Local (Remote) descriptor. 1378 * If the Mode property of the LocalControl descriptor is RecvOnly, 1379 SendRecv, or Loopback, the MG must be prepared to receive media 1380 encoded according to any of the alternatives included in its 1381 response to the MGC. 1383 * If ReserveGroup is False and ReserveValue is false, then the MG 1384 SHOULD apply the following rules to resolve Local and Remote to a 1385 single alternative each: 1387 * The MG chooses the first alternative in Local for which it is able 1388 to support at least one alternative in Remote. 1390 * If the MG is unable to support at least one Local and one Remote 1391 alternative, it returns Error 510 (Insufficient Resources). 1393 * The MG returns its selected alternative in each of Local and 1394 Remote. 1396 A new setting of a Local or Remote Descriptor completely replaces 1397 the previous setting of that descriptor in the MG. Thus to retain 1398 information from the previous setting the MGC must include that 1399 information in the new setting. If the MGC wishes to delete some 1400 information from the existing descriptor, it merely resends the 1401 descriptor (in a Modify command) with the unwanted information 1402 stripped out. 1404 7.1.9 Events Descriptor 1406 The EventsDescriptor parameter contains a RequestIdentifier and a 1407 list of events that the Media Gateway is requested to detect and 1408 report. The RequestIdentifier is used to correlate the request with 1409 the notifications that it may trigger. Requested events include, 1410 for example, fax tones, continuity test results, and on-hook and 1411 off-hook transitions. 1413 Each event in the descriptor contains the Event name, an optional 1414 streamID, an optional KeepActive flag, and optional parameters. The 1415 Event name consists of a Package Name (where the event is defined) 1416 and an EventID. The ALL wildcard may be used for the EventID, 1417 indicating that all events from the specified package have to be 1418 detected. The default streamID is 0, indicating that the event to 1420 Rosen et al Standards Track -- Expires Nov 2000 27 1421 Megaco Protocol May 2000 1423 be detected is not related to a particular media stream. Events can 1424 have parameters. This allows a single event description to have 1425 some variation in meaning without creating large numbers of 1426 individual events. Further event parameters are defined in the 1427 package. 1429 If a digit map completion event is present or implied in the 1430 EventsDescriptor, the EventDM parameter is used to carry either the 1431 name or the value of the associated digit map. See section 7.1.14 1432 for further details. 1434 When an event is processed against the contents of an active Events 1435 descriptor and found to be present in that descriptor 1436 ("recognized"), the default action of the MG is to send a Notify 1437 command to the MG. Notification may be deferred if the event is 1438 absorbed into the current dial string of an active digit map (see 1439 section 7.1.14). Any other action is for further study. Moreover, 1440 event recognition may cause currently active signals to stop, or may 1441 cause the current Events and/or Signals descriptor to be replaced, 1442 as described at the end of this section. 1444 If the value of the EventBufferControl property equals LockStep, 1445 following detection of such an event, normal handling of events is 1446 suspended. Any event which is subsequently detected and occurs in 1447 the EventBuffer Descriptor is added to the end of the EventBuffer (a 1448 FIFO queue), along with the time that it was detected. The MG 1449 SHALL wait for a new EventsDescriptor to be loaded. A new 1450 EventsDescriptor can be loaded either as the result of receiving a 1451 command with a new EventsDescriptor, or by activating an embedded 1452 EventsDescriptor. 1454 If EventBufferControl equals Off, the MG continues processing based 1455 on the active EventsDescriptor. 1457 In the case that an embedded EventsDescriptor being activated, the 1458 MG continues event processing based on the newly activated 1459 EventsDescriptor (Note - for purposes of EventBuffer handling, 1460 activation of an embedded EventsDescriptor is equivalent to receipt 1461 of a new EventsDescriptor). 1463 When the MG receives a command with a new EventsDescriptor, one or 1464 more events may have been buffered in the EventBuffer in the MG. The 1465 value of EventBufferControl then determines how the MG treats such 1466 buffered events. 1468 Case 1 1470 If EventBufferControl equals LockStep and the MG receives a new 1471 EventsDescriptor it will check the FIFO EventBuffer and take the 1472 following actions: 1474 Rosen et al Standards Track -- Expires Nov 2000 28 1475 Megaco Protocol May 2000 1477 1. If the EventBuffer is empty, the MG waits for detection of events 1478 based on the new EventsDescriptor. 1480 2. If the EventBuffer is non-empty, the MG processes the FIFO queue 1481 starting with the first event: 1482 a) If the event in the queue is in the events listed in the new 1483 EventsDescriptor, the MG acts on the event and removes the 1484 event from the EventBuffer. The time stamp of the Notify shall 1485 be the time the event was actually detected. The MG then waits 1486 for a new EventsDescriptor. While waiting for a new 1487 EventsDescriptor, any events detected that appear in the 1488 EventsBufferDescriptor will be placed in the EventBuffer. When 1489 a new EventsDescriptor is received, the event processing will 1490 repeat from step 1. 1492 b) If the event is not in the new EventsDescriptor, the MG 1493 SHALL discard the event and repeat from step 1. 1495 Case 2 1497 If EventBufferControl equals Off and the MG receives a new 1498 EventsDescriptor, it processes new events with the new 1499 EventsDescriptor. 1501 If the MG receives a command instructing it to set the value of 1502 EventBufferControl to Off, all events in the EventBuffer SHALL be 1503 discarded. 1505 The MG may report several events in a single Transaction as long as 1506 this does not unnecessarily delay the reporting of individual 1507 events. 1509 For procedures regarding transmitting the Notify command, refer to 1510 the appropriate annex for specific transport considerations. 1512 The default value of EventBufferControl is Off. 1514 Note - Since the EventBufferControl property is in the 1515 TerminationStateDescriptor, the MG might receive a command that 1516 changes the EventBufferControl property and does not include an 1517 EventsDescriptor. 1519 Normally, recognition of an event shall cause any active signals to 1520 stop. When KeepActive is specified in the event, the MG shall not 1521 interrupt any signals active on the Termination on which the event 1522 is detected. 1524 An event can include an Embedded Signals descriptor and/or an 1525 Embedded Events Descriptor which, if present, replaces the current 1526 Signals/Events descriptor when the event is recognized. It is 1527 possible, for example, to specify that the dial-tone Signal be 1528 generated when an off-hook Event is recognized, or that the dial- 1530 Rosen et al Standards Track -- Expires Nov 2000 29 1531 Megaco Protocol May 2000 1533 tone Signal be stopped when a digit is recognized. A media gateway 1534 controller shall not send EventsDescriptors with an event both 1535 marked KeepActive and containing an embedded SignalsDescriptor. 1537 Only one level of embedding is permitted. An embedded 1538 EventsDescriptor SHALL NOT contain another embedded 1539 EventsDescriptor; an embedded EventsDescriptor may contain an 1540 embedded SignalsDescriptor. 1542 An EventsDescriptor received by a media gateway replaces any 1543 previous Events Descriptor. Event notification in process shall 1544 complete, and events detected after the command containing the new 1545 EventsDescriptor executes, shall be processed according to the new 1546 EventsDescriptor. 1548 7.1.10 EventBuffer Descriptor 1550 The EventBuffer Descriptor contains a list of events, with their 1551 parameters if any, that the MG is requested to detect and buffer 1552 when EventBufferControl equals LockStep (see 7.1.9). 1554 7.1.11 Signals Descriptor 1556 A SignalsDescriptor is a parameter that contains the set of signals 1557 that the Media Gateway is asked to apply to a Termination. A 1558 SignalsDescriptor contains a number of signals and/or sequential 1559 signal lists. A SignalsDescriptor may contain zero signals and 1560 sequential signal lists. Support of sequential signal lists is 1561 optional. 1563 Signals are defined in packages. Signals shall be named with a 1564 Package name (in which the signal is defined) and a SignalID. No 1565 wildcard shall be used in the SignalID. Signals that occur in a 1566 SignalsDescriptor have an optional StreamID parameter (default is 0, 1567 to indicate that the signal is not related to a particular media 1568 stream), an optional signal type (see below), an optional duration 1569 and possibly parameters defined in the package that defines the 1570 signal. This allows a single signal to have some variation in 1571 meaning, obviating the need to create large numbers of individual 1572 signals. 1574 Finally, the optional parameter "notifyCompletion" allows a MGC to 1575 indicate that it wishes to be notified when the signal finishes 1576 playout. The possible cases are that the signal timed out, that it 1577 was interrupted by an event, that it was halted when a Signals 1578 Descriptor was replaced, or that it stopped or never started for 1579 other reasons. If the notifyCompletion parameter is not included in 1580 a Signals Descriptor, notification is generated only if the signal 1581 stopped or was never started for other reasons. For reporting to 1582 occur, the signal completion event (see section E.1.2) must be 1583 enabled in the currently active Events Descriptor. 1585 Rosen et al Standards Track -- Expires Nov 2000 30 1586 Megaco Protocol May 2000 1588 The duration is an integer value that is expressed in hundredths of 1589 a second. 1591 There are three types of signals: 1592 * on/off - the signal lasts until it is turned off, 1593 * timeout - the signal lasts until it is turned off or a specific 1594 period of time elapses, 1595 * brief - the signal duration is so short that it will stop on its 1596 own unless a new signal is applied that causes it to stop; no 1597 timeout value is needed. 1599 If the signal type is specified in a SignalsDescriptor, it overrides 1600 the default signal type (see Section 12.1.4). If duration is 1601 specified for an on/off signal, it SHALL be ignored. 1603 A sequential signal list consists of a signal list identifier, a 1604 sequence of signals to be played sequentially, and a signal type. 1605 Only the trailing element of the sequence of signals in a sequential 1606 signal list may be an on/off signal. If the trailing element of the 1607 sequence is an on/off signal, the signal type of the sequential 1608 signal list shall be on/off as well. If the sequence of signals in 1609 a sequential signal list contains signals of type timeout and the 1610 trailing element is not of type on/off, the type of the sequential 1611 signal list SHALL be set to timeout. The duration of a sequential 1612 signal list with type timeout is the sum of the durations of the 1613 signals it contains. If the sequence of signals in a sequential 1614 signal list contains only signals of type brief, the type of the 1615 sequential signal list SHALL be set to brief. A signal list is 1616 treated as a single signal of the specified type when played out. 1618 Multiple signals and sequential signal lists in the same 1619 SignalsDescriptor shall be played simultaneously. 1621 Signals are defined as proceeding from the termination towards the 1622 exterior of the Context unless otherwise specified in a package. 1623 When the same Signal is applied to multiple Terminations within one 1624 Transaction, the MG should consider using the same resource to 1625 generate these Signals. 1627 Production of a Signal on a Termination is stopped by application of 1628 a new SignalsDescriptor, or detection of an Event on the Termination 1629 (see section 7.1.9). 1631 A new SignalsDescriptor replaces any existing SignalsDescriptor. 1632 Any signals applied to the Termination not in the replacement 1633 descriptor shall be stopped, and new signals are applied, except as 1634 follows. Signals present in the replacement descriptor and 1635 containing the KeepActive flagshall be continued if they are 1636 currently playing and have not already completed. If a replacement 1637 signal descriptor contains a signal that is not currently playing 1638 and contains the KeepActive flag, that signal SHALL be ignored. If 1640 Rosen et al Standards Track -- Expires Nov 2000 31 1641 Megaco Protocol May 2000 1643 the replacement descriptor contains a sequential signal list with 1644 the same identifier as the existing descriptor, then 1645 * the signal type and sequence of signals in the sequential signal 1646 list in the replacement descriptor shall be ignored, and 1648 * the playing of the signals in the sequential signal list in the 1649 existing descriptor shall not be interrupted. 1651 7.1.12 Audit Descriptor 1653 The Audit Descriptor specifies what information is to be audited. 1654 The Audit Descriptor specifies the list of descriptors to be 1655 returned. Audit may be used in any command to force the return of a 1656 descriptor even if the descriptor in the command was not present, or 1657 had no underspecified parameters. Possible items in the Audit 1658 Descriptor are: 1659 +----------------+ 1660 | Modem | 1661 |----------------| 1662 | Mux | 1663 |----------------| 1664 | Events | 1665 |----------------| 1666 | Media | 1667 |----------------| 1668 | Signals | 1669 |----------------| 1670 | ObservedEvents | 1671 |----------------| 1672 | DigitMap | 1673 |----------------| 1674 | Statistics | 1675 |----------------| 1676 | Packages | 1677 |----------------| 1678 | EventBuffer | 1679 +----------------+ 1681 Audit may be empty, in which case, no descriptors are returned. 1682 This is useful in Subtract, to inhibit return of statistics, 1683 especially when using wildcard. 1685 7.1.13 ServiceChange Descriptor 1687 The ServiceChangeDescriptor contains the following parameters: 1688 * ServiceChangeMethod 1689 * ServiceChangeReason 1690 * ServiceChangeAddress 1691 * ServiceChangeDelay 1692 * ServiceChangeProfile 1693 * ServiceChangeVersion 1694 * ServiceChangeMGCId 1696 Rosen et al Standards Track -- Expires Nov 2000 32 1697 Megaco Protocol May 2000 1699 * TimeStamp 1700 * Extension. 1702 See section 7.2.8. 1704 7.1.14 DigitMap Descriptor 1706 7.1.14.1 DigitMap Definition, Creation, Modification and Deletion 1708 A DigitMap is a dialing plan resident in the Media Gateway used for 1709 detecting and reporting digit events received on a Termination. The 1710 DigitMap Descriptor contains a DigitMap name and the DigitMap to be 1711 assigned. A digit map may be preloaded into the MG by management 1712 action and referenced by name in an EventsDescriptor, may be defined 1713 dynamically and subsequently referenced by name, or the actual 1714 digitmap itself may be specified in the EventsDescriptor. It is 1715 permissible for a digit map completion event within an Events 1716 Descriptor to refer by name to a DigitMap which is defined by a 1717 DigitMap Descriptor within the same command, regardless of the 1718 transmitted order of the respective descriptors. 1720 DigitMaps defined in a DigitMapDescriptor can occur in any of the 1721 standard Termination manipulation Commands of the protocol. A 1722 DigitMap, once defined, can be used on all Terminations specified by 1723 the (possibly wildcarded) TerminationID in such a command. 1724 DigitMaps defined on the root Termination are global and can be used 1725 on every Termination in the MG, provided that a DigitMap with the 1726 same name has not been defined on the given Termination. When a 1727 DigitMap is defined dynamically in a DigitMap Descriptor: 1728 * A new DigitMap is created by specifying a name that is not yet 1729 defined. The value shall be present. 1731 * A DigitMap value is updated by supplying a new value for a name 1732 that is already defined. Terminations presently using the 1733 digitmap shall continue to use the old definition; subsequent 1734 EventsDescriptors specifying the name, including any 1735 EventsDescriptor in the command containing the DigitMap 1736 descriptor, shall use the new one. 1738 * A DigitMap is deleted by supplying an empty value for a name that 1739 is already defined. Terminations presently using the digitmap 1740 shall continue to use the old definition. 1742 7.1.14.2 DigitMap Timers 1744 The collection of digits according to a DigitMap may be protected by 1745 three timers, viz. a start timer (T), short timer (S), and long 1746 timer (L). 1747 1. The start timer (T) is used prior to any digits having been 1748 dialed. 1750 Rosen et al Standards Track -- Expires Nov 2000 33 1751 Megaco Protocol May 2000 1753 2. If the Media Gateway can determine that at least one more digit 1754 is needed for a digit string to match any of the allowed patterns 1755 in the digit map, then the interdigit timer value should be set 1756 to a long (L) duration (e.g. 16 seconds). 1758 3. If the digit string has matched one of the patterns in a digit 1759 map, but it is possible that more digits could be received which 1760 would cause a match with a different pattern, then instead of 1761 reporting the match immediately, the MG must apply the short 1762 timer (S) and wait for more digits. 1764 The timers are configurable parameters to a DigitMap. The Start 1765 timer is started at the beginning of every digit map use, but can be 1766 overridden. 1768 7.1.14.3 DigitMap Syntax 1770 The formal syntax of the digit map is described by the DigitMap rule 1771 in the formal syntax description of the protocol (see Annex A and 1772 Annex B). A DigitMap, according to this syntax, is defined either by 1773 a string or by a list of strings. Each string in the list is an 1774 alternative event sequence, specified either as a sequence of digit 1775 map symbols or as a regular expression of digit map symbols. These 1776 digit map symbols, the digits "0" through "9" and letters "A" 1777 through a maximum value depending on the signalling system 1778 concerned, but never exceeding "K", correspond to specified events 1779 within a package which has been designated in the Events Descriptor 1780 on the termination to which the digit map is being applied. (The 1781 mapping between events and digit map symbols is defined in the 1782 documentation for packages associated with channel-associated 1783 signalling systems such as DTMF, MF, or R2. Digits "0" through "9" 1784 MUST be mapped to the corresponding digit events within the 1785 signalling system concerned. Letters should be allocated in logical 1786 fashion, facilitating the use of range notation for alternative 1787 events.) 1789 The letter "x" is used as a wildcard, designating any event 1790 corresponding to symbols in the range "0"-"9". The string may also 1791 contain explicit ranges and, more generally, explicit sets of 1792 symbols, designating alternative events any one of which satisfies 1793 that position of the digit map. Finally, the dot symbol "." stands 1794 for zero or more repetitions of the event selector (event, range of 1795 events, set of alternative events, or wildcard) that precedes it. 1796 As a consequence of the third timing rule above, inter-event timing 1797 while matching a terminal dot symbol uses the short timer by 1798 default. 1800 In addition to these event symbols, the string may contain "S" and 1801 "L" inter-event timing specifiers and the "Z" duration modifier. 1802 "S" and "L" respectively indicate that the MG should use the short 1803 (S) timer or the long (L) timer for subsequent events, over-riding 1804 the timing rules described above. If an explicit timing specifier 1806 Rosen et al Standards Track -- Expires Nov 2000 34 1807 Megaco Protocol May 2000 1809 is in effect in one alternative event sequence, but none is given in 1810 any other candidate alternative, the timer value set by the explicit 1811 timing specifier must be used. If all sequences with explicit 1812 timing controls are dropped from the candidate set, timing reverts 1813 to the default rules given above. Finally, if conflicting timing 1814 specifiers are in effect in different alternative sequences, the 1815 results are undefined. 1817 A "Z" designates a long duration event: placed in front of the 1818 symbol(s) designating the event(s) which satisfy a given digit 1819 position, it indicates that that position is satisfied only if the 1820 duration of the event exceeds the long-duration threshold. The 1821 value of this threshold is assumed to be provisioned in the MG. 1823 7.1.14.4 DigitMap Completion Event 1825 A digit map is active while the events descriptor which invoked it 1826 is active and it has not completed. A digit map completes when: 1827 * a timer has expired, or 1829 * an alternative event sequence has been matched and no other 1830 alternative event sequence in the digit map could be matched 1831 through detection of an additional event (unambiguous match), or 1833 * an event has been detected such that a match to a complete 1834 alternative event sequence of the digit map will be impossible no 1835 matter what additional events are received. 1837 Upon completion, a digit map completion event as defined in the 1838 package providing the events being mapped into the digit map shall 1839 be generated. At that point the digit map is deactivated. 1840 Subsequent events in the package are processed as per the currently 1841 active event processing mechanisms. 1843 7.1.14.5 DigitMap Procedures 1845 Pending completion, successive events shall be processed according 1846 to the following rules: 1848 1. The "current dial string", an internal variable, is initially 1849 empty. The set of candidate alternative event sequences includes 1850 all of the alternatives specified in the digit map. 1852 2. At each step, a timer is set to wait for the next event, based 1853 either on the default timing rules given above or on explicit 1854 timing specified in one or more alternative event sequences. If 1855 the timer expires and a member of the candidate set of 1856 alternatives is fully satisfied, a timeout completion with full 1857 match is reported. If the timer expires and part or none of any 1858 candidate alternative is satisfied, a timeout completion with 1859 partial match is reported. 1861 Rosen et al Standards Track -- Expires Nov 2000 35 1862 Megaco Protocol May 2000 1864 3. If an event is detected before the timer expires, it is mapped to 1865 a digit string symbol and provisionally added to the end of the 1866 current dial string. The duration of the event (long or not 1867 long) is noted if and only if this is relevant in the current 1868 symbol position (because at least one of the candidate 1869 alternative event sequences includes the "Z" modifier at this 1870 position in the sequence). 1872 4. The current dial string is compared to the candidate alternative 1873 event sequences. If and only if a sequence expecting a long- 1874 duration event at this position is matched (i.e. the event had 1875 long duration and met the specification for this position), then 1876 any alternative event sequences not specifying a long duration 1877 event at this position are discarded, and the current dial string 1878 is modified by inserting a "Z" in front of the symbol 1879 representing the latest event. Any sequence expecting a long- 1880 duration event at this position but not matching the observed 1881 event is discarded from the candidate set. If alternative event 1882 sequences not specifying a long duration event in the given 1883 position remain in the candidate set after application of the 1884 above rules, the observed event duration is treated as irrelevant 1885 in assessing matches to them. 1887 5. If exactly one candidate remains and it has been fully matched, a 1888 completion event is generated indicating an unambiguous match. 1889 If no candidates remain, the latest event is removed from the 1890 current dial string and a completion event is generated 1891 indicating full match if one of the candidates from the previous 1892 step was fully satisfied before the latest event was detected, or 1893 partial match otherwise. The event removed from the current dial 1894 string will then be reported as per the currently active event 1895 processing mechanisms. 1897 6. If no completion event is reported out of step 5, processing 1898 returns to step 2. 1900 7.1.14.6 DigitMap Activation 1902 A digit map is activated whenever a new event descriptor is applied 1903 to the termination or embedded event descriptor is activated, and 1904 that event descriptor contains a digit map completion event which 1905 itself contains a digit map parameter. Each new activation of a 1906 digit map begins at step 1 of the above procedure, with a clear 1907 current dial string. Any previous contents of the current dial 1908 string from an earlier activation are lost. 1910 7.1.14.7 Interaction of DigitMap and Event Processing 1912 While the digit map is activated, detection is enabled for all 1913 events defined in the package containing the specified digit map 1914 completion event. Normal event behaviour (e.g. stopping of signals 1916 Rosen et al Standards Track -- Expires Nov 2000 36 1917 Megaco Protocol May 2000 1919 unless the digit completion event has the KeepActive flag enabled) 1920 continues to apply for each such event detected, except that: 1922 * the events in the package containing the specified digit map 1923 completion event other than the completion event itself are not 1924 individually notified, and 1926 * an event that triggers a partial match completion event is not 1927 recognized and therefore has no side effects until reprocessed 1928 following the recognition of the digit map completion event. 1930 7.1.14.8 Wildcards 1932 Note that if a package contains a digit map completion event, then 1933 an event specification consisting of the package name with a 1934 wildcarded ItemID (Property Name) will activate a digit map if the 1935 event includes a digit map parameter. Regardless of whether a digit 1936 map is activated, if the package also contains the digit events 1937 themselves, this form of event specification will cause the 1938 individual events to be reported to the MGC as they are detected. 1940 7.1.14.9 Example 1942 As an example, consider the following dial plan: 1944 +------------------------+------------------------------------------+ 1945 | 0 | Local operator | 1946 |------------------------+------------------------------------------| 1947 | 00 | Long distance operator | 1948 |------------------------+------------------------------------------| 1949 | xxxx | Local extension number (starts with 1-7) | 1950 |------------------------+------------------------------------------| 1951 | 8xxxxxxx | Local number | 1952 |------------------------+------------------------------------------| 1953 | #xxxxxxx | Off-site extension | 1954 |------------------------+------------------------------------------| 1955 | *xx | Star services | 1956 |------------------------+------------------------------------------| 1957 | 91xxxxxxxxxx | Long distance number | 1958 |------------------------+------------------------------------------| 1959 | 9011 + up to 15 digits | International number | 1960 +------------------------+------------------------------------------+ 1962 If the DTMF detection package described in Annex E (section E.6) is 1963 used to collect the dialled digits, then the dialling plan shown 1964 above results in the following digit map: 1966 (0| 00|[1-7]xxx|8xxxxxxx|Fxxxxxxx|Exx|91xxxxxxxxxx|9011x.) 1968 7.1.15 Statistics Descriptor 1970 Rosen et al Standards Track -- Expires Nov 2000 37 1971 Megaco Protocol May 2000 1973 The Statistics parameter provides information describing the status 1974 and usage of a Termination during its existence within a specific 1975 Context. There is a set of standard statistics kept for each 1976 termination where appropriate (number of octets sent and received 1977 for example). The particular statistical properties that are 1978 reported for a given Termination are determined by the Packages 1979 realized by the Termination. By default, statistics are reported 1980 when the Termination is Subtracted from the Context. This behavior 1981 can be overridden by including an empty AuditDescriptor in the 1982 Subtract command. Statistics may also be returned from the 1983 AuditValue command, or any Add/Move/Modify command using the Audit 1984 descriptor. 1985 Statistics are cumulative; reporting Statistics does not reset them. 1986 Statistics are reset when a Termination is Subtracted from a 1987 Context. 1989 7.1.16 Packages Descriptor 1991 Used only with the AuditValue command, the PackageDescriptor returns 1992 a list of Packages realized by the Termination. 1994 7.1.17 ObservedEvents Descriptor 1996 ObservedEvents is supplied with the Notify command to inform the MGC 1997 of which event(s) were detected. Used with the AuditValue command, 1998 the ObservedEventsDescriptor returns events in the event buffer 1999 which have not been Notified. ObservedEvents contains the 2000 RequestIdentifier of the EventsDescriptor that triggered the 2001 notification, the event(s) detected and the detection time(s). 2002 Detection times are reported with a precision of hundredths of a 2003 second. Time is expressed in UTC. 2005 7.1.18 Topology Descriptor 2007 A topology descriptor is used to specify flow directions between 2008 terminations in a Context. Contrary to the descriptors in previous 2009 sections, the topology descriptor applies to a Context instead of a 2010 Termination. The default topology of a Context is that each 2011 termination's transmission is received by all other terminations. 2012 The Topology Descriptor is optional to implement. 2014 The Topology Descriptor occurs before the commands in an action. It 2015 is possible to have an action containing only a Topology Descriptor, 2016 provided that the context to which the action applies already 2017 exists. 2019 A topology descriptor consists of a sequence of triples of the form 2020 (T1, T2, association). T1 and T2 specify Terminations within the 2021 Context, possibly using the ALL or CHOOSE wildcard. The association 2022 specifies how media flows between these two Terminations as follows. 2024 Rosen et al Standards Track -- Expires Nov 2000 38 2025 Megaco Protocol May 2000 2027 * (T1, T2, isolate) means that the Terminations matching T2 do not 2028 receive media from the Terminations matching T1, nor vice versa. 2030 * (T1, T2, oneway) means that the Terminations that match T2 receive 2031 media from the Terminations matching T1, but not vice versa. In 2032 this case use of the ALL wildcard such that there are Terminations 2033 that match both T1 and T2 is not allowed. 2035 * (T1, T2, bothway) means that the Terminations matching T2 receive 2036 media from the Terminations matching T1, and vice versa. In this 2037 case it is allowed to use wildcards such that there are 2038 Terminations that match both T1 and T2. However, if there is a 2039 Termination that matches both, no loopback is introduced. 2041 CHOOSE wildcards may be used in T1 and T2 as well, under the 2042 following restrictions: 2043 * the action (see section 8) of which the topology descriptor is 2044 part contains an Add command in which a CHOOSE wildcard is used; 2046 * if a CHOOSE wildcard occurs in T1 or T2, then a partial name SHALL 2047 NOT be specified. 2049 The CHOOSE wildcard in a topology descriptor matches the 2050 TerminationID that the MG assigns in the first Add command that uses 2051 a CHOOSE wildcard in the same action. An existing Termination that 2052 matches T1 or T2 in the Context to which a Termination is added, is 2053 connected to the newly added Termination as specified by the 2054 topology descriptor. The default association when a termination is 2055 not mentioned in the Topology descriptor is bothway (if T3 is added 2056 to a context with T1 and T2 with topology (T3,T1,oneway) it will be 2057 connected bothway to T2). 2059 The figure below and the table following it show some examples of 2060 the effect of including topology descriptors in actions. In these 2061 examples it is assumed that the topology descriptors are applied in 2062 sequence. 2064 +------------------+ +------------------+ +------------------+ 2065 | +----+ | | +----+ | | +----+ | 2066 | | T2 | | | | T2 | | | | T2 | | 2067 | +----+ | | +----+ | | +----+ | 2068 | ^ ^ | | ^ | | ^ | 2069 | | | | | | | | | | 2070 | +--+ +--+ | | +---+ | | +--+ | 2071 | | | | | | | | | | 2072 | v v | | v | | | | 2073 | +----+ +----+ | | +----+ +----+ | | +----+ +----+ | 2074 | | T1 |<-->| T3 | | | | T1 |<-->| T3 | | | | T1 |<-->| T3 | | 2075 | +----+ +----+ | | +----+ +----+ | | +----+ +----+ | 2076 +------------------+ +------------------+ +------------------+ 2077 1. No Topology Desc. 2. T1, T2 Isolate 3. T3, T2 oneway 2079 Rosen et al Standards Track -- Expires Nov 2000 39 2080 Megaco Protocol May 2000 2082 +------------------+ +------------------+ +------------------+ 2083 | +----+ | | +----+ | | +----+ | 2084 | | T2 | | | | T2 | | | | T2 | | 2085 | +----+ | | +----+ | | +----+ | 2086 | | | | ^ | | ^ ^ | 2087 | | | | | | | | | | 2088 | +--+ | | +---+ | | +--+ +--+ | 2089 | | | | | | | | | | 2090 | v | | v | | v v | 2091 | +----+ +----+ | | +----+ +----+ | | +----+ +----+ | 2092 | | T1 |<-->| T3 | | | | T1 |<-->| T3 | | | | T1 |<-->| T3 | | 2093 | +----+ +----+ | | +----+ +----+ | | +----+ +----+ | 2094 +------------------+ +------------------+ +------------------+ 2095 4. T2, T3 oneway 5. T2, T3 bothway 6. T1, T2 bothway 2097 Figure 4: A Sequence Of Example Topologies 2099 +----------+--------------------------------------------------+ 2100 | Topology | Description | 2101 |----------+--------------------------------------------------| 2102 | 1 | No topology descriptors | 2103 |----------+--------------------------------------------------| 2104 | When no topology descriptors are included, all terminations | 2105 | have a both way connection to all other terminations. | 2106 |----------+--------------------------------------------------| 2107 | 2 | T1, T2, Isolate | 2108 |----------+--------------------------------------------------| 2109 | Removes the connection between T1 and T2. | 2110 | T3 has a both way connection with both T1 and T2. T1 and | 2111 | T2 have bothway connection to T3. | 2112 |----------+--------------------------------------------------| 2113 | 3 | T3, T2, oneway | 2114 |----------+--------------------------------------------------| 2115 | A oneway connection from T3 to T2 (i.e. T2 receives media | 2116 | flow from T3). A bothway connection between T1 and T3. | 2117 |----------+--------------------------------------------------| 2118 | 4 | T2, T3, oneway | 2119 |----------+--------------------------------------------------| 2120 | A oneway connection between T2 to T3. | 2121 | T1 and T3 remain bothway connected | 2122 |----------+--------------------------------------------------| 2123 | 5 | T2, T3 bothway | 2124 |----------+--------------------------------------------------| 2125 | T2 is bothway connected to T3. This results in the same | 2126 | as 2. 2127 |----------+--------------------------------------------------| 2128 | 6 | T1, T2 bothway (T2, T3 bothway and T1,T3 bothway | 2129 | | may be implied or explicit). | 2130 |----------+--------------------------------------------------| 2131 | All terminations have a bothway connection to all other | 2132 | terminations. | 2134 Rosen et al Standards Track -- Expires Nov 2000 40 2135 Megaco Protocol May 2000 2137 |----------+--------------------------------------------------| 2138 | A oneway connection must implemented in such a way that the | 2139 | other Terminations in the Context are not aware of the | 2140 | change in topology. | 2141 +-------------------------------------------------------------| 2143 7.2 Command Application Programming Interface 2145 Following is an Application Programming Interface (API) describing 2146 the Commands of the protocol. This API is shown to illustrate the 2147 Commands and their parameters and is not intended to specify 2148 implementation (e.g. via use of blocking function calls). It 2149 describes the input parameters in parentheses after the command name 2150 and the return values in front of the Command. This is only for 2151 descriptive purposes; the actual Command syntax and encoding are 2152 specified in later subsections. The order of parameters to commands 2153 is not fixed. Descriptors may appear as parameters to commands in 2154 any order. The descriptors SHALL be processed in the order in which 2155 they appear. 2157 All parameters enclosed by square brackets ([. . . ]) are considered 2158 optional. 2160 7.2.1 Add 2162 The Add Command adds a Termination to a Context. 2164 TerminationID 2165 [,MediaDescriptor] 2166 [,ModemDescriptor] 2167 [,MuxDescriptor] 2168 [,EventsDescriptor] 2169 [,SignalsDescriptor] 2170 [,DigitMapDescriptor] 2171 [,ObservedEventsDescriptor] 2172 [,EventBufferDescriptor] 2173 [,StatisticsDescriptor] 2174 [,PackagesDescriptor] 2175 Add( TerminationID 2176 [, MediaDescriptor] 2177 [, ModemDescriptor] 2178 [, MuxDescriptor] 2179 [, EventsDescriptor] 2180 [, SignalsDescriptor] 2181 [, DigitMapDescriptor] 2182 [, AuditDescriptor] 2183 ) 2185 The TerminationID specifies the termination to be added to the 2186 Context. The Termination is either created, or taken from the null 2188 Rosen et al Standards Track -- Expires Nov 2000 41 2189 Megaco Protocol May 2000 2191 Context. For an existing Termination, the TerminationID would be 2192 specific. For a Termination that does not yet exist, the 2193 TerminationID is specified as CHOOSE in the command. The new 2194 TerminationID will be returned. Wildcards may be used in an Add, 2195 but such usage would be unusual. If the wildcard matches more than 2196 one TerminationID, all possible matches are attempted, with results 2197 reported for each one. The order of attempts when multiple 2198 TerminationIDs match is not specified. 2200 The optional MediaDescriptor describes all media streams. 2202 The optional ModemDescriptor and MuxDescriptor specify a modem and 2203 multiplexer if applicable. For convenience, if a Multiplex 2204 Descriptor is present in an Add command and lists any Terminations 2205 that are not currently in the Context, such Terminations are added 2206 to the context as if individual Add commands listing the 2207 Terminations were invoked. If an error occurs on such an implied 2208 Add, error 471 - Implied Add for Multiplex failure shall be returned 2209 and further processing of the command shall cease. 2211 The EventsDescriptor parameter is optional. If present, it provides 2212 the list of events that should be detected on the Termination. 2214 The SignalsDescriptor parameter is optional. If present, it 2215 provides the list of signals that should be applied to the 2216 Termination. 2218 The DigitMapDescriptor parameter is optional. If present, defines a 2219 DigitMap definition that may be used in an EventsDescriptor. 2221 The AuditDescriptor is optional. If present, the command will 2222 return descriptors as specified in the AuditDescriptor. 2224 All descriptors that can be modified could be returned by MG if a 2225 parameter was underspecified or overspecified. ObservedEvents, 2226 Statistics, and Packages, and the EventBuffer Descriptors are 2227 returned only if requested in the AuditDescriptor. 2229 Add SHALL NOT be used on a Termination with a serviceState of 2230 "OutofService". 2232 7.2.2 Modify 2234 The Modify Command modifies the properties of a Termination. 2236 TerminationID 2237 [,MediaDescriptor] 2238 [,ModemDescriptor] 2239 [,MuxDescriptor] 2240 [,EventsDescriptor] 2241 [,SignalsDescriptor] 2242 [,DigitMapDescriptor] 2244 Rosen et al Standards Track -- Expires Nov 2000 42 2245 Megaco Protocol May 2000 2247 [,ObservedEventsDescriptor] 2248 [,EventBufferDescriptor] 2249 [,StatisticsDescriptor] 2250 [,PackagesDescriptor] 2251 Modify( TerminationID 2252 [, MediaDescriptor] 2253 [, ModemDescriptor] 2254 [, MuxDescriptor] 2255 [, EventsDescriptor] 2256 [, SignalsDescriptor] 2257 [, DigitMapDescriptor] 2258 [, AuditDescriptor] 2259 ) 2261 The TerminationID may be specific if a single Termination in the 2262 Context is to be modified. Use of wildcards in the TerminationID 2263 may be appropriate for some operations. If the wildcard matches more 2264 than one TerminationID, all possible matches are attempted, with 2265 results reported for each one. The order of attempts when multiple 2266 TerminationIDs match is not specified. The CHOOSE option is an 2267 error, as the Modify command may only be used on existing 2268 Terminations. 2270 The remaining parameters to Modify are the same as those to Add. 2271 Possible return values are the same as those to Add. 2273 7.2.3 Subtract 2275 The Subtract Command disconnects a Termination from its Context and 2276 returns statistics on the Termination's participation in the 2277 Context. 2279 TerminationID 2280 [,MediaDescriptor] 2281 [,ModemDescriptor] 2282 [,MuxDescriptor] 2283 [,EventsDescriptor] 2284 [,SignalsDescriptor] 2285 [,DigitMapDescriptor] 2286 [,ObservedEventsDescriptor] 2287 [,EventBufferDescriptor] 2288 [,StatisticsDescriptor] 2289 [,PackagesDescriptor] 2290 Subtract(TerminationID 2291 [, AuditDescriptor] 2292 ) 2294 TerminationID in the input parameters represents the Termination 2295 that is being subtracted. The TerminationID may be specific or may 2296 be a wildcard value indicating that all (or a set of related) 2297 Terminations in the Context of the Subtract Command are to be 2298 subtracted. If the wildcard matches more than one TerminationID, all 2300 Rosen et al Standards Track -- Expires Nov 2000 43 2301 Megaco Protocol May 2000 2303 possible matches are attempted, with results reported for each one. 2304 The order of attempts when multiple TerminationIDs match is not 2305 specified. 2307 The use of CHOOSE in the TerminationID is an error, as the Subtract 2308 command may only be used on existing Terminations. 2310 ALL may be used as the ContextID as well as the TerminationId in a 2311 Subtract, which would have the effect of deleting all contexts, 2312 deleting all ephemeral terminations, and returning all physical 2313 terminations to Null context. 2315 By default, the Statistics parameter is returned to report 2316 information collected on the Termination or Terminations specified 2317 in the Command. The information reported applies to the 2318 Termination's or Terminations' existence in the Context from which 2319 it or they are being subtracted. 2321 The AuditDescriptor is optional. If present, the command will 2322 return descriptors as specified in the AuditDescriptor. Possible 2323 return values are the same as those to Add. 2325 When a provisioned Termination is Subtracted from a context, its 2326 property values shall revert to: 2327 * the default value, if specified for the property and not 2328 overridden by provisioning, 2329 * otherwise, the provisioned value. 2331 7.2.4 Move 2333 The Move Command moves a Termination to another Context from its 2334 current Context in one atomic operation. The Move command is the 2335 only command that refers to a Termination in a Context different 2336 from that to which the command is applied. The Move command shall 2337 not be used to move Terminations to or from the null Context. 2339 TerminationID 2340 [,MediaDescriptor] 2341 [,ModemDescriptor] 2342 [,MuxDescriptor] 2343 [,EventsDescriptor] 2344 [,SignalsDescriptor] 2345 [,DigitMapDescriptor] 2346 [,ObservedEventsDescriptor] 2347 [,EventBufferDescriptor] 2348 [,StatisticsDescriptor] 2349 [,PackagesDescriptor] 2350 Move( TerminationID 2351 [, MediaDescriptor] 2352 [, ModemDescriptor] 2353 [, MuxDescriptor] 2354 [, EventsDescriptor] 2356 Rosen et al Standards Track -- Expires Nov 2000 44 2357 Megaco Protocol May 2000 2359 [, SignalsDescriptor] 2360 [, DigitMapDescriptor] 2361 [, AuditDescriptor] 2362 ) 2364 The TerminationID specifies the Termination to be moved. It may be 2365 wildcarded, but CHOOSE shall not be used in the TerminationID. If 2366 the wildcard matches more than one TerminationID, all possible 2367 matches are attempted, with results reported for each one. The 2368 order of attempts when multiple TerminationIDs match is not 2369 specified. By convention, the Termination is subtracted from its 2370 previous Context. The Context to which the Termination is moved is 2371 indicated by the target ContextId in the Action. If the last 2372 remaining Termination is moved out of a Context, the Context is 2373 deleted. 2375 The remaining descriptors are processed as in the Modify Command. 2376 The AuditDescriptor with the Statistics option, for example, would 2377 return statistics on the Termination just prior to the Move. 2378 Possible descriptors returned from Move are the same as for Add. 2380 Move SHALL NOT be used on a Termination with a serviceState of 2381 "OutofService". 2383 7.2.5 AuditValue 2385 The AuditValue Command returns the current values of properties, 2386 events, signals and statistics associated with Terminations. 2388 TerminationID 2389 [,MediaDescriptor] 2390 [,ModemDescriptor] 2391 [,MuxDescriptor] 2392 [,EventsDescriptor] 2393 [,SignalsDescriptor] 2394 [,DigitMapDescriptor] 2395 [,ObservedEventsDescriptor] 2396 [,EventBufferDescriptor] 2397 [,StatisticsDescriptor] 2398 [,PackagesDescriptor] 2399 AuditValue(TerminationID, 2400 AuditDescriptor 2401 ) 2403 TerminationID may be specific or wildcarded. If the wildcard matches 2404 more than one TerminationID, all possible matches are attempted, 2405 with results reported for each one. The order of attempts when 2406 multiple TerminationIDs match is not specified. If a wildcarded 2407 response is requested, only one command return is generated, with 2408 the contents containing the union of the values of all Terminations 2409 matching the wildcard. This convention may reduce the volume of 2411 Rosen et al Standards Track -- Expires Nov 2000 45 2412 Megaco Protocol May 2000 2414 data required to audit a group of Terminations. Use of CHOOSE is an 2415 error. 2417 The appropriate descriptors, with the current values for the 2418 Termination, are returned from AuditValue. Values appearing in 2419 multiple instances of a descriptor are defined to be alternate 2420 values supported, with each parameter in a descriptor considered 2421 independent. 2423 ObservedEvents returns a list of events in the EventBuffer. If the 2424 ObservedEvents descriptor is audited while a DigitMap is active, the 2425 returned ObservedEvents descriptor also includes a digit map 2426 completion event that shows the current dial string but does not 2427 show a termination method. 2429 EventBuffer returns the set of events and associated parameter 2430 values currently enabled in the EventBufferDescriptor. 2431 PackagesDescriptor returns a list of packages realized by the 2432 Termination. DigitMapDescriptor returns the name or value of the 2433 current DigitMap for the Termination. DigitMap requested in an 2434 AuditValue command with TerminationID ALL returns all DigitMaps in 2435 the gateway. Statistics returns the current values of all 2436 statistics being kept on the Termination. Specifying an empty Audit 2437 Descriptor results in only the TerminationID being returned. This 2438 may be useful to get a list of TerminationIDs when used with 2439 wildcard. Annexes A and B provide a special syntax for presenting 2440 such a list in condensed form, such that the AuditValue command tag 2441 does not have to be repeated for each TerminationID. 2443 AuditValue results depend on the Context, viz. specific, null, or 2444 wildcarded. The TerminationID may be specific, or wildcarded. 2445 (Note that ContextID All does not include the null Context.) 2446 The following illustrates other information that can be obtained 2447 with the Audit Command: 2449 +-----------+---------------+--------------------------------------+ 2450 | ContextID | TerminationID | Information Obtained | 2451 +-----------+---------------+--------------------------------------+ 2452 | Specific | wildcard | Audit of matching Terminations in a | 2453 | | | Context | 2454 +-----------+---------------+--------------------------------------+ 2455 | Specific | specific | Audit of a single Termination in a | 2456 | | | Context | 2457 +-----------+---------------+--------------------------------------+ 2458 | Null | Root | Audit of Media Gateway state and | 2459 | | | events | 2460 +-----------+---------------+--------------------------------------+ 2461 | Null | wildcard | Audit of all matching Terminations | 2462 | | | in the Null Context | 2463 +-----------+---------------+--------------------------------------+ 2464 | Null | specific | Audit of a single Termination | 2465 | | | outside of any Context | 2466 +-----------+---------------+--------------------------------------+ 2468 Rosen et al Standards Track -- Expires Nov 2000 46 2469 Megaco Protocol May 2000 2471 | All | wildcard | Audit of all matching Terminations | 2472 | | | and the Context to which they are | 2473 | | | associated 2474 +-----------+---------------+--------------------------------------+ 2475 | All | Root | List of all ContextIds | 2476 +-----------+---------------+--------------------------------------+ 2478 7.2.6 AuditCapabilities 2480 The AuditCapabilities Command returns the possible values of 2481 properties, events, signals and statistics associated with 2482 Terminations. 2484 TerminationID 2485 [,MediaDescriptor] 2486 [,ModemDescriptor] 2487 [,MuxDescriptor] 2488 [,EventsDescriptor] 2489 [,SignalsDescriptor] 2490 [,ObservedEventsDescriptor] 2491 [,EventBufferDescriptor] 2492 [,StatisticsDescriptor] 2493 AuditCapabilities(TerminationID, 2494 AuditDescriptor 2495 ) 2497 The appropriate descriptors, with the possible values for the 2498 Termination are returned from AuditCapabilities. Descriptors may be 2499 repeated where there are multiple possible values. If a wildcarded 2500 response is requested, only one command return is generated, with 2501 the contents containing the union of the values of all Terminations 2502 matching the wildcard. This convention may reduce the volume of 2503 data required to audit a group of Terminations. 2505 Interpretation of what capabilities are requested for various values 2506 of ContextID and TerminationID is the same as in AuditValue. 2508 The EventsDescriptor returns the list of possible events on the 2509 Termination together with the list of all possible values for the 2510 EventsDescriptor Parameters. EventBufferDescriptor returns the same 2511 information as EventsDescriptor. The SignalsDescriptor returns the 2512 list of possible signals that could be applied to the Termination 2513 together with the list of all possible values for the Signals 2514 Parameters. StatisticsDescriptor returns the names of the 2515 statistics being kept on the termination. ObservedEventsDescriptor 2516 returns the names of active events on the termination. DigitMap and 2517 Packages are not legal in AuditCapability. 2519 Rosen et al Standards Track -- Expires Nov 2000 47 2520 Megaco Protocol May 2000 2522 7.2.7 Notify 2524 The Notify Command allows the Media Gateway to notify the Media 2525 Gateway Controller of events occurring within the Media Gateway. 2527 Notify(TerminationID, 2528 ObservedEventsDescriptor, 2529 [ErrorDescriptor] 2530 ) 2532 The TerminationID parameter specifies the Termination issuing the 2533 Notify Command. The TerminationID shall be a fully qualified name. 2535 The ObservedEventsDescriptor contains the RequestID and a list of 2536 events that the Media Gateway detected in the order that they were 2537 detected. Each event in the list is accompanied by parameters 2538 associated with the event and an indication of the time that the 2539 event was detected. Procedures for sending Notify commands with 2540 RequestID equal to 0 are for further study. 2542 Notify Commands with RequestID not equal to 0 shall occur only as 2543 the result of detection of an event specified by an Events 2544 Descriptor which is active on the termination concerned. 2546 The RequestID returns the RequestID parameter of the 2547 EventsDescriptor that triggered the Notify Command. It is used to 2548 correlate the notification with the request that triggered it. The 2549 events in the list must have been requested via the triggering 2550 EventsDescriptor or embedded events descriptor unless the RequestID 2551 is 0 (which is for further study). 2553 7.2.8 ServiceChange 2555 The ServiceChange Command allows the Media Gateway to notify the 2556 Media Gateway Controller that a Termination or group of Terminations 2557 is about to be taken out of service or has just been returned to 2558 service. The Media Gateway Controller may indicate that 2559 Termination(s) shall be taken out of or returned to service. The 2560 Media Gateway may notify the MGC that the capability of a 2561 Termination has changed. It also allows a MGC to hand over control 2562 of a MG to another MGC. 2564 TerminationID, 2565 [ServiceChangeDescriptor] 2566 ServiceChange(TerminationID, 2567 ServiceChangeDescriptor 2568 ) 2570 The TerminationID parameter specifies the Termination(s) that are 2571 taken out of or returned to service. Wildcarding of Termination 2572 names is permitted, with the exception that the CHOOSE mechanism 2574 Rosen et al Standards Track -- Expires Nov 2000 48 2575 Megaco Protocol May 2000 2577 shall not be used. Use of the "Root" TerminationID indicates a 2578 ServiceChange affecting the entire Media Gateway. 2580 The ServiceChangeDescriptor contains the following parameters as 2581 required: 2582 * ServiceChangeMethod 2583 * ServiceChangeReason 2584 * ServiceChangeDelay 2585 * ServiceChangeAddress 2586 * ServiceChangeProfile 2587 * ServiceChangeVersion 2588 * ServiceChangeMgcId 2589 * TimeStamp 2591 The ServiceChangeMethod parameter specifies the type of 2592 ServiceChange that will or has occurred: 2594 1) Graceful - indicates that the specified Terminations will be taken 2595 out of service after the specified ServiceChangeDelay; established 2596 connections are not yet affected, but the Media Gateway Controller 2597 should refrain from establishing new connections and should 2598 attempt to gracefully tear down existing connections on the 2599 Termination(s) affected by the serviceChange command. The MG 2600 should set termination serviceState at the expiry of 2601 ServiceChangeDelay or the removal of the termination from an 2602 active context (whichever is first), to "out of service". 2604 2) Forced - indicates that the specified Terminations were taken 2605 abruptly out of service and any established connections associated 2606 with them were lost. The MGC is responsible for cleaning up the 2607 context (if any) with which the failed termination is associated. 2608 At a minimum the termination shall be subtracted from the context. 2609 The termination serviceState should be "out of service". 2611 3) Restart - indicates that service will be restored on the specified 2612 Terminations after expiration of the ServiceChangeDelay. The 2613 serviceState should be set to "inService" upon expiry of 2614 ServiceChangeDelay. 2616 4) Disconnected - always applied with the Root TerminationID, 2617 indicates that the MG lost communication with the MGC, but it was 2618 subsequently restored. Since MG state may have changed, the MGC 2619 may wish to use the Audit command to resynchronize its state with 2620 the MG's. 2622 5) Handoff - sent from the MGC to the MG, this reason indicates that 2623 the MGC is going out of service and a new MGC association must be 2624 established. Sent from the MG to the MGC, this indicates that the 2625 MG is attempting to establish a new association in accordance with 2626 a Handoff received from the MGC with which it was previously 2627 associated. 2629 Rosen et al Standards Track -- Expires Nov 2000 49 2630 Megaco Protocol May 2000 2632 6) Failover - sent from MG to MGC to indicate the primary MG is out 2633 of service and a secondary MG is taking over. 2635 7) Another value whose meaning is mutually understood between the MG 2636 and the MGC. 2638 The ServiceChangeReason parameter specifies the reason why the 2639 ServiceChange has or will occur. It consists of an alphanumeric 2640 token (IANA registered) and, optionally, an explanatory string. 2642 The optional ServiceChangeAddress parameter specifies the address 2643 (e.g., IP port number for IP networks) to be used for subsequent 2644 communications. It can be specified in the input parameter 2645 descriptor or the returned result descriptor. ServiceChangeAddress 2646 and ServiceChangeMgcId parameters must not both be present in the 2647 ServiceChangeDescriptor or the ServiceChangeResultDescriptor. The 2648 ServiceChangeAddress provides an address to be used within the 2649 context of the association currently being negotiated, while the 2650 ServiceChangeMgcId provides an alternate address where the MG should 2651 seek to establish another association. 2653 The optional ServiceChangeDelay parameter is expressed in seconds. 2654 If the delay is absent or set to zero, the delay value should be 2655 considered to be null. In the case of a "graceful" 2656 ServiceChangeMethod, a null delay indicates that the Media Gateway 2657 Controller should wait for the natural removal of existing 2658 connections and should not establish new connections. For 2659 "graceful" only, a null delay means the MG must not set serviceState 2660 "out of service" until the termination is in the null context. 2662 The optional ServiceChangeProfile parameter specifies the Profile 2663 (if any) of the protocol supported. The ServiceChangeProfile 2664 includes the version of the profile supported. 2666 The optional ServiceChangeVersion parameter contains the protocol 2667 version and is used if protocol version negotiation occurs (see 2668 section 11.3). 2670 The optional TimeStamp parameter specifies the actual time as kept 2671 by the sender. It can be used by the responder to determine how its 2672 notion of time differs from that of its correspondent. TimeStamp is 2673 sent with a precision of hundredths of a second, and is expressed in 2674 UTC. 2676 The optional Extension parameter may contain any value whose meaning 2677 is mutually understood by the MG and MGC. 2679 A ServiceChange Command specifying the "Root" for the TerminationID 2680 and ServiceChangeMethod equal to Restart is a registration command 2681 by which a Media Gateway announces its existence to the Media 2682 Gateway Controller. The Media Gateway is expected to be provisioned 2683 with the name of one primary and optionally some number of alternate 2685 Rosen et al Standards Track -- Expires Nov 2000 50 2686 Megaco Protocol May 2000 2688 Media Gateway Controllers. Acknowledgement of the ServiceChange 2689 Command completes the registration process, except when the MGC has 2690 returned an alternative ServiceChangeMgcId as described in the 2691 following paragraph. The MG may specify the transport 2692 ServiceChangeAddress to be used by the MGC for sending messages in 2693 the ServiceChangeAddress parameter in the input 2694 ServiceChangeDescriptor. The MG may specify an address in the 2695 ServiceChangeAddress parameter of the ServiceChange request, and the 2696 MGC may also do so in the ServiceChange reply. In either case, the 2697 recipient must use the supplied address as the destination for all 2698 subsequent transaction requests within the association. At the same 2699 time, as indicated in section 9, transaction replies and pending 2700 indications must be sent to the address from which the corresponding 2701 requests originated. This must be done even if it implies extra 2702 messaging because commands and responses cannot be packed together. 2703 The TimeStamp parameter shall be sent with a registration command 2704 and its response. 2706 The Media Gateway Controller may return an ServiceChangeMgcId 2707 parameter that describes the Media Gateway Controller that should 2708 preferably be contacted for further service by the Media Gateway. 2709 In this case the Media Gateway shall reissue the ServiceChange 2710 command to the new Media Gateway Controller. The Gateway specified 2711 in an ServiceChangeMgcId, if provided, shall be contacted before any 2712 further alternate MGCs. On a HandOff message from MGC to MG, the 2713 ServiceChangeMgcId is the new MGC that will take over from the 2714 current MGC. 2716 The return from ServiceChange is empty except when the Root 2717 terminationID is used. In that case it includes the following 2718 parameters as required: 2720 * ServiceChangeAddress, if the responding MGC wishes to specify a 2721 new destination for messages from the MG for the remainder of the 2722 association; 2724 * ServiceChangeMgcId, if the responding MGC does not wish to sustain 2725 an association with the MG; 2727 * ServiceChangeProfile, if the responder wishes to negotiate the 2728 profile to be used for the association; 2730 * ServiceChangeVersion, if the responder wishes to negotiate the 2731 version of the protocol to be used for the association. 2733 The following ServiceChangeReasons are defined. This list may be 2734 extended by an IANA registration as outlined in section 13.3. 2736 900 Service Restored 2737 901 Cold Boot 2738 902 Warm Boot 2739 903 MGC Directed Change 2741 Rosen et al Standards Track -- Expires Nov 2000 51 2742 Megaco Protocol May 2000 2744 904 Termination malfunctioning 2745 905 Termination taken out of service 2746 906 Loss of lower layer connectivity (e.g. downstream sync) 2747 907 Transmission Failure 2748 908 MG Impending Failure 2749 909 MGC Impending Failure 2750 910 Media Capability Failure 2751 911 Modem Capability Failure 2752 912 Mux Capability Failure 2753 913 Signal Capability Failure 2754 914 Event Capability Failure 2755 915 State Loss 2757 7.2.9 Manipulating and Auditing Context Attributes 2759 The commands of the protocol as discussed in the preceding sections 2760 apply to terminations. This section specifies how contexts are 2761 manipulated and audited. 2763 Commands are grouped into actions (see section 8). An action 2764 applies to one context. In addition to commands, an action may 2765 contain context manipulation and auditing instructions. 2767 An action request sent to a MG may include a request to audit 2768 attributes of a context. An action may also include a request to 2769 change the attributes of a context. 2771 The context properties that may be included in an action reply are 2772 used to return information to a MGC. This can be information 2773 requested by an audit of context attributes or details of the effect 2774 of manipulation of a context. 2776 If a MG receives an action which contains both a request to audit 2777 context attributes and a request to manipulate those attributes, the 2778 response SHALL include the values of the attributes after processing 2779 the manipulation request. 2781 7.2.10 Generic Command Syntax 2783 The protocol can be encoded in a binary format or in a text format. 2784 MGCs should support both encoding formats. MGs may support both 2785 formats. 2787 The protocol syntax for the binary format of the protocol is defined 2788 in Annex A. Annex C specifies the encoding of the Local and Remote 2789 descriptors for use with the binary format. 2791 A complete ABNF of the text encoding of the protocol per RFC2234 is 2792 given in Annex B. SDP is used as the encoding of the Local and 2793 Remote Descriptors for use with the text encoding as modified in 2794 section 7.1.8. 2796 Rosen et al Standards Track -- Expires Nov 2000 52 2797 Megaco Protocol May 2000 2799 7.3 Command Error Codes 2801 Errors consist of an IANA registered error code and an explanatory 2802 string. Sending the explanatory string is optional. 2803 Implementations are encouraged to append diagnostic information to 2804 the end of the string. 2806 When a MG reports an error to a MGC, it does so in an error 2807 descriptor. An error descriptor consists of an error code and 2808 optionally the associated explanatory string. 2810 The identified error codes are: 2811 400 - Bad Request 2812 401 - Protocol Error 2813 402 - Unauthorized 2814 403 - Syntax Error in Transaction 2815 406 - Version Not Supported 2816 410 - Incorrect identifier 2817 411 - The transaction refers to an unknown ContextId 2818 412 - No ContextIDs available 2820 421 - Unknown action or illegal combination of actions 2821 422 - Syntax Error in Action 2822 430 - Unknown TerminationID 2823 431 - No TerminationID matched a wildcard 2824 432 - Out of TerminationIDs or No TerminationID available 2825 433 - TerminationID is already in a Context 2826 440 - Unsupported or unknown Package 2827 441 - Missing RemoteDescriptor 2828 442 - Syntax Error in Command 2829 443 - Unsupported or Unknown Command 2830 444 - Unsupported or Unknown Descriptor 2831 445 - Unsupported or Unknown Property 2832 446 - Unsupported or Unknown Parameter 2833 447 - Descriptor not legal in this command 2834 448 - Descriptor appears twice in a command 2835 450 - No such property in this package 2836 451 - No such event in this package 2837 452 - No such signal in this package 2838 453 - No such statistic in this package 2839 454 - No such parameter value in this package 2840 455 - Parameter illegal in this Descriptor 2841 456 - Parameter or Property appears twice in this Descriptor 2842 471 - Implied Add for Multiplex failure 2844 500 - Internal Gateway Error 2845 501 - Not Implemented 2846 502 - Not ready. 2847 503 - Service Unavailable 2848 504 - Command Received from unauthorized entity 2849 505 - Command Received before Restart Response 2850 510 - Insufficient resources 2852 Rosen et al Standards Track -- Expires Nov 2000 53 2853 Megaco Protocol May 2000 2855 512 - Media Gateway unequipped to detect requested Event 2856 513 - Media Gateway unequipped to generate requested Signals 2857 514 - Media Gateway cannot send the specified announcement 2858 515 - Unsupported Media Type 2859 517 - Unsupported or invalid mode 2860 518 - Event buffer full 2861 519 - Out of space to store digit map 2862 520 - Media Gateway does not have a digit map 2863 521 - Termination is "ServiceChangeing" 2864 526 - Insufficient bandwidth 2865 529 - Internal hardware failure 2866 530 - Temporary Network failure 2867 531 - Permanent Network failure 2868 581 - Does Not Exist 2870 Rosen et al Standards Track -- Expires Nov 2000 54 2871 Megaco Protocol May 2000 2873 8. TRANSACTIONS 2875 Commands between the Media Gateway Controller and the Media Gateway 2876 are grouped into Transactions, each of which is identified by a 2877 TransactionID. Transactions consist of one or more Actions. An 2878 Action consists of a series of Commands that are limited to 2879 operating within a single Context. Consequently each Action 2880 typically specifies a ContextID. However, there are two 2881 circumstances where a specific ContextID is not provided with an 2882 Action. One is the case of modification of a Termination outside of 2883 a Context. The other is where the controller requests the gateway 2884 to create a new Context. Following is a graphic representation of 2885 the Transaction, Action and Command relationships. 2887 +----------------------------------------------------------+ 2888 | Transaction x | 2889 | +----------------------------------------------------+ | 2890 | | Action 1 | | 2891 | | +---------+ +---------+ +---------+ +---------+ | | 2892 | | | Command | | Command | | Command | | Command | | | 2893 | | | 1 | | 2 | | 3 | | 4 | | | 2894 | | +---------+ +---------+ +---------+ +---------+ | | 2895 | +----------------------------------------------------+ | 2896 | | 2897 | +----------------------------------------------------+ | 2898 | | Action 2 | | 2899 | | +---------+ | | 2900 | | | Command | | | 2901 | | | 1 | | | 2902 | | +---------+ | | 2903 | +----------------------------------------------------+ | 2904 | | 2905 | +----------------------------------------------------+ | 2906 | | Action 3 | | 2907 | | +---------+ +---------+ +---------+ | | 2908 | | | Command | | Command | | Command | | | 2909 | | | 1 | | 2 | | 3 | | | 2910 | | +---------+ +---------+ +---------+ | | 2911 | +----------------------------------------------------+ | 2912 +----------------------------------------------------------+ 2914 Figure 5 Transactions, Actions and Commands 2916 Transactions are presented as TransactionRequests. Corresponding 2917 responses to a TransactionRequest are received in a single reply, 2918 possibly preceded by a number of TransactionPending messages (see 2919 section 8.2.3). 2921 Transactions guarantee ordered Command processing. That is, 2922 Commands within a Transaction are executed sequentially. Ordering of 2923 Transactions is NOT guaranteed - transactions may be executed in any 2924 order, or simultaneously. 2926 Rosen et al Standards Track -- Expires Nov 2000 55 2927 Megaco Protocol May 2000 2929 At the first failing Command in a Transaction, processing of the 2930 remaining Commands in that Transaction stops. If a command contains 2931 a wildcarded TerminationID, the command is attempted with each of 2932 the actual TerminationIDs matching the wildcard. A response within 2933 the TransactionReply is included for each matching TerminationID, 2934 even if one or more instances generated an error. If any 2935 TerminationID matching a wildcard results in an error when executed, 2936 any commands following the wildcarded command are not attempted. 2938 Commands may be marked as "Optional" which can override this 2939 behaviour - if a command marked as Optional results in an error, 2940 subsequent commands in the Transaction will be executed. If a 2941 command fails, the MG shall as far as possible restore the state 2942 that existed prior to the attempted execution of the command before 2943 continuing with command processing. 2945 A TransactionReply includes the results for all of the Commands in 2946 the corresponding TransactionRequest. The TransactionReply includes 2947 the return values for the Commands that were executed successfully, 2948 and the Command and error descriptor for any Command that failed. 2949 TransactionPending is used to periodically notify the receiver that 2950 a Transaction has not completed yet, but is actively being 2951 processed. 2953 Applications SHOULD implement an application level timer per 2954 transaction. Expiration of the timer should cause a retransmission 2955 of the request. Receipt of a Reply should cancel the timer. 2956 Receipt of Pending should restart the timer. 2958 8.1 Common Parameters 2960 8.1.1 Transaction Identifiers 2962 Transactions are identified by a TransactionID, which is assigned by 2963 sender and is unique within the scope of the sender. A response 2964 containing an error descriptor to indicate that the TransactionID is 2965 missing in a request shall use TransactionID 0 in the corresponding 2966 TransactionReply. 2968 8.1.2 Context Identifiers 2970 Contexts are identified by a ContextID, which is assigned by the 2971 Media Gateway and is unique within the scope of the Media Gateway. 2972 The Media Gateway Controller shall use the ContextID supplied by the 2973 Media Gateway in all subsequent Transactions relating to that 2974 Context. The protocol makes reference to a distinguished value that 2975 may be used by the Media Gateway Controller when referring to a 2976 Termination that is currently not associated with a Context, namely 2977 the null ContextID. 2979 Rosen et al Standards Track -- Expires Nov 2000 56 2980 Megaco Protocol May 2000 2982 The CHOOSE wildcard is used to request that the Media Gateway create 2983 a new Context. The MGC shall not use partially specified ContextIDs 2984 containing the CHOOSE wildcard. 2986 The MGC may use the ALL wildcard to address all Contexts on the MG. 2987 The null Context is not included when the ALL wildcard is used. 2989 8.2 Transaction Application Programming Interface 2991 Following is an Application Programming Interface (API) describing 2992 the Transactions of the protocol. This API is shown to illustrate 2993 the Transactions and their parameters and is not intended to specify 2994 implementation (e.g. via use of blocking function calls). It will 2995 describe the input parameters and return values expected to be used 2996 by the various Transactions of the protocol from a very high level. 2997 Transaction syntax and encodings are specified in later subsections. 2999 8.2.1 TransactionRequest 3001 The TransactionRequest is invoked by the sender. There is one 3002 Transaction per request invocation. A request contains one or more 3003 Actions, each of which specifies its target Context and one or more 3004 Commands per Context. 3006 TransactionRequest(TransactionId { 3007 ContextID {Command _ Command}, 3008 . . . 3009 ContextID {Command _ Command } }) 3011 The TransactionID parameter must specify a value for later 3012 correlation with the TransactionReply or TransactionPending response 3013 from the receiver. 3015 The ContextID parameter must specify a value to pertain to all 3016 Commands that follow up to either the next specification of a 3017 ContextID parameter or the end of the TransactionRequest, whichever 3018 comes first. 3020 The Command parameter represents one of the Commands mentioned in 3021 the "Command Details" subsection titled "Application Programming 3022 Interface". 3024 8.2.2 TransactionReply 3026 The TransactionReply is invoked by the receiver. There is one reply 3027 invocation per transaction. A reply contains one or more Actions, 3028 each of which must specify its target Context and one or more 3029 Responses per Context. 3031 Rosen et al Standards Track -- Expires Nov 2000 57 3032 Megaco Protocol May 2000 3034 TransactionReply(TransactionID { 3035 ContextID { Response _ Response }, 3036 . . . 3037 ContextID { Response _ Response } }) 3039 The TransactionID parameter must be the same as that of the 3040 corresponding TransactionRequest. 3042 The ContextID parameter must specify a value to pertain to all 3043 Responses for the action. The ContextID may be specific or null. 3045 Each of the Response parameters represents a return value as 3046 mentioned in section 7.2, or an error descriptor if the command 3047 execution encountered an error. Commands after the point of failure 3048 are not processed and, therefore, Responses are not issued for them. 3050 An exception to this occurs if a command has been marked as optional 3051 in the Transaction request. If the optional command generates an 3052 error, the transaction still continues to execute, so the Reply 3053 would, in this case, have Responses after an Error. 3055 If the receiver encounters an error in processing a ContextID, the 3056 requested Action response will consist of the context ID and a 3057 single error descriptor, 422 Syntax Error in Action. 3059 If the receiver encounters an error such that it cannot determine a 3060 legal Action, it will return a TransactionReply consisting of the 3061 TransactionID and a single error descriptor, 422 Syntax Error in 3062 Action. If the end of an action cannot be reliably determined but 3063 one or more Actions can be parsed, it will process them and then 3064 send 422 Syntax Error in Action as the last action for the 3065 transaction. If the receiver encounters an error such that is 3066 cannot determine a legal Transaction, it will return a 3067 TransactionReply with a null TransactionID and a single error 3068 descriptor (403 Syntax Error in Transaction). 3070 If the end of a transaction can not be reliably determined and one 3071 or more Actions can be parsed, it will process them and then return 3072 403 Syntax Error in Transaction as the last action reply for the 3073 transaction. If no Actions can be parsed, it will return 403 Syntax 3074 Error in Transaction as the only reply 3076 If the terminationID cannot be reliably determined it will send 442 3077 Syntax Error in Command as the action reply. 3079 If the end of a command cannot be reliably determined it will return 3080 442 Syntax Error in Command as the reply to the last action it can 3081 parse. 3083 Rosen et al Standards Track -- Expires Nov 2000 58 3084 Megaco Protocol May 2000 3086 8.2.3 TransactionPending 3088 The receiver invokes the TransactionPending. A TransactionPending 3089 indicates that the Transaction is actively being processed, but has 3090 not been completed. It is used to prevent the sender from assuming 3091 the TransactionRequest was lost where the Transaction will take some 3092 time to complete. 3094 TransactionPending(TransactionID { } ) 3096 The TransactionID parameter must be the same as that of the 3097 corresponding TransactionRequest. A property of root 3098 (normalMGExecutionTime) is settable by the MGC to indicate the 3099 interval within which the MGC expects a response to any transaction 3100 from the MG. Another property (normalMGCExecutionTime) is settable 3101 by the MGC to indicate the interval within which the MG should 3102 expects a response to any transaction from the MGC. Senders may 3103 receive more than one TransactionPending for a command. If a 3104 duplicate request is received when pending, the responder may send a 3105 duplicate pending immediately, or continue waiting for its timer to 3106 trigger another Transaction Pending. 3108 8.3 Messages 3110 Multiple Transactions can be concatenated into a Message. Messages 3111 have a header, which includes the identity of the sender. The 3112 Message Identifier (MID) of a message is set to a provisioned name 3113 (e.g. domain address/domain name/device name) of the entity 3114 transmitting the message. Domain name is a suggested default. 3116 Every Message contains a Version Number identifying the version of 3117 the protocol the message conforms to. Versions consist of one or 3118 two digits, beginning with version 1 for the present version of the 3119 protocol. 3121 The transactions in a message are treated independently. There is 3122 no order implied, there is no application or protocol 3123 acknowledgement of a message. 3125 9. TRANSPORT 3127 The transport mechanism for the protocol should allow the reliable 3128 transport of transactions between an MGC and MG. The transport shall 3129 remain independent of what particular commands are being sent and 3130 shall be applicable to all application states. There are several 3131 transports defined for the protocol, which are defined in normative 3132 Annexes to this document. Additional Transports may be defined as 3133 additional annexes in subsequent editions of this document, or in 3134 separate documents. For transport of the protocol over IP, MGCs 3135 shall implement both TCP and UDP/ALF, an MG shall implement TCP or 3136 UDP/ALF or both. 3138 Rosen et al Standards Track -- Expires Nov 2000 59 3139 Megaco Protocol May 2000 3141 The MG is provisioned with a name or address (such as DNS name or IP 3142 address) of a primary and zero or more secondary MGCs (see section 3143 7.2.8) that is the address the MG uses to send messages to the MGC. 3144 If TCP or UDP is used as the protocol transport and the port to 3145 which the initial ServiceChange request is to be sent is not 3146 otherwise known, that request should be sent to the default port 3147 number for the protocol. This port number is 2944 for text-encoded 3148 operation or 2945 for binary-encoded operation, for either UDP or 3149 TCP. The MGC receives the message containing the ServiceChange 3150 request from the MG and can determine the MG's address from it. As 3151 described in section 7.2.8, either the MG or the MGC may supply an 3152 address in the ServiceChangeAddress parameter to which subsequent 3153 transaction requests must be addressed, but responses (including the 3154 response to the initial ServiceChange request) must always be sent 3155 back to the address which was the source of the corresponding 3156 request. 3158 9.1 Ordering of Commands 3160 This document does not mandate that the underlying transport 3161 protocol guarantees the sequencing of transactions sent to an 3162 entity. This property tends to maximize the timeliness of actions, 3163 but it has a few drawbacks. For example: 3164 * Notify commands may be delayed and arrive at the MGC after the 3165 transmission of a new command changing the EventsDescriptor 3167 * If a new command is transmitted before a previous one is 3168 acknowledged, there is no guarantee that prior command will be 3169 executed before the new one. 3171 Media Gateway Controllers that want to guarantee consistent 3172 operation of the Media Gateway may use the following rules. These 3173 rules are with respect to commands that are in different 3174 transactions. Commands that are in the same transaction are 3175 executed in order (see section 8). 3177 1. When a Media Gateway handles several Terminations, commands 3178 pertaining to the different Terminations may be sent in parallel, 3179 for example following a model where each Termination (or group of 3180 Terminations) is controlled by its own process or its own thread. 3182 2. On a Termination, there should normally be at most one outstanding 3183 command (Add or Modify or Move), unless the outstanding commands 3184 are in the same transaction. However, a Subtract command may be 3185 issued at any time. In consequence, a Media Gateway may sometimes 3186 receive a Modify command that applies to a previously subtracted 3187 Termination. Such commands should be ignored, and an error code 3188 should be returned. 3190 Rosen et al Standards Track -- Expires Nov 2000 60 3191 Megaco Protocol May 2000 3193 3. On a given Termination, there should normally be at most one 3194 outstanding Notify command at any time. 3196 4. In some cases, an implicitly or explicitly wildcarded Subtract 3197 command that applies to a group of Terminations may step in front 3198 of a pending Add command. The Media Gateway Controller should 3199 individually delete all Terminations for which an Add command was 3200 pending at the time of the global Subtract command. Also, new Add 3201 commands for Terminations named by the wild-carding (or implied in 3202 a Multiplex descriptor) should not be sent until the wild-carded 3203 Subtract command is acknowledged. 3205 5. AuditValue and AuditCapability are not subject to any sequencing. 3207 6. ServiceChange shall always be the first command sent by a MG as 3208 defined by the restart procedure. Any other command or response 3209 must be delivered after this ServiceChange command. 3211 These rules do not affect the command responder, which should always 3212 respond to commands. 3214 9.2 Protection against Restart Avalanche 3216 In the event that a large number of Media Gateways are powered on 3217 simultaneously and they were to all initiate a ServiceChange 3218 transaction, the Media Gateway Controller would very likely be 3219 swamped, leading to message losses and network congestion during the 3220 critical period of service restoration. In order to prevent such 3221 avalanches, the following behavior is suggested: 3223 1. When a Media Gateway is powered on, it should initiate a restart 3224 timer to a random value, uniformly distributed between 0 and a 3225 maximum waiting delay (MWD). Care should be taken to avoid 3226 synchronicity of the random number generation between multiple 3227 Media Gateways that would use the same algorithm. 3229 2. The Media Gateway should then wait for either the end of this 3230 timer or the detection of a local user activity, such as for 3231 example an off-hook transition on a residential Media Gateway. 3233 3. When the timer elapses, or when an activity is detected, the Media 3234 Gateway should initiate the restart procedure. 3236 The restart procedure simply requires the MG to guarantee that the 3237 first message that the Media Gateway Controller sees from this MG is 3238 a ServiceChange message informing the Media Gateway Controller about 3239 the restart. 3241 Note - The value of MWD is a configuration parameter that depends on 3242 the type of the Media Gateway. The following reasoning may be used 3243 to determine the value of this delay on residential gateways. 3245 Rosen et al Standards Track -- Expires Nov 2000 61 3246 Megaco Protocol May 2000 3248 Media Gateway Controllers are typically dimensioned to handle the 3249 peak hour traffic load, during which, in average, 10% of the lines 3250 will be busy, placing calls whose average duration is typically 3 3251 minutes. The processing of a call typically involves 5 to 6 Media 3252 Gateway Controller transactions between each Media Gateway and the 3253 Media Gateway Controller. This simple calculation shows that the 3254 Media Gateway Controller is expected to handle 5 to 6 transactions 3255 for each Termination, every 30 minutes on average, or, to put it 3256 otherwise, about one transaction per Termination every 5 to 6 3257 minutes on average. This suggests that a reasonable value of MWD 3258 for a residential gateway would be 10 to 12 minutes. In the absence 3259 of explicit configuration, residential gateways should adopt a value 3260 of 600 seconds for MWD. 3262 The same reasoning suggests that the value of MWD should be much 3263 shorter for trunking gateways or for business gateways, because they 3264 handle a large number of Terminations, and also because the usage 3265 rate of these Terminations is much higher than 10% during the peak 3266 busy hour, a typical value being 60%. These Terminations, during 3267 the peak hour, are this expected to contribute about one transaction 3268 per minute to the Media Gateway Controller load. A reasonable 3269 algorithm is to make the value of MWD per "trunk" Termination six 3270 times shorter than the MWD per residential gateway, and also 3271 inversely proportional to the number of Terminations that are being 3272 restarted. For example MWD should be set to 2.5 seconds for a 3273 gateway that handles a T1 line, or to 60 milliseconds for a gateway 3274 that handles a T3 line. 3276 10. SECURITY CONSIDERATIONS 3278 This section covers security when using the protocol in an IP 3279 environment. 3281 10.1 Protection of Protocol Connections 3283 A security mechanism is clearly needed to prevent unauthorized 3284 entities from using the protocol defined in this document for 3285 setting up unauthorized calls or interfering with authorized calls. 3286 The security mechanism for the protocol when transported over IP 3287 networks is IPsec [RFC2401 to RFC2411]. 3289 The AH header [RFC2402] affords data origin authentication, 3290 connectionless integrity and optional anti-replay protection of 3291 messages passed between the MG and the MGC. The ESP header [RFC2406] 3292 provides confidentiality of messages, if desired. For instance, the 3293 ESP encryption service should be requested if the session 3294 descriptions are used to carry session keys, as defined in SDP. 3296 Implementations of the protocol defined in this document employing 3297 the ESP header SHALL comply with section 5 of [RFC2406], which 3298 defines a minimum set of algorithms for integrity checking and 3300 Rosen et al Standards Track -- Expires Nov 2000 62 3301 Megaco Protocol May 2000 3303 encryption. Similarly, implementations employing the AH header SHALL 3304 comply with section 5 of [RFC2402], which defines a minimum set of 3305 algorithms for integrity checking using manual keys. 3307 Implementations SHOULD use IKE [RFC2409] to permit more robust 3308 keying options. Implementations employing IKE SHOULD support 3309 authentication with RSA signatures and RSA public key encryption. 3311 10.2 Interim AH scheme 3313 Implementation of IPsec requires that the AH or ESP header be 3314 inserted immediately after the IP header. This cannot be easily done 3315 at the application level. Therefore, this presents a deployment 3316 problem for the protocol defined in this document where the 3317 underlying network implementation does not support IPsec. 3319 As an interim solution, an optional AH header is defined within the 3320 H.248 protocol header. The header fields are exactly those of the 3321 SPI, SEQUENCE NUMBER and DATA fields as defined in [RFC2402]. The 3322 semantics of the header fields are the same as the "transport mode" 3323 of [RFC2402], except for the calculation of the Integrity Check 3324 value (ICV). In IPsec, the ICV is calculated over the entire IP 3325 packet including the IP header. This prevents spoofing of the IP 3326 addresses. To retain the same functionality, the ICV calculation 3327 should be performed across the entire transaction prepended by a 3328 synthesized IP header consisting of a 32 bit source IP address, a 32 3329 bit destination address and a 16 bit UDP destination port encoded as 3330 10 hex digits. When the interim AH mechanism is employed when TCP is 3331 the transport Layer, the UDP Port above becomes the TCP port, and 3332 all other operations are the same. 3334 Implementations of the H.248 protocol SHALL implement IPsec where 3335 the underlying operating system and the transport network supports 3336 IPsec. Implementations of the protocol using IPv4 SHALL implement 3337 the interim AH scheme. However, this interim scheme SHALL NOT be 3338 used when the underlying network layer supports IPsec. IPv6 3339 implementations are assumed to support IPsec and SHALL NOT use the 3340 interim AH scheme. 3342 All implementations of the interim AH mechanism SHALL comply with 3343 section 5 of [RFC2402] which defines a minimum set of algorithms for 3344 integrity checking using manual keys. 3346 The interim AH interim scheme does not provide protection against 3347 eavesdropping; thus forbidding third parties from monitoring the 3348 connections set up by a given termination. Also, it does not provide 3349 protection against replay attacks. These procedures do not 3350 necessarily protect against denial of service attacks by misbehaving 3351 MGs or misbehaving MGCs. However, they will provide an 3352 identification of these misbehaving entities, which should then be 3353 deprived of their authorization through maintenance procedures. 3355 Rosen et al Standards Track -- Expires Nov 2000 63 3356 Megaco Protocol May 2000 3358 10.3 Protection of Media Connections 3360 The protocol allows the MGC to provide MGs with "session keys" that 3361 can be used to encrypt the audio messages, protecting against 3362 eavesdropping. 3364 A specific problem of packet networks is "uncontrolled barge-in". 3365 This attack can be performed by directing media packets to the IP 3366 address and UDP port used by a connection. If no protection is 3367 implemented, the packets must be decompressed and the signals must 3368 be played on the "line side". 3370 A basic protection against this attack is to only accept packets 3371 from known sources, checking for example that the IP source address 3372 and UDP source port match the values announced in the Remote 3373 Descriptor. This has two inconveniences: it slows down connection 3374 establishment and it can be fooled by source spoofing: 3376 * To enable the address-based protection, the MGC must obtain the 3377 remote session description of the egress MG and pass it to the 3378 ingress MG. This requires at least one network roundtrip, and 3379 leaves us with a dilemma: either allow the call to proceed without 3380 waiting for the round trip to complete, and risk for example, 3381 "clipping" a remote announcement, or wait for the full roundtrip 3382 and settle for slower call-set-up procedures. 3384 * Source spoofing is only effective if the attacker can obtain valid 3385 pairs of source destination addresses and ports, for example by 3386 listening to a fraction of the traffic. To fight source spoofing, 3387 one could try to control all access points to the network. But 3388 this is in practice very hard to achieve. 3390 An alternative to checking the source address is to encrypt and 3391 authenticate the packets, using a secret key that is conveyed during 3392 the call set-up procedure. This will not slow down the call set-up, 3393 and provides strong protection against address spoofing. 3395 11. MG-MGC CONTROL INTERFACE 3397 The control association between MG and MGC is initiated at MG cold 3398 start, and announced by a ServiceChange message, but can be changed 3399 by subsequent events, such as failures or manual service events. 3400 While the protocol does not have an explicit mechanism to support 3401 multiple MGCs controlling a physical MG, it has been designed to 3402 support the multiple logical MG (within a single physical MG) that 3403 can be associated with different MGCs. 3405 11.1 Multiple Virtual MGs 3407 A physical Media Gateway may be partitioned into one or more Virtual 3408 MGs. A virtual MG consists of a set of statically partitioned 3410 Rosen et al Standards Track -- Expires Nov 2000 64 3411 Megaco Protocol May 2000 3413 physical Terminations and/or sets of ephemeral Terminations. A 3414 physical Termination is controlled by one MGC. The model does not 3415 require that other resources be statically allocated, just 3416 Terminations. The mechanism for allocating Terminations to virtual 3417 MGs is a management method outside the scope of the protocol. Each 3418 of the virtual MGs appears to the MGC as a complete MG client. 3420 A physical MG may have only one network interface, which must be 3421 shared across virtual MGs. In such a case, the packet/cell side 3422 Termination is shared. It should be noted however, that in use, 3423 such interfaces require an ephemeral instance of the Termination to 3424 be created per flow, and thus sharing the Termination is 3425 straightforward. This mechanism does lead to a complication, namely 3426 that the MG must always know which of its controlling MGCs should be 3427 notified if an event occurs on the interface. 3429 In normal operation, the Virtual MG will be instructed by the MGC to 3430 create network flows (if it is the originating side), or to expect 3431 flow requests (if it is the terminating side), and no confusion will 3432 arise. However, if an unexpected event occurs, the Virtual MG must 3433 know what to do with respect to the physical resources it is 3434 controlling. 3436 If recovering from the event requires manipulation of a physical 3437 interface's state, only one MGC should do so. These issues are 3438 resolved by allowing any of the MGCs to create EventsDescriptors to 3439 be notified of such events, but only one MGC can have read/write 3440 access to the physical interface properties; all other MGCs have 3441 read-only access. The management mechanism is used to designate 3442 which MGC has read/write capability, and is designated the Master 3443 MGC. 3445 Each virtual MG has its own Root Termination. In most cases the 3446 values for the properties of the Root Termination are independently 3447 settable by each MGC. Where there can only be one value, the 3448 parameter is read-only to all but the Master MGC. 3450 ServiceChange may only be applied to a Termination or set of 3451 Terminations partitioned to the Virtual MG or created (in the case 3452 of ephemeral Terminations) by that Virtual MG. 3454 11.2 Cold Start 3456 A MG is pre-provisioned by a management mechanism outside the scope 3457 of this protocol with a Primary and (optionally) an ordered list of 3458 Secondary MGCs. Upon a cold start of the MG, it will issue a 3459 ServiceChange command with a "Restart" method, on the Root 3460 Termination to its primary MGC. If the MGC accepts the MG, it will 3461 send a Transaction Accept, with the ServiceChangeMgcId set to 3462 itself. If the MG receives an ServiceChangeMgcId not equal to the 3463 MGC it contacted, it sends a ServiceChange to the MGC specified in 3464 the ServiceChangeMgcId. It continues this process until it gets a 3466 Rosen et al Standards Track -- Expires Nov 2000 65 3467 Megaco Protocol May 2000 3469 controlling MGC to accept its registration, or it fails to get a 3470 reply. Upon failure to obtain a reply, either from the Primary MGC, 3471 or a designated successor, the MG tries its pre-provisioned 3472 Secondary MGCs, in order. If the MG is unable to establish a 3473 control relationship with any MGC, it shall wait a random amount of 3474 time as described in section 9.2 and then start contacting its 3475 primary, and if necessary, its secondary MGCs again. 3477 It is possible that the reply to a ServiceChange with Restart will 3478 be lost, and a command will be received by the MG prior to the 3479 receipt of the ServiceChange response. The MG shall issue error 505 3480 - Command Received before Restart Response. 3482 11.3 Negotiation of Protocol Version 3484 The first ServiceChange command from an MG shall contain the version 3485 number of the protocol supported by the MG in the 3486 ServiceChangeVersion parameter. Upon receiving such a message, if 3487 the MGC supports only a lower version, then the MGC shall send a 3488 ServiceChangeReply with the lower version and thereafter all the 3489 messages between MG and MGC shall conform to the lower version of 3490 the protocol. If the MG is unable to comply and it has established 3491 a transport connection to the MGC, it should close that connection. 3492 In any event, it should reject all subsequent requests from the MGC 3493 with Error 406 Version Not supported. 3495 If the MGC supports a higher version than the MG but is able to 3496 support the lower version proposed by the MG, it shall send a 3497 ServiceChangeReply with the lower version and thereafter all the 3498 messages between MG and MGC shall conform to the lower version of 3499 the protocol. If the MGC is unable to comply, it shall reject the 3500 association, with Error 406 Version Not Supported. 3502 Protocol version negotiation may also occur at "handoff" and 3503 "failover" ServiceChanges. 3505 When extending the protocol with new versions, the following rules 3506 should be followed. 3508 1. Existing protocol elements, i.e., procedures, parameters, 3509 descriptor, property, values, should not be changed unless a 3510 protocol error needs to be corrected or it becomes necessary to 3511 change the operation of the service that is being supported by 3512 the protocol. 3514 2. The semantics of a command, a parameter, descriptor, property, 3515 value should not be changed. 3517 3. Established rules for formatting and encoding messages and 3518 parameters should not be modified. 3520 Rosen et al Standards Track -- Expires Nov 2000 66 3521 Megaco Protocol May 2000 3523 4. When information elements are found to be obsolete they can be 3524 marked as not used. However, the identifier for that information 3525 element will be marked as reserved. In that way it can not be 3526 used in future versions. 3528 11.4 Failure of an MG 3530 If a MG fails, but is capable of sending a message to the MGC, it 3531 sends a ServiceChange with an appropriate method (graceful or 3532 forced) and specifies the Root TerminationID. When it returns to 3533 service, it sends a ServiceChange with a "Restart" method. 3535 Allowing the MGC to send duplicate messages to both MGs accommodates 3536 pairs of MGs that are capable of redundant failover of one of the 3537 MGs. Only the Working MG shall accept or reject transactions. Upon 3538 failover, the Primary MG sends a ServiceChange command with a 3539 "Failover" method and a "MG Impending Failure" reason. The MGC then 3540 uses the secondary MG as the active MG. When the error condition is 3541 repaired, the Working MG can send a "ServiceChange" with a "Restart" 3542 method. 3544 11.5 Failure of an MGC 3546 If the MG detects a failure of its controlling MGC, it attempts to 3547 contact the next MGC on its pre-provisioned list. It starts its 3548 attempts at the beginning (Primary MGC), unless that was the MGC 3549 that failed, in which case it starts at its first Secondary MGC. It 3550 sends a ServiceChange message with a "Failover" method and a " MGC 3551 Impending Failure" reason. 3553 In partial failure, or manual maintenance reasons, an MGC may wish 3554 to direct its controlled MGs to use a different MGC. To do so, it 3555 sends a ServiceChange method to the MG with a "HandOff" method, and 3556 its designated replacement in ServiceChangeMgcId. The MG should send 3557 a ServiceChange message with a "Handoff" method and a "MGC directed 3558 change" reason to the designated MGC. If it fails to get a reply, 3559 or fails to see an Audit command subsequently, it should behave as 3560 if its MGC failed, and start contacting secondary MGCs. If the MG 3561 is unable to establish a control relationship with any MGC, it shall 3562 wait a random amount of time as described in section 9.2 and then 3563 start contacting its primary, and if necessary, its secondary MGCs 3564 again. 3566 No recommendation is made on how the MGCs involved in the Handoff 3567 maintain state information; this is considered to be out of scope of 3568 this recommendation. The MGC and MG may take the following steps 3569 when Handoff occurs. When the MGC initiates a HandOff, the handover 3570 should be transparent to Operations on the Media Gateway. 3571 Transactions can be executed in any order, and could be in progress 3572 when the ServiceChange is executed. Accordingly, commands in 3573 progress continue, transaction replies are sent to the new MGC 3574 (after a new control association is established), and the MG should 3576 Rosen et al Standards Track -- Expires Nov 2000 67 3577 Megaco Protocol May 2000 3579 expect outstanding transaction replies from the new MGC. No new 3580 messages shall be sent to the new MGC until the control association 3581 is established. Repeated transaction requests shall be directed to 3582 the new MGC. The MG shall maintain state on all terminations and 3583 contexts. 3585 It is possible that the MGC could be implemented in such a way that 3586 a failed MGC is replaced by a working MGC where the identity of the 3587 new MGC is the same as the failed one. In such a case, 3588 ServiceChangeMgcId would be specified with the previous value and 3589 the MG shall behave as if the value was changed, and send a 3590 ServiceChange message, as above. 3592 Pairs of MGCs that are capable of redundant failover can notify the 3593 controlled MGs of the failover by the above mechanism. 3595 12. PACKAGE DEFINITION 3597 The primary mechanism for extension is by means of Packages. 3598 Packages define additional Properties, Events, Signals and 3599 Statistics that may occur on Terminations. 3601 Packages defined by IETF will appear in separate RFCs. 3603 Packages defined by ITU-T may appear in the relevant recommendations 3604 (e.g. as annexes). 3606 1. A public document or a standard forum document, which can be 3607 referenced as the document that describes the package following 3608 the guideline above, should be specified. 3610 2. The document shall specify the version of the Package that it 3611 describes. 3613 3. The document should be available on a public web server and 3614 should have a stable URL. The site should provide a mechanism to 3615 provide comments and appropriate responses should be returned. 3617 12.1 Guidelines for defining packages 3619 Packages define Properties, Events, Signals, and Statistics. 3621 Packages may also define new error codes according to the guidelines 3622 given in section 13.2. This is a matter of documentary convenience: 3623 the package documentation is submitted to IANA in support of the 3624 error code registration. If a package is modified, it is unnecessary 3625 to provide IANA with a new document reference in support of the 3626 error code unless the description of the error code itself is 3627 modified. 3629 Rosen et al Standards Track -- Expires Nov 2000 68 3630 Megaco Protocol May 2000 3632 Names of all such defined constructs shall consist of the PackageID 3633 (which uniquely identifies the package) and the ID of the item 3634 (which uniquely identifies the item in that package). In the text 3635 encoding the two shall be separated by a forward slash ("/") 3636 character. Example: togen/playtone is the text encoding to refer to 3637 the play tone signal in the tone generation package. 3639 A Package will contain the following sections: 3641 12.1.1 Package 3643 Overall description of the package, specifying: 3644 * Package Name: only descriptive, 3645 * PackageID: Is an identifier 3646 * Description: 3647 * Version: A new version of a package can only add additional 3648 Properties, Events, Signals, Statistics and new possible values 3649 for an existing parameter described in the original package. No 3650 deletions or modifications shall be allowed. A version is an 3651 integer in the range from 1 to 99. 3653 * Extends (Optional): A package may extend an existing package. The 3654 version of the original package must be specified. When a package 3655 extends another package it shall only add additional Properties, 3656 Events, Signals, Statistics and new possible values for an 3657 existing parameter described in the original package. An extended 3658 package shall not redefine or overload a name defined in the 3659 original package. Hence, if package B version 1 extends package A 3660 version 1, version 2 of B will not be able to extend the A version 3661 2 if A version 2 defines a name already in B version 1. 3663 12.1.2 Properties 3665 Properties defined by the package, specifying: 3666 * Property Name: only descriptive. 3667 * PropertyID: Is an identifier 3668 * Description: 3669 * Type: One of: 3670 String: UTF-8 string 3671 Integer: 4 byte signed integer 3672 Double: 8 byte signed integer 3673 Character: Unicode UTF-8 encoding of a single letter. 3674 Could be more than one octet. 3675 Enumeration: One of a list of possible unique values (See 12.3) 3676 Sub-list: A list of several values from a list 3677 Boolean 3679 * Possible Values: 3680 * Defined in: Which Megaco descriptor the property is defined in. 3681 LocalControl is for stream dependent properties. TerminationState 3682 is for stream independent properties. These are expected to be 3683 the most common cases, but it is possible for properties to be 3685 Rosen et al Standards Track -- Expires Nov 2000 69 3686 Megaco Protocol May 2000 3688 defined in other descriptors. 3690 * Characteristics: Read / Write or both, and (optionally), global: 3691 Indicates whether a property is read-only, or read-write, and if 3692 it is global. If Global is omitted, the property is not global. 3693 If a property is declared as global, the value of the property is 3694 shared by all terminations realizing the package. 3696 12.1.3 Events 3698 Events defined by the package, specifying: 3699 * Event name: only descriptive. 3700 * EventID: Is an identifier 3701 * Description: 3702 * EventsDescriptor Parameters: Parameters used by the MGC to 3703 configure the event, and found in the EventsDescriptor. See 3704 section 12.2. 3706 * ObservedEventsDescriptor Parameters: Parameters returned to the 3707 MGC in Notify requests and in replies to command requests from 3708 the MGC that audit ObservedEventsDescriptor, and found in the 3709 ObservedEventsDescriptor. See section 12.2. 3711 12.1.4 Signals 3713 * Signals defined by the package, specifying: 3714 * Signal Name: only descriptive. 3715 * SignalID: Is an identifier. SignalID is used in a 3716 SignalsDescriptor 3717 * Description 3718 * SignalType: One of: 3719 - OO (On/Off) 3720 - TO (TimeOut) 3721 - BR (Brief) 3723 Note - SignalType may be defined such that it is dependent on 3724 the value of one or more parameters. Signals that would be 3725 played with SignalType BR or TO should have a default duration. 3726 The package has to define the default duration and signalType. 3728 * Duration: in hundredths of seconds 3729 * Additional Parameters: See section 12.2 3731 12.1.5 Statistics 3733 Statistics defined by the package, specifying: 3734 * Statistic name: only descriptive. 3735 * StatisticID: Is an identifier. StatisticID is used in a 3736 StatisticsDescriptor. 3737 * Description 3738 * Units: unit of measure, e.g. milliseconds, packets. 3740 Rosen et al Standards Track -- Expires Nov 2000 70 3741 Megaco Protocol May 2000 3743 12.1.6 Procedures 3745 Additional guidance on the use of the package. 3747 12.2 Guidelines to defining Properties, Statistics and Parameters to 3748 Events and Signals. 3750 * Parameter Name: only descriptive 3751 * ParameterID: Is an identifier 3752 * Type: One of: 3753 String: UTF-8 octet string 3754 Integer: 4 octet signed integer 3755 Double: 8 octet signed integer 3756 Character: Unicode UTF-8 encoding of a single letter. Could be 3757 more than one octet. 3758 Enumeration: One of a list of possible unique values (See 12.3) 3759 Sub-list: A list of several values from a list (not supported 3760 for statistics) 3761 Boolean 3763 * Possible values: 3764 * Description: 3766 12.3 Lists 3768 Possible values for parameters include enumerations. Enumerations 3769 may be defined in a list. It is recommended that the list be IANA 3770 registered so that packages that extend the list can be defined 3771 without concern for conflicting names. 3773 12.4 Identifiers 3775 Identifiers in text encoding shall be strings of up to 64 3776 characters, containing no spaces, starting with an alphanumeric 3777 character and consisting of alphanumeric characters and / or digits, 3778 and possibly including the special character underscore ("_"). 3780 Identifiers in binary encoding are 2 octets long. 3782 Both text and binary values shall be specified for each identifier, 3783 including identifiers used as values in enumerated types. 3785 12.5 Package Registration 3787 A package can be registered with IANA for interoperability reasons. 3788 See section 13 for IANA considerations. 3790 Rosen et al Standards Track -- Expires Nov 2000 71 3791 Megaco Protocol May 2000 3793 13. IANA CONSIDERATIONS 3795 13.1 Packages 3797 The following considerations SHALL be met to register a package with 3798 IANA: 3800 1. A unique string name, unique serial number and version number is 3801 registered for each package. The string name is used with text 3802 encoding. The serial number shall be used with binary encoding. 3803 Serial Numbers 60000-64565 are reserved for private use. Serial 3804 number 0 is reserved. 3806 2. A contact name, email and postal addresses for that contact shall 3807 be specified. The contact information shall be updated by the 3808 defining organization as necessary. 3810 3. A reference to a document that describes the package, which 3811 should be public: 3813 The document shall specify the version of the Package that it 3814 describes. 3816 If the document is public, it should be located on a public web 3817 server and should have a stable URL. The site should provide a 3818 mechanism to provide comments and appropriate responses should be 3819 returned. 3821 4. Packages registered by other than recognized standards bodies 3822 shall have a minimum package name length of 8 characters. 3824 5. All other package names are first come-first served if all other 3825 conditions are met 3827 13.2 Error Codes 3829 The following considerations SHALL be met to register an error code 3830 with IANA: 3832 1. An error number and a one line (80 character maximum) string is 3833 registered for each error. 3835 2. A complete description of the conditions under which the error is 3836 detected shall be included in a publicly available document. The 3837 description shall be sufficiently clear to differentiate the 3838 error from all other existing error codes. 3840 3. The document should be available on a public web server and 3841 should have a stable URL. 3843 Rosen et al Standards Track -- Expires Nov 2000 72 3844 Megaco Protocol May 2000 3846 4. Error numbers registered by recognized standards bodies shall 3847 have 3 or 4 character error numbers. 3849 5. Error numbers registered by all other organizations or 3850 individuals shall have 4 character error numbers. 3852 6. An error number shall not be redefined, nor modified except by 3853 the organization or individual that originally defined it, or 3854 their successors or assigns. 3856 13.3 ServiceChange Reasons 3858 The following considerations SHALL be met to register service change 3859 reason with IANA: 3861 1. A one phrase, 80-character maximum, unique reason code is 3862 registered for each reason. 3863 2. A complete description of the conditions under which the reason 3864 is used is detected shall be included in a publicly available 3865 document. The description shall be sufficiently clear to 3866 differentiate the reason from all other existing reasons. 3867 3. The document should be available on a public web server and 3868 should have a stable URL. 3870 Rosen et al Standards Track -- Expires Nov 2000 73 3871 Megaco Protocol May 2000 3873 ANNEX A: BINARY ENCODING OF THE PROTOCOL (NORMATIVE) 3875 This Annex specifies the syntax of messages using the notation 3876 defined in ASN.1 [ITU-T Recommendation X.680 (1997): Information 3877 Technology - Abstract Syntax Notation One (ASN.1) - Specification of 3878 basic notation.]. Messages shall be encoded for transmission by 3879 applying the basic encoding rules specified in [ITU-T Recommendation 3880 X.690(1994) Information Technology - ASN.1 Encoding Rules: 3881 Specification of Basic Encoding Rules (BER)]. 3883 A.1 Coding of wildcards 3885 The use of wildcards ALL and CHOOSE is allowed in the protocol. 3886 This allows a MGC to partially specify Termination IDs and let the 3887 MG choose from the values that conform to the partial specification. 3888 Termination IDs may encode a hierarchy of names. This hierarchy is 3889 provisioned. For instance, a TerminationID may consist of a trunk 3890 group, a trunk within the group and a circuit. Wildcarding must be 3891 possible at all levels. The following paragraphs explain how this 3892 is achieved. 3894 The ASN.1 description uses octet strings of up to 8 octets in length 3895 for Termination IDs. This means that Termination IDs consist of at 3896 most 64 bits. A fully specified Termination ID may be preceded by a 3897 sequence of wildcarding fields. A wildcarding field is one octet in 3898 length. Bit 7 (the most significant bit) of this octet specifies 3899 what type of wildcarding is invoked: if the bit value equals 1, 3900 then the ALL wildcard is used; if the bit value if 0, then the 3901 CHOOSE wildcard is used. Bit 6 of the wildcarding field specifies 3902 whether the wildcarding pertains to one level in the hierarchical 3903 naming scheme (bit value 0) or to the level of the hierarchy 3904 specified in the wildcarding field plus all lower levels (bit value 3905 1). Bits 0 through 5 of the wildcarding field specify the bit 3906 position in the Termination ID at which the starts. 3908 We illustrate this scheme with some examples. In these examples, 3909 the most significant bit in a string of bits appears on the left 3910 hand side. 3912 Assume that Termination IDs are three octets long and that each 3913 octet represents a level in a hierarchical naming scheme. A valid 3914 Termination ID is 3915 00000001 00011110 01010101. 3917 Addressing ALL names with prefix 00000001 00011110 is done as 3918 follows: 3919 wildcarding field: 10000111 3920 Termination ID: 00000001 00011110 xxxxxxxx. 3922 The values of the bits labeled "x" is irrelevant and shall be 3923 ignored by the receiver. 3925 Rosen et al Standards Track -- Expires Nov 2000 74 3926 Megaco Protocol May 2000 3928 Indicating to the receiver that is must choose a name with 00011110 3929 as the second octet is done as follows: 3930 wildcarding fields: 00010111 followed by 00000111 3931 Termination ID: xxxxxxxx 00011110 xxxxxxxx. 3933 The first wildcard field indicates a CHOOSE wildcard for the level 3934 in the naming hierarchy starting at bit 23, the highest level in our 3935 assumed naming scheme. The second wildcard field indicates a CHOOSE 3936 wildcard for the level in the naming hierarchy starting at bit 7, 3937 the lowest level in our assumed naming scheme. 3939 Finally, a CHOOSE-wildcarded name with the highest level of the name 3940 equal to 00000001 is specified as follows: 3941 wildcard field: 01001111 3942 Termination ID: 0000001 xxxxxxxx xxxxxxxx . 3944 Bit value 1 at bit position 6 of the first octet of the wildcard 3945 field indicates that the wildcarding pertains to the specified level 3946 in the naming hierarchy and all lower levels. 3948 Context IDs may also be wildcarded. In the case of Context IDs, 3949 however, specifying partial names is not allowed. Context ID 0x0 3950 SHALL be used to indicate the NULL Context, Context ID 0xFFFFFFFE 3951 SHALL be used to indicate a CHOOSE wildcard, and Context ID 3952 0xFFFFFFFF SHALL be used to indicate an ALL wildcard. 3954 TerminationID 0xFFFFFFFFFFFFFFFF SHALL be used to indicate the ROOT 3955 Termination. 3957 A.2 ASN.1 syntax specification 3959 This section contains the ASN.1 specification of the H.248 protocol 3960 syntax. 3962 NOTE - In case a transport mechanism is used that employs 3963 application level framing, the definition of Transaction below 3964 changes. Refer to the annex defining the transport mechanism for 3965 the definition that applies in that case. 3967 NOTE - The ASN.1 specification below contains a clause defining 3968 TerminationIDList as a sequence of TerminationIDs. The length of 3969 this sequence SHALL be one, except possibly when used in 3970 contextAuditResult. 3972 MEDIA-GATEWAY-CONTROL DEFINITIONS AUTOMATIC TAGS::= 3973 BEGIN 3975 MegacoMessage ::= SEQUENCE 3976 { 3977 authHeader AuthenticationHeader OPTIONAL, 3978 mess Message 3979 } 3981 Rosen et al Standards Track -- Expires Nov 2000 75 3982 Megaco Protocol May 2000 3984 AuthenticationHeader ::= SEQUENCE 3985 { 3986 secParmIndex SecurityParmIndex, 3987 seqNum SequenceNum, 3988 ad AuthData 3989 } 3991 SecurityParmIndex ::= OCTET STRING(SIZE(4)) 3993 SequenceNum ::= OCTET STRING(SIZE(4)) 3995 AuthData ::= OCTET STRING (SIZE (12..32)) 3997 Message ::= SEQUENCE 3998 { version INTEGER(0..99), 3999 -- The version of the protocol defined here is equal to 1. 4000 mId MId, -- Name/address of message originator 4001 messageBody CHOICE 4002 { 4003 messageError ErrorDescriptor, 4004 transactions SEQUENCE OF Transaction 4005 }, 4006 ... 4007 } 4009 MId ::= CHOICE 4010 { 4011 ip4Address IP4Address, 4012 ip6Address IP6Address, 4013 domainName DomainName, 4014 deviceName PathName, 4015 mtpAddress OCTET STRING(SIZE(2)), 4016 -- Addressing structure of mtpAddress: 4017 -- 15 0 4018 -- | PC | NI | 4019 -- 14 bits 2 bits 4020 ... 4021 } 4023 DomainName ::= SEQUENCE 4024 { 4025 name IA5String, 4026 -- The name starts with an alphanumeric digit followed by a 4027 -- sequence of alphanumeric digits, hyphens and dots. No two 4028 -- dots shall occur consecutively. 4029 portNumber INTEGER(0..65535) OPTIONAL 4030 } 4032 Rosen et al Standards Track -- Expires Nov 2000 76 4033 Megaco Protocol May 2000 4035 IP4Address ::= SEQUENCE 4036 { 4037 address OCTET STRING (SIZE(4)), 4038 portNumber INTEGER(0..65535) OPTIONAL 4039 } 4041 IP6Address ::= SEQUENCE 4042 { 4043 address OCTET STRING (SIZE(16)), 4044 portNumber INTEGER(0..65535) OPTIONAL 4045 } 4047 PathName ::= IA5String(SIZE (1..64)) 4048 -- See section A.3 4050 Transaction ::= CHOICE 4051 { 4052 transactionRequest TransactionRequest, 4053 transactionPending TransactionPending, 4054 transactionReply TransactionReply, 4055 transactionResponseAck TransactionResponseAck, 4056 -- use of response acks is dependent on underlying 4057 transport 4058 ... 4059 } 4061 TransactionId ::= INTEGER(0..4294967295) -- 32 bit unsigned integer 4063 TransactionRequest ::= SEQUENCE 4064 { 4065 transactionId TransactionId, 4066 actions SEQUENCE OF ActionRequest, 4067 ... 4068 } 4070 TransactionPending ::= SEQUENCE 4071 { 4072 transactionId TransactionId, 4073 ... 4074 } 4076 TransactionReply ::= SEQUENCE 4077 { 4078 transactionId TransactionId, 4079 immAckRequired NULL OPTIONAL, transactionResult 4080 CHOICE 4081 { 4082 transactionError ErrorDescriptor, 4083 actionReplies SEQUENCE OF ActionReply 4084 }, 4085 ... 4086 } 4088 Rosen et al Standards Track -- Expires Nov 2000 77 4089 Megaco Protocol May 2000 4091 TransactionResponseAck ::= SEQUENCE 4092 { 4093 firstAck TransactionId, 4094 lastAck TransactionId OPTIONAL 4095 } 4097 ErrorDescriptor ::= SEQUENCE 4098 { 4099 errorCode ErrorCode, 4100 errorText ErrorText OPTIONAL 4101 } 4103 ErrorCode ::= INTEGER(0..65535) 4104 -- See section 13 for IANA considerations w.r.t. error codes 4106 ErrorText ::= IA5String 4108 ContextID ::= INTEGER(0..4294967295) 4110 -- Context NULL Value: 0 4111 -- Context CHOOSE Value: 429467294 (0xFFFFFFFE) 4112 -- Context ALL Value: 4294967295 (0xFFFFFFFF) 4114 ActionRequest ::= SEQUENCE 4115 { 4116 contextId ContextID, 4117 contextRequest ContextRequest OPTIONAL, 4118 contextAttrAuditReq ContextAttrAuditRequest OPTIONAL, 4119 commandRequests SEQUENCE OF CommandRequest 4120 } 4122 ActionReply ::= SEQUENCE 4123 { 4124 contextId ContextID, 4125 errorDescriptor ErrorDescriptor OPTIONAL, 4126 contextReply ContextRequest OPTIONAL, 4127 commandReply SEQUENCE OF CommandReply 4128 } 4130 ContextRequest ::= SEQUENCE 4131 { 4132 priority INTEGER(0..15) OPTIONAL, 4133 emergency BOOLEAN OPTIONAL, 4134 topologyReq SEQUENCE OF TopologyRequest OPTIONAL, 4135 ... 4136 } 4138 Rosen et al Standards Track -- Expires Nov 2000 78 4139 Megaco Protocol May 2000 4141 ContextAttrAuditRequest ::= SEQUENCE 4142 { 4143 topology NULL OPTIONAL, 4144 emergency NULL OPTIONAL, 4145 priority NULL OPTIONAL, 4146 ... 4147 } 4149 CommandRequest ::= SEQUENCE 4150 { 4151 command Command, 4152 optional NULL OPTIONAL, 4153 wildcardReturn NULL OPTIONAL, 4154 ... 4155 } 4157 Command ::= CHOICE 4158 { 4159 addReq AmmRequest, 4160 moveReq AmmRequest, 4161 modReq AmmRequest, 4162 -- Add, Move, Modify requests have the same parameters 4163 subtractReq SubtractRequest, 4164 auditCapRequest AuditRequest, 4165 auditValueRequest AuditRequest, 4166 notifyReq NotifyRequest, 4167 serviceChangeReq ServiceChangeRequest, 4168 ... 4169 } 4171 CommandReply ::= CHOICE 4172 { 4173 addReply AmmsReply, 4174 moveReply AmmsReply, 4175 modReply AmmsReply, 4176 subtractReply AmmsReply, 4177 -- Add, Move, Modify, Subtract replies have the same parameters 4178 auditCapReply AuditReply, 4179 auditValueReply AuditReply, 4180 notifyReply NotifyReply, 4181 serviceChangeReply ServiceChangeReply, 4182 ... 4183 } 4185 Rosen et al Standards Track -- Expires Nov 2000 79 4186 Megaco Protocol May 2000 4188 TopologyRequest ::= SEQUENCE 4189 { 4190 terminationFrom TerminationID, 4191 terminationTo TerminationID, 4192 topologyDirection ENUMERATED 4193 { 4194 bothway(0), 4195 isolate(1), 4196 oneway(2) 4197 } 4198 } 4200 AmmRequest ::= SEQUENCE 4201 { 4202 terminationID TerminationIDList, 4203 descriptors SEQUENCE OF AmmDescriptor, 4204 -- At most one descriptor of each type (see AmmDescriptor) 4205 -- allowed in the sequence. 4206 ... 4207 } 4209 AmmDescriptor ::= CHOICE 4210 { 4211 mediaDescriptor MediaDescriptor, 4212 modemDescriptor ModemDescriptor, 4213 muxDescriptor MuxDescriptor, 4214 eventsDescriptor EventsDescriptor, 4215 eventBufferDescriptor EventBufferDescriptor, 4216 signalsDescriptor SignalsDescriptor, 4217 digitMapDescriptor DigitMapDescriptor, 4218 auditDescriptor AuditDescriptor, 4219 ... 4220 } 4222 AmmsReply ::= SEQUENCE 4223 { 4224 terminationID TerminationIDList, 4225 terminationAudit TerminationAudit OPTIONAL, 4226 ... 4227 } 4229 SubtractRequest ::= SEQUENCE 4230 { 4231 terminationID TerminationIDList, 4232 auditDescriptor AuditDescriptor OPTIONAL, 4233 ... 4234 } 4236 Rosen et al Standards Track -- Expires Nov 2000 80 4237 Megaco Protocol May 2000 4239 AuditRequest ::= SEQUENCE 4240 { 4241 terminationID TerminationID, 4242 auditDescriptor AuditDescriptor, 4243 ... 4244 } 4246 AuditReply ::= SEQUENCE 4247 { 4248 terminationID TerminationID, 4249 auditResult AuditResult, 4250 ... 4251 } 4253 AuditResult ::= CHOICE 4254 { 4255 contextAuditResult TerminationIDList, 4256 terminationAuditResult TerminationAudit 4257 } 4259 TerminationAudit ::= SEQUENCE OF AuditReturnParameter 4261 AuditReturnParameter ::= CHOICE 4262 { 4263 errorDescriptor ErrorDescriptor, 4264 mediaDescriptor MediaDescriptor, 4265 modemDescriptor ModemDescriptor, 4266 muxDescriptor MuxDescriptor, 4267 eventsDescriptor EventsDescriptor, 4268 eventBufferDescriptor EventBufferDescriptor, 4269 signalsDescriptor SignalsDescriptor, 4270 digitMapDescriptor DigitMapDescriptor, 4271 observedEventsDescriptor ObservedEventsDescriptor, 4272 statisticsDescriptor StatisticsDescriptor, 4273 packagesDescriptor PackagesDescriptor, 4274 emptyDescriptors AuditDescriptor, 4275 ... 4276 } 4278 AuditDescriptor ::= SEQUENCE 4279 { 4280 auditToken BIT STRING 4281 { 4282 muxToken(0), modemToken(1), mediaToken(2), 4283 eventsToken(3), signalsToken(4), 4284 digitMapToken(5), statsToken(6), 4285 observedEventsToken(7), 4286 packagesToken(8), eventBufferToken(9) 4287 } OPTIONAL, 4288 ... 4290 Rosen et al Standards Track -- Expires Nov 2000 81 4291 Megaco Protocol May 2000 4293 } 4295 NotifyRequest ::= SEQUENCE 4296 { 4297 terminationID TerminationIDList, 4298 observedEventsDescriptor ObservedEventsDescriptor, 4299 errorDescriptor ErrorDescriptor OPTIONAL, 4300 ... 4301 } 4303 NotifyReply ::= SEQUENCE 4304 { 4305 terminationID TerminationIDList OPTIONAL, 4306 errorDescriptor ErrorDescriptor OPTIONAL, 4307 ... 4308 } 4310 ObservedEventsDescriptor ::= SEQUENCE 4311 { 4312 requestId RequestID, 4313 observedEventLst SEQUENCE OF ObservedEvent 4314 } 4316 ObservedEvent ::= SEQUENCE 4317 { 4318 eventName EventName, 4319 streamID StreamID OPTIONAL, 4320 eventParList SEQUENCE OF EventParameter, 4321 timeNotation TimeNotation OPTIONAL, 4322 ... 4323 } 4325 EventName ::= PkgdName 4327 EventParameter ::= SEQUENCE 4328 { 4329 eventParameterName Name, 4330 value Value 4331 } 4333 ServiceChangeRequest ::= SEQUENCE 4334 { 4335 terminationID TerminationIDList, 4336 serviceChangeParms ServiceChangeParm, 4337 ... 4338 } 4340 ServiceChangeReply ::= SEQUENCE 4341 { 4342 terminationID TerminationIDList, 4343 serviceChangeResult ServiceChangeResult, 4344 ... 4346 Rosen et al Standards Track -- Expires Nov 2000 82 4347 Megaco Protocol May 2000 4349 } 4351 -- For ServiceChangeResult, no parameters are mandatory. Hence the 4352 -- distinction between ServiceChangeParm and ServiceChangeResParm. 4354 ServiceChangeResult ::= CHOICE 4355 { 4356 errorDescriptor ErrorDescriptor, 4357 serviceChangeResParms ServiceChangeResParm 4358 } 4360 WildcardField ::= OCTET STRING(SIZE(1)) 4362 TerminationID ::= SEQUENCE 4363 { 4364 wildcard SEQUENCE OF WildcardField, 4365 id OCTET STRING(SIZE(1..8)), 4366 ... 4367 } 4368 -- See Section A.1 for explanation of wildcarding mechanism. 4369 -- Termination ID 0xFFFFFFFFFFFFFFFF indicates the ROOT Termination. 4371 TerminationIDList ::= SEQUENCE OF TerminationID 4373 MediaDescriptor ::= SEQUENCE 4374 { 4376 termStateDescr TerminationStateDescriptor OPTIONAL, 4377 streams CHOICE 4378 { 4379 oneStream StreamParms, 4380 multiStream SEQUENCE OF StreamDescriptor 4381 }, 4382 ... 4383 } 4385 StreamDescriptor ::= SEQUENCE 4386 { 4387 streamID StreamID, 4388 streamParms StreamParms 4389 } 4391 StreamParms ::= SEQUENCE 4392 { 4393 localControlDescriptor LocalControlDescriptor OPTIONAL, 4394 localDescriptor LocalRemoteDescriptor OPTIONAL, 4395 remoteDescriptor LocalRemoteDescriptor OPTIONAL, 4396 ... 4397 } 4399 Rosen et al Standards Track -- Expires Nov 2000 83 4400 Megaco Protocol May 2000 4402 LocalControlDescriptor ::= SEQUENCE 4403 { 4404 streamMode StreamMode OPTIONAL, 4405 reserveValue BOOLEAN, 4406 reserveGroup BOOLEAN, 4407 propertyParms SEQUENCE OF PropertyParm, 4408 ... 4409 } 4411 StreamMode ::= ENUMERATED 4412 { 4413 sendOnly(0), 4414 recvOnly(1), 4415 sendRecv(2), 4416 inactive(3), 4417 loopBack(4), 4418 ... 4419 } 4421 -- In PropertyParm, value is a SEQUENCE OF octet string. When sent 4422 -- by an MGC the interpretation is as follows: 4423 -- empty sequence means CHOOSE 4424 -- one element sequence specifies value 4425 -- If the sublist field is not selected, a longer sequence means 4426 -- "choose one of the values" (i.e. value1 OR value2 OR ...) 4427 -- If the sublist field is selected, 4428 -- a sequence with more than one element encodes the value of a 4429 -- list-valued property (i.e. value1 AND value2 AND ...). 4430 -- The relation field may only be selected if the value sequence 4431 -- has length 1. It indicates that the MG has to choose a value 4432 -- for the property. E.g., x > 3 (using the greaterThan 4433 -- value for relation) instructs the MG to choose any value larger 4434 -- than 3 for property x. 4435 -- The range field may only be selected if the value sequence 4436 -- has length 2. It indicates that the MG has to choose a value 4437 -- in the range between the first octet in the value sequence and 4438 -- the trailing octet in the value sequence, including the 4439 -- boundary values. 4440 -- When sent by the MG, only responses to an AuditCapability request 4441 -- may contain multiple values, a range, or a relation field. 4443 PropertyParm ::= SEQUENCE 4444 { 4445 name PkgdName, 4446 value SEQUENCE OF OCTET STRING, 4447 extraInfo CHOICE 4448 { 4449 relation Relation, 4450 range BOOLEAN, 4451 sublist BOOLEAN 4452 } OPTIONAL, 4453 ... 4455 Rosen et al Standards Track -- Expires Nov 2000 84 4456 Megaco Protocol May 2000 4458 } 4460 Name ::= OCTET STRING(SIZE(2)) 4462 PkgdName ::= OCTET STRING(SIZE(4)) 4463 -- represents Package Name (2 octets) plus Property Name (2 octets) 4464 -- To wildcard a package use 0xFFFF for first two octets, choose 4465 -- is not allowed. To reference native property tag specified in 4466 -- Annex C, use 0x0000 as first two octets. 4467 -- Wildcarding of Package Name is permitted only if Property Name is 4468 -- also wildcarded. 4470 Relation ::= ENUMERATED 4471 { 4472 greaterThan(0), 4473 smallerThan(1), 4474 unequalTo(2), 4475 ... 4476 } 4478 LocalRemoteDescriptor ::= SEQUENCE 4479 { 4480 propGrps SEQUENCE OF PropertyGroup, 4481 ... 4482 } 4484 PropertyGroup ::= SEQUENCE OF PropertyParm 4486 TerminationStateDescriptor ::= SEQUENCE 4487 { 4488 propertyParms SEQUENCE OF PropertyParm, 4489 eventBufferControl EventBufferControl OPTIONAL, 4490 serviceState ServiceState OPTIONAL, 4491 ... 4492 } 4494 EventBufferControl ::= ENUMERATED 4495 { 4496 off(0), 4497 lockStep(1), 4498 ... 4499 } 4501 ServiceState ::= ENUMERATED 4502 { 4503 test(0), 4504 outOfSvc(1), 4505 inSvc(2), 4506 ... 4507 } 4509 Rosen et al Standards Track -- Expires Nov 2000 85 4510 Megaco Protocol May 2000 4512 MuxDescriptor ::= SEQUENCE 4513 { 4514 muxType MuxType, 4515 termList SEQUENCE OF TerminationID, 4516 nonStandardData NonStandardData OPTIONAL, 4517 ... 4518 } 4520 MuxType ::= ENUMERATED 4521 { 4522 h221(0), 4523 h223(1), 4524 h226(2), 4525 v76(3), 4526 ... 4527 } 4529 StreamID ::= INTEGER(0..65535) -- 16 bit unsigned integer 4531 EventsDescriptor ::= SEQUENCE 4532 { 4533 requestID RequestID, 4534 eventList SEQUENCE OF RequestedEvent, 4535 ... 4536 } 4538 RequestedEvent ::= SEQUENCE 4539 { 4540 pkgdName PkgdName, 4541 streamID StreamID OPTIONAL, 4542 eventAction RequestedActions OPTIONAL, 4543 evParList SEQUENCE OF EventParameter, 4544 ... 4545 } 4547 RequestedActions ::= SEQUENCE 4548 { 4549 keepActive BOOLEAN, 4550 eventDM EventDM OPTIONAL, 4551 secondEvent SecondEventsDescriptor OPTIONAL, 4552 signalsDescriptor SignalsDescriptor OPTIONAL, 4553 ... 4554 } 4556 EventDM ::= CHOICE 4557 { digitMapName DigitMapName, 4558 digitMapValue DigitMapValue 4559 } 4561 Rosen et al Standards Track -- Expires Nov 2000 86 4562 Megaco Protocol May 2000 4564 SecondEventsDescriptor ::= SEQUENCE 4565 { 4566 requestID RequestID, 4567 eventList SEQUENCE OF SecondRequestedEvent, 4568 ... 4569 } 4571 SecondRequestedEvent ::= SEQUENCE 4572 { 4573 pkgdName PkgdName, 4574 streamID StreamID OPTIONAL, 4575 eventAction SecondRequestedActions OPTIONAL, 4576 evParList SEQUENCE OF EventParameter, 4577 ... 4578 } 4580 SecondRequestedActions ::= SEQUENCE 4581 { 4582 keepActive BOOLEAN, 4583 eventDM EventDM OPTIONAL, 4584 signalsDescriptor SignalsDescriptor OPTIONAL, 4585 ... 4586 } 4588 EventBufferDescriptor ::= SEQUENCE OF EventSpec 4590 EventSpec ::= SEQUENCE 4591 { 4592 eventName EventName, 4593 streamID StreamID OPTIONAL, 4594 eventParList SEQUENCE OF EventParameter, 4595 ... 4596 } 4598 SignalsDescriptor ::= SEQUENCE OF SignalRequest 4600 SignalRequest ::=CHOICE 4601 { 4602 signal Signal, 4603 seqSigList SeqSigList, 4604 ... 4605 } 4607 SeqSigList ::= SEQUENCE 4608 { 4609 id INTEGER(0..65535), 4610 signalList SEQUENCE OF Signal 4611 } 4613 Rosen et al Standards Track -- Expires Nov 2000 87 4614 Megaco Protocol May 2000 4616 Signal ::= SEQUENCE 4617 { 4618 signalName SignalName, 4619 streamID StreamID OPTIONAL, 4620 sigType SignalType OPTIONAL, 4621 duration INTEGER (0..65535) OPTIONAL, 4622 notifyCompletion NotifyCompletion OPTIONAL, 4623 keepActive BOOLEAN OPTIONAL, 4624 sigParList SEQUENCE OF SigParameter, 4625 ... 4626 } 4628 SignalType ::= ENUMERATED 4629 { 4630 brief(0), 4631 onOff(1), 4632 timeOut(2), 4633 ... 4634 } 4636 SignalName ::= PkgdName 4638 NotifyCompletion ::= BIT STRING 4639 { 4640 onTimeOut(0), onInterruptByEvent(1), 4641 onInterruptByNewSignalDescr(2), otherReason(3) 4642 } 4644 SigParameter ::= SEQUENCE 4645 { 4646 sigParameterName Name, 4647 value Value 4648 } 4650 RequestID ::= INTEGER(0..4294967295) -- 32 bit unsigned integer 4652 ModemDescriptor ::= SEQUENCE 4653 { 4654 mtl SEQUENCE OF ModemType, 4655 mpl SEQUENCE OF PropertyParm, 4656 nonStandardData NonStandardData OPTIONAL 4657 } 4659 ModemType ::= ENUMERATED 4660 { 4661 v18(0), 4662 v22(1), 4663 v22bis(2), 4664 v32(3), 4665 v32bis(4), 4666 v34(5), 4667 v90(6), 4669 Rosen et al Standards Track -- Expires Nov 2000 88 4670 Megaco Protocol May 2000 4672 v91(7), 4673 synchISDN(8), 4674 ... 4675 } 4677 DigitMapDescriptor ::= SEQUENCE 4678 { 4679 digitMapName DigitMapName OPTIONAL, 4680 digitMapValue DigitMapValue OPTIONAL 4681 } 4683 DigitMapName ::= Name 4685 DigitMapValue ::= SEQUENCE 4686 { 4687 startTimer INTEGER(0..99) OPTIONAL, 4688 shortTimer INTEGER(0..99) OPTIONAL, 4689 longTimer INTEGER(0..99) OPTIONAL, 4690 digitMapBody IA5String, 4691 -- See Section A.3 for explanation of digit map syntax 4692 ... 4693 } 4695 ServiceChangeParm ::= SEQUENCE 4696 { 4697 serviceChangeMethod ServiceChangeMethod, 4698 serviceChangeAddress ServiceChangeAddress OPTIONAL, 4699 serviceChangeVersion INTEGER(0..99) OPTIONAL, 4700 serviceChangeProfile ServiceChangeProfile OPTIONAL, 4701 serviceChangeReason Value, 4702 serviceChangeDelay INTEGER(0..4294967295) OPTIONAL, 4703 -- 32 bit unsigned integer 4704 serviceChangeMgcId MId OPTIONAL, 4705 timeStamp TimeNotation OPTIONAL, 4706 nonStandardData NonStandardData OPTIONAL, 4707 ... 4708 } 4710 ServiceChangeAddress ::= CHOICE 4711 { 4712 portNumber INTEGER(0..65535), -- TCP/UDP port number 4713 ip4Address IP4Address, 4714 ip6Address IP6Address, 4715 domainName DomainName, 4716 deviceName PathName, 4717 mtpAddress OCTET STRING(SIZE(2)), 4718 ... 4719 } 4721 Rosen et al Standards Track -- Expires Nov 2000 89 4722 Megaco Protocol May 2000 4724 ServiceChangeResParm ::= SEQUENCE 4725 { 4726 serviceChangeMgcId MId OPTIONAL, 4727 serviceChangeAddress ServiceChangeAddress OPTIONAL, 4728 serviceChangeVersion INTEGER(0..99) OPTIONAL, 4729 serviceChangeProfile ServiceChangeProfile OPTIONAL, 4730 ... 4731 } 4733 ServiceChangeMethod ::= ENUMERATED 4734 { 4735 failover(0), 4736 forced(1), 4737 graceful(2), 4738 restart(3), 4739 disconnected(4), 4740 handOff(5), 4741 ... 4742 } 4744 ServiceChangeProfile ::= SEQUENCE 4745 { 4746 profileName Name, 4747 version INTEGER(0..99) 4748 } 4750 PackagesDescriptor ::= SEQUENCE OF PackagesItem 4752 PackagesItem ::= SEQUENCE 4753 { 4754 packageName Name, 4755 packageVersion INTEGER(0..99), 4756 ... 4757 } 4759 StatisticsDescriptor ::= SEQUENCE OF StatisticsParameter 4761 StatisticsParameter ::= SEQUENCE 4762 { 4763 statName PkgdName, 4764 statValue Value 4765 } 4767 NonStandardData ::= SEQUENCE 4768 { 4769 nonStandardIdentifier NonStandardIdentifier, 4770 data OCTET STRING 4771 } 4773 Rosen et al Standards Track -- Expires Nov 2000 90 4774 Megaco Protocol May 2000 4776 NonStandardIdentifier ::= CHOICE 4777 { 4778 object OBJECT IDENTIFIER, 4779 h221NonStandard H221NonStandard, 4780 experimental IA5String(SIZE(8)), 4781 -- first two characters should be "X-" or "X+" 4782 ... 4783 } 4785 H221NonStandard ::= SEQUENCE 4786 { t35CountryCode1 INTEGER(0..255), 4787 t35CountryCode2 INTEGER(0..255), -- country, as per T.35 4788 t35Extension INTEGER(0..255), -- assigned nationally 4789 manufacturerCode INTEGER(0..65535), -- assigned nationally 4790 ... 4791 } 4793 TimeNotation ::= SEQUENCE 4794 { 4795 date IA5String(SIZE(8)), -- yyyymmdd format 4796 time IA5String(SIZE(8)) -- hhmmssss format 4797 } 4799 Value ::= OCTET STRING 4801 END 4803 A.3 Digit maps and path names 4805 From a syntactic viewpoint, digit maps are strings with syntactic 4806 restrictions imposed upon them. The syntax of valid digit maps is 4807 specified in ABNF [RFC 2234]. The syntax for digit maps presented 4808 in this section is for illustrative purposes only. The definition of 4809 digitMap in Annex B takes precedence in the case of differences 4810 between the two. 4812 digitMap = (digitString / LWSP "(" LWSP digitStringList LWSP ")" 4813 LWSP) 4814 digitStringList = digitString *( LWSP "/" LWSP digitString ) 4815 digitString = 1*(digitStringElement) 4816 digitStringElement = digitPosition [DOT] 4817 digitPosition = digitMapLetter / digitMapRange 4818 digitMapRange = ("x" / LWSP "[" LWSP digitLetter LWSP "]" LWSP) 4819 digitLetter = *((DIGIT "-" DIGIT) /digitMapLetter) 4820 digitMapLetter = DIGIT ;digits 0-9 4821 / %x41-4B / %x61-6B ;a-k and A-K 4822 / "L" / "S" ;Inter-event timers 4823 ;(long, short) 4824 / "Z" ;Long duration event 4825 DOT = %x2E ; "." 4826 LWSP = *(WSP / COMMENT / EOL) 4828 Rosen et al Standards Track -- Expires Nov 2000 91 4829 Megaco Protocol May 2000 4831 WSP = SP / HTAB 4832 COMMENT = ";" *(SafeChar / RestChar / WSP) EOL 4833 EOL = (CR [LF]) / LF 4834 SP = %x20 4835 HTAB = %x09 4836 CR = %x0D 4837 LF = %x0A 4838 SafeChar = DIGIT / ALPHA / "+" / "-" / "&" / "!" / "_" / "/" / 4839 "'" / "?" / "@" / "^" / "`" / "~" / "*" / "$" / "\" / 4840 "(" / ")" / "%" / "." 4841 RestChar = ";" / "[" / "]" / "{" / "}" / ":" / "," / "#" / 4842 "<" / ">" / "=" / %x22 4843 DIGIT = %x30-39 ; digits 0 through 9 4844 ALPHA = %x41-5A / %x61-7A ; A-Z, a-z 4845 A path name is also a string with syntactic restrictions imposed 4846 upon it. The ABNF production defining it is copied from Annex B. 4848 PathName = NAME *(["/"] ["*"] ["@"] (ALPHA / DIGIT)) ["*"] 4849 NAME = ALPHA *63(ALPHA / DIGIT / "_" ) 4851 Rosen et al Standards Track -- Expires Nov 2000 92 4852 Megaco Protocol May 2000 4854 ANNEX B TEXT ENCODING OF THE PROTOCOL (NORMATIVE) 4856 B.1 Coding of wildcards 4858 In a text encoding of the protocol, while TerminationIDs are 4859 arbitrary, by judicious choice of names, the wildcard character, "*" 4860 may be made more useful. When the wildcard character is 4861 encountered, it will "match" all TerminationIDs having the same 4862 previous and following characters (if appropriate). For example, if 4863 there were TerminationIDs of R13/3/1, R13/3/2 and R13/3/3, the 4864 TerminationID R13/3/* would match all of them. There are some 4865 circumstances where ALL Terminations must be referred to. The 4866 TerminationID "*" suffices, and is referred to as ALL. The CHOOSE 4867 TerminationID "$" may be used to signal to the MG that it has to 4868 create an ephemeral Termination or select an idle physical 4869 Termination. 4871 B.2 ABNF specification 4873 The protocol syntax is presented in ABNF according to RFC2234. 4875 ; Boolean values, indicated in the text as True and False, are 4876 ; encoded as "On" and "Off", respectively, in the ABNF. 4878 megacoMessage = LWSP [authenticationHeader SEP ] message 4880 authenticationHeader = AuthToken EQUAL SecurityParmIndex COLON 4881 SequenceNum COLON AuthData 4883 SecurityParmIndex = "0x" 8(HEXDIG) 4884 SequenceNum = "0x" 8(HEXDIG) 4885 AuthData = "0x" 24*64(HEXDIG) 4887 message = MegacopToken SLASH Version SEP mId SEP messageBody 4888 ; The version of the protocol defined here is equal to 1. 4890 messageBody = ( errorDescriptor / transactionList ) 4892 transactionList = 1*( transactionRequest / transactionReply / 4893 transactionPending / transactionResponseAck ) 4894 ;Use of response acks is dependent on underlying transport 4896 transactionPending = PendingToken EQUAL TransactionID LBRKT RBRKT 4898 transactionResponseAck = ResponseAckToken LBRKT transactionAck 4899 *(COMMA transactionAck) RBRKT 4900 transactionAck = transactionID / (transactionID "-" transactionID) 4902 transactionRequest = TransToken EQUAL TransactionID LBRKT 4903 actionRequest *(COMMA actionRequest) RBRKT 4905 Rosen et al Standards Track -- Expires Nov 2000 93 4906 Megaco Protocol May 2000 4908 actionRequest = CtxToken EQUAL ContextID LBRKT (( 4909 contextRequest [COMMA commandRequestList]) 4910 / commandRequestList) RBRKT 4912 contextRequest = ((contextProperties [COMMA contextAudit]) 4913 / contextAudit) 4915 contextProperties = contextProperty *(COMMA contextProperty) 4917 ; at-most-once 4918 contextProperty = (topologyDescriptor / priority / EmergencyToken) 4920 contextAudit = ContextAuditToken LBRKT 4921 contextAuditProperties *(COMMA 4922 contextAuditProperties) RBRKT 4924 ; at-most-once 4925 contextAuditProperties = ( TopologyToken / EmergencyToken / 4926 PriorityToken ) 4928 commandRequestList= ["O-"] commandRequest *(COMMA ["O-"] 4929 commandRequest) 4931 commandRequest = ( ammRequest / subtractRequest / auditRequest 4932 / notifyRequest / serviceChangeRequest) 4934 transactionReply = ReplyToken EQUAL TransactionID LBRKT 4935 [ ImmAckRequiredToken COMMA] 4936 ( errorDescriptor / actionReplyList ) RBRKT 4938 actionReplyList = actionReply *(COMMA actionReply ) 4940 actionReply = CtxToken EQUAL ContextID LBRKT 4941 ( errorDescriptor / commandReply ) RBRKT 4943 commandReply = (( contextProperties [COMMA commandReplyList] ) 4944 / commandReplyList ) 4946 commandReplyList = commandReplys *(COMMA commandReplys ) 4948 commandReplys = (serviceChangeReply / auditReply / ammsReply 4949 / notifyReply ) 4951 ;Add Move and Modify have the same request parameters 4952 ammRequest = (AddToken / MoveToken / ModifyToken ) EQUAL 4953 TerminationID [LBRKT ammParameter *(COMMA 4954 ammParameter) RBRKT] 4956 Rosen et al Standards Track -- Expires Nov 2000 94 4957 Megaco Protocol May 2000 4959 ;at-most-once 4960 ammParameter = (mediaDescriptor / modemDescriptor / 4961 muxDescriptor / eventsDescriptor / 4962 signalsDescriptor / digitMapDescriptor / 4963 eventBufferDescriptor / auditDescriptor) 4965 ammsReply = (AddToken / MoveToken / ModifyToken / 4966 SubtractToken ) EQUAL TerminationID [ LBRKT 4967 terminationAudit RBRKT ] 4969 subtractRequest = ["W-"] SubtractToken EQUAL TerminationID 4970 [ LBRKT auditDescriptor RBRKT] 4972 auditRequest = ["W-"] (AuditValueToken / AuditCapToken ) 4973 EQUAL TerminationID LBRKT auditDescriptor RBRKT 4975 auditReply = (AuditValueToken / AuditCapToken ) 4976 ( contextTerminationAudit / auditOther) 4978 auditOther = EQUAL TerminationID LBRKT 4979 terminationAudit RBRKT 4981 terminationAudit = auditReturnParameter *(COMMA 4982 auditReturnParameter) 4984 contextTerminationAudit = EQUAL CtxToken ( terminationIDList / 4985 LBRKT errorDescriptor RBRKT ) 4987 auditReturnParameter = (mediaDescriptor / modemDescriptor / 4988 muxDescriptor / eventsDescriptor / 4989 signalsDescriptor / digitMapDescriptor / 4990 observedEventsDescriptor / eventBufferDescriptor / 4991 statisticsDescriptor / packagesDescriptor / 4992 errorDescriptor / auditItem ) 4994 auditDescriptor = AuditToken LBRKT [ auditItem 4995 *(COMMA auditItem) ] RBRKT 4997 notifyRequest = NotifyToken EQUAL TerminationID 4998 LBRKT ( observedEventsDescriptor 4999 [ COMMA errorDescriptor ] ) RBRKT 5001 notifyReply = NotifyToken EQUAL TerminationID 5002 [ LBRKT errorDescriptor RBRKT ] 5004 serviceChangeRequest = ServiceChangeToken EQUAL TerminationID 5005 LBRKT serviceChangeDescriptor RBRKT 5007 serviceChangeReply = ServiceChangeToken EQUAL TerminationID 5008 [LBRKT (errorDescriptor / 5009 serviceChangeReplyDescriptor) RBRKT] 5011 Rosen et al Standards Track -- Expires Nov 2000 95 5012 Megaco Protocol May 2000 5014 errorDescriptor = ErrorToken EQUAL ErrorCode 5015 LBRKT [quotedString] RBRKT 5017 ErrorCode = 1*4(DIGIT) ; could be extended 5019 TransactionID = UINT32 5021 mId = (( domainAddress / domainName ) 5022 [":" portNumber]) / mtpAddress / deviceName 5024 ; ABNF allows two or more consecutive "." although it is meaningless 5025 ; in a domain name. 5026 domainName = "<" (ALPHA / DIGIT) *63(ALPHA / DIGIT / "-" / 5027 ".") ">" 5028 deviceName = pathNAME 5030 ;The values 0x0, 0xFFFFFFFE and 0xFFFFFFFF are reserved. 5031 ContextID = (UINT32 / "*" / "-" / "$") 5033 domainAddress = "[" (IPv4address / IPv6address) "]" 5034 ;RFC2373 contains the definition of IP6Addresses. 5035 IPv6address = hexpart [ ":" IPv4address ] 5036 IPv4address = V4hex DOT V4hex DOT V4hex DOT V4hex 5037 V4hex = 1*3(DIGIT) ; "0".."225" 5038 ; this production, while occurring in RFC2373, is not referenced 5039 ; IPv6prefix = hexpart SLASH 1*2DIGIT 5040 hexpart = hexseq "::" [ hexseq ] / "::" [ hexseq ] / hexseq 5041 hexseq = hex4 *( ":" hex4) 5042 hex4 = 1*4HEXDIG 5044 portNumber = UINT16 5046 ; An mtp address is two octets long 5047 mtpAddress = MTPToken LBRKT octetString RBRKT 5049 terminationIDList = LBRKT TerminationID *(COMMA TerminationID) 5050 RBRKT 5052 ; Total length of pathNAME must not exceed 64 chars. 5053 pathNAME = ["*"] NAME *("/" / "*"/ ALPHA / DIGIT /"_" / "$" ) 5054 ["@" pathDomainName ] 5056 ; ABNF allows two or more consecutive "." although it is meaningless 5057 ; in a path domain name. 5058 pathDomainName = (ALPHA / DIGIT / "*" ) 5059 *63(ALPHA / DIGIT / "-" / "*" / ".") 5061 TerminationID = "ROOT" / pathNAME / "$" / "*" 5063 mediaDescriptor = MediaToken LBRKT mediaParm *(COMMA mediaParm) 5064 RBRKT 5066 Rosen et al Standards Track -- Expires Nov 2000 96 5067 Megaco Protocol May 2000 5069 ; at-most-once per item 5070 ; and either streamParm or streamDescriptor but not both 5071 mediaParm = (streamParm / streamDescriptor / 5072 terminationStateDescriptor) 5074 ; at-most-once 5075 streamParm = ( localDescriptor / remoteDescriptor / 5076 localControlDescriptor ) 5078 streamDescriptor = StreamToken EQUAL StreamID LBRKT streamParm 5079 *(COMMA streamParm) RBRKT 5081 localControlDescriptor = LocalControlToken LBRKT localParm 5082 *(COMMA localParm) RBRKT 5084 ; at-most-once per item 5085 localParm = ( streamMode / propertyParm / 5086 reservedValueMode 5087 / reservedGroupMode ) 5089 reservedValueMode = ReservedValueToken EQUAL ( "ON" / "OFF" ) 5090 reservedGroupMode = ReservedGroupToken EQUAL ( "ON" / "OFF" ) 5092 streamMode = ModeToken EQUAL streamModes 5094 streamModes = (SendonlyToken / RecvonlyToken / 5095 SendrecvToken / 5096 InactiveToken / LoopbackToken ) 5098 propertyParm = pkgdName parmValue 5099 parmValue = (EQUAL alternativeValue/ INEQUAL VALUE) 5100 alternativeValue = ( VALUE 5101 / LSBRKT VALUE *(COMMA VALUE) RSBRKT 5102 ; sublist (i.e. A AND B AND ...) 5103 / LBRKT VALUE *(COMMA VALUE) RBRKT 5104 ; alternatives (i.e. A OR B OR ...) 5105 / LSBRKT VALUE COLON VALUE RSBRKT ) 5106 ; range 5107 INEQUAL = LWSP (">" / "<" / "#" ) LWSP 5108 LSBRKT = LWSP "[" LWSP 5109 RSBRKT = LWSP "]" LWSP 5111 localDescriptor = LocalToken LBRKT octetString RBRKT 5113 remoteDescriptor = RemoteToken LBRKT octetString RBRKT 5115 eventBufferDescriptor= EventBufferToken LBRKT eventSpec 5116 *( COMMA eventSpec ) RBRKT 5117 eventSpec = pkgdName [ LBRKT eventSpecParameter 5118 *(COMMA eventSpecParameter) RBRKT ] 5119 eventSpecParameter = (eventStream / eventOther) 5121 Rosen et al Standards Track -- Expires Nov 2000 97 5122 Megaco Protocol May 2000 5124 eventBufferControl = BufferToken EQUAL ( "OFF" / LockStepToken ) 5126 terminationStateDescriptor = TerminationStateToken LBRKT 5127 terminationStateParm *( COMMA terminationStateParm ) 5128 RBRKT 5130 ; at-most-once per item 5131 terminationStateParm =(propertyParm / serviceStates / 5132 eventBufferControl ) 5134 serviceStates = ServiceStatesToken EQUAL ( TestToken / 5135 OutOfSvcToken / InSvcToken ) 5137 muxDescriptor = MuxToken EQUAL MuxType terminationIDList 5139 MuxType = ( H221Token / H223Token / H226Token / 5140 V76Token / extensionParameter ) 5142 StreamID = UINT16 5143 pkgdName = (PackageName SLASH ItemID) ;specific item 5144 / (PackageName SLASH "*") ;all events in package 5145 / ("*" SLASH "*") ; all events supported by the MG 5146 PackageName = NAME 5147 ItemID = NAME 5149 eventsDescriptor = EventsToken EQUAL RequestID LBRKT 5150 requestedEvent *( COMMA requestedEvent ) RBRKT 5152 requestedEvent = pkgdName [ LBRKT eventParameter 5153 *( COMMA eventParameter ) RBRKT ] 5155 ; at-most-once each of KeepActiveToken , eventDM and eventStream 5156 ;at most one of either embedWithSig or embedNoSig but not both 5157 ;KeepActiveToken and embedWithSig must not both be present 5158 eventParameter = ( embedWithSig / embedNoSig / KeepActiveToken 5159 /eventDM / eventStream / eventOther ) 5161 embedWithSig = EmbedToken LBRKT signalsDescriptor 5162 [COMMA embedFirst ] RBRKT 5163 embedNoSig = EmbedToken LBRKT embedFirst RBRKT 5165 ; at-most-once of each 5166 embedFirst = EventsToken EQUAL RequestID LBRKT 5167 secondRequestedEvent *(COMMA secondRequestedEvent) RBRKT 5169 secondRequestedEvent = pkgdName [ LBRKT secondEventParameter 5170 *( COMMA secondEventParameter ) RBRKT ] 5172 Rosen et al Standards Track -- Expires Nov 2000 98 5173 Megaco Protocol May 2000 5175 ; at-most-once each of embedSig , KeepActiveToken, eventDM or 5176 ; eventStream 5177 ; KeepActiveToken and embedSig must not both be present 5178 secondEventParameter = ( EmbedSig / KeepActiveToken / eventDM / 5179 eventStream / eventOther ) 5181 embedSig = EmbedToken LBRKT signalsDescriptor RBRKT 5183 eventStream = StreamToken EQUAL StreamID 5185 eventOther = eventParameterName parmValue 5187 eventParameterName = NAME 5189 eventDM = DigitMapToken ((EQUAL digitMapName ) / 5190 (LBRKT digitMapValue RBRKT )) 5192 signalsDescriptor = SignalsToken LBRKT [ signalParm 5193 *(COMMA signalParm)] RBRKT 5195 signalParm = signalList / signalRequest 5197 signalRequest = signalName [ LBRKT sigParameter 5198 *(COMMA sigParameter) RBRKT ] 5200 signalList = SignalListToken EQUAL signalListId LBRKT 5201 signalListParm *(COMMA signalListParm) RBRKT 5203 signalListId = UINT16 5205 ;exactly once signalType, at most once duration and every signal 5206 ;parameter 5207 signalListParm = signalRequest 5209 signalName = pkgdName 5210 ;at-most-once sigStream, at-most-once sigSignalType, 5211 ;at-most-once sigDuration, every signalParameterName at most once 5212 sigParameter = sigStream / sigSignalType / sigDuration / sigOther 5213 / notifyCompletion / KeepActiveToken 5214 sigStream = StreamToken EQUAL StreamID 5215 sigOther = sigParameterName parmValue 5216 sigParameterName = NAME 5217 sigSignalType = SignalTypeToken EQUAL signalType 5218 signalType = (OnOffToken / TimeOutToken / BriefToken) 5219 sigDuration = DurationToken EQUAL UINT16 5220 notifyCompletion = NotifyCompletionToken EQUAL (LBRKT 5221 notificationReason *(COMMA notificationReason) RBRKT 5223 notificationReason = ( TimeOutToken / InterruptByEventToken 5224 / InterruptByNewSignalsDescrToken 5225 / OtherReasonToken ) 5227 Rosen et al Standards Track -- Expires Nov 2000 99 5228 Megaco Protocol May 2000 5230 observedEventsDescriptor = ObservedEventsToken EQUAL RequestID 5231 LBRKT observedEvent *(COMMA observedEvent) RBRKT 5233 ;time per event, because it might be buffered 5234 observedEvent = [ TimeStamp LWSP COLON] LWSP 5235 pkgdName [ LBRKT observedEventParameter 5236 *(COMMA observedEventParameter) RBRKT ] 5238 ;at-most-once eventStream, every eventParameterName at most once 5239 observedEventParameter = eventStream / eventOther 5241 RequestID = UINT32 5243 modemDescriptor = ModemToken (( EQUAL modemType) / 5244 (LSBRKT modemType *(COMMA modemType) RSBRKT)) 5245 [ LBRKT NAME parmValue 5246 *(COMMA NAME parmValue) RBRKT ] 5248 ; at-most-once 5249 modemType = (V32bisToken / V22bisToken / V18Token / 5250 V22Token / V32Token / V34Token / V90Token / 5251 V91Token / SynchISDNToken / extensionParameter) 5253 digitMapDescriptor = DigitMapToken EQUAL 5254 ( ( LBRKT digitMapValue RBRKT ) 5255 / (digitMapName [ LBRKT digitMapValue RBRKT ]) ) 5256 digitMapName = NAME 5257 digitMapValue = ["T" COLON Timer COMMA] ["S" COLON Timer COMMA] 5258 ["L" COLON Timer COMMA] digitMap 5259 Timer = 1*2DIGIT 5260 digitMap = 5261 digitString / LWSP "(" LWSP digitStringList LWSP ")" LWSP 5262 digitStringList = digitString *( LWSP "|" LWSP digitString ) 5263 digitString = 1*(digitStringElement) 5264 digitStringElement = digitPosition [DOT] 5265 digitPosition = digitMapLetter / digitMapRange 5266 digitMapRange = ("x" / LWSP "[" LWSP digitLetter LWSP "]" LWSP) 5267 digitLetter = *((DIGIT "-" DIGIT ) / digitMapLetter) 5268 digitMapLetter = DIGIT ;Basic event symbols 5269 / %x41-4B / %x61-6B ; a-k, A-K 5270 / "L" / "S" ;Inter-event timers (long, short) 5271 / "Z" ;Long duration modifier 5273 ;at-most-once, and DigitMapToken and PackagesToken are not allowed 5274 ;in AuditCapabilities command 5276 auditItem = ( MuxToken / ModemToken / MediaToken / 5277 SignalsToken / EventBufferToken / 5278 DigitMapToken / StatsToken / EventsToken / 5279 ObservedEventsToken / PackagesToken ) 5281 Rosen et al Standards Track -- Expires Nov 2000 100 5282 Megaco Protocol May 2000 5284 serviceChangeDescriptor = ServicesToken LBRKT serviceChangeParm 5285 *(COMMA serviceChangeParm) RBRKT 5287 serviceChangeParm = (serviceChangeMethod / serviceChangeReason / 5288 serviceChangeDelay / serviceChangeAddress / 5289 serviceChangeProfile / extension / TimeStamp / 5290 serviceChangeMgcId / serviceChangeVersion ) 5292 serviceChangeReplyDescriptor = ServicesToken LBRKT 5293 servChgReplyParm *(COMMA servChgReplyParm) RBRKT 5295 ;at-most-once. Version is REQUIRED on first ServiceChange response 5296 servChgReplyParm = (serviceChangeAddress / serviceChangeMgcId / 5297 serviceChangeProfile / serviceChangeVersion ) 5298 serviceChangeMethod = MethodToken EQUAL (FailoverToken / 5299 ForcedToken / GracefulToken / RestartToken / 5300 DisconnectedToken / HandOffToken / 5301 extensionParameter) 5303 serviceChangeReason = ReasonToken EQUAL VALUE 5304 serviceChangeDelay = DelayToken EQUAL UINT32 5305 serviceChangeAddress = ServiceChangeAddressToken EQUAL VALUE 5306 serviceChangeMgcId = MgcIdToken EQUAL mId 5307 serviceChangeProfile = ProfileToken EQUAL NAME SLASH Version 5308 serviceChangeVersion = VersionToken EQUAL Version 5309 extension = extensionParameter parmValue 5311 packagesDescriptor = PackagesToken LBRKT packagesItem 5312 *(COMMA packagesItem) RBRKT 5314 Version = 1*2(DIGIT) 5315 packagesItem = NAME "-" UINT16 5317 TimeStamp = Date "T" Time ; per ISO 8601:1988 5318 ; Date = yyyymmdd 5319 Date = 8(DIGIT) 5320 ; Time = hhmmssss 5321 Time = 8(DIGIT) 5322 statisticsDescriptor = StatsToken LBRKT statisticsParameter 5323 *(COMMA statisticsParameter ) RBRKT 5325 ;at-most-once per item 5326 statisticsParameter = pkgdName EQUAL VALUE 5328 topologyDescriptor = TopologyToken LBRKT terminationA COMMA 5329 terminationB COMMA topologyDirection RBRKT 5330 terminationA = TerminationID 5331 terminationB = TerminationID 5332 topologyDirection = BothwayToken / IsolateToken / OnewayToken 5334 priority = PriorityToken EQUAL UINT16 5336 Rosen et al Standards Track -- Expires Nov 2000 101 5337 Megaco Protocol May 2000 5339 extensionParameter = "X" ("-" / "+") 1*6(ALPHA / DIGIT) 5341 ; octetString is used to describe SDP defined in RFC2327. 5342 ; Caution should be taken if CRLF in RFC2327 is used. 5343 ; To be safe, use EOL in this ABNF. 5344 ; Whenever "}" appears in SDP, it is escaped by "\", e.g., "\}" 5345 octetString = *(nonEscapeChar) 5346 nonEscapeChar = ( "\}" / %x01-7C / %x7E-FF ) 5347 quotedString = DQUOTE 1*(SafeChar / RestChar/ WSP) DQUOTE 5349 UINT16 = 1*5(DIGIT) ; %x0-FFFF 5350 UINT32 = 1*10(DIGIT) ; %x0-FFFFFFFF 5352 NAME = ALPHA *63(ALPHA / DIGIT / "_" ) 5353 VALUE = quotedString / 1*(SafeChar) 5354 SafeChar = DIGIT / ALPHA / "+" / "-" / "&" / 5355 "!" / "_" / "/" / "'" / "?" / "@" / 5356 "^" / "`" / "~" / "*" / "$" / "\" / 5357 "(" / ")" / "%" / "|" / "." 5359 EQUAL = LWSP %x3D LWSP ; "=" 5360 COLON = %x3A ; ":" 5361 LBRKT = LWSP %x7B LWSP ; "{" 5362 RBRKT = LWSP %x7D LWSP ; "}" 5363 COMMA = LWSP %x2C LWSP ; "," 5364 DOT = %x2E ; "." 5365 SLASH = %x2F ; "/" 5366 ALPHA = %x41-5A / %x61-7A ; A-Z / a-z 5367 DIGIT = %x30-39 ; 0-9 5368 DQUOTE = %x22 ; " (Double Quote) 5369 HEXDIG = ( DIGIT / "A" / "B" / "C" / "D" / "E" / "F" ) 5370 SP = %x20 ; space 5371 HTAB = %x09 ; horizontal tab 5372 CR = %x0D ; Carriage return 5373 LF = %x0A ; linefeed 5374 LWSP = *( WSP / COMMENT / EOL ) 5375 EOL = (CR [LF] / LF ) 5376 WSP = SP / HTAB ; white space 5377 SEP = ( WSP / EOL / COMMENT) LWSP 5378 COMMENT = ";" *(SafeChar/ RestChar / WSP / %x22) EOL 5379 RestChar = ";" / "[" / "]" / "{" / "}" / ":" / "," / "#" 5380 / 5381 "<" / ">" / "=" 5383 AddToken = ("Add" / "A") 5384 AuditToken = ("Audit" / "AT") 5385 AuditCapToken = ("AuditCapability" / "AC") 5386 AuditValueToken = ("AuditValue" / "AV") 5387 AuthToken = ("Authentication" / "AU") 5388 BothwayToken = ("Bothway" / "BW") 5389 BriefToken = ("Brief" / "BR") 5391 Rosen et al Standards Track -- Expires Nov 2000 102 5392 Megaco Protocol May 2000 5394 BufferToken = ("Buffer" / "BF") 5395 CtxToken = ("Context" / "C") 5396 ContextAuditToken = ("ContextAudit" / "CA") 5397 DigitMapToken = ("DigitMap" / "DM") 5398 DisconnectedToken = ("Disconnected" / "DC") 5399 DelayToken = ("Delay" / "DL") 5400 DurationToken = ("Duration" / "DR") 5401 EmbedToken = ("Embed" / "EB") 5402 EmergencyToken = ("Emergency" / "EM") 5403 ErrorToken = ("Error" / "ER") 5404 EventBufferToken = ("EventBuffer" / "EB") 5405 EventsToken = ("Events" / "E") 5406 FailoverToken = ("Failover" / "FL") 5407 ForcedToken = ("Forced" / "FO") 5408 GracefulToken = ("Graceful" / "GR") 5409 H221Token = ("H221" ) 5410 H223Token = ("H223" ) 5411 H226Token = ("H226" ) 5412 HandOffToken = ("HandOff" / "HO") 5413 ImmAckRequiredToken = ("ImmAckRequired" / "IA") 5414 InactiveToken = ("Inactive" / "IN") 5415 IsolateToken = ("Isolate" / "IS") 5416 InSvcToken = ("InService" / "IV") 5417 InterruptByEventToken = ("IntByEvent" / "IBE") 5418 InterruptByNewSignalsDescrToken 5419 = ("IntBySigDescr" / "IBS") 5420 KeepActiveToken = ("KeepActive" / "KA") 5421 LocalToken = ("Local" / "L") 5422 LocalControlToken = ("LocalControl" / "O") 5423 LockStepToken = ("LockStep" / "SP") 5424 LoopbackToken = ("Loopback" / "LB") 5425 MediaToken = ("Media" / "M") 5426 MegacopToken = ("MEGACO" / "!") 5427 MethodToken = ("Method" / "MT") 5428 MgcIdToken = ("MgcIdToTry" / "MG") 5429 ModeToken = ("Mode" / "MO") 5430 ModifyToken = ("Modify" / "MF") 5431 ModemToken = ("Modem" / "MD") 5432 MoveToken = ("Move" / "MV") 5433 MTPToken = ("MTP") 5434 MuxToken = ("Mux" / "MX") 5435 NotifyToken = ("Notify" / "N") 5436 NotifyCompletionToken = ("NotifyCompletion" / "NC") 5437 ObservedEventsToken = ("ObservedEvents" / "OE") 5438 OnewayToken = ("Oneway" / "OW") 5439 OnOffToken = ("OnOff" / "OO") 5440 OtherReasonToken = ("OtherReason" / "OR") 5441 OutOfSvcToken = ("OutOfService" / "OS") 5442 PackagesToken = ("Packages" / "PG") 5443 PendingToken = ("Pending" / "PN") 5444 PriorityToken = ("Priority" / "PR") 5445 ProfileToken = ("Profile" / "PF") 5447 Rosen et al Standards Track -- Expires Nov 2000 103 5448 Megaco Protocol May 2000 5450 ReasonToken = ("Reason" / "RE") 5451 RecvonlyToken = ("ReceiveOnly" / "RC") 5452 ReplyToken = ("Reply" / "P") 5453 RestartToken = ("Restart" / "RS") 5454 RemoteToken = ("Remote" / "R") 5455 ReservedGroupToken = ("ReservedGroup" / "RG") 5456 ReservedValueToken = ("ReservedValue" / "RV") 5457 SendonlyToken = ("SendOnly" / "SO") 5458 SendrecvToken = ("SendReceive" / "SR") 5459 ServicesToken = ("Services" / "SV") 5460 ServiceStatesToken = ("ServiceStates" / "SI") 5461 ServiceChangeToken = ("ServiceChange" / "SC") 5462 ServiceChangeAddressToken = ("ServiceChangeAddress" / "AD") 5463 SignalListToken = ("SignalList" / "SL") 5464 SignalsToken = ("Signals" / "SG") 5465 SignalTypeToken = ("SignalType" / "SY") 5466 StatsToken = ("Statistics" / "SA") 5467 StreamToken = ("Stream" / "ST") 5468 SubtractToken = ("Subtract" / "S") 5469 SynchISDNToken = ("SynchISDN" / "SN") 5470 TerminationStateToken = ("TerminationState" / "TS") 5471 TestToken = ("Test" / "TE") 5472 TimeOutToken = ("TimeOut" / "TO") 5473 TopologyToken = ("Topology" / "TP") 5474 TransToken = ("Transaction" / "T") 5475 ResponseAckToken = ("TransactionResponseAck"/ "K") 5476 V18Token = ("V18") 5477 V22Token = ("V22") 5478 V22bisToken = ("V22b") 5479 V32Token = ("V32") 5480 V32bisToken = ("V32b") 5481 V34Token = ("V34") 5482 V76Token = ("V76") 5483 V90Token = ("V90") 5484 V91Token = ("V91") 5485 VersionToken = ("Version" / "V") 5487 Rosen et al Standards Track -- Expires Nov 2000 104 5488 Megaco Protocol May 2000 5490 ANNEX C TAGS FOR MEDIA STREAM PROPERTIES (NORMATIVE) 5492 Parameters for Local descriptors and Remote descriptors are 5493 specified as tag-value pairs if binary encoding is used for the 5494 protocol. This annex contains the property names (PropertyID), the 5495 tags (Property Tag), type of the property (Type) and the values 5496 (Value). Values presented in the Value field when the field 5497 contains references shall be regarded as "information". The 5498 reference contains the normative values. If a value field does not 5499 contain a reference then the values in that field can be considered 5500 as "normative". 5502 Tags are given as hexadecimal numbers in this annex. When setting 5503 the value of a property, a MGC may underspecify the value according 5504 to one of the mechanisms specified in section 7.1.1. 5506 For type "enumeration" the value is represented by the value in 5507 brackets, e.g., Send(0), Receive(1). 5509 When a type is smaller than one octet, the value shall be stored in 5510 the low-order bits of an octet string of size 1. 5512 C.1 General Media Attributes 5514 +-------------------+------+-------------+---------------------------+ 5515 | PropertyID | Tag | Type | Value | 5516 +-------------------+------+-------------+---------------------------+ 5517 | Media | 1001 | Enumeration | Audio(0), Video(1), | 5518 | | | | Data(2) | 5519 +-------------------+------+-------------+---------------------------+ 5520 | Transmission mode | 1002 | Enumeration | Send(0), Receive(1), | 5521 | | | | Send&Receive(2) | 5522 +-------------------+------+-------------+---------------------------+ 5523 | Number of | 1003 | Unsigned | 0-255 | 5524 | Channels | | Integer | | 5525 +-------------------+------+-------------+---------------------------+ 5526 | Sampling rate | 1004 | Unsigned | 0-2^32 | 5527 | | | Integer | | 5528 +-------------------+------+-------------+---------------------------+ 5529 | Bitrate | 1005 | Integer | (0..4294967295) | 5530 | | | | Note - units of 100 bit/s | 5531 +-------------------+------+-------------+---------------------------+ 5532 | ACodec | 1006 | Octet | Audio Codec Type | 5533 | | | String | | 5534 +-------------------+------+-------------+---------------------------+ 5535 | Reference: ITU-T Rec. Q.765 - Application transport mechanism. | 5536 | Non-ITU codecs are defined with the appropriate standards | 5537 | organisation under a defined Organizational Identitifier. | 5538 +-------------------+------+-------------+---------------------------+ 5539 | Samplepp | 1007 | Unsigned | Maximum samples or frames | 5540 | | | Integer | per packet: 0-65535 | 5541 +-------------------+------+-------------+---------------------------+ 5543 Rosen et al Standards Track -- Expires Nov 2000 105 5544 Megaco Protocol May 2000 5546 | Silencesupp | 1008 | BOOLEAN | Silence Suppression: | 5547 | | | | True/false | 5548 +-------------------+------+-------------+---------------------------+ 5549 | Encrypttype | 1009 | Octet | Ref.: rec. H.245 | 5550 | | | String | | 5551 +-------------------+------+-------------+---------------------------+ 5552 | Encryptkey | 100A | Octet | SIZE(0..65535) | 5553 | | | String | Encryption key | 5554 +-------------------+------+-------------+---------------------------+ 5555 | Ref.: rec. H.235 | 5556 +-------------------+------+-------------+---------------------------+ 5557 | Echocanc | 100B | Enumeration | Echo Canceller: Off(0), | 5558 | | | | G.165(1), G168(2) | 5559 +-------------------+------+-------------+---------------------------+ 5560 | Gain | 100C | Unsigned | Gain in db: 0-65535 | 5561 | | | Integer | | 5562 +-------------------+------+-------------+---------------------------+ 5563 | Jitterbuff | 100D | Unsigned | Jitter buffer size in ms: | 5564 | | | Integer | 0-65535 | 5565 +-------------------+------+-------------+---------------------------+ 5566 | PropDelay | 100E | Unsigned | Propagation Delay: | 5567 | | | Integer | 0..65535 | 5568 +-------------------+------+-------------+---------------------------+ 5569 | Maximum propagation delay in milliseconds for the bearer | 5570 | connection between two media gateways. The maximum delay will be | 5571 | dependent on the bearer technology. | 5572 +-------------------+------+-------------+---------------------------+ 5573 |RTPpayload | 100F | integer | Payload type in RTP | 5574 +-------------------+------+-------------+---------------------------+ 5575 | Profile for Audio and Video Conferences with Minimal Control | 5576 | Ref.: RFC 1890 | 5577 +--------------------------------------------------------------------+ 5579 C.2 Mux Properties 5581 +-------------------+------+----------+------------------------------+ 5582 | PropertyID | Tag | Type | Value | 5583 +-------------------+------+----------+------------------------------+ 5584 | H.221 | 2001 | Octet | Ref.: rec. H.245, | 5585 | | | String | H222LogicalChannelParameters | 5586 +-------------------+------+----------+------------------------------+ 5587 | H223 | 2002 | Octet | Ref.: rec. H.245, | 5588 | | | String | H223LogicalChannelParameters | 5589 +-------------------+------+----------+------------------------------+ 5590 | V76 | 2003 | Octet | Ref.: rec. H.245, | 5591 | | | String | V76LogicalChannelParameters | 5592 +-------------------+------+-------------+---------------------------+ 5593 | H2250 | 2004 | Octet | Ref.: rec. H.245, | 5594 | | | String | H2250LogicalChannelParameters| 5595 +-------------------+------+----------+------------------------------+ 5597 Rosen et al Standards Track -- Expires Nov 2000 106 5598 Megaco Protocol May 2000 5600 C.3 General bearer properties 5602 +-------------------+------+-------------+---------------------------+ 5603 | PropertyID | Tag | Type | Value | 5604 +-------------------+------+-------------+---------------------------+ 5605 | Mediatx | 3001 | Enumeration | Media Transport Type: | 5606 +-------------------+------+-------------+---------------------------+ 5607 | TDM Circuit(0), ATM(1), FR(2), Ipv4(3), Ipv6(4), ... | 5608 +-------------------+------+-------------+---------------------------+ 5609 | BIR | 3002 | 4 OCTET | Value depends on transport| 5610 | | | | technology | 5611 +-------------------+------+-------------+---------------------------+ 5612 | NSAP | 3003 | 1-20 OCTETS | See NSAP: | 5613 +-------------------+------+-------------+---------------------------+ 5614 | Reference: ITU X.213 Annex A | 5615 +--------------------------------------------------------------------+ 5617 C.4 General ATM properties 5619 +------------------+---------+--------------+------------------------+ 5620 | PropertyID | Property| Type | Value | 5621 | | Tag | | | 5622 +------------------+---------+--------------+------------------------+ 5623 | AESA | 4001 | 20 OCTETS | ATM End System Address | 5624 +------------------+---------+--------------+------------------------+ 5625 | VPVC | 4002 | 2 x 16 bit | VPCI/VCI | 5626 | | | integer | | 5627 | Reference ITU-T Recommendation Q.2931 | 5628 +------------------+---------+--------------+------------------------+ 5629 | SC | 4003 | Enumeration | Service Category | 5630 | Reference: ATM Forum UNI 4.0: | 5631 | CBR(0), nrt-VBR1(1), nrt-VBR2(2), nrt-VBR3(3), rt-VBR1(4), rt- | 5632 | VBR2(5), rt-VBR3(6), UBR1(7), UBR2(8), ABR(9). | 5633 +------------------+---------+--------------+------------------------+ 5634 | BCOB | 4004 | 5 bit integer Broadband Bearer Class | 5635 | Reference: ITU Recommendation Q.2961.2 | 5636 +------------------+---------+--------------+------------------------+ 5637 | BBTC | 4005 | 7 bit integer| Broadband Transfer | 5638 | | | | Capability | 5639 | Reference: ITU Recommendation Q.2961 | 5640 +------------------+---------+--------------+------------------------+ 5641 | ATC | 4006 | Enumeration | I.371 ATM Traffic | 5642 | | | | Capability | 5643 | Reference: ITU Recommendation I.371: | 5644 | DBR(0), SBR1(1), SBR2(2), SBR3(3), ABT/IT(4), ABT/DT(5), ABR(6) | 5645 +------------------+---------+--------------+------------------------+ 5646 | STC | 4007 | 2 bits | Susceptibility to | 5647 | | | | clipping | 5649 Rosen et al Standards Track -- Expires Nov 2000 107 5650 Megaco Protocol May 2000 5652 | Reference: ITU Recommendation Q.2931 5653 | 00 Susceptible 5654 | 01 Not-susceptible 5655 +------------------+---------+--------------+------------------------+ 5656 | UPCC | 4008 | 2 bits | User Plane Connection | 5657 | | | | configuration: | 5658 | Reference: ITU Recommendation Q.2931 | 5659 | 00 Pt-to-pt, | 5660 | 01 Pt-to-mpt | 5661 +------------------+---------+--------------+------------------------+ 5662 | PCR0 | 4009 | 24 bit | Peak Cell Rate (For | 5663 | | | integer | CLP=0) | 5664 | Reference: ITU Recommendation Q.2931 | 5665 +------------------+---------+--------------+------------------------+ 5666 | SCR0 | 400A | 24 bit | Sustainable Cell Rate | 5667 | | | integer | (For CLP=0) | 5668 | Reference: ITU Recommendation Q.2961 | 5669 +------------------+---------+--------------+------------------------+ 5670 | MBS0 | 400B | 24 bit | Maximum Burst Size (For| 5671 | | | integer | CLP=0) | 5672 | Reference: ITU Recommendation Q.2961 | 5673 +------------------+---------+--------------+------------------------+ 5674 | PCR1 | 400C | 24 bit | Peak Cell Rate (For | 5675 | | | integer | CLP=0+1) | 5676 | Reference: ITU Recommendation Q.2931 | 5677 +------------------+---------+--------------+------------------------+ 5678 | SCR1 | 400D | 24 bit | Sustainable Cell Rate | 5679 | | | integer | (For CLP=0+1) | 5680 | Reference: ITU Recommendation Q.2961 | 5681 +------------------+---------+--------------+------------------------+ 5682 | MBS1 | 400E | 24 bit | Maximum Burst Size (For| 5683 | | | integer | CLP=0+1) | 5684 | Reference: ITU Recommendation Q.2961 | 5685 +------------------+---------+--------------+------------------------+ 5686 | BEI | 400F | Boolean | Best Effort Indicator | 5687 | Reference: ATM Forum UNI 4.0: | 5688 | 0 -- do not include BEI in ATM signalling | 5689 | 1 -- include BEI in ATM signalling | 5690 +------------------+---------+--------------+------------------------+ 5691 | TI | 4010 | Boolean | Tagging | 5692 | Reference: ITU-T Recommendation Q.2961 | 5693 | 0 -- tagging is not allowed | 5694 | 1 -- tagging is requested | 5695 +------------------+---------+--------------+------------------------+ 5696 | FD | 4011 | Boolean | Frame Discard | 5697 | Reference: ATM Forum UNI 4.0: | 5698 | 0 -- no frame discard is allowed | 5699 | 1 -- frame discard is allowed | 5700 +------------------+---------+--------------+------------------------+ 5701 | A2PCDV | 4012 | 24 bit | Acceptable 2-point CDV | 5702 Rosen et al Standards Track -- Expires Nov 2000 108 5703 Megaco Protocol May 2000 5705 | | | integer | 5706 | Reference: ITU-T Recommendation Q.2965.2 5707 +------------------+---------+--------------+------------------------+ 5708 | C2PCDV | 4013 | 24 bit | Cumulative 2-point CDV | 5709 | | | integer | | 5710 | Reference: ITU-T Recommendation Q.2965.2 | 5711 +------------------+---------+--------------+------------------------+ 5712 | APPCDV | 4014 | 24 bit | Acceptable P-P CDV | 5713 | | | integer | | 5714 | Reference: ATM Forum UNI 4.0 | 5715 +------------------+---------+--------------+------------------------+ 5716 | CPPCDV | 4015 | 24 bit | Cumulative P-P CDV | 5717 | | | integer | | 5718 | Reference: ATM Forum UNI 4.0 | 5719 +------------------+---------+--------------+------------------------+ 5720 | ACLR | 4016 | 8 bit integer| Acceptable Cell Loss | 5721 | | | | Ratio | 5722 | Reference: ITU-T Recommendation Q.2965.2, ATM Forum UNI 4.0 | 5723 +------------------+---------+--------------+------------------------+ 5724 | MEETD | 4017 | 16 bit | Maximum end-to-end | 5725 | | | integer | transit delay | 5726 | Reference: ITU-T Recommendation Q.2965.2, ATM Forum UNI 4.0 | 5727 +------------------+---------+--------------+------------------------+ 5728 | CEETD | 4018 | 16 bit | Cumulative end-to-end | 5729 | | | integer | transit delay | 5730 | Reference: ITU-T Recommendation Q.2965.2, ATM Forum UNI 4.0 | 5731 +------------------+---------+--------------+------------------------+ 5732 | QosClass | 4019 | Integer 0-5 | QOS Class | 5733 | Reference: ITU-T Recommendation Q.2965.1 | 5734 | Qos Class Meaning | 5735 | --------- ------------------------------- | 5736 | 0 Default QoS associated with the ATC | 5737 | as defined in ITU Rec. Q.2961.2 | 5738 | 1 Stringent | 5739 | 2 Tolerant | 5740 | 3 Bi-level | 5741 | 4 Unbounded | 5742 | 5 Stringent bi-level | 5743 +------------------+---------+--------------+------------------------+ 5744 | AALType | 401A | 1 octet | AAL Type | 5746 Rosen et al Standards Track -- Expires Nov 2000 109 5747 Megaco Protocol May 2000 5749 | Reference: ITU Recommendation Q.2931 | 5750 | 00000000 AAL for voice | 5751 | 00000001 AAL type 1 | 5752 | 00000010 AAL type 2 | 5753 | 00000011 AAL type 3/4 | 5754 | 00000101 AAL type 5 | 5755 | 00010000 user defined AAL | 5756 +------------------+---------+--------------+------------------------+ 5758 C.5 Frame Relay 5760 +-------------------+------+-------------+---------------------------+ 5761 | PropertyID | Tag | Type | Value | 5762 +-------------------+------+-------------+---------------------------+ 5763 | DLCI | 5001 | Unsigned | Data link connection id | 5764 | | | Integer | | 5765 +-------------------+------+-------------+---------------------------+ 5766 | CID | 5002 | Unsigned | sub-channel id. | 5767 | | | Integer | | 5768 +-------------------+------+-------------+---------------------------+ 5769 | SID/Noiselevel | 5003 | Unsigned | silence insertion | 5770 | | | Integer | descriptor | 5771 +-------------------+------+-------------+---------------------------+ 5772 | Primary Payload |5004 | Unsigned | Primary Payload Type | 5773 | Type | | Integer | Covers FAX and codecs | 5774 +-------------------+------+-------------+---------------------------+ 5776 C.6 IP 5778 +-------------------+------+-------------+---------------------------+ 5779 | PropertyID | Tag | Type | Value | 5780 +-------------------+------+-------------+---------------------------+ 5781 | IPv4 | 6001 | 32 BITS | Ipv4Address|Ipv4Address: | 5782 +-------------------+------+-------------+---------------------------+ 5783 | Reference: IETF RFC791 | 5784 +-------------------+------+-------------+---------------------------+ 5785 | IPv6 | 6002 | 128 BITS | IPv6 Address: | 5786 +-------------------+------+-------------+---------------------------+ 5787 | Reference: IETF RFC2460 | 5788 +-------------------+------+-------------+---------------------------+ 5789 | Port | 6003 | Unsigned |0-65535 | 5790 | | | Integer | | 5791 +-------------------+------+-------------+---------------------------+ 5792 | Porttype | 6004 | enumerated | TCP(0), UDP(1), SCTP(2) | 5793 +-------------------+------+-------------+---------------------------+ 5795 Rosen et al Standards Track -- Expires Nov 2000 110 5796 Megaco Protocol May 2000 5798 C.7 ATM AAL2 5800 +-----------+-------+-------------------------+----------------------+ 5801 | PropertyID| Tag n | Type | Value | 5802 +-----------+-------+-------------------------+----------------------+ 5803 | AESA | 7001 | 20 OCTETS | AAL2 service endpoint | 5804 | | | | address | 5805 +-----------+-------+--------------------------+---------------------+ 5806 | as defined in Reference: ITU Recommendation Q.2630.1 | 5807 | ESEA | 5808 | NSEA | 5809 +-----------+-------+-------------------------+----------------------+ 5810 | BIR |See C.3| 4 OCTETS | Served user | 5811 | | | | reference | 5812 +-----------+-------+-------------------------+----------------------+ 5813 | as defined in Reference: ITU Recommendation Q.2630.1 SUGR | 5814 +-----------+-------+-------------------------+----------------------+ 5815 | ALC | 7002 | 12 OCTETS | AAL2 link | 5816 | | | | characteristics | 5817 +-----------+-------+-------------------------+----------------------+ 5818 | as defined in Reference: ITU Recommendation Q.2630.1 | 5819 | max/average CPS-SDU bitrate, | 5820 | max/average CPS-SDU size | 5821 +-----------+-------+-------------------------+----------------------+ 5822 | SSCS | 7003 | I.366.2: | Service specific | 5823 | | | audio (8 OCTETS) | convergence sublayer | 5824 | | | multirate (3 OCTETS) | information | 5825 | | | or I.366.1: | | 5826 | | | SAR-assured (14 OCTETS)/| | 5827 | | | unassured (7 OCTETS) | | 5828 +-----------+-------+-------------------------+----------------------+ 5829 | as defined in Reference: Q.2630.1 and used in I.366.1 and I.366.2 | 5830 | I.366.2: audio/multirate | 5831 | I.366.1: SAR-assured/unassured | 5832 +-----------+-------+-------------------------+----------------------+ 5833 | SUT | 7004 | 1..254 octets |Served user transport | 5834 | | | | parameter | 5835 +-----------+-------+-------------------------+----------------------+ 5836 | as defined in Reference: ITU Recommendation Q.2630.1 | 5837 | TCI | 7005 |BOOLEAN | Test connection | 5838 | | | | indicator | 5839 +-----------+-------+-------------------------+----------------------+ 5840 | as defined in Reference: ITU Recommendation Q.2630.1 | 5841 +-----------+-------+-------------------------+----------------------+ 5842 | Timer_CU | 7006 |32 bit integer | Timer-CU: | 5843 +-----------+-------+-------------------------+----------------------+ 5844 | Milliseconds to hold partially filled cell before sending. | 5845 +-----------+-------+-------------------------+----------------------+ 5846 | MaxCPSSDU | 7007 | 8 bit integer | Maximum Common Part | 5847 | | | | Sublayer Service | 5848 | | | | Data Unit | 5849 +-----------+-------+-------------------------+----------------------+ 5851 Rosen et al Standards Track -- Expires Nov 2000 111 5852 Megaco Protocol May 2000 5854 | Ref.: rec. Q.2630.1 | 5855 +-----------+-------+-------------------------+----------------------+ 5856 | CID | 7008 | 8 bits | subchannel id, 0-255 | 5857 +-----------+-------+-------------------------+----------------------+ 5858 | Ref.: rec. I.363.2 | 5859 +--------------------------------------------------------------------+ 5861 C.8 ATM AAL1 5863 +----------------+---------+-----------------+-----------------------+ 5864 | PropertyID | Property| Type | Value | 5865 | | Tag | | | 5866 +----------------+---------+-----------------+-----------------------+ 5867 | BIR | See | 29 OCTETS | GIT (Generic | 5868 | | Table | | Identifier Transport) | 5869 | | C.3 | | | 5870 | Ref.: Recommendation Q.2941.1 | 5871 +----------------+---------+-----------------+-----------------------+ 5872 | AAL1ST | 8001 | 1 OCTET | AAL1 Subtype: | 5873 | Reference: ITU Recommendation Q.2931 | 5874 | 00000000 Null | 5875 | 00000001 voiceband signal transport on 64kbit/s | 5876 | 00000010 circuit transport | 5877 | 00000100 high-quality audio signal transport | 5878 | 00000101 video signal transport | 5879 +----------------+---------+-----------------+-----------------------+ 5880 | CBRR | 8002 | 1 OCTET | CBR Rate | 5881 | Reference: ITU Recommendation Q.2931 | 5882 | 00000001 64 kbit/s | 5883 | 00000100 1544 kbit/s | 5884 | 00000101 6312 kbit/s | 5885 | 00000110 32064 kbit/s | 5886 | 00000111 44736 kbit/s | 5887 | 00001000 97728 kbit/s | 5888 | 00010000 2048 kbit/s | 5889 | 00010001 8448 kbit/s | 5890 | 00010010 34368 kbit/s | 5891 | 00010011 139264 kbit/s | 5892 | 01000000 n x 64 kbit/s | 5893 | 01000001 n * 8 kbit/s | 5894 +----------------+---------+-----------------+-----------------------+ 5895 | MULT | See | | Multiplier, or n x | 5896 | | Table | | 64k/8k/300 | 5897 | | C.9 | | | 5898 | Reference: ITU Recommendation Q.2931 | 5899 +----------------+---------+-----------------+-----------------------+ 5900 | SCRI | 8003 | 1 OCTECT | Source Clock Frequency| 5901 | | | | Recovery Method | 5903 Rosen et al Standards Track -- Expires Nov 2000 112 5904 Megaco Protocol May 2000 5906 | Reference: ITU Recommendation Q.2931 | 5907 | 00000000 NULL | 5908 | 00000001 SRTS | 5909 | 00000010 ACM | 5910 +----------------+---------+-----------------+-----------------------+ 5911 | ECM | 8004 | 1 OCTECT | Error Correction | 5912 | | | | Method | 5913 | Reference: ITU Recommendation Q.2931 | 5914 | 00000000 Null | 5915 | 00000001 FEC-LOSS | 5916 | 00000010 FEC-DELAY | 5917 +----------------+---------+-----------------+-----------------------+ 5918 | SDTB | 8005 | 16 bit integer | Structured Data | 5919 | | | | Transfer Blocksize | 5920 | Reference: ITU Recommendation I.363.1 | 5921 | Block size of SDT CBR service | 5922 +----------------+---------+-----------------+-----------------------+ 5923 | PFCI | 8006 | 8 bit integer | Partially filled cells| 5924 | | | | identifier | 5925 | Reference: ITU Recommendation I.363.1 | 5926 | 1-47 | 5927 +--------------------------------------------------------------------+ 5929 C.9 Bearer Capabilities 5931 The table entries referencing ITU-T Recommendation Q.931 refer to 5932 the encoding in the bearer capability information element of Q.931, 5933 not to the low layer information element. 5935 +----------------+---------+-----------------+-----------------------+ 5936 | PropertyID | Property| Type | Value | 5937 | | Tag | | | 5938 +----------------+---------+-----------------+-----------------------+ 5939 | TMR | 9001 | 1 OCTET | Transmission Medium | 5940 | | | | Requirement (Q.763) | 5942 Rosen et al Standards Track -- Expires Nov 2000 113 5943 Megaco Protocol May 2000 5945 | Reference: ITU Recommendation Q.763 | 5946 | Bit 8 7 6 5 4 3 2 1 | 5947 | 00000000 - speech | 5948 | 00000001 - spare | 5949 | 00000010 - 64 kbit/s unrestricted | 5950 | 00000011 - 3.1 kHz audio | 5951 | 00000100 - reserved for alternate speech (service 2)/64 kbit/s | 5952 | unrestricted (service 1) | 5953 | 00000101 - reserved for alternate 64 kbit/s unrestricted | 5954 | (service 1)/speech (service 2) | 5955 | 00000110 - 64 kbit/s preferred | 5956 | 00000111 - 2 x 64 kbit/s unrestricted | 5957 | 00001000 - 384 kbit/s unrestricted | 5958 | 00001001 - 1536 kbit/s unrestricted | 5959 | 00001010 - 1920 kbit/s unrestricted | 5960 | 00001011 through 00001111- spare | 5961 | 00010000 - 3 x 64 kbit/s unrestricted | 5962 | 00010001 - 4 x 64 kbit/s unrestricted | 5963 | 00010010 - 5 x 64 kbit/s unrestricted | 5964 | 00010011 spare | 5965 | 00010100 - 7 x 64 kbit/s unrestricted | 5966 | 00010101 - 8 x 64 kbit/s unrestricted | 5967 | 00010110 - 9 x 64 kbit/s unrestricted | 5968 | 00010111 - 10 x 64 kbit/s unrestricted | 5969 | 00011000 - 11 x 64 kbit/s unrestricted | 5970 | 00011001 - 12 x 64 kbit/s unrestricted | 5971 | 00011010 - 13 x 64 kbit/s unrestricted | 5972 | 00011011 - 14 x 64 kbit/s unrestricted | 5973 | 00011100 - 15 x 64 kbit/s unrestricted | 5974 | 00011101 - 16 x 64 kbit/s unrestricted | 5975 | 00011110 - 17 x 64 kbit/s unrestricted | 5976 | 00011111 - 18 x 64 kbit/s unrestricted | 5977 | 00100000 - 19 x 64 kbit/s unrestricted | 5978 | 00100001 - 20 x 64 kbit/s unrestricted | 5979 | 00100010 - 21 x 64 kbit/s unrestricted | 5980 | 00100011 - 22 x 64 kbit/s unrestricted | 5981 | 00100100 - 23x 64 kbit/s unrestricted | 5982 | 00100101 - spare | 5983 | 00100110 - 25 x 64 kbit/s unrestricted | 5984 | 00100111 - 26 x 64 kbit/s unrestricted | 5985 | 00101000 - 27 x 64 kbit/s unrestricted | 5986 | 00101001 - 28 x 64 kbit/s unrestricted | 5987 | 00101010 - 29 x 64 kbit/s unrestricted | 5988 | 00101011 through 11111111 Spare | 5989 +----------------+---------+-----------------+-----------------------+ 5991 Rosen et al Standards Track -- Expires Nov 2000 114 5992 Megaco Protocol May 2000 5994 | TMRSR | 9002 | 1 OCTET | Transmission Medium | 5995 | | | | Requirement Subrate | 5996 | 0 - unspecified | 5997 | 1 - 8kbit/s | 5998 | 2 - 16kbit/s | 5999 | 3 - 32kbit/s | 6000 +----------------+---------+-----------------+-----------------------+ 6001 | Contcheck | 9003 | BOOLEAN | Continuity Check | 6002 | Reference: ITU Recommendation Q.763 | 6003 | 0 - Not required on this circuit | 6004 | 1 - Required on this circuit | 6005 +----------------+---------+-----------------+-----------------------+ 6006 | ITC | 9004 | 5 BITS | Information Transfer | 6007 | | | | Capability | 6008 | Reference: ITU Recommendation Q.763 | 6009 | Bits 5 4 3 2 1 | 6010 | 00000 - Speech | 6011 | 01000 - Unrestricted digital information | 6012 | 01001 - Restricted digital information | 6013 | 10000 - 3.1 kHz audio | 6014 | 10001 - Unrestricted digital information with | 6015 | tones/announcements | 6016 | 11000 - Video | 6017 | All other values are reserved. | 6018 +----------------+---------+-----------------+-----------------------+ 6019 | TransMode | 9005 | 2 BITS | Transfer Mode | 6020 | Reference: ITU Recommendation Q.931 | 6021 | Bit 2 1 | 6022 | 00 - Circuit mode | 6023 | 10 - Packet mode | 6024 +----------------+---------+-----------------+-----------------------+ 6025 | TransRate | 9006 | 5 BITS | Transfer Rate | 6026 | Reference: ITU Recommendation Q.931 | 6027 | Bit 5 4 3 2 1 | 6028 | 00000 - This code shall be used for packet mode calls | 6029 | 10000 - 64 kbit/s | 6030 | 10001 - 2 x 64 kbit/s | 6031 | 10011 -384 kbit/s | 6032 | 10101 -1536 kbit/s | 6033 | 10111 -1920 kbit/s | 6034 | 11000 - Multirate (64 kbit/s base rate) | 6035 +----------------+---------+-----------------+-----------------------+ 6036 | MULT | 9007 | 7 BITS | Rate Multiplier | 6037 | Reference: ITU Recommendation Q.931 | 6038 | Any value from 2 to n (maximum number of B-channels) | 6040 Rosen et al Standards Track -- Expires Nov 2000 115 6041 Megaco Protocol May 2000 6043 +----------------+---------+-----------------+-----------------------+ 6044 | USI | 9008 | 5 BITS | User Information Layer| 6045 | | | | 1 Protocol | 6046 | Reference: ITU Recommendation Q.931 | 6047 | Bits 5 4 3 2 1 | 6048 | 00001 - CCITT standardized rate adaption V.110 and X.30. | 6049 | 00010 - Recommendation G.711 u-law | 6050 | 00011 - Recommendation G.711 A-law | 6051 | 00100 - Recommendation G.721 32 kbit/s ADPCM and Recommendation | 6052 | I.460. | 6053 | 00101 - Recommendations H.221 and H.242 | 6054 | 00110 - Recommendations H.223 and H.245 | 6055 | 00111 - Non-ITU-T standardized rate adaption. | 6056 | 01000 - ITU-T standardized rate adaption V.120. | 6057 | 01001 - CCITT standardized rate adaption X.31 HDLC flag | 6058 | stuffing. | 6059 | All other values are reserved. | 6060 +----------------+---------+-----------------+-----------------------+ 6061 | syncasync | 9009 | BOOLEAN | Synchronous/ | 6062 | | | | Asynchronous | 6063 | Reference: ITU Recommendation Q.931 | 6064 | 0 - Synchronous data | 6065 | 1 - Asynchronous data | 6066 +----------------+---------+-----------------+-----------------------+ 6067 | negotiation | 900A | BOOLEAN | Negotiation | 6068 | Reference: ITU Recommendation Q.931 | 6069 | 0 - In-band negotiation possible | 6070 | 1 - In-band negotiation not possible | 6071 +----------------+---------+-----------------+-----------------------+ 6073 Rosen et al Standards Track -- Expires Nov 2000 116 6074 Megaco Protocol May 2000 6076 +----------------+---------+-----------------+-----------------------+ 6077 | Userrate | 900B | 5 BITS | User Rate | 6078 | Reference: ITU Recommendation Q.931 | 6079 | Bits 5 4 3 2 1 | 6080 | 00000 - Rate is indicated by E-bits specified in Recommendation | 6081 | I.460 or may be negotiated in-band | 6082 | 00001 - 0.6 kbit/s Recommendations V.6 and X.1 | 6083 | 00010 - 1.2 kbit/s Recommendation V.6 | 6084 | 00011 - 2.4 kbit/s Recommendations V.6 and X.1 | 6085 | 00100 - 3.6 kbit/s Recommendation V.6 | 6086 | 00101 - 4.8 kbit/s Recommendations V.6 and X.1 | 6087 | 00110 - 7.2 kbit/s Recommendation V.6 | 6088 | 00111 - 8 kbit/s Recommendation I.460 | 6089 | 01000 - 9.6 kbit/s Recommendations V.6 and X.1 | 6090 | 01001 - 14.4 kbit/s Recommendation V.6 | 6091 | 01010 - 16 kbit/s Recommendation I.460 | 6092 | 01011 - 19.2 kbit/s Recommendation V.6 | 6093 | 01100 - 32 kbit/s Recommendation I.460 | 6094 | 01101 - 38.4 kbit/s Recommendation V.110 | 6095 | 01110 - 48 kbit/s Recommendations V.6 and X.1 | 6096 | 01111 - 56 kbit/s Recommendation V.6 | 6097 | 10010 - 57.6 kbit/s Recommendation V.14 extended | 6098 | 10011 - 28.8 kbit/s Recommendation V.110 | 6099 | 10100 - 24 kbit/s Recommendation V.110 | 6100 | 10101 - 0.1345 kbit/s Recommendation X.1 | 6101 | 10110 - 0.100 kbit/s Recommendation X.1 | 6102 | 10111 - 0.075/1.2 kbit/s Recommendations V.6 and X.1 | 6103 | 11000 - 1.2/0.075 kbit/s Recommendations V.6 and X.1 | 6104 | 11001 - 0.050 kbit/s Recommendations V.6 and X.1 | 6105 | 11010 - 0.075 kbit/s Recommendations V.6 and X.1 | 6106 | 11011 - 0.110 kbit/s Recommendations V.6 and X.1 | 6107 | 11100 - 0.150 kbit/s Recommendations V.6 and X.1 | 6108 | 11101 - 0.200 kbit/s Recommendations V.6 and X.1 | 6109 | 11110 - 0.300 kbit/s Recommendations V.6 and X.1 | 6110 | 11111 - 12 kbit/s Recommendation V.6 | 6111 | All other values are reserved. | 6112 +----------------+---------+-----------------+-----------------------+ 6113 | INTRATE | 900C | 2 BITS | Intermediate Rate | 6114 | Reference: ITU Recommendation Q.931 | 6115 | Bit 2 1 | 6116 | 00 - Not used | 6117 | 01 - 8 kbit/s | 6118 | 10 - 16 kbit/s | 6119 | 11 - 32 kbit/s | 6120 +----------------+---------+-----------------+-----------------------+ 6121 | nictx | 900D | BOOLEAN | Network Independent | 6122 | | | | Clock (NIC) on | 6123 | | | | transmission | 6124 | Reference: ITU Recommendation Q.931 | 6125 | 0 - Not required to send data with network independent clock | 6126 | 1 - Required to send data with network independent clock | 6128 Rosen et al Standards Track -- Expires Nov 2000 117 6129 Megaco Protocol May 2000 6131 +----------------+---------+-----------------+-----------------------+ 6132 | nicrx | 900E | BOOLEAN | Network independent | 6133 | | | | clock (NIC) on | 6134 | | | | reception | 6135 | Reference: ITU Recommendation Q.931 | 6136 | 0 - Cannot accept data with network independent clock (i.e. | 6137 | sender does not support this optional procedure) | 6138 | 1 - Can accept data with network independent clock (i.e. sender | 6139 | does support this optional procedure) | 6140 +----------------+---------+-----------------+-----------------------+ 6141 | flowconttx | 900F | BOOLEAN | Flow Control on | 6142 | | | | transmission (Tx) | 6143 | Reference: ITU Recommendation Q.931 | 6144 | 0 - Not required to send data with flow control mechanism | 6145 | 1 - Required to send data with flow control mechanism | 6146 +----------------+---------+-----------------+-----------------------+ 6147 | flowcontrx | 9010 | BOOLEAN | Flow control on | 6148 | | | | reception (Rx) | 6149 | Reference: ITU Recommendation Q.931 | 6150 | 0 - Cannot accept data with flow control mechanism (i.e. sender | 6151 | does not support this optional procedure) | 6152 | 1 - Can accept data with flow control mechanism (i.e. sender | 6153 | does support this optional procedure) | 6154 +----------------+---------+-----------------+-----------------------+ 6155 | rateadapthdr | 9011 | BOOLEAN | Rate adaption | 6156 | | | | header/no header | 6157 | Reference: ITU Recommendation Q.931 | 6158 | 0 - Rate adaption header not included | 6159 | 1 - Rate adaption header included | 6160 +----------------+---------+-----------------+-----------------------+ 6161 | multiframe | 9012 | BOOLEAN | Multiple frame | 6162 | | | | establishment support| 6163 | | | | in data link | 6164 | Reference: ITU Recommendation Q.931 | 6165 | 0 - Multiple frame establishment not supported. Only UI frames | 6166 | allowed. | 6167 | 1 - Multiple frame establishment supported | 6168 +----------------+---------+-----------------+-----------------------+ 6169 | OPMODE | 9013 | BOOLEAN | Mode of operation | 6170 | Reference: ITU Recommendation Q.931 | 6171 | 0 Bit transparent mode of operation | 6172 | 1 Protocol sensitive mode of operation | 6173 +----------------+---------+-----------------+-----------------------+ 6174 | llidnegot | 9014 | BOOLEAN | Logical link | 6175 | | | | identifier negotiation| 6176 | Reference: ITU Recommendation Q.931 | 6177 | 0 Default, LLI = 256 only | 6178 | 1 Full protocol negotiation | 6179 +----------------+---------+-----------------+-----------------------+ 6181 Rosen et al Standards Track -- Expires Nov 2000 118 6182 Megaco Protocol May 2000 6184 | assign | 9015 | BOOLEAN | Assignor/assignee | 6185 | Reference: ITU Recommendation Q.931 | 6186 | 0 Message originator is "Default assignee" | 6187 | 1 Message originator is "Assignor only" | 6188 +----------------+---------+-----------------+-----------------------+ 6189 | inbandneg | 9016 | BOOLEAN | In-band/out-band | 6190 | | | | negotiation | 6191 | Reference: ITU Recommendation Q.931 | 6192 | 0- Negotiation is done with USER INFORMATION messages on a | 6193 | temporary signalling connection | 6194 | 1- Negotiation is done in-band using logical link zero | 6195 +----------------+---------+-----------------+-----------------------+ 6196 | stopbits | 9017 | 2 BITS | Number of stop bits | 6197 | Reference: ITU Recommendation Q.931 | 6198 | Bits 2 1 | 6199 | 00 - Not used | 6200 | 01 - 1 bit | 6201 | 10 - 1.5 bits | 6202 | 11 - 2 bits | 6203 +----------------+---------+-----------------+-----------------------+ 6204 | databits | 9018 | 2 BIT | Number of data bits | 6205 | | | | excluding parity Bit | 6206 | | | | if present | 6207 | Reference: ITU Recommendation Q.931 | 6208 | Bit 2 1 | 6209 | 00 - Not used | 6210 | 01 - 5 bits | 6211 | 10 - 7 bits | 6212 | 11 - 8 bits | 6213 +----------------+---------+-----------------+-----------------------+ 6214 | parity | 9019 | 3 BIT | Parity information | 6215 | Reference: ITU Recommendation Q.931 | 6216 | Bit 3 2 1 | 6217 | 000 - Odd | 6218 | 010 - Even | 6219 | 011 - None | 6220 | 100 - Forced to 0 | 6221 | 101 - Forced to 1 | 6222 | All other values are reserved. | 6223 +----------------+---------+-----------------+-----------------------+ 6224 | duplexmode | 901A | BOOLEAN | Mode duplex | 6225 | Reference: ITU Recommendation Q.931 | 6226 | 0 - Half duplex | 6227 | 1 - Full duplex | 6228 +----------------+---------+-----------------+-----------------------+ 6230 Rosen et al Standards Track -- Expires Nov 2000 119 6231 Megaco Protocol May 2000 6233 | modem | 901B | 6 BIT | Modem Type | 6234 | Reference: ITU Recommendation Q.931 | 6235 | Bits 6 5 4 3 2 1 | 6236 | 00000 through 000101 National Use | 6237 | 010001 - Recommendation V.21 | 6238 | 010010 - Recommendation V.22 | 6239 | 010011 - Recommendation V.22 bis | 6240 | 010100 - Recommendation V.23 | 6241 | 010101 - Recommendation V.26 | 6242 | 011001 - Recommendation V.26 bis | 6243 | 010111 - Recommendation V.26 ter | 6244 | 011000 - Recommendation V.27 | 6245 | 011001 - Recommendation V.27 bis | 6246 | 011010 - Recommendation V.27 ter | 6247 | 011011 - Recommendation V.29 | 6248 | 011101 - Recommendation V.32 | 6249 | 011110 - Recommendation V.34 | 6250 | 100000 through 101111 National Use | 6251 | 110000 through 111111 User Specified | 6252 +----------------+---------+-----------------+-----------------------+ 6253 | layer2prot | 901C 5 BIT | User information layer| 6254 | | | 2 protocol | 6255 | Reference: ITU Recommendation Q.931 | 6256 | Bit 5 4 3 2 1 | 6257 | 00010 - Recommendation Q.921/I.441 [3] | 6258 | 00110 - Recommendation X.25 [5], link layer | 6259 | 01100 - LAN logical link control (ISO/IEC 8802-2) | 6260 | All other values are reserved. | 6261 +----------------+---------+-----------------+-----------------------+ 6262 | layer3prot | 901D | 5 BIT | User information layer| 6263 | | | | 3 protocol | 6264 | Reference: ITU Recommendation Q.931 | 6265 | Bit 5 4 3 2 1 | 6266 | 00010 - Recommendation Q.931/I.451 | 6267 | 00110 - Recommendation X.25, packet layer | 6268 | 01011 - ISO/IEC TR 9577 (Protocol identification in the network | 6269 | layer) | 6270 | All other values are reserved. | 6271 +----------------+---------+-----------------+-----------------------+ 6272 | addlayer3prot | 901E | OCTET | Additional User | 6273 | | | | Information layer 3 | 6274 | | | | protocol | 6275 | | 6276 | Bits 4321 6277 | 1100 1100 - Internet Protocol (RFC 791) (ISO/IEC TR 9577) | 6278 | 1100 1111 - Point-to-point Protocol (RFC 1661) | 6279 +----------------+---------+-----------------+-----------------------+ 6280 | DialledN | 901F | 30 OCTETS | Dialled Number | 6281 +----------------+---------+-----------------+-----------------------+ 6282 | DiallingN | 9020 | 30 OCTETS | Dialling Number | 6284 Rosen et al Standards Track -- Expires Nov 2000 120 6285 Megaco Protocol May 2000 6287 +----------------+---------+-----------------+-----------------------+ 6288 | ECHOCI | 9021 | Enumeration | Echo Control | 6289 | | | | Information | 6290 | echo canceler off (0), incoming echo canceler on (1), outgoing | 6291 | echo canceler on (2), incoming and outgoing echo canceler on (3)| 6292 +----------------+---------+-----------------+-----------------------+ 6293 | NCI | 9022 | 1 OCTET | Nature of Connection | 6294 | | | | Indicators | 6295 | Reference: ITU Recommendation Q.763 | 6296 | Bits 8 7 6 5 4 3 2 1 | 6297 | | 6298 | Bits 2 1 Satellite Indicator | 6299 | 0 0 no satellite circuit in the connection | 6300 | 0 1 one satellite circuit in the connection | 6301 | 1 0 two satellite circuits in the connection | 6302 | 1 1 spare 6303 | | 6304 | Bits 4 3 Continuity check indicator | 6305 | 0 0 continuity check not required | 6306 | 0 1 continuity check required on this circuit | 6307 | 1 0 continuity check performed on a previous circuit | 6308 | 1 1 spare | 6309 | | 6310 | Bits 5 Echo control device indicator | 6311 | 0 outgoing echo control device not included | 6312 | 1 outgoing echo control device included | 6313 | | 6314 | Bits 8 7 6 Spare | 6315 +--------------------------------------------------------------------+ 6317 C.10 AAL5 Properties 6319 +----------------+---------+-----------------+-----------------------+ 6320 | PropertyID | Property| Type | Value | 6321 | | Tag | | | 6322 +----------------+---------+-----------------+-----------------------+ 6323 | FMSDU | A001 | 32 bit integer | Forward Maximum CPCS-| 6324 | | | | SDU Size: | 6325 | Reference: ITU Recommendation Q.2931 | 6326 | Maximum CPCS-SDU size sent in the direction from the calling | 6327 | user to the called user. | 6328 +----------------+---------+-----------------+-----------------------+ 6329 | BMSDU | A002 | 32 bit integer | Backwards Maximum | 6330 | | | | CPCS-SDU Size | 6331 | Reference: ITU Recommendation Q.2931 | 6332 | Maximum CPCS-SDU size sent in the direction from the called user| 6333 | to the calling user. | 6334 +----------------+---------+-----------------+-----------------------+ 6336 Rosen et al Standards Track -- Expires Nov 2000 121 6337 Megaco Protocol May 2000 6339 | SSCS | See | See table C.7 | See table C.7 | 6340 | | table | | | 6341 | | C.7 | | | 6342 | Additional values: | 6343 | VPI/VCI | 6344 +--------------------------------------------------------------------+ 6346 C.11 SDP Equivalents 6348 +----------------+---------+-----------------+-----------------------+ 6349 | PropertyID | Property| Type | Value | 6350 | | Tag | | | 6351 +----------------+---------+-----------------+-----------------------+ 6352 | SDP_V | B001 | STRING | Protocol Version | 6353 +----------------+---------+-----------------+-----------------------+ 6354 | SDP_O | B002 | STRING | Owner/creator and | 6355 | | | | session ID | 6356 +----------------+---------+-----------------+-----------------------+ 6357 | SDP_S | B003 | STRING | Sesson name | 6358 +----------------+---------+-----------------+-----------------------+ 6359 | SDP_I | B004 | STRING | Session identifier | 6360 +----------------+---------+-----------------+-----------------------+ 6361 | SDP_U | B005 | STRING | URI of descriptor | 6362 +----------------+---------+-----------------+-----------------------+ 6363 | SDC_E | B006 | STRING | email address | 6364 +----------------+---------+-----------------+-----------------------+ 6365 | SDP_P | B007 | STRING | phone number | 6366 +----------------+---------+-----------------+-----------------------+ 6367 | SDP_C | B008 | STRING | Connection information| 6368 +----------------+---------+-----------------+-----------------------+ 6369 | SDP_B | B009 | STRING | Bandwidth Information | 6370 +----------------+---------+-----------------+-----------------------+ 6371 | SDP_Z | B00A | STRING | time zone adjustment | 6372 +----------------+---------+-----------------+-----------------------+ 6373 | SDP_K | B00B | STRING | Encryption Key | 6374 +----------------+---------+-----------------+-----------------------+ 6375 | SDP_A | B00C | STRING | Zero or more session | 6376 +----------------+---------+-----------------+-----------------------+ 6377 | SDP_T | B00D | STRING | Active Session Time | 6378 +----------------+---------+-----------------+-----------------------+ 6379 | SDP_R | B00E | STRING | Zero or more repeat | 6380 +----------------+---------+-----------------+-----------------------+ 6381 | | 6382 | Reference in all cases: IETF RFC2327, "Session Description | 6383 | Protocol" | 6384 +--------------------------------------------------------------------+ 6386 Rosen et al Standards Track -- Expires Nov 2000 122 6387 Megaco Protocol May 2000 6389 C.12 H.245 6391 +----------------+---------+--------------+--------------------------+ 6392 | PropertyID | Property| Type | Value | 6393 | | Tag | | | 6394 +----------------+---------+--------------+--------------------------+ 6395 | OLC | C001 | octet string | The value of H.245 | 6396 | | | | OpenLogicalChannel | 6397 | | | | structure. | 6398 +----------------+---------+--------------+--------------------------+ 6399 | OLCack | C002 | octet string | The value of H.245 | 6400 | | | | OpenLogicalChannelAck | 6401 | | | | structure. | 6402 +----------------+---------+--------------+--------------------------+ 6403 | OLCcnf | C003 | octet string | The value of H.245 | 6404 | | | | OpenLogicalChannelConfirm| 6405 | | | | structure. | 6406 +----------------+---------+--------------+--------------------------+ 6407 | OLCrej | C004 | octet string | The value of H.245 | 6408 | | | | OpenLogicalChannelReject | 6409 | | | | structure. | 6410 +----------------+---------+--------------+--------------------------+ 6411 | CLC | C005 | octet string | The value of H.245 | 6412 | | | | CloseLogicalChannel | 6413 | | | | structure. | 6414 +----------------+---------+--------------+--------------------------+ 6415 | CLCack | C006 | octet string | The value of H.245 | 6416 | | | | CloseLogicalChannelAck | 6417 | | | | structure. | 6418 +----------------+---------+--------------+--------------------------+ 6419 | Reference in all cases: ITU-T Recommendation H.245 | 6420 +----------------+---------+--------------+--------------------------+ 6422 Rosen et al Standards Track -- Expires Nov 2000 123 6423 Megaco Protocol May 2000 6425 ANNEX D TRANSPORT OVER IP (NORMATIVE) 6427 D.1 Transport over IP/UDP using Application Level Framing 6429 Protocol messages defined in this document may be transmitted over 6430 UDP. When no port is provided by the peer (see section 7.2.8), 6431 commands should be sent to the default port number, 2944 for text- 6432 encoded operation or 2945 for binary-encoded operation. Responses 6433 must be sent to the address and port from which the corresponding 6434 commands were sent. 6436 Implementors using IP/UDP with ALF should be aware of the 6437 restrictions of the MTU on the maximum message size. 6439 D.1.1 Providing At-Most-Once Functionality 6441 Messages, being carried over UDP, may be subject to losses. In the 6442 absence of a timely response, commands are repeated. Most commands 6443 are not idempotent. The state of the MG would become unpredictable 6444 if, for example, Add commands were executed several times. The 6445 transmission procedures shall thus provide an "At- Most-Once" 6446 functionality. 6448 Peer protocol entities are expected to keep in memory a list of the 6449 responses that they sent to recent transactions and a list of the 6450 transactions that are currently outstanding. The transaction 6451 identifier of each incoming message is compared to the transaction 6452 identifiers of the recent responses sent to the same MId. If a match 6453 is found, the entity does not execute the transaction, but simply 6454 repeats the response. If no match is found, the message will be 6455 compared to the list of currently outstanding transactions. If a 6456 match is found in that list, indicating a duplicate transaction, the 6457 entity does not execute the transaction (see section D.1.4 for 6458 procedures on sending TransactionPending). 6460 The procedure uses a long timer value, noted LONG-TIMER in the 6461 following. The timer should be set larger than the maximum duration 6462 of a transaction, which should take into account the maximum number 6463 of repetitions, the maximum value of the repetition timer and the 6464 maximum propagation delay of a packet in the network. A suggested 6465 value is 30 seconds. 6467 The copy of the responses may be destroyed either LONG-TIMER seconds 6468 after the response is issued, or when the entity receives a 6469 confirmation that the response has been received, through the 6470 "Response Acknowledgement parameter". For transactions that are 6471 acknowledged through this parameter, the entity shall keep a copy of 6472 the transaction-id for LONG-TIMER seconds after the response is 6473 issued, in order to detect and ignore duplicate copies of the 6474 transaction request that could be produced by the network. 6476 Rosen et al Standards Track -- Expires Nov 2000 124 6477 Megaco Protocol May 2000 6479 D.1.2 Transaction identifiers and three-way handshake 6481 D.1.2.1 Transaction identifiers 6483 Transaction identifiers are 32 bit integer numbers. A Media Gateway 6484 Controller may decide to use a specific number space for each of the 6485 MGs that they manage, or to use the same number space for all MGs 6486 that belong to some arbitrary group. MGCs may decide to share the 6487 load of managing a large MG between several independent processes. 6488 These processes will share the same transaction number space. There 6489 are multiple possible implementations of this sharing, such as 6490 having a centralized allocation of transaction identifiers, or pre- 6491 allocating non-overlapping ranges of identifiers to different 6492 processes. The implementations shall guarantee that unique 6493 transaction identifiers are allocated to all transactions that 6494 originate from a logical MGC (identical mId). MGs can simply detect 6495 duplicate transactions by looking at the transaction identifier and 6496 mId only. 6498 D.1.2.2 Three-way handshake 6500 The TransactionResponse Acknowledgement parameter can be found in 6501 any message. It carries a set of "confirmed transaction-id ranges". 6502 Entities may choose to delete the copies of the responses to 6503 transactions whose id is included in "confirmed transaction-id 6504 ranges" received in the transaction response messages. They should 6505 silently discard further commands when the transaction-id falls 6506 within these ranges. 6508 The "confirmed transaction-id ranges" values shall not be used if 6509 more than LONG-TIMER seconds have elapsed since the MG issued its 6510 last response to that MGC, or when a MG resumes operation. In this 6511 situation, transactions should be accepted and processed, without 6512 any test on the transaction-id. 6514 Messages that carry the "Transaction Response Acknowledgement" 6515 parameter may be transmitted in any order. The entity shall retain 6516 the "confirmed transaction-id ranges" receivedfor LONG-TIMER 6517 seconds. 6519 In the binary encoding, if only the firstAck is present in a 6520 response acknowledgement (see Annex A.2), only one transaction is 6521 acknowledged. If both firstAck and lastAck are present, then the 6522 range of transactions from firstAck to lastAck is acknowledged. In 6523 the text encoding, a horizontal dash is used to indicate a range of 6524 transactions being acknowledged (see Annex B.2). 6526 D.1.3 Computing retransmission timers 6528 It is the responsibility of the requesting entity to provide 6529 suitable time outs for all outstanding transactions, and to retry 6530 transactions when time outs have been exceeded. Furthermore, when 6532 Rosen et al Standards Track -- Expires Nov 2000 125 6533 Megaco Protocol May 2000 6535 repeated transactions fail to be acknowledged, it is the 6536 responsibility of the requesting entity to seek redundant services 6537 and/or clear existing or pending connections. Implementations SHALL 6538 ensure that the algorithm used to calculate retransmission timing 6539 performs an exponentially increasing backoff of the retransmission 6540 timeout for each retransmission or repetition after the first one. 6542 The specification purposely avoids specifying any value for the 6543 retransmission timers. These values are typically network dependent. 6544 The retransmission timers should normally estimate the timer value 6545 by measuring the time spent between the sending of a command and the 6546 return of a response. 6548 Note - One possibility is to use the algorithm implemented in TCP- 6549 IP, which uses two variables: 6551 * The average acknowledgement delay, AAD, estimated through an 6552 exponentially smoothed average of the observed delays. 6554 * The average deviation, ADEV, estimated through an exponentially 6555 smoothed average of the absolute value of the difference between 6556 the observed delay and the current average. The retransmission 6557 timer, in TCP, is set to the sum of the average delay plus N times 6558 the average deviation. The maximum value of the timer should 6559 however be bounded for the protocol defined in this document, in 6560 order to guarantee that no repeated packet would be received by 6561 the gateways after LONG-TIMER seconds. A suggested maximum value 6562 is 4 seconds. 6564 After any retransmission, the entity SHOULD do the following: 6566 * It should double the estimated value of the average delay, AAD 6568 * It should compute a random value, uniformly distributed between 6569 0.5 AAD and AAD 6571 * It should set the retransmission timer to the sum of that random 6572 value and N times the average deviation. 6574 This procedure has two effects. Because it includes an exponentially 6575 increasing component, it will automatically slow down the stream of 6576 messages in case of congestion. Because it includes a random 6577 component, it will break the potential synchronization between 6578 notifications triggered by the same external event. 6580 D.1.4 Provisional responses 6582 Executing some transactions may require a long time. Long execution 6583 times may interact with the timer based retransmission procedure. 6584 This may result either in an inordinate number of retransmissions, 6585 or in timer values that become too long to be efficient. Entities 6586 that can predict that a transaction will require a long execution 6588 Rosen et al Standards Track -- Expires Nov 2000 126 6589 Megaco Protocol May 2000 6591 time may send a provisional response, "Transaction Pending". They 6592 SHOULD send this response if they receive a repetition of a 6593 transaction that is still being executed. 6595 Entities that receive a Transaction Pending shall switch to a 6596 different repetition timer for repeating requests. The root 6597 termination has a property (ProvisionalResponseTimerValue), which 6598 can be set to the requested maximum number of milliseconds between 6599 receipt of a command and transmission of the TransactionPending 6600 response. Upon receipt of a final response following receipt of 6601 provisional responses, an immediate confirmation shall be sent, and 6602 normal repetition timers shall be used thereafter. An entity that 6603 sends a provisional response, SHALL include the immAckRequired field 6604 in the ensuing final response, indicating that an immediate 6605 confirmation is expected. Receipt of a Transaction Pending after 6606 receipt of a reply shall be ignored. 6608 D.1.5 Repeating Requests, Responses and Acknowledgements 6610 The protocol is organized as a set of transactions, each of which is 6611 composed request and a response, commonly referred to as an 6612 acknowledgement. The protocol messages, being carried over UDP, may 6613 be subject to losses. In the absence of a timely response, 6614 transactions are repeated. Entities are expected to keep in memory a 6615 list of the responses that they sent to recent transactions, i.e. a 6616 list of all the responses they sent over the last LONG-TIMER 6617 seconds, and a list of the transactions that are currently being 6618 executed. 6620 The repetition mechanism is used to guard against three types of 6621 possible errors: 6622 * transmission errors, when for example a packet is lost due to 6623 noise on a line or congestion in a queue; 6624 * component failure, when for example an interface to a entity 6625 becomes unavailable; 6626 * entity failure, when for example an entire entity become 6627 unavailable. 6629 The entities should be able to derive from the past history an 6630 estimate of the packet loss rate due to transmission errors. In a 6631 properly configured system, this loss rate should be kept very low, 6632 typically less than 1%. If a Media Gateway Controller or a Media 6633 Gateway has to repeat a message more than a few times, it is very 6634 legitimate to assume that something else than a transmission error 6635 is occurring. For example, given a loss rate of 1%, the probability 6636 that five consecutive transmission attempts fail is 1 in 100 6637 billion, an event that should occur less than once every 10 days for 6638 a Media Gateway Controller that processes 1 000 transactions per 6639 second. (Indeed, the number of repetition that is considered 6640 excessive should be a function of the prevailing packet loss rate.) 6641 We should note that the "suspicion threshold", which we will call 6643 Rosen et al Standards Track -- Expires Nov 2000 127 6644 Megaco Protocol May 2000 6646 "Max1", is normally lower than the "disconnection threshold", which 6647 should be set to a larger value. 6649 A classic retransmission algorithm would simply count the number of 6650 successive repetitions, and conclude that the association is broken 6651 after retransmitting the packet an excessive number of times 6652 (typically between 7 and 11 times.) In order to account for the 6653 possibility of an undetected or in-progress "failover", we modify 6654 the classic algorithm so that if the Media Gateway receives a valid 6655 ServiceChange message announcing a failover, it will start 6656 transmitting outstanding commands to that new MGC. Responses to 6657 commands are still transmitted to the source address of the command. 6659 In order to automatically adapt to network load, this document 6660 specifies exponentially increasing timers. If the initial timer is 6661 set to 200 milliseconds, the loss of a fifth retransmission will be 6662 detected after about 6 seconds. This is probably an acceptable 6663 waiting delay to detect a failover. The repetitions should 6664 continue after that delay not only in order to perhaps overcome a 6665 transient connectivity problem, but also in order to allow some more 6666 time for the execution of a failover - waiting a total delay of 30 6667 seconds is probably acceptable. 6669 It is, however, important that the maximum delay of retransmissions 6670 be bounded. Prior to any retransmission, it is checked that the 6671 time elapsed since the sending of the initial datagram is no greater 6672 than T-MAX. If more than T-MAX time has elapsed, the MG concludes 6673 that the MGC has failed, and it begins its recovery process. The MG 6674 shall use a ServiceChange with ServiceChangeMethod set to 6675 Disconnected so that the new MGC will be aware that the MG lost one 6676 or more transactions. The value T-MAX is related to the LONG-TIMER 6677 value: the LONG-TIMER value is obtained by adding to T-MAX the 6678 maximum propagation delay in the network. 6680 D.2 Using TCP 6682 Protocol messages as defined in this document may be transmitted 6683 over TCP. When no port is specified by the other side (see section 6684 7.2.8), the commands should be sent to the default port. The defined 6685 protocol has messages as the unit of transfer, while TCP is a 6686 stream-oriented protocol. TPKT, according to RFC1006 SHALL be used 6687 to delineate messages within the TCP stream. 6689 In a transaction-oriented protocol, there are still ways for 6690 transaction requests or responses to be lost. As such, it is 6691 recommended that entities using TCP transport implement application 6692 level timers for each request and each response, similar to those 6693 specified for application level framing over UDP. 6695 Rosen et al Standards Track -- Expires Nov 2000 128 6696 Megaco Protocol May 2000 6698 D.2.1 Providing the At-Most-Once functionality 6700 Messages, being carried over TCP, are not subject to transport 6701 losses, but loss of a transaction request or its reply may 6702 nonetheless be noted in real implementations. In the absence of a 6703 timely response, commands are repeated. Most commands are not 6704 idempotent. The state of the MG would become unpredictable if, for 6705 example, Add commands were executed several times. 6707 To guard against such losses, it is recommended that entities follow 6708 the procedures in section D.1.1 6710 D.2.2 Transaction identifiers and three way handshake 6712 For the same reasons, it is possible that transaction replies may be 6713 lost even with a reliable delivery protocol such as TCP. It is 6714 recommended that entities follow the procedures in section D.1.2.2. 6716 D.2.3 Computing retransmission timers 6718 With reliable delivery, the incidence of loss of a transaction 6719 request or reply is expected to be very low. Therefore, only simple 6720 timer mechanisms are required. Exponential back-off algorithms 6721 should not be necessary, although they could be employed where, as 6722 in an MGC, the code to do so is already required, since MGCs must 6723 implement ALF/UDP as well as TCP. 6725 D.2.4 Provisional responses 6727 As with UDP, executing some transactions may require a long time. 6728 Entities that can predict that a transaction will require a long 6729 execution time may send a provisional response, "Transaction 6730 Pending". They should send this response if they receive a 6731 repetition of a transaction that is still being executed. 6733 Entities that receive a Transaction Pending shall switch to a longer 6734 repetition timer for that transaction. 6736 Entities shall retain Transactions and replies until they are 6737 confirmed. The basic procedure of section D.1.4 should be followed, 6738 but simple timer values should be sufficient. There is no need to 6739 send an immediate confirmation upon receipt of a final response. 6741 D.2.5 Ordering of commands 6743 TCP provides ordered delivery of transactions. No special 6744 procedures are required. It should be noted that ALF/UDP allows 6745 sending entity to modify its behavior under congestion, and in 6746 particular, could reorder transactions when congestion is 6747 encountered. TCP could not achieve the same results. 6749 Rosen et al Standards Track -- Expires Nov 2000 129 6750 Megaco Protocol May 2000 6752 ANNEX E BASIC PACKAGES (NORMATIVE) 6754 This Annex contains definitions of some packages for use with the 6755 Megaco protocol. 6757 E.1 Generic 6759 PackageID: g (0x0001) 6760 Version: 1 6761 Extends: None 6763 Description: Generic package for commonly encountered items. 6765 E.1.1 Properties 6767 None 6769 E.1.2 Events 6771 Cause 6772 ----- 6773 EventID: cause (0x0001) 6775 Generic error event 6777 ObservedEvents Descriptor Parameters: 6779 General Cause 6780 ------------- 6781 ParameterID: Generalcause (0x0001) 6783 Description: This parameter groups the failures into six 6784 groups, which the MGC may act upon. 6786 Possible values: Enumerated, 6787 "NR" Normal Release (0x0001) 6788 "UR" Unavailable Resources (0x0002) 6789 "FT" Failure, Temporary (0x0003) 6790 "FP" Failure, Permanent (0x0004) 6791 "IW" Interworking Error (0x0005) 6792 "UN" Unsupported (0x0006) 6794 Failure Cause 6795 ------------- 6796 ParameterID: Failurecause (0x0002) 6798 Description: The Release Cause is the value generated by the 6799 Released equipment, i.e. a released network connection. 6800 The concerned value is defined in the appropriate bearer 6801 control protocol. 6803 Possible Values: OCTET STRING 6805 Rosen et al Standards Track -- Expires Nov 2000 130 6806 Megaco Protocol May 2000 6808 Signal Completion 6809 ----------------- 6810 EventID: sc (0x0002) 6812 Indicates termination of one or more signals for which the 6813 notifyCompletion parameter was set to "ON". For further procedural 6814 description, see sections 7.1.11, 7.1.17, and 7.2.7. 6816 ObservedEvents Descriptor parameters: 6818 Signal Identity 6819 --------------- 6820 ParameterID: SigID (0x0001) 6822 This parameter identifies the signals which have terminated. 6824 Type: list 6826 Possible values: a list of signals and/or sequential signal 6827 lists which have terminated. A signal outside of a sequential 6828 signal list shall be identified using the pkgdName syntax 6829 without wildcarding. An individual signal inside of a 6830 sequential signal list shall be identified using the sequential 6831 signal list syntax with the correct signal list identifier, 6832 enclosing the name of the specific signal which terminated in 6833 pkgdName syntax. 6835 Termination Method 6836 ------------------ 6837 ParameterID: Meth (0x0002) 6839 Indicates the means by which the signal terminated. 6841 Type: enumeration 6843 Possible values: 6844 "TO" (0x0001) Duration expired 6845 "EV" (0x0002) Interrupted by event 6846 "SD" (0x0003) Halted by new Signals Descriptor 6847 "NC" (0x0004) Not completed, other cause 6849 E.1.3 Signals 6851 None 6853 E.1.4 Statistics 6855 None 6857 Rosen et al Standards Track -- Expires Nov 2000 131 6858 Megaco Protocol May 2000 6860 E.2 Base Root Package 6862 Base Root Package 6863 PackageID: root (0x0002) 6864 Version: 1 6865 Extends: None 6867 Description: This package defines Gateway wide properties. 6869 E.2.1 Properties 6871 MaxNrOfContexts 6872 --------------- 6873 PropertyID: maxNumberOfContexts (0x0001) 6875 The value of this property gives the maximum number of contexts that 6876 can exist at any time. The NULL context is not included in this 6877 number. 6879 Type: Double 6881 Possible values: 1 and up 6883 Defined in: TerminationState 6885 MaxTerminationsPerContext 6886 ------------------------- 6887 PropertyID: maxTerminationsPerContext (0x0002) 6889 The maximum number of allowed terminations in a context, see section 6890 6.1 6892 Type: Integer 6894 Possible Values: any integer 6896 Defined In: TerminationState 6898 normalMGExecutionTime 6899 --------------------- 6900 PropertyId: normalMGExecutionTime (0x0003) 6902 Settable by the MGC to indicate the interval within which the MGC 6903 expects a response to any transaction from the MG (exclusive of 6904 network delay) 6906 Type: Integer 6908 Possible Values: any integer, represents milliseconds 6910 Defined in: TerminationState 6912 Rosen et al Standards Track -- Expires Nov 2000 132 6913 Megaco Protocol May 2000 6915 normalMGCExecutionTime 6916 ---------------------- 6917 PropertyId: normalMGCExecutionTime (0x0004) 6919 Settable by the MGC to indicate the interval within which the MG 6920 should expects a response to any transaction from the MGC (exclusive 6921 of network delay) 6923 Type: Integer 6925 Possible Values: any integer, represents milliseconds 6927 Defined in: TerminationState 6929 ProvisionalResponseTimerValue 6930 ----------------------------- 6931 PropertyId: ProvisionalResponseTimerValue (0x0005) 6933 Indicates the time within which to expect a Pending Response if a 6934 Transaction cannot be completed. Initially set to 6935 normalMGExecutionTime or normalMGCExecutionTime as appropriate, plus 6936 network delay, but may be lowered. 6938 Type: Integer 6940 Possible Values: any integer, represents milliseconds 6942 Defined in: TerminationState 6944 E.2.2 Events 6946 None 6948 E.2.3 Signals 6950 None 6952 E.2.4 Statistics 6954 None 6956 E.2.5 Procedures 6958 None 6960 Rosen et al Standards Track -- Expires Nov 2000 133 6961 Megaco Protocol May 2000 6963 E.3 Tone Generator Package 6965 PackageID: tonegen (0x0003) 6966 Version: 1 6967 Extends: None 6969 Description: 6970 This package defines signals to generate audio tones. This package 6971 does not specify parameter values. It is intended to be extendable. 6972 Generally, tones are defined as an individual signal with a 6973 parameter, ind, representing "interdigit" time delay, and a tone id 6974 to be used with playtones. A tone id should be kept consistent with 6975 any tone generation for the same tone. MGs are expected to be 6976 provisioned with the characteristics of appropriate tones for the 6977 country in which the MG is located. 6979 E.3.1 Properties 6981 None 6983 E.3.2 Events 6985 None 6987 E.3.3 Signals 6989 Play tone 6990 --------- 6991 SignalID: pt (0x0001) 6993 Plays audio tone over an audio channel 6995 Signal Type: Brief 6997 Duration: Provisioned 6999 Additional Parameters: 7001 Tone id list 7002 ------------ 7003 ParameterID: tl (0x0001) 7005 Type: list of tone ids. 7007 List of tones to be played in sequence. The list SHALL contain 7008 one or more tone ids. 7010 Rosen et al Standards Track -- Expires Nov 2000 134 7011 Megaco Protocol May 2000 7013 Inter signal duration 7014 --------------------- 7015 ParameterID: ind (0x0002) 7017 Type: integer. 7019 Timeout between two consecutive tones in milliseconds 7021 No tone ids are specified in this package. Packages that extend this 7022 package can add possible values for tone id as well as adding 7023 individual tone signals. 7025 E.3.4 Statistics 7027 None 7029 E.3.5 Procedures 7031 None 7033 E.4 Tone Detection Package 7035 PackageID: tonedet (0x0004) 7036 Version: 1 7037 Extends: None 7039 This Package defines events for audio tone detection. Tones are 7040 selected by name (tone id). MGs are expected to be provisioned with 7041 the characteristics of appropriate tones for the country in which 7042 the MG is located. 7044 This package does not specify parameter values. It is intended to be 7045 extendable. 7047 E.4.1 Properties 7049 None 7051 E.4.2 Events 7053 Start tone detected 7054 ------------------- 7055 EventID: std, 0x0001 7057 Detects the start of a tone. The characteristics of positive tone 7058 detection is implementation dependent. 7060 Rosen et al Standards Track -- Expires Nov 2000 135 7061 Megaco Protocol May 2000 7063 EventsDescriptor parameters: 7065 Tone id list 7066 ------------ 7067 ParameterID: tl (0x0001) 7069 Type: list of tone ids 7071 Possible values: The only tone id defined in this package is 7072 "wild card" which is "*" in text encoding and 0x0000 in binary. 7073 Extensions to this package would add possible values for tone 7074 id. If tl is "wild card", any tone id is detected. 7076 ObservedEventsDescriptor parameters: 7078 Tone id 7079 -------- 7080 ParameterID: tid (0x0003) 7082 Type: Enumeration 7084 Possible values: "wildcard" as defined above is the only value 7085 defined in this package. Extensions to this package would add 7086 additional possible values for tone id. 7088 End tone detected 7089 ----------------- 7090 EventID: etd, 0x0002 7092 Detects the end of a tone. 7094 EventDescriptor parameters: 7096 Tone id list 7097 ------------ 7098 ParameterID: tl (0x0001) 7100 Type: enumeration or list of enumerated types 7102 Possible values: No possible values are specified in this 7103 package. Extensions to this package would add possible values 7104 for tone id. 7106 ObservedEventsDescriptor parameters: 7108 Tone id 7109 ------- 7110 ParameterID: tid (0x0003) 7112 Type: Enumeration 7114 Rosen et al Standards Track -- Expires Nov 2000 136 7115 Megaco Protocol May 2000 7117 Possible values: "wildcard" as defined above is the only value 7118 defined in this package. Extensions to this package would add 7119 possible values for tone id 7121 Duration 7122 -------- 7123 ParameterId: dur (0x0002) 7125 Type: integer, in milliseconds 7127 This parameter contains the duration of the tone from first 7128 detection until it stopped. 7130 Long tone detected 7131 ------------------ 7132 EventID: ltd, 0x0003 7134 Detects that a tone has been playing for at least a certain amount 7135 of time 7137 EventDescriptor parameters: 7139 Tone id list 7140 ------------ 7141 ParameterID: tl (0x0001) 7143 Type: enumeration or list 7145 Possible values: "wildcard" as defined above is the only value 7146 defined in this package. Extensions to this package would add 7147 possible values for tone id 7149 Duration: 7150 --------- 7151 ParameterID: dur (0x0002) 7153 Type: integer, duration to test against 7155 Possible values: any legal integer, expressed in milliseconds. 7157 ObservedEventsDescriptor parameters: 7159 Tone id 7160 ------- 7161 ParameterID: tid (0x0003) 7163 Possible values: No possible values are specified in this 7164 package. Extensions to this package would add possible values 7165 for tone id. 7167 Rosen et al Standards Track -- Expires Nov 2000 137 7168 Megaco Protocol May 2000 7170 E.4.3 Signals 7172 None 7174 E.4.4 Statistics 7176 None 7178 E.4.5 Procedures 7180 None 7182 E.5 Basic DTMF Generator Package 7184 PackageID: dg (0x0005) 7185 Version: 1 7186 Extends: tonegen version 1 7188 This package defines the basic DTMF tones as signals and extends the 7189 allowed values of parameter tl of playtone in tonegen. 7191 E.5.1 Properties 7193 None 7195 E.5.2 Events 7197 None 7199 E.5.3 Signals 7201 dtmf character 0 7202 ---------------- 7203 SignalID: d0 (0x0010) 7205 Generate DTMF 0 tone. The physical characteristic of DTMF 0 is 7206 defined in the gateway. 7208 Signal Type: Brief 7210 Duration: Provisioned 7212 Additional Parameters: 7214 None 7216 Additional Values: 7217 ----------------- 7219 d0 (0x0010) is defined as a toneid for playtone. 7221 Rosen et al Standards Track -- Expires Nov 2000 138 7222 Megaco Protocol May 2000 7224 The other dtmf characters are specified in exactly the same way. A 7225 table with all signal names and signal IDs is included. Note that 7226 each dtmf character is defined as both a signal and a toneid, thus 7227 extending the basic tone generation package. Also note that dtmf 7228 SignalIds are different from the names used in a digit map. 7230 +------------------+-------------------+ 7231 | Signal Name | Signal ID/tone id | 7232 +------------------+-------------------+ 7233 | dtmf character 0 | d0 (0x0010) | 7234 | dtmf character 1 | d1 (0x0011) | 7235 | dtmf character 2 | d2 (0x0012) | 7236 | dtmf character 3 | d3 (0x0013) | 7237 | dtmf character 4 | d4 (0x0014) | 7238 | dtmf character 5 | d5 (0x0015) | 7239 | dtmf character 6 | d6 (0x0016) | 7240 | dtmf character 7 | d7 (0x0017) | 7241 | dtmf character 8 | d8 (0x0018) | 7242 | dtmf character 9 | d9 (0x0019) | 7243 | dtmf character * | ds (0x0020) | 7244 | dtmf character # | do (0x0021) | 7245 | dtmf character A | da (0x001a) | 7246 | dtmf character B | db (0x001b) | 7247 | dtmf character C | dc (0x001c) | 7248 | dtmf character D | dd (0x001d) | 7249 +------------------+-------------------+ 7251 E.5.4 Statistics 7253 None 7255 E.5.5 Procedures 7257 None 7259 E.6 DTMF detection Package 7261 PackageID: dd (0x0006) 7262 Version: 1 7263 Extends: tonedet version 1 7265 This package defines the basic DTMF tones detection. This Package 7266 extends the possible values of tone id in the "start tone detected" 7267 "end tone detected" and "long tone detected" events. 7269 Additional tone id values are all tone ids described in package dg 7270 (basic DTMF generator package). 7272 The following table maps DTMF events to digit map symbols as 7273 described in section 7.1.14. 7275 Rosen et al Standards Track -- Expires Nov 2000 139 7276 Megaco Protocol May 2000 7278 +------+--------------+ 7279 | DTMF | Event Symbol | 7280 +------+--------------+ 7281 | d0 | "0" | 7282 | d1 | "1" | 7283 | d2 | "2" | 7284 | d3 | "3" | 7285 | d4 | "4" | 7286 | d5 | "5" | 7287 | d6 | "6" | 7288 | d7 | "7" | 7289 | d8 | "8" | 7290 | d9 | "9" | 7291 | da | "A" or "a" | 7292 | db | "B" or "b" | 7293 | dc | "C" or "c" | 7294 | dd | "D" or "d" | 7295 | ds | "E" or "e" | 7296 | do | "F" or "f" | 7297 +------+--------------+ 7299 E.6.1 Properties 7301 None 7303 E.6.2 Events 7305 DTMF digits 7306 ----------- 7308 EventIds are defined with the same names as the SignalIds defined in 7309 the table found in section E.5.3. 7311 DigitMap Completion Event 7312 ------------------------- 7313 EventID: ce, 0x0001 7315 Generated when a digit map completes as described in section 7.1.14. 7317 EventsDescriptor parameters: digit map processing is activated only 7318 if a digit map parameter is present, specifying a digit map by name 7319 or by value. Other parameters such as a KeepActive flag or embedded 7320 Events or Signals Descriptors may be present. 7322 ObservedEventsDescriptor parameters: 7324 DigitString 7325 ----------- 7326 ParameterID: ds (0x0001) 7328 Type: string of digit map symbols (possibly empty) returned as 7329 a quotedString. 7331 Rosen et al Standards Track -- Expires Nov 2000 140 7332 Megaco Protocol May 2000 7334 Possible values: a sequence of the characters "0" through "9", 7335 "A" through "F", and the long duration modifier "Z". 7337 Description: the portion of the current dial string as 7338 described in section 7.1.14 which matched part or all of an 7339 alternative event sequence specified in the digit map. 7341 Termination Method 7342 ------------------ 7343 ParameterID: Meth (0x0003) 7345 Type: enumeration 7347 Possible values: 7348 "UM" (0x0001) Unambiguous match 7349 "PM" (0x0002) Partial match, completion by timer 7350 expiry or unmatched event 7351 "FM" (0x0003) Full match, completion by timer expiry 7352 or unmatched event 7354 Description: indicates the reason for generation of the event. 7355 See the procedures in section 7.1.14. 7357 E.6.3 Signals 7359 None 7361 E.6.4 Statistics 7363 None 7365 E.6.5 Procedures 7367 None 7369 E.7 Call Progress Tones Generator Package 7371 PackageID: cg, 0x0007 7372 Version: 1 7373 Extends: tonegen version 1 7375 This package defines the basic call progress tones as signals and 7376 extends the allowed values of the tl parameter of playtone in 7377 tonegen . 7379 E.7.1 Properties 7381 None 7383 Rosen et al Standards Track -- Expires Nov 2000 141 7384 Megaco Protocol May 2000 7386 E.7.2 Events 7388 None 7390 E.7.3 Signals 7392 Dial Tone 7393 --------- 7394 SignaID: dt (0x0030) 7396 Generate dial tone. The physical characteristic of dial tone is 7397 available in the gateway. 7399 Signal Type: Timeout 7401 Duration: Provisioned 7403 Additional Parameters: 7404 None 7406 Additional Values 7407 ----------------- 7408 dt (0x0030) is defined as a tone id for playtone 7409 The other tones of this package are defined in exactly the same way. 7410 A table with all signal names and signal IDs is included. Note 7411 that each tone is defined as both a signal and a toneid, thus 7412 extending the basic tone generation package. 7414 +---------------------------+-------------------+ 7415 | Signal Name | Signal ID/tone id | 7416 +---------------------------+-------------------+ 7417 | Dial Tone | dt (0x0030) | 7418 | Ringing Tone | rt (0x0031) | 7419 | Busy Tone | bt (0x0032) | 7420 | Congestion Tone | ct (0x0033) | 7421 | Special Information Tone | sit(0x0034) | 7422 | Warning Tone | wt (0x0035) | 7423 | Payphone Recognition Tone | pt (0x0036) | 7424 | Call Waiting Tone | cw (0x0037) | 7425 | Caller Waiting Tone | cr (0x0038) | 7426 +---------------------------+-------------------+ 7428 E.7.4 Statistics 7430 None 7432 E.7.5 Procedures 7434 NOTE - The required set of tone ids corresponds to those defined in 7435 Recommendation E.180/Q.35 [ITU-T Recommendation E.180/Q.35 (1998)]. 7436 See E.180 for definition of the meanings of these tones. 7438 Rosen et al Standards Track -- Expires Nov 2000 142 7439 Megaco Protocol May 2000 7441 E.8 Call Progress Tones Detection Package 7443 PackageID: cd (0x0008) 7444 Version: 1 7445 Extends: tonedet version 1 7447 This package defines the basic call progress detection tones. This 7448 Package extends the possible values of tone id in the "start tone 7449 detected", "end tone detected" and "long tone detected" events. 7451 Additional values 7452 ----------------- 7454 tone id values are defined for start tone detected, end tone 7455 detected and long tone detected with the same values as those in 7456 package cg (call progress tones generation package). 7458 The required set of tone ids corresponds to Recommendation 7459 E.180/Q.35 [ITU-T Recommendation E.180/Q.35 (1998)]. See 7460 Recommendation E.180/Q.35 for definition of the meanings of these 7461 tones. 7463 E.8.1 Properties 7465 none 7467 E.8.2 Events 7469 Events are defined as in the call progress tones generator package 7470 (cg) for the tones listed in the table of section E.7.3 7472 E.8.3 Signals 7474 none 7476 E.8.4 Statistics 7478 none 7480 E.8.5 Procedures 7482 none 7484 E.9 Analog Line Supervision Package 7486 PackageID: al, 0x0009 7487 Version: 1 7488 Extends: None 7490 This package defines events and signals for an analog line. 7492 Rosen et al Standards Track -- Expires Nov 2000 143 7493 Megaco Protocol May 2000 7495 E.9.1 Properties 7497 None 7499 E.9.2 Events 7501 onhook 7502 ------ 7503 EventID: on (0x0004) 7505 Detects handset going on hook. Whenever an events descriptor is 7506 activated that requests monitoring for an on-hook event and the line 7507 is already on-hook, then the MG shall behave according to the 7508 setting of the "strict" parameter. 7510 EventDescriptor parameters 7512 Strict Transition 7513 ----------------- 7514 ParameterID: strict (0x0001) 7516 Type: enumeration 7518 Possible values: "exact" (0x00), "state" (0x01), "failWrong" 7519 (0x02) 7521 "exact" means that only an actual hook state transition to on- 7522 hook is to be recognized; 7524 "state" means that the event is to be recognized either if the 7525 hook state transition is detected or if the hook state is 7526 already on-hook; 7528 "failWrong" means that if the hook state is already on-hook, 7529 the command fails and an error is reported. 7531 ObservedEventsDescriptor parameters 7533 Initial State 7534 ------------- 7535 ParameterID: init (0x0002) 7537 Type: Boolean 7539 Possible values: 7541 True means that the event was reported because the line was 7542 already on-hook when the events descriptor containing this 7543 event was activated; 7545 Rosen et al Standards Track -- Expires Nov 2000 144 7546 Megaco Protocol May 2000 7548 False means that the event represents an actual state 7549 transition to on-hook. 7551 offhook 7552 ------- 7553 EventID: of (0x0005) 7555 Detects handset going off hook. Whenever an events descriptor is 7556 activated that requests monitoring for an off-hook event and the 7557 line is already off-hook, then the MG shall behave according to the 7558 setting of the "strict" parameter. 7560 EventDescriptor parameters 7562 Strict Transition 7563 ----------------- 7564 ParameterID: strict (0x0001) 7566 Type: enumeration 7568 Possible values: "exact" (0x00), "state" (0x01), "failWrong" 7569 (0x02) 7571 "exact" means that only an actual hook state transition to off- 7572 hook is to be recognized; 7574 "state" means that the event is to be recognized either if the 7575 hook state transition is detected or if the hook state is 7576 already off-hook; 7578 "failWrong" means that if the hook state is already off-hook, 7579 the command fails and an error is reported. 7581 ObservedEventsDescriptor parameters 7583 Initial State 7584 ------------- 7585 ParameterID: init (0x0002) 7587 Type: Boolean 7589 Possible values: 7591 True means that the event was reported because the line was 7592 already off-hook when the events descriptor containing this 7593 event was activated; 7595 False means that the event represents an actual state 7596 transition to off-hook. 7598 Rosen et al Standards Track -- Expires Nov 2000 145 7599 Megaco Protocol May 2000 7601 flashhook 7602 --------- 7603 EventID: fl, 0x0006 7605 Detects handset flash. A flash occurs when an onhook is followed by 7606 an offhook between a minimum and maximum duration. 7608 EventDescriptor parameters 7610 Minimum duration 7611 ---------------- 7612 ParameterID: mindur (0x0004) 7614 Type: integer in milliseconds 7616 Default value is provisioned 7618 Maximum duration 7619 ---------------- 7620 ParameterID: maxdur (0x0005) 7622 Type: integer in milliseconds 7624 Default value is provisioned 7626 ObservedEventsDescriptor parameters 7628 None 7630 E.9.3 Signals 7632 ring 7633 ---- 7634 SignalID: ri, 0x0002 7636 Applies ringing on the line 7638 Signal Type: TimeOut 7640 Duration: Provisioned 7642 Additional Parameters: 7644 Cadence 7645 ------- 7646 ParameterID: cad (0x0006) 7648 Type: list of integers representing durations of alternating on 7649 and off segments, constituting a complete ringing cycle 7650 starting with an on. Units in milliseconds. 7652 Rosen et al Standards Track -- Expires Nov 2000 146 7653 Megaco Protocol May 2000 7655 Default is fixed or provisioned. Restricted function MGs may 7656 ignore cadence values they are incapable of generating. 7658 Frequency 7659 --------- 7660 ParameterID: freq (0x0007) 7662 Type: integer in Hz 7664 Default is fixed or provisioned. Restricted function MGs may 7665 ignore frequency values they are incapable of generating. 7667 E.9.4 Statistics 7669 None 7671 E.9.5 Procedures 7673 If the MGC sets an EventsDescriptor containing a hook state 7674 transition event (on-hook or off-hook) with the "strict" (0x0001) 7675 parameter set to "failWrong", and the hook state is already what the 7676 transition implies, the execution of the command containing that 7677 EventsDescriptor fails. The MG SHALL include error code 540 7678 "Unexpected initial hook state" in its reponse. 7680 E.9.6 Error Code 7682 This package defines a new error code: 7683 540 - Unexpected initial hook state 7684 The procedure for use of this code is given in section E.9.5. 7686 E.10 Basic Continuity Package 7688 PackageID: ct (0x000a) 7689 Version: 1 7690 Extends: None 7692 This package defines events and signals for continuity test. The 7693 continuity test includes provision of either a loopback or 7694 transceiver functionality. 7696 E.10.1 Properties 7698 None 7700 Rosen et al Standards Track -- Expires Nov 2000 147 7701 Megaco Protocol May 2000 7703 E.10.2 Events 7705 Completion 7706 ---------- 7707 EventID: cmp, 0x0005 7709 This event detects test completion of continuity test. 7711 EventDescriptor parameters 7713 None 7715 ObservedEventsDescriptor parameters 7717 Result 7718 ------ 7719 ParameterID: res (0x0008) 7721 Type: Enumeration 7723 Possible values: success (0x0001), failure (0x0000) 7725 E.10.3 Signals 7727 Continuity test 7728 --------------- 7729 SignalID: ct (0x0003) 7731 Initiates sending of continuity test tone on the termination to 7732 which it is applied. 7734 Signal Type: TimeOut 7736 Default value is provisioned 7738 Additional Parameters: 7740 None 7742 Respond 7743 ------- 7744 SignalID: rsp (0x0004) 7746 The signal is used to respond to a continuity test . See section 7747 E.10.5 for further explanation. 7749 Signal Type: On/Off 7751 Default duration is provisioned 7753 Rosen et al Standards Track -- Expires Nov 2000 148 7754 Megaco Protocol May 2000 7756 Additional Parameters: 7758 None. 7760 E.10.4 Statistics 7762 None 7764 E.10.5 Procedures 7766 When a MGC wants to initiate a continuity test, it sends a command 7767 to the MG containing 7768 * a signals descriptor with the ct signal, and 7769 * an events descriptor containing the cmp event. 7771 Upon reception of a command containing the ct signal and cmp event, 7772 the MG initiates the continuity test tone for the specified 7773 termination. If the return tone is detected and any other required 7774 conditions are satisfied before the signal times out, the cmp event 7775 shall be generated with the value of the result parameter equal to 7776 success. In all other cases, the cmp event shall be generated with 7777 the value of the result parameter equal to failure. 7779 When a MGC wants the MG to respond to a continuity test, it sends a 7780 command to the MG containing a signals descriptor with the rsp 7781 signal. Upon reception of a command with the rsp signal, the MG 7782 either applies a loopback or (for 2-wire circuits) awaits reception 7783 of a continuity test tone. In the loopback case, any incoming 7784 information shall be reflected back as outgoing information. In the 7785 2-wire case, any time the appropriate test tone is received, the 7786 appropriate response tone should be sent. The MGC determines when 7787 to remove the rsp signal. 7789 When a continuity test is performed on a termination, no echo 7790 devices or codecs shall be active on that termination. 7792 Performing voice path assurance as part of continuity testing is 7793 provisioned by bilateral agreement between network operators. 7795 E.11 Network Package 7797 PackageID: nt (0x000b) 7798 Version: 1 7799 Extends: None 7801 This package defines properties of network terminations independent 7802 of network type. 7804 Rosen et al Standards Track -- Expires Nov 2000 149 7805 Megaco Protocol May 2000 7807 E.11.1 Properties 7809 Maximum Jitter Buffer 7810 --------------------- 7811 PropertyID: jit (0x0007) 7813 This property puts a maximum size on the jitter buffer. 7815 Type: integer in milliseconds 7817 Possible Values: This property is specified in milliseconds. 7819 Defined In: LocalControlDescriptor 7821 Characteristics: read/write 7823 E.11.2 Events 7825 network failure 7826 --------------- 7827 EventID: netfail, 0x0005 7829 The termination generates this event upon detection of a failure due 7830 to external or internal network reasons. 7832 EventDescriptor parameters 7834 None 7836 ObservedEventsDescriptor parameters 7838 cause 7839 ----- 7840 ParameterID: cs (0x0001) 7842 Type: String 7844 Possible values: any text string 7846 This parameter may be included with the failure event to provide 7847 diagnostic information on the reason of failure. 7849 quality alert 7850 ------------- 7851 EventID: qualert, 0x0006 7853 This property allows the MG to indicate a loss of quality of the 7854 network connection. The MG may do this by measuring packet loss, 7855 interarrival jitter, propogation delay and then indicating this 7856 using a percentage of quality loss. 7858 Rosen et al Standards Track -- Expires Nov 2000 150 7859 Megaco Protocol May 2000 7861 EventDescriptor parameters 7863 Threshold 7864 --------- 7865 ParameterId: th (0x0001) 7867 Type: integer 7869 Possible Values: threshold for percent of quality loss 7870 measured, calculated based on a provisioned method, that could 7871 take into consideration packet loss, jitter, and delay for 7872 example. Event is triggered when calculation exceeds the 7873 threshold. 7875 ObservedEventsDescriptor parameters 7877 Threshold 7878 --------- 7879 ParameterId: th (0x0001) 7881 Type: integer 7883 Possible Values: percent of quality loss measured, calculated 7884 based on a provisioned method, that could take into 7885 consideration packet loss, jitter, and delay for example. 7887 E.11.3 Signals 7889 none 7891 E.11.4 Statistics 7893 Duration 7894 -------- 7895 StatisticsID: dur (0x0001) 7897 Description: Provides duration of time the termination has been in 7898 the context. 7900 Type: Double, in milliseconds 7902 Octets Sent 7903 ----------- 7904 StatisticID: os (0x0002) 7906 Type: double 7908 Possible Values: any 64 bit integer 7910 Rosen et al Standards Track -- Expires Nov 2000 151 7911 Megaco Protocol May 2000 7913 Octets Received 7914 --------------- 7915 StatisticID: or (0x0003) 7917 Type: double 7919 Possible Values: any 64 bit integer 7921 E.11.5 Procedures 7923 none 7925 E.12 RTP Package 7927 PackageID: rtp (0x000c) 7928 Version: 1 7929 Extends: Network Package version 1 7931 This package is used to support packet based multimedia data 7932 transfer by means of the Real-time Transport Protocol (RTP) [RFC 7933 1889]. 7935 E.12.1 Properties 7937 None 7939 E.12.2 Events 7941 Payload Transition 7942 EventID: pltrans, 0x0001 7943 This event detects and notifies when there is a transition of the 7944 RTP payload format from one format to another. 7946 EventDescriptor parameters 7948 None 7950 ObservedEventsDescriptor parameters 7952 rtppayload 7953 ---------- 7954 ParameterID: rtppltype, 0x01 7956 Type: list of enumerated types. 7958 Possible values: The encoding method shall be specified by 7959 using one or several valid encoding names, as defined in the 7960 RTP AV Profile or registered with IANA. 7962 Rosen et al Standards Track -- Expires Nov 2000 152 7963 Megaco Protocol May 2000 7965 E.12.3 Signals 7967 None 7969 E.12.4 Statistics 7971 Packets Sent 7972 ------------ 7973 StatisticID: ps (0x0004) 7975 Type: double 7977 Possible Values: any 64 bit integer 7979 Packets Received 7980 ---------------- 7981 StatisticID: pr (0x0005) 7983 Type: double 7985 Possible Values: any 64 bit integer 7987 Packet Loss 7988 ----------- 7989 StatisticID: pl (0x0006) 7991 Describes the current rate of packet loss on an RTP stream, as 7992 defined in IETF RFC 1889. Packet loss is expressed as percentage 7993 value: number of packets lost in the interval between two reception 7994 reports, divided by the number of packets expected during that 7995 interval. 7997 Type: double 7999 Possible Values: a 32 bit whole number and a 32 bit fraction. 8001 Jitter 8002 ------ 8003 StatisticID: jit (0x0007) 8005 Requests the current value of the interarrival jitter on an RTP 8006 stream as defined in IETF RFC 1889. Jitter measures the variation in 8007 interarrival time for RTP data packets. 8009 Delay 8010 ----- 8011 StatisticID:delay (0x0008) 8013 Requests the current value of packet propagation delay expressed in 8014 timestamp units. Same as average latency. 8016 Rosen et al Standards Track -- Expires Nov 2000 153 8017 Megaco Protocol May 2000 8019 E.12.5 Procedures 8021 none 8023 E.13 TDM Circuit Package 8025 PackageID: tdmc (0x000d) 8026 Version: 1 8027 Extends: Network Package version 1 8029 This package is used to support TDM circuit terminations. 8031 E.13.1 Properties 8033 Echo Cancellation 8034 ----------------- 8035 PropertyID: ec (0x0008) 8037 By default, the telephony gateways always perform echo cancellation. 8038 However, it is necessary, for some calls, to turn off these 8039 operations. 8041 Type: boolean 8043 Possible Values: 8044 "on" (when the echo cancellation is requested) and 8045 "off" (when it is turned off.) 8046 The default is "on". 8048 Defined In: LocalControlDescriptor 8050 Characteristics: read/write 8052 Gain Control 8053 ------------ 8054 PropertyID: gain (0x000a) 8056 Gain control, or usage of of signal level adaptation and noise level 8057 reduction is used to adapt the level of the signal. However, it is 8058 necessary, for example for modem calls, to turn off this function. 8060 Type: enumeration (integer) 8062 Possible Values: 8063 The gain control parameter may either be specified as "automatic" 8064 (0xffffffff), or as an explicit number of decibels of gain (any 8065 other integer value). The default is provisioned in the MG. 8067 Defined In: LocalControlDescriptor 8069 Characteristics: read/write 8071 Rosen et al Standards Track -- Expires Nov 2000 154 8072 Megaco Protocol May 2000 8074 E.13.2 Events 8076 none 8078 E.13.3 Signals 8080 none 8082 E.13.4 Statistics 8084 None 8086 E.13.5 Procedures 8088 None 8090 Rosen et al Standards Track -- Expires Nov 2000 155 8091 Megaco Protocol May 2000 8093 APPENDIX A EXAMPLE CALL FLOWS (INFORMATIVE) 8095 All Megaco implementors must read the normative part of this 8096 document carefully before implementing from it. No one should use 8097 the examples in this section as stand-alone explanations of how to 8098 create protocol messages. 8100 The examples in this section use SDP for encoding of the Local and 8101 Remote stream descriptors. SDP is defined in RFC 2327. If there is 8102 any discrepancy between the SDP in the examples, and RFC 2327, the 8103 RFC should be consulted for correctness. Audio profiles used are 8104 those defined in RFC 1890, and others registered with IANA. For 8105 example, G.711 A-law is called PCMA in the SDP, and is assigned 8106 profile 0. G.723 is profile 4, and H263 is profile 34. See also 8108 http://www.isi.edu/in-notes/iana/assignments/rtp-parameters 8110 A.1 Residential Gateway to Residential Gateway Call 8112 This example scenario illustrates the use of the elements of the 8113 protocol to set up a Residential Gateway to Residential Gateway call 8114 over an IP-based network. For simplicity, this example assumes that 8115 both Residential Gateways involved in the call are controlled by the 8116 same Media Gateway Controller. 8118 A.1.1 Programming Residential GW Analog Line Terminations for Idle 8119 Behavior 8121 The following illustrates the API invocations from the Media Gateway 8122 Controller and Media Gateways to get the Terminations in this 8123 scenario programmed for idle behavior. Both the originating and 8124 terminating Media Gateways have idle AnalogLine Terminations 8125 programmed to look for call initiation events (i.e.-offhook) by 8126 using the Modify Command with the appropriate parameters. The null 8127 Context is used to indicate that the Terminations are not yet 8128 involved in a Context. The ROOT termination is used to indicate the 8129 entire MG instead of a termination within the MG. 8131 In this example, MG1 has the IP address 124.124.124.222, MG2 is 8132 125.125.125.111, and the MGC is 123.123.123.4. The default Megaco 8133 port is 55555 for all three. 8135 1. An MG registers with an MGC using the ServiceChange command: 8137 MG1 to MGC: 8138 MEGACO/1 [124.124.124.222] 8139 Transaction = 9998 { 8140 Context = - { 8141 ServiceChange = ROOT {Services { 8142 Method=Restart, 8143 ServiceChangeAddress=55555, Profile=ResGW/1} 8144 } 8146 Rosen et al Standards Track -- Expires Nov 2000 156 8147 Megaco Protocol May 2000 8149 } 8150 } 8152 2. The MGC sends a reply: 8154 MGC to MG1: 8155 MEGACO/1 [123.123.123.4]:55555 8156 Reply = 9998 { 8157 Context = - {ServiceChange = ROOT { 8158 Services {ServiceChangeAddress=55555, Profile=ResGW/1} } } 8159 } 8161 3. The MGC programs a Termination in the NULL context. The 8162 terminationId is A4444, the streamId is 1, the requestId in the 8163 Events descriptor is 2222. The mId is the identifier of the sender 8164 of this message, in this case, it is the IP address and port 8165 [123.123.123.4]:55555. Mode for this stream is set to SendReceive. 8166 "al" is the analog line supervision package. 8168 MGC to MG1: 8169 MEGACO/1 [123.123.123.4]:55555 8170 Transaction = 9999 { 8171 Context = - { 8172 Modify = A4444 { 8173 Media { Stream = 1 { 8174 LocalControl { 8175 Mode = SendReceive, 8176 tdmc/gain=2, ; in dB, 8177 tdmc/ec=on 8178 }, 8179 Local { 8180 v=0 8181 c=IN IP4 $ 8182 m=audio $ RTP/AVP 0 8183 a=fmtp:PCMU VAD=X-NNVAD ; special voice activity 8184 ; detection algorithm 8185 } 8186 } 8187 }, 8188 Events = 2222 {al/of} 8189 } 8190 } 8191 } 8193 The dialplan script could have been loaded into the MG previously. 8194 Its function would be to wait for the OffHook, turn on dialtone and 8195 start collecting DTMF digits. However in this example, we use the 8196 digit map, which is put into place after the offhook is detected 8197 (step 5 below). 8199 Note that the embedded EventsDescriptor could have been used to 8200 combine steps 3 and 4 with steps 8 and 9, eliminating steps 6 and 7. 8202 Rosen et al Standards Track -- Expires Nov 2000 157 8203 Megaco Protocol May 2000 8205 4. The MG1 accepts the Modify with this reply: 8207 MG1 to MGC: 8208 MEGACO/1 [124.124.124.222]:55555 8209 Reply = 9999 { 8210 Context = - {Modify = A4444} 8211 } 8213 5. A similar exchange happens between MG2 and the MGC, resulting in 8214 an idle Termination called A5555. 8216 A.1.2 Collecting Originator Digits and Initiating Termination 8218 The following builds upon the previously shown conditions. It 8219 illustrates the transactions from the Media Gateway Controller and 8220 originating Media Gateway (MG1) to get the originating Termination 8221 (A4444) through the stages of digit collection required to initiate 8222 a connection to the terminating Media Gateway (MG2). 8224 6. MG1 detects an offhook event from User 1 and reports it to the 8225 Media Gateway Controller via the Notify Command. 8227 MG1 to MGC: 8228 MEGACO/1 [124.124.124.222]:55555 8229 Transaction = 10000 { 8230 Context = - { 8231 Notify = A4444 {ObservedEvents =2222 { 8232 19990729T22000000:al/of}} 8233 } 8234 } 8236 7. And the Notify is acknowledged. 8238 MGC to MG1: 8239 MEGACO/1 [123.123.123.4]:55555 8240 Reply = 10000 { 8241 Context = - {Notify = A4444} 8242 } 8244 8. The MGC Modifies the termination to play dial tone, to look for 8245 digits according to Dialplan0 and to look for the on-hook event now. 8246 MGC to MG1: 8248 MEGACO/1 [123.123.123.4]:55555 8249 Transaction = 10001 { 8250 Context = - { 8251 Modify = A4444 { 8252 Events = 2223 { 8253 al/on, dd/ce {DigitMap=Dialplan0} 8254 }, 8255 Signals {cg/dt}, 8257 Rosen et al Standards Track -- Expires Nov 2000 158 8258 Megaco Protocol May 2000 8260 DigitMap= Dialplan0{ 8261 (0| 00|[1-7]xxx|8xxxxxxx|Fxxxxxxx|Exx|91xxxxxxxxxx|9011x.)} 8262 } 8263 } 8264 } 8266 9. And the Modify is acknowledged. 8268 MG1 to MGC: 8269 MEGACO/1 [124.124.124.222]:55555 8270 Reply = 10001 { 8271 Context = - {Modify = A4444} 8272 } 8274 10. Next, digits are accumulated by MG1 as they are dialed by User 8275 1. Dialtone is stopped upon detection of the first digit. When an 8276 appropriate match is made of collected digits against the currently 8277 programmed Dialplan for A4444, another Notify is sent to the Media 8278 Gateway Controller. 8280 MG1 to MGC: 8281 MEGACO/1 [124.124.124.222]:55555 8282 Transaction = 10002 { 8283 Context = - { 8284 Notify = A4444 {ObservedEvents =2223 { 8285 19990729T22010001:dd/ce{ds="916135551212",Meth=FM}}} 8286 } 8287 } 8289 11. And the Notify is acknowledged. 8291 MGC to MG1: 8292 MEGACO/1 [123.123.123.4]:55555 8293 Reply = 10002 { 8294 Context = - {Notify = A4444} 8295 } 8297 12. The controller then analyses the digits and determines that a 8298 connection needs to be made from MG1 to MG2. Both the TDM 8299 termination A4444, and an RTP termination are added to a new context 8300 in MG1. Mode is ReceiveOnly since Remote descriptor values are not 8301 yet specified. Preferred codecs are in the MGC's preferred order of 8302 choice. 8304 MGC to MG1: 8305 MEGACO/1 [123.123.123.4]:55555 8306 Transaction = 10003 { 8307 Context = $ { 8308 Add = A4444, 8309 Add = $ { 8310 Media { 8311 Stream = 1 { 8313 Rosen et al Standards Track -- Expires Nov 2000 159 8314 Megaco Protocol May 2000 8316 LocalControl { 8317 Mode = ReceiveOnly, 8319 nt/jit=40 ; in ms 8320 }, 8321 Local { 8322 v=0 8323 c=IN IP4 $ 8324 m=audio $ RTP/AVP 4 8325 a=ptime:30 8326 v=0 8327 c=IN IP4 $ 8328 m=audio $ RTP/AVP 0 8329 } 8330 } 8331 } 8332 } 8333 } 8334 } 8336 NOTE - The MGC states its preferred parameter values as a series of 8337 sdp blocks in Local. The MG fills in the Local Descriptor in the 8338 Reply. 8340 13. MG1 acknowledges the new Termination and fills in the Local IP 8341 address and UDP port. It also makes a choice for the codec based on 8342 the MGC preferences in Local. MG1 sets the RTP port to 2222. 8343 MEGACO/1 [124.124.124.222]:55555 8344 Reply = 10003 { 8345 Context = 2000 { 8346 Add = A4444, 8347 Add=A4445{ 8348 Media { 8349 Stream = 1 { 8350 Local { 8351 v=0 8352 c=IN IP4 124.124.124.222 8353 m=audio 2222 RTP/AVP 4 8354 a=ptime:30 8355 a=recvonly 8356 } ; RTP profile for G.723 is 4 8357 } 8358 } 8359 } 8360 } 8361 } 8363 14. The MGC will now associate A5555 with a new Context on MG2, and 8364 establish an RTP Stream (i.e, A5556 will be assigned), SendReceive 8365 connection through to the originating user, User 1. The MGC also 8366 sets ring on A5555. 8368 Rosen et al Standards Track -- Expires Nov 2000 160 8369 Megaco Protocol May 2000 8371 MGC to MG2: 8372 MEGACO/1 [123.123.123.4]:55555 8373 Transaction = 50003 { 8374 Context = $ { 8375 Add = A5555 { Media { 8376 Stream = 1 { 8377 LocalControl {Mode = SendReceive} }}, 8378 Events=1234{al/of}, 8379 Signals {al/ri} 8380 }, 8381 Add = $ {Media { 8382 Stream = 1 { 8383 LocalControl { 8384 Mode = SendReceive, 8385 nt/jit=40 ; in ms 8386 }, 8387 Local { 8388 v=0 8389 c=IN IP4 $ 8390 m=audio $ RTP/AVP 4 8391 a=ptime:30 8392 }, 8393 Remote { 8394 v=0 8395 c=IN IP4 124.124.124.222 8396 m=audio 2222 RTP/AVP 4 8397 a=ptime:30 8398 } ; RTP profile for G.723 is 4 8399 } 8400 } 8401 } 8402 } 8403 } 8405 15. This is acknowledged. The stream port number is different from 8406 the control port number. In this case it is 1111 (in the SDP). 8408 MG2 to MGC: 8409 MEGACO/1 [124.124.124.222]:55555 8410 Reply = 50003 { 8411 Context = 5000 { 8412 Add = A5555, 8413 Add = A5556{ 8414 Media { 8415 Stream = 1 { 8416 Local { 8417 v=0 8418 c=IN IP4 125.125.125.111 8419 m=audio 1111 RTP/AVP 4 8420 } 8421 } ; RTP profile for G723 is 4 8422 } 8424 Rosen et al Standards Track -- Expires Nov 2000 161 8425 Megaco Protocol May 2000 8427 } 8428 } 8429 } 8431 16. The above IPAddr and UDPport need to be given to MG1 now. 8433 MGC to MG1: 8434 MEGACO/1 [123.123.123.4]:55555 8435 Transaction = 10005 { 8436 Context = 2000 { 8437 Modify = A4444 { 8438 Signals {cg/rt} 8439 }, 8440 Modify = A4445 { 8441 Media { 8442 Stream = 1 { 8443 Remote { 8444 v=0 8445 c=IN IP4 125.125.125.111 8446 m=audio 1111 RTP/AVP 4 8447 } 8448 } ; RTP profile for G723 is 4 8449 } 8450 } 8451 } 8452 } 8454 MG1 to MGC: 8455 MEGACO/1 [124.124.124.222]:55555 8456 Reply = 10005 { 8457 Context = 2000 {Modify = A4444, Modify = A4445} 8458 } 8460 17. The two gateways are now connected and User 1 hears the 8461 RingBack. The MG2 now waits until User2 picks up the receiver and 8462 then the two-way call is established. 8464 From MG2 to MGC: 8466 MEGACO/1 [125.125.125.111]:55555 8467 Transaction = 50005 { 8468 Context = 5000 { 8469 Notify = A5555 {ObservedEvents =1234 { 8470 19990729T22020002:al/of}} 8471 } 8472 } 8474 From MGC to MG2: 8476 MEGACO/1 [123.123.123.4]:55555 8477 Reply = 50005 { 8478 Context = - {Notify = A5555} 8480 Rosen et al Standards Track -- Expires Nov 2000 162 8481 Megaco Protocol May 2000 8483 } 8485 From MGC to MG2: 8487 MEGACO/1 [123.123.123.4]:55555 8488 Transaction = 50006 { 8489 Context = 5000 { 8490 Modify = A5555 { 8491 Events = 1235 {al/on}, 8492 Signals { } ; to turn off ringing 8493 } 8494 } 8495 } 8497 From MG2 to MGC: 8499 MEGACO/1 [125.125.125.111]:55555 8500 Reply = 50006 { 8501 Context = 5000 {Modify = A4445} 8502 } 8504 18. Change mode on MG1 to SendReceive, and stop the ringback. 8506 MGC to MG1: 8507 MEGACO/1 [123.123.123.4]:55555 8508 Transaction = 10006 { 8509 Context = 2000 { 8510 Modify = A4445 { 8511 Media { 8512 Stream = 1 { 8513 LocalControl { 8514 Mode=SendReceive 8515 } 8516 } 8517 } 8518 }, 8519 Modify = A4444 { 8520 Signals { } 8521 } 8522 } 8523 } 8525 from MG1 to MGC: 8526 MEGACO/1 [124.124.124.222]:55555 8527 Reply = 10006 { 8528 Context = 2000 {Modify = A4445, Modify = A4444}} 8530 Rosen et al Standards Track -- Expires Nov 2000 163 8531 Megaco Protocol May 2000 8533 19. The MGC decides to Audit the RTP termination on MG2. 8535 MEGACO/1 [123.123.123.4]:55555 8536 Transaction = 50007 { 8537 Context = - {AuditValue = A5556{ 8538 Audit{Media, DigitMap, Events, Signals, Packages, Statistics 8539 }} 8540 } 8541 } 8543 20. The MG2 replies. 8545 MEGACO/1 [125.125.125.111]:55555 8546 Reply = 50007 { 8547 Context = - { 8548 AuditValue = A5556 { 8549 Media { 8550 TerminationState { ServiceStates = InService, 8551 Buffer = OFF }, 8552 Stream = 1 { 8553 LocalControl { Mode = SendReceive, 8554 nt/jit=40 }, 8555 Local { 8556 v=0 8557 c=IN IP4 125.125.125.111 8558 m=audio 1111 RTP/AVP 4 8559 a=ptime:30 8560 }, 8561 Remote { 8562 v=0 8563 c=IN IP4 124.124.124.222 8564 m=audio 2222 RTP/AVP 4 8565 a=ptime:30 8566 } } }, 8567 Events, 8568 Signals, 8569 DigitMap, 8570 Packages {nt-1, rtp-1}, 8571 Statistics { rtp/ps=1200, ; packets sent 8572 nt/os=62300, ; octets sent 8573 rtp/pr=700, ; packets received 8574 nt/or=45100, ; octets received 8575 rtp/pl=0.2, ; % packet loss 8576 rtp/jit=20, 8577 rtp/delay=40 } ; avg latency 8578 } 8579 } 8580 } 8582 Rosen et al Standards Track -- Expires Nov 2000 164 8583 Megaco Protocol May 2000 8585 21. When the MGC receives an onhook signal from one of the MGs, it 8586 brings down the call. In this example, the user at MG2 hangs up 8587 first. 8589 From MG2 to MGC: 8591 MEGACO/1 [125.125.125.111]:55555 8592 Transaction = 50008 { 8593 Context = 5000 { 8594 Notify = A5555 {ObservedEvents =1235 { 8595 19990729T24020002:al/on} 8596 } 8597 } 8598 } 8600 From MGC to MG2: 8602 MEGACO/1 [123.123.123.4]:55555 8603 Reply = 50008 { 8604 Context = - {Notify = A5555} 8605 } 8607 22. The MGC now sends both MGs a Subtract to take down the call. 8608 Only the subtracts to MG2 are shown here. Each termination has its 8609 own set of statistics that it gathers. An MGC may not need to 8610 request both to be returned. A5555 is a physical termination, and 8611 A5556 is an RTP termination. 8613 From MGC to MG2: 8615 MEGACO/1 [123.123.123.4]:55555 8616 Transaction = 50009 { 8617 Context = 5000 { 8618 Subtract = A5555 {Audit{Statistics}}, 8619 Subtract = A5556 {Audit{Statistics}} 8620 } 8621 } 8623 From MG2 to MGC: 8625 MEGACO/1 [125.125.125.111]:55555 8626 Reply = 50009 { 8627 Context = 5000 { 8628 Subtract = A5555 { 8629 Statistics { 8630 nt/os=45123, ; Octets Sent 8631 nt/dur=40 ; in seconds 8632 } 8633 }, 8634 Subtract = A5556 { 8635 Statistics { 8636 rtp/ps=1245, ; packets sent 8638 Rosen et al Standards Track -- Expires Nov 2000 165 8639 Megaco Protocol May 2000 8641 nt/os=62345, ; octets sent 8642 rtp/pr=780, ; packets received 8643 nt/or=45123, ; octets received 8644 rtp/pl=10, ; % packets lost 8645 rtp/jit=27, 8646 rtp/delay=48 ; average latency 8647 } 8648 } 8649 } 8650 } 8652 23. The MGC now sets up both MG1 and MG2 to be ready to detect the 8653 next off-hook event. See step 1. Note that this could be the default 8654 state of a termination in the null context, and if this were the 8655 case, no message need be sent from the MGC to the MG. Once a 8656 termination returns to the null context, it goes back to the default 8657 termination values for that termination. 8659 Rosen et al Standards Track -- Expires Nov 2000 166