Contents

Introduction

Prerequisites

Requirements

Components Used

Background Information

CUBE Fax Call Flows

FoIP Transport Methods

Fax Pass-Through

T.38 Fax Relay

CUBE Configuration

CUBE Pass-Through Configuration

CUBE T.38 Configuration

Time-Division Multiplexing (TDM) Gateway Configuration for Interworking with CUBE

Verify

Troubleshoot

SIP

T.38 Switchover

Fax Pass-Through Switchover

H323

T.38 Switchover

Fax Pass-Through Switchover

Symptom 1: CUBE Rejects ReINVITE with 488

Symptom 2: CUBE Rejects RequestMode with RequestModeReject

Vendor Specific Information

Verizon

Related Information

Introduction

This document describes how Fax over IP (FoIP) operates in Cisco Unified Border Element (CUBE) call flows with IP Service Providers.

Prerequisites

Requirements

Cisco recommends that you have knowledge of these topics:

- CUBE Enterprise

- Media Gateway Control Protocol (MGCP)

- Session Initiation Protocol (SIP)

- H323 Protocol Suite

- T30 Signaling

Components Used

The information in this document is based on these software and hardware versions: Cisco IOS® Releases 12.4T, 15.0M, 15.0T, 15.1M, 15.1T, 15.2M, 15.2T, 15.3T on Cisco Integrated Services Routers (ISR) Series 2800, 3800, 2900, 3900, 3900e or the Cisco AS5400XM Universal Gateway

Note: This configuration example is not limited to the software versions and hardware platforms listed here.

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.

Background Information

FoIP with CUBE operates in a multitude of environments and is implemented in order to leverage current VoIP networks for reliable fax services. There are multiple fax protocols that CUBE supports along with a multitude of switchover mechanisms. However, in the context of IP service providers, you must adhere to fax protocols and switchover methods that are supported by vendors outside of Cisco.

In FoIP call flows, CUBE is between the Terminating Gateway (TGW) and the Originating Gateway (OGW). From a signaling perspective, the CUBE configuration either permits, or denies, the switchover from a voice call to a fax call. Due to the fact that FoIP protocols are negotiated end-to-end in a VoIP environment, it is essential that everything from the OGW to the TGW are configured in order to use the same FoIP protocol.

It is important to know what FoIP flows are supported and what configuration is necessary on CUBE, as well as the TGWs and OGWs, in order to ensure reliable fax communication.

CUBE Fax Call Flows

Due to the fact that IP Service Providers typically have a mixed environment of Cisco and non-Cisco equipment, it is essential that you use an industry-standard method in order to switch from a voice call to a fax call. This means that the Named Signaling Event (NSE) cannot be used, since NSEs are Cisco-proprietary. There are exceptions to this rule, but they are extremely infrequent.

Note: The inability to use a protocol-based switchover means that Skinny Call Control Protocol (SCCP) is only used in fax call flows to IP Service Providers with G711ulaw and is a "best effort."

FoIP Transport Methods

This document discusses two FoIP transport methods, Fax Pass-Through and T.38 Fax Relay.

Fax Pass-Through

Fax Pass-Through is a fax transport method where the T30 signals and page data are transported through the IP network as Pulse-Code Modulation (PCM)-encoded data, wrapped in Real-time Transport Protocol (RTP) frames.

The Fax Pass-Through switchover is triggered by the detection of the V.21 Preamble on the TGW. The resultant INVITE (for SIP) or Request Mode (for H323) is sent through the CUBE and the rest of the call signaling path to the OGW.

The Fax Pass-Through switchover switches over from any voice codec to the codec defined under the Fax Pass-Through configuration (this process is outlined later in this document).

Note: An MGCP gateway cannot be configured in order to initiate upspeed to G.711 for Fax Pass-Through. Therefore, any fax that uses pass-through on the CUBE that terminates to an MGCP gateway must be routed with G.711 codec.

Note: Fax Pass-Through should not be configured with H.323 if the initial codec is G.711. This causes a H.245 request mode to be sent to switch to G.711 when G.711 is already negotiated. CUCM responds with a H.245 request mode rejection.

T.38 Fax Relay

Fax Relay is a fax transport method where the TGWs and OGWs detect the T30 signals and page data. The gateways take those signals and convert them into relay messages, which are digital representations of the analog signals. Those relay messages are then sent through the IP network.

The T.38 Fax Relay switchover is also triggered by the detection of the V.21 preamble on the TGW.

- When the TGW operates with SIP, detection of the V.21 preamble triggers a T.38 ReINVITE (similar to what was previously described).

- When the TGW operates with H323, detection of the V.21 preamble triggers a T.38 Request Mode.

- When the TGW operates with MGCP, detection of the V.21 preamble triggers a notify (NTFY), which is sent to the Call Agent. The Call Agent then responds with a 200 OK, and sends either a Request Mode or a ReINVITE to CUBE, which depends on the VoIP protocol used.

Debug examples are in the Troubleshoot section of this document.

CUBE Configuration

CUBE can be configured for FoIP in two places: globally under voice service voip as well as under the dial-peer. Configuration at the dial-peer matched for a given call always takes precedence over the global configuration. Configuration for T.38 and Fax Pass-Through can be configured at the same time if under different dial-peers, so that both protocols are simultaneously supported.

CUBE Pass-Through Configuration

In order to configure Fax Pass-Through under voice service voip, use this command (in bold):

voice service voip

no ip address trusted authenticate

allow-connections h323 to h323

allow-connections h323 to sip

allow-connections sip to h323

allow-connections sip to sip

fax protocol pass-through g711ulaw

In order to configure Fax Pass-Through at the dial-peer, use this command (in bold):

dial-peer voice 1 voip

description T38 Test

destination-pattern ^1000$

session protocol sipv2

session target ipv4:192.168.0.1

dtmf-relay rtp-nte

fax protocol pass-through g711ulaw

no vad

Note: Fax Pass-through is not  the same as Fax Passthrough. Fax Passthrough leverages Cisco Network Services Engines (NSEs) in order to switch over from a voice call to a fax call.

CUBE T.38 Configuration

Note: T.38 Version 3 (Super G3 fax speeds) is supported in Cisco IOS Versions 15.1(1)T and later.

In order to configure T.38 Version 0 (G3 fax speed) under voice service voip, use this command (in bold):

voice service voip

no ip address trusted authenticate

allow-connections h323 to h323

allow-connections h323 to sip

allow-connections sip to h323

allow-connections sip to sip

fax protocol t38 version 0 ls-redundancy 0 hs-redundancy 0 fallback none

In order to configure T.38 at the dial-peer, use this command (in bold):

dial-peer voice 1 voip

description T38 Test

destination-pattern ^1000$

session protocol sipv2

session target ipv4:192.168.0.1

dtmf-relay rtp-nte

fax protocol t38 version 0 ls-redundancy 0 hs-redundancy 0 fallback none

no vad

In order to configure T.38 Version 3, either under voice service VoIP or at the dial-peer, use this command:

fax protocol t38 version 3 ls-redundancy 0 hs-redundancy 0 fallback none

If a Media Transfer Protocol (MTP) is used when interworking through a CUBE, it must support codec passthrough. Cisco Unified Communications Manager (CUCM) MTP supports codec passthrough for Version 8.6.1 and later. Cisco IOS MTP must have codec pass-through in the Digital Signal Processor (DSP) Farm configuration:

dspfarm profile 2 mtp

codec pass-through

codec g729r8

maximum sessions software 50

associate application SCCP

Time-Division Multiplexing (TDM) Gateway Configuration for Interworking with CUBE

For an SCCP controlled TDM gateway, this configuration is used for Fax Pass-Through.

voice service voip

no modem passthrough

fax protocol none

no fax-relay sg3-to-g3

Note: The codec in the regions setting for this interworking must be G.711. As noted previously, an SCCP gateway cannot be set to use T.38 when interworking with CUBE.

In order to configure Fax Pass-Through for SIP and H.323 TDM gateways interworking with CUBE, enter:

voice service voip

no modem passthrough

no fax-relay sg3-to-g3

fax protocol pass-through g711ulaw

In order to configure T.38 for SIP and H.323 TDM gateways interworking with CUBE, enter:

voice service voip

no modem passthrough

fax protocol t38 version 0 ls-redundancy 0 hs-redundancy 0 fallback none

Note: T.38 Version 3 can be used if it is configured on the CUBE and is supported by the SIP service provider.

In order to configure an MGCP TDM gateway for Fax Pass-Through inteworking with CUBE, enter:

no mgcp fax-relay sg3-to-g3

no mgcp package fxr-package

mgcp fax t38 inhibit

