在OKCC呼叫中心系统中实现单个外呼任务绑定独立SIP中继,需要通过线路组策略与任务路由规则进行精准配置。以下是具体操作步骤及技术要点:
一、SIP中继基础配置
-
创建独立SIP中继
-
进入「线路管理」→「SIP中继配置」
-
分别创建两条SIP中继(示例):
makefile# 中继1(运营商A) 中继名称: SIP_Trunk_A SIP服务器: sip.operatorA.com:5060 认证账号: userA 认证密码: ******** 最大并发数: 30 # 中继2(运营商B) 中继名称: SIP_Trunk_B SIP服务器: sip.operatorB.com:5060 认证账号: userB 认证密码: ******** 最大并发数: 50
-
-
设置号码格式化规则
-
为每条中继配置独立号码前缀(如中继A加拨前缀"0086")
-
使用正则表达式处理被叫号码:
ruby^(\d{11})$ → 0086\1 # 中继A规则 ^(\d{11})$ → 00\1 # 中继B规则
-
二、线路组策略配置
-
创建独立线路组
cssgraph LR A[线路组1] --> B[SIP_Trunk_A] C[线路组2] --> D[SIP_Trunk_B]
-
设置组内路由策略
- 选择「严格绑定」模式(非轮询/负载均衡)
- 关闭自动故障转移功能,技术问题欢迎和博主yuyinjiqiren交流学习
- 配置组容量阈值(如线路组1最大并发=30)
三、外呼任务绑定配置
-
创建独立外呼任务
任务名称 绑定线路组 并发控制 营销任务_运营商A 线路组1 25路 回访任务_运营商B 线路组2 45路 -
配置任务级路由规则
-
在任务高级设置中启用「强制指定线路组」
-
添加路由条件(示例):
lua-- 营销任务仅允许使用线路组1 IF 任务类型 = '营销' THEN 路由至线路组1 -- 回访任务仅允许使用线路组2 IF 客户等级 = 'VIP' THEN 路由至线路组2
-
四、验证与调试
-
实时监控方法
-
通过「线路监控」面板查看各中继使用状态
-
检查CDR话单中的路由信息字段:
ruby2023-08-15 10:05:23 | 任务ID:MK001 | 中继:SIP_Trunk_A | 通话时长:00:02:18 2023-08-15 10:06:11 | 任务ID:HV002 | 中继:SIP_Trunk_B | 通话时长:00:01:45
-
-
压力测试脚本(示例)
python# 模拟营销任务呼叫 def test_task_a(): for i in range(30): make_call(任务ID='MK001', 号码=1380000+i) assert 当前使用中继 == 'SIP_Trunk_A' # 模拟回访任务呼叫 def test_task_b(): for i in range(50): make_call(任务ID='HV002', 号码=1390000+i) assert 当前使用中继 == 'SIP_Trunk_B'
五、常见问题解决方案
-
中继混用问题
- 现象:任务B的呼叫从SIP_Trunk_A拨出
- 排查:
✅ 检查线路组绑定是否开启「独占模式」
✅ 验证号码格式化规则是否冲突
✅ 查看系统日志中的路由决策记录
-
并发超限告警
- 调整线路组的「最大并发」>任务并发设置
- 示例:若营销任务设置25路并发,线路组1容量需≥25
六、高级配置技巧
-
动态路由增强
javascript// 根据时段切换中继(18点后自动切到资费更低的中继) function dynamicRoute(task){ let hour = new Date().getHours(); if(hour >= 18 && task == '回访任务'){ return 'SIP_Trunk_Night'; // 夜间专属中继 } return defaultRoute(task); }
-
中继健康监测
- 配置心跳检测(每60秒发送OPTIONS请求)
- 自动隔离异常中继并发送告警邮件
通过上述配置,可实现:
- 营销类外呼100%走运营商A线路
- 客户回访任务专属使用运营商B线路
- 双中继完全物理隔离,避免路由策略交叉影响
实际部署时建议:
- 为每个SIP中继创建独立网卡/VLAN
- 在防火墙设置独立策略规则
- 定期导出CDR日志进行路由审计