[OpenSIPS-Users] drouting module with append_branch() and q-values

thrillerbee thrillerbee at gmail.com
Tue Mar 29 00:00:43 CEST 2011


I'm trying to get OpenSIPS to act as a REDIRECT server and have run into a
couple issues. I'm using the drouting module to do lookups. Essentially, a
dialed number could have potentially several routes, I want to return a 300
with these routes in the Contact header. Please tell me if this is foolish
and/or there are better methods.

I'm running release version 1.6.4-2-notls.

With that, I've configured the following in my script:
if (do_routing("1","2"))
    {
    if ($avp(s:dr_rules_attrs) == "2")
    {
        xlog("L_INFO","After 1, ds is $ds\n");
        $var(x) = 2;
        while (use_next_gw())
        {
            append_branch();
            xlog("L_INFO","After $var(x), ds is $ds\n");
            $var(x) = $var(x) + 1;
        }
    }
    xlog("L_INFO","Destination set is $ds\n");
}

My relevant debug output is:
After 1, ds is Contact: sip:15552345678 at 1.1.1.1
After 2, ds is Contact: *sip:2215552345678 at 2.2.2.2,
sip:2215552345678 at 2.2.2.2*
After 3, ds is Contact: *sip:5552345678 at 3.3.3.3*, sip:2215552345678 at 2.2.2.2,
*sip:5552345678 at 3.3.3.3*
After 4, ds is Contact: *sip:15552345678 at 5.5.5.5*, sip:2215552345678 at 2.2.2.2,
sip:5552345678 at 3.3.3.3, *sip:15552345678 at 5.5.5.5*
After 5, ds is Contact: *sip:4415552345678 at 4.4.4.4*,
sip:2215552345678 at 2.2.2.2, sip:5552345678 at 3.3.3.3, sip:15552345678 at 5.5.5.5,
*sip:4415552345678 at 4.4.4.4*

It seems that append_branch() deletes the first entry in the destination set
before adding the current RURI to the beginning and end. Is there an easier
or more predictable way to write to the destination set?

Also, it seems the append_branch() function will not take variables or avps
as parameters. Is there a known way of setting different q-values as a
destination set is generated?  The below obviously doesn't work but should
explain what I'm looking for:

var(q) = 90;
while (use_next_branch())
{
    append_branch("$ru","$var(q)");
    $var(q) = $var(q) - 10;
}

Thanks,
Ryan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20110328/f749bf4e/attachment-0001.htm>


More information about the Users mailing list