VoIP Codecs

From TCBWiki
Jump to: navigation, search

Audio that is to be sent via VoIP/RoIP must first be encoded in digital form using some type of "codec" (coder/decoder). In some cases you can choose which codec is used. This page contains information to help you make that decision.


Audio Quality versus Bandwidth

In general, sending high quality audio requires more network bandwidth than sending lower quality audio. Some codecs, however, do a better job of maintaining audio quality at low bandwidths than others do. If you have lots of bandwidth available such as on a LAN, you may want to run with very little or no compression. On the other hand, if bandwidth is limited or expensive (such as when using a satellite-based network connection), it may be worth using the lowest bandwidth option available even though the audio quality will not be as good.

Note that the Packet Interval used for sending the VoIP/RoIP data will also have an effect on the amount of network bandwidth used.

Codecs with little or no compression

  • 16-bit PCM - this is the form generally used for internal audio processing routines. It is not technically a "codec" at all because no coding needs to be done to get the audio into this format. In most cases, it is not used for sending audio over network connections.
  • G.711 (A-law and u-law) use a very simple "companding" operation to cut the bandwidth of 16-bit PCM in half while preserving very good audio quality. This has historically been used for long distance telephone connections, and is still extremely commonly used, making it a good choice when various types of equipment need to communicate.

Codecs with more compression

  • Opus strikes a balance between using less bandwidth and providing good audio quality. It has several bandwidth options so you can find the "sweet spot" for your application. It is a very good choice when all of the equipment that needs to communicate supports it (more about that below).
    • Opus 12 (12 kbps of VoIP data, packet headers use additional bandwidth) provides a good balance between saving network bandwidth and providing good audio quality. Opus 16 and Opus 24 provide even better audio quality.
  • Speex is similar to Opus, but the audio quality is generally not as good when configured to use the same network bandwidth. It may still be the best choice, however, if some of the VoIP/RoIP devices you are using do not support Opus.

Software support

Codec switching is automatic when receiving

Link Communications' products use standards-based VoIP/RTP protocols such as RTP whenever it is possible/practical. The RTP standard specifies the format for a header that appears near the beginning of every VoIP/RoIP network packet. One of the things that is specified in that header is the type of audio codec that was used to encode the audio contained in that packet. LinkComm's products use that information to automatically adjust their configuration so they can receive and decode any compatible incoming VoIP stream automatically, even switching back and forth if different VoIP sources use different codecs.

Codec selection when transmitting

In most cases you can configure which codec (and Packet Interval) will be used when transmitting VoIP data through the network. The most important consideration is that all of the devices that receive the packets be compatible with the codec you choose. With newer codecs like Opus, you will need to check that all of the devices are running new enough software to have the necessary support.


The IPR5000 has always supported Speex and PCM. It has also supported Opus since software version 1.58 (software available here: Blackfin, Windows).

To specify which audio codec is used for VoIP/RoIP transmitting by the IPR5000, make sure it is registered to an account at VTrunk.net. Then from the VTrunk.net management web page, select "Settings" (top-right corner) and find the "Codec Settings".

After selecting a codec, the settings on each IPR5000 will have to be updated before they will start transmitting using the newly selected codec. You don't have to worry about making that happen right away; it will automatically happen when they are restarted (or if they are powered up constantly, within 24 hours). Because the codec used for receiving switches automatically (as described above), the receiving devices will automatically switch whenever the change takes place.


The TCB-IP2 has always supported Speex and PCM. It has also supported Opus since firmware version 6.26 (software available here - download IP2RCI_Installer.exe for the desired version).

The audio codec used for transmitting can be configured separately for each "virtual port" using the included RCI software. Note that virtual ports 9, 10, 11 and 12 are the ones generally used for communication with IPR5000's and LinkTDS. Changes take effect immediately, but are preserved through restarts only if you save settings (from RCI's File menu select "Save Settings on IP2").

Note that even if the TCB-IP2 is registered to a VTrunk.net account that the VoIP codec is still configured using RCI, not through VTrunk.net (it is different in that way than the IPR5000).


LinkTDS has always supported Speex and PCM. It has also supported Opus since software version 3.3.4 (software available here).

The audio codec used for transmitting can be configured when logged in as an administrator by selecting the Design menu > System Settings > VoIP tab. Check the "Outgoing VoIP" box to override the defaults, then select the audio codec. When closing the settings dialog, it will prompt you to restart LinkTDS so the settings can take effect.

Note that even if LinkTDS is registered to a VTrunk.net account that the VoIP codec is still configured as described above, not through VTrunk.net (it is different in that way than the IPR5000).

TCB-2 and TCB-4

These older products use a hard-coded VoIP protocol that can't be changed. They do not use RTP headers, and therefore cannot exchange VoIP audio with the newer products, although they can communicate among themselves.

Personal tools