您的位置:首页 > 其它

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

2016-09-09 12:45 204 查看

SIP呼叫流程

下图显示了一个SIP会话的基本呼叫流程。



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

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梯形。该过程发生如下:

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

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

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

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

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

9205
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: