C
omrex
C
orporation
102
include things like carrying ancillary data and contact closures from end-
to-end, codec remote control and monitoring, and NAT traversal, which
at this point are still left to the individual manufacturer's discretion. So if
these topics are important to your application, it's best to stick to a single
codec vendor and their proprietary protocols.
More about EBU3326
The saying goes that a camel is "a horse built by a committee", and true to
form EBU3326 has some elements that make things frustrating and com-
plex. The document defines several mandatory encoding algorithms, and
the transport layer that could be used on them for compatibility*. For the
most part, the transports are straightforward and reasonable to implement
and should interoperate.
It should be noted that several mandatory algorithms like G.711, G.722,
and MP2 were included which provide little benefit to IP codec customers.
Comrex has declined to include MP2, which makes our codecs technically
in violation of the standard.
But the most complex part of the standard was the decision on how to
arrange Session Initialization, which is the handshake that takes place at
the start of an IP codec call. The most commonly used protocol is called
SIP, which is used extensively by VoIP phones and therefore was a logical
choice. But SIP isn't terribly simple and has some drawbacks which will af-
fect codec operation. We've built into Comrex codecs several work-arounds
to reduce these limitations, but understanding how best to utilize them
requires that you understand what the limitations are.
Sipping Slowly
In a nutshell, SIP establishes a communication channel from the calling
device to the called device* on port 5060. All handshaking takes place
over this channel, and a separate pair of channels is opened between the
devices, one to handle the audio, and the other to handle call control. The
original communication channel is terminated once the handshaking is
complete. Note that firewalls must have all three ports open to allow calls
to be established correctly. Also, port forwarding may be required to accept
calls if your codec is behind a router.
*In reality, most VoIP calls involve a server used as an intermediary for the