Sip协议(二)
本文继续介绍Sip协议,主要介绍Sip请求 INVITE.
1: INVITE请求
下面是一个简单的例子:
INVITE sip:xxx@100.100.0.1 SIP/2.0
Via: SIP/2.0/TCP 发起者IP:40852;rport;branch=z9hG4bK64259
Max-Forwards: 70
To: <sip:xxxx@100.100.0.1>
From: <sip:xxx@100.100.0.1>;tag=z9hG4bK67426867
Call-ID: 123456@发起者IP
CSeq: 1 INVITE
Contact: <sip:2003@发起者IP:40852;transport=tcp>
Expires: 3600
Content-Length: 285
Content-Type: application/sdpv=0
o=2003@100.100.0.1 0 0 IN IP4 发起者IP
s=Session SIP/SDP
c=IN IP4 发起者IP
t=0 0
m=audio 21000 RTP/AVP 8 0 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
m=video 21070 RTP/AVP 103
a=rtpmap:103 h263-1998/90000
- 请求行 : 第一行请求报文的请求行, 格式: Method + Request-URI +Version . Request-URI标识了目标地址.
- Via : 标识了请求经过的sip服务器地址. 头字段中包含了客户端的主机名/ip地址,另外还可能包含了接收响应的端口号. 其中 branch按规定必须是"z9hG4bK"开头.
- Max-Forwards : 最大转发次数. 定义了向下游转发消息的代理服务器以及路由的个数. 从而防止链路出错或者回环.
- To : 指定了请求的接收者
- From : 指定了请求的发起者
- Call-ID : 一组消息的唯一标识, 请求和响应需要保持一致.
- CSeq :消息序号,用来标识消息顺序 , 组成分为两部分 id+ method
- Contact : INVITE下, Contact代表了从哪里发起.
- Expires :超时时间 ,此字段只在INVITE. REGISTER 中, 如OPTIONS中是没有的.
- Content-Length: 内容长度
- Content-Type : 内容类型