[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