跳到主要内容

6. 定义 (Definitions)

6 定义 (Definitions)

以下术语对 SIP 具有特殊意义.

  Address-of-Record: address-of-record (AOR) 是一个 SIP 或 SIPS URI, 指向一个具有位置服务的域, 该位置服务可以把该 URI 映射到用户可能可达的另一个 URI. 通常, 位置服务通过注册来填充. AOR 常被理解为用户的 "public address".

Back-to-Back User Agent: back-to-back user agent (B2BUA) 是一个逻辑实体, 它接收请求并作为 user agent server (UAS) 处理该请求. 为确定应如何响应该请求, 它又作为 user agent client (UAC) 行动并生成请求. 与 proxy server 不同, 它维护 dialog 状态, 并且必须参与在其已建立 dialog 上发送的所有请求. 由于它是 UAC 和 UAS 的串接, 因此不需要为其行为给出显式定义.

Call: call 是一个非正式术语, 指 peer 之间的某种通信, 通常为多媒体会话目的而建立.

Call Leg: dialog [31] 的另一个名称; 本规范中不再使用.

Call Stateful: 如果 proxy 从发起 INVITE 到终止 BYE 请求之间为一个 dialog 保留状态, 则该 proxy 是 call stateful. call stateful proxy 总是 transaction stateful, 但反过来不一定成立.

Client: client 是发送 SIP 请求并接收 SIP 响应的任何网络元素. client 可能直接与人类用户交互, 也可能不交互. user agent client 和 proxy 都是 client.

Conference: 包含多个参与者的 multimedia session (见下文).

Core: core 表示特定类型 SIP 实体专有的功能, 即专属于有状态或无状态 proxy, user agent 或 registrar 的功能. 除无状态 proxy 的 core 外, 所有 core 都是 transaction user.

Dialog: dialog 是两个 UA 之间持续一段时间的 peer-to-peer SIP 关系. dialog 由 SIP 消息建立, 例如对 INVITE 请求的 2xx 响应. dialog 由 call identifier, local tag 和 remote tag 标识. 在 RFC 2543 中, dialog 以前称为 call leg.

Downstream: 事务内消息转发的一个方向, 指请求从 user agent client 流向 user agent server 的方向.

Final Response: 终止 SIP 事务的响应, 与不终止事务的 provisional response 相对. 所有 2xx, 3xx, 4xx, 5xx 和 6xx 响应都是 final response.

Header: header 是 SIP 消息的一个组成部分, 用于传递关于该消息的信息. 它被组织为一组 header field.

Header Field: header field 是 SIP message header 的一个组成部分. 一个 header field 可以表现为一行或多行 header field row. header field row 由 header field name 和零个或多个 header field value 组成. 同一 header field row 上的多个 header field value 以逗号分隔. 有些 header field 只能有一个 header field value, 因而总是表现为单个 header field row.

Header Field Value: header field value 是一个单独的值; header field 由零个或多个 header field value 组成.

Home Domain: 为 SIP 用户提供服务的域. 通常, 这是注册的 address-of-record 中 URI 所含的域.

Informational Response: 与 provisional response 相同.

Initiator, Calling Party, Caller: 通过 INVITE 请求发起会话 (和 dialog) 的一方. caller 从发送建立 dialog 的初始 INVITE 起, 直到该 dialog 终止为止, 一直保留此角色.

Invitation: INVITE 请求.

Invitee, Invited User, Called Party, Callee: 为建立新会话而接收 INVITE 请求的一方. callee 从收到 INVITE 起, 直到该 INVITE 建立的 dialog 终止为止, 一直保留此角色.

Location Service: location service 由 SIP redirect server 或 proxy server 用于获取 callee 可能位置的信息. 它包含从 address-of-record 键到零个或多个 contact address 的绑定列表. 绑定可以通过许多方式创建和移除; 本规范定义了用于更新绑定的 REGISTER 方法.

