[SR-Users] How to limit number of calls in Kamailio proxy

Austin Einter austin.einter at gmail.com
Sun Oct 30 05:00:29 CET 2011


Hi Alex
I tried using profile. I added below code to kamailio.cfg in route section.

   if (is_method("INVITE")) {
                 if (!has_totag()) {
                        get_profile_size("caller", "$fu", "$var(SIZE)");
                        if( $var(SIZE) >= MAX_NUMBER_OF_CALLS ) {
                                sl_send_reply("503", "Simultaneous calls
limit reached");
                                xlog("Rejected calls with 503 Simultaneous
calls limit reached\n");
                                exit;
                        }
                        else {
                                 xlog("Max calls limit not reached yet\n");
                        }
                }
        }
        set_dlg_profile("caller","$fu");

When I run kamailio, I get below error.

 0(4925) CRITICAL: dialog [dialog.c:297]: profile <caller> not definited
 0(4925) ERROR: <core> [route.c:1161]: fixing failed (code=-6) at
cfg:/usr/local/etc/kamailio/kamailio.cfg:423
 0(4925) ERROR: <core> [route.c:1161]: fixing failed (code=-6) at
cfg:/usr/local/etc/kamailio/kamailio.cfg:433
 0(4925) ERROR: <core> [route.c:1161]: fixing failed (code=-6) at
cfg:/usr/local/etc/kamailio/kamailio.cfg:434
ERROR: error -6 while trying to fix configuration

Any idea why this error comes and how to fix it.

-Regds
Austin



On Sat, Oct 29, 2011 at 8:27 AM, Austin Einter <austin.einter at gmail.com>wrote:

> This is continuation with limiting number of calls per Kamailio proxy
> server.
> I modified kamailio.cfg as below.
>
> 1. loadmodule "dialog.so"
> 2. modparam("dialog", "enable_stats", 1)
> 3. modparam("dialog", "dlg_flag", 4)
> Next, as dialog module I can use either active_dialogs() or $DLG_count to
> find number of calls present at any given point of time.
> However if I use active_dialogs() I get parse error when I run kamailio
> proxy.
> Next I used $DLG_count , but always I am getting value of $DLG_count as 0.
>
> In *route* section, I added code as below.
>
>         if (is_method("INVITE"))
>         {
>                 if($DLG_count > 1)
>                 {
>                         sl_send_reply("503","RESOURCE UNAVAILABLE");
>                         exit;
>                 }
>                 else
>                 {
>                         xlog("Dialog count = $DLG_count\n");
>                 }
>         }
> Everytime a new call starts , it prints $DLG_count as 0.
>
> Kindly let me know whats going wrong here.
>
> Regards
> Austin
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20111030/8d6f46e9/attachment.htm>


More information about the sr-users mailing list