SIP消息格式详解(基于XML消息体)

SIP消息分为请求和响应,格式由一个请求行/状态行、几个标题头、一个空行和一个消息体(可选)组成,之间使用回车换行符表示终结,即使消息中未包含消息体,空行也不能省略:

1、请求行/状态行

<1>请求行包含三部分:方法名,请求URL和协议版本,各部分之间均使用一个空格字符进行分隔,除此之外请求行必须使用回车换行符表示终结;

  a、方法:sip协议规定了6个方法:

    REGISTER消息,用于发送注册请求信息

    INVITE、ACK、CANCEL用于建立会话连接

    BYE用于终结会话连接

    OPTIONS用于查询服务器能力

    注:方法名必须是大写,除此之外,SIP协议在其他文档中还定义了若干方法实现扩展

  b、请求URL:

    URL中不允许出现空格或其他控制字符,不能包含于“<>”之内

  c、协议版本:

    用于定义协议版本号

例如:

  INVITE sip:liahr@mycompany.com SIP/2.0

<2>响应行包含:协议版本、状态码和状态码相关的文本描述组成,各部分之间由一个空格字符隔开,使用回车换行符表示终结

  a、协议版本

    用于定义协议版本号

  b、状态码

    是一个三位的十进制整数,第一位指示响应类型、后两位数字表示具体响应、用于指示请求消息的执行响应结果,状态码有6中:

    1)、1XX  临时响应、表示请求消息正在被处理

    2)、2XX  成功响应、表示请求已被成功接收完全理解并接收

    3)、3XX  重定向响应、表示需采取进一步完成请求

    4)、4XX  客户机错误、表示请求消息中包含语法错误信息或服务器无法完成客户机的请求

    5)、5xx  服务器错误、表示服务器无法合法完成请求

    6)、6XX 全局故障 、表示任何服务器都无法完成该请求

  c、状态码相关描述(原因)

    是对状态码简单的文本描述,客户机不必检查或显示

2、标题头

标题头提供关于请求/应答的信息和关于这些消息所包含的消息体的信息。一些标题头可以在请求或应答两种消息中使用,而其他的只能单独特定用于请求或应答。标题头由标题头名,后面跟一个冒号,在后面跟着值组成: 头子段:字段值,遵循RFC2822。

  注:消息头字段中允许出现多个空格字符,但在实现过程中建议冒号之前,头字段之后应避免出现空格字符;冒号之后,字段值之前加一个空格;不同的标题头顺序任意;

    只能存在于请求消息中的字段,为请求字段;只能存在于响应消息中的字段,为响应字段;当消息头字段中出现不匹配的字段的时候,消息接收实体则忽略;

    消息头域值可以折叠成多行,但紧接着的折叠行由空格(SP)或水平制表(HT)折叠标记开始。所有的线性空白(LWS)包括折叠行的折叠标记(空格SP或水平制表键HT),具有同SP一样的语义。接收者在解析域值或将消息转送到下游(downstream)之前可能会将任何线性空白(LWS)替换成单个SP(空格)。

例如From标题头:

          From: tfg2002 <sip:tfg2002@company.com>

3、空行

空行隔开了sip消息头和消息正文(消息体)

3、消息实体

被SIP消息携带的消息体通常是描述符,但它也可以由任何不透明物体组成(XML,SDP)。对于SIP代理而言,消息体的内容是完全透明的;SIP消息实体可以包含二进制消息实体,如果未明确指出,则为缺省的消息文本类型UTF-8;

  Content-type: 消息实体类型;

  Content-Encoding:消息的编码方式;

  Content-Length:消息实体长度,单位为字节;

--转载:

1、MESSAGE消息
      1)头字段填写说明
      Call-id:                 必选
      CSeq:                   必选
      From:                   必选
      To:                       必选
      Max-Forwards: 必选
      Via:                      必选
      常用的可选参数:
      指定的消息体
      2)消息实例
      发送MESSAGE请求消息给192.168.2.48的6010端口,参考消息如下(带了“Hello的消息体):

