-
SIP
常用消息实例参考
1
、
MES
SAGE
消息
1
)头字段填写说明
Call-id
:
必选
CSeq
:
必选
From
:
必选
To
:
必选
Max-Forwards
:
必选
Via
:
必选
常用的可选参数:
指定的消息体
2
)消息实例
发送
MESSAGE
p>
请求消息给
192.168.2.48
的<
/p>
6010
端口,参考消息如下(带了
“H
ello”
的消
息体):
MESSAGE sip:
1897778888
@192
.
168.2
.<
/p>
48
:
6010
SIP
/
2.0
Call
-
ID: 8e12c171
21ac4121bf927f6fd8013358
@192
.
168.2
.
89
< br>
From
:
<
sip:
@192
.
168.2
.
89
>
;tag
=-
0037
-
708c9a5cba8dd878
To
:
<
s
ip:
1897778888
@192
.
168.2
.
89
< br>>
CSeq:
1
MESSAGE
Via: SI
P
/
2.0
/
UDP
192.168
.
2.89<
/p>
:
14010
;branch
=
z9hG4bK
--22bd7222
Max
-
Forwards:
30
Allow: INVITE,
ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,
UP
DATE
,PRACK,REFER,S
UBSCRIBE,N
OTIFY,MESSAGE
Contact:
<
sip:
192.168
.
2.89
:
14010
>
Content
-
Type:
text
/
plain
Content
-
Length:
5
Hello
收到来自
192.168.2.48
的
6010
端口的返回消息,参考消息如下(修改了消息体的内容,变
成了
“Hello
amigo”
):
< br>SIP
/
2.0
200
OK
Via: SIP
p>
/
2.0
/
UDP
192.168
.
2.89
:
14010
;branch
=
z9hG4bK
--22bd7222
From
:
<
sip:
@192
.
168.2
.
89
>
;tag
=-
0037
-
708c9a5cba8dd878
To
:
<
s
ip:
1897778888
@192
.
168.2
.
89
< br>>
;tag
=-
002
-
3c18e810ab17c76f
Call
-
ID: 8e12c171
21ac4121bf927f6fd8013358
@192
.
168.2
.
89
< br>
CSeq:
1
MESSAGE
Allow: INVITE,ACK,OPTIONS,BYE,C
ANCEL,REGISTER,INFO,
UPDATE
,P
RACK,REFER,S
UBSCRIBE,NOTIFY,MESSAGE
Contact:
<
sip:
192.168
.
2.48
< br>:
54010
>
Content
-
Type:
text
/
plain
Content
-
Length:
11
Hello amigo
2
、
REGISTER
消息
1
)头字段填写说明
Call-id
:
必选
Cseq
:
必选
From
:
必选
To
:
必选
Max-
Forwards
:
必选
Via
:
必选
Contact
:
必选
Authorization
:
必选
Expires
:
常用可选头
2
)非鉴权注册消息实例
在该实例中
192.1
68.2.161
机器发送注册消息给
192.168.2.8
9
服务器,发送消息实例如下:
REGISTER sip:
192.168
< br>.
2.89
SIP
/
2.0
Via: SIP
/
2.0
/
UDP
192.168
.
2.161
:
10586
Max
-
Forwards:
70
From
:
<
sip:
@192
.
168.2
.
89
>
;tag
=
ca04c1391af34294
91f2c4dfbe5e1b2e;epid
=
4f2e39
5931
To
:
<
sip:
@192
.
168.2
.
89
><
/p>
Call
-
ID: da56b0fa
b5c54398b16c0d9f9c0ffcf2
@192
.
168.2
.
161
CSeq:
1
REGISTER
Contact:
<
sip:
192.168
.
2.1
61
:
10586
>
< br>;methods
=
E,
OPTIONS, BYE, CANCEL, NOTIFY, ACK,
REFER
User
-
Agent:
RTC
/
1.2
.
4949
(BOL SIP Phone
1005
)
Event:
registration
Allow
-
Events:
presence
Content
-
Length:
0
当注册成功(回送
200
OK
)时,服务器发送的
res
消息参考如下:<
/p>
SIP
/
2.
0
200
OK
Via: SIP
/
2.0
/
UDP
192.168
.
2.161
:
10586
From
:
<
p>
sip:
@192
.
168.2
.
89
< br>>
;tag
=
ca04c139
1af3429491f2c4dfbe5e1b2e;epid
=
4f2e395931
To
:
<
sip:
@192
< br>.
168.2
.
89
>
;tag
=-
0083
4
-
14d0805b62bc026d
Call
-
ID: da56b0fa
b5c54398b16c0d9f9c0ffcf2
@192
.
168.2
.
161
CSeq:
1
REGISTER
Allow: INVITE,ACK,OPTIONS,BYE,
CANCEL,REGISTER,INFO,
UPDATE
,
PRACK,REFER,S
UBSCRIBE,NOTIFY,MESSAGE
Contact: sip:
192.168
< br>.
2.161
:
10586
p>
Content
-
Length:
0
Expires:
3600
3
)鉴权注册消息实例
当需要鉴权注册时,当请求端
< br>192.168.2.161
使用
BOL
或
xlite
等发送注册消息给
192.168.
2.89
服务器时,服务器对
192.168.2.161
发送
“401
Unauthorized”
信息给请求端,提示请求段需
要带上鉴权信息重新注册,
请求端带上鉴权信息后
(带有
“Authorization”
头字段)
重新向服务器
注册,服务器验证鉴权头的正确性,如果鉴权成功,给请求端发
送
200
OK
消息。若失败,继
p>
续发送
401
消息。
第一步:请求端(
192.168.2.161
)发送
REGISTER
消息,参考消息如下:
REGISTER s
ip:
192.168
.
2.89
p>
SIP
/
2.0
Via: SIP
/
2.0
/
UDP
192.168
.
2.161
:
8021
Max
-
Forwards:
70
From
:
<
sip:
@192
.
168.2
.
89
>
;tag
=
efca469543ce4788
a6a6a2c7b66cd01f;epi
d
=
de4504430d
To
:
< br><
sip:
@192
.
168.2
.
89
p>
>
Call
-
ID: c88a247a
74b54a8c9e676bdde3bba6c9
@192
.
168.2
.
161
CSeq:
1
REGISTER
Contact:
<
sip:
192.168
.
2.1
61
:
8021
>
;methods
=
E,
OPTIONS, BYE, CANCEL, NOTIFY, ACK,
REFER
User
-
Agent:
RTC
/
1.2
.
4949
(BOL SIP Phone
1005
)
Event:
registration
Allow
-
Events:
presence
Content
-
Length:
0
第二步:服务器端(
192.168.2.89
)检查到需要
鉴权,给请求端发送
401
结果码,并带上
“W
WW-
Authenticate”
< br>头信息,参考消息如下:
SIP
/
2.0
401
Unauthorized
Via: SIP
/
2.0
/
UDP
192.168
.
2.161
:
8021
From
:
<
sip:
@192
.
168.2
.
89
>
;tag
=
efca46954
3ce4788a6a6a2c7b66cd01f;epi
d
=
de4504430d
To
: <
/p>
<
sip:
@1
92
.
168.2
.
< br>89
>
;tag
=-
001893
-
38ba013ba3dde36
e
Call
-
ID: c88a24
7a74b54a8c9e676bdde3bba6c9
@192
.
168.2
.
161
CSeq:
1
REGISTER
Allow: INVITE,ACK,OPTIONS,BYE,
CANCEL,REGISTER,INFO,
UPDATE
,
PRACK,REFER,S
UBSCRIBE,NOTIFY,MESSAGE
Contact:
<
sip:
192.168
.
2.89
< br>:
14010
>
Content
-
Length:
0
WWW
-
Authenticate:
Digest realm
=
192.
168
.
2.89
=
=
34
3e26576a7fd04738481dfc10
=
=
FALSE,
algorithm
=
MD5
第三步:请求端(
192
.168.2.161
)通过
“Authorization”
头字段带上鉴权头信息,发送一个新
的
REGISTER
消息,参考消息如下:
REGISTER sip:
192.168
< br>.
2.89
SIP
/
2.0
Via: SIP
/
2.0
/
UDP
192.168
.
2.161
:
8021
Max
-
Forwards:
70
From
:
<
sip:
@192
.
168.2
.
89
>
;tag
=
efca469543ce4788
a6a6a2c7b66cd01f;epi
d
=
de4504430d
To
:
< br><
sip:
@192
.
168.2
.
89
p>
>
Call
-
ID: c88a247a
74b54a8c9e676bdde3bba6c9
@192
.
168.2
.
161
CSeq:
2
REGISTER
Contact:
<
sip:
192.168
.
2.1
61
:
8021
>
;methods
=
E,
OPTIONS, BYE, CANCEL, NOTIFY, ACK,
REFER
User
-
Agent:
RTC
/
1.2
.
4949
(BOL SIP Phone
1005
)
Authorization
: Digest userna
me
=
=
192.168
.
2.89
=
a
uth,
algo
rithm
=
MD5, ur
i
=
192.168
< br>.
2.89
=
< br>
0
=
00000001
, cnonce
=
3
16435946
=
< br>47ce03162293b9ced07362ce2b79
Event:
registration
Allow
-
Events:
presence
Content
-
Length:
0
第四步:服务器端(
192.168.2.89
)验证鉴权
信息的合法性,若验证成功,发送
200
OK
消
息,参考消息如下:
SI
P
/
2.0
200
OK
Via: SIP
p>
/
2.0
/
UDP
192.168
.
2.161
:
8021
From
:
<
sip:
@192
.
168.2
.
89
>
;tag
=
efca469543ce4788
a6a6a2c7b66cd01f;epi
d
=
de4504430d
To
:
< br><
sip:
@192
.
168.2
.
89
p>
>
;tag
=-
0
01894
-
a5eb977c8969aa51
Call
-
ID: c88a247a
74b54a8c9e676bdde3bba6c9
@192
.
168.2
.
161
CSeq:
2
REGISTER
Allow: INVITE,ACK,OPTIONS,BYE,
CANCEL,REGISTER,INFO,
UPDATE
,
PRACK,REFER,S
UBSCRIBE,NOTIFY,MESSAGE
Contact: sip:
192.168
< br>.
2.161
:
8021
Content
-
Length:
0
Expires:
3600
3
、
SUBSCRIBE
消息
1
)头字段填写说明
Call-id
:
必选
CSeq
:
必选
From
:
必选
To
:
必选
Max-Forwards
:
必选
Via
:
必选
Expires
:
常用可选头
2
)消息实例
请求端(
192.168
.2.161
)给服务器端(
192.168.2.89
)发送
SUBSCRIBE
消息,参考消息如
下:
SUBSCRIBE sip:
@192
.
1
68.2
.
89
:
5060
SIP
/
2.0
Via: SIP
/
2.0
/
UDP
192.168
.
2.161
:
32092
;branch
=
z9hG4bK
-
d87543
-
ec03
ee3e022acf28
-
1
-
p>
-d87543-;rport
Max
-
Forwards:
70
Contact:
<
sip:
@192
p>
.
168.2
.
1
61
:
32092
>
< br>
To
:
<
sip:
@192
.
168.2
.
89
:
5060
>
From
:
p>
<
sip:
@192
.
168.2
.
89
:
5060
< br>>
;tag
=
e01c2548
Call
-
ID:
NDQzMGE1MDMzYWU0NjRiYzMxMGY3NGUxMjBhMjBkNTQ.
CSeq:
1
SUBSCRIBE
Expires:
300
Allow: INVITE, ACK, CANCEL, OPTIONS,
BYE, REFER, NOTIFY, MESSAGE, SUBSCRIB
E,
INFO
User
-
Agent:
eyeBeam release 1011d stamp
40820
Event:
message
-
summary
Content
-
Length:
0
服务器端(
192.168.2.89
)发送回执的
200
OK
信息,参考消息如下:
SIP
/
2.0
200
OK
Via: SIP
p>
/
2.0
/
UDP
192.168
.
2.161
:
32092
;branch
< br>=
z9hG4bK
-
d8754
3
-
ec03ee3e022acf28
-
1
-
-d87543-;rpor
t
From
:
<
sip:
@192
.
168.2
.
89
:
5060
>
;tag
=
e01c2548
To
:
p>
<
sip:
@19
2
.
168.2
.
89
:
5060
>
Call
-
ID:
NDQzMGE1MDMzYWU0NjRiYzMxMGY3NGUxMjBhMjBkNTQ.
CSeq:
1
SUBSCRIBE
Content
-
Length:
0
4
p>
、
INVITE
消息
1
)头字段填写说明
必选头域如下:
Call-id
Contact
CSeq
From
To
Max-Forwards
Via
Supported
Allow
常用可选头域:
Accept
Authorization
Content-length
Content-type
Record-Route
Route
Require
Proxy-Authorization
Proxy-require
P-asserted-identity
P-prefered-identity
Privacy
2
)非鉴权
INVITE
消息实例
在这个实例中,笔者在本
机(
192.168.2.161
)上使用
BOL
注册了
号码,呼
叫
号码时发送
INVIT
E
消息给服务器(
192.168.2.89
< br>)的软交换,发送
INVITE
消息参考如下:
INVITE sip:
@192
.
168.2
.
89
SIP
/
2.0
Via: SIP
/
2.0
/
UDP
192.168
.
2.161
:
9545
Max
-
Forwards:
70
From
:
<
sip:
@192
.
168.2
.
89
>
;tag
=
2dc6e1000081463b
a14f
7db4e50b8643;epid
=
d6b5434cef
To
:
< br><
sip:
@192
.
168.2
.
89
p>
>
Call
-
ID: 31e72e80
d5b04f52aba6cb8be8f3c0c0
@192
.
168.2
.
161
CSeq:
1
INVITE
Contact:
<
sip:
192.168
.
2.161
:
9545
>
User
-
Agent:
RTC
/
1.2
Content
-
Type:
application
/
sdp
Content
-
Length:
691
v
=
0
o
=-
0
0
IN
IP4
192.168
.
2.161
s
=
session
c
=IN
IP4
< br>192.168
.
2.161
b
=
CT:
1
000
t
=
0
0
m
=
audio
56284
RTP
/
AVP
97
111
112
6
0
8
4
5
3
101
k
=
base64:fGmazgf5
GXZfJxZ27G9A7rxA4B7KX0pHrjYELKphPog
a
p>
=
rtpmap:
97
red
/
8000
a
=
rtpmap:
11
1
SIREN
/
16000
a
=
fmtp:
111<
/p>
bitrate
=
16000
a
=
rtpmap:
112
G7221
/
16000
a
=
fmtp:
112<
/p>
bitrate
=
24000
a
=
rtpmap:
6
DVI4
/
16000
a
=
rtpmap:
0
p>
PCMU
/
8000