实习第二天:SIP协议
Posted 看,未来
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实习第二天:SIP协议相关的知识,希望对你有一定的参考价值。
文章目录
如何给小白讲SIP(Session Initiation Protocol)协议?
我就是小白啊,给我讲那么多概念,我哪里看得懂。
我们来看一个场景,你现在想找一个人聊天,这个人不知道是谁。首先你得找到他,你的声音得传送到他,你们的交流还不能被语言阻碍,他还要能同样过程操作一波。
帮你定位到对象的是SIP,你们两个协商使用英语沟通、还是汉语,使用电话设备、还是电脑web的是sdp, 最终说话的传递及传输介质是rtc。
sip协议做的是,能够让你定位到你想聊天的对象, 帮你检测你聊天对象是否可达, 帮你管理你们通话的会话
状态,帮你结束你们的聊天进程等。
SIP是一个基于文本的应用层控制协议,独立于底层传输协议TCP/UDP/SCTP,用于建立、修改和终止IP网上的双方或多方多媒体会话。SIP协议借鉴了HTTP、SMTP等协议,支持代理、重定向及登记定位用户等功能,支持用户移动。通过与RTP/RTCP、SDP、RTSP等协议及DNS配合,SIP支持语音、视频、数据、E-mail、状态、IM、聊天、游戏等。SIP协议可在TCP或UDP之上传送,由于SIP本身具有握手机制,可首选UDP。
Sip消息的两种会话模式
Session Model
会话中,对于消息体内容大于1300字节时,一般采用Session Model。其会话建立过程如下图所示:
Pager Model
在Sip消息中,对于消息体不大于1300字节时,一般采用Pager Model。Sip消息通信中采用MESSAGE方法,MESSAGE方法本身并不建立Dialog,在多数应用中,每条IM消息都是独立的,颇似分页消息。
当User1想给User2发送IM消息时,只需构造一个MESSAGE,发出去即可。
SIP消息体格式
请求行
请求行格式:Method Request-URI SIP-Version CRLF
Method 以下列出了几种消息Method方法:
Request-URI:指示请求的用户或者服务的地址信息
SIP-Version请求和响应消息都需要包含SIP版本信息
状态行
状态行格式:SIP-Version Status-Code Reason-Phrase CRLF
Status-Code状态码:状态代码由3位数字组成,表示请求是否被理解或被满足。
状态代码的第一个数字定义了响应的类别,后面两位没有具体的分类。
3.3、消息头
Header 字段含义说明:
SIP系统基本组成
1. 用户代理
用户代理(User Agent)分为两个部分:客户端(User Agent Client),负责发起呼叫;用 户代理服务器(User Agent Server),负责接受呼叫并做出响应。二者组成用户代理存在于用户 终端中。用户代理按照是否保存状态可分为有状态代理、有部分状态用户代理和无状态用户 代理。
2. 代理服务器
代理服务器(Proxy Server),负责接收用户代理发来的请求,根据网络策略将请求发给相应 的服务器,并根据收到的应答对用户做出响应。它可以根据需要对收到的消息改写后再发出。
3. 重定向服务器
重定向服务器(Redirect Server),用于在需要时将用户新的位置返回给呼叫方。呼叫方可 根据得到的新位置重新呼叫。
4. 注册服务器
注册服务器(Registrar),用于接收和处理用户端的注册请求,完成用户地址的注册。
以上几种服务器可共存于一个设备,也可以分布在不同的物理实体中。SIP服务器完全是 纯软件实现,可以根据需要运行于各种工作站或专用设备中。 UAC, UAS, Proxy Server, Redirect Server是在一个具体呼叫事件中扮演的不同角色,而这 样的角色不是固定不变的。一个用户终端在会话建立时扮演UAS,而在主动发起拆除连接时, 则扮演UAC。一个服务器在正常呼叫时作为Proxy Server,而如果其所管理的用户移动到了别 处,或者网络对被呼叫地址有特别策略,则它将扮演Redirect Server,告知呼叫发起者该用户新的位置。
优缺点
SIP的部分优点包括:该协议具有可扩展特性,可以轻松定义并迅速实现新功能。可以简 单易行地嵌入廉价终端用户设备。该协议可确保互操作能力,并使不同的设备进行通信。便 于那些非电话领域的开发人员理解该协议。
SIP的缺点包括:SIP问世不久,因此大多数应用尚处于原型阶段。该协议单独应用的范 围较窄。但与其他协议协同使用时,具有较强的灵活性。SIP只是完整解决方案的一小部分, 还需要许多其他的软件来构建完整的SIP网络电话产品。
以上是关于实习第二天:SIP协议的主要内容,如果未能解决你的问题,请参考以下文章
第二天,关于sip的学习(freeSwitch增加配置录音功能)