Network Working Group                                  M. Petit-Huguenin
Internet-Draft                                              A. Huckridge
Expires: January 3, 2001                          Netergy Networks, Inc.
                                                            July 5, 2000


                      MGCP User Interface Package
                   draft-petithuguenin-mgcp-ui-pkg-00

Status of this Memo

   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.

   This Internet-Draft will expire on January 3, 2001.

Copyright Notice

   Copyright (C) The Internet Society (2000). All Rights Reserved.

Abstract

   This document proposes a new MGCP[2] package to control the user
   interface of a feature phone.












Petit-Huguenin & Huckridge    Expires January 3, 2001           [Page 1]


Internet-Draft        MGCP User Interface Package              July 2000


Table of Contents

   1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . .   3
   2. User Interface Package . . . . . . . . . . . . . . . . . . . .   3
   3. Security Considerations  . . . . . . . . . . . . . . . . . . .   5
   4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . .   6
      Authors' Addresses . . . . . . . . . . . . . . . . . . . . . .   6
   A. Formal Syntax Definition . . . . . . . . . . . . . . . . . . .   6
      References . . . . . . . . . . . . . . . . . . . . . . . . . .   6
   B. TODO . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   9
      Full Copyright Statement . . . . . . . . . . . . . . . . . . .  10








































Petit-Huguenin & Huckridge    Expires January 3, 2001           [Page 2]


Internet-Draft        MGCP User Interface Package              July 2000


1. Introduction

   The use of POTS as final equipment for VoIP deployement is only a
   transitional phase, and phones with a fully controllable user
   interface will be soon widely available. Until MEGACO/H.248
   implementations[3] becomes available, the master/slave protocol of
   choice for controlling these devices will be MGCP. Hence this
   document defines a MGCP package fitted for handling the user
   interface part of feature phones.

2. User Interface Package

   Package Name: U

    _____________________________________________________________________
   | Symbol |   Definition                   |   R |   S      Duration  |
   |________|________________________________|_____|____________________|
   | inf    |   Display Information          |   x |                    |
   | pos    |   Cursor Position              |   x |   BR               |
   | dis    |   Display Text                 |   x |   BR               |
   | clr    |   Clear Text                   |     |   BR               |
   | kd     |   Key Down                     |   x |                    |
   | ku     |   Key Up                       |   x |                    |
   | im     |   Indicator Mode               |   x |   OO               |
   | rm     |   Ringer Mode                  |   x |   TO               |
   | tn     |   Tone                         |   x |   TO               |
   | oc     |   Operation Complete           |   x |                    |
   |________|________________________________|_____|____________________|

   The definition of the user interface package is as follows:

   Display Information:
      This event is received in an EventState parameter following on an
      AuditEndpoint command with a RequestedInfo parameter . This event
      contains the characteristics of the display, i.e. the maximum
      number of rows and columns.
      This example shows the event received for a text display with 2
      rows and 20 columns:

         ES: U/inf(2,20)

   Cursor Position:
      The cursor position is received in an EventState parameter
      following on an AuditEndpoint command with a RequestedInfo
      parameter.
      This example shows the event received for a cursor positioned on
      the upper left corner of the screen:

         ES: U/pos(0,0)


Petit-Huguenin & Huckridge    Expires January 3, 2001           [Page 3]


Internet-Draft        MGCP User Interface Package              July 2000



      The cursor position can also be used as a signal, to modify the
      current position of the cursor.
      This example resets the position of the cursor at the upper left
      corner of the text display:

         S: U/pos(0,0)

   Display Text:
      This signal allows notification of the text on the screen. The
      text is inserted at the current cursor position and is truncated
      if it wraps to the right side of the display. The cursor position
      is not modified.
      An optional list of styles can be added to the text. These styles
      apply only for the text supplied with this signal. The example
      below displays text with a blinking word:

         S: U/pos(0,0),U/dis("You have a new "),U/pos(0,
         15),U/dis(Message,b)

      The display content can be received in an event following on an
      AuditEndpoint command, as shown in this example:

         ES: U/pos(0,0),U/dis("You have a new "),U/pos(0,
         15),U/dis(Message,b)

   Clear Display:
      This signal clears entirely the display.

         S: U/clr

   Key Down:
      This event is sent when a key is pressed.
      This example shows the event received when the star key is
      pressed:

         O: U/kd(*)

   Key Up:
      This event is sent when a key is released. The duration of the
      key press is sent with this event.
      This example shows the event received when the star key is
      released 750 milliseconds after having been pressed:

         O: U/ku(*,750)

   Indicator Mode:
      When received, this event informs the current mode of an
      indicator. When sent, this signal permits the notification of the


