RFC 8606

ISDN User Part (ISUP) Cause Location Parameter for the SIP Reason Header Field

πŸ“… published June 2019, from ietf

RFC 8606: ISUP Cause Location Parameter for the SIP Reason Header Field πŸŽ€

Part 1 of 2 πŸ’–

Okay bestie, this is RFC 8606 and it's giving "small add-on, huge vibes" πŸ¦‹. It was written by R. Jesske at Deutsche Telekom πŸ‡©πŸ‡ͺ and published in June 2019 🌸. It's a Standards Track document, so it's a real spec the Internet actually follows ✨. It has ISSN 2070-1721 πŸ“š. The main thing is that it updates RFC 3326 πŸ’œ, which means it adds something new to the SIP Reason header field that RFC 3326 already set up.


Abstract

okay so the SIP Reason header field is built to carry ISUP cause values and SIP response codes πŸ“ž. Some SIP services need to know the ISUP location where a call got released in the PSTN (Public Switched Telephone Network) 🏠, otherwise they can't read the reason of release correctly πŸ’€. This document updates RFC 3326 by adding a location parameter just for that πŸ”₯.


Status of This Memo ✨

This is an Internet Standards Track document πŸŽ€.

It's a product of the Internet Engineering Task Force (IETF) πŸ’…. It represents the consensus of the IETF community 🫢. It went through public review and got approved for publication by the Internet Engineering Steering Group (IESG) πŸ‘‘. More info on Internet Standards is in Section 2 of RFC 7841 πŸ“–.

For the current status, any errata, and how to give feedback, check https://www.rfc-editor.org/info/rfc8606 πŸ¦‹.


Copyright (c) 2019 IETF Trust and the persons identified as the document authors πŸ’œ. All rights reserved ✨.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as in effect on the date of publication πŸ“œ. Please read these carefully, because they describe your rights and restrictions for this document πŸ™ˆ. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Simplified BSD License πŸ’–.


Table of Contents 🧚

1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
3.  Rationale . . . . . . . . . . . . . . . . . . . . . . . . . .   3
4.  Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . .   3
5.  Example . . . . . . . . . . . . . . . . . . . . . . . . . . .   4
6.  Privacy Considerations  . . . . . . . . . . . . . . . . . . .   5
7.  Security Considerations . . . . . . . . . . . . . . . . . . .   5
8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   6
  8.1.  Registration of the Location Parameter for the Reason
        Header Field  . . . . . . . . . . . . . . . . . . . . . .   6
9.  Normative References  . . . . . . . . . . . . . . . . . . . .   6
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .   7
Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   7

1. Introduction ✨

okay so Section 3.4 of [RFC3326] describes a SIP message flow for canceling an INVITE request when a REL (release) message shows up from the ISUP side πŸ“ž. That document defines the SIP Reason header field [RFC3326], which is used to say what the reason of release was πŸ’…. The reason of release tells you why a SIP Dialog or a PSTN call got terminated, in cases where the call was interworked to the PSTN πŸ”₯. The termination could be normal 🌸, based on a failure inside an entity (like a temporary failure) πŸ’€, or caused by other stuff (like congestion) πŸ™ˆ. The reason can be either a SIP response or an ISUP release cause as specified within [Q.850] πŸ’œ. [RFC6432] says an ISUP [Q.850] cause code can ride along inside a SIP response ✨, but the Q.850 location information can't 😭. That location info tells you which part of the ISUP network the call was released in πŸ¦‹.

This document adds a location value parameter to the reason-extension parameter defined in [RFC3326] πŸŽ€, so the [Q.850] location value can be interworked from the PSTN 🌈. The interworking from the PSTN only needs to include the location that the interworking gateway received 🫢. [Q.850] defines the cause code values and the locations used in ISDN and DSS1 (Digital Subscriber Signalling System No. 1) environments πŸ“š. The cause code tells you the reason a call was released, and the location tells you where it was released πŸ’–.


2. Terminology πŸ’…

Here's the key-word situation πŸ”₯. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here 🧚.


3. Rationale 🌸

The main goal of this parameter is for use in IMS (IP Multimedia Subsystem) networks defined by 3GPP πŸ“‘. It's also open to any other networks that have ISUP interworking gateways and use Q.850 reason codes 🌍. The point is to hold the location of the call release, so it can be carried from the originating PSTN entity to the SIP entity, either in a response or in a BYE message ✨. The ISDN location is defined in [Q.850] πŸ’œ.


4. Mechanism πŸ¦‹

As defined by [RFC6432], any SIP Response message, with the exception of 100 (Trying), MAY contain a Reason header field with a Q.850 [Q.850] cause code πŸ’–.

This specification adds a parameter with the ISUP location value defined in [Q.850] to the Reason header field πŸŽ€. It identifies where the call got released in ISUP πŸ”₯. The location is a 4-bit value that reflects the possible places an ISUP call can be released 🌈. Some values are spare or reserved for national use πŸ™ˆ. The Augmented BNF (ABNF) [RFC5234] for this parameter is shown in Figure 1 πŸ’….

