SIP(三)

 

1.1.1.    消息头

 

Header field

where

proxy

ACK

BYE

CAN

INV

OPT

REG

Accept

R

 

-

o

-

o

m*

o

Accept

2xx

 

-

-

-

o

m*

o

Accept

415

 

-

c

-

c

c

c

Accept-Encoding

R

 

-

o

-

o

o

o

Accept-Encoding

2xx

 

-

-

-

o

m*

o

Accept-Encoding

415

 

-

c

-

c

c

c

Accept-Language

R

 

-

o

-

o

o

o

Accept-Language

2xx

 

-

-

-

o

m*

o

Accept-Language

415

 

-

c

-

c

c

c

Alert-Info

R

ar

-

-

-

o

-

-

Alter-Info

180

ar

-

-

-

o

-

-

Allow

R

 

-

o

-

o

o

o

Allow

2xx

 

-

o

-

m*

m*

o

Allow

r

 

-

o

-

o

o

o

Allow

405

 

-

m

-

m

m

m

Authentication-Info

2xx

 

-

o

-

o

o

o

Authorization

R

 

o

o

o

o

o

o

Call-ID

c

r

m

m

m

m

m

m

Call-Info

 

ar

-

-

-

o

o

o

Contact

R

 

o

-

-

m

o

o

Contact

1xx

 

-

-

-

o

-

-

Contact

2xx

 

-

-

-

m

o

o

Contact

3xx

d

-

o

-

o

o

o

Contact

485

 

-

o

-

o

o

o

Content-Disposition

 

 

o

o

-

o

o

o

Content-Encoding

 

 

o

o

-

o

o

o

Content-Language

 

 

o

o

-

o

o

o

Content-Length

 

ar

t

t

t

t

t

t

Content-Type

 

 

*

*

-

*

*

*

Cseq

c

r

m

m

m

m

m

m

Date

 

a

o

o

o

o

o

o

Error-Info

300-699

a

-

o

o

o

o

o

Expires

 

 

-

-

-

o

-

o

From

c

r

m

m

m

m

m

m

In-Reply-To

R

 

-

-

-

o

-

-

Max-Forwards

R

amr

m

m

m

m

m

m

Min-Expires

423

 

-

-

-

-

-

m

MIME-Version

 

 

o

o

-

o

o

o

Organization

 

ar

-

-

-

o

o

o

Priority

R

ar

-

-

-

o

-

-

Proxy-Authenticate

407

ar

-

m

-

m

m

m

Proxy-Authenticate

401

ar

-

o

o

o

o

o

Proxy-Authorization

R

dr

o

o

-

o

o

o

Proxy-Require

R

ar

-

o

-

o

o

o

Record-Route

R

ar

o

o

o

o

o

o

Record-Route

2xx,18x

mr

-

o

o

o

o

-

Reply-To

 

 

-

-

-

o

-

-

Require

 

ar

-

c

-

c

c

c

Retry-After

404,

413,

480,

486

 

-

o

o

o

o

o

Retry-After

500,503

600,603

 

-

o

o

o

o

o

Route

R

adr

c

c

c

c

c

c

Server

r

 

-

o

o

o

o

o

Subject

R

 

-

-

-

o

-

-

Supported

R

 

-

o

o

m*

o

o

Supported

2xx

 

-

o

o

m*

m*

o

Timestamp

 

 

o

o

o

o

o

o

To

c(1)

r

m

m

m

m

m

m

Unsupported

420

 

-

m

-

m

m

m

User-Agent

 

 

o

o

o

o

o

o

Via

R

amr

m

m

m

m

m

m

Via

rc

dr

m

m

m

m

m

m

Warning

r

 

-

o

o

o

o

o

WWW-Authenticate

401

ar

-

m

-

m

m

m

WWW-Authenticate

407

ar

-

o

-

o

o

o

 

“where”列描述了在头域中能够使用的请求和应答的类型。这列的值是:

R:头域只能在请求中出现;

r:头域只能在应答中出现;

2xx,4xx,等等:一个数字的值区间表示头域能够使用的应答代码。

c:头域是从请求拷贝到应答的。

如果”where”栏目是空白,表示头域可以在所有的请求和应答中出现。

 

“proxy”列描述了proxy在头域上的操作

a:如果头域不存在,proxy可以增加或者连接头域

m:proxy可以修改现存的头域值

d:proxy可以删除头域值

r:proxy必须能读取这个头域,因此这个头域不能加密。

 

接下来6个栏目与在某一个方法中出现的头域有关:

c:条件;对头域的要求依赖于消息的内容

m:头域是强制要有的。

m*:头域应当被发送,但是客户端/服务端都需要准备接收没有这个头域的消息。

o:头域是可选的。

t:头域应当被发送,但是客户端/服务端都需要准备接收没有这个头域的消息。客户端/服务端都需要准备接收没有这个头域的消息。如果通讯的协议是基于面向流的协议(比如TCP),那么头域值必须被发送。

