any ideas ?
Omar
On Tue, 2009-02-17 at 23:12 -0500, Ferdinandm wrote:
Here is it Basic config for Kamailio 1.4.3
####### Global Parameters #########
debug=9 # change this to 3
log_stderror=yes
fork=yes
children=4
listen=udp:x.x.x.x:5060
####### Modules Section ########
#set module path
mpath="/opt/openser/lib64/kamailio/modules/"
loadmodule "db_mysql.so"
loadmodule "sl.so"
loadmodule "tm.so"
loadmodule "rr.so"
loadmodule "maxfwd.so"
loadmodule "textops.so"
loadmodule "mi_fifo.so"
#loadmodule "uri_db.so"
loadmodule "uri.so"
loadmodule "xlog.so"
loadmodule "carrierroute.so"
# ----------------- setting module-specific parameters ---------------
# ----- mi_fifo params -----
modparam("mi_fifo", "fifo_name", "/tmp/kamailio_fifo")
# ----- carrierroute params -----
modparam("carrierroute", "db_url",
"mysql://help:help@localhost/sip")
modparam("carrierroute", "config_source", "db")
####### Routing Logic ########
# main request routing logic
route{
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
};
if (has_totag()) {
# sequential request withing a dialog should
# take the path determined by record-routing
if (loose_route()) {
# if (is_method("BYE")) {
# with or without BYE i have the same result
# if (t_check_trans())
# t_relay();
# }
route(10);
} else {
if ( is_method("ACK") ) {
if ( t_check_trans() ) {
# non loose-route, but stateful
ACK; must be an ACK after a 487 or e.g. 404 from upstream server
t_relay();
exit;
} else {
# ACK without matching
transaction ... ignore and discard.\n");
xlog("L_WARN", "[$mi] discarding
ACK\n");
exit;
}
}
sl_send_reply("404","Not here");
}
exit;
}
#initial requests
# CANCEL processing
if (is_method("CANCEL")) {
if (t_check_trans())
t_relay();
exit;
}
t_check_trans();
# record routing
if (!is_method("REGISTER|MESSAGE"))
record_route();
if (!uri==myself) {
append_hf("P-hint: outbound\r\n");
route(10);
exit;
}
# requests for my domain
if ($rU==NULL) {
# request with no Username in RURI
sl_send_reply("484","Address Incomplete");
exit;
}
if (is_method("INVITE")) {
if (cr_route("default", "3", "$rU",
"$rU", "call_id")) {
t_on_failure("1");
route(10);
exit;
}
exit;
}
}
route[10] {
cr_user_carrier("$fU", "$fd", "$avp(s:carrier)");
$avp(s:domain)="3";
if (!cr_route("$avp(s:carrier)", "$avp(s:domain)",
"$rU",
"$rU", "call_id")) {
xlog("L_ERR", "cr_route failed\n");
exit;
}
# if you store also the port as part of the rewrite host,
# otherwise you can just use $rd later
$avp(s:host)= $rd;
t_on_failure("1");
# xlog("method: $rm");
if (!t_relay()) {
sl_reply_error();
}
}
#onreply_route[2] {
# xlog("incoming reply\n");
#}
failure_route[1] {
revert_uri();
if (!cr_next_domain("$avp(s:carrier)", "$avp(s:domain)",
"$rU",
"$avp(s:host)", "$T_reply_code", "$avp(s:domain)")) {
xlog("L_ERR", "cr_next_domain failed\n");
exit;
}
if (!cr_route("$avp(s:carrier)", "$avp(s:domain)",
"$rU", "$rU",
"call_id")) {
xlog("L_ERR", "cr_route failed\n");
exit;
}
# $avp(s:host)= $rd+":"+$rp;
$avp(s:host)= $rd;
t_on_failure("1");
append_branch();
if (!t_relay()) {
xlog("L_ERR", "t_relay failed\n");
exit;
}
}
i am running solaris 10, 64 bits, then i really don't know if i should
not try in this platform.
I somebody has a Working config as an example will be great.
but i still dont have the BYE, is not leaving the server, when i sniff
the network.
the kamailio debug shows at least 4 times something like this :
bash-3.00# Feb 17 22:32:11 [15673] DBG:tm:utimer_routine: timer
routine:7,tl=fffffffef0293738 next=0, timeout=44300000
Feb 17 22:32:11 [15673] DBG:tm:retransmission_handler:
retransmission_handler : request resending (t=fffffffef0293518, BYE
sip:4 ... )
Feb 17 22:32:11 [15673] DBG:tm:set_timer: relative timeout is 4000000
Feb 17 22:32:11 [15673] DBG:tm:insert_timer_unsafe: [7]:
fffffffef0293738 (48300000)
Feb 17 22:32:11 [15673] DBG:tm:retransmission_handler:
retransmission_handler : done
bash-3.00# Feb 17 22:32:16 [15673] DBG:tm:utimer_routine: timer
routine:7,tl=fffffffef0293738 next=0, timeout=48300000
Feb 17 22:32:16 [15673] DBG:tm:retransmission_handler:
retransmission_handler : request resending (t=fffffffef0293518, BYE
sip:4 ... )
Feb 17 22:32:16 [15673] DBG:tm:set_timer: relative timeout is 4000000
Feb 17 22:32:16 [15673] DBG:tm:insert_timer_unsafe: [7]:
fffffffef0293738 (52300000)
Feb 17 22:32:16 [15673] DBG:tm:retransmission_handler:
retransmission_handler : done
thanks
F
On Tue, 2009-02-17 at 18:48 +0100, Henning Westerholt wrote:
> On Tuesday 17 February 2009, Omar wrote:
> > i did
> >
> > there is no bye leaving from the kamailio at all
> >
> > the config is i stated before but now without the exit in the BYE
> > condition.
> >
> > kamailio saves the bye when the bye comes from the B side, yes
> > but it does not send anything back to the Originator GW, as it should.
> > i made the captures and nothing. Kamailio receives and process the bye
> > for CDR, but it does not send the BYE to the originator. i captured in
> > the port 5060 and nothing comes.
> >
> > it is maybe a bug.?
>
> Hi Omar,
>
> it could be a bug, a misconfiguration, or a user agent which does not act
> according the standard. Does the BYE reach your forwarding/ t_relay statement
> in your config, you can check with xlog as well. This gives you the method of
> the SIP message you actually proceed in the config, just add this before the
> forwarding statement.
>
> xlog("method: $rm");
>
> Cheers,
>
> Henning