Internet Engineering Task Force Robert Bell INTERNET DRAFT Cisco Systems May 20, 1999 Peter Blatherwick (editor) Expires November 20, 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. To view the entire list of current Internet-Drafts, please check the "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast). 1. ABSTRACT This document is a proposal to add new event/signal packages and termi- nation classes to the Megaco protocol [3], to support an IP telephone MG. The proposal covers the requirements (section 3), design approach (section 4) and resource/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. Megaco protocol issues affecting effective implementation of IP telephones, including Blatherwick, Bell, Holland, Bach [Page 1] Internet draft IP Phone MG 20 May 1999 complexity, reliable transport, message encoding, security and others are presented in section 8. The proposal represents a 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 a method of device control. 2. INTRODUCTION Industry feedback has made it clear that interoperability and acoustic performance of IP telephones will be key to the rapid and extensive com- mercialization of these products. To facilitate this, the TIA has estab- lished a working group to develop a standard for IP telephones. The 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 pos- sible, the requirements will be based on existing standards, which will be included by reference. The TIA working group has also recognized that the proposed standard must enable creative application of the equipment, encourage the devel- opment of new capabilities and allow for high levels of product cus- tomization. To achieve this, "Peer to Peer" architectures that are based on protocols such as H.323 and SIP and "Client/Server" architec- tures 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 reviewed and the following which represents the work- ing group's current view about the product enabling issues of the Megaco protocol that will relate to an IP telephone, and have included these in this draft. [[ Editorial comments and issues are marked like this. ]] 3. GENERAL REQUIREMENTS The following 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 busi- ness telephony features; 3 Simple, minimal design; 4 Allow device cost to be appropriate to capabilities provided; Blatherwick, Bell, Holland, Bach [Page 2] Internet draft IP Phone MG 20 May 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 wide range of telephone configura- tions. 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 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 capa- bility. This document defines the absolute minimal design. 5. RESOURCE / TERMINATION MODEL 5.1. Organization As shown in the Figure 1 below, the Megaco IP Phone is organized as a Media Gateway (MG) containing a collection of Audio Terminations and user interface resources. The IP Phone MG is a gateway in the sense that it converts audio (and potentially other media) to/from IP streams. The user interface resources are Terminations which may exist outside any media-related context and therefore may not be directly associated with any audio streams. Each user interface element, or collection of similar elements, is modeled as a separate resource. The intent of this is to provide a system of user interface elements which can each be driven independently by the control intelligence (MGC), and provide for a very high degree of flexibility in device configuration. Blatherwick, Bell, Holland, Bach [Page 3] Internet draft IP Phone MG 20 May 1999 +---------------+ | | | MGC | | | +---------------+ ^ | V +----------------------------------------------+ | IP Phone MG | | | | +------------------------------------------+ | | | Context A +-----------------+ | | | | | [Ta] Audio | | | | | +-----+ | Resources | | | RTP | | |[Tr] | +--+ | +---------+ | | | <--------+-+->| RTP |<---|MB|--->| | Speaker | | | | audio | | | | +--+ | +---------+ | | | stream | | +-----+ | +------------+ | | | | | | | Microphone | | | | | | | +------------| | | | | | | +---------+ | | | | | | | Handset | | | | | | | +---------+ | | | | | +-----------------+ | | | +------------------------------------------+ | | | | +---------------+ +---------------+ | | |[Td] Display | |[Tdp] Dialpad | | | | Resources | | Resource | | | +---------------+ +---------------+ | | | | +---------------+ +---------------+ | | |[Ts] Softkey | |[Ti] Indicator | | | | Resources | | Resources | | | +---------------+ +---------------+ | | | | +------------------+ | | |[Tf] Function Key | | | | Resources | | | +------------------+ | +----------------------------------------------+ Figure 1) Megaco IP Phone Resource / Termination Model Blatherwick, Bell, Holland, Bach [Page 4] Internet draft IP Phone MG 20 May 1999 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 TCM telephones behind an IP network, where the MGC would control an MG which in turn controls the collection of telephone devices in question, a large degree of fan-out potentially occurring at the MG as well as the MGC. In the case of an IP Phone, the phone is the MG. 5.2. Control Interaction Audio-related (and other media) Terminations are manipulated using Con- texts in the normal way to provide control of audio paths. For example, creating a Context containing an RTP Termination and a handset resource creates a voice connection to/from the handset. Moving a microphone and speaker into the Context, and removing the handset, could set up a handsfree conversation. User interface resources are generally controlled through Modify com- mands, using syntax defined in the Signals and Events of Packages used by each new Termination class. Where applicable, user interface resources return Events through the Notify command according to the defined Event Packages. Some user interface elements can meaningfully be moved into a Context, as noted in the Termination Class definitions. For example a Dialpad in an audio Context produces DTMF tones in the associated audio streams. Termination Properties can be queried through the Audit command. This allows the MGC to discover specifics of each user interface element of the IP Phone MG. Using addressing, Audit commands may be targeted at the whole MG, which returns the list of all Terminations contained in the IP Phone MG. Further Audits on individual Terminations provide fur- ther details. Modify State parameters can be used to set configuration of individual user interface elements or otherwise modify their behavior. 5.3. Device Construction and Modular Design IP Phones (and potentially many other device types) can be constructed using any sensible collection of Audio Terminations and/or user inter- face resources. While not all configurations are sensible, a very wide range of device configurations can be constructed using the modular building blocks described here. Some examples include: Blatherwick, Bell, Holland, Bach [Page 5] Internet draft IP Phone MG 20 May 1999 1. Business IP telephone * Key/Indicator resource containing a collection of function keys (hold, transfer, conference, mute, etc) indicators (line indica- tors, alerter, message waiting indicator, etc), and hookswitch * Text display resource (large text display) * Softkeys resource * Dialpad resource * Handset, handsfree and headset audio Terminations 2. Simple IP telephone * Key/Indicator resource containing limited function keys (hold, mute, etc) indicators (alerter, message waiting indicator, etc), and hookswitch. * Text display resource (smaller) * Dialpad resource * Handset audio Termination 3. Conference unit * Key/indicator resource containing only hookswitch and mute key * Dialpad * Handsfree audio Termination 4. Hotline (eg. "taxi phone", hotel lobby) * Key/indicator resource containing only hookswitch * Handset audio termination 5.4. Extensibility There are several potential ways to extend the capabilities described here. These include: * Define additional Signal/Event Packages and corresponding Termina- tion Classes for extended user interface or other resource types, used as additional independent user interface elements in Blatherwick, Bell, Holland, Bach [Page 6] Internet draft IP Phone MG 20 May 1999 master/slave control. This would effectively extend the suite of user interface elements described here. * Provide built-in application capability, accessed through addi- tional Signal/Event Packages and Termination Classes, for example to implement a special purpose function not easily modeled through independent user interface elements. This would add semi-intelli- gent local features, still controlled in a master/slave way. * Provide additional built-in application capability using protocols outside of Megaco. 6. IP Business Phone Package Components Because the IP Business Phone has many characteristics which differ from the other Megaco devices, it is desirable to establish an IP Business Phone Package. Also because of the potential diversity of implementa- tions, this package is divided into several component elements. These are: * Audio Resources * Function Key Resources * Indicator Resources * Display Resources * Softkey Resources * Dialpad Resources Other resource components may be identified and thus this list may be expanded in the future. Please note that a IP Business Phone may include in any of the above components in a mixture which seems desirable to the implementers. In this form, a specific IP Business Phone package may contain any combination of the above resources. The component descrip- tions, contained in the subsequent subsections, specify each components' Audit (query) information, State (configuration) parameters, Signals, and Events. [[ *** 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. See ISSUES section. *** ]] Blatherwick, Bell, Holland, Bach [Page 7] Internet draft IP Phone MG 20 May 1999 6.1. Audio Resource Component The audio component contains information, Events and Signals related to the audio elements (transducers) of an IP Phone gateway, including: * Handset, * Handsfree, * Headset, * Microphone, * Speaker. In addition, audio transducers are able to play tones to the user, for example to produce ringback or other call progress indications. 6.1.1. Audit Information Returns transducer list, 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 The standard audio call progress tones include: - Dial - Re-order Blatherwick, Bell, Holland, Bach [Page 8] Internet draft IP Phone MG 20 May 1999 - Ringback - Busy [[ ISSUE: Tone list is known to be incomplete. Needs alignment with other existing 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 pack- ages/termination classes. Each Package or Termination needs config specified. ]] 6.1.3. Signals Audio tone commands: follow the conventions contained in the Megaco Pro- tocol. The following is a list of audio signals which may be applied to an audio 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 Blatherwick, Bell, Holland, Bach [Page 9] Internet draft IP Phone MG 20 May 1999 * z - Calling Card Service Tone * ot - Off Hook Warning Tone * s(###) - Distinctive Tone Pattern Tone [[ Note: these tones are defined in the I-D Megaco Protocol Draft document, in sections 7.1.5 and 7.1.6.]] DTMF feedback tones. Used for audible feedback tones to the user. These are actual DTMF tone pairs played to the user at reduced ampli- tudes. [[ Should tone & cadence settings be part of signal descriptor? ]] 6.1.4. Events None. Note: Hookswitch, often associated with handset, is found in the Func- tion 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. Function Key Resource Component Common telephone function keys are defined in this component. This allows, for example, line keys to be implemented without specific knowl- edge 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 identifier by the MGC, which is returned as part of the key Events. Function keys with an associated indicator share the same identifier within the context of their separate termina- tion classes. For example, if the identifier for a function key is "Call Forward" then the indictor identifier is also "Call Forward". 6.2.1. Audit Information Return list of keys. The standard function keys include: - Hookswitch - Hold Blatherwick, Bell, Holland, Bach [Page 10] Internet draft IP Phone MG 20 May 1999 - Conference - Forward - Transfer - LineKey - FunctionKey 6.2.2. Signals Function key mapping commands: SetName( , ) Where: = 'C' string, 8-bit Unicode UTF-8. 6.2.3. Events keyDown() : Key down keyUp(, ) : Key up 6.3. Indicator Resource Component Common telephone indicators are defined in this component. This allows, for example, indicators to be implemented without specific knowledge of the physical layout of the telephone. Indicators may have well known identifiers, for example: message waiting, hold, line active, and may be alterable as in Function Key Resource Component. 6.3.1. Audit Information Returns a list of indicators and supported attributes. The standard indicators include: - Message waiting indicator - Hold On/Off - Conference - Ringer/Alerter Blatherwick, Bell, Holland, Bach [Page 11] Internet draft IP Phone MG 20 May 1999 - Line - Function Indicator The standard attributes include: on, off, blink, fast blink, slow blink, invert, color, etc. 6.3.2. Signals Indicator state control commands: SetIndicator(, ) : Where: = on, off, blink, fast blink, slow blink, invert, color, etc. Indicator mapping commands: SetName( , ) Where: = 'C' string of Unicode UTF-8. 6.3.3. Events None. 6.4. Text Display Resource Component The text display component supports text display elements. 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. If multiple displays are supported in an MG, each will be handled as a separate termination. 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. Blatherwick, Bell, Holland, Bach [Page 12] Internet draft IP Phone MG 20 May 1999 6.4.1. Audit Information Returns the display parameters (e.g. 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 charac- ter 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.4.2. Signals Text display commands: Display(, ) : Display string starting at current cursor location using attributes PlaceCursor(, ) : Move cursor to location ClearDisplay() : Clear entire display Where: = 'C' string UTF-8 characters; = OR of blink, invert, underline, color (details TBD) 6.4.3. Events None. 6.5. Softkey Component 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 application control- ling 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. 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. Blatherwick, Bell, Holland, Bach [Page 13] Internet draft IP Phone MG 20 May 1999 6.6.1. Signals Softkey mapping commands: SetName(, ) (Note:SetName with a null string clears the soft key. Softkey control commands: Display (, , ) : Set softkey display text PlaceCursor(, , ) : set softkey cursor Where: = 'C' string, 8-bit UTF-8 encoding; = OR of blink, invert(TBD); 6.6.2. Events keyDown() keyUp( ) 6.7. Dialpad Resource Component The dialpad resource component is used to represent a standard 10 digit key pad plus the '*', '#', A, B, C, and D keys. Standard dialpad identifiers include: Blatherwick, Bell, Holland, Bach [Page 14] Internet draft IP Phone MG 20 May 1999 '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() keyUp(, ) 7. 7. Termination Classes The Termination classes for the IP Phone MGs are assembled from the Resource Components defined in the previous section and Packages defined in [3]. The following Termination classes are defined in this section: * Audio * Function Key * Soft Key * Indicator Blatherwick, Bell, Holland, Bach [Page 15] Internet draft IP Phone MG 20 May 1999 * Display * Dialpad 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. 7.1. Audio Termination Class Audio Terminations are used to describe the local termination for audio input, and output devices including: * Handset * Handsfree * Headset * Microphone * Speaker * Tone generator Terminations of the Audio Termination class are expected to provide sup- port for the resource components listed: +----------------------+----------+-------------------------+ |Resource Component | name | support in Audio Class | +----------------------+----------+-------------------------+ |Audio | audio | Mandatory | +----------------------+----------+-------------------------+ 7.2. Function Key Termination Class Terminations of the Function Key Termination class are expected to pro- vide the following support for resource component: Blatherwick, Bell, Holland, Bach [Page 16] Internet draft IP Phone MG 20 May 1999 +-------------------+----------+-------------------------------+ |Resource Component | name |support in Function Key Class | +-------------------+----------+-------------------------------+ |Function Key | fkey | mandatory | +-------------------+----------+-------------------------------+ 7.3. Soft Key Termination Class Terminations of the Soft Key Termination class are expected to provide the following support for resource component: +-------------------+----------+----------------------------+ |Resource Component | name |support in Soft Key Class | +-------------------+----------+----------------------------+ |Soft Key | skey | mandatory | +-------------------+----------+----------------------------+ 7.4. Indicator Termination Class Terminations of the Indicator Termination class are expected to provide the following support for resource component: +-------------------+--------+-----------------------------+ |Resource Component | name |support in Indicator Class | +-------------------+--------+-----------------------------+ |Indicator | indc | mandatory | +-------------------+--------+-----------------------------+ 7.5. Dialpad Termination Class Terminations of the Dialpad Termination class are expected to provide the following support for resource component: Blatherwick, Bell, Holland, Bach [Page 17] Internet draft IP Phone MG 20 May 1999 +--------------------+--------+---------------------------+ |Resource Component | name | support in Keyboard Class | +--------------------+--------+---------------------------+ |DialPad | dpad | mandatory | +--------------------+--------+---------------------------+ 7.6. Text Display Termination Class Text Display Terminations support text displays on IP telephone gate- ways. Terminations of the Text Display Termination class are expected to pro- vide the following support for event packages: +-----------------+-------+--------------------------------+ |Package | name | support for Text Display Class | +-----------------+-------+--------------------------------+ |Text Display | text | mandatory | +-----------------+-------+--------------------------------+ 8. REFERENCES 1. [[ TIA TR-41.3.4 IP Telephone specification ]] 2. Media Gateway Control Protocol Architecture and Requirements, draft-ietf-megaco-reqs-02.txt, Greene, Rosen, Ramalho, 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 Blatherwick, Bell, Holland, Bach [Page 18] Internet draft IP Phone MG 20 May 1999 Peter Blatherwick Nortel Networks P.O. Box 3511, Stn C Ottawa, Ontario, Canada K1Y 4H7 Tel: (613) 763-7539 Email: blather@nortelnetworks.com 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 Phil Holland Circa Communications Ltd. 1000 West 14th Street North Vancouver, British Columbia, Canada. V7P 3P3 Tel: (604) 924-1742 phil.holland@circa.ca Richard Bach Nortel Networks P.O. Box 833805 Richardson, Texas 75083-3805 USA Tel: (972) 684-5341 Email: rbach@nortelnetworks.com Blatherwick, Bell, Holland, Bach [Page 19]