VoIP Faxing Notes

Large fix size jitter buffer

Don't use echo cancellation

Call starts out in either g711 or g729
Then if the switch hears the cng tones and t.38 is enabled on the mediatrix box, it switches over to t.38
If you are using g729, the switch might not detect the cng tones which is why g711 is better.
The preferred Clear channel codec is only for when t.38 is disabled, and it describes what codec to then use for when cng tones are detected.
T.38 is not a call setup protocol, thus the T.38 devices need to use standard call setup protocols to negotiate the T.38 call, e.g. H.323, SIP & MGCP.
For call waiting to work the user must have the call waiting feature in broadsoft, it must be turned on and call waiting must be enabled on the mediatrix box otherwise it returns a busy signal
Faxes Have to be set to the lowest baud rate 9,600. The default for most of the newer machines is 33,600.

Step 1: Reduce baud rate to 9600 or lowest possible (probably 2400)
Step 2: Disable error correction (ECM)
Step 3: Disable bandwidth saver by dialing *99 (countrycode-areacode-number)

The call path is a little confusing (why is there an INVITE from -> and then an INVITE back to the latter from
the former?), but the basic problem seems to be that you the default
voice codec set to G.729A.  This would explain why "training failed."

The way that T.38 setup works - at least, in the Cisco voice gateway
world - is that the call is first established using a voice codec.  The
DSPs on the receiving gateway analyze the acoustic content of the audio
stream for fax tones and/or modem preambles ("listen").  If they are
detected, the receiving gateway issues a re-INVITE and requests a switch
to T.38 in its new SDP offer.

In order for this to happen, the frequency response of the codec must be
sufficient to reconstruct the clear-channel PCM content of the bearer
channel.  This is only possible with G.711u/A, which is little more than
a packetised form of clear-channel 8 KHz PCM that carries the 3.1 KHz
(300 Hz to 3400 Hz) bearer spectrum of a digital DS0 and/or a
modem-grade analog line.

G.729A is a codec that uses some advanced compression techniques relying
on CELP (Code Excited Linear Prediction).  Like many other compression
schemes, it also shrinks the size of the data by referring via shorthand
to elements of a waveform table/model that approximate the quantised
value of a sample, but do not EQUAL it.  It's good enough for voice that
humans don't see too much of a difference vs. clear-channel PCM, but for
any sort of scheme reliant on the encoding of digital data into the
acoustic content of the bearer, it will positively not work.

As a result, G.729A cannot be used for either the conveyance or
detection of fax tones.  You need to switch this call to G.711u or
G.711A (in Cisco, "g711ulaw" or "g711alaw") before the appropriate
exchange can take place.  Hopefully, that should be all that is
necessary to effect a switch to T.38.  Make sure the default audio codec
for the call is G.711u/A END-TO-END (in all VoIP legs), so that no
transcoding to/from G.729A occurs anywhere.

Of course, there are a variety of other issues that can be brought to
bear on this scenario, but try that and see how it plays out.  One thing
at a time.


Post a Comment