diff options
Diffstat (limited to 'doc/rfc/rfc3666.txt')
-rw-r--r-- | doc/rfc/rfc3666.txt | 6611 |
1 files changed, 6611 insertions, 0 deletions
diff --git a/doc/rfc/rfc3666.txt b/doc/rfc/rfc3666.txt new file mode 100644 index 0000000..334f1fd --- /dev/null +++ b/doc/rfc/rfc3666.txt @@ -0,0 +1,6611 @@ + + + + + + +Network Working Group A. Johnston +Request for Comments: 3666 MCI +BCP: 76 S. Donovan +Category: Best Current Practice R. Sparks + C. Cunningham + dynamicsoft + K. Summers + Sonus + December 2003 + + + Session Initiation Protocol (SIP) + Public Switched Telephone Network (PSTN) Call Flows + +Status of this Memo + + This document specifies an Internet Best Current Practices for the + Internet Community, and requests discussion and suggestions for + improvements. Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (2003). All Rights Reserved. + +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. Best Current Practice [Page 1] + +RFC 3666 SIP PSTN Call Flows December 2003 + + +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..... 38 + 2.6. Unsuccessful SIP to PSTN: REL w/Cause from PSTN........ 45 + 2.7. Unsuccessful SIP to PSTN: ANM Timeout.................. 49 + 3. PSTN to SIP Dialing.......................................... 54 + 3.1. Successful PSTN to SIP call............................ 55 + 3.2. Successful PSTN to SIP call, Fast Answer............... 62 + 3.3. Successful PBX to SIP call............................. 68 + 3.4. Unsuccessful PSTN to SIP REL, SIP error mapped to REL.. 74 + 3.5. Unsuccessful PSTN to SIP REL, SIP busy mapped to REL... 76 + 3.6. Unsuccessful PSTN->SIP, SIP error interworking to tones 80 + 3.7. Unsuccessful PSTN->SIP, ACM timeout.................... 84 + 3.8. Unsuccessful PSTN->SIP, ACM timeout, stateless Proxy... 88 + 3.9. Unsuccessful PSTN->SIP, Caller Abandonment............. 91 + 4. PSTN to PSTN Dialing via SIP Network......................... 96 + 4.1. Successful ISUP PSTN to ISUP PSTN call................. 97 + 4.2. Successful FGB PBX to ISDN PBX call with overflow...... 105 + 5. Security Considerations...................................... 113 + 6. References................................................... 115 + 6.1. Normative References................................... 115 + 6.2. Informative References................................. 115 + 7. Acknowledgments.............................................. 116 + 8. Intellectual Property Statement.............................. 116 + 9. Authors' Addresses........................................... 117 + 10. Full Copyright Statement..................................... 118 + +1. Overview + + The call flows shown in this document were developed in the design of + a SIP IP communications network. They represent an example of a + minimum set of functionality. + + It is the hope of the authors that this document will be useful for + SIP 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 + scenarios of the most common SIP/PSTN interworking examples as a + companion to the specifications. + + + +Johnston, et al. Best Current Practice [Page 2] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + 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 3398 [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 3665 [10]. + + 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 BCP 14, RFC 2119 [1]. + +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 HTTP 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 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 a Proxy or Gateway failure + downstream. + + + + + + + +Johnston, et al. Best Current Practice [Page 3] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + 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. + + 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 [6]. + + This document shows typical examples of SIP/ISUP interworking. + Although in the spirit of the SIP-T framework [7], 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 [8] 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. + + + + + +Johnston, et al. Best Current Practice [Page 4] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + 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. */ + +1.3. SIP Protocol Assumptions + + This document does not prescribe the flows precisely as they are + shown, 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 document for + convenience and are listed below. To sum up, the SIP/PSTN call flows + represent well-reviewed examples of SIP usage, which are best common + practice according to 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@a.example.com 192.0.2.101 + User Agent Bob sip:bob@b.example.com 192.0.2.200 + Proxy Server sip:ss1.a.example.com 192.0.2.111 + User Agent (Gateway) sip:gw1.a.example.com 192.0.2.201 + User Agent (Gateway) sip:gw2.a.example.com 192.0.2.202 + User Agent (Gateway) sip:gw3.a.example.com 192.0.2.203 + User Agent (Gateway) sip:ngw1.a.example.com 192.0.2.103 + User Agent (Gateway) sip:ngw2.a.example.com 192.0.2.102 + + Note that NGW 1 and NGW 2 also have device URIs (Contacts) of + sip:ngw1@a.example.com and sip:ngw2@a.example.com which resolve to + the Proxy Server sip:ss1.wcom.com using DNS SRV records. + + + + + + +Johnston, et al. Best Current Practice [Page 5] + +RFC 3666 SIP PSTN Call Flows December 2003 + + +2. SIP to PSTN Dialing + + In the following scenarios, Alice (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 Alice 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 which is 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. Best Current Practice [Page 6] + +RFC 3666 SIP PSTN Call Flows December 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@a.example.com) or + SIP telephone number (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 through the Network Gateway (NGW 1) to Bob (F5). Note + + + +Johnston, et al. Best Current Practice [Page 7] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + 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@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 resolves via + DNS to Proxy 1 (sip:ss1.a.example.com) which then resolves it to + 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.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:alice@client.a.example.com;transport=tcp> + Proxy-Authorization: Digest username="alice", realm="a.example.com", + nonce="dc3a5ab25302aa931904ba7d88fa1cf5", opaque="", + uri="sip:+19725552222@ss1.a.example.com;user=phone", + response="ccdca50cb091d587421457305d097458c" + 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 + + + + + + +Johnston, et al. Best Current Practice [Page 8] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F2 100 Trying Proxy 1 -> Alice + + SIP/2.0 100 Trying + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 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.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Max-Forwards: 69 + Record-Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:alice@client.a.example.com;transport=tcp> + 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 100 Trying NGW 1 -> Proxy 1 + + SIP/2.0 100 Trying + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + + + +Johnston, et al. Best Current Practice [Page 9] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + ;received=192.0.2.111 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 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.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Record-Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com;transport=tcp> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 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. Best Current Practice [Page 10] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + + + F8 183 Session Progress Proxy 1 -> Alice + + SIP/2.0 183 Session Progress + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Record-Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com;transport=tcp> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 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.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Record-Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com;transport=tcp> + Content-Type: application/sdp + + + +Johnston, et al. Best Current Practice [Page 11] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 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.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Record-Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com;transport=tcp> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 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@a.example.com SIP/2.0 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + Max-Forwards: 70 + Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 ACK + + + +Johnston, et al. Best Current Practice [Page 12] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + Content-Length: 0 + + + F13 ACK Proxy 1 -> NGW 1 + + ACK sip:ngw1@a.example.com SIP/2.0 + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Max-Forwards: 69 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 ACK + Content-Length: 0 + + /* Alice Hangs Up with Bob. */ + + + F14 BYE Alice -> Proxy 1 + + BYE sip:ngw1@a.example.com SIP/2.0 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + Max-Forwards: 70 + Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F15 BYE Proxy 1 -> NGW 1 + + BYE sip:ngw1@a.example.com SIP/2.0 + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Max-Forwards: 69 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + + + +Johnston, et al. Best Current Practice [Page 13] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + CSeq: 2 BYE + Content-Length: 0 + + + F16 200 OK NGW 1 -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 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.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 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. Best Current Practice [Page 14] + +RFC 3666 SIP PSTN Call Flows December 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. + + + + +Johnston, et al. Best Current Practice [Page 15] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + The host portion of the Request-URI in the INVITE F3 is used to + 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. Carol is identified by its extension (444-3333) in the + Request-URI sent to GW 1. + + Note that the Contact URI for GW 1, as used in messages F8, F9, F12, + and F13, is sips:4443333@gw1.a.example.com, which resolves 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.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sips:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Carol <sips:+19185553333@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 2 INVITE + Contact: <sips:alice@client.a.example.com> + Proxy-Authorization: Digest username="alice", + realm="a.example.com", nonce="qo0dc3a5ab22aa931904badfa1cf5j9h", + opaque="", uri="sips:+19185553333@ss1.a.example.com;user=phone", + response="6c792f5c9fa360358b93c7fb826bf550" + 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 + + + F2 100 Trying Proxy 1 -> Alice + + SIP/2.0 100 Trying + + + +Johnston, et al. Best Current Practice [Page 16] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sips:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Carol <sips:+19185553333@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 2 INVITE + Content-Length: 0 + + + F3 INVITE Proxy 1 -> GW 1 + + INVITE sips:4443333@gw1.a.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Max-Forwards: 69 + Record-Route: <sips:ss1.a.example.com;lr> + From: Alice <sips:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Carol <sips:+19185553333@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 2 INVITE + Contact: <sips:alice@client.a.example.com> + 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 100 Trying GW -> Proxy 1 + + SIP/2.0 100 Trying + Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + From: Alice <sips:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Carol <sips:+19185553333@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 2 INVITE + Content-Length: 0 + + + + +Johnston, et al. Best Current Practice [Page 17] + +RFC 3666 SIP PSTN Call Flows December 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.a.example.com:5061;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Record-Route: <sips:ss1.a.example.com;lr> + From: Alice <sips:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Carol <sips:+19185553333@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 2 INVITE + Contact: <sips:4443333@gw1.a.example.com> + Content-Length: 0 + + + + + + +Johnston, et al. Best Current Practice [Page 18] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F9 180 Ringing Proxy 1 -> Alice + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Record-Route: <sips:ss1.a.example.com;lr> + From: Alice <sips:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Carol <sips:+19185553333@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 2 INVITE + Contact: <sips:4443333@gw1.a.example.com> + 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.a.example.com:5061;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Record-Route: <sips:ss1.a.example.com;lr> + From: Alice <sips:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Carol <sips:+19185553333@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 2 INVITE + Contact: <sips:4443333@gw1.a.example.com> + Content-Type: application/sdp + Content-Length: 144 + + v=0 + o=GW 2890844527 2890844527 IN IP4 gw1.a.example.com + + + +Johnston, et al. Best Current Practice [Page 19] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + s=- + c=IN IP4 gw1.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/TLS client.a.example.com:5061;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Record-Route: <sips:ss1.a.example.com;lr> + From: Alice <sips:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Carol <sips:+19185553333@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 2 INVITE + Contact: <sips:4443333@gw1.a.example.com> + Content-Type: application/sdp + Content-Length: 144 + + v=0 + o=GW 2890844527 2890844527 IN IP4 gw1.a.example.com + s=- + c=IN IP4 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.a.example.com SIP/2.0 + Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9 + Max-Forwards: 70 + Route: <sips:ss1.a.example.com;lr> + From: Alice <sips:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Carol <sips:+19185553333@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 2 ACK + Content-Length: 0 + + + + + + +Johnston, et al. Best Current Practice [Page 20] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F15 ACK Proxy 1 -> GW 1 + + ACK sips:4443333@gw1.a.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Max-Forwards: 69 + From: Alice <sips:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Carol <sips:+19185553333@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 2 ACK + Content-Length: 0 + + /* Alice Hangs Up with Bob. */ + + + F16 BYE Alice -> Proxy 1 + + BYE sips:4443333@gw1.a.example.com SIP/2.0 + Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9 + Max-Forwards: 70 + Route: <sips:ss1.a.example.com;lr> + From: Alice <sips:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Carol <sips:+19185553333@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 3 BYE + Content-Length: 0 + + + F17 BYE Proxy 1 -> GW 1 + + BYE sips:4443333@gw1.a.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Max-Forwards: 69 + From: Alice <sips:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Carol <sips:+19185553333@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 3 BYE + Content-Length: 0 + + + + +Johnston, et al. Best Current Practice [Page 21] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F18 200 OK GW 1 -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sips:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Carol <sips:+19185553333@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 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.a.example.com:5061;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sips:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Carol <sips:+19185553333@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 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. Best Current Practice [Page 22] + +RFC 3666 SIP PSTN Call Flows December 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. + + + + + +Johnston, et al. Best Current Practice [Page 23] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + NGW 2 also only accepts SIP messages that come through Proxy 1, so + the Contact URI sip:ngw2@a.example.com is used in this flow. + + This flow shows UDP transport. + + Message Details + + F1 INVITE Alice -> Proxy 1 + + INVITE sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:alice@client.a.example.com> + Proxy-Authorization: Digest username="alice", + realm="a.example.com", nonce="b59311c3ba05b401cf80b2a2c5ac51b0", + opaque="", uri="sip:+19725552222@ss1.a.example.com;user=phone", + response="ba6ab44923fa2614b28e3e3957789ab0" + 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 + + /* 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.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Max-Forwards: 69 + Record-Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + + + +Johnston, et al. Best Current Practice [Page 24] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:alice@client.a.example.com> + 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 + + + F3 100 Trying Proxy 1 -> Alice + + SIP/2.0 100 Trying + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 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.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Record-Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=123456789 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + + + +Johnston, et al. Best Current Practice [Page 25] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F5 ACK Proxy 1 -> NGW 1 + + ACK sip:ngw1@a.example.com SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Max-Forwards: 70 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com>;user=phone> + ;tag=123456789 + Call-ID: 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.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Max-Forwards: 69 + Record-Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:alice@client.a.example.com> + 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 + + + F7 IAM NGW 2 -> Bob + + IAM + CdPN=972-555-2222,NPI=E.164,NOA=National + CgPN=314-555-1111,NPI=E.164,NOA=National + + + + +Johnston, et al. Best Current Practice [Page 26] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F8 ACM Bob -> NGW 2 + + ACM + + + F9 183 Session Progress NGW 2 -> Proxy 1 + + SIP/2.0 183 Session Progress + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2 + ;received=192.0.2.111 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Record-Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw2@a.example.com> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw2.a.example.com + s=- + c=IN IP4 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.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Record-Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw2@a.example.com> + Content-Type: application/sdp + + + +Johnston, et al. Best Current Practice [Page 27] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw2.a.example.com + s=- + c=IN IP4 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.a.example.com:5060;branch=z9hG4bK2d4790.2 + ;received=192.0.2.111 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Record-Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw2@a.example.com> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw2.a.example.com + s=- + c=IN IP4 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.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + + + +Johnston, et al. Best Current Practice [Page 28] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + Record-Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw2@a.example.com> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw2.a.example.com + s=- + c=IN IP4 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@a.example.com SIP/2.0 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + Max-Forwards: 70 + Route: <ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F15 ACK Proxy 1 -> NGW 2 + + ACK sip:ngw2@a.example.com SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Max-Forwards: 69 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 ACK + + + +Johnston, et al. Best Current Practice [Page 29] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + Content-Length: 0 + + /* RTP streams are established between A and B(via the GW) */ + + /* Alice Hangs Up with Bob. */ + + + F16 BYE Alice -> Proxy 1 + + BYE sip:ngw2@a.example.com SIP/2.0 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + Max-Forwards: 70 + Route: <ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F17 BYE Proxy 1 -> NGW 2 + + BYE sip:ngw2@a.example.com SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Max-Forwards: 69 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 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.a.example.com:5060;branch=z9hG4bK2d4790.2 + ;received=192.0.2.111 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + + + +Johnston, et al. Best Current Practice [Page 30] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F19 200 OK Proxy 1 -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 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. Best Current Practice [Page 31] + +RFC 3666 SIP PSTN Call Flows December 2003 + + +2.4. Successful SIP to SIP using ENUM Query + + Alice DNS Server Proxy 3 Bob + | | | | + | ENUM Query F1 | | | + |--------------->| | | + | Response F2 | | | + |<---------------| | | + | INVITE F3 | | + |-------------------------------->| INVITE F4 | + | 100 F5 |--------------->| + |<--------------------------------| 180 F6 | + | 180 F7 |<---------------| + |<--------------------------------| | + | | 200 F8 | + | 200 F9 |<---------------| + |<--------------------------------| | + | ACK F10 | | + |-------------------------------->| ACK F11 | + | |--------------->| + | Both Way RTP Media | + |<================================================>| + | | BYE F12 | + | BYE F13 |<---------------| + |<--------------------------------| | + | 200 F14 | | + |-------------------------------->| 200 F15 | + | |--------------->| + | | | + + 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), and performs an ENUM query [9] 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. Best Current Practice [Page 32] + +RFC 3666 SIP PSTN Call Flows December 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: <sip:+13145551111@a.example.com>;tag=9fxced76sl + To: <tel:+19725552222> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 2 INVITE + Contact: <sip:+13145551111@client.a.example.com> + 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: <sip:ss3.b.example.com;lr> + From: <sip:+13145551111@a.example.com>;tag=9fxced76sl + To: <tel:+19725552222> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 2 INVITE + Contact: <sip:+13145551111@client.a.example.com> + Content-Type: application/sdp + Content-Length: 154 + + v=0 + o=UserA 2890844526 2890844526 IN IP4 client.a.example.com + s=- + + + +Johnston, et al. Best Current Practice [Page 33] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + c=IN IP4 client.a.example.com + 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: <sip:+13145551111@a.example.com>;tag=9fxced76sl + To: <tel:+19725552222> + 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: <sip:ss3.b.example.com;lr> + From: <sip:+13145551111@a.example.com>;tag=9fxced76sl + To: <tel:+19725552222>;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 2 INVITE + Contact: <sip:+19725552222@client.b.example.com> + 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: <sip:ss3.b.example.com;lr> + From: <sip:+13145551111@a.example.com>;tag=9fxced76sl + To: <tel:+19725552222>;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 2 INVITE + Contact: <sip:+19725552222@client.b.example.com> + Content-Length: 0 + + + + + +Johnston, et al. Best Current Practice [Page 34] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F8 200 OK Bob -> 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.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Record-Route: <sip:ss3.b.example.com;lr> + From: <sip:+13145551111@a.example.com>;tag=9fxced76sl + To: <tel:+19725552222>;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 2 INVITE + Contact: <sip:+19725552222@client.b.example.com;transport=tcp> + 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: <sip:ss3.b.example.com;lr> + From: <sip:+13145551111@a.example.com>;tag=9fxced76sl + To: <tel:+19725552222>;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 2 INVITE + Contact: <sip:+19725552222@client.b.example.com> + 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 + + + + + +Johnston, et al. Best Current Practice [Page 35] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F10 ACK Alice -> Proxy 3 + + ACK sip:+19725552222@client.b.example.com SIP/2.0 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bq9 + Max-Forwards: 70 + Route: <sip:ss3.b.example.com;lr> + From: <sip:+13145551111@a.example.com>;tag=9fxced76sl + To: <tel:+19725552222>;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: <sip:+13145551111@a.example.com>;tag=9fxced76sl + To: <tel:+19725552222>;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: <sip:ss3.b.example.com;lr> + From: <tel:+19725552222>;tag=314159 + To: <sip:+13145551111@a.example.com>;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 + + + +Johnston, et al. Best Current Practice [Page 36] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + 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 + From: <tel:+19725552222>;tag=314159 + To: <sip:+13145551111@a.example.com>;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: <tel:+19725552222>;tag=314159 + To: <sip:+13145551111@a.example.com>;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: <tel:+19725552222>;tag=314159 + To: <sip:+13145551111@a.example.com>;tag=9fxced76sl + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 BYE + Content-Length: 0 + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 37] + +RFC 3666 SIP PSTN Call Flows December 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.) + + + + + + + +Johnston, et al. Best Current Practice [Page 38] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + Message Details + + F1 INVITE Alice -> Proxy 1 + + INVITE sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:alice@client.a.example.com> + Proxy-Authorization: Digest username="alice", + realm="a.example.com", nonce="01cf8311c3b0b2a2c5ac51bb59a05b40", + opaque="", uri="sip:+19725552222@ss1.a.example.com;user=phone", + response="e178fbe430e6680a1690261af8831f40" + 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 + + + F2 100 Trying Proxy 1 -> A + + SIP/2.0 100 Trying + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 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. */ + + + + + + +Johnston, et al. Best Current Practice [Page 39] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F3 INVITE Proxy 1 -> NGW 1 + + INVITE sip:+19725552222@ngw1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Max-Forwards: 69 + Record-Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:alice@client.a.example.com> + 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 100 Trying NGW 1 -> Proxy 1 + + SIP/2.0 100 Trying + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 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 + + + + + +Johnston, et al. Best Current Practice [Page 40] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F6 ACM Bob -> NGW 1 + + ACM + + + F7 183 Session Progress NGW 1 -> Proxy 1 + + SIP/2.0 183 Session Progress + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Record-Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 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.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Record-Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com> + Content-Type: application/sdp + Content-Length: 146 + + + + +Johnston, et al. Best Current Practice [Page 41] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 ngw1.a.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + /* Caller hears the recorded announcement, then hangs up */ + + + F9 CANCEL Alice -> Proxy 1 + + CANCEL sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 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.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 CANCEL + Content-Length: 0 + + + F11 CANCEL Proxy 1 -> NGW 1 + + CANCEL sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Max-Forwards: 70 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 CANCEL + Content-Length: 0 + + + +Johnston, et al. Best Current Practice [Page 42] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F12 200 OK NGW 1 -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 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.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F16 ACK Proxy 1 -> NGW 1 + + ACK sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Max-Forwards: 70 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + + + +Johnston, et al. Best Current Practice [Page 43] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F17 487 Request Terminated Proxy 1 -> A + + SIP/2.0 487 Request Terminated + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F18 ACK Alice -> Proxy 1 + + ACK sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 ACK + Content-Length: 0 + + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 44] + +RFC 3666 SIP PSTN Call Flows December 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.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+44-1234@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:alice@client.a.example.com;transport=tcp> + Proxy-Authorization: Digest username="alice", + realm="a.example.com", nonce="j1c3b0b01cf832da2c5ac51bb59a05b40", + opaque="", uri="sip:+44-1234@ss1.a.example.com;user=phone", + + + +Johnston, et al. Best Current Practice [Page 45] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + response="a451358d46b55512863efe1dccaa2f42" + 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 + + + F2 100 Trying Proxy 1 -> A + + SIP/2.0 100 Trying + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+44-1234@ss1.a.example.com;user=phone> + Call-ID: 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.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Max-Forwards: 69 + Record-Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+44-1234@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:alice@client.a.example.com;transport=tcp> + Content-Type: application/sdp + Content-Length: 154 + + + + +Johnston, et al. Best Current Practice [Page 46] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + 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 100 Trying NGW 1 -> Proxy 1 + + SIP/2.0 100 Trying + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+44-1234@ss1.a.example.com;user=phone> + Call-ID: 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 */ + + + + + + + + +Johnston, et al. Best Current Practice [Page 47] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F8 404 Not Found NGW 1 -> Proxy 1 + + SIP/2.0 404 Not Found + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+44-1234@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Error-Info: <sip:not-found-ann@ann.a.example.com> + Content-Length: 0 + + + F9 ACK Proxy 1 -> NGW 1 + + ACK sip:+44-1234@ngw1.a.example.com;user=phone SIP/2.0 + Max-Forwards: 70 + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+44-1234@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 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.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+44-1234@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Error-Info: <sip:not-found-ann@ann.a.example.com> + Content-Length: 0 + + + F11 ACK Alice -> Proxy 1 + + ACK sip:+44-1234@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + Max-Forwards: 70 + + + +Johnston, et al. Best Current Practice [Page 48] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+44-1234@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 ACK + Content-Length: 0 + +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. + + + + + + + + + +Johnston, et al. Best Current Practice [Page 49] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + Message Details + + F1 INVITE Alice -> Proxy 1 + + INVITE sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:alice@client.a.example.com;transport=tcp> + Proxy-Authorization: Digest username="alice", + realm="a.example.com", nonce="da2c5ac51bb59a05j1c3b0b01cf832b40", + opaque="", uri="sip:+19725552222@ss1.a.example.com;user=phone", + response="579cb9db184cdc25bf816f37cbc03c7d" + 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 + + /* 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.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + + + + +Johnston, et al. Best Current Practice [Page 50] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F3 INVITE Proxy 1 -> NGW 1 + + INVITE sip:+19725552222@ngw1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Max-Forwards: 69 + Record-Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:alice@client.a.example.com;transport=tcp> + 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 100 Trying NGW 1 -> Proxy 1 + + SIP/2.0 100 Trying + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 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 + + + + + +Johnston, et al. Best Current Practice [Page 51] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + 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.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Record-Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com;transport=tcp> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 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.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + Record-Route: <sip:ss1.a.example.com;lr> + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com;transport=tcp> + Content-Type: application/sdp + Content-Length: 146 + + + + +Johnston, et al. Best Current Practice [Page 52] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 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 + + 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.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Error-Info: <sip:temp-unavail-ann@ann.a.example.com> + Content-Length: 0 + + + F12 ACK Proxy 1 -> NGW 1 + + ACK sip:ngw1@a.example.com SIP/2.0 + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Max-Forwards: 70 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + + + +Johnston, et al. Best Current Practice [Page 53] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 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.a.example.com:5060;branch=z9hG4bK74bf9 + ;received=192.0.2.101 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 INVITE + Error-Info: <sip:temp-unavail-ann@ann.a.example.com> + Content-Length: 0 + + + F14 ACK Alice -> Proxy 1 + + ACK sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 + Max-Forwards: 70 + Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9 + From: Alice <sip:+13145551111@ss1.a.example.com;user=phone> + ;tag=9fxced76sl + To: Bob <sip:+19725552222@ss1.a.example.com;user=phone> + ;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@a.example.com + CSeq: 1 ACK + Content-Length: 0 + +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 + + + + + +Johnston, et al. Best Current Practice [Page 54] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + 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 a.example.com proxy server has + access to the b.example.com location service. + +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 that is mapped to a BYE by NGW 1. + + + + +Johnston, et al. Best Current Practice [Page 55] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + 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 + + + F2 INVITE Alice -> Proxy 1 + + INVITE sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + Max-Forwards: 70 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 ngw1.a.example.com + t=0 0 + m=audio 3456 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. NGW 1 prepares to receive data on port 3456 from Alice.*/ + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 56] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F3 INVITE Proxy 1 -> Bob + + INVITE sip:bob@client.b.example.com SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Max-Forwards: 69 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 ngw1.a.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F4 100 Trying Bob -> Proxy 1 + + SIP/2.0 100 Trying + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F5 180 Ringing Bob -> Proxy 1 + + SIP/2.0 180 Ringing + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + + + +Johnston, et al. Best Current Practice [Page 57] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:bob@client.b.example.com> + Content-Length: 0 + + + F6 180 Ringing Proxy 1 -> NGW 1 + + SIP/2.0 180 Ringing + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:bob@client.b.example.com> + Content-Length: 0 + + + F7 ACM NGW 1 -> Alice + + ACM + + + F8 200 OK Bob -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + Contact: <sip:bob@client.b.example.com> + CSeq: 1 INVITE + 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 + + + +Johnston, et al. Best Current Practice [Page 58] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + a=rtpmap:0 PCMU/8000 + + + F9 200 OK Proxy 1 -> NGW 1 + + SIP/2.0 200 OK + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:bob@client.b.example.com> + 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 + + + F10 ACK NGW 1 -> Proxy 1 + + ACK sip:bob@client.b.example.com SIP/2.0 + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + Max-Forwards: 70 + Route: <sip:ss1.a.example.com;lr> + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F11 ACK Proxy 1 -> Bob + + ACK sip:bob@client.b.example.com SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Max-Forwards: 69 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + + + +Johnston, et al. Best Current Practice [Page 59] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F12 ANM Bob -> NGW 1 + + ANM + + /* RTP streams are established between A and B (via the GW) */ + + /* Alice Hangs Up with Bob. */ + + + F13 REL Alice -> NGW 1 + + REL + CauseCode=16 Normal + + + F14 RLC NGW 1 -> Alice + + RLC + + + F15 BYE NGW 1-> Proxy 1 + + BYE sip:bob@client.b.example.com SIP/2.0 + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + Max-Forwards: 70 + Route: <sip:ss1.a.example.com;lr> + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F16 BYE Proxy 1 -> Bob + + BYE sip:bob@client.b.example.com SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Max-Forwards: 69 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + + + +Johnston, et al. Best Current Practice [Page 60] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + CSeq: 2 BYE + Content-Length: 0 + + + F17 200 OK Bob -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F18 200 OK Proxy 1 -> NGW 1 + + SIP/2.0 200 OK + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 2 BYE + Content-Length: 0 + + + + + + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 61] + +RFC 3666 SIP PSTN Call Flows December 2003 + + +3.2. Successful PSTN to SIP call, Fast Answer + + Switch A NGW 1 Proxy 1 Bob + | | | | + | IAM F1 | | | + |--------------->| INVITE F2 | | + | |--------------->| INVITE F3 | + | | 100 F4 |--------------->| + | |<---------------| | + | | | 200 F5 | + | | 200 F6 |<---------------| + | |<---------------| | + | | ACK F7 | | + | ANM F9 |--------------->| ACK F8 | + |<---------------| |--------------->| + | Both Way Voice | Both Way RTP Media | + |<==============>|<===============================>| + | REL F10 | | | + |--------------->| | | + | RLC F11 | | | + |<---------------| BYE F12 | | + | |--------------->| BYE F13 | + | | |--------------->| + | | | 200 F14 | + | | 200 F15 |<---------------| + | |<---------------| | + | | | | + + This "fast answer" scenario is similar to 3.1., except that Bob + immediately accepts the call, sending a 200 OK (F5) without sending a + 180 Ringing response. The Gateway then sends an Answer Message (ANM) + without sending an Address Complete Message (ACM). Note that for + ETSI and some other ISUP variants, a CONnect message (CON) would be + sent instead of the ANM. + + 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 + + + F2 INVITE NGW 1 -> Proxy 1 + + INVITE sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + + + +Johnston, et al. Best Current Practice [Page 62] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + Max-Forwards: 70 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com;transport=tcp> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 ngw1.a.example.com + t=0 0 + m=audio 3456 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 User + B. Bob prepares to receive data on port 3456 from Alice.*/ + + + F3 INVITE Proxy 1 -> Bob + + INVITE bob@b.example.com SIP/2.0 + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Max-Forwards: 69 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com;transport=tcp> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 ngw1.a.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + + + + +Johnston, et al. Best Current Practice [Page 63] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F4 100 Trying Proxy 1 -> NGW 1 + + SIP/2.0 100 Trying + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.201 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F5 200 OK Bob -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:bob@client.b.example.com;transport=tcp> + 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 + + + F6 200 OK Proxy 1 -> NGW 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:bob@client.b.example.com;transport=tcp> + + + +Johnston, et al. Best Current Practice [Page 64] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + 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 + + + F7 ACK NGW 1 -> Proxy 1 + + ACK bob@client.b.example.com SIP/2.0 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + Max-Forwards: 70 + Route: <sip:ss1.a.example.com;lr> + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F8 ACK Proxy 1 -> Bob + + ACK bob@client.b.example.com SIP/2.0 + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=130.131.132.14 + Max-Forwards: 69 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F9 ANM Bob -> NGW 1 + + ANM + + /* RTP streams are established between A and B (via the GW) */ + + /* Alice Hangs Up with Bob. */ + + + + + +Johnston, et al. Best Current Practice [Page 65] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F10 REL ser Alice -> NGW 1 + + REL + CauseCode=16 Normal + + + F11 RLC NGW 1 -> Alice + + RLC + + + F12 BYE NGW 1 -> Proxy 1 + + BYE sip:bob@client.b.example.com SIP/2.0 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + Max-Forwards: 70 + Route: <sip:ss1.a.example.com;lr> + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F13 BYE Proxy 1 -> Bob + + BYE sip:bob@client.b.example.com SIP/2.0 + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Max-Forwards: 69 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F14 200 OK Bob -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + + + +Johnston, et al. Best Current Practice [Page 66] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + CSeq: 2 BYE + Content-Length: 0 + + + F15 200 OK Proxy 1 -> NGW 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 2 BYE + Content-Length: 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 67] + +RFC 3666 SIP PSTN Call Flows December 2003 + + +3.3. Successful PBX to SIP call + + PBX A GW 1 Proxy 1 Bob + | | | | + | Seizure | | | + |--------------->| | | + | Wink | | | + |<---------------| | | + | MF Digits F1 | | | + |--------------->| INVITE F2 | | + | |--------------->| INVITE F3 | + | | 100 F4 |--------------->| + | |<---------------| | + | | | 180 F5 | + | | 180 F6 |<---------------| + | |<---------------| | + | One Way Voice | | | + |<===============| | | + | Ringing Tone | | 200 F7 | + |<===============| 200 F8 |<---------------| + | |<---------------| | + | | ACK F9 | | + | Seizure |--------------->| ACK F10 | + |<---------------| |--------------->| + | Both Way Voice | Both Way RTP Media | + |<==============>|<===============================>| + | Seizure Removal| | | + |--------------->| | | + | Seizure Removal| | | + |<---------------| BYE F11 | | + | |--------------->| BYE F12 | + | | |--------------->| + | | | 200 F13 | + | | 200 F14 |<---------------| + | |<---------------| | + | | | | + + In this scenario, Alice dials from PBX A to Bob through GW 1 and + Proxy 1. This is an example of a call that appears destined for the + PSTN but is instead routed to a SIP Client. + + Signaling between PBX A and GW 1 is Feature Group B (FGB) circuit + associated signaling, in-band Mult-Frequency (MF) outpulsing. After + the receipt of the 180 Ringing from Bob, GW 1 generates a ringing + tone for Alice. + + Bob answers the call by sending a 200 OK. The call terminates when + Alice hangs up, causing GW1 to send a BYE. + + + +Johnston, et al. Best Current Practice [Page 68] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + The Gateway can only identify the trunk group that the call came in + on; it cannot identify the individual line on PBX A that is placing + the call. The SIP URI used to identify the caller is shown in these + flows as sip:551313@gw1.a.example.com. + + Message Details + + PBX Alice -> GW 1 + + Seizure + + GW 1 -> PBX A + + Wink + + F1 MF Digits PBX Alice -> GW 1 + + KP 1 972 555 2222 ST + + + F2 INVITE GW 1 -> Proxy 1 + + INVITE sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + Max-Forwards: 70 + From: <sip:551313@gw1.a.example.com;user=phone>;tag=jwdkallkzm + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:551313@gw1.a.example.com;user=phone> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 gw1.a.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + /* Proxy 1 uses a Location Service function to determine where the + phone number +19725552222 is located. Based upon location + analysis the call is forwarded to SIP Bob. */ + + + + + + + +Johnston, et al. Best Current Practice [Page 69] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F3 INVITE Proxy 1 -> Bob + + INVITE sip:bob@client.b.example.com SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + ;received=192.0.2.201 + Max-Forwards: 69 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:551313@gw1.a.example.com;user=phone>;tag=jwdkallkzm + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:551313@gw1.a.example.com;user=phone> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 gw1.a.example.com + s=- + c=IN IP4 gw1.a.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F4 100 Trying Proxy 1 -> GW 1 + + SIP/2.0 100 Trying + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.201 + From: <sip:551313@gw1.a.example.com;user=phone>;tag=jwdkallkzm + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F5 180 Ringing Bob -> Proxy 1 + + SIP/2.0 180 Ringing + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.201 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:551313@gw1.a.example.com;user=phone>;tag=jwdkallkzm + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com + + + +Johnston, et al. Best Current Practice [Page 70] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + CSeq: 1 INVITE + Contact: <sip:bob@client.b.example.com> + Content-Length: 0 + + + F6 180 Ringing Proxy 1 -> GW 1 + + SIP/2.0 180 Ringing + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + ;received=192.0.2.201 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:551313@gw1.a.example.com;user=phone>;tag=jwdkallkzm + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:bob@client.b.example.com> + Content-Length: 0 + + /* One way Voice path is established between GW and the PBX for + ringing. */ + + + F7 200 OK Bob -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + ;received=192.0.2.201 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:551313@gw1.a.example.com;user=phone>;tag=jwdkallkzm + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com + Contact: <sip:bob@client.b.example.com> + CSeq: 1 INVITE + 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 + + + + + + +Johnston, et al. Best Current Practice [Page 71] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F8 200 OK Proxy 1 -> GW 1 + + SIP/2.0 200 OK + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + ;received=192.0.2.201 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:551313@gw1.a.example.com;user=phone>;tag=jwdkallkzm + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:bob@client.b.example.com> + 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 ACK GW 1 -> Proxy 1 + + ACK sip:bob@client.b.example.com SIP/2.0 + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + Max-Forwards: 70 + Route: <sip:ss1.a.example.com;lr> + From: <sip:551313@gw1.a.example.com;user=phone>;tag=jwdkallkzm + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F10 ACK Proxy 1 -> Bob + + ACK sip:bob@client.b.example.com SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + ;received=192.0.2.201 + Max-Forwards: 69 + From: <sip:551313@gw1.a.example.com;user=phone>;tag=jwdkallkzm + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 ACK + Content-Length: 0 + + + +Johnston, et al. Best Current Practice [Page 72] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + + /* RTP streams are established between A and B (via the GW) */ + + /* Alice Hangs Up with Bob. */ + + + F11 BYE GW 1 -> Proxy 1 + + BYE sip:bob@client.b.example.com SIP/2.0 + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + Max-Forwards: 70 + Route: <sip:ss1.a.example.com;lr> + From: <sip:551313@gw1.a.example.com;user=phone>;tag=jwdkallkzm + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F12 BYE Proxy 1 -> Bob + + BYE sip:bob@client.b.example.com SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + ;received=192.0.2.201 + Max-Forwards: 69 + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F13 200 OK Bob -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + ;received=192.0.2.201 + From: <sip:551313@gw1.a.example.com;user=phone>;tag=jwdkallkzm + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 2 BYE + Content-Length: 0 + + + + + + + +Johnston, et al. Best Current Practice [Page 73] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F14 200 OK Proxy 1 -> GW 1 + + SIP/2.0 200 OK + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + ;received=192.0.2.201 + From: <sip:551313@gw1.a.example.com;user=phone>;tag=jwdkallkzm + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com + CSeq: 2 BYE + Content-Length: 0 + +3.4. Unsuccessful PSTN to SIP REL, SIP error mapped to REL + + Switch A GW 1 Proxy 1 Bob + | | | | + | IAM F1 | | | + |--------------->| INVITE F2 | | + | |--------------->| | + | | 604 F3 | | + | |<---------------| | + | | ACK F4 | | + | |--------------->| | + | REL F5 | | | + |<---------------| | | + | RLC F6 | | | + |--------------->| | | + | | | | + + Alice attempts to place a call through Gateway GW 1 and Proxy 1, + which is unable to find any routing for the number. The call is + rejected by Proxy 1 with a REL message containing a specific Cause + value mapped by the gateway based on the SIP error. + + Message Details + + F1 IAM Alice -> GW 1 + + IAM + CgPN=314-555-1111,NPI=E.164,NOA=National + CdPN=972-555-9999,NPI=E.164,NOA=National + + + F2 INVITE Alice -> Proxy 1 + + INVITE sip:+1972559999@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + Max-Forwards: 70 + From: <sip:+13145551111@gw1.a.example.com;user=phone>;tag=076342s + + + +Johnston, et al. Best Current Practice [Page 74] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + To: <sip:+1972559999@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com + CSeq: 1 INVITE + Contact: + <sip:+13145551111@gw1.a.example.com;user=phone;transport=tcp> + Content-Type: application/sdp + Content-Length: 144 + + v=0 + o=GW 2890844527 2890844527 IN IP4 gw1.a.example.com + s=- + c=IN IP4 gw1.a.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + /* Proxy 1 uses a Location Service to find a route to +1-972-555- + 9999. A route is not found, so Proxy 1 rejects the call. */ + + + F3 604 Does Not Exist Anywhere Proxy 1 -> GW 1 + + SIP/2.0 604 Does Not Exist Anywhere + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.201 + From: <sip:+13145551111@gw1.a.example.com;user=phone>;tag=076342s + To: <sip:+1972559999@ss1.a.example.com;user=phone>;tag=6a34d410 + Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com + CSeq: 1 INVITE + Error-Info: <sip:does-not-exist@ann.a.example.com> + Content-Length: 0 + + + F4 ACK GW 1 -> Proxy 1 + + ACK sip:+1972559999@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + Max-Forwards: 70 + From: <sip:+13145551111@gw1.a.example.com;user=phone>;tag=076342s + To: <sip:+1972559999@ss1.a.example.com;user=phone>;tag=6a34d410 + Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com + CSeq: 1 ACK + Content-Length: 0 + + + + + + + + +Johnston, et al. Best Current Practice [Page 75] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F5 REL GW 1 -> Alice + + REL + CauseCode=1 + + + F6 RLC Alice -> GW 1 + + RLC + +3.5. Unsuccessful PSTN to SIP REL, SIP busy mapped to REL + + Switch A NGW 1 Proxy 1 Bob + | | | | + | IAM F1 | | | + |--------------->| INVITE F2 | | + | |--------------->| INVITE F3 | + | | 100 F4 |--------------->| + | |<---------------| | + | | | 600 F5 | + | | |<---------------| + | | | ACK F6 | + | | 600 F7 |--------------->| + | |<---------------| | + | | ACK F8 | | + | |--------------->| | + | REL(17) F9 | | | + |<---------------| | | + | RLC F10 | | | + |<-------------->| | | + | | | | + + In this scenario, Alice calls Bob through Network Gateway NGW 1 and + Proxy 1. The call is routed to Bob by Proxy 1. The call is rejected + by Bob who sends a 600 Busy Everywhere response. The Gateway sends a + REL message containing a specific Cause value mapped by the gateway + based on the SIP error. + + Since no interworking is indicated in the IAM (F1), the busy tone is + generated locally by Alice's telephone switch. In some scenarios, + the busy signal is generated by the Gateway since interworking is + indicated. For more discussion on interworking, refer to [4]. + + + + + + + + + +Johnston, et al. Best Current Practice [Page 76] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + 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 + + + F2 INVITE Alice -> Proxy 1 + + INVITE sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + Max-Forwards: 70 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com;transport=tcp> + Content-Type: application/sdp + Content-Length: 144 + + v=0 + o=GW 2890844527 2890844527 IN IP4 gw1.a.example.com + s=- + c=IN IP4 gw1.a.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + /* Proxy 1 uses a Location Service function to determine a route for + +19725552222. The call is then forwarded to Bob. */ + + + F3 INVITE F3 Proxy 1 -> Bob + + INVITE bob@b.example.com SIP/2.0 + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.201 + Max-Forwards: 69 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com;transport=tcp> + Content-Type: application/sdp + + + +Johnston, et al. Best Current Practice [Page 77] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + Content-Length: 144 + + v=0 + o=GW 2890844527 2890844527 IN IP4 gw1.a.example.com + s=- + c=IN IP4 gw1.a.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F4 100 Trying Proxy 1 -> NGW 1 + + SIP/2.0 100 Trying + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.201 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F5 600 Busy Everywhere Bob -> Proxy 1 + + SIP/2.0 600 Busy Everywhere + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.201 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F6 ACK Proxy 1 -> Bob + + ACK bob@b.example.com SIP/2.0 + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Max-Forwards: 70 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 ACK + Content-Length: 0 + + + + +Johnston, et al. Best Current Practice [Page 78] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + + F7 600 Busy Everywhere Proxy 1 -> NGW 1 + + SIP/2.0 600 Busy Everywhere + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.201 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F8 ACK NGW 1 -> Proxy 1 + + ACK bob@b.example.com SIP/2.0 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + Max-Forwards: 70 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F9 REL NGW 1 -> Alice + + REL + CauseCode=17 Busy + + + F10 RLC Alice -> NGW 1 + + RLC + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 79] + +RFC 3666 SIP PSTN Call Flows December 2003 + + +3.6. Unsuccessful PSTN->SIP, SIP error interworking to tones + + Switch A NGW 1 Proxy 1 Bob + | | | | + | IAM F1 | | | + |--------------->| INVITE F2 | | + | |--------------->| INVITE F3 | + | | 100 F4 |--------------->| + | |<---------------| | + | | | 600 F5 | + | | |<---------------| + | | | ACK F6 | + | | 600 F7 |--------------->| + | |<---------------| | + | | ACK F8 | | + | ACM F9 |--------------->| | + |<---------------| | | + | One Way Voice | | | + |<===============| | | + | Busy Tone | | | + |<===============| | | + | REL(16) F10 | | | + |--------------->| | | + | RLC F11 | | | + |<---------------| | | + | | | | + + In this scenario, Alice calls Bob through Network Gateway NGW 1 and + Proxy 1. The call is routed to Bob by Proxy 1. The call is rejected + by the Bob client. NGW 1 sets up a two way voice path to Alice and + plays busy tone. The caller then disconnects + + NGW 1 plays the busy tone since the IAM (F1) indicates the + interworking is present. In scenario 5.2.2., with no interworking, + the busy indication is carried in the REL Cause value and is + generated locally instead. + + Again, note that for ETSI or ITU ISUP, a CONnect message would be + sent instead of the Answer Message. + + 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 + Interworking=encountered + + + +Johnston, et al. Best Current Practice [Page 80] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + + F2 INVITE NGW1 -> Proxy 1 + + INVITE sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + Max-Forwards: 70 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com;transport=tcp> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 ngw1.a.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + /* Proxy 1 uses a Location Service function to determine a route for + +19725552222. The call is then forwarded to Bob. */ + + + F3 INVITE Proxy 1 -> Bob + + INVITE bob@b.example.com SIP/2.0 + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Max-Forwards: 69 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com;transport=tcp> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 ngw1.a.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + + + +Johnston, et al. Best Current Practice [Page 81] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + a=rtpmap:0 PCMU/8000 + + + F4 100 Trying Bob -> Proxy 1 + + SIP/2.0 100 Trying + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F5 600 Busy Everywhere Bob -> Proxy 1 + + SIP/2.0 600 Busy Everywhere + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F6 ACK Proxy 1 -> Bob + + ACK bob@b.example.com SIP/2.0 + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Max-Forwards: 70 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 ACK + Content-Length: 0 + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 82] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F7 600 Busy Everywhere Proxy 1 -> NGW 1 + + SIP/2.0 600 Busy Everywhere + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F8 ACK NGW 1 -> Proxy 1 + + ACK sip:ngw1@a.example.com SIP/2.0 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + Max-Forwards: 70 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F9 ACM NGW 1 -> Alice + + ACM + + /* A one way speech path is established between NGW 1 and Alice. */ + + /* Call Released after Alice hangs up. */ + + + F10 REL Alice -> NGW 1 + + REL + CauseCode=16 + + + F11 RLC NGW 1 -> Alice + + RLC + + + + + + + + + +Johnston, et al. Best Current Practice [Page 83] + +RFC 3666 SIP PSTN Call Flows December 2003 + + +3.7. Unsuccessful PSTN->SIP, ACM timeout + + Switch A NGW 1 Proxy 1 Bob + | | | | + | IAM F1 | | | + |--------------->| INVITE F2 | | + | |--------------->| INVITE F3 | + | | 100 F4 |--------------->| + | |<---------------| | + | | | INVITE F5 | + | | |--------------->| + | | | INVITE F6 | + | | |--------------->| + | | | INVITE F7 | + | | |--------------->| + | | | INVITE F8 | + | | |--------------->| + | | | INVITE F9 | + | | |--------------->| + | REL F10 | | | + |--------------->| | | + | RLC F11 | | | + |<---------------| | | + | | CANCEL F12 | | + | |--------------->| | + | | 200 F13 | | + | |<---------------| | + + Alice calls Bob through NGW 1 and Proxy 1. Proxy 1 re-sends the + INVITE after the expiration of SIP timer T1 without receiving any + response from Bob. Bob never responds with 180 Ringing or any other + response (it is reachable but unresponsive). After the expiration of + a timer, Alice's network disconnects the call by sending a Release + message REL. The Gateway maps this to a CANCEL. + + 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 + + + F2 INVITE Alice -> Proxy 1 + + INVITE sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + + + +Johnston, et al. Best Current Practice [Page 84] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + Max-Forwards: 70 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 ngw1.a.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + /* Proxy 1 uses a Location Service function to determine a route for + +19725552222. The call is then forwarded to Bob. */ + + + F3 INVITE Proxy 1 -> Bob + + INVITE sip:bob@b.example.com SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Max-Forwards: 69 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + c c=IN IP4 ngw1.a.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + + + + + + +Johnston, et al. Best Current Practice [Page 85] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F4 100 Trying Proxy 1 -> NGW 1 + + SIP/2.0 100 Trying + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F5 INVITE Proxy 1 -> Bob + + Same as Message F3 + + + F6 INVITE Proxy 1 -> Bob + + Same as Message F3 + + + F7 INVITE Proxy 1 -> Bob + + Same as Message F3 + + + F8 INVITE Proxy 1 -> Bob + + Same as Message F3 + + + F9 INVITE Proxy 1 -> Bob + + Same as Message F3 + + /* Timer expires in Alice's access network. */ + + + F10 REL Alice -> NGW 1 + + REL + CauseCode=16 Normal + + + F11 RLC NGW 1 -> Alice + + RLC + + + +Johnston, et al. Best Current Practice [Page 86] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F12 CANCEL NGW 1 -> Proxy 1 + + CANCEL sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + Max-Forwards: 70 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 CANCEL + Content-Length: 0 + + + F13 200 OK Proxy 1 -> NGW 1 + + SIP/2.0 200 OK + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 CANCEL + Content-Length: 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 87] + +RFC 3666 SIP PSTN Call Flows December 2003 + + +3.8. Unsuccessful PSTN->SIP, ACM timeout, stateless Proxy + + Switch A NGW 1 Stateless Proxy 1 Bob + | | | | + | IAM F1 | | | + |--------------->| INVITE F2 | | + | |--------------->| INVITE F3 | + | | INVITE F4 |--------------->| + | |--------------->| INVITE F5 | + | | INVITE F6 |--------------->| + | |--------------->| INVITE F7 | + | | INVITE F8 |--------------->| + | |--------------->| INVITE F9 | + | | INVITE F10 |--------------->| + | |--------------->| INVITE F11 | + | | INVITE F12 |--------------->| + | |--------------->| INVITE F13 | + | | |--------------->| + | REL F14 | | | + |--------------->| | | + | RLC F15 | | | + |<---------------| | | + + + In this scenario, Alice calls Bob through NGW 1 and Proxy 1. Since + Proxy 1 is stateless (it does not send a 100 Trying response), NGW 1 + re-sends the INVITE message after the expiration of SIP timer T1. + Bob does not respond with 180 Ringing. Alice's network disconnects + the call with a release REL (CauseCode=102 Timeout). + + 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 + + + F2 INVITE NGW 1 -> Proxy 1 + + INVITE sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + Max-Forwards: 70 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + + + +Johnston, et al. Best Current Practice [Page 88] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + Contact: <sip:ngw1@a.example.com> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 ngw1.a.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + /* Proxy 1 uses a Location Service function to determine a route for + +19725552222. The call is then forwarded to Bob. */ + + + F3 INVITE Proxy 1 -> Bob + + INVITE sip:bob@b.example.com SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.201 + Max-Forwards: 69 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 ngw1.a.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F4 INVITE NGW 1 -> Proxy 1 + + Same as Message F2 + + + F5 INVITE Proxy 1 -> Bob + + Same as Message F3 + + + +Johnston, et al. Best Current Practice [Page 89] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + + + F6 INVITE NGW 1 -> Proxy 1 + + Same as Message F2 + + + F7 INVITE Proxy 1 -> Bob + + Same as Message F3 + + + F8 INVITE NGW 1 -> Proxy 1 + + Same as Message F2 + + + F9 INVITE Proxy 1 -> Bob + + Same as Message F3 + + + F10 INVITE NGW 1 -> Proxy 1 + + Same as Message F2 + + + F11 INVITE Proxy 1 -> Bob + + Same as Message F3 + + + F12 INVITE NGW 1 -> Proxy 1 + + Same as Message F2 + + + F13 INVITE Proxy 1 -> Bob + + Same as Message F3 + + /* A timer expires in Alice's access network. */ + + + F14 REL Alice -> NGW 1 + + REL + CauseCode=102 Timeout + + + +Johnston, et al. Best Current Practice [Page 90] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + + + F15 RLC NGW 1 -> Alice + + RLC + +3.9. Unsuccessful PSTN->SIP, Caller Abandonment + + 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 | | | + |<===============| | | + | | | | + | REL F8 | | | + |--------------->| | | + | RLC F9 | | | + |<---------------| CANCEL F10 | | + | |--------------->| | + | | 200 F11 | | + | |<---------------| | + | | | CANCEL F12 | + | | |--------------->| + | | | 200 F13 | + | | |<---------------| + | | | 487 F14 | + | | |<---------------| + | | | ACK F15 | + | | 487 F16 |--------------->| + | |<---------------| | + | | ACK F17 | | + | |--------------->| | + | | | | + + In this scenario, Alice calls Bob through NGW 1 and Proxy 1. Bob + does not respond with 200 OK. NGW 1 plays ringing tone since the ACM + indicates that interworking has been encountered. Alice disconnects + the call with a Release message REL which is mapped by NGW 1 to a + + + +Johnston, et al. Best Current Practice [Page 91] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + CANCEL. Note that if Bob had sent a 200 OK response after the REL, + NGW 1 would have sent an ACK and then a BYE to properly terminate the + call. + + 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 + + + F2 INVITE Alice -> Proxy 1 + + INVITE sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + Max-Forwards: 70 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com;transport=tcp> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 ngw1.a.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + /* Proxy 1 uses a Location Service function to determine a route for + +19725552222. The call is then forwarded to Bob. */ + + + F3 INVITE Proxy 1 -> Bob + + INVITE sip:bob@b.example.com SIP/2.0 + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Max-Forwards: 69 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + + + +Johnston, et al. Best Current Practice [Page 92] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:ngw1@a.example.com;transport=tcp> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 ngw1.a.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F4 100 Trying Bob -> Proxy 1 + + SIP/2.0 100 Trying + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.201 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F5 180 Ringing Bob -> Proxy 1 + + SIP/2.0 180 Ringing + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:bob@client.b.example.com;transport=tcp> + Content-Length: 0 + + + F6 180 Ringing Proxy 1 -> NGW 1 + + SIP/2.0 180 Ringing + + + +Johnston, et al. Best Current Practice [Page 93] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:bob@client.b.example.com> + Content-Length: 0 + + + F7 ACM NGW 1 -> Alice + + ACM + + /* Alice hangs up */ + + + F8 REL Alice -> NGW 1 + + REL + CauseCode=16 Normal + + + F9 RLC NGW 1 -> Alice + + RLC + + + F10 CANCEL NGW 1 -> Proxy 1 + + CANCEL sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + Max-Forwards: 70 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 CANCEL + Content-Length: 0 + + + F11 200 OK Proxy 1 -> NGW 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + + + +Johnston, et al. Best Current Practice [Page 94] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 CANCEL + Content-Length: 0 + + + F12 CANCEL Proxy 1 -> Bob + + CANCEL sip:bob@b.example.com SIP/2.0 + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Max-Forwards: 70 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 CANCEL + Content-Length: 0 + + + F13 200 OK Bob -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone> + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 CANCEL + Content-Length: 0 + + + F14 487 Request Terminated Bob -> Proxy 1 + + SIP/2.0 487 Request Terminated + Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F15 ACK Proxy 1 -> Bob + + ACK sip:bob@b.example.com SIP/2.0 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + Max-Forwards: 70 + + + +Johnston, et al. Best Current Practice [Page 95] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F16 487 Request Terminated Proxy 1 -> NGW 1 + + SIP/2.0 487 Request Terminated + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F17 ACK NGW 1 -> Proxy 1 + + ACK sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 + Max-Forwards: 70 + From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com + CSeq: 1 ACK + Content-Length: 0 + +4. PSTN to PSTN Dialing via SIP Network + + In these scenarios, both the caller and the called party are in the + telephone network, either normal PSTN subscribers or PBX extensions. + The calls route through two Gateways and at least one SIP Proxy + Server. The Proxy Server performs the authentication and location of + the Gateways. + + Again it is noted that the intent of this call flows document is not + to provide a detailed parameter level mapping of SIP to PSTN + protocols. For information on SIP to ISUP mapping, the reader is + referred to other references [4]. + + In these scenarios, the call is successfully completed between the + two Gateways, allowing the PSTN or PBX users to communicate. The 183 + Session Progress response is used to indicate that in-band alerting + may flow from the called party telephone switch to the caller. + + + + +Johnston, et al. Best Current Practice [Page 96] + +RFC 3666 SIP PSTN Call Flows December 2003 + + +4.1. Successful ISUP PSTN to ISUP PSTN call + + Switch A NGW 1 Proxy 1 GW 2 Switch C + | | | | | + | IAM F1 | | | | + |------------->| | | | + | | INVITE F2 | | | + | |------------->| INVITE F3 | | + | | |------------->| IAM F4 | + | | | |------------->| + | | | | ACM F5 | + | | | 183 F6 |<-------------| + | | 183 F7 |<-------------| | + | ACM F8 |<-------------| | | + |<-------------| | | | + | One Way Voice| Two Way RTP Media | One Way Voice| + |<=============|<===========================>|<=============| + | | | | ANM F9 | + | | | 200 F10 |<-------------| + | | 200 F11 |<-------------| | + | ANM F12 |<-------------| | | + |<-------------| | | | + | | ACK F13 | | | + | |------------->| ACK F14 | | + | | |------------->| | + |Both Way Voice| Both Way RTP Media |Both Way Voice| + |<=============|<===========================>|<=============| + | | | | REL F15 | + | | | |<-------------| + | | | BYE F16 | | + | | BYE F18 |<-------------| RLC F17 | + | |<-------------| |------------->| + | | | | | + | | 200 F19 | | | + | |------------->| 200 F20 | | + | | |------------->| | + | REL F21 | | | | + |<-------------| | | | + | RLC F22 | | | | + |------------->| | | | + | | | | | + + In this scenario, Alice in the PSTN calls Carol who is an extension + on a PBX. Alice's telephone switch signals via SS7 to the Network + Gateway NGW 1, while Carol's PBX signals via SS7 with the Gateway GW + 2. The CdPN and CgPN are mapped by GW 1 into SIP URIs and placed in + the To and From headers. Proxy 1 looks up the dialed digits in the + Request-URI and maps the digits to the PBX extension of Carol, which + + + +Johnston, et al. Best Current Practice [Page 97] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + is served by GW 2. The Proxy in F3 uses the host portion of the + Request-URI to identify what private dialing plan is being + referenced. The INVITE is then forwarded to GW 2 for call + completion. An early media path is established end-to-end so that + Alice can hear the ringing tone generated by PBX C. + + Carol answers the call and the media path is cut through in both + directions. Bob hangs up terminating the call. + + Message Details + + F1 IAM Switch Alice -> NGW 1 + + IAM + CgPN=314-555-1111,NPI=E.164,NOA=National + CdPN=918-555-3333,NPI=E.164,NOA=National + + + F2 INVITE NGW 1 -> Proxy 1 + + INVITE sips:+19185553333@ss1.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TLS ngw1.a.example.com:5061;branch=z9hG4bKlueha2 + Max-Forwards: 70 + From: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sips:+19185553333@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sips:ngw1@a.example.com> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844526 2890844526 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 ngw1.a.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + /* Proxy 1 consults Location Service and translates the dialed number + to a private number in the Request-URI*/ + + + F3 INVITE Proxy 1 -> GW 2 + + INVITE sips:4443333@gw2.a.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/TLS ngw1.a.example.com:5061;branch=z9hG4bKwqwee65 + + + +Johnston, et al. Best Current Practice [Page 98] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + ;received=192.0.2.103 + Max-Forwards: 69 + Record-Route: <sips:ss1.a.example.com;lr> + From: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sips:+19185553333@ss1.a.example.com;user=phone> + Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sips:ngw1@a.example.com> + Content-Type: application/sdp + Content-Length: 146 + + v=0 + o=GW 2890844526 2890844526 IN IP4 ngw1.a.example.com + s=- + c=IN IP4 ngw1.a.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F4 IAM GW 2 -> Switch C + + IAM + CgPN=314-555-1111,NPI=E.164,NOA=National + CdPN=444-3333,NPI=Private,NOA=Subscriber + + + F5 ACM Switch C -> GW 2 + + ACM + + /* Based on the ACM message, GW 2 returns a 183 response. In-band + call progress indications are sent to Alice through NGW 1. */ + + + F6 183 Session Progress GW 2 -> Proxy 1 + + SIP/2.0 183 Session Progress + Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TLS ngw1.a.example.com:5061;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Record-Route: <sips:ss1.a.example.com;lr> + From: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sips:4443333@gw2.a.example.com> + + + +Johnston, et al. Best Current Practice [Page 99] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + Content-Type: application/sdp + Content-Length: 143 + + v=0 + o=GW 987654321 987654321 IN IP4 gw2.a.example.com + s=- + c=IN IP4 gw2.a.example.com + t=0 0 + m=audio 14918 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F7 183 Session Progress Proxy 1 -> GW 1 + + SIP/2.0 183 Session Progress + Via: SIP/2.0/TLS ngw1.a.example.com:5061;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Record-Route: <sips:ss1.a.example.com;lr> + From: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sips:4443333@gw2.a.example.com> + Content-Type: application/sdp + Content-Length: 143 + + v=0 + o=GW 987654321 987654321 IN IP4 gw2.a.example.com + s=- + c=IN IP4 gw2.a.example.com + t=0 0 + m=audio 14918 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + /* NGW 1 receives packets from GW 2 with encoded ringback, tones or + other audio. NGW 1 decodes this and places it on the originating + trunk. */ + + + F8 ACM NGW 1 -> Switch A + + ACM + + /* Bob answers */ + + + + + + + +Johnston, et al. Best Current Practice [Page 100] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F9 ANM Switch C -> GW 2 + + ANM + + + F10 200 OK GW 2 -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TLS ngw1.a.example.com:5061;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Record-Route: <sips:ss1.a.example.com;lr> + From: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sips:4443333@gw2.a.example.com> + Content-Type: application/sdp + Content-Length: 143 + + v=0 + o=GW 987654321 987654321 IN IP4 gw2.a.example.com + s=- + c=IN IP4 gw2.a.example.com + t=0 0 + m=audio 14918 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F11 200 OK Proxy 1 -> NGW 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ngw1.a.example.com:5061;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Record-Route: <sips:ss1.a.example.com;lr> + From: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com + CSeq: 1 INVITE + Contact: <sips:4443333@gw2.a.example.com> + Content-Type: application/sdp + Content-Length: 143 + + v=0 + o=GW 987654321 987654321 IN IP4 gw2.a.example.com + s=- + c=IN IP4 gw2.a.example.com + + + +Johnston, et al. Best Current Practice [Page 101] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + t=0 0 + m=audio 14918 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F12 ANM NGW 1 -> Switch A + + ANM + + + F13 ACK NGW 1 -> Proxy 1 + + ACK sips:4443333@gw2.a.example.com SIP/2.0 + Via: SIP/2.0/TLS ngw1.a.example.com:5061;branch=z9hG4bKlueha2 + Max-Forwards: 70 + Route: <sips:ss1.a.example.com;lr> + From: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F14 ACK Proxy 1 -> GW 2 + + ACK sips:4443333@gw2.a.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/TLS ngw1.a.example.com:5061;branch=z9hG4bKlueha2 + ;received=192.0.2.103 + Max-Forwards: 69 + From: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + To: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com + CSeq: 1 ACK + Content-Length: 0 + + /* RTP streams are established between NGW 1 and GW 2. */ + + /* Bob Hangs Up with Alice. */ + + + F15 REL Switch C -> GW 2 + + REL + CauseCode=16 Normal + + + + + + +Johnston, et al. Best Current Practice [Page 102] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F16 BYE GW 2 -> Proxy 1 + + BYE sips:ngw1@a.example.com SIP/2.0 + Via: SIP/2.0/TLS gw2.a.example.com:5061;branch=z9hG4bKtexx6 + Max-Forwards: 70 + Route: <sips:ss1.a.example.com;lr> + From: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 + To: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com + CSeq: 4 BYE + Content-Length: 0 + + + F17 RLC GW 2 -> Switch C + + RLC + + + F18 BYE Proxy 1 -> NGW 1 + + BYE sips:ngw1@a.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/TLS gw2.a.example.com:5061;branch=z9hG4bKtexx6 + ;received=192.0.2.202 + Max-Forwards: 69 + From: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 + To: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com + CSeq: 4 BYE + Content-Length: 0 + + + F19 200 OK NGW 1 -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/TLS gw2.a.example.com:5061;branch=z9hG4bKtexx6 + ;received=192.0.2.202 + From: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 + To: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com + CSeq: 4 BYE + Content-Length: 0 + + + + + + + +Johnston, et al. Best Current Practice [Page 103] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F20 200 OK Proxy 1 -> GW 2 + + SIP/2.0 200 OK + Via: SIP/2.0/TLS gw2.a.example.com:5061;branch=z9hG4bKtexx6 + ;received=192.0.2.202 + From: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 + To: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals + Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com + CSeq: 4 BYE + Content-Length: 0 + + + F21 REL Switch C -> GW 2 + + REL + CauseCode=16 Normal + + + F22 RLC GW 2 -> Switch C + + RLC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 104] + +RFC 3666 SIP PSTN Call Flows December 2003 + + +4.2. Successful FGB PBX to ISDN PBX call with overflow + + PBX A GW 1 Proxy 1 GW 2 GW 3 PBX C + | | | | | | + | Seizure | | | | | + |----------->| | | | | + | Wink | | | | | + |<-----------| | | | | + |MF Digits F1| | | | | + |----------->| | | | | + | | INVITE F2 | | | | + | |----------->| INVITE F3 | | | + | | |----------->| | | + | | | 503 F4 | | | + | | |<-----------| | | + | | | ACK F5 | | | + | | |----------->| | | + | | | INVITE F6 | | + | | |------------------------>| SETUP F7 | + | | | 100 F8 |----------->| + | | |<------------------------|CALL PROC F9| + | | | |<-----------| + | | | | ALERT F10 | + | | | 180 F11 |<-----------| + | | 180 F12 |<------------------------| | + | |<-----------| | | + | Ringtone | | |OneWay Voice| + |<===========| | |<===========| + | | | | CONNect F13| + | | | 200 F14 |<-----------| + | | 200 F15 |<------------------------| | + | Seizure |<-----------| | | + |<-----------| ACK F16 | | | + | |----------->| ACK F17 | | + | | |------------------------>|CONN ACK F18| + | | | |----------->| + |BothWayVoice| Both Way RTP Media |BothWayVoice| + |<==========>|<====================================>|<==========>| + | | | | DISC F19 | + | | | |<-----------| + | | | BYE F20 | | + | | BYE F21 |<------------------------| REL F22 | + |Seiz Removal|<-----------| |----------->| + |<-----------| 200 F23 | | | + |Seiz Removal|----------->| 200 F24 | | + |----------->| |------------------------>| REL COM F25| + | | | |<-----------| + | | | | | + + + +Johnston, et al. Best Current Practice [Page 105] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + + PBX Alice calls PBX Carol via Gateway GW 1 and Proxy 1. During the + attempt to reach Carol via GW 2, an error is encountered - Proxy 1 + receives a 503 Service Unavailable (F4) response to the forwarded + INVITE. This could be due to all circuits being busy, or some other + outage at GW 2. Proxy 1 recognizes the error and uses an alternative + route via GW 3 to terminate the call. From there, the call proceeds + normally with Carol answering the call. The call is terminated when + Carol hangs up. + + Message Details + + PBX Alice -> GW 1 + + Seizure + + GW 1 -> PBX A + + Wink + + F1 MF Digits PBX Alice -> GW 1 + + KP 444 3333 ST + + + F2 INVITE GW 1 -> Proxy 1 + + INVITE sip:4443333@ss1.a.example.com SIP/2.0 + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + Max-Forwards: 70 + From: <sip:551313@gw1.a.example.com>;tag=63412s + To: <sip:4443333@ss1.a.example.com> + Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:551313@gw1.a.example.com> + Content-Type: application/sdp + Content-Length: 155 + + v=0 + o=GW 2890844526 2890844526 IN IP4 gw1.a.example.com + s=- + c=IN IP4 gw1.a.example.com + t=0 0 + m=audio 49172 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + + + + +Johnston, et al. Best Current Practice [Page 106] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + /* Proxy 1 uses a Location Service function to determine where B is + located. Response is returned listing alternative routes, GW2 and + GW3, which are then tried sequentially. */ + + + F3 INVITE Proxy 1 -> GW 2 + + INVITE sip:4443333@gw2.a.example.com SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + ;received=192.0.2.201 + Max-Forwards: 69 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:551313@gw1.a.example.com>;tag=63412s + To: <sip:4443333@ss1.a.example.com> + Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:551313@gw1.a.example.com> + Content-Type: application/sdp + Content-Length: 155 + + v=0 + o=GW 2890844526 2890844526 IN IP4 gw1.a.example.com + s=- + c=IN IP4 gw1.a.example.com + t=0 0 + m=audio 49172 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F4 503 Service Unavailable GW 2 -> Proxy 1 + + SIP/2.0 503 Service Unavailable + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + ;received=192.0.2.111 + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + ;received=192.0.2.201 + From: <sip:551313@gw1.a.example.com>;tag=63412s + To: <sip:4443333@ss1.a.example.com>;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F5 ACK Proxy 1 -> GW 2 + + ACK sip:4443333@ss1.a.example.com SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 + + + +Johnston, et al. Best Current Practice [Page 107] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + ;received=192.0.2.201 + Max-Forward: 70 + From: <sip:551313@gw1.a.example.com>;tag=63412s + To: <sip:4443333@ss1.a.example.com>;tag=314159 + Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F6 INVITE Proxy 1 -> GW 3 + + INVITE sip:+19185553333@gw3.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2 + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + ;received=192.0.2.201 + Max-Forwards: 69 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:551313@gw1.a.example.com>;tag=63412s + To: <sip:4443333@ss1.a.example.com> + Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:551313@gw1.a.example.com> + Content-Type: application/sdp + Content-Length: 155 + + v=0 + o=GW 2890844526 2890844526 IN IP4 gw1.a.example.com + s=- + c=IN IP4 gw1.a.example.com + t=0 0 + m=audio 49172 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F7 SETUP GW 3 -> PBX C + + 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 and numbering plan ID=33 (National number in ISDN + numbering plan) + Digits=918-555-3333 + + + +Johnston, et al. Best Current Practice [Page 108] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + + + F8 100 Trying GW 3 -> Proxy 1 + + SIP/2.0 100 Trying + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + ;received=192.0.2.201 + From: <sip:551313@gw1.a.example.com>;tag=63412s + To: <sip:4443333@ss1.a.example.com> + Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F9 CALL PROCeeding PBX C -> GW 3 + + Protocol discriminator=Q.931 + Message type=CALL PROC + + + F10 ALERT PBX C -> GW 3 + + Protocol discriminator=Q.931 + Message type=PROG + + /* Based on ALERT message, GW 3 returns a 180 response. */ + + + F11 180 Ringing GW 3 -> Proxy 1 + + SIP/2.0 180 Ringing + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2 + ;received=192.0.2.111 + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + ;received=192.0.2.201 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:551313@gw1.a.example.com>;tag=63412s + To: <sip:4443333@ss1.a.example.com>;tag=123456789 + Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:+19185553333@gw3.a.example.com;user=phone> + Content-Length: 0 + + + F12 180 Ringing Proxy 1 -> GW 1 + + SIP/2.0 180 Ringing + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + + + +Johnston, et al. Best Current Practice [Page 109] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + ;received=192.0.2.201 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:551313@gw1.a.example.com>;tag=63412s + To: <sip:4443333@ss1.a.example.com>;tag=123456789 + Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:+19185553333@gw3.a.example.com;user=phone> + Content-Length: 0 + + + F13 CONNect PBX C -> GW 3 + + Protocol discriminator=Q.931 + Message type=CONN + + + F14 200 OK GW 3 -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2 + ;received=192.0.2.111 + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + ;received=192.0.2.201 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:551313@gw1.a.example.com>;tag=63412s + To: <sip:4443333@ss1.a.example.com>;tag=123456789 + Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:+19185553333@gw3.a.example.com;user=phone> + Content-Type: application/sdp + Content-Length: 143 + + v=0 + o=GW 987654321 987654321 IN IP4 gw3.a.example.com + s=- + c=IN IP4 gw3.a.example.com + t=0 0 + m=audio 14918 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F15 200 OK Proxy 1 -> GW 1 + + SIP/2.0 200 OK + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + ;received=192.0.2.201 + Record-Route: <sip:ss1.a.example.com;lr> + From: <sip:551313@gw1.a.example.com>;tag=63412s + + + +Johnston, et al. Best Current Practice [Page 110] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + To: <sip:4443333@ss1.a.example.com>;tag=123456789 + Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com + CSeq: 1 INVITE + Contact: <sip:+19185553333@gw3.a.example.com;user=phone> + Content-Type: application/sdp + Content-Length: 143 + + v=0 + o=GW 987654321 987654321 IN IP4 gw3.a.example.com + s=- + c=IN IP4 gw3.a.example.com + t=0 0 + m=audio 14918 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + GW 1 -> PBX A + + Seizure + + + F16 ACK GW 1 -> Proxy 1 + + ACK sip:+19185553333@gw3.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + Max-Forwards: 70 + Route: <sip:ss1.a.example.com;lr> + From: <sip:551313@gw1.a.example.com>;tag=63412s + To: <sip:4443333@ss1.a.example.com>;tag=123456789 + Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F17 ACK Proxy 1 -> GW 3 + + ACK sip:+19185553333@gw3.a.example.com;user=phone SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2 + Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 + ;received=192.0.2.201 + Max-Forwards: 69 + From: <sip:551313@gw1.a.example.com>;tag=63412s + To: <sip:4443333@ss1.a.example.com>;tag=123456789 + Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com + CSeq: 1 ACK + Content-Length: 0 + + + + + + +Johnston, et al. Best Current Practice [Page 111] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F18 CONNect ACK GW 3 -> PBX C + + Protocol discriminator=Q.931 + Message type=CONN ACK + + /* RTP streams are established between GW 1 and GW 3. */ + + /* Bob Hangs Up with Alice. */ + + + F19 DISConnect PBX C -> GW 3 + + Protocol discriminator=Q.931 + Message type=DISC + Cause=16 (Normal clearing) + + + F20 BYE GW 3 -> Proxy 1 + + BYE sip:551313@gw1.a.example.com SIP/2.0 + Via: SIP/2.0/UDP gw3.a.example.com:5060;branch=z9hG4bKkdjuwq + Max-Forwards: 70 + Route: <sip:ss1.a.example.com;lr> + From: <sip:4443333@ss1.a.example.com>;tag=123456789 + To: <sip:551313@gw1.a.example.com>;tag=63412s + Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com + CSeq: 1 BYE + Content-Length: 0 + + + F21 BYE Proxy 1 -> GW 1 + + BYE sip:551313@gw1.a.example.com SIP/2.0 + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2 + Via: SIP/2.0/UDP gw3.a.example.com:5060;branch=z9hG4bKkdjuwq + ;received=192.0.2.203 + Max-Forwards: 69 + From: <sip:4443333@ss1.a.example.com>;tag=123456789 + To: <sip:551313@gw1.a.example.com>;tag=63412s + Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com + CSeq: 1 BYE + Content-Length: 0 + + GW 1 -> PBX A + + Seizure removal + + + + + +Johnston, et al. Best Current Practice [Page 112] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + F22 RELease GW 3 -> PBX C + + Protocol discriminator=Q.931 + Message type=REL + + + F23 200 OK GW 1 -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2 + ;received=192.0.2.111 + Via: SIP/2.0/UDP gw3.a.example.com:5060;branch=z9hG4bKkdjuwq + ;received=192.0.2.203 + From: <sip:4443333@ss1.a.example.com>;tag=123456789 + To: <sip:551313@gw1.a.example.com>;tag=63412s + Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com + CSeq: 1 BYE + Content-Length: 0 + + + F24 200 OK Proxy 1 -> GW 3 + + SIP/2.0 200 OK + Via: SIP/2.0/UDP gw3.a.example.com:5060;branch=z9hG4bKkdjuwq + ;received=192.0.2.203 + From: <sip:4443333@ss1.a.example.com>;tag=123456789 + To: <sip:551313@gw1.a.example.com>;tag=63412s + Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com + CSeq: 1 BYE + Content-Length: 0 + + + F25 RELease COMplete PBX C -> GW 3 + + Protocol discriminator=Q.931 + Message type=REL COM + + PBX Alice -> GW 1 + + Seizure removal + +5. Security Considerations + + This document provides examples of mapping from SIP to ISUP and ISUP + to SIP. The gateways in these examples are compliant with the + Security Considerations Section of RFC 3398 [4] which is summarized + here. + + + + +Johnston, et al. Best Current Practice [Page 113] + +RFC 3666 SIP PSTN Call Flows December 2003 + + + There are few security concerns relating to the mapping of ISUP to + SIP besides privacy considerations in the calling party number + passing. Some concerns relating to the mapping from tel URI + parameters to ISUP include the user creation of parameters and codes + relating to called number and local number portability (LNP). An + operator of a gateway should use policies similar to those present in + PSTN switches to avoid security problems. + + The mapping from a SIP response code to an ISUP Cause Code presents a + theoretical risk, so a gateway operator may implement policies + controlling this mapping. Gateways should also not rely on the + contents of the From header field for identity information, as it may + be arbitrarily populated by a user. Instead, some sort of + cryptographic authentication and authorization should be used for + identity determination. These flows show both HTTP Digest for + authentication of users, although for brevity, the challenge is not + always shown. + + The early media cut-through shown in some flows is another potential + security risk, but it is also required for proper interaction with + the PSTN. Again, a gateway operator should use proper policies + relating to early media to prevent fraud and misuse. Finally, a user + agent (even a properly authenticated one) can launch multiple + simultaneous requests through a gateway, constituting a denial of + service attack. The adoption of policies to limit the number of + simultaneous requests from a single entity may be used to prevent + this attack. + + As discussed in the SIP-T framework [7], SIP/ISUP interworking can be + employed as an interdomain signaling mechanism that may be subject to + pre-existing trust relationships between administrative domains. Any + administrative domain implementing SIP-T or SIP/ISUP interworking + should have an adequate security apparatus (including elements that + manage any appropriate policies to manage fraud and billing in an + interdomain environment) in place to ensure that the translation of + ISUP information does not result in any security violations. + + Although no examples of this are shown in this document, transporting + ISUP in SIP bodies may provide opportunities for abuse, fraud, and + privacy concerns, especially when SIP-T requests can be generated, + inspected or modified by arbitrary SIP endpoints. ISUP MIME bodies + should be secured (preferably with S/MIME as detailed in RFC 3261 + [2]) to alleviate this concern. Authentication properties provided + by S/MIME would allow the recipient of a SIP-T message to ensure that + the ISUP MIME body was generated by an authorized entity. Encryption + would ensure that only carriers possessing a particular decryption + key are capable of inspecting encapsulated ISUP MIME bodies in a SIP + request. + + + +Johnston, et al. Best Current Practice [Page 114] + +RFC 3666 SIP PSTN Call Flows December 2003 + + +6. References + +6.1. Normative References + + [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement + Levels", BCP 14, RFC 2119, March 1997. + + [2] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., + Peterson, J., Sparks, R., Handley, M. E. and Schooler, "SIP: + Session Initiation Protocol", RFC 3261, June 2002. + + [3] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with + the Session Description Protocol (SDP)", RFC 3264, June 2002. + + [4] Camarillo, G., Roach, A. B., Peterson, J. and L. Ong, + "Integrated Services Digital Network (ISDN) User Part (ISUP) to + Session Initiation Protocol (SIP) Mapping", RFC 3398, December + 2002. + + [5] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., + Leach, P., Luotonen, A. and L. Stewart, "HTTP Authentication: + Basic and Digest Access Authentication", RFC 2617, June 1999. + + [6] Vaha-Sipila, A., "URLs for Telephone Calls", RFC 2806, April + 2000. + + [7] Vemuri, A. and J. Peterson, "Session Initiation Protocol for + Telephones (SIP-T): Context and Architectures", BCP 63, RFC + 3372, September 2002. + + [8] Zimmerer, E., Peterson, J., Vemuri, A., Ong, L., Audet, F., + Watson, M. and M. Zonoun, "MIME media types for ISUP and QSIG + Objects", RFC 3204, December 2001. + + [9] Faltstrom, P., "E.164 number and DNS", RFC 2916, September 2000. + +6.2. Informative References + + [10] Johnston, A., Donovan, S., Sparks, R., Cunningham, C. and K. + Summers, "Session Initiation Protocol (SIP) Basic Call Flow + Examples", RFC 3665, December 2003. + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 115] + +RFC 3666 SIP PSTN Call Flows December 2003 + + +7. Acknowledgments + + Thanks to Rohan Mahy, Adam Roach, Gonzalo Camarillo, Cullen Jennings, + and Tom Taylor for their detailed comments during the final review. + Thanks to Dean Willis for his early contributions to the development + of this document. Thanks to Jon Peterson for his help on the + security section. + + The authors wish to thank Kundan Singh for performing parser + validation of messages. + + The authors wish to thank the following individuals for their + participation in a detailed review of this call flows document: Aseem + Agarwal, Rafi Assadi, Ben Campbell, Sunitha Kumar, Jon Peterson, Marc + Petit-Huguenin, Vidhi Rastogi, and Bodgey Yin Shaohua. + + The authors also wish to thank the following individuals for their + assistance: Jean-Francois Mule, Hemant Agrawal, Henry Sinnreich, + David Devanatham, Joe Pizzimenti, Matt Cannon, John Hearty, the whole + MCI WorldCom IPOP Design team, Scott Orton, Greg Osterhout, Pat + Sollee, Doug Weisenberg, Danny Mistry, Steve McKinnon, and Denise + Ingram, Denise Caballero, Tom Redman, Ilya Slain, Pat Sollee, John + Truetken, and others from MCI WorldCom, 3Com, Cisco, Lucent and + Nortel. + +8. Intellectual Property Statement + + The IETF takes no position regarding the validity or scope of any + intellectual property or other rights that might be claimed to + pertain to the implementation or use of the technology described in + this document or the extent to which any license under such rights + might or might not be available; neither does it represent that it + has made any effort to identify any such rights. Information on the + IETF's procedures with respect to rights in standards-track and + standards-related documentation can be found in BCP-11. Copies of + claims of rights made available for publication and any assurances of + licenses to be made available, or the result of an attempt made to + obtain a general license or permission for the use of such + proprietary rights by implementors or users of this specification can + be obtained from the IETF Secretariat. + + The IETF invites any interested party to bring to its attention any + copyrights, patents or patent applications, or other proprietary + rights which may cover technology that may be required to practice + this standard. Please address the information to the IETF Executive + Director. + + + + + +Johnston, et al. Best Current Practice [Page 116] + +RFC 3666 SIP PSTN Call Flows December 2003 + + +9. Authors' Addresses + + All listed authors actively contributed large amounts of text to this + document. + + Alan Johnston + MCI + 100 South 4th Street + St. Louis, MO 63102 + USA + + EMail: alan.johnston@mci.com + + Steve Donovan + dynamicsoft, Inc. + 5100 Tennyson Parkway + Suite 1200 + Plano, Texas 75024 + USA + + EMail: sdonovan@dynamicsoft.com + + Robert Sparks + dynamicsoft, Inc. + 5100 Tennyson Parkway + Suite 1200 + Plano, Texas 75024 + USA + + EMail: rsparks@dynamicsoft.com + + Chris Cunningham + dynamicsoft, Inc. + 5100 Tennyson Parkway + Suite 1200 + Plano, Texas 75024 + USA + + EMail: ccunningham@dynamicsoft.com + + Kevin Summers + Sonus + 1701 North Collins Blvd, Suite 3000 + Richardson, TX 75080 + USA + + EMail: kevin.summers@sonusnet.com + + + + +Johnston, et al. Best Current Practice [Page 117] + +RFC 3666 SIP PSTN Call Flows December 2003 + + +10. Full Copyright Statement + + Copyright (C) The Internet Society (2003). All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph are + included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assignees. + + This document and the information contained herein is provided on an + "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING + TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION + HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Acknowledgement + + Funding for the RFC Editor function is currently provided by the + Internet Society. + + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 118] + |