The problem with Vovida's B2BUA is that it has been a dead project for over two years now. It's no longer maintained, and doesn't mesh well with the current state of SIP.

As for Asterisk B2BUA, it's a perl-based AGI script. It's not the world's fastest because of that, but it's not slow by any stretch, and because it's a relatively simple language, you could probably modify it (or find a cheap perl coder who could modify it) to suit your needs rather easily.  While Asterisk is not known for its huge numbers of concurrent calls, we use it with a canreinvite=yes and ensure that the RTP traffic never really buffers through the server (which is where the only slowdown actually occurs). You could, if you needed an RTP proxy, conceivably somehow fit RTPproxy into the mix and get more concurrent calls than Asterisk would handle.

As for Asterisk B2BUA, it's two things. A patch to the Asterisk code (the patch consists of two additions to the code -- one which allows you to set a variable to only send ONE codec choice through Asterisk (and that portion of the patch doesn't actually work correctly, so it can be scrapped), and one which adds a variable that stores the SIP error code for use in the LCR portion of the Asterisk B2BUA code -- something you could also conceivably do away with if you weren't doing LCR), and the AGI script.  If you want to speed things up, you could rewrite either or both or just use them as a template for your own ideas.

The new SEMS code is... well... new. This isn't to say it's bad. Even the old SEMS code worked well in production for its intended purposes, but as of yet, I don't know anyone who uses the new SEMS code in a large-scale production environment.

You might be able to jury-rig some sort of solution out of a modified Media Proxy, but I've no idea.

There's another solution I know nothing at ALL about which uses Asterisk called AstBill that handles prepaid.

There are commercial solutions available. Alepo is one of them, but it's very expensive. It does EVERYthing, but it's very expensive. VPS-43 by the OpenSER people can supposedly do prepaid. Again, I know little about it other than its name.

There are probably at least a half dozen others available if you look about.

Good luck. :)

The trickiest part is actually finding a PSTN terminations provider that understands the concept of customer service. I actually had one the other day tell us, when we informed them they were in breach of contract, that if we were having so many problems, to please find another carrier... so I wish you all the best with your endeavor.


N.

On Thu, 22 Mar 2007 13:00:18 +0530, Shafraz Thawfeek wrote

> Thank you for the information.
> As a B2BUA, can I use Vovida? Anybody has successfully deployed Vovida with SER for a Prepaid scenario? Or Vovida is a bad idea?
> I am having second thoughts about Asterisk B2BUA, as the resource consumption is gonna be much higher and I’m not gonna make use of all the features. All I want is just make SIP to PSTN calls and Bill them properly. Also, when it comes to scalability, Asterisk is not the best isn’t it?
> Any other alternative solution compared to the above 2 solutions? Can I do something using SEMS? Or is there any recommended commercial, not so expensive B2BUA products out there? Any advise would be much appreciated ;)
>  
>
> From: sip [mailto:sip@arcdiv.com]
> Sent: Wednesday, March 21, 2007 5:08 PM
> To: Shafraz Thawfeek; serusers@lists.iptel.org
> Cc: serusers@iptel.org
> Subject: Re: [Serusers] SER + Prepaid with Radius AAA.

>  
> 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 the process of deploying a SER based solution for prepaid users. We're using a FreeRadius based billing solution from a provider. If I'm not mistaken, SER is not aware of the call state, what this means to me is, in case the user account on the radius runs out of credit, SER will not know about it and will not be able to disconnect the call. Am I correct on this?
> >  
> > If I am correct, I would like to know what would be the workaround for this? I'm I am wrong, then I would like to know on how we could get the call disconnection working?
> >  
> > I have a Nextone which would be sitting in front of the SER and acting as a Mirror Proxy for SER. The purpose of this is to overcome NAT traversal issues and free SER from that. Nextone doesn’t understand or talk radius. SER will be the registrar and handle AAA. The user call will be sent back into the Nextone and then terminated from there. SER will not be handling media. If to get my disconnect upon credit exhaust scenario working, what changes should I introduce into my existing network model?
> >  
> > Thank you.
> > Shaf.
> >  
> >  
>
>