Session Initiation Protocol (SIP) Public Switched Telephone Network (PSTN) Call Flows
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
;tag=9fxced76sl
To: Bob
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
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
;tag=9fxced76sl
To: Bob
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:
From: Alice
;tag=9fxced76sl
To: Bob
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
Content-Type: application/sdp
Content-Length: 154
v=0
o=alice 2890844526 2890844526 IN IP4 client.a.example.com
s=-
c=IN IP4 client.a.example.com
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F4 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
;tag=9fxced76sl
To: Bob
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:
From: Alice
;tag=9fxced76sl
To: Bob
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
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:
From: Alice
;tag=9fxced76sl
To: Bob
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
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:
From: Alice
;tag=9fxced76sl
To: Bob
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
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:
From: Alice
;tag=9fxced76sl
To: Bob
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
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:
From: Alice
;tag=9fxced76sl
To: Bob
;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
;tag=9fxced76sl
To: Bob
;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:
From: Alice
;tag=9fxced76sl
To: Bob
;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
;tag=9fxced76sl
To: Bob
;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
;tag=9fxced76sl
To: Bob
;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
;tag=9fxced76sl
To: Bob
;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
;tag=9fxced76sl
To: Carol
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 2 INVITE
Contact:
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
;tag=9fxced76sl
To: Carol
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:
From: Alice
;tag=9fxced76sl
To: Carol
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 2 INVITE
Contact:
Content-Type: application/sdp
Content-Length: 154
v=0
o=alice 2890844526 2890844526 IN IP4 client.a.example.com
s=-
c=IN IP4 client.a.example.com
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F4 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
;tag=9fxced76sl
To: Carol
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:
From: Alice
;tag=9fxced76sl
To: Carol
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 2 INVITE
Contact:
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:
From: Alice
;tag=9fxced76sl
To: Carol
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 2 INVITE
Contact:
Content-Length: 0
F10 CONNect Carol-> GW 1
Protocol discriminator=Q.931
Message type=CONN
F11 CONNect ACK GW 1 -> Carol
Protocol discriminator=Q.931
Message type=CONN ACK
F12 200 OK GW 1 -> Proxy 1
SIP/2.0 200 OK
Via: SIP/2.0/TLS ss1.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:
From: Alice
;tag=9fxced76sl
To: Carol
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 2 INVITE
Contact:
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:
From: Alice
;tag=9fxced76sl
To: Carol
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 2 INVITE
Contact:
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:
From: Alice
;tag=9fxced76sl
To: Carol
;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
;tag=9fxced76sl
To: Carol
;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:
From: Alice
;tag=9fxced76sl
To: Carol
;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
;tag=9fxced76sl
To: Carol
;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
;tag=9fxced76sl
To: Carol
;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
;tag=9fxced76sl
To: Carol
;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
;tag=9fxced76sl
To: Bob
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
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:
From: Alice
;tag=9fxced76sl
Johnston, et al. Best Current Practice [Page 24]
RFC 3666 SIP PSTN Call Flows December 2003
To: Bob
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
Content-Type: application/sdp
Content-Length: 154
v=0
o=alice 2890844526 2890844526 IN IP4 client.a.example.com
s=-
c=IN IP4 client.a.example.com
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
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
;tag=9fxced76sl
To: Bob
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:
From: Alice
;tag=9fxced76sl
To: Bob
;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
;tag=9fxced76sl
To: Bob ;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:
From: Alice
;tag=9fxced76sl
To: Bob
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
Content-Type: application/sdp
Content-Length: 154
v=0
o=alice 2890844526 2890844526 IN IP4 client.a.example.com
s=-
c=IN IP4 client.a.example.com
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
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:
From: Alice
;tag=9fxced76sl
To: Bob
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
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:
From: Alice
;tag=9fxced76sl
To: Bob
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
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:
From: Alice
;tag=9fxced76sl
To: Bob
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
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:
From: Alice
;tag=9fxced76sl
To: Bob
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
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:
From: Alice
;tag=9fxced76sl
To: Bob
;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
;tag=9fxced76sl
To: Bob
;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:
From: Alice
;tag=9fxced76sl
To: Bob
;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
;tag=9fxced76sl
To: Bob
;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
;tag=9fxced76sl
To: Bob
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
;tag=9fxced76sl
To: Bob
;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: ;tag=9fxced76sl
To:
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 2 INVITE
Contact:
Content-Type: application/sdp
Content-Length: 154
v=0
o=alice 2890844526 2890844526 IN IP4 client.a.example.com
s=-
c=IN IP4 client.a.example.com
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F4 INVITE Proxy 3 -> Bob
INVITE sip:+19725552222@client.b.example.com SIP/2.0
Via: SIP/2.0/UDP ss3.b.example.com:5060;branch=z9hG4bK721e418c4.1
Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
;received=192.0.2.101
Max-Forwards: 69
Record-Route:
From: ;tag=9fxced76sl
To:
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 2 INVITE
Contact:
Content-Type: application/sdp
Content-Length: 154
v=0
o=UserA 2890844526 2890844526 IN IP4 client.a.example.com
s=-
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: ;tag=9fxced76sl
To:
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 2 INVITE
Content-Length: 0
F6 180 Ringing B -> Proxy 3
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP ss3.b.example.com:5060;branch=z9hG4bK721e418c4.1
;received=192.0.2.233
Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
;received=192.0.2.101
Record-Route:
From: ;tag=9fxced76sl
To: ;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 2 INVITE
Contact:
Content-Length: 0
F7 180 Ringing Proxy 3 -> Alice
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
;received=192.0.2.101
Record-Route:
From: ;tag=9fxced76sl
To: ;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 2 INVITE
Contact:
Content-Length: 0
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:
From: ;tag=9fxced76sl
To: ;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 2 INVITE
Contact:
Content-Type: application/sdp
Content-Length: 151
v=0
o=bob 2890844527 2890844527 IN IP4 client.b.example.com
s=-
c=IN IP4 client.b.example.com
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F9 200 OK Proxy -> Alice
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
;received=192.0.2.101
Record-Route:
From: ;tag=9fxced76sl
To: ;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 2 INVITE
Contact:
Content-Type: application/sdp
Content-Length: 151
v=0
o=bob 2890844527 2890844527 IN IP4 client.b.example.com
s=-
c=IN IP4 192.0.2.100
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
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:
From: ;tag=9fxced76sl
To: ;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 2 ACK
Content-Length: 0
F11 ACK Proxy 3 -> Bob
ACK sip:+19725552222@client.b.example.com SIP/2.0
Via: SIP/2.0/UDP ss3.b.example.com:5060;branch=z9hG4bK721e418c4.1
Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bq9
;received=192.0.2.101
Max-Forwards: 69
From: ;tag=9fxced76sl
To: ;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 2 ACK
Content-Type: application/sdp
Content-Length: 0
/* RTP streams are established between A and B*/
/* User B Hangs Up with User A. */
F12 BYE Bob -> Proxy 3
BYE sip:+13145551111@client.a.example.com SIP/2.0
Via: SIP/2.0/UDP client.b.example.com:5060;branch=z9hG4bKfgaw2
Max-Forwards: 70
Route:
From: ;tag=314159
To: ;tag=9fxced76sl
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 BYE
Content-Length: 0
F13 BYE Proxy 3 -> Alice
BYE sip:+13145551111@client.a.example.com SIP/2.0
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: ;tag=314159
To: ;tag=9fxced76sl
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 BYE
Content-Length: 0
F14 200 OK Alice -> Proxy 3
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss3.b.example.com:5060;branch=z9hG4bK721e418c4.1
;received=192.0.2.233
Via: SIP/2.0/UDP client.b.example.com:5060;branch=z9hG4bKfgaw2
;received=192.0.2.100
From: ;tag=314159
To: ;tag=9fxced76sl
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 BYE
Content-Length: 0
F15 200 OK Proxy 3 -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.b.example.com:5060;branch=z9hG4bKfgaw2
;received=192.0.2.100
From: ;tag=314159
To: ;tag=9fxced76sl
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 BYE
Content-Length: 0
Johnston, et al. 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
;tag=9fxced76sl
To: Bob
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
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
;tag=9fxced76sl
To: Bob
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:
From: Alice
;tag=9fxced76sl
To: Bob
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
Content-Type: application/sdp
Content-Length: 154
v=0
o=alice 2890844526 2890844526 IN IP4 client.a.example.com
s=-
c=IN IP4 client.a.example.com
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F4 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
;tag=9fxced76sl
To: Bob
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:
From: Alice
;tag=9fxced76sl
To: Bob
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
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:
From: Alice
;tag=9fxced76sl
To: Bob
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
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
;tag=9fxced76sl
To: Bob
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
;tag=9fxced76sl
To: Bob
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
;tag=9fxced76sl
To: Bob
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
;tag=9fxced76sl
To: Bob
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
;tag=9fxced76sl
To: Bob
;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
;tag=9fxced76sl
To: Bob
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
;tag=9fxced76sl
To: Bob
;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
;tag=9fxced76sl
To: Bob
;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
;tag=9fxced76sl
To: Bob
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
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
;tag=9fxced76sl
To: Bob
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:
From: Alice
;tag=9fxced76sl
To: Bob
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
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
;tag=9fxced76sl
To: Bob
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
;tag=9fxced76sl
To: Bob ;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Error-Info:
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
;tag=9fxced76sl
To: Bob ;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
;tag=9fxced76sl
To: Bob ;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Error-Info:
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
;tag=9fxced76sl
To: Bob ;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
;tag=9fxced76sl
To: Bob
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
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
;tag=9fxced76sl
To: Bob
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:
From: Alice
;tag=9fxced76sl
To: Bob
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
Content-Type: application/sdp
Content-Length: 154
v=0
o=alice 2890844526 2890844526 IN IP4 client.a.example.com
s=-
c=IN IP4 client.a.example.com
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F4 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
;tag=9fxced76sl
To: Bob
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:
From: Alice
;tag=9fxced76sl
To: Bob
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
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:
From: Alice
;tag=9fxced76sl
To: Bob
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Contact:
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
;tag=9fxced76sl
To: Bob
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Error-Info:
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
;tag=9fxced76sl
Johnston, et al. Best Current Practice [Page 53]
RFC 3666 SIP PSTN Call Flows December 2003
To: Bob
;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
;tag=9fxced76sl
To: Bob
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@a.example.com
CSeq: 1 INVITE
Error-Info:
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
;tag=9fxced76sl
To: Bob
;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: ;tag=7643kals
To:
Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com
CSeq: 1 INVITE
Contact:
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:
From: ;tag=7643kals
To:
Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com
CSeq: 1 INVITE
Contact:
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: ;tag=7643kals
To:
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:
From: ;tag=7643kals
Johnston, et al. Best Current Practice [Page 57]
RFC 3666 SIP PSTN Call Flows December 2003
To: ;tag=314159
Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com
CSeq: 1 INVITE
Contact:
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:
From: ;tag=7643kals
To: ;tag=314159
Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com
CSeq: 1 INVITE
Contact:
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:
From: ;tag=7643kals
To: ;tag=314159
Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com
Contact:
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:
From: ;tag=7643kals
To: ;tag=314159
Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com
CSeq: 1 INVITE
Contact:
Content-Type: application/sdp
Content-Length: 151
v=0
o=bob 2890844527 2890844527 IN IP4 client.b.example.com
s=-
c=IN IP4 client.b.example.com
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
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:
From: ;tag=7643kals
To: ;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: ;tag=7643kals
To: ;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:
From: ;tag=7643kals
To: ;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: ;tag=7643kals
To: ;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: ;tag=7643kals
To: ;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: ;tag=7643kals
To: ;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: ;tag=7643kals
To:
Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com
CSeq: 1 INVITE
Contact:
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:
From: ;tag=7643kals
To:
Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com
CSeq: 1 INVITE
Contact:
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: ;tag=7643kals
To:
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:
From: ;tag=7643kals
To: ;tag=314159
Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com
CSeq: 1 INVITE
Contact:
Content-Type: application/sdp
Content-Length: 151
v=0
o=bob 2890844527 2890844527 IN IP4 client.b.example.com
s=-
c=IN IP4 client.b.example.com
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
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:
From: ;tag=7643kals
To: ;tag=314159
Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com
CSeq: 1 INVITE
Contact:
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:
From: ;tag=7643kals
To: ;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: ;tag=7643kals
To: ;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:
From: ;tag=7643kals
To: ;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: ;tag=7643kals
To: ;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: ;tag=7643kals
To: ;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: ;tag=7643kals
To: ;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: ;tag=jwdkallkzm
To:
Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com
CSeq: 1 INVITE
Contact:
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:
From: ;tag=jwdkallkzm
To:
Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com
CSeq: 1 INVITE
Contact:
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: ;tag=jwdkallkzm
To: ;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:
From: ;tag=jwdkallkzm
To: ;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:
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:
From: ;tag=jwdkallkzm
To: ;tag=314159
Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com
CSeq: 1 INVITE
Contact:
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:
From: ;tag=jwdkallkzm
To: ;tag=314159
Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com
Contact:
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:
From: ;tag=jwdkallkzm
To: ;tag=314159
Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com
CSeq: 1 INVITE
Contact:
Content-Type: application/sdp
Content-Length: 151
v=0
o=bob 2890844527 2890844527 IN IP4 client.b.example.com
s=-
c=IN IP4 client.b.example.com
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F9 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:
From: ;tag=jwdkallkzm
To: ;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: ;tag=jwdkallkzm
To: ;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:
From: ;tag=jwdkallkzm
To: ;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: ;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: ;tag=jwdkallkzm
To: ;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: ;tag=jwdkallkzm
To: ;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: ;tag=076342s
Johnston, et al. Best Current Practice [Page 74]
RFC 3666 SIP PSTN Call Flows December 2003
To:
Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com
CSeq: 1 INVITE
Contact:
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: ;tag=076342s
To: ;tag=6a34d410
Call-ID: 4Fde34wkd11wsGFDs3@gw1.a.example.com
CSeq: 1 INVITE
Error-Info:
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: ;tag=076342s
To: ;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: ;tag=7643kals
To:
Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com
CSeq: 1 INVITE
Contact:
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:
From: ;tag=7643kals
To:
Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com
CSeq: 1 INVITE
Contact:
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: ;tag=7643kals
To: ;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: ;tag=7643kals
To: ;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: ;tag=7643kals
To: ;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: ;tag=7643kals
To: ;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: ;tag=7643kals
To: ;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: ;tag=7643kals
To:
Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com
CSeq: 1 INVITE
Contact:
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:
From: ;tag=7643kals
To:
Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com
CSeq: 1 INVITE
Contact:
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 Tryin