一、简介
SIP消息采用文本方式编码,分为两类:请求消息和响应消息。
请求消息:客户端为了激活按特定操作而发给服务器的SIP消息。
响应消息:用于对请求消息进行响应,指示呼叫的成功或失败状态。
请求消息和响应消息都包括SIP头字段和SIP消息字段。
二、请求消息详解
请求消息包括6条请求命令,非常简洁。
请求消息
|
消息含义
|
INVITE
|
发起会话请求,邀请用户加入一个会话,会话描述含于消息体中。对于两方呼叫来说,主叫方在会话描述中指示其能够接受的媒体类型及其参数。被叫方必需在成功响应消息的消息体中指明其希望接受哪些媒体,还可以指示其行将发送的媒体。
如果收到的是关于参加会议的邀请,被叫方可以根据Call-ID或者会话描述中的标识确定用户已经加入该会议,并返回成功响应消息。
|
ACK
|
证实已收到对于INVITE请求的最终响应。该消息仅和INVITE消息配套使用。
|
BYE
|
结束会话
|
CANCEL
|
取消尚未完成的请求,对于已完成的请求(即已收到最终响应的请求)则没有影响
|
REGISTER
|
注册
|
OPTIONS
|
查询服务器的能力
|
三、响应消息详解
响应消息是从100 - 699的返回码,分别表示不同的意义。
序号
|
状态码
|
消息功能
|
1xx
|
临时响应
|
表示已经接收到请求消息,正在对其进行处理
|
2xx
|
成功响应
|
表示请求已经被成功接受、处理
|
3xx
|
重定向响应
|
表示需要采取进一步动作,以完成该请求
|
4xx
|
客户端出错
|
表示请求消息中包含语法错误或者SIP服务器不能完成对该请求消息的处理
|
5xx
|
服务器端出错
|
表示SIP服务器故障不能完成对正确消息的处理
|
6xx
|
全局错误
|
表示请求不能在任何SIP服务器上实现
|
四、请求消息格式
/*按行排列*/
命令名称+目标URI+sip协议版本
call-id : xxx
via : xxx
from : xxx
to : xxx
contact : xxx
cseq : xxx
content-length : xxx
max-forward : xxx
content-type : xxx
/*空行*/
SDP
五、响应消息格式
/*按行排列*/
sip协议版本+响应返回码
call-id : xxx
via : xxx
from : xxx
to : xxx
contact : xxx
cseq : xxx
content-length : xxx
max-forward : xxx
content-type : xxx
/*空行*/
SDP
六、sip消息示例
1.请求消息示例:
INVITE sip:02220002@100.1.0.32;user=phone SIP/2.0
Via: SIP/2.0/UDP 100.1.0.1
From: <sip:02120001@100.1.0.252;user=phone>;tag=1981486230
To: <sip:02220002@100.1.0.32;user=phone>
Call-ID: 3733973800@100.1.0.252
CSeq: 1 INVITE
Contact: <sip:02120001@100.1.0.252;user=phone;transport=udp>
User-Agent: Cisco ATA v2.11 ata186 (0803a)
Expires: 300
Content-Length: 245
Content-Type: application/sdp
v=0
o=02120001 573 573 IN IP4 100.1.0.252
s=ATA186 Call
c=IN IP4 100.1.0.252
t=0 0
m=audio 10000 RTP/AVP 0 4 8 101
a=rtpmap:0 PCMU/8000/1
a=rtpmap:4 G723/8000/1
a=rtpmap:8 PCMA/8000/1
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
2.响应消息示例1:
SIP/2.0 180 Ringing
From: <sip:1000@191.169.200.61>;tag=1c12674
To: <sip:1001@191.169.150.101>;tag=e110e016
CSeq: 2 INVITE
Call-ID: call-973598097-16@191.169.150.101
Via: SIP/2.0/UDP 191.169.150.101
Contact: <sip:1001@191.169.200.61:5061;transport=udp>
Content-Length: 0
3.响应消息示例2:
SIP/2.0 200 OK
From: <sip:1000@191.169.200.61>;tag=1c12674
To: <sip:1001@191.169.150.101>;tag=e110e016
CSeq: 2 INVITE
Call-ID: call-973598097-16@191.169.150.101
Via: SIP/2.0/UDP 191.169.150.101
Contact: <sip:1001@191.169.200.61:5061;transport=udp>
Content-Length: 183
Content-Type: application/sdp
v=0
o=HuaweiSoftX3000 1073741834 1073741834 IN IP4 191.169.200.61
s=Sip Call
c=IN IP4 191.169.150.100
t=0 0
m=audio 8766 RTP/AVP 0 8
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000