APPENDIX I EXAMPLE CALL FLOWS (INFORMATIVE)
All H.248.1 implementors must read the normative part of this RFC carefully before implementing from it. The examples in this appendix should not be used as stand-alone explanations of how to create protocol messages. The examples in this appendix use SDP for encoding of the Local and and Remote stream descriptors. SDP is defined in RFC 2327. If there is is any discrepancy between the SDP in the examples, and RFC 2327, the the RFC should be consulted for correctness. Audio profiles used are are those defined in IETF RFC 1890, and others registered with IANA. For example, G.711 A-law is called PCMA in SDP, and is assigned profile 0. G.723.1 is called G723 and is profile 4; H.263 is called H263 and is profile 34. See also http://www.iana.org/assignments/rtp-parameters.A.1 Residential Gateway to Residential Gateway Call
This example scenario illustrates the use of the elements of the protocol to set up a Residential Gateway to Residential Gateway call over an IP-based network. For simplicity, this example assumes that both Residential Gateways involved in the call are controlled by the same Media Gateway Controller.A.1.1 Programming Residential GW Analog Line Terminations for Idle Behavior
The following illustrates the API invocations from the Media Gateway Controller and Media Gateways to get the Terminations in this scenario programmed for idle behavior. Both the originating and terminating Media Gateways have idle AnalogLine Terminations programmed to look for call initiation events (i.e., -offhook) by using the Modify Command with the appropriate parameters. The null Context is used to indicate that the Terminations are not yet involved in a Context. The ROOT termination is used to indicate the entire MG instead of a termination within the MG. In this example, MG1 has the IP address 124.124.124.222, MG2 is 125.125.125.111, and the MGC is 123.123.123.4. The default Megaco port is 55555 for all three. 1. An MG registers with an MGC using the ServiceChange command: MG1 to MGC: MEGACO/1 [124.124.124.222] Transaction = 9998 { Context = - {
ServiceChange = ROOT {Services { Method=Restart, ServiceChangeAddress=55555, Profile=ResGW/1} } } } 2. The MGC sends a reply: MGC to MG1: MEGACO/1 [123.123.123.4]:55555 Reply = 9998 { Context = - {ServiceChange = ROOT { Services {ServiceChangeAddress=55555, Profile=ResGW/1} } } } 3. The MGC programs a Termination in the NULL context. The terminationId is A4444, the streamId is 1, the requestId in the Events descriptor is 2222. The mId is the identifier of the sender of this message, in this case, it is the IP address and port [123.123.123.4]:55555. Mode for this stream is set to SendReceive. "al" is the analog line supervision package. Local and Remote are assumed to be provisioned. MGC to MG1: MEGACO/1 [123.123.123.4]:55555 Transaction = 9999 { Context = - { Modify = A4444 { Media { Stream = 1 { LocalControl { Mode = SendReceive, tdmc/gain=2, ; in dB, tdmc/ec=on }, } }, Events = 2222 {al/of(strict=state)} } } } The dialplan script could have been loaded into the MG previously. Its function would be to wait for the OffHook, turn on dialtone and start collecting DTMF digits. However in this example, we use the digit map, which is put into place after the offhook is detected (step 5 below).
Note that the embedded EventsDescriptor could have been used to combine steps 3 and 4 with steps 8 and 9, eliminating steps 6 and 7. 4. The MG1 accepts the Modify with this reply: MG1 to MGC: MEGACO/1 [124.124.124.222]:55555 Reply = 9999 { Context = - {Modify = A4444} } 5. A similar exchange happens between MG2 and the MGC, resulting in an idle Termination called A5555.A.1.2 Collecting Originator Digits and Initiating Termination
The following builds upon the previously shown conditions. It illustrates the transactions from the Media Gateway Controller and originating Media Gateway (MG1) to get the originating Termination (A4444) through the stages of digit collection required to initiate a connection to the terminating Media Gateway (MG2). 6. MG1 detects an offhook event from User 1 and reports it to the Media Gateway Controller via the Notify Command. MG1 to MGC: MEGACO/1 [124.124.124.222]:55555 Transaction = 10000 { Context = - { Notify = A4444 {ObservedEvents =2222 { 19990729T22000000:al/of(init=false)}} } } 7. And the Notify is acknowledged. MGC to MG1: MEGACO/1 [123.123.123.4]:55555 Reply = 10000 { Context = - {Notify = A4444} }
8. The MGC Modifies the termination to play dial tone, to look for digits according to Dialplan0 and to look for the on-hook event now. MGC to MG1: MEGACO/1 [123.123.123.4]:55555 Transaction = 10001 { Context = - { Modify = A4444 { Events = 2223 { al/on(strict=state), dd/ce {DigitMap=Dialplan0} }, Signals {cg/dt}, DigitMap= Dialplan0{ (0| 00|[1- 7]xxx|8xxxxxxx|Fxxxxxxx|Exx|91xxxxxxxxxx|9011x.)} } } } 9. And the Modify is acknowledged. MG1 to MGC: MEGACO/1 [124.124.124.222]:55555 Reply = 10001 { Context = - {Modify = A4444} } 10. Next, digits are accumulated by MG1 as they are dialed by User 1. Dialtone is stopped upon detection of the first digit. When an appropriate match is made of collected digits against the currently programmed Dialplan for A4444, another Notify is sent to the Media Gateway Controller. MG1 to MGC: MEGACO/1 [124.124.124.222]:55555 Transaction = 10002 { Context = - { Notify = A4444 {ObservedEvents =2223 { 19990729T22010001:dd/ce{ds="916135551212",Meth=UM}}} } } 11. And the Notify is acknowledged. MGC to MG1: MEGACO/1 [123.123.123.4]:55555 Reply = 10002 { Context = - {Notify = A4444} } 12. The controller then analyses the digits and determines that a connection needs to be made from MG1 to MG2. Both the TDM
termination A4444, and an RTP termination are added to a new context in MG1. Mode is ReceiveOnly since Remote descriptor values are not yet specified. Preferred codecs are in the MGC's preferred order of choice. MGC to MG1: MEGACO/1 [123.123.123.4]:55555 Transaction = 10003 { Context = $ { Add = A4444, Add = $ { Media { Stream = 1 { LocalControl { Mode = ReceiveOnly, nt/jit=40 ; in ms }, Local { v=0 c=IN IP4 $ m=audio $ RTP/AVP 4 a=ptime:30 v=0 c=IN IP4 $ m=audio $ RTP/AVP 0 } } } } } } NOTE - The MGC states its preferred parameter values as a series of SDP blocks in Local. The MG fills in the Local Descriptor in the Reply. 13. MG1 acknowledges the new Termination and fills in the Local IP address and UDP port. It also makes a choice for the codec based on the MGC preferences in Local. MG1 sets the RTP port to 2222. MG1 -> MGC: MEGACO/1 [124.124.124.222]:55555 Reply = 10003 { Context = 2000 { Add = A4444, Add=A4445{ Media { Stream = 1 { Local { v=0 o=- 2890844526 2890842807 IN IP4 124.124.124.222 s=- t= 0 0 c=IN IP4 124.124.124.222 m=audio 2222 RTP/AVP 4 a=ptime:30 a=recvonly } ; RTP profile for G.723.1 is 4 }
} } } } 14. The MGC will now associate A5555 with a new Context on MG2, and establish an RTP Stream (i.e., A5556 will be assigned), SendReceive connection through to the originating user, User 1. The MGC also sets ring on A5555. MGC to MG2: MEGACO/1 [123.123.123.4]:55555 Transaction = 50003 { Context = $ { Add = A5555 { Media { Stream = 1 { LocalControl {Mode = SendReceive} }}, Events=1234{al/of(strict=state)}, Signals {al/ri} }, Add = $ {Media { Stream = 1 { LocalControl { Mode = SendReceive, nt/jit=40 ; in ms }, Local { v=0 c=IN IP4 $ m=audio $ RTP/AVP 4 a=ptime:30 }, Remote { v=0 c=IN IP4 124.124.124.222 m=audio 2222 RTP/AVP 4 a=ptime:30 } ; RTP profile for G.723.1 is 4 } } } } } 15. This is acknowledged. The stream port number is different from the control port number. In this case it is 1111 (in the SDP). MG2 to MGC: MEGACO/1 [125.125.125.111]:55555 Reply = 50003 { Context = 5000 { Add = A5555, Add = A5556{ Media { Stream = 1 {
Local { v=0 o=- 7736844526 7736842807 IN IP4 125.125.125.111 s=- t= 0 0 c=IN IP4 125.125.125.111 m=audio 1111 RTP/AVP 4 } } ; RTP profile for G723.1 is 4 } } } } 16. The above IPAddr and UDPport need to be given to MG1 now. MGC to MG1: MEGACO/1 [123.123.123.4]:55555 Transaction = 10005 { Context = 2000 { Modify = A4444 { Signals {cg/rt} }, Modify = A4445 { Media { Stream = 1 { Remote { v=0 o=- 7736844526 7736842807 IN IP4 125.125.125.111 s=- t= 0 0 c=IN IP4 125.125.125.111 m=audio 1111 RTP/AVP 4 } } ; RTP profile for G723.1 is 4 } } } } MG1 to MGC: MEGACO/1 [124.124.124.222]:55555 Reply = 10005 { Context = 2000 {Modify = A4444, Modify = A4445} } 17. The two gateways are now connected and User 1 hears the RingBack. The MG2 now waits until User2 picks up the receiver and then the two-way call is established.
From MG2 to MGC: MEGACO/1 [125.125.125.111]:55555 Transaction = 50005 { Context = 5000 { Notify = A5555 {ObservedEvents =1234 { 19990729T22020002:al/of(init=false)}} } } From MGC to MG2: MEGACO/1 [123.123.123.4]:55555 Reply = 50005 { Context = - {Notify = A5555} } From MGC to MG2: MEGACO/1 [123.123.123.4]:55555 Transaction = 50006 { Context = 5000 { Modify = A5555 { Events = 1235 {al/on(strict=state)}, Signals { } ; to turn off ringing } } } From MG2 to MGC: MEGACO/1 [125.125.125.111]:55555 Reply = 50006 { Context = 5000 {Modify = A4445} } 18. Change mode on MG1 to SendReceive, and stop the ringback. MGC to MG1: MEGACO/1 [123.123.123.4]:55555 Transaction = 10006 { Context = 2000 { Modify = A4445 { Media { Stream = 1 { LocalControl { Mode=SendReceive } } } }, Modify = A4444 { Signals { } }
} } from MG1 to MGC: MEGACO/1 [124.124.124.222]:55555 Reply = 10006 { Context = 2000 {Modify = A4445, Modify = A4444}} 19. The MGC decides to Audit the RTP termination on MG2. MGC -> MG2: MEGACO/1 [123.123.123.4]:55555 Transaction = 50007 { Context = - {AuditValue = A5556{ Audit{Media, DigitMap, Events, Signals, Packages, Statistics }} } } 20. The MG2 replies. MG2 -> MGC: MEGACO/1 [125.125.125.111]:55555 Reply = 50007 { Context = - { AuditValue = A5556 { Media { TerminationState { ServiceStates = InService, Buffer = OFF }, Stream = 1 { LocalControl { Mode = SendReceive, nt/jit=40 }, Local { v=0 o=- 7736844526 7736842807 IN IP4 125.125.125.111 s=- t= 0 0 c=IN IP4 125.125.125.111 m=audio 1111 RTP/AVP 4 a=ptime:30 }, Remote { v=0 o=- 2890844526 2890842807 IN IP4 124.124.124.222 s=- t= 0 0 c=IN IP4 124.124.124.222 m=audio 2222 RTP/AVP 4 a=ptime:30 } } }, Events, Signals, DigitMap, Packages {nt-1, rtp-1}, Statistics { rtp/ps=1200, ; packets sent nt/os=62300, ; octets sent rtp/pr=700, ; packets received nt/or=45100, ; octets received rtp/pl=0.2, ; % packet loss rtp/jit=20, rtp/delay=40 } ; avg latency }
} } 21. When the MGC receives an onhook signal from one of the MGs, it brings down the call. In this example, the user at MG2 hangs up first. From MG2 to MGC: MEGACO/1 [125.125.125.111]:55555 Transaction = 50008 { Context = 5000 { Notify = A5555 {ObservedEvents =1235 { 19990729T24020002:al/on(init=false)} } } } From MGC to MG2: MEGACO/1 [123.123.123.4]:55555 Reply = 50008 { Context = - {Notify = A5555} } 22. The MGC now sends both MGs a Subtract to take down the call. Only the subtracts to MG2 are shown here. Each termination has its own set of statistics that it gathers. An MGC may not need to request both to be returned. A5555 is a physical termination, and A5556 is an RTP termination. From MGC to MG2: MEGACO/1 [123.123.123.4]:55555 Transaction = 50009 { Context = 5000 { Subtract = A5555 {Audit{Statistics}}, Subtract = A5556 {Audit{Statistics}} } } From MG2 to MGC: MEGACO/1 [125.125.125.111]:55555 Reply = 50009 { Context = 5000 { Subtract = A5555 { Statistics { nt/os=45123, ; Octets Sent nt/dur=40 ; in seconds } }, Subtract = A5556 { Statistics { rtp/ps=1245, ; packets sent
nt/os=62345, ; octets sent rtp/pr=780, ; packets received nt/or=45123, ; octets received rtp/pl=10, ; % packets lost rtp/jit=27, rtp/delay=48 ; average latency } } } } 23. The MGC now sets up both MG1 and MG2 to be ready to detect the next off-hook event. See step 1. Note that this could be the default state of a termination in the null context, and if this were the case, no message need be sent from the MGC to the MG. Once a termination returns to the null context, it goes back to the default termination values for that termination.
APPENDIX II Changes From RFC 3015
In the following table, "source" indicates when the change was first approved. It has the following values: IG1100: H.248 Implementor's Guide approved in November, 2000 (as TD Plen-39, Christian Groves, editor). IG0601: H.248 Implementor's Guide approved in June, 2001 (as TD Plen-15, Christian Groves, editor). IGDUB: Draft H.248 Implementor's Guide approved at the Q.3 Rapporteur's meeting held near Dublin, October 2001 (as TD-28, Terry Anderson, editor). GEN0202: added at the Geneva meeting, February 2002, which consented to H.248 v1 Amendment 1 (as TD Plen-36r1, Marcello Pantaleo, editor). ITUPOST: added in post-Geneva editing by the ITU-T. TTPOST: added in post-approval editing by the Megaco Chair, Tom Taylor, who assembled this document for submission. Section Source Change 1 ITUPOST Reference changed from H.248 to H.248.1. 2.1 ITUPOST Reference added for error codes, changed from H.248 Annex L to H.248.8 (2002). 2.1 IG1100 Corrected Q.765 reference to Q.765.5. 2.1 GEN0202 Added reference to X.690. 2.2 GEN0202 Added reference to H.226. 2.2 IGDUB Added informative references to Q.724, Q.764, and Q.1902.4. 4 IG0601 Added expansion of ALF. 5 TTPOST Gave priority to IETF conventions (added at start of document).
6.1.1 IG0601 Added text regarding use of wildcards for context identifiers. (This information already appeared in section 8.1.2. The IG change subsequently disappeared.) 6.1.1 IG1100 Added ranking of priority values. 6.2 IGDUB Deleted definition of signals. 6.2 GEN0202 Expanded text and diagrams describing multiplexing terminations. 6.2 TTPOST Added asterisks to multiplexing diagrams to indicate centre of context. Added Figure 6a showing cascading of multiplexes. 6.2.2 IG0601 Added text indicating that ALL does not include ROOT. 6.2.3 IG1100 Added text clarifying what must be supported to claim support of a package. 6.2.3 IG1100 Added text indicating what packages a peer can indicate support for, when some of them are extensions of others. 6.2.4 IG0601 Added text on ability of provisioning to override default values, and need for MGC to audit to learn the provisioned defaults. 6.2.4 IG0601 Added text indicating effect of omitting specific properties from Descriptors in commands modifying a termination. Contradicted original text saying that omitted properties retain their prior values (still true for entirely-omitted Descriptors). 6.2.4 GEN0202 Modified above text to restrict it to read/write properties, allow for default behaviour in place of default values if so specified in the property definition. 6.2.4 IGDUB Trimmed definition of signals Descriptor in table and inserted cross-reference to section 7.1.11. 6.2.4 IG1100 Added Topology and Error Descriptors to table.
6.2.5 IGDUB Specified error code to return if ROOT used inappropriately. 7.1.1 IG1100 Added qualification to explanation of effect of missing Audit Descriptor, excepting Subtract. 7.1.3 GEN0202 Changed "inputs" to "bearers" to be consistent with terminology in 6.2. 7.1.4 IG0601 Small change to make clear that more than one of Local, Remote, and LocalControl can be included in the default streamId. 7.1.7 IG0601 Default value for Mode specified to be Inactive. 7.1.7 GEN0202 Added text requiring processing of media in any of the reserved formats, where more than one has been reserved in a given stream. 7.1.8 IGDUB Added restriction to at most one m= line per session description. 7.1.9 IG0601 Text added to omit request identifier if the EventsDescriptor is empty. Further text added at end to indicate the effects of an empty EventsDescriptor and an empty EventBufferDescriptor. 7.1.9 IG0601 Fixed typo for destination of a Notify. 7.1.9 IG1100 Added note to say event remains active after it has been notified, so long as it is still present in the active Events Descriptor. 7.1.11 IGDUB Added definition of signals. 7.1.11 GEN0202 Modified definition to include example of more complex signal, and added role of signal in media preparation for future signals. 7.1.11 IGDUB The timeout completion reason was broadened to include other circumstances where the signal completed on its own. Text added to indicate that if default signal type changed to TO, duration parameter must be provided.
7.1.11 GEN0202 Removed reference to BR signal being "so short" it will stop on its own. Added text indicating that if the type of a signal is changed to TO, the Duration parameter must be supplied. 7.1.11 IG1100 Deleted text discussing type of Signals List. 7.1.12 GEN0202 Improved wording of introductory paragraph and added text making content of returned Descriptor clear. 7.1.14.2 GEN0202 Added text indicating that when the start timer is set to 0, initial digit timing is disabled and the MG waits indefinitely for digits. 7.1.14.2 GEN0202 Added text pointing out that default digit timer values should be provisioned, but can be overridden in the digit map. 7.1.14.3 GEN0202 Changed result of long-short digit timer conflict from undefined to long. 7.1.14.6 IG1100 Clarified that the digit map is provided by the eventDM parameter, which must be present. 7.1.14.7 GEN0202 Added text clarifying that events covered by the digit map completion event have no side- effects unless separately enabled. 7.1.14.8 IG0601 Added requirement that the event specification include the eventDM parameter. 7.1.17 IGDUB Added text to indicate timestamp is optional and to include observed event parameters in reported content. 7.1.17 GEN0202 Deleted provision that time is expressed in UTC (since intention was to use format, not time zone). 7.1.18 IGDUB Added text indicating error to return if topology option not supported.
7.1.18 IG1100 Added text clarifying effect of not mentioning TTPOST a termination in a topology Descriptor, and default topology for a new termination. (This text got lost between the Dublin meeting and the production of H.248 Amendment 1 out of the Geneva 02/02 meeting. It has been added back to the present document.) 7.1.19 IG1100 New section to describe Error Descriptor. GEN0202 Slightly edited in Geneva 02/02 meeting. ITUPOST Reference for error code documentation updated to H.248.8. 7.1.19 IG0601 Added paragraph giving guidance on level at which errors should be reported. 7.2 IG1100 Noted possibility of Error Descriptor in reply to any command. 7.2.1 IG1100 Added EventBufferDescriptor as Add parameter. 7.2.1 IG1100 Removed restriction on use of CHOOSE wildcard. 7.2.2 IG1100 Added EventBufferDescriptor as Modify parameter. 7.2.2 GEN0202 Added text on side-effects of Modify of a multiplexing termination. 7.2.3 IG1100 Added prohibition against subtracting from the NULL context. 7.2.3 GEN0202 Added text on side-effects of Subtract of a multiplexing termination. 7.2.3 IGDUB Added text clarifying effect of empty AuditDescriptor in Subtract. 7.2.4 IG1100 Added EventBufferDescriptor as Move parameter. 7.2.4 GEN0202 Removed misleading statement that Move acts as subtract from original context. 7.2.4 IG1100 Clarified effect of Move on properties of the moved termination. 7.2.4 GEN0202 Added text on side-effects of Move of a multiplexing termination.
7.2.5 IG1100 Added examples showing W- wildcard usage. 7.2.5 IG1100 Noted that returning a list of all contextIDs requires that they be returned one per ActionReply. 7.2.5 IG1100 Added table entry (ALL, specific) to determine context in which termination currently resides. 7.2.6 GEN0202 Added table similar to that in 7.2.5. 7.2.7 IG0601 Added TerminationID to API. 7.2.7 IGDUB Indicated timestamp was optional in Notify, to accord with syntax. 7.2.7 IG1100 Noted possibility of sending Error Descriptor in Notify. 7.2.8 IG0601 Added text to description of Forced method to indicate that Forced on ROOT indicates a cold restart (all context state lost). 7.2.8 IGDUB Amplified explanation of Disconnected method to emphasize return to the previously controlling MGC. 7.2.8 IG0601 Added text for MG use of Failover method when it detects MGC failure. 7.2.8 IG1100 Added notes discouraging use of ServiceChangeAddress and warning that it could be either a full address or just a port number. 7.2.8 IG0601 Added text indicating that timestamp does not necessarily represent absolute time, only local clock reading. 7.2.8 IGDUB Corrected "gateway" to "MGC" in discussion of returned ServiceChangeMgcId parameter. 7.3 IG0601 Removed error code documentation to Annex L ITUPOST (now H.248.8). 8 IG1100 Added requirement that an Action be non-empty.
8 GEN0202 Added context properties and context property audit requests to commands as potential contents of actions. 8.1.2 GEN0202 Added prohibition on using partial contextIDs with ALL wildcards. 8.2.2 IG1100 Added text clarifying when in transaction processing the requested actions have been completed and a reply can be sent. 8.2.2 IG1100 Added ALL as allowed contextID in TransactionReply. 8.2.2 GEN0202 Provided general reference to section 7.1.19 for generation of error Descriptors. 8.2.2 IG0601 Corrected Actions to Commands when discussing partially-understood action. 8.3 IG0601 Added text specifying that the same MId value must be used by a given entity throughout the life of a control association. 8.3 IG0601 Added text expanding on independence of transactions from messages. 9 ITUPOST Indicated that additional transports may be defined in separate Recommendations as well as annexes to the primary specification. 9 IG0601 Gave specific example of "request source address" for IP. 9.1 IG1100 Deleted restriction to one outstanding Notify command on a termination at one time, since this is transport-specific. 9.1 IG0601 Restored restriction, but noted that it applied only to transport not guaranteeing ordered delivery. 10.2 IG1100 Corrected length of synthesized address field from 10 to 20 hex digits and indicated that calculation should be over entire message, not just one transaction.
11.2 IG1100 Corrected text in first two paragraphs describing use of ServiceChangeMgcId parameter. 11.2 IG1100 Corrected "Transaction Accept" to "Transaction Reply". 11.4 IG0601 Noted that support of redundant MGs requires GEN0202 use of a reliable transport and support in the MGC. Added more explanation in Geneva. 11.5 IG0601 Added text clarifying procedure if MG unable to establish a control relationship with any of its eligible MGCs. 11.5 IGDUB Added text indicating that when trying to reestablish contact with the previously controlling MGC the MG uses the Disconnected method. 11.5 IG1100 Clarified handoff procedure. 11.5 GEN0202 Changed text on replies to transactions in progress during handoff. Replies now discarded when the service relationship with the old MGC has ended, rather than sent to the new MGC. The new MGC could still send replies to requests sent to the old MGC. 12.1.1 GEN0202 Added optional package designation as "designed to be extended only". 12.1.1 IG1100 Made prohibition on overloading of identifiers in extended packages transitive through all ancestors of the extended package. 12.1.2 IGDUB Clarified the set of types allowed for properties. 12.1.2 GEN0202 Added requirement to specify the base type of a sub-list. 12.1.2 GEN0202 Provided requirements for content of the "Possible Values" template item, including specification of default values or behaviour.
12.1.4 GEN0202 Added requirement to specify the default signal type, and specify a default duration for TO signals. Also noted that duration is meaningless for BR, and that the signal type might be dependent on the values of other signal parameters. 12.2 GEN0202 Fixed section title (covers only event and signal parameters, not properties or statistics). 12.2 IG1100 Reserved SPA and EPA prefixes, so they are not to be used for signal and event parameter tokens. 12.2 IG0601 Expanded list of reserved prefixes. 12.2 IGDUB Clarified the set of types allowed for signal and event parameters. 12.2 GEN0202 Added requirement to specify the base type of a sub-list. 12.2 GEN0202 Provided requirements for content of the "Possible Values" template item, including specification of default values or behaviour. 12.4 IGDUB Corrected to indicate identifiers must start with alphabetic rather than alphanumeric character. 13.1 IG0601 Changed private range of binary package identifiers to convenient hex values. A GEN0202 Removed versions from X.680 and X.690 references. A.2 IGDUB Added note warning that the syntax alone does not provide a complete description of the constraints, but must be supplemented by a reading of the text and comments. A.2 IG0601 Added description of double wrapping of parameters declared as OCTET STRING.
A.2 GEN0202 Some editing of double wrapping description to use ASN.1, BER in their proper places. Added possibility of encoding strings as UTF8String, but only if they contain non-ASCII characters. A.2 IGDUB Added line in table on double wrapping of true octet strings. A.2 IG1100 Corrected and expanded comments describing mtpAddress form of MId. Fixed maximum length of mtpAddress both here and in ServiceChangeAddress. A.2 IG0601 Inserted missing lines in IP4Address production. A.2 IG0601 Modified TransactionResponseAck to allow acknowledgement of multiple ranges of transactionIds. A.2 IG0601 Corrected numerical value of CHOOSE as a context identifier. A.2 IGDUB Added missing extension marker in TopologyRequest. A.2 IG1100 AuditReply and AuditResult modified to bring binary functionality into line with text functionality. A.2 IG0601 Removed OPTIONAL tag from terminationID in NotifyReply. A.2 IG0601 Added extraInfo substructure to EventParameter and SigParameter. A.2 IG0601 Modified MediaDescriptor to make it optional to specify a stream. A.2 IG0601 Added OPTIONAL tags to reserveValue and reserveGroup. A.2 IGDUB Added to comments for pkgdName to indicate applicability to event names, signal names, and statisticIds as well as property.
A.2 IG0601 RequestID made optional in EventsDescriptor and SecondEventsDescriptor and comment added saying it must be present if events are present. A.2 IG1100 Added OPTIONAL tags on RequestActions and SecondRequestedActions keepActive BOOLEANs. A.2 IG1100 Added comment to indicate requestID value to use in an AuditCapReply. A.2 GEN0202 Added comment to DigitMapValue indicating time units for timers. A.2 IG0601 Added comment indicating coding of Value for GEN0202 ServiceChangeReason. Cleaned up in Geneva to use ASN.1 and BER in their proper places. A.2 IG0601 Inserted missing extension marker in ServiceChangeParm production. A.2 IG0601 Aligned definition of mtpAddress in ServiceChangeAddress with that in MId. A.2 IG0601 Added timestamp to ServiceChangeResParm. A.2 IGDUB Changed type of profileName in ServiceChangeProfile to IA5String. A.2 IG0601 Made returned value optional in statisticsParameter, to support auditCapability result. A.2 GEN0202 Added reference to ISO 8601:1988 for TimeNotation. A.2 IG1100 Value production modified to support the sublist parameter type. A.3 IG1100 Corrected ABNF for digitStringlisT, replacing "/" with "|". A.3 IG1100 Added parentheses to digitMapRange production. A.3 IG1100 Replaced more abbreviated syntax for pathName with fuller definition and constraints copied from B.2.
B.2 IGDUB Added note warning that the syntax alone does not provide a complete description of the constraints, but must be supplemented by a reading of the text and comments. B.2 IG0601 Added note warning that the interpretation of symbols is context-dependent. B.2 IG1100 Added comment to indicate case insensitivity of protocol (excepting SDP) and ABNF. B.2 IG0601 Expanded upon and capitalized this comment. B.2 IG0601 Lengthy note added on the coding of the VALUE construct. B.2 IGDUB Deleted sentence in note suggesting that packages could add new types for properties, parameters, or statistics. B.2 IG0601 Added note indicating that parsers should allow for white space preceding the first line of SDP in Local or Remote. B.2 IGDUB Added comments identifying the O- and W- tags. B.2 IG1100 Moved wildcard tag up from individual commands to commandRequestList. B.2 GEN0202 Added additional error case to actionReply. B.2 IG0601 Modified syntax of auditOther to allow return of terminationID only. B.2 IGDUB Corrected upper limit for V4hex. B.2 IG1100 Corrected and expanded comments describing mtpAddress form of MId. B.2 IG0601 Modified comment to mediaParm to make streamParms and StreamDescriptor mutually exclusive. B.2 GEN0202 Modified comment further to indicate at most one instance of terminationStateDescriptor. B.2 GEN0202 Expanded comment for streamParm to indicate the restriction on repetition is per item.
B.2 IG0601 Modified "at most once" comments to localParm, terminationStateParm, and modemType, to allow multiple instances of propertyParm in the first two cases and extensionParameter in the last one. B.2 IG0601 Added note before description of Local and Remote, pointing out that the octet value x00 is not allowed in octetString. B.2 IG0601 Syntax for eventsDescriptor, embedFirst, and eventBufferDescriptor modified to make contents beyond token optional. B.2 IGDUB Replaced "event" by "item" in comment to pkgdName because pkgdName applies to properties, signals, and statistics as well. B.2 IG0601 Corrected placement of EQUAL in eventDM production. B.2 IG1100 Added comment and syntax to indicate requestID value to use in an AuditCapReply. B.2 IG1100 Corrected Modem Descriptor to allow package items as properties. B.2 IG0601 Comment to modemType changed to allow multiple instances of extensionParameter. B.2 GEN0202 Comment added to indicate units for Timer. B.2 IG1100 Added parentheses to digitMapRange production. B.2 IG1100 Added comment to serviceChangeParm, restricting each parameter to one appearance. B.2 IG0601 Added comments making serviceChangeMgcId and serviceChangeAddress mutually exclusive in ServiceChangeParm and servChgReplyParm. B.2 IGDUB Added comment to serviceChangeParm indicating that ServiceChangeMethod and ServiceChangeReason are required. B.2 IG0601 Added Timestamp to servChgReplyParm.
B.2 IG0601 Added comment indicating coding of Value for ServiceChangeReason. B.2 IG0601 Modified ServiceChangeAddress to use MId definition for full address. B.2 IG1100 Made returned value optional in statisticsParameter, to support auditCapability result. B.2 IG1100 Changed topologyDescriptor to allow multiple triples. B.2 IG0601 Added comment forbidding use of a double quote within a quotedString value. B.2 IG1100 Reserved prefixes for new tokens added to signalParameter and eventParameter, to avoid collision with package names. B.2 IG1100 EmbedToken and EmergencyToken changed to remove clash with EventBufferToken. B.3 IG1100 New section describing hexadecimal octet encoding. B.4 IG1100 New section describing hex octet sequence. C IG1100 Added permission to use Annex C properties in LocalControl as well as in Local and Remote. C IG0601 Added text making support of all properties of Annex C optional. C IGDUB Added directions to reconcile tabulated formats with allowed types for properties. C.1 IG1100 Corrected Q.765 reference to Q.765.5 for ACodec. C.1 IG1100 Deprecated Echocanc codepoint in favour of package-defined property. C.4 ITUPOST Updated references from Q.2961 to Q.2961.1. C.4 IGDUB Added details on format of VPVC. C.9 IG1100 Renamed USI to layer1prot.
C.9 IG1100 Deprecated ECHOCI codepoint in favour of package-defined property. C.9 IG1100 Added new USI property. C.11 IG1100 Added m= line tag. D.1 IG0601 Added explanation of ALF. D.1.5 IGDUB Expanded text indicating that when trying to reestablish contact with the previously controlling MGC the MG uses the Disconnected method. E.1.2 GEN0202 Added missing EventsDescriptor parameters lines. E.1.2 GEN0202 For the Signal Completion event: - corrected the description of how it is enabled - heavily edited the description of the Signal Identity observed event parameter and added a type. E.1.2 IGDUB The timeout completion reason for the Signal Completion event was broadened to include other circumstances where the signal completed on its own. E.1.2 IG1100 Added signal list ID observed event parameter to the Signal Completion event. E.2.1 IG0601 Added missing read only, read-write specifications. E.2.1 IG0601 Split ProvisionalResponseTimer properties into one for MG, one for MGC. E.3 GEN0202 Added "Designed to be extended only" to tonegen package description. E.4 GEN0202 Added "Designed to be extended only" to tonedet package description. E.4.2 GEN0202 Added type for tone ID observed parameter for Long Tone Detected event.
E.6.2 IG1100 Corrected binary identifier for digit map completion event to avoid clash with base package. E.6.2 IG1100 Removed procedural text. E.6.5 IG1100 Added procedural text indicating where to find the applicable digit map and indicating the error to return if the parameter is missing. E.6.5 IG0601 Further modified procedural text. E.7.3 IG1100 Corrected text identifier for payphone recognition tone to avoid clash with base package. E.10.5 IGDUB Provided informative references for tones and procedures for continuity check. E.13 GEN0202 Added note that TDM package could also apply to other transports. E.13.1 IG1100 Changed default for echo cancellation from "on" to provisioned. E.13.1 IG0601 Corrected type for gain property. Appendix TTPOST Included a number of corrections which were I not picked up in H.248.1 Amendment 1 but which do appear in H.248.1 v2.Intellectual Property Rights
The ITU draws attention to the possibility that the practice or implementation of this RFC may involve the use of a claimed Intellectual Property Right. The ITU takes no position concerning the evidence, validity or applicability of claimed Intellectual Property Rights, whether asserted by ITU members or others outside of the Recommendation development process. As of the date of approval of this RFC, the ITU had received notice of intellectual property, protected by patents, which may be required to implement this RFC. However, implementors are cautioned that this may not represent the latest information and are therefore strongly urged to consult the TSB patent database.
The IETF has also received notice of intellectual property claims relating to Megaco/H.248.1. Please consult the IETF IPR announcements at http://www.ietf.org/ipr.html.Acknowledgments
Megaco/H.248.1 is the result of hard work by many people in both the IETF and in ITU-T Study Group 16. This section records those who played a prominent role in ITU-T meetings, on the Megaco list, or both. Megaco/H.248 owes a large initial debt to the MGCP protocol (RFC 2705), and thus to its authors, Mauricio Arango, Andrew Dugan, Ike Elliott, Christian Huitema, and Scott Pickett. Flemming Andreasen does not appear on this list of authors, but was a major contributor to the development of both MGCP and Megaco/H.248.1. RFC 3435 has an extensive acknowledgement of many other people who worked on media gateway control before Megaco got started. The authors of the first Megaco RFCs (2805, then 3015) were Fernando Cuervo, Nancy Greene, Abdallah Rayhan, Christian Huitema, Brian Rosen, and John Segers. Christian Groves conceived and was editor of Annex C. The people most active on the Megaco list in the period leading up to the completion of RFC 2885 were Brian Rosen, Tom Taylor, Nancy Greene, Christian Huitema, Matt Holdrege, Chip Sharp, John Segers, Michael Thomas, Henry Sinnreich, and Paul Sijben. The people who sacrificed sleep and meals to complete the massive amount of work required in the decisive Study Group 16 meeting of February, 2000, were Michael Brown, Ranga Dendi, Larry Forni, Glen Freundlich, Christian Groves, Alf Heidemark, Steve Magnell, Selvam Rengasami, Rich Rubin, Klaus Sambor, John Segers, Chip Sharp, Tom Taylor, and Stephen Terrill. The most active people on the Megaco list in the period since the February 2000 have been Tom Taylor, Brian Rosen, Christian Groves, Madhu Babu Brahmanapally, Troy Cauble, Terry Anderson, Chuong Nguyen, and Kevin Boyle, but many other people have been regular contributors. Brian Rosen did tremendous service in putting together the Megaco interoperability tests. On the Study Group 16 side, the editorial team for the final revised document in February, 2002 included Christian Groves, Marcello Pantaleo, Terry Anderson, Peter Leis, Kevin Boyle, and Tom Taylor. Tom Taylor as Megaco Chair managed the day to day operation of the Megaco list, with Brian Rosen taking an equal share of the burden for most of the last three years. Glen Freundlich as the Study Group 16 Rapporteur ran the ITU-T meetings and ensured that all of the work at hand was completed. Without Glen's determination the Megaco/H.248
standard would have taken at least half a year longer to produce. Christian Groves filled in ably as Rapporteur when Glen could no longer take part.Authors' Addresses
Terry L. Anderson 24 Hill St Bernardsville, NJ 07924 USA EMail: tlatla@verizon.net Christian Groves Ericsson AsiaPacificLab Australia 37/360 Elizabeth St Melbourne, Victoria 3000 Australia EMail: Christian.Groves@ericsson.com.au Marcello Pantaleo Ericsson Eurolab Deuschland Ericsson Allee 1 52134 Herzogenrath, Germany EMail: Marcello.Pantaleo@eed.ericsson.se Tom Taylor Nortel Networks 1852 Lorraine Ave, Ottawa, Ontario Canada K1H 6Z8 Phone: +1 613 736 0961 EMail: taylor@nortelnetworks.com
Full Copyright Statement Copyright (C) The Internet Society (2003). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society.