SIP协议对比栈结构逻辑实体消息等
SIP协议概述.
Location Server DNS
Server
DNS or ?
Redirect Server
SIP
User Agent A
SIP Media (RTP)
User Agent B
严格来说并不属于sip网络中的功能实 体
为SIP 重定向服务器(Redirect Server) 或代理服务器(proxy server) 提供被叫 用户的位置信息,其功能只是相当于数 据库的概念。
User Agent B
将请求中的目的地址映射为零个或多个新 的地址,然后返回给客户端
客户端直接再次向这些新的地址发起请求 它并不接收或者拒绝呼叫 他的功能其实类似于DNS 与注册过程配合可以支持SIP终端的移动
性
SIP协议的逻辑体系结构-Location Server(位置服务器)
通信技术专业教学资源库 深圳职业技术学院
《SOFTX3000产品培训》课程
SIP协议概述
o
主讲: 杨柳
课程团队: 杨柳 王永学 成敏娟
目录
1 SIP协议的概念 2 SIP协议的功能 3 SIP 协议的逻辑体系结构 4 SIP 协议栈
目录
1 SIP协议的概念 2 SIP协议的功能 3 SIP 协议的逻辑体系结构 4 SIP 协议栈
需要将注册请求中的地址映射关系保
SIP
存到数据库中,供后续的相关呼叫过 程使用
可以提供定位服务
目录
1 SIP协议的概念 2 SIP协议的功能 3 SIP 协议的逻辑体系结构 4 SIP 协议栈
协议栈
H.323
SIP
TCP
RTetc. RTP
PPP Sonet
SIP协议的研究
Science &Technology Vision科技视界0引言SIP(Session Initiation Protocol 会话初始化协议)是由IETF 于1999年提出的,用于在IP 网络中建立、修改和终止多媒体会话,实现实时通信应用的一种应用层控制协议。
其应用包括语音、视频、游戏、消息、呼叫控制和在线状态等[1]。
在SIP 协议应用中的会话主要包括普通电话呼叫、IP 电话呼叫、Internet 多媒体会话和多媒体分发等。
SIP 协议的设计模式借鉴了HTTP 和SMTP 协议,编码方式基于文本,协议简洁高效并且易于扩展。
它能控制多媒体会议电话的建立和终结,并能协商和动态调整会话参数。
1SIP 协议实体SIP 协议采用客户端/服务器模式。
主要包括四种实体:SIP 用户代理(User Agent,UA)、SIP 注册服务器(Register Server)、SIP 代理服务器(Proxy Server)和SIP 重定向服务器(Redirect Server)[2]。
每种实体在SIP 协议体系结构中起到不同的作用,它们构成的网络服务链,共同支持SIP 建立会话。
位置服务器(Location Server)本身不属于SIP 实体,但是它是任何使用SIP 协议的体系结构中非常重要的一部分。
1.1用户代理SIP 用户代理是用于和用户交互的SIP 实体,包括软电话、硬件实现的SIP 电话、其他计算机应用程序等,它通常有一个和用户连接的接口。
根据SIP 协议,一个UA 按照逻辑功能可以分为用户代理客户端UAC(User Agent Client)和用户代理服务器UAS(User Agent Server)。
在呼叫过程中UAC 和UAS 各有分工,其中UAC 负责创建一个客户端事务并使用它来发起一个新的请求报文,而UAS 则负责对消息进行响应,并生成响应报文,并根据情况创建服务端事务发送响应报文。
SIP协议详解
第3章SIP协议3.1 概述3.1.1 基本概念会话启动协议SIP(Session Initiation Protocol)是由IETF提出并主持研究的一个在IP网络上进行多媒体通信的应用层控制协议,它被用来创建、修改、和终结一个或多个参加者参加的会话进程。
这些会话包括Internet多媒体会议、Internet电话、远程教育以及远程医疗等。
即所有的因特网上交互式两方或多方多媒体通信活动,统称为多媒体会话。
参加会话的成员可以通过组播方式、单播联网方式或者两者结合的方式进行通信。
SIP协议是一个正在发展和不断研究中的协议。
一方面,它借鉴了其他Internet标准和协议的设计思想,在风格上遵循因特网一贯坚持的简练、开放、兼容和可扩展等原则,并充分注意到因特网开放而复杂的网络环境下的安全问题。
另一方面,它也充分考虑了对传统公共电话网的各种业务,包括IN业务和ISDN业务的支持。
利用带有会话描述的SIP邀请消息来创建会话,以使参加者能够通过SIP交互进行媒体类型协商。
它通过代理和重定向请求用户当前位置,以支持用户的移动性。
用户也可以登记它们的当前位置。
SIP协议独立于其他会议控制协议,它在设计上独立于下面的传输层协议,因此可以灵活方便地扩展其他附加功能。
SIP作为一个应用层的多媒体会话信令协议,可以被用来发起一个会话进程、在会话中邀请其他参加者加入会议,会话本身可以通过基于组播协议的会话通告协议(SAP)、电子邮件、网页通告、以及轻量级号薄访问协议(LDAP)等方式预先通告各个可能的参加者。
SIP协议支持别名映射、重定向服务、ISDN和IN业务。
它支持个人移动(personal mobility),即终端用户能够在任何地方、任何时间请求和获得已订购的任何电信业务。
总的来说,会话启动协议能够支持下列五种多媒体通信的信令功能:●用户定位:确定参加通信的终端用户的位置;●用户通信能力协商:确定通信的媒体类型和参数;●用户意愿交互:确定被叫是否乐意参加某个通信;●建立呼叫:包括向被叫“振铃”,确定主叫和被叫的呼叫参数;●呼叫处理和控制:包括呼叫重定向、呼叫转移、终止呼叫等等。
SIP协议深入介绍
SIP协议深入介绍网络事业部软交换开发部王笑蓉1.SIP简介SIP(Session Initiation Protocol)是应用层控制协议,可以创建,修改,以及终止一个多媒体会话。
它具有以下几个主要功能:Userlocation:确定通信中的终端位置availability:确定被叫方是否愿意进行通信Usercapabilities:确定用于通信的媒体类型及参数Usersetup:建立会话各方的会话参数Sessionmanagement:终止会话,修改会话参数SessionSIP协议需要和其他IETF协议一起来构成一个完整的多媒体通信构架。
这些协议有:RTP(Real Time Transport):传输实时数据,提供QoS反馈信息Streamingprotocol):控制流媒体的传送TimeRTSP(RealMEGACO(Media Gateway Control Protocol):控制媒体网关SDP(Session Description Protocol):描述多媒体会话1.1SIP协议结构SIP协议的行为模型可以用几个分层的相对独立处理阶段来描述:1.语法及编码层2.传输层定义了客户端如何通过网络发送请求及接收响应,以及服务器端如何接收请求并发送响应。
所有SIP逻辑实体都包含此层。
3.事务层事务层处理应用层请求或响应消息的重发,响应与请求的匹配以及应用层的超时。
一个SIP事务由一个请求和对该请求的所有响应构成,这些响应分临时响应(provisional response)和最终响应(final response)。
对于INVITE事务,对应于非2xx响应的ACK确认消息也属于该事物,而对应于2xx响应的ACK确认消息则不属于该INVITE事物。
UA以及stateful proxy均包含事务层,而stateless proxy 不包含事务层一个事物根据逻辑功能分为客户事务(client transaction)和服务器事务(server transaction)。
SIP协议主要消息讲解
第一章SIP协议主要消息1.1 SIP消息分类SIP协议是以层协议的形式组成的,就是说它的行为是以一套相对独立的处理阶段来描述的,每个阶段之间的关系不是很密切。
SIP协议将Server和User Agent之间的通讯的消息分为两类:请求消息和响应消息。
请求消息:客户端为了激活特定操作而发给服务器的SIP消息,包括INVITE、ACK、BYE、CANCEL、OPTION和UPDATE消息。
SIP请求的6种方法:1、邀请(INVITE)——邀请用户加入呼叫2、确认(ACK)——确认客户机已经接收到对INVITE的最终响应3、可选项(OPTIONS)——请求关于服务器能力的信息4、再见(BYE)——终止呼叫上的两个用户之间的呼叫5、取消(CANCEL)6、注册(REGISTER)——提供地址解析的映射,让服务器知道其它用户的位置响应消息:服务器向客户反馈对应请求的处理结果的SIP消息,包括1xx、2xx、3xx、4xx、5xx、6xx响应1.2 SIP消息结构请求消息和响应消息都包括SIP消息头字段和SIP消息体字段;SIP消息头主要用来指明本消息是有由谁发起和由谁接受,经过多少跳转等基本信息;SIP消息体主要用来描述本次会话具体实现方式;1.3 消息格式1.3.1 请求消息格式SIP请求消息的格式,由SIP消息头和一组参数行组成,如图1-1所示。
通过换行符区分命令行和每一条参数行。
图1-1 SIP 请求消息结构注意:参数行的顺序不是固定的。
对应的参数解释见错误!未找到引用源。
消息体定义:Call-ID :头字段是用来将消息分组的唯一性标识From :头字段是指示请求发起方的逻辑标识,它可能是用户的注册地址。
From 头字段包含一个URI 和一个可选的显示名称CSeq :头字段用于标识事务并对事务进行排序。
它由一个请求方法和一个序列号组成,请求方法必须与对应的请求消息类型一致Max-Fowords :头字段限定一个请求消息在到达目的地之前允许经过的最大跳数。
sip协议原理分析及总结
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协议主要消息1.1 SIP消息分类SIP协议是以层协议的形式组成的,就是说它的行为是以一套相对独立的处理阶段来描述的,每个阶段之间的关系不是很密切。
SIP协议将Server和User Agent之间的通讯的消息分为两类:请求消息和响应消息。
请求消息:客户端为了激活特定操作而发给服务器的SIP消息,包括INVITE、ACK、BYE、CANCEL、OPTION和UPDATE消息。
SIP请求的6种方法:1、邀请(INVITE)——邀请用户加入呼叫2、确认(ACK)——确认客户机已经接收到对INVITE的最终响应3、可选项(OPTIONS)——请求关于服务器能力的信息4、再见(BYE)——终止呼叫上的两个用户之间的呼叫5、取消(CANCEL)6、注册(REGISTER)——提供地址解析的映射,让服务器知道其它用户的位置响应消息:服务器向客户反馈对应请求的处理结果的SIP消息,包括1xx、2xx、3xx、4xx、5xx、6xx响应1.2 SIP消息结构请求消息和响应消息都包括SIP消息头字段和SIP消息体字段;SIP消息头主要用来指明本消息是有由谁发起和由谁接受,经过多少跳转等基本信息;SIP消息体主要用来描述本次会话具体实现方式;1.3 消息格式1.3.1 请求消息格式SIP请求消息的格式,由SIP消息头和一组参数行组成,如图1-1所示。
通过换行符区分命令行和每一条参数行。
图1-1 SIP 请求消息结构注意:参数行的顺序不是固定的。
对应的参数解释见错误!未找到引用源。
消息体定义:Call-ID :头字段是用来将消息分组的唯一性标识From :头字段是指示请求发起方的逻辑标识,它可能是用户的注册地址。
From 头字段包含一个URI 和一个可选的显示名称CSeq :头字段用于标识事务并对事务进行排序。
它由一个请求方法和一个序列号组成,请求方法必须与对应的请求消息类型一致Max-Fowords :头字段限定一个请求消息在到达目的地之前允许经过的最大跳数。
SIP协议
SIP协议简介SIP(Session Initiation Protocol)是一种用于建立、修改和终止多媒体会话的协议。
它是互联网工程任务组(IETF)定义的一种应用层协议,被广泛应用于语音通话、视频通话、即时消息和多媒体会议等实时通信领域。
SIP协议的主要目标是提供一种灵活、可扩展的机制,用于建立和管理通信会话。
它采用文本格式的消息交换方式,基于请求‑应答模式进行通信。
SIP协议使用统一资源标识符(URI)来标识终端设备和用户,通过SIP消息的交换来实现会话的控制。
SIP协议的设计思想是简单、可扩展和松散耦合。
它允许在不同的网络环境中使用各种传输协议,如UDP、TCP和TLS等。
同时,SIP协议也提供了灵活的会话控制功能,包括呼叫的建立、会话参数的修改和会话的终止。
SIP协议在实时通信领域有着广泛的应用。
它被广泛用于VoIP(Voice over IP)系统,使得用户可以通过互联网进行语音通话。
此外,SIP协议还支持视频通话、实时消息传递和多媒体会议等功能。
它提供了一种开放的架构,允许不同厂商的设备和应用进行互操作。
然而,SIP协议也面临着一些安全性和挑战。
由于SIP协议的开放性和可扩展性,攻击者可能利用其中的漏洞进行恶意攻击。
因此,实施SIP协议时需要采取一些安全措施,如认证、加密和防火墙等,以保护通信的安全和隐私。
总之,SIP协议作为一种用于建立和管理多媒体会话的协议,为实时通信提供了一种灵活、可扩展的机制。
它在VoIP 和其他实时通信应用中发挥着重要的作用,并为用户提供了丰富的通信体验。
然而,为了确保通信的安全性,使用SIP 协议时需要注意相关的安全措施。
SIP协议的工作原理SIP(Session Initiation Protocol)协议是一种基于文本的协议,用于建立、修改和终止多媒体会话。
它采用了简单而灵活的工作原理,使得通信设备能够进行会话的控制和管理。
SIP协议的工作原理可以概括为以下几个步骤:1.定位和寻址:SIP协议使用统一资源标识符(URI)来标识终端设备和用户。
SIP协议介绍(RFC3261)
》由代理服务器并行分发的请求,其Cseq值相同。
20
主要头部字段
Via 》请求消息经过的路径,用于响应的发送。响应和请求必须走相同的路
径。Branch参数用于识别事务。
Max_Forward 》请求的最大转发次数 Contact 》后续请求发送的目的地 Record_Route 》用于标识prxoy,指定后续消息必须经过该proxy Route
17
SIP消息的格式
SIP 消 息= 起 始 行 *消 息 头 部(1 个 或 多 个 头 部) CRLF ( 空 行 ) 〖 消息体〗
18
SIP消息格式
请求的起始行 Request-Line = Method SP Request-URI SP SIP-Version CRLF 响应的起始行 Status-Line = SIP-Version SP Status-Code SP Reason-Phrase CRLF
协收到的协求消息协行协和协理后协协协其他的服协用于存放sip协重定向服协器或proxy提供用协一或者11sip接收sip协求把协求中的原地址映射协零个重定向服协器不协起自己的呼叫不协送协3xx协协行重定向12sipsipproxyserverredirectserverregisterserverserver可共存于一协协也可以分布在不同的物理协sip服协器完全是协协件协协可以根据需要proxyserverredirectserver角色不是固定不协的一个ua叫中可以是uac也可以是uasserver是一个sip协公共协源协信息咨协所采用的协协不是sip而是其lightdirectoryaccessprotoco呼叫和媒控制信息同协协送15sip协送和接收sip消息匹配事协状proxy外每个sip16sip2xx成功3xx重定向6xx全局协协ack用于invite的register注册17sipsip事协包括一协求和其中协包括invite事协协包括invite协求的2xxsipsip协求的起始行requestlinemethodsprequesturispsipversioncrlfsipversionspstatuscodespreasonphrasecrlf20协求的协协接收者totagfromtagcallid特定邀协或注的唯一协协cseq相同的callid协但不同协求方法协部或消息cseq序号invite协求相同bye协求的cseq协协大于invitecseq协相同
几种开源SIP协议栈对比
几种开源SIP协议栈对比开源SIP协议栈是用于实现基于SIP(Session Initiation Protocol,会话初始协议)的通信协议的软件库。
在选择开源SIP协议栈时,需要考虑功能、性能、可扩展性、文档和社区支持等因素。
下面将介绍几种常见的开源SIP协议栈,并对它们进行对比。
1. PJProjectPJProject是一个开源的SIP、音频和视频通信库,可以用于构建VoIP应用程序。
它支持多种平台,如Windows、Linux、iOS等,并且提供了丰富的文档和社区支持。
PJProject具有较好的性能和可扩展性,可以满足大多数VoIP应用的需求。
2. LinphoneLinphone是一个用C语言编写的开源SIP协议栈,可以用于构建VoIP应用程序。
它支持音频和视频通信,并提供了跨平台的支持。
Linphone具有良好的可扩展性和灵活性,可以方便地集成到现有的系统中。
3. DoubangoDoubango是一个基于C++的开源SIP协议栈,提供了丰富的多媒体通信功能。
它支持音频、视频和实时消息传输,并具有良好的性能和可扩展性。
Doubango还提供了易于使用的API和文档,以及活跃的社区支持。
4. Sofia-SIPSofia-SIP是一个小型、模块化的SIP协议栈,用C语言编写,可以用于构建SIP客户端和服务器。
它提供了一组简洁的API,并支持多种平台。
Sofia-SIP具有较好的性能和敏捷性,适用于资源有限的嵌入式系统。
5. BaresipBaresip是一个轻量级的SIP协议栈,用C语言编写,并提供了基于命令行的用户界面。
它支持音频通信,并具有良好的性能和可扩展性。
Baresip适用于嵌入式系统和资源受限的环境。
以上是几种常见的开源SIP协议栈,它们各有特点。
在选择适合的协议栈时,需要考虑应用的需求、开发平台、性能要求和可扩展性等因素。
此外,还需要关注文档和社区支持,以便在开发过程中能够得到及时的帮助和支持。
SIP原理分析与详解
7.被叫无应答流程一
精品课件
8.被叫无应答流程二
精品课件
9.遇忙呼叫前转
精品课件
10.无应答呼叫前转流程
精品课件
SIP与H.323的比较
• 体系结构的比较 • 复杂性的比较 • 可靠性及服务质量的比较 • 对视频和语音的编码格式的支持 • 会议规模 • 各自优点
精品课件
体系结构的比较
精品课件
SIP协议支持多媒体通信的五个方面 • 用户定位 • 用户能力 • 用户可达性 • 呼叫建立 • 呼叫处理
精品课件
SIP 是基于客户/服务器的体系结构, 网 络组件基本分为用户代理(User Agent) 和网络服务器(Network Server)。
(1) SIP 的用户代理 SIP 的用户代理是 SIP 系统中的终端用 户,根据它们在会话中扮演的角色又可分 为用户代理客户机(UAC,User Agent Client)和用户代理服务器(UAS,User Agent Server),前者发起呼叫请求,后者 响应呼叫请求。
• SIP则不具备处理中间实体故障的能力
精品课件
服务质量
• 在H.323中,网守提供一组丰富的控制和管 理功能,包括地址翻译、接纳控制、带宽 控制和地域管理。
• SIP自身不支持管理和控制功能,而是依赖 于别的协议。
精品课件
对视频和语音的编码格式的支持
• 目前存在的编码格式有数百种之多,SIP支持任何 编码格式,不同应用实现也可以根据符串名字识 别编码格式并从IANA得到有关信息。
精品课件
h.323优点
• H.323是一个整套的协议栈用来在IP和包交换网络 中传输标准的电话语音服务。
• 除了在设计时独立于其它标准,H.323的基本功能 里也包括很多电话的辅助功能,例如会议和呼叫 转移。这种实现的优点是,它给希望开发高级特 性和服务的开发者留下了很明确的接口,这样就 保证了高度的兼容性。
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等必需字段,以及可选的其他头部字段。
- 消息体:可选,用于传递消息内容。
sip编写标准
sip编写标准SIP(Session Initiation Protocol)是一种用于建立、修改和终止多媒体会话的通信协议。
以下是SIP编写标准的一些关键要素:1. 协议结构:SIP是基于文本的协议,采用请求/响应模型,由请求消息和响应消息两种类型构成。
请求消息用于发起呼叫,包括邀请消息、挂断消息、更新消息、订阅消息等;响应消息用于对请求消息进行响应,包括成功、失败、重定向、确认等类型。
2. 消息头和消息体:SIP消息头用于描述消息的属性和行为,例如To、From、CSeq、Call-ID等。
消息体用于承载媒体数据或信令信息。
3. 事务处理:SIP的事务是指一个完整的请求-响应交换过程。
一个事务由一个初始请求和与此请求相关的后续请求及响应组成。
事务层处理应用层重传,匹配响应到请求,以及应用层超时。
4. 代理和路由:SIP实体(如代理服务器)负责根据路由信息将SIP请求转发到目标用户或服务器。
5. 会话描述:SIP使用SDP(Session Description Protocol)来描述会话的媒体信息和协商媒体参数。
6. 安全性:SIP支持使用TLS(传输层安全协议)进行通信加密和认证,还支持使用SASL(简单认证和安全层)进行消息认证和加密。
7. 注册机制:SIP使用注册机制来动态发布用户当前的网络位置信息,以便能够将用户请求路由到正确的位置。
8. 错误处理:SIP定义了各种错误码和错误响应,用于处理请求或响应过程中的错误情况。
9. 扩展性:SIP设计为可扩展的协议,允许通过定义新的头字段、请求和响应方法来进行扩展。
10. 国际化:SIP支持国际化,允许使用各种字符集和语言进行消息编码和用户标识。
以上是SIP编写标准的一些关键要素,它们确保了SIP协议的一致性、可靠性和有效性,并使得不同系统和设备之间的通信更加高效和可靠。
SIP协议对比,栈结构,逻辑实体,消息等
ContentsSIP协议 (2)SIP与其他协议对比 (2)SIP基本功能 (2)SIP协议栈结构 (3)SIP基本网络模型,会话过程以及逻辑实体 (5)SIP的网络模型与会话过程: (5)SIP逻辑实体 (5)用户代理(UA)即用户终端 (5)网络服务器: (5)SIP消息 (7)地址URL和命名规则 (7)SIP的消息模式 (7)SIP的消息类型 (8)请求消息 (8)响应消息 (8)SIP消息组成 (9)起始行 (10)请求(request)消息的开始行 (10)响应(Response)消息的开始行 (11)主要消息头字段 (13)消息体字段 (14)SIP典型流程介绍 (15)SIP应用实例 (16)SIP协议SIP与其他协议对比目前主流的信令协议主要有SIP,No.7以及H323,其中其对比关系如下SIP:是Internet工程任务组IETF(Internet Engineering Task Force)提出的基于IP网络的应用层会话(参与者之间的数据交换包括语音,视频,文本等多种类型)控制协议.用于建立、修改和终止多媒体会话.SIP很大程度上借鉴了其他Internet协议,比如Http,同时SIP也采用了基于文本的编码方式(其他协议可能采取帧结构的方式,但SIP处在应用层,完全可以使用文本方式),另外SIP独立于底层协议,一般使用UDP无连接协议,所以SIP采用自己的应用层可靠性机制来保证消息的可靠传输. 由于SIP完全可以通过软件实现,随着软交换技术的发展SIP将会成为主流通信协议.No.7:传统的电路层面的TDM 7号信令.H.323: 是有国际电信联盟ITU提出的一个标准协议栈,它主要用于多媒体会议系统.H.323为协议的主题框架,H.263为视频解码协议,H.723.1为音频解码协议,H.245为系统控制协议.SIP基本功能•用户定位:存储和查询终端用户的位置,用于通讯,其中由于SIP完全使用IP网络实现,不像No.7存在物理电路的概念,因此SIP所说的终端用户的位置其实是指广域网的IP地址范围.即IP电话(用户)所处的广域网IP.•用户有效性:检查一个用户是否愿意参与会话•用户能力:检查媒体和媒体参数•建立会话:在呼叫方和被叫方建立会话参数。
sip详解
漫谈V oIP技术IP电话协议之SIP协议在介绍了H.323协议之后,就不得不说说SIP协议了。
SIP与H.323起源于不同的阵营,一个是互联网领域,一个通信领域。
SIP的开发目的就是方便在互联网上提供语音服务,现在已经成为NGN可能采用的关键性标准。
SIP(Session Initiation Protocal)称为会话初始协议,1999年由IETF (Internet Engineering Task Force)组织提出的,是一个在基于IP网络中,完成实时通信应用的一种信令协议。
会话是指用户之间的数据交换。
在基于SIP 的应用中,每一个会话可以是普通的文本数据,也可以是经过数字化处理的音频、视频数据,还可以是诸如电子游戏等应用的数据。
SIP充分借鉴了其他各种Internet协议,如HTTP(超文本传输协议)、SMTP (简单邮件传输协议)等;和这些协议一样,SIP也采用基于文本的编码方式,这也是SIP同IP语音和视讯通信领域现有标准相比最大的特点之一。
一、 SIP的体系结构SIP体系结构包括以下四个主要部件:用户代理(User Agent):就是SIP终端,也可以说是SIP用户。
按功能分为两类:用户代理客户端(User Agent Client),负责发起呼叫;用户代理服务器(User Agent Server),负责接受呼叫并做出响应。
代理服务器(Proxy Server):可以当作一个客户端或者是一个服务器。
具有解析能力,负责接收用户代理发来的请求,根据网络策略将请求发给相应的服务器,并根据应答对用户做出响应,也可以将收到的消息改写后再发出。
重定向服务器(Redirect Server):负责规划SIP呼叫路由。
它将获得的呼叫的下一跳地址信息告诉呼叫方,呼叫方由此地址直接向下一跳发出申请,而重定向服务器则退出这个呼叫控制过程。
注册服务器(Registar Server ):用来完成UAS的登录。
SIP协议基础
• 这两种消息类型都由一个起始行,一个或者多个包头域, 一个可选的消息正文组成。 • 起始行、每一个包头行,空行、都必须由回车换行组成 (CRLF)。即使消息正文没有,也必须有一个空行跟随。 • 通用格式
SIP-Message = start-line *message-header CRLF [message-body]
• TO
SIP请求消息中常见头域介绍
– To头域是最先指定这个请求的”逻辑”接收地,或者是这个请求的目标 用户或者资源的address-of-record,可以用SIP或者SIPS URI,也可以用 其他方式的URI(比如电话URL (RFC2806[9]))。 – 这个域中的地址可以是也可以不是请求的最终接收者。
SIP消息
带语音板卡的路由器
202.102.40.6
202.102.40.30
• SIP消息的分类:
– 请求消息
• • • • • • • • • • • • REGISTER INVITE CANCEL ACK BYE PRACK SUBSCRIBE NOTIFY REFER INFO OPTION ...... 注册请求,上报用户信息,完成号码绑定 发起会话请求 取消一个尚未完成的请求,特别针对INVITE 为INVITE请求提供三次握手 结束会话请求 临时可靠性传输请求(RFC3262) 预定某个用户、资源或者呼叫的状态改变情况 当被预定资源或者用户状态发生改变时向定制者发出通知 Referer通知Referee向指定的 Refer Target发起新的邀请 通话建立后,中间信息传输 查询服务器或者是UA的能力 可扩展,体现SIP协议的灵活性
– – – –
SIP几个逻辑实体
发起或者接收呼叫的逻辑实体 UAC(User Agent Client),用于发起请求 UAS(User Agent Server),用于接收请求 实际形态:IP Phone,SoftPhone,GateWay......
2-IMS网络关键协议介绍
SIP消息格式
• SIP消息=起始行 • *消息头部(1个或多个) • CRLF(空行) • [消息体]
SIP 消息头格式
– SIP 的格式和语法与HTTP基本相同. – 一个SIP 消息头的例子: ---------------------------------------------------------------SIP Header ---------------------------------------------------------------INVITE sip:5120@192.168.36.180 SIP/2.0 Via: SIP/2.0/UDP 192.168.6.21:5060 From: sip:5121@192.168.6.21 To: <sip:5120@192.168.36.180> Call-ID: c2943000-e0563-2a1ce-2e323931@192.168.6.21 CSeq: 100 INVITE Expires: 180 User-Agent: Cisco IP Phone/ Rev. 1/ SIP enabled Accept: application/sdp Contact: sip:5121@192.168.6.21:5060 Content-Type: application/sdp
SDP会话描述的一般格式
• • • • • • • • • • • • • • • 协议版本:v=0 会话源:o=<用户名><会话标识><版本><网络类型><地址类型><地址> 会话名:s=<会话名> *会话信息:i=<会话信息> *URI:u=<URI> *email地址:e=<Email地址> *电话号码: p=<电话号码> *连接信息:c=<网络类型><地址类型><连接地址> *带宽信息:b=<修饰语>:<带宽值> 会话时间描述:t=<起始时间><终止时间> *时间区段:r=<重复时间><激活时长><偏移值列表> *时区调整:z=<调整时间><偏移值>…… *加密密钥:k=<方法>:<加密密钥> *零个或多个会话属性行:a=<属性>或a=<属性>:<值> (加*的为可选项,其他为必选项)
SIP协议栈
SIP协议栈协议名称:SIP(Session Initiation Protocol)协议栈协议描述:SIP协议栈是一种用于建立、修改和终止多媒体味话的通信协议。
本协议旨在为实时通信提供一种灵便、可扩展和互操作的解决方案。
SIP协议栈是基于文本的协议,使用请求-应答模型进行通信。
协议内容:1. 协议概述SIP协议栈是一种应用层协议,用于在IP网络上建立、修改和终止多媒体味话。
它提供了一种可扩展、灵便且易于实现的解决方案,支持语音、视频、即时消息和其他多媒体应用。
2. 协议架构SIP协议栈由以下几个组件构成:- SIP用户代理(User Agent,UA):用户终端设备或者应用程序,用于发起和接受SIP请求。
- SIP代理服务器(Proxy Server):用于转发、路由和处理SIP请求。
- SIP注册服务器(Registrar Server):用于管理用户的注册信息。
- SIP重定向服务器(Redirect Server):用于重定向SIP请求。
- SIP会话边界控制器(Session Border Controller,SBC):用于处理SIP请求和响应的边界设备。
3. 协议消息格式SIP协议使用文本格式的请求和应答消息进行通信。
请求消息包括请求行、消息头和消息体,应答消息包括状态行、消息头和消息体。
消息头包含各种标识和参数,用于指定请求或者应答的属性和行为。
4. 协议流程SIP协议栈的典型流程如下:- 用户代理向注册服务器发送注册请求,以注册用户的位置信息。
- 注册服务器将用户的位置信息存储在注册表中。
- 当用户代理需要建立会话时,它向代理服务器发送INVITE请求。
- 代理服务器根据路由规则将INVITE请求转发给目标用户代理。
- 目标用户代理接受INVITE请求,并发送200 OK应答。
- 用户代理之间通过交换ACK和应答消息来建立会话。
- 会话结束时,用户代理发送BYE请求,双方发送200 OK应答,会话终止。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ContentsSIP协议 (2)SIP与其他协议对比 (2)SIP基本功能 (2)SIP协议栈结构 (3)SIP基本网络模型,会话过程以及逻辑实体 (4)SIP的网络模型与会话过程: (4)SIP逻辑实体 (4)用户代理(UA)即用户终端 (4)网络服务器: (5)SIP消息 (6)地址URL和命名规则 (6)SIP的消息模式 (7)SIP的消息类型 (7)请求消息 (7)响应消息 (8)SIP消息组成 (8)起始行 (9)请求(request)消息的开始行 (9)响应(Response)消息的开始行 (10)主要消息头字段 (11)消息体字段 (12)SIP典型流程介绍 (13)SIP应用实例 (14)SIP协议SIP与其他协议对比目前主流的信令协议主要有SIP,No.7以及H323,其中其对比关系如下SIP:是Internet 工程任务组IETF(Internet Engineering Task Force)提出的基于IP网络的应用层会话(参与者之间的数据交换包括语音,视频,文本等多种类型)控制协议. 用于建立、修改和终止多媒体会话.SIP很大程度上借鉴了其他Internet协议,比如Http,同时SIP也采用了基于文本的编码方式(其他协议可能采取帧结构的方式,但SIP处在应用层,完全可以使用文本方式),另外SIP独立于底层协议,一般使用UDP无连接协议,所以SIP采用自己的应用层可靠性机制来保证消息的可靠传输. 由于SIP完全可以通过软件实现,随着软交换技术的发展SIP将会成为主流通信协议.No.7:传统的电路层面的TDM 7号信令.H.323: 是有国际电信联盟ITU提出的一个标准协议栈,它主要用于多媒体会议系统.H.323为协议的主题框架,H.263为视频解码协议,H.723.1为音频解码协议,H.245为系统控制协议.SIP基本功能•用户定位:存储和查询终端用户的位置,用于通讯,其中由于SIP完全使用IP网络实现,不像No.7存在物理电路的概念,因此SIP所说的终端用户的位置其实是指广域网的IP地址范围.即IP电话(用户)所处的广域网IP.•用户有效性:检查一个用户是否愿意参与会话•用户能力:检查媒体和媒体参数•建立会话:在呼叫方和被叫方建立会话参数。
•会话管理:包括发送和终止会话,修改会话参数,激活服务等等SIP协议栈结构此图描述了SIP协议与其他协议的关系及联系,很明显的可以看出SIP处于应用层协议,其传输层一般使用UDP,对于底层来讲则不受限制,可以是Ethernet,ATM,TDM 等.其他协议在此可以做如下简单介绍,RTP是实时数据传输协议。
它提供时间标志,序列号以及其它能够保证在实时数据传输时处理时间的方法。
它是依靠RSVP保证服务质量标准的。
RTCP是RTP的控制部分,是用来保证服务质量和成员管理的。
RTSP是开始和指引流媒体数据。
它又可叫做“网上录像机控制协议”.它是提供远程的控制,具体的数据传输是交给RTP的。
RSVP是Internet上的资源预订协议,使用RSVP预留一部分网络资源(即带宽),能在一定程度上为流媒体的传输提供QoS。
RTP通常使用UDP来传送数据,但RTP也可以在TCP或ATM等其他协议上工作。
当应用程序开始一个RTP会话时将使用两个端口:一个给RTP,一个给RTCP。
RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。
RTCP和RTP一起提供流量控制和拥塞控制服务。
RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。
RTSP多用于做视频服务器而SIP多用于做Voip的服务器。
RTSP在体系结构上位于RTP和 RTCP之上。
它使用TCP或RTP完成数据传输。
HTTP与RTSP相比。
HTTP传送HTML。
而RTP传送是多媒体数据。
H.261是1990年ITU-T制定的一个视频编码标准,属于视频编解码器。
SDP文本信息包括:会话名称和意图;会话持续时间;构成会话的媒体;有关接收媒体的信息(地址等)。
点对点协议(Point to Point Protocol)的缩写为PPP,是TCP/IP网络协议包的一个成员。
PPP是TCP/IP的扩展,它增加了两个额外的功能组:(1)它可以通过串行接口传输TCP/IP包;(2)它可以安全登录。
当使用作为公共电话系统的部分的串行接口时,必须要注意确保所有通信的真实性。
这个终端PPP集合了用户名字和密码安全。
因此,一个路由器或者服务器通过PPP接收到一个请求时,如果这个请求的来源是不安全的,这就需要授权。
这个授权是PPP的一部分。
因为它的通过串行接口路由TCP/IP包的能力和它的授权能力,ISP (Internet服务提供商)通常使用PPP来允许拨号用户连接到Internet。
AAL(ATM Adaptation Layer, ATM适配层):标准协议的一个集合,用于适配用户业务。
AAL分为会聚子层(CS)和拆装子层(SCR)。
AAL有4种协议类型:AAL1、AAL2、AAL3/AAL4和AAL5分别支持各种AAL业务类型。
AAL的目的是允许现有的协议和应用运行在ATM上。
为此AAL必须把上层的数据转换为ATM 信元中的48B。
常见的通信协议(TCP/IP、以太网、令牌环网)采用的是变长分组,分组长度都要比ATM信元中的数据段大,但是AAL可以将这些较大的高层数据分组分割成能通过ATM网络传输的信元,或把从网络接收的信元重组成原始的数据分组。
AAL由两个子层组成,一个称为会聚子层(CS),另一个称为分段和重组子层(SAR)。
CS 子层首先对高层数据进行分段并封装在CS-PDU(汇聚子层协议数据单元)中。
然后,SAR子层将CS-PDU分割成若干个相同大小(不大于48B)的数据段,使它能够封装在信元中。
SIP基本网络模型,会话过程以及逻辑实体SIP的网络模型与会话过程:SIP逻辑实体注意由于SIP的各个逻辑实体都可以通过软件实现,因此SIP的不同逻辑实体可能全部在同一个物理实体中实现用户代理(UA)即用户终端直接与用户发生交互作用的功能实体,它能够代理用户所有的请求和响应UAC(用户代理客户端):主叫用户代理,支持用户的各项操作,发起和传送SIP请求,与服务器建立连接的应用程序UAS(用户代理服务器):用户代理服务器,被叫用户代理,收到SIP请求的时候,连接用户并代表用户返回响应,响应用来接收,终止和重定向请求.用户代理可以执行在不同的系统中,例如可以是PC机上的一个应用程序,UAC和UAS的较色会随着处理的事物的不同而相互转换.网络服务器:代理服务器:将Request和Response转发到下一台服务器或UA,代理服务器是sip网络的核心,能够对基于SIP地址或E.164号码的地址进行相应选路,性能上,需要达到电信级需求.重定向服务器:将用户新的位置信息告诉请求方,这是与代理服务器的本质区别,重定向服务器只提供地址解析服务,类似于DNS, 重定向服务器不主动发送SIP请求, 重定向服务器不需要维持事务状态(你问一个问题,它回答一个,之后什么都不记得了). 发送重定向响应(Response)给客户端.在这个响应里包含有重定向到新的服务器的地址,注册服务器: 注册服务器接受终端的Register请求,纪录终端的SIP地址(SIP URL)和IP地址,并对定位服务器进行添加、修改、查询等操作。
定位服务器:存储并向用户返回可能的位置信息,在SIP网络架构中起到重要作用的Internet公共服务器。
位置服务器的信息可能来自SIP注册服务器,也可能通过其他渠道获取。
位置服务器与SIP服务器之间通过使用LDAP协议进行通信,位置服务器可能返回多个位置信息,重定向服务器和代理服务器可以采用不同的方式来处理这多个位置信息。
SIP消息地址URL和命名规则URL格式:SIP:用户名:口令@主机:端口;传送参数;用户参数;方法参数;生存期参数;服务器地址参数。
URL形式:USER@HOST;用途:代表主机上的某个用户,可指示From, To, Request URI, Contact等SIP头部字段。
URL 应用举例:Sip:j.Sip:j.doe:;transport=tcp;subject=projectSip:+1-212-555-1212:;user=phoneSip:Sip:;method=REGISTERSip: ?subject=meetingSIP的消息模式SIP协议采用了Client/Server和HTTP协议模型, 所有的消息都是简单的基于文本的消息,请求和响应构成一个事务,事务之间相互独立,一个完整的呼叫包含多个事务;SIP服务器(注册服务器)能将SIP地址智能地转换为不同的地址,如:每天的晚5点之后将发给用户的请求从用户的工作号码自动路由到用户的家里的电话号码.SIP的鉴权过程参考了HTTP的鉴权过程。
SIP的消息类型请求消息INVITE–通过邀请用户参与来发起一次呼叫, 类似于7号信令里面的IAM消息,主叫初始发出的消息,表征主叫方能力,邀请被叫参加某一个会话ACK - 请求用于证实UAC已收到对于INVITE请求的最终响应,和INVITE消息配套使用. 类似于3次握手中的确认消息,当被叫方对主叫方的Invite消息进行最终响应后,主叫方将发送ACK消息表征已经收到了被叫方的响应BYE - USER AGENT用此方法指示释放呼叫. 类似于No.7信令中的拆线消息CANCEL -该方法用于取消一个尚未完成的请求,对于已完成的请求则无影响. 用于取消一个正在进行的请求,此时并没有收到被叫方的最终响应,与BYE的区别REGISTER–客户使用该方法在服务器上登记列于To字段中的地址.OPTIONS–用于询问服务其能力, 用于询问网络中客户机和服务器的能力,主叫方在发起请求时通过发送Option消息询问代理服务器的能力,也可以询问被叫方客户端的能力INFO–用于承载带外信息,如DTMF信息.关于DTMF可以解释为:DTMF: Dual Tone Multi Frequency,双音多频,由高频群和低频群各包含4个频率组成,通过高低频率的组合信号表示不同的数字号码,如下图. DTMF常用于用户信令发送电话号码响应消息1xx - 正在处理的信息. 2xx - 成功.3xx - 重定向.4xx - Client错误.5xx - Server错误.6xx - Global错误.SIP消息组成请先看如下例子SIP的所有的消息都是简单的基于文本的消息,消息组成为一个起始行一个消息头一个消息体起始行请求(request)消息的开始行例如: INVITE sip: SIP/2.0其中,CRLF -- Carriage-Return Line-Feed 回车换行Method:方法,定义请求的类型,包括.INVITE.BYE.ACK.CANCEL.OPTIONS.REGISTERRequest-URI:统一资源定位标示(URI)是一个紧凑的字符串用来标示用户或者服务器的请求.他可以由代理服务器重写通常,也可以叫做SIP URLSIP-Version用来标示目前使用的SIP协议的版本响应(Response)消息的开始行例如:SIP/2.0 180 RingingSIP-version:用来标示目前使用的SIP协议的版本Reason-Phrase:状态码主要是给软件使用或者给人(human user).客户机不会要求检查或显示这个字段Status-Code :这个状态码是用3位整数作为结果码来标示出尝试的发出请求是否被接受状态码(Status Codes):AXXA=第一个字符用来定义响应的类型1xx=Informational—请求已收到课后继续处理请求.100 Trying正在尝试180 Ringing正在拨打181 Call Is Being Forwarded正被转接182 Queued正在排队183 Session Progress通话进展2xx=success—行动已经成功地收到,理解和接受200 OK202 被接受:用于转介3xx=Redirection—为完成呼叫请求,还必须采取进一步的动作300 多项选择301 被永久迁移302 被暂时迁移305 使用代理服务器380 替代服务4xx=Client Error—请求有语法错误或不能被服务器执行.客户机需要修改请求,然后重发请求.400 Bad Request401 Unauthorized402 Payment Required403 Forbidden404 Not Found405 Method Not Allowed406 Not Acceptable407 Proxy Authentication Required408 Request Timeout410 Gone413 Request Entity Too Large414 Request-URI Too Long415 Unsupported Media Type416 Unsupported URI Scheme420 Bad Extension421 Extension Required423 Interval Too Brief480 Temporarily Unavailable481 Call/Transaction Does Not Exist482 Loop Detected483 Too Many Hops484 Address Incomplete485 Ambiguous486 Busy Here487 Request Terminate488 Not Acceptable Here491 Request Pending493 Undecipherable5xx=Server Error—服务器出错,不能执行合法请求500 Server Internal Error501 Not Implemented502 Bad Gateway503 Service Unavailable504 Server Time-out505 Version Not Supported513 Message Too Large6xx=Global Failure—任何服务器都不能执行请求600 Busy Everywhere603 Decline604 Does Not Exist Anywhere606 Not Acceptable其中1xx响应为暂时响应(Provisional response),其他响应都为最终响应(Final response) 主要消息头字段消息体字段在所有的请求消息中,消息体都是可选的,SDP消息一些固定格式的行,格式如下(与HTML 语言相似):<type>=<value>Type:通常用一个字符Value:基于文本的字符串结构,依赖与type 主要有如下图所示的Type和ValueSIP典型流程介绍用SIP来建立通讯通常需要有六个步骤:1.登记鉴权, 发起和定位用户.2.进行媒体协商 --通常采用SDP3.由被叫方来决定是否接纳该呼叫.4.呼叫媒体流建立并交互.5.呼叫更改或处理如呼叫转移.6.呼叫终止.SIP应用实例软终端设备拨打PSTN电话。