reason-extension    =/ isup-cause-location
isup-cause-location =  "location" EQUAL isup-location-value

isup-location-value =
   "U" /      ; for 0 0 0 0 user
   "LPN" /    ; for 0 0 0 1 private network serving the local user
   "LN" /     ; for 0 0 1 0 public network serving the local user
   "TN" /     ; for 0 0 1 1 transit network
   "RLN" /    ; for 0 1 0 0 public network serving the remote user
   "RPN" /    ; for 0 1 0 1 private network serving the remote user
   "LOC-6" /  ; for 0 1 1 0 spare
   "INTL" /   ; for 0 1 1 1 international network
   "LOC-8" /  ; for 1 0 0 0 spare
   "LOC-9" /  ; for 1 0 0 1 spare
   "BI" /     ; for 1 0 1 0 network beyond interworking point
   "LOC-11" / ; for 1 0 1 1 spare
   "LOC-12" / ; for 1 1 0 0 reserved for national use
   "LOC-13" / ; for 1 1 0 1 reserved for national use
   "LOC-14" / ; for 1 1 1 0 reserved for national use
   "LOC-15"   ; for 1 1 1 1 reserved for national use

Figure 1: ABNF for isup-cause-location

Note: These are the location values defined within [Q.850]. The 'LOC-*' names are the wire codepoints for the values currently left as 'spare' or 'reserved' in [Q.850]; these will continue to be the wire codepoints in the case of future allocation or national usage of the such values. ✨

The UAC or UAS SHALL include the location parameter in a request or response when it sets up the Reason header field with a [Q.850] cause, as long as the ISUP [Q.850] location is available 🫢.

The use of the location parameter is restricted to Q.850 cause values πŸ“š. Other values MUST be ignored if present πŸ™…β€β™€οΈ.


5. Example πŸŽ€

Here's a SIP 404 response with a Reason header field that has a [Q.850] cause value and an isup-cause-location value πŸ“ž. The 404 Response gets sent when a gateway receives an ISUP release with a [Q.850] cause set to 1, which means Unallocated (unassigned) number, i.e., the number isn't known in the PSTN πŸ’€.

SIP/2.0 404 Not Found
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
From: Alice <sips:alice@atlanta.example.com>;tag=1234567
To: Bob <sips:bob@biloxi.example.com>;tag=765432
Call-ID: 12345600@atlanta.example.com
CSeq: 1 INVITE
Reason: Q.850;cause=1;text="Unallocated (unassigned) number";
     location=LN
Content-Length: 0

Figure 2: Example of a Location in the Reason Header Field 🌸

9. Normative References ✨

Okay so this is the reading list for the spec, bestie πŸ“š Every doc here is a must-read if you want to actually implement this stuff. Here's the squad:

[Q.850] ITU-T, "Usage of cause and location in the Digital Subscriber Signalling System No. 1 and the Signalling System No. 7 ISDN user part", Recommendation ITU-T Q.850, October 2018, <https://www.itu.int/rec/T-REC-Q.850>.

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <https://www.rfc-editor.org/info/rfc2119>.

[RFC3326] Schulzrinne, H., Oran, D., and G. Camarillo, "The Reason Header Field for the Session Initiation Protocol (SIP)", RFC 3326, DOI 10.17487/RFC3326, December 2002, <https://www.rfc-editor.org/info/rfc3326>.

[RFC3398] Camarillo, G., Roach, A., Peterson, J., and L. Ong, "Integrated Services Digital Network (ISDN) User Part (ISUP) to Session Initiation Protocol (SIP) Mapping", RFC 3398, DOI 10.17487/RFC3398, December 2002, <https://www.rfc-editor.org/info/rfc3398>.

[RFC3968] Camarillo, G., "The Internet Assigned Number Authority (IANA) Header Field Parameter Registry for the Session Initiation Protocol (SIP)", BCP 98, RFC 3968, DOI 10.17487/RFC3968, December 2004, <https://www.rfc-editor.org/info/rfc3968>.

[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, DOI 10.17487/RFC5234, January 2008, <https://www.rfc-editor.org/info/rfc5234>.

[RFC6432] Jesske, R. and L. Liess, "Carrying Q.850 Codes in Reason Header Fields in SIP (Session Initiation Protocol) Responses", RFC 6432, DOI 10.17487/RFC6432, November 2011, <https://www.rfc-editor.org/info/rfc6432>.

[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/info/rfc8174>.


Acknowledgments 🫢

Huge thanks to the people who gave comments and reviewed this, you're all literally the best πŸ’– Michael Kreipl, Thomas Belling, Marianne Mohali, Peter Daws, Paul Kyzivat, Dale Worley, Yehoshua Gev, and Keith Drage ✨


Author's Address πŸŽ€

Roland Jesske Deutsche Telekom Heinrich-Hertz Str, 3-7 Darmstadt 64295 Germany

Email: r.jesske@telekom.de URI: www.telekom.de

πŸ“¦ where this page comes from