MESSAGE sip: 1897778888 @192 . 168.2 . 48 : 6010  SIP / 2.0
Call
- ID: 8e12c17121ac4121bf927f6fd8013358 @192 . 168.2 . 89
From < sip: 01052237300 @192 . 168.2 . 89 > ;tag =- 0037 - 708c9a5cba8dd878
To < sip: 1897778888 @192 . 168.2 . 89 >
CSeq: 
1  MESSAGE
Via: SIP
/ 2.0 / UDP  192.168 . 2.89 : 14010 ;branch = z9hG4bK -- 22bd7222
Max - Forwards:  30
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,
UPDATE ,PRACK,REFER,SUBSCRIBE,NOTIFY,MESSAGE
Contact: 
< sip: 192.168 . 2.89 : 14010 >
Content
- Type:  text / plain
Content
- Length:  5

Hello
      收到来自192.168.2.48的6010端口的返回消息,参考消息如下(修改了消息体的内容,变成了“Hello amigo”):
SIP / 2.0   200  OK
Via: SIP
/ 2.0 / UDP  192.168 . 2.89 : 14010 ;branch = z9hG4bK -- 22bd7222
From < sip: 01052237300 @192 . 168.2 . 89 > ;tag =- 0037 - 708c9a5cba8dd878
To < sip: 1897778888 @192 . 168.2 . 89 > ;tag =- 002 - 3c18e810ab17c76f
Call
- ID: 8e12c17121ac4121bf927f6fd8013358 @192 . 168.2 . 89
CSeq: 
1  MESSAGE
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,
UPDATE ,PRACK,REFER,SUBSCRIBE,NOTIFY,MESSAGE
Contact: 
< sip: 192.168 . 2.48 : 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.168.2.161机器发送注册消息给192.168.2.89服务器,发送消息实例如下:
REGISTER sip: 192.168 . 2.89  SIP / 2.0
Via: SIP
/ 2.0 / UDP  192.168 . 2.161 : 10586
Max - Forwards:  70
From < sip: 01062237496 @192 . 168.2 . 89 > ;tag = ca04c1391af3429491f2c4dfbe5e1b2e;epid = 4f2e395931
To < sip: 01062237496 @192 . 168.2 . 89 >
Call
- ID: da56b0fab5c54398b16c0d9f9c0ffcf2 @192 . 168.2 . 161
CSeq: 
1  REGISTER
Contact: 
< sip: 192.168 . 2.161 : 10586 > ;methods = "INVITE, MESSAGE, INFO, SUBSCRIBE, 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消息参考如下:
SIP / 2.0   200  OK
Via: SIP
/ 2.0 / UDP  192.168 . 2.161 : 10586
From < sip: 01062237496 @192 . 168.2 . 89 > ;tag = ca04c1391af3429491f2c4dfbe5e1b2e;epid = 4f2e395931
To < sip: 01062237496 @192 . 168.2 . 89 > ;tag =- 00834 - 14d0805b62bc026d
Call
- ID: da56b0fab5c54398b16c0d9f9c0ffcf2 @192 . 168.2 . 161
CSeq: 
1  REGISTER
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,
UPDATE ,PRACK,REFER,SUBSCRIBE,NOTIFY,MESSAGE
Contact: sip:
192.168 . 2.161 : 10586
Content
- Length:  0
Expires: 
3600
       3)鉴权注册消息实例
       当需要鉴权注册时,当请求端192.168.2.161使用BOL或xlite等发送注册消息给192.168.2.89服务器时,服务器对192.168.2.161发送“401 Unauthorized”信息给请求端,提示请求段需要带上鉴权信息重新注册,请求端带上鉴权信息后(带有“Authorization”头字段)重新向服务器注册,服务器验证鉴权头的正确性,如果鉴权成功,给请求端发送200 OK消息。若失败,继续发送401消息。
       第一步:请求端(192.168.2.161)发送REGISTER消息,参考消息如下:
REGISTER sip: 192.168 . 2.89  SIP / 2.0
Via: SIP
/ 2.0 / UDP  192.168 . 2.161 : 8021
Max - Forwards:  70
From < sip: 01062237493 @192 . 168.2 . 89 > ;tag = efca469543ce4788a6a6a2c7b66cd01f;epid = de4504430d
To < sip: 01062237493 @192 . 168.2 . 89 >
Call
- ID: c88a247a74b54a8c9e676bdde3bba6c9 @192 . 168.2 . 161
CSeq: 
1  REGISTER
Contact: 
< sip: 192.168 . 2.161 : 8021 > ;methods = "INVITE, MESSAGE, INFO, SUBSCRIBE, 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结果码,并带上“WWW-Authenticate”头信息,参考消息如下:
SIP / 2.0   401  Unauthorized
Via: SIP
/ 2.0 / UDP  192.168 . 2.161 : 8021
From < sip: 01062237493 @192 . 168.2 . 89 > ;tag = efca469543ce4788a6a6a2c7b66cd01f;epid = de4504430d
To < sip: 01062237493 @192 . 168.2 . 89 > ;tag =- 001893 - 38ba013ba3dde36e
Call
- ID: c88a247a74b54a8c9e676bdde3bba6c9 @192 . 168.2 . 161
CSeq: 
1  REGISTER
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,
UPDATE ,PRACK,REFER,SUBSCRIBE,NOTIFY,MESSAGE
Contact: 
< sip: 192.168 . 2.89 : 14010 >
Content
- Length:  0
WWW
- Authenticate: Digest realm = " 192.168 . 2.89 ", qop = "auth", nonce = "e17d377c3d2d9c343e26576a7fd04738481dfc10", opaque = "", stale = FALSE, algorithm = MD5
      第三步:请求端(192.168.2.161)通过“Authorization”头字段带上鉴权头信息,发送一个新的REGISTER消息,参考消息如下:
REGISTER sip: 192.168 . 2.89  SIP / 2.0
Via: SIP
/ 2.0 / UDP  192.168 . 2.161 : 8021
Max - Forwards:  70
From < sip: 01062237493 @192 . 168.2 . 89 > ;tag = efca469543ce4788a6a6a2c7b66cd01f;epid = de4504430d
To < sip: 01062237493 @192 . 168.2 . 89 >
Call
- ID: c88a247a74b54a8c9e676bdde3bba6c9 @192 . 168.2 . 161
CSeq: 
2  REGISTER
Contact: 
< sip: 192.168 . 2.161 : 8021 > ;methods = "INVITE, MESSAGE, INFO, SUBSCRIBE, OPTIONS, BYE, CANCEL, NOTIFY, ACK, REFER"
User - Agent: RTC / 1.2 . 4949  (BOL SIP Phone  1005 )
Authorization : Digest username = " 01062237493 ", realm = " 192.168 . 2.89 ", qop = auth, algorithm = MD5, uri = "sip: 192.168 . 2.89 ", nonce = "e17d377c3d2d9c343e26576a7fd04738481dfc10", nc = 00000001 , cnonce = " 12660455546344082314666316435946 ", response = "f57e47ce03162293b9ced07362ce2b79"
Event: registration
Allow
- Events: presence
Content
- Length:  0
      第四步:服务器端(192.168.2.89)验证鉴权信息的合法性,若验证成功,发送200 OK消息,参考消息如下:
