Blog
VoIP

Codecs de Voz: G.711, G.729 y Opus en la Practica

Compare los codecs G.711, G.729 y Opus en terminos de ancho de banda, calidad y uso practico. Sepa cuando usar cada uno y como configurar la prioridad de codecs en su softswitch.

SipPulse - Equipo Tecnico16 de junio de 20258 min de lectura
Compartir
Codecs de Voz: G.711, G.729 y Opus en la Practica

Por que importa la eleccion del codec

El codec de voz determina como se comprime y transmite el audio en una llamada VoIP. La eleccion incorrecta puede resultar en consumo excesivo de ancho de banda, calidad de audio deficiente o carga innecesaria de CPU por transcodificacion. Para ISPs, operadoras de STFC y contact centers, entender las diferencias entre los codecs es esencial para dimensionar la red y garantizar la satisfaccion de los suscriptores.

G.711: el estandar de referencia

El G.711 es el codec mas antiguo y mas utilizado en redes de telefonia. Opera en dos variantes:

  • G.711 alaw (A-law): usado en Europa y la mayor parte del mundo, incluyendo Brasil.
  • G.711 ulaw (mu-law): usado en America del Norte y Japon.

Caracteristicas principales:

  • Bitrate: 64 kbps por direccion (128 kbps full-duplex)
  • Calidad: MOS alrededor de 4.1 a 4.4 (excelente)
  • Complejidad: muy baja, sin compresion significativa
  • Consumo de ancho de banda por llamada: aproximadamente 87 kbps con overhead de RTP/UDP/IP (paquetes de 20ms)

El G.711 es la eleccion correcta cuando el ancho de banda no es un limitante, como en redes LAN, data centers o enlaces de interconexion dedicados. Su principal ventaja es la ausencia de latencia de codificacion y la compatibilidad universal con cualquier equipo SIP.

G.729: eficiencia en ancho de banda limitado

El G.729 comprime la voz a una fraccion de lo que consume el G.711:

  • Bitrate: 8 kbps por direccion
  • Calidad: MOS alrededor de 3.7 a 3.9 (buena)
  • Complejidad: media (requiere procesamiento de DSP)
  • Consumo de ancho de banda por llamada: aproximadamente 31 kbps con overhead de RTP/UDP/IP (paquetes de 20ms)

El G.729 se usa ampliamente cuando el ancho de banda es limitado o costoso, como en enlaces WAN, interconexion via internet u operaciones con gran volumen de llamadas simultaneas. La desventaja es que cada transcodificacion G.729 a G.711 (o viceversa) agrega latencia y consume CPU.

Nota sobre licenciamiento: la patente del G.729 expiro, haciendolo libre para uso sin pago de regalias. La variante G.729a (Annex A) ofrece menor complejidad computacional con calidad similar.

Opus: el codec moderno

Opus es un codec abierto, libre de regalias, desarrollado por la IETF (RFC 6716). Es el codec estandar para WebRTC y viene ganando espacio en operaciones VoIP modernas:

  • Bitrate: adaptativo, de 6 a 510 kbps
  • Calidad: MOS superior a 4.5 en bitrates por encima de 20 kbps (excelente a superior)
  • Complejidad: media a alta
  • Consumo de ancho de banda por llamada: variable, tipicamente 20 a 40 kbps para voz con calidad excelente

Opus se adapta automaticamente a las condiciones de la red, reduciendo el bitrate cuando detecta congestion y aumentando cuando hay ancho de banda disponible. Soporta tanto voz (narrowband y wideband) como audio de alta fidelidad.

El principal caso de uso de Opus hoy es en aplicaciones WebRTC (softphones web, integraciones con navegador) y en redes VoIP que buscan calidad superior sin el costo de ancho de banda del G.711.

Comparativo practico

CodecBitrateAncho de banda/llamadaMOSMejor uso
G.71164 kbps~87 kbps4.1-4.4LAN, interconexion dedicada
G.7298 kbps~31 kbps3.7-3.9WAN, enlaces limitados
Opus6-510 kbps~20-40 kbps4.0-4.9WebRTC, aplicaciones modernas

Negociacion de codec en SIP (SDP)

Cuando dos partes inician una llamada SIP, la negociacion del codec ocurre via SDP (Session Description Protocol) dentro de los metodos INVITE y 200 OK. En el SDP, cada codec se identifica por un payload type:

  • G.711 ulaw: payload type 0
  • G.711 alaw: payload type 8
  • G.729: payload type 18
  • Opus: payload type dinamico (tipicamente 111)

El orden de los codecs en la linea m=audio del SDP define la prioridad. El primer codec listado es el preferido. El SipPulse SoftSwitch permite configurar esta prioridad de forma flexible por suscriptor, por ruta o por perfil de servicio.

Costo de transcodificacion

Cuando los dos lados de una llamada usan codecs diferentes, el elemento intermediario (softswitch o SBC) necesita transcodificar. Cada sesion transcodificada consume significativamente mas recursos:

  • Una sesion G.711 en passthrough consume casi cero CPU en el media relay.
  • Una sesion G.729 a G.711 transcodificada puede consumir 10 a 20 veces mas CPU.

Para operaciones de gran escala, minimice la transcodificacion configurando los endpoints para soportar los mismos codecs y priorizando codecs compatibles en la negociacion SDP.

Configuracion de codecs en SipPulse SoftSwitch

El SipPulse SoftSwitch ofrece control granular sobre la configuracion de codecs a traves de su interfaz de gestion. Con capacidad de hasta 1.000 CAPS (calls per second) y soporte para conmutacion Class 4 y Class 5, el SoftSwitch gestiona la negociacion de codecs de forma eficiente incluso en operaciones de alto volumen.

Configuracion por perfil de suscriptor

En la interfaz del SipPulse SoftSwitch, puede definir la lista de codecs permitidos para cada perfil de suscriptor:

  • Suscriptores residenciales: priorice G.711 alaw para calidad maxima en redes de fibra, con G.729 como fallback para situaciones de congestion.
  • Suscriptores empresariales: habilite G.711 alaw y Opus, ofreciendo calidad HD cuando el endpoint lo soporte.
  • Troncos SIP de contact center: configure G.711 como primario para garantizar compatibilidad con plataformas de marcacion, y G.729 para economia de ancho de banda en troncos de larga distancia.

Configuracion por ruta

El SipPulse SoftSwitch permite definir codecs especificos por ruta de salida:

  • Rutas de interconexion local: G.711 alaw como primario, garantizando calidad maxima en enlaces dedicados entre operadoras.
  • Rutas de interconexion via internet: G.729 como primario, economizando ancho de banda sin sacrificio perceptible de calidad.
  • Rutas WebRTC: Opus como primario, aprovechando el bitrate adaptativo para conexiones de calidad variable.

Monitoreo de codecs en los CDRs

El SipPulse SoftSwitch registra el codec negociado en cada CDR (Call Detail Record), permitiendo que el operador acompane:

  • Distribucion de codecs por ruta y por periodo
  • Porcentaje de llamadas que requirieron transcodificacion
  • Impacto de la transcodificacion en la calidad (correlacionando codec con metricas de MOS cuando estan disponibles)

Transcodificacion en SipPulse SBC

El SipPulse SBC complementa al SoftSwitch en la gestion de codecs, actuando como punto de transcodificacion en el borde de la red. Integrado con RTPEngine, el SipPulse SBC realiza transcodificacion de forma transparente:

  • Conversion entre codecs en el borde: cuando un endpoint externo utiliza un codec diferente del configurado en la red interna, el SBC convierte automaticamente sin impacto perceptible en la latencia.
  • Soporte a WebRTC: el SBC convierte Opus (usado por navegadores WebRTC) a G.711 o G.729 (usado por equipos SIP tradicionales), permitiendo que agentes de contact center usen softphones basados en navegador para atender llamadas de suscriptores con telefonos IP convencionales.
  • Transcodificacion selectiva: el SBC puede configurarse para transcodificar solo cuando sea necesario, haciendo passthrough cuando ambos lados soportan el mismo codec, economizando recursos de procesamiento.

Capacidad de transcodificacion

El SipPulse SBC soporta hasta 4.000 llamadas simultaneas por canal. En modo passthrough (sin transcodificacion), la capacidad se maximiza. En modo de transcodificacion, la capacidad varia segun el par de codecs involucrado, pero la arquitectura permite escalar horizontalmente agregando canales de procesamiento de media conforme la demanda.

Recomendaciones practicas para ISPs y operadoras

Con base en la experiencia de SipPulse en operaciones de STFC y contact center en Brasil, recomendamos:

  1. Estandarice G.711 alaw en la red interna: esto elimina la necesidad de transcodificacion entre sus propios elementos de red.
  2. Use G.729 en interconexiones via internet: esto reduce el consumo de ancho de banda en enlaces compartidos sin impacto significativo en la calidad.
  3. Habilite Opus para WebRTC: si su operacion incluye softphones web o integracion con Zoom/Teams via Oleg en el SipPulse SBC, Opus ofrece la mejor relacion calidad/ancho de banda.
  4. Monitoree la transcodificacion: use los reportes de CDR del SipPulse SoftSwitch para identificar rutas con alto porcentaje de transcodificacion y optimizar la configuracion de codecs de los endpoints.
  5. Configure el SipPulse SBC para transcodificacion selectiva: evite transcodificar cuando ambos lados soportan el mismo codec, reservando los recursos de media para situaciones que realmente requieran conversion.

Referencias

#codecs#G.711#G.729#Opus#VoIP#calidad

Artículos Relacionados