Try to register user in Kamailio and then relay REG massage to Asterisk. Asterisk register user and looks good.
But when I send Unreg message to Kamailio, it unregister user successfully but Asterisk say: Message REGISTER Ignoring because retransmit (CSeq 1234 our CSeq 1234).
Did someone know how solve this problem: i think that Asterisk need different CSeq for first REGISTER and Second after 401 code.
if (!save("location")) {
sl_reply_error();
} else {
reg_fetch_contacts("location", "$tu", "cc");
$var(useragent) = $ulc(cc=>user_agent);
xlog("L_INFO","EXpires in Contact: $ulc(cc=>expires)");
if ($ulc(cc=>expires)==0) {
$var(query) = "insert into activity values (now(),'unr','"+$ci+"','"+$fu+"');";
sql_query("events", "$var(query)");
$var(string_temp) = "$(hdr(expires))";
xlog("L_INFO", "UNregistered $ru FROM $fu exp $var(string_temp)");
} else {
if ($var(registered)==0) {
$var(query) = "insert into activity values (now(),'reg','"+$ci+"','"+$fu+"');";
sql_query("events", "$var(query)");
}
xlog("L_INFO", "Registered $ru FROM $fu exp $ulc(cc=>expires)");
}
}
xlog("L_INFO","DU(TD): $td");
exit;
}
}
route[TOASTERISK] {
xlog("L_INFO","ROUTE to ASTERISK from $ru to $tu");
#append_branch();
t_on_failure("FAILAUTH");
$ru = "sip:"+ $td;
consume_credentials();
route(RELAY);
exit;
}
failure_route[FAILAUTH] {
if (t_is_canceled()) {
exit;
}
if (t_check_status("(401)|(407)")) {
xlog("L_INFO", "Remote asked for authentication");
$avp(realm)="";
uac_auth();
}
route(RELAY);
}