Internet Engineering Task Force Robert Bell INTERNET DRAFT Cisco Systems June 25, 1999 Peter Blatherwick (editor) Expires December 25, 1999 Nortel Networks Phil Holland Circa Communications (Chair TIA TR-41.3.4) Richard Bach Nortel Networks Megaco IP Phone Media Gateway Status of this document 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. 1. ABSTRACT This document is a proposal to add new event/signal packages and termination classes to the Megaco protocol [3], to support an IP telephone MG. The proposal covers the requirements (section 3), design approach (section 4) and package/termination model (section 5) to be used for IP telephones. The new event/signal packages and termination classes are defined in sections 6 and 7 respectively. The proposal represents the current view from the TIA working group on IP telephone specification, TIA TR-41.3.4, with the intent of using this as part of its "whole device" specification as an optional method of device control. Blatherwick, Bell, Holland, Bach [Page 1] Internet draft Megaco IP Phone MG 25 June 1999 2. INTRODUCTION Industry feedback has made it clear that interoperability and acoustic performance of IP telephones will be key to the rapid and extensive commercialization of these products. To facilitate this, the TIA has established working group TR-41.3.4 to develop a standard for IP telephones. The TR-41.3.4 working group has included the "whole device" within the scope of the standard, so a full range of requirements including acoustic performance, protocols, methods for powering and safety will be provided. Where possible, the requirements will be based on existing standards, which will be included by reference. The TIA TR-41.3.4 working group has also recognized that the proposed standard must enable creative application of the equipment, encourage the development of new capabilities and allow for high levels of product customization. To achieve this, "Peer to Peer" architectures that are based on protocols such as H.323 and SIP and "Master/Slave" architectures that use the Megaco protocol are both necessary and complementary. In support of the Megaco protocol development effort, the TR-41.3.4 working group has considered product enabling issues and requirements, and has developed an approach to use the Megaco protocol for IP telephone device control. The following represents the working group's current view. NOTE: This document is a work in progress, known to be incomplete in some areas, and leaves several issues unresolved. However, it is believed that sufficient details are included to allow integration with the main Megaco protocol document, initial implementations and interoperability testing to proceed. [[ Editorial comments and issues are marked like this. ]] 3. GENERAL REQUIREMENTS The following general requirements drive the Megaco-based IP Phone design [1]: 1. The Megaco IP Phone must meet the basic needs of the business user from day one; 2. Provide a path for rapid expansion to support sophisticated business telephony features; 3. Simple, minimal design; 4. Allow device cost to be appropriate to capabilities provided; Blatherwick, Bell, Holland, Bach [Page 2] Internet draft Megaco IP Phone MG 25 June 1999 5. Packages and termination classes must have characteristics that enable reliability; 6. The IP Phone shall also meet the appropriate Megaco protocol requirements as provided in the Megaco requirements document [2]. 4. DESIGN APPROACH Design intent of the Megaco IP Phone is to keep it determinedly simple while providing required support for fully featured business telephones and the flexibility to allow for a very wide range of telephone configurations. The approach to achieve this goal is to provide a very simple and direct master/slave control model in which very little intelligence is required in the end device. This design intent matches the Megaco approach well. It is important to note that additional functionality, built-in feature capability or system-specific optimization can easily be provided, at the option of the manufacturer, by defining additional termination classes, event/signal packages, or providing built-in application capability. This document defines the minimal design. 5. PACKAGE / TERMINATION MODEL 5.1. Organization As shown in Figure 1 below, the Megaco IP Phone is organized as a Media Gateway (MG) that consists of a root termination class and a hierarchy of audio-related terminations. The root termination represents the IP Phone MG itself, and includes packages to implement control of the telephone user interface. The audio terminations represent the telephone audio transducer elements, including Handset, Headset, Speakerphone etc, and DTMF tone generator. These audio terminations are subordinate to the root termination. Blatherwick, Bell, Holland, Bach [Page 3] Internet draft Megaco IP Phone MG 25 June 1999 +---------------+ | | | MGC | | | +---------------+ ^ \ \ \ | v +----------------------------------------------+ | IP Phone MG | | Audio elements | | (Terminations): | | Audio context(s): +----------------+ | | +---------------------+ | +------------+ | | | | Context A | | | Handset | | | | | | | +------------+ | | RTP | | +-----+ +-----+ | | +------------+ | | <--------+-+->| Tr | | Ta2 |<-+---+-| Handsfree | | | audio | | +-----+ +-----+ | | +------------+ | | stream | | | | +------------+ | | | | +-----+ | | | Headset | | | | | | Td | | | +------------+ | | | | +-----+ | | ETC. | | | | ^ | +----------------| | | | | | | | +---------------+-----+ Tone generator | | | (Termination): | | | +------------+ | | +----------| DTMF Tone | | | +------------+ | | - - - - - - - - - - - - - - - - - - - - - - -| | User interface elements | | (Packages of root termination): | | +---------------+ +---------------+ | | |Text Display | | Dialpad | | | +---------------+ +---------------+ | | +---------------+ +---------------+ | | | Softkeys | | Indicators | | | +---------------+ +---------------+ | | +---------------+ | | | Function Keys | ETC. | | +---------------+ | +----------------------------------------------+ Figure 1) Megaco IP Phone Package / Termination Model Several - potentially thousands - of IP Phone MGs are controlled by a single Media Gateway Controller (MGC). This is distinguished from the organization between traditional analog or PBX telephones behind an IP network, where the MGC would control an MG which in turn controls the Blatherwick, Bell, Holland, Bach [Page 4] Internet draft Megaco IP Phone MG 25 June 1999 collection of telephone devices in question. In the case of a Megaco IP Phone MG, the MG directly controls the media terminations like handset, speakerphone and headset, and implements the user interface. In this case, the IP Phone *is* the MG. 5.2. Control Interaction Audio-related (and other media) terminations are manipulated using contexts in the normal way to provide control of audio paths. For example, creating a context (Context A) containing an RTP termination (Tr) and a handset termination (Ta1) creates a voice connection to/from the handset. Moving a handsfree unit termination (Ta2) into the context, and removing the handset, could set up a handsfree conversation. Moving a DTMF tone generator termination (Td) into the context allows tone generation on the audio paths. This situation is shown in Figure 1. User interface elements are associated with the root termination. Elements like Keypad generate events that are passed to the MGC. Elements like the Text Display are controlled by signals sent by the MGC. Where applicable, user interface packages return Events through the Notify command according to the defined Event Packages. User interface elements are controlled through Modify commands addressed to the root class of the IP Phone MG, using syntax defined in the Signals and Events of Packages used by each new Termination class. (Since the user interface elements do not appear in a context, Modify is the only applicable command.) Termination properties can be queried through the Audit command. This allows the MGC to discover capability of each termination class supported by the MG. Using addressing, Audit commands may be targeted at the whole MG, which returns the list of user interface packages supported and all terminations contained. Further Audits on individual Terminations provide further details. Modify State parameters can be used to set configuration of a termination. 6. Business IP Phone Packages This section defines a basic set of packages that may be supported by an IP business telephone. This constitutes a flexible "toolkit" from which a very wide range of telephones and similar devices could be defined. The packages were also defined with reuse in mind for other similar applications. Additional packages can of course be defined as per the mechanism provided by Megaco. Blatherwick, Bell, Holland, Bach [Page 5] Internet draft Megaco IP Phone MG 25 June 1999 A Megaco IP Phone may support following packages. Support for audio-related terminations: * Audio Package (used in audio transducer terminations) * DTMF Tone Generator Package (used in DTMF Tone Generator termination(s)) User interface elements of root termination class: * Function Key Package * Indicator Package * Text Display Package * Softkey Package * Dialpad Package * Ancillary Input Package The package definitions contained in the subsequent subsections specify audit information, events, and signals supported by each of these packages. Audit information listed under each package specifies the information returned when the corresponding termination is audited. Event and signal information specifies the legal properties (values) for event and signal descriptors applied to the corresponding terminations. [[ *** IMPORTANT NOTE: There is currently a problem defining aspects of the IP Phone protocol, for such things as parameterized Signals and Events. We have chosen to document Packages here as if the protocol was described as an API. The intent should be clear enough until complete Package description and encoding rules for Megaco are settled. *** ]] 6.1. Audio Package (aud) The Audio package contains information, events and signal descriptions related to the audio transducer terminations in an IP Phone, including: * Handset, * Handsfree, * Headset, * Microphone, * Speaker. 6.1.1. Audit Information The following is returned as a result of Audit command at the root MG: * Transducer list. Blatherwick, Bell, Holland, Bach [Page 6] Internet draft Megaco IP Phone MG 25 June 1999 The following is returned as a result of Audit command at a particular audio transducer termination (see also definitions of these terminations, next section): * Tones list, * Cadences list. The standard audio transducers include: * Handset * Handsfree * Headset * Microphone * Speaker The standard audio codecs include: * G.711 * G.723.1 * G.729 [[ Note: Do we need the codecs here? Likely not. Needs to be aligned with RTP Package, but left here for now for completeness. ]] The standard audio call progress tones include: * Dialtone * Ringback * Busy * Re-order * Call Waiting [[ ISSUE: Tone list is known to be incomplete. Needs alignment with signals below and with other existing Megaco packages. Do we need a separate Tone Package for Megaco, to handle this in an international context? ]] 6.1.2. Configuration [[ ISSUE: How and where to specify what can be configured. Presumably through Modify(T,,...) ?!). Same issue appears in all packages/termination classes. Each Package or Termination needs configuration specified. ]] 6.1.3. Signals PlayTone( toneId, duration ) Blatherwick, Bell, Holland, Bach [Page 7] Internet draft Megaco IP Phone MG 25 June 1999 Note: Audio PlayTone command follow the conventions contained in the Megaco Protocol. The following is a list of toneIds correspond to audio signals which may be applied to an audio transducer termination. aw - Answer Tone bz - Busy Tone wt - Call Waiting Tone dl - Dial Tone rb - Ringback nbz - Network Busy Tone (reorder or fast cycle busy) rs - Ring Splash Tone p - Prompt Tone e - Error Tone sdl - Stutter Dial Tone (??) v - Alerting Tone y - Recorder Warning Tone (??) sit - SIT Tone (??) z - Calling Card Service Tone (??) ot - Off Hook Warning Tone s(###) - Distinctive Tone Pattern Tone [[ Note: these tones are defined in Megaco Protocol Draft document, in sections 7.1.5 and 7.1.6. These need to be rationalized and aligned. A subset is applicable here. ]] Note: DTMF tones are controlled through the DTMF Tone Generator package, next subsection. 6.1.4. Events None. Note: Hookswitch, often associated with handset, is found in the Function Key Package, since it is not always associated with audio handling and can be used as a separate user interface element. Other possibly related keys are also found there. This strict separation allows greater flexibility in device configuration. 6.2. DTMF Tone Generator Package (dtmftone) The DTMF Tone Generator package contains information, events and signal descriptions related to the DTMF Tone Generator termination class. This can be used to inject DTMF tones into audio contexts towards the network (over RTP) and/or audio transducers (heard by the user). This can also be used for keypad echo. Note that Keypad events will normally be sent to the MGC when digits are entered. This provides a means to play the tones. Blatherwick, Bell, Holland, Bach [Page 8] Internet draft Megaco IP Phone MG 25 June 1999 6.2.1. Audit Information None. 6.2.2. Configuration None. 6.2.3. Signals InjectTone( toneId, direction, duration ) KeypadEcho( on/off, direction, duration ) default = on, upstream Where: toneId = DTMF0-9, *, #, A-D (see DTMF Event package) direction = upstream, downstream, both (default = upstream) duration = tone duration in ms (default = "brief" for InjectTone or track keypad for KeypadEcho) Note: Direction parameter is intend specify how the context streams the injected tones, upstream (towards the audio transducer), or downstream (towards the network through RTP). DTMF tones are played through the audio transducers at reduced amplitude. [[ ISSUE: There is currently no means to control the context to allow this. ]] [[ ISSUE: Is it worth considering if keypad echo should be a state variable of root termination? ]] 6.2.4. Events None. 6.3. Function Key Package (fkey) Events associated with the common telephone function keys are defined in this package. This allows, for example, line keys to be implemented without specific knowledge of the physical layout of the telephone. Function keys may have well known names, for example: Hookswitch, Hold, or Handsfree. Function keys may also be assigned an name identifier by the MGC, which is returned as part of the key events. Function keys with an associated indicator share the same name identifier. For example, if the identifier for a function key is "Call Forward" then the indictor identifier is also "Call Forward". This allows the MGC to determine that these keys and indicators are Blatherwick, Bell, Holland, Bach [Page 9] Internet draft Megaco IP Phone MG 25 June 1999 physically related. If such a relationship exists, the implementation MUST use the naming convention. 6.3.1. Audit Information Return list of keys (id, name if assigned). The standard function keys include: * Hookswitch * Hold * Conference * Forward * Transfer * LineKey * FunctionKey 6.3.2. Signals Function key mapping commands: SetName( keyId, nameStr ) Where: nameStr = 'C' string, 8-bit Unicode UTF-8. 6.3.3. Events keyDown( keyId, nameStr ) keyUp( keyId, nameStr, duration ) Where: duration = key press duration in ms 6.4. Indicator Package (ind) Signals associated with the common telephone indicators are defined in this package. This allows, for example, indicators to be implemented without specific knowledge of the physical layout of the telephone. Indicators may have well known identifier names, for example: message waiting, hold, line active, and may be alterable as in Function Key Package. [[ ISSUE: Should we combine indicator package and function key package? Another possibility is a separate package for Key/Indicator pairs to resolve key/indicator pairs. Leave separate for now. Use naming convention to associate keys with corresponding indicators. Left for further study. ]] Blatherwick, Bell, Holland, Bach [Page 10] Internet draft Megaco IP Phone MG 25 June 1999 6.4.1. Audit Information Returns a list of indicators and supported attributes (id, name if assigned, attributes). The standard indicators include: * Message waiting indicator * Hold On/Off * Conference * Ringer/Alerter * Line * Function Indicator The standard attributes include: * on, off, blink, fast blink, slow blink, invert, color. [[ Note: Need to define attributes appropriate for audible alerts such as ringing, page, possibly error tones etc. These may need to be aligned with other Megaco packages. ]] [[ ISSUE: Should consider additional package specifically for audible indicators. Left for further study. ]] 6.4.2. Signals Indicator state control commands: SetIndicator( indicatorId, attribute ) : Set state of indicator Where: attribute = on, off, blink, fast_blink, slow_blink, invert, color. Indicator mapping commands: SetName( indicatorId, nameStr ) Where: nameStr = 'C' string of Unicode UTF-8. 6.4.3. Events None. 6.5. Text Display Package (tdisp) The text display package supports signals associated with the text display elements. Blatherwick, Bell, Holland, Bach [Page 11] Internet draft Megaco IP Phone MG 25 June 1999 Carriage return is supported in-string, and moves the text input to the beginning of the next line, clearing the remainder (if any) of the current line. Text wrapping is not provided. One or more languages are supported, one of which must provide US ASCII or equivalent character set. Unicode is supported to provide support for multiple languages. The Unicode Standard, Version 2.0 or ISO/IEC 10646-1:1993 shall be the definitive standard intended when the term Unicode is used within the context of this document. All text display elements shall support the Unicode pages U+0000 -> U+00ff as the basic character set. All of the text strings shall be encoded using UTF-8 as defined in ISO/IEC 10646 AM1. 6.5.1. Audit Information Returns the number of displays and display parameters for each (number of rows, columns, color). If a text display element supports more than the mandatory U+0000 -> U+00ff symbol set, it shall respond to an Audit query of the supported character sets by providing the high order octet plus the high order bit of the lower octet of each supported character set. For example, if the text display element supports U+2500 ->U+25ff, U+2600 ->U+26ff and U+2700 -> U+277f, it would return 250, 258, 260, 268, 270 in response to the query. 6.5.2. Signals Text display commands: Display( row, column, str, attribute ) ClearDisplay() : Clear entire display Where: str = 'C' string UTF-8 characters attribute = OR of blink, invert, underline, color (details TBD) [[ Note: Should consider keypad character echo here. Left for further study. ]] [[ Note: Should consider color (foreground and background) here. Left for further study. ]] 6.5.3. Events None. Blatherwick, Bell, Holland, Bach [Page 12] Internet draft Megaco IP Phone MG 25 June 1999 6.6. Softkey Package (skey) Softkeys are a combination of a function key and a display element, sharing some behavior of each. Softkeys are dynamically configured by the MGC based on the current state and context of the application controlling the IP Phone MG. Softkey identifiers are indexed 1,2...N. N is the maximum number of softkeys supported by a specific IP Phone MG. 6.6.1. Audit Information Returns the number of softkeys, display size and Unicode character sets supported for all Softkeys. Additionally, the name and display content of each soft key id is returned. 6.6.2. Signals Softkey mapping commands: SetName( softkeyId, nameStr ) Note: SetName with a null string clears the softkey, ie. the softkey becomes blank and inactive. Softkey control commands: Display( softkeyId, row, column, str, attribute ) : Set softkey display text Where: str = 'C' string, 8-bit UTF-8 encoding attribute = OR of blink, invert (TBD) [[ Note: Should consider color (foreground and background) here. Left for further study. ]] 6.6.3. Events keyDown( softkeyId, nameStr ) keyUp( nameStr, duration ) 6.7. Dialpad Package (dpad) The dialpad package is used to represent a standard 10 digit key pad plus the '*', '#', A, B, C, and D keys. Blatherwick, Bell, Holland, Bach [Page 13] Internet draft Megaco IP Phone MG 25 June 1999 Standard dialpad identifiers (dialpadId) include: * '0','1','2','3','4','5','6','7','8','9','*','#','A','B','C','D' 6.7.1. Audit Information None. 6.7.2. Signals None. 6.7.3. Events keyDown( dialpadId ) keyUp( dialpadId, duration ) 6.8. Ancillary Input Package (anci) The ancillary input package is used to enter user alphanumeric information such as teletext input or scan data, which is forwarded to the MGC for processing. The information is presented as a Unicode character encoded in UTF-8 format. 6.8.1. Audit Information None. 6.8.2. Signals None. 6.8.3. Events CharInput( char ) Where: char = UTF-8 character 7. Termination Classes The Termination classes for the IP Phone MG are: * Root (implements user interface), * Audio transducer (implements audio input/output to the user), * DTMF Tone Generator (implements tone injection and keypad echo), * RTP (transport of audio streams, defined elsewhere in Megaco protocol [3]). Blatherwick, Bell, Holland, Bach [Page 14] Internet draft Megaco IP Phone MG 25 June 1999 These Termination Classes represent minimal capabilities to support fully featured business telephones with purely master/slave control. Additional Termination Classes can of course be defined to extend this capability set. [[ Note: Audit information associated with the termination classes described here is given under the individual package descriptions in the previous section. This keeps the information all in one place for each specific element, which seems to give a clearer description. ]] 7.1. Root Termination Class The root termination class represents the IP Phone MG, including user interfaces. The root termination class cannot be part of a context and hence add/subtract commands do not apply to this class. The LocalTerminationDescriptor and RemoteTerminationDescriptor parameters are never used with this class. [[ Note: Need a section to describe STATE of termination class. No clear way to specify this in current Megaco. ]] This termination class may support following packages. _________________________________________________________________ |Package | Name | Support in Root Class | |______________________|_________ |_______________________________| |Function Key | fkey | Optional | |Indicator | ind | Optional | |Text Display | tdisp | Optional | |Softkey | skey | Optional | |Dialpad | dpad | Optional | |Ancillary Input | anci | Optional | |______________________|__________|_______________________________| Note: The reasoning to make all packages optional is to allow maximum flexibility to create a very broad range of IP 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 full blown business telephones (display, rich set of keys and indicators, both handset and handsfree, etc) could be designed. 7.2. Audio Transducer Termination Class The Audio Transducer Termination class is used to describe the local terminations for audio input and output devices including: * Handset, * Handsfree, * Headset, * Microphone, * Speaker. Blatherwick, Bell, Holland, Bach [Page 15] Internet draft Megaco IP Phone MG 25 June 1999 The RemoteTerminationDescriptor parameter is never used. The LocalTerminationDescriptor may be used to specify the encoding of the media. This parameter is described using SDP, with the following convention: Same as LocalTerminationDescriptor from Analog Termination, section 7.2.2 of Megaco protocol [3]. This termination class may support following packages. _________________________________________________________________ |Package | Name | Support in Audio Transducer | | | | Class | |______________________|__________|_______________________________| |Audio | aud | Mandatory | |______________________|__________|_______________________________| 7.3. DTMF Tone Generator Termination Class DTMF Tone Generator Termination class is used to control the DTMF Tone Generator function. Since this is a termination on its own, DTMF tone generation can be moved in/out of multiple contexts, including contexts with only audio transducers (tones play out to user only) contexts with RTP streams only (tones played to network without user hearing them). This allows a great deal of flexibility in usage of DTMF tones by applications. _________________________________________________________________ |Package | Name | Support in DTMF Tone | | | | Generator Class | |______________________|__________|_______________________________| |DTMF Tone Generator | dtmftone | Mandatory | |______________________|__________|_______________________________| 7.4. RTP Termination Class Refer to Megaco protocol section 7.2.3 [3]. Blatherwick, Bell, Holland, Bach [Page 16] Internet draft Megaco IP Phone MG 25 June 1999 8. REFERENCES 1. [[ TIA TR-41.3.4 IP Telephone specification ]] 2. Media Gateway Control Protocol Architecture and Requirements, draft-ietf-megaco-reqs-03.txt, Greene, Ramalho, Rosen, http://www.ietf.org/internet-drafts/draft-ietf-megaco-reqs-02.txt. 3. MEGACO Protocol, draft-ietf-megaco-protocol-01.txt, Cuervo, Huitema, et al., http://www.ietf.org/internet-drafts/draft-ietf- megaco-protocol-01.txt 4. ISO/IEC 10646-1:1993 The Unicode Standard, http://www.unicode.org 9. ADDRESS INFORMATION Bob Bell Cisco Systems Inc. 640 N. Main St. Suite 2246 North Salt Lake, Ut 84054 USA Tel: (801) 294-3034 Email: rtbell@cisco.com Peter Blatherwick (editor) Nortel Networks P.O. Box 3511, Stn C Ottawa, Ontario, Canada K1Y 4H7 Tel: (613) 763-7539 Email: blather@nortelnetworks.com Phil Holland Circa Communications Ltd. 1000 West 14th Street North Vancouver, British Columbia, Canada. V7P 3P3 Tel: (604) 924-1742 phil.holland@circa.ca