下面我们通过一个简单的场景例子来简单介绍一下 SIP 会话流程。
Tom 和 Jerry 是非常好的伙伴,Tom 在他的 PC 上使用一个 SIP 的应用程序呼叫 Internet 上另一个 SIP 电话用户 Jerry。
1. 注册过程 :
SIP 注册过程是建立用户当前 IP 地址与用户URI之间的对应关系。首先,Tom 和 Jerry 的 SIP 应用程序或者硬件设备,需要在网络中注册。之后终端需要知道代理呼叫会话控制功能(P-CSCF)的地址。P-CSCF 是终端向网络中发送所有 SIP 消息的惟一入口,用于 SIP 出站代理,注册完成后服务于所有其他 SIP 信令。该地址可以预先配置,在没有配置的情况下,终端可以在建立的通用或专用 PDP 信令上下文的过程中请求该地址。
Tom 的终端首先会生成一个 REGISTER 请求,该请求中的相关信息从 Tom 的用户标识模块 (USIM) 的 IP 多媒体服务标识模块(ISIM)中获取。请求经过 P-CSCF 和 I-CSCF(问询呼叫会话控制功能)为 Tom 指定一个 S-CSCF(服务呼叫会话控制功能)。S-CSCF 负责根据请求信息建立用户标识与终端 IP 地址的对应绑定关系。
1. 构造的 REGISTER 消息
REGISTER sip: telcomx.tel.com SIP2.0
From:<sip: tom@telcomx.tel.com>;tag=pohjaxx
To:<sip: tom@telcomx.com>
Via:SIP/2.0/UDP[4444::2:3:4:5];branch=xo93sle
Route: sip:[5555::a:f:f:e];lr
Contact:<sip:[4444::2:3:4:5]>;expires=600000
Call-ID: apb304a94sslfeiasle93aj11
Authorization:Digest username="tom@telcomx.tel.com",
realm="telcomx.tel.com",
nonce="",
uri="sip:telcomx.tel.com",
response=""
CSeq: 25 REGISTER
Content-Length:0
该消息中 Route 标识请求路由的下一节点;Contact 中定义了 IP 地址与 SIP URI的绑定持续时间;Call-ID 和 CSeq 消息头惟一标识本次事务。注册消息经 P-CSCF 发送到 I-CSCF,I-CSCF 是 Tom 所在归属网的入口,接收 Tom 终端发起的每一次注册请求。I-CSCF 查询 HSS 服务器,根据请求中标识的需求能力,选择一个合适的 S-CSCF 为用户提供服务,并将请求发送到该 S-CSCF 节点上。
S-CSCF 返回 401(未授权)响应要求 Tom 进行认证,则 Tom 的终端将发送第二个 REGISTER 请求,第二个请求包含相同的有关注册信息,并经过的路由与第一个 REGISTER 的路由完全相同。但是第二个 REGISTER 产生一个新的 Cal