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