[OpenSIPS-Users] Restrict Simultaneous-Use

Robert Borz robert.borz at web.de
Fri Mar 6 23:28:28 CET 2009


Hi Brett,

no, didn't have a look at it, yet. Thanks for the hint, I'll do it. The BYE is there... but after some traces via ngrep/tcpdump I wasn't sure if my Asterisk (1.4) really sent included the did-information within the record-route header in every case (depending if the caller ort he calle hangs up the call). Nevertheless, I tested the different matching modes 0, 1 and 2 - without any difference.

Now I also tried downgrading opensips to 1.4.4 without success. Afterwards upgraded asterisk to 1.6 (because I always wanted SST support) and doing the same, without the create_dialog() function in OpenSIPS (as in your snippet) - same result. I received warnings like:

WARNING:dialog:dlg_onroute: unable to find dialog for BYE with route param '3e9.031ba213'

So I started thinking about my software-client for testing (X-Lite) is the reason form y problems. So I used the software-phone from snom, which doesn't show the same behaviour. So I exchanged the x-lite client by a grandstream voip phone - again, the same. :-(

I'm really confused, my configuration was working with the last release from OpenSER, but there I wasn't using the dialog module.


Regards,
Robert



________________________________________
From: users-bounces at lists.opensips.org [mailto:users-bounces at lists.opensips.org] On Behalf Of Brett Nemeroff
Sent: Friday, March 06, 2009 11:12 PM
To: robert.borz at web.de
Cc: users at lists.opensips.org
Subject: Re: [OpenSIPS-Users] Restrict Simultaneous-Use

It was in regards to me loose routing problems I had.. but in my call traces, I simply wasn't getting a BYE back from the carrier.

Since I've gotten that resolved, my dialog count is nice and clean. nothing left open for the dialog expiration timeout. Have you looked at the output of:
opensipsctl fifo dlg_list ?

On Fri, Mar 6, 2009 at 10:21 AM, Robert Borz <robert.borz at web.de> wrote:
I'm sure not setting the profile twice. I wrapped the part by setting a flag and now I additionally used the is_in_profile() method to preventing setting the profile twice.

Hmm, I've really no idea at the moment.

Can you give me the subject of the thread you're meaning? Which mailing list?

Thank you.


Robert.

________________________________________
From: brett at nemeroff.com [mailto:brett at nemeroff.com]
Sent: Friday, March 06, 2009 4:10 PM
To: robert.borz at web.de
Cc: bogdan at voice-system.ro; users at lists.opensips.org
Subject: Re: [OpenSIPS-Users] Restrict Simultaneous-Use

Is it possible that you are setting the profile more than once ever? if you are, that could be the problem. I don't think anything prevents that from happening, and if you added it twice, the destruction of the dialog would only reduce the count by one, instead of two. I may be wrong here.. The times I've had dialogs left open that couldn't get cleared, I had record-routing problems (see list history!) or I was doing something silly with setting the profiles

BTW, I do this now. I'm not sure if it's even necessary. I'm using 1.4, so I don't have a create_dialog() function..
               if (!is_in_profile("SRC","$si")) {
                       set_dlg_profile("SRC","$si");
               }

Now, if I could pull avps from memory. that'd be sweet. :) I'm going to upgrade when 1.5 is released and then we'll start with the memcache fun. :)
-BRett



On Fri, Mar 6, 2009 at 9:04 AM, Robert Borz <robert.borz at web.de> wrote:
Hi Brett,

thanks for the hints, but doesn't work for me.
The did information in the record route header and the BYEs are there.
I also tried the other two match modes, with no success. :-(

Any idea?


Regards,
Robert

________________________________________
From: brett at nemeroff.com [mailto:brett at nemeroff.com]
Sent: Friday, March 06, 2009 3:32 PM
To: robert.borz at web.de
Cc: bogdan at voice-system.ro; users at lists.opensips.org
Subject: Re: [OpenSIPS-Users] Restrict Simultaneous-Use

Check to be sure you really get the BYE at the end of the call.

Also take a look at the bye and see if the 'did=' is in there, if it's not (ie: if the other end UAC removes it, which it really shouldn't) then you may need to change your dialog match mode. See the dialog module docs for that.

-Brett

On Fri, Mar 6, 2009 at 7:25 AM, Robert Borz <robert.borz at web.de> wrote:
Hi Bogdan,

now I'm currently using the svn head of opensips version 1.5.

I succeeded in pushing the channel value from the radius server into opensips by an SIP-AVP in the auth-reply. :-)

But I've got problems with the dialog profiling. Maybe I'm missing something here. At the moment I've got the following configuration for the dialog module:

----------------------------------------------------------------------------
loadmodule "dialog.so"
modparam("dialog", "dlg_flag", 4)
modparam("dialog", "profiles_with_value", "caller")
----------------------------------------------------------------------------


