You can limit per contract. Check if the user belongs to a contract
and then perform contract profiling instead of caller/callee
profiling. That's the big thing about OpenSER: very flexible config.
Regards,
Ovidiu Sas
On Thu, Jun 12, 2008 at 1:01 PM, Patrick Miccio <patrick.miccio(a)inode.at> wrote:
Hi,
that sounds promising, I like the 2nd example, limiting calls to PSTN is the idea.
The only problem is that OpenSER does only know about username/uuid, you cannot control
if a customer with 1 contract
uses 2 or more usernames. Then again we could limit calls based on the source IP, but
customers can have more than 1
contract. . .
I thought about saving it in the usr_preferences somewhat like this:
+--------+------------+--------+-----------+------+-------+---------------------+
| uuid | username | domain | attribute | type | value | modified |
+--------+------------+--------+-----------+------+-------+---------------------+
| 109357 | 0123456789 | | 100 | 2 | 1234 | 2008-06-09 18:09:37 |
| 109357 | 0123456789 | | 101 | 3 | 10 | 2008-06-09 18:09:37 |
| 102826 | 0987654321 | | 100 | 2 | 1234 | 2008-06-09 18:09:37 |
| 102826 | 0987654321 | | 101 | 3 | 10 | 2008-06-09 18:09:37 |
this way you could have different uuids, but a common value of for example here 1234, and
use that to identify the
caller/contract.
cheers,
Patrick.
Hi Patrick,
Take a look at the dialog module and dialog profiling support - I think
it will help you:
http://lists.openser.org/pipermail/users/2008-June/017710.html
There is even an example similar to what you want to do.
Regards,
Bogdan
Patrick Miccio wrote:
Hi @ all,
I was wondering if anyone of you guys already implemented a system where one could limit
the maximum number of
concurrent calls? With ISDN-terminaladapters or analog-telefon-adapters it is no problem
because the hardware
itself is the limiting device, but with the growing amount of IP PBXs the need becomes
obvious.
I am playing with the thought of writing something myself, but I am more a copy&paste
programmer, so it will take
quite some time :D
Maybe someone here likes the idea?
Here are my thoughts of how a module could provide a simple functionality:
INVITE: check
200 OK: create
Re-INVITE: update
BYE: delete
must provide:
create_call()
update_call()
delete call()
check_limit()
create must save uuid,from,to,callid,timestamp in DB, from/to just for human readability
;)
update must update timestamp with uuid/callid match ( we enforce 300sec re-invite call
refresh )
delete must delete the DB entry with uuid/callid match
check must count DB entries with uuid match and return amount of active calls.
cheers,
Patrick.
_______________________________________________
Users mailing list
Users(a)lists.openser.org
http://lists.openser.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
Users(a)lists.openser.org
http://lists.openser.org/cgi-bin/mailman/listinfo/users