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,会话终止。
在上面的基本调用流程中,三个事务可用(标记为1、2、3)。
完整的呼叫(从 INVITE 到 200 OK)称为对话。
SIP 梯形
代理如何帮助将一个用户与另一用户连接? 让我们通过下图来了解一下。
图中所示的拓扑称为 SIP 梯形。 该过程发生如下 −
当主叫方发起呼叫时,会向代理服务器发送一条 INVITE 消息。 代理服务器收到INVITE消息后,尝试在DNS服务器的帮助下解析被叫方的地址。
获取下一条路由后,主叫方的代理服务器(Proxy 1,也称为出站代理服务器)将 INVITE 请求转发到被叫方的代理服务器,该代理服务器充当被叫方的入站代理服务器(Proxy 2)。
入站代理服务器联系位置服务器以获取有关用户注册的被叫方地址的信息。
从位置服务器获取信息后,它将呼叫转发到目的地。
一旦用户代理知道他们的地址,他们就可以绕过呼叫,即直接进行对话。