呼叫中心中间件(mod_cti基于FreeSWITCH)-排队(ACD 话务分配)接口
进入排队
cti_acd acdname maxwaittime[s] priority
<action application="cti_acd" data="acdnaem 180 1"/> |
- acdname ACD 名称
- maxwaittime 最大等待时间,单位秒,超过这个时间,没有接通坐席,会强制离开排队。
- priority 优先级, 默认3个优先级 0低优先级 1中(默认) 2高优先级别。
排队配置
cti_acd@domain [哈希表]
- key 名称
value 配置
{"announce": "acd/欢迎.wav","moh": "acd/等待音乐.wav","timeout": {"wait_timeout": 10,"timeout_key": "1","timeout_time": 5,"timeout_sound": "acd/等待超时.wav"},"wrapup": {"wrapup_sound": "acd/满意度调查.wav","wrapup_bad_sound": "acd/无效按键.wav","wrapup_exit_sound": "acd/结束语.wav","wrapup_time": 3,"wrapup_key": "[1,2]","wrapup_result": ""},"beep_time": 0.3,"play_employee_id": {"after_sound": "acd/工号之后.wav","mode": 0},"linegroup": "默认组" }
- announce 进入队列先播放的欢迎语
- moh 等待时候的背景音乐
- strategy 分配策略,目前只实现了一个,根据线路组空闲时间分配坐席。
- line_redial_interval 重拨间隔 坐席呼叫失败后的重拨间隔,单位毫秒,如果线路设置的休息时间(rest)比这个值更大,则使用线路休息时间设置。
- line_wrapup_time 话后时间 坐席接完一个电话后的休息时间,单位毫秒。如果线路设置的休息时间(rest)比这个值更大,则使用线路休息时间设置。
- linegroup 线路组,就是坐席组,这个队列接听电话的坐席。
- timeout 等待超时, 原理,超时时间到了播放一个提示音提示音,可通过按键继续等待。
- wait_timeout 超时时间,单位秒。0:不使用这个功能。
- timeout_key 继续等待确定按键,如果不配置,按任意键都继续等待。
- timeout_time 播放超时提示音之后,等待按键的时间。
- timeout_sound 超时时播放的提示音,单位秒。
- wrapup 坐席挂机后的处理
- wrapup_sound 坐席挂机后播放的提示音
- wrapup_bad_sound 按键不符合要求时候的提示音
- wrapup_exit_sound 离开队列时播放的声音,比如按键完成之后就会播放。
- wrapup_time 等待按键的时间,单位秒。
- wrapup_key 有效的按键,正则表达式,如果不配做可以接受任意按键。
- wrapup_result 按键结果写入的通道变量名,可以和CDR配合,收集用户按键。
- beep_time 接通电话后可以和来电对话时,坐席听到的嘟声长度,单位秒,可以是小数。比如100毫秒就设置0.1。
- play_employee_id 播放工号
- before_sound 播放工号之前的声音(可选)
- after_sound 播放工号之后的声音(可选)
- mode 模式
- 0 通话开始时播报(双方听到)
- 1 通话开始时播报(只呼入听到)
- 2 通话结束时播报(只呼入听到)
- hidden_callerid 隐藏主叫,坐席来电显示隐藏后4位号码,如果需要隐藏指定位置的号码,hidden_callerid改成number类型,比如4就是第4位开始隐藏,-4就是倒数第4位开始隐藏,默认隐藏4位,如果要隐藏5位,添加一个配置hidden_callerid_length(number类型)隐藏长度设置为5。
- remember_employee 记忆坐席,记录接听来电的坐席,方便下次优先转接给同一个坐席,配置是记忆时间单位天
内部变量
- acd_bridge_line 最后接通的坐席线路
- acd_bridge_time 最后接通坐席的时间,微妙的时间戳
配置改变通知
config@domain [通道]
PUBLISH 通知到 config@domain。
{"type":"config_change","table":"cti_acd","key":"abc" } |
- type,config_change:配置改变
- table,那个表修改了,只需要@前面的。
- key cti_acd的key
呼叫进度通知
排队中的呼叫转接给座席时,可以配置启用呼叫和应答通知。用于实现来电弹屏等业务。
配置说明
cti.json中配置
{"acd": {"state_write_redis":true,"notify": {"variables": ["caller_id_name", "destination_number"],"redis": {"channel": "acd","list": "acd"},"http": {"url": "http://127.0.0.1/popup"},"log": false}} } |
- state_write_redis 排队的状态信息是否写入redis的 cti_acd_state 哈希表。
- variable 自定义变量,主叫通道获取变量对应的值。
- redis
- channel 通知到redis的channel
- list 通知写入redis的list
- http
- url 通知到http接口的URL地址
- log 是否打开调试日志
通知数据
注意:呼叫坐席失败会根据配置重呼,这样就可能有多次通知。
通知顺序
- 进入排队enter,播放完欢迎提示音(announce)之后通知。
- 转接坐席
- 正常接通 dialer -> answer -> hangup
- 呼叫失败 dialer->failure。
- 离开排队leave。
参数说明
- type 通知类型(enter:进入排队 ,dialer:开始呼叫,answer:已经接通,hangup:通话结束,failure:呼叫失败,leave:离开排队)
- caller_uuid 来电UUID
- caller_num 来电号码
- caller_wait_time 来电排队时间,(单位毫秒)。就是开始排队到座席接听的等待时间。
- called_uuid 被叫UUID
- line_number 被叫线路号码
- line_group 被叫线路组
- 自定义表里acd.variable里面配置
redis通知格式
json格式
{"type": "dialer","caller_uuid": "bbbd3492-d866-462c-8591-dbb3b0d78c76","caller_num": "121","caller_wait_time": "69","called_uuid": "e7f36dca-d80d-4308-87c3-812c82a24949","line_number": "121","line_group": "2001","caller_id_name": "121","destination_number": "8000" } |
http通知格式
url编码
http://127.0.0.1/popup?type=failed&caller_uuid=91b2611d-1692-4af3-b8ee-88faf0db6723&caller_num=123&caller_wait_time=5120&called_uuid=61e22c49-6e14-4bbd-9b61-7a7ce473f10b&line_number=121&line_group=2001&caller_id_name=123&destination_number=8000 |
状态数据写入redis
cti.josn中acd.state_write_redis配置为true,会把排队状态信息入redis的 cti_acd_state 哈希表。
{"wait_priority": [0, 0, 0],"wait_count": 0,"assign_count": 0,"wrapup_count": 0 } |
- wait_priority 3个优先级分别等待中的电话数量。
- wait_count 全部优先级等待中的电话总数。
- assign_count 已经分配的电话数量(包含等待坐席接听和坐席已经接通的)。
- wrapup_count 话后处理(满意度调查)电话数量。
查看fs内存中排队信息
有时候为了诊断问题需要查看 内存中排队模块的信息,可以执行fs控制台命令 cti show acd 排队名
或者shell执行 fs_cli -x "cti show acd 排队名"
可以输出排队的配置信息和分配信息。
- customer 3个优先级中等待分配的通话
- assign 已经和坐席通话的通话
- wrapup 话后处理的通话(满意度调查)
- disable 已经删除的排队,不会从内存删除,会把disable设置为true
呼叫中心中间件(mod_cti基于FreeSWITCH)-排队(ACD 话务分配)接口相关推荐
- 顶顶通呼叫中心中间件(mod_cti基于FreeSWITCH)-webrtc(浏览器直接拨打电话)
顶顶通呼叫中心中间件(mod_cti基于FreeSWITCH)-webrtc(浏览器直接拨打电话) 现代的浏览器都支持webrtc,浏览器通过webrtc就可以直接注册sip账户到FreeSWITCH ...
- 呼叫中心中间件(mod_cti基于FreeSWITCH)-自动外呼接口
队列呼叫任务 cti_queue_dialer_task@template [哈希表] key任务名字 value 任务配置JSON格式 {"params": {"ena ...
- 呼叫中心中间件(mod_cti基于FreeSWITCH)-背景音(彩话)接口
背景音,就是给通话添加一个背景音,比如办公室的噪音,键盘敲击声,等.彩话,就是通话过程播放一个声音,代替人工说话,这个声音双方可以同时听到,而且播放过程不影响双方通话. 用处 采用非侵入式设计,不需要 ...
- 基于Freeswitch的 呼叫中心中间件开发
最近开发一个 呼叫中心中间件,也可以让用户不懂呼叫系统完成复杂的呼叫业务. 模块里面我集成了 WebSocket RESTFul API 服务器端 ws://192.168.0.250:8092/ap ...
- FSGUI=( FREESWITCH GUI PBX 呼叫中心中间件) 简要使用说明
#关注我们的微信公众号 QQ群: 293697898 FreeSWITCH+Kamailio+OpenSIPS 安装手册: http://www.nway.com.cn/FSGUI%E5%AE%89% ...
- 呼叫中心中间件-网关配置
介绍 支持给网关指定变量,设置网关的语音编码编码和主叫号码.网关配置编辑后,不能实时生效 ,需要执行sofia命令才可以生效,具体看SIP设置.有关系统方面问题请找博主,看他名字和他一起技术交流学习 ...
- 《 FreeSWITCH权威指南》——2.5 呼叫中心
本节书摘来自华章计算机< FreeSWITCH权威指南>一书中的第2章,第2.5节,作者:杜金房 张令考 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.5 ...
- 基于快速原型模型建立商业呼叫中心SPOMP的应用研究
摘要:本文从快速原型(Rapid Prototyping,RP)这一软件生命周期模型的原理出发,结合呼叫中心(Call Center,CC)软件项目外包的现状,提出应用快速原型模型于呼叫中心软件项目的 ...
- 基于云计算的呼叫中心解决方案的16个优势
呼入的客户电话是企业业务成功的关键,因此企业需要充分利用每一个电话的互动机会.幸运的是,如今的呼叫中心解决方案可以提供先进的技术,有助于提高客户体验.虽然传统的基于硬件的系统可能是复杂和昂贵的,企业还 ...
- ###好好好好好########呼叫中心FAQ
1. 什么叫呼叫中心? 答:"呼叫中心"是公司企业为用户服务而设立的.早在80年代,欧美等国的电信企业.航空公司.商业银行等为了密切与用户联系,应用计算机的支持.利用电话作为与用户 ...
最新文章
- python商品评论分析_亚马逊产品情感评论分析
- python字符串与列表与运算_[Python学习笔记1]Python语言基础 数学运算符 字符串 列表...
- 智能判断图片中是否存在某物体_智能家居组件漫谈——人体传感器
- SAP ABAP Netweaver里进程能够申请的最大内存
- js控制a标签点击事件 触发下载
- Java GregorianCalendar computeTime()方法与示例
- C++结构体中const使用场景
- ActiveMQ RabbitMQ KafKa对比
- [转]在EntityFramework6中执行SQL语句
- 一、Java语言基础(5)_数组高级——方法参数的值传递机制
- Spark SQL入门基础
- 51单片机应用行列反转法操纵矩阵键盘
- 企业数据总线(ESB)和注册服务管理(dubbo)的区别{{1033}}
- Linux 文件颜色代表含义
- flutter常见报错处理
- bean named 'transactionManager' available: No matching PlatformTransactionManager bean found for qua
- ubuntu系统强制解锁
- ‘EagerTensor‘ object has no attribute ‘reshape‘处理图像数据
- REST API 详解
- 1.找到适合你的学习方法
热门文章
- 浏览器与HTTP网络协议缓存原理分析 转自网界网:http://news.cnw.com.cn/news-china/htm2015/20151027_322909.shtml
- vba中FreezePanes(冻结窗格)用法
- iOS开发-记录下在开发过程中遇到的问题的解决方案及经验总结-1
- 百度地图 根据经纬度获取 地址
- Swift 网络请求Moya框架简单二次封装
- java面试题(精选版)
- “你没有权限操作该项”phpcms权限解决一例
- HDLC协议(一)——基本概念
- Apache FOP生成PDF
- 安全面试之WEB安全(一)