Hi,
Thanks David,
I was trying an alternate way as Mr. Daniel presented in ClueCon. Pasting below the snippet from my configuration. Somehow the code is not working. kacmd htable.dump acalls returning empty results. What might be wrong?
modparam("htable", "htable", "acalls=>size=8;autoexpire=7200;")
modparam("cfgutils", "lock_set_size", 8)
request_route {
# per request initial checks
route(REQINIT);
# NAT detection
route(NATDETECT);
# CANCEL processing
if (is_method("CANCEL"))
{
if (t_check_trans())
t_relay();
exit;
}
# handle requests within SIP dialogs
route(WITHINDLG);
### only initial requests (no To tag)
t_check_trans();
# authentication
route(AUTH);
# record routing for dialog forming requests (in case they are routed)
# - remove preloaded route headers
remove_hf("Route");
if (is_method("INVITE|SUBSCRIBE"))
record_route();
# account only INVITEs
if (is_method("INVITE"))
{
setflag(FLT_ACC); # do accounting
}
if(is_method("BYE"))
{
$sht(acalls=>$ci) = $null;
}
# dispatch requests to foreign domains
route(SIPOUT);
### requests for my local domains
# handle presence related requests
route(PRESENCE);
# handle registrations
route(REGISTRAR);
if ($rU==$null)
{
# request with no Username in RURI
sl_send_reply("484","Address Incomplete");
exit;
}
route(ACLIMIT);
# dispatch destinations to LOADBALANCE
#!ifdef WITH_LOADBALANCE
if($rU=~"^([0-9]{10}|1[0-9]{10}|37051[0-9]{10}|3706[0-9]{10})$")
{
route(LOADBALANCE);
}
route(ACLIMIT);
route(RELAY);
#!endif
reply_route {
if(is_method("INVITE") && $rs>=300) {
$sht(acalls=>$ci) = $null;
}
route[ACLIMIT] {
if(is_method("INVITE") && !has_totag()) {
lock("$fU");
$var(ac) = $shtcv(acalls=>eq$fU);
if($var(ac) >= 4) {
unlock("$fU");
send_reply("403", "Too many active calls");
exit;
}
$sht(acalls=>$ci) = $fU;
unlock("$fU");
}
}
#!ifdef WITH_LOADBALANCE
route[LOADBALANCE] {
if(!ds_select_dst("0", "4"))
{
xlog("L_NOTICE", "No destination available!");
send_reply("404", "No destination");
exit;
}
xlog("L_DBG", "--- SCRIPT: going to <$ru> via <$du>\n");
t_set_fr(0,2000);
t_on_failure("RTF_DISPATCH");
route(RELAY);
return;
}
#!endif
##Failure route
failure_route[RTF_DISPATCH] {
if (t_is_canceled()) {
exit;
}
# next DST - only for 500 or local timeout
if (t_check_status("500")
or (t_branch_timeout() and !t_branch_replied()))
{
if(ds_next_dst())
{
t_on_failure("RTF_DISPATCH");
route(RELAY);
exit;
}
}
}
you can achieve that with the dialog module.
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users