RFC 6913

Indicating Fax over IP Capability in the Session Initiation Protocol (SIP)

πŸ“… published March 2013, from ietf

Indicating Fax over IP Capability in the Session Initiation Protocol (SIP) πŸ’Œ

Okay so, quick tour of the paperwork first. This is RFC 6913, a Standards Track document from March 2013. D. Hanes and G. Salgueiro (Cisco Systems) and K. Fleming (Digium, Inc.) wrote it, and it sits in the ISSN 2070-1721 series. The title block doesn't list anything it obsoletes or updates. πŸŽ€

Abstract ✨

This doc defines the new "fax" media feature tag for SIP and registers it with IANA πŸ¦‹. Right now, fax calls look exactly like voice calls when they start, so they can get routed to SIP user agents that can't do fax, which is so not the vibe πŸ’€. A "fax" media feature tag used together with caller preferences makes fax call routing way more accurate πŸ”₯.

Status of This Memo

This is an Internet Standards Track document.

This document is a product of the Internet Engineering Task Force (IETF) 🌈. It represents the consensus of the IETF community. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). More info on Internet Standards is in Section 2 of RFC 5741.

You can check the current status of this document, any errata, and how to send feedback at http://www.rfc-editor.org/info/rfc6913 🧚.

Copyright (c) 2013 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 (http://trustee.ietf.org/license-info) as in effect on the date this document was published. Please actually read these, bestie, because they explain your rights and restrictions for this document. Code Components pulled out of 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.  Motivation  . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4.  Usage of the "sip.fax" Parameter  . . . . . . . . . . . . . . . 4
5.  Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
6.  Security Considerations . . . . . . . . . . . . . . . . . . . . 6
7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
8.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 7
9.  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 7
  9.1.  Normative References  . . . . . . . . . . . . . . . . . . . 7
  9.2.  Informative References  . . . . . . . . . . . . . . . . . . 8

1. Introduction 🌸

Okay so fax over SIP [RFC3261] is handled in a "voice first" way, and it's giving drama πŸ™ˆ. When the initial INVITE gets sent, nobody knows yet that someone wants to use a fax transport protocol like ITU-T T.38 [T38] to send a fax. The call sets up as a voice call first, and only after it's connected does it switch over to T.38 [T38]. That's the problem, because fax calls can end up routed by accident to SIP user agents (UAs) that can't do fax 😭.

To make sure fax calls land on fax-capable SIP UAs, you can use caller preferences from RFC 3841 [RFC3841]. Feature preferences are part of RFC 3841 [RFC3841] and let UAs say they'd prefer to receive fax communications. SIP servers then take those preferences into account, which makes it more likely that fax calls get routed to fax-capable SIP UAs πŸ’–.

This document defines the "fax" media feature tag for the SIP tree, following Section 12.1 of RFC 3840 [RFC3840]. The feature tag gets applied per RFC 3841 [RFC3841] as a feature preference for fax-capable UAs πŸ¦‹.

2. Terminology

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119] πŸ€“.

3. Motivation 🧠

Most of the time, capabilities are better handled in the Session Description Protocol (SDP) part of the SIP [RFC3261] communication. Fax is kind of a special case though, because what the call is actually for doesn't get signaled accurately in the initial SDP exchange. Indications of T.38 [T38] or any other fax transport protocol aren't known when the call starts with an INVITE message. Fax calls are always treated as voice calls until after they're connected. So fax calls can end up being received by SIP UAs that can't handle fax transmissions, and that's a whole mess 😩.

Picture this: Alice wants to send a fax to Bob. Bob has two SIP UAs registered. The first one can't do fax, but the second one supports the T.38 [T38] fax protocol. Right now, SIP servers have no way to know at the start of the call that Alice wants a fax-capable SIP UA to handle her call. The SIP servers also don't know which of Bob's SIP UAs are fax capable πŸ™ƒ.

