You are correct. There are several workarounds for this, but for the most part, what you
need is some sort of B2BUA functionality. Essentially, the call needs to go through a UAS
that DOES keep track. The new SEMS is supposed to have some of this functionality,
although I don't know much about it. Some people use Asterisk (with Asterisk B2BUA).
We ended up writing our own Asterisk B2BUA as the Asterisk B2BUA code from sourceforge had
things in it we neither wanted nor used and their patches never seem to be up to date on
the later versions of Asterisk (current code out there works in a guaranteed way only for
Asterisk 1.2.1, though it wasn't until after 1.2.9.1 that we had to seriously rewrite
the patch). The sourceforge code works, though, for earlier versions of Asterisk, and is
an excellent starting place if you've little desire to write the whole thing
yourself.
The concept of using Asterisk is pretty simple: call gets forwarded from SER to an
Asterisk AGI program (C, Perl, etc) that does all the magic. The easiest way is to do a
balance check when the call comes in to determine the cost of the outgoing call and check
how much time a person has left on the call based on how much money is in their account.
Then, just set up an Asterisk Dial command with the appropriate timeout and let the server
take care of the rest. There are tricks to this, of course. Unless you're somehow
updating call credit and call timeout on the fly, you'll need to limit the incoming
calls to one at a time for each account, or it's easy for someone to call with
multiple phones and rob you of cash.
N.
On Wed, 21 Mar 2007 12:27:27 +0530, Shafraz Thawfeek wrote
Hello All,
Its really feels nice to have joined the list. I'm in theprocess of deploying a SER
based solution for prepaid users. We're using aFreeRadius based billing solution from
a provider. If I'm not mistaken, SER isnot aware of the call state, what this means to
me is, in case the user accounton the radius runs out of credit, SER will not know about
it and will not beable to disconnect the call. Am I correct on this?
If I am correct, I would like to know what would be theworkaround for this? I'm I am
wrong, then I would like to know on how we couldget the call disconnection working?
I have a Nextone which would be sitting in front of theSER and acting as a Mirror Proxy
for SER. The purpose of this is to overcomeNAT traversal issues and free SER from that.
Nextone doesnt understandor talk radius. SER will be the registrar and handle AAA. The
user call will besent back into the Nextone and then terminated from there. SER will not
behandling media. If to get my disconnect upon credit exhaust scenario working,what
changes should I introduce into my existing network model?
Thank you.
Shaf.