Media
In Voxtronics, the media plane is decoupled from the control plane and is based on RTP/RTCP standards and related techniques.
During session establishment, codecs and media encryption parameters are negotiated at runtime using SDP; however, local policies can be applied to control media behavior. These policies also influence outbound media handling.
Currently, Voxtronics supports SRTP with SDES key exchange.
Support for DTLS-SRTP is planned for future releases.
Media-related settings can be customized via bot configuration, SRTP with SDES is enabled on all Bots.
Codec selection order
Codec selection follows one canonical policy:
- Read global preference order from the desired configuration.
- Normalize entries and drop unknown codec names.
- Apply provider priority only as a reordering of allowed names.
- Pick the first codec present in both negotiated SDP and the resulting search order.
- Raise unsupported codec error when no intersection exists.
Default global order is: opus, pcma, pcmu, g722, l16.
Supported Codecs
List of supported codecs and profiles:
| Codec | Sample rate (audio) | RTP clock rate | Notes |
|---|---|---|---|
| Opus | 48 kHz | 48 kHz | Supports variable bitrate; RTP timestamp always at 48 kHz |
| PCMA | 8 kHz | 8 kHz | G.711 A-law |
| PCMU | 8 kHz | 8 kHz | G.711 μ-law |
| G.722 | 16 kHz | 8 kHz | Wideband audio (RTP clock fixed at 8 kHz) |
| L16 | SDP-defined | SDP-defined | Common rates: 8, 16, 48 kHz |
Supported SRTP Profiles
The supported SRTP profiles are:
| SRTP profile | Notes |
|---|---|
AES_CM_128_HMAC_SHA1_80 | AES Counter Mode with HMAC-SHA1 (80-bit authentication tag) |
AES_CM_128_HMAC_SHA1_32 | AES Counter Mode with reduced authentication tag |
AEAD_AES_128_GCM | AEAD AES-GCM profile |
AEAD_AES_256_GCM | AEAD AES-GCM with 256-bit key |
For inbound calls the preferred profile is AEAD_AES_128_GCM; however, the platform falls back to other supported profiles when required.