SIP协议概述

简介: SIP协议的 全称是session-initialization-protocol,也就是会话发起协议。此篇文章以学习的方式记录下sip协议的相关内容

以tcp/ip参考模型为例,sip是在应用层中

一、为什么会出现SIP协议?

随着多媒体技术和网络技术的发展,越来越多网络视频监控应用应运而生,人们对视频监控系统的要求也越来越高。另外Internet上有很多的应用都需要建立和管理一个会话,会话指的是数据的交换,根据实际情况来说,实现起来是非常复杂的,例如,他们传递的数据可能有多种(文本、语音、图片、视频)。在这种情况下,sip的出现很好的解决了上面的问题,SIP允许创建基础的network hosts(叫做代理服务器),并且允许终端用户注册上去,发出会话邀请,或者发出其他请求。SIP是一个轻形的,多用途的工具,可以用来创建,修改和终止会话,它独立运作于通讯协议之下,并且不依赖建立的会话类型。

二、SIP协议的功能

SIP是一个应用层的控制协议,可以用来建立、修改、和终止多媒体会话(或者会议)例如Internet 电话。SIP也可以邀请参与者参加已经存在的会话,比如多方会议。媒体可以在一个已经存在的会话中方便的增加(或者删除)。SIP显示的支持名字映射和重定向服务,这个用于支持个人移动业务-用户可以使用一个唯一的外部标志而不用关系他们的实际网络地点。SIP在建立和维持终止多媒体会话协议上,有5个主要功能:
1) 用户定位: 确定被叫SIP终端所在的位置。SIP的最强大之处就是用户定位功能。。
2) 用户有效性:检查用户参与会话的意愿程度。
3) 用户能力:检查媒体和媒体的参数。
4) 建立会话:建立主被叫双方的会话参数。SIP会话双方通过协商媒体类型和媒体参数,最终选择双方都具有的能力建立起会话
5) 会话管理:包括发送和终止会话,修改会话参数,激活服务等等。

三、SIP协议的详细过程

image.png

(1)主叫A发送invite请求到代理服务器
(2)代理服务器返回100Trying响应
(3)代理服务器搜索被叫B的地址,获取到后转发接收到的invite请求
(4)被叫B生成180的振铃响应,返回给主叫A
(5)被叫B生成200 ok响应返回给主叫A
(6)主叫A收到B的200 ok响应后,向被叫B发送ACK确认,会话建立
(7)会话结束后,任何参与者(A或者B)可以发送一个BYE请求来终止会话
(8)另一方收到BYE,发送200 ok,会话终止

参考文档

SIP协议详解

目录
相关文章
|
网络协议 应用服务中间件 网络性能优化
SIP协议是什么?
1,SIP是类似于HTTP的基于文本的协议。 2,SIP可以减少应用特别是高级应用的开发时间。由于基于IP协议的SIP利用了IP网络,有关系统方面问题请找博主,看他名字一起交流学习。固定网运营商也会逐渐认识到SIP技术对于他们的深远意义 SIP(SessionInitiationProtocol,会话发起协议)是由IETF推出的一种用于建立、修改和终止多媒体会话的应用层控制协议。这些多媒体会话包括Internet多媒体会议、远程教育、Internet电话等。SIP侧重于将SIP网络电话作为互联网上的一个应用,所以SIP继承了互联网协议简单、开放、灵活的特点,既保证了对用户和会话的可管理性,
|
编解码 网络协议 Unix
SIP协议&开源SIP服务器搭建和客户端安装
1. SIP SIP 是一个应用层的控制协议,可以用来建立,修改,和终止多媒体会话,例如Internet电话 SIP在建立和维持终止多媒体会话协议上,支持五个方面: 1)   用户定位: 检查终端用户的位置,用于通讯。
17619 0
|
安全 网络协议
SIP 协议的主要功能
【8月更文挑战第24天】
598 0
|
3月前
|
JSON 运维 网络协议
做短信接口时,http接口和cmpp接口怎么选?
本文介绍了短信接口中HTTP与CMPP协议的区别及适用场景,帮助开发者根据业务需求选择合适的接口类型。
331 1
|
8月前
|
人工智能 API
新用户100万token免费额度!阿里云上线DeepSeek-R1满血版
阿里云推出DeepSeek-R1满血版,新用户可享100万免费Token额度。平台支持多种模型,包括671B参数的DeepSeek-R1和通义千问。结合开源工具Chatbox,用户能轻松对接API,体验高性能AI服务。访问[阿里云解决方案](https://www.aliyun.com/solution/tech-solution/deepseek-r1-for-platforms?utm_content=g_1000401616)了解更多详情并快速上手。
4790 36
|
JSON Java Maven
几个适合Java开发者的免费IDEA插件
【7月更文挑战第15天】以下是适合Java开发者的免费IDEA插件: - **Test Data**: 生成用于单元测试的随机数据,支持多种格式如JSON、CSV等。 - **SonarLint**: 实时检测并修正代码质量问题,提供详细的风险分析。 - **Maven Helper**: 提供pom.xml文件的UI界面,便于管理Maven项目依赖。 - **RestFulTool**: 辅助RESTful服务开发与测试,尤其适合Spring MVC和Spring Boot项目。 - **EnvFile**: 在IDE内部设置运行配置的环境变量,支持YAML、JSON等格式。
366 2
|
机器学习/深度学习 编解码 算法
AIGC生图的自动化质量评估(1)
AIGC生图的自动化质量评估
624 6
|
Java 开发工具 git
【Python】已解决:ERROR: No matching distribution found for JPype1
【Python】已解决:ERROR: No matching distribution found for JPype1
827 0
|
弹性计算 API Python
阿里云百炼应用之流程编排
阿里云通义百炼平台流程编排使用教程。
955 2
|
安全 Java API
SpringBoot 实现 elasticsearch 索引操作(RestHighLevelClient 的应用)
SpringBoot 实现 elasticsearch 索引操作(RestHighLevelClient 的应用)
295 1
下一篇
oss教程