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




    _______________________________________________
    Users mailing list
    [email protected] <mailto:[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

Reply via email to