[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