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:[email protected] 192.0.2.101
User Agent Bob sip:[email protected] 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:[email protected] and sip:[email protected] 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:[email protected]) 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 | | |
|| |
| | 100 F4 | |
| ||
| | | ACM F6 |
| | 183 F7 ||| ACK F13 | |
| |--------------->| |
| Both Way RTP Media | Both Way Voice |
|||
| BYE F14 | | |
|--------------->| BYE F15 | |
| |--------------->| |
| | 200 F16 | |
| 200 F17 ||
| | | RLC F19 |
| | | Proxy 1
INVITE sip:[email protected];user=phone SIP/2.0
Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: Alice