Sunteți pe pagina 1din 9

Home Autor Mussol scripts ]Project-open[ on Debian ETCH

{ :ivan => :hq }


Buscar por:

ltimos comentarios

frommelmak en Ivan++ Randal en Ivan++ Gustavo en Caracteres raros en los sms con Android Ivan en Autenticacin externa o registro? Ramn Martn en Autenticacin externa o registro?

Blogroll

Argamboy Dj Kubik fr3nd Mundo Malungo No me ras de t Pof-HQ RgMoreno scie.nti.st

proyectos

Fantastic Love Machine Pisosbancos Subastasde Tarifacam Uwish

Categoras

Amigos (5) Android (3) Assl (3) Asterisk (1) Bancos (1) Blogs (4) Debian (2) Dj (5) Eee (1) Eventos (3) Facebook applications (1) Freak (9) Gadgets (12) Geek (9) HTC-Hero (1) Humor (4) Imate-JAM (2) Internet (13) iPhone (4) Isp (2) Ivanhq (7) lastfm (1) Linux (20) mac (1) maresmedev (1) msica (13) Networking (14) Nexus One (3) nosql (1) opinin (14) Ordenadores (8) personal (15) podcast (4) Programacin (14) project-open (2) proyectos (4) Python (1) Ruby (2) Ruby on Rails (7) scripts (1) Seguridad (4) series (2) Slackware (2) Social (6)

Sysdivision (1) Trabajo (2) tv (2) twitter (1) Uncategorized (1) Uwish (4) Vaio (5) vim (1) web20 (4) wifi (4)

Meta

Acceder RSS de las entradas RSS de los comentarios WordPress.org

Monthly archives

diciembre 2011 (1) noviembre 2011 (1) agosto 2011 (1) julio 2011 (1) abril 2011 (2) marzo 2011 (1) febrero 2011 (1) diciembre 2010 (2) septiembre 2010 (2) junio 2010 (1) mayo 2010 (1) abril 2010 (2) marzo 2010 (4) enero 2010 (1) diciembre 2009 (1) noviembre 2009 (1) octubre 2009 (2) septiembre 2009 (2) agosto 2009 (1) mayo 2009 (1) abril 2009 (3)

marzo 2009 (7) febrero 2009 (3) enero 2009 (1) diciembre 2008 (4) noviembre 2008 (2) septiembre 2008 (4) junio 2008 (1) abril 2008 (1) marzo 2008 (2) febrero 2008 (1) enero 2008 (1) diciembre 2007 (3) noviembre 2007 (2) septiembre 2007 (4) julio 2007 (2) junio 2007 (3) mayo 2007 (4) febrero 2007 (1) diciembre 2006 (6) noviembre 2006 (1) octubre 2006 (4) septiembre 2006 (1) agosto 2006 (2) julio 2006 (1) junio 2006 (1) mayo 2006 (6) abril 2006 (7) marzo 2006 (5) febrero 2006 (3) enero 2006 (2)

Asterisk y el maldito SIP NAT


Despus de muchos dolores de cabeza por fin he conseguido hacer funcionar una centralita Asterisk con algunos problemas de enrutamiento. Es sabido que SIP da problemas cuando las terminales se encuentran detrs de un router o firewall, debido a que las cabeceras de los paquetes incluyen la direccin original de la peticin, con lo cual el servidor no sabe como enrutar las respuestas. Existen varias soluciones segn el mapa de la instalacin, que comunmente cuenta con un servidor conectado directamente a Internet y varas terminales enrutadas por el firewall/router de una oficina. En este caso, el mapa consta de dos oficinas cuyos dispositivos estn enrutados por firewalls con Netfilter. La oficina B hospeda el servidor Asterisk y varias terminales SIP.

La oficina A hospeda slamente terminales. De momento las terminales son ordenadores con SJphone o Twinkle, pero ahora vamos a sustituirlos por hardphones. Los firewalls estn a su vez enrutados por los routers ADSL correspondientes, configurados en modo DMZ (NAT de todos los puertos, que no es lo mismo que un Bridge). As, las terminales de la oficina B no tienen problemas para registrarse contra el servidor ni para establecer llamadas entre ellos. El problema lo tienen las terminales de la oficina A, que deben pasar 4 NATs antes de registrarse o hablar con el destino. Aqu el mapa:

Para conseguir hacerlo funcionar he necesitado un proxy SIP para la oficina A. He encontrado un par, pero Pof me habl de Siproxd y la verdad es que es sencillo de usar y la docu es muy buena. Para la configuracin de Asterisk, el fichero sip.conf necesita que se especifique el uso de NAT y las direcciones interna y externa que deben llevar las cabeceras:
[general] context=from-sip bindport=5060 bindaddr=0.0.0.0 srvlookup=yes disallow=all allow=gsm allow=ulaw allow=ilbc language=es nat=yes insecure=very relaxdtmf=yes dtmfmode=info externip=111.222.333.444 localnet=192.168.2.0/255.255.255.0

El campo externip es la IP externa del router que hospeda el Asterisk (el de la oficina B). EL campo localnet es la red interna de la oficina, a la que est conectado el servidor. En el fichero rtp.conf, especifico el rango de puertos que se usar para la transmisin de audio:

[general] rtpstart=7000 rtpend=20000

Instalo siproxd en la oficina A, y siguiendo la docu especifico los parametros necesarios en la configuracin (/etc/siproxd.conf):
if_inbound = eth1 if_outbound = eth0 hosts_allow_reg = 192.168.1.0/24 sip_listen_port = 5060 daemonize = 1 silence_log = 1 log_calls = 1 user = siproxd registration_file = /var/lib/siproxd/siproxd_registrations pid_file = /var/run/siproxd/siproxd.pid rtp_proxy_enable = 1 rtp_port_low = 7000 rtp_port_high = 20000 rtp_timeout = 300 default_expires = 600 debug_level = 0 debug_port = 0

Lanzo siproxd habilitando el nivel 1 de debug:


siproxd -d -1

Aado al firewall de la oficina A (donde est el proxy) las reglas de iptables que redirigen las peticiones SIP a modo de proxy transparente. Es lo mismo que cuando se monta por ejemplo un proxy web transparente con Squid:
# Siproxd iptables -t nat -A PREROUTING -m udp -p udp -i eth1 --destination-port 5060:5082 -j REDIRECT iptables -A INPUT -m udp -p udp -i ppp0 --dport 5060:5082 -j ACCEPT iptables -A INPUT -m udp -p udp -i ppp0 --dport 7000:20000 -j ACCEPT

Y ya est. Las extensiones SIP las configuro como de costumbre:


[110] type=friend context=from-sip secret=xxx language=es username=110 host=dynamic reinvite=no canreinvite=no

Y en el dialplan no hay nada especial que especificar. As funciona perfectamente, la receta la he encontrado dando vueltas por Asteriskguru, pero no me pregunteis dnde porque la verdad es que ya no recuerdo todo lo que he ledo. Por cierto, que todo esto lo he montado en Slackware, y he creado los paquetes TGZ para instalar Siproxd por si alguien los requiere. Estn aqu: libosip2-2.2.2-i686-1.tgz siproxd-0.5.13-i686-1.tgz Espero que a alguien pueda servirle. Desde luego a m me ha trado de culo, y como las configuraciones cambian segn el mapa de cada instalacin es difcil encontrar una ayuda personalizada para solventarlo. Ahora tengo que cambiar los softphones por hardphones, y espero no encontrarme ninguna sorpresa ms. He pensado usar Grandstream BT101 para los terminales corrientes, y un GXP-2000 para la operadora, pero si a alguien se le ocurre un hardware ms apropiado a un precio similar agradecera que me lo recomiende :) Categora: Asterisk, Networking 7 comentarios

