认真能把事做对,用心才能把事做好,专心、专注、心注未来。 声明:本博客内容除特别注明转载外全部是个人工作总结,转载时请注明出处!

SIP协议测试总结

上一篇 / 下一篇  2010-08-23 20:27:30

 

一:响应码定义

1响应(Response

11XX:临时响应,表示请求消息正在被处理。

22XX:成功响应,表示请求已被成功接收,完全理解并被接受。

33XX:重定向响应,表示需采取进一步以完成该请求。

44XX:客户机错误,表示请求消息中包含语法错误信息或服务器无法完成客户机请求。

55XX:服务器错误,表示服务器无法完成合法请求。

66XX:全局故障,表示任何服务器无法完成该请求。

 

100:临时响应,正在尝试

180:振铃,UA收到INVITE请求之后用该响应通知用户,该响应也可以在发起一个本地回铃

181呼叫正在转发

182排队

183会话进行

 

 

200OK

 

300网络协议不兼容:会话描述中的一个或多个网络协议不可用。

301网络地址格式不兼容:会话描述中的一个或多个地址格式不可用。

302传送协议不兼容:会话描述中的一个或多个传送协议不可用。

303带宽单位不兼容:会话描述中的一个或多个带宽度量单位不被理解。

304媒体类型不可用:对话描述中的一个或多个媒体类型不可用。

305媒体格式不兼容:对话描述中的一个或多个媒体格式不可用。

306媒体特征不被理解:对话描述中的一个或多个媒体特征不被支持。

307对话描述参数不被理解:除上述几种参数之外的参数不被理解。

330组播不可用:用户站点不支持组播。

331单播不可用:用户站点不支持单播通信(通常是由于防火墙的存在)

370带宽不足:对话描述中定义的或者媒体定义的带宽超出可用带宽。

399混合告警:该告警表示用户存在的任意一种错误,收到该告警的系统不可以采取任何自动的动作。

 

401:未授权

403:禁止

404:未找到

405:不允许的请求方法

406:不接受

407:代理服务器需要鉴权

408:请求超时

413:请求消息过大

415:不支持的媒体类型

414Request-URI过长

415:不支持媒体类型

416:不支持的URI方案

420:错误的扩展

421:需要扩展支持

423:间隔太短

480:临时不可用

481:呼叫/事务不存在

482:检测到路由循环

483:跳数太多

484:地址不完整

485:不明确

486:正忙

487:请求终止

488:此处不接受

493:无法解密

 

501:不可实现

502:错误网关

503:业务不可使用

504:服务器超时

505:不支持版本

513:消息过大

 

600:忙

603:拒绝

604:用户不存在

606:无法接受

 

二:消息体定义

Call-ID:头字段是用来将消息分组的唯一性标识

From:头字段是指示请求发起方的逻辑标识,它可能是用户的注册地址。From头字段包含一个URI和一个可选的显示名称

CSeq:头字段用于标识事务并对事务进行排序。它由一个请求方法和一个序列号组成,请求方法必须与对应的请求消息类型一致

Max-Fowords:头字段限定一个请求消息在到达目的地之前允许经过的最大跳数。它包含一个整数值,每经过一跳,这个值就被减一。如果在请求消息到达目的地之前该值变为零,那么请求将被拒绝并返回一个483(跳数过多)错误响应消息。

Via:头字段定义SIP事务的下层(传输层)传输协议,并标识响应消息将要被发送的位置。只有当到达下一跳所用的传输协议被选定后,才能在请求消息中加入Via头字段值。

expires:参数指出了该值中包含的URI地址的有效期。这个参数的值是以秒为单

位计算的。如果没有提供该参数,那么URI地址的有效期由Expires头字段值来确定。

 

三:SIP请求的6种方法:

1、 邀请(INVITE——邀请用户加入呼叫

2、 确认(ACK——确认客户机已经接收到对INVITE的最终响应

3、 可选项(OPTIONS——请求关于服务器能力的信息

4、 再见(BYE——终止一呼叫上的两个用户之间的呼叫

5、 取消(CANCEL

6、 注册(REGISTER——提供地址解析的映射,让服务器知道其它用户的位置

 

四:INVITE请求详解:

INVITE sip:marconi@radio.org SIP/2.0
    < 请求方法、请求地址(RequestURI)、SIP版本号(目前都是SIP/2.0
     <
请求地址一般就是被叫方地址,跟MSN中好友eMail地址类似
Via: SIP/2.0/UDP lab.high-voltage.org:5060;branch=z9hG4bKfw19b
    <SIP版本号(2.0)、传输类型(UDP)、呼叫地址、
     <
branch是一随机码,它被看作传输标识
     <Via字段中地址是消息发送方或代理转发方设备地址,一般由主机地址和端口号组成
     <
=传输类型可以为UDPTCPTLSSCTP
Max-Forwards: 70
    <=最大跳跃数,就是经过SIP服务器的跳跃次数,主要是防止循环跳跃
    <
=每经过代理服务器,该整数减一
To: G. Marconi <sip:Marconi@radio.org>
From: Nikola Tesla <sip:n.tesla@high-voltage.org>;
tag=76341
    <=表示请求消息的发送方和目标方
     <
=如果里面有用户名标签,地址要求用尖括号包起来
     <
=对于INVITE消息,可以在From字段中包含tag,它也是个随机码
Call-ID:123456789@lab.high-voltage.org
    <=呼叫ID是由本地设备生成的,全局唯一值。每次呼叫该值唯一不变
     <
=对于用户代理发送INVITE消息,本地将生成From tagCall-ID全局唯一码,被叫方代理则生成To tag全局唯一码。这三个随机码做为整个对话中对话标识dialog indentifier)在通话双方使用。
CSeq: 1 INVITE
    <CSeq,又叫命令队列Command Seqence),每发送一个新的请求,该数自动加1
以上几个字段是所有SIP消息体所必须的,其它头字段有些是可选的,有些在特定请求也是必须
Subject: About That Power Outage...
Contact: <sip:n.tesla@lab.high-voltage.org>
    <ContactINVITE消息所必须的,它用来路由到被叫设备地址,也称为用户代理(UA
Content-Type: application/sdp
Content-Length: 158

    <=最后两位附属字段说明消息体类型以及字段长度

v=0   <SDP版本号,目前都是0
o=Tesla 28908445262890844526 INIP4 lab.high-voltage.org   
<=主叫源地址,类型等
s=Phone Call   

TAG: 协议 SIP sip sip协议测试

 

评分:0

我来说两句