sip协议详解_会话边界控制器(SBC)/SIP路由以及相关业务问题浅析

本文深入探讨了SIP网络中的SBC(会话边界控制器)及其在SIP路由中的作用,解释了注册服务、Proxy路由的工作原理,并详细阐述了Record-Route修改、传输协议切换、SBC环境中的呼叫路由类型等问题,旨在帮助读者理解SBC、SIP路由策略及其常见业务挑战。

SIP网络环境中,特别是涉及了多个应用节点或多个网络要素环境的SIP呼叫中,因为涉及的网络节点比较复杂,所以SIP路由所涉及的路径就比较多,例如注册服务,定位服务等,另外,因为目前的SIP网络环境中,很多SIP呼叫业务又涉及了SBC,使用SBC作为一个SIP安全的保护机制,因此,在SIP路由或呼叫中增加了SBC处理的场景。因此,很多SIP网络用户就对这些相关的问题感到非常困惑。今天,笔者针对SBC和SIP路由以及所涉及的相关业务问题进行浅析和说明,希望读者能够对SBC,SIP路由以及路由策略有一个大概的理解。

笔者首先说明,因为篇幅有限,笔者很难在比较短的篇幅涵盖所有细节。另外,很多基本概念在以前的历史文档中也早已有完整深入的介绍,所以,笔者在这里可能简单重复介绍一些基本的概念,或者不再介绍一些基本的概念,读者可以查阅历史文档学习或者补充相关知识。最后,因为涉及到具体的业务应用,笔者只能比较宽泛地讨论一些经常使用的或者相对规范的应用场景,特别具体场景这里不再做更多讨论。针对本文章所需要涉及到的内容,笔者首先讨论一些基本的针对SIP路由的相关的概念和处理流程,另外因为SIP业务服务器可能需要经过SBC的调度处理,笔者将针对SIP路由经过SBC以后的一些流程进行讨论。

1

关于SIP注册服务介绍

在SIP技术中,非常重要的一个概念就是注册(Registrar)。注册本身就是一种服务的处理流程,他一般是一个数据库存储Registrar地址,终端用户通过地址查找来实现其可达性的状态查询。如何发现注册地址,读者可以参考RFC10.2.6的规范细节。笔者也发布过历史文档,此文档中比较详细说明了注册和定位的处理流程,读者可以参考此文档做进一步学习:

深入理解SIP服务器的注册和定位服务流程

在实际SIP网络或者IP网络的应用场景中,特别是现在的移动端的使用中,IP地址可能会经常发生变化,而且一个SIP终端账号有几种表现形式(一个分机同时有物理终端,PC端分机或者APP分机)。这些IP地址一般又是临时地址,这样的话,服务器端对终端状态的管理存在很多挑战。因此,在SIP应用场景中,SIP协议使用了一个永久地址来匹配一个SIP账号信息,这个地址就是AOR地址(address of record)。这里,笔者提醒读者,在一般的企业通信或者IPPBX的讨论中,我们经常使用的是SIP分机的说法。那种说法或者称谓仅在一个比较小型的内网环境的说法,我们有时为了简单方便也使用这样的称谓,但是SIP呼叫流程决不仅仅是一个分机的概念,希望一些初级用户不要对这些概念迷惑。进一步讲,即使是一个IPPBX表示也集成了以下示例的所有功能模块,在逻辑上都是独立的,仅表现为一个一体服务器形式而已。如果是大型的服务器或者其他分布式部署的服务器,这些服务器端都各自有自己表示的逻辑功能,包括图例中使用的注册服务器,定位服务器,路由服务器和域名解析等等。

a08f425e4180aa1da577330608ba1604.png

此图片和以下图片资源均来自于互联网资源

另外,在实际应用环境中,我们还有一个contact地址。这两个基本的地址就可以绑定大部分的呼叫业务流程。针对这两个容易混淆的地址, 读者可以简单理解为:AOR是告知服务器端SIP终端是谁(唯一的),Contact告诉服务器SIP终端此时此刻在哪里(绑定多个contacts)。呼叫SIP终端时,应该首先检查AOR地址,然后逐一检查contact地址状态,最后呼叫到有效contact地址。

在以上图例中,两个SIP终端注册都分别经过了4个处理流程(M1/M2,M3/M4)。

2

关于SIP proxy路由介绍

在以上讨论中,除了进行注册以外,SIP终端双方如果需要呼叫对方的话,仍然需要借助于第三方的其他服务功能实现路由等处理流程。Proxy或者代理服务器就是其中一个必要的逻辑实体。一般来说,代理服务器负责处理域名检查,然后做相应的路由处理转发。代理服务器首先必须检查请求中的SIP Request-URI,因为此参数中可能包含必要的路由的头域参数,例如Route/Route-Record,代理服务器根据这些路由头进行下一步的路由转发处理。当我们讨论proxy时,另外一个比较重要的概念就是B2BUA,如果读者对Proxy或者B2BUA迷惑的话,可以参考笔者历史文档:

B2BUA/SBC/Proxy的SIP消息重构和RFC7092详解

d2da6e1165236d9162409be2cb7805bf.png小广告

笔者这里不再做更多重复介绍,请读者仔细阅读以上链接文档。代理服务器获得了Route头以后,它就会根据代理服务器的列表强制执行这些路由转发处理。Route-Record则是被proxy记录在请求中并且 强制将来的请求通过此代理服务器。当然,这些通过代理服务器的路由还要结合本地的策略处理,这些策略处理很大程度上会影响这些记录值。以上图例是一个非常典型的也是一个基本的SIP呼叫拓扑示例图。在SIP终端呼叫过程中,双方经过了(P1,P3,P2,流程为U1 -> P1 -> P3->P2 -> U2和其相反流程)三个代理服务器的处理。现在,我们根据以上处理流程来分析一下代理的record-routing细节。首先,UA1呼叫了一个P1外呼的代理服务器,其请求如下(M5):
INVITE sip:callee@office.com SIP/2.0Contact: sip:caller@u1.example.com

这里,P1代理服务器没有对office.com 负责处理,它没有P1代理服务器和此域名没有任何绑定关系,因此,它交给domin解析服务器进行解析查询,然后把消息继续路由到P3,并且增加了一个Route-Record,表示通过了P1代理服务器。这里,contact地址发送了变化,并且增加了一个路由记录。

INVITE sip:callee@office.com SIP/2.0Contact: sip:caller@u1.example.comRecord-Route: lr>

P3收到以上路由的请求以后,仍然没有查询到相应的office.com地址,它继续向下一个代理进行转发路由,转发到P2代理服务器。Record-Rou

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值