XSwitch用户手册
呼叫中心
XSwitch 支持常见的呼叫中心功能,可实现来话排队、播放坐席工号、转接、录音等功能。关于呼叫中心中的基本概念和逻辑,请参考XSwitch Callcenter API 文档。
一般来说,呼叫中心应用都需要进行二次开发。XSwitch 提供丰富的开发接口。在简单的呼叫中心应用中,如简单排队和录音,也可以通过在 Web 界面上的简单配置来实现。
模块
XSwitch 内部有两个模块实现了排队逻辑,分别是:
mod_callcenter
mod_fifo
两个模块都能完成相应的功能。前者参数更多一些,后者更简洁。下面以mod_callcenter
为例子说明各种参数。在mod_fifo
中特别的参数后面将单独说明。
坐席
坐席指人,一般有工号,姓名等属性。坐席打电话要关联到一个分机。
- 点击【呼叫中心】⇨ 坐席右上方【新建】,填入坐席工号、名称、密码、呼叫源、域等必填参数,创建新的坐席。
- 点击名称,进入坐席详细页面 ⇨ 点击右上方【编辑】,可编辑坐席信息。
- 点击名称,进入坐席详细页面 ⇨ 点击右上方【修改密码】,可修改坐席密码。
- 点击名称,进入坐席详细页面,点击右上方【显示扩展字段】,可查看坐席详细信息。
- 点击【呼叫中心】⇨【坐席】⇨ 点击右侧【删除】,可删除选定的坐席。
坐席参数
type
:坐席类型。callback
:当队列中有呼叫时呼叫坐席分机,一般都是这种模式。uuid-standby
:坐席签入后电话即接通,即坐席的分机永远在线(对应一个 Channel UUID),当有来话时立即接通坐席,适用于非常繁忙的坐席。一般仅用于一些特殊场景。
contact
:FreeSWITCH 原生呼叫字符串,用于呼叫坐席,如user/1000
等。status
:坐席状态。Logged Out
:签出Available
:就绪Available (On Demand)
:就绪,特殊方式On Break
:暂停
state
:话务状态。Idle
:空闲Waiting
:等待来话In a queue call
:通话中
max-no-answer
:最大无应答次数,超过次数,status
会变为On Break
状态。用于多次呼叫某坐席总是呼不通的情况,以后就不给该坐席分配电话了。wrap-up-time
: 通话完成间隔时间,成功处理一个通话后,要等待一段时间再给该坐席分配电话,以便坐席能进行一些话务处理的工作,防止坐席“太忙”。reject-delay-time
:拒接再次分配等待时长(秒)。如果坐席不接电话,则可能坐席当前有别的事要处理,过一段时间再尝试给该坐席分配电话,而不是一直呼叫该坐席。busy-delay-time
:坐席忙再次分配等待时长(秒)。如果被叫坐席电话忙,则过一段时间再尝试给该坐席分配电话。no-answer-delay-time
:坐席无应答再次分配等待时长(秒)。如果呼叫坐席无应答,则过一段时间再尝试给该坐席分配电话。
添加坐席
点击【呼叫中心】⇨ 【坐席】,点击右侧【新建】,填入坐席工号、分机号码、密码等必填信息。
也可点击【用户管理】⇨【用户】,修改指定用户类型,改为坐席即可。
签入 / 签出
坐席信息中“仅硬件话机可用”选择“是”,并且将坐席放入队列中,可使用签入签出功能。
队列
- 点击【呼叫中心】⇨ 【队列】右上方【新建】,填入名称、类型、进入队列等待音,策略等参数创建新的队列。
- 点击名称,进入队列详细页面。
- 点击右上方【编辑】,可修改队列的详细信息。
- 【队列坐席】⇨ 点击右侧的【添加】,可将坐席添加到队列中。
- 【扩展参数】⇨ 右侧【新建】或者【编辑】,可新建或编辑扩展参数 ⇨ 点击扩展参数【启用】列,可选择是否启用该参数。
队列基础配置说明
- 名称:队列名,建议使用字母。
- 队列模块:提供 FreeSWITCH 自带的两个模块
mod_callcenter
以及mod_fifo
,前者分配策略及设置参数更多。 - 策略:通话进入队列后的分配策略,比如队列中成员同时响铃。
- 自动录音:进入队列后如果有服务坐席接听,则自动录音,该功能仅控制该队列录音;如果路由中也设置了自动录音,则会产生两个录音文件。
- 欢迎音:进入队列后播放的欢迎音,该文件非必须语音文件。
- 队列等待音:进入队列后未分配到服务坐席时,用户听到的等待音,为必选语音文件。
队列策略说明
- 接听最少振铃:哪个坐席接听的最少,就优先给该坐席分配电话。
- 通话时长最小振铃:哪个坐席通话的时长最少,就优先给该坐席分配电话。
- 空闲时长最长振铃:空闲时长最长的坐席振铃
- 随机:随机分配给坐席。
- 所有坐席振铃:所有坐席同时振铃。
- 顺序振铃,之前已接听的坐席优先分配原客户:
- 轮循振铃:比如有 10 个坐席,在所有坐席都不忙的情况下,每个坐席会分配到一个电话。
- 顺序振铃:顺序振铃。比如有 10 个坐席,在所有坐席都不忙的情况下,总是选择排在最前面的坐席,只有第 1 个坐席忙的情况,才会选择第 2 个坐席。
- 优先级振铃:根据优先级进行分配,需要确保队列下参数“应用梯队规则”为“true”,“时间基准分数”为“system”,如果想调整某个呼入优先级,可通过设置通道变量cc_base_score使用,当等待时间+cc_base_score(单位秒)值最高的通话优先分配坐席。
队列扩展参数配置说明
基本参数:
- 容量:允许的最大排队人数,当排队人数超过容量设置值时,会根据排队溢出操作设置的动作执行,如果排队溢出操作为挂断,则超过容量值时,后续进来的通话会自动挂断。
- 排队溢出操作:当排队人数超过设置容量时,执行什么操作,比如“挂断”。系统提供两种操作,即,“挂断”和“转接”。如果选择“转接”,可转到别的路由重新执行其他操作。
时间相关:
- 最大等待时间:进入到队列最大等待时长,如,呼入到队列,有坐席,但坐席拒接,重新等待分配坐席,那么超过最大等待时间主叫会自动挂机;(如果已经分配到坐席,坐席未接听,由于已经建立了连接,超过时间也不会自动挂断。
- 超时操作:当超过设置的最大等待时间时,系统执行什么操作,比如“挂断”,也可“转接”到其他路由。
- 无坐席最大等待时间:没有可能坐席时可等待最大时长,超出时长后电话默认自动挂机。
- 无坐席超时操作:当没有通话没有分配服务坐席并超过无坐席最大等待时间,执行操作,比如转接到其他路由或自动挂机。
- 无坐席时队列不可呼入时长:如果有电话因为无坐席最大等待时间的原因退出队列, 队列将在该设置的时间内不允许新的电话呼入到队列。
播报相关:
- 播报位置:如果开启了播报位置,则根据设置播报时间间隔(未设置默认为 20 秒),播放“您当前所在位置”,比如当前排队所在位置为 2,则播放“您当前所在位置为 2,请耐心等待”。
- 播报时间间隔:间隔多长时间定期播报声音文件。
- 播报声音文件:等待过程中,定期播放的语音文件与播报时间间隔一起使用。
- 播报工号:如果有坐席接听时,则播放工号,比如“工号 xx 即将为您服务”。
梯队相关:
- 是否跳过无坐席梯队:是否跳过无坐席的梯队,(就是这个梯队中不存在状态为
Available
的成员)。true
:跳过。false
:不跳过。
- 丢弃后是否允许恢复:丢弃后是否允许恢复或者重新进入队列。
true
:允许恢复或重新进入,超过最大丢弃时长将不可恢复。false
:禁用不允许恢复。
- 最大丢弃时长:最大丢弃时长(丢弃超过此时长,将不可以恢复)与是否放弃之前等待时间同时生效。
- 时间基准分数:优先级相关的时间积分选项。
queue
:不增加积分。system
:进入系统时积分。
- 进入下一梯队等待时长:梯队的等待时间(进入下个梯队的时间)。
- 梯队等待倍增等级:梯队等待级别。
false
:除了第一个梯队等待进入下一梯队等待时长,其他梯队不等待。true
:每个梯队都会按进入下一梯队等待时长等待。
- 应用梯队规则: 梯队匹配。
false
: 所有梯队。true
: 匹配规则。
参数
strategy
:振铃策略。ring-all
:所有坐席振铃。longest-idle-agent
:空闲时长最长的坐席振铃。round-robin
:轮循振铃。比如有 10 个坐席,在所有坐席都不忙的情况下,每个坐席会分配到一个电话。top-down
:顺序振铃。比如有 10 个坐席,在所有坐席都不忙的情况下,总是选择排在最前面的坐席,只有第 1 个坐席忙的情况,才会选择第 2 个坐席。agent-with-fewest-calls
:接听最少振铃。哪个坐席接听的最少,就优先给该坐席分配电话。sequentially-by-agent-order
:优先级振铃。random
:随机振铃。
moh-sound
:等待音乐,如:local_stream://moh
。announce-sound
:定期播放提示音,与announce-frequency
一起使用。比如每隔 20 秒播放一次“坐席全忙……”。announce-frequency
:播放频率,即多久播放一次,与announce-sound
一起使用。record-template
:录音文件名格式字符串。time-base-score
:优先级相关的时间积分选项 (queue
:不增加积分;system
:进入系统时积分)。tier-rule-wait-second
:梯队的等待时间(进入下个梯队的时间)。tier-rule-wait-multiply-level
:梯队等待级别。false
:除了第一个梯队等待tier-rule-wait-second
,其他梯队不等待。true
:每个梯队都会等待tier-rule-wait-second
。
tier-rule-no-agent-no-wait
:是否跳过no-agent
的梯队,(no-agent
就是这个梯队中不存在状态为 available 的成员 agent)。true
:跳过;false
:不跳过。discard-abandoned-after
:最大放弃时长(丢弃超过此时长,将不可以恢复)与abandoned-resume-allowed
同时生效。abandoned-resume-allowed
:丢弃后是否允许恢复或者重新进入队列。(true
:允许恢复或重新进入,超过discard-abandoned-after
将不可恢复;false
:禁用不允许恢复)。max-wait-time
:最大等待时间(超过时间未被接通将退出 callcenter)0
为禁用。说明:呼入到队列,有坐席,但坐席拒接,重新等待分配坐席,那么超过最大等待时间 主叫会自动挂机;(如果已经分配到坐席,坐席未接听,由于已经建立了连接,超过时间也不会自动挂断。max-wait-time-with-no-agent
: 无坐席最大等待时间:超出时间电话会退出 callcenter,0 为禁用。 呼入到队列,没有坐席签入,此时超过无坐席最大等待时间则主叫会自动挂机。max-wait-time-with-no-agent-time-reached
:如果有电话因为(max-wait-time-with-no-agent
)的原因退出队列, 队列将在延迟一定时间不允许新的电话呼入到队列。max-wait-time-action
:超过最大等待时长后执行的动作,比如自动挂断或转接到其他路由。
FIFO 话单
显示系统 fifo 队列内话单信息,具体包含 UUID 信息、队列名、主 / 被叫号码、服务号码、开始、接听、结束信息。
页面右侧显示时间轴,根据各自需求随时查询近期内 7 天、15 天或一个月的通话情况。点击【更多】,可进行条件查询。
点击左上角【导出】可导出 FIFO 话单。
CC 话单
显示系统 callcenter 队列话单信息,显示各个时间段的呼叫中心通话状况。
页面右上方显示时间轴,根据各自需求随时查询近期内 7 天、15 天或更多会议情况。点击【详细】,可查看某条会议话单的详细信息。
点击左上角【导出】可导出 CC 话单。