[Docs] [txt|pdf] [Tracker] [Email] [Nits]

Versions: 00 01 02 03 04

 SIPPING WG                                                   Anil Kumar
 Internet Draft                                                Venkatesh
                                                          Venkataramanan
 Document: draft-anil-sipping-bla-00.txt
 June 2003                                              Sylantro Systems
 Expires Dec 2003
 
 
       Implementing Bridged Line Appearances Using Session Initiation
                               Protocol (SIP)
 
 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.
 
 Abstract
 
    This document describes a proposal for implementing Bridged Line
    Appearance for SIP User Agents.
 
 Table of Contents
 
    Status of this Memo................................................1
    Abstract...........................................................1
    Introduction.......................................................3
    Terminology........................................................3
    Conventions used in this document..................................4
    Feature Description/Overview.......................................4
    Usage Scenarios....................................................4
    Overview of Operation..............................................5
    Call Flows.........................................................6
    State Recovery....................................................10
    Security Considerations...........................................10
    References........................................................11
    Acknowledgements..................................................11
 
    Anil Kumar                                                        1
 Internet-Draft         Bridged Line Appearance              6/11/2003
 
    Author's Addresses................................................11
    Full Copyright Statement..........................................11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    Anil Kumar                                                        2
 Internet-Draft         Bridged Line Appearance              6/11/2003
 
 Introduction
 
    Recently, the next generation voice market has seen the
    introduction
    of user agents that are equipped with more powerful processors,
    richer user interfaces, and the ability to provide end user
    features
    well beyond that of their predecessors. As these user agents evolve
    to track the pace of technology, so should the protocol itself
    evolve in order to take advantage of this new medium for providing
    a
    rich set of enhanced features to the end user. The ability of SIP
    to enable a richer user experience is essential for the adoption of
    SIP as the protocol of choice for business communications, and will
    accelerate the deployment of SIP user agents in the workplace.
 
    Several draft documents exist that define and provide best current
    practices for implementing various single line telephony features
    using SIP, none exist that provide details for implementing
    business telephony related features. A few other Internet drafts
    provide high-level guidelines as to what features get implemented
    on a proxy as against a user agent and vice-versa, but donÆt
    provide any specific guidelines.
 
    This document details a proposal for implementing one of the most
    popular features expected of business phones - Bridged Line
    Appearance (BLA).
 
    The proposal for most part uses standard SIP specified in RFC 3261
    [2] in conjunction with RFC 3265 [3] for exchanging presence
    information between UAÆs and the dialog state draft [4] to exchange
    dialog/call state information. The call flows borrow heavily from
    the SIPPING Call flows document.
 
 Terminology
 
    Directory Number (DN): A telephone number or a SIP-URL assigned to
    a business phone.
 
    Bridged Line Appearance (BLA): A DN that appears on more than one
    users business phone.
 
    Single Call Arrangement (SCA): An arrangement where in only one
    business phone among a group of business phones that share a DN can
    be active at any point of time.
 
    Line Key/Appearance: A button on a business phone faceplate used
    for outgoing and incoming calls
 
    Primary Appearance: A user or a telephone that "owns" a particular
    DN.
 
    BLA group: All users that share a BLA appearance on their telephone
    are referred to as belonging to a BLA group.
 
    Anil Kumar                                                        3
 Internet-Draft         Bridged Line Appearance              6/11/2003
 
 
    Event Agent (EA): A Event agent is a SIP user agent, which handles
    SUBSCRIBE requests and generates notifications of changes in dialog
    state. The Event Agent SUBSCRIBES to registration events. As a
    result, the EA would learn about registration state of User Agents.
    EA then generates subscription to the User Agents for dialog
    package and receives notification of dialog state events from the
    User Agents. SIP URI uniquely identifies the Event Agent.
 
 
 Conventions used in this document
 
    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
    "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in
    this document are to be interpreted as described in RFC-2119 [1]
    and indicate requirement levels for compliant mechanisms.
 
 
 Feature Description/Overview
 
    BLA allows a single DN to be monitored by multiple user agents.
    When a call is made to this DN, the call is offered to all user
    agents that have mapping to this DN.
 
    One user in the BLA group is allowed to answer the incoming call.
    Once the call is answered, the other users in the BLA group will be
    able to monitor the status of the call by means of visual
    indicators on their user agents.
 
    If the user that answered the call is in conversation, the BLA
    group is displayed as being busy. No other user in the group may
    pick up that call.
 
    If the user that answered the call places the dialog on hold,
    another member of the BLA GROUP may pick up the call. This held
    state is visually indicated to the BLA group.
 
    Users within the BLA group alter local settings on their user
    agents, such as how they are alerted if a bridged line is being
    called or how they are alerted if a bridged line is placed on hold.
    The user agents can be configured to play regular alerting tone,
    mute with a visual indicator, play a call waiting beep etc.
 
    A BLA user may only place a call from a line associated with a BLA
    group if that group is idle. When the user places such a call, all
    members of the BLA group are notified of this usage, and are
    blocked from using this line appearance until the line appearance
    goes back to "Idle" state or if the media is placed on Hold.
 
 Usage Scenarios
 
    There are many applications of this feature:
 
 
 
    Anil Kumar                                                        4
 Internet-Draft         Bridged Line Appearance              6/11/2003
 
    1. An assistant might have bridged line appearances of supervisorÆs
    extensions
 
    2. Business main numbers can be bridged on multiple phones &
    answered by group of users
 
    3. Work at more than one location in a huge campus like University,
    Hospital etc.
 
 
 Overview of Operation
 
    This proposal uses the following components to enable this feature:
 
         - SIP Registrar
         - SIP Forking Proxy
         - SIP Event Agent (EA)
 
    +----------------------------+                            +----+
    |                            |                            |    |
    |        Event Agent         |                            | UA |
    |                            |                            |    |
    +----------------------------+                            +----+
      | | | |1)SUBSCRIBE  A  A  A 4)NOTIFY          6)INVITE    |
      | | | |(Event:reg)  |  |  | (registration bridged1@tabasco|.com
      | | | V             |  |  |   events)                     V
      | | | +--------------------+        +----------+7)Query+--------+
      | | | |    (tabasco.com)   |        |          |<===== |        |
      | | | |                    |3) Store| Location |       | Proxy  |
      | | | |     Registrar      |=======>|  Service |       |        |
      | | | |                    |        |          |=====> |        |
      | | | +--------------------+        +----------+8)Resp +--------+
      | | |     A       A     A                               |  |  |
      | | |     |       |     | 2) REGISTER                   |  |  |
      | | |     |       |     |                               |  |  |
      | | |   +----+ +----+ +----+ bridged1                   |  |  |
      | | |   |    | |    | |    |                            |  |  |
      | | |   |UA1 | |UA2 | |UA3 |                            |  |  |
      | | |   |    | |    | |    |                            |  |  |
      | | |   +----+ +----+ +----+                            |  |  |
      | | |    A  A    A A   A  A                             |  |  |
      | | |    |  |    | |   |  |                             |  |  |
      | | +----+  |    | |   |  +-----------------------------+  |  |
      | |         |    | +---+-----------------------------------+  |
      | |         +----+-----+--------------------------------------+
      | |              |     |         9) INVITE
      | +--------------+     |       bridged1@tabasco.com
      |                      |
      +----------------------+
        5) SUBSCRIBE
           (Event:dialog)
 
 
 
 
    Anil Kumar                                                        5
 Internet-Draft         Bridged Line Appearance              6/11/2003
 
    The Event Agent SUBSCRIBES to the registration event package as
    outlined in [5] for users belonging to a BLA group. Thus, it has
    knowledge of all users registered to a BLA group at any point of
    time.
 
    All User Agents that belong to the BLA group MUST support the
    dialog state package as outlined in [4] to NOTIFY other User Agents
    of the dialog-state.
 
    User Agents UA1, UA2 & UA3 belong to a BLA group and REGISTER for
    the same address-of-record (bridged1@tabasco.com).
 
    The registrar NOTIFY's the Event Agent of successful registration
    of each UA.
 
    The Event Agent SUBSCRIBEs to User Agents for the state of all
    Dialogs as defined in [4].
 
    The User Agents SUBSCRIBE to Event Agent for the state of all
    Dialogs as defined in [4].
 
    The User Agents act as the notifier for the dialog state events as
    defined in [4].
 
    Forking Proxy forks INVITE.
 
    The Event Agent sends NOTIFY of dialog state events to all the User
    Agents.
 
         The User Agents in the group could SUBSCRIBE to each other &
         NOTIFY dialog state events, but in a large group the User
         Agents have to manage a larger number of SUBSCRIPTIONS &
         NOTIFICATIONS. The Event Agent helps in managing large groups
         better. Further, the Event User Agent MAY filter dialog state
         events & NOTIFY User Agents only the dialog state events which
         are required for the application or feature. The Event Agent
         MAY also SUBSCRIBE to dialog state events with "filters" to
         reduce the number of NOTIFY messages exchanged between the
         Event Agent and the UA's in the BLA group.
 
 Call Flows
 
    Call Placed to a BLA extension
 
    In the call flow below "User A" is the primary appearance. "User B"
    and "User C" have bridged appearances of "User A". "User X" places
    a call to "User A".
 
    All NOTIFYÆs in the call flow below carry "dialog" events and only
    dialog states are mentioned for simplicity.
 
    User X   Proxy     User A       User B       User C       Event
                                                              Agent
 
 
    Anil Kumar                                                        6
 Internet-Draft         Bridged Line Appearance              6/11/2003
 
    |         |            |            |          |            |
    |(CID 1,frmtag=1000)   |            |          |            |
    | INVITE  |            |            |          |            |
    |-------->|            |            |          |            |
    |<--------|            |            |          |            |
    |100 TRYING INVITE     |            |          |            |
    |         |----------->|            |          |            |
    |         |            | INVITE     |          |            |
    |         |------------+----------->|          |            |
    |         |            |            | INVITE   |            |
    |         |------------+------------+--------->|            |
    |         |            |            |          |            |
    |         |180 RINGING |            |          |            |
    |         |<-----------|            |          |            |
    |<--------|            |            |          |            |
    |180 RINGING           |            |          |            |
    |         |            |180 RINGING |          |            |
    |         |<-----------+------------|180 RINGING            |
    |         |<-----------+------------+----------|            |
    |         |(CID 1,frmtag=1000,      |          |            |
    |         | totag=2000)             |          |            |
    |         |            |NOTIFY/200 OK          |            |
    |         |            |(early)     |          |            |
    |         |            +-----------------------+----------->|
    |         |            |            |NOTIFY/200 OK          |
    |         |            |            |(early)   |            |
    |         |            |            |----------+----------->|
    |         |            |            |NOTIFY/200 OK          |
    |         |            |            |(early)   |            |
    |         |            |            |          |----------->|
    |         | 200 OK     |            |          |            |
    | 200 OK  |<-----------|            |          |            |
    |<--------|            |            |          |            |
    |         |CANCEL/487/ACK           |          |            |
    |         |------------+----------->|CANCEL/487/ACK         |
    | ACK     |------------+------------+--------->|            |
    |-------->|ACK         |            |          |            |
    |         |----------->|            |          |            |
    |         |            |            |          |            |
    |         |            |NOTIFY/200 OK          |            |
    |         |            |(confirmed) |          |            |
    |         |            +------------+----------+----------->|
    |         |            |            |NOTIFY/200 OK          |
    |         |            |            |(confirmed)            |
    |         |            |            |<---------+------------|
    |         |            |            |          NOTIFY/200 OK|
    |         |            |            |          (confirmed)  |
    |         |            |            |          |<-----------|
    |<==== Time Passes. Places call on hold   ====>|            |
    |         |            |            |          |            |
    |INVITE/200/ACK (Hold) |            |          |            |
    |<--------+------------|            |          |            |
    |         |            |NOTIFY/200 OK          |            |
    |         |            |(confirmed,local-session-description|
 
    Anil Kumar                                                        7
 Internet-Draft         Bridged Line Appearance              6/11/2003
 
    |         |            | SDP=a:sendonly        |            |
    |         |            |            |          |            |
    |         |            +------------+----------+----------->|
    |         |            |            |NOTIFY/200 OK          |
    |         |            |            |(confirmed)            |
    |         |            |            |<---------+------------|
    |         |            |            |          NOTIFY/200 OK|
    |         |            |            |          (confirmed)  |
    |         |            |            |          |<-----------|
    |         |            |            |          |            |
    |<==== Time Passes. B decides to answer held call ====>     |
    |         |            |            |          |            |
    |         |INVITE (Replaces: Cid=1,from-tag=1000,totag=2000)|
    |         |<-----------+------------|          |            |
    |INVITE   | CID = 200  |            |          |            |
    |<--------|            |            |          |            |
    |         |            |            |          |            |
    | 200 OK  |            |   200 OK   |          |            |
    |-------->|------------+----------->|NOTIFY/200 OK          |
    |         |            |            |(confirmed)            |
    |         |            |            |----------+----------->|
    |         |            |NOTIFY/200 OK          |            |
    |         |            |(confirmed) |          |            |
    |         |            |<-----------+----------+------------|
    |         |            |            |          NOTIFY/200 OK|
    |         |            |            |          |(confirmed) |
    |ACK(Cid 2)            |            |          |<-----------|
    |<--------+------------+------------|          |            |
    | BYE/200 OK (Cid 1)   |            |          |            |
    |---------+----------->| NOTIFY/200 OK         |            |
    |         |            |(terminated)|          |            |
    |         |            |------------+----------+----------->|
    |         |            |            |NOTIFY /200 OK         |
    |         |            |            |(terminated)           |
    |         |            |            |<---------+------------|_
    |         |            |            |          NOTIFY/200 OK|
    |         |            |            |          |(terminated)|
    |         |            |            |          |<-----------|
    |         |            |            |          |            |
    |<====   Iime Passes. Users Hang up ====>      |            |
    |BYE/200 OK            |            |          |            |
    |<--------+------------+------------|          |            |
    |         |            |            |NOTIFY/200 OK          |
    |         |            |            |(terminated)           |
    |         |            |            +----------+----------->|
    |         |            |            |          |            |
    |         |            |NOTIFY/200 OK|         |            |
    |         |            |(terminated)|          |            |
    |         |            |<-----------+----------+------------|
    |         |            |            |          NOTIFY/200 OK|
    |         |            |            |          |(terminated)|
    |         |            |            |          |<-----------|
    |         |            |            |          |            |
 
 
    Anil Kumar                                                        8
 Internet-Draft         Bridged Line Appearance              6/11/2003
 
 
    Call Placed from a BLA extension
 
    User X    Proxy    User A      User B       User C       Event
                                                             Agent
 
      |        |         |           |           |             |
      |        |         |NOTIFY/200 OK          |             |
      |        |         |(trying)   |           |             |
      |        |         |-----------+-----------+------------>|
      |        |         |           |NOTIFY/200 OK            |
      |        |         |           |(trying)   |             |
      |        |         |           |<----------+-------------|
      |        |         |           |           |NOTIFY/200 OK|
      |        |         |           |           |(trying)     |
      |        |         |           |           |<------------|
      |        |INVITE   |           |           |             |
      |        |<--------|           |           |             |
      |        |100 TRYING           |           |             |
      | INVITE |-------->|           |           |             |
      |<-------|         |           |           |             |
      |180 RINGING       |           |           |             |
      |------->|         |           |           |             |
      |        |180 RINGING          |           |             |
      |        |-------->|           |           |             |
      |        |         |           |           |             |
      |        |         |NOTIFY/200 OK          |             |
      |        |         |(early)    |           |             |
      |        |         |-----------+-----------+------------>|
      |200 OK  |         |           |           |             |
      |------->|         |           |           |             |
      |        |200 OK   |           |           |             |
      |        |-------->|           |           |             |
      |        | ACK     |NOTIFY/200 OK          |             |
      | ACK    |<--------|(confirmed)|           |             |
      |<-------|         |-----------+-----------+------------>|
      |        |         |           |NOTIFY/200 OK            |
      |        |         |           |(confirmed)|             |
      |        |         |           |<----------+-------------|
      |        |         |           |           |NOTIFY/200 OK|
      |        |         |           |           |(confirmed)  |
      |        |         |           |           |<------------|
 
 
    In this scenario, the UA just before allowing the user to place a
    call, shall send out a NOTIFY with event as "trying". On getting a
    200 OK response, the UA shall allow the user to place the call
    (send out the INVITE). In case a UA receives a non-200 final
    response it MUST inspect the Retry-After interval & reinitiate the
    NOTIFY request. This is needed to disallow use of the BLA line
    appearance once one of the users has chosen the same.
 
         Sending NOTIFY dialog state of "trying" before an INVITE
 
 
    Anil Kumar                                                        9
 Internet-Draft         Bridged Line Appearance              6/11/2003
 
         is a departure from [4], but this MUST be implemented to
         resolve glare issues.
 
 State Recovery
 
    A critical aspect for reliable operation of this feature is the
    ability for all UA's in the BLA group to recover from network
    failures caused at a single UA. For example, one of the user agents
    in the BLA group answered an incoming call, notifies the dialog
    state to other members and then experiences a network outage. The
    calling UA could have detected the same (using RTP or some other
    means) and could have hung up. However, none of the other UA's in
    the BLA group gets notification of this change in dialog state and
    their BLA appearance could stay out of sync for a long time;
    depending on when the network is restored, or when the Event Agent
    attempts to refresh its dialog-state subscription with this UA. To
    recover from such a failure, the Event Agent MAY SUBSCRIBE with a
    shorter expiration (expiration interval no smaller than 300 seconds
    is RECOMMENDED) following the notification of a "confirmed" dialog
    with the UA's that notified this information.
 
 Security Considerations
 
    Since many of these features are implemented using semantics
    provided by RFC 3261 [2], Event Package for Dialog State as define
    in [4], Multi-party application framework [6], and Event
    Notification [3], security considerations in these documents apply
    to this draft as well.
 
    Specifically, since dialog state information and the dialog
    identifiers are supplied by UA's in a BLA group to other members,
    the same is prone to "call hijacks". For example, a rogue UA could
    snoop for these identifiers and send an INVITE with Replaces header
    containing these call details to take over the call. As such
    INVITES with Replaces header MUST be authenticated using the
    standard mechanism (like Digest or S/MIME) described in RFC 3261
    [2] before it is accepted. NOTIFY message bodies that provide the
    dialog state information and the dialog identifiers MAY be
    encrypted end-to-end using the standard mechanics.
 
    So also, All SUBSCRIBES between the UA's and the Event Agent MUST
    be authenticated.
 
 
 
 
 
 
 
 
 
 
 
 
 
    Anil Kumar                                                       10
 Internet-Draft         Bridged Line Appearance              6/11/2003
 
 
 
 Reference
    [1] S. Bradner, "Key words for use in RFCs to indicate requirement
 levels," Request for Comments 2119, Internet Engineering Task Force,
       Mar. 1997.
 
    [2] J. Rosenberg, H. Schulzrinne, et al., "SIP: Session initiation
       protocol," Request for Comments 3261, Internet Engineering Task
    Force, June 2002.
 
    [3] A.B. Roach, "Session Initiation Protocol (SIP)-Specific Event
    Notification," Request for Comments 3265, Internet Engineering Task
    Force, June 2002
 
    [4] J. Rosenberg, H. Schulzrinne, "A Session Initiation Protocol
    (SIP) Event Package for Dialog State", Internet Draft, Internet
    Engineering Task Force, June 2002.
 
    [5] J. Rosenberg, "A Session Initiation Protocol (SIP) Event
    Package for Registrations", Internet Draft, Internet Engineering
    Task Force, October 2002.
 
    [6] Mahy, Campbell, Johnston, et al., "A Multi-party Application
    Framework for SIP," Internet Draft, Internet Engineering Task
    Force, June 2002. Work in progress.
 
    [7] J. Rosenberg, H.Schulzrinne, "An Offer/Answer Model with
    Session Description Protocol," Request for Comments 3264, Internet
    Engineering Task Force, June 2002.
 
    [8] R. Mahy, B. Biggs, R. Dean, "The Session Initiation Protocol
    (SIP) Replaces header", Internet Draft, Internet Engineering Task
    Force, April 2002.
 
 Acknowledgements
 
    The authors would like to thank Kent Fritz, John Weald, Sunil
    Veluvali, and Graeme Dollar Sylantro Systems for their comments and
    suggestions during authoring of this draft.
 
 Author's Addresses
 
    Anil Kumar                  Email: anil.kumar@sylantro.com
                                sip:anil.kumar@sip.sylantro.com
                                (408) 626 2332
 
    Venkatesh Venkataramanan    Email: venkatar@sylantro.com
                                sip:venkatar@sip.sylantro.com
                                (408) 626 3025
 
 
 Full Copyright Statement
 
 
    Anil Kumar                                                       11
 Internet-Draft         Bridged Line Appearance              6/11/2003
 
    Copyright (C) The Internet Society (2003). 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.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    Anil Kumar                                                       12
 

Html markup produced by rfcmarkup 1.129d, available from https://tools.ietf.org/tools/rfcmarkup/