[OpenSIPS-Users] Max Concurrent Calls with drouting and dialog modules

Jeff Pyle jpyle at fidelityvoice.com
Wed Aug 29 19:01:14 CEST 2012


Bogdan's answer was much better...  :)


- Jeff


On Wed, Aug 29, 2012 at 12:45 PM, Ali Pey <alipey at gmail.com> wrote:

> Thank you Bogdan. That answers all my questions.
>
> Regards,
> Ali Pey
>
>
> On Wed, Aug 29, 2012 at 12:37 PM, Bogdan-Andrei Iancu <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 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 <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>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> 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
>>>>> 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
>>>
>>>
>>
>> _______________________________________________
>> Users mailing listUsers at lists.opensips.orghttp://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
>>
>>
>
> _______________________________________________
> 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/20120829/19282717/attachment-0001.htm>


More information about the Users mailing list