Hello Liviu,
I want file report on it. I have wireshark screenshot which shows exact issue.
Initial INVITE lookup is  forked to all registered destinations, but ACK no.

On ACK in dialog applied snippet like this

route[WITHINDLG] {
                 if(has_totag()) {
                     if(topology_hiding_match()) {

           if(is_method("ACK") && $DLG_did!=NULL && $DLG_did!="<null") {
                        xlog("[IN_DIALOG] [$rm] in dialog ACK with dialog ID => [$DLG_did]\n");
                        setflag("FLAG_ACK_IN_DIALOG");
                }
          route(RELAY);
         exit;
       } else {
               ...
    }
}

route[RELAY] {
 
              } else if(isflagset("FLAG_ACK_IN_DIALOG")) {
                        $ru = $tu;
                        route(CONTACT_LOOKUP);
                }
                if(is_method("ACK") && $avp(ua_orig_trns)==NULL) {
                        #  TCP applied
                        $var(src_socket) = "tcp" + ":" + $avp(req_ip) + ":" + "5084";
                }
                $socket_out = $var(src_socket);
        xlog("[RELAY] [$rm] sending call ~> $ru over $socket_out for $ci\n");
        if(!t_relay()) {
                send_reply(500, "Internal Error");
                exit;
        }
        exit;

}

volga629
 

On 3/24/21 1:14 PM, volga629 via Users wrote:
Hello Liviu,
May I send few screen shot of sip flow for this call ?

volga629.

On 3/24/21 8:57 AM, volga629 via Users wrote:
Hello Liviu,
We use topology hiding edge proxy for end point.
Here are example
of contact header

Contact: <sip:112%40domain.com@10.30.100.61:5060>

that call is inbound from PBX  to opensips and opensips forward to end point.


                if(is_method("INVITE|UPDATE|ACK|BYE|CANCEL|NOTIFY|INFO|OPTIONS") && $rU=~"%40") {
                        xlog("[RELAY] [$rm] testing original [$ru]\n");
                        route(CONTACT_LOOKUP);
                # We want exclude ACK rewrite toward Bria Push Server
                } else if(!isflagset("FLAG_BRIA_PUSH")) {
                        xlog("[RELAY] [$rm] didn't match R-URI schema [$ru] correcting\n");
                        $ru = "sip:" + $tU + "%40" + $td + "@" + $td;
                        route(CONTACT_LOOKUP);
                }


volga629

On 3/24/21 5:04 AM, Liviu Chircu wrote:
On 24.03.2021 05:04, volga629 via Users wrote:
But then arrive the ACK and that where start the problems lookup  only find first contact and not second.

Hi Volga,

So you're doing a lookup() on the ACK Request-URI?  Typically, the ACK R-URI will contain a contact header, which is not meant to be searchable.  I'm surprised you even get 1 result, I would expect such a lookup() to return -1.

Can you explain what you are trying to achieve?  Why not just route the ACK using loose_route(), just like all other mid-dialog requests, and be done with it?

-- 
Liviu Chircu
www.twitter.com/liviuchircu | www.opensips-solutions.com


_______________________________________________
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