I’m building a system that allows a bunch of raspberry pis running asterisk to call each other on a local wifi network. One RPi acts as a hub controlling calls, others act as dumb softphones, simply auto answering calls. Softphones on all of these devices are going to be written using Adhearsion, in ruby.
So I think I can do this in one of two ways, but I’m unsure about the ramifications of them:
A) I setup the dumb RPis as extensions under the asterisk instance with the RPi acting as hub. Conference calls would be between extensions.
B) I use each RPi’s own asterisk instance and do conference calls between with the trunks.
Speed is my big constraint here, as the RPi can only handle about 10 people on a conference call. I really have no idea which option is less intensive, or if the bottleneck is even affected by this. I tend to think it doesn’t matter, though I can’t find anything to back that up.
Otherwise I think it’s probably easier to setup everything as extensions through FreePBX, using static IPs for each RPi on the network. Does this make sense, what would you guys do in this situation?
Separately, I’m having a bit of trouble figuring out how to setup extensions for devices on the local network, using their IP. Should I be setting the extension’s IP somewhere in the “Add SIP Extension” page, or does this qualify as a remote extension that would require me to follow the instructions here: http://wiki.freepbx.org/pages/viewpage.action?pageId=4161590
Any help at all is much appreciated, I’m a bit of a newbie when it comes to phone networks. Thanks in advance!
There is no concept of a hub with Asterisk, it is a B2BUA, Each call needs to be handled as a “through” the more enddpoints the more load, so you might need to investigate RasPi as a sip proxy for a more ballsy machine , because what you are trying to do will “run out of gas” quickly as you add more calls.
Basically I see the RasPBX works well for about 6 calls without transcoding. YMMV
Oh I see. Instead of the proxy I could probably just replace the RPi altogether with something more beefy. So if this device is calling all the other RPis and managing them (joining/kicking from the conference), is it the only device that needs to be beefy here? Those RPs that answer aren’t handling the load right?
If I’m building a computer specifically to handle conference calls between large numbers of people, is the CPU the big bottleneck? How many calls do you think a modern high-end CPU could handle?
If you use a decent media server on decent hardware probably a couple of hundred, on Asterisk running on a Pi perhaps 10.
You need to detach the audio from all your Asteri to the media server, which probably will be a proxy or the problem will remain. Asterisk currently just doesn’t have a conferencing solution that is scalable to high levels.