3.8. Unsuccessful PSTN->SIP, ACM timeout, stateless Proxy
Switch A NGW 1 Stateless Proxy 1 Bob | | | | | IAM F1 | | | |--------------->| INVITE F2 | | | |--------------->| INVITE F3 | | | INVITE F4 |--------------->| | |--------------->| INVITE F5 | | | INVITE F6 |--------------->| | |--------------->| INVITE F7 | | | INVITE F8 |--------------->| | |--------------->| INVITE F9 | | | INVITE F10 |--------------->| | |--------------->| INVITE F11 | | | INVITE F12 |--------------->| | |--------------->| INVITE F13 | | | |--------------->| | REL F14 | | | |--------------->| | | | RLC F15 | | | |<---------------| | | In this scenario, Alice calls Bob through NGW 1 and Proxy 1. Since Proxy 1 is stateless (it does not send a 100 Trying response), NGW 1 re-sends the INVITE message after the expiration of SIP timer T1. Bob does not respond with 180 Ringing. Alice's network disconnects the call with a release REL (CauseCode=102 Timeout). Message Details F1 IAM Alice -> NGW 1 IAM CgPN=314-555-1111,NPI=E.164,NOA=National CdPN=972-555-2222,NPI=E.164,NOA=National F2 INVITE NGW 1 -> Proxy 1 INVITE sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 Max-Forwards: 70 From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sip:+19725552222@ss1.a.example.com;user=phone> Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com CSeq: 1 INVITE
Contact: <sip:ngw1@a.example.com> Content-Type: application/sdp Content-Length: 146 v=0 o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com s=- c=IN IP4 ngw1.a.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* Proxy 1 uses a Location Service function to determine a route for +19725552222. The call is then forwarded to Bob. */ F3 INVITE Proxy 1 -> Bob INVITE sip:bob@b.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 Via: SIP/2.0/UDP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 ;received=192.0.2.201 Max-Forwards: 69 From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sip:+19725552222@ss1.a.example.com;user=phone> Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com CSeq: 1 INVITE Contact: <sip:ngw1@a.example.com> Content-Type: application/sdp Content-Length: 146 v=0 o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com s=- c=IN IP4 ngw1.a.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 INVITE NGW 1 -> Proxy 1 Same as Message F2 F5 INVITE Proxy 1 -> Bob Same as Message F3
F6 INVITE NGW 1 -> Proxy 1 Same as Message F2 F7 INVITE Proxy 1 -> Bob Same as Message F3 F8 INVITE NGW 1 -> Proxy 1 Same as Message F2 F9 INVITE Proxy 1 -> Bob Same as Message F3 F10 INVITE NGW 1 -> Proxy 1 Same as Message F2 F11 INVITE Proxy 1 -> Bob Same as Message F3 F12 INVITE NGW 1 -> Proxy 1 Same as Message F2 F13 INVITE Proxy 1 -> Bob Same as Message F3 /* A timer expires in Alice's access network. */ F14 REL Alice -> NGW 1 REL CauseCode=102 Timeout
F15 RLC NGW 1 -> Alice RLC3.9. Unsuccessful PSTN->SIP, Caller Abandonment
Switch A NGW 1 Proxy 1 Bob | | | | | IAM F1 | | | |--------------->| INVITE F2 | | | |--------------->| INVITE F3 | | | 100 F4 |--------------->| | |<---------------| | | | | 180 F5 | | | 180 F6 |<---------------| | ACM F7 |<---------------| | |<---------------| | | | One Way Voice | | | |<===============| | | | Ringing Tone | | | |<===============| | | | | | | | REL F8 | | | |--------------->| | | | RLC F9 | | | |<---------------| CANCEL F10 | | | |--------------->| | | | 200 F11 | | | |<---------------| | | | | CANCEL F12 | | | |--------------->| | | | 200 F13 | | | |<---------------| | | | 487 F14 | | | |<---------------| | | | ACK F15 | | | 487 F16 |--------------->| | |<---------------| | | | ACK F17 | | | |--------------->| | | | | | In this scenario, Alice calls Bob through NGW 1 and Proxy 1. Bob does not respond with 200 OK. NGW 1 plays ringing tone since the ACM indicates that interworking has been encountered. Alice disconnects the call with a Release message REL which is mapped by NGW 1 to a
CANCEL. Note that if Bob had sent a 200 OK response after the REL, NGW 1 would have sent an ACK and then a BYE to properly terminate the call. Message Details F1 IAM Alice -> NGW 1 IAM CgPN=314-555-1111,NPI=E.164,NOA=National CdPN=972-555-2222,NPI=E.164,NOA=National F2 INVITE Alice -> Proxy 1 INVITE sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 Max-Forwards: 70 From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sip:+19725552222@ss1.a.example.com;user=phone> Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com CSeq: 1 INVITE Contact: <sip:ngw1@a.example.com;transport=tcp> Content-Type: application/sdp Content-Length: 146 v=0 o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com s=- c=IN IP4 ngw1.a.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* Proxy 1 uses a Location Service function to determine a route for +19725552222. The call is then forwarded to Bob. */ F3 INVITE Proxy 1 -> Bob INVITE sip:bob@b.example.com SIP/2.0 Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 ;received=192.0.2.103 Max-Forwards: 69 Record-Route: <sip:ss1.a.example.com;lr> From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sip:+19725552222@ss1.a.example.com;user=phone>
Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com CSeq: 1 INVITE Contact: <sip:ngw1@a.example.com;transport=tcp> Content-Type: application/sdp Content-Length: 146 v=0 o=GW 2890844527 2890844527 IN IP4 ngw1.a.example.com s=- c=IN IP4 ngw1.a.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 100 Trying Bob -> Proxy 1 SIP/2.0 100 Trying Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 ;received=192.0.2.111 Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 ;received=192.0.2.201 From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sip:+19725552222@ss1.a.example.com;user=phone> Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com CSeq: 1 INVITE Content-Length: 0 F5 180 Ringing Bob -> Proxy 1 SIP/2.0 180 Ringing Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 ;received=192.0.2.111 Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 ;received=192.0.2.103 Record-Route: <sip:ss1.a.example.com;lr> From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com CSeq: 1 INVITE Contact: <sip:bob@client.b.example.com;transport=tcp> Content-Length: 0 F6 180 Ringing Proxy 1 -> NGW 1 SIP/2.0 180 Ringing
Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 ;received=192.0.2.103 Record-Route: <sip:ss1.a.example.com;lr> From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com CSeq: 1 INVITE Contact: <sip:bob@client.b.example.com> Content-Length: 0 F7 ACM NGW 1 -> Alice ACM /* Alice hangs up */ F8 REL Alice -> NGW 1 REL CauseCode=16 Normal F9 RLC NGW 1 -> Alice RLC F10 CANCEL NGW 1 -> Proxy 1 CANCEL sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 Max-Forwards: 70 From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sip:+19725552222@ss1.a.example.com;user=phone> Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com CSeq: 1 CANCEL Content-Length: 0 F11 200 OK Proxy 1 -> NGW 1 SIP/2.0 200 OK Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 ;received=192.0.2.103 From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sip:+19725552222@ss1.a.example.com;user=phone>
Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com CSeq: 1 CANCEL Content-Length: 0 F12 CANCEL Proxy 1 -> Bob CANCEL sip:bob@b.example.com SIP/2.0 Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 Max-Forwards: 70 From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sip:+19725552222@ss1.a.example.com;user=phone> Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com CSeq: 1 CANCEL Content-Length: 0 F13 200 OK Bob -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 ;received=192.0.2.111 From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sip:+19725552222@ss1.a.example.com;user=phone> Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com CSeq: 1 CANCEL Content-Length: 0 F14 487 Request Terminated Bob -> Proxy 1 SIP/2.0 487 Request Terminated Via: SIP/2.0/TCP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 ;received=192.0.2.111 Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 ;received=192.0.2.103 From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com CSeq: 1 INVITE Content-Length: 0 F15 ACK Proxy 1 -> Bob ACK sip:bob@b.example.com SIP/2.0 Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 Max-Forwards: 70
From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com CSeq: 1 ACK Content-Length: 0 F16 487 Request Terminated Proxy 1 -> NGW 1 SIP/2.0 487 Request Terminated Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 ;received=192.0.2.103 From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com CSeq: 1 INVITE Content-Length: 0 F17 ACK NGW 1 -> Proxy 1 ACK sip:+19725552222@ss1.a.example.com;user=phone SIP/2.0 Via: SIP/2.0/TCP ngw1.a.example.com:5060;branch=z9hG4bKlueha2 Max-Forwards: 70 From: <sip:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sip:+19725552222@ss1.a.example.com;user=phone>;tag=314159 Call-ID: 4Fde34wkd11wsGFDs3@ngw1.a.example.com CSeq: 1 ACK Content-Length: 04. PSTN to PSTN Dialing via SIP Network
In these scenarios, both the caller and the called party are in the telephone network, either normal PSTN subscribers or PBX extensions. The calls route through two Gateways and at least one SIP Proxy Server. The Proxy Server performs the authentication and location of the Gateways. Again it is noted that the intent of this call flows document is not to provide a detailed parameter level mapping of SIP to PSTN protocols. For information on SIP to ISUP mapping, the reader is referred to other references [4]. In these scenarios, the call is successfully completed between the two Gateways, allowing the PSTN or PBX users to communicate. The 183 Session Progress response is used to indicate that in-band alerting may flow from the called party telephone switch to the caller.
4.1. Successful ISUP PSTN to ISUP PSTN call
Switch A NGW 1 Proxy 1 GW 2 Switch C | | | | | | IAM F1 | | | | |------------->| | | | | | INVITE F2 | | | | |------------->| INVITE F3 | | | | |------------->| IAM F4 | | | | |------------->| | | | | ACM F5 | | | | 183 F6 |<-------------| | | 183 F7 |<-------------| | | ACM F8 |<-------------| | | |<-------------| | | | | One Way Voice| Two Way RTP Media | One Way Voice| |<=============|<===========================>|<=============| | | | | ANM F9 | | | | 200 F10 |<-------------| | | 200 F11 |<-------------| | | ANM F12 |<-------------| | | |<-------------| | | | | | ACK F13 | | | | |------------->| ACK F14 | | | | |------------->| | |Both Way Voice| Both Way RTP Media |Both Way Voice| |<=============|<===========================>|<=============| | | | | REL F15 | | | | |<-------------| | | | BYE F16 | | | | BYE F18 |<-------------| RLC F17 | | |<-------------| |------------->| | | | | | | | 200 F19 | | | | |------------->| 200 F20 | | | | |------------->| | | REL F21 | | | | |<-------------| | | | | RLC F22 | | | | |------------->| | | | | | | | | In this scenario, Alice in the PSTN calls Carol who is an extension on a PBX. Alice's telephone switch signals via SS7 to the Network Gateway NGW 1, while Carol's PBX signals via SS7 with the Gateway GW 2. The CdPN and CgPN are mapped by GW 1 into SIP URIs and placed in the To and From headers. Proxy 1 looks up the dialed digits in the Request-URI and maps the digits to the PBX extension of Carol, which
is served by GW 2. The Proxy in F3 uses the host portion of the Request-URI to identify what private dialing plan is being referenced. The INVITE is then forwarded to GW 2 for call completion. An early media path is established end-to-end so that Alice can hear the ringing tone generated by PBX C. Carol answers the call and the media path is cut through in both directions. Bob hangs up terminating the call. Message Details F1 IAM Switch Alice -> NGW 1 IAM CgPN=314-555-1111,NPI=E.164,NOA=National CdPN=918-555-3333,NPI=E.164,NOA=National F2 INVITE NGW 1 -> Proxy 1 INVITE sips:+19185553333@ss1.a.example.com;user=phone SIP/2.0 Via: SIP/2.0/TLS ngw1.a.example.com:5061;branch=z9hG4bKlueha2 Max-Forwards: 70 From: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sips:+19185553333@ss1.a.example.com;user=phone> Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com CSeq: 1 INVITE Contact: <sips:ngw1@a.example.com> Content-Type: application/sdp Content-Length: 146 v=0 o=GW 2890844526 2890844526 IN IP4 ngw1.a.example.com s=- c=IN IP4 ngw1.a.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* Proxy 1 consults Location Service and translates the dialed number to a private number in the Request-URI*/ F3 INVITE Proxy 1 -> GW 2 INVITE sips:4443333@gw2.a.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1 Via: SIP/2.0/TLS ngw1.a.example.com:5061;branch=z9hG4bKwqwee65
;received=192.0.2.103 Max-Forwards: 69 Record-Route: <sips:ss1.a.example.com;lr> From: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sips:+19185553333@ss1.a.example.com;user=phone> Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com CSeq: 1 INVITE Contact: <sips:ngw1@a.example.com> Content-Type: application/sdp Content-Length: 146 v=0 o=GW 2890844526 2890844526 IN IP4 ngw1.a.example.com s=- c=IN IP4 ngw1.a.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 IAM GW 2 -> Switch C IAM CgPN=314-555-1111,NPI=E.164,NOA=National CdPN=444-3333,NPI=Private,NOA=Subscriber F5 ACM Switch C -> GW 2 ACM /* Based on the ACM message, GW 2 returns a 183 response. In-band call progress indications are sent to Alice through NGW 1. */ F6 183 Session Progress GW 2 -> Proxy 1 SIP/2.0 183 Session Progress Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1 ;received=192.0.2.111 Via: SIP/2.0/TLS ngw1.a.example.com:5061;branch=z9hG4bKlueha2 ;received=192.0.2.103 Record-Route: <sips:ss1.a.example.com;lr> From: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com CSeq: 1 INVITE Contact: <sips:4443333@gw2.a.example.com>
Content-Type: application/sdp Content-Length: 143 v=0 o=GW 987654321 987654321 IN IP4 gw2.a.example.com s=- c=IN IP4 gw2.a.example.com t=0 0 m=audio 14918 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F7 183 Session Progress Proxy 1 -> GW 1 SIP/2.0 183 Session Progress Via: SIP/2.0/TLS ngw1.a.example.com:5061;branch=z9hG4bKlueha2 ;received=192.0.2.103 Record-Route: <sips:ss1.a.example.com;lr> From: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com CSeq: 1 INVITE Contact: <sips:4443333@gw2.a.example.com> Content-Type: application/sdp Content-Length: 143 v=0 o=GW 987654321 987654321 IN IP4 gw2.a.example.com s=- c=IN IP4 gw2.a.example.com t=0 0 m=audio 14918 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* NGW 1 receives packets from GW 2 with encoded ringback, tones or other audio. NGW 1 decodes this and places it on the originating trunk. */ F8 ACM NGW 1 -> Switch A ACM /* Bob answers */
F9 ANM Switch C -> GW 2 ANM F10 200 OK GW 2 -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1 ;received=192.0.2.111 Via: SIP/2.0/TLS ngw1.a.example.com:5061;branch=z9hG4bKlueha2 ;received=192.0.2.103 Record-Route: <sips:ss1.a.example.com;lr> From: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com CSeq: 1 INVITE Contact: <sips:4443333@gw2.a.example.com> Content-Type: application/sdp Content-Length: 143 v=0 o=GW 987654321 987654321 IN IP4 gw2.a.example.com s=- c=IN IP4 gw2.a.example.com t=0 0 m=audio 14918 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F11 200 OK Proxy 1 -> NGW 1 SIP/2.0 200 OK Via: SIP/2.0/TLS ngw1.a.example.com:5061;branch=z9hG4bKlueha2 ;received=192.0.2.103 Record-Route: <sips:ss1.a.example.com;lr> From: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com CSeq: 1 INVITE Contact: <sips:4443333@gw2.a.example.com> Content-Type: application/sdp Content-Length: 143 v=0 o=GW 987654321 987654321 IN IP4 gw2.a.example.com s=- c=IN IP4 gw2.a.example.com
t=0 0 m=audio 14918 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F12 ANM NGW 1 -> Switch A ANM F13 ACK NGW 1 -> Proxy 1 ACK sips:4443333@gw2.a.example.com SIP/2.0 Via: SIP/2.0/TLS ngw1.a.example.com:5061;branch=z9hG4bKlueha2 Max-Forwards: 70 Route: <sips:ss1.a.example.com;lr> From: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com CSeq: 1 ACK Content-Length: 0 F14 ACK Proxy 1 -> GW 2 ACK sips:4443333@gw2.a.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1 Via: SIP/2.0/TLS ngw1.a.example.com:5061;branch=z9hG4bKlueha2 ;received=192.0.2.103 Max-Forwards: 69 From: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals To: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com CSeq: 1 ACK Content-Length: 0 /* RTP streams are established between NGW 1 and GW 2. */ /* Bob Hangs Up with Alice. */ F15 REL Switch C -> GW 2 REL CauseCode=16 Normal
F16 BYE GW 2 -> Proxy 1 BYE sips:ngw1@a.example.com SIP/2.0 Via: SIP/2.0/TLS gw2.a.example.com:5061;branch=z9hG4bKtexx6 Max-Forwards: 70 Route: <sips:ss1.a.example.com;lr> From: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 To: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com CSeq: 4 BYE Content-Length: 0 F17 RLC GW 2 -> Switch C RLC F18 BYE Proxy 1 -> NGW 1 BYE sips:ngw1@a.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1 Via: SIP/2.0/TLS gw2.a.example.com:5061;branch=z9hG4bKtexx6 ;received=192.0.2.202 Max-Forwards: 69 From: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 To: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com CSeq: 4 BYE Content-Length: 0 F19 200 OK NGW 1 -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.a.example.com:5061;branch=z9hG4bK2d4790.1 ;received=192.0.2.111 Via: SIP/2.0/TLS gw2.a.example.com:5061;branch=z9hG4bKtexx6 ;received=192.0.2.202 From: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 To: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com CSeq: 4 BYE Content-Length: 0
F20 200 OK Proxy 1 -> GW 2 SIP/2.0 200 OK Via: SIP/2.0/TLS gw2.a.example.com:5061;branch=z9hG4bKtexx6 ;received=192.0.2.202 From: <sips:+19185553333@ss1.a.example.com;user=phone>;tag=314159 To: <sips:+13145551111@ngw1.a.example.com;user=phone>;tag=7643kals Call-ID: 2xTb9vxSit55XU7p8@ngw1.a.example.com CSeq: 4 BYE Content-Length: 0 F21 REL Switch C -> GW 2 REL CauseCode=16 Normal F22 RLC GW 2 -> Switch C RLC
4.2. Successful FGB PBX to ISDN PBX call with overflow
PBX A GW 1 Proxy 1 GW 2 GW 3 PBX C | | | | | | | Seizure | | | | | |----------->| | | | | | Wink | | | | | |<-----------| | | | | |MF Digits F1| | | | | |----------->| | | | | | | INVITE F2 | | | | | |----------->| INVITE F3 | | | | | |----------->| | | | | | 503 F4 | | | | | |<-----------| | | | | | ACK F5 | | | | | |----------->| | | | | | INVITE F6 | | | | |------------------------>| SETUP F7 | | | | 100 F8 |----------->| | | |<------------------------|CALL PROC F9| | | | |<-----------| | | | | ALERT F10 | | | | 180 F11 |<-----------| | | 180 F12 |<------------------------| | | |<-----------| | | | Ringtone | | |OneWay Voice| |<===========| | |<===========| | | | | CONNect F13| | | | 200 F14 |<-----------| | | 200 F15 |<------------------------| | | Seizure |<-----------| | | |<-----------| ACK F16 | | | | |----------->| ACK F17 | | | | |------------------------>|CONN ACK F18| | | | |----------->| |BothWayVoice| Both Way RTP Media |BothWayVoice| |<==========>|<====================================>|<==========>| | | | | DISC F19 | | | | |<-----------| | | | BYE F20 | | | | BYE F21 |<------------------------| REL F22 | |Seiz Removal|<-----------| |----------->| |<-----------| 200 F23 | | | |Seiz Removal|----------->| 200 F24 | | |----------->| |------------------------>| REL COM F25| | | | |<-----------| | | | | |
PBX Alice calls PBX Carol via Gateway GW 1 and Proxy 1. During the attempt to reach Carol via GW 2, an error is encountered - Proxy 1 receives a 503 Service Unavailable (F4) response to the forwarded INVITE. This could be due to all circuits being busy, or some other outage at GW 2. Proxy 1 recognizes the error and uses an alternative route via GW 3 to terminate the call. From there, the call proceeds normally with Carol answering the call. The call is terminated when Carol hangs up. Message Details PBX Alice -> GW 1 Seizure GW 1 -> PBX A Wink F1 MF Digits PBX Alice -> GW 1 KP 444 3333 ST F2 INVITE GW 1 -> Proxy 1 INVITE sip:4443333@ss1.a.example.com SIP/2.0 Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 Max-Forwards: 70 From: <sip:551313@gw1.a.example.com>;tag=63412s To: <sip:4443333@ss1.a.example.com> Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com CSeq: 1 INVITE Contact: <sip:551313@gw1.a.example.com> Content-Type: application/sdp Content-Length: 155 v=0 o=GW 2890844526 2890844526 IN IP4 gw1.a.example.com s=- c=IN IP4 gw1.a.example.com t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000
/* Proxy 1 uses a Location Service function to determine where B is located. Response is returned listing alternative routes, GW2 and GW3, which are then tried sequentially. */ F3 INVITE Proxy 1 -> GW 2 INVITE sip:4443333@gw2.a.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 ;received=192.0.2.201 Max-Forwards: 69 Record-Route: <sip:ss1.a.example.com;lr> From: <sip:551313@gw1.a.example.com>;tag=63412s To: <sip:4443333@ss1.a.example.com> Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com CSeq: 1 INVITE Contact: <sip:551313@gw1.a.example.com> Content-Type: application/sdp Content-Length: 155 v=0 o=GW 2890844526 2890844526 IN IP4 gw1.a.example.com s=- c=IN IP4 gw1.a.example.com t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 503 Service Unavailable GW 2 -> Proxy 1 SIP/2.0 503 Service Unavailable Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1 ;received=192.0.2.111 Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 ;received=192.0.2.201 From: <sip:551313@gw1.a.example.com>;tag=63412s To: <sip:4443333@ss1.a.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com CSeq: 1 INVITE Content-Length: 0 F5 ACK Proxy 1 -> GW 2 ACK sip:4443333@ss1.a.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.1
Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 ;received=192.0.2.201 Max-Forward: 70 From: <sip:551313@gw1.a.example.com>;tag=63412s To: <sip:4443333@ss1.a.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com CSeq: 1 ACK Content-Length: 0 F6 INVITE Proxy 1 -> GW 3 INVITE sip:+19185553333@gw3.a.example.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2 Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 ;received=192.0.2.201 Max-Forwards: 69 Record-Route: <sip:ss1.a.example.com;lr> From: <sip:551313@gw1.a.example.com>;tag=63412s To: <sip:4443333@ss1.a.example.com> Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com CSeq: 1 INVITE Contact: <sip:551313@gw1.a.example.com> Content-Type: application/sdp Content-Length: 155 v=0 o=GW 2890844526 2890844526 IN IP4 gw1.a.example.com s=- c=IN IP4 gw1.a.example.com t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F7 SETUP GW 3 -> PBX C Protocol discriminator=Q.931 Message type=SETUP Bearer capability: Information transfer capability=0 (Speech) or 16 (3.1 kHz audio) Channel identification=Preferred or exclusive B-channel Progress indicator=1 (Call is not end-to-end ISDN; further call progress information may be available inband) Called party number: Type of number and numbering plan ID=33 (National number in ISDN numbering plan) Digits=918-555-3333
F8 100 Trying GW 3 -> Proxy 1 SIP/2.0 100 Trying Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 ;received=192.0.2.201 From: <sip:551313@gw1.a.example.com>;tag=63412s To: <sip:4443333@ss1.a.example.com> Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com CSeq: 1 INVITE Content-Length: 0 F9 CALL PROCeeding PBX C -> GW 3 Protocol discriminator=Q.931 Message type=CALL PROC F10 ALERT PBX C -> GW 3 Protocol discriminator=Q.931 Message type=PROG /* Based on ALERT message, GW 3 returns a 180 response. */ F11 180 Ringing GW 3 -> Proxy 1 SIP/2.0 180 Ringing Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2 ;received=192.0.2.111 Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 ;received=192.0.2.201 Record-Route: <sip:ss1.a.example.com;lr> From: <sip:551313@gw1.a.example.com>;tag=63412s To: <sip:4443333@ss1.a.example.com>;tag=123456789 Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com CSeq: 1 INVITE Contact: <sip:+19185553333@gw3.a.example.com;user=phone> Content-Length: 0 F12 180 Ringing Proxy 1 -> GW 1 SIP/2.0 180 Ringing Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65
;received=192.0.2.201 Record-Route: <sip:ss1.a.example.com;lr> From: <sip:551313@gw1.a.example.com>;tag=63412s To: <sip:4443333@ss1.a.example.com>;tag=123456789 Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com CSeq: 1 INVITE Contact: <sip:+19185553333@gw3.a.example.com;user=phone> Content-Length: 0 F13 CONNect PBX C -> GW 3 Protocol discriminator=Q.931 Message type=CONN F14 200 OK GW 3 -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2 ;received=192.0.2.111 Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 ;received=192.0.2.201 Record-Route: <sip:ss1.a.example.com;lr> From: <sip:551313@gw1.a.example.com>;tag=63412s To: <sip:4443333@ss1.a.example.com>;tag=123456789 Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com CSeq: 1 INVITE Contact: <sip:+19185553333@gw3.a.example.com;user=phone> Content-Type: application/sdp Content-Length: 143 v=0 o=GW 987654321 987654321 IN IP4 gw3.a.example.com s=- c=IN IP4 gw3.a.example.com t=0 0 m=audio 14918 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F15 200 OK Proxy 1 -> GW 1 SIP/2.0 200 OK Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 ;received=192.0.2.201 Record-Route: <sip:ss1.a.example.com;lr> From: <sip:551313@gw1.a.example.com>;tag=63412s
To: <sip:4443333@ss1.a.example.com>;tag=123456789 Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com CSeq: 1 INVITE Contact: <sip:+19185553333@gw3.a.example.com;user=phone> Content-Type: application/sdp Content-Length: 143 v=0 o=GW 987654321 987654321 IN IP4 gw3.a.example.com s=- c=IN IP4 gw3.a.example.com t=0 0 m=audio 14918 RTP/AVP 0 a=rtpmap:0 PCMU/8000 GW 1 -> PBX A Seizure F16 ACK GW 1 -> Proxy 1 ACK sip:+19185553333@gw3.a.example.com;user=phone SIP/2.0 Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 Max-Forwards: 70 Route: <sip:ss1.a.example.com;lr> From: <sip:551313@gw1.a.example.com>;tag=63412s To: <sip:4443333@ss1.a.example.com>;tag=123456789 Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com CSeq: 1 ACK Content-Length: 0 F17 ACK Proxy 1 -> GW 3 ACK sip:+19185553333@gw3.a.example.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2 Via: SIP/2.0/UDP gw1.a.example.com:5060;branch=z9hG4bKwqwee65 ;received=192.0.2.201 Max-Forwards: 69 From: <sip:551313@gw1.a.example.com>;tag=63412s To: <sip:4443333@ss1.a.example.com>;tag=123456789 Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com CSeq: 1 ACK Content-Length: 0
F18 CONNect ACK GW 3 -> PBX C Protocol discriminator=Q.931 Message type=CONN ACK /* RTP streams are established between GW 1 and GW 3. */ /* Bob Hangs Up with Alice. */ F19 DISConnect PBX C -> GW 3 Protocol discriminator=Q.931 Message type=DISC Cause=16 (Normal clearing) F20 BYE GW 3 -> Proxy 1 BYE sip:551313@gw1.a.example.com SIP/2.0 Via: SIP/2.0/UDP gw3.a.example.com:5060;branch=z9hG4bKkdjuwq Max-Forwards: 70 Route: <sip:ss1.a.example.com;lr> From: <sip:4443333@ss1.a.example.com>;tag=123456789 To: <sip:551313@gw1.a.example.com>;tag=63412s Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com CSeq: 1 BYE Content-Length: 0 F21 BYE Proxy 1 -> GW 1 BYE sip:551313@gw1.a.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2 Via: SIP/2.0/UDP gw3.a.example.com:5060;branch=z9hG4bKkdjuwq ;received=192.0.2.203 Max-Forwards: 69 From: <sip:4443333@ss1.a.example.com>;tag=123456789 To: <sip:551313@gw1.a.example.com>;tag=63412s Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com CSeq: 1 BYE Content-Length: 0 GW 1 -> PBX A Seizure removal
F22 RELease GW 3 -> PBX C Protocol discriminator=Q.931 Message type=REL F23 200 OK GW 1 -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.a.example.com:5060;branch=z9hG4bK2d4790.2 ;received=192.0.2.111 Via: SIP/2.0/UDP gw3.a.example.com:5060;branch=z9hG4bKkdjuwq ;received=192.0.2.203 From: <sip:4443333@ss1.a.example.com>;tag=123456789 To: <sip:551313@gw1.a.example.com>;tag=63412s Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com CSeq: 1 BYE Content-Length: 0 F24 200 OK Proxy 1 -> GW 3 SIP/2.0 200 OK Via: SIP/2.0/UDP gw3.a.example.com:5060;branch=z9hG4bKkdjuwq ;received=192.0.2.203 From: <sip:4443333@ss1.a.example.com>;tag=123456789 To: <sip:551313@gw1.a.example.com>;tag=63412s Call-ID: 2xTb9vxSit55XU7p8@gw1.a.example.com CSeq: 1 BYE Content-Length: 0 F25 RELease COMplete PBX C -> GW 3 Protocol discriminator=Q.931 Message type=REL COM PBX Alice -> GW 1 Seizure removal5. Security Considerations
This document provides examples of mapping from SIP to ISUP and ISUP to SIP. The gateways in these examples are compliant with the Security Considerations Section of RFC 3398 [4] which is summarized here.
There are few security concerns relating to the mapping of ISUP to SIP besides privacy considerations in the calling party number passing. Some concerns relating to the mapping from tel URI parameters to ISUP include the user creation of parameters and codes relating to called number and local number portability (LNP). An operator of a gateway should use policies similar to those present in PSTN switches to avoid security problems. The mapping from a SIP response code to an ISUP Cause Code presents a theoretical risk, so a gateway operator may implement policies controlling this mapping. Gateways should also not rely on the contents of the From header field for identity information, as it may be arbitrarily populated by a user. Instead, some sort of cryptographic authentication and authorization should be used for identity determination. These flows show both HTTP Digest for authentication of users, although for brevity, the challenge is not always shown. The early media cut-through shown in some flows is another potential security risk, but it is also required for proper interaction with the PSTN. Again, a gateway operator should use proper policies relating to early media to prevent fraud and misuse. Finally, a user agent (even a properly authenticated one) can launch multiple simultaneous requests through a gateway, constituting a denial of service attack. The adoption of policies to limit the number of simultaneous requests from a single entity may be used to prevent this attack. As discussed in the SIP-T framework [7], SIP/ISUP interworking can be employed as an interdomain signaling mechanism that may be subject to pre-existing trust relationships between administrative domains. Any administrative domain implementing SIP-T or SIP/ISUP interworking should have an adequate security apparatus (including elements that manage any appropriate policies to manage fraud and billing in an interdomain environment) in place to ensure that the translation of ISUP information does not result in any security violations. Although no examples of this are shown in this document, transporting ISUP in SIP bodies may provide opportunities for abuse, fraud, and privacy concerns, especially when SIP-T requests can be generated, inspected or modified by arbitrary SIP endpoints. ISUP MIME bodies should be secured (preferably with S/MIME as detailed in RFC 3261 [2]) to alleviate this concern. Authentication properties provided by S/MIME would allow the recipient of a SIP-T message to ensure that the ISUP MIME body was generated by an authorized entity. Encryption would ensure that only carriers possessing a particular decryption key are capable of inspecting encapsulated ISUP MIME bodies in a SIP request.
6. References
6.1. Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [2] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M. E. and Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. [3] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with the Session Description Protocol (SDP)", RFC 3264, June 2002. [4] Camarillo, G., Roach, A. B., Peterson, J. and L. Ong, "Integrated Services Digital Network (ISDN) User Part (ISUP) to Session Initiation Protocol (SIP) Mapping", RFC 3398, December 2002. [5] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen, A. and L. Stewart, "HTTP Authentication: Basic and Digest Access Authentication", RFC 2617, June 1999. [6] Vaha-Sipila, A., "URLs for Telephone Calls", RFC 2806, April 2000. [7] Vemuri, A. and J. Peterson, "Session Initiation Protocol for Telephones (SIP-T): Context and Architectures", BCP 63, RFC 3372, September 2002. [8] Zimmerer, E., Peterson, J., Vemuri, A., Ong, L., Audet, F., Watson, M. and M. Zonoun, "MIME media types for ISUP and QSIG Objects", RFC 3204, December 2001. [9] Faltstrom, P., "E.164 number and DNS", RFC 2916, September 2000.6.2. Informative References
[10] Johnston, A., Donovan, S., Sparks, R., Cunningham, C. and K. Summers, "Session Initiation Protocol (SIP) Basic Call Flow Examples", RFC 3665, December 2003.
7. Acknowledgments
Thanks to Rohan Mahy, Adam Roach, Gonzalo Camarillo, Cullen Jennings, and Tom Taylor for their detailed comments during the final review. Thanks to Dean Willis for his early contributions to the development of this document. Thanks to Jon Peterson for his help on the security section. The authors wish to thank Kundan Singh for performing parser validation of messages. The authors wish to thank the following individuals for their participation in a detailed review of this call flows document: Aseem Agarwal, Rafi Assadi, Ben Campbell, Sunitha Kumar, Jon Peterson, Marc Petit-Huguenin, Vidhi Rastogi, and Bodgey Yin Shaohua. The authors also wish to thank the following individuals for their assistance: Jean-Francois Mule, Hemant Agrawal, Henry Sinnreich, David Devanatham, Joe Pizzimenti, Matt Cannon, John Hearty, the whole MCI WorldCom IPOP Design team, Scott Orton, Greg Osterhout, Pat Sollee, Doug Weisenberg, Danny Mistry, Steve McKinnon, and Denise Ingram, Denise Caballero, Tom Redman, Ilya Slain, Pat Sollee, John Truetken, and others from MCI WorldCom, 3Com, Cisco, Lucent and Nortel.8. Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification can be obtained from the IETF Secretariat. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director.
9. Authors' Addresses
All listed authors actively contributed large amounts of text to this document. Alan Johnston MCI 100 South 4th Street St. Louis, MO 63102 USA EMail: alan.johnston@mci.com Steve Donovan dynamicsoft, Inc. 5100 Tennyson Parkway Suite 1200 Plano, Texas 75024 USA EMail: sdonovan@dynamicsoft.com Robert Sparks dynamicsoft, Inc. 5100 Tennyson Parkway Suite 1200 Plano, Texas 75024 USA EMail: rsparks@dynamicsoft.com Chris Cunningham dynamicsoft, Inc. 5100 Tennyson Parkway Suite 1200 Plano, Texas 75024 USA EMail: ccunningham@dynamicsoft.com Kevin Summers Sonus 1701 North Collins Blvd, Suite 3000 Richardson, TX 75080 USA EMail: kevin.summers@sonusnet.com
10. Full Copyright Statement
Copyright (C) The Internet Society (2003). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assignees. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society.