User's Manual 154 Document #: LTRT-65417
MP-11x & MP-124
13.2.5 Fax Transmission behind NAT
The device supports transmission from fax machines (connected to the device) located
inside (behind) a Network Address Translation (NAT). Generally, the firewall blocks T.38
(and other) packets received from the WAN, unless the device behind the NAT sends at
least one IP packet from the LAN to the WAN through the firewall. If the firewall blocks T.38
packets sent from the termination IP fax, the fax fails.
To overcome this, the device sends No-Op (“no-signal”) packets to open a pinhole in the
NAT for the answering fax machine. The originating fax does not wait for an answer, but
immediately starts sending T.38 packets to the terminating fax machine upon receipt of a
re-INVITE with T.38 only in the SDP, or T.38 and audio media in the SDP. This feature is
configured using the T38FaxSessionImmediateStart parameter. The No-Op packets are
enabled using the NoOpEnable and NoOpInterval parameters.
13.3 Configuring RTP/RTCP Settings
This section describes configuration relating to Real-Time Transport Protocol (RTP) and
RTP Control Protocol (RTCP).
13.3.1 Configuring the Dynamic Jitter Buffer
Voice frames are transmitted at a fixed rate. If the frames arrive at the other end at the
same rate, voice quality is perceived as good. However, some frames may arrive slightly
faster or slower than the other frames. This is called jitter (delay variation) and degrades
the perceived voice quality. To minimize this problem, the device uses a jitter buffer. The
jitter buffer collects voice packets, stores them and sends them to the voice processor in
evenly spaced intervals.
The device uses a dynamic jitter buffer that can be configured with the following:
Minimum delay: Defines the starting jitter capacity of the buffer. For example, at 0
msec, there is no buffering at the start. At the default level of 10 msec, the device
always buffers incoming packets by at least 10 msec worth of voice frames.
Optimization Factor: Defines how the jitter buffer tracks to changing network
conditions. When set at its maximum value of 12, the dynamic buffer aggressively
tracks changes in delay (based on packet loss statistics) to increase the size of the
buffer and doesn’t decay back down. This results in the best packet error
performance, but at the cost of extra delay. At the minimum value of 0, the buffer
tracks delays only to compensate for clock drift and quickly decays back to the
minimum level. This optimizes the delay performance but at the expense of a higher
error rate.
The default settings of 10 msec Minimum delay and 10 Optimization Factor should provide
a good compromise between delay and error rate. The jitter buffer ‘holds’ incoming packets
for 10 msec before making them available for decoding into voice. The coder polls frames
from the buffer at regular intervals in order to produce continuous speech. As long as
delays in the network do not change (jitter) by more than 10 msec from one packet to the
next, there is always a sample in the buffer for the coder to use. If there is more than 10
msec of delay at any time during the call, the packet arrives too late. The coder tries to
access a frame and is not able to find one. The coder must produce a voice sample even if
a frame is not available. It therefore compensates for the missing packet by adding a Bad-
Frame-Interpolation (BFI) packet. This loss is then flagged as the buffer being too small.
The dynamic algorithm then causes the size of the buffer to increase for the next voice
session. The size of the buffer may decrease again if the device notices that the buffer is
not filling up as much as expected. At no time does the buffer decrease to less than the
minimum size configured by the Minimum delay parameter.
In certain scenarios, the Optimization Factor is set to 13: One of the purposes of the
Jitter Buffer mechanism is to compensate for clock drift. If the two sides of the VoIP call are
not synchronized to the same clock source, one RTP source generates packets at a lower