sip消息类型和消息代码详解

上传人:野鹰 文档编号:1134861 上传时间:2017-05-29 格式:PDF 页数:9 大小:221.61KB
返回 下载 相关 举报
sip消息类型和消息代码详解_第1页
第1页 / 共9页
sip消息类型和消息代码详解_第2页
第2页 / 共9页
sip消息类型和消息代码详解_第3页
第3页 / 共9页
sip消息类型和消息代码详解_第4页
第4页 / 共9页
sip消息类型和消息代码详解_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《sip消息类型和消息代码详解》由会员分享,可在线阅读,更多相关《sip消息类型和消息代码详解(9页珍藏版)》请在金锄头文库上搜索。

1、在学习asterisk的时候,经常遇到一些远程服务器传回的代码,这些代码都有很重要的信息,让我们了解到对方的sip是如何响应我们这边的sip消息的,于是网上找到了这些sip消息类型和消息代码,自己收藏,相信很有用的。sip消息类型和消息格式SIP是一个基于文本的协议,使用的是UTF-8字符集.SIP消息主要分为两大类:一类是由客户端发往服务器的请求消息(Request);一类是由服务器发往客户端的应答消息(Response).一个基本的SIP消息包括起始行、一个或多个头字段、说明头字段结束的空行和一个可选的消息体。消息=起始行(包括请求行/状态行;请求行规定了请求的类别,而状态行指出了每个请求

2、的状态,比如是成功还是失败。如果是失败的话还要给出失败的原因或类型。)*头字段CRLF消息体 (消息首部给出了关于请求或应答的更多信息一般包括消息的来源、规定的消息接收方,另外还包括一些其他方面的重要信息。 消息体通常描述将要建立会议的类型包括所交换媒体的描述,但不具体定义消息体的内容或结构,其结构或内容使用另外一个协议来描述,就是会话描述协议SDP。)请求消息请求行=方法 +空格 +请求地址 +SIP版本号 +空行通过一个请求行作为起始行,请求行包括了方法名、请求的URL、协议版本号、中间用空格分开。六种请求方法:INVITE 发出呼叫会话请求ACK INVITE请求被最终请求BYE 释放一

3、个呼叫会话CANCEL 取消挂起的呼叫REGISTER 登记注册用户代理OPTIONS 查询服务器能力应答消息状态行=SIP版本+空格+状态码+空格+相关文本短语+空行SIP应答消息状态码与功能类型 状态码 状态说明临时应答(1XX) 100 Trying 正在处理中180 Ringing 振铃181 call being forwarder 呼叫正在前向182 queue 排队181* session progress 会话进行会话成功(2XX) 200 OK 会话成功重定向(3XX) 300 multiple 多重选择301 moved permanently 永久移动302 moved

4、temporaily 临时移动305 use proxy 用户代理380 alternative service 替代服务请求失败(4XX) 400 bad request 错误请求401unauthorized 未授权402 payment required 付费要求403 forbidden 禁止404 not found 未发现405 method no allowed 方法不允许406 not acceptable 不可接受407 proxy authentication required 代理需要认证408 request timeout 请求超时410 gone 离开413 req

5、uest entity too large 请求实体太大414 request-url too long 请求URL太长415 unsupported media type 不支持的媒体类型416 unsupported url scheme 不支持的URL计划420 bad extension 不良扩展421 extension required 需要扩展 423 interval too brief 间隔太短480 temporarily unavailable 临时失效481 call/transaction does not exist 呼叫/事务不存在482 loop detecte

6、d 发现环路483 too many hops 跳数太多484 address incomplete 地址不完整485 ambiguous 不明朗486 busy here 这里忙487 request terminated 请求终止488 not acceptable here 这里请求不可接受491 request pending 未决请求493 undecipherable 不可辨识服务器失败(5XX) 500 server internal error 服务器内部错误501 not implemented 不可执行502 bad gateway 坏网关503 service unava

7、ilable 服务无效504 server time-out 服务器超时505 version not supported 版本不支持513 message too large 消息太大全局性错误(6XX) 600 busy everywhere 全忙603 decline 丢弃604 does not exist anywhere 不存在606 not acceptable 不可接受SIP应答代码(这个是详细的应答码解释)应答码是包含了,并且扩展了HTTP/1.1应答码。并不是所有的HTTP/1.1应答码都适当应用,只有在折里指出的是适当的。其他HTTP/1.1应答码不应当使用。并且,SIP

8、也定义了新的应答码系列,6xx。1 临时应答1xx 临时应答,也就是消息性质的应答,标志了对方服务器正在处理请求,并且还没有决定最后的应答。如果服务器处理请求需要花200ms以上才能产生终结应答的时候,它应当发送一个1xx应答。 注意1xx应答并不是可靠传输的。他们不会导致客户端传送一个ACK应答。临时性质的(1xx)应答可以包含消息体,包含会话描述。 1.1 100 Trying 这个应答表示下一个节点的服务器已经接收到了这个请求并且还没有执行这个请求的特定动作(比如,正在打开数据库的时候)。这个应答,就像其他临时应答一样,种植了UAC重新传送INVITE请求。100(Trying)应答和其

