May 2004 Fax and Modem Training 1 Modem Types 2 T.30 FAX protocol • T.30 is control protocol between fax machines. It is used for call establishment, capabilities exchange, end-of page and multipage signaling and call release • The T.30 control signals are send at speed of 300bps and are modulated according to ITU V.21 standard • Image data is send at speed of 2,400 – 14,400bps 3 T.30 FAX Tones • CNG – Originating FAX calling tone, short periodic tone of 1100Hz, 0.5sec every 3.5 seconds • CED – FAX answering tone, continuous 2100Hz , 2.6 to 4.0 seconds duration • V.21 Preamble – series of HDLC flags send for 1.5seconds, modulated on 1650Hz 4 Fax basic call CNG Answer CED Preamble followed by DIS Preamble followed by DCS Training (TCF) Preamble followed by CFR Training (TCF) Transmit Fax page) End of procedure (EOP) 5 T.30 FAX signal messages • DIS – Digital Identification signal indicating terminating fax capabilities (such as data rate) • DCS – Digital Command signal indicating mtransmission mode (such as rate) that will be used by originating fax. • TCF – Training check sequence sent for 1.5 seconds • CFR – Confirm to receive message, indicating that the fax is ready to receive the document. • MPS – MultiPage signal, send after each page (if more than one page is send) • MCF – Message Confirmation that the page was received • EOP – End of procedure message, indicating that there are no more page to be sent. • DCN – Disconnect message 6 Fax T.30 Diagram CNG DCS/TCF Fax Image P1/MPS Fax Image P2/EOP DCN PCM In ORG L CED/DIS CFR MCF MCF PCM In ANS R 8 7 T.38 messages T.38 messages are divided into three groups: 1) T.30 Indicator messages – 1 byte packets indicating No signal, CNG, CED, V.21preamble,…) – such as "00 00 01 06“ “00 00” – are the T.38 packet sequence number “01” – number of bytes, 1 byte in this example “06” – code of V.21 preamble “04” – code of CED signal 2) Low speed data control messages (V.21 data) – usually 6 bytes packets carrying T30 control messages such as DIS, DCS, EOP,DCN (used for FAX capabilities exchange, end of page and call release)…. – such as "00 02 06 c0 01 80 00 00 c0" (packets starting with c0 01 80 .. are the V.21 data) 3) High speed data type message– usually 50bytes (or more) packets containing fax image. 8 T.38 Packets The following parameters define the T.38 packet redundancy. a) FaxRelayEnhancedRedundancyDepth = 0 to 4 b) FaxRelayRedundancyDepth = 0 to 2 The "'FaxRelayEnhancedRedundancyDepth" parameter defines the redundancy level (or number of repetitions) of T.30 Indicator messages and redundancy level of low speed data control messages. For example if "FaxRelayEnhancedRedundancyDepth = 2" each indicator message will be send three times: 00 00 01 06 00 00 01 06 00 00 01 06 The Low speed data control messages with FaxRelayEnhancedRedundancyDepth =4 00 09 06 c0 01 80 00 00 8c 00 04 06 c0 01 80 00 00 c2 06 c0 01 80 00 00 c0 06 c0 01 80 00 00 ff 06 c0 01 80 00 00 c8 In the example above the first six bytes are current data (c0 01 80 00 00 8c), while the other 4 groups of six bytes contain data of earlier four T.38 packets. The "FaxRelayRedundancyDepth" parameter defines the redundancy of high speed data packets. For example if "FaxRelayRedundancyDepth = 2" each T.38 packet will carry current data and the data of previous two packets. 9 Annex D Real-time facsimile over H.323 systems • Annex defines H.323 procedure to transfer T.38 packets. 10 Replacing an existing audio stream with a T.38 fax stream Originating Endpoint Terminating Endpoint Established voice call Fax tone is detected RequestMode (T.38) RequestModeAck (T.38) CloseLogicalChannel (audio) OpenLogicalChannel (T.38) CloseLogicalChannel (audio) OpenLogicalChannel (T.38) CloseLogicalChannelAck (audio) OpenLogicalChannelAck (T.38) CloseLogicalChannelAck (audio) OpenLogicalChannelAck (T.38) Fax transmission and reception 11 SIP T.38 Call Flow 12 T.38 REINVITE Message (F11) INVITE sip:+1-650-555-2222@obelix.banyuls.com;user=phone SIP/2.0 Via: SIP/2.0/UDP obelix.banyuls.com:5060; branch=z9hG4bK2d008.1 Via: SIP/2.0/UDP iftgw.there.com:5060;branch=z9hG4bK2d017.1 Max-Forwards: 69 Record-Route: <sip:+1-650-555-2222@obelix.banyuls.com; maddr=obelix.banyuls.com> From: sip:+1-303-555-1111@ift.here.com;user=phone;tag=ab11 To: sip:+1-650-555-2222@obelix.banyuls.com;user=phone;tag=cde17 Call-ID: 1717@ift.here.com CSeq: 18 INVITE Contact: <sip:+1-650-555-2222@iftgw.there.com> Content-Type: application/sdp Content-Length: 320 v=0 o=faxgw1 2890844527 171090 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:9600 a=T38FaxRateManagement:transferredTCF a=T38FaxMaxBuffer:72 a=T38FaxMaxDatagram:316 a=T38FaxUdpEC:t38UDPFEC a=T38FaxUdpEC:t38UDPRedundancy 13 SIP 200OK to T38 REINVITE (F14) SIP/2.0 200 OK Via: SIP/2.0/UDP obelix.banyuls.com:5060; branch=z9hG4bK2d008.1 Via: SIP/2.0/UDP iftgw.there.com:5060;branch=z9hG4bK2d017.1 From: sip:+1-303-555-1111@ift.here.com;user=phone;tag=ab11 To: sip:+1-650-555-2222@obelix.banyuls.com;user=phone;tag=cde17 Call-ID: 1717@ift.here.com CSeq: 18 INVITE Contact: <sip:+1-303-555-1111@ift.here.com> Content-Type: application/sdp Content-Length: 320 o=faxgw1 2890846527 2890846528 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:9600 a=T38FaxRateManagement:transferredTCF a=T38FaxMaxBuffer:72 a=T38FaxMaxDatagram:316 a=T38FaxUdpEC:t38UDPRedundancy 14 H323/SIP FAX Configuration Parameters • IsFaxUsed 0 - No 1 - Fax is send/received using SIP or H323 Annex D. T38 procedure • DetFaxOnAnswerTone 0 - Receiving Gateway will initiate T38 on receiving V.21 preamble signal from FAX (default) 1- Receiving GW will initiate T38 upon receiving of CED answer tone from Fax (not recommended) • CNGDetectorMode 0 – don’t use (default) 2 - T.38 will start after CNG detection (applicable only for SIP and not recommended) 15 Channel Parameters (1) • DJBufMinDelay 0 to 150 msec (default = 70) Dynamic Jitter Buffer Minimum Delay. • DJBufOptFactor 0 to 13 (default = 7) Dynamic jitter buffer frame error/delay optimization. 13 is used for fax and modem calls • FaxTransportMode Sets the Fax transport 0 = disable (transparent mode) 1 = relay, (default, to be used for T.38) 2 = bypass. 16 Channel Parameters (2) • FaxRelayEnhancedRedundancyDepth 0 to 4 (default =0) Number of repetitions to be applied to each fax control packet • FaxRelayRedundancyDepth 0 to 2 (default =0) Number of repetitions to be applied to each fax relay payload when transmitting to network • FaxRelayMaxRate Limits the maximum rate at which fax messages are transmitted. 0 = 2.4 kbps 1 = 4.8 kbps 2 = 7.2 kbps 3 = 9.6 kbps 4 = 12.0 kbps 5 = 14.4 kbps, (default) • FaxRelayECMEnable 0 = Disable using ECM mode during Fax Relay 1 = Enable using ECM mode during Fax Relay. (default) 17 Channel Parameters (3) • FaxModemBypassBasicRTPPacketInterval 0 – set internally, default (20msec) 1 – 5msec (not recommended) 2 – 10msec 3 – 20msec • FaxModemBypassDJBufMinDelay 0 to 150 msec (default 40msec) Jitter Buffer during Modem/Fax bypass , • NSEMode Cisco compatible modem bypass mode 0 = NSE Disabled (default) 1 = NSE Enabled Note: if used with SIP, the SDP contains “a=rtpmap:100 X-NSE/8000” for 100 as NSE payload type • NSEPayloadType Range 96-127, default NSE payload type is 105. Cisco are using 100 18 Channel Parameters (4) • FaxModemBypassCoderType - Coder to be used while performing fax/modem bypass. Refer to acTCoders enumeration. Usually, high bit rate coders such as G.711 and G.726/G.727 should be used. 0 = G711 A-law =0, (default) 1 = G711 -law=1, 4 = G726_32 11 = G727_32. • FaxModemBypassM Number of 20 msec payloads to be used for generating one RTP fax/modem bypass packet. 1, 2 (default = 1) • FaxBypassPayloadType - Fax Bypass RTP dynamic payload type, default 102 • ModemBypassPayloadType Modem Bypass RTP dynamic payload type, default 103 19 Channel Parameters (5) • V21ModemTransportType 0 = Transparent, (default) 2 = ModemBypass. • V22ModemTransportType 0 = Transparent 2 = ModemBypass, (default). • V23ModemTransportType 0 = Transparent 2 = ModemBypass, (default). • V32ModemTransportType (For V.32 & V.32bis modems) 0 = Transparent 2 = ModemBypass, (default). • V34ModemTransportType (For V.34 & V.90 modems) 0 = Transparent 2 = ModemBypass, (default). 20 T.38 FAX parameters – example 1 IsFaxUsed = 1 /* Should be “1” for H323/Annex D FaxTransportMode = 1 (default) DetFaxOnAnswerTone = 0 /* Fax Relay, shall be set automatically if IsFaxUsed=1 /* or SIP/T38 Rx GW will start T38 on V.21 Preamble – (default) ;Optional but recommended FaxRelayEnhancedRedundancyDepth = 4 FaxRelayRedundancyDepth = 2 FaxRelayECMEnable = 1 FaxRelayMaxRate = 5 (or lower) /* /* /* /* Repetitions of control packets Repetitions of T.38 payload packets Enable ECM mode 14.4 kbps (default), 3 for 9,6,… 21 Trasparent FAX parameters – example 2 IsFaxUsed = 0 /* Don’t use Annex D FaxTransportMode = 0 CoderName = g711Ulaw64k V21ModemTransportType = V22ModemTransportType = V23ModemTransportType = V32ModemTransportType = V34ModemTransportType = DJBufOptFactor = 13 SCE = 0 ECE = 1 /* /* /* /* /* /* /* /* /* /* 0 0 0 0 0 Transparent mode, fax is handled same as voice G.711 A_law or U_law Transparent Transparent Transparent Transparent Transparent optimized jitter buffer for data No silence suppression Echo canceller enabled 22 Fax/Modem Bypass Mode – example 3 IsFaxUsed = 0 /* Don’t use T38 H323/SIP procedures FaxTransportMode = 2 FaxModemBypassCoderType = 0 /* Bypass mode, fallback to G.711 if fax /* g711Ulaw64k/A_law default bypass coder FaxBypassPayloadType = 102 /* FAX Bypass dynamic payload type ModemBypassPayloadType = 103 /* Modem Bypass dynamic payload type FaxModemBypassBasicRTPPacketInterval= 3 V21ModemTransportType V22ModemTransportType V23ModemTransportType V32ModemTransportType V34ModemTransportType = = = = = 2 2 2 2 2 /* /* /* /* /* FaxModemBypassDJBufMinDelay = 40 /* 2 for 10msec, 3 for 20msec Bypass Bypass Bypass Bypass Bypass /* 0-150msec, minimal delay for bypass 23 Modem Bypass CISCO NSE Mode parameters – example 4 IsFaxUsed = 1 /* Use T38 H323/SIP procedures NSEMode = 1 NSEPayloadType = 100 FaxModemBypassBasicRTPPacketInterval= 2 /* 2 for 10msec, 3 for 20msec ModemRTPBypassPayloadType = 103 /* Modem Bypass dynamic payload type V21ModemTransportType V22ModemTransportType V23ModemTransportType V32ModemTransportType = = = = 2 2 2 2 V34ModemTransportType = 2 /* /* /* /* Bypass Bypass Bypass Bypass /* Bypass ; 24 V.34 Faxes • Up to 33,600 bit/s compared to 14400 with T.30 faxes • At the start looks exactly same as modem • Can’t be transmitted using T.38 relay, unless fallback to T.30 • Always works with ECM enabled • Answering fax tone is called ANSam (2100hz with amplitude-modulation. • The ANSam tone is followed by V.8 signal • V.34 capable terminal responds with Call Menu (CM) signal to the detection of ANSam. 25 Supporting V.34 Faxes V.34 fax machine full rate is available only in Bypass mode , when the channel is configured in one of the configurations described below: 1) FaxTransportMode = 2 (Bypass) VxxModemTransportType = 2 (Modem bypass) In this configuration, both T.30 and V.34 faxes (and all other Modems) work in Bypass mode 2) FaxTransportMode = 1 (Relay) VxxModemTransportType = 2 (Modem bypass) In this configuration, T.30 faxes use Relay mode (T.38) while V.34 Fax uses Bypass mode. In order to use V.34 fax in Relay mode (fallback to T.38), you must configure: FaxTransportMode = 1 (Relay) VxxModemTransportType = 0 (Transparent) This configuration forces the V.34 fax machine to work in T.30 mode. 26