[OpenSER-Users] concurrent call limit per user / customer
Patrick Miccio
patrick.miccio at inode.at
Thu Jun 12 19:01:31 CEST 2008
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 at lists.openser.org
> > http://lists.openser.org/cgi-bin/mailman/listinfo/users
> >
> >
>
More information about the Users
mailing list