VOIP tras un NAT con GNU/Linux

Lo que quermos conseguir es que todos lo clientes VOIP que están tras una LAN distinta a la que está el asterisk y ademas se encuentran tras un NAT, puedan realizar y recibir llamadas IP con éxito, para ello instalaremos un proxy SIP.
Se plantea el problema de querer conectarnos a un servidor asterisk desde el exterior, esto no tendria mayor problema siempre cuando en la red externa no estemos detrás de un NAT. Si queremos conectarnos a un asterisk tras un NAT (de otra LAN, hecho con iptables con debian en mi caso), tenemos varias opciones. La primera sería utilizar un servidor STUN, y otra opción seria instalar un proxy/masquerading SIP. En este articulo se comentará la segunda, aunque cada una de ellas tiene sus ventajas e inconvenientes en mi caso era suficiente con la creación de un proxy.
En debian es muy sencillo la utilidad se llama siproxd, y para instalarla basta con :
#apt-get install siproxd (con privilegios de root)
Una vez instalada la configuración es muy sencilla, simplemente tenemos que indicar que tarjeta de red pertenece a la red local (donde estan los clientes VOIP) y que tarjeta tiene salida a internet, para ello editaremos el fichero /etc/siproxd.conf y modificaremos la lineas siguientes :
if_inbound = eth0
if_outbound = eth1
A if_inbound le asignaremos la interfaz que conecta con nuestra red local ne mi caso eth0 y a if_outbound le asignaremos la interfaz con salida a internet, en mi caso eth1.
Una vez hecho esto, guaramos el fichero y reinicamos el servicio :
#/etc/init.d/siproxd restart
Ahora los clientes VOIP que estén tras esta NAT (externo al asterisk) simplemente añaden a su configuración la dirección IP del proxy SIP, por tanto en los dispositivos VOIP se rellenará el campo Outbound proxy con la dirección IP donde tengamos el proxy SIP.
Un saludo.