[OpenSIPS-Users] prioritizing branches by usrloc flag

Bogdan-Andrei Iancu bogdan at opensips.org
Thu Oct 29 15:47:19 CET 2015


Hi Tito,

See the link I already gave you on the $ru_q variable:
http://www.opensips.org/Documentation/Script-CoreVar-1-11#toc77

Regards,

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com

On 28.10.2015 19:20, Tito Cumpen wrote:
> Bogdan,
>
> Is there way to modify the q value of the RURI? say the first contact 
> is of sip transport and I need to rearrange the order so that the this 
> branch(first contact that happens to be a sip branch ) is called after 
> all ws branches? I reiterate the only reason for this that rtpengine 
> will replace media params if sip and ws are handled back to back.
> https://github.com/sipwise/rtpengine/issues/118
> Therefore I in the ideal scenario I will make offers to all ws records 
> at once then all sip clients thereafter.
>
>
> Thanks,
> Tito 	
>
>
> On Mon, Oct 26, 2015 at 4:31 PM, Bogdan-Andrei Iancu 
> <bogdan at opensips.org <mailto:bogdan at opensips.org>> wrote:
>
>     Hi Tito,
>
>     yes, the first contact is pushed into RURI and not into contacts.
>     So additionally you need to check that too. See:
>     http://www.opensips.org/Documentation/Script-CoreVar-1-11#toc77
>
>     After 1) did lookup(location) and 2) set the new q values , do
>     serialize_branches() -> this will re-arrange them according to the
>     q value. See :
>     http://www.opensips.org/Documentation/Script-CoreFunctions-1-11#toc44
>
>     Regards,
>
>     Bogdan-Andrei Iancu
>     OpenSIPS Founder and Developer
>     http://www.opensips-solutions.com
>
>     On 21.10.2015 03:48, Tito Cumpen wrote:
>>     Bogdan,
>>
>>
>>     I tried this
>>
>>     $var(i) = 0;
>>
>>     while ($(branch(uri)[$var(i)]) != null && $var(i) < 5) {
>>
>>     xlog("$$(branch(uri)[$var(i)])=[$(branch(uri)[$var(i)])]\n");
>>
>>        if ($(branch(uri)[$var(i)]{uri.transport}) == "ws") {
>>
>>            xlog(" ws branch found number $var(i) with
>>     URI=[$(branch(uri)[$var(i)])]\n");
>>
>>            #remove_branch($var(i));
>>
>>            $(branch(q)[$var(i)]) = 380;
>>
>>             xlog("$(branch(q)[$var(i)]) confirming q value for branch
>>     $(branch(uri)[$var(i)])\n");
>>
>>
>>        } else {
>>
>>            $var(i) = $var(i) + 1;
>>
>>        }
>>
>>             xlog("$(branch(duri)[*]) finished looping through all
>>     branches\n");
>>
>>     }
>>
>>
>>
>>     but it appears that lookup will only provide the every other
>>     branch that isn't the first. I can't control which AOR is added
>>     first or second which I must do to prioritize ws . Is there
>>     anyway to access all of those contacts and put them in an array?
>>     I am hitting a max while loop error here when there is more than
>>     one aor. by default all records get a q value of 1. So I am
>>     attempting to go under the value for all ws aor contacts and
>>     serial fork. Hopefully I'll be able to call all ws contacts in
>>     parallel then all standard sip clients in parallel as they all
>>     should posses a q value of 1.
>>
>>
>>     Thanks,
>>
>>     Tito
>>
>>
>>
>>
>>
>>     On Tue, Jul 7, 2015 at 7:01 AM, Bogdan-Andrei Iancu
>>     <bogdan at opensips.org <mailto:bogdan at opensips.org>> wrote:
>>
>>         Hi Tito,
>>
>>         Try $(branch(uri)[x]{uri.transport}) to get the transport
>>         param from the URI.
>>
>>         Or, look into the $(branch(socket)[x]{s.select,0,:}) - the
>>         proto of the sending socket.
>>
>>         Regards,
>>
>>         Bogdan-Andrei Iancu
>>         OpenSIPS Founder and Developer
>>         http://www.opensips-solutions.com
>>
>>         On 07.07.2015 12:14, Tito Cumpen wrote:
>>>         Bogdan,
>>>
>>>
>>>         Thanks for your reply. These variables seem like a step in
>>>         the right direction although it raises another question as
>>>         to how to access the branches and check the destination
>>>         proto. How does one access the array of branches? Would they
>>>         have to be casted and lopped and checked against a regex?
>>>         *dP seems to provide the proto but what would be provided in
>>>         the case of various destination protos as in the case of sip
>>>         and ws?*
>>>         *
>>>         *
>>>         *
>>>         *
>>>         *Thanks,*
>>>         *Tito*
>>>
>>>         On Thu, Jul 2, 2015 at 9:31 AM, Bogdan-Andrei Iancu
>>>         <bogdan at opensips.org <mailto:bogdan at opensips.org>> wrote:
>>>
>>>             Hi Tito,
>>>
>>>             The registrar module (responsible for extracting the
>>>             contacts from SIP msg and storing into USRLOC) takes the
>>>             q value from the Contact header (as SIP RFC requires).
>>>             Currently there is no way to change the q value (from
>>>             script level) before saving into USRLOC.
>>>
>>>             But what you can do is to change the q values after the
>>>             lookup (when loaded into msg from USRLOC).
>>>
>>>             Take a look at branch variable $branch(q) :
>>>             http://www.opensips.org/Documentation/Script-CoreVar-2-1#toc22
>>>             and $ru_q (q value for RURI) :
>>>             http://www.opensips.org/Documentation/Script-CoreVar-2-1#toc77
>>>
>>>             and you may change the q values and do a
>>>             serialize_branches() after that.
>>>
>>>             Best regards,
>>>
>>>             Bogdan-Andrei Iancu
>>>             OpenSIPS Founder and Developer
>>>             http://www.opensips-solutions.com
>>>
>>>             On 01.07.2015 19:57, Tito Cumpen wrote:
>>>>             Group,
>>>>
>>>>
>>>>             Is it possible to set the q value upon registration? I
>>>>             need to set ws destinations to a lower q value as
>>>>             rtpengine has a limitation on sending different media
>>>>             params on a per branch basis in parallel. Or should I
>>>>             loop into the branches with a certain attribute and
>>>>             order them before serializing them?
>>>>
>>>>
>>>>
>>>>             _______________________________________________
>>>>             Users mailing list
>>>>             Users at lists.opensips.org  <mailto: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/20151029/470da6e4/attachment-0001.htm>


More information about the Users mailing list