To fix calls not reaching a UA that supports fax, this document defines a new fax-specific media feature tag under RFC 3840 [RFC3840]. Caller preferences from RFC 3841 [RFC3841] can then be used to register UAs that support fax and to route fax calls to them. So now Alice can say right up front that she prefers a T.38 [T38] fax-capable SIP UA for this call ✨. Meanwhile Bob's SIP UAs have shared their fax capabilities during registration too. When Alice places a fax call to Bob, it gets routed to Bob's fax-capable SIP UA, and that's the main character moment we wanted πŸ‘‘.

4. Usage of the "sip.fax" Parameter πŸŽ€

The "sip.fax" media feature tag is a new string parameter, defined in this document, that lets a call indicate a fax preference. A receiving UA includes the "sip.fax" media feature tag in the Contact header field of REGISTER messages to show that it's fax capable. A SIP Registrar then puts this tag in the Contact header field of its 200 OK response to confirm the registration of that preference. All of this follows RFC 3840 [RFC3840] πŸ”₯.

A calling UA SHOULD include the "sip.fax" media feature tag in the Accept-Contact header of an INVITE request so it can say it wants the call routed to a fax-capable UA. Without this tag, fax call determination isn't possible until after the call connects 😬. If a calling UA includes the "sip.fax" tag, and the SIP network elements that process the call (including the called UAs) implement the procedures of RFC 3840 and RFC 3841, then the call will be routed preferentially to UAs that advertised support for this feature. They do that by including it in the Contact header of their REGISTER requests, like we covered above πŸ’….

The calling UA can also use the additional procedures in RFC 3840 and RFC 3841 to express a requirement, instead of a preference, that its call go to fax-capable UAs. But the calling UA SHOULD NOT require the "sip.fax" media type. Doing that could make the call fail for a bunch of reasons πŸ’€. There might not be any receiving UAs registered that advertised support for this feature, and one or more SIP network elements that process the call might not support the processing defined in RFC 3840 and RFC 3841. A calling UA that wants this requirement should be ready to relax it into a preference if it gets a failure response saying the requirement mechanism itself isn't supported by the called UAs, their proxies, or other SIP network elements πŸ™ˆ.

When calls do connect using "sip.fax" as either a preference or a requirement, UAs should follow the standard fax negotiation procedures in ITU-T T.38 [T38] for T.38 fax calls. For fax passthrough calls, they follow ITU-T G.711 [G711] and ITU-T V.152 [V152], Sections 6 and 6.1 🧚. So the "sip.fax" feature tag has two allowed values: "t38" and "passthrough". The "t38" value means the upcoming call will use the ITU-T T.38 [T38] protocol for the fax transmission. The "passthrough" value means the ITU-T G.711 [G711] codec will carry the fax call πŸ“.

5. Example πŸ¦‹

Bob registers with the fax media feature tag, and the message flow is in Figure 1 🌈:

            SIP Registrar                    Bob's SIP UA
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                |                               |
                |          REGISTER F1          |
                |<------------------------------|
                |                               |
                |           200 OK F2           |
                |------------------------------>|
                |                               |

      Figure 1: Fax Media Feature Tag SIP Registration Example

F1 is the REGISTER from Bob to the Registrar:

REGISTER sip:example.com SIP/2.0
Via: SIP/2.0/TCP bob-TP.example.com:5060;branch=z9hG4bK309475a2
From: <sip:bob-tp@example.com>;tag=a6c85cf
To: <sip:bob-tp@pexample.com>
Call-ID: a84b4c76e66710
Max-Forwards: 70
CSeq: 116 REGISTER
Contact: <sip:bob-tp@pc33.example.com;transport=tcp>;+sip.fax="t38"
Expires: 3600

The registrar replies with a 200 OK πŸ’–:

F2 is the 200 OK from the Registrar to Bob:

SIP/2.0 200 OK
From: <sip:bob-tp@example.com>;tag=a6c85cf
To: <sip:bob-tp@example.com>;tag=1263390604
Contact: <sip:bob-tp@example.com;transport=tcp>;+sip.fax="t38"
Expires: 120
Call-ID: a84b4c76e66710
Via: SIP/2.0/TCP bob-TP.example.com:5060;branch=z9hG4bK309475a2
CSeq: 116 REGISTER
Expires: 3600

