It does not require a b2bua. It can be done in the proxy call control
module that send out the BYEs and the rating engine. Just the
algorithm need to be defined.
--
Adrian
On Sep 5, 2008, at 11:05, Alex Balashov <abalashov(a)evaristesys.com>
wrote:
In my experience dealing with it, it is precisely at
the point where
multiple calls are involved that using a proxy for rating and
mediation purely becomes an impossible headache.
The conclusion I always came to in my implementations, which too
always started out with the noble goal of dealing with it all in
proxy, is that to properly handle this, I would need to extend the
functionality to include a B2BUA through which the calls are run
that can sit there and monitor them at a relatively low interval and
record updates to their duration into the database.
The B2BUA would need some sort of call control API, like Asterisk's
Manager API, or whatever Yate has, so that an outside process can
sit there and do statekeeping on the calls. You could do this
without handling media by using the B2BUA in a purely signaling
capacity, which I think is how Yate functions by default, and how
Asterisk can function with the "directrtpsetup" option in sip.conf.
It is then possible to know in reasonably real time the call
duration without waiting for an accounting stop event and thus make
the determination of whether another call should be allowed given
the balance depletion.
-- Alex
Adrian Georgescu wrote:
The problem with concurrent prepaid calls and
single balance is
that you have to correlate between the call control and rating
angine somehow so that all calls terminate when balnce becomes
zero. The problem is a bit complex:
Example:
Balance = 10.
A call starts to destination XXX, for the sake of example max
session time = 2 minutes
After one minute, you start second call to destination YYY which
has a different price and your balance is not anymore 10 but
depends on the duration of the first call which is in progress.
What is the maximum session time for it given that the first call
is already in progress?
What should happen with the first call?
I am looking for suggestions on implementing a proper algorithm to
deal with this situation in the rating engine. If you have any I
would be glad to hear it.
Adrian
_______________________________________________
Users mailing list
Users(a)lists.kamailio.org
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
--
Alex Balashov
Evariste Systems
Web :
http://www.evaristesys.com/
Tel : (+1) (678) 954-0670
Direct : (+1) (678) 954-0671
Mobile : (+1) (706) 338-8599