Cada paso son 2 o 3 tropiezos.
Después de ajustar la configuración de Kamailio para que forzara a la utilización de RTP proxy cuando el UAC estaba detrás de NAT, se establecía la llamada pero no había comunicación de audio en ningún sentido.
Observando las capturas de ngrep se veía que cada uno de los UAC implicados en la comunicación intentaba enviar los paquetes RTP directamente a la IP pública del otro UAC sin pasar por el proxy.
En los datos de registro de estos números se podía observar como Contact la IP pública del router de cada UAC. Esto hacía que en el script de configuración de Kamailio se trataran los mensajes de estos clientes como si no estuvieran detrás de NAT. Y por lo tanto no se cambiaban los paquetes de RTP para forzar la comunicación a través del rtp-proxy.
El problema lo causaba la ayuda a NAT en los router que utilizo para la conexión a Internet. Estos tienen un servicio SIP que se encargaba de cambiar el campo de Contact en los paquetes de señalización SIP. Lo que causaba que el proxy entendiera que el cliente tenía asignada la IP pública cuando no era así.
Después de desactivar la funcionalidad SIP ALG ( Aplication Level Gateway) en el router. El registro en el proxy se muestra de la siguiente forma:
Username 0001
Domain
Contact sip:0001@192.168.88.253:5062
Received sip:(ip pública):5062
Path
Expires 2010-04-15 21:16:32
Q-Value -1.00
Call ID 9142e881-be56fdb7@192.168.88.253
CSeq 14804
Last Modified 2010-04-15 20:16:32
Flags 0
CFlags 64
User Agent Linksys/SPA942-5.2.2(a)
Socket udp:(ip pública):5060
Methods 4767
Antes de desactivarla el campo Received aparecía en blanco. Ya que es un campo que sólo se utiliza para el caso en el que el UAC está detrás de NAT y el router hacía que pareciera que el registro se hacía desde un cliente con IP pública que aparecía en Contact
Suscribirse a:
Enviar comentarios (Atom)

No hay comentarios:
Publicar un comentario