SIP开发手册-协议详解
- 格式:pdf
- 大小:815.76 KB
- 文档页数:19
SIP协议呼叫流程及协议分析SIP(Session Initiation Protocol)是一种用于建立、修改和终止多媒体会话的协议。
它在互联网通信中发挥着重要的作用,特别是在VoIP(Voice over Internet Protocol)中。
本文将详细介绍SIP协议的呼叫流程以及对协议的分析。
一、SIP协议呼叫流程1. 注册阶段:在SIP协议中,用户设备需要先进行注册,以便在网络中被识别和定位。
注册流程如下:- 用户设备发送REGISTER消息到SIP服务器,包含用户的身份信息和位置信息。
- SIP服务器接收到REGISTER消息后,将用户的信息记录在注册表中,并返回200 OK响应,表示注册成功。
2. 呼叫建立阶段:在完成注册后,用户可以发起呼叫请求。
呼叫建立流程如下:- 主叫用户设备发送INVITE消息到SIP服务器,包含被叫用户的地址信息和媒体协商信息。
- SIP服务器接收到INVITE消息后,查询被叫用户的位置信息,并将INVITE消息转发给被叫用户设备。
- 被叫用户设备接收到INVITE消息后,发送100 Trying响应给SIP服务器,表示正在处理呼叫请求。
- 被叫用户设备根据媒体协商信息,生成对应的SDP(Session Description Protocol)消息,并将200 OK响应发送给SIP服务器。
- SIP服务器将200 OK响应转发给主叫用户设备。
- 主叫用户设备接收到200 OK响应后,发送ACK消息给SIP服务器,表示呼叫建立成功。
3. 呼叫传输阶段:在呼叫建立成功后,主叫和被叫用户之间可以进行音视频传输。
呼叫传输流程如下:- 主叫用户设备根据SDP消息中的媒体协商信息,建立音视频传输通道。
- 主叫用户设备将音视频数据打包成RTP(Real-time Transport Protocol)数据包,并通过网络发送给被叫用户设备。
- 被叫用户设备接收到RTP数据包后,解析数据并播放音视频。
20 头域头域的语法描述在7.3节。
本节列出了头域的全部列表,包括了语法注释,含义,和用法。
通过本节,我们使用[HX.Y]指当前HTTP/1.1 的RFC2616[8]的规范的X.Y节。
每个头域都有示例给出。
关于与方法和proxy处理有关的头域字段在表2和表3中有处理。
“where”列描述了在头域中能够使用的请求和应答的类型。
这列的值是:R:头域只能在请求中出现;r:头域只能在应答中出现;2xx,4xx,等等:一个数字的值区间表示头域能够使用的应答代码。
c:头域是从请求拷贝到应答的。
如果”where”栏目是空白,表示头域可以在所有的请求和应答中出现。
“proxy”列描述了proxy在头域上的操作a:如果头域不存在,proxy可以增加或者连接头域m:proxy可以修改现存的头域值d:proxy可以删除头域值r:proxy必须能读取这个头域,因此这个头域不能加密。
接下来6个栏目与在某一个方法中出现的头域有关:c:条件;对头域的要求依赖于消息的内容m:头域是强制要有的。
m*:头域应当被发送,但是客户端/服务端都需要准备接收没有这个头域的消息。
o:头域是可选的。
t:头域应当被发送,但是客户端/服务端都需要准备接收没有这个头域的消息。
客户端/服务端都需要准备接收没有这个头域的消息。
如果通讯的协议是基于面向流的协议(比如TCP),那么头域值必须被发送。
*:如果消息体不为空,那么头域值就绪要的。
(细节请参见20.14,20.15和7.4节)-:这个头域是不适用的。
“Optional”意味着这个元素可以在请求或者应答中包含这个头域,并且UA可以忽略在请求或者应答中存在的这个头域(这条规则有一个例外,就是Require头域,在20.32节有描述)。
”mandatory”(强制)头域是必须在请求中存在的头域,并且也必须是UAS 接收到一个请求时能够理解的头域。
一个强制头域必须也在应答中出现,并且UAC也能处理这个头域。
SIP协议主要消息协议名称:SIP协议主要消息协议版本:1.0生效日期:[协议生效日期]修订日期:[协议修订日期]1. 引言本协议旨在定义SIP(会话初始化协议)的主要消息。
SIP是一种应用层控制协议,用于建立、修改和终止多媒体会话,如语音通话、视频通话和即时消息。
本协议详细描述了SIP协议的主要消息类型、消息格式和消息交互过程。
2. 术语和定义以下术语和定义适用于本协议:- SIP(会话初始化协议):一种应用层控制协议,用于建立、修改和终止多媒体会话。
- 消息:SIP协议中的基本通信单元,用于在用户代理之间传递信息。
- 请求:SIP协议中的一种消息类型,用于请求执行某种动作。
- 响应:SIP协议中的一种消息类型,用于回复请求的执行结果。
- URI(统一资源标识符):用于标识资源的字符串,包含协议方案、主机名和路径等信息。
3. 主要消息类型本协议定义了以下主要消息类型:- INVITE:用于建立会话。
- ACK:用于确认接收到INVITE请求。
- BYE:用于终止会话。
- OPTIONS:用于查询对方支持的功能。
- REGISTER:用于注册用户位置信息。
- CANCEL:用于取消尚未完成的请求。
- INFO:用于传递会话相关的信息。
- PRACK:用于确认接收到可靠的临时响应。
4. 消息格式4.1 请求消息格式SIP的请求消息格式如下:- 请求行:包含请求方法、URI和SIP协议版本。
- 头部字段:包含请求相关的各种头部字段,如From、To、Call-ID、CSeq等。
- 实体主体:可选,用于传递请求的实体主体。
4.2 响应消息格式SIP的响应消息格式如下:- 状态行:包含SIP协议版本、状态码和原因短语。
- 头部字段:包含响应相关的各种头部字段,如From、To、Call-ID、CSeq等。
- 实体主体:可选,用于传递响应的实体主体。
5. 消息交互过程5.1 INVITE消息交互过程1. 主叫方发送INVITE请求给被叫方。
SIP协议学习总结1、SIP协议定义SIP(Session Initiation Protocol,即初始会话协议)是IETF提出的基于文本编码的IP电话/多媒体会议协议。
用于建立、修改并终止多媒体会话。
SIP 协议可用于发起会话,也可以用于邀请成员加入已经用其它方式建立的会话。
多媒体会话可以是点到点的话音通信或视频通信,也可以是多点参与的话音或视频会议等。
SIP协议透明地支持名字映射和重定向服务,便于实现ISDN,智能网以及个人移动业务。
SIP协议可以用多点控制单元(MCU)或全互连的方式代替组播发起多方呼叫。
与PSTN相连的IP电话网关也可以用SIP协议来建立普通电话用户之间的呼叫。
SIP协议在IETF多媒体数据及控制体系协议栈结构的位置H.323SIP RTSP RSVP RTCPH.263 etc.RTP TCP UDPIPPPP Sonet AAL3/4AAL5ATM EthernetPPPV.34SIP协议支持多媒体通信的五个方面:◆用户定位:确定用于通信的终端系统;◆用户能力:确定通信媒体和媒体的使用参数;◆用户有效性:确定被叫加入通信的意愿;◆会话建立:建立主叫和被叫的呼叫参数;◆会话管理:包括呼叫转移和呼叫终止;SIP协议的结构SIP是一个分层的协议,也就是说SIP协议由一组相当无关的处理层次组成,这些层次之间只有松散的关系。
SIP最底层的是它的语法和编码层。
编码方式是采用扩展的Backus-Naur Form grammar (BNF范式)。
第二层是传输层。
它定义了一个客户端发送请求和接收应答的方式,以及一个服务器接收请求和发送应答的方式。
所有的SIP要素都包含一个通讯层。
第三层是事务层。
事务是SIP的基本组成部分。
一个事务是UAC向UAS发送的一个请求以及UAS向UAC发送的一系列应答。
事务层处理应用服务层的重发,匹配请求的应答,以及应用服务层的超时。
任何一个用户代理客户端完成的事情都是由一组事务构成的。
SIP协议呼叫流程及协议分析一、引言本协议旨在详细描述SIP(Session Initiation Protocol,会话发起协议)的呼叫流程,并对其协议进行分析。
SIP是一种用于建立、修改和终止多媒体会话的应用层协议。
通过本协议,我们将深入了解SIP协议的工作原理和呼叫流程,以及对其协议进行分析,以便更好地理解和应用该协议。
二、SIP协议概述SIP是一种基于文本的协议,采用请求/响应模型,用于在IP网络上建立、修改和终止会话。
它支持语音、视频、即时消息等多媒体通信,并具有灵活性和可扩展性。
SIP协议由请求和响应组成,请求由客户端发起,响应由服务器返回。
常见的SIP请求包括INVITE(邀请)、ACK(确认)、BYE(结束)等。
三、SIP协议呼叫流程1. 呼叫前准备阶段在呼叫前,主叫方和被叫方需要先进行一些准备工作。
主叫方需要获取被叫方的SIP地址(如SIP URI),并通过DNS服务器解析获取被叫方的IP地址。
主叫方还需要选择合适的媒体编解码器和传输协议。
被叫方需要启动SIP服务,监听SIP请求。
2. 呼叫建立阶段主叫方通过发送INVITE请求向被叫方发起呼叫。
INVITE请求中包含了主叫方的SIP地址、媒体协商信息等。
被叫方收到INVITE请求后,通过发送100 Trying响应告知主叫方已收到请求。
被叫方可以选择接受呼叫、拒绝呼叫或转发呼叫给其他用户。
如果被叫方接受呼叫,将发送180 Ringing响应给主叫方。
3. 媒体协商阶段一旦被叫方接受呼叫,主叫方和被叫方开始进行媒体协商。
媒体协商包括选择媒体编解码器、传输协议、媒体属性等。
主叫方和被叫方通过SDP(Session Description Protocol,会话描述协议)交换媒体协商信息。
双方根据SDP中的信息选择合适的媒体参数。
4. 呼叫确认阶段被叫方在完成媒体协商后,发送200 OK响应给主叫方,表示呼叫已确认。
主叫方收到200 OK响应后,发送ACK请求给被叫方,表示收到确认。
sip协议详细分析与实现SIPSIP(Session IniTIaTIon Protocol)是一个应用层的信令控制协议。
用于创建、修改和释放一个或多个参与者的会话。
这些会话可以是Internet多媒体会议、IP电话或多媒体分发。
会话的参与者可以通过组播(mulTIcast)、网状单播(unicast)或两者的混合体进行通信。
SIP与负责语音质量的资源预留协议(RSVP)互操作。
它还与若干个其他协议进行协作,包括负责定位的轻型目录访问协议(LDAP)、负责身份验证的远程身份验证拨入用户服务(RADIUS)以及负责实时传输的RTP 等多个协议。
SIP 的一个重要特点是它不定义要建立的会话的类型,而只定义应该如何管理会话。
有了这种灵活性,也就意味着SIP可以用于众多应用和服务中,包括交互式游戏、音乐和视频点播以及语音、视频和Web 会议。
SIP消息是基于文本的,因而易于读取和调试。
新服务的编程更加简单,对于设计人员而言更加直观。
SIP如同电子邮件客户机一样重用MIME 类型描述,因此与会话相关的应用程序可以自动启动。
SIP 重用几个现有的比较成熟的Internet 服务和协议,如DNS、RTP、RSVP 等。
不必再引入新服务对SIP 基础设施提供支持,因为该基础设施很多部分已经到位或现成可用。
对SIP 的扩充易于定义,可由服务提供商在新的应用中添加,不会损坏网络。
网络中基于SIP 的旧设备不会妨碍基于SIP 的新服务。
例如,如果旧SIP 实施不支持新的SIP 应用所用的方法/标头,则会将其忽略。
SIP 独立于传输层。
因此,底层传输可以是采用ATM 的IP。
SIP 使用用户数据报协议(UDP)以及传输控制协议(TCP),将独立于底层基础设施的用户灵活地连接起来。
SIP 支持多设备功能调整和协商。
如果服务或会话启动了视频和语音,则仍然可以将语音传输到不支持视频的设备,也可以使用其他设备功能,如单向视频流传输功能。
SIP协议栈协议名称:SIP协议栈协议1. 引言本协议旨在定义SIP(Session Initiation Protocol)协议栈的标准格式,以确保在网络通信中的一致性和互操作性。
SIP协议栈用于建立、修改和终止实时会话,如语音通话、视频通话和即时消息等。
本协议详细描述了SIP协议栈的功能、消息格式、状态码、头部字段和相关行为规范。
2. 范围本协议适用于所有使用SIP协议栈进行通信的实体,包括但不限于软件应用、硬件设备和网络服务器。
3. 术语定义在本协议中,以下术语的定义适用于整个文档:- SIP(Session Initiation Protocol):一种用于建立、修改和终止实时会话的应用层协议。
- SIP协议栈:实现了SIP协议的软件或硬件组件。
- 实体:使用SIP协议栈进行通信的软件应用、硬件设备或网络服务器。
- 消息:SIP协议中的请求或响应。
- 头部字段:SIP协议消息中的元数据,用于传递关键信息。
- 状态码:SIP协议中的数字代码,用于表示请求的处理状态。
4. 功能SIP协议栈应具备以下功能:4.1. 支持SIP协议的解析和封装。
4.2. 能够处理SIP请求和响应消息。
4.3. 能够解析和生成SIP头部字段。
4.4. 支持SIP会话的建立、修改和终止。
4.5. 支持SIP的身份验证和安全机制。
4.6. 能够处理SIP代理、用户代理和注册器等不同角色的功能。
4.7. 支持SIP消息的路由和转发。
4.8. 能够处理SIP会话的状态管理和保持。
4.9. 支持SIP的媒体协商和传输。
4.10. 支持SIP消息的重传和超时处理。
5. 消息格式5.1. 请求消息格式SIP协议栈应支持以下请求消息格式:- 请求行:包括请求方法、请求URI和SIP协议版本。
- 头部字段:包括To、From、Call-ID、CSeq、Max-Forwards等必需字段,以及可选的其他头部字段。
- 消息体:可选,用于传递消息内容。
1.SIP1.1.1.SIP格式每条SIP消息由以下三部分组成:(1)起始行(Start Line):每个SIP消息由起始行开始。
起始行传达消息类型(在请求中是方法类型,在响应中是响应代码)与协议版本。
起始行可以是一请求行(请求)或状态行(响应)。
(2)SIP头:用来传递消息属性和修改消息意义。
它们在语法和语义上与HTTP头域相同(实际上有些头就是借自HTTP),并且总是保持格式:<名字>:<值>。
(3)消息体:用于描述被初始的会话(例如,在多媒体会话中包括音频和视频编码类型,采样率等)。
消息体能够显示在请求与响应中。
SIP清晰区别了在SIP起始行和头中传递的信令信息与在SIP 范围之外的会话描述信息。
可能的体类型就包括本文将要描述的SDP会话描述协议。
1.1.2.消息头Header field where proxy ACK BYE CAN INV OPT REG Accept R - o - o m* o Accept 2xx - - - o m* o Accept 415 - c - c c c Accept-Encoding R - o - o o o Accept-Encoding 2xx - - - o m* o Accept-Encoding 415 - c - c c c Accept-Language R - o - o o o“where”列描述了在头域中能够使用的请求和应答的类型。
这列的值是:R:头域只能在请求中出现;r:头域只能在应答中出现;2xx,4xx,等等:一个数字的值区间表示头域能够使用的应答代码。
c:头域是从请求拷贝到应答的。
如果”where”栏目是空白,表示头域可以在所有的请求和应答中出现。
“proxy”列描述了proxy在头域上的操作a:如果头域不存在,proxy可以增加或者连接头域m:proxy可以修改现存的头域值d:proxy可以删除头域值r:proxy必须能读取这个头域,因此这个头域不能加密。
sip协议简单解释引言节省费用以及想把语音和数据融合在一起的需求,促使了IP电话的蓬勃发展。
为了使IP电话为大众所接受,成为主流,甚至最终取代传统的POTS(Plain Old T elephone Service旧式电话服务),有两个条件必须满足:第一,话音通信的质量至少要达到POTS同样的水准;第二,必须有信令的支持,就像PSTN(Pubic Switched Telephone Networks)公用交换电话网)中有No.7信令一样。
目前,IP电话系统有H.323和SIP两个完整和独立的信令标准,它们都对IP电话系统信令提出了完整的解决方案。
它们对呼叫的连接都具有建立、管理和撤销的能力,具有网络管理功能,使端点用户具有进行建立和交互QoS(Quality of Service)的能力,且容易扩充新功能,支持不同类型的互操作性。
当然,这两个协议都包含关于语音编码的解压缩方面的要求,只是这部分对两个协议而言是一样的。
我们主要是从信令的角度对它们进行比较分析。
2 H.323简介H.323是ITU-T第16工作组的建议,H.323由一组协议构成,其中有负责音频与视频信号的编码、解码和包装,有负责呼叫信令收发和控制的信令,还有负责能力交换的信令。
1999年7月前,多数已实现的系统是基于H.323第二版的,而在此之后,H.323第三版开始应用。
2.1通信系统H.323定义了4个主要部件构筑基于网络的通信系统:终端Terminals 、网关Gateways 、网守Gatekeepers 、多点控制单元(MCU)。
1终端在基于IP的网络上是一个客户端点。
它需要支持下面3项功能:支持信令和控制,即支持H.245(有关通道使用和通道能力的复杂协议)和H.225(一个类似Q.931的呼叫信令收发和建立协议)以及RAS(定义在H.225用于终端与网守通信协议);支持实时通信,即支持RTP/RTCP(一个对声频和视频信息包顺序处理的协议);支持编码,即传前压缩,收后进行解压缩。
SIP协议SIP(Session Initiation Protocol,会话发起协议)是VoIP(Voice over Internet Protocol,IP语⾳)技术中最常⽤的协议之⼀。
它是⼀种应⽤层协议,与其他应⽤层协议⼀起⼯作,控制Internet上的多媒体通信会话。
1. VoIP技术在进⼀步讨论之前,我们先了解⼀下VoIP。
能够通过因特⽹传输语⾳和视频电话的系统被称为VoIP或商务电话系统。
VoIP本⾝不是⼀种协议。
相反,它是所有使⽤IP传输语⾳和视频信息的技术的总称。
VoIP的主要内涵如下:VoIP是⼀种允许您通过Internet传递语⾳和多媒体(视频、图⽚)内容的技术。
这是⼀种随时随地都可以使⽤互联⽹的最廉价的通信⽅式。
VoIP的优势包括:低成本便捷(可移植性强)灵活⽀持视频会议不需要额外电缆对于⼀个VoIP电话,所需要的只是⼀台连接互联⽹的电脑/笔记本电脑/⼿机。
VoIP呼叫过程如图1所⽰。
图1:VoIP电话⼯作过程2. SIP协议1)SIP协议位置SIP是⼀种应⽤层协议,是因特⽹上现代交互通信(语⾳通话、视频通话等)的基础。
在OSI模型中所处第7层位置,具体如图2所⽰。
图2:SIP处OSI模型第7层位置2)SIP协议功能SIP是⼀种与媒体⽆关的协议——它不是语⾳,不是视频,也不是数据——它可以是任何东西。
虽然它主要应⽤于VoIP,但它不是⼀个VoIP协议。
SIP只是发起和终⽌IP通信会话,该会话可以是两⼈之间的语⾳通话,也可以是团队之间的视频会议。
它通过在两个或多个已识别的IP端点(也称为SIP地址)之间发送消息(以数据包的形式)来建⽴会话。
每个SIP地址都连接到⼀个物理SIP客户端(如IP桌上电话)或⼀个软件客户端(如软电话)。
图3描述了SIP会话的初始细节。
INVITE是⼀个SIP消息,⽤于请求来⾃另⼀个SIP客户机的参与。
类似于电⼦邮件地址的⽂本块是参与者的SIP地址。
SIP协议呼叫流程及协议分析一、引言本文旨在详细介绍SIP(Session Initiation Protocol)协议的呼叫流程,并进行协议分析。
SIP是一种应用层协议,用于建立、修改和终止多媒体会话,如音频和视频通话。
它是一种灵活的协议,被广泛应用于VoIP(Voice over Internet Protocol)和实时通信系统。
二、SIP协议概述SIP协议基于文本,使用类似HTTP的请求-响应模式进行通信。
它使用统一资源标识符(URI)来标识参与会话的用户和终端设备。
SIP协议的核心功能包括会话的建立、修改和终止,以及与会话相关的功能,如呼叫转移和会议。
三、SIP协议呼叫流程1. 注册过程- 用户设备向SIP服务器发送REGISTER请求,包含用户的SIP URI和认证信息。
- SIP服务器验证用户身份,并将用户的SIP URI映射到一个或多个联系地址。
- SIP服务器返回REGISTER响应,包含联系地址和过期时间。
- 用户设备定期发送REGISTER请求以保持注册状态。
2. 呼叫建立过程- 主叫用户设备向SIP服务器发送INVITE请求,包含被叫用户的SIP URI。
- SIP服务器根据被叫用户的SIP URI查找其联系地址。
- SIP服务器向被叫用户设备发送INVITE请求。
- 被叫用户设备接收INVITE请求,并向SIP服务器发送RINGING响应。
- SIP服务器将RINGING响应转发给主叫用户设备。
- 被叫用户设备接听通话后,向SIP服务器发送OK响应。
- SIP服务器将OK响应转发给主叫用户设备。
3. 呼叫修改过程- 在呼叫建立后,主叫用户设备可以发送UPDATE请求来修改呼叫参数。
- SIP服务器将UPDATE请求转发给被叫用户设备。
- 被叫用户设备接收UPDATE请求,并向SIP服务器发送OK响应。
- SIP服务器将OK响应转发给主叫用户设备。
4. 呼叫终止过程- 任一用户设备可以发送BYE请求来终止呼叫。
简述SIP协议学院信息技术工程学院班级 09级通信一班姓名 XXX学号 200909XXXX简述SIP协议摘要:SIP协议是NGN(下一代网络)中的重要协议,越来越得到业界的重视。
本文通过SIP协议的背景、特点优势、应用领域、以及未来的发展等几个方面对SIP协议做了简要的概述。
关键词:SIP、多媒体、NGN、会话、可扩展性一、SIP协议的简介SIP协议(会话发起协议)最初是IETF针对在IP网上建立多媒体会话业务而制定的一组协议中的一个, SIP经过扩展后可以在更多的媒体应用中使用,如即时通讯、网络游戏、邮件或其他事件的通知等。
SIP是一个基于文本的应用层控制协议,独立于底层传输协议TCP/UDP/SCTP,用于建立、修改和终止IP网上的双方或多方多媒体会话。
SIP协议的主要特点:(1)最少状态:呼叫过程中代理服务器可以采用无状态方式工作。
(2)低层协议无关性:低层协议可以为SIP协议层提供可靠或非可靠业务。
Internet环境下首选UDP协议,当不能使用UDP协议时,使用TCP协议。
(3)基于文本:采用基于文本的UTF-8编码方式和ISO 10646字符集。
(4)可扩展性:分层编码方式编状态码。
可以根据情况忽略或引入头域,用户可以指示服务器必须理解的消息内容。
(5)易于支持IN业务:能够支持绝大多数ITU—T的Capability Set 1和 Capability Set 2中的业务。
二、SIP协议的历史背景SIP 出现于二十世纪九十年代中期,源于哥伦比亚大学计算机系副教授Henning Schulzrinne 及其研究小组的研究。
Schulzrinne 教授除与人共同提出通过 Internet 传输实时数据的实时传输协议(RTP) 外,还与人合作编写了实时流传输协议 (RTSP) 标准提案,用于控制音频视频内容在 Web 上的流传输。
Schulzrinne 本来打算编写多方多媒体会话控制 (MMUSIC) 标准。
目录目录第3章 SIP协议........................................................................................................................ 3-13.1 概述.................................................................................................................................... 3-13.1.1 基本概念.................................................................................................................. 3-13.1.2 相关术语.................................................................................................................. 3-23.1.3 协议栈结构 .............................................................................................................. 3-53.1.4 SIP协议的应用........................................................................................................ 3-63.2 协议消息............................................................................................................................. 3-63.2.1 消息类型.................................................................................................................. 3-63.2.2 消息结构.................................................................................................................. 3-93.3 基本消息流程 ................................................................................................................... 3-233.3.1 SIP用户注册流程.................................................................................................. 3-233.3.2 成功的SIP用户呼叫流程 ...................................................................................... 3-263.3.3 成功的SIP中继呼叫流程 ...................................................................................... 3-343.3.4 成功的SIP-T中继呼叫流程................................................................................... 3-37第3章 SIP协议3.1 概述3.1.1 基本概念会话启动协议SIP(Session Initiation Protocol)是由IETF提出并主持研究的一个在IP网络上进行多媒体通信的应用层控制协议,它被用来创建、修改、和终结一个或多个参加者参加的会话进程。