Hello !
I'm using openser1.2.0 as a sip front-end to two asterisk servers. I
need Load Balancing and Failover, so I'm using the dispatcher module.
I have a problem when I make a t_relay() since I have upgraded openser
from 1.1.1 to 1.2.0 (my openser.cfg was working in 1.1.1 version)
Here are the modules and parameters I used :
debug=5
fork=yes
log_stderror=no
log_facility=LOG_LOCAL6
children=4
#check_via=no
dns=off
rev_dns=off
# ------------------ module loading
----------------------------------
loadmodule
"/usr/local/lib/openser/modules/maxfwd.so"
loadmodule "/usr/local/lib/openser/modules/sl.so"
loadmodule
"/usr/local/lib/openser/modules/dispatcher.so"
loadmodule "/usr/local/lib/openser/modules/tm.so"
loadmodule
"/usr/local/lib/openser/modules/avpops.so"
loadmodule
"/usr/local/lib/openser/modules/mi_fifo.so"
loadmodule
"/usr/local/lib/openser/modules/textops.so"
loadmodule "/usr/local/lib/openser/modules/xlog.so"
#timer
modparam("tm", "fr_timer", 5)
#dispatcher
modparam("dispatcher", "list_file",
"/usr/local/etc/openser/dispatcher.cfg")
modparam("dispatcher", "flags", 2)
modparam("dispatcher", "dst_avp", "$avp(i:100)")
modparam("dispatcher", "grp_avp", "$avp(i:101)")
modparam("dispatcher", "cnt_avp", "$avp(i:102)")
modparam("dispatcher", "force_dst", 1)
#fifo
modparam("mi_fifo","fifo_name", "/tmp/openser_fifo")
Here is the route for REGISTER method :
route[1] {
ds_select_dst("1", "0");
t_relay();
t_on_failure("1");
}
and my failure route :
failure_route[1] {
if(t_check_status("408"){
ds_mark_dst();
if(ds_next_dst) {
t_relay();
}
else {
t_reply("503", "service not
available");
}
}
}
the fact is the t_relay() has no effect ... (users can't register on
Asterisk)
for example when I make a forward() instead of a t_relay(), it's
working (register works, with load balancing) ! But the t_on_failure("1")
is never used, so I don't have failover ...
Thanks for your help !
--
Jean-Pierre Ramoul
Elève Ingénieur - Intégration VoIP
TEAMLOG Grenoble
Telecom Lille 1
06.19.21.54.77