本文已参与「新人创作礼」活动,一起开启掘金创作之路。
线路和线路组
- 每个线路可设置最大并发数
- 每个线路可设置休息时间,比如FXO网关一个电话线呼叫一次后,都需要等待一会儿,才可以继续拨打第二通电话,有了休息时间这个参数,就可以解决这个问题了。
- 重拨,可以根据SIP从错误代码,挂断原因,通话时间和呼叫时间设置是否需要重拨。
- 并发数,可以设置一个线路并发数,并发数超过了,就可以自动跳过这个线路。
- 优先级,可以给线路设置优先级,这样就可以实现主用线路和后背线路了。
线路配置
cti_line@domain [哈希表]
-
key 线路名字
-
value 线路配置JSON格式
| ``` { "params": { "count": 1, "rest": 1000, "fault_threshold": 0, "fault_try_interval": 0 }, "variables": { "origination_caller_id_number": "主叫号码" } }
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-
params 参数
-
count [数字类型] 并发
-
rest [数字类型] 呼叫一次后的休息时间,单位毫秒。对于多个并发的线路就是呼叫间隔,对于坐席,也可用于设置话后处理时间。
-
fault_condition [对象类型] 失败条件(排队模块发起的呼叫未接通都认为呼叫失败,会忽略这个参数。)
- connect_time [数字类型] 接续时间小于这个值,认为呼叫失败,大于这个值,哪怕没接通也不认为是呼叫失败。如果不设置未接通的都是呼叫失败。单位毫秒。
-
fault_threshold [数字类型] 失败阈值
-
fault_try_interval [数字类型] 故障超过阈值的重试间隔,单位毫秒
-
dialstring [字符串类型] 拨号串。比如usr/1000,sofia/gateway/ims/{destination_number}会替换成实际的被叫号码
-
-
variables 通道变量
- origination_caller_id_number [字符串类型] 主叫号码
- origination_caller_id_name [字符串类型] 主叫名字
- ignore_early_media=true [字符串类型] 忽略早期媒体
- absolute_codec_string [字符串类型] 编码持续
- origination_uuid [字符串类型] UUID
- originate_timeout [字符串类型] 呼叫超时 必须和(ignore_early_media=true )一起使用才生效。单位秒
线路组配置
cti_line_group@domain [哈希表]
-
key 线路组名字
-
value 线路组配置JSON格式
| ``` { "redialer_count": 3, "redialer_rule": { "hangup_sipcode": "408,500-499", "hangup_cause": "16,USER_BUSY", "duration": 10, "bill": 1 }, "no_redialer_rule": { "hangup_sipcode": "200", "hangup_cause": "NO_ROUTE_DESTINATION", "duration": 10, "bill": 1 }, "line": { "0.first", "lien1,line2", "1.second", "line3,line4" } }
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-
redialer [数字类型] 重拨次数,重播规则先判断是否符合no_redialer_rule中的任意一个规则,如果符合就不重拨,如果不符合在判断是否符合redialer_rule中的任意一个规则,如果符合就重播,如果都不符合,就不重拨。
-
redialer_rule 符合规则重拨
- hangup_code [字符串] 结束通话的协议代码
- hangup_cause [字符串] 结果通话的原因(switch_call_cause_t)
- duration [数字类型] 呼叫的持续时间小于这个值,单位毫秒
- bill [数字类型] 接通时间小于这个值,单位毫秒
-
no_redialer_rule 符合规则不重拨
- hangup_code [数字数组类型] 结束通话的协议代码
- hangup_cause [数字数组类型] 结果通话的原因(switch_call_cause_t)
- duration [数字类型] 呼叫的持续时间大于这个值,单位毫秒
- bill [数字类型] 接通时间大于这个值,单位毫秒
-
line 使用的线路,可实现多个优先级,例子说明:先frist中查找空闲线路,如果frist都不可用,就在second中查找空闲线路,可以自定义多个梯队,按字母顺序排队。
拨号方案中使用线路组
linegroup/线路组名称/电话号码\
| ```
| ------------------------------------------------------------------- |
## [](http://www.ddrj.com/callcenter/line.html#originage-%E4%BD%BF%E7%94%A8%E7%BA%BF%E8%B7%AF%E7%BB%84 "originage 使用线路组")originage 使用线路组
| ```
originate linegroup/线路组名称/电话号码 &echo
``` |
| --------------------------------------------- |
## [](http://www.ddrj.com/callcenter/line.html#%E7%BA%BF%E8%B7%AF%E5%90%8D%E5%92%8C%E7%BA%BF%E8%B7%AF%E7%BB%84%E5%90%8D%E5%AD%97%E8%AE%B0%E5%BD%95%E5%88%B0CDR "线路名和线路组名字记录到CDR")线路名和线路组名字记录到CDR
1.2.20版本开始 提供了2个默认变量 线路名 cti_line_name 线路组cti_line_group_name。\
cti.json里面cdr的配置”fields”: [ “cti_line_name”,”cti_line_group_name”]添加这2个变量,然后cdr表添加这2个字段就可以了。
## [](http://www.ddrj.com/callcenter/line.html#%E9%85%8D%E7%BD%AE%E6%94%B9%E5%8F%98%E9%80%9A%E7%9F%A5 "配置改变通知")配置改变通知
PUBLISH 通知到[通道] config@domain。
| ```
{ "type":"config_change", "table":"cti_line", "key":"abc" } { "type":"config_change", "table":"cti_line_group", "key":"g1" }
``` |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
- type,config_change:配置改变
- table,那个表修改了,只需要@前面的。
- key table的主键,比如任务表名字。