*:如果消息体不为空,那么头域值就绪要的。(细节请参见20.14,20.15和7.4节)

-:这个头域是不适用的。

 

 

1.1.2.    请求格式

1.1.3.    响应格式

 

 字段

Request-URI

:呼叫请求发送地址。UA生成初始请求消息时,该域中的信息一般与TO中的地址相同,经过网络服务器后,由于实际路由问题,该值可能发生变化,另外一个比较特殊的是REGISTER消息,在REGISTER消息中,在REQUEST-URI中将会填充注册服务器的地址(表示消息发往注册服务器),而此时TO域中的地址将会填充客户端实际的地址。

From

发起请求方的地址。一般采用USERINFO@HOSTPORT形式。该域同时带有一个TAG参数,是随机产生的整数。

To

接受方地址。同FROM域相同,也采用USERINFO@HOSTPORT的地址形式,当该域存在于最终响应消息中时,将会事有TAG参数。

Call-ID

用于识别呼叫参数,在同一个DIALOG中,该 参数不发生变化。该参数与FROM中的TAG参数、TO域中的TAG参数相结合用以保证呼叫的惟一性。

Cseq

表征TRANSACEION的参数,由于同一个呼叫中会存在多个TRANSACTION,因此通过该数来保证同一个USERAGENT发送的不同请求消息间的顺序。

Via

该参数表征呼叫经过的路径,UA生成SIP消息时,会在该域中填写自己的地址:PROXY在转发请求消息时,将会增加一个填有自己地址的VIA域,表示才叫经过本PROXY。VIA域的存在可以保证响应消息按照原路径返回到主叫方. 代理服务器用它检查其内容,如果新端点已出现在via列表中,则表示有环路了。

Contact

告知对端自己的地址。当对端发送下一个请求消息时,可直接向该地址发送,不需要关心前一个路由信息(除非有特定原则,例如PROXY可以通过RECORD-ROUTE域来保证下一个请求消息必须经过本PROXY,即使CONTACT域中填写对端客户的地址。

Expires

limits search time,

给出消息内容超期的时间

Record-Route

由于CONTACT域的存在使得两个用户后续的请求消息可能不经过PROXY,为了运营需要,PROXY在初始INVITE消息中增加了RECORD-ROUTE域,这样可以保证后续请求(例如BYE消息)经过PROXY.通过RECORD-ROUTE与CONTACT的结合,既可避免后续请求旁路网络服务器的行为,又可减少后续请求路径上的环节。

CONTENT-TYPE

表征消息格式的参数,例如,呼叫采用了SDP进行会话描述,还是采用其他类型的会话描述协议。

 

Examples of SIP URIs

sip:felix.muster@zhwin.ch

sip:felix.muster@zhwin.ch;transport=

sip:muf@dskt6107.zhwin.ch:5678

sip:muf@160.85.200.27:3456

sip:+41-76-456-9786@sipgate.

sip:117@gateway.zhwin.ch;user=

sip:zhwin.ch;method=REGISTER

Defaults

:5060 (destination port)

transport=udp (transport parameter)

user=ip (user parameter)

method=INVITE (SIP method)

 

1.1.1.    Via

     格式

Via = ( "Via" | "v") ":" 1#( sent-protocol sent-by*( ";" via-params ) [ comment ] )

via-params= via-hidden | via-ttl | via-maddr| via-received | via-branch | via-extension

via-hidden       = "hidden"

via-ttl          = "ttl" "=" ttl

via-maddr        = "maddr" "=" maddr

via-received          = "received" "=" host

via-branch       = "branch" "=" token

via-extension    = generic-param

 

     Via 处理流程

 

 

hidden 处理

 

received/rport处理

 

 

001 INVITE sip:12125551212@211.123.66.222 SIP/2.0

002 Via: SIP/2.0/UDP 211.123.66.223:5060;branch=a71b6d57-507c77f2

003 Via: SIP/2.0/UDP 10.0.0.1:5060;received=202.123.211.25;rport=12345

004 From: <sip:2125551000@211.123.66.223>;tag=108bcd14

005 To: sip: 12125551212@211.123.66.222

006 Contact: sip: 2125551000@10.0.0.1

007 Call-ID: 4c88fd1e-62bb-4abf-b620-a75659435b76@10.3.19.6

008 CSeq: 703141 INVITE

009 Content-Length: 138

010 Content-Type: application/sdp

011 User-Agent: HearMe SoftPHONE

012

 …………

In the above trace, the IP address in line 003 of the SIP header is the IP address that the client thinks it is – i.e. the internal IP address (10.0.0.1). But the proxy knows from which IP address it actually received the packet, so it adds the “received” and “rport” tags with the IP address and port after the NAT mapping. These tags allow the proxy to forward SIP messages back to the client via the NAT.

 

Branch处理

 used to distinguish between multiple responses to the same request.

Forking Proxy: Issue a single request to multiple destinations.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值