aboutsummaryrefslogtreecommitdiffstats
path: root/lib/megaco/doc/standard/draft-ietf-megaco-h248v2-04.txt
diff options
context:
space:
mode:
Diffstat (limited to 'lib/megaco/doc/standard/draft-ietf-megaco-h248v2-04.txt')
-rw-r--r--lib/megaco/doc/standard/draft-ietf-megaco-h248v2-04.txt12079
1 files changed, 12079 insertions, 0 deletions
diff --git a/lib/megaco/doc/standard/draft-ietf-megaco-h248v2-04.txt b/lib/megaco/doc/standard/draft-ietf-megaco-h248v2-04.txt
new file mode 100644
index 0000000000..abb1df8988
--- /dev/null
+++ b/lib/megaco/doc/standard/draft-ietf-megaco-h248v2-04.txt
@@ -0,0 +1,12079 @@
+
+
+ Media Gateway Control (megaco) C. Groves, M. Pantaleo
+ Internet Draft LM Ericsson
+ Document: draft-ietf-megaco-h248v2-04.txt T. Anderson
+ Expires: October 2003 Lucent Technologies
+ T. Taylor
+ Nortel Networks
+ (Editors)
+ April 2003
+
+
+ The Megaco/H.248 Gateway Control Protocol, version 2
+
+ Status of this Memo
+
+ This document is an Internet-Draft and is in full conformance with
+ all provisions of Section 10 of RFC2026.
+
+ Internet-Drafts are working documents of the Internet Engineering
+ Task Force (IETF), its areas, and its working groups. Note that
+ other groups may also distribute working documents as Internet-
+ Drafts.
+
+ Internet-Drafts are draft documents valid for a maximum of six months
+ and may be updated, replaced, or obsoleted by other documents at any
+ time. It is inappropriate to use Internet-Drafts as reference
+ material or to cite them other than as "work in progress."
+
+ The list of current Internet-Drafts can be accessed at
+ http://www.ietf.org/ietf/1id-abstracts.txt
+ The list of Internet-Draft Shadow Directories can be accessed at
+ http://www.ietf.org/shadow.html.
+
+ Abstract
+
+ This document describes the second version of the general-purpose
+ gateway control protocol standardized as Megaco in the IETF and as
+ Recommendation H.248 (now H.248.1) in the ITU-T. It is common text
+ with Recommendation H.248.1 (05/02), published by the ITU-T. Megaco
+ v2 includes the corrections to RFC 3015 which resulted in RFC xxxx
+ [draft-ietf-megaco-3015corr-02.txt], plus the following new
+ capabilities:
+
+ - ability to audit specific properties, events, signals and
+ statistics
+ - use of serviceChange to indicate that capabilities have changed in
+ the Media Gateway
+ - playing a signal on the Root Termination
+ - limiting the number of repetitions of transaction pending
+ - allowing topology to be set per stream
+ - ability to audit context properties
+
+
+ Groves et al Expires - October 2003 [Page 1]
+ Megaco Protocol version 2 April 2003
+
+
+ - new Nx64K multiplex type
+ - provision for digit buffering when a digit map completes.
+
+ In addition, the use of the Modem Descriptor was deprecated.
+
+ A detailed list of changes from draft-ietf-megaco-3015corr-
+ 02.txt/H.248.1 (03/02) to this document is given in Appendix II at
+ the end of this document.
+
+ Conventions used in this document
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
+ document are to be interpreted as described in RFC-2119.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 2]
+ Megaco Protocol version 2 April 2003
+
+
+ Table of Contents
+
+ 1 SCOPE.................................................6
+
+ 2 REFERENCES............................................6
+ 2.1 Normative references..................................7
+ 2.2 Informative references................................9
+
+ 3 DEFINITIONS..........................................10
+
+ 4 ABBREVIATIONS........................................11
+
+ 5 A NOTE ON CONVENTIONS................................12
+
+ 6 CONNECTION MODEL.....................................12
+ 6.1 Contexts.............................................15
+ 6.1.1 Context attributes and descriptors...................16
+ 6.1.2 Creating, deleting and modifying Contexts............16
+ 6.2 Terminations.........................................16
+ 6.2.1 Termination dynamics.................................20
+ 6.2.2 TerminationIDs.......................................20
+ 6.2.3 Packages.............................................21
+ 6.2.4 Termination properties and descriptors...............22
+ 6.2.5 Root Termination.....................................24
+
+ 7 COMMANDS.............................................25
+ 7.1 Descriptors..........................................26
+ 7.1.1 Specifying parameters................................26
+ 7.1.2 Modem descriptor.....................................27
+ 7.1.3 Multiplex descriptor.................................27
+ 7.1.4 Media descriptor.....................................28
+ 7.1.5 TerminationState descriptor..........................28
+ 7.1.6 Stream descriptor....................................29
+ 7.1.7 LocalControl descriptor..............................30
+ 7.1.8 Local and Remote descriptors.........................31
+ 7.1.9 Events descriptor....................................34
+ 7.1.10 EventBuffer descriptor...............................37
+ 7.1.11 Signals descriptor...................................37
+ 7.1.12 Audit descriptor.....................................39
+ 7.1.13 ServiceChange descriptor.............................40
+ 7.1.14 DigitMap descriptor..................................40
+ 7.1.14.1 DigitMap definition, creation, modification and
+ deletion.........................................40
+ 7.1.14.2 DigitMap Timers......................................41
+ 7.1.14.3 DigitMap Syntax......................................41
+ 7.1.14.4 DigitMap Completion Event............................42
+ 7.1.14.5 DigitMap Procedures..................................43
+ 7.1.14.6 DigitMap Activation..................................45
+ 7.1.14.7 Interaction Of DigitMap and Event Processing.........45
+
+
+ Groves et al Expires - October 2003 [Page 3]
+ Megaco Protocol version 2 April 2003
+
+
+ 7.1.14.8 Wildcards............................................46
+ 7.1.14.9 Example..............................................46
+ 7.1.15 Statistics descriptor................................47
+ 7.1.16 Packages descriptor..................................47
+ 7.1.17 ObservedEvents descriptor............................47
+ 7.1.18 Topology descriptor..................................47
+ 7.1.19 Error Descriptor.....................................51
+
+ 7.2 Command Application Programming Interface............51
+ 7.2.1 Add..................................................52
+ 7.2.2 Modify...............................................53
+ 7.2.3 Subtract.............................................54
+ 7.2.4 Move.................................................56
+ 7.2.5 AuditValue...........................................57
+ 7.2.6 AuditCapabilities....................................60
+ 7.2.7 Notify...............................................62
+ 7.2.8 ServiceChange........................................63
+ 7.2.9 Manipulating and Auditing Context Attributes.........68
+ 7.2.10 Generic Command Syntax...............................69
+
+ 8 TRANSACTIONS.........................................69
+ 8.1 Common parameters....................................71
+ 8.1.1 Transaction Identifiers..............................71
+ 8.1.2 Context Identifiers..................................71
+ 8.2 Transaction Application Programming Interface........71
+ 8.2.1 TransactionRequest...................................72
+ 8.2.2 TransactionReply.....................................72
+ 8.2.3 TransactionPending...................................74
+ 8.3 Messages.............................................75
+
+ 9 TRANSPORT............................................75
+ 9.1 Ordering of Commands.................................76
+ 9.2 Protection against Restart Avalanche.................77
+
+ 10 SECURITY CONSIDERATIONS..............................78
+ 10.1 Protection of Protocol Connections...................79
+ 10.2 Interim AH scheme....................................79
+ 10.3 Protection of Media Connections......................80
+
+ 11 MG-MGC CONTROL INTERFACE.............................81
+ 11.1 Multiple Virtual MGs.................................81
+ 11.2 Cold start...........................................82
+ 11.3 Negotiation of protocol version......................82
+ 11.4 Failure of a MG......................................83
+ 11.5 Failure of an MGC....................................84
+
+ 12 PACKAGE DEFINITION...................................85
+ 12.1 Guidelines for defining packages.....................85
+ 12.1.1 Package..............................................86
+
+
+ Groves et al Expires - October 2003 [Page 4]
+ Megaco Protocol version 2 April 2003
+
+
+ 12.1.2 Properties...........................................87
+ 12.1.3 Events...............................................88
+ 12.1.4 Signals..............................................88
+ 12.1.5 Statistics...........................................89
+ 12.1.6 Procedures...........................................89
+ 12.2 Guidelines to defining Parameters to Events and
+ Signals..........................................89
+ 12.3 Lists................................................90
+ 12.4 Identifiers..........................................90
+ 12.5 Package registration.................................91
+
+ 13 PROFILE DEFINITION...................................91
+
+ 14 IANA CONSIDERATIONS..................................92
+ 14.1 Packages.............................................92
+ 14.2 Error codes..........................................93
+ 14.3 ServiceChange reasons................................93
+ 14.4 Profiles.............................................94
+
+ ANNEX A BINARY ENCODING OF THE PROTOCOL......................95
+ A.1 Coding of wildcards..................................95
+ A.2 ASN.1 syntax specification...........................96
+
+ ANNEX B TEXT ENCODING OF THE PROTOCOL.......................120
+ B.1 Coding of wildcards.................................120
+ B.2 ABNF specification..................................120
+ B.4 Hexadecimal octet sequence..........................137
+
+ ANNEX C TAGS FOR MEDIA STREAM PROPERTIES....................138
+ C.1 General media attributes............................138
+ C.2 Mux properties......................................140
+ C.3 General bearer properties...........................140
+ C.4 General ATM properties..............................141
+ C.5 Frame Relay.........................................145
+ C.6 IP 146
+ C.7 ATM AAL2............................................146
+ C.8 ATM AAL1............................................148
+ C.9 Bearer capabilities.................................150
+ C.10 AAL5 properties.....................................161
+ C.11 SDP equivalents.....................................162
+ C.12 H.245...............................................164
+
+ ANNEX D TRANSPORT OVER IP...................................165
+ D.1 Transport over IP/UDP using Application Level Framing
+ (ALF)............................................165
+ D.1.1 Providing At-Most-Once functionality................165
+ D.1.2 Transaction identifiers and three-way handshake.....166
+ D.1.2.1 Transaction identifiers.............................166
+ D.1.2.2 Three-way handshake.................................166
+
+
+ Groves et al Expires - October 2003 [Page 5]
+ Megaco Protocol version 2 April 2003
+
+
+ D.1.3 Computing retransmission timers.....................167
+ D.1.4 Provisional responses...............................168
+ D.1.5 Repeating Requests, Responses and Acknowledgements..168
+ D.2 Using TCP...........................................170
+ D.2.1 Providing the At-Most-Once functionality............170
+ D.2.2 Transaction identifiers and three-way handshake.....170
+ D.2.3 Computing retransmission timers.....................170
+ D.2.4 Provisional responses...............................171
+ D.2.5 Ordering of commands................................171
+
+ ANNEX E BASIC PACKAGES......................................172
+ E.1 Generic.............................................172
+ E.2 Base Root Package...................................174
+ E.3 Tone Generator Package..............................178
+ E.4 Tone Detection Package..............................179
+ E.5 Basic DTMF Generator Package........................182
+ E.6 DTMF detection Package..............................184
+ E.7 Call Progress Tones Generator Package...............186
+ E.8 Call Progress Tones Detection Package...............187
+ E.9 Analog Line Supervision Package.....................188
+ E.10 Basic Continuity Package............................192
+ E.11 Network Package.....................................195
+ E.12 RTP Package.........................................197
+ E.13 TDM Circuit Package.................................199
+
+ APPENDIX I Example Call Flows..................................201
+ I.1 Residential Gateway to Residential Gateway Call.....201
+ I.1.1 Programming Residential GW Analog Line Terminations
+ for Idle Behaviour..............................201
+ I.1.2 Collecting Originator Digits and Initiating Termination
+ .................................................203
+
+ APPENDIX II CHANGES FROM RFC XXXX [draft-ietf-megaco-3015corr
+ -02.txt].........................................213
+
+ INTELLECTUAL PROPERTY RIGHTS....................................217
+ Acknowledgments.................................................218
+ Authors' Addresses..............................................219
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 6]
+ Megaco Protocol version 2 April 2003
+
+
+ 1 SCOPE
+
+ This document defines the protocols used between elements of a
+ physically decomposed multimedia gateway. There are no functional
+ differences from a system view between a decomposed gateway, with
+ distributed sub-components potentially on more than one physical
+ device, and a monolithic gateway such as described in Recommendation
+ H.246. This document does not define how gateways, multipoint control
+ units or interactive voice response units (IVRs) work. Instead it
+ creates a general framework that is suitable for these applications.
+
+ Packet network interfaces may include IP, ATM or possibly others. The
+ interfaces will support a variety of Switched Circuit Network (SCN)
+ signalling systems, including tone signalling, ISDN, ISUP, QSIG and
+ GSM. National variants of these signalling systems will be supported
+ where applicable.
+
+ Products claiming compliance with Version 1 of H.248.1 shall comply
+ with all of the mandatory requirements of H.248.1 originally approved
+ in 06/2000 and reissued in 03/2002. H.248.1 (03/2002) is common text
+ with RFC xxxx [draft-ietf-megaco-3015corr-03.txt].
+
+ Products claiming compliance with Version 2 of H.248.1 shall comply
+ with all of the mandatory requirements of H.248.1 approved on
+ 05/2002. H.248.1 (05/2002) is common text with this document.
+
+ Products shall indicate the version of the protocol in use by using
+ ServiceChangeVersion as �1� to refer to RFC xxxx/H.248.1 (03/2002)
+ and �2� to refer to this specification/H.248.1 (05/2002).
+
+
+ 2 REFERENCES
+
+ The following ITU-T Recommendations and other references contain
+ provisions which, through reference in this text, constitute
+ provisions of this Recommendation. At the time of publication, the
+ editions indicated were valid. All Recommendations and other
+ references are subject to revision; all users of this Recommendation
+ are therefore encouraged to investigate the possibility of applying
+ the most recent edition of the Recommendations and other references
+ listed below. A list of the currently valid ITU-T Recommendations is
+ regularly published.
+
+ 2.1 Normative references
+
+ - ITU-T Recommendation H.225.0 (2000), Call signalling protocols and
+ media stream packetization for packet-based multimedia
+ communication systems.
+
+
+
+ Groves et al Expires - October 2003 [Page 7]
+ Megaco Protocol version 2 April 2003
+
+
+ - ITU-T Recommendation H.235 (1998), Security and encryption for H-
+ Series (H.323 and other H.245-based) multimedia terminals.
+
+ - ITU-T Recommendation H.245 (1998), Control protocol for multimedia
+ communication.
+
+ - ITU-T Recommendation H.246 (1998), Interworking of H-series
+ multimedia terminals with H-series multimedia terminals and
+ voice/voiceband terminals on GSTN and ISDN.
+
+ - ITU-T Recommendation H.248.4 (2000), Transport over Stream Control
+ Transmission Protocol (SCTP).
+
+ - ITU-T Recommendation H.248.5 (2000), Transport over ATM.
+
+ - ITU-T Recommendation H.248.8 (2002), H.248 Error Codes and Service
+ Change Reasons.
+
+ - ITU-T Recommendation H.323 (1999), Packet-based multimedia
+ communication systems.
+
+ - ITU-T Recommendation I.363.1 (1996), B-ISDN ATM adaptation layer
+ (AAL) specification: Type 1 AAL.
+
+ - ITU-T Recommendation I.363.2 (1997), B-ISDN ATM adaptation layer
+ (AAL) specification: Type 2 AAL.
+
+ - ITU-T Recommendation I.363.5 (1996), B-ISDN ATM adaptation layer
+ (AAL) specification: Type 5 AAL.
+
+ - ITU-T Recommendation I.366.1 (1998), Segmentation and Reassembly
+ Service Specific Convergence Sublayer for the AAL type 2.
+
+ - ITU-T Recommendation I.366.2 (1999), AAL type 2 service specific
+ convergence sublayer for trunking.
+
+ - ITU-T Recommendation I.371 (2000), Traffic control and congestion
+ control in B-ISDN.
+
+ - ITU-T Recommendation Q.763 (1999), Signalling System No. 7 - ISDN
+ user part formats and codes.
+
+ - ITU-T Recommendation Q.765.5 (2001), Application transport
+ mechanism - Bearer independent call control (BICC).
+
+ - ITU-T Recommendation Q.931 (1998), ISDN user-network interface
+ layer 3 specification for basic call control.
+
+
+
+
+ Groves et al Expires - October 2003 [Page 8]
+ Megaco Protocol version 2 April 2003
+
+
+ - ITU-T Recommendation Q.2630.1 (1999), AAL type 2 signalling
+ protocol (Capability Set 1).
+
+ - ITU-T Recommendation Q.2931 (1995), Digital Subscriber Signalling
+ System No. 2 (DSS2) - User-Network Interface (UNI) Layer 3
+ specification for basic call/connection control.
+
+ - ITU-T Recommendation Q.2941.1 (1997), Digital Subscriber
+ Signalling System No. 2 - Generic identifier transport.
+
+ - ITU-T Recommendation Q.2961.1 (1995), Additional signalling
+ capabilities to support traffic parameters for the tagging option
+ and the sustainable call note parameter set.
+
+ - ITU-T Recommendation Q.2961.2 (1997), Additional traffic
+ parameters: Support of ATM transfer capability in the broadband
+ bearer capability information element.
+
+ - ITU-T Recommendation Q.2965.1 (1999), Digital subscriber
+ signalling system No. 2 - Support of Quality of Service classes.
+
+ - ITU-T Recommendation Q.2965.2 (1999), Digital subscriber
+ signalling system No. 2 - Signalling of individual Quality of
+ Service parameters.
+
+ - ITU-T Recommendation V.76 (1996), Generic multiplexer using V.42
+ LAPM-based procedures.
+
+ - ITU-T Recommendation X.213 (1995), Information technology - Open
+ Systems Interconnection - Network service definition plus
+ Amendment 1 (1997), Addition of the Internet protocol address
+ format identifier.
+
+ - ITU-T Recommendation X.680 (1997), Information technology -
+ Abstract Syntax Notation One (ASN.1): Specification of basic
+ notation.
+
+ - ITU-T Recommendation X.690 (1997), Information Technology - ASN.1
+ Encoding Rules: Specification of Basic Encoding Rules (BER),
+ Canonical Encoding Rules (CER) and Distinguished Encoding Rules
+ (DER).
+
+ - ATM Forum (1996), ATM User-Network Interface (UNI) Signalling
+ Specification - Version 4.0.
+
+ - RFC 1006, ISO Transport Service on top of the TCP, Version 3.
+
+ - RFC 2026, The Internet Standards Process -- Revision 3.
+
+
+
+ Groves et al Expires - October 2003 [Page 9]
+ Megaco Protocol version 2 April 2003
+
+
+ - RFC 2119, Key words for use in RFCs to Indicate Requirement
+ Levels.
+
+ - RFC 2234, Augmented BNF for Syntax Specifications: ABNF.
+
+ - RFC 2327, SDP: Session Description Protocol.
+
+ - RFC 2402, IP Authentication Header.
+
+ - RFC 2406, IP Encapsulating Security Payload (ESP).
+
+ 2.2 Informative references
+
+ - ITU-T Recommendation E.180/Q.35 (1998), Technical characteristics
+ of tones for the telephone service.
+
+ - ITU-T Recommendation G.711 (1988), Pulse Code Modulation (PCM) of
+ voice frequencies.
+
+ - ITU-T Recommendation H.221 (1999), Frame structure for a 64 to
+ 1920 kbit/s channel in audiovisual teleservices.
+
+ - ITU-T Recommendation H.223 (1996), Multiplexing protocol for low
+ bit rate multimedia communication.
+
+ - ITU-T Recommendation H.226 (1998), Channel aggregation protocol
+ for multilink operation on circuit-switched networks.
+
+ - ITU-T Recommendation Q.724 (1998), Signalling procedures.
+
+ - ITU-T Recommendation Q.764 (1999), Signalling system No. 7 - ISDN
+ user part signalling procedures.
+
+ - ITU-T Recommendation Q.1902.4 (2001), Bearer independent call
+ control protocol - Basic call procedures.
+
+ - RFC 768, User Datagram Protocol.
+
+ - RFC 791, Internet protocol.
+
+ - RFC 793, Transmission control protocol.
+
+ - RFC 1661, The Point-to-Point Protocol (PPP).
+
+ - RFC 1889, RTP: A Transport Protocol for Real-Time Applications.
+
+ - RFC 1890, RTP Profile for Audio and Video Conferences with Minimal
+ Control.
+
+
+
+ Groves et al Expires - October 2003 [Page 10]
+ Megaco Protocol version 2 April 2003
+
+
+ - RFC 2401, Security Architecture for the Internet Protocol.
+
+ - RFC 2543, SIP: Session Initiation Protocol.
+
+ - RFC 2460, Internet Protocol, Version 6 (IPv6) Specification.
+
+ - RFC 2805, Media Gateway Control Protocol Architecture and
+ Requirements.
+
+
+ 3 DEFINITIONS
+
+ This document defines the following terms:
+
+ Access gateway:
+ A type of gateway that provides a User-Network Interface (UNI) such
+ as ISDN.
+
+ Descriptor:
+ A syntactic element of the protocol that groups related properties.
+ For instance, the properties of a media flow on the MG can be set by
+ the MGC by including the appropriate descriptor in a command.
+
+ Media Gateway (MG):
+ The media gateway converts media provided in one type of network to
+ the format required in another type of network. For example, a MG
+ could terminate bearer channels from a switched circuit network (e.g.
+ DS0s) and media streams from a packet network (e.g. RTP streams in an
+ IP network). This gateway may be capable of processing audio, video
+ and T.120 alone or in any combination, and will be capable of full
+ duplex media translations. The MG may also play audio/video messages
+ and perform other IVR functions, or may perform media conferencing.
+
+ Media Gateway Controller (MGC):
+ Controls the parts of the call state that pertain to connection
+ control for media channels in a MG.
+
+ Multipoint Control Unit (MCU):
+ An entity that controls the setup and coordination of a multi-user
+ conference that typically includes processing of audio, video and
+ data.
+
+ Residential gateway:
+ A gateway that interworks an analogue line to a packet network. A
+ residential gateway typically contains one or two analogue lines and
+ is located at the customer premises.
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 11]
+ Megaco Protocol version 2 April 2003
+
+
+ SCN FAS signalling gateway:
+ This function contains the SCN Signalling Interface that terminates
+ SS7, ISDN or other signalling links where the call control channel
+ and bearer channels are collocated in the same physical span.
+
+ SCN NFAS signalling gateway:
+ This function contains the SCN Signalling Interface that terminates
+ SS7 or other signalling links where the call control channels are
+ separated from bearer channels.
+
+ Stream:
+ Bidirectional media or control flow received/sent by a media gateway
+ as part of a call or conference.
+
+ Trunk:
+ A communication channel between two switching systems such as a DS0
+ on a T1 or E1 line.
+
+ Trunking gateway:
+ A gateway between SCN network and packet network that typically
+ terminates a large number of digital circuits.
+
+
+ 4 ABBREVIATIONS
+
+ This document uses the following abbreviations:
+
+ ALF Application Layer Framing
+
+ ATM Asynchronous Transfer Mode
+
+ CAS Channel Associated Signalling
+
+ DTMF Dual Tone Multi-Frequency
+
+ FAS Facility Associated Signalling
+
+ GSM Global System for Mobile communications
+
+ GW GateWay
+
+ IANA Internet Assigned Numbers Authority (superseded by Internet
+ Corporation for Assigned Names and Numbers (ICANN))
+
+ IP Internet Protocol
+
+ ISUP ISDN User Part
+
+ IVR Interactive Voice Response
+
+
+ Groves et al Expires - October 2003 [Page 12]
+ Megaco Protocol version 2 April 2003
+
+
+ MG Media Gateway
+
+ MGC Media Gateway Controller
+
+ NFAS Non-Facility Associated Signalling
+
+ PRI Primary Rate Interface
+
+ PSTN Public Switched Telephone Network
+
+ QoS Quality of Service
+
+ RTP Real-time Transport Protocol
+
+ SCN Switched Circuit Network
+
+ SG Signalling Gateway
+
+ SS7 Signalling System No. 7
+
+
+ 5 A NOTE ON CONVENTIONS
+
+ According to ITU-T practice, "SHOULD" refers to a suggested but
+ optional feature or procedure. "SHOULD" as used by the ITU-T is thus
+ a weaker requirement level than in IETF practice as defined in RFC
+ 2119 and cited at the beginning of this document. In view of this
+ difference, the present document calls out all instances of "SHOULD"
+ for review and replacement by "suggested" where that appears to be
+ the intent.
+
+ 6 CONNECTION MODEL
+
+ The connection model for the protocol describes the logical entities,
+ or objects, within the Media Gateway that can be controlled by the
+ Media Gateway Controller. The main abstractions used in the
+ connection model are Terminations and Contexts.
+
+ A Termination sources and/or sinks one or more streams. In a
+ multimedia conference, a Termination can be multimedia and sources or
+ sinks multiple media streams. The media stream parameters, as well as
+ bearer parameters are encapsulated within the Termination.
+
+ A Context is an association between a collection of Terminations.
+ There is a special type of Context, the null Context, which contains
+ all Terminations that are not associated to any other Termination.
+ For instance, in a decomposed access gateway, all idle lines are
+ represented by Terminations in the null Context.
+
+
+
+ Groves et al Expires - October 2003 [Page 13]
+ Megaco Protocol version 2 April 2003
+
+
+ Following is a graphical depiction of these concepts. The diagram of
+ Figure 1 gives several examples and is not meant to be an all-
+ inclusive illustration. The asterisk box in each of the Contexts
+ represents the logical association of Terminations implied by the
+ Context.
+
+ +------------------------------------------------------+
+ |Media Gateway |
+ | +-------------------------------------------------+ |
+ | |Context +-------------+ | |
+ | | | Termination | | |
+ | | |-------------| | |
+ | | +-------------+ +->| SCN Bearer |<---+->
+ | | | Termination | +-----+ | | Channel | | |
+ | | |-------------| | |---+ +-------------+ | |
+ <-+--->| RTP Stream |---| * | | |
+ | | | | | |---+ +-------------+ | |
+ | | +-------------+ +-----+ | | Termination | | |
+ | | | |-------------| | |
+ | | +->| SCN Bearer |<---+->
+ | | | Channel | | |
+ | | +-------------+ | |
+ | +-------------------------------------------------+ |
+ | |
+ | |
+ | +------------------------------+ |
+ | (NULL Context) |Context | |
+ | +-------------+ | +-------------+ | |
+ | | Termination | | +-----+ | Termination | | |
+ | |-------------| | | | |-------------| | |
+ | | SCN Bearer | | | * |------| SCN Bearer |<---+->
+ | | Channel | | | | | Channel | | |
+ | +-------------+ | +-----+ +-------------+ | |
+ | +------------------------------+ |
+ | |
+ | |
+ | +-------------------------------------------------+ |
+ | |Context | |
+ | | +-------------+ +-------------+ | |
+ | | | Termination | +-----+ | Termination | | |
+ | | |-------------| | | |-------------| | |
+ <-+--->| SCN Bearer |---| * |------| SCN Bearer |<---+->
+ | | | Channel | | | | Channel | | |
+ | | +-------------+ +-----+ +-------------+ | |
+ | +-------------------------------------------------+ |
+ | ___________________________________________________ |
+ +------------------------------------------------------+
+
+ Figure 1: Examples of Megaco/H.248 Connection Model
+
+
+ Groves et al Expires - October 2003 [Page 14]
+ Megaco Protocol version 2 April 2003
+
+
+
+
+ The example in Figure 2 shows an example of one way to accomplish a
+ call-waiting scenario in a decomposed access gateway, illustrating
+ the relocation of a Termination between Contexts. Terminations T1 and
+ T2 belong to Context C1 in a two-way audio call. A second audio call
+ is waiting for T1 from Termination T3. T3 is alone in Context C2. T1
+ accepts the call from T3, placing T2 on hold. This action results in
+ T1 moving into Context C2, as shown in Figure 3.
+
+ +------------------------------------------------------+
+ |Media Gateway |
+ | +-------------------------------------------------+ |
+ | |Context C1 | |
+ | | +-------------+ +-------------+ | |
+ | | | Term. T2 | +-----+ | Term. T1 | | |
+ | | |-------------| | | |-------------| | |
+ <-+--->| RTP Stream |---| * |------| SCN Bearer |<---+->
+ | | | | | | | Channel | | |
+ | | +-------------+ +-----+ +-------------+ | |
+ | +-------------------------------------------------+ |
+ | |
+ | +-------------------------------------------------+ |
+ | |Context C2 | |
+ | | +-------------+ | |
+ | | +-----+ | Term. T3 | | |
+ | | | | |-------------| | |
+ | | | * |------| SCN Bearer |<---+->
+ | | | | | Channel | | |
+ | | +-----+ +-------------+ | |
+ | +-------------------------------------------------+ |
+ +------------------------------------------------------+
+
+ Figure 2: Example Call Waiting Scenario / Alerting Applied to T1
+
+
+ +------------------------------------------------------+
+ |Media Gateway |
+ | +-------------------------------------------------+ |
+ | |Context C1 | |
+ | | +-------------+ | |
+ | | | Term. T2 | +-----+ | |
+ | | |-------------| | | | |
+ <-+--->| RTP Stream |---| * | | |
+ | | | | | | | |
+ | | +-------------+ +-----+ | |
+ | +-------------------------------------------------+ |
+ | |
+ | +-------------------------------------------------+ |
+
+
+ Groves et al Expires - October 2003 [Page 15]
+ Megaco Protocol version 2 April 2003
+
+
+ | |Context C2 | |
+ | | +-------------+ +-------------+ | |
+ | | | Term. T1 | +-----+ | Term. T3 | | |
+ | | |-------------| | | |-------------| | |
+ <-+--->| SCN Bearer |---| * |------| SCN Bearer |<---+->
+ | | | Channel | | | | Channel | | |
+ | | +-------------+ +-----+ +-------------+ | |
+ | +-------------------------------------------------+ |
+ +------------------------------------------------------+
+
+ Figure 3. Example Call Waiting Scenario / Answer by T1
+
+
+
+ 6.1 Contexts
+
+ A Context is an association between a number of Terminations. The
+ Context describes the topology (who hears/sees whom) and the media
+ mixing and/or switching parameters if more than two Terminations are
+ involved in the association.
+
+ There is a special Context called the null Context. It contains
+ Terminations that are not associated to any other Termination.
+ Terminations in the null Context can have their parameters examined
+ or modified, and may have events detected on them.
+
+ In general, an Add command is used to add Terminations to Contexts.
+ If the MGC does not specify an existing Context to which the
+ Termination is to be added, the MG creates a new Context. A
+ Termination may be removed from a Context with a Subtract command,
+ and a Termination may be moved from one Context to another with a
+ Move command. A Termination SHALL exist in only one Context at a
+ time.
+
+ The maximum number of Terminations in a Context is a MG property.
+ Media gateways that offer only point-to-point connectivity might
+ allow at most two Terminations per Context. Media gateways that
+ support multipoint conferences might allow three or more Terminations
+ per Context.
+
+ 6.1.1 Context attributes and descriptors
+
+ The attributes of Contexts are:
+
+ - ContextID.
+
+ - The topology (who hears/sees whom).
+
+
+
+
+ Groves et al Expires - October 2003 [Page 16]
+ Megaco Protocol version 2 April 2003
+
+
+ The topology of a Context describes the flow of media between the
+ Terminations within a Context. In contrast, the mode of a
+ Termination (send/receive/...) describes the flow of the media at
+ the ingress/egress of the media gateway.
+
+ - The priority is used for a Context in order to provide the MG with
+ information about a certain precedence handling for a Context. The
+ MGC can also use the priority to control autonomously the traffic
+ precedence in the MG in a smooth way in certain situations (e.g.
+ restart), when a lot of Contexts must be handled simultaneously.
+ Priority 0 is the lowest priority and a priority of 15 is the
+ highest priority.
+
+ - An indicator for an emergency call is also provided to allow a
+ preference handling in the MG.
+
+ 6.1.2 Creating, deleting and modifying Contexts
+
+ The protocol can be used to (implicitly) create Contexts and modify
+ the parameter values of existing Contexts. The protocol has commands
+ to add Terminations to Contexts, subtract them from Contexts, and to
+ move Terminations between Contexts. Contexts are deleted implicitly
+ when the last remaining Termination is subtracted or moved out.
+
+ 6.2 Terminations
+
+ A Termination is a logical entity on a MG that sources and/or sinks
+ media and/or control streams. A Termination is described by a number
+ of characterizing Properties, which are grouped in a set of
+ Descriptors that are included in commands. Terminations have unique
+ identities (TerminationIDs), assigned by the MG at the time of their
+ creation.
+
+ Terminations representing physical entities have a semi-permanent
+ existence. For example, a Termination representing a TDM channel
+ might exist for as long as it is provisioned in the gateway.
+ Terminations representing ephemeral information flows, such as RTP
+ flows, would usually exist only for the duration of their use.
+
+ Ephemeral Terminations are created by means of an Add command. They
+ are destroyed by means of a Subtract command. In contrast, when a
+ physical Termination is Added to or Subtracted from a Context, it is
+ taken from or to the null Context, respectively.
+
+ Terminations may have signals applied to them (see 7.1.11).
+ Terminations may be programmed to detect Events, the occurrence of
+ which can trigger notification messages to the MGC, or action by the
+ MG. Statistics may be accumulated on a Termination. Statistics are
+
+
+
+ Groves et al Expires - October 2003 [Page 17]
+ Megaco Protocol version 2 April 2003
+
+
+ reported to the MGC upon request (by means of the AuditValue command,
+ see 7.2.5) and when the Termination is subtracted from a context.
+
+ Multimedia gateways may process multiplexed media streams. For
+ example, Recommendation H.221 describes a frame structure for
+ multiple media streams multiplexed on a number of digital 64 kbit/s
+ channels. Such a case is handled in the connection model in the
+ following way. For every bearer channel that carries part of the
+ multiplexed streams, there is a physical or ephemeral "bearer
+ Termination". The bearer Terminations that source/sink the digital
+ channels are connected to a separate Termination called the
+ "multiplexing Termination". The multiplexing termination is an
+ ephemeral termination representing a frame-oriented session. The
+ MultiplexDescriptor for this Termination describes the multiplex used
+ (e.g. H.221 for an H.320 session) and indicates the order in which
+ the contained digital channels are assembled into a frame.
+
+ Multiplexing terminations may be cascades (e.g., H.226 multiplex of
+ digital channels feeding into a H.223 multiplex supporting an H.324
+ session).
+
+ The individual media streams carried in the session are described by
+ StreamDescriptors on the multiplexing Termination. These media
+ streams can be associated with streams sourced/sunk by Terminations
+ in the Context other than the bearer Terminations supporting the
+ multiplexing Termination. Each bearer Termination supports only a
+ single data stream. These data streams do not appear explicitly as
+ streams on the multiplexing Termination and they are hidden from the
+ rest of the context.
+
+ Figures 4, 5, 6, and 6a illustrate typical applications of the
+ multiplexing termination and Multiplex Descriptor.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 18]
+ Megaco Protocol version 2 April 2003
+
+
+ +-----------------------------------+
+ | Context +-------+ |
+ +----+ | | |
+ Circuit 1 -|--| TC1|---------+ Tmux | |
+ | +----+ (Str 1) | | Audio +-----+
+ | | | +-----*-----+ |-----
+ | +----+ | H.22x | Stream 1 | |
+ Circuit 2 -|--| TC2|---------+ multi-| | TR1 |
+ | +----+ (Str 1) | plex | |(RTP)|
+ | | | | Video | |
+ | +----+ | +-----*-----+ |-----
+ Circuit 3 -|--| TC3|---------+ | Stream 2 | |
+ / +----+ (Str 1) | | +-----+
+ / | +-------+ |
+ / +-----------------\-----------------+
+ Audio, video, and control \
+ signals are carried in frames Tmux is an ephemeral with two
+ spanning the circuits. explicit Stream Descriptors
+ and a Multiplex Descriptor.
+
+ Figure 4: Multiplexed Termination Scenario - Circuit to Packet
+ (Asterisks * denote the centre of the context)
+
+
+
+ Context
+ +--------------------------------------+
+ | +-------+ +-------+ |
+ +----+ | | | | +----+
+ Circuit 1 ----| TC1|---+ Tmux1 | Audio | Tmux2 +---| TC4|---
+ +----+ | +---*----+ | +----+
+ | | | Str 1 | | |
+ +----+ | H.22x | | H.22x | +----+
+ Circuit 2 ----| TC2|---+ multi-| | multi-+---| TC5|---
+ +----+ | plex | | plex | +----+
+ | | | Video | | |
+ +----+ | +---*----+ | +----+
+ Circuit 3 ----| TC3|---+ | Str 2 | +---| TC6|---
+ +----+ | | | | +----+
+ | +-------+ +-------+ |
+ +-----------------\-----/--------------+
+ \ /
+ Tmux1 and Tmux2 are ephemerals each with two
+ . explicit Stream Descriptors and a Multiplex Descriptor.
+
+ Figure 5: Multiplexed Termination Scenario - Circuit to Circuit
+ (Asterisks * denote the centre of the context)
+
+
+
+
+ Groves et al Expires - October 2003 [Page 19]
+ Megaco Protocol version 2 April 2003
+
+
+
+ +-----------------------------------+
+ | Context +-------+ |
+ +----+ | | |
+ Circuit 1 -|--| TC1|---------+ Tmux | |
+ | +----+ (Str 1) | | Audio +-----+
+ | | | +-----*-----+ TR1 |-----
+ | +----+ | H.22x | Stream 1 |(RTP)|
+ Circuit 2 -|--| TC2|---------+ multi-| +-----+
+ | +----+ (Str 1) | plex | |
+ | | | | Video +-----+
+ | +----+ | +-----*-----+ TR2 |-----
+ Circuit 3 -|--| TC3|---------+ | Stream 2 |(RTP)|
+ / +----+ (Str 1) | | +-----+
+ / | +-------+ |
+ / +-----------------\-----------------+
+ Audio, video, and control \
+ signals are carried in frames Tmux is an ephemeral with two
+ spanning the circuits. explicit Stream Descriptors
+ and a Multiplex Descriptor.
+
+ Figure 6: Multiplexed Termination Scenario - Single to Multiple
+ Terminations
+ (Asterisks * denote the centre of the context)
+
+
+
+
+ Context
+ +---------------------------------------------+
+ | +-------+ +-------+ |
+ Cct 1 +----+ | | | | Audio +-----+
+ ----| TC1|---+ Tmux1 | | Tmux2 +-----*-----| TR1 |-----
+ +----+ | | | | Stream 1 |(RTP)|
+ | | | Data | | +-----+
+ Cct 2 +----+ | H.226 +-------+ H.223 | |
+ ----| TC2|---+ multi-|(Str 1)| multi-| Control +-----+
+ +----+ | plex | | plex +-----*-----+ Tctl|-----
+ | | | | | Stream 3 +-----+
+ Cct 3 +----+ | | | | |
+ ----| TC3|---+ | | | +-----+
+ +----+ | | | +-----*-----+ TR2 |-----
+ | +-------+ | | Video |(RTP)|
+ | +-------+ Stream 2 +-----+
+ | |
+ +---------------------------------------------+
+ Tmux1 has a Multiplex Descriptor and a single data stream.
+ Tmux2 has a Multiplex Descriptor with a single bearer and
+ three explicit Stream Descriptors.
+
+
+ Groves et al Expires - October 2003 [Page 20]
+ Megaco Protocol version 2 April 2003
+
+
+
+ Figure 6a: Multiplexed Termination Scenario - Cascaded Multiplexes
+ (Asterisks * denote the centre of the context)
+ Note: this figure does not appear in Rec. H.248.1.
+
+ ----
+
+ Unlike the multiplexing terminations described in the previous
+ paragraphs, multiplexed bearer terminations, which represent
+ multiplexed bearers such as ATM AAL Type 2 bearers, carry no media
+ streams. They are present strictly for the purpose of modeling the
+ creation and destruction of the actual bearer. When a new
+ multiplexed bearer is to be created, an ephemeral Termination is
+ created in a Context established for this purpose. When the
+ Termination is subtracted, the multiplexed bearer is destroyed.
+
+ 6.2.1 Termination dynamics
+
+ The protocol can be used to create new Terminations and to modify
+ property values of existing Terminations. These modifications include
+ the possibility of adding or removing events and/or signals. The
+ Termination properties, and events and signals are described in the
+ ensuing subclauses. An MGC can only release/modify Terminations and
+ the resources that the Termination represents, which it has
+ previously seized via e.g. the Add command.
+
+ 6.2.2 TerminationIDs
+
+ Terminations are referenced by a TerminationID, which is an arbitrary
+ schema chosen by the MG.
+
+ TerminationIDs of physical Terminations are provisioned in the Media
+ Gateway. The TerminationIDs may be chosen to have structure. For
+ instance, a TerminationID may consist of trunk group and a trunk
+ within the group.
+
+ A wildcarding mechanism using two types of wildcards can be used with
+ TerminationIDs. The two wildcards are ALL and CHOOSE. The former is
+ used to address multiple Terminations at once, while the latter is
+ used to indicate to a media gateway that it must select a Termination
+ satisfying the partially specified TerminationID. This allows, for
+ instance, that a MGC instructs a MG to choose a circuit within a
+ trunk group.
+
+ When ALL is used in the TerminationID of a command, the effect is
+ identical to repeating the command with each of the matching
+ TerminationIDs. The use of ALL does not address the ROOT termination.
+ Since each of these commands may generate a response, the size of the
+ entire response may be large. If individual responses are not
+
+
+ Groves et al Expires - October 2003 [Page 21]
+ Megaco Protocol version 2 April 2003
+
+
+ required, a wildcard response may be requested. In such a case, a
+ single response is generated, which contains the UNION of all of the
+ individual responses which otherwise would have been generated, with
+ duplicate values suppressed. For instance, given a Termination Ta
+ with properties p1=a, p2=b and Termination Tb with properties p2=c,
+ p3=d, a UNION response would consist of a wildcarded TerminationId
+ and the sequence of properties p1=a, p2=b,c and p3=d. Wildcard
+ response may be particularly useful in the Audit commands.
+
+ The encoding of the wildcarding mechanism is detailed in Annexes A
+ and B.
+
+ 6.2.3 Packages
+
+ Different types of gateways may implement Terminations that have
+ widely differing characteristics. Variations in Terminations are
+ accommodated in the protocol by allowing Terminations to have
+ optional Properties, Events, Signals and Statistics implemented by
+ MGs.
+
+ In order to achieve MG/MGC interoperability, such options are grouped
+ into Packages, and typically a Termination realizes a set of such
+ Packages. More information on definition of packages can be found in
+ clause 12. An MGC can audit a Termination to determine which Packages
+ it realizes.
+
+ Properties, Events, Signals and Statistics defined in Packages, as
+ well as parameters to them, are referenced by identifiers (Ids).
+ Identifiers are scoped. For each package, PropertyIds, EventIds,
+ SignalIds, StatisticsIds and ParameterIds have unique name spaces and
+ the same identifier may be used in each of them. Two PropertyIds in
+ different packages may also have the same identifier, etc.
+
+ To support a particular package the MG must support all properties,
+ signals, events and statistics defined in a package. It must also
+ support all Signal and Event parameters. The MG may support a subset
+ of the values listed in a package for a particular Property or
+ Parameter.
+
+ When packages are extended, the properties, events, signals and
+ statistics defined in the base package can be referred to using
+ either the extended package name or the base package name. For
+ example, if Package A defines event e1, and Package B extends Package
+ A, then B/e1 is an event for a termination implementing Package B. By
+ definition, the MG MUST also implement the base Package, but it is
+ optional to publish the base package as an allowed interface. If it
+ does publish A, then A would be reported on the Package Descriptor
+ in AuditValue as well as B, and event A/e1 would be available on a
+ termination. If the MG does not publish A, then only B/e1 would be
+
+
+ Groves et al Expires - October 2003 [Page 22]
+ Megaco Protocol version 2 April 2003
+
+
+ available. If published through AuditValue, A/e1 and B/e1 are the
+ same event.
+
+ For improved interoperability and backward compatibility, an MG MAY
+ publish all Packages supported by its Terminations, including base
+ Packages from which extended Packages are derived. An exception to
+ this is in cases where the base packages are expressly "Designed to
+ be extended only".
+
+ 6.2.4 Termination properties and descriptors
+
+ Terminations have properties. The properties have unique PropertyIDs.
+ Most properties have default values, which are explicitly defined in
+ this protocol specification or in a package (see clause 12) or set by
+ provisioning. If not provisioned otherwise, the properties in all
+ descriptors except TerminationState and LocalControl default to
+ empty/"no value" when a Termination is first created or returned to
+ the null Context. The default contents of the two exceptions are
+ described in 7.1.5 and 7.1.7.
+
+ The provisioning of a property value in the MG will override any
+ default value, be it supplied in this protocol specification or in a
+ package. Therefore if it is essential for the MGC to have full
+ control over the property values of a Termination, it SHOULD supply
+ explicit values when ADDing the Termination to a Context.
+ Alternatively, for a physical Termination the MGC can determine any
+ provisioned property values by auditing the Termination while it is
+ in the NULL Context.
+
+ There are a number of common properties for Terminations and
+ properties specific to media streams. The common properties are also
+ called the Termination state properties. For each media stream, there
+ are local properties and properties of the received and transmitted
+ flows.
+
+ Properties not included in the base protocol are defined in Packages.
+ These properties are referred to by a name consisting of the
+ PackageName and a PropertyId. Most properties have default values
+ described in the Package description. Properties may be read-only or
+ read/write. The possible values of a property may be audited, as can
+ their current values. For properties that are read/write, the MGC can
+ set their values. A property may be declared as "Global" which has a
+ single value shared by all Terminations realizing the package.
+ Related properties are grouped into descriptors for convenience.
+
+ When a Termination is added to a Context, the value of its read/write
+ properties can be set by including the appropriate descriptors as
+ parameters to the Add command. Similarly, a property of a Termination
+ in a Context may have its value changed by the Modify command.
+
+
+ Groves et al Expires - October 2003 [Page 23]
+ Megaco Protocol version 2 April 2003
+
+
+ Properties may also have their values changed when a Termination is
+ moved from one Context to another as a result of a Move command. In
+ some cases, descriptors are returned as output from a command.
+
+ In general, if a Descriptor is completely omitted from one of the
+ aforementioned Commands, the properties in that Descriptor retain
+ their prior values for the Termination(s) upon which the Command
+ acts. On the other hand, if some read/write properties are omitted
+ from a Descriptor in a Command (i.e., the Descriptor is only
+ partially specified), those properties will be reset to their default
+ values for the Termination(s) upon which the Command acts, unless the
+ package specifies other behavior. For more details, see clause 7.1
+ dealing with the individual Descriptors.
+
+ The following table lists all of the possible descriptors and their
+ use. Not all descriptors are legal as input or output parameters to
+ every command.
+
+ Descriptor name Description
+
+ Modem Identifies modem type and properties when
+ applicable(*).
+
+ Mux Describes multiplex type for multimedia
+ Terminations (e.g. H.221, H.223, H.225.0) and
+ Terminations forming the input mux.
+
+ Media A list of media stream specifications (see
+ 7.1.4).
+
+ TerminationState Properties of a Termination (which can be
+ defined in Packages) that are not stream
+ specific.
+
+ Stream A list of remote/local/localControl
+ descriptors for a single stream.
+
+ Local Contains properties that specify the media
+ flows that the MG receives from the remote
+ entity.
+
+ Remote Contains properties that specify the media
+ flows that the MG sends to the remote entity.
+
+ LocalControl Contains properties (which can be defined in
+ packages) that are of interest between the MG
+ and the MGC.
+
+
+
+ Groves et al Expires - October 2003 [Page 24]
+ Megaco Protocol version 2 April 2003
+
+
+ Descriptor name Description
+
+ Events Describes events to be detected by the MG and
+ what to do when an event is detected.
+
+ EventBuffer Describes events to be detected by the MG when
+ Event Buffering is active.
+
+ Signals Describes signals (see 7.1.11) applied to
+ Terminations.
+
+ Audit In Audit commands, identifies which
+ information is desired.
+
+ Packages In AuditValue, returns a list of Packages
+ realized by Termination.
+
+ DigitMap Defines patterns against which sequences of a
+ specified set of events are to be matched so
+ they can be reported as a group rather than
+ singly.
+
+ ServiceChange In ServiceChange, what, why service change
+ occurred, etc.
+
+ ObservedEvents In Notify or AuditValue, report of events
+ observed.
+
+ Statistics In Subtract and Audit, report of Statistics
+ kept on a Termination.
+
+ Topology Specifies flow directions between Terminations
+ in a Context.
+
+ Error Contains an error code and optionally error
+ text; it may occur in command replies and in
+ Notify requests.
+
+ (*) ModemDescriptor has been deprecated in Megaco v2/H.248.1
+ (05/2002).
+
+
+
+ 6.2.5 Root Termination
+
+ Occasionally, a command must refer to the gateway as an entity in
+ itself, rather than a Termination within it. A special TerminationID,
+ "Root" is reserved for this purpose. Packages may be defined on Root.
+
+
+ Groves et al Expires - October 2003 [Page 25]
+ Megaco Protocol version 2 April 2003
+
+
+ Root thus may have properties, events, signals and statistics.
+ Accordingly, the root TerminationID may appear in:
+
+ - a Modify command - to change a property, send a signal or set an
+ event
+
+ - a Notify command - to report an event
+
+ - an AuditValue return - to examine the values of properties and
+ statistics implemented on root
+
+ - an AuditCapability - to determine what properties of root are
+ implemented
+
+ - a ServiceChange - to declare the gateway in or out of service.
+
+ Any other use of the root TerminationID is an error. Error code 410 -
+ "Incorrect identifier" shall be returned in these cases.
+
+
+ 7 COMMANDS
+
+ The protocol provides commands for manipulating the logical entities
+ of the protocol connection model, Contexts and Terminations. Commands
+ provide control at the finest level of granularity supported by the
+ protocol. For example, Commands exist to add Terminations to a
+ Context, modify Terminations, subtract Terminations from a Context,
+ and audit properties of Contexts or Terminations. Commands provide
+ for complete control of the properties of Contexts and Terminations.
+ This includes specifying which events a Termination is to report,
+ which signals/actions are to be applied to a Termination and
+ specifying the topology of a Context (who hears/sees whom).
+
+ Most commands are for the specific use of the Media Gateway
+ Controller as command initiator in controlling Media Gateways as
+ command responders. The exceptions are the Notify and ServiceChange
+ commands: Notify is sent from Media Gateway to Media Gateway
+ Controller, and ServiceChange may be sent by either entity. Below is
+ an overview of the commands; they are explained in more detail in
+ 7.2.
+
+ 1) Add: The Add command adds a Termination to a Context. The Add
+ command on the first Termination in a Context is used to create a
+ Context.
+
+ 2) Modify: The Modify command modifies the properties, events and
+ signals of a Termination.
+
+
+
+
+ Groves et al Expires - October 2003 [Page 26]
+ Megaco Protocol version 2 April 2003
+
+
+ 3) Subtract: The Subtract command disconnects a Termination from its
+ Context and returns statistics on the Termination's participation
+ in the Context. The Subtract command on the last Termination in a
+ Context deletes the Context.
+
+ 4) Move: The Move command atomically moves a Termination to another
+ Context.
+
+ 5) AuditValue: The AuditValue command returns the current state of
+ properties, events, signals and statistics of Terminations.
+
+ 6) AuditCapabilities: The AuditCapabilities command returns all the
+ possible values for Termination properties, events and signals
+ allowed by the Media Gateway.
+
+ 7) Notify: The Notify command allows the Media Gateway to inform the
+ Media Gateway Controller of the occurrence of events in the Media
+ Gateway.
+
+ 8) ServiceChange: The ServiceChange command allows the Media Gateway
+ to notify the Media Gateway Controller that a Termination or group
+ of Terminations is about to be taken out of service or has just
+ been returned to service. ServiceChange is also used by the MG to
+ announce its availability to a MGC (registration), and to notify
+ the MGC of impending or completed restart of the MG. The MGC may
+ announce a handover to the MG by sending it a ServiceChange
+ command. The MGC may also use ServiceChange to instruct the MG to
+ take a Termination or group of Terminations in or out of service.
+
+ These commands are detailed in 7.2.1 through 7.2.8.
+
+ 7.1 Descriptors
+
+ The parameters to a command are termed Descriptors. A descriptor
+ consists of a name and a list of items. Some items may have values.
+ Many Commands share common descriptors. This subclause enumerates
+ these descriptors. Descriptors may be returned as output from a
+ command. In any such return of descriptor contents, an empty
+ descriptor is represented by its name unaccompanied by any list.
+ Parameters and parameter usage specific to a given Command type are
+ described in the subclause that describes the Command.
+
+ 7.1.1 Specifying parameters
+
+ Command parameters are structured into a number of descriptors. In
+ general, the text format of descriptors is
+ DescriptorName=<someID>{parm=value, parm=value, ...}.
+
+ Parameters may be fully specified, overspecified or underspecified:
+
+
+ Groves et al Expires - October 2003 [Page 27]
+ Megaco Protocol version 2 April 2003
+
+
+ 1) Fully specified parameters have a single, unambiguous value that
+ the command initiator is instructing the command responder to use
+ for the specified parameter.
+
+ 2) Underspecified parameters, using the CHOOSE value, allow the
+ command responder to choose any value it can support.
+
+ 3) Overspecified parameters have a list of potential values. The list
+ order specifies the command initiator's order of preference of
+ selection. The command responder chooses one value from the
+ offered list and returns that value to the command initiator.
+
+ If a required descriptor other than the Audit descriptor is
+ unspecified (i.e. entirely absent) from a command, the previous
+ values set in that descriptor for that Termination, if any, are
+ retained. In commands other than Subtract, a missing Audit descriptor
+ is equivalent to an empty Audit descriptor. The Behaviour of the MG
+ with respect to unspecified parameters within a descriptor varies
+ with the descriptor concerned, as indicated in succeeding subclauses.
+ Whenever a parameter is underspecified or overspecified, the
+ descriptor containing the value chosen by the responder is included
+ as output from the command.
+
+ Each command specifies the TerminationId the command operates on.
+ This TerminationId may be "wildcarded". When the TerminationId of a
+ command is wildcarded, the effect shall be as if the command was
+ repeated with each of the TerminationIds matched.
+
+ 7.1.2 Modem descriptor
+
+ The Modem descriptor specifies the modem type and parameters, if any,
+ required for use in e.g. H.324 and text conversation. The descriptor
+ includes the following modem types: V.18, V.22, V.22 bis, V.32, V.32
+ bis, V.34, V.90, V.91, Synchronous ISDN, and allows for extensions.
+ By default, no Modem descriptor is present in a Termination.
+
+ Use of the ModemDescriptor is deprecated in Megaco v2/H.248.1
+ (05/2002) and subsequent versions. This means that the
+ ModemDescriptor shall not be included as part of transmitted content
+ and if received shall either be ignored or processed at the option of
+ the implementation. Modem type is to be specified as an attribute of
+ data streams in LocalDescriptor and RemoteDescriptor.
+
+ 7.1.3 Multiplex descriptor
+
+ In multimedia calls, a number of media streams are carried on a
+ (possibly different) number of bearers. The multiplex descriptor
+ associates the media and the bearers. The descriptor includes the
+ multiplex type:
+
+
+ Groves et al Expires - October 2003 [Page 28]
+ Megaco Protocol version 2 April 2003
+
+
+ - H.221;
+ - H.223;
+ - H.226;
+ - V.76;
+ - Nx64K;
+ - possible extensions,
+
+ and a set of TerminationIDs representing the multiplexed bearers, in
+ order. For example:
+
+ Mux = H.221{ MyT3/1/2, MyT3/2/13, MyT3/3/6, MyT3/21/22}
+
+ The Nx64K Multiplex type implements the Nx64K service (e.g. as
+ defined by Q.931 Information Transfer Rate or Q.763 Transmission
+ Medium Requirement). On the context side it supports a single stream
+ of wideband data. When a bearer termination is added implicitly to a
+ context as a result of the creation of an Nx64K multiplexing
+ termination, the streamDescriptor for the bearer termination shall
+ take on the same values as the streamDescriptor defined for the
+ Multiplex termination, except that the bearer termination bandwidth
+ shall be 64 kilobits per second.
+
+ 7.1.4 Media descriptor
+
+ The Media descriptor specifies the parameters for all the media
+ streams. These parameters are structured into two descriptors: a
+ TerminationState descriptor, which specifies the properties of a
+ Termination that are not stream dependent, and one or more Stream
+ descriptors each of which describes a single media stream.
+
+ A stream is identified by a StreamID. The StreamID is used to link
+ the streams in a Context that belong together. Multiple streams
+ exiting a Termination shall be synchronized with each other. Within
+ the Stream descriptor, there are up to three subsidiary descriptors:
+ LocalControl, Local, and Remote. The relationship between these
+ descriptors is thus:
+
+ Media descriptor
+ TerminationState Descriptor
+ Stream descriptor
+ LocalControl descriptor
+ Local descriptor
+ Remote descriptor
+
+ As a convenience, LocalControl, Local, or Remote descriptors may be
+ included in the Media descriptor without an enclosing Stream
+ descriptor. In this case, the StreamID is assumed to be 1.
+
+
+
+
+ Groves et al Expires - October 2003 [Page 29]
+ Megaco Protocol version 2 April 2003
+
+
+ 7.1.5 TerminationState descriptor
+
+ The TerminationState descriptor contains the ServiceStates property,
+ the EventBufferControl property and properties of a Termination
+ (defined in Packages) that are not stream specific.
+
+ The ServiceStates property describes the overall state of the
+ Termination (not stream specific). A Termination can be in one of the
+ following states: "test", "out of service", or "in service". The
+ "test" state indicates that the Termination is being tested. The
+ state "out of service" indicates that the Termination cannot be used
+ for traffic. The state "in service" indicates that a Termination can
+ be used or is being used for normal traffic. "in service" is the
+ default state.
+
+ Values assigned to Properties may be simple values
+ (integer/string/enumeration) or may be underspecified, where more
+ than one value is supplied and the MG may make a choice:
+
+ - Alternative Values - multiple values in a list, one of which must
+ be selected
+
+ - Ranges - minimum and maximum values, any value between min and max
+ must be selected, boundary values included
+
+ - Greater Than/Less Than - value must be greater/less than specified
+ value
+
+ - CHOOSE Wildcard - the MG chooses from the allowed values for the
+ property
+
+ The EventBufferControl property specifies whether events are buffered
+ following detection of an event in the Events descriptor, or
+ processed immediately. See 7.1.9 for details.
+
+ 7.1.6 Stream descriptor
+
+ A Stream descriptor specifies the parameters of a single
+ bidirectional stream. These parameters are structured into three
+ descriptors: one that contains Termination properties specific to a
+ stream and one each for local and remote flows. The Stream Descriptor
+ includes a StreamID which identifies the stream. Streams are created
+ by specifying a new StreamID on one of the Terminations in a Context.
+ A stream is deleted by setting empty Local and Remote descriptors for
+ the stream with ReserveGroup and ReserveValue in LocalControl set to
+ "false" on all Terminations in the Context that previously supported
+ that stream.
+
+
+
+
+ Groves et al Expires - October 2003 [Page 30]
+ Megaco Protocol version 2 April 2003
+
+
+ StreamIDs are of local significance between MGC and MG and they are
+ assigned by the MGC. Within a Context, StreamID is a means by which
+ to indicate which media flows are interconnected: streams with the
+ same StreamID are connected.
+
+ If a Termination is moved from one Context to another, the effect on
+ the Context to which the Termination is moved is the same as in the
+ case that a new Termination were added with the same StreamIDs as the
+ moved Termination.
+
+ 7.1.7 LocalControl descriptor
+
+ The LocalControl descriptor contains the Mode property, the
+ ReserveGroup and ReserveValue properties and properties of a
+ Termination (defined in Packages) that are stream specific, and are
+ of interest between the MG and the MGC. Values of properties may be
+ specified as in 7.1.1.
+
+ The allowed values for the mode property are send-only, receive-only,
+ send/receive, inactive and loop-back. "Send" and "receive" are with
+ respect to the exterior of the Context, so that, for example, a
+ stream set to mode=sendOnly does not pass received media into the
+ Context. The default value for the mode property is "Inactive".
+ Signals and Events are not affected by mode.
+
+ The boolean-valued Reserve properties, ReserveValue and ReserveGroup,
+ of a Termination indicate what the MG is expected to do when it
+ receives a Local and/or Remote descriptor.
+
+ If the value of a Reserve property is True, the MG SHALL reserve
+ resources for all alternatives specified in the Local and/or Remote
+ descriptors for which it currently has resources available. It SHALL
+ respond with the alternatives for which it reserves resources. If it
+ cannot not support any of the alternatives, it SHALL respond with a
+ reply to the MGC that contains empty Local and/or Remote descriptors.
+ If media begins to flow while more than a single alternative is
+ reserved, media packets may be sent/received on any of the
+ alternatives and must be processed, although only a single
+ alternative may be active at any given time.
+
+ If the value of a Reserve property is False, the MG SHALL choose one
+ of the alternatives specified in the Local descriptor (if present)
+ and one of the alternatives specified in the Remote descriptor (if
+ present). If the MG has not yet reserved resources to support the
+ selected alternative, it SHALL reserve the resources. If, on the
+ other hand, it already reserved resources for the Termination
+ addressed (because of a prior exchange with ReserveValue and/or
+ ReserveGroup equal to True), it SHALL release any excess resources it
+ reserved previously. Finally, the MG shall send a reply to the MGC
+
+
+ Groves et al Expires - October 2003 [Page 31]
+ Megaco Protocol version 2 April 2003
+
+
+ containing the alternatives for the Local and/or Remote descriptor
+ that it selected. If the MG does not have sufficient resources to
+ support any of the alternatives specified, is SHALL respond with
+ Error 510 - "Insufficient resources".
+
+ The default value of ReserveValue and ReserveGroup is False. More
+ information on the use of the two Reserve properties is provided in
+ 7.1.8.
+
+ A new setting of the LocalControl Descriptor completely replaces the
+ previous setting of that descriptor in the MG. Thus, to retain
+ information from the previous setting, the MGC must include that
+ information in the new setting. If the MGC wishes to delete some
+ information from the existing descriptor, it merely resends the
+ descriptor (in a Modify command) with the unwanted information
+ stripped out.
+
+ 7.1.8 Local and Remote descriptors
+
+ The MGC uses Local and Remote descriptors to reserve and commit MG
+ resources for media decoding and encoding for the given Stream(s) and
+ Termination to which they apply. The MG includes these descriptors in
+ its response to indicate what it is actually prepared to support. The
+ MG SHALL include additional properties and their values in its
+ response if these properties are mandatory yet not present in the
+ requests made by the MGC (e.g. by specifying detailed video encoding
+ parameters where the MGC only specified the payload type).
+
+ Local refers to the media received by the MG and Remote refers to the
+ media sent by the MG.
+
+ When text encoding the protocol, the descriptors consist of session
+ descriptions as defined in SDP (RFC 2327). In session descriptions
+ sent from the MGC to the MG, the following exceptions to the syntax
+ of RFC 2327 are allowed:
+
+ - the "s=", "t=" and "o=" lines are optional;
+
+ - the use of CHOOSE is allowed in place of a single parameter value;
+ and
+
+ - the use of alternatives is allowed in place of a single parameter
+ value.
+
+ A Stream Descriptor specifies a single bi-directional media stream
+ and so a single session description MUST NOT include more than one
+ media description ("m=" line). A Stream Descriptor may contain
+ additional session descriptions as alternatives. Each media stream
+ for a termination must appear in distinct Stream Descriptors. When
+
+
+ Groves et al Expires - October 2003 [Page 32]
+ Megaco Protocol version 2 April 2003
+
+
+ multiple session descriptions are provided in one descriptor, the
+ "v=" lines are required as delimiters; otherwise they are optional in
+ session descriptions sent to the MG. Implementations shall accept
+ session descriptions that are fully conformant to RFC 2327. When
+ binary encoding the protocol the descriptor consists of groups of
+ properties (tag-value pairs) as specified in Annex C. Each such group
+ may contain the parameters of a session description.
+
+ Below, the semantics of the Local and Remote descriptors are
+ specified in detail. The specification consists of two parts. The
+ first part specifies the interpretation of the contents of the
+ descriptor. The second part specifies the actions the MG must take
+ upon receiving the Local and Remote descriptors. The actions to be
+ taken by the MG depend on the values of the ReserveValue and
+ ReserveGroup properties of the LocalControl descriptor.
+
+ Either the Local or the Remote descriptor or both may be:
+
+ - unspecified (i.e. absent);
+
+ - empty;
+
+ - underspecified through use of CHOOSE in a property value;
+
+ - fully specified; or
+
+ - overspecified through presentation of multiple groups of
+ properties and possibly multiple property values in one or more of
+ these groups.
+
+ Where the descriptors have been passed from the MGC to the MG, they
+ are interpreted according to the rules given in 7.1.1, with the
+ following additional comments for clarification:
+
+ a) An unspecified Local or Remote descriptor is considered to be a
+ missing mandatory parameter. It requires the MG to use whatever
+ was last specified for that descriptor. It is possible that there
+ was no previously specified value, in which case the descriptor
+ concerned is ignored in further processing of the command.
+
+ b) An empty Local (Remote) descriptor in a message from the MGC
+ signifies a request to release any resources reserved for the
+ media flow received (sent).
+
+ c) If multiple groups of properties are present in a Local or Remote
+ descriptor or multiple values within a group, the order of
+ preference is descending.
+
+
+
+
+ Groves et al Expires - October 2003 [Page 33]
+ Megaco Protocol version 2 April 2003
+
+
+ d) Underspecified or overspecified properties within a group of
+ properties sent by the MGC are requests for the MG to choose one
+ or more values which it can support for each of those properties.
+ In case of an overspecified property, the list of values is in
+ descending order of preference.
+
+ Subject to the above rules, subsequent action depends on the values
+ of the ReserveValue and ReserveGroup properties in LocalControl.
+
+ If ReserveGroup is True, the MG reserves the resources required to
+ support any of the requested property group alternatives that it can
+ currently support. If ReserveValue is True, the MG reserves the
+ resources required to support any of the requested property value
+ alternatives that it can currently support.
+
+ NOTE - If a Local or Remote descriptor contains multiple groups of
+ properties, and ReserveGroup is True, then the MG is requested to
+ reserve resources so that it can decode or encode the media stream
+ according to any of the alternatives. For instance, if the Local
+ descriptor contains two groups of properties, one specifying
+ packetized G.711 A-law audio and the other G.723.1 audio, the MG
+ reserves resources so that it can decode one audio stream encoded in
+ either G.711 A-law format or G.723.1 format. The MG does not have to
+ reserve resources to decode two audio streams simultaneously, one
+ encoded in G.711 A-law and one in G.723.1. The intention for the use
+ of ReserveValue is analogous.
+
+ If ReserveGroup is true or ReserveValue is True, then the following
+ rules apply:
+
+ - If the MG has insufficient resources to support all alternatives
+ requested by the MGC and the MGC requested resources in both Local
+ and Remote, the MG SHOULD reserve resources to support at least
+ one alternative each within Local and Remote.
+
+ - If the MG has insufficient resources to support at least one
+ alternative within a Local (Remote) descriptor received from the
+ MGC, it shall return an empty Local (Remote) in response.
+
+ - In its response to the MGC, when the MGC included Local and Remote
+ descriptors, the MG SHALL include Local and Remote descriptors for
+ all groups of properties and property values it reserved resources
+ for. If the MG is incapable of supporting at least one of the
+ alternatives within the Local (Remote) descriptor received from
+ the MGC, it SHALL return an empty Local (Remote) descriptor.
+
+ - If the Mode property of the LocalControl descriptor is RecvOnly,
+ SendRecv, or LoopBack, the MG must be prepared to receive media
+
+
+
+ Groves et al Expires - October 2003 [Page 34]
+ Megaco Protocol version 2 April 2003
+
+
+ encoded according to any of the alternatives included in its
+ response to the MGC.
+
+ If ReserveGroup is False and ReserveValue is False, then the MG
+ SHOULD apply the following rules to resolve Local and Remote to a
+ single alternative each:
+
+ - The MG chooses the first alternative in Local for which it is able
+ to support at least one alternative in Remote.
+
+ - If the MG is unable to support at least one Local and one Remote
+ alternative, it returns Error 510 - "Insufficient resources".
+
+ - The MG returns its selected alternative in each of Local and
+ Remote.
+
+ A new setting of a Local or Remote descriptor completely replaces the
+ previous setting of that descriptor in the MG. Thus, to retain
+ information from the previous setting, the MGC must include that
+ information in the new setting. If the MGC wishes to delete some
+ information from the existing descriptor, it merely resends the
+ descriptor (in a Modify command) with the unwanted information
+ stripped out.
+
+ 7.1.9 Events descriptor
+
+ The EventsDescriptor parameter contains a RequestIdentifier and a
+ list of events that the Media Gateway is requested to detect and
+ report. The RequestIdentifier is used to correlate the request with
+ the notifications that it may trigger. Requested events include, for
+ example, fax tones, continuity test results, and on-hook and off-hook
+ transitions. The RequestIdentifier is omitted if the EventsDescriptor
+ is empty (i.e. no events are specified).
+
+ Each event in the descriptor contains the Event name, an optional
+ streamID, an optional KeepActive flag, and optional parameters. The
+ Event name consists of a Package Name (where the event is defined)
+ and an EventID. The ALL wildcard may be used for the EventID,
+ indicating that all events from the specified package have to be
+ detected. The default streamID is 0, indicating that the event to be
+ detected is not related to a particular media stream. Events can have
+ parameters. This allows a single event description to have some
+ variation in meaning without creating large numbers of individual
+ events. Further event parameters are defined in the package.
+
+ If a digit map completion event is present or implied in the
+ EventsDescriptor, the EventDM parameter is used to carry either the
+ name or the value of the associated digit map. See 7.1.14 for further
+ details.
+
+
+ Groves et al Expires - October 2003 [Page 35]
+ Megaco Protocol version 2 April 2003
+
+
+ When an event is processed against the contents of an active Events
+ Descriptor and found to be present in that descriptor ("recognized"),
+ the default action of the MG is to send a Notify command to the MGC.
+ Notification may be deferred if the event is absorbed into the
+ current dial string of an active digit map (see 7.1.14). Any other
+ action is for further study. Moreover, event recognition may cause
+ currently active signals to stop, or may cause the current Events
+ and/or Signals descriptor to be replaced, as described at the end of
+ this subclause. Unless the Events Descriptor is replaced by another
+ Events Descriptor, it remains active after an event has been
+ recognized.
+
+ If the value of the EventBufferControl property equals LockStep,
+ following detection of such an event, normal handling of events is
+ suspended. Any event which is subsequently detected and occurs in the
+ EventBuffer descriptor is added to the end of the EventBuffer (a FIFO
+ queue), along with the time that it was detected. The MG SHALL wait
+ for a new EventsDescriptor to be loaded. A new EventsDescriptor can
+ be loaded either as the result of receiving a command with a new
+ EventsDescriptor, or by activating an embedded EventsDescriptor.
+
+ If EventBufferControl equals Off, the MG continues processing based
+ on the active EventsDescriptor.
+
+ In the case of an embedded EventsDescriptor being activated, the MG
+ continues event processing based on the newly activated
+ EventsDescriptor.
+
+ NOTE 1 - For purposes of EventBuffer handling, activation of an
+ embedded EventsDescriptor is equivalent to receipt of a new
+ EventsDescriptor.
+
+ When the MG receives a command with a new EventsDescriptor, one or
+ more events may have been buffered in the EventBuffer in the MG. The
+ value of EventBufferControl then determines how the MG treats such
+ buffered events.
+
+
+ Case 1
+
+ If EventBufferControl equals LockStep and the MG receives a new
+ EventsDescriptor, it will check the FIFO EventBuffer and take the
+ following actions:
+
+ 1) If the EventBuffer is empty, the MG waits for detection of events
+ based on the new EventsDescriptor.
+
+ 2) If the EventBuffer is non-empty, the MG processes the FIFO queue
+ starting with the first event:
+
+
+ Groves et al Expires - October 2003 [Page 36]
+ Megaco Protocol version 2 April 2003
+
+
+ a) If the event in the queue is in the events listed in the new
+ EventsDescriptor, the MG acts on the event and removes the
+ event from the EventBuffer. The time stamp of the Notify shall
+ be the time the event was actually detected. The MG then waits
+ for a new EventsDescriptor. While waiting for a new
+ EventsDescriptor, any events detected that appear in the
+ EventsBufferDescriptor will be placed in the EventBuffer. When
+ a new EventsDescriptor is received, the event processing will
+ repeat from step 1.
+
+ b) If the event is not in the new EventsDescriptor, the MG SHALL
+ discard the event and repeat from step 1.
+
+
+ Case 2
+
+ If EventBufferControl equals Off and the MG receives a new
+ EventsDescriptor, it processes new events with the new
+ EventsDescriptor.
+
+ If the MG receives a command instructing it to set the value of
+ EventBufferControl to Off, all events in the EventBuffer SHALL be
+ discarded.
+
+ The MG may report several events in a single Transaction as long as
+ this does not unnecessarily delay the reporting of individual events.
+
+ For procedures regarding transmitting the Notify command, refer to
+ the appropriate annex or Recommendation of the H.248 sub-series for
+ specific transport considerations.
+
+ The default value of EventBufferControl is Off.
+
+ NOTE 2 - Since the EventBufferControl property is in the
+ TerminationStateDescriptor, the MG might receive a command that
+ changes the EventBufferControl property and does not include an
+ EventsDescriptor.
+
+ Normally, recognition of an event shall cause any active signals to
+ stop. When KeepActive is specified in the event, the MG shall not
+ interrupt any signals active on the Termination on which the event is
+ detected.
+
+ An event can include an Embedded Signals descriptor and/or an
+ Embedded Events descriptor which, if present, replaces the current
+ Signals/Events descriptor when the event is recognized. It is
+ possible, for example, to specify that the dial-tone Signal be
+ generated when an off-hook Event is recognized, or that the dial-tone
+ Signal be stopped when a digit is recognized. A media gateway
+
+
+ Groves et al Expires - October 2003 [Page 37]
+ Megaco Protocol version 2 April 2003
+
+
+ controller shall not send EventsDescriptors with an event both marked
+ KeepActive and containing an embedded SignalsDescriptor.
+
+ Only one level of embedding is permitted. An embedded
+ EventsDescriptor SHALL NOT contain another embedded EventsDescriptor;
+ an embedded EventsDescriptor MAY contain an embedded
+ SignalsDescriptor.
+
+ An EventsDescriptor received by a media gateway replaces any previous
+ Events descriptor. Event notification in process shall complete, and
+ events detected after the command containing the new EventsDescriptor
+ executes, shall be processed according to the new EventsDescriptor.
+
+ An empty Events Descriptor disables all event recognition and
+ reporting. An empty EventBuffer Descriptor clears the EventBuffer
+ and disables all event accumulation in LockStep mode: the only events
+ reported will be those occurring while an Events Descriptor is
+ active. If an empty Events Descriptor is activated while the
+ Termination is operating in LockStep mode, the events buffer is
+ immediately cleared.
+
+ 7.1.10 EventBuffer descriptor
+
+ The EventBuffer descriptor contains a list of events, with their
+ parameters if any, that the MG is requested to detect and buffer when
+ EventBufferControl equals LockStep (see 7.1.9).
+
+ 7.1.11 Signals descriptor
+
+ Signals are MG generated media such as tones and announcements as
+ well as bearer-related signals such as hookswitch. More complex
+ signals may include a sequence of such simple signals interspersed
+ with and conditioned upon the receipt and analysis of media or
+ bearer-related signals. Examples include echoing of received data as
+ in Continuity Test package. Signals may also request preparation of
+ media content for future signals.
+
+ A SignalsDescriptor is a parameter that contains the set of signals
+ that the Media Gateway is asked to apply to a Termination. A
+ SignalsDescriptor contains a number of signals and/or sequential
+ signal lists. A SignalsDescriptor may contain zero signals and
+ sequential signal lists. Support of sequential signal lists is
+ optional.
+
+ Signals are defined in packages. Signals shall be named with a
+ Package name (in which the signal is defined) and a SignalID. No
+ wildcard shall be used in the SignalID. Signals that occur in a
+ SignalsDescriptor have an optional StreamID parameter (default is 0,
+ to indicate that the signal is not related to a particular media
+
+
+ Groves et al Expires - October 2003 [Page 38]
+ Megaco Protocol version 2 April 2003
+
+
+ stream), an optional signal type (see below), an optional duration
+ and possibly parameters defined in the package that defines the
+ signal. This allows a single signal to have some variation in
+ meaning, obviating the need to create large numbers of individual
+ signals.
+
+ Finally, the optional parameter "notifyCompletion" allows a MGC to
+ indicate that it wishes to be notified when the signal finishes
+ playout. The possible cases are that the signal timed out (or
+ otherwise completed on its own), that it was interrupted by an event,
+ that it was halted when a Signals descriptor was replaced, or that it
+ stopped or never started for other reasons. If the notifyCompletion
+ parameter is not included in a Signals descriptor, notification is
+ generated only if the signal stopped or was never started for other
+ reasons. For reporting to occur, the signal completion event (see
+ E.1.2) must be enabled in the currently active Events descriptor.
+
+ The duration is an integer value that is expressed in hundredths of a
+ second.
+
+ There are three types of signals:
+
+ - on/off - the signal lasts until it is turned off;
+
+ - timeout - the signal lasts until it is turned off or a specific
+ period of time elapses;
+
+ - brief - the signal will stop on its own unless a new Signals
+ descriptor is applied that causes it to stop; no timeout value is
+ needed.
+
+ If a signal of default type other than TO has its type overridden to
+ type TO in the Signals descriptor, the duration parameter must be
+ present.
+
+ If the signal type is specified in a SignalsDescriptor, it overrides
+ the default signal type (see 12.1.4). If duration is specified for an
+ on/off signal, it SHALL be ignored.
+
+ A sequential signal list consists of a signal list identifier and a
+ sequence of signals to be played sequentially. Only the trailing
+ element of the sequence of signals in a sequential signal list may be
+ an on/off signal. The duration of a sequential signal list is the sum
+ of the durations of the signals it contains.
+
+ Multiple signals and sequential signal lists in the same
+ SignalsDescriptor shall be played simultaneously.
+
+
+
+
+ Groves et al Expires - October 2003 [Page 39]
+ Megaco Protocol version 2 April 2003
+
+
+ Signals are defined as proceeding from the Termination towards the
+ exterior of the Context unless otherwise specified in a package. When
+ the same Signal is applied to multiple Terminations within one
+ Transaction, the MG SHOULD consider using the same resource to
+ generate these Signals.
+
+ Production of a Signal on a Termination is stopped by application of
+ a new SignalsDescriptor, or detection of an Event on the Termination
+ (see 7.1.9).
+
+ A new SignalsDescriptor replaces any existing SignalsDescriptor. Any
+ signals applied to the Termination not in the replacement descriptor
+ shall be stopped, and new signals are applied, except as follows.
+ Signals present in the replacement descriptor and containing the
+ KeepActive flagshall be continued if they are currently playing and
+ have not already completed. If a replacement signal descriptor
+ contains a signal that is not currently playing and contains the
+ KeepActive flag, that signal SHALL be ignored. If the replacement
+ descriptor contains a sequential signal list with the same identifier
+ as the existing descriptor, then
+
+ - the signal type and sequence of signals in the sequential signal
+ list in the replacement descriptor shall be ignored; and
+
+ - the playing of the signals in the sequential signal list in the
+ existing descriptor shall not be interrupted.
+
+ 7.1.12 Audit descriptor
+
+ The Audit descriptor specifies what information is to be audited. The
+ Audit descriptor specifies the list of descriptors and-or individual
+ properties to be returned. Audit may be used in any command to force
+ the return of any descriptor containing the current values of its
+ properties, events, signals and statistics even if that descriptor
+ was not present in the command, or had no underspecified parameters.
+ Possible items in the Audit descriptor are:
+
+ - Modem (Deprecated, see clause 7.1.2)
+ - Mux
+ - Events
+ - Media
+ - Signals
+ - ObservedEvents
+ - DigitMap
+ - Statistics
+ - Packages
+ - EventBuffer
+ - Individual Audit Items:
+ - Media Properties
+
+
+ Groves et al Expires - October 2003 [Page 40]
+ Megaco Protocol version 2 April 2003
+
+
+ - Events
+ - Event Buffer
+ - Signals, Signal Lists
+ - Digit Maps
+ - Statistics
+ - Packages
+
+ Audit may be empty, in which case, no descriptors are returned. This
+ is useful in Subtract, to inhibit return of statistics, especially
+ when using wildcard.
+
+ 7.1.13 ServiceChange descriptor
+
+ The ServiceChangeDescriptor contains the following parameters:
+
+ - ServiceChangeMethod
+ - ServiceChangeReason
+ - ServiceChangeAddress
+ - ServiceChangeDelay
+ - ServiceChangeProfile
+ - ServiceChangeVersion
+ - ServiceChangeMGCId
+ - TimeStamp
+ - Extension
+
+ See 7.2.8.
+
+ 7.1.14 DigitMap descriptor
+
+ 7.1.14.1 DigitMap definition, creation, modification and deletion
+
+ A DigitMap is a dialing plan resident in the Media Gateway used for
+ detecting and reporting digit events received on a Termination. The
+ DigitMap descriptor contains a DigitMap name and the DigitMap to be
+ assigned. A digit map may be preloaded into the MG by management
+ action and referenced by name in an EventsDescriptor, may be defined
+ dynamically and subsequently referenced by name, or the actual
+ digitmap itself may be specified in the EventsDescriptor. It is
+ permissible for a digit map completion event within an Events
+ descriptor to refer by name to a DigitMap which is defined by a
+ DigitMap descriptor within the same command, regardless of the
+ transmitted order of the respective descriptors.
+
+ DigitMaps defined in a DigitMapDescriptor can occur in any of the
+ standard Termination manipulation Commands of the protocol. A
+ DigitMap, once defined, can be used on all Terminations specified by
+ the (possibly wildcarded) TerminationID in such a command. DigitMaps
+ defined on the root Termination are global and can be used on every
+ Termination in the MG, provided that a DigitMap with the same name
+
+
+ Groves et al Expires - October 2003 [Page 41]
+ Megaco Protocol version 2 April 2003
+
+
+ has not been defined on the given Termination. When a DigitMap is
+ defined dynamically in a DigitMap descriptor:
+
+ - A new DigitMap is created by specifying a name that is not yet
+ defined. The value shall be present.
+
+ - A DigitMap value is updated by supplying a new value for a name
+ that is already defined. Terminations presently using the digitmap
+ shall continue to use the old definition; subsequent
+ EventsDescriptors specifying the name, including any
+ EventsDescriptor in the command containing the DigitMap
+ descriptor, shall use the new one.
+
+ - A DigitMap is deleted by supplying an empty value for a name that
+ is already defined. Terminations presently using the digitmap
+ shall continue to use the old definition.
+
+ 7.1.14.2 DigitMap Timers
+
+ The collection of digits according to a DigitMap may be protected by
+ three timers, viz. a start timer (T), short timer (S), and long timer
+ (L).
+
+ 1) The start timer (T) is used prior to any digits having been
+ dialed. If the start timer is overridden with the value set to
+ zero (T=0), then the start timer shall be disabled. This implies
+ that the MG will wait indefinitely for digits.
+
+ 2) If the Media Gateway can determine that at least one more digit is
+ needed for a digit string to match any of the allowed patterns in
+ the digit map, then the interdigit timer value SHOULD be set to a
+ long (L) duration (e.g. 16 seconds).
+
+ 3) If the digit string has matched one of the patterns in a digit
+ map, but it is possible that more digits could be received which
+ would cause a match with a different pattern, then instead of
+ reporting the match immediately, the MG must apply the short timer
+ (S) and wait for more digits.
+
+ The timers are configurable parameters to a DigitMap. Default values
+ of these timers SHOULD be provisioned on the MG, but can be
+ overridden by values specified within the DigitMap.
+
+ 7.1.14.3 DigitMap Syntax
+
+ The formal syntax of the digit map is described by the DigitMap rule
+ in the formal syntax description of the protocol (see Annex A and
+ Annex B). A DigitMap, according to this syntax, is defined either by
+ a string or by a list of strings. Each string in the list is an
+
+
+ Groves et al Expires - October 2003 [Page 42]
+ Megaco Protocol version 2 April 2003
+
+
+ alternative event sequence, specified either as a sequence of digit
+ map symbols or as a regular expression of digit map symbols. These
+ digit map symbols, the digits "0" through "9" and letters "A" through
+ a maximum value depending on the signalling system concerned, but
+ never exceeding "K", correspond to specified events within a package
+ which has been designated in the Events descriptor on the Termination
+ to which the digit map is being applied. (The mapping between events
+ and digit map symbols is defined in the documentation for packages
+ associated with channel-associated signalling systems such as DTMF,
+ MF, or R2. Digits "0" through "9" MUST be mapped to the corresponding
+ digit events within the signalling system concerned. Letters SHOULD
+ be allocated in logical fashion, facilitating the use of range
+ notation for alternative events.)
+
+ The letter "x" is used as a wildcard, designating any event
+ corresponding to symbols in the range "0"-"9". The string may also
+ contain explicit ranges and, more generally, explicit sets of
+ symbols, designating alternative events any one of which satisfies
+ that position of the digit map. Finally, the dot symbol "." stands
+ for zero or more repetitions of the event selector (event, range of
+ events, set of alternative events, or wildcard) that precedes it. As
+ a consequence of the third timing rule above, inter-event timing
+ while matching a terminal dot symbol uses the short timer by default.
+
+ In addition to these event symbols, the string may contain "S" and
+ "L" inter-event timing specifiers and the "Z" duration modifier. "S"
+ and "L" respectively indicate that the MG SHOULD use the short (S)
+ timer or the long (L) timer for subsequent events, overriding the
+ timing rules described above. If an explicit timing specifier is in
+ effect in one alternative event sequence, but none is given in any
+ other candidate alternative, the timer value set by the explicit
+ timing specifier must be used. If all sequences with explicit timing
+ controls are dropped from the candidate set, timing reverts to the
+ default rules given above. Finally, if conflicting timing specifiers
+ are in effect in different alternative sequences, the long timer
+ shall be used.
+
+ A "Z" designates a long duration event: placed in front of the
+ symbol(s) designating the event(s) which satisfy a given digit
+ position, it indicates that that position is satisfied only if the
+ duration of the event exceeds the long-duration threshold. The value
+ of this threshold is assumed to be provisioned in the MG, but, like
+ the T, L, and S timers, can be overridden by specification within the
+ DigitMap.
+
+ 7.1.14.4 DigitMap Completion Event
+
+ A digit map is active while the Events descriptor which invoked it is
+ active and it has not completed. A digit map completes when:
+
+
+ Groves et al Expires - October 2003 [Page 43]
+ Megaco Protocol version 2 April 2003
+
+
+ - a timer has expired; or
+
+ - an alternative event sequence has been matched and no other
+ alternative event sequence in the digit map could be matched
+ through detection of an additional event (unambiguous match); or
+
+ - an event has been detected such that a match to a complete
+ alternative event sequence of the digit map will be impossible no
+ matter what additional events are received.
+
+ Upon completion, a digit map completion event as defined in the
+ package providing the events being mapped into the digit map shall be
+ generated. At that point the digit map is deactivated. Subsequent
+ events in the package are processed as follows:
+
+ - If EventBufferControl is ON, subsequent digit events are processed
+ in the same way as any other events;
+
+ - If EventBufferControl is OFF, if the active EventsDescriptor did
+ not change, and if individual digit events are not enabled within
+ that descriptor, then digit buffering will be initiated.
+ Buffering will continue until the buffering time specified in the
+ original digit map completion event has expired or until the
+ active EventsDescriptor is replaced.
+
+ The digit buffer shall take the logical form of a dial string which
+ includes the digit characters as represented in the digit map,
+ possibly preceded by 'Z'. The threshold value of tone duration used
+ to identify long events shall be the same as that used with the most
+ recently completed digit map.
+
+ Buffering time defaults to zero (no buffering) unless explicitly set
+ otherwise within the digit map completion event. If buffering ceases
+ due to buffering timer expiry, the contents of the digit buffer are
+ discarded.
+
+ If buffering was stopped by a new EventsDescriptor, then if that
+ EventsDescriptor contains a new digit map completion event from the
+ same package as the previous one, any buffered digits are processed
+ against the digit map as described below. Buffered digits not
+ consumed by the new digit map are handled as if they had were
+ observed after that map completed.
+
+ If instead the new EventsDescriptor enables the reporting of
+ individual digit events, the entire set of buffered digits shall
+ immediately be processed, the applicable events reported, and the
+ buffer cleared.
+
+
+
+
+ Groves et al Expires - October 2003 [Page 44]
+ Megaco Protocol version 2 April 2003
+
+
+ Finally, if the new EventsDescriptor enables neither a digit map
+ completion event nor the reporting of individual digit events from
+ the package concerned, the buffer contents are discarded and
+ buffering is terminated.
+
+ 7.1.14.5 DigitMap Procedures
+
+ Pending completion, successive events shall be processed according to
+ the following rules:
+
+ 1) The "current dial string", an internal variable, is initially
+ empty. The set of candidate alternative event sequences includes
+ all of the alternatives specified in the digit map.
+
+ 2) At each step, if buffered digits are available, the oldest one
+ (with possible accompanying long digit (Z) qualifier) is removed
+ from the buffer and processing moves to the next step as if the
+ digit event had just been observed. Otherwise a timer is set to
+ wait for the next event, based either on the default timing rules
+ given above or on explicit timing specified in one or more
+ alternative event sequences. If the timer expires and a member of
+ the candidate set of alternatives is fully satisfied, a timeout
+ completion with full match is reported. If the timer expires and
+ part or none of any candidate alternative is satisfied, a timeout
+ completion with partial match is reported. In either case, if the
+ digit map completion event allows for detailed timeout reporting,
+ the reported dial string will end with 'L', 'S', or 'T' as
+ appropriate.
+
+ 3) If an event is detected before the timer expires, it is mapped to
+ a digit string symbol and provisionally added to the end of the
+ current dial string. The duration of the event (long or not long)
+ is noted if and only if this is relevant in the current symbol
+ position (because at least one of the candidate alternative event
+ sequences includes the "Z" modifier at this position in the
+ sequence).
+
+ 4) The current dial string is compared to the candidate alternative
+ event sequences. If and only if a sequence expecting a long-
+ duration event at this position is matched (i.e. the event had
+ long duration and met the specification for this position), then
+ any alternative event sequences not specifying a long duration
+ event at this position are discarded, and the current dial string
+ is modified by inserting a "Z" in front of the symbol representing
+ the latest event. Any sequence expecting a long-duration event at
+ this position but not matching the observed event is discarded
+ from the candidate set. If alternative event sequences not
+ specifying a long duration event in the given position remain in
+ the candidate set after application of the above rules, the
+
+
+ Groves et al Expires - October 2003 [Page 45]
+ Megaco Protocol version 2 April 2003
+
+
+ observed event duration is treated as irrelevant in assessing
+ matches to them.
+
+ 5) If exactly one candidate remains and it has been fully matched, a
+ completion event is generated indicating an unambiguous match. If
+ no candidates remain, the latest event is removed from the current
+ dial string and a completion event is generated indicating full
+ match if one of the candidates from the previous step was fully
+ satisfied before the latest event was detected, or partial match
+ otherwise. The event removed from the current dial string will
+ then be reported a separate event, buffered, or discarded
+ according to the rules described in the previous section. This
+ statement is qualified as follows:
+
+ a) The digit map completion event may specify that the removed
+ event be reported as a parameter of the completion event. This
+ occurs independently of subsequent processing of the digit
+ event.
+
+ b) The digit map completion event may specify that the extra digit
+ SHOULD be discarded. In this case, it is discarded
+ immediately. Any buffering or other processing applies only to
+ subsequent events.
+
+ 6) If no completion event is reported out of step 5, processing
+ returns to step 2.
+
+ 7.1.14.6 DigitMap Activation
+
+ A digit map is activated whenever a new Event descriptor is applied
+ to the Termination or embedded Event descriptor is activated, that
+ Event descriptor contains a digit map completion event. The digit map
+ completion event contains an eventDM field in the requested actions
+ field. Each new activation of a digit map begins at step 1 of the
+ above procedure, with a clear current dial string. Any previous
+ contents of the current dial string from an earlier activation are
+ lost.
+
+ A digit map completion event that does not contain an eventDM field
+ in its requested actions field is considered an error. Upon receipt
+ of such an event in an EventsDescriptor, a MG shall respond with an
+ error reponse, including Error 457 - "Missing parameter in signal or
+ event".
+
+ 7.1.14.7 Interaction Of DigitMap and Event Processing
+
+ While the digit map is activated, detection is enabled for all events
+ defined in the package containing the specified digit map completion
+ event. Normal event behaviour (e.g. stopping of signals unless the
+
+
+ Groves et al Expires - October 2003 [Page 46]
+ Megaco Protocol version 2 April 2003
+
+
+ digit completion event has the KeepActive flag enabled) continues to
+ apply for each such event detected, except that:
+
+ - the events in the package containing the specified digit map
+ completion event other than the completion event itself are not
+ individually notified and have no side-effects unless separately
+ enabled; and
+
+ - an event that triggers a partial match completion event is not
+ recognized and therefore has no side effects until reprocessed
+ following the recognition of the digit map completion event.
+ Similarly buffered digit events are not recognized and have no
+ side effects until processed.
+
+ 7.1.14.8 Wildcards
+
+ Note that if a package contains a digit map completion event, then an
+ event specification consisting of the package name with a wildcarded
+ ItemID (Property Name) will activate a digit map; to that end, the
+ event specification must include an eventDM field according to
+ section 7.1.14.6. If the package also contains the digit events
+ themselves, this form of event specification will cause the
+ individual events to be reported to the MGC as they are detected.
+
+ 7.1.14.9 Example
+
+ As an example, consider the following dial plan:
+
+ 0 Local operator
+
+ 00 Long-distance operator
+
+ xxxx Local extension number (starts
+ with 1-7)
+
+ 8xxxxxxx Local number
+
+ #xxxxxxx Off-site extension
+
+ *xx Star services
+
+ 91xxxxxxxxxx Long-distance number
+
+ 9011 + up to 15 digits International number
+
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 47]
+ Megaco Protocol version 2 April 2003
+
+
+ If the DTMF detection package described in E.6 is used to collect the
+ dialled digits, then the dialling plan shown above results in the
+ following digit map:
+
+ (0| 00|[1-7]xxx|8xxxxxxx|Fxxxxxxx|Exx|91xxxxxxxxxx|9011x.)
+
+ 7.1.15 Statistics descriptor
+
+ The Statistics Descriptor provides information describing the status
+ and usage of a Termination during its existence within a specific
+ Context. There is a set of standard statistics kept for each
+ Termination where appropriate (number of octets sent and received for
+ example). The particular statistical properties that are reported for
+ a given Termination are determined by the Packages realized by the
+ Termination. By default, statistics are reported when the Termination
+ is Subtracted from the Context. This behaviour can be overridden by
+ including an empty AuditDescriptor in the Subtract command.
+ Statistics may also be returned from the AuditValue command, or any
+ Add/Move/Modify command using the Audit descriptor.
+
+ Statistics are cumulative; reporting Statistics does not reset them.
+ Statistics are reset when a Termination is Subtracted from a Context.
+
+ 7.1.16 Packages descriptor
+
+ Used only with the AuditValue command, the PackageDescriptor returns
+ a list of Packages realized by the Termination.
+
+ 7.1.17 ObservedEvents descriptor
+
+ ObservedEvents is supplied with the Notify command to inform the MGC
+ of which event(s) were detected. Used with the AuditValue command,
+ the ObservedEventsDescriptor returns events in the event buffer which
+ have not been Notified. ObservedEvents contains the RequestIdentifier
+ of the EventsDescriptor that triggered the notification, the event(s)
+ detected, optionally the detection time(s) and any parameters of the
+ observed event. Detection times are reported with a precision of
+ hundredths of a second.
+
+ 7.1.18 Topology descriptor
+
+ A Topology descriptor is used to specify flow directions between
+ Terminations in a Context. Contrary to the descriptors in previous
+ subclauses, the Topology descriptor applies to a Context instead of a
+ Termination. The default topology of a Context is that each
+ Termination's transmission is received by all other Terminations. The
+ Topology descriptor is optional to implement. An MG that does not
+ support Topology descriptors, but receives a command containing one,
+ returns Error 444 - "Unsupported or unknown descriptor", and
+
+
+ Groves et al Expires - October 2003 [Page 48]
+ Megaco Protocol version 2 April 2003
+
+
+ optionally includes a string containing the name of the unsupported
+ Descriptor ("Topology") in the error text in the error descriptor.
+
+ The Topology descriptor occurs before the commands in an action. It
+ is possible to have an action containing only a Topology descriptor,
+ provided that the Context to which the action applies already exists.
+
+ A Topology descriptor consists of a sequence of tuples of associated
+ terminations of the form (T1, T2, association[,StreamId]). T1 and T2
+ specify Terminations within the Context, possibly using the ALL or
+ CHOOSE wildcard. If the optional StreamId field is used, the
+ association applies only to the particular stream between T1 and T2
+ labeled by the StreamId. If the StreamId field is omitted, the
+ topology applies to all streams in the termination. The association
+ specifies how media flows between these two Terminations as follows.
+
+ - (T1, T2, isolate) means that the Terminations matching T2 do not
+ receive media from the Terminations matching T1, nor vice versa.
+
+ - (T1, T2, oneway) means that the Terminations that match T2 receive
+ media from the Terminations matching T1, but not vice versa. In
+ this case use of the ALL wildcard such that there are Terminations
+ that match both T1 and T2 is not allowed.
+
+ - (T1, T2, bothway) means that the Terminations matching T2 receive
+ media from the Terminations matching T1, and vice versa. In this
+ case it is allowed to use wildcards such that there are
+ Terminations that match both T1 and T2. However, if there is a
+ Termination that matches both, no loopback is introduced.
+
+ CHOOSE wildcards may be used in T1 and T2 as well, under the
+ following restrictions:
+
+ - the action (see clause 8) of which the topology descriptor is part
+ contains an Add command in which a CHOOSE wildcard is used;
+
+ - if a CHOOSE wildcard occurs in T1 or T2, then a partial name SHALL
+ NOT be specified.
+
+ The CHOOSE wildcard in a Topology descriptor matches the
+ TerminationID that the MG assigns in the first Add command that uses
+ a CHOOSE wildcard in the same action. An existing Termination that
+ matches T1 or T2 in the Context to which a Termination is added, is
+ connected to the newly added Termination as specified by the Topology
+ descriptor. If a termination is not mentioned within a topology
+ descriptor, any topology associated with it remains unchanged. If,
+ however, a new termination is added into a context its association
+ with the other terminations within the context defaults to bothway,
+ unless a topology descriptor is given to change this (eg. if T3 is
+
+
+ Groves et al Expires - October 2003 [Page 49]
+ Megaco Protocol version 2 April 2003
+
+
+ added to a context with T1 and T2 with topology (T3, T1, oneway) it
+ will be connected bothway to T2).
+
+ If the topology is applied to one particular stream (T1, T2,
+ association, StreamId), the topology of other streams between the
+ terminations does not change.
+
+ A topology descriptor SHALL NOT include a combination of associations
+ between two terminations (Ti,Tj) with and without the optional
+ StreamID field, to avoid undefined behavior. For example (T1,T2,
+ bothway) and (T1,T2,isolate,S1) shall not appear in the same
+ descriptor. Upon receipt of such a topology descriptor, a MG shall
+ respond with an error response, including Error 421 - "Unknown action
+ or illegal combination of actions".
+
+ Figure 7, and the table following it and Figure 8 following it show
+ some examples of the effect of including topology descriptors in
+ actions. In these examples it is assumed that the topology
+ descriptors are applied in sequence.
+
+ +------------------+ +------------------+ +------------------+
+ | +----+ | | +----+ | | +----+ |
+ | | T2 | | | | T2 | | | | T2 | |
+ | +----+ | | +----+ | | +----+ |
+ | ^ ^ | | ^ | | ^ |
+ | | | | | | | | | |
+ | +--+ +--+ | | +---+ | | +--+ |
+ | | | | | | | | | |
+ | v v | | v | | | |
+ | +----+ +----+ | | +----+ +----+ | | +----+ +----+ |
+ | | T1 |<-->| T3 | | | | T1 |<-->| T3 | | | | T1 |<-->| T3 | |
+ | +----+ +----+ | | +----+ +----+ | | +----+ +----+ |
+ +------------------+ +------------------+ +------------------+
+ 1. No Topology Desc. 2. T1, T2, Isolate 3. T3, T2, Oneway
+
+ +------------------+ +------------------+ +------------------+
+ | +----+ | | +----+ | | +----+ |
+ | | T2 | | | | T2 | | | | T2 | |
+ | +----+ | | +----+ | | +----+ |
+ | | | | ^ | | ^ ^ |
+ | | | | | | | | | |
+ | +--+ | | +---+ | | +--+ +--+ |
+ | | | | | | | | | |
+ | v | | v | | v v |
+ | +----+ +----+ | | +----+ +----+ | | +----+ +----+ |
+ | | T1 |<-->| T3 | | | | T1 |<-->| T3 | | | | T1 |<-->| T3 | |
+ | +----+ +----+ | | +----+ +----+ | | +----+ +----+ |
+ +------------------+ +------------------+ +------------------+
+ 4. T2, T3 oneway 5. T2, T3 bothway 6. T1, T2 bothway
+
+
+ Groves et al Expires - October 2003 [Page 50]
+ Megaco Protocol version 2 April 2003
+
+
+
+ Figure 7: Example topologies
+ Note: the direction of the arrow indicates the direction of flow
+
+
+ Topology Description
+
+ 1 No topology descriptors
+
+ When no topology descriptors are included, all
+ Terminations have a bothway connection to all other
+ Terminations.
+
+ 2 T1, T2 Isolate
+
+ Removes the connection between T1 and T2. T3 has a
+ bothway connection with both T1 and T2. T1 and T2
+ have bothway connection to T3.
+
+ 3 T3, T2 oneway
+
+ A oneway connection from T3 to T2 (i.e. T2 receives
+ media flow from T3). A bothway connection between T1
+ and T3.
+
+ 4 T2, T3 oneway
+
+ A oneway connection between T2 to T3. T1 and T3
+ remain bothway connected
+
+ 5 T2, T3 bothway
+
+ T2 is bothway connected to T3. This results in the
+ same as 2.
+
+ 6 T1, T2 bothway (T2, T3 bothway and T1, T3 bothway
+ may be implied or explicit). All Terminations have a
+ bothway connection to all other Terminations.
+
+
+ +----+ +----+ +----+
+ | T2 | | T2 | | T2 |
+ +----+ +----+ +----+
+ //\\ //\\ //\\
+ // \\ // \\ // \\
+ 1//2 1\\2 1//2 1\\2 1//2 1\\2
+ +---+ +---+ +---+ +---+ +---+ +---+
+ | | 1 | | | | 1 | | | | 1 | |
+
+
+ Groves et al Expires - October 2003 [Page 51]
+ Megaco Protocol version 2 April 2003
+
+
+ | |<->| | | |<->| | | |<--| |
+ |T1 | |T3 | |T1 | |T3 | |T1 | |T3 |
+ | | 2 | | | | 2 | | | | 2 | |
+ | |<->| | | |-->| | | |-->| |
+ | | | | | | | | | | | |
+ +---+ +---+ +---+ +---+ +---+ +---+
+
+ 1. No Topology Desc. 2. T1,T3, oneway,2 3. T3, T1,oneway,1
+
+ Figure 8: Example Topology at stream level
+
+
+
+ A oneway connection must be implemented in such a way that the other
+ Terminations in the Context are not aware of the change in topology.
+
+ 7.1.19 Error Descriptor
+
+ If a responder encounters an error when processing a transaction
+ request, it must include an error descriptor in its response. A
+ Notify request may contain an error descriptor as well.
+
+ An error descriptor consists of an IANA-registered error code,
+ optionally accompanied by an error text. H.248.8 contains a list of
+ valid error codes and error descriptions.
+
+ An error descriptor shall be specified at the "deepest level" that is
+ semantically appropriate for the error being described and that is
+ possible given any parsing problems with the original request. An
+ error descriptor may refer to a syntactical construct other than
+ where it appears. For example, Error 422 - "Syntax Error in Action",
+ could appear within a command even though it refers to the larger
+ construct - the action - and not the particular command within which
+ it appears.
+
+
+ 7.2 Command Application Programming Interface
+
+ Following is an Application Programming Interface (API) describing
+ the Commands of the protocol. This API is shown to illustrate the
+ Commands and their parameters and is not intended to specify
+ implementation (e.g. via use of blocking function calls). It
+ describes the input parameters in parentheses after the command name
+ and the return values in front of the Command. This is only for
+ descriptive purposes; the actual Command syntax and encoding are
+ specified in later subclauses. The order of parameters to commands is
+ not fixed. Descriptors may appear as parameters to commands in any
+ order. The descriptors SHALL be processed in the order in which they
+ appear.
+
+
+ Groves et al Expires - October 2003 [Page 52]
+ Megaco Protocol version 2 April 2003
+
+
+ Any reply to a command may contain an error descriptor; the API does
+ not specifically show this.
+
+ All parameters enclosed by square brackets ([. . .]) are considered
+ optional.
+
+ 7.2.1 Add
+
+ The Add Command adds a Termination to a Context.
+
+ TerminationID
+ [,MediaDescriptor]
+ [,ModemDescriptor] (*)
+ [,MuxDescriptor]
+ [,EventsDescriptor]
+ [,SignalsDescriptor]
+ [,DigitMapDescriptor]
+ [,ObservedEventsDescriptor]
+ [,EventBufferDescriptor]
+ [,StatisticsDescriptor]
+ [,PackagesDescriptor]
+ Add( TerminationID
+ [, MediaDescriptor]
+ [, ModemDescriptor] (*)
+ [, MuxDescriptor]
+ [, EventsDescriptor]
+ [, EventBufferDescriptor]
+ [, SignalsDescriptor]
+ [, DigitMapDescriptor]
+ [, AuditDescriptor]
+ )
+
+ (*) ModemDescriptor has been deprecated in H.248.1 (05/2002).
+
+ The TerminationID specifies the Termination to be added to the
+ Context. The Termination is either created, or taken from the null
+ Context. If a CHOOSE wildcard is used in the TerminationID, the
+ selected TerminationID will be returned. Wildcards may be used in an
+ Add, but such usage would be unusual. If the wildcard matches more
+ than one TerminationID, all possible matches are attempted, with
+ results reported for each one. The order of attempts when multiple
+ TerminationIDs match is not specified.
+
+ The optional MediaDescriptor describes all media streams.
+
+ The optional MuxDescriptor specifies a multiplexer if applicable. For
+ convenience, if a Multiplex descriptor is present in an Add command
+ and lists any Terminations that are not currently in the Context,
+ such Terminations are added to the Context as if individual Add
+
+
+ Groves et al Expires - October 2003 [Page 53]
+ Megaco Protocol version 2 April 2003
+
+
+ commands listing the Terminations were invoked. If an error occurs on
+ such an implied Add, error 471 - Implied Add for Multiplex failure
+ shall be returned and further processing of the command shall cease.
+
+ The EventsDescriptor parameter is optional. If present, it provides
+ the list of events that SHOULD be detected on the Termination.
+
+ The EventBufferDescriptor parameter is optional. If present, it
+ provides the list of events that the MG is requested to detect and
+ buffer when EventBufferControl equals LockStep.
+
+ The SignalsDescriptor parameter is optional. If present, it provides
+ the list of signals that SHOULD be applied to the Termination.
+
+ The DigitMapDescriptor parameter is optional. If present, it defines
+ a DigitMap definition that may be used in an EventsDescriptor.
+
+ The AuditDescriptor is optional. If present, the command will return
+ descriptors as specified in the AuditDescriptor.
+
+ All descriptors that can be modified could be returned by MG if a
+ parameter was underspecified or overspecified. ObservedEvents,
+ Statistics, and Packages, and the EventBuffer descriptors are
+ returned only if requested in the AuditDescriptor.
+
+ Add SHALL NOT be used on a Termination with a serviceState of
+ "OutofService".
+
+ 7.2.2 Modify
+
+ The Modify Command modifies the properties of a Termination.
+
+ TerminationID
+ [,MediaDescriptor]
+ [,ModemDescriptor] (*)
+ [,MuxDescriptor]
+ [,EventsDescriptor]
+ [,SignalsDescriptor]
+ [,DigitMapDescriptor]
+ [,ObservedEventsDescriptor]
+ [,EventBufferDescriptor]
+ [,StatisticsDescriptor]
+ [,PackagesDescriptor]
+ Modify( TerminationID
+ [, MediaDescriptor]
+ [, ModemDescriptor] (*)
+ [, MuxDescriptor]
+ [, EventsDescriptor]
+ [, EventBufferDescriptor]
+
+
+ Groves et al Expires - October 2003 [Page 54]
+ Megaco Protocol version 2 April 2003
+
+
+ [, SignalsDescriptor]
+ [, DigitMapDescriptor]
+ [, AuditDescriptor]
+ )
+
+ (*) ModemDescriptor has been deprecated in H.248.1 (05/2002).
+
+
+
+ The TerminationID may be specific if a single Termination in the
+ Context is to be modified. Use of wildcards in the TerminationID may
+ be appropriate for some operations. If the wildcard matches more than
+ one TerminationID, all possible matches are attempted, with results
+ reported for each one. The order of attempts when multiple
+ TerminationIDs match is not specified. The CHOOSE option is an error,
+ as the Modify command may only be used on existing Terminations.
+
+ For convenience, if a Multiplex Descriptor is present in a Modify
+ command, then:
+
+ - if the new Multiplex Descriptor lists any Terminations that are
+ not currently in the Context, such Terminations are added to the
+ context as if individual Add commands listing the Terminations
+ were invoked.
+
+ - if any Terminations listed previously in the Multiplex Descriptor
+ are no longer present in the new Multiplex Descriptor, they are
+ subtracted from the context as if individual Subtract commands
+ listing the Terminations were invoked.
+
+ The remaining parameters to Modify are the same as those to Add.
+ Possible return values are the same as those to Add.
+
+ 7.2.3 Subtract
+
+ The Subtract Command disconnects a Termination from its Context and
+ returns statistics on the Termination's participation in the Context.
+
+ TerminationID
+ [,MediaDescriptor]
+ [,ModemDescriptor] (*)
+ [,MuxDescriptor]
+ [,EventsDescriptor]
+ [,SignalsDescriptor]
+ [,DigitMapDescriptor]
+ [,ObservedEventsDescriptor]
+ [,EventBufferDescriptor]
+ [,StatisticsDescriptor]
+ [,PackagesDescriptor]
+
+
+ Groves et al Expires - October 2003 [Page 55]
+ Megaco Protocol version 2 April 2003
+
+
+ Subtract(TerminationID
+ [, AuditDescriptor]
+ )
+
+ (*) ModemDescriptor has been deprecated in H.248.1 (05/2002).
+
+ TerminationID in the input parameters represents the Termination that
+ is being subtracted. The TerminationID may be specific or may be a
+ wildcard value indicating that all (or a set of related) Terminations
+ in the Context of the Subtract Command are to be subtracted. If the
+ wildcard matches more than one TerminationID, all possible matches
+ are attempted, with results reported for each one. The order of
+ attempts when multiple TerminationIDs match is not specified.
+
+ The use of CHOOSE in the TerminationID is an error, as the Subtract
+ command may only be used on existing Terminations.
+
+ ALL may be used as the ContextID as well as the TerminationId in a
+ Subtract, which would have the effect of deleting all Contexts,
+ deleting all ephemeral Terminations, and returning all physical
+ Terminations to Null Context. Subtract of a termination from the Null
+ Context is not allowed.
+
+ For convenience, if a multiplexing Termination is the object of a
+ Subtract command, then any bearer Terminations listed in its
+ Multiplex Descriptor are subtracted from the context as if individual
+ Subtract commands listing the Terminations were invoked.
+
+ By default, the Statistics parameter is returned to report
+ information collected on the Termination or Terminations specified in
+ the Command. The information reported applies to the Termination's or
+ Terminations' existence in the Context from which it or they are
+ being subtracted.
+
+ The AuditDescriptor is optional. If present, the command will return
+ only those descriptors as specified in the AuditDescriptor, which may
+ be empty. If omitted, the Statistics descriptor is returned, by
+ default. Possible return values are the same as those to Add.
+
+ When a provisioned Termination is Subtracted from a Context, its
+ property values shall revert to:
+
+ - the default value, if specified for the property and not
+ overridden by provisioning;
+
+ - otherwise, the provisioned value.
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 56]
+ Megaco Protocol version 2 April 2003
+
+
+ 7.2.4 Move
+
+ The Move Command moves a Termination to another Context from its
+ current Context in one atomic operation. The Move command is the only
+ command that refers to a Termination in a Context different from that
+ to which the command is applied. The Move command shall not be used
+ to move Terminations to or from the null Context.
+
+ TerminationID
+ [,MediaDescriptor]
+ [,ModemDescriptor] (*)
+ [,MuxDescriptor]
+ [,EventsDescriptor]
+ [,SignalsDescriptor]
+ [,DigitMapDescriptor]
+ [,ObservedEventsDescriptor]
+ [,EventBufferDescriptor]
+ [,StatisticsDescriptor]
+ [,PackagesDescriptor]
+ Move( TerminationID
+ [, MediaDescriptor]
+ [, ModemDescriptor] (*)
+ [, MuxDescriptor]
+ [, EventsDescriptor]
+ [, EventBufferDescriptor]
+ [, SignalsDescriptor]
+ [, DigitMapDescriptor]
+ [, AuditDescriptor]
+ )
+
+ (*) ModemDescriptor has been deprecated in H.248.1 (05/2002).
+
+ The TerminationID specifies the Termination to be moved. It may be
+ wildcarded, but CHOOSE shall not be used in the TerminationID. If the
+ wildcard matches more than one TerminationID, all possible matches
+ are attempted, with results reported for each one. The order of
+ attempts when multiple TerminationIDs match is not specified. The
+ Context to which the Termination is moved is indicated by the target
+ ContextId in the Action. If the last remaining Termination is moved
+ out of a Context, the Context is deleted.
+
+ The Move command does not affect the properties of the Termination on
+ which it operates, except those properties explicitly modified by
+ descriptors included in the Move command. The AuditDescriptor with
+ the Statistics option, for example, would return statistics on the
+ Termination just prior to the Move. Possible descriptors returned
+ from Move are the same as for Add.
+
+
+
+
+ Groves et al Expires - October 2003 [Page 57]
+ Megaco Protocol version 2 April 2003
+
+
+ For convenience, if a multiplexing Termination is the object of a
+ Move command, then any bearer Terminations listed in its Multiplex
+ Descriptor are also moved as if individual Move commands listing the
+ Terminations were invoked.
+
+ Move SHALL NOT be used on a Termination with a serviceState of
+ "OutofService".
+
+ 7.2.5 AuditValue
+
+ The AuditValue Command returns the current values of properties,
+ events, signals and statistics associated with Terminations. An
+ AuditValue may request the contents of a descriptor or of a single
+ property, event, signal or statistics.
+
+ TerminationID
+ [,MediaDescriptor]
+ [,ModemDescriptor] (*)
+ [,MuxDescriptor]
+ [,EventsDescriptor]
+ [,SignalsDescriptor]
+ [,DigitMapDescriptor]
+ [,ObservedEventsDescriptor]
+ [,EventBufferDescriptor]
+ [,StatisticsDescriptor]
+ [,PackagesDescriptor]
+ AuditValue(TerminationID,
+ AuditDescriptor
+ )
+
+ (*) ModemDescriptor has been deprecated in H.248.1 (05/2002).
+
+ TerminationID may be specific or wildcarded. If the wildcard matches
+ more than one TerminationID, all possible matches are attempted, with
+ results reported for each one. The order of attempts when multiple
+ TerminationIDs match is not specified. If a wildcarded response is
+ requested, only one command return is generated, with the contents
+ containing the union of the values of all Terminations matching the
+ wildcard. This convention may reduce the volume of data required to
+ audit a group of Terminations. Use of CHOOSE is an error.
+
+ Descriptors or individual properties, signals, events and statistics
+ can be audited.
+
+ - An audit of a descriptor may be requested by identifying the
+ desired descriptor in the AuditDescriptor with no further
+ information.
+
+
+
+
+ Groves et al Expires - October 2003 [Page 58]
+ Megaco Protocol version 2 April 2003
+
+
+ - To audit an individual property in the media descriptor the
+ relevant stream ID (optional), group ID (optional) and propertyID
+ are included. The current value of the property is returned. Group
+ ID is used in the case where the local control Reserve Group flag
+ is used. Group ID 1 corresponds to the first group (session
+ decription) reserved, Group ID 2 the next group etcetera.
+
+ - To audit a signal the relevant signal list ID and/or signal ID are
+ provided. Only if the signal is active the values of all the
+ signal parameters are returned including: the keepactive
+ indication, signal type, duration, signal completion indication
+ and package defined properties.
+
+ - To audit an event, the relevant stream id (optional), eventID,
+ requestID (optional) are provided. The values of all the event
+ parameters are returned including: event actions and packaged
+ defined parameters.
+
+ - To audit a statistic the identity of the statistic is provided.
+ The current value of the statistic is returned. The statistic is
+ not reset.
+
+ - To audit a package the identity and version of the package is
+ provided. All properties, signals, events and statistics defined
+ in that particular package are returned with their current value.
+
+ It is possible to audit multiple individual items in one request.
+
+ If a descriptor audit is requested, the appropriate descriptors, with
+ the current values for the Termination, are returned from AuditValue.
+ Values appearing in multiple instances of a descriptor are defined to
+ be alternate values supported, with each parameter in a descriptor
+ considered independent.
+
+ ObservedEvents returns a list of events in the EventBuffer. If the
+ ObservedEventsDescriptor is audited while a DigitMap is active, the
+ returned ObservedEvents descriptor also includes a digit map
+ completion event that shows the current dial string but does not show
+ a Termination method.
+
+ EventBuffer returns the set of events and associated parameter values
+ currently enabled in the EventBufferDescriptor. PackagesDescriptor
+ returns a list of packages realized by the Termination.
+ DigitMapDescriptor returns the name or value of the current DigitMap
+ for the Termination. DigitMap requested in an AuditValue command with
+ TerminationID ALL returns all DigitMaps in the gateway. Statistics
+ returns the current values of all statistics being kept on the
+ Termination. Specifying an empty Audit descriptor results in only the
+ TerminationID being returned. This may be useful to get a list of
+
+
+ Groves et al Expires - October 2003 [Page 59]
+ Megaco Protocol version 2 April 2003
+
+
+ TerminationIDs when used with wildcard. Annexes A and B provide a
+ special syntax for presenting such a list in condensed form, such
+ that the AuditValue command tag does not have to be repeated for each
+ TerminationID.
+
+ AuditValue results depend on the Context, viz. specific, null, or
+ wildcarded. (Note that ContextID All does not include the null
+ Context.) The TerminationID may be specific, or wildcarded.
+
+ The following are examples of what is returned in case the context
+ and/or the termination is wildcarded and a wildcarded response has
+ been specified.
+
+ Assume that the gateway has 4 terminations: t1/1, t1/2, t2/1 and
+ t2/2. Assume that terminations t1/* have implemented packages aaa and
+ bbb and that terminations t2/* have implemented packages ccc and ddd.
+ Assume that Context 1 has t1/1 and t2/1 in it and that Context 2 has
+ t1/2 and t2/2 in it.
+
+ The command:
+
+ Context=1{AuditValue=t1/1{Audit{Packages}}}
+
+ Returns:
+
+ Context=1{AuditValue=t1/1{Packages{aaa,bbb}}}
+
+ The command:
+
+ Context=*{AuditValue=t2/*{Audit{Packages}}}
+
+ Returns:
+
+ Context=1{AuditValue=t2/1{Packages{ccc,ddd}}},
+ Context=2{AuditValue=t2/2{Packages{ccc,ddd}}}
+
+ The command:
+
+ Context=*{W-AuditValue=t1/*{Audit{Packages}}}
+
+ Returns:
+
+ Context=*{W-AuditValue=t1/*{Packages{aaa,bbb}}}
+
+ Note: A wildcard response may also be used for other commands such as
+ Subtract.
+
+ The following illustrates other information that can be obtained with
+ the AuditValue Command:
+
+
+ Groves et al Expires - October 2003 [Page 60]
+ Megaco Protocol version 2 April 2003
+
+
+ ContextID TerminationID Information Obtained
+
+ Specific wildcard Audit of matching Terminations in a
+ Context
+
+ Specific specific Audit of a single Termination in a
+ Context
+
+ Null Root Audit of Media Gateway state and
+ events
+
+ Null wildcard Audit of all matching Terminations
+ in the null Context
+
+ Null specific Audit of a single Termination
+ outside of any Context
+
+ All wildcard Audit of all matching Terminations
+ and the Context to which they are
+ associated
+
+ All Root List of all ContextIds (the
+ ContextID list SHOULD be returned by
+ using multiple action replies, each
+ containing a ContextID from the
+ list)
+
+ All Specific (Non-null) ContextID in which the
+ Termination currently exists
+
+
+
+ 7.2.6 AuditCapabilities
+
+ The AuditCapabilities Command returns the possible values of
+ properties, events, signals and statistics associated with
+ Terminations. An AuditCapabilities may be requested for the contents
+ of a descriptor or for a single property, event, signal or
+ statistics.
+
+ TerminationID
+ [,MediaDescriptor]
+ [,ModemDescriptor](*)
+ [,MuxDescriptor]
+ [,EventsDescriptor]
+ [,SignalsDescriptor]
+ [,ObservedEventsDescriptor]
+ [,EventBufferDescriptor]
+
+
+ Groves et al Expires - October 2003 [Page 61]
+ Megaco Protocol version 2 April 2003
+
+
+ [,StatisticsDescriptor]
+ AuditCapabilities(
+ TerminationID,
+ AuditDescriptor
+ )
+
+ (*) ModemDescriptor has been deprecated in H.248.1 (02/2002).
+
+ Descriptors or individual properties, signals, events and statistics
+ can be audited.
+
+ - An audit of a entire descriptor may be requested by identifying
+ the desired descriptor in the AuditDescriptor with no further
+ information.
+
+ - To audit an individual property in the media descriptor the
+ relevant stream ID (optional) and propertyID are included. A list
+ of possible values of the property are returned.
+
+ - To audit a signal the relevant signal list ID and/or signal ID are
+ provided. A list of possible values associated with each signal
+ parameter is returned (including: the keepactive indication,
+ signal type, duration, signal completion indication and package
+ defined properties).
+
+ - To audit an event the relevant stream id (optional), eventID,
+ requestID (optional) are provided. A list of possible values
+ associated with each event parameter is returned (including: event
+ actions and packaged defined parameters).
+
+ - To audit a statistic the identity of statistic is provided. The
+ possible values of the statistic are returned. The statistic is
+ not reset.
+
+ If a descriptor audit is requested the appropriate descriptors, with
+ the possible values for the Termination, are returned from
+ AuditCapabilities. Descriptors may be repeated where there are
+ multiple possible values.
+
+ If a wildcarded response is requested, only one command return is
+ generated, with the contents containing the union of the values of
+ all Terminations matching the wildcard. This convention may reduce
+ the volume of data required to audit a group of Terminations.
+
+ If a property, signal, event or statistic is audited, the appropriate
+ properties, signals events, and statistics with the capabilities of
+ the Termination are returned from AuditCapabilities.
+
+
+
+
+ Groves et al Expires - October 2003 [Page 62]
+ Megaco Protocol version 2 April 2003
+
+
+ Interpretation of what capabilities are requested for various values
+ of ContextID and TerminationID is the same as in AuditValue.
+
+ The EventsDescriptor returns the list of possible events on the
+ Termination together with the list of all possible values for the
+ EventsDescriptor Parameters. EventBufferDescriptor returns the same
+ information as EventsDescriptor. The SignalsDescriptor returns the
+ list of possible signals that could be applied to the Termination
+ together with the list of all possible values for the Signals
+ Parameters. StatisticsDescriptor returns the names of the statistics
+ being kept on the termination. ObservedEventsDescriptor returns the
+ names of active events on the Termination. DigitMap and Packages are
+ not legal in AuditCapability.
+
+ The following illustrates other information that can be obtained with
+ the AuditCapabilties Command:
+
+ ContextID TerminationID Information Obtained
+
+ Specific wildcard Audit of matching Terminations in
+ a Context
+
+ Specific specific Audit of a single Termination in a
+ Context
+
+ Null Root Audit of MG state and events
+
+ Null wildcard Audit of all matching Terminations
+ in the Null Context
+
+ Null specific Audit of a single Termination
+ outside of any Context
+
+ All wildcard Audit of all matching Terminations
+ and the Context to which they are
+ associated
+
+ All Root Same as for AuditValue
+
+ All Specific Same as for AuditValue
+
+
+
+ 7.2.7 Notify
+
+ The Notify Command allows the Media Gateway to notify the Media
+ Gateway Controller of events occurring within the Media Gateway.
+
+
+
+ Groves et al Expires - October 2003 [Page 63]
+ Megaco Protocol version 2 April 2003
+
+
+ TerminationID
+ Notify(TerminationID,
+ ObservedEventsDescriptor,
+ [ErrorDescriptor]
+ )
+
+ The TerminationID parameter specifies the Termination issuing the
+ Notify Command. The TerminationID shall be a fully qualified name.
+
+ The ObservedEventsDescriptor contains the RequestID and a list of
+ events that the Media Gateway detected in the order that they were
+ detected. Each event in the list is accompanied by parameters
+ associated with the event and optionally an indication of the time
+ that the event was detected. Procedures for sending Notify commands
+ with RequestID equal to 0 are for further study.
+
+ Notify Commands with RequestID not equal to 0 shall occur only as the
+ result of detection of an event specified by an Events descriptor
+ which is active on the Termination concerned.
+
+ The RequestID returns the RequestID parameter of the EventsDescriptor
+ that triggered the Notify Command. It is used to correlate the
+ notification with the request that triggered it. The events in the
+ list must have been requested via the triggering EventsDescriptor or
+ embedded events descriptor unless the RequestID is 0 (which is for
+ further study).
+
+ The ErrorDescriptor may be sent in the Notify Command as a result of
+ Error 518 - "Event buffer full".
+
+ 7.2.8 ServiceChange
+
+ The ServiceChange Command allows the Media Gateway to notify the
+ Media Gateway Controller that a Termination or group of Terminations
+ is about to be taken out of service or has just been returned to
+ service. The Media Gateway Controller may indicate that
+ Termination(s) shall be taken out of or returned to service. The
+ Media Gateway may notify the MGC that the capability of a Termination
+ has changed. It also allows a MGC to hand over control of a MG to
+ another MGC.
+
+ TerminationID,
+ [ServiceChangeDescriptor]
+ ServiceChange(TerminationID,
+ ServiceChangeDescriptor
+ )
+
+ The TerminationID parameter specifies the Termination(s) that are
+ taken out of or returned to service. Wildcarding of Termination names
+
+
+ Groves et al Expires - October 2003 [Page 64]
+ Megaco Protocol version 2 April 2003
+
+
+ is permitted, with the exception that the CHOOSE mechanism shall not
+ be used. Use of the "Root" TerminationID indicates a ServiceChange
+ affecting the entire Media Gateway.
+
+ The ServiceChangeDescriptor contains the following parameters as
+ required:
+
+ - ServiceChangeMethod
+ - ServiceChangeReason
+ - ServiceChangeDelay
+ - ServiceChangeAddress
+ - ServiceChangeProfile
+ - ServiceChangeVersion
+ - ServiceChangeMgcId
+ - TimeStamp
+ - ServiceChangeInfo
+
+ The ServiceChangeMethod parameter specifies the type of ServiceChange
+ that will or has occurred:
+
+ 1) Graceful - indicates that the specified Terminations will be taken
+ out of service after the specified ServiceChangeDelay; established
+ connections are not yet affected, but the Media Gateway Controller
+ SHOULD refrain from establishing new connections and SHOULD
+ attempt to gracefully tear down existing connections on the
+ Termination(s) affected by the serviceChange command. The MG
+ SHOULD set Termination serviceState at the expiry of
+ ServiceChangeDelay or the removal of the Termination from an
+ active Context (whichever is first), to "out of service".
+
+ 2) Forced - indicates that the specified Terminations were taken
+ abruptly out of service and any established connections associated
+ with them may be lost. For non-Root terminations, the MGC is
+ responsible for cleaning up the Context (if any) with which the
+ failed Termination is associated. At a minimum the Termination
+ shall be subtracted from the Context. The Termination serviceState
+ SHOULD be "out of service". For the root termination, the MGC can
+ assume that all connections are lost on the MG and thus can
+ consider that all the terminations have been subtracted.
+
+ 3) Restart - indicates that service will be restored on the specified
+ Terminations after expiration of the ServiceChangeDelay. The
+ serviceState SHOULD be set to "inService" upon expiry of
+ ServiceChangeDelay.
+
+ 4) Disconnected - always applied with the Root TerminationID,
+ indicates that the MG lost communication with the MGC, but it was
+ subsequently restored to the same MGC (possibly after trying other
+ MGCs on a pre-provisioned list). Since MG state may have changed,
+
+
+ Groves et al Expires - October 2003 [Page 65]
+ Megaco Protocol version 2 April 2003
+
+
+ the MGC may wish to use the Audit command to resynchronize its
+ state with the MG's.
+
+ 5) Handoff - sent from the MGC to the MG, this reason indicates that
+ the MGC is going out of service and a new MGC association must be
+ established. Sent from the MG to the MGC, this indicates that the
+ MG is attempting to establish a new association in accordance with
+ a Handoff received from the MGC with which it was previously
+ associated.
+
+ 6) Failover - sent from MG to MGC to indicate the primary MG is out
+ of service and a secondary MG is taking over. This serviceChange
+ method is also sent from the MG to the MGC when the MG detects
+ that MGC has failed.
+
+ 7) Another value whose meaning is mutually understood between the MG
+ and the MGC.
+
+ The ServiceChangeReason parameter specifies the reason why the
+ ServiceChange has or will occur. It consists of an alphanumeric token
+ (IANA registered) and, optionally, an explanatory string.
+
+ The optional ServiceChangeAddress parameter specifies the address
+ (e.g. IP port number for IP networks) to be used for subsequent
+ communications. It can be specified in the input parameter descriptor
+ or the returned result descriptor. ServiceChangeAddress and
+ ServiceChangeMgcId parameters must not both be present in the
+ ServiceChangeDescriptor or the ServiceChangeResultDescriptor. The
+ ServiceChangeAddress provides an address to be used within the
+ Context of the association currently being negotiated, while the
+ ServiceChangeMgcId provides an alternate address where the MG SHOULD
+ seek to establish another association. Note that the use of
+ ServiceChangeAddress is not encouraged. MGCs and MGs must be able to
+ cope with the ServiceChangeAddress being either a full address or
+ just a port number in the case of TCP transports.
+
+ The optional ServiceChangeDelay parameter is expressed in seconds. If
+ the delay is absent or set to zero, the delay value SHOULD be
+ considered to be null. In the case of a "graceful"
+ ServiceChangeMethod, a null delay indicates that the Media Gateway
+ Controller SHOULD wait for the natural removal of existing
+ connections and SHOULD not establish new connections. For "graceful"
+ only, a null delay means the MG must not set serviceState "out of
+ service" until the Termination is in the null Context.
+
+ The optional ServiceChangeProfile parameter specifies the Profile (if
+ any) of the protocol supported. The ServiceChangeProfile includes the
+ version of the profile supported.
+
+
+
+ Groves et al Expires - October 2003 [Page 66]
+ Megaco Protocol version 2 April 2003
+
+
+ The optional ServiceChangeVersion parameter contains the protocol
+ version and is used if protocol version negotiation occurs (see
+ 11.3).
+
+ The optional TimeStamp parameter specifies the actual time as kept by
+ the sender. As such, it is not necessarily absolute time according
+ to, for example, a local time zone - it merely establishes an
+ arbitrary starting time against which all future timestamps
+ transmitted by a sender during this association shall be compared. It
+ can be used by the responder to determine how its notion of time
+ differs from that of its correspondent. TimeStamp is sent with a
+ precision of hundredths of a second.
+
+ The optional Extension parameter may contain any value whose meaning
+ is mutually understood by the MG and MGC.
+
+ The optional ServiceChangeInfo parameter may contain the
+ package/property/signal/event/statistic of the reason that caused the
+ service change.
+
+ A ServiceChange Command specifying the "Root" for the TerminationID
+ and ServiceChangeMethod equal to Restart is a registration command by
+ which a Media Gateway announces its existence to the Media Gateway
+ Controller. The Media Gateway may also register by specifying the
+ "Root" for the TerminationID and ServiceChangeMethod equal to
+ Failover when the MG detects MGC failures. The Media Gateway is
+ expected to be provisioned with the name of one primary and
+ optionally some number of alternate Media Gateway Controllers.
+ Acknowledgement of the ServiceChange Command completes the
+ registration process, except when the MGC has returned an alternative
+ ServiceChangeMgcId as described in the following paragraph. The MG
+ may specify the transport ServiceChangeAddress to be used by the MGC
+ for sending messages in the ServiceChangeAddress parameter in the
+ input ServiceChangeDescriptor. The MG may specify an address in the
+ ServiceChangeAddress parameter of the ServiceChange request, and the
+ MGC may also do so in the ServiceChange reply. In either case, the
+ recipient must use the supplied address as the destination for all
+ subsequent transaction requests within the association. At the same
+ time, as indicated in clause 9, transaction replies and pending
+ indications must be sent to the address from which the corresponding
+ requests originated. This must be done even if it implies extra
+ messaging because commands and responses cannot be packed together.
+ The TimeStamp parameter shall be sent with a registration command and
+ its response.
+
+ The Media Gateway Controller may return a ServiceChangeMgcId
+ parameter that describes the Media Gateway Controller that SHOULD
+ preferably be contacted for further service by the Media Gateway. In
+ this case the Media Gateway shall reissue the ServiceChange command
+
+
+ Groves et al Expires - October 2003 [Page 67]
+ Megaco Protocol version 2 April 2003
+
+
+ to the new Media Gateway Controller. The MGC specified in a
+ ServiceChangeMgcId, if provided, shall be contacted before any
+ further alternate MGCs. On a HandOff message from MGC to MG, the
+ ServiceChangeMgcId is the new MGC that will take over from the
+ current MGC.
+
+ The return from ServiceChange is empty except when the Root
+ terminationID is used. In that case it includes the following
+ parameters as required:
+
+ - ServiceChangeAddress, if the responding MGC wishes to specify a
+ new destination for messages from the MG for the remainder of the
+ association;
+
+ - ServiceChangeMgcId, if the responding MGC does not wish to sustain
+ an association with the MG;
+
+ - ServiceChangeProfile, if the responder wishes to negotiate the
+ profile to be used for the association. The profile (name and
+ version) is only returned in reply in the case that the MGC cannot
+ support the specified profiles in the ServiceChangeRequest. The
+ returned reply shall indicate the profile and version supported or
+ "NoProfile" if no profile is supported. Upon reception of a
+ profile in the reply the MG may continue the relationship with the
+ current MGC or contact secondary MGCs and establish a relationship
+ with them. If the profile is not returned the MGC will use the
+ capabilities specified by the Profile indicated in the service
+ change request;
+
+ - ServiceChangeVersion, if the responder wishes to negotiate the
+ version of the protocol to be used for the association.
+
+ The following ServiceChangeReasons are defined. This list may be
+ extended by an IANA registration as outlined in 14.3.
+
+ 900 Service Restored
+ 901 Cold Boot
+ 902 Warm Boot
+ 903 MGC Directed Change
+ 904 Termination malfunctioning
+ 905 Termination taken out of service
+ 906 Loss of lower layer connectivity (e.g. downstream sync)
+ 907 Transmission Failure
+ 908 MG Impending Failure
+ 909 MGC Impending Failure
+ 910 Media Capability Failure
+ 911 Modem Capability Failure
+ 912 Mux Capability Failure
+ 913 Signal Capability Failure
+
+
+ Groves et al Expires - October 2003 [Page 68]
+ Megaco Protocol version 2 April 2003
+
+
+ 914 Event Capability Failure
+ 915 State Loss
+ 916 Packages Change
+ 917 Capability Change
+
+
+
+ 7.2.9 Manipulating and Auditing Context Attributes
+
+ The commands of the protocol as discussed in the preceding subclauses
+ apply to Terminations. This subclause specifies the processing of
+ Context attributes.
+
+ An action may contain instructions for the manipulation and auditing
+ of Context properties (see clause 8).
+
+ The MGC may audit a specific Context to determine the current value
+ of individual context properties. The MGC may determine the current
+ values for all existing (non-NULL) Contexts by specifying ContextID
+ ALL in the Audit request. If context attributes are added or have
+ been modified by the same action as the Audit request the value/s
+ returned shall be after the action has been applied.
+
+ The following illustrates information that can be obtained with a
+ context Audit:
+
+ ContextID TerminationID Audit
+
+ Specific Not Applicable Context attribute's value in the
+ specified context.
+
+ Null Not Applicable Not Allowed
+
+ All Not Applicable Current values for all existing
+ (non-NULL) Contexts by specifying
+ ContextID ALL in the Audit request.
+
+ A response for ContextID ALL is
+ presented through an actionReply
+ per context.
+
+
+
+ An action may also include a request to change the attributes of a
+ Context.
+
+ The Context properties that may be included in an action reply are
+ used to return information to a MGC. This can be information
+
+
+ Groves et al Expires - October 2003 [Page 69]
+ Megaco Protocol version 2 April 2003
+
+
+ requested by an audit of Context attributes or details of the effect
+ of manipulation of a Context.
+
+ If a MG receives an action which contains both a request to audit
+ context attributes and a request to manipulate those attributes, the
+ response SHALL include the values of the attributes after processing
+ the manipulation request.
+
+ 7.2.10 Generic Command Syntax
+
+ The protocol can be encoded in a binary format or in a text format.
+ MGCs SHOULD support both encoding formats. MGs may support both
+ formats.
+
+ The protocol syntax for the binary format of the protocol is defined
+ in Annex A. Annex C specifies the encoding of the Local and Remote
+ descriptors for use with the binary format.
+
+ A complete ABNF of the text encoding of the protocol per RFC 2234 is
+ given in Annex B. SDP is used as the encoding of the Local and Remote
+ descriptors for use with the text encoding as modified in 7.1.8.
+
+
+ 8 TRANSACTIONS
+
+ Commands between the Media Gateway Controller and the Media Gateway
+ are grouped into Transactions, each of which is identified by a
+ TransactionID. Transactions consist of one or more Actions. An Action
+ consists of a non-empty series of Commands, Context property
+ modifications, or Context property audits that are limited to
+ operating within a single Context. Consequently, each Action
+ typically specifies a ContextID. However, there are two circumstances
+ where a specific ContextID is not provided with an Action. One is the
+ case of modification of a Termination outside of a Context. The other
+ is where the controller requests the gateway to create a new Context.
+ Figure 9 is a graphic representation of the Transaction, Action and
+ Command relationships.
+
+ +----------------------------------------------------------+
+ | Transaction x |
+ | +----------------------------------------------------+ |
+ | | Action 1 | |
+ | | +---------+ +---------+ +---------+ +---------+ | |
+ | | | Command | | Command | | Command | | Command | | |
+ | | | 1 | | 2 | | 3 | | 4 | | |
+ | | +---------+ +---------+ +---------+ +---------+ | |
+ | +----------------------------------------------------+ |
+ | |
+
+
+
+ Groves et al Expires - October 2003 [Page 70]
+ Megaco Protocol version 2 April 2003
+
+
+ | +----------------------------------------------------+ |
+ | | Action 2 | |
+ | | +---------+ | |
+ | | | Command | | |
+ | | | 1 | | |
+ | | +---------+ | |
+ | +----------------------------------------------------+ |
+ | |
+ | +----------------------------------------------------+ |
+ | | Action 3 | |
+ | | +---------+ +---------+ +---------+ | |
+ | | | Command | | Command | | Command | | |
+ | | | 1 | | 2 | | 3 | | |
+ | | +---------+ +---------+ +---------+ | |
+ | +----------------------------------------------------+ |
+ +----------------------------------------------------------+
+
+ Figure 9: Transactions, Actions and Commands
+
+ Transactions are presented as TransactionRequests. Corresponding
+ responses to a TransactionRequest are received in a single reply,
+ possibly preceded by a number of TransactionPending messages (see
+ 8.2.3).
+
+ Transactions guarantee ordered Command processing. That is, Commands
+ within a Transaction are executed sequentially. Ordering of
+ Transactions is NOT guaranteed - transactions may be executed in any
+ order, or simultaneously.
+
+ At the first failing Command in a Transaction, processing of the
+ remaining Commands in that Transaction stops. If a command contains a
+ wildcarded TerminationID, the command is attempted with each of the
+ actual TerminationIDs matching the wildcard. A response within the
+ TransactionReply is included for each matching TerminationID, even if
+ one or more instances generated an error. If any TerminationID
+ matching a wildcard results in an error when executed, any commands
+ following the wildcarded command are not attempted.
+
+ Commands may be marked as "Optional" which can override this
+ behaviour - if a command marked as Optional results in an error,
+ subsequent commands in the Transaction will be executed. If a command
+ fails, the MG shall as far as possible restore the state that existed
+ prior to the attempted execution of the command before continuing
+ with command processing.
+
+ A TransactionReply includes the results for all of the Commands in
+ the corresponding TransactionRequest. The TransactionReply includes
+ the return values for the Commands that were executed successfully,
+ and the Command and error descriptor for any Command that failed.
+
+
+ Groves et al Expires - October 2003 [Page 71]
+ Megaco Protocol version 2 April 2003
+
+
+ TransactionPending is used to periodically notify the receiver that a
+ Transaction has not completed yet, but is actively being processed.
+
+ Applications SHOULD implement an application level timer per
+ transaction. Expiration of the timer SHOULD cause a retransmission of
+ the request. Receipt of a Reply SHOULD cancel the timer. Receipt of
+ Pending SHOULD restart the timer.
+
+ 8.1 Common parameters
+
+ 8.1.1 Transaction Identifiers
+
+ Transactions are identified by a TransactionID, which is assigned by
+ sender and is unique within the scope of the sender. A response
+ containing an error descriptor to indicate that the TransactionID is
+ missing in a request shall use TransactionID 0 in the corresponding
+ TransactionReply.
+
+ 8.1.2 Context Identifiers
+
+ Contexts are identified by a ContextID, which is assigned by the
+ Media Gateway and is unique within the scope of the Media Gateway.
+ The Media Gateway Controller shall use the ContextID supplied by the
+ Media Gateway in all subsequent Transactions relating to that
+ Context. The protocol makes reference to a distinguished value that
+ may be used by the Media Gateway Controller when referring to a
+ Termination that is currently not associated with a Context, namely
+ the null ContextID.
+
+ The CHOOSE wildcard is used to request that the Media Gateway create
+ a new Context.
+
+ The MGC may use the ALL wildcard to address all Contexts on the MG.
+ The null Context is not included when the ALL wildcard is used.
+
+ The MGC shall not use partially specified ContextIDs containing the
+ CHOOSE or ALL wildcards.
+
+ 8.2 Transaction Application Programming Interface
+
+ Following is an Application Programming Interface (API) describing
+ the Transactions of the protocol. This API is shown to illustrate the
+ Transactions and their parameters and is not intended to specify
+ implementation (e.g. via use of blocking function calls). It will
+ describe the input parameters and return values expected to be used
+ by the various Transactions of the protocol from a very high level.
+ Transaction syntax and encodings are specified in later subclauses.
+
+
+
+
+ Groves et al Expires - October 2003 [Page 72]
+ Megaco Protocol version 2 April 2003
+
+
+ 8.2.1 TransactionRequest
+
+ The TransactionRequest is invoked by the sender. There is one
+ Transaction per request invocation. A request contains one or more
+ Actions, each of which specifies its target Context and one or more
+ Commands per Context.
+
+ TransactionRequest(TransactionId {
+ ContextID {Command ... Command},
+ . . .
+ ContextID {Command ... Command } })
+
+ The TransactionID parameter must specify a value for later
+ correlation with the TransactionReply or TransactionPending response
+ from the receiver.
+
+ The ContextID parameter must specify a value to pertain to all
+ Commands that follow up to either the next specification of a
+ ContextID parameter or the end of the TransactionRequest, whichever
+ comes first.
+
+ The Command parameter represents one of the Commands mentioned in 7.2
+ (Command Application Programming Interface).
+
+ 8.2.2 TransactionReply
+
+ The TransactionReply is invoked by the receiver. There is one reply
+ invocation per transaction. A reply contains one or more Actions,
+ each of which must specify its target Context and one or more
+ Responses per Context. The TransactionReply is invoked by the
+ responder when it has processed the TransactionRequest.
+
+ A TransactionRequest has been processed:
+
+ - when all actions in that TransactionRequest have been processed;
+ or
+
+ - when an error is encountered in processing that
+ TransactionRequest, except when the error is in an optional
+ command.
+
+ A command has been processed when all descriptors in that command
+ have been processed.
+
+ A SignalsDescriptor is considered to have been processed when it has
+ been established that the descriptor is syntactically valid, the
+ requested signals are supported and they have been queued to be
+ applied.
+
+
+
+ Groves et al Expires - October 2003 [Page 73]
+ Megaco Protocol version 2 April 2003
+
+
+ An EventsDescriptor or EventBufferDescriptor is considered to have
+ been processed when it has been established that the descriptor is
+ syntactically valid, the requested events can be observed, any
+ embedded signals can be generated, any embedded events can be
+ detected, and the MG has been brought into a state in which the
+ events will be detected.
+
+ TransactionReply(TransactionID {
+ ContextID { Response ... Response },
+ . . .
+ ContextID { Response ... Response } })
+
+ The TransactionID parameter must be the same as that of the
+ corresponding TransactionRequest.
+
+ The ContextID parameter must specify a value to pertain to all
+ Responses for the action. The ContextID may be specific, all or null.
+
+ Each of the Response parameters represents a return value as
+ mentioned in 7.2, or an error descriptor if the command execution
+ encountered an error. Commands after the point of failure are not
+ processed and, therefore, Responses are not issued for them.
+
+ An exception to this occurs if a command has been marked as optional
+ in the Transaction request. If the optional command generates an
+ error, the transaction still continues to execute, so the Reply
+ would, in this case, have Responses after an Error.
+
+ Section 7.1.19 Error Descriptor specifies the generation of error
+ descriptors. The text below discusses several individual cases.
+
+ If the receiver encounters an error in processing a ContextID, the
+ requested Action response will consist of the Context ID and a single
+ error descriptor, 422 - "Syntax Error in Action".
+
+ If the receiver encounters an error such that it cannot determine a
+ legal Action, it will return a TransactionReply consisting of the
+ TransactionID and a single error descriptor, 422 - "Syntax Error in
+ Action". If the end of an action cannot be reliably determined but
+ one or more commands can be parsed, it will process them and then
+ send 422 - "Syntax Error in Action" as the last action for the
+ transaction. If the receiver encounters an error such that is cannot
+ determine a legal Transaction, it will return a TransactionReply with
+ a null TransactionID and a single error descriptor (403 - "Syntax
+ Error in Transaction").
+
+ If the end of a transaction cannot be reliably determined and one or
+ more Actions can be parsed, it will process them and then return 403
+ - "Syntax Error in Transaction" as the last action reply for the
+
+
+ Groves et al Expires - October 2003 [Page 74]
+ Megaco Protocol version 2 April 2003
+
+
+ transaction. If no Actions can be parsed, it will return 403 -
+ "Syntax Error in Transaction" as the only reply.
+
+ If the terminationID cannot be reliably determined, it will send 442
+ - "Syntax Error in Command" as the action reply.
+
+ If the end of a command cannot be reliably determined, it will return
+ 442 - "Syntax Error in Command" as the reply to the last action it
+ can parse.
+
+ 8.2.3 TransactionPending
+
+ The receiver invokes the TransactionPending. A TransactionPending
+ indicates that the Transaction is actively being processed, but has
+ not been completed. It is used to prevent the sender from assuming
+ the TransactionRequest was lost where the Transaction will take some
+ time to complete.
+
+ TransactionPending(TransactionID { } )
+
+ The TransactionID parameter must be the same as that of the
+ corresponding TransactionRequest. A property of root
+ (normalMGExecutionTime) is settable by the MGC to indicate the
+ interval within which the MGC expects a response to any transaction
+ from the MG. Another property (normalMGCExecutionTime) is settable by
+ the MGC to indicate the interval within which the MG SHOULD expect a
+ response to any transaction from the MGC. Senders may receive more
+ than one TransactionPending for a command. If a duplicate request is
+ received when pending, the responder may send a duplicate pending
+ immediately, or continue waiting for its timer to trigger another
+ TransactionPending.
+
+ A property of the root termination (MGOriginatedPendingLimit) is
+ settable by the MGC to indicate the number of TransactionPendings
+ that can be received from the MG. When the value expressed by this
+ property is exceeded, the MG shall stop the transaction processing
+ and send back a TransactionReply, otherwise the MGC can assume the
+ Transaction to be in error.
+
+ Another property of the root termination (MGCOriginatedPendingLimit)
+ is settable by the MGC to indicate the number of TransactionPendings
+ that can be received from the MGC. When the value expressed by this
+ property is exceeded, the MGC shall stop the transaction processing
+ and send back a TransactionReply otherwise the MG can assume the
+ Transaction to be in error.
+
+ The xxxOriginatedPendingLimit (MGOriginatedPendingLimit or
+ MGCOriginatedPendingLimit) may be exceeded either because of long
+ command processing or due to an error (e.g. a command caused a loop).
+
+
+ Groves et al Expires - October 2003 [Page 75]
+ Megaco Protocol version 2 April 2003
+
+
+ In both cases the receiver of the original TransactionRequest will
+ issue a TransactionReply with an error descriptor as a response
+ parameter in correspondence with either the offending long command or
+ the command that caused the error. Further commands in the
+ transaction shall not be processed. Error 506 - "Number of
+ TransactionPendings Exceeded" shall be used.
+
+ NOTE - To prevent a situation where the xxxOriginatedPendingLimit
+ (MGOriginatedPendingLimit or MGCOriginatedPendingLimit) is exceeded
+ due to an error and the receiver of the original TransactionRequest
+ keeps sending TransactionPending, the receiver of the original
+ TransactionRequest SHOULD implement a management protection mechanism
+ in order to trigger the appropriate recovery actions. The sender of
+ the original TransactionRequest may keep track of the number of
+ received Pendings and initiate corrective actions
+
+ 8.3 Messages
+
+ Multiple Transactions can be concatenated into a Message. Messages
+ have a header, which includes the identity of the sender. The Message
+ Identifier (MID) of a message is set to a provisioned name (e.g.
+ domain address/domain name/device name) of the entity transmitting
+ the message. Domain name is a suggested default. An H.248.1 entity
+ (MG/MGC) must consistently use the same MID in all messages it
+ originates for the duration of control association with the peer
+ (MGC/MG).
+
+ Every Message contains a Version Number identifying the version of
+ the protocol the message conforms to. Versions consist of one or two
+ digits, beginning with version 1. The current version of the protocol
+ is Version 2.
+
+ The transactions in a message are treated independently. There is no
+ order implied; there is no application or protocol acknowledgement of
+ a message. A message is essentially a transport mechanism. For
+ example, message X containing transaction requests A, B, and C may be
+ responded to with message Y containing replies to A and C and message
+ Z containing the reply to B. Likewise, message L containing request D
+ and message M containing request E may be responded to with message N
+ containing replies to both D and E.
+
+
+ 9 TRANSPORT
+
+ The transport mechanism for the protocol SHOULD allow the reliable
+ transport of transactions between a MGC and MG. The transport shall
+ remain independent of what particular commands are being sent and
+ shall be applicable to all application states. There are several
+ transports defined for the protocol, which are defined in Annexes to
+
+
+ Groves et al Expires - October 2003 [Page 76]
+ Megaco Protocol version 2 April 2003
+
+
+ this Recommendation and other Recommendations of the H.248 sub-series
+ (e.g. H.248.4 and H.248.5). Additional Transports may be defined as
+ additional Recommendations of the H.248 sub-series. For transport of
+ the protocol over IP, MGCs shall implement both TCP and UDP/ALF, a MG
+ shall implement TCP or UDP/ALF or both.
+
+ The MG is provisioned with a name or address (such as DNS name or IP
+ address) of a primary and zero or more secondary MGCs (see 7.2.8)
+ that is the address the MG uses to send messages to the MGC. If TCP
+ or UDP is used as the protocol transport and the port to which the
+ initial ServiceChange request is to be sent is not otherwise known,
+ that request SHOULD be sent to the default port number for the
+ protocol. This port number is 2944 for text-encoded operation or 2945
+ for binary-encoded operation, for either UDP or TCP. The MGC receives
+ the message containing the ServiceChange request from the MG and can
+ determine the MG's address from it. As described in 7.2.8, either the
+ MG or the MGC may supply an address in the ServiceChangeAddress
+ parameter to which subsequent transaction requests must be addressed,
+ but responses (including the response to the initial ServiceChange
+ request) must always be sent back to the address which was the source
+ of the corresponding request. For example, in IP networks, this is
+ the source address in the IP header and the source port number in the
+ TCP/UDP/SCTP header.
+
+ 9.1 Ordering of Commands
+
+ This Recommendation does not mandate that the underlying transport
+ protocol guarantees the sequencing of transactions sent to an entity.
+ This property tends to maximize the timeliness of actions, but it has
+ a few drawbacks. For example:
+
+ - Notify commands may be delayed and arrive at the MGC after the
+ transmission of a new command changing the EventsDescriptor.
+
+ - If a new command is transmitted before a previous one is
+ acknowledged, there is no guarantee that prior command will be
+ executed before the new one.
+
+ Media Gateway Controllers that want to guarantee consistent operation
+ of the Media Gateway may use the following rules. These rules are
+ with respect to commands that are in different transactions. Commands
+ that are in the same transaction are executed in order (see clause
+ 8).
+
+ 1) When a Media Gateway handles several Terminations, commands
+ pertaining to the different Terminations may be sent in parallel,
+ for example following a model where each Termination (or group of
+ Terminations) is controlled by its own process or its own thread.
+
+
+
+ Groves et al Expires - October 2003 [Page 77]
+ Megaco Protocol version 2 April 2003
+
+
+ 2) On a Termination, there SHOULD normally be at most one outstanding
+ command (Add or Modify or Move), unless the outstanding commands
+ are in the same transaction. However, a Subtract command may be
+ issued at any time. In consequence, a Media Gateway may sometimes
+ receive a Modify command that applies to a previously subtracted
+ Termination. Such commands SHOULD be ignored, and an error code
+ SHOULD be returned.
+
+ 3) For transports that do not guarantee in-sequence delivery of
+ messages (i.e. UDP), there SHOULD normally be on a given
+ Termination at most one outstanding Notify command at any time.
+
+ 4) In some cases, an implicitly or explicitly wildcarded Subtract
+ command that applies to a group of Terminations may step in front
+ of a pending Add command. The Media Gateway Controller SHOULD
+ individually delete all Terminations for which an Add command was
+ pending at the time of the global Subtract command. Also, new Add
+ commands for Terminations named by the wildcarding (or implied in
+ a Multiplex descriptor) SHOULD not be sent until the wildcarded
+ Subtract command is acknowledged.
+
+ 5) AuditValue and AuditCapability are not subject to any sequencing.
+
+ 6) ServiceChange shall always be the first command sent by a MG as
+ defined by the restart procedure. Any other command or response
+ must be delivered after this ServiceChange command.
+
+ These rules do not affect the command responder, which SHOULD always
+ respond to commands.
+
+ 9.2 Protection against Restart Avalanche
+
+ In the event that a large number of Media Gateways are powered on
+ simultaneously and they were to all initiate a ServiceChange
+ transaction, the Media Gateway Controller would very likely be
+ swamped, leading to message losses and network congestion during the
+ critical period of service restoration. In order to prevent such
+ avalanches, the following behaviour is suggested:
+
+ 1) When a Media Gateway is powered on, it SHOULD initiate a restart
+ timer to a random value, uniformly distributed between 0 and a
+ maximum waiting delay (MWD). Care SHOULD be taken to avoid
+ synchronicity of the random number generation between multiple
+ Media Gateways that would use the same algorithm.
+
+ 2) The Media Gateway SHOULD then wait for either the end of this
+ timer or the detection of a local user activity, such as for
+ example an off-hook transition on a residential Media Gateway.
+
+
+
+ Groves et al Expires - October 2003 [Page 78]
+ Megaco Protocol version 2 April 2003
+
+
+ 3) When the timer elapses, or when an activity is detected, the Media
+ Gateway SHOULD initiate the restart procedure.
+
+ The restart procedure simply requires the MG to guarantee that the
+ first message that the Media Gateway Controller sees from this MG is
+ a ServiceChange message informing the Media Gateway Controller about
+ the restart.
+
+ NOTE - The value of MWD is a configuration parameter that depends on
+ the type of the Media Gateway. The following reasoning may be used to
+ determine the value of this delay on residential gateways.
+
+ Media Gateway Controllers are typically dimensioned to handle the
+ peak hour traffic load, during which, in average, 10% of the lines
+ will be busy, placing calls whose average duration is typically 3
+ minutes. The processing of a call typically involves 5 to 6 Media
+ Gateway Controller transactions between each Media Gateway and the
+ Media Gateway Controller. This simple calculation shows that the
+ Media Gateway Controller is expected to handle 5 to 6 transactions
+ for each Termination, every 30 minutes on average, or, to put it
+ otherwise, about one transaction per Termination every 5 to 6 minutes
+ on average. This suggests that a reasonable value of MWD for a
+ residential gateway would be 10 to 12 minutes. In the absence of
+ explicit configuration, residential gateways SHOULD adopt a value of
+ 600 seconds for MWD.
+
+ The same reasoning suggests that the value of MWD SHOULD be much
+ shorter for trunking gateways or for business gateways, because they
+ handle a large number of Terminations, and also because the usage
+ rate of these Terminations is much higher than 10% during the peak
+ busy hour, a typical value being 60%. These Terminations, during the
+ peak hour, are this expected to contribute about one transaction per
+ minute to the Media Gateway Controller load. A reasonable algorithm
+ is to make the value of MWD per "trunk" Termination six times shorter
+ than the MWD per residential gateway, and also inversely proportional
+ to the number of Terminations that are being restarted. For example
+ MWD SHOULD be set to 2.5 seconds for a gateway that handles a T1
+ line, or to 60 milliseconds for a gateway that handles a T3 line.
+
+
+ 10 SECURITY CONSIDERATIONS
+
+ This clause covers security when using the protocol in an IP
+ environment.
+
+ 10.1 Protection of Protocol Connections
+
+ A security mechanism is clearly needed to prevent unauthorized
+ entities from using the protocol defined in this Recommendation for
+
+
+ Groves et al Expires - October 2003 [Page 79]
+ Megaco Protocol version 2 April 2003
+
+
+ setting up unauthorized calls or interfering with authorized calls.
+ The security mechanism for the protocol when transported over IP
+ networks is IPsec [RFC 2401 to RFC 2411].
+
+ The AH header [RFC 2402] affords data origin authentication,
+ connectionless integrity and optional anti-replay protection of
+ messages passed between the MG and the MGC. The ESP header [RFC 2406]
+ provides confidentiality of messages, if desired. For instance, the
+ ESP encryption service SHOULD be requested if the session
+ descriptions are used to carry session keys, as defined in SDP.
+
+ Implementations of the protocol defined in this Recommendation
+ employing the ESP header SHALL comply with section 5 of [RFC 2406],
+ which defines a minimum set of algorithms for integrity checking and
+ encryption. Similarly, implementations employing the AH header SHALL
+ comply with section 5 of [RFC 2402], which defines a minimum set of
+ algorithms for integrity checking using manual keys.
+
+ Implementations SHOULD use IKE [RFC 2409] to permit more robust
+ keying options. Implementations employing IKE SHOULD support
+ authentication with RSA signatures and RSA public key encryption.
+
+ 10.2 Interim AH scheme
+
+ Implementation of IPsec requires that the AH or ESP header be
+ inserted immediately after the IP header. This cannot be easily done
+ at the application level. Therefore, this presents a deployment
+ problem for the protocol defined in this Recommendation where the
+ underlying network implementation does not support IPsec.
+
+ As an interim solution, an optional AH header is defined within the
+ H.248.1 protocol header. The header fields are exactly those of the
+ SPI, SEQUENCE NUMBER and DATA fields as defined in [RFC 2402]. The
+ semantics of the header fields are the same as the "transport mode"
+ of [RFC 2402], except for the calculation of the Integrity Check
+ Value (ICV). In IPsec, the ICV is calculated over the entire IP
+ packet including the IP header. This prevents spoofing of the IP
+ addresses. To retain the same functionality, the ICV calculation
+ SHOULD be performed across all the transactions (concatenated) in the
+ message prepended by a synthesized IP header consisting of a 32-bit
+ source IP address, a 32-bit destination address and a 16-bit UDP
+ destination port encoded as 20 hex digits. When the interim AH
+ mechanism is employed when TCP is the transport Layer, the UDP Port
+ above becomes the TCP port, and all other operations are the same.
+
+ Implementations of the H.248.1 protocol SHALL implement IPsec where
+ the underlying operating system and the transport network supports
+ IPsec. Implementations of the protocol using IPv4 SHALL implement the
+ interim AH scheme. However, this interim scheme SHALL NOT be used
+
+
+ Groves et al Expires - October 2003 [Page 80]
+ Megaco Protocol version 2 April 2003
+
+
+ when the underlying network layer supports IPsec. IPv6
+ implementations are assumed to support IPsec and SHALL NOT use the
+ interim AH scheme.
+
+ All implementations of the interim AH mechanism SHALL comply with
+ section 5 of RFC 2402 which defines a minimum set of algorithms for
+ integrity checking using manual keys.
+
+ The interim AH interim scheme does not provide protection against
+ eavesdropping, thus forbidding third parties from monitoring the
+ connections set up by a given Termination. Also, it does not provide
+ protection against replay attacks. These procedures do not
+ necessarily protect against denial of service attacks by misbehaving
+ MGs or misbehaving MGCs. However, they will provide an identification
+ of these misbehaving entities, which SHOULD then be deprived of their
+ authorization through maintenance procedures.
+
+ 10.3 Protection of Media Connections
+
+ The protocol allows the MGC to provide MGs with "session keys" that
+ can be used to encrypt the audio messages, protecting against
+ eavesdropping.
+
+ A specific problem of packet networks is "uncontrolled barge-in".
+ This attack can be performed by directing media packets to the IP
+ address and UDP port used by a connection. If no protection is
+ implemented, the packets must be decompressed and the signals must be
+ played on the "line side".
+
+ A basic protection against this attack is to only accept packets from
+ known sources, checking for example that the IP source address and
+ UDP source port match the values announced in the Remote descriptor.
+ This has two inconveniences: it slows down connection establishment
+ and it can be fooled by source spoofing:
+
+ - To enable the address-based protection, the MGC must obtain the
+ remote session description of the egress MG and pass it to the
+ ingress MG. This requires at least one network round trip, and
+ leaves us with a dilemma: either allow the call to proceed without
+ waiting for the round trip to complete, and risk for example,
+ "clipping" a remote announcement, or wait for the full round trip
+ and settle for slower call-set up procedures.
+
+ - Source spoofing is only effective if the attacker can obtain valid
+ pairs of source destination addresses and ports, for example by
+ listening to a fraction of the traffic. To fight source spoofing,
+ one could try to control all access points to the network. But
+ this is in practice very hard to achieve.
+
+
+
+ Groves et al Expires - October 2003 [Page 81]
+ Megaco Protocol version 2 April 2003
+
+
+ An alternative to checking the source address is to encrypt and
+ authenticate the packets, using a secret key that is conveyed during
+ the call set-up procedure. This will not slow down the call set-up,
+ and provides strong protection against address spoofing.
+
+
+ 11 MG-MGC CONTROL INTERFACE
+
+ The control association between MG and MGC is initiated at MG cold
+ start, and announced by a ServiceChange message, but can be changed
+ by subsequent events, such as failures or manual service events.
+
+ NOTE - While the protocol does not have an explicit mechanism to
+ support multiple MGCs controlling a physical MG, it has been designed
+ to support the multiple logical MG (within a single physical MG) that
+ can be associated with different MGCs.
+
+ 11.1 Multiple Virtual MGs
+
+ A physical Media Gateway may be partitioned into one or more Virtual
+ MGs. A virtual MG consists of a set of statically partitioned
+ physical Terminations and/or sets of ephemeral Terminations. A
+ physical Termination is controlled by one MGC. The model does not
+ require that other resources be statically allocated, just
+ Terminations. The mechanism for allocating Terminations to virtual
+ MGs is a management method outside the scope of the protocol. Each of
+ the virtual MGs appears to the MGC as a complete MG client.
+
+ A physical MG may have only one network interface, which must be
+ shared across virtual MGs. In such a case, the packet/cell side
+ Termination is shared. It SHOULD be noted however, that in use, such
+ interfaces require an ephemeral instance of the Termination to be
+ created per flow, and thus sharing the Termination is
+ straightforward. This mechanism does lead to a complication, namely
+ that the MG must always know which of its controlling MGCs SHOULD be
+ notified if an event occurs on the interface.
+
+ In normal operation, the Virtual MG will be instructed by the MGC to
+ create network flows (if it is the originating side), or to expect
+ flow requests (if it is the terminating side), and no confusion will
+ arise. However, if an unexpected event occurs, the Virtual MG must
+ know what to do with respect to the physical resources it is
+ controlling.
+
+ If recovering from the event requires manipulation of a physical
+ interface's state, only one MGC SHOULD do so. These issues are
+ resolved by allowing any of the MGCs to create EventsDescriptors to
+ be notified of such events, but only one MGC can have read/write
+ access to the physical interface properties; all other MGCs have
+
+
+ Groves et al Expires - October 2003 [Page 82]
+ Megaco Protocol version 2 April 2003
+
+
+ read-only access. The management mechanism is used to designate which
+ MGC has read/write capability, and is designated the Master MGC.
+
+ Each virtual MG has its own Root Termination. In most cases the
+ values for the properties of the Root Termination are independently
+ settable by each MGC. Where there can only be one value, the
+ parameter is read-only to all but the Master MGC.
+
+ ServiceChange may only be applied to a Termination or set of
+ Terminations partitioned to the Virtual MG or created (in the case of
+ ephemeral Terminations) by that Virtual MG.
+
+ 11.2 Cold start
+
+ A MG is pre-provisioned by a management mechanism outside the scope
+ of this protocol with a primary and (optionally) an ordered list of
+ secondary MGCs. Upon a cold start of the MG, it will issue a
+ ServiceChange command with a "Restart" method, on the Root
+ Termination to its primary MGC. If the MGC accepts the MG, it sends a
+ Transaction Reply not including a ServiceChangeMgcId parameter. If
+ the MGC does not accept the MG�s registration, it sends a Transaction
+ Reply, providing the address of an alternate MGC to be contacted by
+ including a ServiceChangeMgcId parameter.
+
+ If the MG receives a Transaction Reply that includes a
+ ServiceChangeMgcId parameter, it sends a ServiceChange to the MGC
+ specified in the ServiceChangeMgcId. It continues this process until
+ it gets a controlling MGC to accept its registration, or it fails to
+ get a reply. Upon failure to obtain a reply, either from the primary
+ MGC, or a designated successor, the MG tries its pre-provisioned
+ secondary MGCs, in order. If the MG is unable to establish a control
+ relationship with any MGC, it shall wait a random amount of time as
+ described in 9.2 and then start contacting its primary, and if
+ necessary, its secondary MGCs again.
+
+ It is possible that the reply to a ServiceChange with Restart will be
+ lost, and a command will be received by the MG prior to the receipt
+ of the ServiceChange response. The MG shall issue Error 505 - Command
+ Received before Restart Response.
+
+ 11.3 Negotiation of protocol version
+
+ A ServiceChange command from a MG that registers with an MGC shall
+ contain the version number of the protocol supported by the MG in the
+ ServiceChangeVersion parameter. Regardless of the version placed in
+ the ServiceChangeVersion parameter the message containing the command
+ shall be encoded as a version 1 message. Upon receiving such a
+ message, if the MGC supports only a lower version, then the MGC shall
+ send a ServiceChangeReply with the lower version and thereafter all
+
+
+ Groves et al Expires - October 2003 [Page 83]
+ Megaco Protocol version 2 April 2003
+
+
+ the messages between MG and MGC shall conform to the lower version of
+ the protocol. If the MG is unable to comply and it has established a
+ transport connection to the MGC, it SHOULD close that connection. In
+ any event, it SHOULD reject all subsequent requests from the MGC with
+ Error 406 - "Version Not Supported".
+
+ If the MGC supports a higher version than the MG but is able to
+ support the lower version proposed by the MG, it shall send a
+ ServiceChangeReply with the lower version and thereafter all the
+ messages between MG and MGC shall conform to the lower version of the
+ protocol. If the MGC is unable to comply, it shall reject the
+ association, with Error 406 - "Version Not Supported".
+
+ Protocol version negotiation may also occur at "handoff" and
+ "failover" ServiceChanges.
+
+ When extending the protocol with new versions, the following rules
+ SHOULD be followed:
+
+ 1) Existing protocol elements, i.e. procedures, parameters,
+ descriptor, property, values, SHOULD not be changed unless a
+ protocol error needs to be corrected or it becomes necessary to
+ change the operation of the service that is being supported by the
+ protocol.
+
+ 2) The semantics of a command, a parameter, a descriptor, a property,
+ or a value SHOULD not be changed.
+
+ 3) Established rules for formatting and encoding messages and
+ parameters SHOULD not be modified.
+
+ 4) When information elements are found to be obsolete they can be
+ marked as not used. However, the identifier for that information
+ element will be marked as reserved. In that way it can not be used
+ in future versions.
+
+ 11.4 Failure of a MG
+
+ If a MG fails, but is capable of sending a message to the MGC, it
+ sends a ServiceChange with an appropriate method (graceful or forced)
+ and specifies the Root TerminationID. When it returns to service, it
+ sends a ServiceChange with a "Restart" method.
+
+ Allowing the MGC to send duplicate messages to both MGs accommodates
+ pairs of MGs that are capable of redundant failover of one of the
+ MGs. Only the Working MG shall accept or reject transactions. Upon
+ failover, the primary MG sends a ServiceChange command with a
+ "Failover" method and a "MG Impending Failure" reason. The MGC then
+ uses the secondary MG as the active MG. When the error condition is
+
+
+ Groves et al Expires - October 2003 [Page 84]
+ Megaco Protocol version 2 April 2003
+
+
+ repaired, the Working MG can send a "ServiceChange" with a "Restart"
+ method.
+
+ Note: Redundant failover MGs require a reliable transport, because
+ the protocol provides no means for a secondary MG running ALF to
+ acknowledge messages sent from the MGC.
+
+ 11.5 Failure of an MGC
+
+ If the MG detects a failure of its controlling MGC, it attempts to
+ contact the next MGC on its pre-provisioned list. It starts its
+ attempts at the beginning (primary MGC), unless that was the MGC that
+ failed, in which case it starts at its first secondary MGC. It sends
+ a ServiceChange message with a "Failover" method and a " MGC
+ Impending Failure" reason. If the MG is unable to establish a control
+ relationship with any MGC, it shall wait a random amount of time as
+ described in section 9.2 and then start again contacting its primary,
+ and (if necessary) its secondary MGCs. When contacting its previously
+ controlling MGC, the MG sends the ServiceChange message with
+ "Disconnected" method.
+
+ In partial failure, or for manual maintenance reasons, an MGC may
+ wish to direct its controlled MGs to use a different MGC. To do so,
+ it sends a ServiceChange method to the MG with a "HandOff" method,
+ and its designated replacement in ServiceChangeMgcId. If "HandOff" is
+ supported, the MG shall send a ServiceChange message with a "Handoff"
+ method and a "MGC directed change" reason to the designated MGC. If
+ it fails to get a reply from the designated MGC, the MG shall behave
+ as if its MGC failed, and start contacting secondary MGCs as
+ specified in the previous paragraph. If the MG is unable to establish
+ a control relationship with any MGC, it shall wait a random amount of
+ time as described in 9.2 and then start contacting its primary, and
+ if necessary, its secondary MGCs again.
+
+ No recommendation is made on how the MGCs involved in the Handoff
+ maintain state information; this is considered to be out of scope of
+ this Recommendation. The MGC and MG may take the following steps when
+ Handoff occurs. When the MGC initiates a HandOff, the handover SHOULD
+ be transparent to Operations on the Media Gateway. Transactions can
+ be executed in any order, and could be in progress when the
+ ServiceChange is executed. Accordingly, commands in progress continue
+ and replies to all commands from the original MGC must be sent to the
+ transport address from which they were sent. If the service
+ relationship with the sending MGC has ended, the replies SHOULD be
+ discarded. The MG may receive outstanding transaction replies from
+ the new MGC. No new messages shall be sent to the new MGC until the
+ control association is established. Repeated transaction requests
+ shall be directed to the new MGC. The MG shall maintain state on all
+ Terminations and Contexts.
+
+
+ Groves et al Expires - October 2003 [Page 85]
+ Megaco Protocol version 2 April 2003
+
+
+ It is possible that the MGC could be implemented in such a way that a
+ failed MGC is replaced by a working MGC where the identity of the new
+ MGC is the same as the failed one. In such a case, ServiceChangeMgcId
+ would be specified with the previous value and the MG shall behave as
+ if the value was changed, and send a ServiceChange message, as above.
+
+ Pairs of MGCs that are capable of redundant failover can notify the
+ controlled MGs of the failover by the above mechanism.
+
+
+ 12 PACKAGE DEFINITION
+
+ The primary mechanism for extension is by means of Packages. Packages
+ define additional Properties, Events, Signals and Statistics that may
+ occur on Terminations.
+
+ Packages defined by IETF will appear in separate RFCs.
+
+ Packages defined by ITU-T may appear in the relevant Recommendations
+ (e.g. as Recommendations of the H.248 sub-series).
+
+ 1) A public document or a standard forum document, which can be
+ referenced as the document that describes the package following
+ the guideline above, SHOULD be specified.
+
+ 2) The document shall specify the version of the Package that it
+ describes.
+
+ 3) The document SHOULD be available on a public web server and SHOULD
+ have a stable URL. The site SHOULD provide a mechanism to provide
+ comments and appropriate responses SHOULD be returned.
+
+ 12.1 Guidelines for defining packages
+
+ Packages define Properties, Events, Signals, and Statistics.
+
+ Packages may also define new error codes according to the guidelines
+ given in 13.2. This is a matter of documentary convenience: the
+ package documentation is submitted to IANA in support of the error
+ code registration. If a package is modified, it is unnecessary to
+ provide IANA with a new document reference in support of the error
+ code unless the description of the error code itself is modified.
+
+ Names of all such defined constructs shall consist of the PackageID
+ (which uniquely identifies the package) and the ID of the item (which
+ uniquely identifies the item in that package). In the text encoding
+ the two shall be separated by a forward slash ("/") character.
+ Example: togen/playtone is the text encoding to refer to the play
+ tone signal in the tone generation package.
+
+
+ Groves et al Expires - October 2003 [Page 86]
+ Megaco Protocol version 2 April 2003
+
+
+ A Package will contain the following sections:
+
+ 12.1.1 Package
+
+ Overall description of the package, specifying:
+
+ Package Name: only descriptive
+
+ PackageID: is an identifier
+
+ Description:
+
+ Version:
+
+ A new version of a package can only add additional Properties,
+ Events, Signals, Statistics and new possible values for an existing
+ parameter described in the original package. No deletions or
+ modifications shall be allowed. A version is an integer in the range
+ from 1 to 99.
+
+ Designed to be extended only (Optional): Yes
+
+ This indicates that the package has been expressly designed to be
+ extended by others, not to be directly referenced. For example, the
+ package may not have any function on its own or be nonsensical on its
+ own. The MG SHOULD NOT publish this PackageID when reporting
+ packages.
+
+ Extends (Optional): existing package Descriptor
+
+ A package may extend an existing package. The version of the original
+ package must be specified. When a package extends another package it
+ shall only add additional Properties, Events, Signals, Statistics and
+ new possible values for an existing parameter described in the
+ original package. An extended package shall not redefine or overload
+ an identifier defined in the original package and packages it may
+ have extended (multiple levels of extension). Hence, if package B
+ version 1 extends package A version 1, version 2 of B will not be
+ able to extend the A version 2 if A version 2 defines a name already
+ in B version 1.
+
+ 12.1.2 Properties
+
+ Properties defined by the package, specifying:
+
+ Property Name: only descriptive
+
+ PropertyID: is an identifier
+
+
+
+ Groves et al Expires - October 2003 [Page 87]
+ Megaco Protocol version 2 April 2003
+
+
+ Description:
+
+ Type: One of:
+
+ Boolean
+
+ String: UTF-8 string
+
+ Octet String: A number of octets. See Annex A and Annex B.3
+ for encoding
+
+ Integer: 4 byte signed integer
+
+ Double: 8 byte signed integer
+
+ Character: unicode UTF-8 encoding of a single letter. Could be
+ more than one octet.
+
+ Enumeration: one of a list of possible unique values (see 12.3)
+
+ Sub-list: a list of several values from a list. The type of
+ sub-list SHALL also be specified. The type shall be chosen
+ from the types specified in this section (with the exception of
+ sub-list). For example, Type: sub-list of enumeration. The
+ encoding of sub-lists is specified in Annexes A and B.3.
+
+ Possible values:
+
+ A package MUST specify either a specific set of values or a
+ description of how values are determined. A package MUST also
+ specify a default value or the default behaviour when the value is
+ omitted from its descriptor. For example, a package may specify that
+ procedures related to the property are suspended when it value is
+ omitted. A default value (but not procedures) may be specified as
+ provisionable.
+
+ Defined in:
+
+ Which H.248.1 descriptor the property is defined in. LocalControl is
+ for stream dependent properties. TerminationState is for stream
+ independent properties. These are expected to be the most common
+ cases, but it is possible for properties to be defined in other
+ descriptors.
+
+ Characteristics: Read/Write or both, and (optionally), global:
+
+ Indicates whether a property is read-only, or read-write, and if it
+ is global. If Global is omitted, the property is not global. If a
+
+
+
+ Groves et al Expires - October 2003 [Page 88]
+ Megaco Protocol version 2 April 2003
+
+
+ property is declared as global, the value of the property is shared
+ by all Terminations realizing the package.
+
+ 12.1.3 Events
+
+ Events defined by the package, specifying:
+
+ Event name: only descriptive
+
+ EventID: is an identifier
+
+ Description:
+
+ EventsDescriptor Parameters:
+
+ Parameters used by the MGC to configure the event, and found in the
+ EventsDescriptor. See 12.2.
+
+ ObservedEventsDescriptor Parameters:
+
+ Parameters returned to the MGC in Notify requests and in replies to
+ command requests from the MGC that audit ObservedEventsDescriptor,
+ and found in the ObservedEventsDescriptor. See 12.2.
+
+ 12.1.4 Signals
+
+ Signals defined by the package, specifying:
+
+ Signal Name: only descriptive
+
+ SignalID: is an identifier. SignalID is used in a
+ SignalsDescriptor
+
+ Description
+
+ SignalType: one of:
+
+ OO (On/Off)
+
+ TO (TimeOut)
+
+ BR (Brief)
+
+ NOTE - SignalType may be defined such that it is dependent on the
+ value of one or more parameters. The package MUST specify a default
+ signal type. If the default type is TO, the package MUST specify a
+ default duration which may be provisioned. A default duration is
+ meaningless for BR.
+
+
+
+ Groves et al Expires - October 2003 [Page 89]
+ Megaco Protocol version 2 April 2003
+
+
+ Duration: in hundredths of seconds
+
+ Additional Parameters: see 12.2
+
+ 12.1.5 Statistics
+
+ Statistics defined by the package, specifying:
+
+ Statistic name: only descriptive
+
+ StatisticID: is an identifier
+
+ StatisticID is used in a StatisticsDescriptor
+
+ Description:
+
+ Units: unit of measure, e.g. milliseconds, packets
+
+ 12.1.6 Procedures
+
+ Additional guidance on the use of the package.
+
+
+ 12.2 Guidelines to defining Parameters to Events and Signals
+
+ Parameter Name: only descriptive
+
+ ParameterID: is an identifier. The textual ParameterID of
+ parameters to Events and Signals shall not start with "EPA" and
+ "SPA", respectively. The textual ParameterID shall also not be
+ "ST", "Stream", "SY", "SignalType", "DR", "Duration", "NC",
+ "NotifyCompletion", "KA", "Keepactive", "EB", "Embed", "DM" or
+ "DigitMap".
+
+ Type: One of:
+
+ Boolean
+
+ String: UTF-8 octet string
+
+ Octet String: A number of octets. See Annex A and Annex B.3
+ for encoding
+
+ Integer: 4-octet signed integer
+
+ Double: 8-octet signed integer
+
+ Character: unicode UTF-8 encoding of a single letter. Could be
+ more than one octet.
+
+
+ Groves et al Expires - October 2003 [Page 90]
+ Megaco Protocol version 2 April 2003
+
+
+ Enumeration: one of a list of possible unique values (see 12.3)
+
+ Sub-list: a list of several values from a list (not supported
+ for statistics). The type of sub-list SHALL also be specified.
+ The type shall be chosen from the types specified in this
+ section (with the exception of sub-list). For example, Type:
+ sub-list of enumeration. The encoding of sub-lists is
+ specified in Annexes A and B.3.
+
+ Possible values:
+
+ A package MUST specify either a specific set of values or a
+ description of how values are determined. A package MUST also
+ specify a default value or the default behavior when the value is
+ omitted from its descriptor. For example, a package may specify that
+ procedures related to the parameter are suspended when it value is
+ omitted. A default value (but not procedures) may be specified as
+ provisionable.
+
+ Description:
+
+ 12.3 Lists
+
+ Possible values for parameters include enumerations. Enumerations may
+ be defined in a list. It is recommended that the list be IANA
+ registered so that packages that extend the list can be defined
+ without concern for conflicting names.
+
+ 12.4 Identifiers
+
+ Identifiers in text encoding shall be strings of up to 64 characters,
+ containing no spaces, starting with an alphabetic character and
+ consisting of alphanumeric characters and/or digits, and possibly
+ including the special character underscore ("_").
+
+ Identifiers in binary encoding are 2 octets long.
+
+ Both text and binary values shall be specified for each identifier,
+ including identifiers used as values in enumerated types.
+
+ 12.5 Package registration
+
+ A package can be registered with IANA for interoperability reasons.
+ See clause 13 for IANA considerations.
+
+
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 91]
+ Megaco Protocol version 2 April 2003
+
+
+ 13 PROFILE DEFINITION
+
+ Profiles may be specified to further define how the H.248.1 protocol
+ is used and what functionality is supported by a MG. The profile
+ itself specifies what options associated with H.248.1 have been used.
+ For example: transport and packages used for an application.
+
+ A profile is identified by a name (IANA registered) and a Version. A
+ name shall be a string up to 64 characters long. Version shall be 1
+ to 99.
+
+ The profile itself is a document that indicates the options for a
+ particular application. There is no set format for this document. The
+ only mandatory element is that there SHOULD be a section indicating
+ the Name and Version and a summary of the profile.
+
+ Whilst the first two points below are the only mandatory sections,
+ the following points SHOULD be considered for inclusion:
+
+ - Profile Identification: The name and version of the profile that
+ is sent in the service change command.
+
+ - Summary: A description of what the profile is.
+
+ - Naming Conventions:
+
+ - MGC/MG Naming Conventions: Addressing associated with the names
+ of the MGC / MG.
+
+ - Termination Names: The termination identity structure.
+
+ - Digit Map Names: The names of any digit maps.
+
+ - Topology Descriptor: Is the topology descriptor used by this
+ profile?
+
+ - TimeStamps: Specifies whether timestamps will be used in the
+ ServiceChange and/or Notify commands.
+
+ - Transaction Timers: Specifies the values of the transaction
+ timers.
+
+ - Transport: Specifies what H.248 sub-series transports are
+ supported by the profile.
+
+ - Encoding: Specifies what encoding is supported by the profile.
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 92]
+ Megaco Protocol version 2 April 2003
+
+
+ - Mandatory support of SDP and H.248.1 Annex C information elements:
+ Specifies what SDP attributes and H.248.1 Annex C information
+ elements are to be supported.
+
+ - Packages: Specifies the packages that are supported in this
+ profile.
+
+ Mandatory: specifies the packages that shall be supported in this
+ profile.
+
+ Optional: specifies the packages that may be supported in the
+ profile.
+
+ Package Provisioning Information: specifies the values of properties
+ which are specified as provisioned (e.g. names and number of cycles
+ for an H.248.7 announcement).
+
+ - Security: Specifies the security mechanisms used.
+
+ - Procedures: Specifies the procedures that are associated with the
+ profile.
+
+
+ 14 IANA CONSIDERATIONS
+
+ 14.1 Packages
+
+ The following considerations SHALL be met to register a package with
+ IANA:
+
+ 1) A unique string name, unique serial number and version number is
+ registered for each package. The string name is used with text
+ encoding. The serial number shall be used with binary encoding.
+ Serial Numbers 0x8000 to 0xFFFF are reserved for private use.
+ Serial number 0 is reserved.
+
+ 2) A contact name, email and postal addresses for that contact shall
+ be specified. The contact information shall be updated by the
+ defining organization as necessary.
+
+ 3) A reference to a document that describes the package, which SHOULD
+ be public:
+
+ The document shall specify the version of the Package that it
+ describes.
+
+ If the document is public, it SHOULD be located on a public web
+ server and SHOULD have a stable URL. The site SHOULD provide a
+
+
+
+ Groves et al Expires - October 2003 [Page 93]
+ Megaco Protocol version 2 April 2003
+
+
+ mechanism to provide comments and appropriate responses SHOULD be
+ returned.
+
+ 4) Packages registered by other than recognized standards bodies
+ shall have a minimum package name length of 8 characters.
+
+ 5) All other package names are first come-first served if all other
+ conditions are met.
+
+ 14.2 Error codes
+
+ The following considerations SHALL be met to register an error code
+ with IANA:
+
+ 1) An error number and a one-line (80-character maximum) string is
+ registered for each error.
+
+ 2) A complete description of the conditions under which the error is
+ detected shall be included in a publicly available document. The
+ description shall be sufficiently clear to differentiate the error
+ from all other existing error codes.
+
+ 3) The document SHOULD be available on a public web server and SHOULD
+ have a stable URL.
+
+ 4) Error numbers registered by recognized standards bodies shall have
+ 3- or 4-character error numbers.
+
+ 5) Error numbers registered by all other organizations or individuals
+ shall have 4-character error numbers.
+
+ 6) An error number shall not be redefined nor modified except by the
+ organization or individual that originally defined it, or their
+ successors or assigns.
+
+ 14.3 ServiceChange reasons
+
+ The following considerations SHALL be met to register service change
+ reason with IANA:
+
+ 1) A one-phrase, 80-character maximum, unique reason code is
+ registered for each reason.
+
+ 2) A complete description of the conditions under which the reason is
+ used is detected shall be included in a publicly available
+ document. The description shall be sufficiently clear to
+ differentiate the reason from all other existing reasons.
+
+
+
+
+ Groves et al Expires - October 2003 [Page 94]
+ Megaco Protocol version 2 April 2003
+
+
+ 3) The document SHOULD be available on a public web server and SHOULD
+ have a stable URL.
+
+ 14.4 Profiles
+
+ The following considerations SHALL be met to register a Profile with
+ IANA:
+
+ 1) A unique string name and version number (version may be omitted
+ when the profile name contains a wildcard) is registered for each
+ profile.
+
+ 2) A contact name, email and postal addresses for that contact shall
+ be specified. The contact information shall be updated by the
+ defining organization as necessary.
+
+ 3) Profiles registered by other than recognized standards bodies
+ shall have a minimum profile name length of 6 characters.
+
+ 4) Profile names containing a wildcard "*"on the end of their names
+ shall be accepted if the first 6 characters are fully specified.
+ It is assumed that the organisation that was issued with the
+ Profile name will manage the namespace associated with the
+ wildcard. IANA shall not issue other profiles names within "name*"
+ range.
+
+ All other Profile names are first come-first served if all other
+ conditions are met.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 95]
+ Megaco Protocol version 2 April 2003
+
+
+ ANNEX A BINARY ENCODING OF THE PROTOCOL
+
+ This annex specifies the syntax of messages using the notation
+ defined in Recommendation X.680; Information technology - Abstract
+ Syntax Notation One (ASN.1): Specification of basic notation.
+ Messages shall be encoded for transmission by applying the basic
+ encoding rules specified in Recommendation X.690, Information
+ Technology - ASN.1 Encoding Rules: Specification of Basic Encoding
+ Rules (BER), Canonical Encoding Rules (CER) and Distinguished
+ Encoding Rules.
+
+ A.1 Coding of wildcards
+
+ The use of wildcards ALL and CHOOSE is allowed in the protocol. This
+ allows a MGC to partially specify Termination IDs and to let the MG
+ choose from the values that conform to the partial specification.
+ Termination IDs may encode a hierarchy of names. This hierarchy is
+ provisioned. For instance, a TerminationID may consist of a trunk
+ group, a trunk within the group and a circuit. Wildcarding must be
+ possible at all levels. The following paragraphs explain how this is
+ achieved.
+
+ The ASN.1 description uses octet strings of up to 8 octets in length
+ for Termination IDs. This means that Termination IDs consist of at
+ most 64 bits. A fully specified Termination ID may be preceded by a
+ sequence of wildcarding fields. A wildcarding field is one octet in
+ length. Bit 7 (the most significant bit) of this octet specifies what
+ type of wildcarding is invoked: if the bit value equals 1, then the
+ ALL wildcard is used; if the bit value if 0, then the CHOOSE wildcard
+ is used. Bit 6 of the wildcarding field specifies whether the
+ wildcarding pertains to one level in the hierarchical naming scheme
+ (bit value 0) or to the level of the hierarchy specified in the
+ wildcarding field plus all lower levels (bit value 1). Bits 0 through
+ 5 of the wildcarding field specify the bit position in the
+ Termination ID at which the wildcarding starts.
+
+ We illustrate this scheme with some examples. In these examples, the
+ most significant bit in a string of bits appears on the left hand
+ side.
+
+ Assume that Termination IDs are three octets long and that each octet
+ represents a level in a hierarchical naming scheme. A valid
+ Termination ID is:
+
+ 00000001 00011110 01010101.
+
+ Addressing ALL names with prefix 00000001 00011110 is done as
+ follows:
+
+
+
+ Groves et al Expires - October 2003 [Page 96]
+ Megaco Protocol version 2 April 2003
+
+
+ wildcarding field: 10000111
+
+ Termination ID: 00000001 00011110 xxxxxxxx.
+
+ The values of the bits labeled "x" is irrelevant and shall be ignored
+ by the receiver.
+
+ Indicating to the receiver that it must choose a name with 00011110
+ as the second octet is done as follows:
+
+ wildcarding fields: 00010111 followed by 00000111
+
+ Termination ID: xxxxxxxx 00011110 xxxxxxxx.
+
+ The first wildcard field indicates a CHOOSE wildcard for the level in
+ the naming hierarchy starting at bit 23, the highest level in our
+ assumed naming scheme. The second wildcard field indicates a CHOOSE
+ wildcard for the level in the naming hierarchy starting at bit 7, the
+ lowest level in our assumed naming scheme.
+
+ Finally, a CHOOSE-wildcarded name with the highest level of the name
+ equal to 00000001 is specified as follows:
+
+ wildcard field: 01001111
+
+ Termination ID: 0000001 xxxxxxxx xxxxxxxx .
+
+ Bit value 1 at bit position 6 of the first octet of the wildcard
+ field indicates that the wildcarding pertains to the specified level
+ in the naming hierarchy and all lower levels.
+
+ Context IDs may also be wildcarded. In the case of Context IDs,
+ however, specifying partial names is not allowed. Context ID 0x0
+ SHALL be used to indicate the NULL Context, Context ID 0xFFFFFFFE
+ SHALL be used to indicate a CHOOSE wildcard, and Context ID
+ 0xFFFFFFFF SHALL be used to indicate an ALL wildcard.
+
+ TerminationID 0xFFFFFFFFFFFFFFFF SHALL be used to indicate the ROOT
+ Termination.
+
+ A.2 ASN.1 syntax specification
+
+ This subclause contains the ASN.1 specification of the H.248.1
+ protocol syntax.
+
+ NOTE 1 - In case a transport mechanism is used that employs
+ application level framing, the definition of Transaction below
+ changes. Refer to the annex or to the Recommendation of the H.248
+
+
+
+ Groves et al Expires - October 2003 [Page 97]
+ Megaco Protocol version 2 April 2003
+
+
+ sub-series defining the transport mechanism for the definition that
+ applies in that case.
+
+ NOTE 2 - The ASN.1 specification below contains a clause defining
+ TerminationIDList as a sequence of TerminationIDs. The length of this
+ sequence SHALL be one, except possibly when used in
+ contextAuditResult.
+
+ NOTE 3 - This syntax specification does not enforce all restrictions
+ on element inclusions and values. Some additional restrictions are
+ stated in comments and other restrictions appear in the text of this
+ recommendation. These additional restrictions are part of the
+ protocol even though not enforced by this specification.
+
+ NOTE 4 - The ASN.1 module in this Annex uses octet string types to
+ encode values for property parameter, signal parameter and event
+ parameter values and statistics. The actual types of these values
+ vary and are specified in Annex C or the relevant package definition.
+
+ A value is first BER-encoded based on its type using the table below.
+ The result of this BER-encoding is then encoded as an ASN.1 octet
+ string, "double wrapping" the value. The format specified in Annex C
+ or the package relates to BER encoding according to the following
+ table:
+
+ Type Specified in Package ASN.1 BER Type
+
+ String IA5String or UTF8String
+ (Note 4)
+
+ Integer (4 Octet) INTEGER
+
+ Double (8 octet signed int) INTEGER (Note 3)
+
+ Character (UTF-8, Note 1) IA5String
+
+ Enumeration ENUMERATED
+
+ Boolean BOOLEAN
+
+ Unsigned Integer (Note 2) INTEGER (Note 3)
+
+ Octet (String) OCTET STRING
+
+ Note 1: Can be more than one byte
+
+ Note 2: Unsigned integer is referenced in Annex C
+
+
+
+ Groves et al Expires - October 2003 [Page 98]
+ Megaco Protocol version 2 April 2003
+
+
+ Note 3: The BER encoding of INTEGER does not imply the
+ use of 4 bytes.
+
+ Note 4: String SHOULD be encoded as IA5String when the
+ contents are all ASCII characters, but as UTF8String
+ if it contains any non-ASCII characters.
+
+
+
+ See ITU-T Rec. X.690, 8.7, for the definition of the encoding of an
+ octet string value.
+
+
+ MEDIA-GATEWAY-CONTROL {itu-t(0) recommendation(0) h(8) h248(248)
+ modules(0) media-gateway-control(0) version2(2)}
+ DEFINITIONS AUTOMATIC TAGS ::=
+ BEGIN
+
+
+ MegacoMessage ::= SEQUENCE
+ {
+ authHeader AuthenticationHeader OPTIONAL,
+ mess Message
+ }
+
+ AuthenticationHeader ::= SEQUENCE
+ {
+ secParmIndex SecurityParmIndex,
+ seqNum SequenceNum,
+ ad AuthData
+ }
+
+ SecurityParmIndex ::= OCTET STRING(SIZE(4))
+
+ SequenceNum ::= OCTET STRING(SIZE(4))
+
+ AuthData ::= OCTET STRING (SIZE (12..32))
+
+ Message ::= SEQUENCE
+ {
+ version INTEGER(0..99),
+ -- The version of the protocol defined here is equal to 2.
+ mId MId, -- Name/address of message originator
+ messageBody CHOICE
+ {
+ messageError ErrorDescriptor,
+ transactions SEQUENCE OF Transaction
+ },
+
+
+
+ Groves et al Expires - October 2003 [Page 99]
+ Megaco Protocol version 2 April 2003
+
+
+ ...
+ }
+
+ MId ::= CHOICE
+ {
+ ip4Address IP4Address,
+ ip6Address IP6Address,
+ domainName DomainName,
+ deviceName PathName,
+ mtpAddress OCTET STRING(SIZE(2..4)),
+ -- Addressing structure of mtpAddress:
+ -- 25 - 15 0
+ -- | PC | NI |
+ -- 24 - 14 bits 2 bits
+ -- Note: 14 bits are defined for international use.
+ -- Two national options exist where the point code is 16 or 24
+ -- bits.
+ -- To octet align the mtpAddress, the MSBs shall be encoded as 0s.
+ ...
+ }
+
+ DomainName ::= SEQUENCE
+ {
+ name IA5String,
+ -- The name starts with an alphanumeric digit followed by a
+ -- sequence of alphanumeric digits, hyphens and dots. No two
+ -- dots shall occur consecutively.
+ portNumber INTEGER(0..65535) OPTIONAL
+ }
+
+ IP4Address ::= SEQUENCE
+ {
+ address OCTET STRING (SIZE(4)),
+ portNumber INTEGER(0..65535) OPTIONAL
+ }
+
+ IP6Address ::= SEQUENCE
+ {
+ address OCTET STRING (SIZE(16)),
+ portNumber INTEGER(0..65535) OPTIONAL
+ }
+
+ PathName ::= IA5String(SIZE (1..64))
+ -- See A.3
+
+ Transaction ::= CHOICE
+ {
+ transactionRequest TransactionRequest,
+ transactionPending TransactionPending,
+
+
+ Groves et al Expires - October 2003 [Page 100]
+ Megaco Protocol version 2 April 2003
+
+
+ transactionReply TransactionReply,
+ transactionResponseAck TransactionResponseAck,
+ -- use of response acks is dependent on underlying transport
+ ...
+ }
+
+ TransactionId ::= INTEGER(0..4294967295) -- 32-bit unsigned integer
+
+ TransactionRequest ::= SEQUENCE
+ {
+ transactionId TransactionId,
+ actions SEQUENCE OF ActionRequest,
+ ...
+ }
+
+ TransactionPending ::= SEQUENCE
+ {
+ transactionId TransactionId,
+ ...
+ }
+
+ TransactionReply ::= SEQUENCE
+ {
+ transactionId TransactionId,
+ immAckRequired NULL OPTIONAL,
+ transactionResult CHOICE
+ {
+ transactionError ErrorDescriptor,
+ actionReplies SEQUENCE OF ActionReply
+ },
+ ...
+ }
+
+ TransactionResponseAck ::= SEQUENCE OF TransactionAck
+ TransactionAck ::= SEQUENCE
+ {
+ firstAck TransactionId,
+ lastAck TransactionId OPTIONAL
+ }
+
+ ErrorDescriptor ::= SEQUENCE
+ {
+ errorCode ErrorCode,
+ errorText ErrorText OPTIONAL
+ }
+
+ ErrorCode ::= INTEGER(0..65535)
+ -- See clause 14 for IANA considerations with respect to error codes
+
+
+
+ Groves et al Expires - October 2003 [Page 101]
+ Megaco Protocol version 2 April 2003
+
+
+ ErrorText ::= IA5String
+
+ ContextID ::= INTEGER(0..4294967295)
+
+ -- Context NULL Value: 0
+ -- Context CHOOSE Value: 4294967294 (0xFFFFFFFE)
+ -- Context ALL Value: 4294967295 (0xFFFFFFFF)
+
+
+ ActionRequest ::= SEQUENCE
+ {
+ contextId ContextID,
+ contextRequest ContextRequest OPTIONAL,
+ contextAttrAuditReq ContextAttrAuditRequest OPTIONAL,
+ commandRequests SEQUENCE OF CommandRequest
+ }
+
+ ActionReply ::= SEQUENCE
+ {
+ contextId ContextID,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ contextReply ContextRequest OPTIONAL,
+ commandReply SEQUENCE OF CommandReply
+ }
+
+ ContextRequest ::= SEQUENCE
+ {
+ priority INTEGER(0..15) OPTIONAL,
+ emergency BOOLEAN OPTIONAL,
+ topologyReq SEQUENCE OF TopologyRequest OPTIONAL,
+ ...
+ }
+
+ ContextAttrAuditRequest ::= SEQUENCE
+ {
+ topology NULL OPTIONAL,
+ emergency NULL OPTIONAL,
+ priority NULL OPTIONAL,
+ ...
+ }
+
+ CommandRequest ::= SEQUENCE
+ {
+ command Command,
+ optional NULL OPTIONAL,
+ wildcardReturn NULL OPTIONAL,
+ ...
+ }
+
+
+
+ Groves et al Expires - October 2003 [Page 102]
+ Megaco Protocol version 2 April 2003
+
+
+ Command ::= CHOICE
+ {
+ addReq AmmRequest,
+ moveReq AmmRequest,
+ modReq AmmRequest,
+ -- Add, Move, Modify requests have the same parameters
+ subtractReq SubtractRequest,
+ auditCapRequest AuditRequest,
+ auditValueRequest AuditRequest,
+ notifyReq NotifyRequest,
+ serviceChangeReq ServiceChangeRequest,
+ ...
+ }
+
+ CommandReply ::= CHOICE
+ {
+ addReply AmmsReply,
+ moveReply AmmsReply,
+ modReply AmmsReply,
+ subtractReply AmmsReply,
+ -- Add, Move, Modify, Subtract replies have the same parameters
+ auditCapReply AuditReply,
+ auditValueReply AuditReply,
+ notifyReply NotifyReply,
+ serviceChangeReply ServiceChangeReply,
+ ...
+ }
+
+ TopologyRequest ::= SEQUENCE
+ {
+ terminationFrom TerminationID,
+ terminationTo TerminationID,
+ topologyDirection ENUMERATED
+ {
+ bothway(0),
+ isolate(1),
+ oneway(2)
+ },
+ ...,
+ streamID StreamID OPTIONAL
+ }
+
+ AmmRequest ::= SEQUENCE
+ {
+ terminationID TerminationIDList,
+ descriptors SEQUENCE OF AmmDescriptor,
+ -- At most one descriptor of each type (see AmmDescriptor)
+ -- allowed in the sequence.
+ ...
+
+
+ Groves et al Expires - October 2003 [Page 103]
+ Megaco Protocol version 2 April 2003
+
+
+ }
+
+ AmmDescriptor ::= CHOICE
+ {
+ mediaDescriptor MediaDescriptor,
+ modemDescriptor ModemDescriptor,
+ muxDescriptor MuxDescriptor,
+ eventsDescriptor EventsDescriptor,
+ eventBufferDescriptor EventBufferDescriptor,
+ signalsDescriptor SignalsDescriptor,
+ digitMapDescriptor DigitMapDescriptor,
+ auditDescriptor AuditDescriptor,
+ ...
+ }
+
+
+ AmmsReply ::= SEQUENCE
+ {
+ terminationID TerminationIDList,
+ terminationAudit TerminationAudit OPTIONAL,
+ ...
+ }
+
+ SubtractRequest ::= SEQUENCE
+ {
+ terminationID TerminationIDList,
+ auditDescriptor AuditDescriptor OPTIONAL,
+ ...
+ }
+
+ AuditRequest ::= SEQUENCE
+ {
+ terminationID TerminationID,
+ auditDescriptor AuditDescriptor,
+ ...
+ }
+
+ AuditReply ::= CHOICE
+ {
+ contextAuditResult TerminationIDList,
+ error ErrorDescriptor,
+ auditResult AuditResult,
+ ...
+ }
+
+ AuditResult ::= SEQUENCE
+ {
+
+ terminationID TerminationID,
+
+
+ Groves et al Expires - October 2003 [Page 104]
+ Megaco Protocol version 2 April 2003
+
+
+ terminationAuditResult TerminationAudit
+ }
+
+
+
+ TerminationAudit ::= SEQUENCE OF AuditReturnParameter
+
+ AuditReturnParameter ::= CHOICE
+ {
+ errorDescriptor ErrorDescriptor,
+ mediaDescriptor MediaDescriptor,
+ modemDescriptor ModemDescriptor,
+ muxDescriptor MuxDescriptor,
+ eventsDescriptor EventsDescriptor,
+ eventBufferDescriptor EventBufferDescriptor,
+ signalsDescriptor SignalsDescriptor,
+ digitMapDescriptor DigitMapDescriptor,
+ observedEventsDescriptor ObservedEventsDescriptor,
+ statisticsDescriptor StatisticsDescriptor,
+ packagesDescriptor PackagesDescriptor,
+ emptyDescriptors AuditDescriptor,
+ ...
+ }
+
+ AuditDescriptor ::= SEQUENCE
+ {
+ auditToken BIT STRING
+ {
+ muxToken(0), modemToken(1), mediaToken(2),
+ eventsToken(3), signalsToken(4),
+ digitMapToken(5), statsToken(6),
+ observedEventsToken(7),
+ packagesToken(8), eventBufferToken(9)
+ } OPTIONAL,
+ ...,
+ auditPropertyToken SEQUENCE OF IndAuditParameter OPTIONAL
+ }
+
+ IndAuditParameter ::= CHOICE
+ {
+ indaudmediaDescriptor IndAudMediaDescriptor,
+ indaudeventsDescriptor IndAudEventsDescriptor,
+ indaudeventBufferDescriptor IndAudEventBufferDescriptor,
+ indaudsignalsDescriptor IndAudSignalsDescriptor,
+ indauddigitMapDescriptor IndAudDigitMapDescriptor,
+ indaudstatisticsDescriptor IndAudStatisticsDescriptor,
+ indaudpackagesDescriptor IndAudPackagesDescriptor,
+ ...
+ }
+
+
+ Groves et al Expires - October 2003 [Page 105]
+ Megaco Protocol version 2 April 2003
+
+
+
+ IndAudMediaDescriptor ::= SEQUENCE
+ {
+
+ termStateDescr IndAudTerminationStateDescriptor OPTIONAL,
+ streams CHOICE
+ {
+ oneStream IndAudStreamParms,
+ multiStream SEQUENCE OF IndAudStreamDescriptor
+ } OPTIONAL,
+ ...
+ }
+
+ IndAudStreamDescriptor ::= SEQUENCE
+ {
+ streamID StreamID,
+ streamParms IndAudStreamParms
+ }
+
+ IndAudStreamParms ::= SEQUENCE
+ {
+ localControlDescriptor IndAudLocalControlDescriptor OPTIONAL,
+ localDescriptor IndAudLocalRemoteDescriptor OPTIONAL,
+ remoteDescriptor IndAudLocalRemoteDescriptor OPTIONAL,
+ ...
+ }
+
+ IndAudLocalControlDescriptor ::= SEQUENCE
+ {
+ streamMode NULL OPTIONAL,
+ reserveValue NULL OPTIONAL,
+ reserveGroup NULL OPTIONAL,
+ propertyParms SEQUENCE OF IndAudPropertyParm OPTIONAL,
+ ...
+ }
+
+ IndAudPropertyParm ::= SEQUENCE
+ {
+ name PkgdName,
+ ...
+ }
+
+ IndAudLocalRemoteDescriptor ::= SEQUENCE
+ {
+ propGroupID INTEGER(0..65535) OPTIONAL,
+ propGrps IndAudPropertyGroup,
+ ...
+ }
+
+
+
+ Groves et al Expires - October 2003 [Page 106]
+ Megaco Protocol version 2 April 2003
+
+
+ IndAudPropertyGroup ::= SEQUENCE OF IndAudPropertyParm
+
+ IndAudTerminationStateDescriptor ::= SEQUENCE
+ {
+ propertyParms SEQUENCE OF IndAudPropertyParm,
+ eventBufferControl NULL OPTIONAL,
+ serviceState NULL OPTIONAL,
+ ...
+ }
+
+ IndAudEventsDescriptor ::= SEQUENCE
+ {
+ requestID RequestID OPTIONAL,
+ pkgdName PkgdName,
+ streamID StreamID OPTIONAL,
+ ...
+ }
+
+ IndAudEventBufferDescriptor ::= SEQUENCE
+ {
+ eventName PkgdName,
+ streamID StreamID OPTIONAL,
+ ...
+ }
+
+ IndAudSignalsDescriptor ::=CHOICE
+ {
+ signal IndAudSignal,
+ seqSigList IndAudSeqSigList,
+ ...
+ }
+
+ IndAudSeqSigList ::= SEQUENCE
+ {
+ id INTEGER(0..65535),
+ signalList IndAudSignal OPTIONAL
+ }
+
+ IndAudSignal ::= SEQUENCE
+ {
+ signalName PkgdName,
+ streamID StreamID OPTIONAL,
+ ...
+ }
+
+ IndAudDigitMapDescriptor ::= SEQUENCE
+ {
+ digitMapName DigitMapNameOPTIONAL
+ }
+
+
+ Groves et al Expires - October 2003 [Page 107]
+ Megaco Protocol version 2 April 2003
+
+
+
+ IndAudStatisticsDescriptor ::= SEQUENCE
+ {
+ statName PkgdName
+ }
+
+ IndAudPackagesDescriptor ::= SEQUENCE
+ {
+ packageName Name,
+ packageVersion INTEGER(0..99),
+ ...
+ }
+
+ NotifyRequest ::= SEQUENCE
+ {
+ terminationID TerminationIDList,
+ observedEventsDescriptor ObservedEventsDescriptor,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ ...
+ }
+
+ NotifyReply ::= SEQUENCE
+ {
+ terminationID TerminationIDList,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ ...
+ }
+
+ ObservedEventsDescriptor ::= SEQUENCE
+ {
+ requestId RequestID,
+ observedEventLst SEQUENCE OF ObservedEvent
+ }
+
+ ObservedEvent ::= SEQUENCE
+ {
+ eventName EventName,
+ streamID StreamID OPTIONAL,
+ eventParList SEQUENCE OF EventParameter,
+ timeNotation TimeNotation OPTIONAL,
+ ...
+ }
+
+ EventName ::= PkgdName
+
+ EventParameter ::= SEQUENCE
+ {
+ eventParameterName Name,
+ value Value,
+
+
+ Groves et al Expires - October 2003 [Page 108]
+ Megaco Protocol version 2 April 2003
+
+
+ -- For use of extraInfo see the comment related to PropertyParm
+ extraInfo CHOICE
+ {
+ relation Relation,
+ range BOOLEAN,
+ sublist BOOLEAN
+ } OPTIONAL,
+ ...
+
+ }
+
+ ServiceChangeRequest ::= SEQUENCE
+ {
+ terminationID TerminationIDList,
+ serviceChangeParms ServiceChangeParm,
+ ...
+ }
+
+ ServiceChangeReply ::= SEQUENCE
+ {
+ terminationID TerminationIDList,
+ serviceChangeResult ServiceChangeResult,
+ ...
+ }
+
+ -- For ServiceChangeResult, no parameters are mandatory. Hence the
+ -- distinction between ServiceChangeParm and ServiceChangeResParm.
+
+ ServiceChangeResult ::= CHOICE
+ {
+ errorDescriptor ErrorDescriptor,
+ serviceChangeResParms ServiceChangeResParm
+ }
+
+ WildcardField ::= OCTET STRING(SIZE(1))
+
+ TerminationID ::= SEQUENCE
+ {
+ wildcard SEQUENCE OF WildcardField,
+ id OCTET STRING(SIZE(1..8)),
+ ...
+ }
+ -- See A.1 for explanation of wildcarding mechanism.
+ -- Termination ID 0xFFFFFFFFFFFFFFFF indicates the ROOT Termination.
+
+ TerminationIDList ::= SEQUENCE OF TerminationID
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 109]
+ Megaco Protocol version 2 April 2003
+
+
+ MediaDescriptor ::= SEQUENCE
+ {
+ termStateDescr TerminationStateDescriptor OPTIONAL,
+ streams CHOICE
+ {
+ oneStream StreamParms,
+ multiStream SEQUENCE OF StreamDescriptor
+ } OPTIONAL,
+ ...
+ }
+
+ StreamDescriptor ::= SEQUENCE
+ {
+ streamID StreamID,
+ streamParms StreamParms
+ }
+
+ StreamParms ::= SEQUENCE
+ {
+ localControlDescriptor LocalControlDescriptor OPTIONAL,
+ localDescriptor LocalRemoteDescriptor OPTIONAL,
+ remoteDescriptor LocalRemoteDescriptor OPTIONAL,
+ ...
+ }
+
+ LocalControlDescriptor ::= SEQUENCE
+ {
+ streamMode StreamMode OPTIONAL,
+ reserveValue BOOLEAN OPTIONAL,
+ reserveGroup BOOLEAN OPTIONAL,
+ propertyParms SEQUENCE OF PropertyParm,
+ ...
+ }
+
+ StreamMode ::= ENUMERATED
+ {
+ sendOnly(0),
+ recvOnly(1),
+ sendRecv(2),
+ inactive(3),
+ loopBack(4),
+ ...
+ }
+
+ -- In PropertyParm, value is a SEQUENCE OF octet string. When sent
+ -- by an MGC the interpretation is as follows:
+ -- empty sequence means CHOOSE
+ -- one element sequence specifies value
+ -- If the sublist field is not selected, a longer sequence means
+
+
+ Groves et al Expires - October 2003 [Page 110]
+ Megaco Protocol version 2 April 2003
+
+
+ -- "choose one of the values" (i.e. value1 OR value2 OR ...)
+ -- If the sublist field is selected,
+ -- a sequence with more than one element encodes the value of a
+ -- list-valued property (i.e. value1 AND value2 AND ...).
+ -- The relation field may only be selected if the value sequence
+ -- has length 1. It indicates that the MG has to choose a value
+ -- for the property. E.g. x > 3 (using the greaterThan
+ -- value for relation) instructs the MG to choose any value larger
+ -- than 3 for property x.
+ -- The range field may only be selected if the value sequence
+ -- has length 2. It indicates that the MG has to choose a value
+ -- in the range between the first octet in the value sequence and
+ -- the trailing octet in the value sequence, including the
+ -- boundary values.
+ -- When sent by the MG, only responses to an AuditCapability request
+ -- may contain multiple values, a range, or a relation field.
+
+ PropertyParm ::= SEQUENCE
+ {
+ name PkgdName,
+ value SEQUENCE OF OCTET STRING,
+ extraInfo CHOICE
+ {
+ relation Relation,
+ range BOOLEAN,
+ sublist BOOLEAN
+ } OPTIONAL,
+ ...
+ }
+
+ Name ::= OCTET STRING(SIZE(2))
+
+ PkgdName ::= OCTET STRING(SIZE(4))
+ -- represents Package Name (2 octets) plus Property, Event,
+ -- Signal Names or Statistics ID. (2 octets)
+ -- To wildcard a package use 0xFFFF for first two octets, choose
+ -- is not allowed. To reference native property tag specified in
+ -- Annex C, use 0x0000 as first two octets.
+ -- To wildcard a Property, Event, Signal, or Statistics ID, use
+ -- 0xFFFF for last two octets, choose is not allowed.
+ -- Wildcarding of Package Name is permitted only if Property,
+ -- Event, Signal, or Statistics ID are
+ -- also wildcarded.
+
+ Relation ::= ENUMERATED
+ {
+ greaterThan(0),
+ smallerThan(1),
+ unequalTo(2),
+
+
+ Groves et al Expires - October 2003 [Page 111]
+ Megaco Protocol version 2 April 2003
+
+
+ ...
+ }
+
+ LocalRemoteDescriptor ::= SEQUENCE
+ {
+ propGrps SEQUENCE OF PropertyGroup,
+ ...
+ }
+
+ PropertyGroup ::= SEQUENCE OF PropertyParm
+
+ TerminationStateDescriptor ::= SEQUENCE
+ {
+ propertyParms SEQUENCE OF PropertyParm,
+ eventBufferControl EventBufferControl OPTIONAL,
+ serviceState ServiceState OPTIONAL,
+ ...
+ }
+
+ EventBufferControl ::= ENUMERATED
+ {
+ off(0),
+ lockStep(1),
+ ...
+ }
+
+ ServiceState ::= ENUMERATED
+ {
+ test(0),
+ outOfSvc(1),
+ inSvc(2),
+ ...
+ }
+
+ MuxDescriptor ::= SEQUENCE
+ {
+ muxType MuxType,
+ termList SEQUENCE OF TerminationID,
+ nonStandardData NonStandardData OPTIONAL,
+ ...
+ }
+
+ MuxType ::= ENUMERATED
+ {
+ h221(0),
+ h223(1),
+ h226(2),
+ v76(3),
+ ...,
+
+
+ Groves et al Expires - October 2003 [Page 112]
+ Megaco Protocol version 2 April 2003
+
+
+ nx64k(4)
+ }
+
+ StreamID ::= INTEGER(0..65535) -- 16-bit unsigned integer
+
+ EventsDescriptor ::= SEQUENCE
+ {
+ requestID RequestID OPTIONAL,
+ -- RequestID must be present if eventList
+ -- is non empty
+ eventList SEQUENCE OF RequestedEvent,
+ ...
+ }
+
+ RequestedEvent ::= SEQUENCE
+ {
+ pkgdName PkgdName,
+ streamID StreamID OPTIONAL,
+ eventAction RequestedActions OPTIONAL,
+ evParList SEQUENCE OF EventParameter,
+ ...
+ }
+
+ RequestedActions ::= SEQUENCE
+ {
+ keepActive BOOLEAN OPTIONAL,
+ eventDM EventDM OPTIONAL,
+ secondEvent SecondEventsDescriptor OPTIONAL,
+ signalsDescriptor SignalsDescriptor OPTIONAL,
+ ...
+ }
+
+ EventDM ::= CHOICE
+ {
+ digitMapName DigitMapName,
+ digitMapValue DigitMapValue
+ }
+
+ SecondEventsDescriptor ::= SEQUENCE
+ {
+ requestID RequestID OPTIONAL,
+ eventList SEQUENCE OF SecondRequestedEvent,
+ ...
+ }
+
+ SecondRequestedEvent ::= SEQUENCE
+ {
+ pkgdName PkgdName,
+ streamID StreamID OPTIONAL,
+
+
+ Groves et al Expires - October 2003 [Page 113]
+ Megaco Protocol version 2 April 2003
+
+
+ eventAction SecondRequestedActions OPTIONAL,
+ evParList SEQUENCE OF EventParameter,
+ ...
+ }
+
+ SecondRequestedActions ::= SEQUENCE
+ {
+ keepActive BOOLEAN OPTIONAL,
+ eventDM EventDM OPTIONAL,
+ signalsDescriptor SignalsDescriptor OPTIONAL,
+ ...
+ }
+
+ EventBufferDescriptor ::= SEQUENCE OF EventSpec
+
+ EventSpec ::= SEQUENCE
+ {
+ eventName EventName,
+ streamID StreamID OPTIONAL,
+ eventParList SEQUENCE OF EventParameter,
+ ...
+ }
+
+
+ SignalsDescriptor ::= SEQUENCE OF SignalRequest
+
+ SignalRequest ::= CHOICE
+ {
+ signal Signal,
+ seqSigList SeqSigList,
+ ...
+ }
+
+ SeqSigList ::= SEQUENCE
+ {
+ id INTEGER(0..65535),
+ signalList SEQUENCE OF Signal
+ }
+
+ Signal ::= SEQUENCE
+ {
+ signalName SignalName,
+ streamID StreamID OPTIONAL,
+ sigType SignalType OPTIONAL,
+ duration INTEGER (0..65535) OPTIONAL,
+ notifyCompletion NotifyCompletion OPTIONAL,
+ keepActive BOOLEAN OPTIONAL,
+ sigParList SEQUENCE OF SigParameter,
+ ...
+
+
+ Groves et al Expires - October 2003 [Page 114]
+ Megaco Protocol version 2 April 2003
+
+
+ }
+
+ SignalType ::= ENUMERATED
+ {
+ brief(0),
+ onOff(1),
+ timeOut(2),
+ ...
+ }
+
+ SignalName ::= PkgdName
+
+ NotifyCompletion ::= BIT STRING
+ {
+ onTimeOut(0), onInterruptByEvent(1),
+ onInterruptByNewSignalDescr(2), otherReason(3)
+ }
+
+ SigParameter ::= SEQUENCE
+ {
+ sigParameterName Name,
+ value Value,
+ -- For use of extraInfo see the comment related to PropertyParm
+ extraInfo CHOICE
+ {
+ relation Relation,
+ range BOOLEAN,
+ sublist BOOLEAN
+ } OPTIONAL,
+ ...
+ }
+
+ -- For an AuditCapReply with all events, the RequestID SHALL be ALL.
+ -- ALL is represented by 0xffffffff.
+
+ RequestID ::= INTEGER(0..4294967295) -- 32-bit unsigned integer
+
+ ModemDescriptor ::= SEQUENCE
+ {
+ mtl SEQUENCE OF ModemType,
+ mpl SEQUENCE OF PropertyParm,
+ nonStandardData NonStandardData OPTIONAL
+ }
+
+ ModemType ::= ENUMERATED
+ {
+ v18(0),
+ v22(1),
+ v22bis(2),
+
+
+ Groves et al Expires - October 2003 [Page 115]
+ Megaco Protocol version 2 April 2003
+
+
+ v32(3),
+ v32bis(4),
+ v34(5),
+ v90(6),
+ v91(7),
+ synchISDN(8),
+ ...
+ }
+
+ DigitMapDescriptor ::= SEQUENCE
+ {
+ digitMapName DigitMapName OPTIONAL,
+ digitMapValue DigitMapValue OPTIONAL
+ }
+
+ DigitMapName ::= Name
+
+ DigitMapValue ::= SEQUENCE
+ {
+ startTimer INTEGER(0..99) OPTIONAL,
+ shortTimer INTEGER(0..99) OPTIONAL,
+ longTimer INTEGER(0..99) OPTIONAL,
+ digitMapBody IA5String,
+ -- Units are seconds for start, short and long timers, and
+ -- hundreds of milliseconds for duration timer. Thus start,
+ -- short, and long range from 1 to 99 seconds and duration
+ -- from 100 ms to 9.9 s
+ -- See A.3 for explanation of digit map syntax
+ ...,
+ durationTimer INTEGER (0..99) OPTIONAL
+ }
+
+ ServiceChangeParm ::= SEQUENCE
+ {
+ serviceChangeMethod ServiceChangeMethod,
+ serviceChangeAddress ServiceChangeAddress OPTIONAL,
+ serviceChangeVersion INTEGER(0..99) OPTIONAL,
+ serviceChangeProfile ServiceChangeProfile OPTIONAL,
+ serviceChangeReason Value,
+ -- A serviceChangeReason consists of a numeric reason code
+ -- and an optional text description.
+ -- The serviceChangeReason SHALL be a string consisting of
+ -- a decimal reason code, optionally followed by a single
+ -- space character and a textual description string.
+ -- This string is first BER-encoded as an IA5String.
+ -- The result of this BER-encoding is then encoded as
+ -- an ASN.1 OCTET STRING type, "double wrapping" the
+ -- value
+ -- as was done for package elements.
+
+
+ Groves et al Expires - October 2003 [Page 116]
+ Megaco Protocol version 2 April 2003
+
+
+ serviceChangeDelay INTEGER(0..4294967295) OPTIONAL,
+ -- 32-bit unsigned integer
+ serviceChangeMgcId MId OPTIONAL,
+ timeStamp TimeNotation OPTIONAL,
+ nonStandardData NonStandardData OPTIONAL,
+ ...,
+ serviceChangeInfo AuditDescriptor OPTIONAL
+ }
+
+ ServiceChangeAddress ::= CHOICE
+ {
+ portNumber INTEGER(0..65535), -- TCP/UDP port number
+ ip4Address IP4Address,
+ ip6Address IP6Address,
+ domainName DomainName,
+ deviceName PathName,
+ mtpAddress OCTET STRING(SIZE(2..4)),
+ ...
+ }
+
+ ServiceChangeResParm ::= SEQUENCE
+ {
+ serviceChangeMgcId MId OPTIONAL,
+ serviceChangeAddress ServiceChangeAddress OPTIONAL,
+ serviceChangeVersion INTEGER(0..99) OPTIONAL,
+ serviceChangeProfile ServiceChangeProfile OPTIONAL,
+ timestamp TimeNotation OPTIONAL,
+ ...
+ }
+
+ ServiceChangeMethod ::= ENUMERATED
+ {
+ failover(0),
+ forced(1),
+ graceful(2),
+ restart(3),
+ disconnected(4),
+ handOff(5),
+ ...
+ }
+
+ ServiceChangeProfile ::= SEQUENCE
+ {
+ profileName IA5String(SIZE (1..67))
+
+ -- 64 characters for name, 1 for "/", 2 for version to match ABNF
+ }
+
+ PackagesDescriptor ::= SEQUENCE OF PackagesItem
+
+
+ Groves et al Expires - October 2003 [Page 117]
+ Megaco Protocol version 2 April 2003
+
+
+
+ PackagesItem ::= SEQUENCE
+ {
+ packageName Name,
+ packageVersion INTEGER(0..99),
+ ...
+ }
+
+ StatisticsDescriptor ::= SEQUENCE OF StatisticsParameter
+
+ StatisticsParameter ::= SEQUENCE
+ {
+ statName PkgdName,
+ statValue Value OPTIONAL
+ }
+
+ NonStandardData ::= SEQUENCE
+ {
+ nonStandardIdentifier NonStandardIdentifier,
+ data OCTET STRING
+ }
+
+ NonStandardIdentifier ::= CHOICE
+ {
+ object OBJECT IDENTIFIER,
+ h221NonStandard H221NonStandard,
+ experimental IA5String(SIZE(8)),
+ -- first two characters SHOULD be "X-" or "X+"
+ ...
+ }
+
+ H221NonStandard ::= SEQUENCE
+ { t35CountryCode1 INTEGER(0..255),
+ t35CountryCode2 INTEGER(0..255), -- country, as per T.35
+ t35Extension INTEGER(0..255), -- assigned nationally
+ manufacturerCode INTEGER(0..65535), -- assigned nationally
+ ...
+ }
+
+ TimeNotation ::= SEQUENCE
+ {
+ date IA5String(SIZE(8)), -- yyyymmdd format
+ time IA5String(SIZE(8)) -- hhmmssss format
+ -- per ISO 8601:1988
+ }
+
+ Value ::= SEQUENCE OF OCTET STRING
+
+
+
+
+ Groves et al Expires - October 2003 [Page 118]
+ Megaco Protocol version 2 April 2003
+
+
+ END
+
+
+
+
+ A.3 Digit maps and path names
+
+ From a syntactic viewpoint, digit maps are strings with syntactic
+ restrictions imposed upon them. The syntax of valid digit maps is
+ specified in ABNF [RFC 2234]. The syntax for digit maps presented in
+ this subclause is for illustrative purposes only. The definition of
+ digitMap in Annex B takes precedence in the case of differences
+ between the two.
+
+ digitMap = (digitString
+ / LWSP "(" LWSP digitStringList LWSP ")" LWSP)
+
+ digitStringList = digitString *( LWSP "|" LWSP digitString )
+
+ digitString = 1*(digitStringElement)
+
+ digitStringElement = digitPosition [DOT]
+
+ digitPosition = digitMapLetter / digitMapRange
+
+ digitMapRange = ("x" / (LWSP "[" LWSP digitLetter LWSP "]" LWSP))
+
+ digitLetter = *((DIGIT "-" DIGIT) /digitMapLetter)
+
+ digitMapLetter = DIGIT ;digits 0-9
+ / %x41-4B / %x61-6B ;a-k and A-K
+ / "L"/ "S" / "T" ;Inter-event timers
+ ;(long, short, start)
+ / "Z" ;Long duration event
+
+ DOT = %x2E ; "."
+ LWSP = *(WSP / COMMENT / EOL)
+ WSP = SP / HTAB
+ COMMENT = ";" *(SafeChar / RestChar / WSP) EOL
+ EOL = (CR [LF]) / LF
+ SP = %x20
+ HTAB = %x09
+ CR = %x0D
+ LF = %x0A
+
+ SafeChar = DIGIT / ALPHA / "+" / "-" / "&" / "!" / "_" / "/" /
+ "'" / "?" / "@" / "^" / "`" / "~" / "*" / "$" / "\" /
+ "(" / ")" / "%" / "."
+
+
+
+ Groves et al Expires - October 2003 [Page 119]
+ Megaco Protocol version 2 April 2003
+
+
+ RestChar = ";" / "[" / "]" / "{" / "}" / ":" / "," / "#" /
+ "<" / ">" / "=" / %x22
+
+ DIGIT = %x30-39 ; digits 0 through 9
+ ALPHA = %x41-5A / %x61-7A ; A-Z, a-z
+
+ A path name is also a string with syntactic restrictions imposed upon
+ it. The ABNF production defining it is copied from Annex B.
+
+ ; Total length of pathNAME must not exceed 64 chars.
+ pathNAME = ["*"] NAME *("/" / "*"/ ALPHA / DIGIT /"_" / "$" )
+ ["@" pathDomainName ]
+
+ ; ABNF allows two or more consecutive "." although it is meaningless
+ ; in a path domain name.
+ pathDomainName = (ALPHA / DIGIT / "*" )
+ *63(ALPHA / DIGIT / "-" / "*" / ".")
+
+ NAME = ALPHA *63(ALPHA / DIGIT / "_" )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 120]
+ Megaco Protocol version 2 April 2003
+
+
+ ANNEX B TEXT ENCODING OF THE PROTOCOL
+
+ B.1 Coding of wildcards
+
+ In a text encoding of the protocol, while TerminationIDs are
+ arbitrary, by judicious choice of names, the wildcard character, "*"
+ may be made more useful. When the wildcard character is encountered,
+ it will "match" all TerminationIDs having the same previous and
+ following characters (if appropriate). For example, if there were
+ TerminationIDs of R13/3/1, R13/3/2 and R13/3/3, the TerminationID
+ R13/3/* would match all of them. There are some circumstances where
+ ALL Terminations must be referred to. The TerminationID "*" suffices,
+ and is referred to as ALL. The CHOOSE TerminationID "$" may be used
+ to signal to the MG that it has to create an ephemeral Termination or
+ select an idle physical Termination.
+
+ B.2 ABNF specification
+
+ The protocol syntax is presented in ABNF according to RFC 2234.
+
+ Note 1 - This syntax specification does not enforce all restrictions
+ on element inclusions and values. Some additional restrictions are
+ stated in comments and other restrictions appear in the text of this
+ recommendation. These additional restrictions are part of the
+ protocol even though not enforced by this specification.
+
+ Note 2 - The syntax is context-dependent. For example, "Add" can be
+ the AddToken or a NAME depending on the context in which it occurs.
+
+ Everything in the ABNF and text encoding is case insensitive. This
+ includes TerminationIDs, digitmap Ids etc. SDP is case sensitive as
+ per RFC 2327.
+
+ ; NOTE -- The ABNF in this section uses the VALUE construct (or lists
+ ; of VALUE constructs) to encode various package element values
+ ; (properties, signal parameters, etc.). The types of these values
+ ; vary and are specified the relevant package definition. Several
+ ; such types are described in section 12.2.
+ ;
+ ; The ABNF specification for VALUE allows a quotedString form or a
+ ; collection of SafeChars. The encoding of package element values
+ ; into ABNF VALUES is specified below. If a type's encoding allows
+ ; characters other than SafeChars, the quotedString form MUST be used
+ ; for all values of that type, even for specific values that consist
+ ; only of SafeChars.
+ ;
+ ; String: A string MUST use the quotedString form of VALUE and can
+ ; contain anything allowable in the quotedString form.
+ ;
+
+
+ Groves et al Expires - October 2003 [Page 121]
+ Megaco Protocol version 2 April 2003
+
+
+ ; Integer, Double, and Unsigned Integer: Decimal values can be
+ ; encoded using characters 0-9. Hexadecimal values must be prefixed
+ ; with '0x' and can use characters 0-9,a-f,A-F. An octal format is
+ ; not supported. Negative integers start with '-' and MUST be
+ ; Decimal. The SafeChar form of VALUE MUST be used.
+ ;
+ ; Character: A UTF-8 encoding of a single letter surrounded by
+ ; double quotes.
+ ;
+ ; Enumeration: An enumeration MUST use the SafeChar form of VALUE
+ ; and can contain anything allowable in the SafeChar form.
+ ;
+ ; Boolean: Boolean values are encoded as "on" and "off" and are
+ ; case insensitive. The SafeChar form of VALUE MUST be used.
+ ;
+ ; Future types: Any defined types MUST fit within
+ ; the ABNF specification of VALUE. Specifically, if a type's
+ ; encoding allows characters other than SafeChars, the quotedString
+ ; form MUST be used for all values of that type, even for specific
+ ; values that consist only of SafeChars.
+ ;
+ ; Note that there is no way to use the double quote character within
+ ; a value.
+ ;
+ ; Note that SDP disallows whitespace at the beginning of a line,
+ ; Megaco ABNF allows whitespace before the beginning of the SDP in
+ ; the Local/Remote descriptor. Parsers SHOULD accept whitespace
+ ; between the LBRKT following the Local/Remote token and the
+ ; beginning of the SDP.
+
+ megacoMessage = LWSP [authenticationHeader SEP ] message
+
+ authenticationHeader = AuthToken EQUAL SecurityParmIndex COLON
+ SequenceNum COLON AuthData
+
+ SecurityParmIndex = "0x" 8(HEXDIG)
+ SequenceNum = "0x" 8(HEXDIG)
+ AuthData = "0x" 24*64(HEXDIG)
+
+ message = MegacopToken SLASH Version SEP mId SEP messageBody
+ ; The version of the protocol defined here is equal to 2.
+
+ messageBody = ( errorDescriptor / transactionList )
+
+ transactionList = 1*( transactionRequest / transactionReply /
+ transactionPending / transactionResponseAck )
+ ; Use of response acks is dependent on underlying transport
+
+
+
+
+ Groves et al Expires - October 2003 [Page 122]
+ Megaco Protocol version 2 April 2003
+
+
+ transactionPending = PendingToken EQUAL TransactionID
+ LBRKT RBRKT
+
+ transactionResponseAck = ResponseAckToken LBRKT transactionAck
+ *(COMMA transactionAck) RBRKT
+ transactionAck = TransactionID / (TransactionID "-" TransactionID)
+
+ transactionRequest = TransToken EQUAL TransactionID LBRKT
+ actionRequest *(COMMA actionRequest) RBRKT
+
+ actionRequest = CtxToken EQUAL ContextID LBRKT ((
+ contextRequest [COMMA commandRequestList])
+ / commandRequestList) RBRKT
+
+ contextRequest = ((contextProperties [COMMA contextAudit])
+ / contextAudit)
+
+ contextProperties = contextProperty *(COMMA contextProperty)
+
+ ; at-most-once
+ contextProperty = (topologyDescriptor / priority / EmergencyToken)
+
+ contextAudit = ContextAuditToken LBRKT
+ contextAuditProperties *(COMMA contextAuditProperties) RBRKT
+
+ ; at-most-once
+ contextAuditProperties = ( TopologyToken / EmergencyToken /
+ PriorityToken )
+
+ ; "O-" indicates an optional command
+ ; "W-" indicates a wildcarded response to a command
+ commandRequestList= ["O-"] ["W-"] commandRequest *
+ (COMMA ["O-"] ["W-"]commandRequest)
+
+ commandRequest = ( ammRequest / subtractRequest / auditRequest /
+ notifyRequest / serviceChangeRequest)
+
+ transactionReply = ReplyToken EQUAL TransactionID LBRKT
+ [ ImmAckRequiredToken COMMA]
+ ( errorDescriptor / actionReplyList ) RBRKT
+
+ actionReplyList = actionReply *(COMMA actionReply )
+
+ actionReply = CtxToken EQUAL ContextID LBRKT
+ ( errorDescriptor / commandReply ) /
+ (commandReply COMMA errorDescriptor) ) RBRKT
+
+ commandReply = (( contextProperties [COMMA commandReplyList] ) /
+ commandReplyList )
+
+
+ Groves et al Expires - October 2003 [Page 123]
+ Megaco Protocol version 2 April 2003
+
+
+
+
+ commandReplyList = commandReplys *(COMMA commandReplys )
+
+ commandReplys = (serviceChangeReply / auditReply / ammsReply /
+ notifyReply )
+
+ ;Add Move and Modify have the same request parameters
+ ammRequest = (AddToken / MoveToken / ModifyToken ) EQUAL
+ TerminationID [LBRKT ammParameter *(COMMA
+ ammParameter) RBRKT]
+
+ ;at-most-once
+ ammParameter = (mediaDescriptor / modemDescriptor /
+ muxDescriptor / eventsDescriptor /
+ signalsDescriptor / digitMapDescriptor /
+ eventBufferDescriptor / auditDescriptor)
+
+ ammsReply = (AddToken / MoveToken / ModifyToken /
+ SubtractToken ) EQUAL TerminationID [ LBRKT
+ terminationAudit RBRKT ]
+
+ subtractRequest = SubtractToken EQUAL TerminationID
+ [ LBRKT auditDescriptor RBRKT]
+
+ auditRequest = (AuditValueToken / AuditCapToken ) EQUAL
+ TerminationID LBRKT auditDescriptor RBRKT
+
+ auditReply = (AuditValueToken / AuditCapToken )
+ ( contextTerminationAudit / auditOther)
+
+ auditOther = EQUAL TerminationID [LBRKT terminationAudit RBRKT]
+
+ terminationAudit = auditReturnParameter *(COMMA auditReturnParameter)
+
+ contextTerminationAudit = EQUAL CtxToken ( terminationIDList /
+ LBRKT errorDescriptor RBRKT )
+
+ auditReturnParameter = (mediaDescriptor / modemDescriptor /
+ muxDescriptor / eventsDescriptor / signalsDescriptor /
+ digitMapDescriptor / observedEventsDescriptor /
+ eventBufferDescriptor / statisticsDescriptor /
+ packagesDescriptor / errorDescriptor / auditItem)
+
+ auditDescriptor = AuditToken LBRKT [ auditItem *(COMMA auditItem) ]
+ RBRKT
+
+ notifyRequest = NotifyToken EQUAL TerminationID
+ LBRKT ( observedEventsDescriptor
+
+
+ Groves et al Expires - October 2003 [Page 124]
+ Megaco Protocol version 2 April 2003
+
+
+ [ COMMA errorDescriptor ] ) RBRKT
+
+ notifyReply = NotifyToken EQUAL TerminationID
+ [ LBRKT errorDescriptor RBRKT ]
+
+ serviceChangeRequest = ServiceChangeToken EQUAL TerminationID
+ LBRKT serviceChangeDescriptor RBRKT
+
+ serviceChangeReply = ServiceChangeToken EQUAL TerminationID
+ [LBRKT (errorDescriptor /
+ serviceChangeReplyDescriptor) RBRKT]
+
+ errorDescriptor = ErrorToken EQUAL ErrorCode
+ LBRKT [quotedString] RBRKT
+
+ ErrorCode = 1*4(DIGIT) ; could be extended
+
+
+ TransactionID = UINT32
+
+ ;The values 0x0, 0xFFFFFFFE and 0xFFFFFFFF are reserved.
+ ContextID = (UINT32 / "*" / "-" / "$")
+
+ TerminationID = "ROOT" / pathNAME / "$" / "*"
+
+ terminationIDList = LBRKT TerminationID *(COMMA TerminationID) RBRKT
+
+
+ mId = (( domainAddress / domainName )
+ [":" portNumber]) / mtpAddress / deviceName
+
+ ; ABNF allows two or more consecutive "." although it is meaningless
+ ; in a domain name.
+ domainName = "<" (ALPHA / DIGIT) *63(ALPHA / DIGIT / "-" /
+ ".") ">"
+
+ deviceName = pathNAME
+
+ domainAddress = "[" (IPv4address / IPv6address) "]"
+
+ ;RFC2373 contains the definition of IP6Addresses.
+ IPv6address = hexpart [ ":" IPv4address ]
+
+ IPv4address = V4hex DOT V4hex DOT V4hex DOT V4hex
+ V4hex = 1*3(DIGIT) ; "0".."255"
+
+ ; this production, while occurring in RFC2373, is not referenced
+ ; IPv6prefix = hexpart SLASH 1*2DIGIT
+ hexpart = hexseq "::" [ hexseq ] / "::" [ hexseq ] / hexseq
+
+
+ Groves et al Expires - October 2003 [Page 125]
+ Megaco Protocol version 2 April 2003
+
+
+ hexseq = hex4 *( ":" hex4)
+ hex4 = 1*4HEXDIG
+
+ portNumber = UINT16
+
+ ; Addressing structure of mtpAddress:
+ ; 25 - 15 0
+ ; | PC | NI |
+ ; 24 - 14 bits 2 bits
+ ; Note: 14 bits are defined for international use.
+ ; Two national options exist where the point code is 16 or 24 bits.
+ ; To octet align the mtpAddress the MSBs shall be encoded as 0s.
+ ; An octet shall be represented by 2 hex digits.
+ mtpAddress = MTPToken LBRKT 4*8 (HEXDIG) RBRKT
+
+ ; Total length of pathNAME must not exceed 64 chars.
+ pathNAME = ["*"] NAME *("/" / "*"/ ALPHA / DIGIT /"_" / "$" )
+ ["@" pathDomainName ]
+
+ ; ABNF allows two or more consecutive "." although it is meaningless
+ ; in a path domain name.
+ pathDomainName = (ALPHA / DIGIT / "*" )
+ *63(ALPHA / DIGIT / "-" / "*" / ".")
+
+
+ mediaDescriptor = MediaToken LBRKT mediaParm *(COMMA mediaParm) RBRKT
+
+ ; at-most one terminationStateDescriptor
+ ; and either streamParm(s) or streamDescriptor(s) but not both
+ mediaParm = (streamParm / streamDescriptor /
+ terminationStateDescriptor)
+
+ ; at-most-once per item
+ streamParm = ( localDescriptor / remoteDescriptor /
+ localControlDescriptor )
+
+ streamDescriptor = StreamToken EQUAL StreamID LBRKT streamParm
+ *(COMMA streamParm) RBRKT
+
+ localControlDescriptor = LocalControlToken LBRKT localParm
+ *(COMMA localParm) RBRKT
+
+ ; at-most-once per item except for propertyParm
+ localParm = ( streamMode / propertyParm / reservedValueMode
+ / reservedGroupMode )
+
+ reservedValueMode = ReservedValueToken EQUAL ( "ON" / "OFF" )
+ reservedGroupMode = ReservedGroupToken EQUAL ( "ON" / "OFF" )
+
+
+
+ Groves et al Expires - October 2003 [Page 126]
+ Megaco Protocol version 2 April 2003
+
+
+ streamMode = ModeToken EQUAL streamModes
+
+ streamModes = (SendonlyToken / RecvonlyToken / SendrecvToken /
+ InactiveToken / LoopbackToken )
+
+ propertyParm = pkgdName parmValue
+ parmValue = (EQUAL alternativeValue/ INEQUAL VALUE)
+ alternativeValue = ( VALUE
+ / LSBRKT VALUE *(COMMA VALUE) RSBRKT
+ ; sublist (i.e. A AND B AND ...)
+ / LBRKT VALUE *(COMMA VALUE) RBRKT
+ ; alternatives (i.e. A OR B OR ...)
+ / LSBRKT VALUE COLON VALUE RSBRKT )
+ ; range
+
+ INEQUAL = LWSP (">" / "<" / "#" ) LWSP
+ LSBRKT = LWSP "[" LWSP
+ RSBRKT = LWSP "]" LWSP
+
+ ; Note - The octet zero is not among the permitted characters in
+ ; octet string. As the current definition is limited to SDP, and a
+ ; zero octet would not be a legal character in SDP, this is not a
+ ; concern.
+ localDescriptor = LocalToken LBRKT octetString RBRKT
+
+ remoteDescriptor = RemoteToken LBRKT octetString RBRKT
+
+ eventBufferDescriptor= EventBufferToken [ LBRKT eventSpec
+ *( COMMA eventSpec) RBRKT ]
+
+ eventSpec = pkgdName [ LBRKT eventSpecParameter
+ *(COMMA eventSpecParameter) RBRKT ]
+
+ eventSpecParameter = (eventStream / eventOther)
+
+ eventBufferControl = BufferToken EQUAL ( "OFF" / LockStepToken )
+
+ terminationStateDescriptor = TerminationStateToken LBRKT
+ terminationStateParm *( COMMA terminationStateParm ) RBRKT
+
+ ; at-most-once per item except for propertyParm
+ terminationStateParm =(propertyParm / serviceStates /
+ eventBufferControl )
+
+ serviceStates = ServiceStatesToken EQUAL ( TestToken /
+ OutOfSvcToken / InSvcToken )
+
+ muxDescriptor = MuxToken EQUAL MuxType terminationIDList
+
+
+
+ Groves et al Expires - October 2003 [Page 127]
+ Megaco Protocol version 2 April 2003
+
+
+ MuxType = ( H221Token / H223Token / H226Token / V76Token
+ / extensionParameter / Nx64kToken )
+
+ StreamID = UINT16
+
+ pkgdName = (PackageName SLASH ItemID) ;specific item
+ / (PackageName SLASH "*") ;all items in package
+ / ("*" SLASH "*") ; all items supported by the MG
+ PackageName = NAME
+ ItemID = NAME
+
+ eventsDescriptor = EventsToken [ EQUAL RequestID LBRKT
+ requestedEvent *( COMMA requestedEvent ) RBRKT ]
+
+ requestedEvent = pkgdName [ LBRKT eventParameter
+ *( COMMA eventParameter ) RBRKT ]
+
+ ; at-most-once each of KeepActiveToken , eventDM and eventStream
+ ;at most one of either embedWithSig or embedNoSig but not both
+ ;KeepActiveToken and embedWithSig must not both be present
+ eventParameter = ( embedWithSig / embedNoSig / KeepActiveToken
+ /eventDM / eventStream / eventOther )
+
+ embedWithSig = EmbedToken LBRKT signalsDescriptor
+ [COMMA embedFirst ] RBRKT
+
+ embedNoSig = EmbedToken LBRKT embedFirst RBRKT
+
+ ; at-most-once of each
+ embedFirst = EventsToken [ EQUAL RequestID LBRKT
+ secondRequestedEvent *(COMMA secondRequestedEvent) RBRKT ]
+
+ secondRequestedEvent = pkgdName [ LBRKT secondEventParameter
+ *( COMMA secondEventParameter ) RBRKT ]
+
+ ; at-most-once each of embedSig , KeepActiveToken, eventDM or
+ ; eventStream
+ ; KeepActiveToken and embedSig must not both be present
+ secondEventParameter = ( embedSig / KeepActiveToken / eventDM /
+ eventStream / eventOther )
+
+ embedSig = EmbedToken LBRKT signalsDescriptor RBRKT
+
+ eventStream = StreamToken EQUAL StreamID
+
+ eventOther = eventParameterName parmValue
+
+ eventParameterName = NAME
+
+
+
+ Groves et al Expires - October 2003 [Page 128]
+ Megaco Protocol version 2 April 2003
+
+
+ eventDM = DigitMapToken EQUAL(( digitMapName ) /
+ (LBRKT digitMapValue RBRKT ))
+
+ signalsDescriptor = SignalsToken LBRKT [ signalParm
+ *(COMMA signalParm)] RBRKT
+
+ signalParm = signalList / signalRequest
+
+ signalRequest = signalName [ LBRKT sigParameter
+ *(COMMA sigParameter) RBRKT ]
+
+ signalList = SignalListToken EQUAL signalListId LBRKT
+ signalListParm *(COMMA signalListParm) RBRKT
+
+ signalListId = UINT16
+
+ ;exactly once signalType, at most once duration and every signal
+ ;parameter
+ signalListParm = signalRequest
+
+ signalName = pkgdName
+
+ ;at-most-once sigStream, at-most-once sigSignalType,
+ ;at-most-once sigDuration, every signalParameterName at most once
+ sigParameter = sigStream / sigSignalType / sigDuration / sigOther
+ / notifyCompletion / KeepActiveToken
+
+ sigStream = StreamToken EQUAL StreamID
+
+ sigOther = sigParameterName parmValue
+
+ sigParameterName = NAME
+
+ sigSignalType = SignalTypeToken EQUAL signalType
+
+ signalType = (OnOffToken / TimeOutToken / BriefToken)
+
+ sigDuration = DurationToken EQUAL UINT16
+
+ notifyCompletion = NotifyCompletionToken EQUAL (LBRKT
+ notificationReason *(COMMA notificationReason) RBRKT)
+
+ notificationReason = ( TimeOutToken / InterruptByEventToken
+ / InterruptByNewSignalsDescrToken
+ / OtherReasonToken )
+
+ observedEventsDescriptor = ObservedEventsToken EQUAL RequestID
+ LBRKT observedEvent *(COMMA observedEvent) RBRKT
+
+
+
+ Groves et al Expires - October 2003 [Page 129]
+ Megaco Protocol version 2 April 2003
+
+
+ ;time per event, because it might be buffered
+ observedEvent = [ TimeStamp LWSP COLON] LWSP
+ pkgdName [ LBRKT observedEventParameter
+ *(COMMA observedEventParameter) RBRKT ]
+
+ ;at-most-once eventStream, every eventParameterName at most once
+ observedEventParameter = eventStream / eventOther
+
+ ; For an AuditCapReply with all events, the RequestID SHOULD be ALL.
+ RequestID = ( UINT32 / "*" )
+
+ modemDescriptor = ModemToken (( EQUAL modemType) /
+ (LSBRKT modemType *(COMMA modemType) RSBRKT))
+ [ LBRKT propertyParm
+ *(COMMA propertyParm) RBRKT ]
+
+ ; at-most-once except for extensionParameter
+ modemType = (V32bisToken / V22bisToken / V18Token /
+ V22Token / V32Token / V34Token / V90Token /
+ V91Token / SynchISDNToken / extensionParameter)
+
+ digitMapDescriptor = DigitMapToken EQUAL
+ ( ( LBRKT digitMapValue RBRKT )
+ / (digitMapName [ LBRKT digitMapValue RBRKT ]) )
+
+ digitMapName = NAME
+
+ digitMapValue = ["T" COLON Timer COMMA] ["S" COLON Timer COMMA]
+ ["L" COLON Timer COMMA] ["Z" COLON Timer COMMA]
+ digitMap
+
+ Timer = 1*2DIGIT
+ ; Units are seconds for T, S, and L timers, and hundreds of
+ ; milliseconds for Z timer. Thus T, S, and L range from 1 to 99
+ ; seconds and Z from 100 ms to 9.9 s
+
+ digitMap = (digitString
+ / LWSP "(" LWSP digitStringList LWSP ")" LWSP)
+
+ digitStringList = digitString *( LWSP "|" LWSP digitString )
+
+ digitString = 1*(digitStringElement)
+
+ digitStringElement = digitPosition [DOT]
+
+ digitPosition = digitMapLetter / digitMapRange
+ digitMapRange = ("x" / (LWSP "[" LWSP digitLetter LWSP "]" LWSP))
+
+ digitLetter = *((DIGIT "-" DIGIT ) / digitMapLetter)
+
+
+ Groves et al Expires - October 2003 [Page 130]
+ Megaco Protocol version 2 April 2003
+
+
+
+ digitMapLetter = DIGIT ;Basic event symbols
+ / %x41-4B / %x61-6B ; a-k, A-K
+ / "L" / "S" / "T" ;Inter-event timers
+ ; (long, short, start)
+ / "Z" ;Long duration modifier
+
+ ; at-most-once, and DigitMapToken and PackagesToken are not allowed
+ ; in AuditCapabilities command
+ auditItem = ( MuxToken / ModemToken / MediaToken /
+ SignalsToken / EventBufferToken /
+ DigitMapToken / StatsToken / EventsToken /
+ ObservedEventsToken / PackagesToken ) /
+ indAudterminationAudit)
+
+ indAudterminationAudit = indAudauditReturnParameter
+ *(COMMA indAudauditReturnParameter)
+
+ indAudauditReturnParameter = (indAudmediaDescriptor / /
+ indAudeventsDescriptor /
+ indAudsignalsDescriptor /
+ indAuddigitMapDescriptor /
+ indAudeventBufferDescriptor /
+ indAudstatisticsDescriptor /
+ indAudpackagesDescriptor)
+
+
+ indAudmediaDescriptor = MediaToken LBRKT indAudmediaParm RBRKT
+
+ ; at-most-once per item
+ ; and either streamParm or streamDescriptor but not both
+ indAudmediaParm = (indAudstreamParm / indAudstreamDescriptor /
+ indAudterminationStateDescriptor)
+
+ ; at-most-once
+ indAudstreamParm = ( indAudlocalControlDescriptor )
+ ; SDP too complex to pull out individual pieces for audit,
+ ; hence no individual audit for Local and Remote
+
+ indAudstreamDescriptor = StreamToken EQUAL StreamID
+ LBRKT indAudstreamParm RBRKT
+
+ indAudlocalControlDescriptor = LocalControlToken
+ LBRKT indAudlocalParm RBRKT
+
+ ; at-most-once per item
+ indAudlocalParm = ( ModeToken / pkgdName /
+ ReservedValueToken /
+ ReservedGroupToken )
+
+
+ Groves et al Expires - October 2003 [Page 131]
+ Megaco Protocol version 2 April 2003
+
+
+
+
+ indAudterminationStateDescriptor = TerminationStateToken
+ LBRKT indAudterminationStateParm RBRKT
+
+ ; at-most-once per item
+ indAudterminationStateParm =(pkgdName / ServiceStatesToken /
+ BufferToken)
+
+ indAudeventBufferDescriptor= EventBufferToken
+ LBRKT indAudeventSpec RBRKT
+
+ indAudeventSpec = pkgdName [ LBRKT indAudeventSpecParameter RBRKT ]
+
+ indAudeventSpecParameter = (eventStream / eventParameterName)
+
+ indAudeventsDescriptor = EventsToken EQUAL RequestID
+ LBRKT indAudrequestedEvent RBRKT
+
+ indAudrequestedEvent = pkgdName
+
+ indAudsignalsDescriptor = SignalsToken
+ LBRKT [ indAudsignalParm ] RBRKT
+
+ indAudsignalParm = indAudsignalList / indAudsignalRequest
+ indAudsignalRequest = signalName
+
+ indAudsignalList = SignalListToken EQUAL signalListId
+ LBRKTindAudsignalListParm RBRKT
+
+ indAudsignalListParm = indAudsignalRequest
+
+ indAuddigitMapDescriptor = DigitMapToken EQUAL (digitMapName )
+
+ indAudstatisticsDescriptor = StatsToken LBRKT pkgdName RBRKT
+
+ indAudpackagesDescriptor = PackagesToken LBRKT packagesItem RBRKT
+
+
+ serviceChangeDescriptor = ServicesToken LBRKT serviceChangeParm
+ *(COMMA serviceChangeParm) RBRKT
+
+ ; each parameter at-most-once
+ ; at most one of either serviceChangeAddress or serviceChangeMgcId
+ ; but not both
+ ; serviceChangeMethod and serviceChangeReason are REQUIRED
+ serviceChangeParm = (serviceChangeMethod / serviceChangeReason /
+ serviceChangeDelay / serviceChangeAddress /
+ serviceChangeProfile / extension / TimeStamp /
+
+
+ Groves et al Expires - October 2003 [Page 132]
+ Megaco Protocol version 2 April 2003
+
+
+ serviceChangeMgcId / serviceChangeVersion /
+ auditItem)
+
+ serviceChangeReplyDescriptor = ServicesToken LBRKT
+ servChgReplyParm *(COMMA servChgReplyParm) RBRKT
+
+ ; at-most-once. Version is REQUIRED on first ServiceChange response
+ ; at most one of either serviceChangeAddress or serviceChangeMgcId
+ ; but not both
+ servChgReplyParm = (serviceChangeAddress / serviceChangeMgcId /
+ serviceChangeProfile / serviceChangeVersion /
+ TimeStamp)
+
+ serviceChangeMethod = MethodToken EQUAL (FailoverToken /
+ ForcedToken / GracefulToken / RestartToken /
+ DisconnectedToken / HandOffToken /
+ extensionParameter)
+
+ ; A serviceChangeReason consists of a numeric reason code
+ ; and an optional text description.
+ ; A serviceChangeReason MUST be encoded using the quotedString
+ ; form of VALUE.
+ ; The quotedString SHALL contain a decimal reason code,
+ ; optionally followed by a single space character and a
+ ; textual description string.
+ serviceChangeReason = ReasonToken EQUAL VALUE
+
+ serviceChangeDelay = DelayToken EQUAL UINT32
+
+ serviceChangeAddress = ServiceChangeAddressToken EQUAL ( mId /
+ portNumber )
+
+ serviceChangeMgcId = MgcIdToken EQUAL mId
+
+ serviceChangeProfile = ProfileToken EQUAL NAME SLASH Version
+
+ serviceChangeVersion = VersionToken EQUAL Version
+
+ extension = extensionParameter parmValue
+
+ packagesDescriptor = PackagesToken LBRKT packagesItem
+ *(COMMA packagesItem) RBRKT
+
+ Version = 1*2(DIGIT)
+
+ packagesItem = NAME "-" UINT16
+
+ TimeStamp = Date "T" Time ; per ISO 8601:1988
+ ; Date = yyyymmdd
+
+
+ Groves et al Expires - October 2003 [Page 133]
+ Megaco Protocol version 2 April 2003
+
+
+ Date = 8(DIGIT)
+ ; Time = hhmmssss
+ Time = 8(DIGIT)
+
+ statisticsDescriptor = StatsToken LBRKT statisticsParameter
+ *(COMMA statisticsParameter ) RBRKT
+
+ ;at-most-once per item
+ statisticsParameter = pkgdName [EQUAL VALUE]
+
+ topologyDescriptor = TopologyToken LBRKT topologyTriple
+ *(COMMA topologyTriple) RBRKT
+
+ topologyTriple = terminationA COMMA
+ terminationB COMMA topologyDirection
+ [COMMA eventStream ]
+ terminationA = TerminationID
+ terminationB = TerminationID
+
+ topologyDirection = BothwayToken / IsolateToken / OnewayToken
+
+ priority = PriorityToken EQUAL UINT16
+
+ extensionParameter = "X" ("-" / "+") 1*6(ALPHA / DIGIT)
+
+ ; octetString is used to describe SDP defined in RFC2327.
+ ; Caution SHOULD be taken if CRLF in RFC2327 is used.
+ ; To be safe, use EOL in this ABNF.
+ ; Whenever "}" appears in SDP, it is escaped by "\", e.g. "\}"
+ octetString = *(nonEscapeChar)
+ nonEscapeChar = ( "\}" / %x01-7C / %x7E-FF )
+
+ ; Note - The double-quote character is not allowed in quotedString.
+ quotedString = DQUOTE *(SafeChar / RestChar/ WSP) DQUOTE
+
+ UINT16 = 1*5(DIGIT) ; %x0-FFFF
+ UINT32 = 1*10(DIGIT) ; %x0-FFFFFFFF
+
+ NAME = ALPHA *63(ALPHA / DIGIT / "_" )
+ VALUE = quotedString / 1*(SafeChar)
+
+ SafeChar = DIGIT / ALPHA / "+" / "-" / "&" /
+ "!" / "_" / "/" / "'" / "?" / "@" /
+ "^" / "`" / "~" / "*" / "$" / "\" /
+ "(" / ")" / "%" / "|" / "."
+
+ EQUAL = LWSP %x3D LWSP ; "="
+ COLON = %x3A ; ":"
+ LBRKT = LWSP %x7B LWSP ; "{"
+
+
+ Groves et al Expires - October 2003 [Page 134]
+ Megaco Protocol version 2 April 2003
+
+
+ RBRKT = LWSP %x7D LWSP ; "}"
+ COMMA = LWSP %x2C LWSP ; ","
+ DOT = %x2E ; "."
+ SLASH = %x2F ; "/"
+ ALPHA = %x41-5A / %x61-7A ; A-Z / a-z
+ DIGIT = %x30-39 ; 0-9
+ DQUOTE = %x22 ; " (Double Quote)
+ HEXDIG = ( DIGIT / "A" / "B" / "C" / "D" / "E" / "F" )
+ SP = %x20 ; space
+ HTAB = %x09 ; horizontal tab
+ CR = %x0D ; Carriage return
+ LF = %x0A ; linefeed
+ LWSP = *( WSP / COMMENT / EOL )
+ EOL = (CR [LF] / LF )
+ WSP = SP / HTAB ; white space
+ SEP = ( WSP / EOL / COMMENT) LWSP
+ COMMENT = ";" *(SafeChar/ RestChar / WSP / %x22) EOL
+ RestChar = ";" / "[" / "]" / "{" / "}" / ":" / "," / "#" /
+ "<" / ">" / "="
+
+ ; New Tokens added to sigParameter must take the format of SPA*
+ ; * may be of any form i.e. SPAM
+ ; New Tokens added to eventParameter must take the form of EPA*
+ ; * may be of any form i.e. EPAD
+
+ AddToken = ("Add" / "A")
+ AuditToken = ("Audit" / "AT")
+ AuditCapToken = ("AuditCapability" / "AC")
+ AuditValueToken = ("AuditValue" / "AV")
+ AuthToken = ("Authentication" / "AU")
+ BothwayToken = ("Bothway" / "BW")
+ BriefToken = ("Brief" / "BR")
+ BufferToken = ("Buffer" / "BF")
+ CtxToken = ("Context" / "C")
+ ContextAuditToken = ("ContextAudit" / "CA")
+ DigitMapToken = ("DigitMap" / "DM")
+ DisconnectedToken = ("Disconnected" / "DC")
+ DelayToken = ("Delay" / "DL")
+ DurationToken = ("Duration" / "DR")
+ EmbedToken = ("Embed" / "EM")
+ EmergencyToken = ("Emergency" / "EG")
+ ErrorToken = ("Error" / "ER")
+ EventBufferToken = ("EventBuffer" / "EB")
+ EventsToken = ("Events" / "E")
+ FailoverToken = ("Failover" / "FL")
+ ForcedToken = ("Forced" / "FO")
+ GracefulToken = ("Graceful" / "GR")
+ H221Token = ("H221" )
+ H223Token = ("H223" )
+
+
+ Groves et al Expires - October 2003 [Page 135]
+ Megaco Protocol version 2 April 2003
+
+
+ H226Token = ("H226" )
+ HandOffToken = ("HandOff" / "HO")
+ ImmAckRequiredToken = ("ImmAckRequired" / "IA")
+ InactiveToken = ("Inactive" / "IN")
+ IsolateToken = ("Isolate" / "IS")
+ InSvcToken = ("InService" / "IV")
+ InterruptByEventToken = ("IntByEvent" / "IBE")
+ InterruptByNewSignalsDescrToken
+ = ("IntBySigDescr" / "IBS")
+ KeepActiveToken = ("KeepActive" / "KA")
+ LocalToken = ("Local" / "L")
+ LocalControlToken = ("LocalControl" / "O")
+ LockStepToken = ("LockStep" / "SP")
+ LoopbackToken = ("Loopback" / "LB")
+ MediaToken = ("Media" / "M")
+ MegacopToken = ("MEGACO" / "!")
+ MethodToken = ("Method" / "MT")
+ MgcIdToken = ("MgcIdToTry" / "MG")
+ ModeToken = ("Mode" / "MO")
+ ModifyToken = ("Modify" / "MF")
+ ModemToken = ("Modem" / "MD")
+ MoveToken = ("Move" / "MV")
+ MTPToken = ("MTP")
+ MuxToken = ("Mux" / "MX")
+ NotifyToken = ("Notify" / "N")
+ NotifyCompletionToken = ("NotifyCompletion" / "NC")
+ Nx64kToken = ("Nx64Kservice" / "N64")
+ ObservedEventsToken = ("ObservedEvents" / "OE")
+ OnewayToken = ("Oneway" / "OW")
+ OnOffToken = ("OnOff" / "OO")
+ OtherReasonToken = ("OtherReason" / "OR")
+ OutOfSvcToken = ("OutOfService" / "OS")
+ PackagesToken = ("Packages" / "PG")
+ PendingToken = ("Pending" / "PN")
+ PriorityToken = ("Priority" / "PR")
+ ProfileToken = ("Profile" / "PF")
+ ReasonToken = ("Reason" / "RE")
+ RecvonlyToken = ("ReceiveOnly" / "RC")
+ ReplyToken = ("Reply" / "P")
+ RestartToken = ("Restart" / "RS")
+ RemoteToken = ("Remote" / "R")
+ ReservedGroupToken = ("ReservedGroup" / "RG")
+ ReservedValueToken = ("ReservedValue" / "RV")
+ SendonlyToken = ("SendOnly" / "SO")
+ SendrecvToken = ("SendReceive" / "SR")
+ ServicesToken = ("Services" / "SV")
+ ServiceStatesToken = ("ServiceStates" / "SI")
+ ServiceChangeToken = ("ServiceChange" / "SC")
+ ServiceChangeAddressToken = ("ServiceChangeAddress" / "AD")
+
+
+ Groves et al Expires - October 2003 [Page 136]
+ Megaco Protocol version 2 April 2003
+
+
+ SignalListToken = ("SignalList" / "SL")
+ SignalsToken = ("Signals" / "SG")
+ SignalTypeToken = ("SignalType" / "SY")
+ StatsToken = ("Statistics" / "SA")
+ StreamToken = ("Stream" / "ST")
+ SubtractToken = ("Subtract" / "S")
+ SynchISDNToken = ("SynchISDN" / "SN")
+ TerminationStateToken = ("TerminationState" / "TS")
+ TestToken = ("Test" / "TE")
+ TimeOutToken = ("TimeOut" / "TO")
+ TopologyToken = ("Topology" / "TP")
+ TransToken = ("Transaction" / "T")
+ ResponseAckToken = ("TransactionResponseAck" / "K")
+ V18Token = ("V18")
+ V22Token = ("V22")
+ V22bisToken = ("V22b")
+ V32Token = ("V32")
+ V32bisToken = ("V32b")
+ V34Token = ("V34")
+ V76Token = ("V76")
+ V90Token = ("V90")
+ V91Token = ("V91")
+ VersionToken = ("Version" / "V")
+
+
+ B.3 Hexadecimal octet coding
+
+ Hexadecimal octet coding is a means for representing a string of
+ octets as a string of hexadecimal digits, with two digits
+ representing each octet. This octet encoding SHOULD be used when
+ encoding octet strings in the text version of the protocol.
+
+ For each octet, the 8-bit sequence is encoded as two hexadecimal
+ digits. Bit 0 is the first transmitted; bit 7 is the last.
+
+ Bits 7-4 are encoded as the first hexadecimal digit, with Bit 7 as
+ MSB and Bit 4 as LSB. Bits 3-0 are encoded as the second hexadecimal
+ digit, with Bit 3 as MSB and Bit 0 as LSB.
+
+ Examples:
+
+ Octet bit pattern Hexadecimal
+ coding
+
+ 00011011 D8
+
+ 11100100 27
+
+
+
+
+ Groves et al Expires - October 2003 [Page 137]
+ Megaco Protocol version 2 April 2003
+
+
+ 10000011 10100010 11001000 C1451390
+ 00001001
+
+
+
+ B.4 Hexadecimal octet sequence
+
+ A hexadecimal octet sequence is an even number of hexadecimal digits,
+ terminated by a <CR> character.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 138]
+ Megaco Protocol version 2 April 2003
+
+
+ ANNEX C TAGS FOR MEDIA STREAM PROPERTIES
+
+ Parameters for Local, Remote and LocalControl descriptors are
+ specified as tag-value pairs if binary encoding is used for the
+ protocol. This annex contains the property names (PropertyID), the
+ tags (Property tag), type of the property (Type) and the values
+ (Value). Values presented in the Value field when the field contains
+ references shall be regarded as "information". The reference contains
+ the normative values. If a value field does not contain a reference,
+ then the values in that field can be considered as "normative".
+
+ Tags are given as hexadecimal numbers in this annex. When setting the
+ value of a property, a MGC may underspecify the value according to
+ one of the mechanisms specified in 7.1.1.
+
+ It is optional to support the properties in this Annex or any of its
+ sub-sections. For example, only three properties from C.3 and only
+ five properties from C.8 might be implemented.
+
+ For type "enumeration" the value is represented by the value in
+ brackets, e.g. Send(0), Receive(1). Annex C properties with the types
+ "N bits" or "M Octets" SHOULD be treated as octet strings when
+ encoding the protocol. Properties with "N bit integer" shall be
+ treated as an integers. "String" shall be treated as an IA5String
+ when encoding the protocol.
+
+ When a type is smaller than one octet, the value shall be stored in
+ the low-order bits of an octet string of size 1.
+
+
+ C.1 General media attributes
+
+
+ PropertyID Property Type Value
+ tag
+
+ Media 1001 Enumeration Audio(0), Video(1), Data(2)
+
+ Transmission 1002 Enumeration Send(0), Receive(1),
+ mode Send&Receive(2)
+
+ Number of 1003 Unsigned 0-255
+ Channels integer
+
+ Sampling 1004 Unsigned 0-2^32
+ rate integer
+
+
+
+
+ Groves et al Expires - October 2003 [Page 139]
+ Megaco Protocol version 2 April 2003
+
+
+ PropertyID Property Type Value
+ tag
+
+ Bitrate 1005 Integer (0..4294967295)
+
+ NOTE - Units of 100 bit/s.
+
+ ACodec 1006 Octet string Audio Codec Type:
+
+ Ref.: ITU-T Q.765.5
+
+ Non-ITU-T codecs are defined
+ with the appropriate
+ standards organization under
+ a defined Organizational
+ Identitifier.
+
+ Samplepp 1007 Unsigned Maximum samples or frames
+ integer per packet: 0..65535
+
+ Silencesupp 1008 Boolean Silence Suppression:
+ True/False
+
+ Encrypttype 1009 Octet string Ref.: ITU-T H.245
+
+ Encryptkey 100A Octet string Encryption key
+ size
+ (0..65535) Ref.: ITU-T H.235
+
+ Echocanc 100B Not Used. See H.248.1 E.13
+ for an example of possible
+ Echo Control properties.
+
+ Gain 100C Unsigned Gain in dB: 0..65535
+ integer
+
+ Jitterbuff 100D Unsigned Jitter buffer size in ms:
+ integer 0..65535
+
+ PropDelay 100E Unsigned Propagation Delay: 0..65535
+ integer
+ Maximum propagation delay in
+ milliseconds for the bearer
+ connection between two media
+ gateways. The maximum delay
+ will be dependent on the
+ bearer technology.
+
+
+
+ Groves et al Expires - October 2003 [Page 140]
+ Megaco Protocol version 2 April 2003
+
+
+ PropertyID Property Type Value
+ tag
+
+ RTPpayload 100F Integer Payload type in RTP Profile
+ for Audio and Video
+ Conferences with Minimal
+ Control
+
+ Ref.: RFC 1890
+
+
+
+
+ C.2 Mux properties
+
+
+ PropertyID Property Type Value
+ tag
+
+ H222 2001 Octet H222LogicalChannelParameters
+ string
+ Ref.: ITU-T H.245
+
+ H223 2002 Octet H223LogicalChannelParameters
+ string
+ Ref.: ITU-T H.245
+
+ V76 2003 Octet V76LogicalChannelParameters
+ string
+ Ref.: ITU-T H.245
+
+ H2250 2004 Octet H2250LogicalChannelParameters
+ string
+ Ref.: ITU-T H.245
+
+
+
+
+ C.3 General bearer properties
+
+
+ PropertyID Property Type Value
+ tag
+
+ Mediatx 3001 Enumerati Media Transport Type
+ on
+ TDM Circuit(0), ATM(1), FR(2),
+
+
+
+ Groves et al Expires - October 2003 [Page 141]
+ Megaco Protocol version 2 April 2003
+
+
+ Ipv4(3), Ipv6(4), ...
+
+ BIR 3002 4 octets Value depends on transport
+ technology
+
+ NSAP 3003 1-20 See NSAP.
+ octets
+ Ref.: Annex A/X.213
+
+
+
+
+ C.4 General ATM properties
+
+
+ PropertyID Property Type Value
+ tag
+
+ AESA 4001 20 octets ATM End System Address
+
+ VPVC 4002 4 octets: VPCI/VCI
+ VPCI in
+ first two Ref.: ITU-T Q.2931
+ least
+ significant
+ octets, VCI
+ in second
+ two octets
+
+ SC 4003 Enumeration Service Category: CBR(0), nrt-
+ VBR1(1), nrt-VBR2(2), nrt-
+ VBR3(3), rt-VBR1(4),
+ rt-VBR2(5), rt-VBR3(6),
+ UBR1(7), UBR2(8), ABR(9).
+
+ Ref.: ATM Forum UNI 4.0
+
+ BCOB 4004 5-bit Broadband Bearer Class
+ integer
+ Ref.: ITU-T Q.2961.2
+
+ BBTC 4005 7-bit Broadband Transfer Capability
+ integer
+ Ref.: ITU-T Q.2961.1
+
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 142]
+ Megaco Protocol version 2 April 2003
+
+
+ PropertyID Property Type Value
+ tag
+
+ ATC 4006 Enumeration I.371 ATM Traffic Capability
+
+ DBR(0), SBR1(1), SBR2(2),
+ SBR3(3), ABT/IT(4), ABT/DT(5),
+ ABR(6)
+
+ Ref.: ITU-T I.371
+
+ STC 4007 2 bits Susceptibility to clipping:
+
+ Bits
+ 21
+ --
+ 00 not susceptible to clipping
+ 01 susceptible to clipping
+
+ Ref.: ITU-T Q.2931
+
+ UPCC 4008 2 bits User Plane Connection
+ configuration:
+
+ Bits
+ 21
+ --
+ 00 point-to-point
+ 01 point-to-multipoint
+
+ Ref.: ITU-T Q.2931
+
+ PCR0 4009 24-bit Peak Cell Rate (For CLP = 0)
+ integer
+ Ref.: ITU-T Q.2931
+
+ SCR0 400A 24-bit Sustainable Cell Rate
+ integer (For CLP = 0)
+
+ Ref.: ITU-T Q.2961.1
+
+ MBS0 400B 24-bit Maximum Burst Size
+ integer (For CLP = 0)
+
+ Ref.: ITU-T Q.2961.1
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 143]
+ Megaco Protocol version 2 April 2003
+
+
+ PropertyID Property Type Value
+ tag
+
+ PCR1 400C 24-bit Peak Cell Rate (For
+ integer CLP = 0 + 1)
+
+ Ref.: ITU-T Q.2931
+
+ SCR1 400D 24-bit Sustainable Cell Rate
+ integer (For CLP = 0 + 1)
+
+ Ref.: ITU-T Q.2961.1
+
+ MBS1 400E 24-bit Maximum Burst Size
+ integer (For CLP = 0 + 1)
+
+ Ref.: ITU-T Q.2961.1
+
+ BEI 400F Boolean Best Effort Indicator
+
+ Value 1 indicates that BEI is
+ to be included in the ATM
+ signaling; value 0 indicates
+ that BEI is not to be included
+ in the ATM signaling.
+
+ Ref.: ATM Forum UNI 4.0
+
+ TI 4010 Boolean Tagging Indicator
+
+ Value 0 indicates that tagging
+ is not allowed; value 1
+ indicates that tagging is
+ requested.
+
+ Ref.: ITU-T Q.2961.1
+
+ FD 4011 Boolean Frame Discard
+
+ Value 0 indicates that no
+ frame discard is allowed;
+ value 1 indicates that frame
+ discard is allowed.
+
+ Ref.: ATM Forum UNI 4.0
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 144]
+ Megaco Protocol version 2 April 2003
+
+
+ PropertyID Property Type Value
+ tag
+
+ A2PCDV 4012 24-bit Acceptable 2-point CDV
+ integer
+ Ref.: ITU-T Q.2965.2
+
+ C2PCDV 4013 24-bit Cumulative 2-point CDV
+ integer
+ Ref.: ITU-T Q.2965.2
+
+ APPCDV 4014 24-bit Acceptable P-P CDV
+ integer
+ Ref.: ATM Forum UNI 4.0
+
+ CPPCDV 4015 24-bit Cumulative P-P CDV
+ integer
+ Ref.: ATM Forum UNI 4.0
+
+ ACLR 4016 8-bit Acceptable Cell Loss Ratio
+ integer
+ Ref.: ITU-T Q.2965.2, ATM
+ Forum UNI 4.0
+
+ MEETD 4017 16-bit Maximum End-to-end transit
+ integer delay
+
+ Ref.: ITU-T Q.2965.2, ATM
+ Forum UNI 4.0
+
+ CEETD 4018 16-bit Cumulative End-to-end transit
+ integer delay
+
+ Ref.: ITU-T Q.2965.2, ATM
+ Forum UNI 4.0
+
+ QosClass 4019 Integer 0-5 QoS Class
+
+ QoS Meaning
+ Class
+
+ 0 Default QoS
+ associated with the
+ ATC as defined in
+ ITU-T Q.2961.2
+
+ 1 Stringent
+
+
+
+ Groves et al Expires - October 2003 [Page 145]
+ Megaco Protocol version 2 April 2003
+
+
+ PropertyID Property Type Value
+ tag
+
+ 2 Tolerant
+
+ 3 Bi-level
+
+ 4 Unbounded
+
+ 5 Stringent Bi-level
+
+ Ref.: ITU-T Q.2965.1
+
+ AALtype 401A 1 octet AAL Type
+
+ Bits
+ 87654321
+ --------
+ 00000000 AAL for voice
+ 00000001 AAL type 1
+ 00000010 AAL type 2
+ 00000011 AAL type 3/4
+ 00000101 AAL type 5
+ 00010000 user-defined AAL
+
+ Ref.: ITU-T Q.2931
+
+
+
+
+ C.5 Frame Relay
+
+
+ PropertyID Property Type Value
+ tag
+
+ DLCI 5001 Unsigned Data link connection id
+ integer
+
+ CID 5002 Unsigned sub-channel id
+ integer
+
+ SID/ 5003 Unsigned silence insertion
+ Noiselevel integer descriptor
+
+ Primary 5004 Unsigned Primary Payload Type
+ Payload type integer
+
+
+
+ Groves et al Expires - October 2003 [Page 146]
+ Megaco Protocol version 2 April 2003
+
+
+ Covers FAX and codecs
+
+
+
+ C.6 IP
+
+
+ PropertyID Property Type Value
+ tag
+
+ IPv4 6001 32 bits Ipv4Address
+ Ipv4Address Ref.: IETF RFC 791
+
+ IPv6 6002 128 bits IPv6 Address
+ Ref.: IETF RFC 2460
+
+ Port 6003 Unsigned 0..65535
+ integer
+
+ Porttype 6004 Enumerated TCP(0), UDP(1), SCTP(2)
+
+
+
+ C.7 ATM AAL2
+
+
+ PropertyID Property Type Value
+ tag
+
+ AESA 7001 20 octets AAL2 service endpoint
+ address as defined in the
+ referenced Recommendation.
+
+ ESEA
+
+ NSEA
+
+ Ref.: ITU-T Q.2630.1
+
+ BIR See C.3 4 octets Served user generated
+ reference as defined in the
+ referenced Recommendation.
+
+ SUGR
+
+ Ref.: ITU-T Q.2630.1
+
+
+
+
+ Groves et al Expires - October 2003 [Page 147]
+ Megaco Protocol version 2 April 2003
+
+
+ PropertyID Property Type Value
+ tag
+
+ ALC 7002 12 octets AAL2 link characteristics as
+ defined in the referenced
+ Recommendation.
+
+ Maximum/Average CPS-SDU bit
+ rate;
+
+ Maximum/Average CPS-SDU size
+
+ Ref.: ITU-T Q.2630.1
+
+ SSCS 7003 I.366.2: Service specific convergence
+ sublayer information as
+ Audio defined in:
+ (8 octets); - ITU-T Q.2630.1,
+ Multirate and used in:
+ (3 octets),
+ or - ITU-T I.366.2:
+ Audio/Multirate;
+ I.366.1:
+ - ITU-T I.366.1:
+ SAR-assured SAR-assured/-unassured.
+ (14 octets);
+ SAR-unassured Ref.: ITU-T Q.2630.1,
+ (7 octets). I.366.1 and I.366.2
+
+ SUT 7004 1..254 octets Served user transport
+ parameter as defined in the
+ referenced Recommendation.
+
+ Ref.: ITU-T Q.2630.1
+
+ TCI 7005 Boolean Test connection indicator as
+ defined in the referenced
+ Recommendation.
+
+ Ref.: ITU-T Q.2630.1
+
+ Timer_CU 7006 32-bit Timer-CU
+ integer
+ Milliseconds to hold
+ partially filled cell before
+ sending.
+
+
+
+
+ Groves et al Expires - October 2003 [Page 148]
+ Megaco Protocol version 2 April 2003
+
+
+ PropertyID Property Type Value
+ tag
+
+ MaxCPSSDU 7007 8-bit integer Maximum Common Part Sublayer
+ Service Data Unit
+
+ Ref.: ITU-T Q.2630.1
+
+ CID 7008 8 bits subchannel id: 0-255
+
+ Ref.: ITU-T I.363.2
+
+
+
+ C.8 ATM AAL1
+
+
+ Property Property Type Value
+ ID tag
+
+ BIR See table 4-29 GIT (Generic Identifier Transport)
+ in C.3 octets
+ Ref.: ITU-T Q.2941.1
+
+ AAL1ST 8001 1 octet AAL1 Subtype
+
+ Bits
+ 87654321
+ --------
+ 00000000 null
+ 00000001 voiceband signal
+ transport on 64 kbit/s
+ 00000010 circuit transport
+ 00000100 high-quality audio signal
+ transport
+ 00000101 video signal transport
+
+ Ref.: ITU-T Q.2931
+
+ CBRR 8002 1 octet CBR Rate
+
+ Bits
+ 87654321
+ --------
+ 00000001 64 kbit/s
+ 00000100 1544 kbit/s
+ 00000101 6312 kbit/s
+ 00000110 32 064 kbit/s
+
+
+ Groves et al Expires - October 2003 [Page 149]
+ Megaco Protocol version 2 April 2003
+
+
+ Property Property Type Value
+ ID tag
+
+ 00000111 44 736 kbit/s
+ 00001000 97 728 kbit/s
+ 00010000 2048 kbit/s
+ 00010001 8448 kbit/s
+ 00010010 34 368 kbit/s
+ 00010011 139 264 kbit/s
+ 01000000 n x 64 kbit/s
+ 01000001 n x 8 kbit/s
+
+ Ref.: ITU-T Q.2931
+
+ MULT See table Multiplier, or n x 64k/8k/300
+ in C.9
+ Ref.: ITU-T Q.2931
+
+ SCRI 8003 1 octet Source Clock Frequency Recovery
+ Method
+
+ Bits
+ 87654321
+ --------
+ 00000000 null
+ 00000001 SRTS
+ 00000010 ACM
+
+ Ref.: ITU-T Q.2931
+
+ ECM 8004 1 octet Error Correction Method
+
+ Bits
+ 87654321
+ --------
+ 00000000 null
+ 00000001 FEC - Loss
+ 00000010 FEC - Delay
+
+ Ref.: ITU-T Q.2931
+
+ SDTB 8005 16-bit Structured Data Transfer Blocksize
+ integer
+ Block size of SDT CBR service
+
+ Ref.: ITU-T I.363.1
+
+
+
+
+ Groves et al Expires - October 2003 [Page 150]
+ Megaco Protocol version 2 April 2003
+
+
+ Property Property Type Value
+ ID tag
+
+ PFCI 8006 8-bit Partially filled cells identifier
+ integer
+ 1-47
+
+ Ref.: ITU-T I.363.1
+
+
+
+ C.9 Bearer capabilities
+
+ The table entries referencing Recommendation Q.931 refer to the
+ encoding in the bearer capability information element of Q.931, not
+ to the low layer information element.
+
+
+ Property
+ PropertyID Type Value
+ tag
+
+ TMR 9001 1 octet Transmission Medium Requirement
+ (Q.763)
+
+ Bits
+ 87654321
+ --------
+ 00000000 speech
+ 00000001 spare
+ 00000010 64 kbit/s unrestricted
+ 00000011 3.1 kHz audio
+ 00000100 reserved for alternate
+ speech (service 2) /
+ 64 kbit/s unrestricted
+ (service 1)
+ 00000101 reserved for alternate
+ 64 kbit/s unrestricted
+ (service 1) / speech
+ (service 2)
+ 00000110 64 kbit/s preferred
+ 00000111 2 x 64 kbit/s
+ unrestricted
+ 00001000 384 kbit/s unrestricted
+ 00001001 1536 kbit/s unrestricted
+ 00001010 1920 kbit/s unrestricted
+ 00001011
+ through spare
+ 00001111
+
+
+ Groves et al Expires - October 2003 [Page 151]
+ Megaco Protocol version 2 April 2003
+
+
+ Property
+ PropertyID Type Value
+ tag
+
+ 00010000 3 x 64 kbit/s
+ through through
+ 00101010 29 x 64 kbit/s
+ unrestricted
+ 00101011
+ through spare
+ 11111111
+
+ Ref.: ITU-T Q.763
+
+ TMRSR 9002 1 octet Transmission Medium Requirement
+ Subrate
+
+ 0 unspecified
+
+ 1 8 kbit/s
+ 2 16 kbit/s
+ 3 32 kbit/s
+
+ Contcheck 9003 Boolean Continuity Check
+
+ 0 continuity check not required
+ on this circuit
+
+ 1 continuity check required on
+ this circuit
+
+ Ref.: ITU-T Q.763
+
+ ITC 9004 5 bits Information Transfer Capability
+
+ Bits
+ 54321
+ -----
+
+ 00000 Speech
+
+ 01000 Unrestricted digital
+ information
+
+ 01001 Restricted digital
+ information
+
+ 10000 3.1 kHz audio
+
+
+
+ Groves et al Expires - October 2003 [Page 152]
+ Megaco Protocol version 2 April 2003
+
+
+ Property
+ PropertyID Type Value
+ tag
+
+ 10001 Unrestricted digital
+ information with
+ tones/announcements
+
+ 11000 Video
+
+ All other values are reserved.
+
+ Ref.: ITU-T Q.763
+
+ TransMode 9005 2 bits Transfer Mode
+
+ Bits
+ 21
+ --
+ 00 Circuit mode
+ 10 Packet mode
+
+ Ref.: ITU-T Q.931
+
+ TransRate 9006 5 bits Transfer Rate
+
+ Bits
+ 54321
+ -----
+ 00000 This code shall be used
+ for packet mode calls
+ 10000 64 kbit/s
+ 10001 2 x 64 kbit/s
+ 10011 384 kbit/s
+ 10101 1536 kbit/s
+ 10111 1920 kbit/s
+ 11000 Multirate (64 kbit/s
+ base rate)
+
+ Ref.: ITU-T Q.931
+
+ MULT 9007 7 bits Rate Multiplier
+
+ Any value from 2 to n (maximum
+ number of B-channels)
+
+ Ref.: ITU-T Q.931
+
+
+
+
+ Groves et al Expires - October 2003 [Page 153]
+ Megaco Protocol version 2 April 2003
+
+
+ Property
+ PropertyID Type Value
+ tag
+
+ layer1prot 9008 5 bits User Information Layer 1 Protocol
+
+ Bits
+ 54321
+ -----
+ 00001 ITU-T standardized rate
+ adaption V.110 and X.30.
+ 00010 Rec. G.711 mu-law
+ 00011 Rec. G.711 A-law
+ 00100 Rec. G.726 32 kbit/s ADPCM
+ and Rec. I.460
+ 00101 Rec. H.221 and H.242
+ 00110 Rec. H.223 and H.245
+ 00111 Non-ITU-T standardized
+ rate adaption.
+ 01000 ITU-T standardized rate
+ adaption V.120.
+ 01001 ITU-T standardized rate
+ adaption X.31 HDLC flag
+ stuffing
+
+ All other values are reserved.
+
+ Ref.: ITU Recommendation Q.931
+ syncasync 9009 Boolean Synchronous/Asynchronous
+
+ 0 Synchronous data
+ 1 Asynchronous data
+
+ Ref.: ITU-T Q.931
+
+ negotiatio 900A Boolean Negotiation
+ n
+ 0 In-band negotiation possible
+ 1 In-band negotiation not possible
+
+ Ref.: ITU-T Q.931
+
+ Userrate 900B 5 bits User Rate
+
+ 54321
+ -----
+ 00000 Rate is indicated by E-bits
+ specified in Rec. I.460 or
+ may be negotiated in-band
+
+
+ Groves et al Expires - October 2003 [Page 154]
+ Megaco Protocol version 2 April 2003
+
+
+ Property
+ PropertyID Type Value
+ tag
+
+ 00001 0.6 kbit/s Recs. V.6 & X.1
+ 00010 1.2 kbit/s Rec. V.6
+ 00011 2.4 kbit/s Recs. V.6 & X.1
+ 00100 3.6 kbit/s Rec. V.6
+ 00101 4.8 kbit/s Recs. V.6 & X.1
+ 00110 7.2 kbit/s Rec. V.6
+ 00111 8 kbit/s Rec. I.460
+ 01000 9.6 kbit/s Recs. V.6 & X.1
+ 01001 14.4 kbit/s Rec. V.6
+ 01010 16 kbit/s Rec. I.460
+ 01011 19.2 kbit/s Rec. V.6
+ 01100 32 kbit/s Rec. I.460
+ 01101 38.4 kbit/s Rec. V.110
+ 01110 48 kbit/s Recs. V.6 & X.1
+ 01111 56 kbit/s Rec. V.6
+ 10010 57.6 kbit/s Rec. V.14
+ extended
+ 10011 28.8 kbit/s Rec. V.110
+ 10100 24 kbit/s Rec. V.110
+ 10101 0.1345 kbit/s Rec. X.1
+ 10110 0.100 kbit/s Rec. X.1
+
+ Recommendations V.6 and X.1:
+ 10111 0.075/1.2 kbit/s
+ 11000 1.2/0.075 kbit/s
+ 11001 0.050 kbit/s
+ 11010 0.075 kbit/s
+ 11011 0.110 kbit/s
+ 11100 0.150 kbit/s
+ 11101 0.200 kbit/s
+ 11110 0.300 kbit/s
+
+ 11111 12 kbit/s Rec. V.6
+
+ All other values are reserved.
+
+ Ref.: ITU-T Q.931
+
+ INTRATE 900C 2 bits Intermediate Rate
+
+ Bits
+ 21
+ --
+ 00 Not used
+ 01 8 kbit/s
+
+
+
+ Groves et al Expires - October 2003 [Page 155]
+ Megaco Protocol version 2 April 2003
+
+
+ Property
+ PropertyID Type Value
+ tag
+
+ 10 16 kbit/s
+ 11 32 kbit/s
+
+ Ref.: ITU-T Q.931
+
+ nictx 900D Boolean Network Independent Clock (NIC) on
+ transmission
+
+ 0 Not required to send data with
+ network independent clock
+
+ 1 Required to send data with
+ network independent clock
+
+ Ref.: ITU-T Q.931
+
+ nicrx 900E Boolean Network independent clock (NIC) on
+ reception
+
+ 0 Cannot accept data with network
+ independent clock (i.e. sender
+ does not support this optional
+ procedure)
+
+ 1 Can accept data with network
+ independent clock (i.e. sender
+ does support this optional
+ procedure)
+
+ Ref.: ITU-T Q.931
+
+ flowconttx 900F Boolean Flow Control on transmission (Tx)
+
+ 0 Not required to send data with
+ flow control mechanism
+
+ 1 Required to send data with flow
+ control mechanism
+
+ Ref.: ITU-T Q.931
+
+ flowcontrx 9010 Boolean Flow control on reception (Rx)
+
+ 0 Cannot accept data with flow
+ control mechanism (i.e. sender
+
+
+ Groves et al Expires - October 2003 [Page 156]
+ Megaco Protocol version 2 April 2003
+
+
+ Property
+ PropertyID Type Value
+ tag
+
+ does not support this optional
+ procedure)
+
+ 1 Can accept data with flow
+ control mechanism (i.e. sender
+ does support this optional
+ procedure)
+
+ Ref.: ITU-T Q.931
+
+ rateadapth 9011 Boolean Rate adaption header/no header
+ dr
+ 0 Rate adaption header not
+ included
+
+ 1 Rate adaption header included
+
+ Ref.: ITU-T Q.931
+
+ multiframe 9012 Boolean Multiple frame establishment
+ support in data link
+
+ 0 Multiple frame establishment
+ not supported. Only UI frames
+ allowed
+
+ 1 Multiple frame establishment
+ supported
+
+ Ref.: ITU-T Q.931
+
+ OPMODE 9013 Boolean Mode of operation
+
+ 0 Bit transparent mode of
+ operation
+
+ 1 Protocol sensitive mode of
+ operation
+
+ Ref.: ITU-T Q.931
+
+ llidnegot 9014 Boolean Logical link identifier
+ negotiation
+
+
+
+
+ Groves et al Expires - October 2003 [Page 157]
+ Megaco Protocol version 2 April 2003
+
+
+ Property
+ PropertyID Type Value
+ tag
+
+ 0 Default, LLI = 256 only
+
+ 1 Full protocol negotiation
+
+ Ref.: ITU-T Q.931
+
+ assign 9015 Boolean Assignor/assignee
+
+ 0 Message originator is "default
+ assignee"
+
+ 1 Message originator is "assignor
+ only"
+
+ Ref.: ITU-T Q.931
+
+ inbandneg 9016 Boolean In-band/out-band negotiation
+
+ 0 Negotiation is done with USER
+ INFORMATION messages on a
+ temporary signalling connection
+
+ 1 Negotiation is done in-band
+ using logical link zero
+
+ Ref.: ITU-T Q.931
+
+ stopbits 9017 2 bits Number of stop bits
+
+ Bits
+ 21
+ --
+ 00 Not used
+ 01 1 bit
+ 10 1.5 bits
+ 11 2 bits
+
+ Ref.: ITU-T Q.931
+
+ databits 9018 2 bits Number of data bits excluding
+ parity bit if present
+
+ Bits
+ 21
+ --
+
+
+ Groves et al Expires - October 2003 [Page 158]
+ Megaco Protocol version 2 April 2003
+
+
+ Property
+ PropertyID Type Value
+ tag
+
+ 00 Not used
+ 01 5 bits
+ 10 7 bits
+ 11 8 bits
+
+ Ref.: ITU-T Q.931
+
+ parity 9019 3 bits Parity information
+
+ Bits
+ 321
+ ---
+ 000 Odd
+ 010 Even
+ 011 None
+ 100 Forced to 0
+ 101 Forced to 1
+
+ All other values are reserved.
+
+ Ref.: ITU-T Q.931
+
+ duplexmode 901A Boolean Mode duplex
+
+ 0 Half duplex
+ 1 Full duplex
+
+ Ref.: ITU-T Q.931
+
+ modem 901B 6 bits Modem Type
+
+ Bits
+ 654321
+ ------
+ 000000
+ through National use
+ 000101
+
+ 010001 Recommendation V.21
+ 010010 Recommendation V.22
+ 010011 Recommendation V.22 bis
+ 010100 Recommendation V.23
+ 010101 Recommendation V.26
+ 011001 Recommendation V.26 bis
+ 010111 Recommendation V.26 ter
+
+
+ Groves et al Expires - October 2003 [Page 159]
+ Megaco Protocol version 2 April 2003
+
+
+ Property
+ PropertyID Type Value
+ tag
+
+ 011000 RecommendationV.27
+ 011001 Recommendation V.27 bis
+ 011010 Recommendation V.27 ter
+ 011011 Recommendation V.29
+ 011101 Recommendation V.32
+ 011110 Recommendation V.34
+
+ 100000
+ through National use
+ 101111
+
+ 110000
+ through User specified
+ 111111
+
+ Ref.: ITU-T Q.931
+
+ layer2prot 901C 5 bits User information layer 2 protocol
+
+ Bits
+ 54321
+ -----
+
+ 00010 Rec. Q.921 / I.441
+
+ 00110 Rec. X.25, link layer
+
+ 01100 LAN logical link control
+
+ (ISO/IEC 8802-2)
+
+ All other values are reserved.
+
+ Ref.: ITU-T Q.931
+
+ layer3prot 901D 5 bits User information layer 3 protocol
+
+ Bits
+ 54321
+ -----
+
+ 00010 ITU-T Q.931
+
+ 00110 ITU-T X.25, packet layer
+
+
+
+
+ Groves et al Expires - October 2003 [Page 160]
+ Megaco Protocol version 2 April 2003
+
+
+ Property
+ PropertyID Type Value
+ tag
+
+ 01011 ISO/IEC TR 9577 (Protocol
+ identification in the
+ network layer)
+
+ All other values are reserved.
+
+ Ref.: ITU-T Q.931
+
+ addlayer3p 901E Octet Additional User Information layer
+ rot 3 protocol
+
+ Bits Bits
+ 4321 4321
+ ---- ----
+
+ 1100 1100 Internet Protocol
+ (RFC 791)
+ (ISO/IEC TR 9577)
+
+ 1100 1111 Point-to-point
+ Protocol (RFC 1661)
+
+ Ref.: ITU-T Q.931
+
+ DialledN 901F 30 Dialled Number
+ octets
+
+ DiallingN 9020 30 Dialling Number
+ octets
+
+ ECHOCI 9021 Not Used. See H.248.1 E.13 for an
+ example of possible Echo Control
+ properties.
+
+ NCI 9022 1 octet Nature of Connection Indicators
+
+ Bits
+ 21 Satellite Indicator
+ --
+ 00 no satellite circuit in the
+ connection
+ 01 one satellite circuit in the
+ connection
+ 10 two satellite circuits in the
+ connection
+
+
+ Groves et al Expires - October 2003 [Page 161]
+ Megaco Protocol version 2 April 2003
+
+
+ Property
+ PropertyID Type Value
+ tag
+
+ 11 spare
+
+ Bits
+ 43 Continuity check indicator
+ --
+ 00 continuity check not required
+ 01 continuity check required on
+ this circuit
+ 10 continuity check performed on
+ a previous circuit
+ 11 spare
+
+ Bit
+ 5 Echo control device indicator
+ -
+ 0 outgoing echo control device
+ not included
+ 1 outgoing echo control device
+ included
+
+ Bits
+ 8 7 6 Spare
+
+ Ref.: ITU-T Q.763
+
+ USI 9023 Octet User Service Information
+ string
+ Ref.: ITU-T Q.763 Clause 3.57
+
+
+
+ C.10 AAL5 properties
+
+
+ PropertyID Property Type Value
+ tag
+
+ FMSDU A001 32-bit Forward Maximum CPCS-SDU Size:
+ integer
+ Maximum CPCS-SDU size sent in
+ the direction from the calling
+ user to the called user.
+
+ Ref.: ITU-T Q.2931
+
+
+
+ Groves et al Expires - October 2003 [Page 162]
+ Megaco Protocol version 2 April 2003
+
+
+ BMSDU A002 32-bit Backwards Maximum CPCS-SDU
+ integer Size:
+
+ Maximum CPCS-SDU size sent in
+ the direction from the called
+ user to the calling user.
+
+ Ref.: ITU-T Q.2931
+
+ SSCS See See table See table in C.7
+ table in in C.7
+ C.7 Additional values:
+
+ VPI/VCI
+
+
+
+ C.11 SDP equivalents
+
+
+ PropertyID Property Type Value
+ tag
+
+ SDP_V B001 String Protocol Version
+
+ Ref.: RFC 2327
+
+ SDP_O B002 String Owner/creator and session ID
+
+ Ref.: RFC 2327
+
+ SDP_S B003 String Session name
+
+ Ref.: RFC 2327
+
+ SDP_I B004 String Session identifier
+
+ Ref.: RFC 2327
+
+ SDP_U B005 String URI of descriptor
+
+ Ref.: RFC 2327
+
+ SDC_E B006 String email address
+
+ Ref.: RFC 2327
+
+
+
+
+ Groves et al Expires - October 2003 [Page 163]
+ Megaco Protocol version 2 April 2003
+
+
+ SDP_P B007 String phone number
+
+ Ref.: RFC 2327
+
+ SDP_C B008 String Connection information
+
+ Ref.: RFC 2327
+
+ SDP_B B009 String Bandwidth Information
+
+ Ref.: RFC 2327
+
+ SDP_Z B00A String Time zone adjustment
+
+ Ref.: RFC 2327
+
+ SDP_K B00B String Encryption Key
+
+ Ref.: RFC 2327
+
+ SDP_A B00C String Zero or more session
+ attributes
+
+ Ref.: RFC 2327
+
+ SDP_T B00D String Active Session Time
+
+ Ref.: RFC 2327
+
+ SDP_R B00E String Zero or more repeat times
+
+ Reference: RFC 2327
+
+ SDP_M B00F String Media type, port, transport
+ and format
+
+ Ref.: RFC 2327
+
+
+
+ C.12 H.245
+
+
+ PropertyID Property Type Value
+ tag
+
+ OLC C001 Octet The value of H.245
+ OpenLogicalChannel
+
+
+ Groves et al Expires - October 2003 [Page 164]
+ Megaco Protocol version 2 April 2003
+
+
+ PropertyID Property Type Value
+ tag
+
+ string structure.
+
+ Ref.: ITU-T H.245
+
+ OLCack C002 Octet The value of H.245
+ string OpenLogicalChannelAck
+ structure.
+
+ Ref.: ITU-T H.245
+
+ OLCcnf C003 Octet The value of H.245
+ string OpenLogicalChannelConfirm
+ structure.
+
+ Ref.: ITU-T H.245
+
+ OLCrej C004 Octet The value of H.245
+ string OpenLogicalChannelReject
+ structure.
+
+ Ref.: ITU-T H.245
+
+ CLC C005 Octet The value of H.245
+ string CloseLogicalChannel
+ structure.
+
+ Ref.: ITU-T H.245
+
+ CLCack C006 Octet The value of H.245
+ string CloseLogicalChannelAck
+ structure.
+
+ Ref.: ITU-T H.245
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 165]
+ Megaco Protocol version 2 April 2003
+
+
+ ANNEX D TRANSPORT OVER IP
+
+ D.1 Transport over IP/UDP using Application Level Framing (ALF)
+
+ Protocol messages defined in this Recommendation may be transmitted
+ over UDP. When no port is provided by the peer (see 7.2.8), commands
+ SHOULD be sent to the default port number: 2944 for text-encoded
+ operation, or 2945 for binary-encoded operation. Responses must be
+ sent to the address and port from which the corresponding commands
+ were sent.
+
+ ALF is a set of techniques that allows an application, as opposed to
+ a stack, to affect how messages are sent to the other side. A typical
+ ALF technique is to allow an application to change the order of
+ messages sent when there is a queue after it has queued them. There
+ is no formal specification for ALF. The procedures in Annex D.1
+ contain a minimum suggested set of ALF behaviours
+
+ Implementors using IP/UDP with ALF SHOULD be aware of the
+ restrictions of the MTU on the maximum message size.
+
+ D.1.1 Providing At-Most-Once functionality
+
+ Messages, being carried over UDP, may be subject to losses. In the
+ absence of a timely response, commands are repeated. Most commands
+ are not idempotent. The state of the MG would become unpredictable
+ if, for example, Add commands were executed several times. The
+ transmission procedures shall thus provide an "At-Most-Once"
+ functionality.
+
+ Peer protocol entities are expected to keep in memory a list of the
+ responses that they sent to recent transactions and a list of the
+ transactions that are currently outstanding. The transaction
+ identifier of each incoming message is compared to the transaction
+ identifiers of the recent responses sent to the same MId. If a match
+ is found, the entity does not execute the transaction, but simply
+ repeats the response. If no match is found, the message will be
+ compared to the list of currently outstanding transactions. If a
+ match is found in that list, indicating a duplicate transaction, the
+ entity does not execute the transaction (see D.1.4 for procedures on
+ sending TransactionPending).
+
+ The procedure uses a long timer value, noted LONG-TIMER in the
+ following. The timer SHOULD be set larger than the maximum duration
+ of a transaction, which SHOULD take into account the maximum number
+ of repetitions, the maximum value of the repetition timer and the
+ maximum propagation delay of a packet in the network. A suggested
+ value is 30 seconds.
+
+
+
+ Groves et al Expires - October 2003 [Page 166]
+ Megaco Protocol version 2 April 2003
+
+
+ The copy of the responses may be destroyed either LONG-TIMER seconds
+ after the response is issued, or when the entity receives a
+ confirmation that the response has been received, through the
+ "Response Acknowledgement parameter". For transactions that are
+ acknowledged through this parameter, the entity shall keep a copy of
+ the transaction-id for LONG-TIMER seconds after the response is
+ issued, in order to detect and ignore duplicate copies of the
+ transaction request that could be produced by the network.
+
+ D.1.2 Transaction identifiers and three-way handshake
+
+ D.1.2.1 Transaction identifiers
+
+ Transaction identifiers are 32-bit integer numbers. A Media Gateway
+ Controller may decide to use a specific number space for each of the
+ MGs that they manage, or to use the same number space for all MGs
+ that belong to some arbitrary group. MGCs may decide to share the
+ load of managing a large MG between several independent processes.
+ These processes will share the same transaction number space. There
+ are multiple possible implementations of this sharing, such as having
+ a centralized allocation of transaction identifiers, or pre-
+ allocating non-overlapping ranges of identifiers to different
+ processes. The implementations shall guarantee that unique
+ transaction identifiers are allocated to all transactions that
+ originate from a logical MGC (identical mId). MGs can simply detect
+ duplicate transactions by looking at the transaction identifier and
+ mId only.
+
+ D.1.2.2 Three-way handshake
+
+ The TransactionResponse Acknowledgement parameter can be found in any
+ message. It carries a set of "confirmed transaction-id ranges".
+ Entities may choose to delete the copies of the responses to
+ transactions whose id is included in "confirmed transaction-id
+ ranges" received in the transaction response messages. They SHOULD
+ silently discard further commands when the transaction-id falls
+ within these ranges.
+
+ The "confirmed transaction-id ranges" values shall not be used if
+ more than LONG-TIMER seconds have elapsed since the MG issued its
+ last response to that MGC, or when a MG resumes operation. In this
+ situation, transactions SHOULD be accepted and processed, without any
+ test on the transaction id.
+
+ Messages that carry the "Transaction Response Acknowledgement"
+ parameter may be transmitted in any order. The entity shall retain
+ the "confirmed transaction-id ranges" receivedfor LONG-TIMER seconds.
+
+
+
+
+ Groves et al Expires - October 2003 [Page 167]
+ Megaco Protocol version 2 April 2003
+
+
+ In the binary encoding, if only the firstAck is present in a response
+ acknowledgement (see A.2), only one transaction is acknowledged. If
+ both firstAck and lastAck are present, then the range of transactions
+ from firstAck to lastAck is acknowledged. In the text encoding, a
+ horizontal dash is used to indicate a range of transactions being
+ acknowledged (see B.2).
+
+ D.1.3 Computing retransmission timers
+
+ It is the responsibility of the requesting entity to provide suitable
+ timeouts for all outstanding transactions, and to retry transactions
+ when timeouts have been exceeded. Furthermore, when repeated
+ transactions fail to be acknowledged, it is the responsibility of the
+ requesting entity to seek redundant services and/or clear existing or
+ pending connections.
+
+ The specification purposely avoids specifying any value for the
+ retransmission timers. These values are typically network dependent.
+ The retransmission timers SHOULD normally estimate the timer value by
+ measuring the time spent between the sending of a command and the
+ return of a response. Implementations SHALL ensure that the algorithm
+ used to calculate retransmission timing performs an exponentially
+ increasing backoff of the retransmission timeout for each
+ retransmission or repetition after the first one.
+
+ NOTE - One possibility is to use the algorithm implemented in TCP-IP,
+ which uses two variables:
+
+ - The average acknowledgement delay (AAD), estimated through an
+ exponentially smoothed average of the observed delays.
+
+ - The average deviation (ADEV), estimated through an exponentially
+ smoothed average of the absolute value of the difference between
+ the observed delay and the current average. The retransmission
+ timer, in TCP, is set to the sum of the average delay plus N times
+ the average deviation. The maximum value of the timer SHOULD
+ however be bounded for the protocol defined in this
+ Recommendation, in order to guarantee that no repeated packet
+ would be received by the gateways after LONG-TIMER seconds. A
+ suggested maximum value is 4 seconds.
+
+ After any retransmission, the entity SHOULD do the following:
+
+ - It SHOULD double the estimated value of the average delay, AAD.
+
+ - It SHOULD compute a random value, uniformly distributed between
+ 0.5 AAD and AAD.
+
+
+
+
+ Groves et al Expires - October 2003 [Page 168]
+ Megaco Protocol version 2 April 2003
+
+
+ - It SHOULD set the retransmission timer to the sum of that random
+ value and N times the average deviation.
+
+ This procedure has two effects. Because it includes an exponentially
+ increasing component, it will automatically slow down the stream of
+ messages in case of congestion. Because it includes a random
+ component, it will break the potential synchronization between
+ notifications triggered by the same external event.
+
+ D.1.4 Provisional responses
+
+ Executing some transactions may require a long time. Long execution
+ times may interact with the timer-based retransmission procedure.
+ This may result either in an inordinate number of retransmissions, or
+ in timer values that become too long to be efficient. Entities that
+ can predict that a transaction will require a long execution time may
+ send a provisional response, "Transaction Pending". They SHOULD send
+ this response if they receive a repetition of a transaction that is
+ still being executed.
+
+ Entities that receive a Transaction Pending shall switch to a
+ different repetition timer for repeating requests. The root
+ Termination has a property (ProvisionalResponseTimerValue), which can
+ be set to the requested maximum number of milliseconds between
+ receipt of a command and transmission of the TransactionPending
+ response. Upon receipt of a final response following receipt of
+ provisional responses, an immediate confirmation shall be sent, and
+ normal repetition timers shall be used thereafter. An entity that
+ sends a provisional response, SHALL include the immAckRequired field
+ in the ensuing final response, indicating that an immediate
+ confirmation is expected. Receipt of a Transaction Pending after
+ receipt of a reply shall be ignored.
+
+ D.1.5 Repeating Requests, Responses and Acknowledgements
+
+ The protocol is organized as a set of transactions, each of which is
+ composed request and a response, commonly referred to as an
+ acknowledgement. The protocol messages, being carried over UDP, may
+ be subject to losses. In the absence of a timely response,
+ transactions are repeated. Entities are expected to keep in memory a
+ list of the responses that they sent to recent transactions, i.e. a
+ list of all the responses they sent over the last LONG-TIMER seconds,
+ and a list of the transactions that are currently being executed.
+
+ The repetition mechanism is used to guard against three types of
+ possible errors:
+
+ - transmission errors, when for example a packet is lost due to
+ noise on a line or congestion in a queue;
+
+
+ Groves et al Expires - October 2003 [Page 169]
+ Megaco Protocol version 2 April 2003
+
+
+ - component failure, when for example an interface to a entity
+ becomes unavailable;
+
+ - entity failure, when for example an entire entity become
+ unavailable.
+
+ The entities SHOULD be able to derive from the past history an
+ estimate of the packet loss rate due to transmission errors. In a
+ properly configured system, this loss rate SHOULD be kept very low,
+ typically less than 1%. If a Media Gateway Controller or a Media
+ Gateway has to repeat a message more than a few times, it is very
+ legitimate to assume that something else than a transmission error is
+ occurring. For example, given a loss rate of 1%, the probability that
+ five consecutive transmission attempts fail is 1 in 100 billion, an
+ event that SHOULD occur less than once every 10 days for a Media
+ Gateway Controller that processes 1000 transactions per second.
+ (Indeed, the number of repetition that is considered excessive SHOULD
+ be a function of the prevailing packet loss rate.) We SHOULD note
+ that the "suspicion threshold", which we will call "Max1", is
+ normally lower than the "disconnection threshold", which SHOULD be
+ set to a larger value.
+
+ A classic retransmission algorithm would simply count the number of
+ successive repetitions, and conclude that the association is broken
+ after retransmitting the packet an excessive number of times
+ (typically between 7 and 11 times.) In order to account for the
+ possibility of an undetected or in progress "failover", we modify the
+ classic algorithm so that if the Media Gateway receives a valid
+ ServiceChange message announcing a failover, it will start
+ transmitting outstanding commands to that new MGC. Responses to
+ commands are still transmitted to the source address of the command.
+
+ In order to automatically adapt to network load, this Recommendation
+ specifies exponentially increasing timers. If the initial timer is
+ set to 200 milliseconds, the loss of a fifth retransmission will be
+ detected after about 6 seconds. This is probably an acceptable
+ waiting delay to detect a failover. The repetitions SHOULD continue
+ after that delay not only in order to perhaps overcome a transient
+ connectivity problem, but also in order to allow some more time for
+ the execution of a failover (waiting a total delay of 30 seconds is
+ probably acceptable).
+
+ It is, however, important that the maximum delay of retransmissions
+ be bounded. Prior to any retransmission, it is checked that the time
+ elapsed since the sending of the initial datagram is no greater than
+ T-MAX. If more than T-MAX time has elapsed, the MG concludes that the
+ MGC has failed, and it begins its recovery process as described in
+ section 11.5. If the MG retries to connect to the current MGC it
+ shall use a ServiceChange with ServiceChangeMethod set to
+
+
+ Groves et al Expires - October 2003 [Page 170]
+ Megaco Protocol version 2 April 2003
+
+
+ Disconnected so that the new MGC will be aware that the MG lost one
+ or more transactions. The value T-MAX is related to the LONG-TIMER
+ value: the LONG-TIMER value is obtained by adding to T MAX the
+ maximum propagation delay in the network.
+
+ D.2 Using TCP
+
+ Protocol messages as defined in this Recommendation may be
+ transmitted over TCP. When no port is specified by the other side
+ (see 7.2.8), the commands SHOULD be sent to the default port. The
+ defined protocol has messages as the unit of transfer, while TCP is a
+ stream-oriented protocol. TPKT, according to RFC 1006, SHALL be used
+ to delineate messages within the TCP stream.
+
+ In a transaction-oriented protocol, there are still ways for
+ transaction requests or responses to be lost. As such, it is
+ recommended that entities using TCP transport implement application
+ level timers for each request and each response, similar to those
+ specified for application level framing over UDP.
+
+ D.2.1 Providing the At-Most-Once functionality
+
+ Messages, being carried over TCP, are not subject to transport
+ losses, but loss of a transaction request or its reply may
+ nonetheless be noted in real implementations. In the absence of a
+ timely response, commands are repeated. Most commands are not
+ idempotent. The state of the MG would become unpredictable if, for
+ example, Add commands were executed several times.
+
+ To guard against such losses, it is recommended that entities follow
+ the procedures in D.1.1.
+
+ D.2.2 Transaction identifiers and three-way handshake
+
+ For the same reasons, it is possible that transaction replies may be
+ lost even with a reliable delivery protocol such as TCP. It is
+ recommended that entities follow the procedures in D.1.2.2.
+
+ D.2.3 Computing retransmission timers
+
+ With reliable delivery, the incidence of loss of a transaction
+ request or reply is expected to be very low. Therefore, only simple
+ timer mechanisms are required. Exponential back-off algorithms SHOULD
+ not be necessary, although they could be employed where, as in an
+ MGC, the code to do so is already required, since MGCs must implement
+ ALF/UDP as well as TCP.
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 171]
+ Megaco Protocol version 2 April 2003
+
+
+ D.2.4 Provisional responses
+
+ As with UDP, executing some transactions may require a long time.
+ Entities that can predict that a transaction will require a long
+ execution time may send a provisional response, "Transaction
+ Pending". They SHOULD send this response if they receive a repetition
+ of a transaction that is still being executed.
+
+ Entities that receive a Transaction Pending shall switch to a longer
+ repetition timer for that transaction.
+
+ Entities shall retain Transactions and replies until they are
+ confirmed. The basic procedure of D.1.4 SHOULD be followed, but
+ simple timer values SHOULD be sufficient. There is no need to send an
+ immediate confirmation upon receipt of a final response.
+
+ D.2.5 Ordering of commands
+
+ TCP provides ordered delivery of transactions. No special procedures
+ are required. It SHOULD be noted that ALF/UDP allows sending entity
+ to modify its behaviour under congestion, and in particular, could
+ reorder transactions when congestion is encountered. TCP could not
+ achieve the same results.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 172]
+ Megaco Protocol version 2 April 2003
+
+
+ ANNEX E BASIC PACKAGES
+
+ This annex contains definitions of some packages for use with
+ Recommendation H.248.1.
+
+ E.1 Generic
+
+ PackageID: g (0x0001)
+ Version: 1
+ Extends: None
+
+ Description:
+ Generic package for commonly encountered items
+
+ E.1.1 Properties
+
+ None
+
+ E.1.2 Events
+
+ Cause
+
+ EventID: cause (0x0001)
+
+ Generic error event
+
+ EventsDescriptor parameters: None
+
+ ObservedEvents Descriptor Parameters:
+
+ General Cause
+
+ ParameterID: Generalcause (0x0001)
+
+ This parameter groups the failures into six groups, which
+ the MGC may act upon.
+
+ Type: enumeration
+
+ Possible values:
+ "NR" Normal Release (0x0001)
+ "UR" Unavailable Resources (0x0002)
+ "FT" Failure, Temporary (0x0003)
+ "FP" Failure, Permanent (0x0004)
+ "IW" Interworking Error (0x0005)
+ "UN" Unsupported (0x0006)
+
+ Failure Cause
+
+
+
+ Groves et al Expires - October 2003 [Page 173]
+ Megaco Protocol version 2 April 2003
+
+
+ ParameterID: Failurecause (0x0002)
+
+ Possible values: OCTET STRING
+
+ Description: The Failure Cause is the value generated by the
+ Released equipment, i.e. a released network connection. The
+ concerned value is defined in the appropriate bearer control
+ protocol.
+
+
+ Signal Completion
+
+ EventID: sc (0x0002)
+
+ Indicates the termination of a signal for which the
+ notifyCompletion parameter was set to enable reporting of a
+ completion event. For further procedural description, see 7.1.1,
+ 7.1.17 and 7.2.7.
+
+ EventsDescriptor parameters: None
+
+ ObservedEvents Descriptor parameters:
+
+ Signal Identity
+
+ ParameterID: SigID (0x0001)
+
+ This parameter identifies the signal which has terminated.
+ For a signal that is contained in a signal list, the signal
+ list identity parameter SHOULD also be returned indicating
+ the appropriate list.
+
+ Type: Binary: octet (string), Text: string
+
+ Possible values: a signal which has terminated. A signal
+ shall be identified using the pkgdName syntax without
+ wildcarding.
+
+ Termination Method
+
+ ParameterID: Meth (0x0002)
+
+ Indicates the means by which the signal terminated.
+
+ Type: enumeration
+
+ Possible values:
+ "TO" (0x0001) Signal timed out or otherwise completed on
+ its own
+
+
+ Groves et al Expires - October 2003 [Page 174]
+ Megaco Protocol version 2 April 2003
+
+
+ "EV" (0x0002) Interrupted by event
+ "SD" (0x0003) Halted by new Signals descriptor
+ "NC" (0x0004) Not completed, other cause
+
+ Signal List ID
+
+ ParameterID: SLID (0x0003)
+
+ Indicates to which signal list a signal belongs. The
+ SignalList ID is only returned in cases where the signal
+ resides in a signal list.
+
+ Type: integer
+
+ Possible values: any integer
+
+ E.1.3 Signals
+
+ None.
+
+ E.1.4 Statistics
+
+ None.
+
+
+
+ E.2 Base Root Package
+
+ Base Root Package
+
+ PackageID: root (0x0002)
+ Version: 2
+ Extends: None
+
+ Description:
+
+ This package defines Gateway wide properties.
+
+ E.2.1 Properties
+
+ MaxNumberOfContexts
+
+ PropertyID: maxNumberOfContexts (0x0001)
+
+ The value of this property gives the maximum number of contexts
+ that can exist at any time. The NULL context is not included in
+ this number.
+
+ Type: double
+
+
+ Groves et al Expires - October 2003 [Page 175]
+ Megaco Protocol version 2 April 2003
+
+
+ Possible values: 1 and up
+
+ Defined in: TerminationState
+
+ Characteristics: read only
+
+
+ MaxTerminationsPerContext
+
+ PropertyID: maxTerminationsPerContext (0x0002)
+
+ The maximum number of allowed terminations in a context, see 6.1
+
+ Type: integer
+
+ Possible values: any integer
+
+ Defined in: TerminationState
+
+ Characteristics: read only
+
+
+ normalMGExecutionTime
+
+ PropertyId: normalMGExecutionTime (0x0003)
+
+ Settable by the MGC to indicate the interval within which the MGC
+ expects a response to any transaction from the MG (exclusive of
+ network delay)
+
+ Type: integer
+
+ Possible values: any integer, represents milliseconds
+
+ Defined in: TerminationState
+
+ Characteristics: read / write
+
+
+ normalMGCExecutionTime
+
+ PropertyId: normalMGCExecutionTime (0x0004)
+
+ Settable by the MGC to indicate the interval within which the MG
+ SHOULD expects a response to any transaction from the MGC
+ (exclusive of network delay)
+
+ Type: integer
+
+
+
+ Groves et al Expires - October 2003 [Page 176]
+ Megaco Protocol version 2 April 2003
+
+
+ Possible values: any integer, represents milliseconds
+
+ Defined in: TerminationState
+
+ Characteristics: read / write
+
+
+ MGProvisionalResponseTimerValue
+
+ PropertyId: MGProvisionalResponseTimerValue (0x0005)
+
+ Indicates the time within which the MGC SHOULD expect a Pending
+ Response from the MG if a Transaction cannot be completed.
+ Initially set to normalMGExecutionTime plus network delay, but may
+ be lowered.
+
+ Type: Integer
+
+ Possible Values: any integer, represents milliseconds
+
+ Defined in: TerminationState
+
+ Characteristics: read / write
+
+
+ MGCProvisionalResponseTimerValue
+
+ PropertyId: MGCProvisionalResponseTimerValue (0x0006)
+
+ Indicates the time within which the MG SHOULD expect a Pending
+ Response from the MGC if a Transaction cannot be completed.
+ Initially set to normalMGCExecutionTime plus network delay, but
+ may be lowered.
+
+ Type: Integer
+
+ Possible Values: any integer, represents milliseconds
+
+ Defined in: TerminationState
+
+ Characteristics: read / write
+
+
+ MGCOriginatedPendingLimit
+
+ PropertyId: MGCOriginatedPendingLimit (0x0007)
+
+ Indicates the number of TransactionPendings that can be received
+ from the MGC. Once this limit is exceeded the MGC SHOULD issue a
+
+
+ Groves et al Expires - October 2003 [Page 177]
+ Megaco Protocol version 2 April 2003
+
+
+ TransactionReply with Error 506 Number of TransactionPendings
+ Exceeded, otherwise the MG can assume the Transaction to be in
+ error.
+
+ Type: Integer
+
+ Possible Values: any possible integer
+
+ Defined in: TerminationState
+
+ Characteristics: Read/Write
+
+
+ MGOriginatedPendingLimit
+
+ PropertyId: MGOriginatedPendingLimit (0x0008)
+
+ Indicates the number of TransactionPendings that can be received
+ from the MG. Once this limit is exceeded the MG SHOULD issue a
+ TransactionReply with Error 506 Number of TransactionPendings
+ Exceeded, otherwise the MGC can assume the Transaction to be in
+ error.
+
+ Type: Integer
+
+ Possible Values: any possible integer
+
+ Defined in: TerminationState
+
+ Characteristics: Read/Write
+
+ E.2.2 Events
+
+ None.
+
+ E.2.3 Signals
+
+ None.
+
+ E.2.4 Statistics
+
+ None.
+
+ E.2.5 Procedures
+
+ None.
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 178]
+ Megaco Protocol version 2 April 2003
+
+
+ E.3 Tone Generator Package
+
+ PackageID: tonegen (0x0003)
+ Version: 1
+ Extends: None
+
+ Description:
+
+ This package defines signals to generate audio tones. This package
+ does not specify parameter values. It is intended to be extendable.
+ Generally, tones are defined as an individual signal with a
+ parameter, ind, representing "interdigit" time delay, and a tone id
+ to be used with playtones. A tone id SHOULD be kept consistent with
+ any tone generation for the same tone. MGs are expected to be
+ provisioned with the characteristics of appropriate tones for the
+ country in which the MG is located.
+
+ Designed to be extended only: Yes
+
+ E.3.1 Properties
+
+ None.
+
+ E.3.2 Events
+
+ None.
+
+ E.3.3 Signals
+
+ Play tone
+
+ SignalID: pt (0x0001)
+
+ Plays audio tone over an audio channel
+
+ Signal Type: Brief
+
+ Duration: Provisioned
+
+ Additional parameters:
+
+ Tone id list
+
+ ParameterID: tl (0x0001)
+
+ Type: list of tone ids
+
+ List of tones to be played in sequence. The list SHALL
+ contain one or more tone ids.
+
+
+ Groves et al Expires - October 2003 [Page 179]
+ Megaco Protocol version 2 April 2003
+
+
+ Inter signal duration
+
+ ParameterID: ind (0x0002)
+
+ Type: integer
+
+ Timeout between two consecutive tones in milliseconds
+
+ No tone ids are specified in this package. Packages that extend this
+ package can add possible values for tone id as well as adding
+ individual tone signals.
+
+ E.3.4 Statistics
+
+ None.
+
+ E.3.5 Procedures
+
+ None.
+
+
+
+ E.4 Tone Detection Package
+
+ PackageID: tonedet (0x0004)
+ Version: 1
+ Extends: None
+
+ Designed to be extended only: Yes
+
+ This Package defines events for audio tone detection. Tones are
+ selected by name (tone id). MGs are expected to be provisioned with
+ the characteristics of appropriate tones for the country in which the
+ MG is located.
+
+ This package does not specify parameter values. It is intended to be
+ extendable.
+
+ E.4.1 Properties
+
+ None.
+
+ E.4.2 Events
+
+ Start tone detected
+
+ EventID: std, 0x0001
+
+
+
+
+ Groves et al Expires - October 2003 [Page 180]
+ Megaco Protocol version 2 April 2003
+
+
+ Detects the start of a tone. The characteristics of positive tone
+ detection are implementation dependent.
+
+ EventsDescriptor parameters:
+
+ Tone id list
+
+ ParameterID: tl (0x0001)
+
+ Type: list of tone ids
+
+ Possible values: The only tone id defined in this package is
+ "wild card" which is "*" in text encoding and 0x0000 in
+ binary. Extensions to this package would add possible values
+ for tone id. If tl is "wild card", any tone id is detected.
+
+ ObservedEventsDescriptor parameters:
+
+ Tone id
+
+ ParameterID: tid (0x0003)
+
+ Type: enumeration
+
+ Possible values: "wildcard" as defined above is the only
+ value defined in this package. Extensions to this package
+ would add additional possible values for tone id.
+
+
+ End tone detected
+
+ EventID: etd, 0x0002
+
+ Detects the end of a tone.
+
+ EventDescriptor parameters:
+
+ Tone id list
+
+ ParameterID: tl (0x0001)
+
+ Type: enumeration or list of enumerated types
+
+ Possible values: No possible values are specified in this
+ package. Extensions to this package would add possible
+ values for tone id.
+
+ ObservedEventsDescriptor parameters:
+
+
+
+ Groves et al Expires - October 2003 [Page 181]
+ Megaco Protocol version 2 April 2003
+
+
+ Tone id
+
+ ParameterID: tid (0x0003)
+
+ Type: enumeration
+
+ Possible values: "wildcard" as defined above is the only
+ value defined in this package. Extensions to this package
+ would add possible values for tone id.
+
+ Duration
+
+ ParameterId: dur (0x0002)
+
+ Type: integer, in milliseconds
+
+ This parameter contains the duration of the tone from first
+ detection until it stopped.
+
+
+ Long tone detected
+
+ EventID: ltd, 0x0003
+
+ Detects that a tone has been playing for at least a certain amount
+ of time
+
+ EventDescriptor parameters:
+
+ Tone id list
+
+ ParameterID: tl (0x0001)
+
+ Type: enumeration or list
+
+ Possible values: "wildcard" as defined above is the only
+ value defined in this package. Extensions to this package
+ would add possible values for tone id.
+
+ Duration:
+
+ ParameterID: dur (0x0002)
+
+ Type: integer, duration to test against
+
+ Possible values: any legal integer, expressed in
+ milliseconds
+
+
+
+
+ Groves et al Expires - October 2003 [Page 182]
+ Megaco Protocol version 2 April 2003
+
+
+ ObservedEventsDescriptor parameters:
+
+ Tone id:
+
+ ParameterID: tid (0x0003)
+
+ Type: Enumeration
+
+ Possible values: No possible values are specified in this
+ package. Extensions to this package would add possible
+ values for tone id.
+
+ E.4.3 Signals
+
+ None.
+
+ E.4.4 Statistics
+
+ None.
+
+ E.4.5 Procedures
+
+ None.
+
+
+
+ E.5 Basic DTMF Generator Package
+
+ PackageID: dg (0x0005)
+ Version: 1
+ Extends: tonegen version 1
+
+ This package defines the basic DTMF tones as signals and extends the
+ allowed values of parameter tl of playtone in tonegen.
+
+ E.5.1 Properties
+
+ None.
+
+ E.5.2 Events
+
+ None.
+
+ E.5.3 Signals
+
+ DTMF character 0
+
+ SignalID: d0 (0x0010)
+
+
+
+ Groves et al Expires - October 2003 [Page 183]
+ Megaco Protocol version 2 April 2003
+
+
+ Generate DTMF 0 tone. The physical characteristic of DTMF 0 is
+ defined in the gateway.
+
+ Signal Type: Brief
+
+ Duration: Provisioned
+
+ Additional parameters:
+
+ None
+
+ Additional values:
+
+ d0 (0x0010) is defined as a tone id for playtone
+
+ The other DTMF characters are specified in exactly the same
+ way. A table with all signal names and signal IDs is included.
+ Note that each DTMF character is defined as both a signal and a
+ tone id, thus extending the basic tone generation package. Also
+ note that DTMF SignalIds are different from the names used in a
+ digit map.
+
+ Signal name Signal ID/Tone id
+
+ DTMF character 0 d0 (0x0010)
+ DTMF character 1 d1 (0x0011)
+ DTMF character 2 d2 (0x0012)
+ DTMF character 3 d3 (0x0013)
+ DTMF character 4 d4 (0x0014)
+ DTMF character 5 d5 (0x0015)
+ DTMF character 6 d6 (0x0016)
+ DTMF character 7 d7 (0x0017)
+ DTMF character 8 d8 (0x0018)
+ DTMF character 9 d9 (0x0019)
+ DTMF character * ds (0x0020)
+ DTMF character # do (0x0021)
+ DTMF character A da (0x001a)
+ DTMF character B db (0x001b)
+ DTMF character C dc (0x001c)
+ DTMF character D dd (0x001d)
+
+ E.5.4 Statistics
+
+ None.
+
+ E.5.5 Procedures
+
+ None.
+
+
+
+ Groves et al Expires - October 2003 [Page 184]
+ Megaco Protocol version 2 April 2003
+
+
+
+
+ E.6 DTMF detection Package
+
+ PackageID: dd (0x0006)
+ Version: 1
+ Extends: tonedet version 1
+
+ This package defines the basic DTMF tones detection. This Package
+ extends the possible values of tone id in the "start tone detected"
+ "end tone detected" and "long tone detected" events.
+
+ Additional tone id values are all tone ids described in package dg
+ (basic DTMF generator package).
+
+ The following table maps DTMF events to digit map symbols as
+ described in 7.1.14.
+
+ DTMF Event Symbol
+
+ d0 "0"
+ d1 "1"
+ d2 "2"
+ d3 "3"
+ d4 "4"
+ d5 "5"
+ d6 "6"
+ d7 "7"
+ d8 "8"
+ d9 "9"
+ da "A" or "a"
+ db "B" or "b"
+ dc "C" or "c"
+ dd "D" or "d"
+ ds "E" or "e"
+ do "F" or "f"
+
+
+ E.6.1 Properties
+
+ None.
+
+ E.6.2 Events
+
+ DTMF digits
+
+ EventIds are defined with the same names as the SignalIds defined in
+ the table found in E.5.3.
+
+
+
+ Groves et al Expires - October 2003 [Page 185]
+ Megaco Protocol version 2 April 2003
+
+
+
+
+ DigitMap Completion Event
+
+ EventID: ce, 0x0004
+
+ Generated when a digit map completes as described in 7.1.14.
+
+ EventsDescriptor parameters: None.
+
+ ObservedEventsDescriptor parameters:
+
+ DigitString
+
+ ParameterID: ds (0x0001)
+
+ Type: string of digit map symbols (possibly empty) returned
+ as a quotedString
+
+ Possible values: a sequence of the characters "0" through
+ "9", "A" through "F", and the long duration modifier "Z".
+
+ Description: the portion of the current dial string as
+ described in 7.1.14 which matched part or all of an
+ alternative event sequence specified in the digit map.
+
+ Termination Method
+
+ ParameterID: Meth (0x0003)
+
+ Type: enumeration
+
+ Possible values:
+
+ "UM" (0x0001) Unambiguous match
+
+ "PM" (0x0002) Partial match, completion by timer expiry or
+ unmatched event
+
+ "FM" (0x0003) Full match, completion by timer expiry or
+ unmatched event
+
+ Description: indicates the reason for generation of the
+ event. See the procedures in 7.1.14.
+
+ E.6.3 Signals
+
+ None.
+
+
+
+ Groves et al Expires - October 2003 [Page 186]
+ Megaco Protocol version 2 April 2003
+
+
+ E.6.4 Statistics
+
+ None.
+
+ E.6.5 Procedures
+
+ Digit map processing is activated only if an events descriptor is
+ activated that contains a digit map completion event as defined in
+ Section E.6.2 and that digit map completion event contains an eventDM
+ field in the requested actions as defined in Section 7.1.9. Other
+ parameters such as KeepActive or embedded events of signals
+ descriptors may also be present in the events descriptor and do not
+ affect the activation of digit map processing.
+
+
+
+ E.7 Call Progress Tones Generator Package
+
+ PackageID: cg, 0x0007
+ Version: 1
+ Extends: tonegen version 1
+
+ This package defines the basic call progress tones as signals and
+ extends the allowed values of the tl parameter of playtone in
+ tonegen.
+
+ E.7.1 Properties
+
+ None.
+
+ E.7.2 Events
+
+ None.
+
+ E.7.3 Signals
+
+ Dial Tone
+
+ SignalID: dt (0x0030)
+
+ Generate dial tone. The physical characteristic of dial tone is
+ available in the gateway.
+
+ Signal Type: TimeOut
+
+ Duration: Provisioned
+
+ Additional parameters:
+
+
+
+ Groves et al Expires - October 2003 [Page 187]
+ Megaco Protocol version 2 April 2003
+
+
+ None
+
+ Additional values:
+
+ dt (0x0030) is defined as a tone id for playtone
+
+ The other tones of this package are defined in exactly the same way.
+ A table with all signal names and signal IDs is included. Note that
+ each tone is defined as both a signal and a tone id, thus extending
+ the basic tone generation package.
+
+ Signal Name Signal ID/tone id
+
+ Dial Tone dt (0x0030)
+
+ Ringing Tone rt (0x0031)
+
+ Busy Tone bt (0x0032)
+
+ Congestion Tone ct (0x0033)
+
+ Special Information Tone sit(0x0034)
+
+ (Recording) Warning Tone wt (0x0035)
+
+ Payphone Recognition Tone prt (0x0036)
+
+ Call Waiting Tone cw (0x0037)
+
+ Caller Waiting Tone cr (0x0038)
+
+
+
+ E.7.4 Statistics
+
+ None.
+
+ E.7.5 Procedures
+
+ NOTE - The required set of tone ids corresponds to those defined in
+ Recommendation E.180/Q.35. See Recommendation E.180/Q.35 for
+ definition of the meanings of these tones.
+
+
+
+ E.8 Call Progress Tones Detection Package
+
+ PackageID: cd (0x0008)
+ Version: 1
+
+
+ Groves et al Expires - October 2003 [Page 188]
+ Megaco Protocol version 2 April 2003
+
+
+ Extends: tonedet version 1
+
+ This package defines the basic call progress detection tones. This
+ package extends the possible values of tone id in the "start tone
+ detected", "end tone detected" and "long tone detected" events.
+
+ Additional values
+
+ tone id values are defined for start tone detected, end tone
+ detected and long tone detected with the same values as those in
+ package cg (call progress tones generation package).
+
+ The required set of tone ids corresponds to Recommendation
+ E.180/Q.35. See Recommendation E.180/Q.35 for definition of the
+ meanings of these tones.
+
+ E.8.1 Properties
+
+ None.
+
+ E.8.2 Events
+
+ Events are defined as in the call progress tones generator package
+ (cg) for the tones listed in the table of E.7.3.
+
+ E.8.3 Signals
+
+ None.
+
+ E.8.4 Statistics
+
+ None.
+
+ E.8.5 Procedures
+
+ None.
+
+
+
+ E.9 Analog Line Supervision Package
+
+ PackageID: al, 0x0009
+ Version: 1
+ Extends: None
+
+ This package defines events and signals for an analog line.
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 189]
+ Megaco Protocol version 2 April 2003
+
+
+ E.9.1 Properties
+
+ None
+
+ E.9.2 Events
+
+ onhook
+
+ EventID: on (0x0004)
+
+ Detects handset going on hook. Whenever an events descriptor is
+ activated that requests monitoring for an on-hook event and the
+ line is already on-hook, then the MG shall behave according to the
+ setting of the "strict" parameter.
+
+ EventDescriptor parameters
+
+ Strict Transition
+ ParameterID: strict (0x0001)
+
+ Type: enumeration
+
+ Possible values:
+
+ "exact" (0x00): only an actual hook state transition to on-
+ hook is to be recognized;
+
+ "state" (0x01): the event is to be recognized either if the
+ hook state transition is detected or if the hook state is
+ already on-hook;
+
+ "failWrong" (0x02): if the hook state is already on-hook,
+ the command fails and an error is reported.
+
+ ObservedEventsDescriptor parameters
+
+ Initial State
+ ParameterID: init (0x0002)
+
+ Type: Boolean
+
+ Possible values:
+
+ "True" means that the event was reported because the line
+ was already on-hook when the events descriptor containing
+ this event was activated;
+
+ "False" means that the event represents an actual state
+ transition to on-hook.
+
+
+ Groves et al Expires - October 2003 [Page 190]
+ Megaco Protocol version 2 April 2003
+
+
+
+ offhook
+
+ EventID: of (0x0005)
+
+ Detects handset going off hook. Whenever an events descriptor is
+ activated that requests monitoring for an off-hook event and the
+ line is already off-hook, then the MG shall behave according to
+ the setting of the "strict" parameter.
+
+ EventDescriptor parameters
+
+ Strict Transition
+ ParameterID: strict (0x0001)
+
+ Type: enumeration
+
+ Possible values:
+
+ "exact" (0x00): only an actual hook state transition to off-
+ hook is to be recognized;
+
+ "state" (0x01): the event is to be recognized either if the
+ hook state transition is detected or if the hook state is
+ already off-hook;
+
+ "failWrong" (0x02): if the hook state is already off-hook,
+ the command fails and an error is reported.
+
+ ObservedEventsDescriptor parameters
+
+ Initial State
+ ParameterID: init (0x0002)
+
+ Type: Boolean
+
+ Possible values:
+
+ "True" means that the event was reported because the line
+ was already off-hook when the events descriptor containing
+ this event was activated;
+
+ "False" means that the event represents an actual state
+ transition to off-hook.
+
+
+
+ flashhook
+
+
+
+ Groves et al Expires - October 2003 [Page 191]
+ Megaco Protocol version 2 April 2003
+
+
+ EventID: fl, 0x0006
+
+ Detects handset flash. A flash occurs when an onhook is followed
+ by an offhook between a minimum and maximum duration.
+
+ EventDescriptor parameters
+
+ Minimum duration
+
+ ParameterID: mindur (0x0004)
+
+ Type: integer in milliseconds
+
+ Default value is provisioned.
+
+ Maximum duration
+
+ ParameterID: maxdur (0x0005)
+
+ Type: integer in milliseconds
+
+ Default value is provisioned.
+
+ ObservedEventsDescriptor parameters
+
+ None
+
+ E.9.3 Signals
+
+ ring
+
+ SignalID: ri, 0x0002
+
+ Applies ringing on the line
+
+ Signal Type: TimeOut
+
+ Duration: Provisioned
+
+ Additional parameters:
+
+ Cadence
+
+ ParameterID: cad (0x0006)
+
+ Type: list of integers representing durations of alternating
+ on and off segments, constituting a complete ringing cycle
+ starting with an on. Units in milliseconds
+
+
+
+ Groves et al Expires - October 2003 [Page 192]
+ Megaco Protocol version 2 April 2003
+
+
+ Default is fixed or provisioned. Restricted function MGs may
+ ignore cadence values they are incapable of generating.
+
+ Frequency
+
+ ParameterID: freq (0x0007)
+
+ Type: integer in Hz
+
+ Default is fixed or provisioned. Restricted function MGs may
+ ignore frequency values they are incapable of generating.
+
+ E.9.4 Statistics
+
+ None
+
+ E.9.5 Procedures
+
+ If the MGC sets an EventsDescriptor containing a hook state
+ transition event (on-hook or off-hook) with the "strict" (0x0001)
+ parameter set to "failWrong", and the hook state is already what the
+ transition implies, the execution of the command containing that
+ EventsDescriptor fails. The MG SHALL include error code 540
+ "Unexpected initial hook state" in its reponse.
+
+ E.9.6 Error code
+
+ This package defines a new error code:
+
+ 540 - Unexpected initial hook state
+
+ The procedure for use of this code is given in E.9.5.
+
+
+
+ E.10 Basic Continuity Package
+
+ PackageID: ct (0x000a)
+ Version: 1
+ Extends: None
+
+ This package defines events and signals for continuity test. The
+ continuity test includes provision of either a loopback or
+ transceiver functionality.
+
+ E.10.1 Properties
+
+ None.
+
+
+
+ Groves et al Expires - October 2003 [Page 193]
+ Megaco Protocol version 2 April 2003
+
+
+ E.10.2 Events
+
+ Completion
+
+ EventID: cmp, 0x0005
+
+ This event detects test completion of continuity test.
+
+ EventDescriptor parameters
+
+ None
+
+ ObservedEventsDescriptor parameters
+
+ Result
+
+ ParameterID: res (0x0008)
+
+ Type: enumeration
+
+ Possible values: success (0x0001), failure (0x0000)
+
+ E.10.3 Signals
+
+ Continuity test
+
+ SignalID: ct (0x0003)
+
+ Initiates sending of continuity test tone on the termination to
+ which it is applied.
+
+ Signal Type: TimeOut
+
+ Default value is provisioned
+
+ Additional parameters:
+
+ None
+
+
+ Respond
+
+ SignalID: rsp (0x0004)
+
+ The signal is used to respond to a continuity test. See E.10.5 for
+ further explanation.
+
+ Signal Type: On/Off
+
+
+
+ Groves et al Expires - October 2003 [Page 194]
+ Megaco Protocol version 2 April 2003
+
+
+ Default duration is provisioned
+
+ Additional parameters:
+
+ None
+
+ E.10.4 Statistics
+
+ None.
+
+ E.10.5 Procedures
+
+ When a MGC wants to initiate a continuity test, it sends a command to
+ the MG containing:
+
+ - a signals descriptor with the ct signal; and
+
+ - an events descriptor containing the cmp event.
+
+ Upon reception of a command containing the ct signal and cmp event,
+ the MG initiates the continuity test tone for the specified
+ Termination. If the return tone is detected and any other required
+ conditions are satisfied before the signal times out, the cmp event
+ shall be generated with the value of the result parameter equal to
+ success. In all other cases, the cmp event shall be generated with
+ the value of the result parameter equal to failure.
+
+ When a MGC wants the MG to respond to a continuity test, it sends a
+ command to the MG containing a signals descriptor with the rsp
+ signal. Upon reception of a command with the rsp signal, the MG
+ either applies a loopback or (for 2-wire circuits) awaits reception
+ of a continuity test tone. In the loopback case, any incoming
+ information shall be reflected back as outgoing information. In the
+ 2-wire case, any time the appropriate test tone is received, the
+ appropriate response tone SHOULD be sent. The MGC determines when to
+ remove the rsp signal.
+
+ When a continuity test is performed on a Termination, no echo devices
+ or codecs shall be active on that Termination.
+
+ Performing voice path assurance as part of continuity testing is
+ provisioned by bilateral agreement between network operators.
+
+ (Informative Note) Example tones and test procedure details are given
+ in Q.724 sections 7 and 8, Q.764 section 2.1.8 and Q.1902.4.
+
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 195]
+ Megaco Protocol version 2 April 2003
+
+
+ E.11 Network Package
+
+ PackageID: nt (0x000b)
+ Version: 1
+ Extends: None
+
+ This package defines properties of network terminations independent
+ of network type.
+
+ E.11.1 Properties
+
+ Maximum Jitter Buffer
+
+ PropertyID: jit (0x0007)
+
+ This property puts a maximum size on the jitter buffer.
+
+ Type: integer in milliseconds
+
+ Possible values: This property is specified in milliseconds.
+
+ Defined in: LocalControlDescriptor
+
+ Characteristics: read/write
+
+ E.11.2 Events
+
+ network failure
+
+ EventID: netfail, 0x0005
+
+ The termination generates this event upon detection of a failure
+ due to external or internal network reasons.
+
+ EventDescriptor parameters
+
+ None
+
+ ObservedEventsDescriptor parameters
+
+ cause
+
+ ParameterID: cs (0x0001)
+
+ Type: string
+
+ Possible values: any text string
+
+
+
+
+ Groves et al Expires - October 2003 [Page 196]
+ Megaco Protocol version 2 April 2003
+
+
+ This parameter may be included with the failure event to
+ provide diagnostic information on the reason of failure.
+
+
+ quality alert
+
+ EventID: qualert, 0x0006
+
+ This event allows the MG to indicate a loss of quality of the
+ network connection. The MG may do this by measuring packet loss,
+ interarrival jitter, propogation delay and then indicating this
+ using a percentage of quality loss.
+
+ EventDescriptor parameters
+
+ Threshold
+
+ ParameterId: th (0x0001)
+
+ Type: integer
+
+ Possible values: 0 to 99
+
+ Description: threshold for percent of quality loss measured,
+ calculated based on a provisioned method, that could take
+ into consideration packet loss, jitter, and delay for
+ example. Event is triggered when calculation exceeds the
+ threshold.
+
+ ObservedEventsDescriptor parameters
+
+ Threshold
+
+ ParameterId: th (0x0001)
+
+ Type: integer
+
+ Possible values: 0 to 99
+
+ Description: percent of quality loss measured, calculated
+ based on a provisioned method, that could take into
+ consideration packet loss, jitter, and delay for example.
+
+ E.11.3 Signals
+
+ None.
+
+ E.11.4 Statistics
+
+
+
+ Groves et al Expires - October 2003 [Page 197]
+ Megaco Protocol version 2 April 2003
+
+
+ Duration
+
+ StatisticsID: dur (0x0001)
+
+ Description: provides duration of time the termination has been in
+ the Context.
+
+ Type: double, in milliseconds
+
+ Octets Sent
+
+ StatisticID: os (0x0002)
+
+ Type: double
+
+ Possible values: any 64-bit integer
+
+ Octets Received
+
+ StatisticID: or (0x0003)
+
+ Type: double
+
+ Possible values: any 64-bit integer
+
+ E.11.5 Procedures
+
+ None.
+
+
+
+ E.12 RTP Package
+
+ PackageID: rtp (0x000c)
+ Version: 1
+ Extends: Network Package version 1
+
+ This package is used to support packet-based multimedia data transfer
+ by means of the Real-time Transport Protocol (RTP) [RFC 1889].
+
+ E.12.1 Properties
+
+ None.
+
+ E.12.2 Events
+
+ Payload Transition
+
+ EventID: pltrans, 0x0001
+
+
+ Groves et al Expires - October 2003 [Page 198]
+ Megaco Protocol version 2 April 2003
+
+
+ This event detects and notifies when there is a transition of the
+ RTP payload format from one format to another.
+
+ EventDescriptor parameters
+
+ None
+
+ ObservedEventsDescriptor parameters
+
+ ParameterName: rtppayload
+
+ ParameterID: rtppltype, 0x01
+
+ Type: list of enumerated types.
+
+ Possible values: The encoding method shall be specified by
+ using one or several valid encoding names, as defined in the
+ RTP AV Profile or registered with IANA.
+
+ E.12.3 Signals
+
+ None.
+
+ E.12.4 Statistics
+
+ Packets Sent
+
+ StatisticID: ps (0x0004)
+
+ Type: double
+
+ Possible values: any 64-bit integer
+
+ Packets Received
+
+ StatisticID: pr (0x0005)
+
+ Type: double
+
+ Possible values: any 64-bit integer
+
+ Packet Loss
+
+ StatisticID: pl (0x0006)
+
+ Describes the current rate of packet loss on an RTP stream, as
+ defined in IETF RFC 1889. Packet loss is expressed as percentage
+ value: number of packets lost in the interval between two
+
+
+
+ Groves et al Expires - October 2003 [Page 199]
+ Megaco Protocol version 2 April 2003
+
+
+ reception reports, divided by the number of packets expected
+ during that interval.
+
+ Type: double
+
+ Possible values: a 32-bit whole number and a 32-bit fraction.
+
+ Jitter
+
+ StatisticID: jit (0x0007)
+
+ Requests the current value of the interarrival jitter on an RTP
+ stream as defined in IETF RFC 1889. Jitter measures the variation
+ in interarrival time for RTP data packets.
+
+ Delay
+
+ StatisticID:delay (0x0008)
+
+ Requests the current value of packet propagation delay expressed
+ in timestamp units. Same as average latency.
+
+ E.12.5 Procedures
+
+ None.
+
+
+
+ E.13 TDM Circuit Package
+
+ PackageID: tdmc (0x000d)
+ Version: 1
+ Extends: Network Package version 1
+
+ This package may be used by any termination that supports gain and
+ echo control. It was originally intended for use on TDM circuits but
+ may be more widely used.
+
+ New versions or extensions of this package SHOULD take non-TDM use
+ into account.
+
+ E.13.1 Properties
+
+ Echo Cancellation
+
+ PropertyID: ec (0x0008)
+
+ Type: boolean
+
+
+
+ Groves et al Expires - October 2003 [Page 200]
+ Megaco Protocol version 2 April 2003
+
+
+ Possible values:
+
+ "on" (when the echo cancellation is requested) and
+
+ "off" (when it is turned off.)
+
+ The default is provisioned.
+
+ Defined in: LocalControlDescriptor
+
+ Characteristics: read/write
+
+ Gain Control
+
+ PropertyID: gain (0x000a)
+
+ Gain control, or usage of of signal level adaptation and noise
+ level reduction is used to adapt the level of the signal. However,
+ it is necessary, for example for modem calls, to turn off this
+ function.
+
+ Type: integer
+
+ Possible values:
+
+ The gain control parameter may either be specified as
+ "automatic" (0xffffffff), or as an explicit number of decibels
+ of gain (any other integer value). The default is provisioned
+ in the MG.
+
+ Defined in: LocalControlDescriptor
+
+ Characteristics: read/write
+
+ E.13.2 Events
+
+ None.
+
+ E.13.3 Signals
+
+ None.
+
+ E.13.4 Statistics
+ None.
+
+ E.13.5 Procedures
+ None.
+
+
+
+
+ Groves et al Expires - October 2003 [Page 201]
+ Megaco Protocol version 2 April 2003
+
+
+ APPENDIX I Example Call Flows
+
+ All H.248.1 implementors must read the normative part of this
+ document carefully before implementing from it. No one SHOULD use the
+ examples in this appendix as stand-alone explanations of how to
+ create protocol messages.
+
+ The examples in this appendix use SDP for encoding of the Local and
+ Remote stream descriptors. SDP is defined in RFC 2327. If there is
+ any discrepancy between the SDP in the examples, and RFC 2327, the
+ RFC SHOULD be consulted for correctness. Audio profiles used are
+ those defined in 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.
+
+ I.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.
+
+ I.1.1 Programming Residential GW Analog Line Terminations for Idle
+ Behaviour
+
+ The following illustrates the API invocations from the Media Gateway
+ Controller and Media Gateways to get the Terminations in this
+ scenario programmed for idle behaviour. 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 = - {
+
+
+ Groves et al Expires - October 2003 [Page 202]
+ Megaco Protocol version 2 April 2003
+
+
+ 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).
+
+
+ Groves et al Expires - October 2003 [Page 203]
+ Megaco Protocol version 2 April 2003
+
+
+ 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.
+
+ I.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:
+
+
+ Groves et al Expires - October 2003 [Page 204]
+ Megaco Protocol version 2 April 2003
+
+
+ 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}
+ }
+
+
+
+
+ Groves et al Expires - October 2003 [Page 205]
+ Megaco Protocol version 2 April 2003
+
+
+ 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,
+
+
+ Groves et al Expires - October 2003 [Page 206]
+ Megaco Protocol version 2 April 2003
+
+
+ Add=A4445{
+ Media {
+ Stream = 1 {
+ Local {
+ v=0
+ o=- 2890844526 2890842807 IN IP4 124.124.124.222
+ s=-
+ t= 00
+ 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
+
+
+ Groves et al Expires - October 2003 [Page 207]
+ Megaco Protocol version 2 April 2003
+
+
+ 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 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= 00
+ c=IN IP4 125.125.125.111
+ m=audio 1111 RTP/AVP 4
+ }
+ } ; RTP profile for G.723.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 {
+
+
+ Groves et al Expires - October 2003 [Page 208]
+ Megaco Protocol version 2 April 2003
+
+
+ Remote {
+ v=0
+ o=- 7736844526 7736842807 IN IP4 125.125.125.111
+ s=-
+ t= 00
+ c=IN IP4 125.125.125.111
+ m=audio 1111 RTP/AVP 4
+ }
+ } ; RTP profile for G.723.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)},
+
+
+ Groves et al Expires - October 2003 [Page 209]
+ Megaco Protocol version 2 April 2003
+
+
+ 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.
+
+ MEGACO/1 [123.123.123.4]:55555
+ Transaction = 50007 {
+ Context = - {AuditValue = A5556{
+ Audit{Media, DigitMap, Events, Signals, Packages, Statistics }}
+ }
+ }
+
+
+
+ Groves et al Expires - October 2003 [Page 210]
+ Megaco Protocol version 2 April 2003
+
+
+ 20) The MG2 replies.
+
+ 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= 00
+ 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= 00
+ 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.
+
+
+
+ Groves et al Expires - October 2003 [Page 211]
+ Megaco Protocol version 2 April 2003
+
+
+ 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
+
+
+ Groves et al Expires - October 2003 [Page 212]
+ Megaco Protocol version 2 April 2003
+
+
+ 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 213]
+ Megaco Protocol version 2 April 2003
+
+
+ APPENDIX II CHANGES FROM RFC XXXX [draft-ietf-megaco-3015corr-02.txt]
+
+ Section Source Description
+
+ Abstract PTT Describes changes between v1 and v2.
+
+ 1 Edit Added instructions on indication of versions in
+ ServiceChangeVersion.
+
+ 2.1 Edit Added references to H.248.4, H.248.5.
+
+ 5 PTT New approach to discrepancy between ITU-T and IETF
+ definition of "SHOULD".
+
+ 6 para 2 List Deleted "modem" [parameters] from last sentence.
+
+ 6.2 para Edit Replaced "taken out of the call it is in" with
+ 4 "subtracted from a context".
+
+ 6.2 Edit Rewritten to clarify.
+ final
+ para
+
+ 6.2.4 List Added note that use of Modem descriptor is
+ table deprecated.
+
+ 6.2.5 AVD Added ability to set signals on ROOT. Affects first
+ para, Modify.
+
+ 6.2.5 Edit Added clarifying phrase "as an entity in itself".
+ first
+ para
+
+ 7.1.2 List Added para spelling out deprecation of Modem
+ descriptor.
+
+ 7.1.3 AVD Added Nx64K multiplex type with description.
+
+ 7.1.7 Edit Removed "under" in last sentence, so that all cases
+ first of specification can be seen to apply.
+ para
+
+ 7.1.12 AVD Added ability to specify individual property, event,
+ signal or statistics to be audited.
+
+ 7.1.12 List Noted deprecation of Modem descriptor.
+
+ 7.1.14.3 AVD Added ability to specify value of "long duration"
+
+
+
+ Groves et al Expires - October 2003 [Page 214]
+ Megaco Protocol version 2 April 2003
+
+
+ threshold within the digit map itself.
+
+ 7.1.14.4 AVD Added text requiring digit buffering and spelling
+ out procedures, if EventBufferControl is OFF.
+
+ 7.1.14.5 AVD Added text on handling of buffered digits.
+ step 2)
+
+ 7.1.14.5 AVD Added provision for inclusion of indication of which
+ step 2) timer expired if digit map completion event allows
+ this.
+
+ 7.1.14.5 AVD Added text providing alternatives for handling of
+ step 5) excess digits.
+
+ 7.1.14.7 AVD Added text on applicability of this clause to
+ final buffered digits.
+ bullet
+
+ 7.1.18 AVD Added ability to specify topology by stream: mention
+ in para 3, new paras before introduction to figures,
+ new Figure 8.
+
+ 7.2.1, List Deprecation of Modem descriptor noted.
+ 7.2.2,
+ 7.2.3,
+ 7.2.4,
+ 7.2.5,
+ 7.2.6
+
+ 7.2.5, AVD Added ability to audit individual property, event,
+ 7.2.6 signal or statistics. Added detailed instructions
+ for this.
+
+ 7.2.8 AVD Added ability to indicate capability change to be
+ audited: added ServiceChangeInfo to bulleted list of
+ contents of ServiceChange descriptor, added para
+ explaining what it is for.
+
+ 7.2.8 Edit Para following new ServiceChangeInfo para: cleanup
+ of wording in second sentence on registration with
+ Failover method.
+
+ 7.2.8 AVD Bullet dealing with ServiceChangeProfile on
+ registration: added text on procedures associated
+ with profiles.
+
+ 7.2.8 AVD Added 916 and 917 ServiceChangeReasons.
+
+
+
+ Groves et al Expires - October 2003 [Page 215]
+ Megaco Protocol version 2 April 2003
+
+
+ 7.2.9 AVD Added text describing the auditing of context
+ properties.
+
+ 7.3 Edit Deleted. Explanation of error descriptors is now in
+ section 7.1.19, and error codes are documented in
+ H.248.8.
+
+ 8.2.3 AVD Added text on properties and procedures to limite
+ the number of pending notices sent for a given
+ transaction.
+
+ 8.3 Edit Added sentence indicating that messages conforming
+ second to this document specify version 2 of the protocol.
+ para
+
+ 9 Edit Added mention of H.248.4 and H.248.5 (were
+ transport-related Annexes to H.248).
+
+ 11 AAP Second para demoted to Note to resolve objection
+ during ITU-T Last Call process.
+
+ 11.3 Edit Modified first sentence to refer specifically to
+ ServiceChange commands constituting registrations.
+ [Hidden issue: reestablishment of contact with
+ Disconnected method does not constitute
+ registration.] Added second sentence requiring that
+ the registration message always conform to version 1
+ [to ensure interoperability before common working
+ version can be established].
+
+ 12.1.1 Edit Slight clarification of "designed to be extended
+ only" description.
+
+ 13 AVD New section providing extended description of
+ profile contents and registration.
+
+ 14 and Edit Renumbered as a result of the new Profile section.
+ sub-
+ sections
+
+ 14.4 AVD IANA considerations for profiles added.
+
+ A.2 Edit Added object identifier including version to ASN.1
+ header.
+
+ A.2 AVD Production TopologyRequest: added optional streamId.
+
+ A.2 AVD Production AuditDescriptor: added auditPropertyToken
+
+
+
+ Groves et al Expires - October 2003 [Page 216]
+ Megaco Protocol version 2 April 2003
+
+
+ term for more specific audit items.
+
+ A.2 AVD New productions IndAuditParameter through
+ IndAudPackagesDescriptor added for more specific
+ audit items.
+
+ A.2 AVD Production MuxType: added nx64k.
+
+ A.2 AVD Production DigitMapValue: added durationTimer term.
+
+ A.2 AVD Production ServiceChangeParm: added
+ serviceChangeInfo term.
+
+ A.3 AVD Production digitMapLetter: added "T" for start
+ timer.
+
+ A.3 Edit Production pathDomainName: added "*" and ".".
+
+ B.2 Edit Production message: version changed to 2 in comment.
+
+ B.2 Post- Production transactionAck: TransactionID
+ edit capitalized.
+
+ B.2 PTT Productions contextID, terminationID, and
+ terminationIDList reordered: grouped with
+ TransactionID to make fundamental productions more
+ visible.
+
+ B.2 AVD Production MuxType: added Nx64kToken.
+
+ B.2 AVD Production digitMapValue: added ["Z" COLON Timer
+ COMMA] alternative.
+
+ B.2 AVD Production digitMapLetter: added "T" (start timer)
+ alternative.
+
+ B.2 AVD Production auditItem: added indAudterminationAudit
+ term.
+
+ B.2 AVD New productions indAudterminationAudit through
+ indAudpackagesDescriptor added for more specific
+ auditing.
+
+ B.2 AVD Production ServiceChangeParm: term auditItem added
+ to indicate nature of capability change.
+
+ B.2 AVD Production topologyTriple: optional eventStream
+ (sic) term added.
+
+
+
+ Groves et al Expires - October 2003 [Page 217]
+ Megaco Protocol version 2 April 2003
+
+
+ B.2 AVD New production Nx64kToken.
+
+ C.1 Edit ACodec: reference corrected to Q.765.5
+
+ E.2.1 Edit Editorial correction to informal name of property
+ maxNumberOfContexts.
+
+ E.2.1 AVD Added properties to govern TransactionPending
+ retransmissions.
+
+ E.4 Edit Added extend-only package usage indicator.
+
+ E.7.3 Edit Added "recording" qualifier to warning tone.
+ table
+
+ E.11.2 Edit For quality alert event: replaced "property" with
+ "event" in description.
+
+ Appendix Edit Expanded on codec examples. Added reference to IANA
+ I second registry for RTP payload types.
+ para
+
+
+
+
+
+
+
+
+
+
+
+
+ INTELLECTUAL PROPERTY RIGHTS
+
+ The ITU draws attention to the possibility that the practice or
+ implementation of this Recommendation 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 Recommendation, the ITU had
+ received notice of intellectual property, protected by patents, which
+ may be required to implement this Recommendation. However,
+ implementors are cautioned that this may not represent the latest
+ information and are therefore strongly urged to consult the TSB
+ patent database.
+
+
+
+ Groves et al Expires - October 2003 [Page 218]
+ Megaco version 2 April 2003
+
+
+ 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 (MGCP)
+ 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 (2885, 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 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
+
+
+ Groves et al Expires - October 2003 [Page 219]
+ Megaco version 2 April 2003
+
+
+ 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
+ Lucent Technologies/INS/Voice Over IP Access Networks
+ Rm 2G-219A, 101 Crawfords Corner Rd, Holmdel, NJ 07733-3030
+ Phone: +1.732.949.5628
+
+ Christian Groves
+ Ericsson AsiaPacificLab Australia
+ 37/360 Elizabeth St
+ Melbourne, Victoria 3000
+ Australia
+
+ Marcello Pantaleo
+ Ericsson Eurolab Deutschland
+ Ericsson Allee 1
+ 52134 Herzogenrath, Germany
+
+ Tom Taylor
+ Nortel Networks
+ 1852 Lorraine Ave,
+ Ottawa, Ontario
+ Canada K1H 6Z8
+ Phone: +1 613 736 0961
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Groves et al Expires - October 2003 [Page 220] \ No newline at end of file