设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 2257|回复: 9
收起左侧

[分享] SIP协议简介

[复制链接]
 成长值: 63265
发表于 2024-2-18 16:31:22 | 显示全部楼层 |阅读模式
随着现代多媒体通讯技术的迅猛发展,各种多媒体通信标准也广泛的运用于VoIP语音会议,视频多媒体会议、协作办公等领域,相较于H.323由众多子协议构成的一个协议族来共同完成多媒体通信而言,SIP协议独立于业务(不限制具体业务范畴),且不描述会话内容的特点显得更加简单灵活,所以它可以承载任何的会话内容,如语音、视频、数据等。
那SIP协议到底是什么?它有怎样的应用?SIP信令交付过程是怎样的?带着这些疑问,接下来就由小智带你认识一下它吧。
SIP是什么
下面就由小智为大家盘点下SIP协议的一些基本概念吧,follow me!

                               
登录/注册后可看大图
:SIP 是 Session Initialization Protocol (会话初始协议)的缩写;它是一个应用层的信令控制协议,用于创建、修改和释放一个或多个参与者的会话。它是IETF制订的多媒体通信系统框架协议之一(而上期介绍的H.323则是由ITU-T制定的另一多媒体通信标准,它们是隶属不同阵营哦!)。

SIP是不能单独完成多媒体呼叫的,它必须要与其他协议一起才能组建完整的多媒体通信系统,与RTP/RTCPSDP等协议配合共同完成多媒体会话过程(包括语音、视频和数据等),这样就保证SIP的灵活性易扩展性
下面我们再来简单了解下SIP的协议栈,它在TCP/IP五层模型中属于应用层协议;而在OSI七层模型中属于会话层协议。
                  

                               
登录/注册后可看大图
SIP协议是IETF多媒体数据和控制体系结构的一部分(如上图),与其它协议相互合作,例如:RSVP(Resource ReServation Protocol)用于预约网络资源,RTP(Real-time Transmit Protocol)用于传输实时数据并提供服务质量(QoS)反馈,RTSP(Real-Time Stream Protocol)用于控制实时媒体流的传输,SDP(Session Description Protocol)用于描述多媒体会话。但是SIP协议的功能和实施并不依赖这些协议。

SIP基础

                               
登录/注册后可看大图
:下面一起来进一步认识下SIP协议:包括SIP实体,SIP消息,并结合实际使用场景介绍SIP基本信令交互等。
SIP实体  SIP的实体包括UA、Proxy Server、Redirect Server、Register Server等,他们之间的通信基于SIP来完成。
l   User Agent(UA):用户代理
−          User Agent Clients (UAC) –发起呼叫的功能实体.
−          User Agent Server (UAS) –接收呼叫的功能实体.
华为产品大家庭中常见的VoIP电话(如:MC850、eSpace IP phone系列)、多媒体会议终端(如:VCT、TE系列软/硬终端、TP/RP系列)、即时通信客户端(如:eSpace Desktop)、SIP网关(如:U19系列)等都算UA设备哦。.
l   Proxy Server: 代理服务器是同时作为UAC和UAS的中间实体,其目的是代表其他客户机生成请求。请求被内部处理或可能在翻译之后将其传递到其他服务器。
l   Redirect Server: 重定向服务器接受 SIP请求,并将被呼叫方的 SIP地址映射成零个或更多的新地址并且将它们返回客户机。
l   Registrar Server: UA可以向其注册自己的位置信息,Registrar Server将位置信息保存在数据库中以回复其他server发来的location request。
以上几种服务器也可共存于一个设备(例如:华为的Switch Center,SC),也可以分布在不同的物理实体中,实际SIP在网络中的实体如下图所示:

                               
登录/注册后可看大图
协议消息

                               
登录/注册后可看大图
:上面了解了SIP实体以及他们在实际网络中承担的工作,接下来了解下这些实体间交互消息。SIP消息采用文本方式编码,分为请求消息响应消息。请求消息和响应消息都包括SIP头字段和SIP消息字段,在SIP消息中加入SDP消息正文部分来描述具体的通信内容。

请求消息——用于客户端为了激活按特定操作而发给服务器的SIP消息,常见的有如下几种:

请求消息
消息含义

INVITE
发起会话请求,邀请用户加入一个会话,会话描述含于消息体中。

ACK
证实已收到对于INVITE请求的最终响应。该消息仅和INVITE消息配套使用。

BYE
结束会话

CANCEL
取消尚未完成的请求,对于已完成的请求(即已收到最终响应的请求)则没有影响

REGISTER
用于UA在UAS上的注册,完成地址绑定

OPTIONS
查询对端能力或状态

                               
登录/注册后可看大图
后续RFC扩展了其他的请求方法,包括UPDATE,INFO,SUBSCRIBER,NOTIFY,MESSAGE,PRACK,REFER部门消息在华为视讯会议系统也有广泛扩展和运用。
响应消息——用于对请求消息进行响应,指示呼叫的成功或失败状态。不同类的响应消息由状态码来区分,常见的有如下几类:

序号
状态码
消息功能

1xx
临时响应
表示已经接收到请求消息,正在进行处理

2xx
成功响应
表示请求已经被成功接受、处理

3xx
重定向响应
指引呼叫者重新定向另外一个地址

4xx
客户出错
表示请求消息中包含语法错误或者SIP服务器不能完成对该请求消息的处理

5xx
服务器出错
表示服务器故障不能完成对消息的处理

6xx
全局故障
表示请求不能在任何SIP服务器上实现

                               
登录/注册后可看大图
通信中响应消息比较常见的状态码有:100 Trying(类似Proceeding)、180 Ringing、183 Session Progress(180,183携带SDP可以播放回铃音)、200 OK、401 Unauthorized、403 Forbidden(一般是密码认证失败)、404 NotFound(不存在该用户)、407 Proxy Authentication Request、408 Request TimeOut、486 Busy、502 Bad GateWay。维护人员可以抓取SIP通信报文查看通信状态和根据消息携带的状态码快速定位问题。

消息结构

                               
登录/注册后可看大图
:一个SIP请求或响应由一个请求行几个标题头(header)、一个空行一个消息体组成。消息体一般是可选的,一些请求可不携带它。
下面介绍下5个必须包含在每个SIP消息中的头域:

头域
如何理解
一般格式

Call-ID
用于唯一标识一次会话
Call-ID: 本地标识@主机

From
用于标识请求的发起者,服务器将此字段从请求消息中复制到响应消息
From:显示名<SIP-URL>;tag=XXXX

To
用于表示请求的接收者,其格式和From相同
To:显示名<SIP-URL>;tag=XXXX

Via
用于表示请求的顺序号
Via:发送协议  发送方;隐藏参数;生存期参数;多播地址参数;接收  方标记,分支参数

CSeq
用于表示请求经过的SIP实体和路由响应
CSeq:序号  消息名称
l   请求消息  SIP请求命令的格式,由起始行、消息头和消息体组成。通过换行符区分消息头中的每一条参数行。对于不同的请求消息,有些参数可选。
示例:主叫方发起INVITE请求

                               
登录/注册后可看大图
l   响应消息  SIP响应消息的格式,由起始行、消息头和消息体组成。通过换行符区分消息头中的每一行参数。对于不同的响应消息,有些参数可选。
示例:被叫回180 震铃响应

                               
登录/注册后可看大图

