1.sip概念

sip()是一个应用层的网络会话协议,会话就是双方之间的数据交互,而交互的数据无外乎视频、文本和语音这三种形式,所以大部分的互联网应用程序、多媒体通信都要用到sip协议。sip基于VoIP(即在 IP 网络上使用 IP 协议以数据包的方式传输语音)的IP电话信令协议,可在两个或多个用户之间创建、修改或结束实时会话进程,允许用户之间进行语音和视频呼叫,也就是定义了“如何管理”用户通信设备(比如计算机、电话、手机等)之间相互连接和信息交互,而不定义建立会话的“类型”(语音、视频、音乐、会议等)。

2.sip会话交互过程

sip基本会话首先要在主叫方和被叫方之间建立连接,也就是完成请求和响应:

(1)主叫方向代理服务器发送INVITE请求信号

(2)代理服务器接收到请求后立即向主叫方返回一个100Trying响应,防止INVITE请求重发

(3)代理服务器在位置服务器中搜索出被叫方的地址后,立即向被叫方转发INVITE请求

(4)被叫方接收到请求后,立即给代理服务器返回一个180Rining响铃响应,代理服务器将其转发给主叫方

(5)被叫方接听电话后,会给代理服务器发送一个200OK的响应,代理服务器将其转发给主叫方

(6)主叫方接收到200OK后,给代理服务器返回一个ACK响应,代理服务器将其转发给被叫方

(7)会话建立完成,在RTP/RTCP协议下两端进行对话

(8)对话结束后,主叫方和被叫方都可以发送Bye请求绕过代理服务器直接终止会话,另一方接收到Bye请求后会直接返回一个200OK响应

4fe6c9d90a494994b51f43c90e56ee96.png

就像同一班级里同学之间传递小纸条,A想给C传递小纸条,但中间隔了个B,B就充当了代理服务器这个角色,想要传递小纸条的意愿和传递过程都由B代为转达。

对于不同域用户间建立会话,在其中一个域的代理服务器中是搜索不到对方的地址信息的,所以须通过他们各自所属域的代理服务器来建立会话。其中典型的sip梯形如下:

(1)主叫方向所属域的代理服务器1(出站代理)发送INVITE请求

(2)代理服务器1收到请求后在DNS服务器的帮助下解析和查询出被叫方所属域的代理服务器2(提供入站路由服务)的位置,并把INVITE请求转发给代理服务器2

(3)代理服务器2在位置服务器中获取到被叫方的地址信息,并把请求转发给被叫方

(4)代理服务器知道了双方的地址信息,后续请求、响应和对话都可以直接在主叫方和被叫方之间进行

85cfbdc45bba4250b242b4b415412490.png

 

 

 

 

 

 

 

 

 

 

 

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