no mgcp modem passthrough voip mode nse

Note: Since a MGCP gateway does not support upspeeding for Fax Pass-Through, the regions in CUCM between the MGCP gateway and the CUBE must have a codec of G.711.

Verify

There is currently no verification procedure available for this configuration.

Troubleshoot

In order to troubleshoot this issue on CUBE, these debugs must be enabled.

SIP

Enable these debugs for SIP:

debug voip ccapi inout

debug ccsip mess

After the voice call is set up, the TGW sends a SIP ReINVITE to the OGW through CUBE. If the switchover is successful, the OGW responds with a SIP 200 OK with the correct Session Description Protocol (SDP) parameters.

T.38 Switchover

INVITE sip:2101@10.0.0.1:5060 SIP/2.0

Via: SIP/2.0/UDP 10.0.0.2:5060;branch=z9hG4bK171D71

Remote-Party-ID: <sip:1101@10.0.0.2>;party=calling;screen=no;privacy=off

From: <sip:8141101@10.0.0.2>;tag=8D815D8-646

To: <sip:2101@10.0.0.1>;tag=DD4D344-21B2

Date: Fri, 25 Feb 2011 19:25:15 GMT

Call-ID: 32395B08-403E11E0-818C9D5B-499FBE40@10.0.0.1

Supported: 100rel,timer,resource-priority,replaces,sdp-anat

Min-SE:  1800

Cisco-Guid: 786980147-1077809632-2173148507-1235205696

User-Agent: Cisco-SIPGateway/IOS-12.x

Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE,

NOTIFY, INFO, REGISTER

CSeq: 101 INVITE

Max-Forwards: 70

Timestamp: 1298661915

Contact: <sip:8141101@10.0.0.2:5060>

Expires: 180

Allow-Events: telephone-event

Content-Type: application/sdp

Content-Length: 384

v=0

o=CiscoSystemsSIP-GW-UserAgent 3745 9509 IN IP4 10.0.0.2

s=SIP Call

c=IN IP4 10.0.0.2

t=0 0

m=image 17682 udptl t38

c=IN IP4 10.0.0.2

a=T38FaxVersion:0

a=T38MaxBitRate:7200

a=T38FaxFillBitRemoval:0

a=T38FaxTranscodingMMR:0

a=T38FaxTranscodingJBIG:0

a=T38FaxRateManagement:transferredTCF

a=T38FaxMaxBuffer:200

a=T38FaxMaxDatagram:180

a=T38FaxUdpEC:t38UDPRedundancy

!!NOTE!! Not all of the above bolded fields are required.

The above is an example of how Cisco implements T38.

SIP/2.0 100 Trying

Via: SIP/2.0/UDP 10.0.0.2:5060;branch=z9hG4bK171D71

From: <sip:8141101@10.0.0.2>;tag=8D815D8-646

To: <sip:2101@10.0.0.1>;tag=DD4D344-21B2

Date: Fri, 25 Feb 2011 17:48:05 GMT

Call-ID: 32395B08-403E11E0-818C9D5B-499FBE40@10.0.0.1

CSeq: 101 INVITE

Allow-Events: telephone-event

Server: Cisco-SIPGateway/IOS-12.x

Content-Length: 0

176443: Feb 25 17:48:05.360:

//134/2EE85D338187/SIP/Msg/ccsipDisplayMsg:

Sent:

SIP/2.0 200 OK

Via: SIP/2.0/UDP 10.0.0.2:5060;branch=z9hG4bK171D71

From: <sip:8141101@10.0.0.2>;tag=8D815D8-646

To: <sip:2101@10.0.0.1>;tag=DD4D344-21B2

Date: Fri, 25 Feb 2011 17:48:05 GMT

Call-ID: 32395B08-403E11E0-818C9D5B-499FBE40@10.0.0.1

CSeq: 101 INVITE

Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE,

NOTIFY, INFO, REGISTER

Allow-Events: telephone-event

Remote-Party-ID: <sip:2101@10.0.0.1>

;party=called;screen=no;privacy=off

Contact: <sip:2101@10.0.0.1:5060>

Supported: replaces

Supported: sdp-anat

Server: Cisco-SIPGateway/IOS-12.x

Supported: timer

Content-Type: application/sdp

Content-Length: 384

v=0

o=CiscoSystemsSIP-GW-UserAgent 5552 9399 IN IP4 10.0.0.1

