注册信令消息示范:
1.1
REGISTER sip:SIP服务器编码@目的域名或IP地址端口SIP/2.0
Via: SIP/2.0/UDP 源域名或IP地址端口
From:
To:
Call-ID: [email protected]
CSeq: 1 REGISTER
Contact:
Authorization: Capability algorithm="A:RSA/ECB/PKCS1,RSA/CBC/PKCS1;H:SHA1,MD5,SHA256;S:DES/ECB/PKCS5,DES/CBC/PKCS5,3DES/ECB/PKCS5,3DES/CBC/PKCS5,SCB2"
Max-Forwards: 70
Expires: 3600
Content-Length: 0
解释:
第一行的 REGISTER 表示是一条注册消息。
Via 是 SIP 的消息路由,如果 SIP 经过好多代理服务器转发,则会有多条 Via 记录。
To 和 From 用户代理(SIP代理)地址。
Call-ID 是本次 SIP 会话(Session)的标志。
CSeq 是一个序号,由于 UDP 是不可靠的协议,在不可靠的网络上可能丢包,所以有些包需要重发,该序号则可以防止重发引起的消息重复。
Contact 是 用户代理(SIP代理)的地址和端口。
Max-forwards 指出消息最多可以经过多少次转发,主要是为了防止产生死循环。
Expires 是说明本次注册的有效期,单位是秒。
Content-Length 是消息体(Body)的长度,在这里,只有消息头(Header),没有消息体,因此长度为 0 。
1.2
SIP/2.0 401 Unauthorized
To: sip:SIP设备编码@源域名 Content-Length: 0
CSeq: 1 REGISTER
Call-ID: [email protected]
From:
Via: SIP/2.0/UDP源域名或IP地址端口
WWW-Authenticate: Digest realm="64010000",nonce="6fe9ba44a76be22a"
SIP服务器需要验证SIP代理 的身份才允许注册。在SIP中使用已有的 HTTP 摘要(Digest)方式来认证。401 消息表示未认证,它是SIP服务器对 aliceSIP代理 的响应。同时,它在本端生成一个认证摘要(WWW-Authenticate),一齐发送给SIP代理。
1.3
REGISTER sip: SIP服务器编码@目的域名或IP地址端口 SIP/2.0
Via: SIP/2.0/UDP 源域名或IP地址端口
From:
To:
Call-ID: [email protected]
CSeq: 2 REGISTER
Contact:
Authorization: Digest username="64010000002020000001", realm="64010000", nonce="6fe9ba44a76be22a", uri="sip:[email protected]:5060", response="9625d92d1bddea7a911926e0db054968", algorithm=MD5
Max-Forwards: 70
Expires: 3600
Content-Length: 0
SIP代理 收到带有摘要的 401 后,后新发起注册请求,这一次,加上了根据收到的摘要和它自己的密码生成的认证信息(Authorization)。并且CSeq 序号变成了 2。
1.4
SIP/2.0 200 OK
To:
Contact: sip:SIP设备编码@源IP地址端口
Content-Length: 0
CSeq: 2 REGISTER
Call-ID: [email protected]
From:
Via: SIP/2.0/UDP源域名或IP地址端口
Date: 2010-11-02T15:01:26.115
Expires: 3600
SIP服务器收到带有认证的注册消息后,核实 SIP代理身份,认证通过,回应 200 OK。 如果失败,则回应 403 Forbidden 或其它失败消息,