Callers who want to express a preference for fax include the "sip.fax" media feature tag in the Accept-Contact header of their INVITE πŸŽ€.

INVITE sip:bob@biloxi.example.com SIP/2.0
Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74b43
Max-Forwards: 70
From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl
To: Bob <sip:bob@biloxi.example.com>
Accept-Contact: *;+sip.fax="t38"
Call-ID: 3848276298220188511@atlanta.example.com
CSeq: 1 INVITE
Contact: <sip:alice@client.atlanta.example.com;transport=tcp>
Content-Type: application/sdp
Content-Length: 151

6. Security Considerations πŸ”

The security considerations for using media feature tags from Section 11.1 of RFC 3840 [RFC3840] apply here. Please don't skip them, because they're the real deal and they matter for every deployment 🚨.

7. IANA Considerations πŸŽ€

okay bestie, this part is for IANA (the folks who keep the registries πŸ“‹). This spec adds a brand new media feature tag to the SIP Media Feature Tag Registration Tree, following the procedures in RFC 2506 [RFC2506] and RFC 3840 [RFC3840]. Here's the registration template, copied exactly:

   Media feature tag name:  sip.fax

   ASN.1 Identifier:  1.3.6.1.8.4.25

   Summary of the media feature indicated by this tag:  This feature tag
      indicates whether a communications device supports the ITU-T T.38
      [T38] fax protocol ("t38") or the passthrough method of fax
      transmission using the ITU-T G.711 [G711] audio codec
      ("passthrough").

   Values appropriate for use with this feature tag:  Token with an
      equality relationship.  Values are:

      t38:  The device supports the "image/t38" media type [RFC3326] and
         implements ITU-T T.38 [T38] for transporting the ITU-T T.30
         [T30] and ITU-T T.4 [T4] fax data over IP.

      passthrough:  The device supports the "audio/pcmu" and "audio/
         pcma" media types [RFC4856] for transporting ITU-T T.30 [T30]
         and ITU-T T.4 [T4] fax data using the ITU-T G.711 [G711] audio
         codec.  Additional implementation recommendations are in ITU-T
         V.152 [V152], Sections 6 and 6.1.

   The feature tag is intended primarily for use in the following
      applications, protocols, services, or negotiation mechanisms:
      This feature tag is most useful in a communications application
      for the early identification of a Fax over IP (FoIP) call.

   Examples of typical use:  Ensuring a fax call is routed to a fax
      capable SIP UA.

   Related standards or documents:  RFC 6913

   Security Considerations:  The security considerations related to the
      use of media feature tags from Section 11.1 of RFC 3840 [RFC3840]
      apply.

Now the juicy bits, in plain English πŸ’…:

  • Name: sip.fax. That's it, that's the tag πŸ¦‹
  • ASN.1 Identifier: 1.3.6.1.8.4.25. Don't touch the numbers, they're the ID πŸ”’
  • What it tells you: whether a device does the ITU-T T.38 [T38] fax protocol (t38), or passthrough, which sends fax over the ITU-T G.711 [G711] audio codec (passthrough) πŸ“ 
  • Value type: it's a token with an equality relationship, so you match it exactly 🎯
  • Values:
    • t38: the device supports the image/t38 media type [RFC3326] and runs ITU-T T.38 [T38] to move ITU-T T.30 [T30] and ITU-T T.4 [T4] fax data over IP πŸ–¨οΈ
    • passthrough: the device supports audio/pcmu and audio/pcma [RFC4856] to carry ITU-T T.30 [T30] and ITU-T T.4 [T4] fax data through G.711 [G711] audio. More implementation notes are in ITU-T V.152 [V152], Sections 6 and 6.1 πŸ“š
  • Where it's useful: mostly in communications apps for spotting a Fax over IP (FoIP) call early on πŸ“ž
  • Typical use: making sure a fax call gets routed to a fax capable SIP UA 🚦
  • Related doc: RFC 6913
  • Security: the security considerations for media feature tags in Section 11.1 of RFC 3840 [RFC3840] apply here too πŸ”
