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:0553847tel:+10553847aaaa@asterisk_ip>;tag=as3dde7cdb To: sip:user@outside_ip Contact: <sip:0553847tel:+10553847aaaa@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:0553847tel:+10553847aaaa@asterisk_ip>;tag=as3dde7cdb To: sip:user@outside_ip Contact: <sip:0553847tel:+10553847aaaa@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:0553847tel:+10553847aaaa@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:0553847tel:+10553847aaaa@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:0553847tel:+10553847aaaa@asterisk_ip>;tag=as3dde7cdb To: sip:user@outside_ip;tag=kv8iml6ur9 Contact: <sip:0553847tel:+10553847aaaa@asterisk_ip:5060> Call-ID: 62a480bf71d2a1aa0ec94b454cd98945@asterisk_ip:5060 CSeq: 102 ACK User-Agent: Asterisk PBX 1.8.32.3
Get Outlook for Androidhttps://aka.ms/ghei36
If you didn’t get the answer you wanted on the users list, posting to the dev list is not the socially correct alternative strategy. The dev list is for project development issues. Moreover, you are reposting an identical question, suggesting that you did not consider the answers you have already received on the users list them.
— Sent from mobile, with due apologies for brevity and errors.
On Mar 30, 2020, at 3:27 AM, egemen ulus ulus_egemen@hotmail.com wrote:
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 _______________________________________________ Kamailio (SER) - Development Mailing List sr-dev@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev