Nunca hasta hace unos días me había pasado algo similar, así que voy a comentarlo por aqui
El tema que hoy nos ocupa es el codec G722 y su interoperabilidad. Algo que en principio no debería preocuparnos, ya que si dos terminales utilizan el mismo codec todo deberia ir bien, ¿no? Pues no.
La semana pasada hablamos de esto en el VUC, porque aparentemente todos los softphones basados en PJSIP sufren del mismo problema: las llamadas en G722 suenan distorsionadas y con algo de superposición en el audio. Ya que en el VUC sólo se usa G722 (aunque se puede conectar por Skype o por SIP con G711 también) esto era importante así que Randy se puso a bombardear las listas de correo intentando encontrar respuesta al problema.
El Problema
En G722 el audio se muestrea a 16KHz con 14 bits. Peeeeero, como lo que nos vienen son 16 bits hay implementaciones que hacen cosas distintas: Asterisk y FreeSWITCH usan los primeros 14 bits y se olvidan de los 2 que sobran, y la cosa funciona. En cambio, PJSIP y VoiceAge hacen un bit-shifting de 2 bits, es decir, desplazan los 16 bits a la izquierda perdiendo los 2 de abajo. La cuestión es que esa diferencia de 2 bits se traduce en 12 dB, por lo que el audio se distorsiona, y al haber “movido” el audio se escuchan chasquidos extraños.
La solución
Obviamente no hay una unica solución, hay que ir a por la mas interoperable, así que he optado por hacer que PJSIP no haga el bit-shifting y así el audio en G722 fluye alegremente.
¿Alguna experiencia al respecto?













