不确定做这件事的最佳方法是什么,甚至不确定它是否可行。我在我的服务器上安装了PHP和MySQL、FreeSWITCH、FreeSWITCH PHP,并绑定到网关上。在数据库中,我有一个存储电话号码对的表,我希望在这些电话号码之间架设桥梁。该表的简短版本如下所示:
+-----+--------------+--------------+
| | Callee_1 | Callee_2 |
+-----+--------------+--------------+
| 1 | 1112223333 | 2223334444 |
| 2 | 6667778888 | 7778889999 |
| 3 | 1123581321 | 3455891442 |
+-----+--------------+--------------+我一直在努力实现的是用FreeSWITCH构建一个自动呼叫中心,这样我就可以自动调用表中的Callee_1,并在Callee_1恢复后播放IVR。如果Callee_1按下1,我将连接到Callee_2的电话,这样他们就可以在电话里说话了。
我正在考虑设置一个CronJob,它定期从表中获取新行,然后循环遍历它们,并使用PHP ESL发起对Callee_1的调用。
$sock->api("originate sofia/gateway/myProvider/$Callee_1 &ivr(my_ivr)");my_ivr:
<menu name="my_ivr"
greet-long="say:Thank you for filling out the form."
greet-short="say:Thank you.
......
digit-len="4">
<entry action="menu-exec-app" digit="1" param="bridge sofia/gateway/myProvider/Callee_2/>
</menu>到目前为止,一切似乎都很好,但我遇到了如何将相应的Callee_2的电话号码动态地传递给IVR条目的问题。我应该重写ivr并为每对重新加载吗?我试过配置卷曲,但没有成功。每次我尝试重新加载IVR时,fs_cli都会生成"405不允许“错误。我还检查了HTTAPI,它似乎不符合我在这里的需要,因为它需要使用会话。任何洞察力都是值得赞赏的。谢谢!
发布于 2014-03-14 19:56:26
我是行动小组,现在回答我自己的问题。事实证明,我把事情搞得太复杂了,使用FreeSWITCH是非常直观的。简单地设置一个通道变量
originate {callee_2=2223334444}sofia/gateway/myProvider/1112223333 &ivr(my_ivr)访问ivr xml中的通道变量。
<menu name="my_ivr"
greet-long="say:Thank you for filling out the form."
greet-short="say:Thank you.
......
digit-len="4">
<entry action="menu-exec-app" digit="1" param="bridge sofia/gateway/myProvider/${callee_2}/>
</menu>会成功的。希望能帮上忙。
发布于 2014-03-14 15:26:11
在menu-exec-app中,您可以执行Lua或其他脚本来查找数据库中的目标。
https://stackoverflow.com/questions/22407313
复制相似问题