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)   用户定位: 检查终端用户的位置,用于通讯。
18146 0
|
XML 缓存 前端开发
Thymeleaf一篇就够了
Thymeleaf是Springboot官方支持的模板引擎,有着动静分离等独有特点,通过本文简单学习下吧!
64095 24
Thymeleaf一篇就够了
|
存储 监控 算法
详解SIP服务器用来做什么的
什么是SIP服务器? SIP服务器是IPPBX的主要组成部分,主要处理网络中所有SIP呼叫的管理。SIP服务器也称为SIP代理或注册器。SIP是SIP服务器的主要组件,负责建立网络中所有的SIP电话通话。SIP服务器也叫SIP代理服务器或注册服务器。
4223 0
详解SIP服务器用来做什么的
|
9月前
|
存储 安全 数据安全/隐私保护
HFS-快速创建HTTP服务器
鉴于HFS的操作简便和方便快捷,它在满足快速,临时的文件分享和传输需求上,能够发挥出巨大的作用。只要明确了以上的安全警告,并做好了必需的安全设置,HFS将是一款实用的HTTP服务器工具。
1084 9
|
11月前
|
人工智能 自然语言处理 安全
详解:Claude 3.7 Sonnet 国内使用指南_claude使用教程
Claude 3.7在对话理解和生成能力上都进行了显著的提升
7118 14
|
安全 网络协议
SIP 协议的主要功能
【8月更文挑战第24天】
822 0
|
Linux 测试技术 数据库
我的SIP开发之路
http://hi.baidu.com/ltlovelty/blog/item/837baf1ece7fc6f11ad57647.html     经过对SIP协议和开源协议栈快半年的研究,我现在终于有点入门了。
4175 0
|
消息中间件 监控 Java
Kafka性能调优:高吞吐、低延迟的数据流
Apache Kafka作为一种高性能、分布式流处理平台,对于实时数据的处理至关重要。本文将深入讨论Kafka性能调优的关键策略和技术,通过丰富的示例代码为大家提供实际操作指南,以构建高吞吐、低延迟的数据流系统。