RFC 3204

MIME media types for ISUP and QSIG Objects

πŸ“… published December 2001, from ietf

RFC 3204: MIME media types for ISUP and QSIG Objects ✨

Okay bestie, this one is the MIME media types spec for ISUP and QSIG objects πŸŽ€

Network Working Group: Request for Comments 3204 πŸ’– Authors: E. Zimmerer (Rankom, Inc.), J. Peterson (Neustar, Inc.), A. Vemuri (Qwest Communications), L. Ong (Ciena Networks), F. Audet and M. Watson (no affiliation shown in the header), and M. Zonoun (Nortel Networks) 🫢 Category: Standards Track πŸ”₯ Date: December 2001 🌸 Obsoletes / Updates: The header doesn't list anything it obsoletes or updates πŸ¦‹

Status of this Memo

Okay so this document is an Internet standards track protocol for the Internet community, and it's literally asking for discussion and suggestions for improvements πŸ’… For the standardization state and status, check the current edition of the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited ✨

Copyright (C) The Internet Society (2001). All Rights Reserved. πŸ’œ

Abstract

This doc describes MIME types for application/ISUP and application/QSIG objects, used in SIP applications, following the rules in RFC 2048 🧚 These types can be used to identify ISUP and QSIG objects inside a SIP message like INVITE or INFO. That's the vibe when you're running SIP in an environment where part of the call interworks to the PSTN πŸ“ž

1. Introduction

ISUP (ISDN User part) is defined in the ITU-T recommendations Q.761-4 πŸ¦‹ It's a signaling protocol that telephony switches use to talk to each other. Sometimes ISUP-encoded signaling info has to get carried between SIP entities as part of the payload of SIP messages, and keeping that ISUP data intact is necessary for PSTN features to keep working properly πŸ’–

QSIG is the analogous signaling protocol, used between private branch exchanges to support calls inside private telephony networks 🌈 Some environments have the same need to carry QSIG-encoded signaling info between SIP entities ✨

This document is specific to that usage, and it wouldn't apply to moving ISUP or QSIG messages around in other applications πŸ™ˆ These media types are meant for ISUP or QSIG application info that's used within the context of a SIP session. They're not for general purpose transport of SCN signaling πŸ’…

The definition of media types for ISUP and QSIG application information doesn't fully address how the non-SIP and SIP entities exchanging messages figure out or negotiate compatibility 😭 It's assumed that something else handles that, like how the interworking functions are configured 🧚

This is intended to be an IETF approved MIME type, and it's supposed to get defined through an RFC πŸŽ€ NOTE: usage of Q.SIG within SIP is neither endorsed nor recommended as a result of this MIME registration πŸ’€

3. Proposed new media types

ISUP and QSIG messages are made of arbitrary binary data that SIP processing is totally transparent to πŸ¦‹ The best way to encode these is binary encoding. That's in line with the restrictions placed on binary data for MIME (RFC 2045 [3]) ✨ Just note that the rules in RFC 2045 apply to Internet mail messages, not to SIP messages πŸ’… Binary was picked over Base64 because Base64 would only add bulk to the encoded messages, and it could cost more processing power too 🫢

3.1 ISUP Media Type

Here's how this media type is defined πŸ’–

Media type name: application
Media subtype name: ISUP
Required parameters: version
Optional parameters: base
Encoding scheme: binary
Security considerations: See section 5.

The ISUP message is encapsulated starting at the Message Type Code (i.e., omitting Routing Label and Circuit ID Code) πŸŽ€

The version parameter lets network administrators identify the specific ISUP versions that get exchanged on a bilateral basis πŸ‘‘ That helps a particular client, like a SoftSwitch/Media Gateway Controller, recognize and parse the message correctly. It can also (possibly) reject the message if the specified ISUP version isn't supported πŸ”₯ This spec puts no constraints on what values can go in version. Those are left up to the network administrator 🌸

The version could, for example, identify a network-specific implementation of ISUP, like X-NetxProprietaryISUPv3. It could also identify a well-known standard version of ISUP, like itu-t or ansi ✨

A base parameter can optionally be included in some cases (for example, if the receiver may not recognize the version string). It specifies that the encapsulated ISUP can also be processed using the identified base specification 🧚 Table 1 lists the base values supported by the application/ISUP media type. It also shows whether the forward compatibility mechanism defined in ITU-T 1992 ISUP is supported πŸ¦‹

                  Table 1: ISUP 'base' values

      base             protocol                 compatibility

      itu-t88          ITU-T Q.761-4 (1988)     no
      itu-t92+         ITU-T Q.761-4 (1992)     yes
      ansi88           ANSI T1.113-1988         no
      ansi00           ANSI T1.113-2000         yes
      etsi121          ETS 300 121              no
      etsi356          ES 300 356               yes
      gr317            BELLCORE GR-317          no
      ttc87            JT-Q761-4(1987-1992)     no
      ttc93+           JT-Q761-4(1993-)         yes

