[OpenSER-Users-ES] llamada asterisk a openser, ruri modificado?

David Villasmil david.villasmil.work at gmail.com
Sat Feb 2 11:50:45 CET 2008


2008/2/1 Iñaki Baz Castillo <ibc at aliax.net>:

> 2008/2/1, David Villasmil <david.villasmil.work at gmail.com>:
> >
> > route{
> >           if (method=="INVITE") {
> >                #    CUSTOMER-CUSTOMER CALL
> >
> >              if($si=="ip1"||$si=="ip2"){
> >                     xlog("L_ERR", "\n************** CUSTOMER-CUSTOMER
> CALL
> > (ASTERISK->OPENSER) ************\n");
> >                     if (uri=~"^sip:8888"){
> >                           strip(4);
> >                     }
> >                     if (!lookup("location")) {
> >                          sl_send_reply("404", "Not Found");
> >                          exit;
> >                      };
> >                }
> >           }
> >
> >   if (!lookup("location")) {
> >    sl_send_reply("404", "Not Found");
> >    exit;
> >   };
>
> Si el INVITE viene de esas IP's estás aplicando **2 veces** el
> lookup(location). La segunda obviamente fallará, pues ya habías
> modificado el URI en la primera.
>
>
>
>
> > ************** CUSTOMER-CUSTOMER CALL (ASTERISK->OPENSER) ************
> >  11(20554) rewrite_uri: Rewriting Request-URI with 'sip:s at 192.168.1.253'
>
> > porqué el username termina siendo "s"????? claro, así nunca lo
> encontrará!
>
> Asterisk por defecto se registra como "s at IP", puedes comprobarlo
> monitorizando el REGISTER que envía Asterisk y mirando la cabecera
> "Contact" (que es la localización que registra). No hay ningún
> problema por ello, ninguno.
> No obstante ,puedes forzar a que registre otro username así:
>
> register => usuario:passwd at dominio/nuevo_username
>
> y registrará ese username en vez de "s".
>
> Pero este NO es tu poblema, el fallo es que aplicas dos veces
> lookup(location).
>


 Iñaki,

Efectivamente, eran dos cosas juntas. Estuve en el IRC de openser, resulta
que el asterisk, como tu bien dices, se registra como s at .... no hay problema
con eso, PERO, como hacía el lookup DOS VECES fallaba al intentar mandar la
llamada al asterisk... Qué tonto soy...

De los errores se aprende.. jeje


ahora tengo la ruta así:
route{
     if (method=="INVITE") {
          #    CUSTOMER-CUSTOMER CALL
         if($si=="ip1"){
               xlog("L_ERR", "\n************** CUSTOMER
               if (uri=~"^sip:8888"){
                    strip(4);
               }
               if (!lookup("location")) {
                    sl_send_reply("404", "Not Found");
                    exit;
               };
               if (!t_relay()) {
                   sl_reply_error();
               };
              exit;
           }
           append_hf("P-hint: usrloc applied\r\n");
        };
   route(1);
}

route[1] {
        if (subst_uri('/(sip:.*);nat=yes/\1/')){
                setbflag(6);
        };
        if (isflagset(5)||isbflagset(6)) {
                route(3);
        }
        if (!t_relay()) {
                sl_reply_error();
        };
        exit;
}

pero claro, eso significa que la llamada nunca pasa por el route(1), cierto?
eso quiere decir que no detecta y arregla el nat? debería ser más bien así?:



route{
     if (method=="INVITE") {
          #    CUSTOMER-CUSTOMER CALL
         if($si=="ip1"){
               xlog("L_ERR", "\n************** CUSTOMER");
               if (uri=~"^sip:8888"){
                    strip(4);
               }
               if (!lookup("location")) {
                    sl_send_reply("404", "Not Found");
                    exit;
               };
               route(1);
           }
           append_hf("P-hint: usrloc applied\r\n");
        };
}
route[1] {
        if (subst_uri('/(sip:.*);nat=yes/\1/')){
                setbflag(6);
        };
        if (isflagset(5)||isbflagset(6)) {
                route(3);
        }
        if (!t_relay()) {
                sl_reply_error();
        };
        exit;
}



Un saludo muy grande.... y ya a estas alturas deberíamos conocernos los más
asíduos a la lista... que ya "hablamos" casi todos los dias! jeje!


David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kamailio.org/pipermail/sr-users-es/attachments/20080202/2304699b/attachment-0002.htm 


More information about the Users-es mailing list