在adhearsion中实现呼叫队列

时间:2014-06-30 11:33:00

标签: asterisk adhearsion

我需要在asterisk + adhearsion中实现以下用例,并且不确定如何做到这一点

当客户来电时。如果代理忙,我检查可用代理列表我需要将呼叫置于超时队列中。如果代理在指定的超时时间内没有空闲,则呼叫会挂断,否则呼叫将被路由到代理。

有关如何实施此流程的任何想法吗?

1 个答案:

答案 0 :(得分:2)

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

  • 来电
  • Adhearsion路由器,将呼叫路由到呼入呼叫控制器
  • 此绑定控制器会检查您的座席列表
  • 如果座席可用而非通话,您可以使用“拨号”命令呼叫座席并自动加入两个呼叫。
  • 如果座席可用并且有正在进行的通话,您可以使用“加入”
  • 如果没有可用的代理,则使用“play”命令异步播放一些保持音乐,同时继续检查代理是否可用。
  • 当您检测到座席可用时,您可以“停止”保持音乐并拨打座席的电话。

为了确定哪些代理可用,您需要某种代理列表及其关联状态,您在接听电话时会更新这些代理。或者,您可以尝试直接从asterisk extensions.conf文件中获取部分信息,如果您使用的是PIAF,则可以尝试从数据库中获取。

Adhearsion网站上提供了您需要编写类似内容的大多数代码示例。 http://www.adhearsion.com/docs

编辑:

现在更好的方法是使用ElectricSlide呼叫队列模块。最近已经做了很多工作,现在它已经是一个非常可靠的呼叫队列了。

https://github.com/adhearsion/electric_slide/