bestie, the security part isn't optional. Go read Section 11.1 of RFC 3840 [RFC3840] before you ship anything with this tag 🚨

8. Acknowledgements 🫢

This document is the result of a seriously iconic partnership between the SIP Forum and the i3 Forum. They ran a groundbreaking international test program for FoIP to make fax over IP networks more interoperable and reliable, especially across tandem networks 🌍✨. The authors want to shout out the whole Fax-over-IP (FoIP) Task Group in the SIP Forum, and the communications carriers of the I3 Forum, for all that effort and dedication πŸ‘.

This memo also got a lot out of the discussion and review from the DISPATCH working group. Special love to Dan Wing, Paul Kyzivat, Christer Holmberg, Charles Eckel, Hadriel Kaplan, Tom Yu, Dale Worley, Adrian Farrel, and Pete Resnick for their detailed, thoughtful comments and corrections πŸ’œ.

The authors also thank Gonzalo Camarillo for his review and AD sponsorship of this draft, and DISPATCH WG chair Mary Barnes for her review and support 🌸.


9. References πŸ“š

9.1. Normative References

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC3261]  Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
           A., Peterson, J., Sparks, R., Handley, M., and E.
           Schooler, "SIP: Session Initiation Protocol", RFC 3261,
           June 2002.

[RFC3840]  Rosenberg, J., Schulzrinne, H., and P. Kyzivat,
           "Indicating User Agent Capabilities in the Session
           Initiation Protocol (SIP)", RFC 3840, August 2004.

[RFC3841]  Rosenberg, J., Schulzrinne, H., and P. Kyzivat, "Caller
           Preferences for the Session Initiation Protocol (SIP)",
           RFC 3841, August 2004.

[T38]      International Telecommunication Union, "Procedures for
           real-time Group 3 facsimile communication over IP
           Networks", ITU-T Recommendation T.38, October 2010.

9.2. Informative References

[G711]     International Telephone and Telegraph Consultative
           Committee, "Pulse Code Modulation (PCM) of Voice
           Frequencies", CCITT Recommendation G.711, 1972.

[RFC2506]  Holtman, K., Mutz, A., and T. Hardie, "Media Feature Tag
           Registration Procedure", BCP 31, RFC 2506, March 1999.

[RFC3326]  Schulzrinne, H., Oran, D., and G. Camarillo, "The Reason
           Header Field for the Session Initiation Protocol (SIP)",
           RFC 3326, December 2002.

[RFC4856]  Casner, S., "Media Type Registration of Payload Formats in
           the RTP Profile for Audio and Video Conferences",
           RFC 4856, February 2007.

[T30]      International Telecommunication Union, "Procedures for
           document facsimile transmission in the general switched
           telephone network", ITU-T Recommendation T.30, September
           2005.

[T4]       International Telecommunication Union, "Standardization of
           Group 3 facsimile terminals for document transmission",
           ITU-T Recommendation T.4, July 2003.

[V152]     International Telecommunication Union, "Procedures for
           supporting voice-band data over IP networks", ITU-T
           Recommendation V.152, September 2010.

Authors' Addresses πŸ’Œ

David Hanes
Cisco Systems
7200-10 Kit Creek Road
Research Triangle Park, NC  27709
US

EMail: dhanes@cisco.com


Gonzalo Salgueiro
Cisco Systems
7200-12 Kit Creek Road
Research Triangle Park, NC  27709
US

EMail: gsalguei@cisco.com


Kevin P. Fleming
Digium, Inc.
445 Jan Davis Drive NW
Huntsville, AL  35806
US

EMail: kevin@kpfleming.us

and that's a wrap on RFC 6913, bestie πŸŒˆπŸ‘‘πŸ’–

πŸ“¦ where this page comes from