SIP 分支



有时,代理服务器会将单个 SIP 呼叫转发到多个 SIP 端点。此过程称为分支。单个呼叫可以同时响铃多个端点。

使用 SIP 分支,您可以同时让您的办公电话和软电话或手机上的 SIP 电话响铃,从而可以轻松地从任何设备接听电话。

通常,在办公室中,如果老板无法接听电话或不在,SIP 分支允许秘书接听其分机的电话。

如果存在有状态代理,则可以进行分支,因为它需要执行操作并从众多收到的响应中进行响应。

我们有两种类型的分支:

  • 并行分支
  • 顺序分支

并行分支

在这种情况下,代理服务器将同时将 INVITE 分支到两个设备(UA2、UA3)。两个设备都将生成 180 Ringing,并且接听电话的设备将生成 200 OK。首先到达发起者的响应(假设为 UA2)将与 UA2 建立会话。对于另一个响应,将触发 CANCEL。

Parallel Forking

如果发起者同时收到两个响应,则它将根据 q 值转发响应。

顺序分支

在这种情况下,代理服务器将 INVITE 分支到一个设备 (UA2)。如果 UA2 此时不可用或繁忙,则代理服务器将将其分支到另一个设备 (UA3)。

Sequential Forking

分支 ID 和标签

分支 ID 帮助代理将响应与分支请求匹配。如果没有分支 ID,代理服务器将无法理解分支响应。分支 ID 将在 Via 头部中可用。

UAC 使用标签来区分来自不同 UAS 的多个最终响应。UAS 无法确定请求是否已被分支。因此,它需要添加一个标签。

如果代理生成最终响应,它也可以添加标签;它们绝不会将其添加到它们转发的请求或响应中。

单个请求也可能被多个代理服务器分支。因此,进行分支的代理应将其自己唯一的 ID 添加到它创建的分支中。

呼叫路径和呼叫 ID

呼叫路径是指两个用户代理之间一对一的信令关系。呼叫 ID 是 SIP 消息中携带的唯一标识符,用于指代呼叫。呼叫是呼叫路径的集合。

UAC 通过发送 INVITE 开始。由于分支,它可能会从不同的 UA 接收多个 200 OK。每个都对应于同一呼叫内的不同呼叫路径。

因此,呼叫是一组呼叫路径。呼叫路径是指 UA 之间的端到端连接。

呼叫路径两个方向的 CSeq 空间是独立的。在一个方向内,序列号在每次事务中递增。

Call Leg Id

语音邮件

语音邮件如今对于企业用户来说非常普遍。这是一个电话应用程序。当被叫方无法接听电话时,PBX 将通知呼叫方留下语音留言。

如果被叫方的号码无法接通,用户代理将收到 3xx 响应或重定向到语音邮件服务器。但是,需要某种 SIP 扩展来指示语音邮件系统使用哪个邮箱,也就是播放哪个问候语以及在哪里存储录制的留言。有两种方法可以实现这一点:

  • 使用 SIP 头字段扩展

  • 使用 Request-URI 来表示此信息

假设用户 **sip:[email protected]** 在 sip:voicemail.tutorialspoint.com 处有一个提供语音邮件的语音邮件系统,则将其转发到语音邮件服务器时的 INVITE 的 Request-URI 可能如下所示:

sip:voicemail.tutorialspoint.com;target = sip:[email protected];cause = 486

下图显示了 Request-URI 如何携带邮箱标识符和原因(此处为 486)。

SIP Voicemail
广告