7 respuestas a Asterisk y el maldito SIP NAT


1. Yohn Eduin Parra
noviembre 28th, 2006 at 23:56 Gracias hermano, por lo menos me das una luz ms claro que yo no puedo poner un servidor proxy en cada punto de mis clientes, Sigo buscando como solucionar ese problemita!!! pero hay voy creo que esta guia ne da algo de por donde seguir!! YEPS

2. Miguel Angel Moreno


diciembre 18th, 2007 at 21:58 Primero que todo muchas gracias por la informacin y en segundo lugar aprovecho para hacerle una pregunta . Mi servidor asterisk se encuentra en la sede A detrs de un firewall que hace NAT a las peticiones que vengan por determinados puertos (10001-2000, 5060, 4569, 5060-5082) al servidor asterisk. Mi firewall tiene la IP 172.24.1.1, mi servidor asterisk tiene las IP 172.24.1.3 125.123.1.97 y mis terminales SIP se encuentran en el segmento 125.123.1.X, y tambien tengo otras terminales SIP que se conectan desde afuera (usuarios de internet sin ningun firewall) Lo que he logrado es lo siguiente:

- Al llamar desde mis terminales SIP internas (125.123.1.X) a las externas (las que se conectan desde internet) tengo audio y video de forma normal. Las llamdas entre dos terminales internas funciona bien - Las llamadas entre dos terminales externas bien. Mi problema es el siguiente: - Al llamar desde una terminar externa a una terminal interna recibo marcacin pero al recibir la llamada se pierde completamente la comunicacin. Por su experiencia cree usted que sea problemas de con el NAt y sea necesario instalar siproxy?? Caballero de antemano agradezco su atencin y le pido su ayuda . soy un newbie en asterisk y llevo realmente 3 meses tratando de solucionar este problema sin encontrar solucion . agradecera infinitamente su ayuda indicandome el posible caminio que pueda tomar. Att: Miguel Angel Moreno

