An Introduction to Megaco/H.248 Tom Taylor taylor@nortelnetworks.com
Media Gateway Control References for Megaco/H.248 RFC 2805 -- requirements RFC 3015 (Megaco) or ITU-T Rec. H.248 H.248 Annexes F to K History and tutorial: T. Taylor, "Megaco/H.248: A New Standard For Media Gateway Control", IEEE Communications Magazine, October 2000.
Media gateway control vs. call signalling SIP-T, ISUP in H.323, Q.BICC SG MGC MGC SG SIP SIP User Agent PSTN PSTN H.323 call signalling Gateway control protocol Gateway control protocol H.323 Endpoint MG MG Call signalling Media gateway control signalling Media flows
Gateway control family tree SGCP Early 1998 IPDC ASPEN Late 1998 MGCP (I-RFC 2705) MDCP 1999 (Standard in 2000) Megaco/H.248
Gateway control functions Connection Bearer Mediation Media Transcoding Events and Signals Context Terminations The context supports multiple media streams if required for multimedia service.
Basic concepts Connection model: terminations, streams, and the context Termination properties: descriptors Context properties Message structure: transactions, actions, and commands Event and signal processing Packages
Media flow connections Connections achieved by placing two or more terminations into a common context. Context viewed as mixing bridge Termination = source or sink of media flows provisioned vs. ephemeral terminations provisioned terminations reside in “NULL context” when not active Flows specified by stream common streamID implies connected flows default streamID = 1 to simplify audio-only operation Transport, medium, encoding/decoding specified per stream at each termination Flows are uni-directional. For a given termination, the convention is that the "send" direction is from the context outwards and the "receive" direction is from the exterior into the context. Streams are bidirectional, thus support up to one active flow in each direction.
Context example: basic call Medium=audio, Medium=audio, T2 T1 Mode=sendReceive Mode=sendReceive
Context example: multimedia Stream=1, medium=audio T2 T1 T3 Stream=1, medium=audio Stream=2, medium=video Stream=2, medium=video
Descriptors Properties of terminations are organized syntactically into descriptors basic ones are Termination State, Media, Events, and Signals descriptors Media descriptor actually composed of other descriptors: Stream descriptors, which in turn contain LocalControl, Local, and Remote descriptors Default property values can be configured in the MG The TerminationState descriptor describes termination properties which are independent of any media streams the termination supports at a given time. The Media descriptor describes the streams currently supported by the termination. Streams can be added or deleted at any time. Each stream is described by a separate Stream descriptor. If only one stream is supported, the Stream level of syntax may optionally be omitted, and the StreamID is assumed to be 1. Each Stream descriptor contains a LocalControl, a Local, and a Remote descriptor. The LocalControl descriptor contains properties which relate to the stream as a whole rather than individual directions. The Local descriptor specifies the media flow in the "send" direction, while the Remote descriptor does the same for the media flow in the "receive" direction. When text encoding of the Megaco/H.248 message is being used, the syntax of both descriptors is based on the Session Description Protocol (SDP). Default property values apply to a termination between the time it is created and or it is returned to the NULL context through subtraction and the time the MGC specifies over-riding values. However, the MGC may modify these properties at any time, even in the same transaction
Context properties more could be added in the future currently three properties can be specified for a context more could be added in the future topology descriptor allows detailed specification of connectivity between individual pairs of terminations useful for legal interception priority flag can guide MG's allocation of scarce resources emergency flag can indicate contexts which must be maintained and restored in the event of failures One possible future addition is a video bridging property, indicating the algorithm used for mixing video in multi-party contexts. Examples: current speaker only, mosaic of N most recent speakers, etc.
Null context and ROOT termination Null context introduced as a convention where persistent terminations are held when they are not in a real context When terminations are returned to the null context, they take on their configured default property values. ROOT termination represents the MG itself useful for specifying properties of the MG as a device, and to refer to the MG in commands like AuditCapability and ServiceChange
Message structure Megaco/H.248 message Header Transaction Transaction ... Transaction Req or Reply Req or Reply Req or Reply Trans Hdr Action ... Action Ctx Hdr Ctx Properties Command ... Command Cmd Hdr Descriptor ... Descriptor
Commands Megaco/H.248 provides the following commands For termination manipulation: Add, Subtract, Move, Modify For event reporting: Notify For management: AuditCapability, AuditValue, ServiceChange
Events Events are detected at the MG and reported to the MGC example: in-band signalling MGC controls what events it wants to learn about at any given time sets the termination Events descriptor Events can have side effects stop playout of signals start new signals automatically update the set of events of interest
Signals Signals cause things to happen on terminations play a tone, display text, ... Specified in the Signals descriptor for a termination MGC can specify duration of signal ahead of time or signal can play until explicitly stopped Signals stop playing when any event is detected unless MGC says otherwise.
Packages Add detailed content to the protocol all events, signals, and statistics are specified in packages can also specify additional properties Package definition a continuing process being created by multiple standards bodies private packages also allowed Packages can inherit from and extend other packages.
Example message flow PSTN MGC MG Destination 1. IAM 2. ADD (trunk, send only);ADD(RTP,both) 3. Reply 4. INVITE (local SDP) 5. 180 Ringing (remote SDP) 6. MODIFY (RTP, remote SDP) 7. ACM 8. Reply
Example message flow (2) PSTN MGC MG Destination 10. 200 OK 11. ANM 12. MODIFY (trunk, both) 13. Reply 14. ACK 15. BYE 16. REL 17. SUBTRACT (trunk), SUBTRACT (RTP) 18. Reply 20. RLC 19. 200 OK
Sample message (long text form) MEGACO/1 <MGC1.gz.cn> Transaction=1432 { Context=$ { ADD=Ckt54/20 { Media= { LocalControl={mode=sendonly}, Local={ v=0 c=TDM NUL xxxx m=audio 0 31kHz/I230 basic },
Sample message (long text form) continued Remote={ v=0 c=TDM NUL xxxx m=audio 0 UDI/I230 basic }} }}}
Sample message, compact text form !/1 <MGC1.gz.cn> T=1432{C=${A=Ckt54/20{M={ O={MO=so},L={ v=0 c=TDM NUL xxxx m=audio 0 31kHz/I230 basic },R={ v=0 c=TDM NUL xxxx m=audio 0 31kHz/I230 basic }}}}}