RFC 3054
Megaco IP Phone Media Gateway Application Profile
RFC 3054: Megaco IP Phone Media Gateway Application Profile πβ¨
- RFC number: 3054
- Title: Megaco IP Phone Media Gateway Application Profile
- Authors: P. Blatherwick (Editor), Nortel Networks; R. Bell, Cisco Systems; P. Holland, Circa Communications (Chair, TIA TR-41.3.4)
- Working group: Network Working Group
- Category: Informational
- Date: January 2001
- Obsoletes / Updates: The header doesn't list anything this RFC obsoletes or updates.
Status of this Memo π§Ύ
okay so this memo is just here to provide information for the Internet community π It is NOT a standard of any kind, and it's free to share with anyone (distribution is unlimited)!
Copyright Notice π
Copyright (C) The Internet Society (2001). All Rights Reserved. πΈ
Abstract π
bestie, this doc is all about a specific way to use the Megaco/H.248 Protocol to control Internet telephones and similar gadgets. The star of the show is the Megaco IP Phone Media Gateway π± The phone itself is a Media Gateway (MG) that's controlled by Megaco/H.248, and all the application smarts live in the Media Gateway Controller (MGC) π§
To get a high degree of interoperability and design efficiency in these devices, the doc describes a consistent architectural approach, a particular way of organizing Terminations and Packages, and a Protocol Profile. It's giving "use what already exists" energy: it relies on existing Protocol features and user-interface-related Packages, so it's a straightforward application of Megaco/H.248 β¨
1. Introduction π¦
okay so this document is the current take from the TIA working group on VoIP (Voice over IP) telephone specifications [1], TIA TR-41.3.4 π The plan is for it to be part of their "whole device" spec as an optional method of device control.
Industry feedback made it super clear that interoperability and acoustic performance of Internet telephones are KEY to getting these products out there fast and in big numbers π So TIA set up working group TR-41.3.4 to write a standard for VoIP phones. The group put the "whole device" in scope, so the standard covers a full range of requirements: acoustic performance, protocols, methods for powering, and safety π₯ Where possible, the requirements are based on existing standards, which are included by reference.
The TIA TR-41.3.4 group also realized the standard has to allow creative uses of the equipment, encourage brand new capabilities, and allow for high levels of product customization π¨ To make that happen, peer-to-peer architectures based on protocols like H.323 or SIP, and master/slave architectures like the Megaco/H.248 Protocol, are both necessary and complementary. Two different vibes, one team π«Ά
Then, while supporting the Megaco/H.248 Protocol development effort, the TR-41.3.4 group looked at product-enabling issues and requirements, and came up with an approach for using Megaco/H.248 for Internet telephone device control. This document is the group's current view on that approach π
This document covers:
- the general requirements of the Megaco IP Phone application (section 3),
- the architectural approach and MG organization (section 4),
- details of the specific Termination types used and the Packages each one supports (section 5), and
- the Megaco IP Phone Protocol Profile (section 6).
2. Conventions π
The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this document, are to be interpreted as described in RFC 2119 [5].
3. General Requirements π
okay so these general requirements were the ones that drove the Megaco IP Phone design [1] π
- The Megaco IP Phone must meet the basic needs of the business user from day one;
- Provide a path for rapid expansion to support sophisticated business telephony features;
- Flexibility to allow for a very wide range of telephones and similar devices to be defined, from very simple to very feature rich;
- Simple, minimal design;
- Allow device cost to be appropriate to capabilities provided;
- Packages and Termination types must have characteristics that enable reliability;
- The IP Phone MG shall meet the appropriate Megaco/H.248 Protocol requirements as provided in the Megaco Requirements document [2] and be a straight-forward application of the Megaco/H.248 Protocol [3].
4. Architecture Description ποΈ
The following subsections describe the general design approach and organization of the Megaco IP Phone MG π§
4.1. Design Approach π‘
The design intent of the Megaco IP Phone is to keep it determinedly simple while still providing required support for fully featured business telephones, plus the flexibility for a very wide range of telephone configurations and similar appliances π
The way it gets there is a very simple, direct master/slave control model, where very little feature intelligence is needed in the end device. This design intent matches the Megaco/H.248 Protocol approach really well π
It's important to note that additional functionality, built-in feature capability, or system-specific optimization can easily be added, at the implementer's option, by defining additional Termination types, Event/Signal Packages, or by providing built-in application capability. This document defines the minimal design only π
4.2. General Structure π§©
As shown in Figure 1 below, the Megaco IP Phone is organized as a Media Gateway (MG) that consists of a User Interface Termination and a set of Audio Transducer Terminations π
Several (potentially thousands!) Megaco IP Phone MGs may be controlled by a single Media Gateway Controller (MGC) π This is different from the setup for traditional analog or PBX telephones behind an IP network, where the MGC would control an MG, and that MG would in turn control the collection of telephone devices in question. With a Megaco IP Phone MG, the MG directly implements the media terminations (like handset, handsfree, and headset) as well as the user interface. So in this case, the Megaco IP Phone itself IS the MG π¦
+---------------+
| |
| MGC |
| |
+---------------+
^ \ \ \
|
v
+---------------------------------------------+
| |
| Megaco IP Phone MG |
| ================== Audio Transducer |
| Terminations: |
| Audio context(s): + - - - - - - - + |
| +---------------------+ +-----------+ |
| | Context A | | | Handset | | |
| | | +-----------+ |
RTP | | +-----+ +-----+ | | +-----------+ | |
<--------+-+->| Tr | | Ta2 |<-+-----| Handsfree | |
audio | | +-----+ +-----+ | | +-----------+ | |
stream | | | +-----------+ |
| +---------------------+ | | Headset | | |
| +-----------+ |
| | | |
| ETC. |
| + - - - - - - - + |
| |
| +----------------------------------------+ |
| | User Interface Termination | |
| | +--------------+ +--------------+ | |
| | | Text Display | | Keypad | | |
| | +--------------+ +--------------+ | |
| | +--------------+ +--------------+ | |
| | | Softkeys | | Indicators | | |
| | +--------------+ +--------------+ | |
| | +--------------+ | |
| | | Function Keys| ETC. | |
| | +--------------+ | |
| +----------------------------------------+ |
+---------------------------------------------+
Figure 1: Megaco IP Phone Termination / Package Model
4.3. Termination / Package Organization β¨
Okay so, as you can see in Figure 1, each Audio Transducer Termination is its own individually controllable audio input/output thingy on the telephone π, like the Handset, Handsfree, Headset, etc. π Splitting every audio element into its own distinct Termination means way more flexible apps can be built, like paging, group listening, and so on. π And since this is only the logical view of the device, the protocol sees it this way, but it's also totally possible to keep things simple by hiding all the audio input/outputs behind one single Audio Transducer Termination, like the Handset, and letting the device handle control of the multiple real input/outputs locally inside itself. π§
All non-audio user interface stuff gets grouped under the User Interface Termination. π«Ά This special Termination supports Packages for all the user interaction with the telephone user interface, including Function Keys, Indicators, the Dialpad, etc, depending on what the specific device can actually do (within the constraints in the section on User Interface Termination). The User Interface Termination cannot be placed in any Context. π This grouping behind one well-known Termination is seriously iconic because it makes audits to figure out the actual device configuration way easier, and it cuts down on how many Terminations are needed to represent the user interface. π
There are also TerminationID naming conventions that identify specific Terminations within the Megaco IP Phone MG and sort them into related sets. πΈ These use a set of well-known identifier names for the individual Terminations, like the User Interface Termination (ui), the Handset Audio Transducer (at/hs), or the Handsfree Audio Transducer (at/hf). This naming is a big deal for the Audio Transducer Terminations especially, because the real input/output elements they map to on the physical device mean very different things to the end-user, even though they can be represented in the protocol using exactly the same sets of Packages. π
The naming conventions let the controlling MGC tell those end-user meanings apart without knowing the physical device configuration ahead of time, and without needing different Packages for each audio input/output type. Main character energy, honestly. π¦
And here's the bonus: when you pair these same TerminationID naming conventions with wildcards, the MGC can target commands at whole groups of related Terminations, like all the Audio Transducer Terminations (at/*). π This is especially useful during the discover phase, for example to efficiently Audit all available Audio Transducer Terminations, or to send commands to a whole set of related Terminations in one go, like simultaneously Subtracting all Audio Transducer Terminations from a particular Context. π₯ More on TerminationID naming conventions and how to use them can be found in the sections on Control Interaction and Capability Discovery (the next two subsections) and under Termination Types. π
4.4. Control Interaction π
Okay, so to control audio paths, Audio Transducer Terminations are manipulated using Contexts in the normal way, by sending Add, Move, Subtract and Modify commands addressed to the specific Terminations being manipulated. π For example, creating a Context (Context A) that contains an RTP Termination (Tr) and a Handset Audio Transducer Termination (Ta1) creates a voice connection to and from the handset. βοΈ Then moving a Handsfree Audio Transducer Termination (Ta2) into the Context, and removing the Handset, sets up a handsfree conversation. β¨ This situation is shown in Figure 1. For further details on specific Package support requirements, see the section on Audio Transducer Termination Types. π«Ά
User input elements, like the Keypad or Function Keys, generate Events through Notify commands sent from the User Interface Termination of the Megaco IP Phone MG to the controlling MGC for handling. πΈ These Events follow the specific set of Packages supported by the device's User Interface Termination. For further details on specific Package support requirements, see the section on User Interface Termination Type. π
User output elements, like the Text Display or Indicators, are controlled by Signals sent by the MGC, addressed to the User Interface Termination of the Megaco IP Phone MG. π¦ This usually happens as part of a Modify command, using the syntax defined in the corresponding Packages. Since the User Interface Termination can't be part of any Context, Add, Move and Subtract commands sent to it are not valid. π For further details on specific Package support requirements, see the section on User Interface Termination Type. π₯
Some elements, like Softkeys, have both user input and output aspects, so they both react to Signals and generate Events, as described above. π
The TerminationID naming conventions can be used to target commands at specific Terminations by their well-known names, for example to Add the Handsfree Audio Transducer Termination (at/hf) to a Context. π The naming conventions combined with wildcards can also efficiently send commands to groups of related Terminations, for example to simultaneously Subtract all Audio Transducer Terminations (at/*) from a particular Context. π
4.5. Capability Discovery π§
So at startup or on a service change, the Megaco IP Phone MG identifies itself to its controlling MGC as a Megaco IP Phone class of device by using the IPPhone Protocol Profile. π This is the first and most important stage of capability discovery, and it implicitly gives a huge amount of the necessary info in a single step. π After that, the MGC can make a ton of assumptions about the organization and behavior of the MG. β¨ For further details of ServiceChange operation, see the section on IPPhone Protocol Profile. π
Device capabilities, including the list of all Terminations and the supported Packages for each, are queried through the AuditValue command. πΈ Wildcarded AuditValue commands aimed at the whole MG (that is, addressed to ContextID=Null, TerminationID=ALL) return the list of all Terminations, including the User Interface Termination and all supported Audio Transducer Terminations. π«Ά Since the returned TerminationIDs use well-known identifier names, the MGC can work out the specific audio input/output elements available on the physical device, and what they're intended for. π Further AuditValues commands on individual named Terminations give more details about each one. For example, the MGC can query the user interface support Packages available on the User Interface Termination (ui). π TerminationID naming conventions combined with wildcards can also be used with AuditValues commands to query specific Package support for the whole collection of Audio Transducer Terminations (at/*). π¦
Because the structure of the Megaco IP Phone MG is well known in advance, thanks to the IPPhone Protocol Profile, audits can be efficiently aimed at discovering only the extra information the MGC actually needs. π₯ So the MGC can efficiently and unambiguously discover both the specific user interface capabilities and the supported audio input/outputs of the Megaco IP Phone MG, all without knowing the physical device configuration in advance. π It isn't necessary for the MGC to try to infer function from supported Packages within a random pile of Terminations, and a whole lot of behavior common to all Megaco IP Phone MGs can simply be assumed. π This predetermined organization and behavior greatly reduces design complexity for both the MG and the MGC, and it greatly improves interoperability. Iconic. π β¨
5. Termination Types π¦
The Termination types defined for use in the Megaco IP Phone MG are:
- User Interface (implements user interface);
- Audio Transducer (implements audio input/output to the user, and potentially appears as several individual Terminations corresponding to individual audio input/outputs on the physical device);
- RTP (transport of audio streams over IP).
These Termination types represent minimal capabilities for supporting fully featured business telephones. πΈ Additional Termination types can be defined to extend these capabilities. π
The following subsections describe the requirements and constraints on each type in further detail. π«Ά
5.1. User Interface Termination Type π
The User Interface Termination represents the Megaco IP Phone MG user interface elements. π Megaco IP Phone MGs MUST support exactly one User Interface Termination. π₯
The TerminationID of the User Interface Termination MUST be ui, used for both command addressing and command response return. β¨ The ABNF text encoding for this MUST be as described in Megaco/H.248 Protocol Appendix B.1 [3]. π
Note: If ASN.1 binary encoding is used (OPTIONAL in this specification), the TerminationID for the User Interface Termination MUST be encoded as described in Megaco/H.248 Protocol Appendix A.1 [3], with the alphabetic characters of the identifier given above mapping to the equivalent octet string in the ASN.1 encoding. π
The User Interface Termination cannot be part of any Context, so Add, Move and Subtract commands are invalid for this Termination. π
The User Interface Termination MAY support the following Packages, defined in Megaco/H.248 Protocol H.248 Annex G: "User Interface Elements and Actions Packages" [4]. π
__________________________________________________________
| Package | Name | Support in User Interface |
| | | Termination |
|___________________|_______ |_____________________________|
| Text Display | dis | OPTIONAL |
| Keypad | kp | OPTIONAL |
| Function Key | kf | OPTIONAL |
| Indicator | ind | OPTIONAL |
| Softkey | ks | OPTIONAL |
| Ancillary Input | anci | OPTIONAL |
|___________________|________|_____________________________|
Additional Packages not listed above MAY also be provided where they are defined to extend to additional user interface elements. π§
Note: The reasoning behind making all Packages optional in the User Interface Termination is to allow maximum flexibility for creating a very broad range of Internet telephones and similar devices. π For example, anything from a simple hotel lobby phone (handset and hookswitch only), to conferencing units (handsfree unit and one or two buttons), to fully featured business telephones (display, rich set of keys and indicators, both handset and handsfree, etc.) could be designed. π
5.2. Audio Transducer Termination Types β¨
okay so Audio Transducer Terminations are the ones that handle audio going in and out of the end user's device π§ Megaco IP Phone MGs MUST support at least one Audio Transducer Termination, and it MAY be any of these well-known types (with their identifier names):
- Handset (
hs): input/output π - Handsfree (
hf): input/output π - Headset (
ht): input/output π - Microphone (
mi): input only π€ - Speaker (
sp): output only π
TerminationIDs for these MUST look like at/<name>, where <name> is the 2-character identifier from the list above. That exact string is used for both command addressing and command response return π
If you have more than one Audio Transducer Termination of the same type, each one's TerminationID MUST look like at/<name>/<num>, where <num> is a 2-digit index in hexadecimal starting at 01 π§ Some valid examples are at/hs (handset), at/mi/02 (microphone 2), and at/* (all audio input/outputs). The ABNF text encoding for this MUST follow Megaco/H.248 Protocol Appendix B.1 [3] π«Ά
Note: If you use ASN.1 binary encoding (which is OPTIONAL in this specification), TerminationIDs and wildcards MUST be encoded as described in Megaco/H.248 Protocol Appendix A.1 [3]. The alphabetic characters of the identifiers above map to octet substrings in the ASN.1 encoding, and the / character is not used.
You're allowed to define extra Audio Transducer Termination types too, and the implementer MAY do that π¦ Just know that well-known identifier names for those are outside the scope of this spec.
All Audio Transducer type Terminations MUST support the following Packages, which are defined in Megaco/H.248 Protocol Annex E [3] π
____________________________________________________________
| Package | Name | Support in Audio Transducer |
| | | Terminations |
|_____________________|_______ |_____________________________|
| Basic DTMF Generator| dg | REQUIRED |
| Call Progress Tones | cg | REQUIRED |
| Generator | | |
|_____________________|________|_____________________________|
Additional Packages that aren't listed above MAY also be provided, as long as they're relevant to audio input/output functions π
5.3. RTP Termination Type
Megaco IP Phone MGs MUST support at least one RTP Termination so the device can handle audio streams to and from it, as defined in Megaco/H.248 Protocol Annex E.12 [3] πΆ
No special TerminationID naming convention is defined for RTP Terminations in this spec, so no special naming for you to memorise π
6. IPPhone Protocol Profile π
The following subsections cover the IPPhone Protocol Profile, which is what Megaco IP Phone MGs and their controlling MGCs use to talk to each other. It's basically a set of implicit application-level agreements: how the MG is organised and behaves, which Termination types it uses, the minimum Package support for each one, and the specific minimum choices for transport and encoding β¨
Using this Profile makes life way easier for the MGC, since it doesn't have to guess how the MG is organised. That cuts complexity and cost on both sides and makes interoperability for the Megaco IP Phone application much better π The Profile is specific to the Megaco IP Phone MG, so no other applications of Megaco/H.248 Protocol are affected π
It's important to know that the IPPhone Profile only sets minimum functionality, for interoperability purposes. Additional Termination types, Package support, transport or encoding methods, or other capabilities MAY be added at the implementer's discretion, as long as they stay within the general structure described πΈ
6.1. Profile Descriptor and Usage
Profile name: "IPPhone" Version: 1
Megaco/H.248 Protocol [3] describes startup and service change procedures in detail, including how Profiles get used π
Here's the quick version. On startup, or at a service change, the Megaco IP Phone MG sends the Profile name and version in the ServiceChangeDescriptor parameter of the ServiceChange command. It sends this to the controlling MGC as part of registration π§ The MGC can respond in one of three ways: 1) accept control by acknowledging the Service Change, 2) pass control to a different MGC by replying with a new MGC to try, or 3) refuse control entirely by rejecting the Service Change. If the MGC refuses control, the Megaco IP Phone MG MAY try registering with the other MGCs on its list of MGCs to try π
Once a controlling MGC accepts the IPPhone Profile, both it and the Megaco IP Phone MG are bound by the Profile rules and constraints in the subsections that follow, plus the Megaco IP Phone Termination/Package organisation and behaviour rules from the earlier sections π₯ From that point on, any protocol use outside these rules is considered an error. Not me doing a rule-breaking protocol move π
6.2 Termination Organization and Package Support
Termination organisation, required Termination types, and the specific Packages each one supports MUST be as described in sections 4 - 5 of this document π
Additional Termination types and Package support MAY also be provided within the general structure described π¦
6.3. Transport
Megaco IP Phone MGs MUST support Application Layer Framing (ALF) over UDP transport, as specified in Megaco/H.248 Protocol Appendix D.1 [3] π
That doesn't mean the MG can't support other transport methods too. TCP transport is OPTIONAL, but if you do use it, it MUST conform to Megaco/H.248 Protocol Appendix D.2 [3] π«Ά
6.4. Message Encoding
Megaco IP Phone MGs MUST support ABNF text encoding of the protocol, as specified in Megaco/H.248 Protocol Appendix B [3] π
Again, that doesn't mean the MG can't also support ASN.1 binary encoding. ASN.1 binary encoding is OPTIONAL, but if it's used, it MUST conform to Megaco/H.248 Protocol Appendix A [3] β¨
7. Security Considerations π
The Megaco IP Phone Media Gateway Application Profile adds no new security issues beyond the ones that come with every application of Megaco/H.248 Protocol [3]. Dramatic, I know, but this profile isn't adding any new security drama π
8. References π
- [1] TIA/EIA, IS-811, Performance and Interoperability Requirements for Voice-over-IP (VoIP) Feature Telephones,
http://www.tiaonline.org/standards/ip/voip/tia-eia-is-811-final.pdf - [2] Greene, N., Ramalho, M. and B. Rosen, "Media Gateway Control Protocol Architecture and Requirements", RFC 2805, April 2000.
- [3] Cuervo, F., Greene, N., Rayhan, A., Huitema, C., Rosen, B. and J. Segers, "Megaco Protocol Version 1.0", RFC 3015, November 2000.
- [4] ITU-T SG16, H.248 Annex G: User Interface Elements and Actions Packages, Brown, M. & P. Blatherwick, November 2000.
http://www.itu.int/itudoc/itu-t/rec/h/h248anxg.html - [5] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
9. Authors' Addresses π¦
Peter Blatherwick (Editor)
Nortel Networks
P.O. Box 3511, Stn C
Ottawa, Ontario,
Canada K1Y 4H7
Phone: (613) 763-7539
(613) 724-4726
EMail: blather@nortelnetworks.com
peter.blatherwick@home.com
Bob Bell
Cisco Systems Inc.
576 S. Brentwood Ln.
Bountiful, UT 84010
USA
Phone: (801) 294-3034
EMail: rtbell@cisco.com
Phil Holland
Circa Communications Ltd.
1000 West 14th Street
North Vancouver, British Columbia,
Canada V7P 3P3
Phone: (604) 924-1742
EMail: phil.holland@circa.ca
10. Full Copyright Statement β
Copyright (C) The Internet Society (2001). All Rights Reserved.
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgement π
Funding for the RFC Editor function is currently provided by the Internet Society π«Ά
π¦ where this page comes from
- ietf: rfc3054 2001-01
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms