My Blog List

Tuesday, 22 November 2011

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


   that for this number to be passed into the SS7 network, it would have
   to be somehow verified for accuracy.

   In this scenario, Bob answers the call, then Alice disconnects the
   call.  Signaling between NGW 1 and Bob's telephone switch is ANSI
   ISUP.  For the details of SIP to ISUP mapping, refer to [4].

   In this flow, notice that the Contact returned by NGW 1 in messages
   F7-11 is sip:ngw1@a.example.com.  This is because NGW 1 only accepts
   SIP messages that come through Proxy 1 - any direct signaling will be
   ignored.  Since this Contact URI may be used outside of this dialog
   and must be routable (Section 8.1.1.8 in RFC 3261 [2]) the Contact
   URI for NGW 1 must resolve to Proxy 1.  This Contact URI resolves via
   DNS to Proxy 1 (sip:ss1.a.example.com) which then resolves it to
   sip:ngw1.a.example.com which is the address of NGW 1.

   This flow shows TCP transport.

   Message Details

   F1 INVITE Alice -> Proxy 1

   INVITE sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0
   Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9
   Max-Forwards: 70
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 INVITE
   Contact: <sip:alice@client.a.example.com;transport=tcp>
   Proxy-Authorization: Digest username="alice", realm="a.example.com",
    nonce="dc3a5ab25302aa931904ba7d88fa1cf5", opaque="",
    uri="sip:+19725552222@ss1.a.example.com;user=phone",
    response="ccdca50cb091d587421457305d097458c"
   Content-Type: application/sdp
   Content-Length: 154

   v=0
   o=alice 2890844526 2890844526 IN IP4 client.a.example.com
   s=-
   c=IN IP4 client.a.example.com
   t=0 0
   m=audio 49172 RTP/AVP 0
   a=rtpmap:0 PCMU/8000


  F2 100 Trying Proxy 1 -> Alice

   SIP/2.0 100 Trying
   Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 INVITE
   Content-Length: 0

   /* Proxy 1 uses a Location Service function to determine the gateway
   for terminating this call.  The call is forwarded to NGW 1.  Client
   for A prepares to receive data on port 49172 from the
   network.*/


   F3 INVITE Proxy 1 -> NGW 1

   INVITE sip:+19725552222@ngw1.a.example.com;user=phone SIP/2.0
   Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1
   Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Max-Forwards: 69
   Record-Route: <sip:ss1.a.example.com;lr>
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 INVITE
   Contact: <sip:alice@client.a.example.com;transport=tcp>
   Content-Type: application/sdp
   Content-Length: 154

   v=0
   o=alice 2890844526 2890844526 IN IP4 client.a.example.com
   s=-
   c=IN IP4 client.a.example.com
   t=0 0
   m=audio 49172 RTP/AVP 0
   a=rtpmap:0 PCMU/8000


   F4 100 Trying NGW 1 -> Proxy 1

   SIP/2.0 100 Trying
   Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1



Johnston, et al.         Best Current Practice                  [Page 9]
 
RFC 3666                  SIP PSTN Call Flows              December 2003


    ;received=192.0.2.111
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 INVITE
   Content-Length: 0


   F5 IAM NGW 1 -> Bob

   IAM
   CdPN=972-555-2222,NPI=E.164,NOA=National
   CgPN=314-555-1111,NPI=E.164,NOA=National


   F6 ACM Bob -> NGW 1

   ACM


   F7 183 Session Progress NGW 1 -> Proxy 1

   SIP/2.0 183 Session Progress
   Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1
    ;received=192.0.2.111
   Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Record-Route: <sip:ss1.a.example.com;lr>
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 INVITE
   Contact: <sip:ngw1@a.example.com;transport=tcp>
   Content-Type: application/sdp
   Content-Length: 146

   v=0
   o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com
   s=-
   c=IN IP4 ngw1.a.example.com
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   /* NGW 1 sends PSTN audio (ringing) in the RTP path to A */


   F8 183 Session Progress Proxy 1 -> Alice

   SIP/2.0 183 Session Progress
   Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Record-Route: <sip:ss1.a.example.com;lr>
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 INVITE
   Contact: <sip:ngw1@a.example.com;transport=tcp>
   Content-Type: application/sdp
   Content-Length: 146

   v=0
   o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com
   s=-
   c=IN IP4 ngw1.a.example.com
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000


   F9 ANM Bob -> NGW 1

   ANM


   F10 200 OK NGW 1 -> Proxy 1

   SIP/2.0 200 OK
   Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1
    ;received=192.0.2.111
   Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Record-Route: <sip:ss1.a.example.com;lr>
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 INVITE
   Contact: <sip:ngw1@a.example.com;transport=tcp>
   Content-Type: application/sdp


   Content-Length: 146

   v=0
   o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com
   s=-
   c=IN IP4 gw1.a.example.com
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000


   F11 200 OK Proxy 1 -> Alice

   SIP/2.0 200 OK
   Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Record-Route: <sip:ss1.a.example.com;lr>
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 INVITE
   Contact: <sip:ngw1@a.example.com;transport=tcp>
   Content-Type: application/sdp
   Content-Length: 146

   v=0
   o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com
   s=-
   c=IN IP4 ngw1.a.example.com
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000


   F12 ACK Alice -> Proxy 1

   ACK sip:ngw1@a.example.com SIP/2.0
   Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9
   Max-Forwards: 70
   Route: <sip:ss1.a.example.com;lr>
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 ACK
   Content-Length: 0


   F13 ACK Proxy 1 -> NGW 1

   ACK sip:ngw1@a.example.com SIP/2.0
   Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1
   Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Max-Forwards: 69
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 ACK
   Content-Length: 0

   /* Alice Hangs Up with Bob. */


   F14 BYE Alice -> Proxy 1

   BYE sip:ngw1@a.example.com SIP/2.0
   Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9
   Max-Forwards: 70
   Route: <sip:ss1.a.example.com;lr>
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 BYE
   Content-Length: 0


   F15 BYE Proxy 1 -> NGW 1

   BYE sip:ngw1@a.example.com SIP/2.0
   Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1
   Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Max-Forwards: 69
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 BYE
   Content-Length: 0


   F16 200 OK NGW 1 -> Proxy 1

   SIP/2.0 200 OK
   Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1
    ;received=192.0.2.111
   Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 BYE
   Content-Length: 0


   F17 200 OK Proxy 1 -> A

   SIP/2.0 200 OK
   Via: SIP/2.0/TCP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 BYE
   Content-Length: 0


   F18 REL NGW 1 -> B

   REL
   CauseCode=16 Normal


   F19 RLC B -> NGW 1

   RLC
2.2.  Successful SIP to ISDN PBX call

   Alice            Proxy 1           GW 1             PBX C
     |                |                |                |
     |   INVITE F1    |                |                |
     |--------------->|                |                |
     |     100  F2    |                |                |
     |<---------------|   INVITE F3    |                |
     |                |--------------->|                |
     |                |     100  F4    |                |
     |                |<---------------|    SETUP F5    |
     |                |                |--------------->|
     |                |                |  CALL PROC F6  |
     |                |                |<---------------|
     |                |                |   PROGress F7  |
     |                |    180 F8      |<---------------|
     |    180 F9      |<---------------|                |
     |<---------------|                |                |
     |                |                |  One Way Voice |
     |                |                |<===============|
     |                |                |   CONNect F10  |
     |                |                |<---------------|
     |                |                | CONNect ACK F11|
     |                |    200 F12     |--------------->|
     |     200 F13    |<---------------|                |
     |<---------------|                |                |
     |     ACK F14    |                |                |
     |--------------->|     ACK F15    |                |
     |                |--------------->|                |
     |        Both Way RTP Media       | Both Way Voice |
     |<===============================>|<==============>|
     |     BYE F16    |                |                |
     |--------------->|     BYE F17    |                |
     |                |--------------->|                |
     |                |     200 F18    |                |
     |     200 F19    |<---------------| DISConnect F20 |
     |<---------------|                |--------------->|
     |                |                |   RELease F21  |
     |                |                |<---------------|
     |                |                | RELease COM F22|
     |                |                |--------------->|
     |                |                |                |

   Alice is a SIP device while Carol is connected via a Gateway (GW 1)
   to a PBX.  The PBX connection is via a ISDN trunk group.  Alice dials
   Carol's telephone number (918-555-3333) which is globalized and put
   into a SIP URI.
   The host portion of the Request-URI in the INVITE F3 is used to
   identify the context (customer, trunk group, or line) in which the
   private number 444-3333 is valid.  Otherwise, this INVITE message
   could get forwarded by GW 1 and the context of the digits could
   become lost and the call unroutable.

   Proxy 1 looks up the telephone number and locates the gateway that
   serves Carol.  Carol is identified by its extension (444-3333) in the
   Request-URI sent to GW 1.

   Note that the Contact URI for GW 1, as used in messages F8, F9, F12,
   and F13, is sips:4443333@gw1.a.example.com, which resolves directly
   to the gateway.

   This flow shows the use of Secure SIP (sips) URIs.

   Message Details

   F1 INVITE Alice -> Proxy 1

   INVITE sips:+19185553333@ss1.a.example.com;user=phone  SIP/2.0
   Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9
   Max-Forwards: 70
   From: Alice <sips:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Carol <sips:+19185553333@ss1.a.example.com;user=phone>
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 INVITE
   Contact: <sips:alice@client.a.example.com>
   Proxy-Authorization: Digest username="alice",
    realm="a.example.com", nonce="qo0dc3a5ab22aa931904badfa1cf5j9h",
    opaque="", uri="sips:+19185553333@ss1.a.example.com;user=phone",
    response="6c792f5c9fa360358b93c7fb826bf550"
   Content-Type: application/sdp
   Content-Length: 154

   v=0
   o=alice 2890844526 2890844526 IN IP4 client.a.example.com
   s=-
   c=IN IP4 client.a.example.com
   t=0 0
   m=audio 49172 RTP/AVP 0
   a=rtpmap:0 PCMU/8000


   F2 100 Trying Proxy 1 -> Alice

   SIP/2.0 100 Trying
   Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   From: Alice <sips:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Carol <sips:+19185553333@ss1.a.example.com;user=phone>
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 INVITE
   Content-Length: 0


   F3 INVITE Proxy 1 -> GW 1

   INVITE sips:4443333@gw1.a.example.com SIP/2.0
   Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1
   Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Max-Forwards: 69
   Record-Route: <sips:ss1.a.example.com;lr>
   From: Alice <sips:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Carol <sips:+19185553333@ss1.a.example.com;user=phone>
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 INVITE
   Contact: <sips:alice@client.a.example.com>
   Content-Type: application/sdp
   Content-Length: 154

   v=0
   o=alice 2890844526 2890844526 IN IP4 client.a.example.com
   s=-
   c=IN IP4 client.a.example.com
   t=0 0
   m=audio 49172 RTP/AVP 0
   a=rtpmap:0 PCMU/8000


   F4 100 Trying GW -> Proxy 1

   SIP/2.0 100 Trying
   Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1
    ;received=192.0.2.111
   From: Alice <sips:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Carol <sips:+19185553333@ss1.a.example.com;user=phone>
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 INVITE
   Content-Length: 0 
  F5 SETUP GW 1 -> Carol

   Protocol discriminator=Q.931
   Message type=SETUP
   Bearer capability: Information transfer capability=0 (Speech) or 16
   (3.1 kHz audio)
   Channel identification=Preferred or exclusive B-channel
   Progress indicator=1 (Call is not end-to-end ISDN;further call
   progress information may be available inband)
   Called party number:
   Type of number unknown
   Digits=444-3333


   F6 CALL PROCeeding Carol-> GW 1

   Protocol discriminator=Q.931
   Message type=CALL PROC
   Channel identification=Exclusive B-channel


   F7 PROGress Carol-> GW 1

   Protocol discriminator=Q.931
   Message type=PROG
   Progress indicator=1 (Call is not end-to-end ISDN;further call
   progress information may be available inband)


   F8 180 Ringing GW 1 -> Proxy 1

   SIP/2.0 180 Ringing
   Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1
    ;received=192.0.2.111
   Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Record-Route: <sips:ss1.a.example.com;lr>
   From: Alice <sips:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Carol <sips:+19185553333@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 INVITE
   Contact: <sips:4443333@gw1.a.example.com>
   Content-Length: 0






Johnston, et al.         Best Current Practice                 [Page 18]
 
RFC 3666                  SIP PSTN Call Flows              December 2003


   F9 180 Ringing Proxy 1 -> Alice

   SIP/2.0 180 Ringing
   Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Record-Route: <sips:ss1.a.example.com;lr>
   From: Alice <sips:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Carol <sips:+19185553333@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 INVITE
   Contact: <sips:4443333@gw1.a.example.com>
   Content-Length: 0


   F10 CONNect Carol-> GW 1

   Protocol discriminator=Q.931
   Message type=CONN


   F11 CONNect ACK GW 1 -> Carol

   Protocol discriminator=Q.931
   Message type=CONN ACK


   F12 200 OK GW 1 -> Proxy 1

   SIP/2.0 200 OK
   Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1
    ;received=192.0.2.111
   Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Record-Route: <sips:ss1.a.example.com;lr>
   From: Alice <sips:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Carol <sips:+19185553333@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 INVITE
   Contact: <sips:4443333@gw1.a.example.com>
   Content-Type: application/sdp
   Content-Length: 144

   v=0
   o=GW 2890844527 2890844527 IN IP4 gw1.a.example.com
   s=-
   c=IN IP4 gw1.a.example.com
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000


   F13 200 OK Proxy 1 -> Alice

   SIP/2.0 200 OK
   Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Record-Route: <sips:ss1.a.example.com;lr>
   From: Alice <sips:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Carol <sips:+19185553333@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 INVITE
   Contact: <sips:4443333@gw1.a.example.com>
   Content-Type: application/sdp
   Content-Length: 144

   v=0
   o=GW 2890844527 2890844527 IN IP4 gw1.a.example.com
   s=-
   c=IN IP4 gw1.a.example.com
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000


   F14 ACK Alice -> Proxy 1

   ACK sips:4443333@gw1.a.example.com SIP/2.0
   Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9
   Max-Forwards: 70
   Route: <sips:ss1.a.example.com;lr>
   From: Alice <sips:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Carol <sips:+19185553333@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 ACK
   Content-Length: 0

   F15 ACK Proxy 1 -> GW 1

   ACK sips:4443333@gw1.a.example.com SIP/2.0
   Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1
   Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Max-Forwards: 69
   From: Alice <sips:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Carol <sips:+19185553333@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 ACK
   Content-Length: 0

   /* Alice Hangs Up with Bob. */


   F16 BYE Alice -> Proxy 1

   BYE sips:4443333@gw1.a.example.com SIP/2.0
   Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9
   Max-Forwards: 70
   Route: <sips:ss1.a.example.com;lr>
   From: Alice <sips:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Carol <sips:+19185553333@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 3 BYE
   Content-Length: 0


   F17 BYE Proxy 1 -> GW 1

   BYE sips:4443333@gw1.a.example.com SIP/2.0
   Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1
   Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Max-Forwards: 69
   From: Alice <sips:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Carol <sips:+19185553333@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 3 BYE
   Content-Length: 0 
   F18 200 OK GW 1 -> Proxy 1

   SIP/2.0 200 OK
   Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1
    ;received=192.0.2.111
   Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   From: Alice <sips:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Carol <sips:+19185553333@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 3 BYE
   Content-Length: 0


   F19 200 OK Proxy 1 -> A

   SIP/2.0 200 OK
   Via: SIP/2.0/TLS client.a.example.com:5061;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   From: Alice <sips:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Carol <sips:+19185553333@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 3 BYE
   Content-Length: 0


   F20 DISConnect GW 1 -> Carol

   Protocol discriminator=Q.931
   Message type=DISC
   Cause=16 (Normal clearing)


   F21 RELease Carol-> GW 1

   Protocol discriminator=Q.931
   Message type=REL


   F22 RELease COMplete GW 1 -> Carol

   Protocol discriminator=Q.931
   Message type=REL COM


  Successful SIP to ISUP PSTN call with overflow

   Alice          Proxy 1         NGW 1          NGW 2        Switch B
    |              |              |              |              |
    |  INVITE F1   |              |              |              |
    |------------->|              |              |              |
    |              |  INVITE F2   |              |              |
    |    100  F3   |------------->|              |              |
    |<-------------|    503 F4    |              |              |
    |              |<-------------|              |              |
    |              |    ACK F5    |              |              |
    |              |------------->|              |              |
    |              |   INVITE F6                 |              |
    |              |---------------------------->|     IAM F7   |
    |              |                             |------------->|
    |              |                             |     ACM F8   |
    |              |            183 F9           |<-------------|
    |   183 F10    |<----------------------------|              |
    |<-------------|                             |              |
    |               Two Way RTP Media            | One Way Voice|
    |<==========================================>|<=============|
    |              |                             |    ANM F11   |
    |              |           200 F12           |<-------------|
    |    200 F13   |<----------------------------|              |
    |<-------------|                             |              |
    |    ACK F14   |                             |              |
    |------------->|            ACK F15          |              |
    |              |---------------------------->|              |
    |             Both Way RTP Media             |Both Way Voice|
    |<==========================================>|<============>|
    |    BYE F16   |                             |              |
    |------------->|           BYE F17           |              |
    |              |---------------------------->|              |
    |              |           200 F18           |              |
    |    200 F19   |<----------------------------|    REL F20   |
    |<-------------|                             |------------->|
    |              |                             |    RLC F21   |
    |              |                             |<-------------|
    |              |                             |              |

   Alice calls Bob through Proxy 1.  Proxy 1 tries to route to a Network
   Gateway NGW 1.  NGW 1 is not available and responds with a 503
   Service Unavailable (F4).  The call is then routed to Network Gateway
   NGW 2.  Bob answers the call.  The call is terminated when Alice
   disconnects the call.  NGW 2 and Bob's telephone switch use ANSI ISUP
   signaling.

   NGW 2 also only accepts SIP messages that come through Proxy 1, so
   the Contact URI sip:ngw2@a.example.com is used in this flow.

   This flow shows UDP transport.

   Message Details

   F1 INVITE Alice -> Proxy 1

   INVITE sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
   Max-Forwards: 70
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 INVITE
   Contact: <sip:alice@client.a.example.com>
   Proxy-Authorization: Digest username="alice",
    realm="a.example.com", nonce="b59311c3ba05b401cf80b2a2c5ac51b0",
    opaque="", uri="sip:+19725552222@ss1.a.example.com;user=phone",
    response="ba6ab44923fa2614b28e3e3957789ab0"
   Content-Type: application/sdp
   Content-Length: 154

   v=0
   o=alice 2890844526 2890844526 IN IP4 client.a.example.com
   s=-
   c=IN IP4 client.a.example.com
   t=0 0
   m=audio 49172 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   /* Proxy 1 uses a Location Service function to determine where B is
   located.  Proxy 1 receives a primary route NGW 1 and a secondary
   route NGW 2.  NGW 1 is tried first */


   F2 INVITE Proxy 1 -> NGW 1

   INVITE sip:+19725552222@ngw1.a.example.com;user=phone SIP/2.0
   Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Max-Forwards: 69
   Record-Route: <sip:ss1.a.example.com;lr>
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 INVITE
   Contact: <sip:alice@client.a.example.com>
   Content-Type: application/sdp
   Content-Length: 154

   v=0
   o=alice 2890844526 2890844526 IN IP4 client.a.example.com
   s=-
   c=IN IP4 client.a.example.com
   t=0 0
   m=audio 49172 RTP/AVP 0
   a=rtpmap:0 PCMU/8000


   F3 100 Trying Proxy 1 -> Alice

   SIP/2.0 100 Trying
   Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1
    ;received=192.0.2.111
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 INVITE
   Content-Length: 0


   F4 503 Service Unavailable NGW 1 -> Proxy 1

   SIP/2.0 503 Service Unavailable
   Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1
    ;received=192.0.2.111
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Record-Route: <sip:ss1.a.example.com;lr>
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=123456789
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 INVITE
   Content-Length: 0

   F5 ACK Proxy 1 -> NGW 1

   ACK sip:ngw1@a.example.com SIP/2.0
   Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1
   Max-Forwards: 70
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com>;user=phone>
    ;tag=123456789
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 ACK
   Content-Length: 0

   /* Proxy 1 now tries secondary route to NGW 2 */


   F6 INVITE Proxy 1 -> NGW 2

   INVITE sip:+19725552222@ngw2.a.example.com;user=phone SIP/2.0
   Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Max-Forwards: 69
   Record-Route: <sip:ss1.a.example.com;lr>
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 INVITE
   Contact: <sip:alice@client.a.example.com>
   Content-Type: application/sdp
   Content-Length: 154

   v=0
   o=alice 2890844526 2890844526 IN IP4 client.a.example.com
   s=-
   c=IN IP4 client.a.example.com
   t=0 0
   m=audio 49172 RTP/AVP 0
   a=rtpmap:0 PCMU/8000


   F7 IAM NGW 2 -> Bob

   IAM
   CdPN=972-555-2222,NPI=E.164,NOA=National
   CgPN=314-555-1111,NPI=E.164,NOA=National

   F8 ACM Bob -> NGW 2

   ACM


   F9 183 Session Progress NGW 2 -> Proxy 1

   SIP/2.0 183 Session Progress
   Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2
    ;received=192.0.2.111
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Record-Route: <sip:ss1.a.example.com;lr>
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 INVITE
   Contact: <sip:ngw2@a.example.com>
   Content-Type: application/sdp
   Content-Length: 146

   v=0
   o=GW 2890844527 2890844527 IN IP4 ngw2.a.example.com
   s=-
   c=IN IP4 ngw2.a.example.com
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   /* RTP packets are sent by GW to A for audio (e.g. ring tone) */


   F10 183 Session Progress Proxy 1 -> Alice

   SIP/2.0 183 Session Progress
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Record-Route: <sip:ss1.a.example.com;lr>
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 INVITE
   Contact: <sip:ngw2@a.example.com>
   Content-Type: application/sdp
   Content-Length: 146

   v=0
   o=GW 2890844527 2890844527 IN IP4 ngw2.a.example.com
   s=-
   c=IN IP4 ngw2.a.example.com
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000


   F11 ANM Bob -> NGW 2

   ANM


   F12 200 OK NGW 2 -> Proxy 1

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2
    ;received=192.0.2.111
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Record-Route: <sip:ss1.a.example.com;lr>
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 INVITE
   Contact: <sip:ngw2@a.example.com>
   Content-Type: application/sdp
   Content-Length: 146

   v=0
   o=GW 2890844527 2890844527 IN IP4 ngw2.a.example.com
   s=-
   c=IN IP4 ngw2.a.example.com
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000


   F13 200 OK Proxy 1 -> Alice

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Record-Route: <sip:ss1.a.example.com;lr>
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 INVITE
   Contact: <sip:ngw2@a.example.com>
   Content-Type: application/sdp
   Content-Length: 146

   v=0
   o=GW 2890844527 2890844527 IN IP4 ngw2.a.example.com
   s=-
   c=IN IP4 ngw2.a.example.com
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000


   F14 ACK Alice -> Proxy 1

   ACK sip:ngw2@a.example.com SIP/2.0
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
   Max-Forwards: 70
   Route: <ss1.a.example.com;lr>
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 ACK
   Content-Length: 0


   F15 ACK Proxy 1 -> NGW 2

   ACK sip:ngw2@a.example.com SIP/2.0
   Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Max-Forwards: 69
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 ACK
     /* RTP streams are established between A and B(via the GW) */

   /* Alice Hangs Up with Bob. */


   F16 BYE Alice -> Proxy 1

   BYE sip:ngw2@a.example.com SIP/2.0
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
   Max-Forwards: 70
   Route: <ss1.a.example.com;lr>
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 BYE
   Content-Length: 0


   F17 BYE Proxy 1 -> NGW 2

   BYE sip:ngw2@a.example.com SIP/2.0
   Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Max-Forwards: 69
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 BYE
   Content-Length: 0


   F18 200 OK NGW 2 -> Proxy 1

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2
    ;received=192.0.2.111
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 BYE
   Content-Length: 0


   F19 200 OK Proxy 1 -> Alice

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   From: Alice <sip:+13145551111@ss1.a.example.com;user=phone>
    ;tag=9fxced76sl
   To: Bob <sip:+19725552222@ss1.a.example.com;user=phone>
    ;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 BYE
   Content-Length: 0


   F20 REL NGW 2 -> B

   REL
   CauseCode=16 Normal


   F21 RLC B -> NGW 2

   RLC



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


   F2 ENUM NAPTR Set DNS Server -> Alice

   $ORIGIN 2.2.2.2.5.5.5.2.7.9.1.e164.arpa.
         IN NAPTR 100 10 "u" "sip+E2U"
                "!^.*$!sip:+19725552222@b.example.com!".


   F3 INVITE Alice -> Proxy 3

   INVITE sip:+19725552222@b.example.com SIP/2.0
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
   Max-Forwards: 70
   From: <sip:+13145551111@a.example.com>;tag=9fxced76sl
   To: <tel:+19725552222>
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 INVITE
   Contact: <sip:+13145551111@client.a.example.com>
   Content-Type: application/sdp
   Content-Length: 154

   v=0
   o=alice 2890844526 2890844526 IN IP4 client.a.example.com
   s=-
   c=IN IP4 client.a.example.com
   t=0 0
   m=audio 49172 RTP/AVP 0
   a=rtpmap:0 PCMU/8000


   F4 INVITE Proxy 3 -> Bob

   INVITE sip:+19725552222@client.b.example.com SIP/2.0
   Via: SIP/2.0/UDP ss3.b.example.com:5060;branch=z9hG4bK721e418c4.1
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Max-Forwards: 69
   Record-Route: <sip:ss3.b.example.com;lr>
   From: <sip:+13145551111@a.example.com>;tag=9fxced76sl
   To: <tel:+19725552222>
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 INVITE
   Contact: <sip:+13145551111@client.a.example.com>
   Content-Type: application/sdp
   Content-Length: 154

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.a.example.com
   s=-
   c=IN IP4 client.a.example.com
   t=0 0
   m=audio 49172 RTP/AVP 0
   a=rtpmap:0 PCMU/8000


   F5 100 Trying Proxy 3 -> Alice

   SIP/2.0 100 Trying
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   From: <sip:+13145551111@a.example.com>;tag=9fxced76sl
   To: <tel:+19725552222>
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 INVITE
   Content-Length: 0


   F6 180 Ringing B -> Proxy 3

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP ss3.b.example.com:5060;branch=z9hG4bK721e418c4.1
    ;received=192.0.2.233
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Record-Route: <sip:ss3.b.example.com;lr>
   From: <sip:+13145551111@a.example.com>;tag=9fxced76sl
   To: <tel:+19725552222>;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 INVITE
   Contact: <sip:+19725552222@client.b.example.com>
   Content-Length: 0


   F7 180 Ringing Proxy 3 -> Alice

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Record-Route: <sip:ss3.b.example.com;lr>
   From: <sip:+13145551111@a.example.com>;tag=9fxced76sl
   To: <tel:+19725552222>;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 INVITE
   Contact: <sip:+19725552222@client.b.example.com>
   Content-Length: 0

   F8 200 OK Bob -> Proxy 3

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss3.b.example.com:5060;branch=z9hG4bK721e418c4.1
    ;received=192.0.2.233
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Record-Route: <sip:ss3.b.example.com;lr>
   From: <sip:+13145551111@a.example.com>;tag=9fxced76sl
   To: <tel:+19725552222>;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 INVITE
   Contact: <sip:+19725552222@client.b.example.com;transport=tcp>
   Content-Type: application/sdp
   Content-Length: 151

   v=0
   o=bob 2890844527 2890844527 IN IP4 client.b.example.com
   s=-
   c=IN IP4 client.b.example.com
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000


   F9 200 OK Proxy -> Alice

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bf9
    ;received=192.0.2.101
   Record-Route: <sip:ss3.b.example.com;lr>
   From: <sip:+13145551111@a.example.com>;tag=9fxced76sl
   To: <tel:+19725552222>;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 INVITE
   Contact: <sip:+19725552222@client.b.example.com>
   Content-Type: application/sdp
   Content-Length: 151

   v=0
   o=bob 2890844527 2890844527 IN IP4 client.b.example.com
   s=-
   c=IN IP4 192.0.2.100
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F10 ACK Alice -> Proxy 3

   ACK sip:+19725552222@client.b.example.com SIP/2.0
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bq9
   Max-Forwards: 70
   Route: <sip:ss3.b.example.com;lr>
   From: <sip:+13145551111@a.example.com>;tag=9fxced76sl
   To: <tel:+19725552222>;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 ACK
   Content-Length: 0


   F11 ACK Proxy 3 -> Bob

   ACK sip:+19725552222@client.b.example.com SIP/2.0
   Via: SIP/2.0/UDP ss3.b.example.com:5060;branch=z9hG4bK721e418c4.1
   Via: SIP/2.0/UDP client.a.example.com:5060;branch=z9hG4bK74bq9
    ;received=192.0.2.101
   Max-Forwards: 69
   From: <sip:+13145551111@a.example.com>;tag=9fxced76sl
   To: <tel:+19725552222>;tag=314159
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 2 ACK
   Content-Type: application/sdp
   Content-Length: 0

   /* RTP streams are established between A and B*/

   /* User B Hangs Up with User A. */


   F12 BYE Bob -> Proxy 3

   BYE sip:+13145551111@client.a.example.com SIP/2.0
   Via: SIP/2.0/UDP client.b.example.com:5060;branch=z9hG4bKfgaw2
   Max-Forwards: 70
   Route: <sip:ss3.b.example.com;lr>
   From: <tel:+19725552222>;tag=314159
   To: <sip:+13145551111@a.example.com>;tag=9fxced76sl
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 BYE
   Content-Length: 0


   F13 BYE Proxy 3 -> Alice

   BYE sip:+13145551111@client.a.example.com SIP/2.0

   Via: SIP/2.0/UDP ss3.b.example.com:5060;branch=z9hG4bK721e418c4.1
    ;received=192.0.2.100
   Via: SIP/2.0/UDP client.b.example.com:5060;branch=z9hG4bKfgaw2
   Max-Forwards: 69
   From: <tel:+19725552222>;tag=314159
   To: <sip:+13145551111@a.example.com>;tag=9fxced76sl
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 BYE
   Content-Length: 0


   F14 200 OK Alice -> Proxy 3

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss3.b.example.com:5060;branch=z9hG4bK721e418c4.1
    ;received=192.0.2.233
   Via: SIP/2.0/UDP client.b.example.com:5060;branch=z9hG4bKfgaw2
    ;received=192.0.2.100
   From: <tel:+19725552222>;tag=314159
   To: <sip:+13145551111@a.example.com>;tag=9fxced76sl
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 BYE
   Content-Length: 0


   F15 200 OK Proxy 3 -> Bob

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP client.b.example.com:5060;branch=z9hG4bKfgaw2
    ;received=192.0.2.100
   From: <tel:+19725552222>;tag=314159
   To: <sip:+13145551111@a.example.com>;tag=9fxced76sl
   Call-ID: 2xTb9vxSit55XU7p8@a.example.com
   CSeq: 1 BYE
   Content-Length: 0


No comments:

Post a Comment