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 <mayamatake...@gmail.com <mailto:mayamatake...@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:us...@test1.com
    <mailto:sip%3aus...@test1.com>,sip:us...@test1.com
    <mailto:sip%3aus...@test1.com>,sip:us...@test1.com
    <mailto:sip%3aus...@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:us...@test1.com
    <mailto:sip%3aus...@test1.com>,sip:us...@test1.com
    <mailto:sip%3aus...@test1.com>,sip:us...@test1.com
    <mailto:sip%3aus...@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
    us...@test1.com <mailto:us...@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@10.0.0.1:5072
    <http://sip:user1@10.0.0.1:5072/>,sip:user2@10.0.0.1:5074
    <http://sip:user2@10.0.0.1:5074/>,sip:user3@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@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@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to