什么是SIP(Session Initiation Protocol)会话启动协议?
SIP(会话启动协议)是用于在2个或更多参与者之间建立“会话”,修改该会话并最终终止该会话的信令协议。它已经在IP电话领域得到了广泛的应用。 SIP是一个开放标准的事实引起了对电话市场的巨大兴趣,并且运营基于SIP的手机的制造商已经在该领域取得了巨大的增长。
SIP协议是基于文本的,与HTTP协议有很大的相似之处。消息是基于文本的,请求 – 响应机制使故障排除更容易。实际数据传输由OSI模型的第5层上的传输控制协议(TCP)或用户数据报协议(UDP)完成。会话描述协议(或SDP)控制使用哪个协议。
SIP消息描述呼叫中参与者的身份,以及如何通过IP网络到达参与者。封装在SIP消息中我们有时也可以看到SDP声明。 SDP(会话描述协议)将定义将为会话建立的媒体信道的类型 – 通常这将声明哪些编解码器可用,以及媒体引擎如何通过IP网络彼此联系。
一旦完成设置消息的这种交换,就使用另一种协议(通常是RTP(实时传输协议))来交换媒体。
SIP由IETF开发并发布为RFC 3261,其灵活性使其几乎完全取代了VoIP世界中的H.323协议。
两部话机之间的SIP呼叫会话示例
两个电话之间的SIP呼叫会话建立如下:
- 主叫电话发出邀请。
- 被叫电话发送信息响应100 – 尝试 – 返回。
- 当被叫电话开始振铃响应180 – 响铃 – 被发回。
- 当呼叫者拿起电话时,被叫电话发送响应200-确定。
- 主叫电话以ACK – 确认响应。
- 现在,实际会话通过RTP作为数据传输。
- 当呼叫者挂机时,会向呼叫电话发送BYE请求。
- 呼叫电话响应200 – OK。
就这么简单! SIP协议是合乎逻辑且易于理解的。