The Content-Disposition header [5] can be included to describe how the encapsulated ISUP is supposed to get processed πŸ’… It also says what the handling should be if the received Content-Type isn't recognized. The default disposition-type for an ISUP message body is "signal" 🫢 That type means the body part carries signaling info tied to the session, but it doesn't describe the session itself πŸŽ€

Supplementing the description of the Content-Disposition header in [5], and any characterization of that header in the SIP standard, is the BNF below. It describes the disposition-types and disposition-params that can show up in the header of ISUP and QSIG MIME bodies πŸ‘‘

   Content-Disposition   =  "Content-Disposition" ":"
                        disposition-type *( ";" disposition-param )
   disposition-type      =  "signal" |  disp-extension-token
   disposition-param     =  "handling" "="
                        ( "optional" | "required" | other-handling )
                        |   generic-param
   other-handling        =  token
   disp-extension-token  =  token

The full definition of the "handling" parameter is in the IANA Considerations section below 🌈 Here's how a typical header looks (base may be omitted) πŸ’–

Content-Type: application/ISUP; version=nxv3; base=etsi121
Content-Disposition: signal; handling=optional

3.2 QSIG Media Type

The application/QSIG media type is defined by this info 🧚

Media type name: application
Media subtype name: QSIG
Required parameters: none
Optional parameters: version
Encoding scheme: binary
Security considerations: See section 5.

The version parameter lets you identify different QSIG variants ✨ That helps the terminating Connection Server recognize and parse the message correctly, or (possibly) reject it if that particular QSIG variant isn't supported πŸ’…

Table 2 lists the protocol versions supported by the application/QSIG media type πŸ¦‹

        Table 2: QSIG versions

      version         protocol
      -------         --------
      iso             ISO/IEC 11572 (Basic Call) and
                      ISO/IEC 11582 (Generic Functional Protocol)

Here's a typical header (Content-Disposition isn't included in this one) πŸŽ€

Content-Type: application/QSIG; version=iso

The default Content-Disposition disposition-type is "signal", same as in an ISUP body part πŸ’œ The "handling" parameter described above can also be used for QSIG bodies 🫢

4. Illustrative examples

4.1 ISUP

Quick SIP refresher: a SIP message format needs a Request line, then Header lines, then a CRLF separator, then the message body 🌸 To show how the application/ISUP media type works, here's an INVITE message carrying the originating SDP info plus an encapsulated ISUP IAM 🧚

Heads up: the two payloads are separated by the boundary parameter (specified in RFC 2046 [4]), which in this example is "unique-boundary-1" πŸ‘‘ That's part of how MIME multipart works and isn't related to the

     INVITE sip:13039263142@Den1.level3.com SIP/2.0
     Via: SIP/2.0/UDP den3.level3.com
     From: sip:13034513355@den3.level3.com
     To: sip:13039263142@Den1.level3.com
     Call-ID: DEN1231999021712095500999@Den1.level3.com
     CSeq: 8348 INVITE
     Contact: <sip:jpeterson@level3.com>
     Content-Length: 436
     Content-Type: multipart/mixed; boundary=unique-boundary-1
     MIME-Version: 1.0

     --unique-boundary-1
     Content-Type: application/SDP; charset=ISO-10646

     v=0
     o=jpeterson 2890844526 2890842807 IN IP4 126.16.64.4
     s=SDP seminar
     c=IN IP4 MG122.level3.com
     t= 2873397496  2873404696
     m=audio 9092 RTP/AVP 0 3 4
     --unique-boundary-1
     Content-Type: application/ISUP; version=nxv3;
     base=etsi121
     Content-Disposition: signal; handling=optional
     01 00 49 00 00 03 02 00 07 04 10 00 33 63 21
     43 00 00 03 06 0d 03 80 90 a2 07 03 10 03 63
     53 00 10 0a 07 03 10 27 80 88 03 00 00 89 8b
     0e 95 1e 1e 1e 06 26 05 0d f5 01 06 10 04 00
     --unique-boundary-1--

Note: Since binary encoding is used for the ISUP payload, each byte is encoded as a byte, not as a two-character hex representation πŸ¦‹ The hex digits in the document are there because a literal encoding of those bytes would have been confusing and unreadable πŸ™ˆ

4.2. QSIG ✨

okay so this one is giving "show, don't tell" and I am OBSESSED πŸ¦‹. It's an INVITE message that carries the originating SDP info AND an encapsulated QSIG SETUP message, all bundled up together like a little gift πŸŽ€.

