Complete Communications Engineering

The valid T.38 parameters for SDP are listed in the ITU T.38 specification in Annex D.  Endpoints capable of processing T.38 data can exchange SDP messages to establish the parameters of a T.38 media session.  There are a number of parameters to exchange besides the usual ports and addresses.  Most of them are used to explain what features the offeror supports.  During the negotiation phase, the offeror will enumerate their supported features, generate SDP to describe them, and send that SDP to the other endpoint.  The other end is then expected to configure their T.38 media stream so that it will meet the requirements, or reject the session if the requirements can’t be met.

T.38 parameters are encoded in SDP within media sections using the ‘image’ media type as described in RFC-6466.  They use the SDP attribute syntax which is described in RFC-8866.  The following is an example of a T.38 media section in SDP:

m=image 1234 udptl t38

a=T38FaxVersion:0

a=T38MaxBitrate:9600

a=T38FaxRateManagement:transferredTCF

a=T38FaxMaxBuffer:512

a=T38FaxMaxDatagram:158

a=T38FaxMaxIFP:72

a=T38FaxUdpEc:t38UDPRedundancy

The following table has more information about some of the T.38 parameters that can be included in SDP:

NAME

VALUES

DESCRIPTION

T38FaxVersion

0

3

Specifies the version of the T.38 protocol to use.  Different versions are not interoperable, so this must be negotiated.  Generally, version 0 is used unless V.34 support is required, which needs version 3.

T38MaxBitrate

Any valid bitrate in bits per second

Tells the maximum bitrate that the offeror supports.

T38FaxRateManagement

localTCF

transferredTCF

Sets the training data transfer mode.  The T.38 spec defines two modes, local and transferred.  Local is usually only used for TCP implementations.  This is the only mandatory parameter.

T38FaxMaxBuffer

Any value in bytes

Tells the size of the offeror’s receive buffer.  This information is relayed so the other side can avoid causing an overflow.

T38FaxMaxDatagram

Any value in bytes

Tells the maximum T.38 packet size that can be accepted by the offeror.  The transmitter should not generate any T.38 packets larger than this.

T38FaxMaxIFP

Any value in bytes

Tells the maximum frame size that can be accepted by the offeror.  Each T.38 packet may contain multiple frames if redundancy error correction is used.

T38FaxUdpEC

t38UDPFEC

t38UDPRedundancy

t38UDPNoEC

Sets the error correction scheme for a T.38 session.  The offeror will set the value they want to use, and the answerer can agree or disagree.