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继承了互联网协议简单、开放、灵活的特点,既保证了对用户和会话的可管理性,
|
存储 编解码 网络协议
SIP极简教程
SIP运行在我们熟知的TCP和UDP协议之上,既可以使用TCP协议通信也可以通过UDP协议通信。SIP是对等协议,一个端既是客户端又是服务端。
2051 1
SIP极简教程
|
存储 监控 算法
详解SIP服务器用来做什么的
什么是SIP服务器? SIP服务器是IPPBX的主要组成部分,主要处理网络中所有SIP呼叫的管理。SIP服务器也称为SIP代理或注册器。SIP是SIP服务器的主要组件,负责建立网络中所有的SIP电话通话。SIP服务器也叫SIP代理服务器或注册服务器。
4695 0
详解SIP服务器用来做什么的
|
存储 缓存 网络协议
freeswitch使用说明
freeswitch使用说明
freeswitch使用说明
|
容器 Kubernetes API
深入解析 Kubebuilder:让编写 CRD 变得更简单
作者 | 刘洋(炎寻) 阿里云高级开发工程师 导读:自定义资源 CRD(Custom Resource Definition)可以扩展 Kubernetes API,掌握 CRD 是成为 Kubernetes 高级玩家的必备技能,本文将介绍 CRD 和 Controller 的概念,并对 CRD 编写框架 Kubebuilder 进行深入分析,让您真正理解并能快速开发 CRD。
13630 3
|
人工智能 自然语言处理 Kubernetes
「我的AIGC咒语库:分享和AI对话交流的秘诀——如何利用Prompt和AI进行高效交流?」1
前言 基础介绍 什么是Prompt? 什么是 Prompt Engineering? 为什么需要 Prompt Engineering? 如何进行 Prompt Engineering? Prompt的基本原则 Prompt的编写模式 AI 可以帮助程序员做什么? 技术知识总结 拆解任务 阅读代码/优化代码 代码生成 生成单测 更多 AI 应用/插件
2536 1
|
监控 安全 网络安全
|
Kubernetes 网络性能优化 调度
Kubernetes Resource QoS Classes介绍
基本概念 Kubernetes根据Pod中Containers Resource的request和limit的值来定义Pod的QoS Class。其中,指定容器request,代表系统确保能够提供的资源下限值。
3162 0