[OpenSIPS-Users] Creating branches inside a while loop
mayamatakeshi
mayamatakeshi at gmail.com
Tue Oct 11 12:13:51 UTC 2022
Hi Bogdan,
yes. It works.
I am using it like this:
* $var(idx) = 0; $var(aor) =
$(var(aors){s.select,$var(idx),,}); while($var(aor)
!= null) { if($var(idx) > 0) {
append_branch(); }
seturi("sip:$var(aor)@$fd"); $var(idx) = $var(idx) + 1;
$var(aor) = $(var(aors){s.select,$var(idx),!}); }
if (lookup("location", "r")) {
t_on_branch("USERAGENT_BRANCH"); route(RELAY_REQUEST);
} else { sl_send_reply(480, "subscriber not online
retcode=$retcode"); }*
Thanks and regards,
Takeshi
On Tue, Oct 11, 2022 at 6:32 PM Bogdan-Andrei Iancu <bogdan at opensips.org>
wrote:
> Hi, and it works now, right?
>
> 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 10/11/22 10:29 AM, mayamatakeshi wrote:
>
> Hi Bogdan,
> indeed, I think I removed the append_branch() line by mistake when
> removing some debug lines I added to check function return code etc.
> Thanks,
> Takeshi
>
> On Mon, Oct 10, 2022 at 9:39 PM Bogdan-Andrei Iancu <bogdan at opensips.org>
> wrote:
>
>> 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>
>> 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,sip:user2 at test1.com,
>>> sip:user3 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,sip:user2 at test1.com,
>>> sip:user3 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)
>>> 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,
>>> sip:user2 at 10.0.0.1:5074,sip:user3 at 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 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 listUsers at lists.opensips.orghttp://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20221011/3f4bf9d4/attachment.html>
More information about the Users
mailing list