Loop: 一个请求到达 proxy, 被转发, 后来又回到同一 proxy. 当它第二次到达时, 其 Request-URI 与第一次相同, 且影响 proxy 操作的其他 header field 未改变, 因而 proxy 会对该请求做出与第一次相同的处理决定. 发生 loop 的请求是错误, 协议描述了检测和处理它们的过程.

Loose Routing: 如果 proxy 遵循本规范中定义的 Route header field 处理过程, 则称该 proxy 进行 loose routing. 这些过程把请求的目的地 (存在于 Request-URI 中) 与沿途需要访问的 proxy 集合 (存在于 Route header field 中) 分离. 符合这些机制的 proxy 也称为 loose router.

Message: 作为协议一部分在 SIP 元素之间发送的数据. SIP message 要么是 request, 要么是 response.

Method: method 是请求意图在服务器上调用的主要功能. method 承载在 request message 本身中. 示例 method 包括 INVITE 和 BYE.

Outbound Proxy: 从 client 接收请求的 proxy, 即使它可能不是 Request-URI 解析出的服务器. 通常, UA 会被手工配置一个 outbound proxy, 或者可通过自动配置协议获知一个 outbound proxy.

Parallel Search: 在 parallel search 中, proxy 收到传入请求后向多个可能的用户位置发出若干请求. 与 sequential search 中先发出一个请求, 等待其最终响应后再发出下一个请求不同, parallel search 不等待前一请求的结果就发出请求.

Provisional Response: 服务器用于指示进展, 但不终止 SIP 事务的响应. 1xx 响应是 provisional response, 其他响应被视为 final response.

Proxy, Proxy Server: 一个中间实体, 为代表其他 client 发出请求而同时充当 server 和 client. proxy server 主要承担路由角色, 也就是说, 它的工作是确保请求被发送到另一个与目标用户 "closer" 的实体. proxy 也可用于执行策略 (例如确保用户被允许发起呼叫). proxy 在转发请求消息之前解释并在必要时重写其特定部分.

Recursion: 当 client 针对 3xx 响应, 向该响应 Contact header field 中的一个或多个 URI 生成新请求时, 称 client 对该 3xx 响应进行 recursion.

Redirect Server: redirect server 是一种 user agent server, 它为收到的请求生成 3xx 响应, 指示 client 联系一组替代 URI.

Registrar: registrar 是一种 server, 它接受 REGISTER 请求, 并把这些请求中收到的信息放入其所处理域的位置服务中.

Regular Transaction: regular transaction 是 method 不是 INVITE, ACK 或 CANCEL 的任何事务.

Request: 从 client 发送到 server 的 SIP 消息, 目的是调用某个特定操作.

Response: 从 server 发送到 client 的 SIP 消息, 用于指示 client 发送给 server 的请求的状态.

Ringback: ringback 是主叫方应用产生的信令音, 表示被叫方正在被提示 (振铃).

Route Set: route set 是一组有序的 SIP 或 SIPS URI, 表示发送特定请求时必须经过的 proxy 列表. route set 可以通过 Record-Route 等 header 学习得到, 也可以配置得到.

Server: server 是接收请求以便服务这些请求, 并向这些请求发送响应的网络元素. server 的示例包括 proxy, user agent server, redirect server 和 registrar.

Sequential Search: 在 sequential search 中, proxy server 按顺序尝试每个 contact address, 只有在前一个地址生成最终响应后才继续下一个. 2xx 或 6xx 类 final response 总会终止 sequential search.

Session: 按 SDP 规范: "A multimedia session is a set of multimedia senders and receivers and the data streams flowing from senders to receivers. A multimedia conference is an example of a multimedia session." (RFC 2327 [1]) (按 SDP 定义的 session 可以包含一个或多个 RTP session.) 按此定义, 一个 callee 可以由不同 call 多次邀请到同一 session. 如果使用 SDP, session 由 origin field 中的 SDP user name, session id, network type, address type 和 address 元素串接定义.

