freeswitch的呼叫中心模块——mod_callcenter

freeswitch的呼叫中心模块很方便的就可以让用户体验这种呼叫中心模式,包含了很多功能,具体参数的配置在使用中自行摸索。

编译安装freeswitch时需要开启mod_callcenter、mod_fifo的编译,之后在安装完成之后在conf/autoload_configs/modules.conf.xml中去掉该模块相关行的注释。

配置方法,编辑conf/autoload_configs/callcenter.conf.xml

<configuration name="callcenter.conf" description="CallCenter">
  <settings>
    <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
    <!--<param name="dbname" value="/dev/shm/callcenter.db"/>-->
  </settings>

<queues>
    <queue name="support@default">
      <param name="strategy" value="longest-idle-agent"/>
      <param name="moh-sound" value="$${hold_music}"/>
      <!--<param name="record-template" value="$${recordings_dir}/${strftime(%Y-%m-%d-%H-%M-%S)}.${destination_number}.${caller_id_number}.${uuid}.wav"/>-->
      <param name="time-base-score" value="system"/>
      <param name="max-wait-time" value="0"/>
      <param name="max-wait-time-with-no-agent" value="0"/>
      <param name="max-wait-time-with-no-agent-time-reached" value="5"/>
      <param name="tier-rules-apply" value="false"/>
      <param name="tier-rule-wait-second" value="300"/>
      <param name="tier-rule-wait-multiply-level" value="true"/>
      <param name="tier-rule-no-agent-no-wait" value="false"/>
      <param name="discard-abandoned-after" value="60"/>
      <param name="abandoned-resume-allowed" value="false"/>
    </queue>
</queues>

  <agents>
       <agent name="1001@$${domain}" type="callback" contact="[call_timeout=10]user/1001@$${domain}" status="Available" max-no-answer="3" wrap-up-time="10" reject-delay-time="10" busy-delay-time="60" />
       <agent name="1002@$${domain}" type="callback" contact="[call_timeout=10]user/1002@$${domain}" status="Available" max-no-answer="3" wrap-up-time="10" reject-delay-time="10" busy-delay-time="60" />
  </agents>
 
  <tiers>
    <!-- If no level or position is provided, they will default to 1.  You should do this to keep db value on restart. -->
       <tier agent="1001@$${domain}" queue="support@default" level="1" position="1"/>
       <tier agent="1002@$${domain}" queue="support@default" level="1" position="1"/>
  </tiers>
</configuration> 
其中domain是freeswitch的服务器ip地址,这种方法是配置静态的坐席,就是在配置文件中写死的,如果不符合项目中的要求,我们也可以用命令的方式动态添加坐席和梯队,但是queue是要固定的在配置文件中写好的。

动态添加agent和梯队:

新增agent
callcenter_config agent add 1001@domain Callback

更新agent状态
callcenter_config agent set contact 1001@domain [call_timeout=10][call_timeout=10]user/1001@$${domain}
callcenter_config agent set status 1001@domain  Available
callcenter_config agent set state 1001@domain Waiting
callcenter_config agent set max_no_answer 1001@domain 10
callcenter_config agent set wrap_up_time 1001@domain 10 
callcenter_config agent set reject_delay_time 1001@domain 10
callcenter_config agent set busy_delay_time 1001@domain 60

将agent添加到梯队
callcenter_config tier add support@default 1001@domain 1 1

agent、queue、tier配置好之后,需要配置拨号计划,添加:
    <extension name="Callcenter Example">
       <condition field="destination_number" expression="^7000$">
           <action application="answer"/>
           <action application="callcenter" data="support@default"/>
       </condition>
    </extension>

这样登录注册一个分机之后,拨打7000,就进入了callcenter,如果有agent在梯队中,就会转呼到这个agent上面。


上面一些参数的含义,可以参照官网,我收集了一些,如下:

Agent:
1、type:callback 或者 uuid-standby
2、contact:dial string(呼叫串)
3、status:Logged Out
           Available
           Available (On Demand)
           On Break
3、State:Idle
          Waiting
          In a queue call
4、max-no-answer:最大无应答次数,超过次数,status变为On Break状态
5、wrap-up-time: 通话完成间隔时间,成功处理一个通话后,多久才会有电话进入等待时长
6、reject-delay-time:挂机间隔时间,来电拒接后多久才会有电话进入的等待时长
7、busy-delay-time:忙重试间隔时间,来电遇忙后多久才会有电话进入的等待时长
8、no-answer-delay-time :无应答重试间隔,来电无应答后多久才会有电话进入的等待时长

Queue:
1、strategy:振铃策略
    ring-all                        所有坐席振铃
    longest-idle-agent              空闲时长最长振铃
    round-robin                     轮循振铃
    top-down                        顺序振铃
    agent-with-least-talk-time      通话时长最小振铃
    agent-with-fewest-calls         接听最少振铃
    sequentially-by-agent-order     优先级振铃
    random                          随机振铃
2、moh-sound:队列语音 local_stream://moh
3、announce-sound:定期播放音乐 与announce-frequency一起使用
4、announce-frequency:播放频率,即多久播放一次 与announce-sound一起使用
5、record-template:录音文件夹路径
6、time-base-score:优先级相关的时间积分选项
    queue:     不增加积分
    system:    进入系统时积分
7、tier-rules-apply: 梯队匹配
    false:    所有梯队
    true:     匹配规则(tier-rule*)
8、tier-rule-wait-second:梯队的等待时间(进入下个梯队的时间)
9、tier-rule-wait-multiply-level:梯队等待级别
    false:    除了第一个梯队等待tier-rule-wait-second,其他梯队不等待
    true:     每个梯队都会等待tier-rule-wait-second
10、tier-rule-no-agent-no-wait:是否跳过no-agent的梯队,(no-agent就是这个梯队中不存在状态为available的成员agent )
    true:     跳过
    false:    不跳过
11、discard-abandoned-after:最大丢弃时长(丢弃超过此时长,将不可以恢复)与abandoned_resume_allowed同时生效
12、abandoned-resume-allowed:丢弃后是否允许恢复或者重新进入队列
    true:允许恢复或重新进入(超过discard-abandoned-after将不可恢复)
    false:禁用不允许恢复
13、max-wait-time:最大等待时间(超过时间未被接通将退出callcenter)0为禁用
14、max-wait-time-with-no-agent: 无成员(没有成员的状态是available)等待超时时间: 超出时间电话会退出callcenter 0为禁用
15、max-wait-time-with-no-agent-time-reached:如果有电话有因为(max-wait-time-with-no-agent)的原因退出队列, 队列将在延迟一定时间不允许新的电话呼入到队列

Tiers:
1、queue 队列queue名
2、agent 坐席agent名
3、state 状态只能是 Ready
4、level 梯队等级 用level来划分梯队等级
5、position 位置 在一个梯队中的位置

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大头菜馅馒头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值