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. PTT-010426 Megaco/H.248 - 2 Media gateway control vs. call signalling SG SIP-T, ISUP in H.323, Q.BICC MGC SG MGC SIP SIP User Agent PSTN H.323 call signalling PSTN Gateway control protocol Gateway control protocol H.323 Endpoint MG MG Call signalling Media gateway control signalling Media flows PTT-010426 Megaco/H.248 - 3 Gateway control family tree IPDC SGCP Early 1998 ASPEN MDCP MGCP (I-RFC 2705) Megaco/H.248 PTT-010426 Late 1998 1999 (Standard in 2000) Megaco/H.248 - 4 Gateway control functions Connection Bearer Mediation Media Transcoding Events and Signals Context Terminations The context supports multiple media streams if required for multimedia service. PTT-010426 Megaco/H.248 - 5 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 PTT-010426 Megaco/H.248 - 6 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 PTT-010426 Megaco/H.248 - 7 Context example: basic call Medium=audio, Medium=audio, T1 T2 Mode=sendReceive Mode=sendReceive PTT-010426 Megaco/H.248 - 8 Context example: multimedia Stream=1, medium=audio T2 T1 T3 Stream=2, medium=video Stream=1, medium=audio Stream=2, medium=video PTT-010426 Megaco/H.248 - 9 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 PTT-010426 Megaco/H.248 - 10 Context properties • 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 PTT-010426 Megaco/H.248 - 11 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 PTT-010426 Megaco/H.248 - 12 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 PTT-010426 Megaco/H.248 - 13 Commands • Megaco/H.248 provides the following commands • For termination manipulation: Add, Subtract, Move, Modify • For event reporting: Notify • For management: AuditCapability, AuditValue, ServiceChange PTT-010426 Megaco/H.248 - 14 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 PTT-010426 Megaco/H.248 - 15 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. PTT-010426 Megaco/H.248 - 16 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. PTT-010426 Megaco/H.248 - 17 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) 7. ACM 6. MODIFY (RTP, remote SDP) 8. Reply PTT-010426 Megaco/H.248 - 18 Example message flow (2) PSTN MGC MG Destination 10. 200 OK 11. ANM 12. MODIFY (trunk, both) 13. Reply 14. ACK 16. REL 20. RLC 15. BYE 17. SUBTRACT (trunk), SUBTRACT (RTP) 18. Reply 19. 200 OK PTT-010426 Megaco/H.248 - 19 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 }, PTT-010426 Megaco/H.248 - 20 Sample message (long text form) continued Remote={ v=0 c=TDM NUL xxxx m=audio 0 UDI/I230 basic }} }}} PTT-010426 Megaco/H.248 - 21 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 }}}}} PTT-010426 Megaco/H.248 - 22