Hi,

Another tricks:

1) you can read the pending destinations directly from AVPs, without calling the "use_next_gw()" function. See:
   http://www.opensips.org/html/docs/modules/1.6.x/drouting.html#id293166

2) as append_branch() does not accept variables as params, use the "$branch" variable to write into:
   http://www.opensips.org/Resources/DocsCoreVar16#toc15
   like:
      $branch = $var(x) ; #add a new SIP URI as extra branch
      $(branch(q)[-1])  =  10 ;  # set Q val for the last added brach


Regards,
Bogdan


Anca Vamanu wrote:
Hi thrillerbe,

I think that if you only want to build the list of selected destinations, you can just call use_next_gw and add the uri in RURI to a destination string ( because use_next_gw sets the RURI to the destination- http://www.opensips.org/html/docs/modules/devel/drouting.html#id251519).
It would be something like this:

if (do_routing("1","2")) { if ($avp(s:dr_rules_attrs) == "2")
    {
xlog("L_INFO","After 1, ds is $ru\n"); $var(x) = 2;
        $var(ds) = $ru;

while (use_next_gw()) { $var(ds) = $var(ds) + "," + $ru; xlog("L_INFO","After $var(x), ds is $var(ds)\n"); $var(x) = $var(x) + 1; } } xlog("L_INFO","Destination set is $var(ds)\n"); }


Regards,
--
Anca Vamanu
OpenSIPS Developer


On 03/29/2011 01:00 AM, thrillerbee wrote:
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@1.1.1.1 <mailto:sip%3A15552345678@1.1.1.1> After 2, ds is Contact: *sip:2215552345678@2.2.2.2 <mailto:sip%3A2215552345678@2.2.2.2>, sip:2215552345678@2.2.2.2 <mailto:sip%3A2215552345678@2.2.2.2>* After 3, ds is Contact: *sip:5552345678@3.3.3.3 <mailto:sip%3A5552345678@3.3.3.3>*, sip:2215552345678@2.2.2.2 <mailto:sip%3A2215552345678@2.2.2.2>, *sip:5552345678@3.3.3.3 <mailto:sip%3A5552345678@3.3.3.3>* After 4, ds is Contact: *sip:15552345678@5.5.5.5 <mailto:sip%3A15552345678@5.5.5.5>*, sip:2215552345678@2.2.2.2 <mailto:sip%3A2215552345678@2.2.2.2>, sip:5552345678@3.3.3.3 <mailto:sip%3A5552345678@3.3.3.3>, *sip:15552345678@5.5.5.5 <mailto:sip%3A15552345678@5.5.5.5>* After 5, ds is Contact: *sip:4415552345678@4.4.4.4 <mailto:sip%3A4415552345678@4.4.4.4>*, sip:2215552345678@2.2.2.2 <mailto:sip%3A2215552345678@2.2.2.2>, sip:5552345678@3.3.3.3 <mailto:sip%3A5552345678@3.3.3.3>, sip:15552345678@5.5.5.5 <mailto:sip%3A15552345678@5.5.5.5>, *sip:4415552345678@4.4.4.4 <mailto:sip%3A4415552345678@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

------------------------------------------------------------------------

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


--
Bogdan-Andrei Iancu
OpenSIPS eBootcamp - 2nd of May 2011
OpenSIPS solutions and "know-how"


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

Reply via email to