Petit-Huguenin & Huckridge    Expires January 3, 2001           [Page 4]


Internet-Draft        MGCP User Interface Package              July 2000


      current mode of an indicator. The mode of the indicator can be
      described either by name (on, off, wink, flash, flutter and
      brokenflutter) or by a customized cycle description. A customized
      cycle describes the succession and duration of on/off values for
      the indicator.
      This example shows the activation of the voice-mail indicator in
      a blinking mode:

         S: U/im(vm,b)

   Ringer Mode:
      When received, this event informs the current mode of the ringer.
      When sent, this signal allows the notification of the current
      mode of the ringer. The ring sequence     can be customized the same
      way as for the indicator mode.
      A timeout value can be specified with the Ringer Mode signal. If
      so, the ringer will automatically stop and send a
      OperationComplete event.
      This example shows how to play a customized ring:

         S: U/rm(+(200),-(100),+(50),-(50))

   Tone:
      When received, this event informs the current tone is use. When
      sent, this signal permits the notification of the current tone.
      The tone can be described either by name or by a customized
      description of this tone. Customized tones are described by the
      succession of frequencies and levels, eventually superimposed and
      modulated.
      A timeout value can be specified with the Tone signal. If so, the
      tone will automatically stop and send a OperationComplete event.
      Note that named tones can have an implicit (provisioned) timeout
      value.

         S: U/tn

   Operation Complete:
      This event informs that a tone or a ring has timed out. The exact
      signal that has timed-out is passed as a parameter to this event.
      Example:

         O: U/oc(rg(+(512),-(512)))

3. Security Considerations

   The UI package is subject to the security considerations discussed
   in the MGCP specification[2].




Petit-Huguenin & Huckridge    Expires January 3, 2001           [Page 5]


Internet-Draft        MGCP User Interface Package              July 2000


4. Acknowledgements

   Many aspects of the UI package have been retrieved from the H.248
   Annex G[4] Document.

References

   [1]  Crocker, D., "Augmented BNF for Syntax Specifications: ABNF",
        RFC 2234, November 1997.

   [2]  Arango, M., Dugan, A., Elliott, I., Huitema, C. and S. Pickett,
        "Media Gateway Control Protocol (MGCP) Version 1.0", RFC 2705,
        October 1999.

   [3]  Cuervo, F., Green, N., Huitema, C., Rayman, A., Rosen, B. and
        J. Segers, "Megaco Protocol", Internet-Draft, Work In Progress,
        April 2000.

   [4]  http://standard.pictel.com/ftp/avc-site/0005_Osa/APC-1852.zip


Authors' Addresses

   Marc Petit-Huguenin
   Netergy Networks, Inc.
   2445 Mission College Blvd.
   Santa Clara, CA  95054
   US

   Phone: +1 408 654 0875
   Fax:   +1 408 980 0432
   EMail: marc.petit-huguenin@netergynet.com


   Andy Huckridge
   Netergy Networks, Inc.
   2445 Mission College Blvd.
   Santa Clara, CA  95054
   US

   Phone: +1 408 654 0946
   Fax:   +1 408 980 0432
   EMail: andy.huckridge@netergynet.com

Appendix A. Formal Syntax Definition

   This section provided a formal description of the UI package syntax,
   following the ABNF syntax defined in RFC2234[1].



Petit-Huguenin & Huckridge    Expires January 3, 2001           [Page 6]


