[OpenSIPS-Users] Max Concurrent Calls with drouting and dialog modules
Vlad Paiu
vladpaiu at opensips.org
Thu Aug 30 16:32:12 CEST 2012
Hi Ali,
Yes, those AVPs are properly populated after use_next_gw().
Regards,
Vlad Paiu
OpenSIPS Developer
http://www.opensips-solutions.com
On 08/30/2012 05:12 PM, Ali Pey wrote:
> Hi Bogdan,
>
> Does use_next_gw() in drouting module adjust the values for gw_id_avp
> and gw_attrs_avp parameters?
>
> I need to use this function if the max concurrent call limit has
> reached for the current gw, then evaluate the number of concurrent
> calls on the next gateway until there is no other gateways.
>
> Thanks,
> Ali Pey
>
>
> On Wed, Aug 29, 2012 at 12:37 PM, Bogdan-Andrei Iancu
> <bogdan at opensips.org <mailto:bogdan at opensips.org>> 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 Developer
> http://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
>> <jpyle at fidelityvoice.com <mailto:jpyle at fidelityvoice.com>> 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
>> <jpyle at fidelityvoice.com <mailto:jpyle at fidelityvoice.com>> 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
>> <alipey at gmail.com <mailto:alipey at gmail.com>> 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
>> Users at lists.opensips.org
>> <mailto:Users at lists.opensips.org>
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20120830/0f3897e2/attachment-0001.htm>
More information about the Users
mailing list