9、他临时应答不同的是,在这里,它永远不会被有状态proxy转发到上行流中。 1.2 180 Ringing UA收到INVITE请求并且试图提示给用户。这个应答应当出世化一个本地回铃。 1.3 818 Call is Being Forwarded(呼叫被转发) 服务器可以用这个应答代码来表示呼叫正在转发到另一个目的地集合。 1.4 182 Queued 当呼叫的对方暂时不能接收呼叫的时候,并且服务器决定将呼叫排队等候,而不是拒绝呼叫的时候,那么就应当发出这个应答。当被叫方一旦恢复接收呼叫,他会返回合适的终结应答。对于这个呼叫状态,可以有一个表示原因的短语,比如:”5 calls queued;

10、expected waiting timeis 15minutes”。服务器可以给出好几个182(Queued)应答告诉呼叫方排队的情况(比如排队靠前了等等)。 1.5 183 会话进度 183(Session Progress)应答用于提示建立对话的进度信息。Reason-Phrase(表达原因的句子)、头域或者消息体可以用于提示呼叫进度的更消息的信息。 2 成功信息2xx 这个应答表示请求是成功的。 2.1 200 OK 请求已经处理成功。这个信息取决于不同方法的请求的应答。 3 转发请求3XX 3xx系列的应答是用于提示用户的新位置信息的,或者为了满足呼叫而转发的额外服务地点。 3.1

11、300 Multiple Choices 请求的地址有多个选择,每个选择都有自己的地址,用户或者(UA)可以选择合适的通讯终端,并且转发这个请求到这个地址。 应答可以包含一个具有每一个地点的在Accept请求头域中允许的资源特性,这样用户或者UA可以选择一个最合适的地址来转发请求。没有未这个应答的消息体定义MIME类型。 这些地址选择也应当在Contact头域中列出(20.10节)。不同于HTTP,SIP应答可以包含多个Contact头域或者一个Contact头域中具有一个地址列表。UA可以使用Contact头域来自动转发或者要求用户确认转发。不过,本规范没有定义自动转发的标准。 如果被叫方可

12、以在多个地址被找到,并且服务器不能或者不愿意转发请求的时候,可以使用这个应答来给呼叫方。 3.2 301 Moved Permently 当不能在Request-URI指定的地址找到用户的时候,请求的客户端应当使用Contact头域(20.10)所指出的新的地址重新尝试。请求者应当用这个新的值来更新本地的目录,地址本,和用户地址cache,并且在后续请求中,发送到这个/这些列出的地址。 3.3 302 Moved Temporarily 请求方应当把请求重新发到这个Contact头域所指出的新地址(20.10)。新请求的Request-URI应当用这个应答的Contact头域所指出的值。 在应

13、答中的Expires(20.19节)或者Contact头域的expires参数定义了这个Contact URI的生存周期。UA或者proxy在这个生存周期内cache这个URI。如果没有严格的有效时见,那么这个地址仅仅本次有效,并且不能在以后的事务中保存。 如果cache的Contact头域的值失败了,那么被转发请求的Request-URI应当再次尝试一次。临时URI可以比超时时间更快的失效,并且可以有一个新的临时URI。 3.4 305 Use Proxy 请求的资源必须通过Contact头域中指出的proxy来访问。Contact头域指定了一个proxy的URI。接收到这个应答的对象应当通

14、过这个proxy重新发送这个单个请求。305(UseProxy)必须是UAS产生的。 3.5 380 Alternative Service 呼叫不成工,但是可以尝试另外的服务。另外的服务在应答的消息体中定义。消息体的格式在这里没有定义,可能在以后的规范中定义。 4 请求失败4xx 4xx应答定义了特定服务器响应的请求失败的情况。客户端不应当在不更改请求的情况下重新尝试同一个请求。(例如,增加合适的认证信息)。不过,同一个请求交给不同服务器也许就会成功。 4.1 400 Bad Request 请求中的语法错误。Reason-Phrase应当标志这个详细的语法错误,比如”Missing Cal

15、l-IDheader field”。 4.2 401 Unauthorized 请求需要用户认证。这个应答是由UAS和注册服务器产生的,当407(Proxy AuthenticationRequired)是proxy服务器产生的。 4.3 402 Payment Required 保留/以后使用 4.4 403 Forbidden 服务端支持这个请求,但是拒绝执行请求。增加验证信息是没有必要的,并且请求应当不被重试。 4.5 404 Not Found 服务器返回最终信息:用户在Request-URI指定的域上不存在。当Request-URI的domain和接收这个请求的domain不匹配的情

16、况下, 也会产生这个应答。 4.6 405 Method Not Allowed 服务器支持Request-Line中的方法,但是对于这个Request-URI中的地址来说,是不允许应用这个方法的。 应答必须包括一个Allow头域,这个头域包含了指定地址允许的方法列表。4.7 Not Acceptable 请求中的资源只会导致产生一个在请求中的Accept头域外的,内容无法接收的错误。 4.8 407 Proxy Authentication Required 这个返回码和401(Unauthorized)很类四,但是标志了客户端应当首先在proxy上通过认证。SIP对认证的访问请参见26节和22.3节。 这个返回码用于应用程序访问通讯网关(比如,电话网关),而很少用于被叫方要求认证。 4.9 408 Request Timeout 在一段时间内,服务器不能产生一个终结应答,例如,如果它无法及时决定用户的位置。客户端可以在稍后不更改

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号