El problema de VOS3000 audio unidireccional es uno de los mas frustrantes para los operadores VoIP y sus clientes. ๐ Cuando una llamada se establece pero solo una de las partes puede escuchar, la experiencia del usuario se deteriora completamente y la llamada se considera fallida. Comprender las causas del audio unidireccional y saber como solucionarlo es esencial para mantener la calidad del servicio en cualquier operacion VoIP. ๐ง
En esta guia completa sobre el VOS3000 audio unidireccional, cubriremos todas las causas posibles de este problema, desde la configuracion de NAT hasta los problemas de codec, pasando por reglas de firewall y la configuracion del media proxy. Cada seccion incluye tablas de diagnostico, ejemplos practicos y soluciones paso a paso. ๐
Table of Contents
Que Causa el Audio Unidireccional en VOS3000 ๐
El VOS3000 audio unidireccional ocurre cuando el flujo RTP (Real-Time Protocol) que transporta el audio solo se establece en una direccion. En una llamada VoIP normal, hay dos flujos RTP: uno del llamante al llamado y otro en sentido contrario. Si uno de los flujos no se establece correctamente, se produce audio unidireccional. ๐ก
Las causas mas comunes del audio unidireccional incluyen problemas de NAT (el flujo RTP se envia a una IP privada inaccesible), reglas de firewall que bloquean los puertos RTP, negociacion de codec fallida, configuracion incorrecta del media proxy, y problemas de enrutamiento de paquetes. Para informacion sobre el protocolo SIP, consulte nuestra guia del protocolo SIP del sistema VOS3000. ๐
๐ Causa
Frecuencia
Dificultad Diagnostico
Impacto
๐ NAT / IP privada
โญโญโญโญโญ Muy alta
โญโญ Media
Alto
๐ฅ Firewall RTP
โญโญโญโญ Alta
โญโญ Media
Alto
๐ต Codec mismatch
โญโญโญ Media
โญ Baja
Medio
๐ Media proxy
โญโญโญ Media
โญโญโญ Alta
Alto
๐ SDP incorrecto
โญโญ Baja
โญโญโญ Alta
Alto
๐ SIP ALG
โญโญโญ Media
โญโญ Media
Alto
Causa 1: NAT y Direccion IP Privada en SDP ๐
La causa numero uno del VOS3000 audio unidireccional es la presencia de direcciones IP privadas en el SDP (Session Description Protocol). Cuando un dispositivo detras de un router NAT envia un mensaje SIP INVITE, incluye en el SDP su direccion IP privada (como 192.168.x.x). Si VOS3000 o el destino no pueden reemplazar esta IP privada con la IP publica del NAT, los paquetes RTP se enviaran a una direccion inaccesible, resultando en audio unidireccional. ๐ง
Para solucionar este problema, VOS3000 puede configurarse para utilizar el media proxy, que intercepta y reenvia los flujos RTP. El media proxy garantiza que los paquetes RTP se enruten correctamente incluso cuando los dispositivos estan detras de NAT. Para informacion sobre NAT, consulte nuestra guia de NAT del sistema VOS3000. ๐ง
๐ INFOGRAFIA: Audio Unidireccional por NAT
================================================
Escenario: IP privada en SDP
Telefono A (192.168.1.100) โ INVITE โ VOS3000
SDP contiene: c=IN IP4 192.168.1.100 โ IP PRIVADA
VOS3000 โ INVITE โ Telefono B
SDP contiene: c=IN IP4 192.168.1.100 โ IP INACCESIBLE
Telefono B envia RTP a 192.168.1.100 โ NO LLEGA
Telefono A envia RTP correctamente โ LLEGA
Resultado: ๐ Telefono B escucha a A
๐ Telefono A NO escucha a B = AUDIO UNIDIRECCIONAL
Solucion: Media Proxy / NAT traversal
================================================
Causa 2: Firewall Bloqueando Puertos RTP ๐ฅ
Un firewall que bloquea los puertos RTP es la segunda causa mas comun de VOS3000 audio unidireccional. Los puertos RTP son los canales por donde viaja el audio de las llamadas VoIP. Si un firewall en la ruta bloquea estos puertos, el flujo de audio se interrumpe en una o ambas direcciones. ๐ฅ
VOS3000 utiliza un rango de puertos RTP configurable (tipicamente 10000-20000 o 40000-60000). Es fundamental que estos puertos esten abiertos en todos los firewalls entre los dispositivos y el servidor. Para informacion sobre configuracion de puertos, consulte nuestra guia de infraestructura y parametros del sistema VOS3000. ๐ฉ
๐ฅ Verificacion Firewall
Comando/Accion
Resultado Esperado
๐ Ver puertos RTP abiertos
iptables -L -n | grep RTP
Reglas ACCEPT para rango RTP
๐ Verificar rango puertos
Ver config VOS3000
Rango definido consistente
๐ Test con tcpdump
tcpdump -i eth0 udp portrange 10000-20000
Paquetes RTP visibles
๐ Verificar firewall externo
Consultar con proveedor hosting
Puertos RTP permitidos
Causa 3: Negociacion de Codec Fallida ๐ต
La negociacion de codec fallida puede causar VOS3000 audio unidireccional cuando los dos extremos de la llamada no logran acordar un codec comun para una de las direcciones del flujo RTP. Aunque esto es menos comun, puede ocurrir cuando los dispositivos soportan diferentes codecs y la negociacion no se completa correctamente. ๐ถ
Para solucionar problemas de codec, verifique que ambos extremos soporten al menos un codec comun (tipicamente G711a o G729). En VOS3000, configure los codecs permitidos en cada pasarela y asegurese de que el transcoding este habilitado si los extremos utilizan codecs diferentes. Para informacion sobre codecs, consulte nuestra guia de codecs y prioridad del sistema VOS3000. ๐ง
Causa 4: Configuracion del Media Proxy ๐
El media proxy de VOS3000 es una herramienta poderosa para resolver problemas de VOS3000 audio unidireccional causados por NAT. Sin embargo, una configuracion incorrecta del media proxy puede causar exactamente el problema que se supone debe resolver. Es importante entender como funciona el media proxy y configurarlo correctamente. ๐
El media proxy funciona interceptando los flujos RTP y reenviandolos a traves del servidor VOS3000. Esto garantiza que ambos extremos envian y reciben audio a traves de una direccion IP accesible. Sin embargo, si el media proxy no esta habilitado para una pasarela especifica, o si los puertos RTP del servidor estan bloqueados, el audio puede ser unidireccional. Para informacion sobre media proxy, consulte nuestra guia de media proxy del sistema VOS3000. ๐ง
๐ Config Media Proxy
Efecto
Recomendacion
โ Habilitado
RTP fluye por servidor
Para dispositivos detras de NAT
โ Deshabilitado
RTP va directo entre extremos
Solo si ambos extremos tienen IP publica
๐ Auto (si falla)
Directo primero, proxy si falla
Opcion flexible
Diagnostico Paso a Paso ๐
Diagnosticar el VOS3000 audio unidireccional requiere un enfoque sistematico. El primer paso es determinar la direccion del audio unidireccional: solo el llamante escucha, o solo el llamado escucha? Esto proporciona una pista importante sobre la ubicacion del problema. ๐ฌ
Si solo el llamante escucha (el llamado no puede ser escuchado), el problema esta probablemente en el flujo RTP del llamado al llamante. Si solo el llamado escucha, el problema esta en el flujo RTP del llamante al llamado. En ambos casos, las causas mas probables son NAT, firewall o configuracion del media proxy. Para informacion sobre depuracion, consulte nuestra guia de depuracion del sistema VOS3000. ๐ ๏ธ
๐ INFOGRAFIA: Arbol de Diagnostico Audio Unidireccional
================================================
Audio Unidireccional Detectado
โโโ Quien NO escucha?
โ โโโ Llamante no escucha โ RTP llamadoโllamante falla
โ โ โโโ Verificar SDP del llamado (IP publica?)
โ โ โโโ Verificar firewall en lado llamante
โ โ โโโ Verificar media proxy para pasarela salida
โ โ
โ โโโ Llamado no escucha โ RTP llamanteโllamado falla
โ โโโ Verificar SDP del llamante (IP publica?)
โ โโโ Verificar firewall en lado llamado
โ โโโ Verificar media proxy para pasarela entrada
โ
โโโ Soluciones rapidas:
โ โโโ 1. Habilitar media proxy en pasarela
โ โโโ 2. Abrir puertos RTP en firewall
โ โโโ 3. Desactivar SIP ALG en router
โ โโโ 4. Verificar codec comun
โ โโโ 5. Capturar paquetes para analisis
================================================
Preguntas Frecuentes sobre VOS3000 Audio Unidireccional โ
โ Que es el audio unidireccional en VOS3000?
El VOS3000 audio unidireccional es un problema donde una llamada se establece correctamente pero solo una de las partes puede escuchar. La otra parte no es escuchada o no puede escuchar. Esto ocurre cuando el flujo RTP que transporta el audio solo se establece en una direccion. La causa mas comun es la presencia de direcciones IP privadas en el SDP debido a NAT, pero tambien puede ser causado por firewalls, codec mismatch o configuracion incorrecta del media proxy. ๐
โ Como soluciono el audio unidireccional causado por NAT?
Para solucionar el VOS3000 audio unidireccional causado por NAT, la solucion mas efectiva es habilitar el media proxy en VOS3000 para las pasarelas donde los dispositivos estan detras de NAT. El media proxy intercepta y reenvia los flujos RTP a traves del servidor, garantizando que el audio llegue a ambos extremos. Tambien puede configurar STUN en los dispositivos para que detecten su IP publica, o configurar reglas NAT estaticas en el router. ๐
โ Que puertos RTP necesito abrir en el firewall?
Para resolver el VOS3000 audio unidireccional causado por firewall, debe abrir el rango de puertos RTP configurado en VOS3000. El rango por defecto tipicamente es 10000-20000 UDP o 40000-60000 UDP, dependiendo de la configuracion. Verifique el rango configurado en los parametros del sistema y asegurese de que todos los puertos UDP en ese rango esten permitidos en el firewall, tanto en el servidor como en los firewalls intermedios. ๐ฅ
โ El SIP ALG puede causar audio unidireccional?
Si, el SIP ALG es una causa frecuente de VOS3000 audio unidireccional. El SIP ALG modifica los paquetes SIP, incluyendo el contenido SDP donde se especifican las direcciones IP y puertos para el flujo RTP. Si el SIP ALG modifica incorrectamente estas direcciones, los paquetes RTP pueden ser enviados a una direccion o puerto equivocado, resultando en audio unidireccional. La solucion es desactivar SIP ALG en todos los routers de la ruta. ๐
โ Como verifico si el media proxy esta funcionando?
Para verificar si el media proxy esta funcionando correctamente y resolver el VOS3000 audio unidireccional, realice una llamada de prueba y capture los paquetes RTP con tcpdump. Si los paquetes RTP pasan por la IP del servidor VOS3000, el media proxy esta activo. Si los paquetes RTP van directamente entre los extremos, el media proxy no esta activo. Para habilitar el media proxy, marque la opcion correspondiente en la configuracion de cada pasarela en VOS3000. ๐
โ El codec puede causar audio unidireccional?
Si, aunque es menos comun, un problema de codec puede causar VOS3000 audio unidireccional. Si los dos extremos de la llamada no logran negociar un codec comun para una de las direcciones del flujo RTP, el audio no se transmitira en esa direccion. Para prevenir esto, asegurese de que ambos extremos soporten al menos un codec comun (G711a o G729) y que el transcoding este habilitado en VOS3000 si los codecs son diferentes. ๐ต
โ Como capturo paquetes RTP para diagnostico?
Para capturar paquetes RTP y diagnosticar el VOS3000 audio unidireccional, acceda al servidor VOS3000 por SSH y ejecute: tcpdump -i eth0 udp portrange 10000-20000 -nn -c 1000 -w /tmp/rtp_capture.pcap. Esto capturara los paquetes RTP en el rango especificado. Luego analice el archivo con Wireshark para verificar la direccion de los flujos RTP y determinar cual direccion esta fallando. ๐
โ Puedo usar STUN para resolver el audio unidireccional?
Si, configurar un servidor STUN en los dispositivos puede ayudar a resolver el VOS3000 audio unidireccional causado por NAT. El STUN permite que los dispositivos detecten su direccion IP publica y el tipo de NAT que estan utilizando, lo que les permite completar correctamente el SDP con direcciones accesibles. Sin embargo, STUN no funciona con todos los tipos de NAT (especialmente symmetric NAT), por lo que el media proxy de VOS3000 es una solucion mas confiable. ๐
Conclusion ๐
El VOS3000 audio unidireccional es un problema comun pero solucionable cuando se aplica el enfoque de diagnostico correcto. La mayoria de los casos se resuelven habilitando el media proxy, abriendo los puertos RTP en el firewall o desactivando el SIP ALG. Con las herramientas de diagnostico adecuadas y un proceso sistematico, puede identificar y resolver rapidamente los problemas de audio unidireccional. ๐
VOS3000 G729 Negotiation Mode: Reliable Fix for Codec Mismatch
Codec mismatch is one of the most frustrating problems in VoIP operations. You configure everything correctly โ SIP trunks, routing, billing โ yet calls still fail with “488 Not Acceptable Here” or connect with no audio. The root cause is often a VOS3000 G729 negotiation mode misconfiguration between G729 and G729a variants. While these codecs are technically compatible, many SIP devices and carriers treat them as different codecs during SDP negotiation, causing calls to fail even though both sides support G729 compression. According to the VOS3000 V2.1.9.07 Manual (Section 2.5.1.1, Routing Gateway Additional Settings), VOS3000 provides four G729 negotiation modes โ Auto, G729, G729a, and G729&G729a โ that give you precise control over how VOS3000 handles G729 variant negotiation during call setup.
This guide explains every aspect of the VOS3000 G729 negotiation mode setting, from understanding why G729 codec mismatch happens to configuring the correct mode for each carrier and endpoint. Whether you are troubleshooting “488 Not Acceptable Here” errors or setting up a new routing gateway for a carrier that only supports G729a, this article provides the complete solution. For expert assistance with your codec configuration, contact us on WhatsApp at +8801911119966.
Table of Contents
What Is VOS3000 G729 Negotiation Mode and Why Codec Mismatch Happens
Before configuring G729 negotiation mode in VOS3000, you must understand why G729 codec mismatch occurs in the first place. The problem is not that the codecs are truly incompatible โ it is that different SIP devices advertise different G729 variant names in their SDP offers, and some devices refuse to negotiate unless the variant name matches exactly.
The G729 Codec Family: Variants and Annexes (VOS3000 G729 Negotiation Mode)
The ITU-T G.729 standard has evolved through multiple annexes, each adding features or modifying the algorithm. The four main variants relevant to VOS3000 are:
G729 (baseline): The original G.729 codec providing 8 kbps voice compression using Conjugate-Structure Algebraic Code-Excited Linear Prediction (CS-ACELP). This is the foundational algorithm
G729a (Annex A): A reduced-complexity version of G729 that uses a simplified algorithm with slightly lower computational requirements. The voice quality is marginally lower but the difference is virtually imperceptible to listeners. Most modern implementations use G729a as the default
G729b (Annex B): Adds Voice Activity Detection (VAD) and Comfort Noise Generation (CNG) to the baseline G729 codec. During silence periods, VAD stops transmitting full frames and instead sends comfort noise parameters, reducing bandwidth usage by approximately 50% on average
G729ab (Annex A+B): Combines the reduced complexity of Annex A with the VAD/CNG of Annex B. This is the most bandwidth-efficient variant with the lowest CPU requirements
The critical point is that G729 and G729a use the same bit format โ a G729 encoder can decode G729a bitstreams and vice versa. They are interoperable at the audio level. The problem arises purely at the SIP SDP negotiation level, where some devices strictly match the codec name in the a=rtpmap attribute.
๐๏ธ Variant
๐ Annex
๐ Bitrate
๐ป Complexity
๐ก VAD/CNG
๐ Interoperable With
G729
Baseline
8 kbps
High
โ No
G729a, G729b, G729ab
G729a
Annex A
8 kbps
Low
โ No
G729, G729b, G729ab
G729b
Annex B
8 kbps (avg ~4 kbps)
High
โ Yes
G729, G729a, G729ab
G729ab
Annex A+B
8 kbps (avg ~4 kbps)
Low
โ Yes
G729, G729a, G729b
How the Codec Mismatch Problem Occurs
The G729 codec mismatch problem occurs during the SIP SDP offer/answer negotiation. Here is the typical scenario:
VOS3000 sends an INVITE to a carrier with G729 in the SDP: The SDP contains a=rtpmap:18 G729/8000
The carrier’s equipment only supports G729a: The carrier’s device expects to see a=rtpmap:18 G729a/8000 in the SDP offer
Strict SDP matching fails: Because the carrier’s equipment does a string comparison on “G729” vs “G729a” and finds no match, it rejects the codec offer
The call fails: The carrier responds with “488 Not Acceptable Here” or “488 Not Acceptable Media” because it cannot find a compatible codec in the SDP offer
This is particularly common when interconnecting with carriers that use SIP gateways from different vendors. Some vendors use “G729” as the SDP codec name, others use “G729A” (capital A), and still others use “G729a” (lowercase a). While RFC 3551 states that G729 and G729a should be treated as compatible, many SIP implementations do not follow this guidance. The VOS3000 G729 negotiation mode setting solves this problem by controlling exactly how VOS3000 advertises G729 variants in SDP.
For a broader understanding of how codec negotiation fits into the overall SIP call flow, see our guide on VOS3000 SIP call flow.
VOS3000 G729 Negotiation Mode Options
According to the VOS3000 V2.1.9.07 Manual (Section 2.5.1.1, Page 32 for Mapping Gateway and Page 47 for Routing Gateway), the G729 negotiation mode setting is located in the Additional Settings > Codec > SIP section of each gateway. This setting controls how VOS3000 handles the G729/G729a variant in SDP negotiation.
Where to Find G729 Negotiation Mode (VOS3000 G729 Negotiation Mode)
To access the G729 negotiation mode setting:
Navigate to Business Management > Routing Gateway
Double-click the routing gateway you want to configure
Click the Additional Settings tab
Select the Codec sub-tab
Under the SIP section, find the G729 negotiation mode dropdown
The same setting is available on mapping gateways at Business Management > Mapping Gateway > Additional Settings > Codec > SIP. You can configure G729 negotiation mode independently on each gateway, which allows you to handle different G729 variant requirements on the customer side versus the vendor side.
The Four G729 Negotiation Modes Explained
VOS3000 provides four G729 negotiation modes, each with a distinct behavior for SDP codec advertisement:
โ๏ธ Mode
๐ SDP Behavior
๐ฏ Best Use Case
โ ๏ธ Consideration
๐ Auto
VOS3000 automatically matches the remote endpoint’s G729 variant. If the remote offers G729, VOS responds with G729. If the remote offers G729a, VOS responds with G729a
General purpose โ recommended default
Works in most cases; may fail with gateways that advertise one variant but accept only another
๐ท G729
VOS3000 always advertises G729 (without annex) in SDP regardless of what the remote endpoint offers
Carriers or gateways that only accept G729 specifically
May fail with endpoints that only accept G729a
๐ถ G729a
VOS3000 always advertises G729a (with annex A) in SDP regardless of what the remote endpoint offers
Carriers or gateways that only accept G729a; lower CPU usage for transcoding
May fail with endpoints that only accept G729
๐ G729&G729a
VOS3000 advertises both G729 and G729a in the SDP offer, allowing the remote endpoint to choose its preferred variant
Maximum compatibility โ both variants available for negotiation
Slightly larger SDP payload; some older devices may not handle dual codec offers
How Each Mode Affects SDP Negotiation During INVITE
Understanding how each G729 negotiation mode changes the SDP content in SIP INVITE messages is critical for diagnosing codec mismatch problems. When VOS3000 sends a SIP INVITE to a routing gateway, the SDP body contains the codec list that VOS3000 offers to the far end. The G729 negotiation mode directly controls what appears in this codec list for the G729 family.
โ๏ธ Mode
๐ค SDP Offer (INVITE from VOS)
๐ฅ Expected SDP Answer
โ Negotiation Result
Auto
Matches remote: a=rtpmap:18 G729/8000 OR a=rtpmap:18 G729a/8000
Same variant as offered
โ Adapts to remote endpoint
G729
Always: a=rtpmap:18 G729/8000
Must include G729
โ If remote accepts G729
G729a
Always: a=rtpmap:18 G729a/8000
Must include G729a
โ If remote accepts G729a
G729&G729a
Both: a=rtpmap:18 G729/8000 AND a=rtpmap:18 G729a/8000
Either G729 or G729a
โ Maximum compatibility
When to Use Auto vs Specific G729 Negotiation Mode
Choosing the right VOS3000 G729 negotiation mode depends on the specific carriers and endpoints you are interconnecting. The wrong choice leads to failed calls, while the right choice ensures reliable codec negotiation every time.
When Auto Mode Works Best
The Auto G729 negotiation mode is the recommended default for most VOS3000 deployments because it dynamically adapts to the remote endpoint’s SDP offer. Auto mode works best when:
Connecting to multiple carriers with different G729 variants: Auto mode adapts to each carrier’s preference without requiring per-carrier configuration
Standard SIP compliance: When the remote endpoints follow standard SDP offer/answer negotiation and accept the variant they offer
Minimal configuration effort: Auto mode requires no manual per-gateway tuning for G729 variant handling
When to Switch to a Specific Mode
You should switch from Auto to a specific G729 negotiation mode when you encounter any of these situations:
Carrier rejects G729 but accepts G729a: Some carriers’ SIP gateways strictly require G729a in the SDP. Switch the routing gateway’s G729 negotiation mode to G729a to force VOS3000 to advertise G729a in its SDP offers to this carrier
Carrier rejects G729a but accepts G729: Less common but possible โ switch to G729 mode to force the baseline variant
“488 Not Acceptable Here” errors with G729 calls: This is the classic symptom of G729 variant mismatch. Switch from Auto to G729&G729a to offer both variants, maximizing the chance of a successful negotiation
One-way audio on G729 calls: Although one-way audio has many causes, G729 variant mismatch can cause the media path to fail in one direction if only one side accepts the codec
๐ฅ Scenario
๐ค VOS3000 Offers
๐ฅ Carrier Expects
โ Result
โ Fix (Mode)
Carrier only accepts G729a
G729
G729a
488 Not Acceptable Here
G729a or G729&G729a
Carrier only accepts G729
G729a
G729
488 Not Acceptable Here
G729 or G729&G729a
Carrier accepts both variants
G729
G729 or G729a
โ Call succeeds
Auto (or any mode)
Auto mode mismatches
Varies by SDP
Specific variant only
Intermittent failures
G729&G729a (offer both)
Customer offers G729a, vendor needs G729
G729a (from customer)
G729 (from vendor)
No common codec in SDP
G729 on routing GW + G729a on mapping GW
For deeper insight into how VOS3000 handles codec conversion between mismatched endpoints, see our guide on VOS3000 transcoding and codec converter configuration.
The “488 Not Acceptable Here” Error and G729 Mismatch
The SIP response code “488 Not Acceptable Here” is the most common symptom of G729 codec mismatch in VOS3000. When a SIP device receives an INVITE with a codec it cannot accept, it responds with 488 to indicate that the offered media parameters are not acceptable. In the context of G729 negotiation, this typically means the far-end device received a G729 variant that does not match its supported variant list.
How to Identify 488 Errors from G729 Mismatch
Not all 488 errors are caused by G729 mismatch โ they can also result from other media incompatibilities. To confirm that a 488 error is specifically a G729 variant mismatch:
Check the SIP trace: Look at the INVITE sent by VOS3000 and the 488 response. The SDP in the INVITE shows what VOS3000 offered, and the 488 response may include a Warning header indicating the media issue
Verify G729 is the only common codec: If both sides also support PCMA or PCMU, the 488 is likely caused by something other than G729 mismatch. G729 variant mismatch only causes 488 when G729 is the only potentially common codec
Check the carrier’s documentation: Many carriers specify whether they accept G729 or G729a in their SIP interconnect requirements
Test with Wireshark: Capture the SIP exchange and examine the SDP codec list in both the INVITE and the 488 response
Fixing 488 Errors with G729 Negotiation Mode
Once you confirm that a 488 error is caused by G729 variant mismatch, the fix is straightforward:
Open the routing gateway’s Additional Settings > Codec > SIP section
Change the G729 negotiation mode from Auto to the variant the carrier requires (G729, G729a, or G729&G729a)
Save the configuration
Place a test call and verify the SDP in the SIP trace
Confirm the call connects successfully without 488 error
If you are unsure which variant the carrier requires, start with G729&G729a mode, which offers both variants and allows the carrier to select the one it supports. This is the most compatible option and resolves 488 errors in the majority of cases.
โ ๏ธ Error Symptom
๐ Likely Cause
๐ ๏ธ Diagnostic Step
โ Solution
488 Not Acceptable Here
G729 variant mismatch in SDP
SIP trace: check offered vs expected codec name
Change G729 negotiation mode to match carrier
No audio on G729 calls
Codec negotiated but RTP not flowing
Wireshark: verify RTP stream and codec payload
Check media proxy and RTP port settings
One-way audio on G729
Asymmetric codec or NAT issue
Compare SDP offer vs answer for each direction
Match G729 mode on both gateways; check NAT
Call connects but poor quality
Transcoding between G729 and G729a with quality loss
Check if transcoding is active unnecessarily
Use G729&G729a mode to avoid unnecessary transcode
Intermittent 488 errors
Auto mode inconsistent match
Check if carrier behavior varies by endpoint
Switch from Auto to G729&G729a for consistency
488 with multiple codecs offered
Carrier rejects entire SDP due to G729 variant
Test with only PCMA to isolate G729 issue
Set correct G729 mode; verify carrier codec list
How G729 Negotiation Interacts with Transcoding
The VOS3000 G729 negotiation mode does not operate in isolation โ it interacts with the codec selection and transcoding settings on the same gateway. Understanding these interactions is essential for building a configuration that works correctly end-to-end.
G729 Negotiation with Softswitch Specified Codec
When the routing gateway’s codec mode is set to “Softswitch specified” with G729 as the specified codec, the G729 negotiation mode controls how VOS3000 advertises that G729 in the SDP. For example, if you set “Softswitch specified codec G729” and the G729 negotiation mode to “G729a”, VOS3000 will advertise G729a in the SDP to the vendor, even though the underlying codec type is G729. This combination is useful when you need to force G729 on the vendor side but the vendor’s gateway only accepts G729a in SDP.
G729 Negotiation with Auto Negotiation Codec VOS3000 G729 Negotiation Mode
When the codec mode is set to “Auto negotiation,” VOS3000 relies on standard SDP offer/answer to select the codec. In this mode, the G729 negotiation mode fine-tunes how VOS3000 handles the G729 variant within the broader auto negotiation process. If VOS3000 and the remote endpoint both support G729 and PCMA, the Auto negotiation mode selects the best common codec, and the G729 negotiation mode ensures the G729 variant matches.
Transcodes if other side uses different codec family
Softswitch specified (G729)
G729a
Advertises G729a in SDP; codec engine uses G729a
Transcodes if other side uses PCMA/G711
Softswitch specified (PCMA)
Any
G729 negotiation mode irrelevant (PCMA in use)
G729 mode has no effect on this side
Auto negotiation
G729&G729a
Offers both G729 and G729a in SDP
No transcoding between G729/G729a (compatible)
G729 Negotiation and Mapping Gateway Codec Settings
The G729 negotiation mode is configured independently on mapping gateways (customer side) and routing gateways (vendor side). This independence allows you to handle different G729 variant requirements on each side of the call. For example, a customer’s SIP phone may advertise G729a while the vendor only accepts G729. By setting the mapping gateway’s G729 negotiation mode to G729a (matching the customer) and the routing gateway’s mode to G729 (matching the vendor), VOS3000 bridges the variant difference seamlessly.
When media proxy is enabled and both gateways use different G729 negotiation modes, VOS3000 handles the variant translation internally without requiring transcoding because G729 and G729a are bitstream-compatible. This means there is no additional CPU overhead for translating between G729 and G729a โ the only overhead comes from media proxy processing the RTP stream.
For more information about how SIP signaling works during call setup, see our VOS3000 SIP call guide.
Use Cases: Fixing G729 Codec Mismatch in Real Scenarios
Use Case 1: Carrier Only Supports G729a
Problem: You are connecting to a termination carrier whose SIP gateway only accepts G729a in SDP. When VOS3000 sends an INVITE with G729, the carrier responds with 488 Not Acceptable Here. Your customers use various SIP phones that advertise both G729 and G729a.
Solution:
Open the routing gateway for this carrier: Business Management > Routing Gateway
Double-click the carrier’s routing gateway
Go to Additional Settings > Codec > SIP
Set the G729 negotiation mode to G729a
Ensure the codec mode is set to Auto negotiation or Softswitch specified (G729)
Save the configuration
With this configuration, VOS3000 will advertise G729a in all SDP offers to this carrier, ensuring the carrier accepts the codec. On the mapping gateway side, leave the G729 negotiation mode on Auto so VOS3000 can negotiate with each customer’s device in its preferred variant.
Use Case 2: Ensuring Compatibility Between Different SIP Endpoints
Problem: Your VOS3000 platform serves multiple retail customers using different SIP devices. Some devices advertise G729, others advertise G729a, and your termination vendors also vary in their G729 variant support. You are experiencing intermittent 488 errors on G729 calls.
Solution:
Set all mapping gateways to G729 negotiation mode G729&G729a โ this allows VOS3000 to offer both variants to customer devices, maximizing the chance of successful negotiation
Set all routing gateways to G729 negotiation mode G729&G729a โ this offers both variants to vendors as well
If a specific vendor requires only G729 or only G729a, override that routing gateway’s G729 negotiation mode to the specific variant the vendor requires
Test calls to each vendor and verify SDP negotiation with SIP trace
This approach uses G729&G729a as the default for maximum compatibility and applies specific mode overrides only where needed.
How to Test G729 Negotiation with SIP Trace
After configuring the VOS3000 G729 negotiation mode, you must test the configuration to verify that SDP negotiation works correctly. The most effective testing method is to capture a SIP trace and analyze the SDP content in the INVITE and response messages.
Step-by-Step SIP Trace Testing
Enable SIP trace: On your VOS3000 server, use tcpdump or the built-in SIP trace feature to capture SIP signaling for a test call
Place a test call: Make a test call that uses the routing gateway you configured
Capture the INVITE: In the SIP trace, find the INVITE message sent from VOS3000 to the carrier
Check the SDP body: In the INVITE’s SDP body, locate the m=audio line and the a=rtpmap lines that follow it. Verify the G729 variant name matches what you configured
Check the response: Examine the 200 OK or 488 response from the carrier. A 200 OK with G729 in the SDP answer confirms successful negotiation. A 488 indicates the variant still does not match
Verify RTP flow: After the call connects, verify that RTP packets are flowing in both directions using Wireshark
SDP Analysis: Reading Codec Negotiation in Wireshark
Wireshark is the most powerful tool for analyzing G729 codec negotiation in VOS3000 SIP traces. Here is how to read the SDP codec negotiation in a Wireshark capture:
Filter for SIP: Apply the display filter sip to isolate SIP messages
Find the INVITE: Locate the SIP INVITE sent from VOS3000 to the carrier’s gateway
Expand the SDP: In the packet details, expand the Session Description Protocol section
Read the media description: Look for the m=audio line which lists the RTP port and payload types
Check rtpmap attributes: Each a=rtpmap attribute maps a payload type number to a codec name. Look for the G729-related rtpmap entries
Compare offer and answer: Compare the SDP in the INVITE (offer) with the SDP in the 200 OK (answer) to confirm both sides agreed on the same G729 variant
Here is an example of SDP analysis showing successful G729a negotiation:
In this example, VOS3000 offered G729a (payload type 18) and the carrier selected G729a in its answer โ successful negotiation. If the carrier had responded with 488, it would indicate that G729a was not accepted, and you would need to try a different G729 negotiation mode.
โ Step
๐ Action
๐ Details
๐ฏ Expected Result
1
Identify carrier G729 variant requirement
Check carrier documentation or capture SIP trace from carrier
Follow these best practices to avoid G729 codec mismatch problems and ensure reliable call setup across all your VOS3000 routing and mapping gateways:
Start with Auto mode: For new gateway configurations, use Auto as the default G729 negotiation mode. Only switch to a specific mode when you encounter negotiation failures
Use G729&G729a for maximum compatibility: When you are unsure which G729 variant a carrier requires, use G729&G729a mode to offer both variants and let the carrier choose
Configure per-carrier, not globally: Different carriers may require different G729 negotiation modes. Configure the mode on each routing gateway individually based on the carrier’s specific requirements
Always test with SIP trace: Never assume the G729 negotiation mode is working correctly without verifying the SDP content in a SIP trace. A 2-minute test can save hours of troubleshooting
Document carrier requirements: Maintain a record of each carrier’s G729 variant preference and the corresponding VOS3000 G729 negotiation mode setting
Coordinate with carrier technical support: When connecting a new carrier, ask their technical team which G729 variant their gateway expects in SDP
๐ Related Resources VOS3000 G729 Negotiation Mode
Frequently Asked Questions About VOS3000 G729 Negotiation Mode
โ What is G729 negotiation mode in VOS3000?
G729 negotiation mode is a setting in VOS3000 that controls how the softswitch handles the G729 codec variant during SDP negotiation. It is located in the Additional Settings > Codec > SIP section of both mapping gateways and routing gateways. The setting offers four modes โ Auto, G729, G729a, and G729&G729a โ each controlling how VOS3000 advertises G729 variants in SIP INVITE SDP bodies. According to the VOS3000 V2.1.9.07 Manual Section 2.5.1.1, this setting resolves G729 variant mismatch problems between different SIP devices and carriers.
โ What is the difference between G729 and G729a?
G729 is the baseline ITU-T G.729 codec providing 8 kbps voice compression. G729a (Annex A) is a reduced-complexity version that uses a simplified algorithm with lower CPU requirements and nearly identical voice quality. Critically, G729 and G729a are bitstream-compatible โ a G729 encoder can decode G729a bitstreams and vice versa. The difference only matters at the SDP negotiation level, where some SIP devices strictly match the codec name string and reject offers that use a different variant name. This is exactly the problem that the VOS3000 G729 negotiation mode solves.
โ How do I fix codec mismatch in VOS3000?
To fix G729 codec mismatch in VOS3000, open the routing gateway’s Additional Settings > Codec > SIP section and change the G729 negotiation mode. If the carrier only accepts G729a, set the mode to G729a. If the carrier only accepts G729, set the mode to G729. If you are unsure which variant the carrier requires, set the mode to G729&G729a to offer both variants. Always verify the fix by capturing a SIP trace and checking the SDP content in the INVITE and response messages.
โ What G729 mode should I use in VOS3000?
For most VOS3000 deployments, start with the Auto G729 negotiation mode as the default. Auto mode dynamically matches the remote endpoint’s G729 variant, which works correctly with the majority of carriers and SIP devices. If you encounter 488 Not Acceptable Here errors on G729 calls, switch to G729&G729a mode which offers both variants for maximum compatibility. If a specific carrier documents that it requires only G729 or only G729a, set that routing gateway to the specific variant the carrier requires. For personalized guidance on your deployment, contact us on WhatsApp at +8801911119966.
โ Why do I get 488 Not Acceptable Here on G729 calls?
The SIP 488 Not Acceptable Here response on G729 calls is most commonly caused by a G729 variant mismatch in the SDP negotiation. When VOS3000 offers G729 in the SDP but the carrier’s gateway only accepts G729a (or vice versa), the carrier rejects the offer with 488. The fix is to configure the correct G729 negotiation mode on the routing gateway so that VOS3000 advertises the variant the carrier expects. Capture a SIP trace to confirm the exact variant mismatch, then set the G729 negotiation mode accordingly.
โ How does Auto mode work for G729 in VOS3000?
In Auto G729 negotiation mode, VOS3000 automatically matches the G729 variant offered by the remote endpoint. When VOS3000 receives an INVITE with G729 in the SDP, it responds with G729. When it receives an INVITE with G729a, it responds with G729a. When VOS3000 sends an outgoing INVITE, it uses the variant that the remote endpoint previously advertised, or defaults to G729 if there is no prior SDP exchange. Auto mode eliminates the need for manual per-carrier G729 variant configuration in most cases, but it may fail with gateways that have inconsistent variant behavior.
โ Can I use G729 negotiation with transcoding in VOS3000?
Yes, the VOS3000 G729 negotiation mode works seamlessly with transcoding. When you configure a routing gateway with “Softswitch specified codec G729” and “Allow codec conversion” enabled, the G729 negotiation mode controls how VOS3000 advertises the G729 variant in the SDP to the vendor. The transcoding engine handles the actual codec conversion between G729 and other codecs (like PCMA or PCMU), while the G729 negotiation mode ensures the SDP variant matches the vendor’s requirement. Since G729 and G729a are bitstream-compatible, translating between these variants does not require additional transcoding overhead. For help configuring G729 negotiation with transcoding, reach out on WhatsApp at +8801911119966.
Get Expert Help with VOS3000 G729 Negotiation Mode
G729 codec mismatch can be a hidden source of call failures that is difficult to diagnose without the right tools and experience. The VOS3000 G729 negotiation mode provides a powerful and flexible solution, but configuring it correctly requires understanding both your carrier’s requirements and how VOS3000 handles SDP negotiation. If you are experiencing 488 errors, no audio, or intermittent G729 call failures, our VOS3000 specialists can diagnose and resolve the issue quickly.
๐ฑ Contact us on WhatsApp: +8801911119966
Our team provides complete VOS3000 codec configuration services, from G729 negotiation mode setup to full transcoding deployment. We can analyze your SIP traces, identify the exact cause of codec mismatch, and configure your routing and mapping gateways for reliable G729 negotiation. Do not let codec mismatch cost you revenue โ reach out today for expert support.
For the official VOS3000 software and documentation, visit VOS3000 Downloads. For professional VOS3000 deployment and configuration assistance, contact us on WhatsApp at +8801911119966.
๐ Need Professional VOS3000 Setup Support?
For professional VOS3000 installations and deployment, VOS3000 Server Rental Solution: