广告 《大道至简,给所有人看的编程课》 🔥

《FreeSWITCH案例大全》

3.2 SIP中继接入高可用方案

3.2.1 SIP中继

SIP中继(SIP Trunking)是一种IP连接,在您的平台与防火墙以外的Internet电话服务提供商(ITSP)之间建立SIP通信链路。通常情况下,SIP中继用于将平台的中央站点连接到ITSP。是一种中间信令转换层代理服务。

中继服务也可以认为是一个B2BUA,作为SIP呼叫两端的用户代理,负责处理呼叫两端的所有SIP信令,从呼叫确立到终止全程跟踪每个呼叫。FreeSWITCH是一个中继实现方案,可以通过sip_profile中的endpoint来指定局端连接信息,通过dialplan来规划呼入、呼出拔号路由规则,也可以实现号码规则变换。

FreeSWITCH中sip_profile有一个默认的端点external开放5080和5081的tcp、udp端口用来作为对外提供服务的接入点,对外提供服务。你也可以复制external目录和external.xml配置,修改名字为mine-trunk,mine-trunk.xml,并修改profle的name字段为mine-trunk,同时修改sip-port,tls-sip-port的端口分另为5082,5083。并在mine-trunk目录下建立一个gateway,填写运营商提供的中继接入点realm,password,proxy等信息。通过fs_cli工具执行sofia profile mine-trunk start启动中继服务监听进程。

至此就有了一个简单的中继服务接入点了,接下来就看我们以怎样的方式来进行接入,每个接入点是否可靠,怎么来保证它的可靠性了。

3.2.2 对接场景

做为一个通信集成云平台,主要关注的点在平台的综合业务上,对于运营商、线路商等服务资源提供商要有一个统一的口径进行入局、出局的管理,和现有的业务场景进行隔离,提供统一的标准接口,一但资源标准化后,就可以实现针对业务的可插拔式管理,可以达到自由切换及自动切换。

中继接入服务基本都是暴露在公网上的,双向对等信令交互(即呼入为A服务直接向B服务发起invite信令,呼出为B服务直接向A服务发起invite信令,双端都是服务提供方,也都是信令发起方)的一种服务。

基本都是通过双端配置白名单的方式来确保服务的安全性,有一些提供商为了增加安全的级别,在有白名单的基础上,还会要求使用用户名、密码的认证方式。

上面提到的都是自己的中继节点和运营商等服务提供商的对接方式,对接成功后接下来要考虑的是如何将本中继节点和自己的媒体业务平台对接起来。

3.2.3 负载策略

呼叫分为两个方向,呼入、呼出,针对两种方式的实现方式有所不同。我们就从呼叫方向上来进行说明。

3.2.3.1 呼入

对于和外部的接入方肯定是希望我们提供的接入方式越简单越好,最简单的方式就是一个IP,一个端口,再说明支持的协议,对方就可以很简单的配置使用了,很多传统的企业也都是这么用的,这样就会有单点故障的风险。

针对呼入的中继服务节点本身的高可用方案直接使用了方案3。可以解决接入方和中继节点本身的单点问题,接下来SIP信令流过SIP Trunking服务后,最终还是要被送往媒体服务做具体的媒体业务处理的,接下来我们就看一下,SIP Trunking服务如果和媒体业务服务保持一个高可用的。

我们的业务类型是以企业的某一种固定ID的形式进行一致性hash到相对固定的媒体服务上去做实际业务处理的,



本书版权所有 © 杜金房及各位贡献者 2016-2023,仅供在线阅读,谢绝一切形式转载。 本书还在写作中,持续更新。 如果你也想写上几句,欢迎加入我们。 | 返回首页 |