Restrict Simultaneous-Use

classic Classic list List threaded Threaded
32 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: Restrict Simultaneous-Use

Robert Borz
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: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 3:32 PM
To: [hidden email]
Cc: [hidden email]; [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Thursday, March 05, 2009 5:55 PM
To: [hidden email]
Cc: [hidden email]
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: [hidden email] [mailto:[hidden email]] On Behalf Of Bogdan-Andrei Iancu
> Sent: Thursday, March 05, 2009 4:57 PM
> To: [hidden email]
> Cc: [hidden email]
> 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: [hidden email] [mailto:[hidden email]]
>> Sent: Thursday, March 05, 2009 12:49 PM
>> To: [hidden email]
>> Cc: [hidden email]
>> 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
>>> [hidden email]
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users



_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Restrict Simultaneous-Use

Brett Nemeroff
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 3:32 PM
Cc: [hidden email]; [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Thursday, March 05, 2009 5:55 PM
To: [hidden email]
Cc: [hidden email]
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: [hidden email] [mailto:[hidden email]] On Behalf Of Bogdan-Andrei Iancu
> Sent: Thursday, March 05, 2009 4:57 PM
> To: [hidden email]
> Cc: [hidden email]
> 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: [hidden email] [mailto:[hidden email]]
>> Sent: Thursday, March 05, 2009 12:49 PM
>> To: [hidden email]
>> Cc: [hidden email]
>> 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
>>> [hidden email]
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users




_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Restrict Simultaneous-Use

Robert Borz
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: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 4:10 PM
To: [hidden email]
Cc: [hidden email]; [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 3:32 PM
To: [hidden email]
Cc: [hidden email]; [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Thursday, March 05, 2009 5:55 PM
To: [hidden email]
Cc: [hidden email]
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: [hidden email] [mailto:[hidden email]] On Behalf Of Bogdan-Andrei Iancu
> Sent: Thursday, March 05, 2009 4:57 PM
> To: [hidden email]
> Cc: [hidden email]
> 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: [hidden email] [mailto:[hidden email]]
>> Sent: Thursday, March 05, 2009 12:49 PM
>> To: [hidden email]
>> Cc: [hidden email]
>> 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
>>> [hidden email]
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users




_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Restrict Simultaneous-Use

Brett Nemeroff
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 4:10 PM
To: [hidden email]
Cc: [hidden email]; [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 3:32 PM
To: [hidden email]
Cc: [hidden email]; [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Thursday, March 05, 2009 5:55 PM
To: [hidden email]
Cc: [hidden email]
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: [hidden email] [mailto:[hidden email]] On Behalf Of Bogdan-Andrei Iancu
> Sent: Thursday, March 05, 2009 4:57 PM
> To: [hidden email]
> Cc: [hidden email]
> 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: [hidden email] [mailto:[hidden email]]
>> Sent: Thursday, March 05, 2009 12:49 PM
>> To: [hidden email]
>> Cc: [hidden email]
>> 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
>>> [hidden email]
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users





_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Restrict Simultaneous-Use

Robert Borz
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: [hidden email] [mailto:[hidden email]] On Behalf Of Brett Nemeroff
Sent: Friday, March 06, 2009 11:12 PM
To: [hidden email]
Cc: [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 4:10 PM
To: [hidden email]
Cc: [hidden email]; [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 3:32 PM
To: [hidden email]
Cc: [hidden email]; [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Thursday, March 05, 2009 5:55 PM
To: [hidden email]
Cc: [hidden email]
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: [hidden email] [mailto:[hidden email]] On Behalf Of Bogdan-Andrei Iancu
> Sent: Thursday, March 05, 2009 4:57 PM
> To: [hidden email]
> Cc: [hidden email]
> 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: [hidden email] [mailto:[hidden email]]
>> Sent: Thursday, March 05, 2009 12:49 PM
>> To: [hidden email]
>> Cc: [hidden email]
>> 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
>>> [hidden email]
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users





_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Restrict Simultaneous-Use

Robert Borz
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: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 11:28 PM
To: 'Brett Nemeroff'; [hidden email]
Cc: [hidden email]
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: [hidden email] [mailto:[hidden email]] On Behalf Of Brett Nemeroff
Sent: Friday, March 06, 2009 11:12 PM
To: [hidden email]
Cc: [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 4:10 PM
To: [hidden email]
Cc: [hidden email]; [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 3:32 PM
To: [hidden email]
Cc: [hidden email]; [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Thursday, March 05, 2009 5:55 PM
To: [hidden email]
Cc: [hidden email]
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: [hidden email] [mailto:[hidden email]] On Behalf Of Bogdan-Andrei Iancu
> Sent: Thursday, March 05, 2009 4:57 PM
> To: [hidden email]
> Cc: [hidden email]
> 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: [hidden email] [mailto:[hidden email]]
>> Sent: Thursday, March 05, 2009 12:49 PM
>> To: [hidden email]
>> Cc: [hidden email]
>> 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
>>> [hidden email]
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users





_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Restrict Simultaneous-Use

Brett Nemeroff
Robert,
I do all my work on a Mac, so I'll have to see if their Mac client is still available. 

Are you doing any other header rewriting? Any header? Especially To/From/Contact.

This is the key to your problems. From your previous message:
"WARNING:dialog:dlg_onroute: unable to find dialog for BYE with route param '3e9.031ba213'"

Means it got the bye, but it doesn't know how to match it to anything. When that happens, there is no question, the dialog WILL be left open. Out of curiousity, are the BYEs answered with a 200OK or a 481 maybe?
-Brett



On Fri, Mar 6, 2009 at 5:15 PM, Robert Borz <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 11:28 PM
To: 'Brett Nemeroff'; [hidden email]
Cc: [hidden email]
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: [hidden email] [mailto:[hidden email]] On Behalf Of Brett Nemeroff
Sent: Friday, March 06, 2009 11:12 PM
To: [hidden email]
Cc: [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 4:10 PM
To: [hidden email]
Cc: [hidden email]; [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 3:32 PM
To: [hidden email]
Cc: [hidden email]; [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Thursday, March 05, 2009 5:55 PM
To: [hidden email]
Cc: [hidden email]
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: [hidden email] [mailto:[hidden email]] On Behalf Of Bogdan-Andrei Iancu
> Sent: Thursday, March 05, 2009 4:57 PM
> To: [hidden email]
> Cc: [hidden email]
> 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: [hidden email] [mailto:[hidden email]]
>> Sent: Thursday, March 05, 2009 12:49 PM
>> To: [hidden email]
>> Cc: [hidden email]
>> 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
>>> [hidden email]
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users






_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Restrict Simultaneous-Use

Robert Borz
Hi Brett,

thank you really much for your assistance! :-) I think the mac client from counterpath is still available.

Ok, so I'll try to have a more detailed look at the trace of ngrep and tcpdump, again.

But, to give me a better understanding, isn't it enough that just one client of a dialog sends a "correct" BYE message?


Regards,
Robert.

________________________________________
From: [hidden email] [mailto:[hidden email]]
Sent: Saturday, March 07, 2009 12:19 AM
To: [hidden email]
Cc: [hidden email]
Subject: Re: [OpenSIPS-Users] Restrict Simultaneous-Use

Robert,
I do all my work on a Mac, so I'll have to see if their Mac client is still available.

Are you doing any other header rewriting? Any header? Especially To/From/Contact.

This is the key to your problems. From your previous message:
"WARNING:dialog:dlg_onroute: unable to find dialog for BYE with route param '3e9.031ba213'"

Means it got the bye, but it doesn't know how to match it to anything. When that happens, there is no question, the dialog WILL be left open. Out of curiousity, are the BYEs answered with a 200OK or a 481 maybe?
-Brett


On Fri, Mar 6, 2009 at 5:15 PM, Robert Borz <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 11:28 PM
To: 'Brett Nemeroff'; [hidden email]
Cc: [hidden email]
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: [hidden email] [mailto:[hidden email]] On Behalf Of Brett Nemeroff
Sent: Friday, March 06, 2009 11:12 PM
To: [hidden email]
Cc: [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 4:10 PM
To: [hidden email]
Cc: [hidden email]; [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 3:32 PM
To: [hidden email]
Cc: [hidden email]; [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Thursday, March 05, 2009 5:55 PM
To: [hidden email]
Cc: [hidden email]
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: [hidden email] [mailto:[hidden email]] On Behalf Of Bogdan-Andrei Iancu
> Sent: Thursday, March 05, 2009 4:57 PM
> To: [hidden email]
> Cc: [hidden email]
> 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: [hidden email] [mailto:[hidden email]]
>> Sent: Thursday, March 05, 2009 12:49 PM
>> To: [hidden email]
>> Cc: [hidden email]
>> 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
>>> [hidden email]
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users






_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Restrict Simultaneous-Use

Robert Borz
In reply to this post by Robert Borz
Now I started over with a simpler configuration without NAT traversal stuff, and the all dialogs seem to get cleared correctly. Now I have to cross check my two configurations...

Is there something I've to take care for if I want to do NAT traversal and channel limiting with dialog profiles at the same time?


Regards,
Robert

-----Original Message-----
From: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 11:28 PM
To: 'Brett Nemeroff'; [hidden email]
Cc: [hidden email]
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: [hidden email] [mailto:[hidden email]] On Behalf Of Brett Nemeroff
Sent: Friday, March 06, 2009 11:12 PM
To: [hidden email]
Cc: [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 4:10 PM
To: [hidden email]
Cc: [hidden email]; [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Friday, March 06, 2009 3:32 PM
To: [hidden email]
Cc: [hidden email]; [hidden email]
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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
Sent: Thursday, March 05, 2009 5:55 PM
To: [hidden email]
Cc: [hidden email]
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: [hidden email] [mailto:[hidden email]] On Behalf Of Bogdan-Andrei Iancu
> Sent: Thursday, March 05, 2009 4:57 PM
> To: [hidden email]
> Cc: [hidden email]
> 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: [hidden email] [mailto:[hidden email]]
>> Sent: Thursday, March 05, 2009 12:49 PM
>> To: [hidden email]
>> Cc: [hidden email]
>> 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
>>> [hidden email]
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users





_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Restrict Simultaneous-Use

Bogdan-Andrei Iancu
In reply to this post by Robert Borz
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: [hidden email] [mailto:[hidden email]]
> Sent: Friday, March 06, 2009 11:28 PM
> To: 'Brett Nemeroff'; [hidden email]
> Cc: [hidden email]
> 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: [hidden email] [mailto:[hidden email]] On Behalf Of Brett Nemeroff
> Sent: Friday, March 06, 2009 11:12 PM
> To: [hidden email]
> Cc: [hidden email]
> 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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
> Sent: Friday, March 06, 2009 4:10 PM
> To: [hidden email]
> Cc: [hidden email]; [hidden email]
> 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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
> Sent: Friday, March 06, 2009 3:32 PM
> To: [hidden email]
> Cc: [hidden email]; [hidden email]
> 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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
> Sent: Thursday, March 05, 2009 5:55 PM
> To: [hidden email]
> Cc: [hidden email]
> 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: [hidden email] [mailto:[hidden email]] On Behalf Of Bogdan-Andrei Iancu
>> Sent: Thursday, March 05, 2009 4:57 PM
>> To: [hidden email]
>> Cc: [hidden email]
>> 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: [hidden email] [mailto:[hidden email]]
>>> Sent: Thursday, March 05, 2009 12:49 PM
>>> To: [hidden email]
>>> Cc: [hidden email]
>>> 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
>>>> [hidden email]
>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>>
>>>>
>>>>
>>>>
>>>>        
>>>
>>>      
>> _______________________________________________
>> Users mailing list
>> [hidden email]
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>
>>
>>    
>
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>
>
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>  


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Restrict Simultaneous-Use

Robert Borz
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: [hidden email] [mailto:[hidden email]] On Behalf Of Bogdan-Andrei Iancu
Sent: Monday, March 09, 2009 2:08 PM
To: [hidden email]
Cc: [hidden email]
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: [hidden email] [mailto:[hidden email]]
> Sent: Friday, March 06, 2009 11:28 PM
> To: 'Brett Nemeroff'; [hidden email]
> Cc: [hidden email]
> 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: [hidden email] [mailto:[hidden email]] On Behalf Of Brett Nemeroff
> Sent: Friday, March 06, 2009 11:12 PM
> To: [hidden email]
> Cc: [hidden email]
> 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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
> Sent: Friday, March 06, 2009 4:10 PM
> To: [hidden email]
> Cc: [hidden email]; [hidden email]
> 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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
> Sent: Friday, March 06, 2009 3:32 PM
> To: [hidden email]
> Cc: [hidden email]; [hidden email]
> 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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
> Sent: Thursday, March 05, 2009 5:55 PM
> To: [hidden email]
> Cc: [hidden email]
> 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: [hidden email] [mailto:[hidden email]] On Behalf Of Bogdan-Andrei Iancu
>> Sent: Thursday, March 05, 2009 4:57 PM
>> To: [hidden email]
>> Cc: [hidden email]
>> 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: [hidden email] [mailto:[hidden email]]
>>> Sent: Thursday, March 05, 2009 12:49 PM
>>> To: [hidden email]
>>> Cc: [hidden email]
>>> 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
>>>> [hidden email]
>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>>
>>>>
>>>>
>>>>
>>>>        
>>>
>>>      
>> _______________________________________________
>> Users mailing list
>> [hidden email]
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>
>>
>>    
>
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>
>
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>  


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Restrict Simultaneous-Use

Bogdan-Andrei Iancu
Hi Robert,

remove_hf() does not interfere with the dialog stuff at all....only the
loose_route() - its presence in the script is mandatory for dialog
module to work.

I do not have the big picture of your cfg, but for the getting rid of
the proxy-auth hdr, you should simply use the algorithm:

if you do auth -> use consume_credentials
   -> if no auth, use remove_hf()


Regards,
Bogdan

Robert Borz wrote:

> 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: [hidden email] [mailto:[hidden email]] On Behalf Of Bogdan-Andrei Iancu
> Sent: Monday, March 09, 2009 2:08 PM
> To: [hidden email]
> Cc: [hidden email]
> 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: [hidden email] [mailto:[hidden email]]
>> Sent: Friday, March 06, 2009 11:28 PM
>> To: 'Brett Nemeroff'; [hidden email]
>> Cc: [hidden email]
>> 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: [hidden email] [mailto:[hidden email]] On Behalf Of Brett Nemeroff
>> Sent: Friday, March 06, 2009 11:12 PM
>> To: [hidden email]
>> Cc: [hidden email]
>> 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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
>> Sent: Friday, March 06, 2009 4:10 PM
>> To: [hidden email]
>> Cc: [hidden email]; [hidden email]
>> 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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
>> Sent: Friday, March 06, 2009 3:32 PM
>> To: [hidden email]
>> Cc: [hidden email]; [hidden email]
>> 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 <[hidden email]> 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: [hidden email] [mailto:[hidden email]]
>> Sent: Thursday, March 05, 2009 5:55 PM
>> To: [hidden email]
>> Cc: [hidden email]
>> 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: [hidden email] [mailto:[hidden email]] On Behalf Of Bogdan-Andrei Iancu
>>> Sent: Thursday, March 05, 2009 4:57 PM
>>> To: [hidden email]
>>> Cc: [hidden email]
>>> 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: [hidden email] [mailto:[hidden email]]
>>>> Sent: Thursday, March 05, 2009 12:49 PM
>>>> To: [hidden email]
>>>> Cc: [hidden email]
>>>> 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
>>>>> [hidden email]
>>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>        
>>>>>          
>>>>      
>>>>        
>>> _______________________________________________
>>> Users mailing list
>>> [hidden email]
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>>
>>>    
>>>      
>> _______________________________________________
>> Users mailing list
>> [hidden email]
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>
>>
>>
>>
>> _______________________________________________
>> Users mailing list
>> [hidden email]
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>  
>>    
>
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>  


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
12