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@voztele.com http://www.voztele.com Tel. 902360305 -------------------------------------