基本信令交互流程


                               
登录/注册后可看大图
:下面我们结合华为视讯会议设备(包括:TE Desktop、TE30、SC等)来说明SIP协议在视频通话中的信令是如何交互的,包括SIP如何注册/注销、建立、修改和结束会话等。
SIP终端的注册和注销(流程)

                               
登录/注册后可看大图
信令交互:这里以TE Desktop(IP:200.56.46.189,SIP号码:075510010)向SC(IP:200.55.52.2)发起注册和注销为例介绍

                               
登录/注册后可看大图
报文分析(1):TE Desktop携带用户可达的URI信息:SIP:075510010@200.56.46.189:5060 发起注册请求

                               
登录/注册后可看大图
报文分析(5):TE Desktop发起注销请求,Expires字段为0。

                               
登录/注册后可看大图
鉴权注册实例:注册时可能需要进行鉴权(就好比小区需要验证来访者的身份信息,确认后放行并登记来访人员)。
信令交互:这里以TE Desktop(IP:10.166.39.120)向SC(10.166.39.156)发起鉴权注册为例介绍。

                               
登录/注册后可看大图
报文分析(2):SC回复401未鉴权,需要TE Desktop携带鉴权信息注册。

                               
登录/注册后可看大图
报文分析(3):TE Desktop携带鉴权信息发起二次注册请求。

                               
登录/注册后可看大图
小结:SIP终端向SIP服务器发起注册也可能失败,您需要抓取服务端的报文,根据服务端返回的响应码具体定位失败原因(例如:服务端回401(无权)、407(要求代理权)等)。
SIP点对点呼叫流程与挂断

                               
登录/注册后可看大图
现实应用中可以存在多台代理服务器对呼叫信令进行代理转发(类似图1),信令交互类似于单台代理服务器。MCU召集的多点会议相当于MCU通过SC代理呼叫多台与会终端,信令交互流程是一样的,所以这里只介绍SC代理呼叫建立和挂断IP地址呼叫建立和挂断

                               
登录/注册后可看大图
图1中为标红的均表示SC代理终端的信令。
信令交互(点对点经SC呼叫流程)TE30(主叫 IP:200.56.52.101、 号码:0755104130),TE Desktop(被叫 IP:200.56.52.108、号码:0755104163)、SC(200.56.52.2)。

                               
登录/注册后可看大图
报文分析(1):主叫号0755104130向SC发起被叫号0755104163的呼叫请求(INVITE),SDP携带相应的音视频能力、辅流和bfcp能力协商请求。

                               
登录/注册后可看大图
报文分析(7):能力协商后,被叫回200 ok,SDP携带协商后的能力集合。

                               
登录/注册后可看大图
协商完成后,主叫和被叫通过建立音视频通道,通过UDP方式传输RTP报文,实现多媒体语音视频数据通信。
报文分析(12):被叫发起BYE(挂断请求)。

                               
登录/注册后可看大图
报文分析(14):主叫对被叫的挂断请求回复200 ok确认挂断响应。

                               
登录/注册后可看大图
信令交互(IP地址直接呼叫):TE Desktop1(主叫IP:10.75.133.95);TE Dektop2(被叫IP:10.75.126.182)。

                               
登录/注册后可看大图
IP地址呼叫无需SC进行信令代理和地址号码解析,信令交互和分析与图1例子一致,这里就不重复赘述了。
小结:在呼叫过程中,SC起到地址和号码解析,信令代理等功能。呼叫过程中往往出现协商过程中能力不匹配而无法建立呼叫(例如:被叫最低音频视频能力与主叫不匹配等,或者只协商出音频能力等)或者协商成功后缺乏部分能力(例如:被叫缺乏bfcp能力无法发送辅流等。对于呼叫无法建立的问题,多半是能力协商失败,建议抓取主被叫方的SIP中的SDP报文,查看能力协商情况,进而快速定位问题。

多点会议呼叫MCU发起两点以上的会议

                               
登录/注册后可看大图
两点会议变三点会议呼叫(MCU新增一路呼叫)

                               
登录/注册后可看大图
小结:通过MCU召集多点会议,相当于MCU同时与多台与会终端建立通话,通过MCU转发音视频和辅流数据,实现多方通话。多点会议(包含两点变多点)的信令交互简单的点对点呼叫信令是完全一致的。需要注意的是多点会议与会终端入会能力协商过程。
两点会议变多点会议实际上是在原有通话基础上,MCU新增一路或者多路呼叫,在实际呼叫的过程,由于入会终端能力的不同,MCU可能与新入会终端进行能力重协商(音视频能力等),并最终建立多点会议,MCU负责会议音视频的编码和媒体流转发。
会话更改(例如:通话中视频转音频

                               
登录/注册后可看大图
信令交互:TE Desktop(IP:200.55.52.101)向TE30(IP:200.56.52.108)发起视频转音频,SC(IP:200.55.52.2)。

                               
登录/注册后可看大图
报文分析(2):通过过程中,TE Desktop发起视频转音频请求(invite只携带音频能力)

                               
登录/注册后可看大图
报文分析(6):对端对视频转音频请求响应200 ok,协商成音频通话,携带协商后的音频能力。

                               
登录/注册后可看大图
协商成功后,断开视频传输通道,成功建立音频通话,实现视频转音频会话更改过程。
小结:SIP协议通过在通话过程中,发起新INVITE请求(会话更改请求),可以处理包括视频转音频、音频转视频等会话变更,音频转视频只需要终端重新发起视频能力协商,协商成功后重新建立视频传输通道实现视频通话。
被叫遇忙呼叫释放

                               
登录/注册后可看大图
信令交互:TE30呼叫TE Desktop时,被叫回486 busy here忙状态(其中:TE30 IP:200.56.52.108、TE Desktop IP:200.56.52.101、SC IP:200.55.52.2)。

                               
登录/注册后可看大图
报文分析(5):被叫回复486忙碌状态。

                               
登录/注册后可看大图
报文分析(7):主叫回复ACK确认被叫忙状态,呼叫释放。

                               
登录/注册后可看大图
小结:这又一个呼叫失败的案例,通过报文分析,被叫方回复的响应吗,可以快速分析对端设备状态,快速定位失败原因(例如:486(线路忙)、487(终止请求)、480(暂时无人接听)等)。具体响应码对应的场景需要您查阅相关资料,这里就不详细介绍咯。

                               
登录/注册后可看大图
:哈哈,其实SIP协议挺强大的,它还能处理几乎所有的呼叫补充业务,例如:遇忙呼叫前转、无应答呼叫前转、呼叫保持、呼叫等待等。小智这里就不一一介绍了。

总结
上面介绍了这么多,我总结了下SIP协议的一些特点:
l   借鉴了其他Internet标准和协议的设计思想,在风格上遵循因特网一贯坚持的简练、开放、兼容和可扩展等原则,并充分注意到因特网开放而复杂的网络环境下的安全问题;
l   充分考虑了对传统公共电话网的各种业务,包括IN业务(Internet)的支持;
l   通过代理和重定向请求用户当前位置,以支持用户的移动性;
l   独立于传输层协议,可以承载在不同的传输协议上(UDP、TCP、SCTP、TLS),因此可以灵活方便地扩展其他附加功能;
SIP协议独立于业务,协议不限制具体业务范畴,只描述建立/更改/终止一个会话,并不描述会话的内容,所以可以承载任何的会话内容,如语音、视频、数据等。
SIP的优点和缺点都比较明显,这里给大家罗列一下看看咯:
l   SIP是基于文本的协议,以文本形式表示的词法和语法分析比较简单
l   SIP的会话请求过程和媒体协商过程是一起的,呼叫时间短
l   在补充业务方面,SIP只需充分利用自己利用的头域,必要时对头域进行简单的扩展,就能很方便地实现补充业务或智能业务
l   SIP类似于其他的Internet协议,设计上就为分布式的呼叫模型服务的,具有分布式的组播功能。
概括的说,SIP具有简单、灵活、分布式控制等优点 。
l   SIP是基于文本的协议,所有信息都是明文的,所以安全性不高
l   SIP协议由于比较简单、灵活,在大型组网和计费方面还不是很成熟

发表于 2024-2-18 17:09:41 | 显示全部楼层
VoIP的SIP协议,CCIE voice的东西。
沙发 2024-2-18 17:09:41 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2024-2-21 10:14:27 | 显示全部楼层
SIP协议简介
7# 2024-2-21 10:14:27 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-1-24 08:30 , Processed in 0.077982 second(s), 10 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表