FreeSWITCH呼叫中心中间件-线路配置

线路和线路组

  1. 每个线路可设置最大并发数
  2. 每个线路可设置休息时间,比如FXO网关一个电话线呼叫一次后,都需要等待一会儿,才可以继续拨打第二通电话,有了休息时间这个参数,就可以解决这个问题了。
  3. 重拨,可以根据SIP从错误代码,挂断原因,通话时间和呼叫时间设置是否需要重拨。
  4. 并发数,可以设置一个线路并发数,并发数超过了,就可以自动跳过这个线路。
  5. 优先级,可以给线路设置优先级,这样就可以实现主用线路和后背线路了。

线路配置

cti_line@domain [哈希表]

  1. key 线路名字
  2. value 线路配置JSON格式

    {
    "params": {
    "count": 1,
    "rest": 1000,
    "fault_threshold": 0,
    "fault_try_interval": 0
    },
    "variables": {
    "origination_caller_id_number": "主叫号码"
    }
    }

line_template.png

  • params 参数
    • count [数字类型] 并发
    • rest [数字类型] 分配一次后的休息时间,单位毫秒,对于坐席要设置1000-3000左右的休息时间,可以防止呼叫失败一直重复呼叫,对于外线一般要设置0。
    • fault_threshold [数字类型] 失败阈值
    • fault_try_interval [数字类型] 故障超过阈值的重试间隔,单位毫秒
    • dialstring [字符串类型] 拨号串。比如usr/1000,sofia/gateway/ims/${destination_number},${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 [哈希表]

  1. key 线路组名字
  2. 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"
    }
    }

line_group_template.png

  • 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/线路组名称/电话号码

<action application="bridge" data="linegroup/线路组名称/电话号码"/>

originage 使用线路组

originate linegroup/线路组名称/电话号码 &echo

配置改变通知

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的主键,比如任务表名字。