[OpenSIPS-Users] Creating branches inside a while loop

Bogdan-Andrei Iancu bogdan at opensips.org
Mon Oct 10 12:39:48 UTC 2022


Hi Takeshi,

Aren't you missing the "seturi()" + "append_branch()" in the loop ??

Regards,

Bogdan-Andrei Iancu

OpenSIPS Founder and Developer
   https://www.opensips-solutions.com
OpenSIPS Summit 27-30 Sept 2022, Athens
   https://www.opensips.org/events/Summit-2022Athens/

On 9/28/22 4:26 PM, mayamatakeshi wrote:
>
> On Wed, Sep 28, 2022 at 2:21 PM mayamatakeshi <mayamatakeshi at gmail.com 
> <mailto:mayamatakeshi at gmail.com>> wrote:
>
>     Hi,
>     I'm testing latest commit b243666098be44226ade6a7df2b62851efcb5de8
>     of opensips-3.2.
>
>     I tested adding branches to an INVITE for a fixed size list of
>     AORs this way:
>
>                 $var(aors) = "sip:user1 at test1.com
>     <mailto:sip%3Auser1 at test1.com>,sip:user2 at test1.com
>     <mailto:sip%3Auser2 at test1.com>,sip:user3 at test1.com
>     <mailto:sip%3Auser3 at test1.com>";
>
>                 seturi($(var(aors){s.select,0,,}));
>
>                 append_branch();
>                 seturi($(var(aors){s.select,1,,}));
>
>                 append_branch();
>                 seturi($(var(aors){s.select,2,,}));
>
>                 lookup("location", "r")
>
>     The above works fine and all 3 destinations resolved by AOR lookup
>     are called (max of contact per AOR).
>
>     However, in case of a a list of unknown size, I tried to use a
>     while loop like this:
>                 $var(aors) = "sip:user1 at test1.com
>     <mailto:sip%3Auser1 at test1.com>,sip:user2 at test1.com
>     <mailto:sip%3Auser2 at test1.com>,sip:user3 at test1.com
>     <mailto:sip%3Auser3 at test1.com>";
>
>                 $var(idx) = 0;
>                 $var(aor) = $(var(aors){s.select,$var(idx),,});
>
>                 while($var(aor) != null) {
>                     seturi($var(aor));
>
>                     $var(idx) = $var(idx) + 1;
>                     $var(aor) = $(var(aors){s.select,$var(idx),,});
>                 }
>
>                 lookup("location", "r")
>
>     But with the above, only the last destination (lookup of
>     user3 at test1.com <mailto:user3 at test1.com>) is called.
>     I confirmed this is not related to the lookup function because I
>     tried with fixed destinations like this:
>
>                 $var(aors) = "sip:user1 at 10.0.0.1:5072
>     <http://sip:user1@10.0.0.1:5072/>,sip:user2 at 10.0.0.1:5074
>     <http://sip:user2@10.0.0.1:5074/>,sip:user3 at 10.0.0.1:5076
>     <http://sip:user3@10.0.0.1:5076/>";
>
>                 $var(idx) = 0;
>                 $var(aor) = $(var(aors){s.select,$var(idx),,});
>
>                 while($var(aor) != null) {
>                     seturi($var(aor));
>
>                     $var(idx) = $var(idx) + 1;
>                     $var(aor) = $(var(aors){s.select,$var(idx),,});
>                 }
>
>     and the same problem happens: only the last destination
>     sip:user3 at 10.0.0.1:5076 <http://sip:user3@10.0.0.1:5076/> is called.
>
>     So, is there a way to append a non-fixed number of branches to an
>     INVITE?
>
>     Regards,
>     Takeshi
>
>
> Sorry, I think I did something wrong.
> I was able to make append_branch to work inside a while loop.
> So there is no problem.
> Regards,
> Takeshi
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20221010/40226e8a/attachment.html>


More information about the Users mailing list