s=SIP Call

c=IN IP4 10.0.0.1

t=0 0

m=image 16710 udptl t38

c=IN IP4 10.0.0.1

a=T38FaxVersion:0

a=T38MaxBitRate:7200

a=T38FaxFillBitRemoval:0

a=T38FaxTranscodingMMR:0

a=T38FaxTranscodingJBIG:0

a=T38FaxRateManagement:transferredTCF

a=T38FaxMaxBuffer:200

a=T38FaxMaxDatagram:320

a=T38FaxUdpEC:t38UDPRedundancy

ACK sip:2101@10.0.0.1:5060 SIP/2.0

Via: SIP/2.0/UDP 10.0.0.2:5060;branch=z9hG4bK181B79

From: <sip:8141101@10.0.0.2>;tag=8D815D8-646

To: <sip:2101@10.0.0.1>;tag=DD4D344-21B2

Date: Fri, 25 Feb 2011 19:25:15 GMT

Call-ID: 32395B08-403E11E0-818C9D5B-499FBE40@10.0.0.1

Max-Forwards: 70

CSeq: 101 ACK

Allow-Events: telephone-event

Content-Length: 0

Fax Pass-Through Switchover

INVITE sip:2101@10.0.0.1:5060 SIP/2.0

Via: SIP/2.0/UDP 10.0.0.2:5060;branch=z9hG4bK154F2

Remote-Party-ID: <sip:1101@10.0.0.2>;party=calling;screen=no;privacy=off

From: <sip:8131101@10.0.0.2>;tag=8D66B94-7BF

To: <sip:2101@10.0.0.1>;tag=DD32900-5D4

Date: Fri, 25 Feb 2011 19:23:25 GMT

Call-ID: F12F0BBB-403D11E0-81869D5B-499FBE40@10.0.0.1

Supported: 100rel,timer,resource-priority,replaces,sdp-anat

Min-SE:  1800

Cisco-Guid: 3990792353-1077744096-2172755291-1235205696

User-Agent: Cisco-SIPGateway/IOS-12.x

Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE,

NOTIFY, INFO, REGISTER

CSeq: 101 INVITE

Max-Forwards: 70

Timestamp: 1298661805

Contact: <sip:8131101@10.0.0.2:5060>

Expires: 180

Allow-Events: telephone-event

Content-Type: application/sdp

Content-Length: 174

v=0

o=CiscoSystemsSIP-GW-UserAgent 107 1892 IN IP4 10.0.0.2

s=SIP Call

c=IN IP4 10.0.0.2

t=0 0

m=audio 16464 RTP/AVP 0

a=rtpmap:0 PCMU/8000

a=silenceSupp:off - - - -

SIP/2.0 100 Trying

Via: SIP/2.0/UDP 10.0.0.2:5060;branch=z9hG4bK154F2

From: <sip:8131101@10.0.0.2>;tag=8D66B94-7BF

To: <sip:2101@10.0.0.1>;tag=DD32900-5D4

Date: Fri, 25 Feb 2011 17:46:16 GMT

Call-ID: F12F0BBB-403D11E0-81869D5B-499FBE40@10.0.0.1

CSeq: 101 INVITE

Allow-Events: telephone-event

Server: Cisco-SIPGateway/IOS-12.x

Content-Length: 0

SIP/2.0 200 OK

Via: SIP/2.0/UDP 10.0.0.2:5060;branch=z9hG4bK154F2

From: <sip:8131101@10.0.0.2>;tag=8D66B94-7BF

To: <sip:2101@10.0.0.1>;tag=DD32900-5D4

Date: Fri, 25 Feb 2011 17:46:16 GMT

Call-ID: F12F0BBB-403D11E0-81869D5B-499FBE40@10.0.0.1

CSeq: 101 INVITE

Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE,

NOTIFY, INFO, REGISTER

Allow-Events: telephone-event

Remote-Party-ID: <sip:2101@10.0.0.1>;party=called;screen=no;privacy=off

Contact: <sip:2101@10.0.0.1:5060>

Supported: replaces

Supported: sdp-anat

Server: Cisco-SIPGateway/IOS-12.x

Supported: timer

Content-Type: application/sdp

Content-Length: 194

v=0

o=CiscoSystemsSIP-GW-UserAgent 4896 2709 IN IP4 10.0.0.1

s=SIP Call

c=IN IP4 10.0.0.1

