require头域
来源:互联网 发布:mac快捷键缩小窗口 编辑:程序博客网 时间:2024/06/05 17:06
Require介绍
如果请求的各项要素通过了UAS的判定,那么如果存在Require头域,接下来就是检查Require头域。Require头域是UAC用来通知UAS应该用什么样的SIP扩展来处理本请求的。如果UAS不支持请求的Require头域中的option-tag列表,那就必须产生一个420应答(错误的扩展)。并且UAS必须添上Unsupported头域,里边填上刚才接收到的请求的Require头域中,哪些options是自己所不支持的。
注意:Require和Proxy-Require禁止出现在CANCEL请求中,或者回应给非2xx应答的ACK请求中。就算出现了在处理的时候也必须被忽略。并且回应给2xx应答的ACK请求必须只能包含在初始请求(在这个ACK请求之前的请求)中包含的Require和Proxy-Require所规定options,这样才能保证服务端能够正确处理。
例子:
UAC->UAS:
INVITE sip:watson@bell-telephone.comSIP/2.0
Require: 100rel
UAS->UAC:
SIP/2.0 420 Bad Extension
Unsupported: 100rel
这个特性(Unsupported)是为了保证客户-服务端都能够无阻碍的交互,除非是options对方不支持(就像上边的例子说明的一样)。对于相互匹配的客户-服务端(相互匹配的意思就是客户端Require的正好是服务端支持的),那么这些请求、应答将会处理的非常迅速,减少了一个请求的往返协商的浪费。另外,这个也避免了客户端不知道服务端到底不支持那些特性扩展。
某些特性扩展只对终端(endsystem)有效例如呼叫处理域等等。
Require头域应用
Require头域用于UAC告诉UAS关于要求UAS支持那些特性。虽然这是一个可选的头域,但是如果Require头域存在,那就一定不能掠过不处理。
头域包含一个option tag的列表。每一个option tag定了一个要处理请求要求UAS必须支持的SIP扩展。通常,这用于定义一个需要支持的扩展头域的集合。本规范的UAC应当只包含规范的RFC扩展。
例如:
Require:100rel
- require头域
- require
- require()
- require
- require
- require开发:require入门
- SIP 消息头 字段头域 缩写
- 0105 Require
- require() 函数
- Lua require
- include&&require
- Lua require
- Ruby require
- require.js
- lua -require
- lua require
- ruby require
- lua require
- 快速删除docker中的容器
- 非递归快速排序
- 巴什博奕
- 毕业生自传-9(落地生根北漂人)
- JS基础
- require头域
- python保存文件UnicodeEncodeError以及reload(sys)后print失效问题
- 数据挖掘导论总结之分类技术
- leetcode-292-Nim Game
- Tsinghua OJ:范围查询(Range)
- Android开发规范
- HP Unified Functional Testing的使用
- java IO流
- 2.2 规划物理内存格局,设置缓冲区、虚拟盘、主内存