[SR-Users] dispatcher - ds_mark_dst("i"); is inactive only few seconds

Thomas Baumann tommy.baumann at web.de
Wed Feb 2 17:51:11 CET 2011


Dear sr-users,

I use this straight forward dispatcher config.  In the failure route I am calling this function: ds_mark_dst("i");

Also this action is logged:

Feb 2 17:20:31 node5 /openser/sbin/kamailio[15945]: INFO: : FAIL_ONE:time [Wed Feb 2 17:20:31 2011] destination sip:10.12.19.31:5060 marked as inactive

The gateway is inactive:

[root at node5 ~]# kamctl 'fifo' ds_list
URI:: sip:10.12.19.31:5060 flag=I priority=0 attrs=test1=123;test2=456
URI:: sip:10.12.19.21:5060 flag=A priority=0 attrs=test1=123;test2=456

Few seconds later the gateway is active again (there is still now response to SIP-OPTIONS)
[root at node5 ~]# kamctl 'fifo' ds_list
URI:: sip:10.12.19.31:5060 flag=A priority=0 attrs=test1=123;test2=456
URI:: sip:10.12.19.21:5060 flag=A priority=0 attrs=test1=123;test2=456

Does anybody have a idea why ?

regards,

Thomas

 

DB:

mysql> select * from dispatcher
-> ;
+----+-------+----------------------+-------+----------+---------------------+-------------+
| id | setid | destination | flags | priority | attrs | description |
+----+-------+----------------------+-------+----------+---------------------+-------------+
| 1 | 1 | sip:10.12.19.21:5060 | 0 | 0 | test1=123;test2=456 | AS 1 |
| 2 | 1 | sip:10.12.19.31:5060 | 0 | 0 | test1=123;test2=456 | AS 2 |
+----+-------+----------------------+-------+----------+---------------------+-------------+

CONFIG:

#!KAMAILIO

####### Defined Values #########
#!define WITH_MYSQL
#!define WITH_IPAUTH
# *** Value defines - IDs used later in config
#!ifdef WITH_MYSQL
# - database URL - used to connect to database server by modules such
# as: auth_db, acc, usrloc, a.s.o.
#!define DBURL "mysql://openser:openserrw@10.12.18.51/openser"
#!endif

debug=2
log_stderror=no

memdbg=5
memlog=5

log_facility=LOG_LOCAL0

fork=yes
children=4

/* uncomment the next line to disable TCP (default on) */
#disable_tcp=yes

/* uncomment the next line to disable the auto discovery of local aliases
based on reverse DNS on IPs (default on) */
auto_aliases=no

/* add local domain aliases */
alias="m-lab-ca805-sig.kd-lab.de:5060"
alias="m-lab-ca805-sig.kd-lab.de"
alias="10.12.19.51"

/* uncomment and configure the following line if you want Kamailio to
bind on a specific interface/port/proto (default bind on all available) */
listen=udp:10.12.19.51:5060
listen=tcp:10.12.19.51:5060

/* port to listen to
* - can be specified more than once if needed to listen on many ports */
port=5060

####### Modules Section ########

# set paths to location of modules
mpath="/usr/local/kamailio-3.1/lib/kamailio/modules_k/:/usr/local/kamailio-3.1/lib/kamailio/modules/"

# ------------------ module loading ----------------------------------

loadmodule "mi_fifo.so"
loadmodule "kex.so"
loadmodule "tm.so"
loadmodule "tmx.so"
loadmodule "sl.so"
loadmodule "rr.so"
loadmodule "pv.so"
loadmodule "maxfwd.so"
loadmodule "textops.so"
loadmodule "siputils.so"
loadmodule "xlog.so"
loadmodule "sanity.so"
loadmodule "ctl.so"
loadmodule "mi_rpc.so"
loadmodule "acc.so"
loadmodule "dialplan.so"
loadmodule "avpops.so"
loadmodule "dispatcher.so"


#!ifdef WITH_IPAUTH
loadmodule "permissions.so"
#!endif
#!ifdef WITH_MYSQL
loadmodule "db_mysql.so"
#!endif

# ----------------- setting module-specific parameters ---------------

# ----- tm params -----
# auto-discard branches from previous serial forking leg
modparam("tm", "failure_reply_mode", 3)
# default retransmission timeout: 30sec
modparam("tm", "fr_timer", 30000)
# default invite retransmission timeout after 1xx: 120sec
modparam("tm", "fr_inv_timer", 120000)

# ----- dispatcher params -----
#modparam("dispatcher", "list_file", "/openser/etc/kamailio/dispatcher.list")
modparam("dispatcher", "db_url", DBURL)
modparam("dispatcher", "table_name", "dispatcher")
modparam("dispatcher", "ds_ping_interval", 30)
modparam("dispatcher", "ds_probing_threshhold", 10)
modparam("dispatcher", "ds_ping_reply_codes", "class=2;class=4")
modparam("dispatcher", "ds_probing_mode", 1)
modparam("dispatcher", "ds_ping_from", "sip:lb1 at m-lab-ca805-sig.kd-lab.de")
modparam("dispatcher", "flags", 2)
modparam("dispatcher", "dst_avp", "$avp(dsdst)")
modparam("dispatcher", "grp_avp", "$avp(dsgrp)")
modparam("dispatcher", "cnt_avp", "$avp(dscnt)")
modparam("dispatcher", "attrs_avp", "$avp(dsattrs)")


# ----- mi_fifo params -----
modparam("mi_fifo", "fifo_name", "/tmp/kamailio_fifo")

# ----- permissions params -----
#!ifdef WITH_IPAUTH
modparam("permissions", "db_url", DBURL)
modparam("permissions", "db_mode", 1)
#!endif

route{

if ( !mf_process_maxfwd_header("10") )
{
sl_send_reply("483","To Many Hops");
drop();
};

#!ifdef WITH_IPAUTH
if (!allow_source_address())
{
sl_send_reply("403", "Forbidden");
exit;
}
#!endif

# Send to application servers for number evaluation

if ($rU=~"^0[1-9][0-9]{5,20}$") {
ds_select_dst("1","0");
if (method=="INVITE") {
t_on_failure("FAIL_ONE");
}
t_relay();
exit();
}
sl_send_reply("403", "Forbidden");
exit;
}

# Sample failure route
failure_route[FAIL_ONE] {

if (t_check_status("408")) {
xlog("L_INFO", "FAIL_ONE:time [$Tf] destination $avp(dsdst) marked as inactive \n");
ds_mark_dst("i");
}

exit;

}

 
___________________________________________________________
NEU: FreePhone - kostenlos mobil telefonieren und surfen!				
Jetzt informieren: http://produkte.web.de/go/webdefreephone



More information about the sr-users mailing list