我需要提示构建基础设施以发送1000个同时语音呼叫(使用voicexml进行自动IVR呼叫)。到目前为止,我使用了带语音胶的星号,但现在我遇到了性能问题。
基础设施是这样的:
星号从队列中拉取请求
队列使用者创建一个调用文件
当呼叫结束时,将读取呼叫文件并将状态发送到应用程序服务器
老实说,我正在寻求实施像callfire [1]或voxeo [2]这样的基础设施的技巧?
答案 0 :(得分:1)
你可以使用voxeo预言( http://voxeo.com/prophecy/ )一个能够同时进行语音通话的优质服务器
注意:您希望做的要求不仅可以通过voxeo预言实现,还应该依赖于Tomcat,IIS等Web服务器,以防您处理Sql,Oracle等数据库等等
请参考了解架构 http://www.alpensoftware.com/define_VoiceOverview.html
答案 1 :(得分:1)
CallFire的API有一个CreateBroadcast方法,你可以在几秒钟内使用他们的XML抛出IVR。您可以在这里阅读文档:
https://www.callfire.com/api-documentation/rest/version/1.1#!/broadcast
CallFire还提供了一个托管在Github上的PHP-SDK,以及如何执行此操作的示例。 SDK是最小化设置,允许您轻松利用API强大功能。可在此处找到版本1.1,其中包含有关如何入门的说明:https://github.com/CallFire/CallFire-PHP-SDK
方法调用可能看起来像这样。请注意所需的依赖项。
<?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
}
答案 2 :(得分:0)
您可以阅读:
http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out
主要提示:您将 ALOT 的问题。如果您不具备至少5年星号开发经验的专家,您可以使用已经开发的拨号核心或聘请大师。没有开源核心可以在单个服务器上执行超过300次调用。
你不能在由“好开发者”开发的应用中对单个星号进行1000次调用。它将无法正常工作。
为1000个呼叫创建拨号核心的任务是“火箭科学”类型的任务。它需要非常特殊的拨号核心,非常特殊的服务器/服务器调整和非常专业的拨号器以及预先规划。
1000个呼叫将导致23Mbit到80Mbit带宽使用SMALL数据包,即使这一事实可能导致您被禁止在您的主机上并且需要调整linux网络堆栈。
答案 3 :(得分:0)
您可以使用ICTBroadcast REST API将您的应用程序与已知的自动拨号器集成,请访问以下链接以获取更多详细信息
ICTBroadcast基于星号通信引擎
答案 4 :(得分:0)
我已经使用Asterisk和Freeswitch进行电话验证和电话留言广播。我会选择Freeswitch和xmlrpc: https://wiki.freeswitch.org/wiki/Freeswitch_XML-RPC