SIP 请求和响应报头字段

2018-12-28 19:28 更新

Accept

Accept头字段用于在消息正文中指示可接受的消息Internet媒体类型。

  • 标题字段描述使用通常在因特网中使用的格式类型/子类型的媒体类型。

  • 如果不存在,则假定可接受的消息体格式为 application / sdp

  • 媒体类型列表可以使用 q 值参数设置首选项。

Accept-Encoding

Accept-Encoding头字段用于指定可接受的消息体编码方案。

  • 编码可以用于确保具有大消息体的SIP消息适合单个UDP数据报。

  • 使用 q 值参数可以设置首选项。如果所列出的方案都不能被UAC接受,则返回406不可接受的响应。如果不包括,则假设的编码将是 text / plain

To

To 表示请求的最终收件人。UA生成的任何响应将包含此标头字段并添加标签。它是必需的头。

  • 代理生成的任何响应必须在 To 头字段中添加标签。

  • To 头字段URI从不用于路由。

From

From 头字段表示请求的发起者。它是用于标识对话框的两个地址之一。

  • A From 头字段可以包含用于标识特定呼叫的标签。

  • 它可以包含显示名称,在这种情况下,URI包含在<&gt ;.

  • 它是必需的头。

Call-ID

Call-ID头字段在所有SIP请求和响应中是强制的。它用于唯一标识两个用户代理之间的呼叫。

  • 呼叫ID在呼叫之间必须是唯一的。

  • 用户代理的所有注册应使用相同的Call-ID。

  • Call-ID始终由用户代理创建,并且不会被服务器修改。

  • 它是一个加密随机标识符。

Via

Via用于记录由有助于将响应路由回始发者的请求所采用的SIP路由。

  • 生成请求的UA在Via头字段中记录其自己的地址。

  • 转发请求的代理将Via头字段包含其自己的地址添加到Via头字段列表的顶部。

  • 生成对请求的响应的代理或UA将请求中的所有Via报头字段按顺序复制到响应中,然后将响应发送到在顶部Via报头字段中指定的地址。

  • 接收响应的代理检查顶部Via头字段并匹配其自身的地址。

  • 如果不匹配,则响应已被丢弃。

  • 然后删除顶部Via头字段,并将响应转发到在下一个Via头字段中指定的地址。

  • Via头字段包含协议名称,版本号和传输(SIP / 2.0 / UDP,SIP / 2.0 / TCP等),并且可以包含端口号和参数,例如接收的,rport,branch,maddr, b>和 ttl

  • 如果UA或代理从与在顶部Via头字段中指定的地址不同的地址接收到请求,则将收到的标签添加到Via头字段。

  • 分支参数通过UA和代理被添加到Via报头字段,其被计算为Request-URI的哈希函数,以及To,From,Call-ID和CSeq数。

CSeq

CSeq头字段是每个请求中所需的头字段。 它包含对每个请求增加的十进制数。

  • 通常,对于每个新请求,除了 CANCEL ACK 请求,它使用它所引用的INVITE请求的CSeq号,它增加1。

  • UAS使用CSeq计数来确定失序请求或区分新请求(不同CSeq)或重传(相同CSeq)。

  • CSeq头字段由UAC使用以匹配对其引用的请求的响应。

  • 例如,发送INVITE请求然后发送CANCEL请求的UAC可以通过CSeq中的方法告知200OK响应,如果它是对邀请或取消请求的响应。

Contact

Contact头字段用于向其他用户传达关于请求发起者的地址。 一旦接收到联系人报头字段,URI可以被缓存并且用于在对话中路由未来的请求。

例如,在对INVITE的200OK响应中的联系人报头字段可以允许确认ACK消息和在该呼叫期间的所有未来请求绕过代理并直接去往被叫方。

Record-Route

Record-Route头字段用于强制路由通过代理以用于两个UA之间的会话(对话)中的所有后续请求。

通常,Contact头字段的存在允许UA直接绕过初始请求中使用的代理链来发送消息。

  • 将其地址插入到记录 - 路由头部字段中的代理覆盖此并且迫使将来的请求包括包含强制该代理被包括的代理的地址的Route头字段。

  • 希望实现此操作的代理将插入包含其自己的URI的头字段,或将其URI添加到已经存在的Record-Route头字段。

  • 构造URI以便URI解析回代理服务器。 UAS将Record-Route头字段复制到对请求的200 OK响应中。

  • 头字段由代理不变地转发回UAC。 然后,UAC存储记录 - 路由代理列表加上联系人头字段(如果在200OK中存在),以便在所有后续请求中的路由头字段中使用。

Organization

组织头字段用于指示消息的发起者所属的组织。

  • 它也可以由代理插入,因为消息从一个组织传递到另一个组织。

  • 与所有SIP报头字段一样,它可以由代理用于做出路由决定,并且由UA用于进行呼叫筛选决定。

Retry-After

它用于指示资源或服务何时可以再次可用。

  • 在503服务不可用响应中,它指示服务器何时可用。

  • 在404未找到,600 Busy Everywhere和603拒绝响应中,它指示被叫UA何时可以再次可用。

  • 它包含以秒为单位的时间段。

Subject

可选的Subject头字段用于指示媒体会话的主题。

报头字段的内容也可以在提醒期间显示,以帮助用户决定是否接受呼叫。

Example:
Subject: How are you?

Supported

Supported头字段用于列出UA或服务器实现的一个或多个选项。

  • 它通常包含在对OPTIONS请求的响应中。

  • 如果未实现任何选项,则不包括头字段。

  • 如果UAC列出了支持报头字段中的选项,代理或UAS可以在呼叫期间使用该选项。

  • 如果必须使用或支持该选项,那么将使用Require头字段。

Example:
Supported: rel100

Expires

Expires头字段用于指示请求或消息内容有效的时间间隔。

  • 当存在于INVITE请求中时,报头字段在INVITE请求的完成时设置时间限制。

  • 也就是说,UAC必须在该时间段内接收最终响应(非1xx),或者INVITE请求被408请求超时响应自动取消。

  • 一旦建立会话,来自原始INVITE中的Expires头字段的值没有效果 - 为此目的必须使用Session-Expires头字段。

  • 如果存在于REGISTER请求中,则头字段在Contact头字段中的URI上设置不包含 expires 参数的时间限制。

  • Expires也用于SUBSCRIBE请求中,以指示订阅持续时间。

Example:
Expires: 30

User-Agent

该报头字段用于传送关于发起请求的UA的信息。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号