Here's the thing: the two payloads are separated by the boundary parameter, which is defined in [4]. In this example it's set to unique-boundary-1. That boundary stuff is just how MIME multipart works πŸ’…, and it has nothing to do with the application/QSIG media type itself. Don't mix them up, bestie πŸ™ˆ.

     INVITE sip:14084955072@sc1.nortelnetworks.com SIP/2.0
     Via: SIP/2.0/UDP sc10.nortelnetworks.com
     From: sip:14085655675@sc10.nortelnetworks.com
     To: sip:14084955072@sc1.nortelnetworks.com
     Call-ID: 1231999021712095500999@sc12.nortelnetworks.com
     CSeq: 1234 INVITE
     Contact: <sip:14085655675@sc10.nortelnetworks.com>
     Content-Length: 358
     Content-Type: multipart/mixed; boundary=unique-boundary-1
     MIME-Version: 1.0

     --unique-boundary-1
     Content-Type: application/SDP; charset=ISO-10646

     v=0
     o=audet 2890844526 2890842807 5 IN IP4 134.177.64.4
     s=SDP seminar
     c=IN IP4 MG141.nortelnetworks.com
     t= 2873397496 2873404696
     m=audio 9092 RTP/AVP 0 3 4
     --unique-boundary-1
     Content-type:application/QSIG; version=iso

     08 02 55 55 05 04 02 90 90 18 03 a1 83 01
     70 0a 89 31 34 30 38 34 39 35 35 30 37 32
     --unique-boundary-1--

5. Security considerations πŸ”₯

okay bestie, this part is SERIOUS 😭. ISUP and QSIG bodies can carry sensitive customer information, so encryption might be needed πŸ”. The security mechanisms in [2] (SIP, aka RFC 2543 πŸ’œ) should be used wherever they fit, for both the SIP message and the encapsulated ISUP or QSIG body. Stay safe out there 🫢.

6. IANA considerations 🌈

this section is where the registrations happen πŸ“‹. The document registers the "application/ISUP" and "application/QSIG" MIME media types ✨.

The version symbols used in the ISUP and QSIG MIME types need registrations that name a definitive specification reference, pointing at one particular issue of the spec that the new symbol refers to. Pinning that down needs a review process, and the authors recommend a subject matter expert be designated under Expert Review, as described in [6] 🧚.

Here's a fun shortcut πŸ“: if a spec is fully peer-to-peer backwards compatible with an earlier issue (meaning the compatibility mechanism is supported by both sides), then you do NOT need a new symbol. Just reuse the original spec's symbol, and that goes for backwards-compatible upgrades too ✨.

Symbols that start with X- are reserved for non-standard usage πŸ§ƒ. Think of a case where a token that isn't an issue string is the right way to describe ISUP inside an administrative domain. Those non-standard versions can only travel between administrative domains under a bilateral agreement 🀝. These symbols should be managed under the Private Use policy from [6] πŸ”’.

This document also registers a new disposition-type for the Content-Disposition header, called signal πŸ“£. It's for when a MIME body carries supplemental signaling info, and ISUP and QSIG bodies are the main examples πŸ’–. The Content-Disposition header itself is from [5] πŸŽ€.

And there's a Content Disposition parameter called handling πŸ›ŽοΈ. The handling-parm tells the UAS how to react if it gets a message body whose content type or disposition type it doesn't understand. If it's optional, the UAS MUST ignore that body. If it's required, the UAS MUST return 415 (Unsupported Media Type) 🚫. And if the handling parameter is missing entirely, required is assumed πŸ‘‘.

7. Authors Addresses πŸ’Œ

   Eric Zimmerer
   Rankom Inc.
   19500 Pruneridge Ave Suite #4303
   Cupertino, CA 95014, USA
   EMail: eric_zimmerer@yahoo.com

   Aparna Vemuri
   Qwest Communications
   6000 Parkwood Pl
   Dublin, OH 43016, USA
   EMail: Aparna.Vemuri@Qwest.com

   Jon Peterson
   NeuStar, Inc
   1800 Sutter Street, Suite 570
   Concord, CA 94520, USA
   EMail: jon.peterson@neustar.com

   Lyndon Ong
   Ciena
   Cupertino, CA, USA
   EMail: lyndon_ong@yahoo.com

   Francois Audet
   Nortel Networks
   4301 Great America Parkway
   Santa Clara, CA 95054, USA
   EMail: mzonoun@nortelnetworks.com
   Mo Zonoun
   Nortel Networks
   4301 Great America Parkway
   Santa Clara, CA 95054, USA
   EMail: audet@nortelnetworks.com

   M. Watson
   Nortel Networks
   Maidenhead, UK
   EMail: mwatson@nortelnetworks.com

8. References πŸ“š

   [1] Freed, N., Klensin, J. and J. Postel, "Multipart Internet Mail
       Extensions (MIME) Part Four: Registration Procedures", BCP 13,
       RFC 2048, November 1996.

   [2] Handley, M., Schulzrinne, H., Schooler, E. and J. Rosenberg,
       "Session Initiation Protocol (SIP)", RFC 2543, March 1999.

   [3] Freed, N. and N. Borenstein, "Multipart Internet Mail Extensions
       (MIME) Part One: Format of Internet Message Bodies", RFC 2045,
       November 1996.

   [4] Freed, N. and N. Borenstein, "Multipart Internet Mail Extensions
       (MIME) Part Two: Media Types", RFC 2046, November 1996.

   [5] Troost, R., Dorner, S. and K. Moore, "Communicating Presentation
       Information in Internet Messages: The Content-Disposition Header
       Field", RFC 2183, August 1997.

   [6] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA
       Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.

Copyright (C) The Internet Society (2001). 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 assigns.

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. 🫢

πŸ“¦ where this page comes from