📅  最后修改于: 2020-10-29 03:47:41             🧑  作者: Mango
下图显示了SIP会话的基本呼叫流程。
下面给出了上述调用流程的分步说明-
发送到代理服务器的INVITE请求负责启动会话。
代理服务器立即将100个Trying响应发送给调用方(爱丽丝),以停止INVITE请求的重发。
代理服务器在位置服务器中搜索Bob的地址。获取地址后,它将进一步转发INVITE请求。
此后,由Bob产生的180次振铃(临时响应)将返回给Alice。
Bob拿起电话后,很快就会产生200 OK响应。
一旦获得200 OK ,Bob就会从Alice那里收到一个ACK 。
同时,建立会话,并且RTP数据包(会话)开始从两端流出。
对话后,任何参与者(爱丽丝或鲍勃)都可以发送BYE请求以终止会话。
BYE绕过代理服务器直接从Alice到达Bob。
最后,鲍勃发送200 OK响应以确认BYE,并且会话终止。
在上述基本呼叫流程中,三个事务(标记为1、2、3)可用。
完整的调用(从INVITE到200 OK)称为Dialog 。
代理如何帮助将一个用户连接到另一个用户?让我们借助下图找出答案。
图中显示的拓扑称为SIP梯形。该过程如下-
当呼叫者发起呼叫时,INVITE消息将发送到代理服务器。收到邀请后,代理服务器将尝试在DNS服务器的帮助下解析被呼叫者的地址。
获取下一条路由后,呼叫者的代理服务器(代理1,也称为出站代理服务器)将INVITE请求转发到被呼叫者的代理服务器,后者充当被呼叫者的入站代理服务器(代理2)。
入站代理服务器与位置服务器联系,以获取有关用户注册的被呼叫者地址的信息。
从位置服务器获取信息后,它将呼叫转发到其目的地。
一旦用户代理知道他们的地址,他们就可以绕过呼叫,即对话直接通过。