SIP / 2.0   200  OK
Via: SIP
/ 2.0 / UDP  192.168 . 2.161 : 8021
From < sip: 01062237493 @192 . 168.2 . 89 > ;tag = efca469543ce4788a6a6a2c7b66cd01f;epid = de4504430d
To < sip: 01062237493 @192 . 168.2 . 89 > ;tag =- 001894 - a5eb977c8969aa51
Call
- ID: c88a247a74b54a8c9e676bdde3bba6c9 @192 . 168.2 . 161
CSeq: 
2  REGISTER
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,
UPDATE ,PRACK,REFER,SUBSCRIBE,NOTIFY,MESSAGE
Contact: sip:
192.168 . 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: 01062237498 @192 . 168.2 . 89 : 5060  SIP / 2.0
Via: SIP
/ 2.0 / UDP  192.168 . 2.161 : 32092 ;branch = z9hG4bK - d87543 - ec03ee3e022acf28 - 1 -- d87543-;rport
Max - Forwards:  70
Contact: 
< sip: 01062237498 @192 . 168.2 . 161 : 32092 >
To : " 01062237498 " < sip: 01062237498 @192 . 168.2 . 89 : 5060 >
From : " 01062237498 " < sip: 01062237498 @192 . 168.2 . 89 : 5060 > ;tag = e01c2548
Call
- ID: NDQzMGE1MDMzYWU0NjRiYzMxMGY3NGUxMjBhMjBkNTQ.
CSeq: 
1  SUBSCRIBE
Expires: 
300
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, 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
/ 2.0 / UDP  192.168 . 2.161 : 32092 ;branch = z9hG4bK - d87543 - ec03ee3e022acf28 - 1 -- d87543-;rport
From : " 01062237498 " < sip: 01062237498 @192 . 168.2 . 89 : 5060 > ;tag = e01c2548
To : " 01062237498 " < sip: 01062237498 @192 . 168.2 . 89 : 5060 >
Call
- ID: NDQzMGE1MDMzYWU0NjRiYzMxMGY3NGUxMjBhMjBkNTQ.
CSeq: 
1  SUBSCRIBE
Content
- Length:  0

4、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注册了17899998888号码,呼叫01062230001号码时发送INVITE消息给服务器(192.168.2.89)的软交换,发送INVITE消息参考如下:
INVITE sip: 01062230001 @192 . 168.2 . 89  SIP / 2.0
Via: SIP
/ 2.0 / UDP  192.168 . 2.161 : 9545
Max - Forwards:  70
From : "Administrator"  < sip: 17899998888 @192 . 168.2 . 89 > ;tag = 2dc6e1000081463ba14f7db4e50b8643;epid = d6b5434cef
To < sip: 01062230001 @192 . 168.2 . 89 >
Call
- ID: 31e72e80d5b04f52aba6cb8be8f3c0c0 @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  192.168 . 2.161
b
= CT: 1000
t
= 0   0
m
= audio  56284  RTP / AVP  97   111   112   6   0   8   4   5   3   101
k
= base64:fGmazgf5GXZfJxZ27G9A7rxA4B7KX0pHrjYELKphPog
a
= rtpmap: 97  red / 8000
a
= rtpmap: 111  SIREN / 16000
a
= fmtp: 111  bitrate = 16000
a
= rtpmap: 112  G7221 / 16000
a
= fmtp: 112  bitrate = 24000
a
= rtpmap: 6  DVI4 / 16000
a
= rtpmap: 0  PCMU / 8000
a
= rtpmap: 8  PCMA / 8000
a
= rtpmap: 4  G723 / 8000
a
= rtpmap: 5  DVI4 / 8000
a
= rtpmap: 3  GSM / 8000
a
= rtpmap: 101  telephone - event / 8000
a
= fmtp: 101   0 - 16
a
= encryption:optional
m
= video  61432  RTP / AVP  34   31
k
= base64:W5uTU8sIQjJVPWyRF31GZouVwAHFtE1cAmblK + mvDdI
a
= recvonly
a
= rtpmap: 34  H263 / 90000
a
= rtpmap: 31  H261 / 90000
a
= encryption:optional
        其中m行表示支持的媒体编码,其中“m=audio 56284 RTP/AVP 97 111 112 6 0 8 4 5 3 101”指明了几种支持的音频媒体类型,“m=video 61432 RTP/AVP 34 31”指明了几种支持的视频媒体类型。软交换服务器(192.168.2.89)接收到INVITE消息后,即刻发送了100 trying消息,如下所示:
SIP / 2.0   100  Trying
Via: SIP
/ 2.0 / UDP  192.168 . 2.161 : 9545
From : "Administrator"  < sip: 17899998888 @192 . 168.2 . 89 > ;tag = 2dc6e1000081463ba14f7db4e50b8643;epid = d6b5434cef
To < sip: 01062230001 @192 . 168.2 . 89 >
Call
- ID: 31e72e80d5b04f52aba6cb8be8f3c0c0 @192 . 168.2 . 161
CSeq: 
1  INVITE
Content
- Length:  0
      软交换服务器(192.168.2.89)查找被叫号码消息,并发送INVITE消息给被叫的地址,接收到被叫的100 trying消息,而后接收到180 Ringing消息,软交换服务器给主叫方也发送180 Ringing消息,告知被叫已振铃,发送消息如下:(第一行可不关注,是笔者公司的底层打出的消息):
[ 16:15:59 ]   === SIPTransaction Send SIP message ( 455  bytes)  to   192.168 . 2.161 : 9545
SIP
/ 2.0   180  Ringing
Via: SIP
/ 2.0 / UDP  192.168 . 2.161 : 9545
From : "Administrator"  < sip: 17899998888 @192 . 168.2 . 89 > ;tag = 2dc6e1000081463ba14f7db4e50b8643;epid = d6b5434cef
To < sip: 01062230001 @192 . 168.2 . 89 > ;tag =- 006773 - 7d10081ef45af150
Call
- ID: 31e72e80d5b04f52aba6cb8be8f3c0c0 @192 . 168.2 . 161
CSeq: 
1  INVITE
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,
UPDATE ,PRACK,REFER,SUBSCRIBE,NOTIFY,MESSAGE
Contact: 
< sip: 192.168 . 2.89 : 14010 >
Content
- Length:  0
      软交换服务器(192.168.2.89)接收到被叫的INVITE消息的200 OK消息,给主叫方也发送200 OK消息,消息参考如下:
SIP / 2.0   200  OK
Via: SIP
/ 2.0 / UDP  192.168 . 2.89 : 14010 ;branch = z9hG4bK -- 50c44f35
From < sip: 17899998888 @192 . 168.2 . 89 > ;tag =- 002221 - d749165cdfed2151
To < sip: 01062230001 @192 . 168.2 . 89 > ;tag = 6b3e0000bf5c0000
Call
- ID: fdfa416f8779a8701af1086b07879a65 @192 . 168.2 . 89
CSeq: 
1  INVITE
Contact: 
< sip: 192.168 . 2.161 : 5060 >
Content
- Type: application / sdp
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,
UPDATE ,PRACK,REFER,SUBSCRIBE,NOTIFY,MESSAGE
Content
- Length:  118

v
= 0
o
=-   1   1   IN  IP4  192.168 . 2.161
s
=-
t
= 0   0
m
= audio  19194  RTP / AVP  8
c
=IN  IP4  192.168 . 2.161
a
= rtpmap: 8  PCMA / 8000
        3)签权INVITE消息实例

5、ACK消息
        1)头字段填写说明
        必选头域如下:
        Call-id
        Cseq
        From
        To
        Max-Forwords
        Via
        常用可选头域:
        Content-Length
        Content-Type
        Route
        2)消息实例
        在“4、INVITE消息”中讲到了主叫方接收到INVITE消息的200 消息后,接着给主叫方发送ACK消息,消息参考如下:
ACK sip: 192.168 . 2.89 : 14010  SIP / 2.0
Via: SIP
/ 2.0 / UDP  192.168 . 2.161 : 9545
Max - Forwards:  70
From : "Administrator"  < sip: 17899998888 @192 . 168.2 . 89 > ;tag = 2dc6e1000081463ba14f7db4e50b8643;epid = d6b5434cef
To < sip: 01062230001 @192 . 168.2 . 89 > ;tag =- 006773 - 7d10081ef45af150
Call
- ID: 31e72e80d5b04f52aba6cb8be8f3c0c0 @192 . 168.2 . 161
CSeq: 
1  ACK
User - Agent: RTC / 1.2
Content
- Length:  0

6、BYE消息
        1)头字段填写说明
        必选头域如下:
        Call-id
        Cseq
        From
        To
        Max-Forwards
        Via
        常用可选头域:
        Content-Length
        Content-Type
        Route
        Reason
        2)消息实例
        本实例笔者在本机(192.168.2.161)上注册了17899998888号码,呼叫01062230001号码时发送INVITE消息给服务器(192.168.2.89)的软交换,并与呼叫的号码建立通话后,主叫方主动挂断时,BYE消息如下所示:
BYE sip: 192.168 . 2.89 : 14010  SIP / 2.0
Via: SIP
/ 2.0 / UDP  192.168 . 2.161 : 9545
Max - Forwards:  70
From : "Administrator"  < sip: 17899998888 @192 . 168.2 . 89 > ;tag = 2dc6e1000081463ba14f7db4e50b8643;epid = d6b5434cef
To < sip: 01062230001 @192 . 168.2 . 89 > ;tag =- 006773 - 7d10081ef45af150
Call
- ID: 31e72e80d5b04f52aba6cb8be8f3c0c0 @192 . 168.2 . 161
CSeq: 
2  BYE
User - Agent: RTC / 1.2
Content
- Length:  0
      服务器发送200 OK消息,参考实例如下:
SIP / 2.0   200  OK
Via: SIP
/ 2.0 / UDP  192.168 . 2.161 : 9545
From : "Administrator"  < sip: 17899998888 @192 . 168.2 . 89 > ;tag = 2dc6e1000081463ba14f7db4e50b8643;epid = d6b5434cef
To < sip: 01062230001 @192 . 168.2 . 89 > ;tag =- 006773 - 7d10081ef45af150
Call
- ID: 31e72e80d5b04f52aba6cb8be8f3c0c0 @192 . 168.2 . 161
CSeq: 
2  BYE
Content
- Length:  0

7、PRACK消息
        1)头字段填写说明
        必选头域如下:
        Call-id
        Cseq
        From
        To
        Max-Forwards
        Via
        RAck
        常用可选头域:
        Content-Type
        Content-Length
        2)消息实例
        如下是PRACK消息的参考实例:
PRACK sip: 192.168 . 2.154 : 5060  SIP / 2.0
CSeq: 
2  PRACK
Call
- ID: 0112114b0ca1d73c3fbdc7036e4672c8 @huawei .com
Contact: 
< sip: 01055554444 @192 . 168.2 . 46 >
Content
- Length:  0
From < sip: 01055554444 @192 . 168.2 . 154 > ;tag = 6c789654
To < sip: 01062237400 @192 . 168.2 . 154 > ;tag = 0012 - f1939f63004dbd16
Via: SIP
/ 2.0 / UDP  192.168 . 2.46 ;branch = z9hG4bK04982ba62
User - Agent: Huawei - MC820 / 1.0 . 0
Supported: 100rel
RAck: 
1   1  INVITE

8、INFO消息
        1)头字段填写说明
        必选头域如下:
        Call-id
        Cseq
        From
        To
        Max-Forwards
        Via
        常用可选头域:
        Content-Type
        Content-Length
        Route
        2)消息实例
        在笔者开发过程中,媒体服务器与软交换服务器之间的使用的是INFO消息交互,如下消息为软交换服务器向媒体服务器发送的INFO消息(请求开始录音),参考如下:
