Asterisk 在adhearsion中实现呼叫队列

Asterisk 在adhearsion中实现呼叫队列,asterisk,adhearsion,Asterisk,Adhearsion,我需要在asterisk+adhearsion中实现下面的用例,但不确定如何实现 当客户来电时。我检查可用代理列表如果代理忙,我需要将呼叫放入超时队列。如果代理在给定的超时时间内没有空闲,则调用将挂起,否则调用将被路由到代理 你知道如何实现这个流程吗?有几种方法可以实现这个流程,你的方法很大程度上取决于你如何知道代理是否可用?我的建议是: 电话进来了 连接路由器,将呼叫路由到入站呼叫控制器 此绑定控制器检查您的代理列表 如果代理可用且未接听电话,您可以使用“拨号”命令呼叫代理并自动加入两个呼叫

我需要在asterisk+adhearsion中实现下面的用例,但不确定如何实现

当客户来电时。我检查可用代理列表如果代理忙,我需要将呼叫放入超时队列。如果代理在给定的超时时间内没有空闲,则调用将挂起,否则调用将被路由到代理


你知道如何实现这个流程吗?

有几种方法可以实现这个流程,你的方法很大程度上取决于你如何知道代理是否可用?我的建议是:

  • 电话进来了
  • 连接路由器,将呼叫路由到入站呼叫控制器
  • 此绑定控制器检查您的代理列表
  • 如果代理可用且未接听电话,您可以使用“拨号”命令呼叫代理并自动加入两个呼叫
  • 如果代理可用且有活动呼叫,则可以使用“加入”
  • 如果没有可用的代理,则使用“play”命令异步播放一些保持音乐,同时不断检查代理是否可用
  • 当您检测到一个代理可用时,您可以“停止”保留音乐并拨打该代理的电话
为了确定哪些代理可用,您需要某种类型的代理列表及其相关状态,在他们接听电话时更新这些列表和状态。或者,您可以尝试直接从asterisk extensions.conf文件或DB(如果您使用的是PIAF)中提取一些信息

您需要编写这样的代码的大多数示例都在Adhearsion网站上给出

编辑: 现在更好的方法是使用调用队列模块。最近在这方面已经做了很多工作,现在它是一个相当稳定的呼叫队列