ndemir
ndemir

Reputation: 1911

How to Implement an Infrastructure for Automed IVR calls?

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:

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/

Upvotes: 1

Views: 1177

Answers (5)

olivecoder
olivecoder

Reputation: 2914

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

Upvotes: 0

ObiWanShanobi
ObiWanShanobi

Reputation: 442

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
}

Upvotes: 1

Muhammad Tariq
Muhammad Tariq

Reputation: 19

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

Upvotes: 0

Sainath Patwary karnate
Sainath Patwary karnate

Reputation: 3195

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

Upvotes: 1

arheops
arheops

Reputation: 15259

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.

Upvotes: 0

Related Questions