VoIP/Hosted PBX Guidance needed.

oober

Expert Member
Joined
Apr 3, 2005
Messages
3,080
Reaction score
84
Location
Gauteng
I'm developing some software for a company and they have a need to integrate the software with a VoIP solution. I'm currently doing some research and trying to grasp all possible options such as hosted PBX, self hosting a PBX etc. The last time I've dabbled in the VoIP area was more than ten years ago when we installed asterisk based PBX systems for small businesses so my knowledge is a bit rusty.

The minimum requirements at present are:

  • Call Recording
  • 1-2 users(concurrent calls) for now, later on up to 10 users/calls.
  • API(REST?) that I can use to programmatically retrieve call details as well as download the voice recordings of those calls.
  • Doesn't cost an arm and a leg per month. Ideally should not be more than R200 per month for one user. (Excluding calls of course)

I've had a look at euphoriacloudpbx which looks like a possible option. I'm not quite sure what the minimum costs will be? As far as I can tell their enterprise PBX for R85/m + R35 per extension for call recording might be an option? Or will there by some other hidden month to month costs involved? The R2500 setup costs are also a bit prohibitive...

There are other companies like switchtelecom but from my limited understanding their pricing looks to be more expensive for what is needed.

The company also plans to possibly sell this software using a SaaS model later on. So whichever VoIP solution they go with needs to be easy to support and not distract them from their main business. Should there be enough interest it might be more cost effective for them to host their own PBX cloud in a data centre, I haven't really looked into this yet but I think starting out it's safer to use an existing hosted solution as not to veer of course from the main business case.

I've also had a look at setting up their own on-site pbx but it seems to me like there will be more pain this way, especially if they start selling this service to other customers who will then also need an onsite IP PBX solution to support.

Any suggestions on which direction to take? :wtf::o
 
Last edited:
I have done some integration between raw asterisk and Mysql before. Do you just want to query the calls the asterisk made from a database or do you want the asterisk to do queries on your program? eg. display an incoming clients name when it matches their nr in a database?
 
Asterisk is commonly used, we do cloud PBX with Asterisk for R499pm but you don't get console access(Web only) so full access may cost more.
 
I have done some integration between raw asterisk and Mysql before. Do you just want to query the calls the asterisk made from a database or do you want the asterisk to do queries on your program? eg. display an incoming clients name when it matches their nr in a database?

For now I want to retrieve call logs and call recordings. Later on integrating back into asterisk to display a client's name might prove useful

Asterisk is commonly used, we do cloud PBX with Asterisk for R499pm but you don't get console access(Web only) so full access may cost more.

I don't really require full asterisk access if there is an API that covers my needs. Just need to be able to list calls and download recordings. Will contact some of the mentioned companies tomorrow and find out what their API offers.
 
I'm looking for providers that can give me something like this.

Out of interest if one wanted to host your own "Cloud PBX" who can one use locally to host it, using AWS might add too much latency? Distro wise which ones are the easiest to setup these days?

If hosting costs are between R200-R1000 per month it might prove more cost effective later on to setup a hosted PBX and just get SIP accounts from someone. (Hope I understand it correct).
 
Last edited:
We may be able to help. We've done quite a lot of Asterisk integration work and can deal with the hosting aspect as well.

Drop me a PM and I'll get someone to call you.
 
Just and update. I've gone the self hosted pbx route at the moment as the other players were just too expensive. All of them want to force more than X amount of channels on you so if you only want one you pay for X or more channels.

Using a VOX sip account with FreePBX. I've setup call recording that converts only answered calls wav files to mp3 and then syncs the completed mp3 recording to Amazon S3.

The call recording file name has all the information needed for my use case so now I just need to write a service that links up these recordings with the system data.
 
Last edited:
Glad you got sorted.

Tip on converting the wav to mp3: if you use lame to do the conversion there is a preset for voice that will give you good quality/size ratio.
 
in FreePBX advanced settings choose WAV instead of wav as the recording format, file size is tiny compared to mp3 and wav, approx 50KB per min or 3.6MB per hour, mp3@128K 960KB per min or 57MB per hour
 
I had to drop quality majorly because it doesn't like good quality audio for some reason.. so much for crystal clear voip..
 
in FreePBX advanced settings choose WAV instead of wav as the recording format, file size is tiny compared to mp3 and wav, approx 50KB per min or 3.6MB per hour, mp3@128K 960KB per min or 57MB per hour

Thanks the size is not quite 50kb per min its more like 100kb tested just now. It's still smaller than the converted mp3s though. A 20 second WAV file was about 33kb and the same mp3 about 44kb. So I'm using WAV now.
 
I had to drop quality majorly because it doesn't like good quality audio for some reason.. so much for crystal clear voip..

What do you mean? Drop quality of what?

I've installed the free G729a codec and patched the Asterisk source code to allow OPUS on the extension side. One thing I noticed is that if I force g729 in the sip trunk(allow=g729) the quality is not lekker. It sounds like the other party is talking under water. There were also audio source sync issues where my voice and the other party's voice overlapped.

If I don't force it, it's still being used as I can see the codec g729 when I pull the active channel information in the console. Anyone know why this might be? I suspect it might have to do with the packet/buffer size being different if I force it vs not. I read somewhere you can set it using allow=g729:X for the size but I couldn't get a correct setting so I took it out altogether.
 
Last edited:
With regards to Music on Hold, prompts and codecs there are a few things you need to keep in mind. Asterisk will happily transcode between codecs at the cost of some CPU cycles, if you've underspeced your server you will experience problems if there is lots of transcoding going on. For optimal experience you should upload your MoH and prompts in all the codec formats you intend to use, so for internal calls you can benefit from HD codecs and there should be no transcoding.

Generally speaking any SIP trunk you run to a VoIP provider is going to use G729, so it makes sense that whatever prompts or MoH you are going to play to inbound callers is optimized for G729. If you select music that has tones outside the range offered by the codec it will be noticeable during playback (as dips or poor quality audio). If you are making use of Asterisk and G729 for production I would advise you spend the money to license it. You should only need to set the packet size on the trunk, not the extensions. The VoIP provider should stipulate the packet size (if it's not the default of 20ms).
 
Last edited:
you need to ask your SP to adjust their packet size to match your system, if you want the recordings to be perfect they will 10:1 be sending g729:60 and your system by default does g729:20 that is the reason for the quality on recordings
 
Top
Sign up to the MyBroadband newsletter
X