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 5000/7000 SeriesSBC 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

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

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 an offer with T38FaxVersion is absent or 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 an offer with T38FaxVersion is not set to "3" or is absent, theSBC 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

T.38 v0T38 v3
Supports max bit rate up to 14400 bpsSupport max bit rate up to 33600 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

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

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.