INFO sip: 192.168 . 2.89 : 14010  SIP / 2.0
Call
- ID: 52f3d02182b72d37c48cea5dd013a401 @192 . 168.2 . 89
From < sip:msml @minicc : 5090 > ;tag = 013913 - 74fa8415d2902b1c
To < sip: as @cintel .net.cn > ;tag =- 00708 - b879297623d39362
CSeq: 
1  INFO
Via: SIP
/ 2.0 / UDP  192.168 . 2.89 : 5090 ;branch = z9hG4bKf06b482d
Max - Forwards:  30
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,
UPDATE ,PRACK,REFER,SUBSCRIBE,NOTIFY,MESSAGE
Contact: 
< sip: 192.168 . 2.89 : 5090 >
Content
- Type: application / msml + xml
Content
- Length:  164

< ?xml version = " 1.0 " encoding = "US - ASCII "? >
< msml version = " 1.1 " >
< event name = "app.startingRecord" id = "conf:002221c6082350d233 / dialog:PRLeg708" >
</ event >
</ msml >
       如下是媒体服务器回送的200  OK消息,消息参考如下:
SIP / 2.0   200  OK
Via: SIP
/ 2.0 / UDP  192.168 . 2.89 : 5090 ;branch = z9hG4bKf06b482d
From < sip:msml @minicc : 5090 > ;tag = 013913 - 74fa8415d2902b1c
To < sip: as @cintel .net.cn > ;tag =- 00708 - b879297623d39362
Call
- ID: 52f3d02182b72d37c48cea5dd013a401 @192 . 168.2 . 89
CSeq: 
1  INFO
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,
UPDATE ,PRACK,REFER,SUBSCRIBE,NOTIFY,MESSAGE
Contact: 
< sip: 192.168 . 2.89 : 14010 >
Content
- Length:  0

9、OPTIONS消息
        1)头字段填写说明
        必选头域如下:
        Call-id
        Cseq
        From
        To
        Max-Forwords
        Via
        常用可选头域:
        Accept
        Allow
        Supported  
        2)消息实例
        参考实例如下所示:
OPTIONS sip: user @carrier .com SIP / 2.0
Via: SIP
/ 2.0 / UDP cavendish.kings.cambridge.edu.uk; branch = z0hG4bK1834
Max - Forwards:  70
To < sip: user @proxy .carrier.com >
From : J.C. Maxwell  < sip:james.maxwell @kings .cambridge.edu.uk > ; tag = 34
Call
- ID:  9352812 @cavendish .kings.cambridge.edu.uk
CSeq: 
1  OPTIONS
Content
- Length:  0

10、NOTIFY消息
     参考消息实例如下所示:
NOTIFY sip:tyoung @parlour .elasticity.co.uk SIP / 2.0
Via SIP
/ 2.0 / UDP cartouche.rosettastone.org: 5060 ; branch = z9hG4bK3841323
Max - Forwards:  70
To : Thomas Young  < sip:tyoung @elasticity .co.uk > ; tag = 1814
From < sip:ptolemy @rosettastone .org > ; tag = 5363956k
Call
- ID: 452k59252058dkfj34924lk34
CSeq: 
3  NOTIFY
Contact: 
< sip:Ptolemy @cartouche .rosettastone.org >
Event: dialog
Subscription
- State: active
Allow
- Event: dialog
Content
- Type: application / xml  +  dialog
Content
- Length: 消息体长度

(xml格式的消息体 )

11、REFER消息
     参考消息实例如下所示:
REFER sip:m.rejewski @biuroszyfrow .pl SIP / 2.0 "
Via SIP
/ 2.0 / UDP lab34.bletchleypark.co.uk: 5060 ; branch = z9hG4bK932039
Max - Forwards:  69
To < sip:m.rejewski @biuroszyfrow .pl > ; tag = ACEBDC
From : Alan Turing  < sip:turing @bletchleypark .co.uk > ; tag = 213424
Call
- ID: 3419fak3kFD23s1A9dkl
CSeq; 
5412  REFER
Refer
- To < sip:info @scherbius - ritter.com >
Content
- Length:  0
  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值