[OpenSER-Users-ES] Problema con t_replicate()

Jesus Rodriguez jesusr at voztele.com
Tue Jan 15 21:48:09 CET 2008


Hola Raúl,


> Para ponernos en situación, tengo 2 Openser 1.3.0 a los que los
> usuarios atacan por DSN round-robin ó registros SRV, hasta aquí todo
> ok.
>
> Ahora ... tengo esto puesto en guión del openser para la
> autenticación:
>
> ########################################################################
> # Request route 'base-route-register'
> #  
> ########################################################################
> route[11]
> {
>        sl_send_reply("100", "Trying");
>        if(!www_authorize("", "subscriber"))
>        {
>
>                xlog("L_INFO", "Register authentication failed - M=$rm
> RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
>                www_challenge("", "0");
>                exit;
>        }
>        if(!check_to())
>        {
>
>                xlog("L_INFO", "Spoofed To-URI detected - M=$rm
> RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
>                sl_send_reply("403", "Spoofed To-URI Detected");
>                exit;
>        }
>        consume_credentials();
>        if(!search("^Contact:[ ]*\*") && nat_uac_test("19"))
>        {
>                fix_nated_register();
>                setbflag(6);
>        }
>        if(!save("location"))
>        {
>
>                xlog("L_ERR", "Saving contact failed - M=$rm RURI=$ru
> F=$fu T=$tu IP=$si ID=$ci\n");
>                sl_reply_error();
>                exit;
>        }
>
>        if(!src_ip==sbc02)
>        {
>                t_replicate("sip:sbc02","5060");
>        };
>
>        xlog("L_INFO", "Registration successful - M=$rm RURI=$ru F=$fu
> T=$tu IP=$si ID=$ci\n");
>        exit;
> }
>
> **********
>
> ¿Es correcto el formato de la llamada a t_replicate()?, lo pregunto
> porque según la documentación ese "sip:" sobra .. pero sino lo pongo
> el openser se queja en el log de que no puede parsear la uri.


Los parámetros que le pasas a t_replicate() son incorrectos. El puerto  
va junto a la ip. El "5060" lo interpreta como flags. El formato  
correcto es:

t_replicate("sip:sbc02:5060")

http://www.openser.org/docs/modules/1.3.x/tm.html#TREPLICATE



> Luego a parte está el tema de que si hago un openserctl ul show  .. no
> veo que se hayan replicado los registers en ambos servidores.


Si haces un ngrep, ¿ves si los REGISTER van de un proxy a otro?.


> Agradecería cualquier indicación al respecto del uso de t_replicate()
> puesto que la información disponible en la web de openser es harto
> inútil sobre esta función.


Funcionar, funciona, te lo aseguro :)

P.D. En el servidor replicado, si usa la misma base de datos que el  
replicante, cuidado con como usas el save() ...


Saludos
JesusR.

------------------------------------
Jesus Rodriguez
VozTelecom Sistemas, S.L.
jesusr at voztele.com
http://www.voztele.com
Tel. 902360305
-------------------------------------








More information about the Users-es mailing list