t=0 0

m=audio 19054 RTP/AVP 0

c=IN IP4 10.0.0.1

a=rtpmap:0 PCMU/8000

a=silenceSupp:off - - - -

ACK sip:2101@10.0.0.1:5060 SIP/2.0

Via: SIP/2.0/UDP 10.0.0.2:5060;branch=z9hG4bK16A56

From: <sip:8131101@10.0.0.2>;tag=8D66B94-7BF

To: <sip:2101@10.0.0.1>;tag=DD32900-5D4

Date: Fri, 25 Feb 2011 19:23:25 GMT

Call-ID: F12F0BBB-403D11E0-81869D5B-499FBE40@10.0.0.1

Max-Forwards: 70

CSeq: 101 ACK

Allow-Events: telephone-event

Content-Length: 0

H323

Enable these debugs for H323:

debug voip ccapi inout

debug cch323 all

debug h225 asn1

debug h245 asn1

After the voice call is set up, the TGW sends a H245 RequestMode to the OGW through CUBE. If the switchover is successful, the OGW responds with a RequestModeAck.

T.38 Switchover

value MultimediaSystemControlMessage ::= request : requestMode :

{

sequenceNumber 1

requestedModes

{

{

{

type dataMode :

{

application t38fax :

{

t38FaxProtocol udp : NULL

t38FaxProfile

{

fillBitRemoval FALSE

transcodingJBIG FALSE

transcodingMMR FALSE

version 0

t38FaxRateManagement transferredTCF : NULL

t38FaxUdpOptions

{

t38FaxMaxBuffer 200

t38FaxMaxDatagram 72

t38FaxUdpEC t38UDPRedundancy : NULL

}

}

}

bitRate 144

}

}

}

}

}

001378: May 31 20:56:19.745: H245 MSC OUTGOING PDU ::=

value MultimediaSystemControlMessage ::= response :

requestModeAck :

{

sequenceNumber 1

response willTransmitMostPreferredMode : NULL

}

Fax Pass-Through Switchover

value MultimediaSystemControlMessage ::= request : requestMode :

{

sequenceNumber 1

requestedModes

{

{

{

type audioMode : g711Ulaw64k : NULL

}

}

}

}

value MultimediaSystemControlMessage ::= response :

requestModeAck :

{

sequenceNumber 1

response willTransmitMostPreferredMode : NULL

}

Symptom 1: CUBE Rejects ReINVITE with 488

If you encounter this problem, complete these steps:

1. Enable debugs and collect for a test call.

2. Verify that T.38 or Fax Pass-Through is configured globally.

3. If T.38 or Fax Pass-Through is not configured globally, ensure that T.38 or Fax Pass-Through is configured under both the incoming and outgoing dial-peers based on the Call Control Application Programming Interface (CCAPI) debugs.

4. If the problem is still not resolved, enable debug ccsip all (in a logging buffer with logging buffered 5000000 debug) in order to determine why SIP rejects this ReINVITE.

Symptom 2: CUBE Rejects RequestMode with RequestModeReject

If you encounter this problem, complete these steps:

1. Enable debugs and collect for a test call.

2. Verify that T.38 or Fax Pass-Through is configured globally.

3. If T.38 or Fax Pass-Through is not configured globally, ensure that T.38 or Fax Pass-Through is configured under both the incoming and outgoing dial-peers based on the CCAPI debugs.

4. If the problem is still not resolved, enable debug h225 events, debug h225 q931, and debug h245 events in order to determine why H323 rejects this RequestMode.

Vendor Specific Information

Verizon

- The Cisco Technical Assistance Center (TAC) has noticed that, although Verizon claims support for T.38 over SIP, they never initiate a switchover from a voice call to T.38 when they operate at the TGW.

- This is a known limitation in their environment, and it does not appear that they are going to fix it.

- When the OGW is a FoIP server, you can usually set the server to initiate a switchover even when it is the OGW.

- When a Cisco GW is the OGW, there is currently no way to force the switchover when the Cisco GW acts as the OGW.

- Cisco bug ID CSCud72998 is the enhancement request to support the T.38 switchover when the Cisco GW is the OGW.

Related Information

- Configuring Fax Pass-Through

- Configuring T.38 Fax Relay

- Understanding Inbound and Outbound Dial-peer Matching on IOS Platforms

- Technical Support & Documentation - Cisco Systems