Internet Engineering Task Force Robert Bell
INTERNET DRAFT Cisco Systems
May 20, 1999 Peter Blatherwick (editor)
Expires November 20, 1999 Nortel Networks
<draft-blatherwick-megaco-ipphone-00.txt> 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,<state>,...) ?!). 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 <draft-ietf-megaco-proto-
col-01.txt> 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<n>
- FunctionKey<n>
6.2.2. Signals
Function key mapping commands:
SetName( <keyid>, <str> )
Where: <str> = 'C' string, 8-bit Unicode UTF-8.
6.2.3. Events
keyDown(<name>) : Key down
keyUp(<name>, <duration in ms>) : 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<n>
- Function Indicator<n>
The standard attributes include:
on, off, blink, fast blink,
slow blink, invert, color, etc.
6.3.2. Signals
Indicator state control commands:
SetIndicator(<indicatorid>, <attribute>) :
Where: <attribute> = on, off, blink, fast blink,
slow blink, invert, color, etc.
Indicator mapping commands:
SetName( <indicatorId>, <str> )
Where: <str> = '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 <Unicode U+000D> 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(<str>, <attribute>) : Display string starting at
current cursor location using attributes
PlaceCursor(<row>, <column>) : Move cursor to location
ClearDisplay() : Clear entire display
Where: <str> = 'C' string UTF-8 characters;
<attribute> = 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(<softkeyid>, <str>)
(Note:SetName with a null string clears the soft key.
Softkey control commands:
Display (<softkeyid>, <str>, <attribute>) : Set softkey
display text
PlaceCursor(<softkeyid>, <row>, <column>) : set softkey cursor
Where: <str> = 'C' string, 8-bit UTF-8 encoding;
<attribute> = OR of blink, invert(TBD);
6.6.2. Events
keyDown(<name>)
keyUp(<name> <duration in ms>)
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(<dialpadid>)
keyUp(<dialpadid>, <duration in ms>)
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]