SIP - 基本呼叫流程
下图显示了 SIP 会话的基本呼叫流程。
下面给出了上述调用流程的分步解释 -
发送到代理服务器的 INVITE 请求负责启动会话。
代理服务器立即向呼叫者 (Alice) 发送100 Trying响应,以停止重新传输 INVITE 请求。
代理服务器在位置服务器中查找Bob的地址。获取地址后,进一步转发INVITE请求。
此后, Bob 生成的180 Ringing(临时响应)将返回给 Alice。
Bob 拿起电话后不久就会生成200 OK响应。
一旦收到200 OK , Bob 就会收到来自 Alice 的ACK。
同时,会话建立,RTP 数据包(对话)开始从两端流动。
对话结束后,任何参与者(Alice 或 Bob)都可以发送BYE请求来终止会话。
BYE绕过代理服务器,直接从 Alice 到达 Bob。
最后,Bob 发送200 OK响应以确认 BYE,并且会话终止。
在上面的基本调用流程中,有3个事务(标记为1、2、3)可用。
完整的呼叫(从 INVITE 到 200 OK)称为Dialog。
SIP梯形
代理如何帮助将一个用户与另一用户连接?让我们借助下图来了解一下。
图中所示的拓扑称为 SIP 梯形。该过程如下 -
当主叫发起呼叫时,INVITE消息被发送到代理服务器。收到INVITE后,代理服务器尝试在DNS服务器的帮助下解析被叫方的地址。
获得下一条路由后,主叫方的代理服务器(Proxy 1,也称为出站代理服务器)将 INVITE 请求转发到被叫方的代理服务器,该代理服务器充当被叫方的入站代理服务器(Proxy 2)。
入站代理服务器联系位置服务器以获取有关用户注册的被叫方地址的信息。
从位置服务器获取信息后,它将呼叫转发到目的地。
一旦用户代理知道了他们的地址,他们就可以绕过呼叫,即直接进行对话。