呼叫文件可以搜索可用频道吗?

时间:2012-01-13 04:12:27

标签: asterisk

我正在为服务器上的公司编写一个robocaller,该服务器也有来电。我有一个AMI轮询设置,确保在推送呼叫文件之前有一定数量的可用频道,但我不知道哪些特定频道将被打开。由于我无法确定在生成.call文件时哪个频道将被打开,是否有办法自动为呼叫分配免费频道,方式是自动分配传入/传输/桥接频道,或者仅此拨号方案内可能吗?如果可以在拨号计划之外,你会推荐什么?

2 个答案:

答案 0 :(得分:0)

只有使用拨号方案,您才需要在发起任何呼叫时检查是否由robocaller保留src / dst频道。还有另一种方法:收听AMI事件,检查新频道,如果保留频道使用 - 发送此频道的挂断。

答案 1 :(得分:0)

对于通过搜索找到此内容的任何人,我找到了更好的方式。

首先使用.call文件调用本地频道。务必将呼叫文件中的PHONENUMBER变量设置为您最终要调用的号码。然后我们找到一个可用的频道并将其称为:

exten => 1,1,ChanIsAvail(Appropriate channels here); Checks if those channels are available and assigns ${AVAILORIGCHAN} an available channel
exten => 1,2,Dial(${AVAILORIGCHAN}${PHONENUMBER}/n); Dials the phone number on the available channel. The /n is very important if you plan on changing CDR variables after the call goes through. Otherwise, leave it out.
exten => 1,3,Hangup(); Clean up the local channel when we're done with it.

这会将您的被调用者转发到调用文件中CONTEXT和EXTENSION变量中列出的上下文和扩展名。