Hola a todos (Especialmente a Iñaqui :-)) )
Bueno, luego de haber leido bastante y haber comenzado con el RFC 3261 (Muy buena recomendacion de Iñaqui) llegue a una nueva encrucijada.
Les comento mi escenario: Por ciertas razones que no vienen al caso, necesito situar a Kamailio antes de mi PBX (Asterisk).
Seria algo asi:
Asterisk -------- Kamailio --------- Internet IP privada 200.xx.xx.53
Kamailio no debe hacer mas que un pass del trafico y enviarlo a Asterisk. Asterisk registra los tel, etc. Esto funciona fantastico siempre y cuando los telefonos no esten haciendo NAT. Cuando estos hacen NAT, Asterisk no los puede registrar. Supongo (y digo supongo porque aca me han bajado el copete muchas veces, por lo cual ya no asevero nada) que esto sucede ya que Kamailio no esta tratando NAT.
Me dispongo entonces a configurar NAT en Kamailio, pero no llego a lograr que funcione, y por eso les pido ayuda. Segun la documentacion que lei, se deben cargar los modulos:
loadmodule "dialog.so" loadmodule "nat_traversal.so"
Luego definir:
modparam("nat_traversal", "keepalive_from", "sip:6001@200.xx.xx.53") modparam("nat_traversal", "keepalive_method", "OPTIONS")
Nota: en "keepalive_from" le defini la direccion del telefono junto con la direccion publica de Kamailio.
Luego en:
if (is_method("REGISTER")) { nat_keepalive(); route(x); ... }
Que estoy olvidando definir en el REGISTER?
Asterisk ve que se le envio el metodo, pero no llega al tel:
6001/6001 200.xx.xx.53 D N 5060 UNREACHABLE
Les agradecere toda ayuda que puedan ofrecer!!
Gracias!
2009/2/10 sadzas sadzas@gmail.com:
Hola a todos (Especialmente a Iñaqui :-)) )
Bueno, luego de haber leido bastante y haber comenzado con el RFC 3261 (Muy buena recomendacion de Iñaqui) llegue a una nueva encrucijada.
Les comento mi escenario: Por ciertas razones que no vienen al caso, necesito situar a Kamailio antes de mi PBX (Asterisk).
Seria algo asi:
Asterisk -------- Kamailio --------- Internet IP privada 200.xx.xx.53
Kamailio no debe hacer mas que un pass del trafico y enviarlo a Asterisk. Asterisk registra los tel, etc. Esto funciona fantastico siempre y cuando los telefonos no esten haciendo NAT. Cuando estos hacen NAT, Asterisk no los puede registrar. Supongo (y digo supongo porque aca me han bajado el copete muchas veces, por lo cual ya no asevero nada) que esto sucede ya que Kamailio no esta tratando NAT.
Me dispongo entonces a configurar NAT en Kamailio, pero no llego a lograr que funcione, y por eso les pido ayuda. Segun la documentacion que lei, se deben cargar los modulos:
No tiene mucho sentido lo que cuentas, te explico:
Si tus tfnos están en la misma LAN que Asterisk, Kamailio NO afecta para nada al registro de los tfnos, para NADA. ¿Están los tfnos en la misma LAN que Asterisk?
Iñaki Baz Castillo wrote:
No tiene mucho sentido lo que cuentas, te explico:
Si tus tfnos están en la misma LAN que Asterisk, Kamailio NO afecta para nada al registro de los tfnos, para NADA. ¿Están los tfnos en la misma LAN que Asterisk?
Los telefonos que NO se registran son los que estan haciendo NAT a traves de internet. Hice la prueba de colocarle a Asterisk una IP publica y apuntar los telefonos directamente a el y se registraron perfectamente, por lo cual solo queda configurar correctamente Kamailio para que haga lo mismo.
2009/2/10 sadzas sadzas@gmail.com:
Si tus tfnos están en la misma LAN que Asterisk, Kamailio NO afecta para nada al registro de los tfnos, para NADA. ¿Están los tfnos en la misma LAN que Asterisk?
Los telefonos que NO se registran son los que estan haciendo NAT a traves de internet. Hice la prueba de colocarle a Asterisk una IP publica y apuntar los telefonos directamente a el y se registraron perfectamente, por lo cual solo queda configurar correctamente Kamailio para que haga lo mismo.
No entiendo nada, ¿puedes responder a estas preguntas?:
- ¿Puedes hacer un dibujito del escenario indicando si son IP's públicas o privadas. - ¿Los teléfonos se registran en Asterisk o en Kamailio? (pregunta que ya te hice antes y que no has contestado, así es difícil progresar). - ¿El teléfono envía el REGISTER directamente a Asterisk? ¿o lo envía a Kamailio quien ruta el REGISTER a Asterisk?
Hice la prueba de colocarle a Asterisk una IP publica y apuntar los telefonos directamente a el y se registraron perfectamente, por lo cual solo queda configurar correctamente Kamailio para que haga lo mismo.
De nuevo das por totalmente válida una suposición basada en un vago experimento. Tal y como entiendo tu escenario (salvo que lo esté entendiendo muy mal) te *garantizo* que Kamailio NO influye en el registro de los tfnos en Asterisk. Ahora no me digas que sí influye porque has hecho no sé qué prueba que no demuestra nada...
Hacen falta muchos más datos.
Iñaki Baz Castillo wrote:
No entiendo nada, ¿puedes responder a estas preguntas?:
- ¿Puedes hacer un dibujito del escenario indicando si son IP's
públicas o privadas.
Si, hace falta un grafico: http://s1.subirimagenes.com/otros/previo/thump_1971601esquema.jpg
Iñaki Baz Castillo wrote:
- ¿Los teléfonos se registran en Asterisk o en Kamailio? (pregunta que
ya te hice antes y que no has contestado, así es difícil progresar).
- ¿El teléfono envía el REGISTER directamente a Asterisk? ¿o lo envía
a Kamailio quien ruta el REGISTER a Asterisk?
Los telefonos envian el "REGISTER" a Kamailio y Kamailio lo enruta hacia Asterisk.
Iñaki Baz Castillo wrote:
De nuevo das por totalmente válida una suposición basada en un vago experimento. Tal y como entiendo tu escenario (salvo que lo esté entendiendo muy mal) te *garantizo* que Kamailio NO influye en el registro de los tfnos en Asterisk. Ahora no me digas que sí influye porque has hecho no sé qué prueba que no demuestra nada...
Si, no explique bien esto. Lo que quise decir fue: --> Hice la prueba de eliminar del medio a Kamailio y envie los "REGISTER" de los telefonos directamente a ASTERISK. Estos mismos telefonos que a traves de KAMAILIO NO se registran en Asterisk, SI LO HACEN directamente contra ASTERISK.
Para que no queden dudas de este escenario que SI funciono con los telefonos haciendo NAT, les paso un dibujito:
http://s1.subirimagenes.com/otros/previo/thump_1971659esquema2.jpg
Lo unico que quise hacer con este comentario es eliminar sospechas de que no se registra por: Mal configuracion de los tel Mal configuracion del asterisk Mal configuracion de la red
Si, no explique el escenario nada bien!
El Tuesday 10 February 2009 13:01:01 sadzas escribió:
Hola a todos (Especialmente a Iñaqui :-)) )
Bueno, luego de haber leido bastante y haber comenzado con el RFC 3261 (Muy buena recomendacion de Iñaqui) llegue a una nueva encrucijada.
Les comento mi escenario: Por ciertas razones que no vienen al caso, necesito situar a Kamailio antes de mi PBX (Asterisk).
Seria algo asi:
Asterisk -------- Kamailio --------- Internet IP privada 200.xx.xx.53
Kamailio no debe hacer mas que un pass del trafico y enviarlo a Asterisk. Asterisk registra los tel, etc. Esto funciona fantastico siempre y cuando los telefonos no esten haciendo NAT. Cuando estos hacen NAT, Asterisk no los puede registrar. Supongo (y digo supongo porque aca me han bajado el copete muchas veces, por lo cual ya no asevero nada) que esto sucede ya que Kamailio no esta tratando NAT.
Es que kamailio no tiene que tratar el tema de NAT.
En el escenario que planteas, ¿cues es la misión de kamailio? ¿evitar que Asterisk cuelgue directametne de la IP pública?, si es eso, con una simple redirección de puertos en el router te valía.
¿Realmente necesitas ese kamailio ahí en medio?
Detalla un poco lo que pretendes conseguir (globalmente me refiero), a ver si podemos echarte una mano.
Saludos
Raúl Alexis Betancor Santana wrote:
Es que kamailio no tiene que tratar el tema de NAT. En el escenario que planteas, ¿cues es la misión de kamailio? ¿evitar que Asterisk cuelgue directametne de la IP pública?, si es eso, con una simple redirección de puertos en el router te valía. ¿Realmente necesitas ese kamailio ahí en medio?
Si Raul, entiendo que con un router esto se soluciona, pero realmente necesito que sea Kamailio ya que lo intente con routers y no tuve buenos resultados. Y podemos decir que en este caso la mision de Kamailio es evitar que Asterisk cuelgue directamente de la IP publica.
Mas alla de las discusiones de si se puede con un router o no... ¿pueden ayudarme con esto? Necesito que lo haga Kamailio. Es posible?
El Martes, 10 de Febrero de 2009 15:05, sadzas escribió:
Raúl Alexis Betancor Santana wrote:
Es que kamailio no tiene que tratar el tema de NAT. En el escenario que planteas, ¿cues es la misión de kamailio? ¿evitar que Asterisk cuelgue directametne de la IP pública?, si es eso, con una simple redirección de puertos en el router te valía. ¿Realmente necesitas ese kamailio ahí en medio?
Si Raul, entiendo que con un router esto se soluciona, pero realmente necesito que sea Kamailio ya que lo intente con routers y no tuve buenos resultados. Y podemos decir que en este caso la mision de Kamailio es evitar que Asterisk cuelgue directamente de la IP publica.
Mas alla de las discusiones de si se puede con un router o no... ¿pueden ayudarme con esto? Necesito que lo haga Kamailio. Es posible?
Sí, es posible, inútil .. pero posible.
Kamailio solo tiene que forwardear TODO el tráfico que reciba desde fuera al asterisk, si quieres que kamailio trate el tema de NAT y lo resuelva, tendrás que mirar la documentación de rtpproxy ó mediaproxy. Kamailio solo se encarga de los temas de señalización, no del media.
Por cierto, la solución con un router es tan simple como:
a) Redirigir el puerto 5060 desde la WAN del router a la IP del Asterisk b) Redirigir el rango de puertos de RTP (10000-20000 por defecto) desde la WAN del router a la IP de Asterisk c) Definir correctamente el parámetro localnet y externalip en sip.conf
No tiene más ciencia.
Raúl Alexis Betancor Santana wrote:
Sí, es posible, inútil .. pero posible.
Kamailio solo tiene que forwardear TODO el tráfico que reciba desde fuera al asterisk, si quieres que kamailio trate el tema de NAT y lo resuelva, tendrás que mirar la documentación de rtpproxy ó mediaproxy. Kamailio solo se encarga de los temas de señalización, no del media.
Si, esta claro como es con un router, pero pretendo hacerlo con Kamailio. En cuanto a lo otro. mediaproxy se utiliza justamente para tratar el tema "MEDIA", pero aca tengo un problema de señalizacion.
Tan mal me estoy explicando? En que le estoy errando?
Esta claro que mediaproxy o rtproxy se utiliza para la redireccion del media, pero aca el problema es que los telefonos no se registran... por lo tanto, tengo un tema de señalizacion... ¿o NOOO??? porque o yo me explico muy mal o no se!
Despues me ocupare de MEDIAPROXY o RTPPROXY o lo que sea, ahora el problema es señalizacion y como Kamailio trata esto cuando tiene que reenviarlo hacia otro destino.
No puedo explicarme tan mal! evidentemente no estoy contando con el conocimiento para realizar las preguntas! Pero acaso no fue eso lo que pregunte? como trato el tema de SOLO señalizacion en Kamailio?
El día 10 de febrero de 2009 17:15, sadzas sadzas@gmail.com escribió:
Si, esta claro como es con un router, pero pretendo hacerlo con Kamailio. En cuanto a lo otro. mediaproxy se utiliza justamente para tratar el tema "MEDIA", pero aca tengo un problema de señalizacion.
Tan mal me estoy explicando? En que le estoy errando?
Yo te he hecho antes 3/4 preguntas muy muy concretas a las que no has respondido. Hazlo y será mucho más fácil ayudarte (al menos para mí).
Saludos.
Iñaki Baz Castillo wrote:
Yo te he hecho antes 3/4 preguntas muy muy concretas a las que no has respondido. Hazlo y será mucho más fácil ayudarte (al menos para mí).
Iñaqui, por favor, repetime las preguntas que no respondi. Crei haber respondido todo... hasta el grafico hice... no entiendo a que preguntas te refieres...
Los telefonos NO estan en LAN (de hecho, si estan a traves de la NUBE y con un router de por medio, NO ESTAN EN LAN!) Los telefonos apuntan a Kamailio, el cual reenvia el trafico al Asterisk. Kamailio no registra absolutamente nada en ninguna base ya que no esta creada. Asterisk esta funcionando correctamente.
Estoy respondiendo lo mismo que en anteriores entradas, ¿se me perdio una pregunta?
El grafico ya lo envie anteriormente: http://s1.subirimagenes.com/otros/previo/thump_1971601esquema.jpg
Gente: es buenisimo que me den alternativas como la del router! pero realmente necesito hacerlo con Kamailio y si me pueden ayudar con esto, estare muy agradecido.
El día 10 de febrero de 2009 17:26, sadzas sadzas@gmail.com escribió:
Yo te he hecho antes 3/4 preguntas muy muy concretas a las que no has respondido. Hazlo y será mucho más fácil ayudarte (al menos para mí).
Iñaqui, por favor, repetime las preguntas que no respondi. Crei haber respondido todo... hasta el grafico hice... no entiendo a que preguntas te refieres...
Sorry, no había visto el link del gráfico.
Los telefonos NO estan en LAN (de hecho, si estan a traves de la NUBE y con un router de por medio, NO ESTAN EN LAN!) Los telefonos apuntan a Kamailio, el cual reenvia el trafico al Asterisk. Kamailio no registra absolutamente nada en ninguna base ya que no esta creada. Asterisk esta funcionando correctamente.
Te aviso de que tu escenario es muy "raro" y poco aconsejable. Y sencillamente NO va a funcionar, es IMPOSIBLE:
tfno_A (NAT) Kamailio (IP pública) Asterisk
Vamos a suponer que has puesto "nat=no" en el peer tfno_A en sip.conf:
- tfno_A envía REGISTER desde IP privada poniendo en su Contact algo en plan: Contact: sip:tfno_A@192.168.0.102
- Kamailio recibe el REGISTER y se lo ruta a Asterisk.
- Asterisk recibe el REGISTER y como tiene puest "nat=no" mira el "Contact" y guarda como IP de registro la IP 192.168.0.102.
- Asterisk responde 200 a Kamailio quien lo ruta al tfno_A aprovechando el mapeo NAT existente en los routers. La respuesta se envía por donde llegó el request REGISTER, no nos liemos con esto.
- Asterisk envía un OPTIONS para comprobar si el usuario responde. Este OPTIONS tiene como destino la IP en la que se supone que está registrado el peer "tfno_A", es decir: 192.168.0.102. Obviamente esto falla => UNREACHABLE.
Ahora supongamos que "nat=yes" para "tfno_A":
- Asterisk recibe el REGISTER y como tiene puest "nat=yes" ignora el "Contact" y guarda como IP de registro la IP origen desde la que recibe el REGISTER, es decir: ¡¡¡ la IP pública de Kamailio !!!
- Asterisk responde 200 a Kamailio quien lo ruta al tfno_A aprovechando el mapeo NAT existente en los routers.
- Asterisk envía un OPTIONS para comprobar si el usuario responde. Este OPTIONS tiene como destino la IP en la que se supone que está registrado el peer "tfno_A", es decir: la IP pública de Kamailio.
- Kamailio recibe ese OPTIONS y seguramente responde "502 Not Implemented" o algo así. Da igual, la cosa es que Asterisk recibe respuesta y da al usuario "tfno_A" como registrado y respondiendo (ojo, que ya la estamos liando, que el que responde es Kamailio y no el tfno_A).
- Ahora Asterisk hace un Dial(SIP/tfno_A) y en consecuencia envía un INVITE: INVITE sip:tfno_A@IP_KAMAILIO SIP/2.0
- Kamailio recibe ese INVITE, ¿¿¿y qué quieres que haga??? el destino es él mismo! además tampoco podría rutarselo al tfno_A porque no hay un NAT keepalive y tfno_A está detrás de NAT !!
No tiene sentido alguno, tu escenario es imposible, sorry. Pero si me lo permites también te digo que me parece una chapuza. Yo lo que haría es:
- Los usuarios se registran en Kamailio.
- Kamailio ruta los INVITE a Asterisk.
- En sip.conf configuras cada usuario con: host=IP_KAMAILIO qualify=no nat=no
- Luego un poco de RtpProxy necesario y ya está. Sigue siendo una guarrada pero al menos puede funcionar.
Saludos.
Con respecto al ngrep nunca lo utilice, el tshark lo uso todo el tiempo, de todos modos es verdad el segundo escenario que describio Iñaqui, con la salvedad de que los telefonos en LAN del Kamailio si se registran correctamente en el Asterisk, pero eso es por otro motivo...
Voy a realizar el escenario que propone el.
Muchas gracias a todos!
Iñaki Baz Castillo wrote:
No tiene sentido alguno, tu escenario es imposible, sorry. Pero si me lo permites también te digo que me parece una chapuza. Yo lo que haría es:
Los usuarios se registran en Kamailio.
Kamailio ruta los INVITE a Asterisk.
En sip.conf configuras cada usuario con: host=IP_KAMAILIO qualify=no nat=no
Luego un poco de RtpProxy necesario y ya está. Sigue siendo una
guarrada pero al menos puede funcionar.
El Martes, 10 de Febrero de 2009 18:40, sadzas escribió:
Con respecto al ngrep nunca lo utilice, el tshark lo uso todo el tiempo, de todos modos es verdad el segundo escenario que describio Iñaqui, con la salvedad de que los telefonos en LAN del Kamailio si se registran correctamente en el Asterisk, pero eso es por otro motivo...
Bueno, por lo menos admites que los consejos que te damos para que hagas trazas te los pasas por el forro de los ... bien, es un comienzo. Otra cosa también muy buena, sería que razonaras esa segunda afirmación de "que los teléfonos en la LAN del Kamailio si se registran.." he intentaras comprender porqué sí, pero casi lo doy por imposible.
Voy a realizar el escenario que propone el.
Te espera un calvario.
Muchas gracias a todos!
De nada, pero solo un apunte ... llevas desde Diciembre con la misma pataleta, desde el primer mail que te contesté, te dije que tenías problemas de NAT y que eran por tener mal configurado los elementos, ¿no crees que va siendo hora de que hagas caso de lo que te recomendamos en vez de inventarte una de indios y vaqueros para justificar las pruebas y experimentos que haces? No, se .. es un consejo, pero si sigues empeñado en tirarte por un barranco, cuando te hemos advertido como 100 veces que hay un barranco 100 metros más adelante de donde estas ... pues tu mismo.
Saludos
Por lo que entiendo solo quieres Kamailio para que redirecciones mensajes REGISTER a asterisk. Por que no mandas una traza con ngrep desde el computador que tiene el Kamailio y otra desde el que tiene asterisk. Así podremos saber en donde se está quedando el REGISTER, por que con la frase, "el teléfono no se me registra" no es mucho lo que se puede ayudar.
-----Mensaje original----- De: users-es-bounces@lists.kamailio.org [mailto:users-es-bounces@lists.kamailio.org] En nombre de sadzas Enviado el: Martes, 10 de Febrero de 2009 11:15 a.m. Para: users-es@lists.kamailio.org Asunto: Re: [Kamailio-Users-ES] Nat Traversal
Raúl Alexis Betancor Santana wrote:
Sí, es posible, inútil .. pero posible.
Kamailio solo tiene que forwardear TODO el tráfico que reciba desde fuera al asterisk, si quieres que kamailio trate el tema de NAT y lo resuelva, tendrás que mirar la documentación de rtpproxy ó mediaproxy. Kamailio solo se encarga de los temas de señalización, no del media.
Si, esta claro como es con un router, pero pretendo hacerlo con Kamailio. En cuanto a lo otro. mediaproxy se utiliza justamente para tratar el tema "MEDIA", pero aca tengo un problema de señalizacion.
Tan mal me estoy explicando? En que le estoy errando?
Esta claro que mediaproxy o rtproxy se utiliza para la redireccion del media, pero aca el problema es que los telefonos no se registran... por lo tanto, tengo un tema de señalizacion... ¿o NOOO??? porque o yo me explico muy mal o no se!
Despues me ocupare de MEDIAPROXY o RTPPROXY o lo que sea, ahora el problema es señalizacion y como Kamailio trata esto cuando tiene que reenviarlo hacia otro destino.
No puedo explicarme tan mal! evidentemente no estoy contando con el conocimiento para realizar las preguntas! Pero acaso no fue eso lo que pregunte? como trato el tema de SOLO señalizacion en Kamailio?
El Martes, 10 de Febrero de 2009 16:15, sadzas escribió:
Raúl Alexis Betancor Santana wrote:
Sí, es posible, inútil .. pero posible.
Kamailio solo tiene que forwardear TODO el tráfico que reciba desde fuera al asterisk, si quieres que kamailio trate el tema de NAT y lo resuelva, tendrás que mirar la documentación de rtpproxy ó mediaproxy. Kamailio solo se encarga de los temas de señalización, no del media.
Si, esta claro como es con un router, pero pretendo hacerlo con Kamailio. En cuanto a lo otro. mediaproxy se utiliza justamente para tratar el tema "MEDIA", pero aca tengo un problema de señalizacion.
Tan mal me estoy explicando? En que le estoy errando?
Esta claro que mediaproxy o rtproxy se utiliza para la redireccion del media, pero aca el problema es que los telefonos no se registran... por lo tanto, tengo un tema de señalizacion... ¿o NOOO??? porque o yo me explico muy mal o no se!
Despues me ocupare de MEDIAPROXY o RTPPROXY o lo que sea, ahora el problema es señalizacion y como Kamailio trata esto cuando tiene que reenviarlo hacia otro destino.
No puedo explicarme tan mal! evidentemente no estoy contando con el conocimiento para realizar las preguntas! Pero acaso no fue eso lo que pregunte? como trato el tema de SOLO señalizacion en Kamailio?
¿Has comprobado que los REGISTER estén llegando a Asterisk?, ó ¿se los está tragando el kamailio? tshark y ngrep son tus amigos para esto. Deberías de aprender a usarlos para diagnosticar un problema, trazas, trazas y mas trazas. Para resolver cualquier problema de sip necesitas trazas.
Por lo que pusiste del script que kamailio que usas .. tenias algo tipo ..
si es un register nat_keepalive() route(x)
Bueno .. ¿y que hace el route(x) ese? ... lo que debería de hacer es simplemente reenviar ese tráfico al asterisk.
sr-users-es@lists.kamailio.org