特别专栏 | Column

大容量高并发分布式呼叫中心架构设计

作者 张修路 刘小桃

传统呼叫中心集成复杂,成本高,建设周期长。随着互联网以及IT的发展,呼叫中心走向云化,云呼叫中心的需求是分布式部署,用户可以就近快速接入,快速集成;架构的核心需求是:

1.如何支持分布式的网关和分布式坐席;

2.如何支持大容量高并发的业务场景;

3.云部署的呼叫中心如何确保可靠性和安全性。

本文我们将通过对云之讯云呼叫中心架构分析,介绍我们设计云呼叫中心的一些经验。

(一)云分布式呼叫中心及平台架构介绍

1.云呼叫中心的场景

系统说明

· I-CSCF:负责处理与落地网关的呼叫流程与信令管理。

· S-CSCF:负责处理用户侧的信令,包括用户注册、心跳管理和用户侧的呼叫管理。

· Callcenter:负责呼叫过程中的媒体转发、录音、IVR放音等功能。

· CCkernel:负责呼叫中心的排队管理、用户状态等核心功能。

部署说明

· 呼叫中心系统在各地部署POP接入点并通过专线连接。

· 使用呼叫中心的企业用户就近接入分布式POP点,避免语音在Internet传输影响语音质量。

· 企业用户使用的PSTN网关就近接入POP点,以节约长途话费。

设计理念

· 业务与控制分离,信令与媒体分离,提升网络的灵活性和可靠性,通过服务化拆分和微服务的方式,构建分布式大容量的可靠性解决方案。

· 关键业务部件如CCkernel、I-CSCF、S-CSCF等通过主备方式提升可靠性,并支持异地容灾。

· 媒体处理节点Callcenter节点支持分布式集群部署,部署在各地POP点,Callcenter出现故障,I-CSCF和S-CSCF能够自动发现,并通过SIP信令引导呼叫接续到到其它Callcenter节点。

(二)技术挑战与架构设计

基于分布式的呼叫中心设计目标,针对呼叫中心的面临的挑战,我们提供了如下的解决方案。

1.智能路由

由于设计目标需要企业用户就近接入,落地网关也需要就近接入,业务各POP点通过专线连接,就需要实现智能化的选路方案,以确保用户通过最优的路由接入。

· 各企业用户登录中心节点,中心节点根据用户的IP地址判断运营商和位置,指引该用户就近接入POP点,所在POP点出现故障,则指引用户接入备份POP点

· 落地网关通过固定配置就近接入主用POP点,主用POP故障,自动切换到备份POP点

· 各POP点通过专线连接,通过OSPF方式实现自动选路,并监控相关路由,确保最佳选路

2.通话接续速度

通话接续速度是影响用户体验的第一要素,通过架构实现了分布式数据库和内存数据库并进行算法优化,把数据缓存到离Callcenter最近的内存数据,以确保数据查询速度,尽快转接,同时优化路由算法,做到最短选路,在整个呼叫中心内部,最多只需要经过2个节点就可以进入PSTN网络。

3.语音质量

1.路由管理:在用户侧部署监控模块,实施监控到主用POP节点和备份POP节点的丢包和延迟情况,主用POP节点出现网络异常,下一次通话切换到备份POP节点

2.语音编码:根据实施监测的网络情况,以及用户话机和落地网关的编解码能力,动态选择最优编解码方案。

(三)关键技术设计

1.内存数据库Redis设计

整个呼叫过程中,涉及大量的路由策略,每一次通过都需要多次数据库操作,为提升呼叫速度;同时,关键部件如CCkernel、I-CSCF、S-CSCF等部件都通过双机或者集群提升可靠性,为了保证双机、集群切换过程中,呼叫不受影响,我们采用了内存数据库Redis。

1. CCkernel把所有排队、相关组件信息保存在Redis中,CCkernel切换过程,整个用户数据不损失,业务逻辑不受损。

2. I-CSCF和S-CSCF把所有呼叫相关的信息保存在Redis中,I-CSCF和S-CSCF切换,已有呼叫连接的数据均在Redis中,呼叫不会受到影响。

2.微服务路由设计

呼叫中心系统需要支持高并发的大容量呼叫,同时要支持复杂的路由策略,为了提升接续速度,减少部件交互,我们对路由呼叫处理进行分级处理,热点数据缓存在进程内,部分数据存在在本机的缓存内,对于低频访问数据和复杂业务逻辑进行统一管理,根据路由策略,进行分级查询。

(四)系统可靠性设计理念

· 信令和业务处理节点CCkernel、I-CSCF、S-CSCF通过双机实现备份,同时支持异地部署和容灾。

· I-CSCF出现故障,业务可以自动切换到异地的I-CSCF,落地网关通过SIP option监测到故障,切换到异地的I-CSCF。

· S-CSCF出现故障,业务可以自动切换到异地的S-CSCF,通过DNS指引用户切换到异地S-CSCF。

· 媒体处理节点集群部署,I-CSCF和S-CSCF实时监控,通过呼叫信令指引用户切换到备份节点。

(五)安全性

系统安全

· 公网关闭所有非必要服务端口,及时更新版本和补丁。

· 实现完善的认证与鉴权机制,防止非法用户登录。

业务安全

· 通过呼叫中心系统实时监测各用户呼叫情况,动态分析呼叫数据,发现可疑呼叫立刻通知管理人员进行人工介入。

· 录音监控系统:可以按照客户或者某一路呼叫进行录音,录音快速回传给客户进行,人工进行分析。