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 list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
