SIP响应消息和头字段

简介: SIP响应消息和头字段

响应消息格式如下:


              Response=Status-Line

                                *(general-header

                                 I response-header

                                 I entity-header)

                                 CRLF

                                              [message-body]


      状态行(Status-Line)以协议版本开始,接下来是用数字表示的状态码(Status-Code)及相关的文本说明,最后以回车键结束,各个元素间用空格字符(SP)间隔,除了在最后的CRLF序列中,这一行别的地方不许使用回车或换行字符。


       Status-Line=SIP-version SP Status-Code SP Reason-Phrase CRLF

       SIP协议中用三位整数的状态码(StatusCode)和原因码(Reason Code)来表示对请求做出的回答。状态码用于机器识别操作,原因短语(Reason-Phrase)是对状态码的简单文字描述,用于人工识别操作。其格式如下:


Status-Code=Ixx(Informational)

                     I 2xx (Success)

                     I 3xx (Redirection)

                     I 4xx (Client-Error)

                     I 5xx (Server-Error)

                     I 6xx (Global-Failure)

                     I  extension-code


     状态码的第一个数字定义响应的类别,在SIP/2.0中第一个数字有6个值,定义如下:

     • 1xx(Informational):请求已经收到、继续处理请求。

     • 2xx(Uccess):行动已经成功地收到,理解和接受。

     • 3xx(Redirection):为完成呼叫请求,还须采取进一步的动作。

     • 4xx(ClientError):请求有语法错误或不能被服务器执行。客户机需修改请求,然后再重发请求。

     • 5xx(ServerError):服务器出错,不能执行合法请求。

     • 6xx(GlobalFailure):任何服务器都不能执行请求。

     其中,Ixx响应为暂时响应(Provisionalresponse),其他响应为最终响应(FinalResponse)o

SIP消息头字段


      SIP协议的消息头定义与HTTP在语法规则和定义上很相似。每个头字段都遵循以下格式:首先是字段名(Field Name),字段名不分大小写,后面是冒号;然后是字段值,字段值与冒号间可有多个前导空格(LWS)。其格式如下:


             message-header = field-name":"[field-value]CRLF

field-name           = token

             field-value            = *(field-contentILWS)


通用消息头(GeneralheadeT)


      通用头字段适用于请求消息和响应消息,包含的字段有:

      general-header=Accept

                                I Accept-Encoding

                                I Accept-Language

                                I Call-ID

                                I Contact

                                I CSeq

                                I Date

                                I Encryption

                                I Expires

                                I From

                                I Organization

                                I Record-Route

                                I Timestamp

                                I To

                                I User-Agent

                                I Via

     

接下来,介绍通用头字段中各字段的含义:

      • Accept,Accept-Encoding和Accept-Language字段用于客户机在请求消息中给出其可接受的响应的媒体类型、编码方式以及描述语言。用于服务器在415响应(请确认)中表明其可理解的请求消息的媒体类型、编码方式以及描述语言。

      • Call-ID字段:用于惟一标识特定邀请或某个客户机的注册请求,一个多媒体会议可产生多个Call-ID不同的呼叫。

      • Contact字段:给出一个URL,用户可以与此URL建立进一步的通信。

      • Cseq字段:用于标识服务器发出的不同请求,若Call-ID值相同,那么Cseq值必须各不相同。

      • Date字段:反映首次发出请求或响应消息的时间,重发的消息与原先的消息有相同的Data字段值。

      • Encryption字段:表明内容经过了加密处理,这种加密为端到端的加密。

      • Expire字段:它给出消息内容截止的日期和时间。

      • From字段:所有消息中都必须有From字段,此字段给出请求的发起者。

      • Organization字段:它给出发出请求或响应消息的实体所属的组织的名称。

      • Record-Route字段:它给出一个全局可到达的Request-URI,用于标识代理服务器。

      • Time-Stamp字段:给出客户机向服务器发出请求的时间。

      • To字段:所有消息中都必须有To字段,此字段给出请求的目的收方。

      • User-Agent字段:含有与发起请求的用户代理客户机有关的信息。

      • Via字段:它给出请求消息迄今为止经过的路径。

相关文章
|
Java 数据库 Maven
根据请求中接收到的主动协商头字段,目标资源没有用户代理可以接受的当前表示
今天使用ssm框架搭建了一个项目,测试一个插入的接口结果返回406,但是数据库插入成功了,报错406是因为返回的结果接口无法解析。
856 0
|
6月前
|
安全 数据处理 C#
C# Post数据或文件到指定的服务器进行接收
C# Post数据或文件到指定的服务器进行接收
|
数据库
SIP 协议消息应答代码解释详录
SIP 协议消息应答代码解释详录
|
网络协议 索引
HTTP/2 协议(帧、消息、流简单的抓包分析)
HTTP/2 协议(帧、消息、流简单的抓包分析)
648 0
|
监控 网络协议 网络架构
什么是SIP请求和SIP响应?
什么是SIP请求和SIP响应?
|
缓存 算法
HTTP协议中的ETag头字段如何实现快速判断资源是否变化?
HTTP协议中的ETag头字段如何实现快速判断资源是否变化?
185 0
|
网络协议 安全 应用服务中间件
网络-http协议学习笔记(消息结构、请求方法、状态码等)
网络-http协议学习笔记(消息结构、请求方法、状态码等)
138 0
网络-http协议学习笔记(消息结构、请求方法、状态码等)
|
缓存 安全 前端开发
如何判断请求是否发送成功以及获取请求中的数据
如何判断请求是否发送成功以及获取请求中的数据
744 0
如何判断请求是否发送成功以及获取请求中的数据
|
数据安全/隐私保护 网络架构