SIP Transaction: SIP transaction 发生在 client 和 server 之间, 包含从 client 发送给 server 的第一个请求开始, 直到 server 发送给 client 的最终 (非 1xx) 响应为止的所有消息. 如果请求是 INVITE 且最终响应是非 2xx, 事务还包括对该响应的 ACK. 对 INVITE 请求的 2xx 响应的 ACK 是一个独立事务.

Spiral: spiral 是一个 SIP 请求, 它被路由到某个 proxy, 继续向前转发, 并再次到达该 proxy, 但这次请求存在差异, 会导致与原始请求不同的处理决定. 通常, 这意味着请求的 Request-URI 与上一次到达时不同. 与 loop 不同, spiral 不是错误条件. 其典型原因是呼叫转发. 一个用户呼叫 [email protected]. example.com proxy 将其转发到 Joe 的 PC, 后者再将其转发到 [email protected]. 该请求又被代理回 example.com proxy. 然而, 这不是 loop. 由于请求目标是不同用户, 它被视为 spiral, 是一种有效条件.

Stateful Proxy: 一个逻辑实体, 在处理请求期间维护本规范定义的 client 和 server transaction state machine, 也称为 transaction stateful proxy. stateful proxy 的行为在 Section 16 中进一步定义. (transaction) stateful proxy 不同于 call stateful proxy.

Stateless Proxy: 一个逻辑实体, 在处理请求时不维护本规范定义的 client 或 server transaction state machine. stateless proxy 会向 downstream 转发收到的每个请求, 并向 upstream 转发收到的每个响应.

Strict Routing: 如果 proxy 遵循 RFC 2543 以及本 RFC 之前许多 work in progress 版本中的 Route 处理规则, 则称该 proxy 进行 strict routing. 该规则导致当存在 Route header field 时, proxy 会破坏 Request-URI 的内容. 本规范不使用 strict routing 行为, 而采用 loose routing 行为. 执行 strict routing 的 proxy 也称为 strict router.

Target Refresh Request: 在 dialog 内发送的 target refresh request 定义为可修改该 dialog remote target 的请求.

Transaction User (TU): 位于 transaction layer 之上的协议处理层. transaction user 包括 UAC core, UAS core 和 proxy core.

Upstream: 事务内消息转发的一个方向, 指响应从 user agent server 流回 user agent client 的方向.

URL-encoded: 按 RFC 2396, Section 2.4 [5] 编码的字符串.

User Agent Client (UAC): user agent client 是一个逻辑实体, 它创建新请求, 然后使用 client transaction 状态机制发送该请求. UAC 角色仅在该事务持续期间存在. 换言之, 如果某个软件发起请求, 它在该事务持续期间充当 UAC. 如果它稍后收到请求, 则在处理该事务期间承担 user agent server 的角色.

UAC Core: 位于 transaction layer 和 transport layer 之上的, UAC 所需的一组处理功能.

User Agent Server (UAS): user agent server 是一个逻辑实体, 它为 SIP 请求生成响应. 该响应接受, 拒绝或重定向请求. 此角色仅在该事务持续期间存在. 换言之, 如果某个软件响应请求, 它在该事务持续期间充当 UAS. 如果它稍后生成请求, 则在处理该事务期间承担 user agent client 的角色.

UAS Core: 位于 transaction layer 和 transport layer 之上的, UAS 所需的一组处理功能.

User Agent (UA): 一个可以同时充当 user agent client 和 user agent server 的逻辑实体.

UAC 和 UAS 的角色, 以及 proxy 和 redirect server 的角色, 都按每个事务定义. 例如, 发起呼叫的 user agent 在发送初始 INVITE 请求时充当 UAC, 在收到 callee 发来的 BYE 请求时充当 UAS. 类似地, 同一软件可以对一个请求充当 proxy server, 对下一个请求充当 redirect server.

上文定义的 proxy, location 和 registrar server 都是逻辑实体; 实现 MAY 将它们组合到单个应用中.