Following the link you told me I do the following in my invite-route after radius_proxy_authorize():

----------------------------------------------------------------------------
if (create_dialog() && set_dlg_profile("caller", "$fu")) {
     xlog("L_INFO", "created dialog/added profile");
}
xlog("L_INFO", "SIP-AVP ===> $avp(s:channels)");

if (is_avp_set("$avp(s:channels)/n") && avp_check("$avp(s:channels)", "gt/i:0")) {
     get_profile_size("caller", "$fu", "$avp(s:active_channels)");
     xlog("L_INFO", "===> User has $avp(s:active_channels) active channels!");
}
setflag(4);
----------------------------------------------------------------------------

The log statements prints "===> User has 1 active channels!" when the first invite comes in. But the number doesn't decrease when the dialog gets finished. With the next invite (doesn't matter if the previous dialog is alive), it prints " ===> User has 2 active channels!" and so forth.

Any idea what's wrong here?


Regards,
Robert


-----Original Message-----
From: bogdan at voice-system.ro [mailto:bogdan at voice-system.ro]
Sent: Thursday, March 05, 2009 5:55 PM
To: robert.borz at web.de
Cc: users at lists.opensips.org
Subject: Re: [OpenSIPS-Users] Restrict Simultaneous-Use

Robert,

if you do auth via RADIUS, you can push some AVPs in the reply:

http://www.opensips.org/html/docs/modules/1.4.x/auth_radius.html#id227162

The 1.5.0 is plan to be release in 2 weeks from now, if no major bugs
are discovered :)

Regards,
Bogdan

Robert Borz wrote:
> Hi Bogdan,
>
> thank you for this hint. I'll check it out.
>
> Yes, I also do auth over radius. Currently I've still OpenSER v1.3.2 installed on debian/lenny and it is working fine.
>
> Currently I'm thinking of updating to the latest OpenSIPS release. What's the current schedule for the first stable 1.5 release?
>
>
> Regards,
> Bogdan
>
>
> -----Original Message-----
> From: users-bounces at lists.opensips.org [mailto:users-bounces at lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu
> Sent: Thursday, March 05, 2009 4:57 PM
> To: robert.borz at web.de
> Cc: users at lists.opensips.org
> Subject: Re: [OpenSIPS-Users] Restrict Simultaneous-Use
>
> Hi Robert,
>
> Well, you can use the avp_radius module to load from a RADIUS server the
> number of maximum allowed calls:
>     http://www.opensips.org/html/docs/modules/devel/avp_radius.html
>
> This is the most generic way to do it.
>
> Do you do auth via RADIUS also ?
>
> Regards,
> Bogdan
>
> Robert Borz wrote:
>
>> Hi Bogdan,
>>
>> thanks a lot. Looks really pretty with the example you showed.
>>
>> My problem is that, depending on the amount of concurrent calls a user can do, the user belongs to a different group in radius. Imagine a user belonging to the group 'pots' has a simultaneous call limit of 1, a user belonging to the group 'isdn' has a limit of 2 concurrent calls...
>>
>> All rate information/customer attributes is/are stored in the radius and we want to keep it like this. So I think I've to get the information about how many calls the user can do out of the radius into SER to use the example. Any idea how to do that?
>>
>>
>> Regards,
>> Robert
>>
>> -----Original Message-----
>> From: bogdan at voice-system.ro [mailto:bogdan at voice-system.ro]
>> Sent: Thursday, March 05, 2009 12:49 PM
>> To: robert.borz at web.de
>> Cc: users at lists.opensips.org
>> Subject: Re: [OpenSIPS-Users] Restrict Simultaneous-Use
>>
>> Hi Robert,
>>
>> You do not need Radius for this. OpenSIPS can do this by itself. See a
>> nice tutorial on this topic:
>>     http://www.opensips.org/index.php?n=Resources.DocsTutConcurrentCalls
>>
>> Regards,
>> Bogdan
>>
>> Robert Borz wrote:
>>
>>
>>> Hi,
>>>
>>> currently I'm using a FreeRADIUS server for authentication and billing purposes. Now I want to restrict the count of simultaneous calls a user can do. For this I implemented it with the "Simultaneous-Use" check in FreeRADIUS and it works fine, for outgoing calls initiated from my customers. Just trying to initiate a second call when one is still up, the request is rejected (Proxy authorization fails for the new call).
>>>
>>> But incoming calls from the PSTN come in over an Asterisk machine. There's no proxy authorization for invites from the Asterisk, just a from_gw() check. So how I can restrict the amount of simultaneous calls per user for incoming _and_ outgoing calls?




>>>
>>> Any hint would be really appreciated...
>>>
>>>
>>> Regards,
>>> Robert
>>>
>>>
>>> _______________________________________________
>>> 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 list
Users at lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users







More information about the Users mailing list