[OpenSIPS-Users] Restrict Simultaneous-Use
Robert Borz
robert.borz at web.de
Sat Mar 21 20:03:42 CET 2009
Hi Bogdan,
sorry for delay... I think I found the reason why my dialogs didn't get cleared correctly.
I had issues with some SIP phones including proxy auth. credentials in loose routed ACK and BYE messages (see "Contents of ACK in up-to-date RFC3261", http://lists.opensips.org/pipermail/users/2009-January/002639.html).
Because I wanted to remove the credentials for upstream and avoid the annoying error message "ERROR:auth:consume_credentials: no authorized credentials found (error in scripts)", I included the following code snippet in my outbound route around the "consume_credentials()" function:
if (is_present_hf("Proxy-Authorization")) {
if (loose_route() && is_method("ACK|BYE")) {
remove_hf("Proxy-Authorization");
} else {
consume_credentials();
}
}
After commenting out my additions, the "ERROR:auth:consume_credentials: no authorized credentials found (error in scripts)" message reappeared, but all dialogs get cleared correctly and the error message from the dialog module disappeared. Maybe the "remove_hf()" function is the problem here?
Regards,
Robert
-----Original Message-----
From: users-bounces at lists.opensips.org [mailto:users-bounces at lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu
Sent: Monday, March 09, 2009 2:08 PM
To: robert.borz at web.de
Cc: users at lists.opensips.org
Subject: Re: [OpenSIPS-Users] Restrict Simultaneous-Use
Hi Robert,
Please post the dialog module parameters and the SIP trace for the call
with x-lite - I will check if xlite does something wrong in the
signalling. Also please attach the full debug log (debug=6) from
opensips (for the call).
Thanks and regards,
Bogdan
Robert Borz wrote:
> Hi Brett,
>
> after having a look at it with "opensipsctl fifo dlg_list" I can see, that after the BYEs, the dialog gets still listed. The only value which distinguishes the call during the dialog and after the dialog is the value of the "timeout" attribute.
>
> If I exchange the X-Lite client by the snom soft-client, the dialog gets correcntly destroyed and is not listed in the dialog list anymore after hangup.
>
> Could you have a look at it using the free x-lite client from counterpath (www.counpterpath.com) and verify my issue, please? Maybe it is not regarding to my configuration but to the client... :-(
>
>
> Regards,
> Robert
>
> -----Original Message-----
> From: robert.borz at web.de [mailto:robert.borz at web.de]
> Sent: Friday, March 06, 2009 11:28 PM
> To: 'Brett Nemeroff'; robert.borz at web.de
> Cc: users at lists.opensips.org
> Subject: RE: [OpenSIPS-Users] Restrict Simultaneous-Use
>
> 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
>
>
>
>
>
> _______________________________________________
> 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