Hello,

On 4/8/11 6:14 PM, Alejandro Rios P. wrote:
Hello Daniel

Thanks for pointing out to the SIP traces. I found out that it if the request is to be sent to a destination using a port other than 5060, it is required to add the $uac_req(ouri) parameter too:

$uac_req(ouri)="sip:" + $var(asterisk_ip) + ":" + $var(asterisk_port);
....

$uac_req(ouri)="sip:" + $var(asterisk2_ip) + ":" + $var(asterisk2_port);
Interesting, it should work when changing the 'ruri' attribute as well. Can you send a sip trace with changed r-uri for the two requests that go to wrong destination?

Thanks,
Daniel


Thanks!

Alejandro Rios Peña


DISCLAIMER: The opinions expressed are my own, and not necessarily those of my employer.

<http://www.avatar.com.co>


2011/4/8 Daniel-Constantin Mierla <mico...@gmail.com <mailto:mico...@gmail.com>>

    Hello,


    On 4/8/11 12:28 AM, Alejandro Rios P. wrote:


        Hi all,

        I am testing the scenario described here:
        
http://kb.asipto.com/asterisk:realtime:kamailio-3.1.x-asterisk-1.6.2-astdb

        It works great with one instance of Asterisk, but now that I'm
        testing with two Asterisk instances to load balance, and I see
        a problem regarding the registration forwarding to the second
        Asterisk.

        I tried adding a second "uac_req_send()" bellow the first one,
        but Kamailio only sends the first request and the REGISTER
        never gets to the second Asterisk:

        # Forward REGISTER to Asterisk
        route[REGFWD]  {
               if(!is_method("REGISTER"))
               {
                       return;
               }
               $var(rip)  =  $sel(cfg_get.asterisk.bindip);
               $uac_req(method)="REGISTER";
               $uac_req(ruri)="sip:"  +  $var(rip)  +  ":"  +
         $sel(cfg_get.asterisk.bindport);
               $uac_req(furi)="sip:"  +  $au+  "@"  +  $var(rip);
               $uac_req(turi)="sip:"  +  $au+  "@"  +  $var(rip);
               $uac_req(hdrs)="Contact:<sip:"  +  $au+  "@"
                                       +  $sel(cfg_get.kamailio.bindip)
                                       +  ":"  +
         $sel(cfg_get.kamailio.bindport)  +  ">\r\n";
               if($sel(contact.expires)  !=  $null)
                       $uac_req(hdrs)=  $uac_req(hdrs)  +  "Expires:"
         +  $sel(contact.expires)  +  "\r\n";
               else
                       $uac_req(hdrs)=  $uac_req(hdrs)  +  "Expires:"
         +  $hdr(Expires)  +  "\r\n";
               uac_req_send();

                $uac_req(all) = null;

               $var(rip2)  =  $sel(cfg_get.asterisk2.bindip);
               $uac_req(method)="REGISTER";
               $uac_req(ruri)="sip:"  +  $var(rip2)  +  ":"  +
         $sel(cfg_get.asterisk2.bindport);
               $uac_req(furi)="sip:"  +  $au+  "@"  +  $var(rip2);
               $uac_req(turi)="sip:"  +  $au+  "@"  +  $var(rip2);
               $uac_req(hdrs)="Contact:<sip:"  +  $au+  "@"
                                       +  $sel(cfg_get.kamailio.bindip)
                                       +  ":"  +
         $sel(cfg_get.kamailio.bindport)  +  ">\r\n";
               if($sel(contact.expires)  !=  $null)
                       $uac_req(hdrs)=  $uac_req(hdrs)  +  "Expires:"
         +  $sel(contact.expires)  +  "\r\n";
               else
                       $uac_req(hdrs)=  $uac_req(hdrs)  +  "Expires:"
         +  $hdr(Expires)  +  "\r\n";
               uac_req_send();

        }

        I also tried appending another branch and sending the second
         uac_req_send() from there, but it is not being sent.

        How can I use uac_req_send() several times for the same
        request or in parallel?

    it should work one after the other. append_branch() does not
    affect uac_req_send() at all, this is a separate request built
    from scratch.

    Do you get any error message in the syslog? Can you watch the
    traffic on all interfaces 'ngrep -d any -qt -W byline port 5060' ?

    I see you assign '$uac_req(all) = null;', it should be
    '$uac_req(all) = $null;' - but I guess it was a copy&paste thing.

    Cheers,
    Daniel

-- Daniel-Constantin Mierla
    http://www.asipto.com



_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

--
Daniel-Constantin Mierla
http://www.asipto.com

_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to