Tech-invite3GPPspaceIETFspace
96959493929190898887868584838281807978777675747372717069686766656463626160595857565554535251504948474645444342414039383736353433323130292827262524232221201918171615141312111009080706050403020100
in Index   Prev   Next

RFC 3525

Gateway Control Protocol Version 1

Pages: 213
Obsoletes:  3015
Obsoleted by:  5125
Part 7 of 7 – Pages 184 to 213
First   Prev   None

ToP   noToC   RFC3525 - Page 184   prevText

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 = - {
ToP   noToC   RFC3525 - Page 185
           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).
ToP   noToC   RFC3525 - Page 186
   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} }
ToP   noToC   RFC3525 - Page 187
   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
ToP   noToC   RFC3525 - Page 188
   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
                }
ToP   noToC   RFC3525 - Page 189
            }
         }
      } }

   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 {
ToP   noToC   RFC3525 - Page 190
                   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.
ToP   noToC   RFC3525 - Page 191
   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 { }
         }
ToP   noToC   RFC3525 - Page 192
      } }

   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
          }
ToP   noToC   RFC3525 - Page 193
       } }

   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
ToP   noToC   RFC3525 - Page 194
                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.
ToP   noToC   RFC3525 - Page 195

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).
ToP   noToC   RFC3525 - Page 196
   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.
ToP   noToC   RFC3525 - Page 197
   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.
ToP   noToC   RFC3525 - Page 198
   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.
ToP   noToC   RFC3525 - Page 199
   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.
ToP   noToC   RFC3525 - Page 200
   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.
ToP   noToC   RFC3525 - Page 201
   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.
ToP   noToC   RFC3525 - Page 202
   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.
ToP   noToC   RFC3525 - Page 203
   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.
ToP   noToC   RFC3525 - Page 204
   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.
ToP   noToC   RFC3525 - Page 205
   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.
ToP   noToC   RFC3525 - Page 206
   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.
ToP   noToC   RFC3525 - Page 207
   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.
ToP   noToC   RFC3525 - Page 208
   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.
ToP   noToC   RFC3525 - Page 209
   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.
ToP   noToC   RFC3525 - Page 210
   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.
ToP   noToC   RFC3525 - Page 211
   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
ToP   noToC   RFC3525 - Page 212
   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
ToP   noToC   RFC3525 - Page 213
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.