呼叫中心中间件配置指南:外呼转人工显示被叫号码

在呼叫中心自动化场景中,自动外呼转人工时显示正确的被叫号码是提升客服效率的关键。若系统仅展示路由条件(如队列ID、技能组名称),而非实际用户号码,会导致客服人员无法快速识别来电身份,影响服务响应速度。本文将通过分步骤配置指南,结合参数解析与最佳实践,帮助开发者实现”转人工时显示被叫号码”的核心需求。

一、技术原理与核心配置逻辑

呼叫中心中间件在自动外呼流程中,需通过信号处理模块完成号码透传。其核心逻辑分为三步:

  1. 外呼阶段:系统发起呼叫时,将主叫号码(IVR虚拟号)与被叫号码(用户真实号)绑定为”号码对”存储至会话上下文。
  2. 转人工触发:当用户选择转人工服务时,中间件需从会话上下文中提取被叫号码,而非依赖路由规则生成的临时标识。
  3. 显示层渲染:坐席终端根据中间件传递的参数,优先展示被叫号码字段,隐藏路由条件等中间信息。

关键参数对照表
| 参数名称 | 作用域 | 默认值 | 推荐配置 |
|—————————|————————-|————|———————————————|
| caller_display | 外呼任务配置 | 路由ID | 设置为${target_number} |
| context_carry | 会话管理模块 | 禁用 | 启用number_pair字段透传 |
| ui_mapping | 坐席终端配置 | 队列名 | 绑定context.target_number |

二、分步骤配置实施

步骤1:外呼任务参数配置

在中间件管理控制台中,进入”自动外呼任务”配置页面,重点修改以下字段:

  1. <!-- 示例配置片段(伪代码) -->
  2. <outbound_task>
  3. <caller_display_policy>
  4. <primary_field>${target_number}</primary_field>
  5. <fallback_field>route_id</fallback_field>
  6. </caller_display_policy>
  7. <context_carry_rules>
  8. <include field="target_number" />
  9. <include field="call_reason" />
  10. </context_carry_rules>
  11. </outbound_task>

操作要点

  • primary_field值设为变量${target_number},确保优先使用被叫号码
  • context_carry_rules中显式包含目标号码字段,避免被系统过滤

步骤2:路由规则优化

在智能路由配置界面,需确保路由决策后不覆盖原始号码信息:

  1. 进入”路由策略-高级设置”
  2. 关闭overwrite_caller_info选项
  3. 在条件匹配规则中,避免将路由组ID写入display_name字段

典型错误配置示例

  1. // 错误:将路由条件写入显示字段
  2. if (skill_group === 'vip') {
  3. display_name = 'VIP队列-' + route_id; // 应避免此类拼接
  4. }

步骤3:坐席终端适配

针对不同终端类型(Web/APP/硬件话机),需分别配置显示映射规则:

  • Web坐席:在终端配置文件中添加字段映射:
    1. {
    2. "display_fields": [
    3. {"source": "context.target_number", "label": "客户号码"},
    4. {"source": "route.name", "label": "技能组", "hidden": true}
    5. ]
    6. }
  • SIP话机:通过自定义头域传递号码:
    1. P-Asserted-Identity: "用户138xxxx"<sip:138xxxx@domain.com>

三、验证与故障排查

验证方法

  1. 日志检查:在中间件日志中搜索DISPLAY_NUMBER字段,确认值与被叫号码一致
  2. 抓包分析:使用Wireshark捕获SIP信令,验证From头域是否包含原始号码
  3. 坐席视角测试:以普通坐席身份接听转人工来电,记录显示的号码类型

常见问题处理

现象 可能原因 解决方案
仍显示路由ID 上下文透传未生效 检查context_carry配置是否包含目标字段
显示为空 变量解析失败 在调试模式查看变量替换结果
显示部分号码(如后4位) 隐私策略拦截 调整号码脱敏规则,区分存储与显示逻辑

四、性能优化建议

  1. 缓存策略:对高频外呼号码建立本地缓存,减少数据库查询

    1. // 伪代码:号码缓存示例
    2. Cache<String, String> numberCache = Caffeine.newBuilder()
    3. .maximumSize(10000)
    4. .expireAfterWrite(10, TimeUnit.MINUTES)
    5. .build();
    6. String getDisplayNumber(String taskId) {
    7. return numberCache.get(taskId, k -> fetchFromDB(k));
    8. }
  2. 字段精简:在context_carry中仅保留必要字段,降低网络传输开销
  3. 异步处理:将号码解析等非实时操作放入消息队列,避免阻塞主流程

五、安全与合规考量

  1. 号码脱敏:在日志和存储层面,对完整号码进行部分隐藏(如138****1234
  2. 权限控制:限制坐席查看完整号码的权限,按角色分配显示级别
  3. 审计追踪:记录所有号码显示操作,满足合规审查需求

通过上述配置,可实现自动外呼转人工时100%显示被叫号码的目标。实际部署中,建议先在测试环境验证所有场景(包括跨路由组转接、多级IVR等复杂流程),再逐步推广至生产环境。定期检查系统配置是否因版本升级发生变更,确保显示逻辑持续有效。