1

I need tips to build an infrastructe to send 1000 simultaneous voice calls (automated IVR calls with voicexml). Up to now i used asterisk with voiceglue but now i have performance issues.

The infrasturcture was like this:

  • the asterisk pulls request from queue

  • the queue consumer create a call file

  • when the call ends, call file is read and status is sent to the application server

To be honest, i am asking for tips to implement an infrastructure like callfire[1] or voxeo[2]?

[1]https://www.callfire.com/

[2]http://voxeo.com/

ndemir
  • 1,881
  • 3
  • 19
  • 25

5 Answers5

1

you can go with voxeo prophecy (http://voxeo.com/prophecy/) one of the good server which have the capability of making simultaneous voice calls

Note: The requirement which your are expecting to do will not only possible with voxeo prophecy it should also depend the web server like Tomcat, IIS e.t.c in case if you dealing with databases like Sql , Oracle e.t.c

Please do refer to know the architecture http://www.alpensoftware.com/define_VoiceOverview.html

Sainath Patwary karnate
  • 3,165
  • 1
  • 16
  • 18
1

CallFire's API has a CreateBroadcast method where you can throw up an IVR using their XML in seconds. You can read up on the documentation here:

https://www.callfire.com/api-documentation/rest/version/1.1#!/broadcast

CallFire also offers a PHP-SDK, hosted on Github, with examples of how to do this. The SDK is minimal setup and allows you to easily tap into the APIs robust functionality. Version 1.1 can be found here, with instructions on how to get started: https://github.com/CallFire/CallFire-PHP-SDK

The method call might look something like this. Note the required dependencies.

<?php
use CallFire\Api\Rest\Request;
use CallFire\Api\Rest\Response;
require 'vendor/autoload.php';

$dialplan = <<<DIALPLAN
<dialplan><play type="tts">Congratulations! You have successfully configured a CallFire I V R.</play></dialplan>
DIALPLAN;

$client = CallFire\Api\Client::Rest("<api-login>", "<api-password>", "Broadcast");

$request = new Request\CreateBroadcast;
$request->setName('My CallFire Broadcast');
$request->setType('IVR');
$request->setFrom('15551231234'); // A valid Caller ID number
$request->setDialplanXml($dialplan);

$response = $client->CreateBroadcast($request);
$result = $client::response($response);
if($result instanceof Response\ResourceReference) {
    // Success
}
ObiWanShanobi
  • 442
  • 1
  • 5
  • 10
0

You can read this:

http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out

Main tip: you WILL have ALOT of issues. If you are not expert with at least 5 years development experience with asterisk, you have use already developed dialling cores or hire guru. There are no opensource core that can do more then 300 calls on single server.

You can't do 1000 calls on single asterisk in app developed by "just nice developer". It will just not work.

Task of create dialling core for 1000 calls is "rocket science" type task. It require very special dialling core, very special server/server tunning and very specialized dialler with pre-planning.

1000 calls will result 23Mbit to 80Mbit bandwidth usage with SMALL packets, even that single fact can result you be banned on your hosting and require linux network stack be tunned.

arheops
  • 15,544
  • 1
  • 21
  • 27
0

You can use ICTBroadcast REST API to integerate your application with reknown autodialer , please visit following link for more detail

http://www.ictbroadcast.com/news/using-rest-api-integerate-ictbroadcast--third-party-application-autodialer

ICTBroadcast is based on asterisk communication engine

0

I've already done this for phone validation and for phone message broadcasting using Asterisk and Freeswitch. I would go with Freeswitch and xmlrpc: https://wiki.freeswitch.org/wiki/Freeswitch_XML-RPC

olivecoder
  • 2,858
  • 23
  • 22