这里来详细了解一下Sip协议 。以下内容大致分为以下几个部分:
- 协议简介
- 两种Sip会话模式Session Model与Pager Model;
- Sip 消息体结构
- Sip 消息举例
SIP是类似于HTTP , SIP可以减少应用特别是高级应用的开发时间 。由于基于IP协议的SIP利用了IP网络 , 固定网运营商也会逐渐认识到SIP技术对于他们的原意义 。
二、Sip消息的两种会话模式在Sip IM通信应用过程中 , 一般存在着两种会话模式:
- Session Model
- Pager Model
文章插图
主叫方A呼叫被叫方B:
- 步骤1:主叫方A发送INVITE请求到代理服务器;
- 步骤2:代理服务器发送100 Trying 响应主叫方A;
- 步骤3~6:代理服务器搜索被叫方B的地址 , 获取地址后转发INVITE请求;
- 步骤7~9:被叫方B生成的180 振铃响应 , 返回给主叫方A;
- 步骤10~12:被叫方B生成的200 OK响应 , 返回给主叫方A;
- 步骤13~17:主叫方A收到被叫方B200 OK响应后 , 向被叫方B发送一个ACK , 会话建立;
- 步骤18~20:会话结束后 , 任何参与者(A或B)都可以发送一个BYE请求来终止会话;
- 步骤21~23:主叫方A发送200 OK响应来确认BYE , 会话终止 。
2.2、Pager Model在Sip消息中 , 对于消息体不大于1300字节时 , 一般采用Pager Model 。Sip消息通信中采用MESSAGE方法 , MESSAGE方法本身并不建立Dialog , 在多数应用中 , 每条IM消息都是独立的 , 颇似分页消息 。
2.2.1 MESSAGE方法的由来RFC3428对Sip协议进行了扩展 , 在Sip协议中增加了MESSAGE请求方法 。采用Pager Model进行通信 , 传递不超过1300字节的数据 。MESSAGE方法详细可参考 “SIP-RFC3428”
https://tools.ietf.org/html/rfc3428 。
2.2.2 MESSAGE方法消息体当User1想给User2发送IM消息时 , 只需构造一个MESSAGE , 发出去即可 。
对于其消息体body可以是任何MIME格式 。但必须支持plain/text格式 , 可以选择支持message/cpim、message/sdp格式 , 可能用message/cpim会好一点 , 因为已有的IM系统标准是message/cpim格式 。
推荐阅读
- 抓包神器Charles的最全使用详解
- 小苏打是不是碱面的详解
- 详解:一进大门就见餐桌为何不吉?
- 餐厅装镜子风水学问详解
- 详解服务器、磁盘和网卡知识
- 华为、H3C、CISCO三家交换机配置命令详解
- 什么是IFPS?与现阶段的HTTP协议有什么区别?
- 网络协议分析软件 Wireshark for Macv3.5.0rc0-2136中文免费版
- Win10怎么开启NetBIOS协议呢?
- 网络扫描神器Nmap常用操作方法详解以及使用脚本爆破telnet密码