RFC 6913
Indicating Fax over IP Capability in the Session Initiation Protocol (SIP)
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 Notice
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 theimage/t38media 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 supportsaudio/pcmuandaudio/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
- ietf: rfc6913 2013-03
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms