Hi Razvan

i was on trip... so sorry for my late response.

I tried with match_dialog() but then I got loop.

59.878504 SBC_2 -> SBC_1 SIP 524 Request: PRACK sip:381114220000@SBC_1:5060;transport=udp | 59.878742 SBC_1 -> SBC_1 SIP 530 Request: PRACK sip:SBC_1;lr;ftag=1875648965;did=b4a.460f9d7 | 59.878959 SBC_1 -> SBC_1 SIP 596 Request: PRACK sip:SBC_1;lr;ftag=1875648965;did=b4a.460f9d7 | 59.879128 SBC_1 -> SBC_1 SIP 662 Request: PRACK sip:SBC_1;lr;ftag=1875648965;did=b4a.460f9d7 | 59.879299 SBC_1 -> SBC_1 SIP 728 Request: PRACK sip:SBC_1;lr;ftag=1875648965;did=b4a.460f9d7 | 59.879892 SBC_1 -> SBC_1 SIP 794 Request: PRACK sip:SBC_1;lr;ftag=1875648965;did=b4a.460f9d7 | 59.880214 SBC_1 -> SBC_1 SIP 860 Request: PRACK sip:SBC_1;lr;ftag=1875648965;did=b4a.460f9d7 | 59.880417 SBC_1 -> SBC_1 SIP 926 Request: PRACK sip:SBC_1;lr;ftag=1875648965;did=b4a.460f9d7 | 59.880945 SBC_1 -> SBC_1 SIP 992 Request: PRACK sip:SBC_1;lr;ftag=1875648965;did=b4a.460f9d7 |

Yes in my script I have:  listen=udp:SBC_1:5060

Do you have any other recommendation what I should try?


tnx
miha
On 07/09/2016 10:12, Răzvan Crainea wrote:
Hi, Miha!

It looks like loose_route() fails - did you try to look into the logs and see if it indicates something? Is the SBC_1 IP advertised in the Route header a listener of OpenSIPS?

Also, if loose_route() fails, you should still try to match the PRACK against the dialog. So your scripting logic should look like this:

if (has_totag()) {
    if (loose_route() || match_dialog()) {
        ...
    }
}

Let us know how that goes.

Best regards,
Răzvan Crainea
OpenSIPS Solutions
www.opensips-solutions.com
On 09/07/2016 10:38 AM, Miha wrote:
Hi

i have one issue and do not know how to solve it...

Initial invite:

U SBC_2:5060 -> SBC_1:5060 INVITE sip:777774220000@SBC_1:5060;user=phone SIP/2.0. Via: SIP/2.0/UDP SBC_2:5060;branch=z9hG4bK57fa.67ccbb16.0. From: <sip:8888818100100@PBX;user=phone>;tag=*1875283502*. To: <sip:777774220000@SBC_2;user=phone>. Call-ID: *fb9e258ae909d311a85a0090332e03ed@PBX.* CSeq: 1193456 INVITE. Contact: <sip:SBC_2;did=8d9.43418513>. Alert-Info: <urn:alert:source:internal>. Allow: REGISTER,SUBSCRIBE,NOTIFY,INVITE,ACK,P Seq....U PBX:5060 -> SBC_2:5060 PRACK sip:SBC_2;did=8d9.43418513 SIP/2.0. Via: SIP/2.0/UDP PBX:5060;branch=z9hG4bK-002AF6E3;rport. From: <sip:8888818100100@PBX;user=phone>;tag=*1875283502*. To: <sip:777774220000@SBC_2;user=phone>;tag=*FamBBcayZeKgF*. Call-ID:*fb9e258ae909d311a85a0090332e03ed@PBX.* CSeq: 1193457 PRACK. Content-Length: 0. Max-Forwards: 70. RAck: 1601153264 1193456 INVITE. . Seq.... U SBC_2:5060 -> SBC_1:5060 PRACK sip:777774220000@SBC_1:5060;transport=udp SIP/2.0. Route: <sip:SBC_1;lr;ftag=1875283502;did=8d9.e2509d35>. Via: SIP/2.0/UDP SBC_2:5060;branch=z9hG4bK67fa.e6a41de2.0. From: <sip:8888818100100@PBX;user=phone>;tag=*1875283502*. To: <sip:777774220000@SBC_2;user=phone>;tag=*FamBBcayZeKgF*. Call-ID: *fb9e258ae909d311a85a0090332e03ed@PBX.* CSeq: 1193457 PRACK. Content-Length: 0. Max-Forwards: 69. RAck: 1601153264 1193456 INVITE.

Seq....
U SBC_1:5060 -> SBC_2:5060 SIP/2.0 404 Not here. Via: SIP/2.0/UDP SBC_2:5060;branch=z9hG4bK67fa.e6a41de2.0. From: <sip:8888818100100@PBX;user=phone>;tag=1875283502. To: <sip:777774220000@SBC_2;user=phone>;tag=FamBBcayZeKgF. Call-ID: fb9e258ae909d311a85a0090332e03ed@PBX. CSeq: 1193457 PRACK. Server: OpenSIPS (2.1.1 (x86_64/linux)). Content-Length: 0.

Why I am getting 404 from Opensips. is should be routed like seq request, right?





if (has_totag()) { # sequential requests within a dialog should # take the path determined by record-routing if (loose_route()) { xlog("loose_route"); #if ($DLG_status!=NULL) xlog("dlg_status"); if (!validate_dialog()){ fix_route_dialog(); xlog("fix_route_dialog"); } if (is_method("BYE")) { setflag(1); # do accounting ... #setflag(ACC_FAILED); # ... even if the transaction fails } else if (is_method("INVITE")) { # even if in most of the cases is useless, do RR for # re-INVITEs alos, as some buggy clients do change route set # during the dialog. record_route(); xlog("check_fraud"); } # route it out to whatever destination was set by loose_route() # in $du (destination URI). route(relay); } 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 exit; } } sl_send_reply("404","Not here"); } exit; tnx miha

_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users



_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to