Internet Engineering Task Force Jieying Li Internet Draft Jean-Francois Mule Document: Clarent Corp Category: Informational March 2001 Expires: September 2001 SIP T.38 Call Flow Examples And Best Current Practices Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026 [1]. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet- Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. 1. Abstract The Session Initiation Protocol allows the establishment of real- time Internet fax communications as defined by the ITU-T T.38 recommendation. This document attempts to clarify the options available to Internet telephony gateway vendors to handle real-time fax calls using SIP. It also gives examples of SIP call flows for T.38 Internet fax gateways. Elements in these call flows include SIP User Agents, SIP Proxy Servers, and Gateways to the PSTN (Public Switch Telephone Network). This document introduces current practices for T.38 fax sessions: a session starts with audio capabilities, and, upon fax tone detection, T.38 fax capabilities are negotiated. The T.38 fax call scenarios include the detection of fax transmission by the receiving side, or the emitting side, or both (in the latter case, a 'glare' effect may appear). The current version of this document only covers the case when the fax tone is detected by the receiving side (other cases were left for discussion and may be included in the future). Call flow diagrams and message details are shown. A list of IANA defined SDP attribute names for T.38 is summarized in section 7. Li, Mule SIP WG 1 SIP T.38 Call Flows March 2001 Table of Contents Status of this Memo....................................................1 1. Abstract............................................................1 2. Conventions used in this document...................................2 3. Overview............................................................3 3.1. General Assumptions..............................................3 3.2 Legend for Message Flows...........................................3 3.3 Changes to 00 draft................................................4 4 Handling of real-time fax communication using SIP....................4 4.1 Internet telephony gateways and fax detection......................4 4.2 Internet telephony gateways and fax media connections..............5 4.3 SIP session and fax termination....................................5 4.4 Fall-back to fax pass-through......................................5 5 Successful SIP T.38 fax Call Scenarios...............................6 5.1 Internet fax device û fax only support.............................6 5.1.1 Sequence Diagram.................................................6 5.1.2 Message Details..................................................7 5.2 SIP T.38 fax call û fax stream replaces voice stream..............12 5.2.1 Sequence Diagram................................................12 5.2.2 Message Details.................................................14 5.3 SIP T.38 fax call û fax stream added to voice stream..............23 5.3.1 Sequence Diagram................................................24 5.3.2 Message Details.................................................25 5.4 SIP T.38 fax call û fax stream forced to replace voice stream.....35 5.4.1 Sequence Diagram................................................35 5.4.1 Message Details.................................................35 6. Unsuccessful Scenarios.............................................39 6.1. Unsuccessful T.38 fax scenario û no support for T.38.............39 6.1.1. Sequence Diagram...............................................39 6.1.2. Message Details................................................40 6.2. Unsuccessful T.38 fax scenario û 606 response and G.711 fallback.42 6.2.1. Sequence Diagram...............................................42 6.2.2. Message Details................................................43 7. SDP Attribute Table for T.38 sessions..............................48 8. Considerations.....................................................49 8.1. Level of requirements:...........................................49 8.2. Negotiation of UDP ports for T.38 transmission...................49 9. Security Considerations............................................49 10. References........................................................49 11. Acknowledgments..................................................50 12. Author's Addresses................................................50 Full Copyright Statement..............................................51 2. Conventions used in this document 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 [2]. Li/Mule 2 SIP T.38 Call Flows March 2001 3. Overview The Session Initiation Protocol (SIP) is defined by RFC2543 [3] and T.38 is an ITU-T Recommendation for real-time Internet fax [4]. This document deals with the handling of real-time fax communications using the SIP protocol. Call flows shown in this document complements the overall SIP call flow Internet Draft [5]. It has been agreed that some of these specific T.38 fax call flows will be merged into the SIP call flows ID [5]. The current version of this document deals primarily with one transport protocol for the media: T.38 over UDPTL (T.38 fax calls over TCP using SIP could be extrapolated from the current document using the same principles but with different media descriptions). These T.38 call flows were developed in the design of carrier-class SIP Telephony products supporting voice and real-time fax traffic. It is the hope of the authors that this document will be useful for the SIP community, SIP implementors of T.38 fax products, designers. These call flows are based on the current version 2.0 of SIP in RFC2543[6], the ITU-T T.38 Amendment 2 [7] and a SG8 liaison to IANA. 3.1. General Assumptions T.38 fax gateways may detect various fax tones (CNG, CED, etc.) or flag sequence (like Preamble) and pass these in the audio RTP streams before they are detected. Once detected by the DSP, T.38 fax gateways switch from audio to fax mode and initiate a T.38 fax packet transmission. These best current practices apply with both "Network Gateway" and "Enterprise Gateway". 3.2 Legend for Message Flows The legend defined [5] also applies in this document. Dashed lines (---) represent control messages that are mandatory to the call scenario. These control messages can be SIP or PSTN signaling. Double dashed lines (===) represent media paths between network elements. Messages with parenthesis around name represent optional control messages. Messages are identified in the Figures as F1, F2, etc. This references the message details in the table that follows the Figure. Comments in the message details are shown in the following form: /* Comments. */ Li/Mule 3 SIP T.38 Call Flows March 2001 3.3 Changes to 00 draft The major changes between this draft and the previous draft are listed below: - Major updates: + new text in fax handling section 4.2 based on sip list: clarified text for fax detection, capability negotiation and termination + additions of new successful call flows in section 5 + additions of unsuccessful call flows in section 6 - Added Record-Route header, modified Cseq numbers, - Added T38FaxMaxDatagram attribute in SDP and corrected the sample value for T38FaxMaxBuffer, - Minor editorial changes (e.g. removed references in Abstract). 4 Handling of real-time fax communication using SIP The handling of real-time fax sessions using SIP involves the initial session establishment, the modification or negotiation of the session capabilities upon fax detection and the session termination. Some variants may apply depending on the nature or configuration of Internet telephony gateways. Two distinct cases may indeed be considered: . The Internet telephony gateway only supports fax communications (by design or by configuration). In this case, the Internet fax gateway should initiate a SIP call with T.38 SDP capabilities (this is typically the case of Internet Fax Terminals, also called Internet-aware fax terminals or the case of gateways statically configured to support T.38 fax calls only); . The Internet telephony gateway supports voice and fax communications. In this case, the Internet telephony gateway initiates a SIP session with audio capabilities, and, upon fax detection, the switchover to T.38 fax capabilities is triggered. The fax media connection may replace or be added to the audio connection depending on the target applications. 4.1 Internet telephony gateways and fax detection Two possible ways exist for detecting a fax communication between 2 Internet telephony gateways: 1. On the emitting gateway (the one sending the facsimile document), the calling tone (CNG) is detected. The CNG tone is however an optional signal [8]. 2. On the receiving gateway, the V.21 Preamble flag sequence is detected. The Preamble is always present and follows the called station identification tone (CED) when CED is present. Li/Mule 4 SIP T.38 Call Flows March 2001 Note that even though the CED tone may be detected on the receiving gateway, since the fax CED tone is similar to V.25 ANS modem tones, it must not be used to trigger the fax switch-over. In conclusion, several conditions can trigger fax detection. The authors of this document recommend detection of a fax transmission on the receiving side by recognizing the V.21 Preamble flag sequence. Internet telephony gateways must support the detection of fax on Preamble flag sequence. Internet telephony gateways may support the detection of fax on CNG tone. 4.2 Internet telephony gateways and fax media connections The communication peer detecting fax initiates the modification of the session description using the SDP protocol [9] as described in SIP. Several cases should be considered: - In the case of Internet fax devices (supporting T.38 fax only communications), the SDP description should contain T.38 capabilities as soon as the SIP session is established; refer to section 5.1 for a sample call flow for Internet fax devices. - In the case of Internet telephony gateways, the SIP session is modified and the T.38 fax media connection replaces the existing audio media connection. The SIP UAC initiating the modification of the session description must indicate all of its T.38 media attributes in SDP. This is the recommended behavior for gateways; refer to section 5.2 for a sample call flow illustrating this scenario. Additionally, some implementations may choose to add the fax media stream to the existing audio stream and mute the audio while fax is transmitted. Refer to section 5.3 for a sample call flow illustrating this scenario. 4.3 SIP session and fax termination Upon completion of the fax transmission, the session may be terminated or the audio stream may be restored. If a SIP session starts with audio capabilities, then ôswitchö to fax capabilities, it is recommended to switch back to audio mode after fax transmission. 4.4 Fall-back to fax pass-through If one of the SIP entities does not support T.38 real-time fax, it may decide to fall back to a fax pass-through mode by proposing to switch to a new audio connection with G.711 codec. Refer to section 6.2 for a sample call flow illustrating this scenario. Li/Mule 5 SIP T.38 Call Flows March 2001 5 Successful SIP T.38 fax Call Scenarios 5.1 Internet fax device û fax only support This section represents a SIP call flow for a T.38 fax session between 2 Internet fax terminals. It is also applicable to Internet telephony gateways when telephony ports are statically configured to support fax only (case of analog IP telephony gateways where a specific port is connected to a fax terminal). A session starts with fax capabilities (t.38/udptl). The mechanism for supporting T.38 in SIP & SDP is detailed in T.38 Annex D [10], a temporary document that proposes an amendment to T.38 describing SIP call establishment procedures. 5.1.1 Sequence Diagram Internet Fax UA Proxy IFTGW UA Fax | | | ------->| F1 INVITE | | emitted |------------------->| | | | F2 INVITE | | |------------------->| | F3 100 Trying | | |<-------------------| F4 100 Trying | | |<-------------------| | | | | | F5 180 Ringing | | F6 180 Ringing |<-------------------| |<-------------------| | | | F7 200 OK | | F8 200 OK |<-------------------| |<-------------------| | | F9 ACK | | |------------------->| F10 ACK | | |------------------->| | | | T.38/UDPTL Fax Flow Established | |<=======================================>| End of | | fax | | | detected| | | ------->| | | | F11 BYE | | |------------------->| | | | F12 BYE | | |------------------->| | | F13 200 OK | | |<-------------------| | F14 200 OK | | |<-------------------| | Li/Mule 6 SIP T.38 Call Flows March 2001 5.1.2 Message Details F1 INVITE I.FAX UA -> PROXY INVITE sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ifax.here.com:5060 From: sip:+1-303-555-1111@ifax.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ifax.here.com CSeq: 17 INVITE Content-Type: application/sdp Content-Length: 320 v=0 o=ifaxgw1 2890846527 2890846527 IN IP4 ifax.here.com s=Session SDP c=IN IP4 ifaxmg.here.com t=0 0 m=image 15002 udptl t38 a=T38FaxVersion:0 a=T38maxBitRate:14400 a=T38FaxFillBitRemoval:0 a=T38FaxTranscodingMMR:0 a=T38FaxTranscodingJBIG:0 a=T38FaxRateManagement:transferredTCF a=T38FaxMaxBuffer:72 a=T38FaxMaxDatagram:316 a=T38FaxUdpEC:t38UDPFEC a=T38FaxUdpEC:t38UDPRedundancy F2 INVITE PROXY -> IFTGW UA INVITE sip:+1-650-555-2222@iftgw.there.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d007.1 Via: SIP/2.0/UDP ifax.here.com:5060 Record-Route: From: sip:+1-303-555-1111@ifax.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ifax.here.com CSeq: 17 INVITE Content-Type: application/sdp Content-Length: 320 v=0 o=ifaxgw1 2890846527 2890846527 IN IP4 ifax.here.com s=Session SDP c=IN IP4 ifaxmg.here.com t=0 0 m=image 15002 udptl t38 a=T38FaxVersion:0 a=T38maxBitRate:14400 Li/Mule 7 SIP T.38 Call Flows March 2001 a=T38FaxFillBitRemoval:0 a=T38FaxTranscodingMMR:0 a=T38FaxTranscodingJBIG:0 a=T38FaxRateManagement:transferredTCF a=T38FaxMaxBuffer:72 a=T38FaxMaxDatagram:316 a=T38FaxUdpEC:t38UDPFEC a=T38FaxUdpEC:t38UDPRedundancy F3 (100 Trying) PROXY -> I.FAX UA SIP/2.0 100 Trying Via: SIP/2.0/UDP ifax.here.com:5060 From: sip:+1-303-555-1111@ifax.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ifax.here.com CSeq: 17 INVITE Content-Length: 0 F4 (100 Trying) IFTGW UA -> PROXY SIP/2.0 100 Trying Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d007.1 Via: SIP/2.0/UDP ifax.here.com:5060 From: sip:+1-303-555-1111@ifax.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ifax.here.com CSeq: 17 INVITE Content-Length: 0 F5 180 Ringing IFTGW UA -> PROXY SIP/2.0 180 Ringing Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d007.1 Via: SIP/2.0/UDP ifax.here.com:5060 From: sip:+1-303-555-1111@ifax.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ifax.here.com CSeq: 17 INVITE Content-Length: 0 F6 180 Ringing PROXY -> I.FAX UA SIP/2.0 180 Ringing Via: SIP/2.0/UDP ifax.here.com:5060 From: sip:+1-303-555-1111@ifax.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ifax.here.com Li/Mule 8 SIP T.38 Call Flows March 2001 CSeq: 17 INVITE Content-Length: 0 F7 200 OK IFTGW UA -> PROXY SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d007.1 Via: SIP/2.0/UDP ifax.here.com:5060 From: sip:+1-303-555-1111@ifax.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ifax.here.com CSeq: 17 INVITE Content-Type: application/sdp Content-Length: 320 v=0 o=faxgw1 2890844527 2890844527 IN IP4 iftgw.there.com s=Session SDP c=IN IP4 iftmg.there.com t=0 0 m=image 49172 udptl t38 a=T38FaxVersion:0 a=T38maxBitRate:14400 a=T38FaxFillBitRemoval:0 a=T38FaxTranscodingMMR:0 a=T38FaxTranscodingJBIG:0 a=T38FaxRateManagement:transferredTCF a=T38FaxMaxBuffer:72 a=T38FaxMaxDatagram:316 a=T38FaxUdpEC:t38UDPRedundancy F8 200 OK PROXY -> I.FAX UA SIP/2.0 200 OK Via: SIP/2.0/UDP ifax.here.com:5060 Record-Route: From: sip:+1-303-555-1111@ifax.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ifax.here.com CSeq: 17 INVITE Content-Type: application/sdp Content-Length: 320 v=0 o=faxgw1 2890844527 2890844527 IN IP4 iftgw.there.com s=Session SDP c=IN IP4 iftmg.there.com t=0 0 m=image 49172 udptl t38 a=T38FaxVersion:0 Li/Mule 9 SIP T.38 Call Flows March 2001 a=T38maxBitRate:14400 a=T38FaxFillBitRemoval:0 a=T38FaxTranscodingMMR:0 a=T38FaxTranscodingJBIG:0 a=T38FaxRateManagement:transferredTCF a=T38FaxMaxBuffer:72 a=T38FaxMaxDatagram:316 a=T38FaxUdpEC:t38UDPRedundancy F9 ACK I.FAX UA -> PROXY ACK sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ifax.here.com:5060 Route: From: sip:+1-303-555-1111@ifax.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ifax.here.com CSeq: 17 ACK Content-Length: 0 F10 ACK PROXY -> IFTGW UA ACK sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d007.1 Via: SIP/2.0/UDP ifax.here.com:5060 Record-Route: From: sip:+1-303-555-1111@ifax.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ifax.here.com CSeq: 17 ACK Content-Length: 0 /* T.38 fax streams are established. */ F11 BYE I.FAX UA -> PROXY BYE sip:+1-650-555-2222@ss1.wcom.com SIP/2.0 Via: SIP/2.0/UDP ifax.here.com:5060 Route: From: sip:+1-303-555-1111@ifax.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ifax.here.com CSeq: 18 BYE Content-Length: 0 F12 BYE PROXY -> IFTGW UA Li/Mule 10 SIP T.38 Call Flows March 2001 BYE sip:+1-650-555-2222@ss1.wcom.com SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d009.1 Via: SIP/2.0/UDP ifax.here.com:5060 Record-Route: From: sip:+1-303-555-1111@ifax.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ifax.here.com CSeq: 18 BYE Content-Length: 0 F13 200 OK IFTGW UA -> PROXY SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d007.1 Via: SIP/2.0/UDP ifax.here.com:5060 From: sip:+1-303-555-1111@ifax.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ifax.here.com CSeq: 18 BYE Content-Type: application/sdp Content-Length: 0 F14 200 OK PROXY -> I.FAX UA SIP/2.0 200 OK Via: SIP/2.0/UDP ifax.here.com:5060 Record-Route: From: sip:+1-303-555-1111@ifax.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ifax.here.com CSeq: 18 BYE Content-Type: application/sdp Content-Length: 0 Li/Mule 11 SIP T.38 Call Flows March 2001 5.2 SIP T.38 fax call û fax stream replaces voice stream This section represents the SIP call flow for a T.38 fax session between 2 Internet telephony gateways (fax detection on terminating side). A session starts with audio capabilities, and then the session is modified to switch to t38 fax mode (t.38/udptl). Scenario: 1. A SIP INVITE is sent to the called party requesting a voice connection per RFC2543; our scenario involves 1 SIP proxy. An audio connection is established, 2. Upon detection of Preamble by the terminating gateway, a second SIP INVITE request is sent to the emitting gateway to modify the parameters of the session to allow a T.38 fax media connection. This INVITE request has the same CALL-ID as the existing voice call but a higher Cseq number and an SDP message body detailing T.38 capabilities, 3. Upon successful acknowledgments, T.38 IFP fax packets are sent/received on UDP ports, which may be the same UDP ports used for audio RTP, 4. Once the fax transmission is terminated, audio capabilities are ôrestoredö or the call is terminated. 5.2.1 Sequence Diagram In our example, we illustrate the fact that Internet telephony gateways may use multiple network interfaces for signaling and/or media streaming or one network interface with multiple IP addresses. Typically, our example shows: - one interface for SIP signaling (ingress gateway = ift.here.com, egress gateway = iftgw.there.com) - one or multiple interface(s) for media transport: (ingress gateway = iftmg.here.com, egress gateway = iftmg.there.com) A proxy is acting as a pure SIP signaling proxy (ss1.wcom.com). IFT UA Proxy IFTGW UA | | | | F1 INVITE | | |------------------->| | | | F2 INVITE | | |------------------->| | F3 100 Trying | | |<-------------------| F4 100 Trying | | |<-------------------| | | | | | F5 180 Ringing | | F6 180 Ringing |<-------------------| |<-------------------| | | | F7 200 OK | Li/Mule 12 SIP T.38 Call Flows March 2001 | F8 200 OK |<-------------------| |<-------------------| | | | | | F9 ACK | | |------------------->| F10 ACK | | ------------------->| | | | Both Way RTP Media Established | Fax |<=======================================>| ------->| | emitted | | | | | | Preamble | | |<--------- | | F11 INVITE | detected | |<-------------------| | F12 INVITE | | |<-------------------| | | | | | F13 200 OK | | |------------------->| | | | F14 200 OK | | |------------------->| | | | | | F15 ACK | | |<-------------------| | F16 ACK | | |<-------------------| | | | | T.38/UDPT Fax Flow Established | |<=======================================>| End of | | fax | | | detected| | | ------->| | | | | | End of fax | | |<---------- | | | detected | | F17 INVITE | | |<-------------------| | F18 INVITE | | |<-------------------| | | | | | F19 200 OK | | |------------------->| | | | F20 200 OK | | |------------------->| | | | | | F21 ACK | | |<-------------------| | F22 ACK | | |<-------------------| | Li/Mule 13 SIP T.38 Call Flows March 2001 | Both Way RTP Media Re-Established | |<=======================================>| | F23 BYE | | |------------------->| | | | F24 BYE | | |------------------->| | | | | | F25 200 OK | | |<-------------------| | F26 200 OK | | |<-------------------| | 5.2.2 Message Details F1 INVITE IFT UA -> PROXY INVITE sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ift.here.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 INVITE Content-Type: application/sdp Content-Length: 146 v=0 o=IFAXTERMINAL01 2890844527 2890844527 IN IP4 ift.here.com s=Session SDP c=IN IP4 iftmg.here.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 INVITE PROXY -> IFTGW UA INVITE sip:+1-650-555-2222@iftgw.there.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d007.1 Via: SIP/2.0/UDP ift.here.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 INVITE Content-Type: application/sdp Content-Length: 146 v=0 Li/Mule 14 SIP T.38 Call Flows March 2001 o=IFAXTERMINAL01 2890844527 2890844527 IN IP4 ift.here.com s=Session SDP c=IN IP4 iftmg.here.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F3 (100 Trying) PROXY -> IFT UA SIP/2.0 100 Trying Via: SIP/2.0/UDP ift.here.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 INVITE Content-Length: 0 F4 100 Trying IFTGW UA -> PROXY SIP/2.0 100 Trying Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d007.1 Via: SIP/2.0/UDP ift.here.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 INVITE Content-Length: 0 F5 180 Ringing IFTGW UA -> PROXY SIP/2.0 180 Ringing Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d007.1 Via: SIP/2.0/UDP ift.here.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 INVITE Content-Length: 0 F6 180 Ringing PROXY -> IFT UA SIP/2.0 180 Ringing Via: SIP/2.0/UDP ift.here.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 INVITE Content-Length: 0 Li/Mule 15 SIP T.38 Call Flows March 2001 F7 200 OK IFTGW UA -> PROXY SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d007.1 Via: SIP/2.0/UDP ift.here.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 INVITE Content-Type: application/sdp Content-Length: 150 v=0 o=IFAXTERMINAL01 2890844527 2890844527 IN IP4 iftgw.there.com s=Session SDP c=IN IP4 iftmg.there.com t=0 0 m=audio 12322 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F8 200 OK PROXY -> IFT UA SIP/2.0 200 OK Via: SIP/2.0/UDP ift.here.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 INVITE Content-Type: application/sdp Content-Length: 150 v=0 o=IFAXTERMINAL01 2890844527 2890844527 IN IP4 iftgw.there.com s=Session SDP c=IN IP4 iftmg.there.com t=0 0 m=audio 12322 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F9 ACK IFT UA -> PROXY ACK sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ift.here.com:5060 Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 ACK Li/Mule 16 SIP T.38 Call Flows March 2001 Content-Length: 0 F10 ACK PROXY -> IFTGW UA ACK sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d007.1 Via: SIP/2.0/UDP ift.here.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 ACK Content-Length: 0 /* RTP streams are established. The CNG fax tone is sent in-band if it is present. The receiving side IFT gateway DSP detects the Preamble. A new UDP port is open on IFTGW for T.38 IFP packets and the IFTGW signals the switch over to fax mode by send a RE-INVITE with the same call ID, higher Cseq number and with the new UDP port in the SDP */ F11 INVITE IFTGW UA -> PROXY INVITE sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP iftgw.there.com:5060 Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 INVITE Content-Type: application/sdp Content-Length: 320 v=0 o=faxgw1 2890844527 2890844527 IN IP4 iftgw.there.com s=Session SDP c=IN IP4 iftmg.there.com t=0 0 m=image 49172 udptl t38 a=T38FaxVersion:0 a=T38maxBitRate:14400 a=T38FaxFillBitRemoval:0 a=T38FaxTranscodingMMR:0 a=T38FaxTranscodingJBIG:0 a=T38FaxRateManagement:transferredTCF a=T38FaxMaxBuffer:72 a=T38FaxMaxDatagram:316 a=T38FaxUdpEC:t38UDPFEC a=T38FaxUdpEC:t38UDPRedundancy Li/Mule 17 SIP T.38 Call Flows March 2001 F12 INVITE PROXY -> IFT UA INVITE sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d008.1 Via: SIP/2.0/UDP iftgw.there.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 INVITE Content-Type: application/sdp Content-Length: 320 v=0 o=faxgw1 2890844527 2890844527 IN IP4 iftgw.there.com s=Session SDP c=IN IP4 iftmg.there.com t=0 0 m=image 49172 udptl t38 a=T38FaxVersion:0 a=T38maxBitRate:14400 a=T38FaxFillBitRemoval:0 a=T38FaxTranscodingMMR:0 a=T38FaxTranscodingJBIG:0 a=T38FaxRateManagement:transferredTCF a=T38FaxMaxBuffer:72 a=T38FaxMaxDatagram:316 a=T38FaxUdpEC:t38UDPFEC a=T38FaxUdpEC:t38UDPRedundancy F13 200 OK IFT UA -> PROXY SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d008.1 Via: SIP/2.0/UDP iftgw.there.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 INVITE Content-Type: application/sdp Content-Length: 320 v=0 o=faxgw1 2890846527 2890846527 IN IP4 ift.here.com s=Session SDP c=IN IP4 iftmg.here.com t=0 0 m=image 15002 udptl t38 a=T38FaxVersion:0 Li/Mule 18 SIP T.38 Call Flows March 2001 a=T38maxBitRate:14400 a=T38FaxFillBitRemoval:0 a=T38FaxTranscodingMMR:0 a=T38FaxTranscodingJBIG:0 a=T38FaxRateManagement:transferredTCF a=T38FaxMaxBuffer:72 a=T38FaxMaxDatagram:316 a=T38FaxUdpEC:t38UDPRedundancy F14 200 OK PROXY -> IFT UA SIP/2.0 200 OK Via: SIP/2.0/UDP iftgw.there.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 INVITE Content-Type: application/sdp Content-Length: 320 v=0 o=faxgw1 2890846527 2890846527 IN IP4 ift.here.com s=Session SDP c=IN IP4 iftmg.here.com t=0 0 m=image 15002 udptl t38 a=T38FaxVersion:0 a=T38maxBitRate:14400 a=T38FaxFillBitRemoval:0 a=T38FaxTranscodingMMR:0 a=T38FaxTranscodingJBIG:0 a=T38FaxRateManagement:transferredTCF a=T38FaxMaxBuffer:72 a=T38FaxMaxDatagram:316 a=T38FaxUdpEC:t38UDPRedundancy F15 ACK IFTGW UA -> PROXY ACK sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP iftgw.there.com:5060 Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 ACK Content-Length: 0 Li/Mule 19 SIP T.38 Call Flows March 2001 F16 ACK PROXY -> IFT UA ACK sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d008.1 Via: SIP/2.0/UDP iftgw.there.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 ACK Content-Length: 0 /* T.38 fax transmission established both ways */ /* Then, the end of the fax transmission is detected on ingress side and sent to the egress side (IFTGW). IFTGW initiates the switch back to voice communication */ F17 INVITE IFTGW UA -> PROXY INVITE sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP iftgw.there.com:5060 Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 INVITE Content-Type: application/sdp Content-Length: 181 v=0 o=faxgw1 2890844527 2890844527 IN IP4 iftgw.there.com s=Session SDP c=IN IP4 iftmg.there.com t=0 0 m=audio 12322 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F18 INVITE PROXY -> IFT UA INVITE sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d009.1 Via: SIP/2.0/UDP iftgw.there.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com Li/Mule 20 SIP T.38 Call Flows March 2001 CSeq: 19 INVITE Content-Type: application/sdp Content-Length: 181 v=0 o=faxgw1 2890844527 2890844527 IN IP4 iftgw.there.com s=Session SDP c=IN IP4 iftmg.there.com t=0 0 m=audio 12322 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F19 200 OK IFT UA -> PROXY SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d008.1 Via: SIP/2.0/UDP iftgw.there.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 INVITE Content-Type: application/sdp Content-Length: 150 v=0 o=faxgw1 2890844527 2890844527 IN IP4 ift.here.com s=Session SDP c=IN IP4 iftmg.here.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F20 200 OK PROXY -> IFTGW UA SIP/2.0 200 OK Via: SIP/2.0/UDP iftgw.there.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 INVITE Content-Type: application/sdp Content-Length: 150 v=0 o=faxgw1 2890844527 2890844527 IN IP4 ift.here.com s=Session SDP c=IN IP4 iftmg.here.com t=0 0 m=audio 3456 RTP/AVP 0 Li/Mule 21 SIP T.38 Call Flows March 2001 a=rtpmap:0 PCMU/8000 F21 ACK IFTGW UA -> PROXY ACK sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP iftgw.there.com:5060 Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 ACK Content-Length: 0 F22 ACK PROXY -> IFT UA ACK sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d009.1 Via: SIP/2.0/UDP iftgw.there.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 ACK Content-Length: 0 /* Voice streams re-established both ways */ F23 BYE IFT UA -> PROXY BYE sip:+1-650-555-2222@ss1.wcom.com SIP/2.0 Via: SIP/2.0/UDP ift.here.com:5060 Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 20 BYE Content-Length: 0 F24 BYE PROXY -> IFTGW UA BYE sip:+1-650-555-2222@ss1.wcom.com SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d009.1 Via: SIP/2.0/UDP ift.here.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 20 BYE Li/Mule 22 SIP T.38 Call Flows March 2001 Content-Length: 0 F25 200 OK IFTGW UA -> PROXY SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d007.1 Via: SIP/2.0/UDP ift.here.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 20 BYE Content-Type: application/sdp Content-Length: 0 F26 200 OK PROXY -> IFT UA SIP/2.0 200 OK Via: SIP/2.0/UDP ift.here.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 20 BYE Content-Type: application/sdp Content-Length: 0 5.3 SIP T.38 fax call û fax stream added to voice stream This section represents the SIP call flow for a T.38 fax session between 2 Internet telephony gateways. It shows the detection of the fax communication on terminating or receiving side. A session starts with one audio stream in SDP, and, upon detection of fax, an additional fax stream is added to the session while the voice stream is muted. After the fax communication is terminated, the fax stream is terminated and the voice stream is restored. Scenario: 1. A SIP INVITE is sent to the called party requesting a voice connection per RFC2543; our scenario involves 1 SIP proxy. An audio connection is established, 2. Upon detection of Preamble by the terminating gateway, a second SIP INVITE request is sent to the emitting gateway to modify the parameters of the session to add a T.38 fax connection. The connection data is specified per media description and not at the session-level. This allows the audio stream and t.38 fax stream to be controlled independently (i.e., placing the audio on hold while the t.38 fax transmission is active). Also note that the t.38 fax media stream has been added to the session. This INVITE request has Li/Mule 23 SIP T.38 Call Flows March 2001 the same CALL-ID as the existing voice call but a higher Cseq number and an SDP message body detailing the additional T.38 capabilities, 3. It is suggested that the voice pipe be muted while the fax session is in progress. Upon successful acknowledgments, T.38 IFP fax packets are sent/received on different UDP ports than the one used for audio RTP, 4. Once the fax transmission is terminated, audio capabilities are ôrestoredö or the call is terminated. 5.3.1 Sequence Diagram IFT UA Proxy IFTGW UA | | | | F1 INVITE | | |------------------->| | | | F2 INVITE | | |------------------->| | F3 100 Trying | | |<-------------------| F4 100 Trying | | |<-------------------| | | | | | F5 180 Ringing | | F6 180 Ringing |<-------------------| |<-------------------| | | | F7 200 OK | | F8 200 OK |<-------------------| |<-------------------| | | | | | F9 ACK | | |------------------->| F10 ACK | | ------------------->| | | | Both Way RTP Media Established | Fax |<=======================================>| ------->| | emitted | | | | | | Preamble | | |<--------- | | F11 INVITE | detected | |<-------------------| | F12 INVITE | | |<-------------------| | | | | | F13 200 OK | | |------------------->| | | | F14 200 OK | | |------------------->| | | F15 ACK | | |<-------------------| | F16 ACK | | |<-------------------| | Li/Mule 24 SIP T.38 Call Flows March 2001 | | | T.38/UDPT Fax Flow Established | | Voice connection muted | |<=======================================>| End of | | fax | | | detected| | | ------->| | | | | | | | End of fax | | |<---------- | | | detected | | F17 INVITE | | |<-------------------| | F18 INVITE | | |<-------------------| | | | | | F19 200 OK | | |------------------->| | | | F20 200 OK | | |------------------->| | | | | | F21 ACK | | |<-------------------| | F22 ACK | | |<-------------------| | | | | Both way RTP Flow restored | |<=======================================>| | | | F23 BYE | | |------------------->| | | | F24 BYE | | |------------------->| | | | | | F25 200 OK | | |<-------------------| | F26 200 OK | | |<-------------------| | 5.3.2 Message Details F1 INVITE IFT UA -> PROXY INVITE sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ift.here.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 INVITE Li/Mule 25 SIP T.38 Call Flows March 2001 Content-Type: application/sdp Content-Length: 146 v=0 o=IFAXTERMINAL01 2890844527 2890844527 IN IP4 ift.here.com s=Session SDP c=IN IP4 iftmg.here.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 INVITE PROXY -> IFTGW UA INVITE sip:+1-650-555-2222@iftgw.there.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d007.1 Via: SIP/2.0/UDP ift.here.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 INVITE Content-Type: application/sdp Content-Length: 146 v=0 o=IFAXTERMINAL01 2890844527 2890844527 IN IP4 ift.here.com s=Session SDP c=IN IP4 iftmg.here.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F3 (100 Trying) PROXY -> IFT UA SIP/2.0 100 Trying Via: SIP/2.0/UDP ift.here.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 INVITE Content-Length: 0 F4 100 Trying IFTGW UA -> PROXY SIP/2.0 100 Trying Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d007.1 Via: SIP/2.0/UDP ift.here.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone Li/Mule 26 SIP T.38 Call Flows March 2001 To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 INVITE Content-Length: 0 F5 180 Ringing IFTGW UA -> PROXY SIP/2.0 180 Ringing Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d007.1 Via: SIP/2.0/UDP ift.here.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 INVITE Content-Length: 0 F6 180 Ringing PROXY -> IFT UA SIP/2.0 180 Ringing Via: SIP/2.0/UDP ift.here.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 INVITE Content-Length: 0 F7 200 OK IFTGW UA -> PROXY SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d007.1 Via: SIP/2.0/UDP ift.here.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 INVITE Content-Type: application/sdp Content-Length: 150 v=0 o=IFAXTERMINAL01 2890844527 2890844527 IN IP4 iftgw.there.com s=Session SDP c=IN IP4 iftmg.there.com t=0 0 m=audio 12322 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F8 200 OK PROXY -> IFT UA SIP/2.0 200 OK Li/Mule 27 SIP T.38 Call Flows March 2001 Via: SIP/2.0/UDP ift.here.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 INVITE Content-Type: application/sdp Content-Length: 150 v=0 o=IFAXTERMINAL01 2890844527 2890844527 IN IP4 iftgw.there.com s=Session SDP c=IN IP4 iftmg.there.com t=0 0 m=audio 12322 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F9 ACK IFT UA -> PROXY ACK sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ift.here.com:5060 Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 ACK Content-Length: 0 F10 ACK PROXY -> IFTGW UA ACK sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d007.1 Via: SIP/2.0/UDP ift.here.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 17 ACK Content-Length: 0 /* RTP streams are established. The CNG fax tone is sent in-band if it is present. The receiving side IFT gateway DSP detects the Preamble. A new UDP port is open on IFTGW for T.38 IFP packets and the IFTGW signals the switch over to fax mode by send a RE-INVITE with the same call ID, higher Cseq number and with the new UDP port in the SDP */ Li/Mule 28 SIP T.38 Call Flows March 2001 F11 INVITE IFTGW UA -> PROXY INVITE sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP iftgw.there.com:5060 Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 INVITE Content-Type: application/sdp Content-Length: 320 v=0 o=faxgw1 2890844527 2890844527 IN IP4 iftgw.there.com s=Session SDP t=0 0 m=audio 12322 RTP/AVP 0 c=IN IP4 0.0.0.0 m=image 49172 udptl t38 c=IN IP4 iftmg.there.com a=T38FaxVersion:0 a=T38maxBitRate:14400 a=T38FaxFillBitRemoval:0 a=T38FaxTranscodingMMR:0 a=T38FaxTranscodingJBIG:0 a=T38FaxRateManagement:transferredTCF a=T38FaxMaxBuffer:72 a=T38FaxMaxDatagram:316 a=T38FaxUdpEC:t38UDPFEC a=T38FaxUdpEC:t38UDPRedundancy F12 INVITE PROXY -> IFT UA INVITE sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d008.1 Via: SIP/2.0/UDP iftgw.there.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 INVITE Content-Type: application/sdp Content-Length: 320 v=0 o=faxgw1 2890844527 2890844527 IN IP4 iftgw.there.com s=Session SDP t=0 0 m=audio 12322 RTP/AVP 0 c=IN IP4 0.0.0.0 m=image 49172 udptl t38 Li/Mule 29 SIP T.38 Call Flows March 2001 c=IN IP4 iftmg.there.com a=T38FaxVersion:0 a=T38maxBitRate:14400 a=T38FaxFillBitRemoval:0 a=T38FaxTranscodingMMR:0 a=T38FaxTranscodingJBIG:0 a=T38FaxRateManagement:transferredTCF a=T38FaxMaxBuffer:72 a=T38FaxMaxDatagram:316 a=T38FaxUdpEC:t38UDPFEC a=T38FaxUdpEC:t38UDPRedundancy F13 200 OK IFT UA -> PROXY SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d008.1 Via: SIP/2.0/UDP iftgw.there.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 INVITE Content-Type: application/sdp Content-Length: 320 v=0 o=faxgw1 2890846527 2890846527 IN IP4 ift.here.com s=Session SDP t=0 0 m=audio 3456 RTP/AVP 0 c=IN IP4 0.0.0.0 m=image 15002 udptl t38 c=IN IP4 iftmg.here.com a=T38FaxVersion:0 a=T38maxBitRate:14400 a=T38FaxFillBitRemoval:0 a=T38FaxTranscodingMMR:0 a=T38FaxTranscodingJBIG:0 a=T38FaxRateManagement:transferredTCF a=T38FaxMaxBuffer:72 a=T38FaxMaxDatagram:316 a=T38FaxUdpEC:t38UDPRedundancy F14 200 OK PROXY -> IFT UA SIP/2.0 200 OK Via: SIP/2.0/UDP iftgw.there.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com Li/Mule 30 SIP T.38 Call Flows March 2001 CSeq: 18 INVITE Content-Type: application/sdp Content-Length: 320 v=0 o=faxgw1 2890846527 2890846527 IN IP4 ift.here.com s=Session SDP t=0 0 m=audio 3456 RTP/AVP 0 c=IN IP4 0.0.0.0 m=image 15002 udptl t38 c=IN IP4 iftmg.here.com a=T38FaxVersion:0 a=T38maxBitRate:14400 a=T38FaxFillBitRemoval:0 a=T38FaxTranscodingMMR:0 a=T38FaxTranscodingJBIG:0 a=T38FaxRateManagement:transferredTCF a=T38FaxMaxBuffer:72 a=T38FaxMaxDatagram:316 a=T38FaxUdpEC:t38UDPRedundancy F15 ACK IFTGW UA -> PROXY ACK sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP iftgw.there.com:5060 Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 ACK Content-Length: 0 F16 ACK PROXY -> IFT UA ACK sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d008.1 Via: SIP/2.0/UDP iftgw.there.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 ACK Content-Length: 0 /* T.38 fax transmission established both ways and the voice stream is muted */ Li/Mule 31 SIP T.38 Call Flows March 2001 /* Then, the end of the fax transmission is detected on ingress side and sent to the egress side (IFTGW). IFTGW initiates the switch back to voice communication */ F17 INVITE IFTGW UA -> PROXY INVITE sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP iftgw.there.com:5060 Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 INVITE Content-Type: application/sdp Content-Length: 181 v=0 o=faxgw1 2890844527 2890844527 IN IP4 iftgw.there.com s=Session SDP c=IN IP4 iftmg.there.com t=0 0 m=audio 12322 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F18 INVITE PROXY -> IFT UA INVITE sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d009.1 Via: SIP/2.0/UDP iftgw.there.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 INVITE Content-Type: application/sdp Content-Length: 181 v=0 o=faxgw1 2890844527 2890844527 IN IP4 iftgw.there.com s=Session SDP c=IN IP4 iftmg.there.com t=0 0 m=audio 12322 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F19 200 OK IFT UA -> PROXY SIP/2.0 200 OK Li/Mule 32 SIP T.38 Call Flows March 2001 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d008.1 Via: SIP/2.0/UDP iftgw.there.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 INVITE Content-Type: application/sdp Content-Length: 150 v=0 o=faxgw1 2890844527 2890844527 IN IP4 ift.here.com s=Session SDP c=IN IP4 iftmg.here.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F20 200 OK PROXY -> IFTGW UA SIP/2.0 200 OK Via: SIP/2.0/UDP iftgw.there.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 INVITE Content-Type: application/sdp Content-Length: 150 v=0 o=faxgw1 2890844527 2890844527 IN IP4 ift.here.com s=Session SDP c=IN IP4 iftmg.here.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F21 ACK IFTGW UA -> PROXY ACK sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP iftgw.there.com:5060 Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 ACK Content-Length: 0 Li/Mule 33 SIP T.38 Call Flows March 2001 F22 ACK PROXY -> IFT UA ACK sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d009.1 Via: SIP/2.0/UDP iftgw.there.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 ACK Content-Length: 0 F23 BYE IFT UA -> PROXY BYE sip:+1-650-555-2222@ss1.wcom.com SIP/2.0 Via: SIP/2.0/UDP ift.here.com:5060 Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 20 BYE Content-Length: 0 F24 BYE PROXY -> IFTGW UA BYE sip:+1-650-555-2222@ss1.wcom.com SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d009.1 Via: SIP/2.0/UDP ift.here.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 20 BYE Content-Length: 0 F25 200 OK IFTGW UA -> PROXY SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d007.1 Via: SIP/2.0/UDP ift.here.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Li/Mule 34 SIP T.38 Call Flows March 2001 Call-ID: 1717@ift.here.com CSeq: 20 BYE Content-Type: application/sdp Content-Length: 0 F26 200 OK PROXY -> IFT UA SIP/2.0 200 OK Via: SIP/2.0/UDP ift.here.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 20 BYE Content-Type: application/sdp Content-Length: 0 5.4 SIP T.38 fax call û fax stream forced to replace voice stream This section illustrates the following scenario: 1. A SIP INVITE is sent to the called party requesting a voice connection per RFC2543; our scenario involves 1 SIP proxy. An audio connection is established, 2. Upon detection of Preamble by the terminating gateway, a second SIP INVITE request is sent to the emitting gateway to modify the parameters of the session to add a T.38 fax connection. This INVITE request has the same CALL-ID as the existing voice call but a higher Cseq number and an SDP message body detailing the additional T.38 capabilities. It is also suggested that the voice pipe be muted while the fax session is in progress. 3. The emitting gateway does not have the resources to maintain both the audio & fax streams and replies by allowing the fax media stream. Upon successful acknowledgments, the audio stream is terminated and T.38 IFP fax packets are exchanged, 4. Once the fax transmission is terminated, audio capabilities are ôre-negotiatedö and the call is terminated. 5.4.1 Sequence Diagram Refer to section 5.3.1; sequence diagram is unchanged. 5.4.2 Message Details See section 5.3.2 for the complete set of messages. We only indicate the changed messages based on the emitting gatewayÆs decline to support both voice and fax streams. ... F11 INVITE IFTGW UA -> PROXY Li/Mule 35 SIP T.38 Call Flows March 2001 INVITE sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP iftgw.there.com:5060 Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 INVITE Content-Type: application/sdp Content-Length: 320 v=0 o=faxgw1 2890844527 2890844527 IN IP4 iftgw.there.com s=Session SDP t=0 0 m=audio 12322 RTP/AVP 0 c=IN IP4 0.0.0.0 m=image 49172 udptl t38 c=IN IP4 iftmg.there.com a=T38FaxVersion:0 a=T38maxBitRate:14400 a=T38FaxFillBitRemoval:0 a=T38FaxTranscodingMMR:0 a=T38FaxTranscodingJBIG:0 a=T38FaxRateManagement:transferredTCF a=T38FaxMaxBuffer:72 a=T38FaxMaxDatagram:316 a=T38FaxUdpEC:t38UDPFEC a=T38FaxUdpEC:t38UDPRedundancy F12 INVITE PROXY -> IFT UA INVITE sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d008.1 Via: SIP/2.0/UDP iftgw.there.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 INVITE Content-Type: application/sdp Content-Length: 320 v=0 o=faxgw1 2890844527 2890844527 IN IP4 iftgw.there.com s=Session SDP t=0 0 m=audio 12322 RTP/AVP 0 c=IN IP4 0.0.0.0 m=image 49172 udptl t38 c=IN IP4 iftmg.there.com a=T38FaxVersion:0 Li/Mule 36 SIP T.38 Call Flows March 2001 a=T38maxBitRate:14400 a=T38FaxFillBitRemoval:0 a=T38FaxTranscodingMMR:0 a=T38FaxTranscodingJBIG:0 a=T38FaxRateManagement:transferredTCF a=T38FaxMaxBuffer:72 a=T38FaxMaxDatagram:316 a=T38FaxUdpEC:t38UDPFEC a=T38FaxUdpEC:t38UDPRedundancy F13 200 OK IFT UA -> PROXY SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d008.1 Via: SIP/2.0/UDP iftgw.there.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 INVITE Content-Type: application/sdp Content-Length: 320 v=0 o=faxgw1 2890846527 2890846527 IN IP4 ift.here.com s=Session SDP t=0 0 m=audio 0 RTP/AVP 0 c=IN IP4 0.0.0.0 m=image 15002 udptl t38 c=IN IP4 iftmg.here.com a=T38FaxVersion:0 a=T38maxBitRate:14400 a=T38FaxFillBitRemoval:0 a=T38FaxTranscodingMMR:0 a=T38FaxTranscodingJBIG:0 a=T38FaxRateManagement:transferredTCF a=T38FaxMaxBuffer:72 a=T38FaxMaxDatagram:316 a=T38FaxUdpEC:t38UDPRedundancy F14 200 OK PROXY -> IFT UA SIP/2.0 200 OK Via: SIP/2.0/UDP iftgw.there.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 INVITE Li/Mule 37 SIP T.38 Call Flows March 2001 Content-Type: application/sdp Content-Length: 320 v=0 o=faxgw1 2890846527 2890846527 IN IP4 ift.here.com s=Session SDP t=0 0 m=audio 0 RTP/AVP 0 c=IN IP4 0.0.0.0 m=image 15002 udptl t38 c=IN IP4 iftmg.here.com a=T38FaxVersion:0 a=T38maxBitRate:14400 a=T38FaxFillBitRemoval:0 a=T38FaxTranscodingMMR:0 a=T38FaxTranscodingJBIG:0 a=T38FaxRateManagement:transferredTCF a=T38FaxMaxBuffer:72 a=T38FaxMaxDatagram:316 a=T38FaxUdpEC:t38UDPRedundancy F15 ACK IFTGW UA -> PROXY ACK sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP iftgw.there.com:5060 Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 ACK Content-Length: 0 F16 ACK PROXY -> IFT UA ACK sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d008.1 Via: SIP/2.0/UDP iftgw.there.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 ACK Content-Length: 0 Li/Mule 38 SIP T.38 Call Flows March 2001 6. Unsuccessful Scenarios 6.1. Unsuccessful T.38 fax scenario û no support for T.38 This section represents a SIP T.38 call failure because the emitting gateway does not support T.38. Scenario: 1. A SIP INVITE is sent to the called party requesting a voice connection per RFC2543; our scenario involves 1 SIP proxy. An audio connection is established, 2. Upon detection of Preamble by the terminating gateway, a second SIP INVITE request is sent to the emitting gateway to modify the parameters of the session to allow a T.38 fax connection. This INVITE request has the same CALL-ID as the existing voice call but a higher Cseq number and an SDP message body detailing T.38 capabilities, 3. The emitting gateway rejects the re-INVITE with a 415 Unsupported Media Type response. 4. Upon reception of the reject, the call is terminated. 6.1.1. Sequence Diagram The messages F1 to F12 are identical to section 5.2. IFT UA Proxy IFTGW UA | | | | F1 INVITE | | |------------------->| | | | F2 INVITE | | |------------------->| | F3 100 Trying | | |<-------------------| F4 100 Trying | | |<-------------------| | | | | | F5 180 Ringing | | F6 180 Ringing |<-------------------| |<-------------------| | | | F7 200 OK | | F8 200 OK |<-------------------| |<-------------------| | | F9 ACK | | |------------------->| F10 ACK | | ------------------->| | | | Both Way RTP Media Established | Fax |<=======================================>| ------->| | emitted | | | | | | Preamble | | |<--------- | | F11 INVITE | detected | |<-------------------| Li/Mule 39 SIP T.38 Call Flows March 2001 | F12 INVITE | | |<-------------------| | | | | | F13 415 | | |------------------->| | | | F14 415 | | |------------------->| | | | | | F15 BYE | | |<-------------------| | F16 BYE | | |<-------------------| | | | | | F17 200 OK | | |------------------->| | | | F18 200 OK | | |------------------->| 6.1.2. Message Details Messages F1 to F12 are identical to section 5.2; refer to 5.2. F13 415 Unsupported Media Type IFT UA -> PROXY SIP/2.0 415 Unsupported Media Type Via: SIP/2.0/UDP ift.here.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 INVITE Content-Length: 0 F14 415 Unsupported Media Type PROXY -> IFTGW UA SIP/2.0 415 Unsupported Media Type Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d010.1 Via: SIP/2.0/UDP ift.here.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 INVITE Content-Length: 0 F15 BYE IFTGW UA -> PROXY BYE sip:+1-650-555-2222@ss1.wcom.com SIP/2.0 Via: SIP/2.0/UDP iftgw.there.com:5060 Route: Li/Mule 40 SIP T.38 Call Flows March 2001 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 BYE Content-Length: 0 F16 BYE PROXY -> IFT UA BYE sip:+1-650-555-2222@ss1.wcom.com SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d010.1 Via: SIP/2.0/UDP iftgw.there.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 BYE Content-Length: 0 F17 200 OK IFT UA -> PROXY SIP/2.0 200 OK Via: SIP/2.0/UDP ift.here.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 BYE Content-Type: application/sdp Content-Length: 0 F18 200 OK PROXY -> IFTGW UA SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.wcom.com:5060 Via: SIP/2.0/UDP ift.here.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 BYE Content-Type: application/sdp Content-Length: 0 Li/Mule 41 SIP T.38 Call Flows March 2001 6.2. Unsuccessful T.38 fax scenario û 606 response and G.711 fallback This section represents a SIP fax call failure: the emitting gateway does not support T.38 and responds with a 606 Not Acceptable to indicate that some aspects of the session description are not acceptable. The terminating gateway reacts by proposing a fallback to G.711 pass-through fax. Scenario: 1. A SIP INVITE is sent to the called party requesting a voice connection per RFC2543; our scenario involves 1 SIP proxy. An audio connection is established, 2. Upon detection of Preamble by the terminating gateway, a second SIP INVITE request is sent to the emitting gateway to modify the parameters of the session to allow a T.38 fax connection. This INVITE request has the same CALL-ID as the existing voice call but a higher Cseq number and an SDP message body detailing T.38 capabilities, 3. The emitting gateway rejects the re-INVITE with a 606 Not Acceptable response. Upon reception of the reject, the terminating gateway proposes to use plain G.711 to carry the fax stream. 4. The call is terminated. 6.2.1. Sequence Diagram The messages F1 to F12 are identical to section 5.2. IFT UA Proxy IFTGW UA | | | | F1 INVITE | | |------------------->| | | | F2 INVITE | | |------------------->| | F3 100 Trying | | |<-------------------| F4 100 Trying | | |<-------------------| | | | | | F5 180 Ringing | | F6 180 Ringing |<-------------------| |<-------------------| | | | F7 200 OK | | F8 200 OK |<-------------------| |<-------------------| | | F9 ACK | | |------------------->| F10 ACK | | ------------------->| | | | Both Way RTP Media Established | Fax |<=======================================>| ------->| | emitted | | | | | | Preamble | | |<--------- Li/Mule 42 SIP T.38 Call Flows March 2001 | | F11 INVITE | detected | |<-------------------| | F12 INVITE | | |<-------------------| | | | | | F13 606 | | |------------------->| | | | F14 606 | | |------------------->| | | F15 INVITE | | |<-------------------| | F16 INVITE | | |<-------------------| | | F17 200 OK | | |------------------->| | | | F18 200 OK | | |------------------->| | | | | | F19 ACK | | |<-------------------| | F20 ACK | | |<-------------------| | | | | G.711 RTP Flow Established | |<=======================================>| | for fax passthrough | | | | F21 BYE | | |------------------->| | | | F22 BYE | | |------------------->| | | | | | F23 200 OK | | |<-------------------| | F24 200 OK | | |<-------------------| | 6.2.2. Message Details Messages F1 to F12 are identical to section 5.2; refer to 5.2. F13 606 Not Acceptable IFT UA -> PROXY SIP/2.0 606 Not Acceptable Via: SIP/2.0/UDP ift.here.com:5060 Warning: 304 Media type not available: One or more media types contained in the session description are not available. From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 INVITE Content-Length: 0 Li/Mule 43 SIP T.38 Call Flows March 2001 F14 606 Not Acceptable PROXY -> IFTGW UA SIP/2.0 606 Not Acceptable Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d010.1 Via: SIP/2.0/UDP ift.here.com:5060 Warning: 304 Media type not available: One or more media types contained in the session description are not available. From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 18 INVITE Content-Length: 0 F15 INVITE IFTGW UA -> PROXY INVITE sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP iftgw.there.com:5060 Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 INVITE Content-Type: application/sdp Content-Length: 181 v=0 o=faxgw1 2890844527 2890844527 IN IP4 iftgw.there.com s=Session SDP c=IN IP4 iftmg.there.com t=0 0 m=audio 12322 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F16 INVITE PROXY -> IFT UA INVITE sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d009.1 Via: SIP/2.0/UDP iftgw.there.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 INVITE Content-Type: application/sdp Content-Length: 181 v=0 o=faxgw1 2890844527 2890844527 IN IP4 iftgw.there.com Li/Mule 44 SIP T.38 Call Flows March 2001 s=Session SDP c=IN IP4 iftmg.there.com t=0 0 m=audio 12322 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F17 200 OK IFT UA -> PROXY SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d008.1 Via: SIP/2.0/UDP iftgw.there.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 INVITE Content-Type: application/sdp Content-Length: 150 v=0 o=faxgw1 2890844527 2890844527 IN IP4 ift.here.com s=Session SDP c=IN IP4 iftmg.here.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F18 200 OK PROXY -> IFTGW UA SIP/2.0 200 OK Via: SIP/2.0/UDP iftgw.there.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 INVITE Content-Type: application/sdp Content-Length: 150 v=0 o=faxgw1 2890844527 2890844527 IN IP4 ift.here.com s=Session SDP c=IN IP4 iftmg.here.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Li/Mule 45 SIP T.38 Call Flows March 2001 F19 ACK IFTGW UA -> PROXY ACK sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP iftgw.there.com:5060 Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 ACK Content-Length: 0 F20 ACK PROXY -> IFT UA ACK sip:+1-650-555-2222@ss1.wcom.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d009.1 Via: SIP/2.0/UDP iftgw.there.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 19 ACK Content-Length: 0 /* G.711 audio streams established both ways for fax pass through */ F21 BYE IFT UA -> PROXY BYE sip:+1-650-555-2222@ss1.wcom.com SIP/2.0 Via: SIP/2.0/UDP ift.here.com:5060 Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 20 BYE Content-Length: 0 F22 BYE PROXY -> IFTGW UA BYE sip:+1-650-555-2222@ss1.wcom.com SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d009.1 Via: SIP/2.0/UDP ift.here.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 20 BYE Content-Length: 0 Li/Mule 46 SIP T.38 Call Flows March 2001 F23 200 OK IFTGW UA -> PROXY SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.wcom.com:5060; branch=2d007.1 Via: SIP/2.0/UDP ift.here.com:5060 From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 20 BYE Content-Type: application/sdp Content-Length: 0 F24 200 OK PROXY -> IFT UA SIP/2.0 200 OK Via: SIP/2.0/UDP ift.here.com:5060 Record-Route: From: sip:+1-303-555-1111@ift.here.com;user=phone To: sip:+1-650-555-2222@ss1.wcom.com;user=phone Call-ID: 1717@ift.here.com CSeq: 20 BYE Content-Type: application/sdp Content-Length: 0 Li/Mule 47 SIP T.38 Call Flows March 2001 7. SDP Attribute Table for T.38 sessions For a detailed description of these attributes, refer to IANA. The tables below are replicated here for reference only. +-----------------------+---------------------+--------------+ | SDP Attribute Name | Appropriate values | Example | | ("att-field") | | | +-----------------------+---------------------+--------------+ | | | | | T38FaxVersion | 1*DIGIT | 0 | | | | | | T38maxBitRate | 1*(DIGIT) | 14400 | | | | | | T38FaxFillBitRemoval | boolean | 0 | | | | | | T38FaxTranscodingMMR | boolean | 0 | | | | | | T38FaxTranscodingJBIG | boolean | 0 | | | | | | T38FaxRateManagement | localTCF | |transferredTCF| | | transferredTCF | | | | | | | T38FaxMaxBuffer | 1*(DIGIT); optional | 72 | | | | (bytes) | | | | | | T38FaxMaxDatagram | 1*(DIGIT); | Depends on | | | optional | redundancy; | | | | 316 (bytes)| | | | | | T38FaxUdpEC | t38UDPFEC | | T38UDPRedund | | | t38UDPRedundancy | ancy | +-----------------------+---------------------+--------------+ Registered SDP Protocol ôprotoö for T.38: +-----------------+ | Name | | | +-----------------+ | | | UDPTL | | | | TCP | | | +-----------------+ Registered SDP Protocol ôfmtö, MIME media type image/t38: MIME media type name: image MIME subtype name: t38 Li/Mule 48 SIP T.38 Call Flows March 2001 8. Considerations In this temporary section, we log the open items for discussion as well as issues that have been solved on the mailing list: 8.1. Level of requirements û solved, see section 4.2: Based on the comments received on draft-00, the authors recommend that: T.38 Internet fax gateways MUST trigger a SIP re-INVITE upon detection of the V.21 Preamble flag sequence on the receiving side. Emitting gateways MAY trigger session modification upon CNG. 8.2. Negotiation of UDP ports for T.38 transmission Not an issue û just logged here When switching to T.38 mode, Internet fax gateways specify a new set of parameters for the media connection in SDP. Some gateways may choose the UDP/RTP port used in audio mode for UDP/UDPTL/T.38 traffic. Some gateways may choose to open a new UDP port for UDPTL/T.38 fax (and keep the previous UDP/RTP port open for the switch back to audio). SDP provides the mechanism to precisely define in SIP all cases: - if an Internet Fax gateway desires to re-use the UDP/RTP port for UDP/UDPTL/T.38, put 1 ôm=ö line in the re-INVITE. m=image udptl t38 - if an Internet Fax gateway desires to release the RTP port and open a new UDP port for T.38: m=image udptl t38 - if an Internet Fax gateway desires to keep the RTP port for future use in the session and open a new UDP port for T.38, we need to repeat the RTP/AVP port: m=audio RTP/AVP 0 m=image udptl t38 8.3. Adding a fax stream to SIP session vs. Replacing audio stream Closed issue û see flows 5.2 and 5.3 Based on the mailing list discussion, it is recommended in section 5.2 to replace an existing audio media connection with a fax one. We however kept section 5.3 to illustrate what adding a fax stream would entail. 9. Security Considerations The security mechanisms provided in RFC2543 apply: message authentication can be performed on SIP INVITEs and also BYE. 10. References 1 Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996. Li/Mule 49 SIP T.38 Call Flows March 2001 2 Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. 3 M. Handley, H. Schulzrinne, E. Schooler, and J. Rosenberg, "SIP: Session Initiation Protocol", RFC 2543, March 1999. 4 ITU-T Recommendation T.38, ôProcedures for real-time Group 3 facsimile communication over IP networksö, June 1998. 5 Johnston, et al, ôSIP Telephony Call Flow Examplesö, Internet- Draft draft-ietf-sip-call-flows-02.txt, November 2000. 6 M. Handley, H. Schulzrinne, E. Schooler, and J. Rosenberg, "SIP: Session Initiation Protocol", RFC 2543, March 1999. 7 ITU-T Recommendation T.38 Amendment 2. 8 ITU-T Recommendation T.30, ôPROCEDURES FOR DOCUMENT FACSIMILE TRANSMISSION IN THE GENERAL SWITCHED TELEPHONE NETWORKö, March 1993. 9 M. Handley, V. Jacobson, "SDP: session description protocol," RFC 2327, Internet Engineering Task Force, April 1998. 10 ITU-T Recommendation T.38 Annex D, ôSIP/SDP Call Establishment Proceduresö 11. Acknowledgments This document would not have been possible without the help of engineers and fax experts, in particular Stanley Khouw, Bill Michalek, and George Maphis of Clarent Corporation. The authors would like to acknowledge the valuable contributions from Flemming Andreasen of Cisco Systems, Christer Holmberg of Ericsson, Bert Culpepper of InterVoice-Brite; Many thanks to the reviewers of the previous document for their comments: Jim Renkel of 3COM, Sudipto Mukherjee of Cisco Systems, Arjun Roychowdhury of Hughes Software Systems. 12. Author's Addresses Jieying Li Clarent Corporation email: jieying.li@clarent.com Jean-Francois MuleÆ Clarent Corporation 700 Chesapeake Drive MS 101 Redwood City, CA 94063 email: jfm@clarent.com Li/Mule 50 SIP T.38 Call Flows March 2001 Full Copyright Statement "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 Li/Mule 51