通话文件可以搜索可用频道吗?

发布于 2024-12-26 14:18:59 字数 193 浏览 2 评论 0原文

我正在为一家公司的服务器编写一个自动呼叫程序,该服务器也有来电。我设置了 AMI 轮询,以确保在推送呼叫文件之前有一定数量的可用通道,但我不知道哪些特定通道将打开。由于我在生成 .call 文件时无法确定哪些通道将打开,是否有一种方法可以按照自动分配传入/转移/桥接通道的方式自动为呼叫分配空闲通道,或者这只是可以在拨号计划中吗?如果可以在拨号计划之外进行,您会推荐什么?

I'm writing a robocaller for a company on a server which also has incoming calls. I have an AMI poll set up that will make sure there is a certain number of available channels before it pushes a call file through, but I don't know which specific channels will be open. Since I can't be sure at the time of generating my .call files which channels will be open, is there a way to automatically assign free channels to a call the way incoming/transferred/bridged channels are automatically assigned, or is this only possible within the dial plan? If it is possible outside of the dial plan, what would you recommend?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

萌面超妹 2025-01-02 14:19:00

仅适用于拨号方案,您需要在发起任何呼叫的情况下检查 src/dst 通道是否被自动呼叫者保留。还有另一种方法:监听 AMI 事件,检查新频道,如果预留频道使用 - 为该频道发送挂断。

It is only possible with dialplan, you need in case of any call initiated check if src/dst channel is reserved by robocaller. There is also another way: listen AMI events, check for new channels, in case of reserved channel usage - send Hangup for this channel.

梦回梦里 2025-01-02 14:19:00

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

首先使用 .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 变量中列出的上下文和扩展名。

For anyone who finds this via search, I found a better way.

You start by calling a local channel using your .call file. Be sure to set a PHONENUMBER variable in the call file to the number you ultimately want to call. We then find an available channel and call it like this:

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.

This is going to forward your callee to the context and extension listed in the CONTEXT and EXTENSION variables in the call file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文