我正在尝试使用Asterisk完成所有通过AMI调用逻辑的软件,仅使用Asterisk作为VOIP,SIP / GSM的接口。几乎一切都很好,但......:
这是我的情景: - 来电转发到公告,然后转发给MOH - 我的应用程序决定使用AMI Action:Originate拨打哪些分机号码(7777) - 一旦有人接收到分机,他/她的频道(例如SIP / 306-xxxxx)将使用AMI操作桥接等待呼叫频道:Bridge
在此之前一切正常,两个关联方都可以互相听到,按需录制工作。一切都很好。
现在我正尝试在其中一个桥接通道上使用AMI进行辅助转移到另一个分机(Atxfer)。它不起作用。我在一个频道上收到了关于DTMF的几个ami事件(音频在播放时被静音)。每个DTMF数字都可以快速连接:AMI上的unlink和Bridge:link事件。
我尝试更改dtmfmode,从星号1.8升级到11(现在是星号),它始终是相同的。
虽然在这些频道上使用Atxfer盲转移存在这些问题(使用AMI操作:重定向)。
完整日志显示没有这样的内容:
[2013-11-11 20:24:57] DEBUG [9457]:features.c:3740 feature_interpret:特征解释:chan = SIP / 306-00000017,peer = SIP / GTS-00000016,code = * 2 ,sense = 1,features = 0,dynamic = apprecord #receord
答案 0 :(得分:0)
我建议你为初学者阅读一些星号书,如ORelly的“Asterisk the telephony”。
在您的情况下,正确的解决方案是使用星号拨号命令进行第一个频道而不是第二个呼叫创建。
目前尚不清楚如何使用AMI进行转移。如果你想通过ami(这是非常糟糕的方式),你做了类似的事情
转移请求(数字)取消布鲁奇频道。最好在那之后把它放在AsyncAGI中。
使用读取命令
转移到新目的地
如果再次失败桥接
注意:您生成的应用程序将非常错误且无法扩展。当你在同一个盒子上运行很多动作和通道时,AMI接口不是为了做这些事而设计的。因此,您可以在hi并发加载下测试您的应用程序,以确保它正常工作(或者更有可能不起作用)。