Hi All,

I'm trying to establish a topology with Kamailio which is located between Asterisk and Outside.

My issue is "transaction matching failed" (t_check_trans failed). That means Kamailio does not recognise ACK & BYE message to forwards. I had a check on email list and google but found nothing.
I'm using it with record_route.

SIP signalling and part of kamailio.cfg is below. Is there any suggestion?



route[WITHINDLG] {
if (!has_totag()) return;
if (loose_route()) {
route(DLGURI);
if (is_method("BYE")) {
setflag(FLT_ACC); # do accounting ...
setflag(FLT_ACCFAILED); # ... even if the transaction fails
}
else if ( is_method("ACK") ) {
xlog("ack is came: $si:$sp\n");
route(NATMANAGE);
}
else if ( is_method("NOTIFY") ) {
record_route();
}
route(RELAY);
exit;
}
if (is_method("SUBSCRIBE") && uri == myself) {
route(PRESENCE);
exit;
}
if ( is_method("ACK") ) {
if ( t_check_trans() ) {
route(RELAY);
exit;
} else {
exit;
}
}
sl_send_reply("404","Not here");
exit;
}

route[NATMANAGE] {
#!ifdef WITH_NAT
if (is_request()) {
if(has_totag()) {
if(check_route_param("nat=yes")) {
setbflag(FLB_NATB);
}
}
}

route(RTPPROXY);

if (!(isflagset(FLT_NATS) || isbflagset(FLB_NATB)))
return;
if (is_request()) {
if (!has_totag()) {
if(t_is_branch_route()) {
add_rr_param(";nat=yes");
}
}
}
if (is_reply()) {
if(isbflagset(FLB_NATB)) {
if(is_first_hop())
set_contact_alias();
}
}
#!endif
return;
}





Asterisk > Kamailio

INVITE sip:user@outside_ip SIP/2.0
Via: SIP/2.0/UDP asterisk_ip:5060;branch=z9hG4bK1b56cce0
Max-Forwards: 70
From: "KUYRUK" <sip:0553847aaaa@asterisk_ip>;tag=as3dde7cdb
To: <sip:user@outside_ip>
Contact: <sip:0553847aaaa@asterisk_ip:5060>
Call-ID: 62a480bf71d2a1aa0ec94b454cd98945@asterisk_ip:5060
CSeq: 102 INVITE
User-Agent: Asterisk PBX 1.8.32.3


Kamailio > Outside

INVITE sip:user@outside_ip SIP/2.0
Record-Route: <sip:kamailio_ip;lr;nat=yes>
Via: SIP/2.0/UDP kamailio_ip;branch=z9hG4bK7b3f.8e4716eeea4b0dc45cc51d21b5aded57.0
Via: SIP/2.0/UDP asterisk_ip:5060;rport=5060;branch=z9hG4bK1b56cce0
From: "KUYRUK" <sip:0553847aaaa@asterisk_ip>;tag=as3dde7cdb
To: <sip:user@outside_ip>
Contact: <sip:0553847aaaa@asterisk_ip:5060;alias=asterisk_ip~5060~1>
Call-ID: 62a480bf71d2a1aa0ec94b454cd98945@asterisk_ip:5060
CSeq: 102 INVITE
User-Agent: Asterisk PBX 1.8.32.3


Outside > Kamailio

SIP/2.0 200 OK
Via: SIP/2.0/UDP kamailio_ip;branch=z9hG4bK7b3f.8e4716eeea4b0dc45cc51d21b5aded57.0
Via: SIP/2.0/UDP asterisk_ip:5060;rport=5060;branch=z9hG4bK1b56cce0
From: "KUYRUK" <sip:0553847aaaa@asterisk_ip>;tag=as3dde7cdb
To: <sip:user@outside_ip>;tag=kv8iml6ur9
Call-ID: 62a480bf71d2a1aa0ec94b454cd98945@asterisk_ip:5060
CSeq: 102 INVITE
Record-Route: <sip:kamailio_ip;lr;nat=yes>
Contact: <sip:user@outside_ip:5060;alias=x.x.x.x~18005~6;transport=udp>


Kamailio > Asterisk

SIP/2.0 200 OK
Via: SIP/2.0/UDP asterisk_ip:5060;rport=5060;branch=z9hG4bK1b56cce0
From: "KUYRUK" <sip:0553847aaaa@asterisk_ip>;tag=as3dde7cdb
To: <sip:user@outside_ip>;tag=kv8iml6ur9
Call-ID: 62a480bf71d2a1aa0ec94b454cd98945@asterisk_ip:5060
CSeq: 102 INVITE
Record-Route: <sip:kamailio_ip;lr;nat=yes>
Contact: <sip:user@outside_ip:5060;alias=x.x.x.x~18005~6;transport=udp>


Asterisk > Kamailio THIS ACK IS NOT ROUTED TO OUTSIDE BY KAMAILIO!!

ACK sip:user@outside_ip:5060;alias=x.x.x.x~18005~6;transport=udp SIP/2.0
Via: SIP/2.0/UDP asterisk_ip:5060;branch=z9hG4bK73366924
Route: <sip:kamailio_ip;lr;nat=yes>
From: "KUYRUK" <sip:0553847aaaa@asterisk_ip>;tag=as3dde7cdb
To: <sip:user@outside_ip>;tag=kv8iml6ur9
Contact: <sip:0553847aaaa@asterisk_ip:5060>
Call-ID: 62a480bf71d2a1aa0ec94b454cd98945@asterisk_ip:5060
CSeq: 102 ACK
User-Agent: Asterisk PBX 1.8.32.3

Get Outlook for Android