没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
《Asterisk 权威指南》,第十三章 自动呼叫分配(ACD) 译者: Steele,2012-08-04
Asterisk On MIPS 论坛,www.asterisk-mips.org www.asterisk.cn 1
第十三章 自动呼叫分配(ACD)
目录
13.1 创建简单的 ACD 队列 .............................................................................................. 3
13.2 队列的坐席成员 ....................................................................................................... 6
13.2.1 通过 CLI 控制队列成员 .................................................................................... 6
13.2.2 通过 dialplan 逻辑控制队列成员 .................................................................... 7
13.2.3 自动登入和登出多个队列 ............................................................................... 9
13.2.4 设备状态简介 ................................................................................................. 12
13.3 queues.conf 配置文件 ............................................................................................... 14
13.4 agents.conf 配置文件 ................................................................................................. 20
13.5 高级队列 ................................................................................................................. 21
13.5.1 优先队列(队列权重) ................................................................................. 22
13.5.2 队列成员优先级 ............................................................................................. 23
13.5.3 动态调整惩罚值(queuerules.conf) ........................................................... 24
13.5.4 通知控制 ......................................................................................................... 26
13.5.5 溢出(Overflow) .......................................................................................... 29
13.5.6 使用 Local Channels ........................................................................................ 31
13.6 队列统计:queue_log 文件 ................................................................................... 34
13.7 总结 ......................................................................................................................... 37
《Asterisk 权威指南》,第十三章 自动呼叫分配(ACD) 译者: Steele,2012-08-04
Asterisk On MIPS 论坛,www.asterisk-mips.org www.asterisk.cn 2
自动呼叫分配(ACD - Automatic Call Distribution),或者称为呼叫排队(call queuing),
为 PBX 提供了为一群用户的来电排队处理的能力:它将多个来电呼叫转接到呼叫保留状态,
并为每个呼叫分配一个排名,这 个 排名用于决定来电被分配给可用坐席的顺序(典型的,采
用先进先出)。当某个坐席变为可用时,队列中排在最前面的呼叫会被转给这个坐席处理,
并且其它呼叫顺次向前移动一位。
如果你曾经给某些组织打电话时听到过“所有坐席忙,”这样的信息,就意味着你已经
有了 ACD 的使用经验。对拨打电话的人来说,ACD 的优点在于他们不必反复拨打以尝试接
通;而对于使用了 ACD 的组织来说,他们将能为客户提供更好的服务,并且可以临时处理
一下同时来电数量多于坐席数的情况。
目前有两种呼叫中心:呼入型和呼出型。ACD 相关的技术用于处理呼入型
呼叫中心,而预拨号器(Predictive Dialer)相关的技术用于处理呼出型呼
叫中心。在本书中,我们主要集中讨论呼入型呼叫中心。
我们都有过由设计和管理拙劣的队列带来的糟糕体验:忍受着难听的 Hold Music,令 人
厌恶的等待时间,每 20 秒重复一遍的毫无意义的信息告诉你“你的来电时如何重要”,尽 管
你已经等待了 30 分钟并且重复听这个信息以至于能够背下来了。从客户服务的观点看,队
列的设计可能是你电话系统中最重要的一个方面。与使用自动话务员一样,首先要牢牢记住
的是,来电者对停留在队列里毫无兴趣。他们打来电话,是因为他们希望和你对话。你所有
的设计决定必须以这样一个重要事实为中心:人们是希望与其他人对话,而不是和你的电话
系统对话。
注
2
本章的目标是教给你如何创建和设计一个队列,从而可以将呼叫者尽量快速而不费力的
转接给合适的目标。
在本章中,我们将交替使用术语 queue members 和 agents。除非我们讨论
的 agents 是通过 chan_agent (使用 AgentLogin())登录的,我们都是在
讨论通过 AddQueueMember() 或命令行(我们将在本章讨论这些命令)
增加的 queue members。你只需要知道,虽然在 Asterisk 中 agent 和 queue
member 是有区别的,但是我们将简单的使用术语 agent 来描述 Queue()
调用的终端(endpoint)。
《Asterisk 权威指南》,第十三章 自动呼叫分配(ACD) 译者: Steele,2012-08-04
Asterisk On MIPS 论坛,www.asterisk-mips.org www.asterisk.cn 3
13.1 创建简单的ACD队列
作为开始,我们首先创建一个简单的 ACD 队列。它将接收呼叫者,并将他们分配到几
个队列中。
在 Asterisk 中,术语 member 指队列中可以被拨叫的一个终端,例如
SIP/0000FFFF0001。术语 agent 技术上是指用于拨叫终端的Agent channel。
不幸地是,Agent channel 是在 Asterisk 中废弃了的技术,因为它的灵活性
非常有限,而且容易产生一些意想不到的错误,这些错误非常难于诊断和
解决。我们不讨论使用 chan_agent 的情况,所以需要了解的是,我们将
使用术语 member 指电话机设备,而使用术语 agent 指使用电话机的人。
由于这两者单独出现并无意义,所以 member 或 agent 任何一个术语都可
以用来表示电话机和使用电话的人两者。
我们将在 queues.conf 文件中创建队列,并且通过 Asterisk 控制台手工增加队列成员。
在本章 13.2 队列的坐席成员一节,我们将看到如何创建一个 dialplan 来动态添加和删除队列
成员(以及暂停和恢复)。
首先的步骤是在/etc/asterisk 配置目录中创建你的 queues.conf 文件:
$ cd /etc/asterisk/
$ touch queues.conf
然后在其中填入下述配置,这将创建两个命名为[sales]和[support]的队列。你可以将这两个
队列命名为任何你希望的名字,但在本书中我们将使用这两个名字。所以,如果你使用了其
它的名字,在后续阅读本书时请记得这一点:
[general]
autofill=yes ; distribute all waiting callers to available members
shared_lastcall=yes ; respect the wrapup time for members logged into more
; than one queue
[StandardQueue](!) ; template to provide common features
musicclass=default ; play [default] music
strategy=rrmemory ; use the Round Robin Memory strategy
joinempty=no ; do not join the queue when no members available
leavewhenempty=yes ; leave the queue when no members available
ringinuse=no ; don't ring members when already InUse (prevents
; multiple calls to an agent)
[sales](StandardQueue) ; create the sales queue using the parameters in the
; StandardQueue template
[support](StandardQueue) ; create the support queue using the parameters in the
; StandardQueue template
[general]部分定义了默认的行为和全局选项。我们仅仅在[general]部分指定了两个选项,这
是因为在这个地方内建的默认值已经可以很好的满足我们的需要。
《Asterisk 权威指南》,第十三章 自动呼叫分配(ACD) 译者: Steele,2012-08-04
Asterisk On MIPS 论坛,www.asterisk-mips.org www.asterisk.cn 4
第一个选项是 autofill,它告诉队列将所有等待的呼叫立即分配给所有可用的坐席。在
早期的版本中,Asterisk 每次只转接一个呼叫,这就意味着当 Asterisk 向一个坐席转接时,
所有其他的呼叫都会进入呼叫保持状态(即使有可用坐席的情况)直到前一个呼叫转接成功
(很明显,早期版本的 Asterisk 在大型、繁忙的队列应用中会导致瓶颈)。除非你有特别的
向后兼容的需求,
这个选项应当永远被设为
yes。
在 queues.conf 中[general]部分的第二个选项是 shared_lastcall。当我们使能
shared_lastcall 时,对于登录到多个队列的坐席,对于任何一个刚结束的电话,在所有队列
中都会开始计算“结束时间”(wrapup time)
注
3
,以避免某个队列将呼叫转接给刚刚结束了
另一个队列转接的呼叫,还处于“结束时间”的坐席。如果这个选项设置为 no,则“结束
时间”的计算仅仅对本队列有效,这将导致一个刚刚接听了 support 队列的电话尚处于“结
束时间”的坐席,仍然会收到 sales 队列转接的呼叫。这个选项应该一直被设置为 yes(默
认值)。
下一部分,[StandardQueue]是我们打算应用到 sales 和 support 队列的模板(我们通过
(!)声明其为模板)。和我们在 musiconhold.conf 文件中的配置一样,我们定义 musicclass 为
default 呼叫保持音乐。我们将 strategy 配置为 rrmemory,代表循环(Round-Robin)存储。
rrmemory 策略的工作原理是将队列中按顺序排列的坐席循环起来,它跟踪接听了上一个呼
叫的坐席,然后将下一个呼叫转接给下一个坐席。当达到最后一个坐席时,它返回队列顶部
的坐席(当坐席登录时,他们被加入到队列的尾部)。我们设置 joinenpty 为 no,是因为将
呼叫放入一个没有坐席资源的队列是一种坏的做法。
出于测试目的,你可以将这个值设置为 yes,但我们不推荐你在正式产品
中这么做,除非你使用队列的目的不是转接来电给坐席。没有人愿意等待
在一条无人处理的线路上。
leavewhenempty 选项用于控制当没有可用的坐席能够处理呼叫时,呼叫是否应该离开
Queue()应用程序继续执行 dialplan。我们将这个选项配置为 yes 是因为等待在一条无人处理
的线路上是毫无意义的。
从商业的观点来看,你应该告诉你的坐席人员在当天登出系统前要处理完
队列中所有的呼叫。如果你发现当一天快要结束时有太多的呼叫在队列中,
你可能希望考虑延长某些坐席人员的工作时间以处理他们。否则,当他们
第二天带着情绪重新打来时,只会给你带来更大的压力。
另一个选择是使用 GotoIfTime()在临近下班时间时将呼叫转接到语音信箱,
或者 dialplan 中的其它合适地点。
最后,我们将 ringinuse 设置为 no,它 告 诉 Asterisk 不要振铃已经处于振铃状态的坐席。
将 ringinuse 设置为 no 的目的是避免多个呼叫被转接到来自一个或多个队列的同一个坐席。
你可能注意到 joinempty 和 leavewhenempty 都是查找或者队列中已经没
有登录的坐席,或者所有的坐席都失效。处于振铃(Ringing)或使用中
(InUse)状态的坐席不被认为是失效的,所以当 joinempty-no 和/或
leavewhenempty=yes 时不会阻止呼叫加入队列或导致他们离开队列
《Asterisk 权威指南》,第十三章 自动呼叫分配(ACD) 译者: Steele,2012-08-04
Asterisk On MIPS 论坛,www.asterisk-mips.org www.asterisk.cn 5
一旦你完成了你的 queues.conf 文件的配置,你可以保存它并通过 Asterisk CLI 重载
app_queue.so 模块:
$ asterisk -r
*CLI> module reload app_queue.so
-- Reloading module 'app_queue.so' (True Call Queueing)
然后检查一下你的队列是否装载到内存了:
localhost*CLI> queue show
support has 0 calls (max unlimited) in 'rrmemory' strategy
(0s holdtime, 0s talktime), W:0, C:0, A:0, SL:0.0% within 0s
No Members
No Callers
sales has 0 calls (max unlimited) in 'rrmemory' strategy
(0s holdtime, 0s talktime), W:0, C:0, A:0, SL:0.0% within 0s
No Members
No Callers
现在,你已经创建好了队列,下一步你需要配置你的 dialplan 以允许呼叫进入你的队列。
在 extensions.conf 文件中增加如下 dialplan 逻辑:
[Queues]
exten => 7001,1,Verbose(2,${CALLERID(all)} entering the support queue)
same => n,Queue(support)
same => n,Hangup()
exten => 7002,1,Verbose(2,${CALLERID(all)} entering the sales queue)
same => n,Queue(sales)
same => n,Hangup()
[LocalSets]
include => Queues ; allow phones to call queues
我们将 Queue context 包含在 LocalSets context 中,所以我们的电话机可以呼叫我们创建的
这个队列。在第 15 章,我们将定义访问这些队列的菜单项。保存这些变化到你的
extensions.conf 文件,然后通过 dialplan reload 命令重载 dialplan。
如果你此时拨打分机 7001 和 7002,将以得到下面这样的输出而结束:
-- Executing [7001@LocalSets:1] Verbose("SIP/0000FFFF0003-00000001",
"2,"Leif Madsen" <100> entering the support queue") in new stack
== "Leif Madsen" <1--> entering the support queue
-- Executing [7001@LocalSets:2] Queue("SIP/0000FFFF0003-00000001",
"support") in new stack
[2011-02-14 08:59:39] WARNING[13981]: app_queue.c:5738 queue_exec:
Unable to join queue 'support'
-- Executing [7001@LocalSets:3]
Hangup("SIP/0000FFFF0003-00000001", "") in new stack
剩余37页未读,继续阅读
huneyqq
- 粉丝: 0
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页