Hola gente: Realmente es simple lo que quiero lograr, pero no doy en la tecla. Quiero que al discar cualquier extension comenzando con 6, esta se redirija al Asterisk. Segun tengo entendido debería ser algo asi:
if (is_method("INVITE")) { if (uri =~ "sip:6[0-9]@*"){ route(3); exit; } setflag(1); }
route[3]{ if (uri =~ "sip:6[0-9]@*"){ rewritehostport("200.xx.xx.87:5060"); --> Obviamente 200.xx.xx.87 es la IP del Asterisk route(1); exit; }; }
Cuando disco 6001 -por ejemplo- me dice "404 Not Found" y si me dijo en el LOG del asterisk no llego nada desde Kamailio...
Pueden ayudarme? Gracias.
2009/1/28 sadzas sadzas@gmail.com:
if (uri =~ "sip:6[0-9]@*")
Está mal, sería:
if (uri =~ "sip:6[0-9]*@")
Aunque yo prefiero:
if ($rU =~ "6[0-9]*")
Te recomiendo encarecidamente que leas sobre expresiones regulares antes de usarlas.
El Miércoles, 28 de Enero de 2009 14:03, sadzas escribió:
Hola gente: Realmente es simple lo que quiero lograr, pero no doy en la tecla. Quiero que al discar cualquier extension comenzando con 6, esta se redirija al Asterisk. Segun tengo entendido debería ser algo asi:
if (is_method("INVITE")) { if (uri =~ "sip:6[0-9]@*"){
^^^^^^ Esta expresión regular solo "caza" 60 al 69, nada más. Lee primero un buen manual sobre expresiones regulares.
route(3); exit; } setflag(1); }
route[3]{ if (uri =~ "sip:6[0-9]@*"){
^^^^^^^^ ¿Que oculta ventaja tiene comprobar dos veces la URI ?
rewritehostport("200.xx.xx.87:5060"); --> Obviamente
200.xx.xx.87 es la IP del Asterisk route(1); exit; }; }
Gracias a los dos! el error ademas de lo que marcaron era:
route[3] { if ($rU =~ "6[0-9]*") rewritehostport("200.26.33.87:5060"); route(1); exit; <--- ESTE EXIT VA LUEGO DE CERRAR LA SENTENCIA IF ! } }
Gracias a los dos!
Raúl Alexis Betancor Santana wrote:
El Miércoles, 28 de Enero de 2009 14:03, sadzas escribió:
Hola gente: Realmente es simple lo que quiero lograr, pero no doy en la tecla. Quiero que al discar cualquier extension comenzando con 6, esta se redirija al Asterisk. Segun tengo entendido debería ser algo asi:
if (is_method("INVITE")) { if (uri =~ "sip:6[0-9]@*"){
^^^^^^
Esta expresión regular solo "caza" 60 al 69, nada más. Lee primero un buen manual sobre expresiones regulares.
route(3); exit; } setflag(1); }
route[3]{ if (uri =~ "sip:6[0-9]@*"){
^^^^^^^^
¿Que oculta ventaja tiene comprobar dos veces la URI ?
rewritehostport("200.xx.xx.87:5060"); --> Obviamente
200.xx.xx.87 es la IP del Asterisk route(1); exit; }; }
-- Raúl Alexis Betancor Santana Dimensión Virtual
Users-es mailing list Users-es@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users-es
El día 28 de enero de 2009 15:52, sadzas sadzas@gmail.com escribió:
Gracias a los dos! el error ademas de lo que marcaron era:
route[3] { if ($rU =~ "6[0-9]*") rewritehostport("200.26.33.87:5060"); route(1); exit; <--- ESTE EXIT VA LUEGO DE CERRAR LA SENTENCIA IF ! } }
Perdona, pero el "route(1)" NO está dentro del "if", y de hecho falta un {. Debería ser:
route[3] { if ($rU =~ "6[0-9]*") { rewritehostport("200.26.33.87:5060"); route(1); exit; <--- ESTE EXIT VA LUEGO DE CERRAR LA SENTENCIA IF ! } }
El Miércoles, 28 de Enero de 2009 15:00, Iñaki Baz Castillo escribió:
El día 28 de enero de 2009 15:52, sadzas sadzas@gmail.com escribió:
Gracias a los dos! el error ademas de lo que marcaron era:
route[3] { if ($rU =~ "6[0-9]*") rewritehostport("200.26.33.87:5060"); route(1); exit; <--- ESTE EXIT VA LUEGO DE CERRAR LA SENTENCIA IF ! } }
Perdona, pero el "route(1)" NO está dentro del "if", y de hecho falta un {. Debería ser:
route[3] { if ($rU =~ "6[0-9]*") { rewritehostport("200.26.33.87:5060"); route(1); exit; <--- ESTE EXIT VA LUEGO DE CERRAR LA SENTENCIA IF ! } }
A parte de que es inútil poner ese exit ahí, aunque recomendable por coger buenas costumbres, pero ¿para que lo querías añadir, si después de ese if no tienes nada mas en el route[3]? va a terminar saliendo del bloque, si o sí
mmmm, entonces debe ser ese el error que me da ahora, ya que desde que cambie eso...
de:
route[3] { if ($rU =~ "6[0-9]*") { rewritehostport("200.26.33.87:5060"); route(1); exit; } }
a esto:
route[3] { if ($rU =~ "6[0-9]*") { rewritehostport("200.26.33.87:5060"); route(1); } exit; }
Comenzo a enviar los paquetes al Asterisk. Antes no. Creo que el exit ahora esta correcto y debe existir algun otro problema ya que Asterisk me responde que no existe el numero discado. Obviamente ustedes saben mas que yo de esto, asi que si esto lo hizo funcionar, debe ser la causa del problema siguiente que comente.
Iñaki Baz Castillo wrote:
El día 28 de enero de 2009 15:52, sadzas sadzas@gmail.com escribió:
Gracias a los dos! el error ademas de lo que marcaron era:
route[3] { if ($rU =~ "6[0-9]*") rewritehostport("200.26.33.87:5060"); route(1); exit; <--- ESTE EXIT VA LUEGO DE CERRAR LA SENTENCIA IF ! } }
Perdona, pero el "route(1)" NO está dentro del "if", y de hecho falta un {. Debería ser:
route[3] { if ($rU =~ "6[0-9]*") { rewritehostport("200.26.33.87:5060"); route(1); exit; <--- ESTE EXIT VA LUEGO DE CERRAR LA SENTENCIA IF ! } }
-- Iñaki Baz Castillo ibc@aliax.net
Users-es mailing list Users-es@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users-es
El día 28 de enero de 2009 16:13, sadzas sadzas@gmail.com escribió:
debe existir algun otro problema ya que Asterisk me responde que no existe el numero discado.
Eso ya es tema Asterisk, no Kamailio.
Es muy fácil averiguar porqué Asterisk responde "not found" a un cierto número. Haz un poco de debugging y verbose, averigua porqué contexto está entrando el INVITE, usa "CLI> dialplan show numero@contexto", asegúrate de que d¡cho contexto entrante incluya al número marcado, etc...
sr-users-es@lists.kamailio.org