I’m using SER to shuttle calls between
softswitches. I have “softswitch A” sending calls to the SER
proxy, which then does an enum lookup to make a routing decision and then
passes the call on to the appropriate softswitch. I have been having some
strange problems with the setup and some questions about my config. I sometimes
get:
Nov 10 21:14:01 cpser ser[22087]: 483 Too many Hops
Nov 10 21:14:01 cpser ser[22087]: Warning: sl_send_reply: I
won't send a reply for ACK!!
This mostly happens after I do a serctl restart to reload my
config. I assume that is because ACKs are coming in that the stateful
transaction processor doesn’t know where to forward them to since I
restarted? There’s no other way to reload a config other than a
full restart, correct?
Also I see a lot of “408 Request Timeout” from
far end gateways. Is there something wrong with my config?
Here is my config:
modparam("acc","radius_flag",1)
modparam("acc","failed_transactions",0)
modparam("tm", "fr_inv_timer", 5 )
route{
if (
!mf_process_maxfwd_header("10") )
{
xlog("L_ERR","483 Too many Hops");
sl_send_reply("483","Too Many Hops");
drop();
};
if (msg:len
>= 2048 ) {
xlog("L_ERR","513 Message too Big");
sl_send_reply("513", "Message too big");
break;
};
setflag(1);
if
(loose_route())
{
t_relay();
break;
};
if (method
=="BYE")
{
if ( !t_relay())
{
sl_reply_error();
}
break;
};
if (method
=="CANCEL")
{
if ( !t_relay())
{
sl_reply_error();
}
break;
};
if (method
=="ACK")
{
if ( !t_relay())
{
sl_reply_error();
}
break;
};
if (method
=="INVITE")
{
record_route();
if (uri=~"^sip:[2-9]+@*")
{
prefix("+");
if ( !enum_query("e164.internal.net"))
{
strip(1);
prefix("1");
rewritehost("192.168.10.5");
xlog("L_ERR","NANPA number to %tu from %fu carrier %ru\n");
t_on_failure("1");
t_relay();
break;
}
xlog("L_ERR","NANPA-ENUM number to %tu from %fu carrier
%ru\n");
t_on_failure("1");
t_relay();
};
# end if block method =
invite
}
}
failure_route[1]
{
if(t_check_status("501|502|503|504|505|513"))
{
setflag(1);
revert_uri();
rewritehost("192.168.50.3");
append_branch();
xlog("L_ERR","FAIL-5XX number to %tu from %fu carrier
%ru\n");
t_relay();
}
}