如何将来自Asterisk的呼叫记录到外部Web服务

时间:2013-11-18 08:19:01

标签: php web-services module asterisk

我被分配了一项任务,通过API记录所有从Salesforce到Salesforce的所有传出呼叫,在搜索Google后,我是Asterisk和FreePBX的新手我发现我可以创建一个自定义模块并可以将其安装在FreePBX,但这不能解决问题,我想要的是将源和目标号码发送到自定义Web服务,搜索一些数据库中的数字,并在一些逻辑和条件后,它记录Salesforce上的调用,我没有创建Web服务或Salesforce API日志记录的问题,我只是想知道一种在挂机后拦截调用并将数字(源/目标)发布到Web服务的方法,我用Google搜索了很多但是找不到任何示例或者样本让我走了。

3 个答案:

答案 0 :(得分:2)

仅用于日志,您可以使用星号cdr模块或CEL。

http://www.voip-info.org/wiki/view/Asterisk+cdr+mysql

http://www.voip-info.org/wiki/view/Asterisk+config+cel.conf

对于控制,您需要使用星号拨号方案进行AGI(FASTAGI)或AMI应用程序或控制。 例如,您可以使用h-extension使用AMI触发事件和记录事件。

首先,如果您不愿意阅读书籍,我建议您阅读Orelly's Asterisk The Fute of Telephony book或聘请顾问。如果不了解星号内部,您的应用程序可能会出现错误/无法扩展。

答案 1 :(得分:1)

您应该查看AGI(如果可以处理TCP套接字,则使用FastAGI)以连接到Web服务。这样,您可以使用您喜欢的任何语言编写自己的代码。目前尚不清楚如何定义源和目标号码,但您可以在知道它们时将这些值存储到变量中(通过在拨号方案上使用Set应用程序),然后使用GET FULL VARIABLE从AGI程序中检索这些值在拨出之前。

答案 2 :(得分:1)

你可以在拨号方案结束时处理这个时刻:

  exten = h,1,AGI(your-script.pl)

在your-script.pl文件中编写逻辑(几乎可以使用任何编程语言)。您可以在官方书籍“Asterisk。电话未来”中找到AGI接口的描述。