SIP极简教程

简介: SIP运行在我们熟知的TCP和UDP协议之上,既可以使用TCP协议通信也可以通过UDP协议通信。SIP是对等协议,一个端既是客户端又是服务端。

[toc]

简介

SIP(Session Initiation Protocol),会话发起协议,顾名思义,就是用于发起会话的协议。

SIP会话(Session)是两个用户终端之间(也可能是多个用户之间)基于IP网络的会话,即VoIP会话;会话的媒体一般是语音、视频、也可能有其他形式。

SIP协议本身只负责会话的建立,具体来说,就是在两个用户终端之间通过SIP消息交换传递消息,完成会话的建立;

会话建立过程中的一个关键点是交换发送/接受会话媒体的地址及相关参数,即媒体描述;媒体描述是通过SDP来完成的;会话建立以后,两方得到了彼此的媒体地址之后,就可以向对方发送媒体,开始通话。媒体传输是通过RTP(实时传输协议)完成的。

SDP、RTP,与SIP协议是相对独立的。

SIP运行在我们熟知的TCP和UDP协议之上,既可以使用TCP协议通信也可以通过UDP协议通信。SIP是对等协议,一个端既是客户端又是服务端。

VoIP(Voice on IP),从字面上看就是语音跑在IP网络上。具体来说就是将电话业务(或者说模拟信号)与web浏览,email等其它数据应用一样,承载在IP网络上。常见的应用场景有:传送语音、传真、视频、和数据等业务,如统一消息业务、虚拟电话、虚拟语音/传真邮箱、查号业务、Internet呼叫中心、Internet呼叫管理、电话视频会议、电子商务、传真存储转发和各种信息的存储转发等。

与主流的web应用相比,VoIP具有以下特点

  • 媒体(内容数据)的传输是双向对称,实时的,基于单独的实时传输协议
  • 呼叫建立过程基于单独的信令协议,独立于语音数据传输

这使得VoIP有自己独特的协议栈:明确区分了独立的信令协议与媒体传输协议。
Image1.png

SIP会话流程

发起会话流程

实际就是tcp三次握手,握手成功之后,双方就可以传输数据。

Image2.png

修改会话流程

Image3.png

结束会话流程

Image4.png

SIP消息

消息分类和对应的操作

SIP消息(Method) SIP操作 说明
INVITE 会话邀请
ACK 确认会话邀请
CANCEL 取消会话邀请 请求方在还未收到ACK的时候可以主动取消会话邀请
BYE 结束会话
REGISTER 注册 心跳机制
OPTIONS 查询服务器能力 查询对端具备的能力,如支持的方法(Method),扩展(extensions),编解码(codecs)

SIP消息体格式

SIP是一个基于文本(text-based)的协议,使用 UTF-8 字符集。

SIP消息与HTTP消息非常类似,由三部分构成(如下图所示)

  • 第一行:请求行(Request-Line),状态行(Status-Line)
  • 消息头域(message header)
  • 消息体(message body):通常是会话描述(session descriptions),也可能是其他内容

Image5.png

  • SIP请求的第一行是请求行(Request-Line)
  • SIP响应的第一行是状态行(Status-Line)
  • SIP请求消息(SIP Request)有很多,例如INVITE、ACK、BYE、CANCEL等,不同的SIP请求消息通过请求行(Request-Line)的方法(method)区分

引用

目录
相关文章
|
编解码 网络协议 Unix
SIP协议&开源SIP服务器搭建和客户端安装
1. SIP SIP 是一个应用层的控制协议,可以用来建立,修改,和终止多媒体会话,例如Internet电话 SIP在建立和维持终止多媒体会话协议上,支持五个方面: 1)   用户定位: 检查终端用户的位置,用于通讯。
18244 0
|
负载均衡 网络协议 安全
【开源视频联动物联网平台】SIP协议的特点
【开源视频联动物联网平台】SIP协议的特点
584 1
|
存储 监控 算法
详解SIP服务器用来做什么的
什么是SIP服务器? SIP服务器是IPPBX的主要组成部分,主要处理网络中所有SIP呼叫的管理。SIP服务器也称为SIP代理或注册器。SIP是SIP服务器的主要组件,负责建立网络中所有的SIP电话通话。SIP服务器也叫SIP代理服务器或注册服务器。
4388 0
详解SIP服务器用来做什么的
|
网络协议 应用服务中间件 网络性能优化
SIP协议是什么?
1,SIP是类似于HTTP的基于文本的协议。 2,SIP可以减少应用特别是高级应用的开发时间。由于基于IP协议的SIP利用了IP网络,有关系统方面问题请找博主,看他名字一起交流学习。固定网运营商也会逐渐认识到SIP技术对于他们的深远意义 SIP(SessionInitiationProtocol,会话发起协议)是由IETF推出的一种用于建立、修改和终止多媒体会话的应用层控制协议。这些多媒体会话包括Internet多媒体会议、远程教育、Internet电话等。SIP侧重于将SIP网络电话作为互联网上的一个应用,所以SIP继承了互联网协议简单、开放、灵活的特点,既保证了对用户和会话的可管理性,
|
安全 网络协议
SIP 协议的主要功能
【8月更文挑战第24天】
884 0
|
Linux 测试技术 数据库
我的SIP开发之路
http://hi.baidu.com/ltlovelty/blog/item/837baf1ece7fc6f11ad57647.html     经过对SIP协议和开源协议栈快半年的研究,我现在终于有点入门了。
4212 0
|
Java API Maven
【开源视频联动物联网平台】JAIN-SIP库写一个SIP服务器
【开源视频联动物联网平台】JAIN-SIP库写一个SIP服务器
1171 0
|
存储 安全 数据管理
什么是IMS(IP多媒体子系统)
IMS的全称是IP多媒体子系统(IP Multimedia Subsystem),它是一个基于IP网提供语音及多媒体业务的网络体系架构。它最初是由3G标准化组织3GPP设计的,作为其GSM之后的未来移动网络远景目标的一部分。IMS的最初的版本(3GPP R5)主要是给出了一种基于GPRS来实现IP多媒体业务的方法。在这个版本的基础上,3GPP、3GPP2以及TISPAN进行了进一步的更新,以支持GPRS之外的(诸如 WLAN、CDMA2000 和固定等)其他接入网络。从目前来看,IMS是独立于接入网技术的,尽管它与底层传输功能有着很多联系。
5824 0
什么是IMS(IP多媒体子系统)