【SIP基础】SIP协议基本呼叫流程

SIP呼叫流程

下图显示了一个SIP会话的基本呼叫流程。
【SIP基础】SIP协议基本呼叫流程_第1张图片

下面是上述呼叫流程的详细解释:

  • Alice发送INVITE请求到代理服务器,INVITE请求负责发起会话。

  • 代理服务器立即发送Trying 100给请求者(Alice),表示试图响应INVITE请求,以防止重传该INVITE请求。

  • 代理服务器搜索Bob所在位置服务器的地址,得到的地址后,将转发INVITE请求到Bob。

  • 此后,Bob回应180 Ringing(临时响应),并转发180 Ringing(临时响应)给Alice。

  • Bob接通电话,200 OK响应随即产生,并发送给代理服务器,再由代理服务器转发给Alice。

  • 当Alice端收到200 OK消息后,发送ACK,以确认消息。

  • 至此,RTP媒体流建立完成,Alice和Bob开始对话。

  • 谈话结束后,任何参与者(甲和乙)可以发送一个BYE请求终止会话。

  • BYE可以绕过代理服务器(或由代理服务器转发),比如从Alice发送给Bob。

  • Bob接收到BYE消息后,发送200 OK响应,以确认BYE消息,并结束会话。

  • 另外,在上述的基本呼叫流程,有3次握手(标记为1,2,3)。

完整的呼叫(从INVITE到200 OK)被称为一次对话。

SIP跨域呼叫流程

如何从一个代理服务器的用户呼叫到另一个代理服务器的用户呢?我们可以用下图来解释。
【SIP基础】SIP协议基本呼叫流程_第2张图片

图中示出的拓扑结构称为SIP梯形。该过程发生如下:

  • 当主叫方发起呼叫,INVITE消息被发送到代理服务器。一旦接收到INVITE时,代理服务器将利用DNS服务器查找该被叫方的地址。

  • 获取到下一跳地址后,主叫方的代理服务器(Proxy1,也称为呼出代理服务器)转发INVITE请求到被叫方的代理服务器(Proxy2,也称为入站代理服务器)。

  • 入站代理服务器接触位置服务器,以获取到被叫方的地址信息。

  • 从位置服务器获得信息后,将转发该呼叫到其目的地,即被叫方。

  • 一旦用户代理知道他们的地址后,他们可以实现直接对话了。

你可能感兴趣的:(VOIP)