2024年6月2日发(作者:)

SIP 交互流程

一、 SIP(Session Initiation Protocol)

会话初始协议(Session Initiation Protocol)是一种信令协议,用于初始、管

理和终止网络中的语音和视频会话,具体地说就是用来生成、修改和终结一个

或多个参与者之间的会话。SIP的业务模式是一个点对点协议,其中有两个要素

——SIP用户代理和SIP网络服务器。用户代理是呼叫的终端系统元素,而SIP

服务器是处理与多个呼叫相关联信令的网络设备。用户代理本身具有一客户机

元素(用户代理客户机UAC)和一服务器元素(用户代理服务器UAS)。客户机

元素初始呼叫而服务器元素应答呼叫。这允许点到点的呼叫通过客户机-服务器

协议来完成。下图是SIP业务的网络结构和各个参与者的关系。

SIP是互联网工程任务组(IETF)多媒体数据和控制体系结构的一个组成部

分,因此它与IETF的许多其他协议都有联系,例如RTP(实时传输协议)和

SDP协议。SIP与许多其它的协议协同工作,仅仅涉及通信会话的信令部分

(control message)。SIP报文内容传送会话描述协议(SDP),SDP协议描述了会话

所使用流媒体细节,如:使用哪个IP端口,采用哪种编解码器等等。SIP的一

个典型用途是:SIP“会话”传输一些简单的经过封包的实时传输协议流。RTP本

身才是语音或视频的载体

二、 业务流程和协议流程

这里介绍了注册和呼叫流程,其他场景需要了解,博客地址

/gnuhpc/archive/2012/12/10/,比较详细。

并有场景的抓包截图等。SIP协议也是简单的讲解请求和应答消息种类,和各个

头域讲解,详细的SIP协议请查看文档rfc3261。

1.注册流程:

终端代理A代理服务器

注册流程图如下图,举例用sip客户端在10.18.6.83机器上,以1001号码,

向10.18.2.152上的Freeswitch注册。

REGISTER (1)

401(2)

REGISTER(3)

200 OK (4)

标题

(1)用户首次试呼时,终端代理A 向代理服务器发送REGISTER 注册请求;

(2)代理服务器通过后端认证/计费中心获知用户信息不在数据库中,便向终端代理回送401

Unauthorized 质询信息,其中包含安全认证所需的令牌;

(3)终端代理提示用户输入其标识和密码后,根据安全认证令牌将其加密后,再次用

REGISTER 消息报告给代理服务器;

(4)代理服务器将REGISTER 消息中的用户信息解密,通过认证/计费中心验证其合法后,

将该用户信息登记到数据库中,并向终端代理A 返回成功响应消息200 OK。

抓包截图如下图

客户端第一次发送的REGISTER包体内容如下图, expries=3600