Internet-Draft        MGCP User Interface Package              July 2000


   Package = PackageEvent / PackageSignal

   PackageEvent = DisplayInformation / CursorPosition / DisplayText /
   KeyDown / KeyUp / IndicatorMode / RingerMode / Tone /
   OperationComplete

   PackageSignal = CursorPosition / DisplayText / ClearText /
   IndicatorMode / RingerMode / Tone

   DisplayInformation = "inf" "(" NumberRows "," NumberColumns ")"

   NumberRows = DIGIT *DIGIT

   NumberColumns = DIGIT *DIGIT

   CursorPosition = "pos" "(" Row "," Col ")"

   Row = DIGIT *DIGIT ; 0 to height - 1

   Col = DIGIT *DIGIT ; 0 to width - 1

   DisplayText = "dis" "(" ( quoted-string / token ) 0*( "," [ Blink /
   Invert / Underline ] ) ")"

   Blink = "b"

   Invert = "i"

   Underline = "u"

   ClearDisplay = "clr"

   KeyDown = "kd" "(" Key ")"

   KeyUp = "ku" "(" Key "," Duration ")"

   Key = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" /
   "*" / "#" / Redial / Hold / Transfer / ForwardAll / ForwardBusy /
   ForwardNoAnswer / VoiceMail / Line / Function

   Redial = "r"

   Hold = "h"

   Transfer = "t"

   ForwardAll = "fa"

   ForwardBusy = "fb"


Petit-Huguenin & Huckridge    Expires January 3, 2001           [Page 7]


Internet-Draft        MGCP User Interface Package              July 2000


   ForwardNoAnswer = "fna"

   VoiceMail = "vm"

   Line = "l" DIGIT * DIGIT

   Function = "f" DIGIT *DIGIT

   IndicatorMode = "im" "(" Key "," IndicatorModeValue ")"

   IndicatorModeValue = On / Off / Wink / Flash / Blink / CustomMode

   On = "+"

   Off = "-"

   Wink = "w" ; equivalent to +(448),-(64)

   Flash = "f" ; equivalent to +(32),-(32)

   Blink = "b" ;  equivalent to +(512),-(512)

   CustomMode = CustomState 0*{ "," CustomState }

   CustomState = On "(" Duration ")" / Off "(" Duration ")

   Duration = DIGIT *DIGIT ; in milliseconds

   RingerMode = "rm" [ "(" 0*{ CustomMode } [ "," Duration ] ")" ]

   Tone = "tn" "(" ( Dial / InsideDial / StutterDial / SecondDial /
   Ringback / SpecialRingback / Busy / Congestion / SpecialInformation
   / Reorder / RecorderWarning / RecorderDetected / CallerWaiting /
   CallWaiting / CustomToneSequence ) [ "," Duration ] ")"

   Dial = "d"

   InsideDial = "id"

   StutterDial = "sd"

   SecondDial = "2d"

   Ringback = "rb"

   SpecialRingback = "sr"

   Busy = "b"



Petit-Huguenin & Huckridge    Expires January 3, 2001           [Page 8]


Internet-Draft        MGCP User Interface Package              July 2000


   Congestion = "c"

   SpecialInformation = "si"

   Reorder = "r"

   RecorderWarning = "rw"

   RecorderDetected = "rd"

   CallerWaiting = "wc"

   CallWaiting = "cw"

   CustomToneSequence = CustomToneComplex 0*{ "," CustomToneComplex }

   CustomToneComplex = CustomTone / "(" CustomTone 0*{ "," CustomTone }
   ")"

   CustomTone = Frequency "@" Level [ "*" Modulation ]

   Frequency = DIGIT *DIGIT ; in hertz

   Level = "0" / "-" DIGIT *DIGIT ; in DBm0, from 0 to -63 dBm0

   Modulation = DIGIT *DIGIT ; in hertz

   OperationComplete = "oc" "(" RingerMode / Tone ")"

Appendix B. TODO
   o  Checking consistency with H.248 Annex J.
   o  Adding key labeling.
   o  Adding softkeys.
   o  Adding multilanguage/unicode support.
   o  Considering adding hookswitch key.
   o  Completing the named tones list.
   o  Adding support for pixel-addressable display device.














Petit-Huguenin & Huckridge    Expires January 3, 2001           [Page 9]


Internet-Draft        MGCP User Interface Package              July 2000


Full Copyright Statement

   Copyright (C) The Internet Society (2000). 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.



















Petit-Huguenin & Huckridge    Expires January 3, 2001          [Page 10]