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,前者分配策略及设置参数更多。
  • 策略:通话进入队列后的分配策略,比如队列中成员同时响铃。
  • 自动录音:进入队列后如果有服务坐席接听,则自动录音,该功能仅控制该队列录音;如果路由中也设置了自动录音,则会产生两个录音文件。
  • 欢迎音:进入队列后播放的欢迎音,该文件非必须语音文件。
  • 队列等待音:进入队列后未分配到服务坐席时,用户听到的等待音,为必选语音文件。

队列扩展参数配置说明

基本参数:

  • 容量:允许的最大排队人数,当排队人数超过容量设置值时,会根据排队溢出操作设置的动作执行,如果排队溢出操作为挂断,则超过容量值时,后续进来的通话会自动挂断。
  • 排队溢出操作:当排队人数超过设置容量时,执行什么操作,比如“挂断”。系统提供两种操作,即,“挂断”和“转接”。如果选择“转接”,可转到别的路由重新执行其他操作。

时间相关:

  • 最大等待时间:进入到队列最大等待时长,如,呼入到队列,有坐席,但坐席拒接,重新等待分配坐席,那么超过最大等待时间主叫会自动挂机;(如果已经分配到坐席,坐席未接听,由于已经建立了连接,超过时间也不会自动挂断。
  • 超时操作:当超过设置的最大等待时间时,系统执行什么操作,比如“挂断”,也可“转接”到其他路由。
  • 无坐席最大等待时间:没有可能坐席时可等待最大时长,超出时长后电话默认自动挂机。
  • 无坐席超时操作:当没有通话没有分配服务坐席并超过无坐席最大等待时间,执行操作,比如转接到其他路由或自动挂机。
  • 无坐席时队列不可呼入时长:如果有电话因为无坐席最大等待时间的原因退出队列, 队列将在该设置的时间内不允许新的电话呼入到队列。

播报相关:

  • 播报位置:如果开启了播报位置,则根据设置播报时间间隔(未设置默认为 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 话单。

话单