SIPPING Working Group A. Johnston Internet Draft WorldCom Document: [-draft-ietf-sipping-pstn-call-flows-01.txt-] {+draft-ietf-sipping-pstn-call-flows-02.txt+} S. Donovan Expires: [-April-] {+October+} 2003 R. Sparks C. Cunningham dynamicsoft K. Summers Sonus [-November 2002-] {+April 2003+} Session Initiation Protocol PSTN Call Flows Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract This document contains best current practice examples of Session Initiation Protocol (SIP) call flows showing interworking with the Public Switched Telephone Network (PSTN). Elements in these call flows include SIP User Agents, SIP Proxy Servers, and PSTN Gateways. Scenarios include SIP to PSTN, PSTN to SIP, and PSTN to PSTN via SIP. PSTN telephony protocols are illustrated using ISDN (Integrated Services Digital Network), ISUP (ISDN User Part), and FGB (Feature Group B) circuit associated signaling. PSTN calls are illustrated using global telephone numbers from the PSTN and private extensions served on by a PBX (Private Branch Exchange). Call flow diagrams and message details are shown. Johnston et al Expires - [-May-] {+October+} 2003 [Page 1] SIP PSTN Call Flows [-November 2002-] {+April 2003+} Conventions used in this document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC-2119 [1]. Table of Contents 1. Overview.......................................................2 1.1 General Assumptions........................................3 1.2 Legend for Message Flows...................................4 1.3 SIP Protocol Assumptions...................................5 2. SIP to PSTN Dialing............................................6 2.1 Successful SIP to ISUP PSTN call...........................7 2.2 Successful SIP to ISDN PBX call...........................15 2.3 Successful SIP to ISUP PSTN call with overflow............23 2.4 {+Session established using ENUM Query......................32 2.5+} Unsuccessful SIP to PSTN call: Treatment from [-PSTN........32 2.5-] {+PSTN........38 2.6+} Unsuccessful SIP to PSTN: REL w/Cause from [-PSTN...........39 2.6-] {+PSTN...........45 2.7+} Unsuccessful SIP to PSTN: ANM [-Timeout.....................44-] {+Timeout.....................50+} 3. PSTN to SIP [-Dialing...........................................50-] {+Dialing...........................................56+} 3.1 Successful PSTN to SIP [-call...............................51-] {+call...............................57+} 3.2 Successful PSTN to SIP call, Fast [-Answer..................58-] {+Answer..................64+} 3.3 Successful PBX to SIP [-call................................64-] {+call................................70+} 3.4 Unsuccessful PSTN to SIP REL, SIP error mapped to [-REL.....71-] {+REL.....77+} 3.5 Unsuccessful PSTN to SIP REL, SIP busy mapped to [-REL......73-] {+REL......79+} 3.6 Unsuccessful PSTN->SIP, SIP error interworking to [-tones...77-] {+tones...83+} 3.7 Unsuccessful PSTN->SIP, ACM [-timeout.......................81-] {+timeout.......................87+} 3.8 Unsuccessful PSTN->SIP, ACM timeout, stateless [-Proxy......85-] {+Proxy......91+} 3.9 Unsuccessful PSTN->SIP, Caller [-Abandonment................89-] {+Abandonment................95+} 4. PSTN to PSTN Dialing via SIP [-Network..........................95-] {+Network.........................101+} 4.1 Successful ISUP PSTN to ISUP PSTN [-call....................96-] {+call...................102+} 4.2 Successful FGB PBX to ISDN PBX call with [-overflow........104-] {+overflow........110+} Security [-Considerations.........................................112-] {+Considerations.........................................118+} Normative [-References............................................114-] {+References............................................120+} Informative [-References..........................................114 Acknowledgments.................................................115-] {+References..........................................120 Acknowledgments.................................................121+} Author's [-Addresses..............................................115-] {+Addresses..............................................121+} 1. Overview The call flows shown in this document were developed in the design of a SIP IP communications network. They represent an example minimum set of functionality. It is the hope of the authors that this document will be useful for SIP [-implementors,-] {+implementers,+} designers, and protocol researchers alike and will help further the goal of a standard implementation of RFC 3261 [2]. These flows represent carefully checked and working group reviewed Johnston et al Expires - [-May-] {+October+} 2002 [Page 2] SIP PSTN Call Flows [-November 2002-] {+April 2003+} scenarios of the most common SIP/PSTN interworking examples as a companion to the specifications. These call flows are based on the current version 2.0 of SIP in RFC 3261 [2] with SDP usage described in RFC 3264 [3]. Other RFCs also comprise the SIP standard but are not used in this set of basic call flows. The SIP/ISUP mapping is based on RFC zzzz [4]. Various PSTN signaling protocols are illustrated in this document: ISDN (Integrated Services Digital Network), ISUP (ISDN User Part) and FGB (Feature Group B) circuit associated signaling. This document shows mainly ANSI ISUP due to its practical origins. However, as used in this document, the usage is virtually identical to the ITU-T International ISUP used as the reference in [4]. Basic SIP call flow examples are contained in a companion document, RFC yyyy [-[10].-] {+[11].+} 1.1 General Assumptions A number of architecture, network, and protocol assumptions underlie the call flows in this document. Note that these assumptions are not requirements. They are outlined in this section so that they may be taken into consideration and to aid in the understanding of the call flow examples. The authentication of SIP User Agents in these example call flows is performed using SIP Digest as defined in [3] and [5]. Some Proxy Servers in these call flows insert Record-Route headers into requests to ensure that they are in the signaling path for future message exchanges. These flows show TLS, TCP, and UDP for transport. SCTP [6] could also be used. See the discussion in RFC 3261 [2] for details on the transport issues for SIP. The SIP Proxy Server has access to a Location Service and other databases. Information present in the Request-URI and the context (From header) is sufficient to determine to which proxy or gateway the message should be routed. In most cases, a primary and secondary route will be determined in case of Proxy or Gateway failure downstream. Gateways provide tones (ringing, busy, etc) and announcements to the PSTN side based on SIP response messages, or pass along audio in-band tones (ringing, busy tone, etc.) in an early media stream to the SIP side. Johnston et al Expires - [-May-] {+October+} 2002 [Page 3] SIP PSTN Call Flows [-November 2002-] {+April 2003+} The interactions between the Proxy and Gateway can be summarized as follows: . The SIP Proxy Server performs digit analysis and lookup and locates the correct gateway. . The SIP Proxy Server performs gateway location based on primary and secondary routing. Telephone numbers are usually represented as SIP URIs. Note that an alternative is the use of the tel URI [7]. This document shows typical examples of SIP/ISUP interworking. Although in the spirit of the SIP-T framework [8], these examples do not represent a complete implementation of the framework. The examples here represent more of a minimal set of examples for very basic SIP to ISUP interworking, rather than the more complex goal of ISUP transparency. In particular, there are NO examples of encapsulated ISUP in this document. If present, these messages would show S/MIME encryption due to the sensitive nature of this information, as discussed in the SIP-T Framework security considerations section. (Note - RFC 3204 [9] contains an example of an INVITE with encapsulated ISUP.) See the Security Considerations section for a more detailed discussion on the security of these call flows. In ISUP, the Calling Party Number is abbreviated as CgPN and the Called Party Number is abbreviated as CdPN. Other abbreviations include Numbering Plan Indicator (NPI) and Nature of Address (NOA). 1.2 Legend for Message Flows Dashed lines (---) represent signaling messages that are mandatory to the call scenario. These messages can be SIP or PSTN signaling. The arrow indicates the direction of message flow. Double dashed lines (===) represent media paths between network elements. Messages with parentheses around their name represent optional messages. Messages are identified in the Figures as F1, F2, etc. This references the message details in the list that follows the Figure. Comments in the message details are shown in the following form: /* Comments. */ Johnston et al Expires - [-May-] {+October+} 2002 [Page 4] SIP PSTN Call Flows [-November 2002-] {+April 2003+} 1.3 SIP Protocol Assumptions This document [-is informational only and is NOT NORMATIVE in any sense, in that it-] does not prescribe the flows [-that-] {+precisely as they+} are shown, [-indeed they MUST NOT-] {+but rather the flows illustrate the principles for best practice. They are best practices usages (orderings, syntax, selection of features for the purpose, handling of error) of SIP methods, headers and parameters. IMPORTANT: The exact flows here must not+} be copied {+as is by an implementer+} due to {+specific incorrect characteristics that were introduced into+} the [-reasons described in the next paragraph. On-] {+document for convenience and are listed below. To sum up,+} the [-other hand, these-] SIP/PSTN call flows represent well-reviewed examples of [-SIP/PSTN interworking usage that-] {+SIP usage, which+} are best common practice according to [-community-] {+IETF+} consensus. For simplicity in reading and editing the document, there are a number of differences between some of the examples and actual SIP messages. For example, the SIP Digest responses are not actual MD5 encodings. Call-IDs are often repeated, and CSeq counts often begin at 1. Header fields are usually shown in the same order. Usually only the minimum required header field set is shown, others that would normally be present such as Accept, Supported, Allow, etc are not shown. Actors: Element Display Name URI IP Address ------- ------------ --- ---------- User Agent Alice [-sip:alice@atlanta.com-] {+sip:alice@a.example.com+} 192.0.2.101 User Agent Bob [-sip:bob@biloxi.com-] {+sip:bob@b.example.com+} 192.0.2.200 Proxy Server [-sip:ss1.atlanta.com-] {+sip:ss1.a.example.com+} 192.0.2.111 User Agent (Gateway) [-sip:gw1.atlanta.com-] {+sip:gw1.a.example.com+} 192.0.2.201 User Agent (Gateway) [-sip:gw2.atlanta.com-] {+sip:gw2.a.example.com+} 192.0.2.202 User Agent (Gateway) [-sip:gw3.atlanta.com-] {+sip:gw3.a.example.com+} 192.0.2.203 User Agent (Gateway) [-sip:ngw1.atlanta.com-] {+sip:ngw1.a.example.com+} 192.0.2.103 User Agent (Gateway) [-sip:ngw2.atlanta.com-] {+sip:ngw2.a.example.com+} 192.0.2.102 Note that NGW 1 and NGW 2 also have a device URIs (Contacts) of [-sip:ngw1@atlanta.com-] {+sip:ngw1@a.example.com+} and [-sip:ngw2@atlanta.com-] {+sip:ngw2@a.example.com+} which resolves to the Proxy Server sip:ss1.wcom.com using DNS SRV records. Johnston et al Expires - [-May-] {+October+} 2002 [Page 5] SIP PSTN Call Flows [-November 2002-] {+April 2003+} 2. SIP to PSTN Dialing In the following scenarios, Alice (Alice [-sip:alice@atlanta.com)-] {+sip:alice@a.example.com)+} is a SIP phone or other SIP-enabled device. Bob is reachable via the PSTN at global telephone number +19725552222. Alice places a call to Bob through a Proxy Server Proxy 1 and a Network Gateway. In other scenarios, Alice places calls to Carol, who is served via a PBX (Private Branch Exchange) and is identified by a private extension 444-3333, or global number +1-918-555-3333. Note that User A uses his/her global telephone number +1-314-555-1111 in the From header in the INVITE messages. This then gives the Gateway the option of using this header to populate the calling party identification field in subsequent signaling. Left open is the issue of how the Gateway can determine the accuracy of the telephone number, necessary before passing it as a valid calling party number in the PSTN. In these scenarios, Alice is a SIP phone or other SIP-enabled device. Alice places a call to Bob in the PSTN or Carol on a PBX through a Proxy Server and a Gateway. In the failure scenarios, the call does not complete. In some cases, however, a media stream is still setup. This is due to the fact that some failures in dialing to the PSTN result in in-band tones (busy, reorder tones or announcements - "The number you have dialed has changed. The new number is..."). The 183 Session Progress response containing SDP media information is used to setup this early media path so that the caller Alice knows the final disposition of the call. The media stream is either terminated by the caller after the tone or announcement has been heard and understood, or by the Gateway after a timer expires. In other failure scenarios, a SS7 Release with Cause Code is mapped to a SIP response. In these scenarios, the early media path is not used, but the actual failure code is conveyed to the caller by the SIP User Agent Client. Johnston et al Expires - [-May-] {+October+} 2002 [Page 6] SIP PSTN Call Flows [-November 2002-] {+April 2003+} 2.1 Successful SIP to ISUP PSTN call Alice Proxy 1 NGW 1 Switch B | | | | | INVITE F1 | | | |--------------->| | | | 100 F2 | | | |<---------------| INVITE F3 | | | |--------------->| | | | 100 F4 | | | |<---------------| IAM F5 | | | |--------------->| | | | ACM F6 | | | 183 F7 |<---------------| | 183 F8 |<---------------| | |<---------------| | | | Both Way RTP Media | One Way Voice | |<===============================>|<===============| | | | ANM F9 | | | 200 F10 |<---------------| | 200 F11 |<---------------| | |<---------------| | | | ACK F12 | | | |--------------->| ACK F13 | | | |--------------->| | | Both Way RTP Media | Both Way Voice | |<===============================>|<==============>| | BYE F14 | | | |--------------->| BYE F15 | | | |--------------->| | | | 200 F16 | | | 200 F17 |<---------------| REL F18 | |<---------------| |--------------->| | | | RLC F19 | | | |<---------------| | | | | Alice dials the globalized E.164 number +19725552222 to reach Bob. Note that A might have only dialed the last 7 digits, or some other dialing plan. It is assumed that the SIP User Agent Client converts the digits into a global number and puts them into a SIP URI. Note that tel URIs could be used instead of SIP URIs. Alice could use either their SIP address [-(sip:alice@atlanta.com)-] {+(sip:alice@a.example.com)+} or SIP telephone number [-(sip:+13145551111@ss1.atlanta.com;user=phone)-] {+(sip:+13145551111@ss1.a.example.com;user=phone)+} in the From header. In this example, the telephone number is included, and it is shown as being passed as calling party [-identification-] Johnston et al Expires - [-May-] {+October+} 2002 [Page 7] SIP PSTN Call Flows [-November 2002-] {+April 2003 identification+} through the Network Gateway (NGW 1) to Bob (F5). Note that for this number to be passed into the SS7 network, it would have to be somehow verified for accuracy. In this scenario, Bob answers the call then Alice disconnects the call. Signaling between NGW 1 and Bob's telephone switch is ANSI ISUP. For the details of SIP to ISUP mapping, refer to [4]. In this flow, notice that the Contact returned by NGW 1 in messages F7-11 is [-sip:ngw1@atlanta.com.-] {+sip:ngw1@a.example.com.+} This is because NGW 1 only accepts SIP messages that come through Proxy 1 - any direct signaling will be ignored. Since this Contact URI may be used outside of this dialog and must be routable (Section 8.1.1.8 in RFC 3261 [2]) the Contact URI for NGW 1 must resolve to Proxy 1. This Contact URI is an AOR which resolves via DNS to Proxy 1 [-(sip:ss1.atlanta.com)-] {+(sip:ss1.a.example.com)+} which then resolves it to [-sip:ngw1.atlanta.com-] {+sip:ngw1.a.example.com+} which is the address of NGW 1. This flow shows TCP transport. Message Details F1 INVITE Alice -> Proxy 1 INVITE [-sip:+19725552222@ss1.atlanta.com;user=phone-] {+sip:+19725552222@ss1.a.example.com;user=phone+} SIP/2.0 Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} Max-Forwards: 70 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Proxy-Authorization: Digest username="alice", [-realm="atlanta.com",-] {+realm="a.example.com",+} nonce="dc3a5ab25302aa931904ba7d88fa1cf5", opaque="", [-uri="sip:+19725552222@ss1.atlanta.com;user=phone",-] {+uri="sip:+19725552222@ss1.a.example.com;user=phone",+} response="ccdca50cb091d587421457305d097458c" Content-Type: application/sdp Content-Length: [-150-] {+154+} v=0 o=alice 2890844526 2890844526 IN IP4 [-client.atlanta.com-] {+client.a.example.com+} s=- c=IN IP4 [-client.atlanta.com-] {+client.a.example.com+} t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Johnston et al Expires - [-May-] {+October+} 2002 [Page 8] SIP PSTN Call Flows [-November 2002-] {+April 2003+} F2 100 Trying Proxy 1 -> Alice SIP/2.0 100 Trying Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Content-Length: 0 /* Proxy 1 uses a Location Service function to determine the gateway for terminating this call. The call is forwarded to NGW 1. Client for A prepares to receive data on port 49172 from the network.*/ F3 INVITE Proxy 1 -> NGW 1 INVITE [-sip:+19725552222@ngw1.atlanta.com;user=phone-] {+sip:+19725552222@ngw1.a.example.com;user=phone+} SIP/2.0 Via: SIP/2.0/TCP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Max-Forwards: 69 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-150-] {+154+} v=0 o=alice 2890844526 2890844526 IN IP4 [-client.atlanta.com-] {+client.a.example.com+} s=- c=IN IP4 [-client.atlanta.com-] {+client.a.example.com+} t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 100 Trying NGW 1 -> Proxy 1 SIP/2.0 100 Trying Via: SIP/2.0/TCP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} Johnston et al Expires - [-May-] {+October+} 2002 [Page 9] SIP PSTN Call Flows [-November 2002-] {+April 2003+} ;received=192.0.2.111 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Content-Length: 0 F5 IAM NGW 1 -> Bob IAM CdPN=972-555-2222,NPI=E.164,NOA=National CgPN=314-555-1111,NPI=E.164,NOA=National F6 ACM Bob -> NGW 1 ACM F7 183 Session Progress NGW 1 -> Proxy 1 SIP/2.0 183 Session Progress Via: SIP/2.0/TCP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} ;received=192.0.2.111 Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-142-] {+146+} v=0 o=GW 2890844527 2890844527 IN IP4 [-ngw1.atlanta.com-] {+ngw1.a.example.com+} s=- c=IN IP4 [-ngw1.atlanta.com-] {+ngw1.a.example.com+} t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* NGW 1 sends PSTN audio (ringing) in the RTP path to A */ Johnston et al Expires - [-May-] {+October+} 2002 [Page 10] SIP PSTN Call Flows [-November 2002-] {+April 2003+} F8 183 Session Progress Proxy 1 -> Alice SIP/2.0 183 Session Progress Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-142-] {+146+} v=0 o=GW 2890844527 2890844527 IN IP4 [-ngw1.atlanta.com-] {+ngw1.a.example.com+} s=- c=IN IP4 [-ngw1.atlanta.com-] {+ngw1.a.example.com+} t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F9 ANM Bob -> NGW 1 ANM F10 200 OK NGW 1 -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/TCP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} ;received=192.0.2.111 Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-142-] {+146+} Johnston et al Expires - [-May-] {+October+} 2002 [Page 11] SIP PSTN Call Flows [-November 2002-] {+April 2003+} v=0 o=GW 2890844527 2890844527 IN IP4 [-ngw1.atlanta.com-] {+ngw1.a.example.com+} s=- c=IN IP4 [-gw1.atlanta.com-] {+gw1.a.example.com+} t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F11 200 OK Proxy 1 -> Alice SIP/2.0 200 OK Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-142-] {+146+} v=0 o=GW 2890844527 2890844527 IN IP4 [-ngw1.atlanta.com-] {+ngw1.a.example.com+} s=- c=IN IP4 [-ngw1.atlanta.com-] {+ngw1.a.example.com+} t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F12 ACK Alice -> Proxy 1 ACK [-sip:ngw1@atlanta.com-] {+sip:ngw1@a.example.com+} SIP/2.0 Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} Max-Forwards: 70 Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 ACK Content-Length: 0 Johnston et al Expires - [-May-] {+October+} 2002 [Page 12] SIP PSTN Call Flows [-November 2002-] {+April 2003+} F13 ACK Proxy 1 -> NGW 1 ACK [-sip:ngw1@atlanta.com-] {+sip:ngw1@a.example.com+} SIP/2.0 Via: SIP/2.0/TCP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Max-Forwards: 69 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 ACK Content-Length: 0 /* Alice Hangs Up with Bob. */ F14 BYE Alice -> Proxy 1 BYE [-sip:ngw1@atlanta.com-] {+sip:ngw1@a.example.com+} SIP/2.0 Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} Max-Forwards: 70 Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 2 BYE Content-Length: 0 F15 BYE Proxy 1 -> NGW 1 BYE [-sip:ngw1@atlanta.com-] {+sip:ngw1@a.example.com+} SIP/2.0 Via: SIP/2.0/TCP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Max-Forwards: 69 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 2 BYE Content-Length: 0 Johnston et al Expires - [-May-] {+October+} 2002 [Page 13] SIP PSTN Call Flows [-November 2002-] {+April 2003+} F16 200 OK NGW 1 -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/TCP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} ;received=192.0.2.111 Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 2 BYE Content-Length: 0 F17 200 OK Proxy 1 -> A SIP/2.0 200 OK Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 2 BYE Content-Length: 0 F18 REL NGW 1 -> B REL CauseCode=16 Normal F19 RLC B -> NGW 1 RLC Johnston et al Expires - [-May-] {+October+} 2002 [Page 14] SIP PSTN Call Flows [-November 2002-] {+April 2003+} 2.2 Successful SIP to ISDN PBX call Alice Proxy 1 GW 1 PBX C | | | | | INVITE F1 | | | |--------------->| | | | 100 F2 | | | |<---------------| INVITE F3 | | | |--------------->| | | | 100 F4 | | | |<---------------| SETUP F5 | | | |--------------->| | | | CALL PROC F6 | | | |<---------------| | | | PROGress F7 | | | 180 F8 |<---------------| | 180 F9 |<---------------| | |<---------------| | | | | | One Way Voice | | | |<===============| | | | CONNect F10 | | | |<---------------| | | | CONNect ACK F11| | | 200 F12 |--------------->| | 200 F13 |<---------------| | |<---------------| | | | ACK F14 | | | |--------------->| ACK F15 | | | |--------------->| | | Both Way RTP Media | Both Way Voice | |<===============================>|<==============>| | BYE F16 | | | |--------------->| BYE F17 | | | |--------------->| | | | 200 F18 | | | 200 F19 |<---------------| DISConnect F20 | |<---------------| |--------------->| | | | RELease F21 | | | |<---------------| | | | RELease COM F22| | | |--------------->| | | | | Alice is a SIP device while Carol is connected via a Gateway (GW 1) to a PBX. The PBX connection is via a ISDN trunk group. Alice dials Carol's telephone number (918-555-3333) which is globalized and put into a SIP URI. The host portion of the Request-URI in the INVITE F3 is used to Johnston et al Expires - [-May-] {+October+} 2002 [Page 15] SIP PSTN Call Flows [-November 2002-] {+April 2003+} identify the context (customer, trunk group, or line) in which the private number 444-3333 is valid. Otherwise, this INVITE message could get forwarded by GW 1 and the context of the digits could become lost and the call unroutable. Proxy 1 looks up the telephone number and locates the gateway that serves Carol. Carolis identified by its extension (444-3333) in the Request-URI sent to GW 1. Note that the Contact URI for GW1 as used in messages F8, F9, F12, and F13 is [-sips:4443333@gw1.atlanta.com-] {+sips:4443333@gw1.a.example.com+} which does resolve directly to the gateway. This flow shows the use of Secure SIP (sips) URIs. Message Details F1 INVITE Alice -> Proxy 1 INVITE [-sips:+19185553333@ss1.atlanta.com;user=phone-] {+sips:+19185553333@ss1.a.example.com;user=phone+} SIP/2.0 Via: SIP/2.0/TLS [-client.atlanta.com:5061;branch=z9hG4bK74bf9-] {+client.a.example.com:5061;branch=z9hG4bK74bf9+} Max-Forwards: 70 From: Alice [--] {++} ;tag=9fxced76sl To: Carol [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 2 INVITE Contact: [--] {++} Proxy-Authorization: Digest username="alice", [-realm="atlanta.com",-] {+realm="a.example.com",+} nonce="qo0dc3a5ab22aa931904badfa1cf5j9h", opaque="", [-uri="sips:+19185553333@ss1.atlanta.com;user=phone",-] {+uri="sips:+19185553333@ss1.a.example.com;user=phone",+} response="6c792f5c9fa360358b93c7fb826bf550" Content-Type: application/sdp Content-Length: [-150-] {+154+} v=0 o=alice 2890844526 2890844526 IN IP4 [-client.atlanta.com-] {+client.a.example.com+} s=- c=IN IP4 [-client.atlanta.com-] {+client.a.example.com+} t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 100 Trying Proxy 1 -> Alice SIP/2.0 100 Trying Johnston et al Expires - [-May-] {+October+} 2002 [Page 16] SIP PSTN Call Flows [-November 2002-] {+April 2003+} Via: SIP/2.0/TLS [-client.atlanta.com:5061;branch=z9hG4bK74bf9-] {+client.a.example.com:5061;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Carol [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 2 INVITE Content-Length: 0 F3 INVITE Proxy 1 -> GW 1 INVITE [-sips:4443333@gw1.atlanta.com-] {+sips:4443333@gw1.a.example.com+} SIP/2.0 Via: SIP/2.0/TLS [-ss1.atlanta.com:5061;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5061;branch=z9hG4bK2d4790.1+} Via: SIP/2.0/TLS [-client.atlanta.com:5061;branch=z9hG4bK74bf9-] {+client.a.example.com:5061;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Max-Forwards: 69 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Carol [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 2 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-150-] {+154+} v=0 o=alice 2890844526 2890844526 IN IP4 [-client.atlanta.com-] {+client.a.example.com+} s=- c=IN IP4 [-client.atlanta.com-] {+client.a.example.com+} t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 100 Trying GW -> Proxy 1 SIP/2.0 100 Trying Via: SIP/2.0/TLS [-ss1.atlanta.com:5061;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5061;branch=z9hG4bK2d4790.1+} ;received=192.0.2.111 From: Alice [--] {++} ;tag=9fxced76sl To: Carol [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 2 INVITE Content-Length: 0 Johnston et al Expires - [-May-] {+October+} 2002 [Page 17] SIP PSTN Call Flows [-November 2002-] {+April 2003+} F5 SETUP GW 1 -> Carol Protocol discriminator=Q.931 Message type=SETUP Bearer capability: Information transfer capability=0 (Speech) or 16 (3.1 kHz audio) Channel identification=Preferred or exclusive B-channel Progress indicator=1 (Call is not end-to-end ISDN;further call progress information may be available inband) Called party number: Type of number unknown Digits=444-3333 F6 CALL PROCeeding Carol-> GW 1 Protocol discriminator=Q.931 Message type=CALL PROC Channel identification=Exclusive B-channel F7 PROGress Carol-> GW 1 Protocol discriminator=Q.931 Message type=PROG Progress indicator=1 (Call is not end-to-end ISDN;further call progress information may be available inband) F8 180 Ringing GW 1 -> Proxy 1 SIP/2.0 180 Ringing Via: SIP/2.0/TLS [-ss1.atlanta.com:5061;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5061;branch=z9hG4bK2d4790.1+} ;received=192.0.2.111 Via: SIP/2.0/TLS [-client.atlanta.com:5061;branch=z9hG4bK74bf9-] {+client.a.example.com:5061;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Carol [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 2 INVITE Contact: [--] {++} Content-Length: 0 F9 180 Ringing Proxy 1 -> Alice Johnston et al Expires - [-May-] {+October+} 2002 [Page 18] SIP PSTN Call Flows [-November 2002-] {+April 2003+} SIP/2.0 180 Ringing Via: SIP/2.0/TLS [-client.atlanta.com:5061;branch=z9hG4bK74bf9-] {+client.a.example.com:5061;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Carol [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 2 INVITE Contact: [--] {++} Content-Length: 0 F10 CONNect Carol-> GW 1 Protocol discriminator=Q.931 Message type=CONN F11 CONNect ACK GW 1 -> Carol Protocol discriminator=Q.931 Message type=CONN ACK F12 200 OK GW 1 -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/TLS [-ss1.atlanta.com:5061;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5061;branch=z9hG4bK2d4790.1+} ;received=192.0.2.111 Via: SIP/2.0/TLS [-client.atlanta.com:5061;branch=z9hG4bK74bf9-] {+client.a.example.com:5061;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Carol [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 2 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-140-] {+144+} v=0 o=GW 2890844527 2890844527 IN IP4 [-gw1.atlanta.com-] {+gw1.a.example.com+} s=- c=IN IP4 [-gw1.atlanta.com-] {+gw1.a.example.com+} t=0 0 Johnston et al Expires - [-May-] {+October+} 2002 [Page 19] SIP PSTN Call Flows [-November 2002-] {+April 2003+} m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F13 200 OK Proxy 1 -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS [-client.atlanta.com:5061;branch=z9hG4bK74bf9-] {+client.a.example.com:5061;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Carol [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 2 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-140-] {+144+} v=0 o=GW 2890844527 2890844527 IN IP4 [-gw1.atlanta.com-] {+gw1.a.example.com+} s=- c=IN IP4 [-gw1.atlanta.com-] {+gw1.a.example.com+} t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F14 ACK Alice -> Proxy 1 ACK [-sips:4443333@gw1.atlanta.com-] {+sips:4443333@gw1.a.example.com+} SIP/2.0 Via: SIP/2.0/TLS [-client.atlanta.com:5061;branch=z9hG4bK74bf9-] {+client.a.example.com:5061;branch=z9hG4bK74bf9+} Max-Forwards: 70 Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Carol [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 2 ACK Content-Length: 0 F15 ACK Proxy 1 -> GW 1 ACK [-sips:4443333@gw1.atlanta.com-] {+sips:4443333@gw1.a.example.com+} SIP/2.0 Via: SIP/2.0/TLS [-ss1.atlanta.com:5061;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5061;branch=z9hG4bK2d4790.1+} Via: SIP/2.0/TLS [-client.atlanta.com:5061;branch=z9hG4bK74bf9-] {+client.a.example.com:5061;branch=z9hG4bK74bf9+} Johnston et al Expires - [-May-] {+October+} 2002 [Page 20] SIP PSTN Call Flows [-November 2002-] {+April 2003+} ;received=192.0.2.101 Max-Forwards: 69 From: Alice [--] {++} ;tag=9fxced76sl To: Carol [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 2 ACK Content-Length: 0 /* Alice Hangs Up with Bob. */ F16 BYE Alice -> Proxy 1 BYE [-sips:4443333@gw1.atlanta.com-] {+sips:4443333@gw1.a.example.com+} SIP/2.0 Via: SIP/2.0/TLS [-client.atlanta.com:5061;branch=z9hG4bK74bf9-] {+client.a.example.com:5061;branch=z9hG4bK74bf9+} Max-Forwards: 70 Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Carol [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 3 BYE Content-Length: 0 F17 BYE Proxy 1 -> GW 1 BYE [-sips:4443333@gw1.atlanta.com-] {+sips:4443333@gw1.a.example.com+} SIP/2.0 Via: SIP/2.0/TLS [-ss1.atlanta.com:5061;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5061;branch=z9hG4bK2d4790.1+} Via: SIP/2.0/TLS [-client.atlanta.com:5061;branch=z9hG4bK74bf9-] {+client.a.example.com:5061;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Max-Forwards: 69 From: Alice [--] {++} ;tag=9fxced76sl To: Carol [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 3 BYE Content-Length: 0 F18 200 OK GW 1 -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/TLS [-ss1.atlanta.com:5061;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5061;branch=z9hG4bK2d4790.1+} ;received=192.0.2.111 Johnston et al Expires - [-May-] {+October+} 2002 [Page 21] SIP PSTN Call Flows [-November 2002-] {+April 2003+} Via: SIP/2.0/TLS [-client.atlanta.com:5061;branch=z9hG4bK74bf9-] {+client.a.example.com:5061;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Carol [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 3 BYE Content-Length: 0 F19 200 OK Proxy 1 -> A SIP/2.0 200 OK Via: SIP/2.0/TLS [-client.atlanta.com:5061;branch=z9hG4bK74bf9-] {+client.a.example.com:5061;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Carol [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 3 BYE Content-Length: 0 F20 DISConnect GW 1 -> Carol Protocol discriminator=Q.931 Message type=DISC Cause=16 (Normal clearing) F21 RELease Carol-> GW 1 Protocol discriminator=Q.931 Message type=REL F22 RELease COMplete GW 1 -> Carol Protocol discriminator=Q.931 Message type=REL COM Johnston et al Expires - [-May-] {+October+} 2002 [Page 22] SIP PSTN Call Flows [-November 2002-] {+April 2003+} 2.3 Successful SIP to ISUP PSTN call with overflow Alice Proxy 1 NGW 1 NGW 2 Switch B | | | | | | INVITE F1 | | | | |------------->| | | | | | INVITE F2 | | | | 100 F3 |------------->| | | |<-------------| 503 F4 | | | | |<-------------| | | | | ACK F5 | | | | |------------->| | | | | INVITE F6 | | | |---------------------------->| IAM F7 | | | |------------->| | | | ACM F8 | | | 183 F9 |<-------------| | 183 F10 |<----------------------------| | |<-------------| | | | Two Way RTP Media | One Way Voice| |<==========================================>|<=============| | | | ANM F11 | | | 200 F12 |<-------------| | 200 F13 |<----------------------------| | |<-------------| | | | ACK F14 | | | |------------->| ACK F15 | | | |---------------------------->| | | Both Way RTP Media |Both Way Voice| |<==========================================>|<============>| | BYE F16 | | | |------------->| BYE F17 | | | |---------------------------->| | | | 200 F18 | | | 200 F19 |<----------------------------| REL F20 | |<-------------| |------------->| | | | RLC F21 | | | |<-------------| | | | | Alice calls Bob through Proxy 1. Proxy 1 tries to route to a Network Gateway NGW 1. NGW 1 is not available and responds with a 503 Service Unavailable (F4). The call is then routed to Network Gateway NGW 2. Bob answers the call. The call is terminated when Alice disconnects the call. NGW 2 and Bob's telephone switch use ANSI ISUP signaling. NGW 2 also only accepts SIP messages that come through Proxy 1, so the Contact URI [-sip:ngw2@atlanta.com-] {+sip:ngw2@a.example.com+} is used in this flow. Johnston et al Expires - [-May-] {+October+} 2002 [Page 23] SIP PSTN Call Flows [-November 2002-] {+April 2003+} This flow shows UDP transport. Message Details F1 INVITE Alice -> Proxy 1 INVITE [-sip:+19725552222@ss1.atlanta.com;user=phone-] {+sip:+19725552222@ss1.a.example.com;user=phone+} SIP/2.0 Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} Max-Forwards: 70 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Proxy-Authorization: Digest username="alice", [-realm="atlanta.com",-] {+realm="a.example.com",+} nonce="b59311c3ba05b401cf80b2a2c5ac51b0", opaque="", [-uri="sip:+19725552222@ss1.atlanta.com;user=phone",-] {+uri="sip:+19725552222@ss1.a.example.com;user=phone",+} response="ba6ab44923fa2614b28e3e3957789ab0" Content-Type: application/sdp Content-Length: [-150-] {+154+} v=0 o=alice 2890844526 2890844526 IN IP4 [-client.atlanta.com-] {+client.a.example.com+} s=- c=IN IP4 [-client.atlanta.com-] {+client.a.example.com+} t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* Proxy 1 uses a Location Service function to determine where B is located. Proxy 1 receives a primary route NGW 1 and a secondary route NGW 2. NGW 1 is tried first */ F2 INVITE Proxy 1 -> NGW 1 INVITE [-sip:+19725552222@ngw1.atlanta.com;user=phone-] {+sip:+19725552222@ngw1.a.example.com;user=phone+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Max-Forwards: 69 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Johnston et al Expires - [-May-] {+October+} 2002 [Page 24] SIP PSTN Call Flows [-November 2002-] {+April 2003+} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-150-] {+154+} v=0 o=alice 2890844526 2890844526 IN IP4 [-client.atlanta.com-] {+client.a.example.com+} s=- c=IN IP4 [-client.atlanta.com-] {+client.a.example.com+} t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F3 100 Trying Proxy 1 -> Alice SIP/2.0 100 Trying Via: SIP/2.0/UDP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} ;received=192.0.2.111 Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Content-Length: 0 F4 503 Service Unavailable NGW 1 -> Proxy 1 SIP/2.0 503 Service Unavailable Via: SIP/2.0/UDP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} ;received=192.0.2.111 Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=123456789 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Content-Length: 0 F5 ACK Proxy 1 -> NGW 1 Johnston et al Expires - [-May-] {+October+} 2002 [Page 25] SIP PSTN Call Flows [-November 2002-] {+April 2003+} ACK [-sip:ngw1@atlanta.com-] {+sip:ngw1@a.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} Max-Forwards: 70 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [-;user=phone>-] {+;user=phone>+} ;tag=123456789 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 ACK Content-Length: 0 /* Proxy 1 now tries secondary route to NGW 2 */ F6 INVITE Proxy 1 -> NGW 2 INVITE [-sip:+19725552222@ngw2.atlanta.com;user=phone-] {+sip:+19725552222@ngw2.a.example.com;user=phone+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.2-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.2+} Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Max-Forwards: 69 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-150-] {+154+} v=0 o=alice 2890844526 2890844526 IN IP4 [-client.atlanta.com-] {+client.a.example.com+} s=- c=IN IP4 [-client.atlanta.com-] {+client.a.example.com+} t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F7 IAM NGW 2 -> Bob IAM CdPN=972-555-2222,NPI=E.164,NOA=National CgPN=314-555-1111,NPI=E.164,NOA=National F8 ACM Bob -> NGW 2 Johnston et al Expires - [-May-] {+October+} 2002 [Page 26] SIP PSTN Call Flows [-November 2002-] {+April 2003+} ACM F9 183 Session Progress NGW 2 -> Proxy 1 SIP/2.0 183 Session Progress Via: SIP/2.0/UDP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.2-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.2+} ;received=192.0.2.111 Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-142-] {+146+} v=0 o=GW 2890844527 2890844527 IN IP4 [-ngw2.atlanta.com-] {+ngw2.a.example.com+} s=- c=IN IP4 [-ngw2.atlanta.com-] {+ngw2.a.example.com+} t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* RTP packets are sent by GW to A for audio (e.g. ring tone) */ F10 183 Session Progress Proxy 1 -> Alice SIP/2.0 183 Session Progress Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-142-] {+146+} v=0 Johnston et al Expires - [-May-] {+October+} 2002 [Page 27] SIP PSTN Call Flows [-November 2002-] {+April 2003+} o=GW 2890844527 2890844527 IN IP4 [-ngw2.atlanta.com-] {+ngw2.a.example.com+} s=- c=IN IP4 [-ngw2.atlanta.com-] {+ngw2.a.example.com+} t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F11 ANM Bob -> NGW 2 ANM F12 200 OK NGW 2 -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.2-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.2+} ;received=192.0.2.111 Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-142-] {+146+} v=0 o=GW 2890844527 2890844527 IN IP4 [-ngw2.atlanta.com-] {+ngw2.a.example.com+} s=- c=IN IP4 [-ngw2.atlanta.com-] {+ngw2.a.example.com+} t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F13 200 OK Proxy 1 -> Alice SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Johnston et al Expires - [-May-] {+October+} 2002 [Page 28] SIP PSTN Call Flows [-November 2002-] {+April 2003+} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-142-] {+146+} v=0 o=GW 2890844527 2890844527 IN IP4 [-ngw2.atlanta.com-] {+ngw2.a.example.com+} s=- c=IN IP4 [-ngw2.atlanta.com-] {+ngw2.a.example.com+} t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F14 ACK Alice -> Proxy 1 ACK [-sip:ngw2@atlanta.com-] {+sip:ngw2@a.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} Max-Forwards: 70 Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 ACK Content-Length: 0 F15 ACK Proxy 1 -> NGW 2 ACK [-sip:ngw2@atlanta.com-] {+sip:ngw2@a.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.2-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.2+} Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Max-Forwards: 69 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 ACK Content-Length: 0 /* RTP streams are established between A and B(via the GW) */ Johnston et al Expires - [-May-] {+October+} 2002 [Page 29] SIP PSTN Call Flows [-November 2002-] {+April 2003+} /* Alice Hangs Up with Bob. */ F16 BYE Alice -> Proxy 1 BYE [-sip:ngw2@atlanta.com-] {+sip:ngw2@a.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} Max-Forwards: 70 Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 2 BYE Content-Length: 0 F17 BYE Proxy 1 -> NGW 2 BYE [-sip:ngw2@atlanta.com-] {+sip:ngw2@a.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.2-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.2+} Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Max-Forwards: 69 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 2 BYE Content-Length: 0 F18 200 OK NGW 2 -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.2-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.2+} ;received=192.0.2.111 Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 2 BYE Content-Length: 0 Johnston et al Expires - [-May-] {+October+} 2002 [Page 30] SIP PSTN Call Flows [-November 2002-] {+April 2003+} F19 200 OK Proxy 1 -> Alice SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 2 BYE Content-Length: 0 F20 REL NGW 2 -> B REL CauseCode=16 Normal F21 RLC B -> NGW 2 RLC Johnston et al Expires - [-May-] {+October+} 2002 [Page 31] SIP PSTN Call Flows [-November 2002-] {+April 2003+} 2.4 [-Unsuccessful-] {+Successful+} SIP to [-PSTN call: Treatment from PSTN-] {+SIP using ENUM Query+} Alice {+DNS Server+} Proxy [-1 NGW 1-] {+3+} Bob | | | | | [-INVITE-] {+ENUM Query+} F1 | | | |--------------->| | | | [-100-] {+Response+} F2 | | | |<---------------| [-INVITE F3-] | | | [-|--------------->| |-] {+INVITE F3+} | | [-100-] {+|-------------------------------->| INVITE+} F4 | | [-| |<---------------| IAM-] {+100+} F5 {+|--------------->| |<--------------------------------| 180 F6+} | | {+180 F7 |<---------------| |<--------------------------------|+} | [-|--------------->|-] | | {+200 F8+} | [-ACM F6-] | {+200 F9 |<---------------| |<--------------------------------|+} | | [-183 F7 |<---------------|-] {+ACK F10+} | [-183 F8 |<---------------|-] | [-|<---------------|-] {+|-------------------------------->| ACK F11+} | | {+|--------------->|+} | [-Two-] {+Both+} Way RTP Media | [-One Way Voice-] {+|<================================================>|+} | [-|<===============================>|<===============|-] | [-Treatment Applied-] {+BYE F12+} | [-|<=================================================|-] | [-CANCEL F9-] {+BYE F13 |<---------------| |<--------------------------------|+} | | {+200 F14+} | [-|--------------->|-] | {+|-------------------------------->| 200 F15+} | | [-200-] {+|--------------->| | | | In this scenario, Alice places a call to Bob by dialing Bob's telephone number (9725552222). Alice's UA converts the phone number to an E.164 number (+19725552222) performs an ENUM query [10] on the E.164 number (2.2.2.2.5.5.5.2.7.9.1.e164.arpa) which returns a NAPTR record containing a SIP AOR URI for Bob (sip:+19725552222@b.example.com). As a result, Alice's UA sends an INVITE and the call completes over IP bypassing the PSTN. The call is terminated when Bob sends a BYE message. Message Details F1 ENUM Query Alice -> DNS Server 2.2.2.2.5.5.5.2.7.9.1.e164.arpa Johnston et al Expires - October 2002 [Page 32] SIP PSTN Call Flows April 2003 F2 ENUM NAPTR Set DNS Server -> Alice $ORIGIN 2.2.2.2.5.5.5.2.7.9.1.e164.arpa. IN NAPTR 100 10 "u" "sip+E2U" "!^.*$!sip:+19725552222@b.example.com!". F3 INVITE Alice -> Proxy 3 INVITE sip:+19725552222@b.example.com SIP/2.0 Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: ;tag=9fxced76sl To: Call-ID: 2xTb9vxSit55XU7p8@a.example.com CSeq: 2 INVITE Contact: Content-Type: application/sdp Content-Length: 154 v=0 o=alice 2890844526 2890844526 IN IP4 client.a.example.com s=- c=IN IP4 client.a.example.com t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 INVITE Proxy 3 -> Bob INVITE sip:+19725552222@client.b.example.com SIP/2.0 Via: SIP/2.0/UDP ss3.b.example.com:5060;branch=z9hG4bK721e418c4.1 Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Max-Forwards: 69 Record-Route: From: ;tag=9fxced76sl To: Call-ID: 2xTb9vxSit55XU7p8@a.example.com CSeq: 2 INVITE Contact: Content-Type: application/sdp Content-Length: 154 v=0 o=UserA 2890844526 2890844526 IN IP4 client.a.example.com s=- c=IN IP4 client.a.example.com Johnston et al Expires - October 2002 [Page 33] SIP PSTN Call Flows April 2003 t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F5 100 Trying Proxy 3 -> Alice SIP/2.0 100 Trying Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 From: ;tag=9fxced76sl To: Call-ID: 2xTb9vxSit55XU7p8@a.example.com CSeq: 2 INVITE Content-Length: 0 F6 180 Ringing B -> Proxy 3 SIP/2.0 180 Ringing Via: SIP/2.0/UDP ss3.b.example.com:5060;branch=z9hG4bK721e418c4.1 ;received=192.0.2.233 Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Record-Route: From: ;tag=9fxced76sl To: ;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@a.example.com CSeq: 2 INVITE Contact: Content-Length: 0 F7 180 Ringing Proxy 3 -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Record-Route: From: ;tag=9fxced76sl To: ;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@a.example.com CSeq: 2 INVITE Contact: Content-Length: 0 F8 200 OK Bob -> Proxy 3 Johnston et al Expires - October 2002 [Page 34] SIP PSTN Call Flows April 2003 SIP/2.0 200 OK Via: SIP/2.0/UDP ss3.b.example.com:5060;branch=z9hG4bK721e418c4.1 ;received=192.0.2.233 Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Record-Route: From: ;tag=9fxced76sl To: ;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@a.example.com CSeq: 2 INVITE Contact: Content-Type: application/sdp Content-Length: 151 v=0 o=bob 2890844527 2890844527 IN IP4 client.b.example.com s=- c=IN IP4 client.b.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F9 200 OK Proxy -> Alice SIP/2.0 200 OK Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Record-Route: From: ;tag=9fxced76sl To: ;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@a.example.com CSeq: 2 INVITE Contact: Content-Type: application/sdp Content-Length: 151 v=0 o=bob 2890844527 2890844527 IN IP4 client.b.example.com s=- c=IN IP4 192.0.2.100 t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F10 ACK Alice -> Proxy 3 ACK sip:+19725552222@client.b.example.com SIP/2.0 Johnston et al Expires - October 2002 [Page 35] SIP PSTN Call Flows April 2003 Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bq9 Max-Forwards: 70 Route: From: ;tag=9fxced76sl To: ;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@a.example.com CSeq: 2 ACK Content-Length: 0 F11 ACK Proxy 3 -> Bob ACK sip:+19725552222@client.b.example.com SIP/2.0 Via: SIP/2.0/UDP ss3.b.example.com:5060;branch=z9hG4bK721e418c4.1 Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bq9 ;received=192.0.2.101 Max-Forwards: 69 From: ;tag=9fxced76sl To: ;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@a.example.com CSeq: 2 ACK Content-Type: application/sdp Content-Length: 0 /* RTP streams are established between A and B*/ /* User B Hangs Up with User A. */ F12 BYE Bob -> Proxy 3 BYE sip:+13145551111@client.a.example.com SIP/2.0 Via: SIP/2.0/UDP client.b.example.com:5060;branch=z9hG4bKfgaw2 Max-Forwards: 70 Route: From: ;tag=314159 To: ;tag=9fxced76sl Call-ID: 2xTb9vxSit55XU7p8@a.example.com CSeq: 1 BYE Content-Length: 0 F13 BYE Proxy 3 -> Alice BYE sip:+13145551111@client.a.example.com SIP/2.0 Via: SIP/2.0/UDP ss3.b.example.com:5060;branch=z9hG4bK721e418c4.1 ;received=192.0.2.100 Via: SIP/2.0/UDP client.b.example.com:5060;branch=z9hG4bKfgaw2 Max-Forwards: 69 Johnston et al Expires - October 2002 [Page 36] SIP PSTN Call Flows April 2003 From: ;tag=314159 To: ;tag=9fxced76sl Call-ID: 2xTb9vxSit55XU7p8@a.example.com CSeq: 1 BYE Content-Length: 0 F14 200 OK Alice -> Proxy 3 SIP/2.0 200 OK Via: SIP/2.0/UDP ss3.b.example.com:5060;branch=z9hG4bK721e418c4.1 ;received=192.0.2.233 Via: SIP/2.0/UDP client.b.example.com:5060;branch=z9hG4bKfgaw2 ;received=192.0.2.100 From: ;tag=314159 To: ;tag=9fxced76sl Call-ID: 2xTb9vxSit55XU7p8@a.example.com CSeq: 1 BYE Content-Length: 0 F15 200 OK Proxy 3 -> Bob SIP/2.0 200 OK Via: SIP/2.0/UDP client.b.example.com:5060;branch=z9hG4bKfgaw2 ;received=192.0.2.100 From: ;tag=314159 To: ;tag=9fxced76sl Call-ID: 2xTb9vxSit55XU7p8@a.example.com CSeq: 1 BYE Content-Length: 0 Johnston et al Expires - October 2002 [Page 37] SIP PSTN Call Flows April 2003 2.5 Unsuccessful SIP to PSTN call: Treatment from PSTN Alice Proxy 1 NGW 1 Bob | | | | | INVITE F1 | | | |--------------->| | | | 100 F2 | | | |<---------------| INVITE F3 | | | |--------------->| | | | 100 F4 | | | |<---------------| IAM F5 | | | |--------------->| | | | ACM F6 | | | 183 F7 |<---------------| | 183 F8 |<---------------| | |<---------------| | | | Two Way RTP Media | One Way Voice | |<===============================>|<===============| | Treatment Applied | |<=================================================| | CANCEL F9 | | | |--------------->| | | | 200+} F10 | | | |<---------------| CANCEL F11 | | | |--------------->| | | | 200 F12 | | | |<---------------| REL F13 | | | |--------------->| | | | RLC F14 | | | 487 F15 |<---------------| | |<---------------| | | | ACK F16 | | | 487 F17 |--------------->| | |<---------------| | | | ACK F18 | | | |--------------->| | | | | | | Alice calls Bob in the PSTN through a proxy server Proxy 1 and a Network Gateway NGW 1. The call is rejected by the PSTN with an in- band treatment (tone or recording) played. Alice hears the treatment and then hangs up, which results in a CANCEL (F9) being sent to terminate the call. (A BYE is not sent since no final response was ever received by Alice.) Message Details Johnston et al Expires - [-May-] {+October+} 2002 [Page [-32]-] {+38]+} SIP PSTN Call Flows [-November 2002-] {+April 2003+} F1 INVITE Alice -> Proxy 1 INVITE [-sip:+19725552222@ss1.atlanta.com;user=phone-] {+sip:+19725552222@ss1.a.example.com;user=phone+} SIP/2.0 Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} Max-Forwards: 70 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Proxy-Authorization: Digest username="alice", [-realm="atlanta.com",-] {+realm="a.example.com",+} nonce="01cf8311c3b0b2a2c5ac51bb59a05b40", opaque="", [-uri="sip:+19725552222@ss1.atlanta.com;user=phone",-] {+uri="sip:+19725552222@ss1.a.example.com;user=phone",+} response="e178fbe430e6680a1690261af8831f40" Content-Type: application/sdp Content-Length: [-150-] {+154+} v=0 o=alice 2890844526 2890844526 IN IP4 [-client.atlanta.com-] {+client.a.example.com+} s=- c=IN IP4 [-client.atlanta.com-] {+client.a.example.com+} t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 100 Trying Proxy 1 -> A SIP/2.0 100 Trying Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Content-Length: 0 /* Proxy 1 uses a Location Service function to determine where B is located. Based upon location analysis the call is forwarded to NGW 1. Client for A prepares to receive data on port 49172 from the network. */ F3 INVITE Proxy 1 -> NGW 1 INVITE [-sip:+19725552222@ngw1.atlanta.com;user=phone-] {+sip:+19725552222@ngw1.a.example.com;user=phone+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} Johnston et al Expires - [-May-] {+October+} 2002 [Page [-33]-] {+39]+} SIP PSTN Call Flows [-November 2002-] {+April 2003+} Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Max-Forwards: 69 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-150-] {+154+} v=0 o=alice 2890844526 2890844526 IN IP4 [-client.atlanta.com-] {+client.a.example.com+} s=- c=IN IP4 [-client.atlanta.com-] {+client.a.example.com+} t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 100 Trying NGW 1 -> Proxy 1 SIP/2.0 100 Trying Via: SIP/2.0/UDP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} ;received=192.0.2.111 Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Content-Length: 0 F5 IAM NGW 1 -> Bob IAM CdPN=972-555-2222,NPI=E.164,NOA=National CgPN=314-555-1111,NPI=E.164,NOA=National F6 ACM Bob -> NGW 1 ACM Johnston et al Expires - [-May-] {+October+} 2002 [Page [-34]-] {+40]+} SIP PSTN Call Flows [-November 2002-] {+April 2003+} F7 183 Session Progress NGW 1 -> Proxy 1 SIP/2.0 183 Session Progress Via: SIP/2.0/UDP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} ;received=192.0.2.111 Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-142-] {+146+} v=0 o=GW 2890844527 2890844527 IN IP4 [-ngw1.atlanta.com-] {+ngw1.a.example.com+} s=- c=IN IP4 [-ngw1.atlanta.com-] {+ngw1.a.example.com+} t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F8 183 Session Progress Proxy 1 -> Alice SIP/2.0 183 Session Progress Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-142-] {+146+} v=0 o=GW 2890844527 2890844527 IN IP4 [-ngw1.atlanta.com-] {+ngw1.a.example.com+} s=- c=IN IP4 [-ngw1.atlanta.com-] {+ngw1.a.example.com+} t=0 0 m=audio 3456 RTP/AVP 0 Johnston et al Expires - [-May-] {+October+} 2002 [Page [-35]-] {+41]+} SIP PSTN Call Flows [-November 2002-] {+April 2003+} a=rtpmap:0 PCMU/8000 /* Caller hears the recorded announcement, then hangs up */ F9 CANCEL Alice -> Proxy 1 CANCEL [-sip:+19725552222@ss1.atlanta.com;user=phone-] {+sip:+19725552222@ss1.a.example.com;user=phone+} SIP/2.0 Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} Max-Forwards: 70 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 CANCEL Content-Length: 0 F10 200 OK Proxy 1 -> A SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 CANCEL Content-Length: 0 F11 CANCEL Proxy 1 -> NGW 1 CANCEL [-sip:+19725552222@ss1.atlanta.com;user=phone-] {+sip:+19725552222@ss1.a.example.com;user=phone+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} Max-Forwards: 70 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 CANCEL Content-Length: 0 F12 200 OK NGW 1 -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} ;received=192.0.2.111 Johnston et al Expires - [-May-] {+October+} 2002 [Page [-36]-] {+42]+} SIP PSTN Call Flows [-November 2002-] {+April 2003+} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 CANCEL Content-Length: 0 F13 REL NGW 1 -> B REL CauseCode=18 No user responding F14 RLC B -> NGW 1 RLC F15 487 Request Terminated NGW 1 -> Proxy 1 SIP/2.0 487 Request Terminated Via: SIP/2.0/UDP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} ;received=192.0.2.111 Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Content-Length: 0 F16 ACK Proxy 1 -> NGW 1 ACK [-sip:+19725552222@ss1.atlanta.com;user=phone-] {+sip:+19725552222@ss1.a.example.com;user=phone+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} Max-Forwards: 70 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 ACK Content-Length: 0 Johnston et al Expires - [-May-] {+October+} 2002 [Page [-37]-] {+43]+} SIP PSTN Call Flows [-November 2002-] {+April 2003+} F17 487 Request Terminated Proxy 1 -> A SIP/2.0 487 Request Terminated Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Content-Length: 0 F18 ACK Alice -> Proxy 1 ACK [-sip:+19725552222@ss1.atlanta.com;user=phone-] {+sip:+19725552222@ss1.a.example.com;user=phone+} SIP/2.0 Via: SIP/2.0/UDP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} Max-Forwards: 70 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 ACK Content-Length: 0 Johnston et al Expires - [-May-] {+October+} 2002 [Page [-38]-] {+44]+} SIP PSTN Call Flows [-November 2002 2.5-] {+April 2003 2.6+} Unsuccessful SIP to PSTN: REL w/Cause from PSTN Alice Proxy 1 NGW 1 Switch B | | | | | INVITE F1 | | | |--------------->| | | | 100 F2 | | | |<---------------| INVITE F3 | | | |--------------->| | | | 100 F4 | | | |<---------------| IAM F5 | | | |--------------->| | | | REL(1) F6 | | | |<---------------| | | | RLC F7 | | | 404 F8 |--------------->| | |<---------------| | | | ACK F9 | | | |--------------->| | | 404 F10 | | | |<---------------| | | | ACK F11 | | | |--------------->| | | | | | | Alice calls PSTN Bob through a Proxy Server Proxy 1 and a Network Gateway NGW 1. The call is rejected by the PSTN with a ANSI ISUP Release message REL containing a specific Cause code. This cause value (1) is mapped by the Gateway to a SIP 404 Address Incomplete response which is proxied back to Alice. For more details of ISUP cause value to SIP response mapping refer to [4]. Message Details F1 INVITE Alice -> Proxy 1 INVITE [-sip:+44-1234@ss1.atlanta.com;user=phone-] {+sip:+44-1234@ss1.a.example.com;user=phone+} SIP/2.0 Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} Max-Forwards: 70 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Proxy-Authorization: Digest username="alice", [-realm="atlanta.com",-] {+realm="a.example.com",+} nonce="j1c3b0b01cf832da2c5ac51bb59a05b40", Johnston et al Expires - [-May-] {+October+} 2002 [Page [-39]-] {+45]+} SIP PSTN Call Flows [-November 2002-] {+April 2003+} opaque="", [-uri="sip:+44-1234@ss1.atlanta.com;user=phone",-] {+uri="sip:+44-1234@ss1.a.example.com;user=phone",+} response="a451358d46b55512863efe1dccaa2f42" Content-Type: application/sdp Content-Length: [-150-] {+154+} v=0 o=alice 2890844526 2890844526 IN IP4 [-client.atlanta.com-] {+client.a.example.com+} s=- c=IN IP4 [-client.atlanta.com-] {+client.a.example.com+} t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 100 Trying Proxy 1 -> A SIP/2.0 100 Trying Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Content-Length: 0 /* Proxy 1 uses a Location Service function to determine where B is located. Based upon location analysis the call is forwarded to NGW1. Client for A prepares to receive data on port 49172 from the network. */ F3 INVITE Proxy 1 -> NGW 1 INVITE [-sip:+44-1234@ngw1.atlanta.com;user=phone-] {+sip:+44-1234@ngw1.a.example.com;user=phone+} SIP/2.0 Via: SIP/2.0/TCP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Max-Forwards: 69 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-150-] {+154+} Johnston et al Expires - [-May-] {+October+} 2002 [Page [-40]-] {+46]+} SIP PSTN Call Flows [-November 2002-] {+April 2003+} v=0 o=alice 2890844526 2890844526 IN IP4 [-client.atlanta.com-] {+client.a.example.com+} s=- c=IN IP4 [-client.atlanta.com-] {+client.a.example.com+} t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 100 Trying NGW 1 -> Proxy 1 SIP/2.0 100 Trying Via: SIP/2.0/TCP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} ;received=192.0.2.111 Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Content-Length: 0 F5 IAM NGW 1 -> Bob IAM CdPN=44-1234,NPI=E.164,NOA=International CgPN=314-555-1111,NPI=E.164,NOA=National F6 REL Bob -> NGW 1 REL CauseValue=1 Unallocated number F7 RLC NGW 1 -> Bob RLC /* Network Gateway maps CauseValue=1 to the SIP message 404 Not Found */ F8 404 Not Found NGW 1 -> Proxy 1 SIP/2.0 404 Not Found Via: SIP/2.0/TCP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} Johnston et al Expires - [-May-] {+October+} 2002 [Page [-41]-] {+47]+} SIP PSTN Call Flows [-November 2002-] {+April 2003+} ;received=192.0.2.111 Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [-;tag=314159-] {+;tag=314159+} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Error-Info: [--] {++} Content-Length: 0 F9 ACK Proxy 1 -> NGW 1 ACK [-sip:+44-1234@ngw1.atlanta.com;user=phone-] {+sip:+44-1234@ngw1.a.example.com;user=phone+} SIP/2.0 Max-Forwards: 70 Via: SIP/2.0/TCP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [-;tag=314159-] {+;tag=314159+} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 ACK Content-Length: 0 F10 404 Not Found Proxy 1 -> Alice SIP/2.0 404 Not Found Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [-;tag=314159-] {+;tag=314159+} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Error-Info: [--] {++} Content-Length: 0 F11 ACK Alice -> Proxy 1 ACK [-sip:+44-1234@ss1.atlanta.com;user=phone-] {+sip:+44-1234@ss1.a.example.com;user=phone+} SIP/2.0 Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} Max-Forwards: 70 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [-;tag=314159-] {+;tag=314159+} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 ACK Johnston et al Expires - [-May-] {+October+} 2002 [Page [-42]-] {+48]+} SIP PSTN Call Flows [-November 2002-] {+April 2003+} Content-Length: 0 Johnston et al Expires - [-May-] {+October+} 2002 [Page [-43]-] {+49]+} SIP PSTN Call Flows [-November 2002 2.6-] {+April 2003 2.7+} Unsuccessful SIP to PSTN: ANM Timeout Alice Proxy 1 NGW 1 Switch B | | | | | INVITE F1 | | | |--------------->| | | | 100 F2 | | | |<---------------| INVITE F3 | | | |--------------->| | | | 100 F4 | | | |<---------------| IAM F5 | | | |--------------->| | | | ACM F6 | | | 183 F7 |<---------------| | 183 F8 |<---------------| | |<---------------| | | | | Timer on NGW 1 Expires | | | | | | | | REL F9 | | | |--------------->| | | | RLC F10 | | | 480 F11 |<---------------| | |<---------------| | | | ACK F12 | | | |--------------->| | | 480 F13 | | | |<---------------| | | | ACK F14 | | | |--------------->| | | Alice calls Bob in the PSTN through a proxy server Proxy 1 and Network Gateway NGW 1. The call is released by the Gateway after a timer expires due to no ANswer Message (ANM) being received. The Gateway sends an ISUP Release REL message to the PSTN and a 480 Temporarily Unavailable response to Alice in the SIP network. Message Details F1 INVITE Alice -> Proxy 1 INVITE [-sip:+19725552222@ss1.atlanta.com;user=phone-] {+sip:+19725552222@ss1.a.example.com;user=phone+} SIP/2.0 Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} Max-Forwards: 70 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} Johnston et al Expires - [-May-] {+October+} 2002 [Page [-44]-] {+50]+} SIP PSTN Call Flows [-November 2002-] {+April 2003+} CSeq: 1 INVITE Contact: [--] {++} Proxy-Authorization: Digest username="alice", [-realm="atlanta.com",-] {+realm="a.example.com",+} nonce="da2c5ac51bb59a05j1c3b0b01cf832b40", opaque="", [-uri="sip:+19725552222@ss1.atlanta.com;user=phone",-] {+uri="sip:+19725552222@ss1.a.example.com;user=phone",+} response="579cb9db184cdc25bf816f37cbc03c7d" Content-Type: application/sdp Content-Length: [-150-] {+154+} v=0 o=alice 2890844526 2890844526 IN IP4 [-client.atlanta.com-] {+client.a.example.com+} s=- c=IN IP4 [-client.atlanta.com-] {+client.a.example.com+} t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* Proxy 1 uses a Location Service function to determine where B is located. Based upon location analysis the call is forwarded to NGW 1. Client for A prepares to receive data on port 49172 from the network.*/ F2 100 Trying Proxy 1 -> A SIP/2.0 100 Trying Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Content-Length: 0 F3 INVITE Proxy 1 -> NGW 1 INVITE [-sip:+19725552222@ngw1.atlanta.com;user=phone-] {+sip:+19725552222@ngw1.a.example.com;user=phone+} SIP/2.0 Via: SIP/2.0/TCP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Max-Forwards: 69 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Johnston et al Expires - [-May-] {+October+} 2002 [Page [-45]-] {+51]+} SIP PSTN Call Flows [-November 2002-] {+April 2003+} Contact: [--] {++} Content-Type: application/sdp Content-Length: [-150-] {+154+} v=0 o=alice 2890844526 2890844526 IN IP4 [-client.atlanta.com-] {+client.a.example.com+} s=- c=IN IP4 [-client.atlanta.com-] {+client.a.example.com+} t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 100 Trying NGW 1 -> Proxy 1 SIP/2.0 100 Trying Via: SIP/2.0/TCP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} ;received=192.0.2.111 Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Content-Length: 0 F5 IAM NGW 1 -> Bob IAM CdPN=972-555-2222,NPI=E.164,NOA=National CgPN=314-555-1111,NPI=E.164,NOA=National F6 ACM Bob -> NGW 1 ACM F7 183 Session Progress NGW 1 -> Proxy 1 SIP/2.0 183 Session Progress Via: SIP/2.0/TCP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} ;received=192.0.2.111 Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Record-Route: [--] {++} From: Alice [--] {++} Johnston et al Expires - [-May-] {+October+} 2002 [Page [-46]-] {+52]+} SIP PSTN Call Flows [-November 2002-] {+April 2003+} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-142-] {+146+} v=0 o=GW 2890844527 2890844527 IN IP4 [-ngw1.atlanta.com-] {+ngw1.a.example.com+} s=- c=IN IP4 [-ngw1.atlanta.com-] {+ngw1.a.example.com+} t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F8 183 Session Progress Proxy 1 -> Alice SIP/2.0 183 Session Progress Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 Record-Route: [--] {++} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: [-142-] {+146+} v=0 o=GW 2890844527 2890844527 IN IP4 [-ngw1.atlanta.com-] {+ngw1.a.example.com+} s=- c=IN IP4 [-ngw1.atlanta.com-] {+ngw1.a.example.com+} t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* After NGW 1's timer expires, Network Gateway sends REL to ISUP network and 480 to SIP network */ F9 REL NGW 1 -> Bob REL Johnston et al Expires - [-May-] {+October+} 2002 [Page [-47]-] {+53]+} SIP PSTN Call Flows [-November 2002-] {+April 2003+} CauseCode=18 No user responding F10 RLC Bob -> NGW 1 RLC F11 480 Temporarily Unavailable NGW 1 -> Proxy 1 SIP/2.0 480 Temporarily Unavailable Via: SIP/2.0/TCP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} ;received=192.0.2.111 Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 INVITE Error-Info: [--] {++} Content-Length: 0 F12 ACK Proxy 1 -> NGW 1 ACK [-sip:ngw1@atlanta.com-] {+sip:ngw1@a.example.com+} SIP/2.0 Via: SIP/2.0/TCP [-ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1-] {+ss1.a.example.com:5060;branch=z9hG4bK2d4790.1+} Max-Forwards: 70 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 ACK Content-Length: 0 F13 480 Temporarily Unavailable F13 Proxy 1 -> Alice SIP/2.0 480 Temporarily Unavailable Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.101 From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} Johnston et al Expires - [-May-] {+October+} 2002 [Page [-48]-] {+54]+} SIP PSTN Call Flows [-November 2002-] {+April 2003+} CSeq: 1 INVITE Error-Info: [--] {++} Content-Length: 0 F14 ACK Alice -> Proxy 1 ACK [-sip:+19725552222@ss1.atlanta.com;user=phone-] {+sip:+19725552222@ss1.a.example.com;user=phone+} SIP/2.0 Max-Forwards: 70 Via: SIP/2.0/TCP [-client.atlanta.com:5060;branch=z9hG4bK74bf9-] {+client.a.example.com:5060;branch=z9hG4bK74bf9+} From: Alice [--] {++} ;tag=9fxced76sl To: Bob [--] {++} ;tag=314159 Call-ID: [-2xTb9vxSit55XU7p8@atlanta.com-] {+2xTb9vxSit55XU7p8@a.example.com+} CSeq: 1 ACK Content-Length: 0 Johnston et al Expires - [-May-] {+October+} 2002 [Page [-49]-] {+55]+} SIP PSTN Call Flows [-November 2002-] {+April 2003+} 3. PSTN to SIP Dialing In these scenarios, Alice is placing calls from the PSTN to Bob in a SIP network. Alice's telephone switch signals to a Network Gateway (NGW 1) using ANSI ISUP. Since the called SIP User Agent does not send in-band signaling information, no early media path needs to be established on the IP side. As a result, the 183 Session Progress response is not used. However, NGW 1 will establish a one way speech path prior to call completion, and generate ringing for the PSTN caller. Any tones or recordings are generated by NGW 1 and played in this speech path. When the call completes successfully, NGW 1 bridges the PSTN speech path with the IP media path. To reduce the number of messages, only a single proxy server is shown in these flows, which means that the [-atlanta.com-] {+a.example.com+} proxy server has access to the [-biloxi.com-] {+b.example.com+} location service. Johnston et al Expires - [-May-] {+October+} 2002 [Page [-50]-] {+56]+} SIP PSTN Call Flows [-November 2002-] {+April 2003+} 3.1 Successful PSTN to SIP call Switch A NGW 1 Proxy 1 Bob | | | | | IAM F1 | | | |--------------->| INVITE F2 | | | |--------------->| INVITE F3 | | | 100 F4 |--------------->| | |<---------------| | | | | 180 F5 | | | 180 F6 |<---------------| | ACM F7 |<---------------| | |<---------------| | | | One Way Voice | | | |<===============| | | | Ringing Tone | | 200 F8 | |<===============| 200 F9 |<---------------| | |<---------------| | | | ACK F10 | | | ANM F12 |--------------->| ACK F11 | |<---------------| |--------------->| | Both Way Voice | Both Way RTP Media | |<==============>|<===============================>| | REL F13 | | | |--------------->| | | | RLC F14 | | | |<---------------| BYE F15 | | | |--------------->| BYE F16 | | | |--------------->| | | | 200 F17 | | | 200 F18 |<---------------| | |<---------------| | | | | | In this scenario, Alice from the PSTN calls Bob through a Network Gateway NGW1 and Proxy Server Proxy 1. When Bob answers the call the media path is setup end-to-end. The call terminates when Alice hangs up the call, with Alice's telephone switch sending an ISUP RELease message which is mapped to a BYE by NGW 1. Message Details F1 IAM Alice -> NGW 1 IAM CgPN=314-555-1111,NPI=E.164,NOA=National CdPN=972-555-2222,NPI=E.164,NOA=National Johnston et al Expires - [-May-] {+October+