3. quetzal
diciembre 19th, 2007 at 01:31 Ivn, con tu permiso djame probar suerte en contestar. hola Miguel Angel se me ocurre la posibilidad de que sea un problema de puertos RTP SIP como su nombre indica es un Protocolo de Inicio de Sesion (Session Initation Protocol, en ingls). Todo lo referente a la transmisin de voz se realiza a travs del protocolo RTP. Consulta el fichero rtp.conf ah deberas encontrar el rango de puerto que debes abrir (por defecto, del 10000 al 20000, si no recuerdo mal). Ya nos dirs si era eso

4. Miguel Angel Moreno


diciembre 19th, 2007 at 13:31 Hola Quetzal creo que comet un error al digitar los puertos en realidad son: 10001 20000 y estos estn especificados en el rtp.conf: rtpstart=10001 rtpend=20000 As que no creo que ese sea el inconveniente

5. Ivan
diciembre 19th, 2007 at 14:46 Hola Miguel Angel

Quetzal est en lo cierto. Tu problema es RTP. Aunque siproxd suliciona algunos problemas de enrutamiento RTP, en tu caso no te solucionar nada. Tu problema es tener 2 NICs en Asterisk. No entiendo por qu lo haces. ests conectando unas terminales a una NIC y otras a otra. Por narices tienen que hacerse un lo para comunicarse Yo quitara la 2a NIC, pondra el asterisk pinchado en el switch del backbone y conectara las terminales internas al mismo switch con el mismo rango. Si configuras bien el router de salida para que haga forwarding del trfico SIP y RTP, problema resuelto. Salu2! Ivn

6. quetzal
diciembre 19th, 2007 at 20:17 Miguel Angel, Es dificil diagnosticar ms profundamente sin tener algun archivo de log o traza de asterisk. Con los datos que nos das, lo que me parece ms probable es lo de los puertos RTP Mirate este enlace http://www.voip-info.org/wiki-RTP Y concrtamente mrate de donde habla de RTP y NAT Suerte!

7. Mercy
noviembre 22nd, 2009 at 21:53 Hola por favor ayudame!!! Resulta que yo tengo el caso de la oficina en la que se encuentra el servidor asterisk con los tlfs detras de un nat. Es decir yo tengo mis 2 pcs, incluyendo al servidor detras de un router TPLINK wr543g que tiene una ip publica y las ips tanto de las pcs como del servidor estan en el rango de 192.168.1.100-192.168.1.199. Ayudame indicandome como configuraste tu router o tu archivo sip.conf OJO: con ping si se alcanzan entre ellos

S-ar putea să vă placă și