线路和线路组
- 每个线路可设置最大并发数
- 每个线路可设置休息时间,比如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/destinationnumber,{destination_number},destinationnumber,{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的主键,比如任务表名字。 复制代码
.markdown-body pre,.markdown-body pre>code.hljs{color:#333;background:#f8f8f8}.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:700}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:teal}.hljs-doctag,.hljs-string{color:#d14}.hljs-section,.hljs-selector-id,.hljs-title{color:#900;font-weight:700}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type{color:#458;font-weight:700}.hljs-attribute,.hljs-name,.hljs-tag{color:navy;font-weight:400}.hljs-link,.hljs-regexp{color:#009926}.hljs-bullet,.hljs-symbol{color:#990073}.hljs-built_in,.hljs-builtin-name{color:#0086b3}.hljs-meta{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}