转移可能以两种不同的方式工作:
- 基于端点
在这种模式下:A通过请求(REFER)B向C建立新的呼叫,将B转移到C。如果Plivo是B,它需要支持REFER才能工作。
A B C
<=conversation=>
----REFER------>
<-202 Accepted--
----INVITE----->
<---200 OK------
----ACK-------->
<=conversation=>
<---NOTIFY-----
---- 200 OK--->
---BYE-------->
<--- 200 OK----
- 基于网络。
在这种模式下:A 通过向网络应用服务器(例如,在 IMS 中实现补充服务的 TAS)发送 REFER(或者可能是其他信号)将 B 转移到 C。TAS(作为 A 和 B 之间的 B2BUA)将是处理 REFER 的人:
A TAS B C
<=conversation=><=conversation=>
----REFER------>
<-202 Accepted--
----RE-INVITE--->
<---200 OK ------
----INVITE--------------------->
<---200 OK----------------------
----ACK--------->
------------ACK---------------->
<=conversation=>
<=conversation=================>
<---NOTIFY-----
---- 200 OK--->
---BYE-------->
<--- 200 OK----
在这种情况下,B 没有收到任何 REFER,它只需要支持接收 RE-INVITE(将语音连接从 A 切换到 C)
使用哪一个取决于您的语音提供商。在简单的、类似 PBX 的环境中,您可能会看到 1)。在网络、类似 IMS 的环境中,您很可能会看到 2)。
基于网络的工作方式类似于 PSTN 传输(特别是计费方式),因为传输目标分支通常仍与 A 相关联(并将为其计费),而 B 的连接并没有真正受到影响。
在基于端点的传输中,B 只是盲目地执行 A 的请求(如果这有一些计费问题,他们将由 B 负责)。
一些参考资料是: