Methods for making cheap calls through an Asterix PBX
2012/04/11 1 Comment
The methods described in this post relate mostly to using FreePBX and some additonal add-ons developped by the VoIP community (e.g. Nerdvittles/PBX in a Flash). This means, that next to installing Asterisk 1.8, it is also required to install a LAMP stack and that Asterisk and the Apache/PHP scripts are all executed by the same user (e.g. user & group asterisk).
Method 1: Using DISA (Direct Inbound System Access)
DISA is an application, which can be used as destination for an inbound route. When dialed and connected, the DISA will sound a dial-tone and accept DTMF tones entered by the calling party, thus setting up a telephone connection according to whatever was dialed.
Pros
- In FreePBX, the DISA function is already implemented and can be used out of the box from the GUI
- No additional dialplan manipulation in extensions_custom.conf necessary
- Call automation from mobile phones by setting up the DID number of the DISA as dial prefix with additional wait time, can easily be implemented in already existing calling apps for iOS and Android
Cons
- Whitelisting inbound CallerIDs must be entered manually as custom dialplan in extensions_custom.conf
- Users must consider, that dialing a number must happen just as if they were calling from their desk phone, e.g. prefixing a 0 for dialing to the outside world
- Altering CallerIDs (convergence!!!) must also be maintained manually in extension_custom.conf
Method 2: Using Callback
Tha Callback function is also implemented in FreePBX and is using the Asterisk Manager Interface (AMI). A Callback application can be used as destination of an inbound route and the Callback app itself also has a destination. When a call is made to the inbound route to a Callback app, then the app registers the number of the caller, hangs up and calls the caller back on the provided number. Once the callback is executed, the originator then is forwarded to a custom destination of the callback app, e.g. a DISA application, an IVR menu or even a fixed number/ring group. This method is especially handy when wanting to make cheap calls from a roaming network (e.g. when abroad).
Pros
- Runs out of the box in FreePBX
- No additional dialplan manipulation needed
Cons
- iOS and Android don’t allow 3rd party apps to submit DTMF tones on incoming calls, only when dialing out. This means, that making calls via a Callback extension can’t be easily automated like when calling a DISA directly.
- Whitelisting and editing CallerIDs must be maintained manually in a custom dialplan in extensions_custom.conf
- It’s slow, depending on the subscriber’s network and the landline provider, dialing in-out-in-out will take some time and the hangup signal from the Callback app isn’t always sent to the caller within an acceptably short time frame (less than 10 seconds), thus the Callback needs to be configured to allow for a FIXED time gap between original call and return call.
Method 3: Using Click-To-Call
Click-To-Call is an application used by many callcenters, Google Voice etc. It basically is a script at an arbitrary URL which can take both parties of a call and then make a call to each one and connect the calls on one channel. It also uses the the AMI for making the calls. One popular implementaion is Asteridex from Nerdvittles.
Pros
- The script at the URL can practically do anything you want it to do, alter phone numbers and CallerIDs from a database (convergence!!!), whitelisting for originators etc. You name it, it can do it.
- It’s free
- It’s faster than DISA and Callback
Cons
- When using this method from a mobile phone, then the dataplan must cover the traffic generated from this app. This is especially important when using this method in a roaming network/abroad.
Great summary! Thank you for putting it out there