BROADWORKS SIP ACCESS SIDE EXTENSIONS INTERFACE SPECIFICATIONS RELEASE Version 1
|
|
|
- Esther Richard
- 10 years ago
- Views:
Transcription
1 BROADWORKS SIP ACCESS SIDE EXTENSIONS INTERFACE SPECIFICATIONS RELEASE 13.0 Version 1
2 BroadWorks Guide Copyright Notice Trademarks Copyright 2005 BroadSoft, Inc. All rights reserved. Any technical documentation that is made available by BroadSoft, Inc. is proprietary and confidential and is considered the copyrighted work of BroadSoft, Inc. This publication is for distribution under BroadSoft non-disclosure agreement only. No part of this publication may be duplicated without the express written permission of BroadSoft, Inc. 220 Perry Parkway, Gaithersburg, MD BroadSoft reserves the right to make changes without prior notice. BroadSoft and BroadWorks are registered trademarks of BroadSoft, Inc. Microsoft, MSN, Windows, and the Windows logo are registered trademarks of Microsoft Corporation. Other product names mentioned in this manual may be trademarks or registered trademarks of their respective companies and are hereby acknowledged. This document is printed in the United States of America BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 2 OF 39
3 Table of Contents 1 Introduction Info-Parameter Extensions to Call-Info Overview Appearance-index, Appearance-state, and Appearance-URI In INVITE requests In responses In SUBSCRIBE requests Call-Info Answer-After Info-parameter Overview Example Message Flow Call-Info Event Package Overview Example Message Flow Shared Call Appearance Client Subscription Outgoing Call Event Package Name Event Package Parameters SUBSCRIBE Bodies Subscription Duration NOTIFY Bodies Subscriber Generation of SUBSCRIBE Requests Notifier Processing of SUBSCRIBE Requests Notifier Generation of NOTIFY Requests Subscriber Processing of NOTIFY Requests Handling of Forked Requests Rate of Notifications Line-Seize Event Package Overview Example Message Flows Event Package Name Event Package Parameters SUBSCRIBE Bodies Subscription Duration NOTIFY Bodies Subscriber Generation of SUBSCRIBE Requests Notifier Processing of SUBSCRIBE Requests Notifier Generation of NOTIFY Requests Subscriber Processing of NOTIFY Requests Handling of Forked Requests BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 3 OF 39
4 4.13 Rate of Notifications Remote Control Talk Event Package Overview Example Message Flow Event Package Names Event Package Parameters SUBSCRIBE Bodies Subscription Duration NOTIFY Bodies Subscriber Generation of SUBSCRIBE Requests Notifier Processing of SUBSCRIBE Requests Subscriber Processing of NOTIFY Requests Handling of Forked Requests Rate of Notifications Notifier Generation of NOTIFY Requests Remote Control Hold Event Package Overview Example Message Flow Event Package Names Event Package Parameters SUBSCRIBE Bodies Subscription Duration NOTIFY Bodies Subscriber Generation of SUBSCRIBE Requests Notifier Processing of SUBSCRIBE Requests Subscriber Processing of NOTIFY Requests Handling of Forked Requests Rate of Notifications Notifier Generation of NOTIFY Requests Index BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 4 OF 39
5 Figures Figure 1 Message Flow as a Result of Click-To-Dial Operation Figure 2 Call Flow as a Result of Endpoint A-1 Originating a Call to B using A s Shared Line Figure 3 Call Flow as a Result of a User at A-1 Taking the Shared Line Off Hook Figure 4 Click-To-Answer Call Flow Figure 5 Click-To-Hold Call Flow BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 5 OF 39
6 1 Introduction This document describes extensions to the Session Initiation Protocol (SIP) that can be used to enable traditional voice applications, including but not limited to: key system emulation, executive-admin station emulation, push to talk, click to dial, and other remote control CTI applications. These extensions are typically employed between a line side application server and an end-user agent, such as an IP phone or soft client. Application servers employing these extensions can provide a tightly integrated end-user experience and a rich service offering without being tightly coupled to the access device. Note that these extensions compliment existing standards and draft extensions aimed at integrating end-user access equipment with operator-hosted service platforms. These extensions have been adopted and implemented by many equipment vendors in the industry, including IP PBX vendors, IP phone vendors, access gateway vendors, and application server vendors BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 6 OF 39
7 2 Info-Parameter Extensions to Call-Info 2.1 Overview In many traditional voice applications, it is important for the endpoint and the service delivery platform to maintain consistent presentation information. By this we mean, the relative order of call appearances on a line and the current state of the call appearances. This enables call control clients, attendant consoles, and other applications to maintain a synchronized view of call appearance information, so that end users can move from one endpoint or one interface to another, without being confused. The Call-Info header is specified in RFC It is used to provide additional information about the calling or called party, depending on whether it is found in a request or a response. Here we use this header to send presentation information about the call appearances associated with a given address of record (that is, a line). An excerpt from the augmented BNF in RFC 3261 follows for the Call-Info header: Call-Info = "Call-Info" HCOLON info *(COMMA info) info = LAQUOT absoluteuri RAQUOT *( SEMI info-param) info-param = ( "purpose" EQUAL ( "icon" / "info" / "card" / token)) / generic-param This shows that the Call-Info header allows for comma delimited information elements. Each element must have an absolute URI and each element can optionally have an arbitrary number of information parameters. 2.2 Appearance-index, Appearance-state, and Appearance-URI For this extension, the absolute URI should be a simple hostname SIP URI with no user portion. The host name should be set to the provisioned proxy server or in this case, the Application Server. Three new generic parameters are defined for indicating call information element parameters: appearance-index EQUAL ( (1*DIGIT) / STAR ) ) appearance-state EQUAL ( idle / seized / progressing / alerting / active / held / held-private ) appearance-uri EQUAL quoted-string For usability reasons, it is important to preserve the relative order of these call appearance across endpoints. The appearance-index parameter is used to qualify the call information elements, by identifying a relative index of the call appearance on the line. So if the appearance-index is 1, it indicates the first appearance on the line. If the appearanceindex is 2, it indicates the second appearance on the line, and so on, up to the maximum number of appearances allowed on the line. NOTE: An appearance-index of * is a shorthand form, indicating that the information element is applicable to the rest of the call appearances on the line. The appearance-state is used to further qualify the call appearance with an actual visual state that can be used to light a lamp, or display an LED or bitmap on an LCD display. The defined states are: 2005 BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 7 OF 39
8 State Idle Seized Progressing Alerting Active Held Held-private Description This appearance on the line is available for use. This appearance has been seized by one of the endpoints in the SCA group. This appearance on the line is currently making an outgoing call. This appearance is receiving an incoming call. This appearance is actively involved in a call. This appearance has a call in the held state. This appearance has a call in the held state and only the endpoint which held the call, may retrieve it. The appearance-uri is used to further qualify the call appearance with the remote call party identification, which devices can use to augment the display, if they support this capability on the device. The value of the appearance-uri parameter is a SIP quotedstring that contains a SIP name-addr (that is, the contents are name-addr ). Since the name-addr is within a quoted-string, it is escaped according to the SIP escaping rules. The appearance-uri parameter is not included when the call appearance s state is idle or seized, since there is no call involved with the call appearance in these states In INVITE requests A UAC may include a Call-Info header when sending an INVITE request. If it does, it must contain at most one call appearance information element. It may contain other information elements for different purposes, but only one call appearance information element should be present. The call appearance information element must contain exactly one appearance-index parameter with a numeric value. The numeric value indicates the call appearance index where the call is being presented. So, for example, assume a phone has one line with four separate call appearances, and the user interface on the phone allows the end user to arbitrarily select any one of the call appearances when originating a call. If the user chose the third call appearance, then the INVITE might look something like the following: INVITE sip: @broadworks.net From: <sip: @broadworks.net> To: <sip: @broadworks.net> Call-Info: <sip:broadworks.net>;appearance-index=3 Effectively the phone is saying: The user has selected the third call appearance of line to call Note that the Call-Info header is not required to be present in a Re-INVITE, but if present, the Re-INVITE must use the same appearance-index (that is, a Re-INVITE is not allowed to change the appearance-index being used). When BroadWorks is acting as the UAC, the device must honor the appearance-index included in an INVITE. In a race condition where the device initiates a line-seize for an appearance-index at the same time as BroadWorks sends an INVITE to the device for the same appearance-index, the device should allow the INVITE for the incoming call to proceed. A failure response to the line-seize SUBSCRIBE will be received by the device shortly afterwards BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 8 OF 39
9 When the device is acting as the UAC and includes the appearance-index in an INVITE, BroadWorks may choose to override the appearance-index in the response, as described in Section An endpoint designates a call as privately held, by sending a re-invite with hold SDP including a call-info header with an appearance-state of held-private. BroadWorks, upon receipt of the re-invite for hold, inspects the call-info header and updates the state for the call appearance to held-private. All shared call appearances with subscriptions to the call-info package in the group are updated via NOTIFYs with the held-private call appearance state. Following is an example of the re-invite with hold SDP, which is privately held: INVITE sip: @broadworks.net From: <sip: @broadworks.net> To: <sip: @broadworks.net> Call-Info: <sip:broadworks.net>;appearance-state=held-private Following is the resulting NOTIFYs sent to the shared call appearances in the group: NOTIFY sip:contact@endpoint From: <sip: @broadworks.net> To: <sip: @broadworks.net> Call-Info: <sip:broadworks.net>;appearanceindex=1;appearance-state=held-private;appearanceindex=*;appearance-state=idle When an endpoint in the shared call appearance group attempts to retrieve a privately held call appearance which it did not put on hold, BroadWorks rejects the re- INVITE retrieval attempt with a 403 Forbidden. BroadSoft recommends that devices use the same lamp state for held-private calls that they use for active calls. The recommended active lamp state for all of the other endpoints which are not actively involved in the call is a solid red indicator. However, the held-private state is propagated to all of the endpoints in the shared call appearance group, such that an endpoint may choose a different visual indication for privately held calls In responses Similarly, a UAS may include a Call-Info header when responding to an INVITE request. Call-Info headers with call appearance information elements may appear in any provisional or final response. They follow similar rules for Call-Infos sent in INVITE requests by UACs. So in the above example, assume the endpoint that receives the call for the address of record @broadworks.net allows up to six call appearances. At the time that this INVITE arrives at the endpoint, assume there are three calls present on the first three call appearances. So the phone chooses the next available call appearance (4) and sends back a provisional response: SIP/ Ringing From: <sip: @broadworks.net> To: <sip: @broadworks.net> Call-Info: <sip:broadworks.net>;appearance-index= BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 9 OF 39
10 Effectively the phone is saying: The incoming call from is ringing the user on the fourth call appearance of the line Once the call is answered, then the 200 OK final response from the UAS may also contain a Call-Info header. It is possible that the call may have moved relative appearances by the time it is answer. This is totally dependant on the user interface of the endpoint. SIP/ OK From: <sip: @broadworks.net> To: <sip: @broadworks.net> Call-Info: <sip:broadworks.net>;appearance-index=3 Effectively the phone is saying: The incoming call from has been answered by the user on the third call appearance of line If the user interface on the endpoint does not choose a particular call appearance until it answered, then it is possible that the 180 Ringing does not have a Call-Info header and the 200 OK has a Call-Info header. Note that the Call-Info header is not required to be present in responses to a Re-INVITE, but if present, the responses must use the same appearance-index (that is, a Re-INVITE response is not allowed to change the appearance-index being used). When BroadWorks is acting as the UAS, the device must honor the appearance-index included in INVITE responses. In some scenarios (for example, when the device does not perform a line-seize prior to the INVITE and the requested appearance-index is already in use by BroadWorks), BroadWorks will override the requested appearance-index when it responds to the INVITE. In these scenarios, the device should move the call to the appearance-index specified in the response. When the device is acting as the UAS and it receives an INVITE with a requested appearance-index, it must use the same appearance-index for all responses (that is, it is not allowed to change the appearance-index in a response). In a race condition where the device initiates a line-seize for an appearance-index at the same time as BroadWorks sends an INVITE to the device for the same appearance-index, the device should allow the INVITE for the incoming call to proceed. A failure response to the line-seize SUBSCRIBE will be received by the device shortly afterwards in NOTIFY requests. Finally, a notifier can include a Call-Info header when sending a NOTIFY request to a subscriber of the Call-Info event package (description follows). The Call-Info header of a NOTIFY request must contain a complete set of call appearance information elements one for each potential call-appearance on the address of record. Each call appearance information element must contain one appearance-index and one appearance-state parameter. Optionally, each call appearance information element can contain one appearance-uri parameter. So the subscriber receives complete call appearance state information for the address of record in each NOTIFY. For example, if the address of record @broadworks.net has four call appearances allowed, and there is one call active on the first call appearance and one call held on the second call appearance, and the rest of the call appearances are idle, then the following NOTIFY is sent to each subscriber of @broadworks.net. NOTIFY sip:contact@endpoint From: <sip: @broadworks.net> To: <sip: @broadworks.net> Call-Info: <sip:broadworks.net>;appearance-index=1;appearancestate=active;appearance-uri= \ George Smith\ <sip: @broadworks.net>, 2005 BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 10 OF 39
11 <sip:broadworks.net>;appearance-index=2;appearancestate=held, <sip:broadworks.net>;appearance-index=3;appearancestate=idle, <sip:broadworks.net>;appearance-index=4;appearance-state=idle We can use the * as a short-cut to indicate the rest of the call appearances, which is useful when initializing the call-appearances for an address of record to idle : NOTIFY sip:contact@endpoint From: <sip: @broadworks.net> To: <sip: @broadworks.net> Call-Info: <sip:broadworks.net>;appearance-index=*;appearance-state=idle is semantically equivalent to: NOTIFY sip:contact@endpoint From: <sip: @broadworks.net> To: <sip: @broadworks.net> Call-Info: <sip:broadworks.net>;appearance-index=1;appearancestate=idle, <sip:broadworks.net>;appearance-index=2;appearancestate=idle, <sip:broadworks.net>;appearance-index=3;appearancestate=idle, <sip:broadworks.net>;appearance-index=4;appearance-state=idle In SUBSCRIBE requests A subscriber MUST include a Call-Info header with an appearance-index information element in a SUBSCRIBE request to the line-seize event package. The Application Server handling the subscription uses the appearance-index in the Call-Info header to identify which call-appearance the line-seize subscription is being applied to. 2.3 Call-Info Answer-After Info-parameter Overview To support click to dial and push to talk applications, an application platform must be able to originate calls that force the endpoint off-hook, without end-user intervention. Here we introduce a generic parameter called answer-after. When present in the Call- Info header of an incoming INVITE request, it indicates how many alert cycles should be applied by the UAS before the call is automatically answered. For example, the following Call-Info header indicates that the call should be automatically answered after one alert cycle. INVITE sip: @broadworks.net SIP/2.0 From: <sip:[email protected]>; tag=1 To: <sip:[email protected]> Call-Info: <sip:broadworks.net>; answer-after= BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 11 OF 39
12 If the answer-after value is 0, then the call should be automatically answered without applying any alert tones, as shown in the following example. INVITE SIP/2.0 From: tag=1 To: Call-Info: <sip:broadworks.net>; answer-after=0 In all cases, the Call-Info header is just a suggestion to the UAS. Depending on the UAS capabilities or local policy, the UAS may elect to ignore the answer-after parameter. For instance, if the UAS is a phone that does not support speakerphone, then it cannot automatically answer the call, and must wait for the user to actively answer the call. Similarly, the phone may have a speakerphone, but the user may have enabled a local privacy policy that rejects or ignores all answer-after requests. A UAC should be prepared to receive an 18x provisional response, even when it has requested that the UAS automatically answer the call without alerting (meaning answer-after=0). In all cases, the UAS should attempt to authorize the incoming request. At minimum, the UAS should perform access control. Ideally, the UAS should challenge the incoming INVITE for credentials that authorize the request to perform an automatic answer Example Message Flow The following diagram shows the message flow as a result of the users performing a clickto-dial operation from their thin client interface. Workstation IP Phone Application Server Terminating Device [F1] Dial [F2] INVITE w/answer-after=0 Figure 1 Message Flow as a Result of Click-To-Dial Operation [F1] starts the flow with the user initiating a click-to-dial operation from the thin call client on the workstation. The Application Server processes the click-to-dial event. The Application Server sends an INVITE to the associated endpoint in [F2], as follows: [F2] INVITE Application Server -> IP phone INVITE sip: @ipphone.com SIP/2.0 Via: SIP/2.0/UDP a1.foo.com:5060;branch=m9hg4bk74bf9 Max-Forwards: 70 From: Joe <sip: @a1.foo.com>;tag=5fxced76sl To: Jane <sip: @a1.foo.com> Call-ID: @a1.foo.com 2005 BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 12 OF 39
13 Call-Info: <sip:as.foo.com>;appearance-index=1; answer-after=0 CSeq: INVITE Contact: <sip:a1.foo.com:5060> Allow-Events: conference Allow: ACK, BYE, CANCEL, INFO, INVITE, OPTIONS, PRACK, REFER Supported: 100rel, timer 2005 BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 13 OF 39
14 3 Call-Info Event Package 3.1 Overview The ability to support shared call appearances (SCA) is a fundamental building block for a variety of enhanced telephony services. Features like attendant console, line extensions, and key system emulation cannot be delivered without some mechanism for sharing call appearances across access devices. Although SIP (RFC 3261) by itself offers no inherent semantics for supporting SCA features, when coupled with an appropriate instantiation of the SIP Specific Event Notification framework (RFC 3265), these services can be deployed quite easily in a distributed network. A shared line is an address of record managed by central controlling element, such as an application server. The application server allows multiple endpoints to register locations against the address of record. The application server is responsible for policing who can register and who cannot register against the shared line. For incoming call appearances, the application server sends separate INVITE requests to each of the registered endpoints. As the incoming call appearance progresses to the answered state on one of the endpoints, the INVITE requests to the other endpoints in the shared call appearance group are cancelled. For outgoing call appearances, the application server presents any call from the registered endpoints as originating from the same address of record. Effectively, the line is shared because any endpoint in the shared call appearance group can originate and terminate calls on behalf of the same address of record. The following sections describe how the Call-Info header can be used to suggest the presentation state of the call appearances on a shared line. A Call-Info event package can then be used to broadcast this presentation state to endpoints that are not actively involved in the call appearances. The Call-Info event package is an instantiation of the SIP Specific Event Notification Framework (as defined in RFC 3265). For the applications described earlier, the Application Server acts as the notifier, while the IP phones configured with shared lines act as the subscribers. Following is a description of the event package details, as per RFC Example Message Flow Shared Call Appearance Client Subscription This process allows the endpoint to SUBSCRIBE to the call appearance state of a given line. The Request-URI for these transactions is the same as the Request-URI used in the registration process for the address of record (in this case, a line ). Note that the call flow does not show the SUBSCRIBE being challenged. The application server may choose to use access control (using the IP address authenticated in the REGISTER transaction), or optionally it could challenge the transaction. If the transaction is challenged, then the IP phone should use the same credentials it used in the corresponding registration process for that call appearance. Throughout the rest of this example, it is assumed that standard access control is being applied to all transactions. After accepting the SUBSCRIBE, the application server initializes the phone to the appropriate call status by sending a NOTIFY with a call state document. This NOTIFY event is sent even if the call state is idle, and serves as a synchronization event between the application server and the IP phone BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 14 OF 39
15 [F1] SUBSCRIBE A-1 -> Application Server SUBSCRIBE SIP/2.0 Via: SIP/2.0/UDP a1.foo.com:5060;branch=dsdf32nashds7 Max-Forwards: 70 From: Shared-A To: Shared-A Call-ID: CSeq: 6 SUBSCRIBE Event: call-info Expires: 3600 Contact: <sip:[email protected]> [F2] 200 OK Application Server A-1 SIP/ OK Via: SIP/2.0/UDP a1.foo.com:5060;branch=dsdf32nashds7 From: Shared-A <sip:[email protected]>;tag=dsa3dszlfl To: Shared-A <sip:[email protected]>;tag= Call-ID: [email protected] CSeq: 6 SUBSCRIBE Event: call-info Contact: sip:[email protected] Expires: 3600 [F3] NOTIFY Application Server -> A-1 NOTIFY sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP as.foo.com:5060;branch=gsdf32nashds7 Max-Forwards: 70 From: Shared-A <sip:[email protected]>;tag=dsa3dszlfl To: Shared-A <sip:[email protected]>;tag= Call-ID: [email protected] CSeq: 1344 NOTIFY Event: call-info Subscription-State: active; expires=3599 Contact: sip:[email protected] Call-Info: <sip:as.foo.com>;appearance-index=*;appearance-state=idle [F4] 200 OK A-1 Application Server SIP/ OK Via: SIP/2.0/UDP as.foo.com:5060;branch=gsdf32nashds7 From: Shared-A <sip:[email protected]>;tag=dsa3dszlfl To: Shared-A <sip:[email protected]>;tag= Call-ID: [email protected] CSeq: 1344 NOTIFY 2005 BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 15 OF 39
16 3.2.2 Outgoing Call The following figure shows the call flow as a result of endpoint A-1 originating a call to B using A s shared line. It is assumed that A-1 has successfully seized the line. IP Phone A-1 AS IP Phone A-2 Phone B [F1] INVITE [F2]100 Trying [F3] NOTIFY line-seize Step 4.1: A-1 calls B [F4] 200 OK [F5] INVITE [F7] 180 Ringing [F6] 180 Ringing [F9] NOTIFY call-info (Progressing) [F11] 200 OK [F8] NOTIFY call-info (Progressing) [F10] 200 OK Step 4.2: AS Notifies A-1/A-2 that call is Progressing Step 4.3: B answers call [F13] 200 OK [F15] ACK [F12] 200 OK [F14] ACK [F17] NOTIFY call-info (Active) [F19] 200 OK [F16] NOTIFY call-info (Active) [F18] 200 OK Step 4.4: AS notifies A-1/A-2 that call is now Active Figure 2 Call Flow as a Result of Endpoint A-1 Originating a Call to B using A s Shared Line 2005 BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 16 OF 39
17 A-1 Calls B In [F1 to F7], the user on IP phone A-1 has entered digits that originates a call to B. Because the endpoint has already seized the line, the Application Server accepts the INVITE and simply treats the call like a standard outbound call to an off network device. Note that in [F3], the Application Server sends a NOTIFY-request to A-1, indicating that the line-seize subscription has been terminated. This is normal once an INVITE has been received from the endpoint that has seized the call appearance on the shared line. [F1] INVITE A-1 Application Server INVITE sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP a1.foo.com:5060;branch=m9hg4bk74bf9 Max-Forwards: 70 From: Shared-A <sip:[email protected]>;tag=5fxced76sl To: B <sip:[email protected]> Call-ID: @a1.foo.com Call-Info: <sip:as.foo.com>;appearance-index=1 CSeq: INVITE Contact: <sip:[email protected]> Content-Type: application/sdp Content-Length: 143 v=0 o=usera IN IP4 a1.foo.com s=c=in IP t=0 0 m=audio RTP/AVP 0 a=rtpmap:0 PCMU/8000 [F2] 100 Trying Application Server A-1 SIP/ Trying Via: SIP/2.0/UDP a1.foo.com:5060;branch=m9hg4bk74bf9 From: Shared-A <sip:[email protected]>;tag=5fxced76sl To: B <sip:[email protected]>; tag=4323z39 Call-ID: @a1.foo.com Call-Info: <sip:as.foo.com>;appearance-index=1 CSeq: INVITE Contact: <sip:[email protected]> [F3] NOTIFY Application Server -> A-1 NOTIFY sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP as.foo.com:5060; branch=gsdf32nashds7 Max-Forwards: 70 From: Shared-A <sip:[email protected]>;tag=gsa3dszlfl To: Shared-A <sip:[email protected]>;tag= Call-ID: [email protected] CSeq: 24 NOTIFY Event: line-seize Subscription-State: terminated; expires=0 Contact: sip:[email protected] [F4] 200 OK A-1 Application Server SIP/ OK Via: SIP/2.0/UDP a1.foo.com:5060;branch=gsdf32nashds7 From: Shared-A <sip:[email protected]>;tag=gsa3dszlfl To: Shared-A <sip:[email protected]>;tag= BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 17 OF 39
18 Call-ID: CSeq: 24 NOTIFY [F5] INVITE Application Server B INVITE sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP as.foo.com:5060;branch=234adfrjksd Max-Forwards: 70 From: Shared-A <sip:[email protected]>;tag=234wdkfj To: B <sip:[email protected]> Call-ID: asdf @as.foo.com CSeq: INVITE Contact: <sip:[email protected]> Content-Type: application/sdp Content-Length: 143 v=0 o=usera IN IP4 a1.foo.com s=c=in IP t=0 0 m=audio RTP/AVP 0 a=rtpmap:0 PCMU/8000 [F6] 180 Ringing B Application Server SIP/ Ringing Via: SIP/2.0/UDP as.foo.com:5060;branch=234adfrjksd From: Shared-A <sip:[email protected]>;tag=234wdkfj To: B <sip:[email protected]>;tag=1234dsf2 Call-ID: asdf @as.foo.com CSeq: INVITE Contact: <sip:[email protected]> [F7] 180 Ringing Application Server A-1 SIP/ Ringing Via: SIP/2.0/UDP a1.foo.com:5060;branch=m9hg4bk74bf9 From: Shared-A <sip:[email protected]>;tag=5fxced76sl To: B <sip:[email protected]>;tag=4323z39 Call-ID: @a1.foo.com Call-Info: <sip:as.foo.com>;appearance-index=1 CSeq: INVITE Contact: <sip:[email protected]> 2005 BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 18 OF 39
19 Application Server Notifies A-1 and A-2 that Call is Progressing As the call progresses, the Application Server sends Call-Info NOTIFY-requests to all endpoints that have subscribed to the Call-Info event package on the shared line. In this example, IP phones A-1 and A-2 have both subscribed to the Call-Info event package, so the Application Server sends a NOTIFY-request to both A-1 and A-2, with a Call-Info header indicating a state of Progressing (events [F8-F11]). [F8] NOTIFY Application Server -> A-1 NOTIFY sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP as.foo.com:5060;branch=gsdf32nashds7 Max-Forwards: 70 From: Shared-A <sip:[email protected]>;tag=dsa3dszlfl To: Shared-A <sip:[email protected]>;tag= Call-ID: [email protected] CSeq: 1344 NOTIFY Event: call-info Subscription-State: active; expires=3200 Call-Info: <sip:as.foo.com>;appearance-index=1;appearancestate=progressing, <sip:as.foo.com>;appearance-index=*;appearance-state=idle [F9] NOTIFY Application Server -> A-2 NOTIFY sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP as.foo.com:5060;branch=gsdf32nashds7 Max-Forwards: 70 From: Shared-A <sip:[email protected]>;tag=ggsa3dszlfl To: Shared-A <sip:[email protected]>;tag= Call-ID: [email protected] CSeq: 1345 NOTIFY Event: call-info Subscription-State: active; expires=3100 Call-Info: <sip:as.foo.com>;appearance-index=1;appearancestate=progressing, <sip:as.foo.com>;appearance-index=*;appearance-state=idle [F10] 200 OK A-1 Application Server SIP/ OK Via: SIP/2.0/UDP as.foo.com:5060;branch=gsdf32nashds7 From: Shared-A <sip:[email protected]>;tag=dsa3dszlfl To: Shared-A <sip:[email protected]>;tag= Call-ID: [email protected] CSeq: 1344 NOTIFY [F11] 200 OK A-2 Application Server SIP/ OK Via: SIP/2.0/UDP as.foo.com:5060;branch=gsdf32nashds7 From: Shared-A <sip:[email protected]>;tag=ggsa3dszlfl To: Shared-A <sip:[email protected]>;tag= Call-ID: [email protected] CSeq: 1345 NOTIFY 2005 BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 19 OF 39
20 B Answers Call [F12 to F15] shows B answering the call using standard back-to-back user agent call flow. A-1 and B are now active in a call. [F12] 200 OK B Application Server SIP/ OK Via: SIP/2.0/UDP as.foo.com:5060;branch=234adfrjksd From: Shared-A <sip:[email protected]>;tag=234wdkfj To: B <sip:[email protected]>;tag=1234dsf2 Call-ID: asdf @as.foo.com CSeq: INVITE Contact: <sip:[email protected]> [F13] 200 OK Application Server A-1 SIP/ OK Via: SIP/2.0/UDP a1.foo.com:5060;branch=m9hg4bk74bf9 From: Shared-A <sip:[email protected]>;tag=5fxced76sl To: B <sip:[email protected]>; tag=4323z39 Call-ID: @a1.foo.com Call-Info: <sip:as.foo.com>;appearance-index=1 CSeq: INVITE Contact: <sip:[email protected]> [F14] ACK A-1 Application Server ACK sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP a1.foo.com:5060;branch=345rbk74bf9 Max-Forwards: 70 From: Shared-A <sip:[email protected]>;tag=234wdkfj To: B <sip:[email protected]>;tag=1234dsf2 Call-ID: asdf @foo.com CSeq: 1093 ACK Contact: <sip:[email protected]> [F15] ACK Application Server B ACK sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP as.foo.com:5060;branch=23dsdf2ksd Max-Forwards: 70 From: Shared-A <sip:[email protected]>;tag=234wdkfj To: B <sip:[email protected]>;tag=1234dsf2 Call-ID: asdf @foo.com CSeq: ACK Contact: <sip:[email protected]> 2005 BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 20 OF 39
21 Application Server Notifies A-1 and A-2 that Call is Now Active In [F16 to F19] the Application Server sends a NOTIFY-request to IP phones A-1 and A-2 with a Call-Info header, indicating a call appearance state of Active for the first call appearance on the shared line. [F16] NOTIFY Application Server -> A-1 NOTIFY sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP as.foo.com:5060;branch=gsdf32nashds7 Max-Forwards: 70 From: Shared-A <sip:[email protected]>;tag=dsa3dszlfl To: Shared-A <sip:[email protected]>;tag= Call-ID: [email protected] CSeq: 1344 NOTIFY Event: call-info Subscription-State: active; expires=3000 Call-Info: <sip:as.foo.com>;appearance-index=1;appearance-state=active, <sip:as.foo.com>;appearance-index=*;appearance-state=idle [F17] NOTIFY Application Server -> A-2 NOTIFY sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP as.foo.com:5060;branch=gsdf32nashds7 Max-Forwards: 70 From: Shared-A <sip:[email protected]>;tag=ggsa3dszlfl To: Shared-A <sip:[email protected]>;tag= Call-ID: [email protected] CSeq: 1345 NOTIFY Event: call-info Subscription-State: active; expires=2999 Call-Info: <sip:as.foo.com>;appearance-index=1;appearance-state=active, <sip:as.foo.com>;appearance-index=*;appearance-state=idle [F18] 200 OK A-1 Application Server SIP/ OK Via: SIP/2.0/UDP as.foo.com:5060;branch=gsdf32nashds7 From: Shared-A <sip:[email protected]>;tag=dsa3dszlfl To: Shared-A <sip:[email protected]>;tag= Call-ID: [email protected] CSeq: 1344 NOTIFY [F19] 200 OK A-2 Application Server SIP/ OK Via: SIP/2.0/UDP as.foo.com:5060;branch=gsdf32nashds7 From: Shared-A <sip:[email protected]>;tag=ggsa3dszlfl To: Shared-A <sip:[email protected]>;tag= Call-ID: [email protected] CSeq: 1345 NOTIFY 3.3 Event Package Name The name of this event is Call-Info. It is carried in the Event and Allow-Events header as defined in RFC BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 21 OF 39
22 3.4 Event Package Parameters This package does not define any event package parameters. 3.5 SUBSCRIBE Bodies A SUBSCRIBE for a Call-Info package must not contain a body. A body is not required for this application of the Call-Info event package any body sent in a SUBSCRIBE is ignored by the notifier. 3.6 Subscription Duration Subscribers SHOULD specify the duration of a subscription with an Expires header in the SUBSCRIBE request. It is recommended that the subscription use the same refresh period as the REGISTER event. If the notifier changes the expiration period to a lower value (via an Expires header in the final response), the subscriber should honor it. If the subscriber does not specify the duration of a subscription, then the notifier chooses a default expiration. The recommended default is 1800 seconds. 3.7 NOTIFY Bodies A NOTIFY for a Call-Info package MUST NOT contain a body. No body is required for the Call-Info event package as all state is reflected through the Call-Info header. 3.8 Subscriber Generation of SUBSCRIBE Requests Subscriber generation of SUBSCRIBE requests MUST follow all rules with respect to subscriber behavior as described in RFC For this application, SIP phones that are configured with shared lines should generate SUBSCRIBE requests immediately after successfully registering a location against the provisioned address of record. The Request-URI, From, and To header must be the same as the address of record of the shared line. 3.9 Notifier Processing of SUBSCRIBE Requests Notifier processing of SUBSCRIBE requests MUST follow all rules with respect to notifier behavior as described in RFC The Call-Info package contains potentially sensitive information. Subscriptions SHOULD be authorized by the notifier. The notifier MAY perform implicit authorization by looking at the source IP address of the SUBSCRIBE event and matching it to any endpoints that have successfully been authenticated through the registration process. The notifier MAY choose to explicitly challenge the subscriber for authentication by using a 401 Unauthorized response. If the subscriber has also registered a location for this address of record, then it SHOULD use the same credentials to answer the subscription challenge Notifier Generation of NOTIFY Requests Notifier generation of NOTIFY requests MUST follow all rules with respect to notifier behavior as described in RFC Notifications are generated for the Call-Info package whenever the supplementary call information associated with an address of record (in this case a line) changes. As described in RFC-3261, supplementary call information can be almost anything. For the purposes of these applications, the call information includes a complete list of all the call appearances allowed on the address of record and the state of each call appearance. The notifier sends this information in a NOTIFY request by explicitly including a Call-Info header in addition to the required NOTIFY request headers BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 22 OF 39
23 See the sections above for details about the content of the Call-Info header and how it should be used Subscriber Processing of NOTIFY Requests In general, subscriber processing of NOTIFY requests MUST follow all rules with respect to subscriber behavior, as described in RFC The SIP Specific Event Notification Framework expects packages to specify how a subscriber processes NOTIFY requests, and in particular, how it uses the NOTIFY requests to construct a coherent view of the state of the subscribed resource. To be specific, the Call-Info package itself has no state, but in this application, the state of the call appearances of a given address of record can be derived from the content of the Call-Info header that is delivered in the NOTIFY request. This state is described in detailed in the following sections. Because these applications use the content of the NOTIFY s Call-Info header to visually present the call appearance state to the user, the subscriber (that is, the phone) SHOULD perform some level of authorization before processing NOTIFY s. The subscriber MAY perform implicit authorization by looking at the source IP address of the NOTIFY request event and matching it to any one of the IP addresses of the notifier, as resolved through DNS. The subscriber MAY perform explicit authentication by challenging the notifier, by using a 401 Unauthorized response. If the subscriber has also registered a location for this address of record, then the notifier SHOULD use those same credentials to answer the notification challenge Handling of Forked Requests Although it is theoretically possible for a SUBSCRIBE request to fork, this is not likely for the applications described in this document. Robust subscriber implementations SHOULD be prepared to install multiple Call-Info subscriptions, but practically speaking, this never happens Rate of Notifications A very active phone line may result in many notifications sent to every endpoint in the shared call appearance group. Endpoints should be prepared to accept NOTIFY requests as frequently as a few times per second in burst scenarios (which should be infrequent) BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 23 OF 39
24 4 Line-Seize Event Package 4.1 Overview SIP has been employed as a line side access protocol in voice networks. When compared to other line side access protocols like SCCP or MGCP, SIP is considered a peer to peer protocol. Because of this, SIP-UAs embedded in IP phones typically provide local dial tone, digit collection, and essentially perform their own line side call setup. This works well for lines that are private to the endpoint. But this behavior can cause race conditions when emulating shared line functionality across multiple endpoints. Emulating shared line functionality requires some central line controller to arbitrate which endpoint has seized the line. The purpose of the line-seize event package is to support the concept of a line-seizure between an endpoint and line-controller, as found in a typical shared line solution. The approach defined here requires that all endpoints that participate in a shared line obtain a subscription to the line-seize package for the shared line before presenting the user with dial tone or collecting digits. This means the endpoints must send a SUBSCRIBE-request for the line-seize event package whenever a user attempts to take the shared line off hook. The line controller guarantees that only one subscription to the line-seize event package can exist for a given shared line resource. When the line controller grants a subscription to the line-seize package, it responds to the SUBSCRIBE with a 200 OK response and generates a NOTIFY, indicating that the subscription state is now active. This is an indicator to the endpoint that it can safely play dial tone to the user and collect digits. Once the digits have been collected, then the endpoint can send an INVITE-request. While one endpoint has obtained the line-seize subscription, any requests from other endpoints to use that shared line are rejected with a 480 Temporarily Unavailable response. The line-seize event package is an instantiation of the SIP Specific Event Notification Framework (as defined in RFC 3265). Following is a description of the event package details, as per RFC To avoid scenarios where the endpoint seizes the line, but never actually uses it (that is, it never sends an INVITE-request) and effectively hangs the line - the line-seize package must have a suitable duration associated with it. Fortunately, the SIP specific event notification framework, as defined in RFC 3265, explicitly describes a mechanism for negotiating subscription duration between the subscriber (the endpoint) and the notifier (the line controller). The SUBSCRIBE-request to the line-seize package contains an expiration time as offered by the endpoint and in response the line-controller can choose to set a smaller expiration time. If the endpoint has not collected digits and sent an INVITE-request before the subscription has expired, then it must refresh the subscription or risk losing it to another endpoint. Endpoints should only collect digits for a suitable length of time before they let the subscription expire naturally. This avoids scenarios where one endpoint in the shared call appearance group goes off hook accidentally and effectively ties up the line. After a reasonable amount of time, the endpoint should stop refreshing the subscription, let it expire naturally, and then apply an appropriate local treatment (re-order tone), so the end user is aware that digits can no longer being collected. If the user goes on hook before digit collection is complete effectively terminating the line seizure without originating a call then the endpoint must clear the line seizure by explicitly canceling the subscription. This allows the line to be immediately seized by another endpoint. As per RFC 3261, this is effectively achieved by refreshing the subscription with an expiration of BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 24 OF 39
25 4.2 Example Message Flows The following figure shows the call flow as a result of a user at A-1 taking the shared line off hook. The line controller in this scenario is provided by a central Application Server (AS). IP Phone A-1 AS IP Phone A-2 Phone B [F1] SUBSCRIBE line-sieze [F2] 200 OK Step 3.1: A-1 goes off hook [F3] NOTIFY line-seize [F4] 200 OK [F7] NOTIFY call-info (Seized) [F8] 200 OK [F5] NOTIFY call-info (Seized) [F6] 200 OK Step 3.2: AS Notifies A-1/A-2 that line is Seized [F9] SUBSCRIBE line-sieze [F10] 200 OK [F11] NOTIFY line-seize [F12] 200 OK Step 3.3: A-1 refreshes line-seize subscription Figure 3 Call Flow as a Result of a User at A-1 Taking the Shared Line Off Hook In [F1 to F4], IP-phone A-1 must be granted a subscription to the line-seize package. Only after the subscription has been granted, should the IP phone play dial tone to the user. [F1] SUBSCRIBE A-1 -> Application Server SUBSCRIBE sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP a1.foo.com:5060;branch=gsdf32nashds7 Max-Forwards: 70 From: Shared-A <sip:[email protected]>;tag=gsa3dszlfl To: Shared-A <sip:[email protected]> Call-ID: [email protected] Call-Info: <sip:as.foo.com>; appearance-index=1 CSeq: 7 SUBSCRIBE Event: line-seize Expires: 15 Contact: <sip:[email protected]> [F2] 200 OK Application Server A-1 SIP/ OK Via: SIP/2.0/UDP a1.foo.com:5060;branch=gsdf32nashds BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 25 OF 39
26 From: Shared-A To: Shared-A Call-ID: CSeq: 7 SUBSCRIBE Contact: sip:[email protected] Event: line-seize Expires=15 [F3] NOTIFY Application Server -> A-1 NOTIFY sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP as.foo.com:5060; branch=gfasdf237 Max-Forwards: 70 From: Shared-A <sip:[email protected]>;tag=gsa3dszlfl To: Shared-A <sip:[email protected]>;tag= Call-ID: [email protected] Call-Info: <sip:as.foo.com>; appearance-index=1 CSeq: 9 NOTIFY Event: line-seize Subscription-State: active; 14 Contact: sip:[email protected] [F4] 200 OK A-1 Application Server SIP/ OK Via: SIP/2.0/UDP a1.foo.com:5060; branch=gfasdf237 From: Shared-A <sip:[email protected]>;tag=gsa3dszlfl To: Shared-A <sip:[email protected]>;tag= Call-ID: [email protected] CSeq: 9 NOTIFY 4.3 Event Package Name The name of this event package is line-seize. It is carried in the Event and Allow-Events header as defined in RFC Event Package Parameters This package does not define any event package parameters. 4.5 SUBSCRIBE Bodies A SUBSCRIBE for a line-seize package MUST NOT contain a body. No body is required for this application of the line-seize event package any body sent in a SUBSCRIBE is ignored by the notifier. 4.6 Subscription Duration Subscribers SHOULD specify the duration of a subscription with an Expires header in the SUBSCRIBE request. It is recommended that the subscription use a refresh period, equal roughly to how long it takes for a typical end user to dial a full E.164 number. If the notifier changes the expiration period to a lower value (via an Expires header in the final response), the subscriber should honor it. If the subscriber does not specify the duration of a subscription, then the notifier chooses a default expiration value. The recommended default is 15 seconds BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 26 OF 39
27 4.7 NOTIFY Bodies A NOTIFY for a line-seize package MUST NOT contain a body. No body is required for the line-seize event package, as it uses a very simple state machine of either active or terminated which is easily reflected through the Subscription-State header. A body contained in a NOTIFY-request should be ignored by the subscriber. 4.8 Subscriber Generation of SUBSCRIBE Requests Subscriber generation of SUBSCRIBE requests MUST follow all rules with respect to subscriber behavior, as described in RFC Typically, SIP phones that are configured with shared lines should generate SUBSCRIBE requests immediately after a user s attempts to go off hook on an idle shared line. The Request-URI, From, and To header must be the same as the address of record of the shared line. 4.9 Notifier Processing of SUBSCRIBE Requests Notifier processing of SUBSCRIBE requests MUST follow all rules with respect to notifier behavior, as described in RFC The line-seize package contains potentially sensitive information. Subscriptions SHOULD be authorized by the notifier. The notifier MAY perform implicit authorization by looking at the source IP address of the SUBSCRIBE event and matching it to any endpoints that have successfully been authenticated through the registration process. The notifier MAY choose to explicitly challenge the subscriber for authentication, by using a 401 Unauthorized response. If the subscriber has also registered a location for this address of record, then it SHOULD use the same credentials to answer the subscription challenge Notifier Generation of NOTIFY Requests Notifier generation of NOTIFY requests MUST follow all rules with respect to notifier behavior, as described in RFC Notifications are generated for the line-seize package immediately after a subscription has been accepted Subscriber Processing of NOTIFY Requests In general, subscriber processing of NOTIFY requests MUST follow all rules with respect to subscriber behavior, as described in RFC The SIP Specific Event Notification framework expects packages to specify how a subscriber processes NOTIFY requests, and in particular, how it uses the NOTIFY requests to construct a coherent view of the state of the subscribed resource. The line-seize package has binary state. Either the line-seize subscription is active or it s terminated. This state is reflected in the Subscription-State header. The endpoint SHOULD perform some level of authorization before processing NOTIFYs. The subscriber MAY perform implicit authorization by looking at the source IP address of the NOTIFY request event and matching it to any one of the known IP addresses of the notifier (in this case the Application Server), as resolved through DNS. The subscriber MAY perform explicit authentication by challenging the notifier, by using a 401 Unauthorized response. If the subscriber has also registered a location for this address of record, then the notifier SHOULD use those same credentials to answer the notification challenge BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 27 OF 39
28 4.12 Handling of Forked Requests Although it is theoretically possible for a SUBSCRIBE request to fork, this is not likely for typical applications that use the line-seize event package. Since the nature of the subscription guarantees that only one subscription exist at a time, then the first forked request that arrives at the Application Server is granted a subscription, while the rest of the SUBSCRIBE-requests are rejected Rate of Notifications Notifications are only sent when the endpoint explicitly refreshes the subscription (about every 15 seconds), when the subscription expires (also after about 15 seconds), or when the subscription is terminated BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 28 OF 39
29 5 Remote Control Talk Event Package 5.1 Overview When providing CTI based applications such as desktop call control clients, a service delivery platform must be able to request that an endpoint answer an incoming call. This extension provides the ability for an Application Server to send an asynchronous NOTIFY event to an endpoint, using an existing INVITE dialog. When received, the endpoint can elect to honor the request and answer the call, without local user intervention. This extension can also be used to support remotely retrieving a call that has been previously held. When the endpoint receives the NOTIFY event and the associated dialog is in the held state, then the endpoint can elect to honor the request and retrieve the call from the held state. The talk event package is an instantiation of the SIP Specific Event Notification Framework (as defined in RFC 3265). Following are details of the event package, as per RFC Example Message Flow The following diagram shows the call flow as a result of a user performing a click-toanswer function on an incoming call from the PSTN. Application Workstation Network IP Phone Media Server Server Gateway [F2] INVITE w/sdp offer [F1] INVITE w/sdp offer [F3] Incoming [F6] Talk [F4] 180 Ringing [F5] 180 Ringing [F7] NOTIFY Event: answer [F8] 200 OK (Notify) [F9] 200 OK (Invite) w/sdp answer [F10] Talking [F11] 200 OK w/sdp answer [F12] ACK [F13 ACK Two-way voice path established. Figure 4 Click-To-Answer Call Flow 2005 BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 29 OF 39
30 The call arrives at the Application Server in [F1] as usual. The Application Server sends an INVITE to the IP phone registered against the user profile in [F2]. [F2] INVITE Application Server -> IP phone INVITE SIP/2.0 Via: SIP/2.0/UDP a1.foo.com:5060;branch=m9hg4bk74bf9 Max-Forwards: 70 From: Joe To: Jane Call-ID: Call-Info: <sip:as.foo.com>;appearance-index=1 CSeq: INVITE Contact: <sip:a1.foo.com:5060> Allow: ACK, BYE, CANCEL, INFO, INVITE, OPTIONS, PRACK, REFER Supported: 100rel, timer Content-Type: application/sdp Content-Length: 192 v=0 o=foo-ua IN IP4 networkgateway.com s=sip Call c=in IP4 networkgateway.com t=0 0 m=audio RTP/AVP a=rtpmap :0 PCMU/8000 a=rtpmap :8 PCMA/8000 a=rtpmap:10 G729/0000 At about the same time, the Application Server sends a notification [F3] to the call client on the workstation, indicating that a call has arrived. The call client presents this to the end user. At about the same time as the user sees the call client present the incoming call on the desktop, the phone on his/her desk starts to alert and the phone responds to the INVITE with a 180 Ringing in [F4]. [F4] SIP/ Ringing Via: SIP/2.0/UDP a1.foo.com:5060;branch=m9hg4bk74bf9 From: Joe <sip: @a1.foo.com>;tag=5fxced76s2 To: Jane <sip: @a1.foo.com>;tag=763jxd879sa Call-ID: @a1.foo.com Call-Info: <sip:as.foo.com>;appearance-index=1 CSeq: INVITE Contact: <sip: @ipphone.com:5060> Allow-Events:hold,talk The 180 Ringing progress is passed on to the network gateway in [F5]. The Allow-Events header in the 180 Ringing indicates to the Application Server that this endpoint supports remote call control primitives. When the user selects the incoming call and clicks on talk an event is sent from the call client to the Application Server in [F6], indicating that the user is requesting that the incoming call be answered. The Application Server reacts by sending a NOTIFY to the SIP phone in [F7]. [F7] NOTIFY Application Server -> IP Phone NOTIFY sip: @ipphone.com SIP/2.0 Via: SIP/2.0/UDP a1.foo.com:5060;branch=m9hg4bk74bf9 From: Joe <sip: @a1.foo.com>;tag=5fxced76s2 To: Jane <sip: @a1.foo.com> ; tag=432d33 Call-ID: @a1.foo.com CSeq: 434 NOTIFY Contact: <sip:a1.foo.com:5060> Event: talk 2005 BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 30 OF 39
31 Subscription-State: active Contact: <sip:a1.foo.com:5060> The IP phone indicates that it honors the request by responding to the NOTIFY with a 200 OK. NOTE: For brevity, the authorization procedure is not shown in the figure. The phone should always challenge an incoming NOTIFY for credentials that authorize the notifier to perform remote call control. [F8] 200 OK IP Phone -> Application Server SIP/ OK Via: SIP/2.0/UDP a1.foo.com:5060;branch=m9hg4bk74bf9 From: Joe <sip: @a1.foo.com>;tag=5fxced76s2 To: Jane <sip: @a1.foo.com> ; tag=432d33 Call-ID: @a1.foo.com CSeq: 434 NOTIFY Contact: <sip:a1.foo.com:5060> The phone then automatically answers the incoming call by forcing off-hook and activating the speaker. 5.3 Event Package Names The event package name is called talk. It is carried in the Event and Allow-Events header as defined in RFC Event Package Parameters This event package does not define any event package parameters. 5.5 SUBSCRIBE Bodies The talk event package does not support dynamic subscriptions through SUBSCRIBE requests. 5.6 Subscription Duration Subscriptions are implied by sessions established through INVITE requests and last throughout the duration of the session. When a UAC sends an INVITE to a UAS, it adds an Allow-Events header to the request, indicating all of the event packages it supports. This implicitly creates the subscription between the UAC and the UAS. When a UAS responds to the INVITE with an 18x provisional response or a 200 OK response, it adds an Allow-Events header indicating all of the event packages it supports. This implicitly creates the subscription between the UAS and the UAC. These subscriptions last until the session has been terminated with a BYE or CANCEL transaction BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 31 OF 39
32 5.7 NOTIFY Bodies A NOTIFY for a talk package MUST NOT contain a body. No body is required for the talk event package as they have trivial state. 5.8 Subscriber Generation of SUBSCRIBE Requests Subscribers should not generate SUBSCRIBE requests. Subscriptions are granted to subscribers implicitly by the establishment of sessions between two user agents. 5.9 Notifier Processing of SUBSCRIBE Requests Notifiers should not process SUBSCRIBE requests. If received, they should be rejected Subscriber Processing of NOTIFY Requests In general, subscriber processing of NOTIFY requests MUST follow all rules with respect to subscriber behavior, as described in RFC The SIP Specific Event Notification framework expects packages to specify how a subscriber processes NOTIFY requests and, in particular, how it uses the NOTIFY requests to construct a coherent view of the state of the subscribed resource. Because these event notifications have the ability to remotely control the user s handset behavior, the subscriber (for example, the phone) SHOULD perform some level of authorization before processing NOTIFYs. The subscriber MAY perform implicit authorization by looking at the source IP address of the NOTIFY request event and matching it to any one of the IP addresses of the notifier (in this case, the Application Server) as resolved through DNS. The subscriber MAY perform explicit authentication by challenging the notifier, by using a 401 Unauthorized response. If the subscriber has also registered a location for this address of record, then the notifier SHOULD use those same credentials to answer the notification challenge. When a subscriber receives a talk event notification for a particular dialog, it must apply the talk action to the local session in progress. If the session is in the alerting state, then the subscriber should attempt to answer the session, by forcing the call off hook and turning on the speakerphone (if supported). If the session is in the held state, then the subscriber should attempt to retrieve the call. If the subscriber receives a talk notification for a session that is not either in the alerting state or the held state, then the talk notification should be rejected. Note that the subscriber should always respond to the NOTIFY transaction if it was received and before the action is complete. A 200 OK response to a NOTIFY transaction only indicates that the notification has been received, and not that any action associated with the notification was successfully completed Handling of Forked Requests NOTIFYs should not be forked Rate of Notifications The rate of notifications is dictated by the end-user interface on the call control client and can vary from application to application. Endpoints should be prepared to accept NOTIFY requests as frequently as once every two or three seconds BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 32 OF 39
33 5.13 Notifier Generation of NOTIFY Requests Notifications are generated for the talk package whenever a remote call control application requests that an alerting session be answered, or a held session be retrieved. Notifiers should not generate a talk event notification for a session that is already active and streaming media BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 33 OF 39
34 6 Remote Control Hold Event Package 6.1 Overview When providing CTI based applications such as desktop call control clients, a service delivery platform must be able to remotely request that an endpoint put a call on hold. This extension provides the ability for an Application Server to send an asynchronous NOTIFY event to an endpoint using an existing INVITE dialog. When received, the endpoint can elect to honor the request and put a call on hold, without local user intervention. The hold event package is an instantiation of the SIP Specific Event Notification Framework (as defined in RFC 3265). Following is a description of the event package, as per RFC Example Message Flow The following diagram shows the call flow as a result of a user performing a click-to-hold function on an active call from the PSTN BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 34 OF 39
35 Application Workstation Network IP Phone Media Server Server Gateway [F2] INVITE w/sdp offer [F1] INVITE w/sdp offer [F3] Incoming [F4] 180 Ringing [F5] 180 Ringing [F6] 200 OK (Invite) w/sdp answer [F7] Talking [F8] 200 OK w/sdp answer [F10] ACK [F9] ACK [F11] Hold Two-way voice path established. [F12] NOTIFY Event: hold [F13] 200 OK (Notify) [F14] INVITE w/hold SDP [F15] INVITE w/hold SDP [F16] Held [F17] 200 OK w/hold SDP [F18] 200 OK w/hold SDP [F19] ACK [F20] ACK Figure 5 Click-To-Hold Call Flow The call is set up as usual in [F1-F10] and a two-way audio is established. Now in [F11] the user at the call client decides to remotely hold the call and sends a hold request to the Application Server. The Application Server discovered that the endpoint supported the hold event package through an Allow-Events header in the 180 Ringing provisional response at [F4]. The Application Server reacts by sending a NOTIFY with a hold event in [F12]. Note that this NOTIFY is sent using the same dialog as the session it is acting on. [F12] NOTIFY Application Server -> IP phone NOTIFY sip: @ipphone.com SIP/2.0 Via: SIP/2.0/UDP a1.foo.com:5060;branch=m9hg4bk74bf9 From: Joe <sip: @a1.foo.com>;tag=5fxced76s BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 35 OF 39
36 To: Jane ; tag=432d33 Call-ID: CSeq: 444 NOTIFY Contact: <sip:a1.foo.com:5060> Event: hold Subscription-State: active Contact: <sip:a1.foo.com:5060> The IP phone indicates that it honors the request by responding to the NOTIFY with a 200 OK. NOTE: For brevity, the authorization procedure is not shown in the diagram. The phone should always challenge an incoming NOTIFY for credentials that authorize the notifier to perform remote call control. [F13] 200 OK IP Phone -> Application Server SIP/ OK Via: SIP/2.0/UDP a1.foo.com:5060;branch=m9hg4bk74bf9 From: Joe <sip: @a1.foo.com>;tag=5fxced76s2 To: Jane <sip: @a1.foo.com> ; tag=432d33 Call-ID: @a1.foo.com CSeq: 444 NOTIFY Contact: <sip:a1.foo.com:5060> The phone then performs the call-hold action. 6.3 Event Package Names The event package name is called hold. It is carried in the Event and Allow-Events header, as defined in RFC Event Package Parameters This event package does not define any event package parameters. 6.5 SUBSCRIBE Bodies The hold event packages does not support dynamic subscriptions through SUBSCRIBE requests. 6.6 Subscription Duration Subscriptions are implied by sessions established through INVITE requests and last throughout the duration of the session. When a UAC sends an INVITE to a UAS, it adds an Allow-Events header to the request, indicating all of the event packages it supports. This implicitly creates the subscription between the UAC and the UAS. When a UAS responds to the INVITE with an 18x provisional response or 200 OK response, it adds an Allow-Events header, indicating all of the event packages it supports. This implicitly creates the subscription between the UAS and the UAC. These subscriptions last until the session has been terminated with a BYE or CANCEL transaction BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 36 OF 39
37 6.7 NOTIFY Bodies A NOTIFY for a hold package MUST NOT contain a body. No body is required as they have trivial state. 6.8 Subscriber Generation of SUBSCRIBE Requests Subscribers should not generate SUBSCRIBE requests. Subscriptions are granted to subscribers implicitly, by the establishment of sessions between two user agents. 6.9 Notifier Processing of SUBSCRIBE Requests Notifiers should not process SUBSCRIBE requests. If received, they should be rejected Subscriber Processing of NOTIFY Requests In general, subscriber processing of NOTIFY requests MUST follow all rules with respect to subscriber behavior, as described in RFC The SIP Specific Event Notification framework expects packages to specify how a subscriber processes NOTIFY requests and, in particular, how it uses the NOTIFY requests to construct a coherent view of the state of the subscribed resource. Because these event notifications have the ability to remotely control the user s handset behavior, the subscriber (for example, the phone) SHOULD perform some level of authorization before processing NOTIFYs. The subscriber MAY perform implicit authorization, by looking at the source IP address of the NOTIFY request event and matching it to any one of the IP addresses of the notifier (in this case, the Application Server) as resolved through DNS. The subscriber MAY perform explicit authentication by challenging the notifier, by using a 401 Unauthorized response. If the subscriber has also registered a location for this address of record, then the notifier SHOULD use those same credentials to answer the notification challenge. When a subscriber receives a hold event notification for a particular dialog, it must apply the hold action to the local session in progress. If the session is in the active state, then it should be held. If it is in any other state, the request should be rejected. Note that the subscriber should always respond to the NOTIFY transaction if it was received and before the action is complete. A 200 OK response to a NOTIFY transaction only indicates that the notification has been received, and not that any action associated with the notification was successfully completed Handling of Forked Requests SUBSCRIBEs and NOTIFYs should not be forked Rate of Notifications The rate of notifications is dictated by the end-user interface on the call control client and can vary from application to application. Endpoints should be prepared to accept NOTIFY requests as frequently as once every two or three seconds Notifier Generation of NOTIFY Requests Notifications are generated for the hold package whenever a remote call control application requests that an active session be held. Notifiers should not generate a hold event notification for a session that is already in the held state BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 37 OF 39
38 7 Index Address of Record, 7, 14 Answer-After, 11 Example message flow, 12 Overview, 11 Appearance-index, 11 Appearance-index, Appearance-state, Appearance-URI, 7 Call-Info, 7 Event Package, 14 Event Package Name, 21 Event Package Parameters, 22 Example message flow, 14 Handling of Forked Requests, 23 INVITE requests, 8 Notifier Generation of NOTIFY Requests, 22 Notifier Processing of SUBSCRIBE Requests, 22 NOTIFY bodies, 22 Outgoing Call, 16 Rate of Notifications, 23 Responses, 9 Shared Call Appearance, 14 SUBSCRIBE bodies, 22 SUBSCRIBE requests, 11 Subscriber Generation of SUBSCRIBE Requests, 22 Subscriber Processing of NOTIFY Requests, 23 Subscription duration, 22 Event Package Call-Info, 14 Line-Seize, 24 Remote Control Hold, 34 Remote Control Talk, 29 Extensions to Call-Info, 7 Forked Requests Call-Info, 23 Line-Seize, 28 Remote Control Hold, 37 Remote Control Talk, 32 Hold, remote control, 34 Info-parameter Answer-After, 11 Extensions to Call-Info, 7 Introduction, 6 INVITE requests, 8, 14 IP Phone Power Up A-1 SCA Client Subscription, 14 Line-Seize, 11 Event Package, 24 Event Package Name, 26 Event Package Parameters, 26 Example message flow, 25 Handling of Forked Requests, 28 Notifier Generation of NOTIFY Requests, 27 Notifier Processing of SUBSCRIBE Requests, 27 NOTIFY bodies, 27 Rate of Notifications, 28 SUBSCRIBE bodies, 26 Subscriber Generation of SUBSCRIBE Requests, 27 Subscriber Processing of NOTIFY Requests, 27 Subscription duration, 26 Message flow example, 12, 14, 25, 29, 34 Name Event Package Call-Info, 21 Line-Seize, 26 Remote Control Hold, 36 Remote Control Talk, 31 Notifier Generation of NOTIFY Requests Call-Info, 22 Line-Seize, 27 Remote Control Hold, 37 Remote Control Talk, 33 Notifier Processing of SUBSCRIBE Requests Call-Info, 22 Line-Seize, 27 Remote Control Hold, 37 Remote Control Talk, 32 NOTIFY bodies Call-Info, 22 Line-Seize, 27 Remote Control Hold, 37 Remote Control Talk, 32 Outgoing Call, 16 Parameters Event Package Call-Info, 22 Line-Seize, 26 Remote Control Hold, 36 Remote Control Talk, 31 Protocol Requirements Line-Seize Event Package, 24 Rate of Notifications Call-Info, 23 Line-Seize, 28 Remote Control Hold, 37 Remote Control Talk, 32 Remote Control Hold Event Package, 34 Event Package Name, 36 Event Package Parameters, 36 Example message flow, 34 Handling of Forked Requests, 37 Notifier Generation of NOTIFY Requests, 37 Notifier Processing of SUBSCRIBE Requests, 37 NOTIFY bodies, 37 Rate of Notifications, BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 38 OF 39
39 SUBSCRIBE bodies, 36 Subscriber Generation of SUBSCRIBE Requests, 37 Subscriber Processing of NOTIFY Requests, 37 Subscription duration, 36 Remote Control Talk Event Package, 29 Event Package Name, 31 Event Package Parameters, 31 Example message flow, 29 Handling of Forked Requests, 32 Notifier Generation of NOTIFY Requests, 33 Notifier Processing of SUBSCRIBE Requests, 32 NOTIFY bodies, 32 Rate of Notifications, 32 SUBSCRIBE bodies, 31 Subscriber Generation of SUBSCRIBE Requests, 32 Subscriber Processing of NOTIFY Requests, 32 Subscription duration, 31 Responses, 9 Shared Call Appearance, 14 SUBSCRIBE bodies Call-Info, 22 Line-Seize, 26 Remote Control Hold, 36 Remote Control Talk, 31 SUBSCRIBE requests, 11 Subscriber Generation of SUBSCRIBE Requests Call-Info, 22 Line-Seize, 27 Remote Control Hold, 37 Remote Control Talk, 32 Subscriber Processing of NOTIFY Requests Call-Info, 23 Line-Seize, 27 Remote Control Hold, 37 Remote Control Talk, 32 Subscription duration Call-Info, 22 Line-Seize, 26 Remote Control Hold, 36 Remote Control Talk, 31 Talk, remote control, BROADSOFT INC. PROPRIETARY AND CONFIDENTIAL; DO NOT DUPLICATE, OR DISTRIBUTE. PAGE 39 OF 39
Request for Comments: 4579. August 2006
Network Working Group Request for Comments: 4579 BCP: 119 Category: Best Current Practice A. Johnston Avaya O. Levin Microsoft Corporation August 2006 Status of This Memo Session Initiation Protocol (SIP)
Three-Way Calling using the Conferencing-URI
Three-Way Calling using the Conferencing-URI Introduction With the deployment of VoIP users expect to have the same functionality and features that are available with a landline phone service. This document
SIP: Protocol Overview
SIP: Protocol Overview NOTICE 2001 RADVISION Ltd. All intellectual property rights in this publication are owned by RADVISION Ltd. and are protected by United States copyright laws, other applicable copyright
TECHNICAL SUPPORT NOTE. 3-Way Call Conferencing with Broadsoft - TA900 Series
Page 1 of 6 TECHNICAL SUPPORT NOTE 3-Way Call Conferencing with Broadsoft - TA900 Series Introduction Three way calls are defined as having one active call and having the ability to add a third party into
Media Gateway Controller RTP
1 Softswitch Architecture Interdomain protocols Application Server Media Gateway Controller SIP, Parlay, Jain Application specific Application Server Media Gateway Controller Signaling Gateway Sigtran
Session Initiation Protocol
TECHNICAL OVERVIEW Session Initiation Protocol Author: James Wright, MSc This paper is a technical overview of the Session Initiation Protocol and is designed for IT professionals, managers, and architects
BROADWORKS SERVICE GUIDE
BROADWORKS SERVICE GUIDE RELEASE 13.0 Version 8 BroadWorks Guide Copyright Notice Trademarks Copyright 2006 BroadSoft, Inc. All rights reserved. Any technical documentation that is made available by BroadSoft,
Part II. Prof. Ai-Chun Pang Graduate Institute of Networking and Multimedia, Dept. of Comp. Sci. and Info. Engr., National Taiwan University
Session Initiation Protocol oco (SIP) Part II Prof. Ai-Chun Pang Graduate Institute of Networking and Multimedia, Dept. of Comp. Sci. and Info. Engr., National Taiwan University Email: [email protected]
SIP Access Device. Interoperability Test Report. Sonus SBC 1000, Sonus SBC 2000 Release 20.0 Document Version 1.2
SIP Access Device Interoperability Test Report Sonus SBC 1000, Sonus SBC 2000 Release 20.0 Document Version 1.2 9737 Washingtonian Boulevard, Suite 350 Gaithersburg, MD 20878 Tel +1 301.977.9440 WWW.BROADSOFT.COM
3GPP TS 24.605 V8.1.0 (2008-09)
TS 24.605 V8.1.0 (2008-09) Technical Specification 3rd Generation Partnership Project; Technical Specification Group Core Network and Terminals; Conference (CONF) using IP Multimedia (IM) Core Network
SIP Basics. CSG VoIP Workshop. Dennis Baron January 5, 2005. Dennis Baron, January 5, 2005 Page 1. np119
SIP Basics CSG VoIP Workshop Dennis Baron January 5, 2005 Page 1 Outline What is SIP SIP system components SIP messages and responses SIP call flows SDP basics/codecs SIP standards Questions and answers
SIP Trunking & Peering Operation Guide
SIP Trunking & Peering Operation Guide For Samsung OfficeServ May 07, 2008 doc v2.1.0 Sungwoo Lee Senior Engineer [email protected] OfficeServ Network Lab. Telecommunication Systems Division
Device Feature Key Synchronization
Device Feature Key Synchronization Feature Description Release 14.sp2 Document Version 1.2 DeviceFeatureKeySynchronizationFD ExtraView Number 36498 9737 Washingtonian Boulevard, Suite 350 Gaithersburg,
SIP Trunking. Service Guide. www.megapath.com. Learn More: Call us at 877.634.2728.
Service Guide Learn More: Call us at 877.634.2728. www.megapath.com What is MegaPath SIP Trunking? SIP Trunking enables your business to reduce costs and simplify IT management by combining voice and Internet
Session Initiation Protocol (SIP) 陳 懷 恩 博 士 助 理 教 授 兼 計 算 機 中 心 資 訊 網 路 組 組 長 國 立 宜 蘭 大 學 資 工 系 Email: [email protected] TEL: 03-9357400 # 340
Session Initiation Protocol (SIP) 陳 懷 恩 博 士 助 理 教 授 兼 計 算 機 中 心 資 訊 網 路 組 組 長 國 立 宜 蘭 大 學 資 工 系 Email: [email protected] TEL: 03-9357400 # 340 Outline Session Initiation Protocol SIP Extensions SIP Operation
BroadSoft Partner Configuration Guide
BroadSoft Partner Configuration Guide Grandstream GXW-400X FXS Analog Gateway & HandyTone HT-50X Analog Telephone Adapter April 2007 Document Version 1.1 BroadWorks Guide Copyright Notice Copyright 2007
AGILE SIP TRUNK IP-PBX Connection Manual (Asterisk)
AGILE SIP TRUNK IP-PBX Connection Manual (Asterisk) 1. Login to CID (Customer ID) Login https://manager.agile.ne.jp/login.php USERNAME Password 2. Go to SIP List of SIP TRUNK SIP SIP List Buy SIP Trunk
BroadSoft Partner Configuration Guide SIP Access Device Configuration Sonus Networks, Inc. SBC 1000 / SBC 2000
BroadSoft Partner Configuration Guide SIP Access Device Configuration Sonus Networks, Inc. SBC 1000 / SBC 2000 September 2014 Document Version 1.0 9737 Washingtonian Boulevard, Suite 350 Gaithersburg,
3.1 SESSION INITIATION PROTOCOL (SIP) OVERVIEW
3.1 SESSION INITIATION PROTOCOL (SIP) OVERVIEW SIP is an application layer protocol that is used for establishing, modifying and terminating multimedia sessions in an Internet Protocol (IP) network. SIP
For internal circulation of BSNL only
E1-E2 E2 CFA Session Initiation Protocol AGENDA Introduction to SIP Functions of SIP Components of SIP SIP Protocol Operation Basic SIP Operation Introduction to SIP SIP (Session Initiation Protocol) is
How To Send A Connection From A Proxy To A User Agent Server On A Web Browser On A Pc Or Mac Or Ipad (For A Mac) On A Network With A Webmail Web Browser (For Ipad) On An Ipad Or
About this Tutorial SIP is a signalling protocol designed to create, modify, and terminate a multimedia session over the Internet Protocol. It is an application layer protocol that incorporates many elements
Application Notes for Configuring SIP Trunking between McLeodUSA SIP Trunking Solution and an Avaya IP Office Telephony Solution 1.
Avaya Solution & Interoperability Test Lab Application Notes for Configuring SIP Trunking between McLeodUSA SIP Trunking Solution and an Avaya IP Office Telephony Solution 1.0 Abstract These Application
How To Configure. VoIP Survival. with. Broadsoft Remote Survival
How To Configure VoIP Survival with Broadsoft Remote Survival September, 2009 Ingate Systems Page: 1(6) Table of Content 1 Introduction...3 2 Network Setup...3 3 Configuration...3 3.1 Status...4 4 Log
Grandstream Networks, Inc. GXP2130/2140/2160 Auto-configuration Plug and Play
Grandstream Networks, Inc. GXP2130/2140/2160 Auto-configuration Plug and Play Introduction: This is a technical guide targeted to PBX developers that want to learn the different mechanisms that GXP2130/2140/2160
SIP Messages. 180 Ringing The UA receiving the INVITE is trying to alert the user. This response MAY be used to initiate local ringback.
SIP Messages 100 Trying This response indicates that the request has been received by the next-hop server and that some unspecified action is being taken on behalf of this call (for example, a database
NTP VoIP Platform: A SIP VoIP Platform and Its Services
NTP VoIP Platform: A SIP VoIP Platform and Its Services Speaker: Dr. Chai-Hien Gan National Chiao Tung University, Taiwan Email: [email protected] Date: 2006/05/02 1 Outline Introduction NTP VoIP
How To Understand The Purpose Of A Sip Aware Firewall/Alg (Sip) With An Alg (Sip) And An Algen (S Ip) (Alg) (Siph) (Network) (Ip) (Lib
NetVanta Unified Communications Technical Note The Purpose of a SIP-Aware Firewall/ALG Introduction This technical note will explore the purpose of a Session Initiation Protocol (SIP)-aware firewall/application
Assistant Enterprise. User Guide. www.lumosnetworks.com 3-27-08
Assistant Enterprise User Guide www.lumosnetworks.com 3-27-08 Assistant Enterprise (Toolbar) Guide Copyright Notice Trademarks Copyright 2007 BroadSoft, Inc. All rights reserved. Any technical documentation
Session Initiation Protocol (SIP)
SIP: Session Initiation Protocol Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.7 Ing. Salvatore D Antonio Università degli Studi di Napoli Federico II Facoltà di Ingegneria Session Initiation
Session Initiation Protocol (SIP) The Emerging System in IP Telephony
Session Initiation Protocol (SIP) The Emerging System in IP Telephony Introduction Session Initiation Protocol (SIP) is an application layer control protocol that can establish, modify and terminate multimedia
AV@ANZA Formación en Tecnologías Avanzadas
SISTEMAS DE SEÑALIZACION SIP I & II (@-SIP1&2) Contenido 1. Why SIP? Gain an understanding of why SIP is a valuable protocol despite competing technologies like ISDN, SS7, H.323, MEGACO, SGCP, MGCP, and
Session Initiation Protocol
C H A P T E R 4 Session Initiation Protocol The Session Initiation Protocol (SIP) is an Internet Engineering Task Force (IETF) standard call control protocol, based on research at Columbia University by
IP Office 4.2 SIP Trunking Configuration Guide AT&T Flexible Reach and AT&T Flexible Reach with Business in a Box (SM)
IP Office 4.2 SIP Trunking Configuration Guide AT&T Flexible Reach and AT&T Flexible Reach with Business in a Box (SM) Issue 1.0 (8 th October 2008) 2008 Avaya Inc. All Rights Reserved. Notice While reasonable
Voice over IP (SIP) Milan Milinković [email protected] 30.03.2007.
Voice over IP (SIP) Milan Milinković [email protected] 30.03.2007. Intoduction (1990s) a need for standard protocol which define how computers should connect to one another so they can share media and
Application Notes for IDT Net2Phone SIP Trunking Service with Avaya IP Office 8.1 - Issue 1.0
Avaya Solution & Interoperability Test Lab Application Notes for IDT Net2Phone SIP Trunking Service with Avaya IP Office 8.1 - Issue 1.0 Abstract These Application Notes describe the procedures for configuring
BroadSoft Partner Configuration Guide
BroadSoft Partner Configuration Guide Microsoft Lync 2010 SIP Trunking August 2012 Document Version 1.6 9737 Washingtonian Blvd Suite 350 Gaithersburg, MD USA 20878 Tel +1 301.977.9440 WWW.BROADSOFT.COM
Service Guide. Release 14.0 Document Version 5. 220 Perry Parkway Gaithersburg, MD USA 20877 Tel +1 301.977.9440 Fax +1 301.977.8846 WWW.BROADSOFT.
Service Guide Release 14.0 Document Version 5 220 Perry Parkway Gaithersburg, MD USA 20877 Tel +1 301.977.9440 Fax +1 301.977.8846 WWW.BROADSOFT.COM BroadWorks Guide Copyright Notice Trademarks Copyright
BROADSOFT PARTNER CONFIGURATION GUIDE VEGASTREAM VEGA 100
BROADSOFT PARTNER CONFIGURATION GUIDE VEGASTREAM VEGA 100 JULY 2005 Version 1.0 BroadWorks Guide Copyright Notice Copyright 2005 BroadSoft, Inc. All rights reserved. Any technical documentation that is
ETSI TS 124 238 V8.2.0 (2010-01) Technical Specification
TS 124 238 V8.2.0 (2010-01) Technical Specification Universal Mobile Telecommunications System (UMTS); LTE; Session Initiation Protocol (SIP) based user configuration; Stage 3 (3GPP TS 24.238 version 8.2.0
JJ-22.04. Technical Specification on Called Party Subaddress Information Interface between Private SIP Networks. First Edition
JJ-22.04 Technical Specification on Called Party Subaddress Information Interface between Private SIP Networks First Edition Established on August 27, 2007 THE TELECOMMUNICATION TECHNOLOGY COMMITTEE Introduction
SIP Session Initiation Protocol Nicolas Montavont [email protected]
SIP Session Initiation Protocol Nicolas Montavont [email protected] SIP Session Initiation Protocol Henning Schulzrinne Department of Computer Science Columbia University, New York,
NTP VoIP Platform: A SIP VoIP Platform and Its Services 1
NTP VoIP Platform: A SIP VoIP Platform and Its Services 1 Whai-En Chen, Chai-Hien Gan and Yi-Bing Lin Department of Computer Science National Chiao Tung University 1001 Ta Hsueh Road, Hsinchu, Taiwan,
Voice over IP & Other Multimedia Protocols. SIP: Session Initiation Protocol. IETF service vision. Advanced Networking
Advanced Networking Voice over IP & Other Multimedia Protocols Renato Lo Cigno SIP: Session Initiation Protocol Defined by IETF RFC 2543 (first release march 1999) many other RFCs... see IETF site and
IP-Telephony SIP & MEGACO
IP-Telephony SIP & MEGACO Bernard Hammer Siemens AG, Munich Siemens AG 2001 1 Presentation Outline Session Initiation Protocol Introduction Examples Media Gateway Decomposition Protocol 2 IETF Standard
SIP Essentials Training
SIP Essentials Training 5 Day Course Lecture & Labs COURSE DESCRIPTION Learn Session Initiation Protocol and important protocols related to SIP implementations. Thoroughly study the SIP protocol through
How To Configure Aastra Clearspan For Aastro (Turbos) And Bpb (Broadworks) On A Pc Or Macbook (Windows) On An Ipa (Windows Xp) On Pc Or Ipa/
BroadSoft Partner Configuration Guide Aastra Clearspan TM April 2011 Document Version 1.4 2811 Internet Blvd. Frisco, TX 75034, U.S.A Tel: 469-365-3237 Fax: 469-365-3071 WWW.AASTRA.COM BroadWorks Guide
Chapter 10 Session Initiation Protocol. Prof. Yuh-Shyan Chen Department of Computer Science and Information Engineering National Taipei University
Chapter 10 Session Initiation Protocol Prof. Yuh-Shyan Chen Department of Computer Science and Information Engineering National Taipei University Outline 12.1 An Overview of SIP 12.2 SIP-based GPRS Push
SIP ALG - Session Initiated Protocol Applications- Level Gateway
SIP ALG is a parameter that is generally enabled on most commercial router because it helps to resolve NAT related problems. However, this parameter can be very harmful and can actually stop SIP Trunks
IP Office Technical Tip
IP Office Technical Tip Tip no: 200 Release Date: January 23, 2008 Region: GLOBAL IP Office Session Initiation Protocol (SIP) Configuration Primer There are many Internet Telephony Service Providers (ITSP)
Avaya IP Office 8.1 Configuration Guide
Avaya IP Office 8.1 Configuration Guide Performed By tekvizion PVS, Inc. Contact: 214-242-5900 www.tekvizion.com Revision: 1.1 Date: 10/14/2013 Copyright 2013 by tekvizion PVS, Inc. All Rights Reserved.
SIP Introduction. Jan Janak
SIP Introduction Jan Janak SIP Introduction by Jan Janak Copyright 2003 FhG FOKUS A brief overview of SIP describing all important aspects of the Session Initiation Protocol. Table of Contents 1. SIP Introduction...
SIP Session Initiation Protocol
SIP Session Initiation Protocol Laurent Réveillère Enseirb Département Télécommunications [email protected] Session Initiation Protocol Raisin 2007 Overview This is a funny movie! I bet Laura would
Avaya IP Office 4.0 Customer Configuration Guide SIP Trunking Configuration For Use with Cbeyond s BeyondVoice with SIPconnect Service
Avaya IP Office 4.0 Customer Configuration Guide SIP Trunking Configuration For Use with Cbeyond s BeyondVoice with SIPconnect Service Issue 2.2 06/25/2007 Page 1 of 41 Table of contents 1 Introduction...8
Internet Engineering Task Force (IETF) Request for Comments: 7088 Category: Informational February 2014 ISSN: 2070-1721
Internet Engineering Task Force (IETF) D. Worley Request for Comments: 7088 Ariadne Category: Informational February 2014 ISSN: 2070-1721 Abstract Session Initiation Protocol Service Example -- Music on
NAT TCP SIP ALG Support
The feature allows embedded messages of the Session Initiation Protocol (SIP) passing through a device that is configured with Network Address Translation (NAT) to be translated and encoded back to the
Technical Manual 3CX Phone System for Windows
Technical Manual 3CX Phone System for Windows This technical manual is intended for those who wish to troubleshoot issues encountered with implementing 3CX Phone System. It is not intended to replace the
How to make free phone calls and influence people by the grugq
VoIPhreaking How to make free phone calls and influence people by the grugq Agenda Introduction VoIP Overview Security Conclusion Voice over IP (VoIP) Good News Other News Cheap phone calls Explosive growth
Telecommunication Services Engineering (TSE) Lab. Chapter V. SIP Technology For Value Added Services (VAS) in NGNs
Chapter V SIP Technology For Value Added Services (VAS) in NGNs http://users.encs.concordia.ca/~glitho/ Outline 1. SIP 2. SIP servlets 3. Examples of services that may be implemented with SIP technology
User Features. Hosted VoIP Services. Administrator Guide. Revision 1.2 GCI. Global House. 2 Crofton Close. Lincoln LN3 4NT. www.gcicom.
User Features Administrator Guide Revision 1.2 GCI Global House 2 Crofton Close Lincoln LN3 4NT www.gcicom.net Copyright GCI 2012 GCI VoIP User Features Guide v1.2.doc 1 of 143 Administrator Guide Copyright
SIP : Session Initiation Protocol
: Session Initiation Protocol EFORT http://www.efort.com (Session Initiation Protocol) as defined in IETF RFC 3261 is a multimedia signaling protocol used for multimedia session establishment, modification
BroadWorks Hosted Thin Call Center Agent/Supervisor
BroadWorks Hosted Thin Call Center Agent/Supervisor User Guide Release 17.sp2 Document Version 8 9737 Washingtonian Boulevard, Suite 350 Gaithersburg, MD 20878 Tel +1 301.977.9440 WWW.BROADSOFT.COM BroadWorks
MiVoice Integration for Salesforce
MiVoice Integration for Salesforce USER GUIDE MiVoice Integration for Salesforce User Guide, Version 1, April 2014. Part number 58014124 Mitel is a registered trademark of Mitel Networks Corporation. Salesforce
SIP Trunk 2 IP-PBX User Guide Asterisk. Ver1.0.0 2015/08/01 Ver1.0.3 2015/09/17 Ver1.0.4 2015/10/07 Ver1.0.5 2015/10/15 Ver1.0.
SIP Trunk 2 IP-PBX User Guide Asterisk Ver1.0.0 2015/08/01 Ver1.0.3 2015/09/17 Ver1.0.4 2015/10/07 Ver1.0.5 2015/10/15 Ver1.0.6 2015/10/23 Index 1. SIP Trunk 2 Overview 3 2. Purchase/Settings in Web Portal
AGILE SIP TRUNK IP- PBX Connection Manual (Asterisk, Trixbox)
AGILE SIP TRUNK IP- PBX Connection Manual (Asterisk, Trixbox) 1. SIP TRUNK SETTINGS 1.1. Login to CID (Customer ID): https://manager.agile.ne.jp/login.php USERNAME Password 1.2. On the left most column
BroadWorks Hosted Thin Call Center Agent/Supervisor
BroadWorks Hosted Thin Call Center Agent/Supervisor User Guide Release 19.0 Document Version 4 9737 Washingtonian Boulevard, Suite 350 Gaithersburg, MD 20878 Tel +1 301.977.9440 WWW.BROADSOFT.COM BroadWorks
Limitations on Monitored Lines
Limitations on Monitored Lines Version 1.0 April 7, 2014 1009 Pruitt Road The Woodlands, TX 77380 WWW.BROADSOFT.COM Table of Contents 1. MONITORING LINES... 1 2. HOW MONITORING WORKS... 1 3. SIP MESSAGE
SIP Security. ENUM-Tag am 28. September in Frankfurt. Prof. Dr. Andreas Steffen. Agenda. [email protected]
ENUM-Tag am 28. September in Frankfurt SIP Security Prof. Dr. Andreas Steffen [email protected] Andreas Steffen, 28.09.2004, ENUM_SIP.ppt 1 Agenda SIP The Session Initiation Protocol Securing the
MODELLING OF INTELLIGENCE IN INTERNET TELEPHONE SYSTEM
MODELLING OF INTELLIGENCE IN INTERNET TELEPHONE SYSTEM Evelina Nicolova Pencheva, Vessela Liubomirova Georgieva Department of telecommunications, Technical University of Sofia, 7 Kliment Ohridski St.,
SIP A Technology Deep Dive
SIP A Technology Deep Dive Anshu Prasad Product Line Manager, Mitel June 2010 Laith Zalzalah Director, Mitel NetSolutions What is SIP? Session Initiation Protocol (SIP) is a signaling protocol for establishing
<Brodsoft instrction>
Version: Release date: 2011-2014 Fanvil Co., Ltd. This document contains information that is proprietary to Fanvil Co., Ltd (Abbreviated
OpenSIPS For Asterisk Users
OpenSIPS For Asterisk Users Peter Kelly [email protected] Peter Kelly / [email protected] @p3k4y Who we are 3 Companies sitting on top of VoIP Network Localphone Retail ITSP offering (VoIP accounts, apps,
Corporate Telephony Toolbar User Guide
Corporate Telephony Toolbar User Guide 1 Table of Contents 1 Introduction...6 1.1 About Corporate Telephony Toolbar... 6 1.2 About This Guide... 6 1.3 Accessing The Toolbar... 6 1.4 First Time Login...
ETSI TS 124 390 V11.0.0 (2012-10)
TS 124 390 V11.0.0 (2012-10) Technical Specification Universal Mobile Telecommunications System (UMTS); LTE; Unstructured Supplementary Service Data (USSD) using IP Multimedia (IM) Core Network (CN) subsystem
SIP - QUICK GUIDE SESSION INITIATION PROTOCOL - INTRODUCTION
SIP - QUICK GUIDE http://www.tutorialspoint.com/session_initiation_protocol/session_initiation_protocol_quick_guide.htm SESSION INITIATION PROTOCOL - INTRODUCTION Copyright tutorialspoint.com Session Initiation
An outline of the security threats that face SIP based VoIP and other real-time applications
A Taxonomy of VoIP Security Threats An outline of the security threats that face SIP based VoIP and other real-time applications Peter Cox CTO Borderware Technologies Inc VoIP Security Threats VoIP Applications
Firewall Support for SIP
Firewall Support for SIP The Firewall Support for SIP feature integrates Cisco IOS firewalls, Voice over IP (VoIP) protocol, and Session Initiation Protocol (SIP) within a Cisco IOS-based platform, enabling
Business Communicator for Android
Business Communicator for Android Product Guide Release 9.3.0 Document Version 1 Copyright Notice Copyright 2012 BroadSoft, Inc. All rights reserved. Microsoft, MSN, Windows, and the Windows logo are registered
Session Initiation Protocol (SIP)
Il protocollo SIP Session Initiation Protocol (SIP) SIP is the IETF s standard for establishing VoIP connections It is an application layer control protocol for creating, modifying and terminating sessions
Conferencing Using the IP Multimedia (IM) Core Network (CN) Subsystem
GPP X.S00-0 Version.0 Version Date: May 00 Conferencing Using the IP Multimedia (IM) Core Network (CN) Subsystem Revision: 0 COPYRIGHT GPP and its Organizational Partners claim copyright in this document
ARCHITECTURES TO SUPPORT PSTN SIP VOIP INTERCONNECTION
ARCHITECTURES TO SUPPORT PSTN SIP VOIP INTERCONNECTION 10 April 2009 Gömbös Attila, Horváth Géza About SIP-to-PSTN connectivity 2 Providing a voice over IP solution that will scale to PSTN call volumes,
Multimedia & Protocols in the Internet - Introduction to SIP
Information and Communication Networks Multimedia & Protocols in the Internet - Introduction to Siemens AG 2004 Bernard Hammer Siemens AG, München Presentation Outline Basics architecture Syntax Call flows
PPreferredID = "P-Preferred-Identity" HCOLON PPreferredID-value. *(COMMA PPreferredID-value)
This guide provides some enhancements of calling and connected line identification presentation supported on Yealink IP phones. Yealink IP phones support to derive calling and connected line identification
Test Cases - IMS Profile for Voice and SMS
IMS Activity Group Test Cases - IMS Profile for Voice and SMS Version 1.0 29 December 2011 IMTC_Test_Cases IMTC IMS AG Page 1 of 34 History Version Date Name Reason 1.0 15-08-2011 Bo Jönsson Version 0.12
Technical Configuration Notes
MITEL SIP CoE Technical Configuration Notes Configure MCD for use with OpenIP SIP Trunking service SIP CoE 11-4940-00186 NOTICE The information contained in this document is believed to be accurate in
This specification this document to get an official version of this User Network Interface Specification
This specification describes the situation of the Proximus network and services. It will be subject to modifications for corrections or when the network or the services will be modified. Please take into
SIP and ENUM. Overview. 2005-03-01 ENUM-Tag @ DENIC. Introduction to SIP. Addresses and Address Resolution in SIP ENUM & SIP
and ENUM 2005-03-01 ENUM-Tag @ DENIC Jörg Ott 2005 Jörg Ott 1 Overview Introduction to Addresses and Address Resolution in ENUM & Peer-to-Peer for Telephony Conclusion 2005 Jörg Ott
Configuring SIP Registration Proxy on Cisco UBE
The Support for SIP Registration Proxy on Cisco UBE feature provides support for sending outbound registrations from Cisco Unified Border Element (UBE) based on incoming registrations. This feature enables
NAT Traversal in SIP. Baruch Sterman, Ph.D. Chief Scientist [email protected]. David Schwartz Director, Telephony Research davids@deltathree.
Baruch Sterman, Ph.D. Chief Scientist [email protected] David Schwartz Director, Telephony Research [email protected] Table of Contents 2 3 Background Types of Full Cone Restricted Cone Port Restricted
SIP for Voice, Video and Instant Messaging
James Polk 20050503 SIP for Voice, Video and Instant Messaging James Polk 20050503 Faisal Chaudhry [email protected] Technical Leader Cisco Advanced Services Cisco Systems, Inc. All rights reserved. 1
Asterisk 10 Digium Partner Certification Interoperability Report ESCENE SayHi IP Phone
Asterisk 10 Digium Partner Certification Interoperability Report ESCENE SayHi IP Phone Digium, Inc. 445 Jan Davis Drive NW Huntsville, AL 35806 United States Main Number: 1.256.428.6000 Tech Support: 1.256.428.6161
MITEL SIP CoE. Technical. Configuration Notes. Configure the Mitel 3300 MCD 4.1 for use with Paetec Broadworks Softswitch. SIP CoE 08-4940-00035
MITEL SIP CoE Technical Configuration Notes Configure the Mitel 3300 MCD 4.1 for use with Broadworks Softswitch SIP CoE 08-4940-00035 NOTICE The information contained in this document is believed to be
Technical Communication 1201 Norphonic emergency rugged telephone on Alcatel-Lucent OmniPCX Enterprise
Technical Communication 1201 Norphonic emergency rugged telephone on Alcatel-Lucent OmniPCX Enterprise This document describes configuration procedure for your Alcatel-Lucent OmniPCX Enterprise PBX in
BroadTouch Business Communicator for Desktop
BroadTouch Business Communicator for Desktop User Guide Release 10.0.2 Document Version 1 9737 Washingtonian Boulevard, Suite 350 Gaithersburg, MD 20878 Tel +1 301.977.9440 WWW.BROADSOFT.COM BroadTouch
The VoIP Vulnerability Scanner
SiVuS (SiP Vulnerability Scanner) The VoIP Vulnerability Scanner User Guide v1.07 www.vopsecurity.org Contents 1 INTRODUCTION... 3 2 SIVUS FEATURES AND FUNCTIONALITY... 4 3 INSTALLATION... 5 4 OPERATION...
VoIP. What s Voice over IP?
VoIP What s Voice over IP? Transmission of voice using IP Analog speech digitized and transmitted as IP packets Packets transmitted on top of existing networks Voice connection is now packet switched as
3CX Application Partner Program Inter-Working Report
3CX Application Partner Program Inter-Working Report Partner:ESCENE IP Phones Application Type: Escene SIP Phones Application Name:Models US102N,ES220N,ES290N\292N,ES320N,ES330N,ES410,ES620 3CX Platform:
SIP Trunking Manual. For Samsung OfficeServ. Sep 18, 2006 doc v.1.0.2. Sungwoo Lee Senior Engineer
SIP Trunking Manual For Samsung OfficeServ Sep 18, 2006 doc v.1.0.2 Sungwoo Lee Senior Engineer [email protected] OfficeServ Network Lab. Telecommunication Systems Division Samsung Electronics
