Hi again,

I found a solution based loadbalance approach but I'm not sure whether it might cause an issue for other things. Because ACK and BYE are not in a different transaction, I put this at route[RELAY] as following;

if (is_method("ACK")) {
                $duri= $ruri;
                t_relay();
                exit;
        }

My kamailio's aim is to dispatch calls to Asterisks that located in a farm and relay calls come from Asterisk to Outside.

Is it fine?

Get Outlook for Android

From: sr-users <sr-users-bounces@lists.kamailio.org> on behalf of egemen ulus <ulus_egemen@hotmail.com>
Sent: Sunday, March 29, 2020 2:23:43 PM
To: Kamailio (SER) - Users Mailing List <sr-users@lists.kamailio.org>
Subject: Re: [SR-Users] Transaction Matching Failed - ACK BYE
 
Hi 

You're definitely right, but they must be in the same  Dialog,  but my case it doesn't recognize it as it is in any current dialog. 

Get Outlook for Android


From: sr-users <sr-users-bounces@lists.kamailio.org> on behalf of Alex Balashov <abalashov@evaristesys.com>
Sent: Saturday, March 28, 2020, 11:24 PM
To: Kamailio (SER) - Users Mailing List
Subject: Re: [SR-Users] Transaction Matching Failed - ACK BYE

Hi,

End-to-end ACKs (to confirm 2xx reply to INVITE transaction) and BYEs
are all separate transactions in their own right; they share a common
dialog with the initial INVITE request, but not a transaction. Why do
you expect them to match a known transaction?

-- Alex

On Sat, Mar 28, 2020 at 08:14:05PM +0000, egemen ulus 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:0553847<tel:+10553847>aaaa@asterisk_ip>;tag=as3dde7cdb
> To: <sip:user@outside_ip>
> Contact: <sip:0553847<tel:+10553847>aaaa@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:0553847<tel:+10553847>aaaa@asterisk_ip>;tag=as3dde7cdb
> To: <sip:user@outside_ip>
> Contact: <sip:0553847<tel:+10553847>aaaa@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:0553847<tel:+10553847>aaaa@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:0553847<tel:+10553847>aaaa@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:0553847<tel:+10553847>aaaa@asterisk_ip>;tag=as3dde7cdb
> To: <sip:user@outside_ip>;tag=kv8iml6ur9
> Contact: <sip:0553847<tel:+10553847>aaaa@asterisk_ip:5060>
> Call-ID: 62a480bf71d2a1aa0ec94b454cd98945@asterisk_ip:5060
> CSeq: 102 ACK
> User-Agent: Asterisk PBX 1.8.32.3
>
>
>
> Get Outlook for Android<https://aka.ms/ghei36>

> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users@lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users


--
Alex Balashov | Principal | Evariste Systems LLC

Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free)
Web: http://www.evaristesys.com/, http://www.csrpswitch.com/

_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users