The SBC Core supports Fax over IP (FoIP) between packet networks. FoIP allows the two T.30 end-point fax terminals to establish a fax call, and transmit/receive fax images without knowing the call was actually traversing an IP network.  A typical example of a network deployment involving IP networks for fax calls is shown in figure below:

Fax Terminals Across IP Networks

A fax call starts with a voice call. In case of a transcoding voice call:

  1. Initial signaling occurs and voice path is established.
  2. If calling party wants to send fax, it sends CNG to called party.
  3. If called party supports fax, it sends CED tone, which is known as ANS. The tone is a continuous tone signal of 2100 ± 15 Hz for a duration of 2.6 to 4 seconds. The CED is used as a voice and fax call discriminator.
  4. The SBC can detect ANS/CED tone, and depending on the configuration and the capabilities of the SBC, the SBC can switch to G.711 on one or both legs of the call.

The SBC Core supports fax interworking as described in the table below:


Legend:
(tick)supported
(error)not supported

Fax Interworking

ProtocolsSBC 5xx0/5400/7000SBC SWe

Fallback to G.711  

(tick)(tick)
T.38 Passthrough
(V0 or V3)
(tick)(tick)

G.711 – T.38 (V0)

(tick)(tick)

G.711 – T.38 (V3) 

(tick)

(error)

T.38 (V0) – T.38 (V0)* 

(tick)

(tick)

T.38 (V3) – T.38 (V3)*(tick)

(error)

T.38 (V0) – T.38 (V3)   

(error)(error)

*Configuring the system for T.38 to T.38 transcoding is not recommended as it introduces delay and can cause fax transmissions to fail.

Fax Tone Treatment

The SBC does not support T.38 over SRTP. Fax tone treatment on trunk groups that require SRTP media encryption must be configured to use fax over G.711.

After a packet-to-packet call is established as audio, the SBC Core detects modem and fax tones using the DSP resources. When a modem or fax tone is detected, the SBC transitions each call leg to G.711 or fax protocol, such as T.38 Fax Relay, as determined by the signal (2100 Hz phase reversing signal for a modem tone; 2100 Hz non phase reversing signal or V.21 preamble for a T.30 fax tone) and the applicable Packet Service Profile. The SBC also inhibits both silence suppression (if enabled) and any reduction in jitter/playout delay.

Note

If the initial call is a G.711 call, when the SBC receives a RE-INVITE with SDP containing G.711 and "doNotIncludeSsAttributeInReInvite" flag is enabled, the SBC treats the re-invite as a Fax transition request.


The SBC supports fax and modem tone detection (CED, ANSam, and Fax v.21 preamble) on the G.711 leg of a transcoded call.  For transcoded G.711 to G.711 calls, the SBC supports fax and modem tone detection on both the legs.  

Fax Tone Detection with DSP Resources

The SBC supports the honorToneDetection flag to the fax and modem parameters in the media codecEntry configuration for G.711 to appropriately handle fax and modem tones.

  • For G.711 to G.711 transcoded calls, the SBC Core initiates a fax re-invite upon the fax tone detection when the fax toneTreatment configuration is either faxRelayOrFallbackToG711 or fallbackToG711 and the honorToneDetection flag is enabled. If the fax toneTreatment configuration is either faxRelayOrFallbackToG711 or fallbackToG711 and the honorToneDetection flag is disabled, the SBC ignores the fax tone.
  • For G.711 to G.711 transcoded calls, the SBC also initiates a re-invite upon the modem tone detection when the modem toneTreatment configuration is fallbackToG711 and the honorToneDetection flag is enabled. If the modem toneTreatment configuration is fallbackToG711 and the honorToneDetection flag is disabled, the SBC ignores the modem tone. 
Note

The honorToneDetection default value is disable. This flag is only displayed for the G.711 codec.

The following table outlines how the SBC handles G.711 to G.711 transcoded calls when the honorToneDetection flag is either enabled or disabled.

G.711 to G.711 Transcoded Calls with honorToneDetection Flag

Tone TreatmentTone Treatment ConfigurationhonorToneDetection Configuration on the G.711 codecResult
fax toneTreatmentfaxRelayOrFallbackToG711fax honorToneDetection flag is enabled

The SBC initiates a fax re-invite with the T.38 codec towards the ingress peer when the CED fax tone is received from the egress peer.

fax toneTreatmentfaxRelayOrFallbackToG711fax honorToneDetection flag is disabledThe SBC does not transition to fax.
fax toneTreatmentfallbackToG711 fax honorToneDetection flag is enabledThe SBC initiates a fax re-invite with the G.711 codec and the a=silenceSupp:off parameter towards the ingress peer when the CED fax tone is received from the egress peer.
fax toneTreatmentfallbackToG711fax honorToneDetection flag is disabledThe SBC does not transition to fax.
modem toneTreatment fallbackToG711 modem honorToneDetection flag is enabled

The SBC initiates a re-invite with the G.711 codec and the a=silenceSupp:off parameter towards the ingress peer when the modem tone is received from the egress peer.

modem toneTreatment fallbackToG711 modem honorToneDetection flag is disabledThe SBC ignores the modem tone detection and does not initiate a re-invite upon modem tone detection.

V.34 Fax Relay Support

T.38 protocol Version 0 supports relay of Group 3 fax. T.38 protocol Version 3 supports V.34 fax relay or Super G3 fax. V.34 fax machines use a start-up procedure as described by ITU-T standard V.8, which is the same used by V.34 data modems.

The SBC Core supports the following V.34 fax relay support features:

  • Configuration interface support to enable/disable T.38 version 3
  • Implementation of 33600 bps V.34 modems required in DSPs for supporting V3 fax relay
  • Implementation of T.38 Version 3 stack on DSPs
  • Support of V.8 signal analysis in DSPs to determine nature of the call – fax or data
  • Implementation of dynamic resource pool for T.38 (v3) channels
  • Implementation of dynamic resource pools for voice codecs which can also support V.8 detection
  • Support of activating DSP channel with V.8 detection based on PSX/CLI configuration
  • Support of SIP / H.323 / GW-GW signaling to establish pass-through or transcoded call for T.38 V3
  • Enhanced SBC intersection and augmentation logic for supporting T.38 V3
  • Support of V.17 fax using Version 3 stack
  • Support of T.38 V3 to G11 transcoded call using single PXPAD implementation for T.38 to G.711 interworking
  • Support of fallback from T.38 V3 to T.38 V0 in situation where SBC sends Offer-SDP with T.38 V3, and Answer SDP contains T.38 V0. This also involves sending SBC-generated V8 messages (Joint Menu) to complete V8 signaling

Refer to V.8 Signal Analysis Support page for V8 signal analysis DSP resource allotment.

Fax Call Lifetime Using V.34

A V.34 fax call is established between two fax terminals, exchanging T.30/V.8 signals through the SBC as shown in figure below.

Note

Not all of the required signals are shown in this example.

Fax Call Establishment Call Flow Example

T.38 Relay

Most compressed codecs are unsuitable for fax transmission; the result ranges from poor to unusable based on specific endpoints and network topology. ITU has defined the T.38 protocol for Fax transmittal over IP networks. The SBC supports detecting Fax tones and re-negotiating to T.38, or receiving a re-negotiation to T.38. T.38 is also used with uncompressed codecs such as G.711.

The SBC is configurable to use predefined T.38 maxBitRate values using Packet Service Profile (Refer to Packet Service Profile - CLI or Media Profiles - Packet Service Profile (EMA) for command details).

CLI Syntax:
% set profiles media packetServiceProfile <unique_profile_name> t38 maxBitRate <2.4Kbits_s | 4.8Kbits_s | 9.6Kbits_s | 14.4Kbits_s>

When G711 is selected as the audio codec and fax toneTreatment is set to faxRelayOrFallbackToG711, the SBC does not transition to T.38 when fax tone is detected, but responds to T.38 transitions offered by the peer. However, when toneTreatment is set to faxRelay, the SBC initiates a transition to T.38 when fax tone is detected even if audio codec is G711. For a complete listing of fax tone behavior refer to Codec Entry - CLI or Media Profiles - Codec Entry (EMA) pages.

The SBC supports T.38 versions 0 and 3. This is configurable using the protocolVersion configurable in the Packet Service Profile. The CLI syntax is shown below (Refer to Packet Service Profile - CLI for details).

CLI Syntax:
% set profiles media packetServiceProfile <unique_profile_name> t38 protocolVersion <0 | 3>
  • When protocolVersion is set to "0", the SBC advertises "T38FaxVersion:0" in the outgoing offer SDP. If the SBC receives an offer either without T38FaxVersion or with T38FaxVersion set to any value other than "0", the SBC answers with "T38FaxVersion:0" and configures the DSP channel for T.38 Version 0 operation.

  • When protocolVersion is set to "3", the SBC advertises "T38FaxVersion:3" in the outgoing offer. If the SBC receives an offer either without T38FaxVersion or with T38FaxVersion set to any value other than "3", the SBC answers with "T38FaxVersion:0" and configures the DSP channel for T.38 Version 0 operation. If the received offer is "T38FaxVersion:3", the SBC  answers with the same version and configures the DSP channel for T.38 Version 3 operation. This behavior mirrors the design of the answer SDP which contains the same or a lower version number than the offer SDP.
Note

Choosing T.38 version 0 or version 3 for a call leg is based on both fax tone treatment and modem tone treatment for that call leg and the associated call leg.

T.38 v0 vs. T.38 v3 Output

T38 v3
Support max bit rate up to 33600 bps

Output:

v=0
o=Sonus_UAC 2117318520 1798954445 IN IP4 10.54.172.6
s=SIP Media Capabilities
c=IN IP4 10.54.172.6
t=0 0
m=image 1028 udptl t38
a=T38FaxVersion:3
a=T38MaxBitRate:33600
a=T38FaxRateManagement:transferredTCF
a=T38FaxMaxBuffer:553
a=T38FaxMaxDatagram:370
a=T38FaxUdpEC:t38UDPRedundancy
a=sendrecv
T.38 v0
Supports max bit rate up to 14400 bps

Output:

v=0
o=user1 53655765 2353687637 IN IP4 10.128.254.86   
s=-
c=IN IP4 10.128.254.86
t=0 0
m=image 5008 udptl t38
a=T38FaxVersion:0
a=T38MaxBitRate:14400
a=T38FaxRateManagement:transferredTCF
a=T38FaxMaxBuffer:262
a=T38FaxMaxDatagram:176
a=T38FaxUdpEC:t38UDPRedundancy
a=sendrecv

T.38 Max Bit Rate Handling for Non-Direct Media Calls

SBC Core Behavior

For T.38 version=0, the SBC supports four bit rates: 2.4 Kbps, 4.8 Kbps, 9.6 Kbps and 14.4 Kbps.

The SBC normalizes the T.38 bit rate that it receives in the SDP from the peers.

  • If the bit rate received in the SDP is one of these four values, the SBC selects the minimum of route-configured bit rate and peer's bit rate.
  • However, if the bit rate received in the SDP is not one of these four values, the SBC selects one of these four bit rates that is lower than the peer's bit rate.
    Consequently, the SBC uses the minimum value of: route-configured bit rate and peer's bit rate after normalization.
    Examples:
    • If peer is requesting 14.4 Kbps and the route is configured with 14.4 Kbps, the SBC uses 14.4 Kbps.
    • If peer is requesting 14.4 Kbps and the route is configured with 9.6 Kbps, the SBC uses 9.6 Kbps.
    • If peer is requesting 10 Kbps and the route is configured for 14.4 Kbps, the SBC uses 9.6 Kbps.
    • If peer is requesting 7.2 Kbps and the route is configured for 9.6 Kbps, the SBC uses 4. 8 Kbps.
    • If peer is requesting 7.2 Kbps and the route is configured for 2.4 Kbps, the SBC uses 2.4 Kbps.

External PSX Provisioning

Another configuration related to T.38 Max Bit Rate handling for non-Direct Media calls is the PSX "Use Max Bit Rate Only" object, with the following considerations:

  • The PSX PSP flag "Use Max Bit Rate Only" does not impact the logic explained above for bit rate selection based on a peer's value plus the SBC supported/configured values.
  • If "Use Max Bit Rate Only" flag is disabled, the SBC will further adjust/reduce the bit rate (computed above) based on the T38FaxMaxBuffer, T38FaxMaxDatagram and T38FaxUdpEC attributes. Thus, enabling this flag only prevents the SBC from further reducing the bit rate using these attributes.

Re-Invite with G.711

A call is treated as fax transition request when the re-invite is received with G711 and silence suppression is off, "a=sendrecv" direction attribute includes a valid IP address in "c-line", and the call is not retrieve request.

Re-Invite received for HOLD request

When a Re-Invite is received with G711 and silence suppression is off, the call is not taken as fax transition request irrespective of silenceSuppTreatment flag value. All variations for call hold (a=sendonly, a=inactive, a= recvonly,  c=0.0.0.0) is supported. The corresponding egress Re-invite has the same direction attribute as received from ingress.

Re-Invite received for Retrieve request

When a re-invite is received with G711 and silence suppression is off as part of retrieve request, the call is not treated as fax transition request, irrespective of silenceSuppTreatment flag value. All the possible ways for call retrieve (a=sendrecv, c=a.b.c.d[valid ip address]) is supported. If the direction attribute is omitted, it is considered as a=sendrecv. The corresponding egress re-invite has the same direction attribute as received from ingress.

(Refer to SIP Trunk Group - Signaling - CLI or SIP Trunk Group - Signaling for command details)

Fallback to G.711

SBC Core supports transitioning a transcoded call back to G.711 in two scenarios using the toneTreatment parameter. The default value is "none".

  • Fall back to G.711 when a fax tone is detected.

  • Upon detection of fax tone when the current codec is not already G.711. After transiting to G.711, SBC allows the peer to re-Invite to T.38 transitions. This is accomplished using one of the following toneTreatment options. 
CLI Syntax
% set profiles media codecEntry <codecentry_name> fax toneTreatment fallbackToG711

% set profiles media codecEntry <codecentry_name> fax toneTreatment fallbackToG711AllowPeerToNegotiateFaxRelay

Refer to Codec Entry - CLI for CLI parameter details.