Re: [OpenSIPS-Users] drouting module with append_branch() and q-values
bump. On Tue, Mar 29, 2011 at 11:27 AM, thrillerbee thriller...@gmail.com wrote: Hopefully my last question: Using append_branch() and $branch allows me to add all destinations as branches with q-values. However, I am unable to remove/edit the initial entry in $ds as set by do_routing(): Contact: *sip:15552345678@1.1.1.1, *sip:15552345678@1.1.1.1;q=1, sip:2215552345678@2.2.2.2;q=0.9, sip:5552345678@3.3.3.3;q=0.85, sip:15552345678@5.5.5.5;q=0.8, sip:sip:4415552345678@4.4.4.4;q=0.75 Is there a way to prevent do_routing from adding that entry and/or remove it after it has been added? OR is there a way to add a q-value to that instance? Thanks, Ryan On Tue, Mar 29, 2011 at 10:51 AM, thrillerbee thriller...@gmail.comwrote: Bogdan, Nevermind on that issue; I neglected to notice that I had to create the branch with append_branch() before setting anything. Thanks for the help. Ryan On Tue, Mar 29, 2011 at 9:52 AM, thrillerbee thriller...@gmail.comwrote: Bogdan, When I configure: $(branch(uri)[0]) = $ru; $(branch(q)[0]) = 100; xlog(L_INFO,branch 0 = $(branch(uri)[0]) with q-value $(branch(q)[0])\n); I get this debug: ERROR:core:pv_set_branch_fields: SCRIPT BUG - inexisting branch assigment [0/0] ERROR:core:do_assign: setting PV failed ERROR:core:do_assign: error at line: 163 ERROR:core:pv_set_branch_fields: SCRIPT BUG - inexisting branch assigment [0/0] ERROR:core:do_assign: setting PV failed ERROR:core:do_assign: error at line: 164 branch 0 = null with q-value null Thanks, Ryan On Tue, Mar 29, 2011 at 8:19 AM, Bogdan-Andrei Iancu bog...@opensips.org wrote: 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
Re: [OpenSIPS-Users] drouting module with append_branch() and q-values
I was able to manipulate $ru as set by do_routing() to get the behavior I'm looking for. It's not very clean, but it's functional. On Thu, Mar 31, 2011 at 9:00 AM, thrillerbee thriller...@gmail.com wrote: bump. On Tue, Mar 29, 2011 at 11:27 AM, thrillerbee thriller...@gmail.comwrote: Hopefully my last question: Using append_branch() and $branch allows me to add all destinations as branches with q-values. However, I am unable to remove/edit the initial entry in $ds as set by do_routing(): Contact: *sip:15552345678@1.1.1.1, *sip:15552345678@1.1.1.1;q=1, sip:2215552345678@2.2.2.2;q=0.9, sip:5552345678@3.3.3.3;q=0.85, sip:15552345678@5.5.5.5;q=0.8, sip:sip:4415552345678@4.4.4.4;q=0.75 Is there a way to prevent do_routing from adding that entry and/or remove it after it has been added? OR is there a way to add a q-value to that instance? Thanks, Ryan On Tue, Mar 29, 2011 at 10:51 AM, thrillerbee thriller...@gmail.comwrote: Bogdan, Nevermind on that issue; I neglected to notice that I had to create the branch with append_branch() before setting anything. Thanks for the help. Ryan On Tue, Mar 29, 2011 at 9:52 AM, thrillerbee thriller...@gmail.comwrote: Bogdan, When I configure: $(branch(uri)[0]) = $ru; $(branch(q)[0]) = 100; xlog(L_INFO,branch 0 = $(branch(uri)[0]) with q-value $(branch(q)[0])\n); I get this debug: ERROR:core:pv_set_branch_fields: SCRIPT BUG - inexisting branch assigment [0/0] ERROR:core:do_assign: setting PV failed ERROR:core:do_assign: error at line: 163 ERROR:core:pv_set_branch_fields: SCRIPT BUG - inexisting branch assigment [0/0] ERROR:core:do_assign: setting PV failed ERROR:core:do_assign: error at line: 164 branch 0 = null with q-value null Thanks, Ryan On Tue, Mar 29, 2011 at 8:19 AM, Bogdan-Andrei Iancu bog...@opensips.org wrote: 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,
Re: [OpenSIPS-Users] drouting module with append_branch() and q-values
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
Re: [OpenSIPS-Users] drouting module with append_branch() and q-values
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
Re: [OpenSIPS-Users] drouting module with append_branch() and q-values
Bogdan, When I configure: $(branch(uri)[0]) = $ru; $(branch(q)[0]) = 100; xlog(L_INFO,branch 0 = $(branch(uri)[0]) with q-value $(branch(q)[0])\n); I get this debug: ERROR:core:pv_set_branch_fields: SCRIPT BUG - inexisting branch assigment [0/0] ERROR:core:do_assign: setting PV failed ERROR:core:do_assign: error at line: 163 ERROR:core:pv_set_branch_fields: SCRIPT BUG - inexisting branch assigment [0/0] ERROR:core:do_assign: setting PV failed ERROR:core:do_assign: error at line: 164 branch 0 = null with q-value null Thanks, Ryan On Tue, Mar 29, 2011 at 8:19 AM, Bogdan-Andrei Iancu bog...@opensips.orgwrote: 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 ___
Re: [OpenSIPS-Users] drouting module with append_branch() and q-values
Hopefully my last question: Using append_branch() and $branch allows me to add all destinations as branches with q-values. However, I am unable to remove/edit the initial entry in $ds as set by do_routing(): Contact: *sip:15552345678@1.1.1.1, *sip:15552345678@1.1.1.1;q=1, sip:2215552345678@2.2.2.2;q=0.9, sip:5552345678@3.3.3.3;q=0.85, sip:15552345678@5.5.5.5;q=0.8, sip:sip:4415552345678@4.4.4.4;q=0.75 Is there a way to prevent do_routing from adding that entry and/or remove it after it has been added? OR is there a way to add a q-value to that instance? Thanks, Ryan On Tue, Mar 29, 2011 at 10:51 AM, thrillerbee thriller...@gmail.com wrote: Bogdan, Nevermind on that issue; I neglected to notice that I had to create the branch with append_branch() before setting anything. Thanks for the help. Ryan On Tue, Mar 29, 2011 at 9:52 AM, thrillerbee thriller...@gmail.comwrote: Bogdan, When I configure: $(branch(uri)[0]) = $ru; $(branch(q)[0]) = 100; xlog(L_INFO,branch 0 = $(branch(uri)[0]) with q-value $(branch(q)[0])\n); I get this debug: ERROR:core:pv_set_branch_fields: SCRIPT BUG - inexisting branch assigment [0/0] ERROR:core:do_assign: setting PV failed ERROR:core:do_assign: error at line: 163 ERROR:core:pv_set_branch_fields: SCRIPT BUG - inexisting branch assigment [0/0] ERROR:core:do_assign: setting PV failed ERROR:core:do_assign: error at line: 164 branch 0 = null with q-value null Thanks, Ryan On Tue, Mar 29, 2011 at 8:19 AM, Bogdan-Andrei Iancu bog...@opensips.org wrote: 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
[OpenSIPS-Users] drouting module with append_branch() and q-values
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 After 2, ds is Contact: *sip:2215552345678@2.2.2.2, sip:2215552345678@2.2.2.2* After 3, ds is Contact: *sip:5552345678@3.3.3.3*, sip:2215552345678@2.2.2.2, *sip:5552345678@3.3.3.3* After 4, ds is Contact: *sip:15552345678@5.5.5.5*, sip:2215552345678@2.2.2.2, sip:5552345678@3.3.3.3, *sip:15552345678@5.5.5.5* After 5, ds is Contact: *sip:4415552345678@4.4.4.4*, sip:2215552345678@2.2.2.2, sip:5552345678@3.3.3.3, sip:15552345678@5.5.5.5, *sip:4415552345678@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