Jeff, Your answer was quite useful and thank you for taking the time to respond. >From your response I learned that I need to reduce the number of calls in the failure route and I hadn't thought about that before. I'm sure more people will benefit from your response in the future facing similar question.
Regards, Ali Pey On Wed, Aug 29, 2012 at 1:01 PM, Jeff Pyle <[email protected]> wrote: > Bogdan's answer was much better... :) > > > - Jeff > > > On Wed, Aug 29, 2012 at 12:45 PM, Ali Pey <[email protected]> wrote: > >> Thank you Bogdan. That answers all my questions. >> >> Regards, >> Ali Pey >> >> >> On Wed, Aug 29, 2012 at 12:37 PM, Bogdan-Andrei Iancu < >> [email protected]> wrote: >> >>> ** >>> Hi Ali, >>> >>> For profiling, use the GW ID - as value for the profile - (you can >>> instruct DR to return the GW ID in an AVP) ; now, about the limit, use the >>> "attrs" from GWs to keep it >>> >>> Regards, >>> >>> Bogdan-Andrei Iancu >>> OpenSIPS Founder and Developerhttp://www.opensips-solutions.com >>> >>> >>> On 08/29/2012 07:35 PM, Ali Pey wrote: >>> >>> Hi Jeff, >>> >>> Thank you for the reply but unfortunately this doesn't answer my >>> questions. I need to bind this to the drouting module, so when I call >>> do_routing, I need a parameter for set_dialog_profile for whatever gateway >>> do_routing() picks. That was my first and second questions. >>> >>> Also in your case, where do you set $var(dlgsize_out)? where do you >>> get it from? How would you change it? I don't want to have to change my >>> script or restart opensips to change this. >>> >>> Regards, >>> Ali Pey >>> >>> >>> On Wed, Aug 29, 2012 at 12:27 PM, Jeff Pyle <[email protected]>wrote: >>> >>>> Ali, >>>> >>>> Oops, I had some inconsistent rewrites. So much for improved >>>> readability. Consider this instead: >>>> >>>> # Check to see if we're at maximum capacity for this gateway >>>> if !(get_profile_size("outbound", "$avp(s:dlgid_out)", >>>> "$var(dlgsize_out)")) { >>>> xlog("L_INFO", "Couldn't get dialog size, continuing >>>> route-out\n"); >>>> } else { >>>> if (is_avp_set("$avp(s:gw_maxcalls)") && >>>> $var(dlgsize_out) >= $avp(s:gw_maxcalls)) { >>>> # We're full, so cycle around to the next >>>> gateway... >>>> } >>>> } >>>> >>>> That should make more sense. >>>> >>>> >>>> - Jeff >>>> >>>> >>>> >>>> >>>> On Wed, Aug 29, 2012 at 12:24 PM, Jeff Pyle <[email protected]>wrote: >>>> >>>>> Hi Ali, >>>>> >>>>> I have the same application. A little before the t_relay() to the >>>>> gateway, I have: >>>>> >>>>> # Check to see if we're at maximum capacity >>>>> if !(get_profile_size("outbound", "$avp(s:dlgid_out)", >>>>> "$var(dlgsize_out)")) { >>>>> xlog("L_INFO", "Couldn't get dialog size, continuing >>>>> route-out\n"); >>>>> } else { >>>>> if (is_avp_set("$avp(s:gw_maxcalls)") && >>>>> $var(dlgsize_out) >= $avp(s:car_maxcalls)) { >>>>> # Move on to the next carrier... >>>>> >>>>> } >>>>> } >>>>> # Continue towards t_relay() for this gateway... >>>>> >>>>> This verifies our counts to make sure we have room. If I'm at that >>>>> value (or over) I cycle around and select the next gateway. If all is >>>>> well >>>>> I run set_dlg_profile("outbound", "$avp(s:dlgid_out)"). Since you're >>>>> using drouting, perhaps you'll use another variable here in place of >>>>> $avp(s:dlgid_out). >>>>> >>>>> I implement serial forking for my gateways. In the selected >>>>> failure_route I run unset_dlg_profile("outbound", "$avp(s:dlgid_out)"). >>>>> If I'm in this section I know the call has failed, so I want to remove >>>>> its >>>>> count from the profile. >>>>> >>>>> This configure is old enough to be pre-drouting but the concepts are >>>>> still the same. >>>>> >>>>> Is that helpful? >>>>> >>>>> >>>>> - Jeff >>>>> >>>>> >>>>> >>>>> On Wed, Aug 29, 2012 at 11:53 AM, Ali Pey <[email protected]> wrote: >>>>> >>>>>> Hi All, >>>>>> >>>>>> I would like to limit number of concurrent calls to a gateway in >>>>>> dr_gateways table (drouting module). >>>>>> >>>>>> I have looked at the tutorial on the opensips webiste ( >>>>>> http://www.opensips.org/Resources/DocsTutConcurrentCalls) and this >>>>>> is not the same. >>>>>> >>>>>> I do create a dialog and then I do do_routing(). At this point I >>>>>> don't know: >>>>>> >>>>>> 1- What parameters to pass to set_dlg_profile() to increase the >>>>>> number of calls for whatever particular gateway do_routing happened to >>>>>> select? >>>>>> >>>>>> 2- How to use get_profile_size() to see if the gateway has reached >>>>>> it's maximum number of channels? >>>>>> >>>>>> 3- Where would be the best place to record and read the max number >>>>>> of channels available for each gateway? some place that I wouldn't need >>>>>> to >>>>>> do a db quey but I would be able to make changes while opensips is >>>>>> running >>>>>> similar to the drouting module parameters itself. >>>>>> >>>>>> >>>>>> Any help/suggestion would be appreciated. >>>>>> >>>>>> Thanks, >>>>>> Ali Pey >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Users mailing list >>>>>> [email protected] >>>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>>>>> >>>>>> >>>>> >>>> >>>> _______________________________________________ >>>> Users mailing list >>>> [email protected] >>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>>> >>>> >>> >>> _______________________________________________ >>> Users mailing >>> [email protected]http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>> >>> >>> _______________________________________________ >>> Users mailing list >>> [email protected] >>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>> >>> >> >> _______________________________________________ >> Users mailing list >> [email protected] >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> >> > > _______________________________________________ > Users mailing list > [email protected] > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > >
_______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
