Sip stack之Sip Message学习笔记

Sip stack之Sip Message学习笔记
Sip stack之Sip Message学习笔记

一.Sip Message

1.Sip Message Struct

Generic-message = start-line

*message-header

CRLF

[message-body]

Start-line = Request-Line/Status-Line

起始行、每一个包头行,空行、都必须由回车换行组成(CRLF)。即使消息中文没有,也必须有一个空行跟随。

1.1. Request-Line

Request-Line = Method SP Request-URI SP SIP-Version CRLF

Request-Line 由CRLF 结束。除了用作行结束标志以外,不允许CR 或者LF 出现在其他地方。在其他域中,不允许出现线形的空白

Method 这个规范规定了6 中方法:REGISTER 用于登记联系信息,INVITE,ACK,CANCEL 用于建立会话,

BYE 用于结束会话,OPTIONS 用于查询服务器负载。

Request-URI Request-URI 是一个SIP 或者SIPS URI。Request-URI 禁止包含空白字符或者控制字符,并且禁止用”<>”括上。

SIP-Version用SIP/2.0 替代HTTP/1.1中关于版本的规定,版本依赖,升级版本号。一个应用,发出的SIP 消息一定包含了SIP-Version “SIP/2.0”。

这个SIP 版本串是大小写不敏感的,但是在实现中必须发送大写。

1.2. Responses(Response with Status-Line)

Status-Line = SIP-Version SP Status-Code SP Reason-Phrase CRLF (除了最后用作结束标志以外,CR/LF 不允许出现在其他地方)

1xx:临时应答-请求已经接收,正在处理这个请求。

2xx:成功处理-请求已经成功接收,并且正确处理了这个请求。

3xx:重定向-还需要附加的操作才能完成这个请求,本请求转发到其他的服务器上处理。

4xx:客户端错误--请求包含错误的格式或者不能在这个服务器上完成。

5xx:服务器错误-服务器不能正确的处理这个显然合法的请求。

6xx:全局错误-请求不能被任何服务器处理。

1.3. Header Fields

header = "header-name" HCOLON header-value *(COMMA header-value)

SIP 头域遵循[H4.2]关于消息头的语法的定义,并且遵循多行的扩展头域的规则(通过在这些行前面加一些SP 或 HT 实现)。

必须在允许合并在具有同一个域名的多个头域,到一个用逗号分割的单个头域中。Contact头域除了当域值是”*”之外,都允许用逗号分割的列表(相同域名的域之间的顺序非常重要,必须注意有些头域是跟顺序有关的(Route))。

头域中的不同域名的相关顺序并没有什么意义()。

*强烈建议与路由相关的域(VIA,ROUTE,Record-Route,Proxy-Require,Max-Forwards,Proxy-Authorization等等)放在消息头的最前边,这样可以提高处理的速度

这个规则有几个例外,就是WWW-Authenticate,Authorization,Proxy-Authenticate,和Proxy-Authorization 头域。

域值格式是由分号分开的参数名和参数值的组合:

field-name: field-value *(;parameter-name=parameter-value)

虽然在域值里边可以有任意数量的parameter-name/parameter-value 对,但是不能允许有相同的parameter-name 存在(唯一性)。除了特别指出的头域之外,头域中的域名、域值、parameter name parameter-value 都是大小写不敏感的。标记词始终是大小写不敏感的。除非有特别的指定,引号串的字符串是大小写敏感的。

Contact: ;expires=3600 和CONTACT: ; ExPiReS=3600 相同。

下边的两个头域不相同:Warning: 370 devnull “Choose a bigger pipe”和Warning: 370 devnull “CHOOSE A BIGGER PIPE”不同

1.4. Bodies

Content-Type 头域指明消息中的internet 媒体类别; Content-Encoding 头域中指明消息正文采用某种形式的编码(encoding),比如压缩等。如果可行,消息体的字符集作为Content-type头域的值的一部分表达,如果发送方没有其他显示的字符集参数指出,媒体的文本”text”子类型会是缺省”UTF-8"

2.相关概念

呼叫(Call)、会议(Conference)、发起者、主叫(Initiator,Caller)、被邀请者、被叫(Invitee,Callee)、邀请(Invitation)、

同构请求/响应(Isomorphic request or response)、并行查询(Parallel search)、

Loop:环路(必须避免)。

呼叫支路(Call leg/Dialog):(一个呼叫支路由Call-ID、T o以及From 之中的addr-spec和tag共同标识)

一个对话是持续一段时间的两个UA之前的端到端的关系.(由Call identifier, local tag(本地tag), remote tag(对方tag)标志)

对于UAC来说,本地标签就是创建对话的初始请求的From头中的tag,远端标签就是创建对话的响应的From头中的tag。UAS则相反。

*当UA 在对话外发出一个请求时,它只包含From tag,对话根据应答创建完成,这个应答在To头域提供对话的另一Tag。

(SIP请求的分支意味着一个单个请求可以创建多个对话,这也是需要两个对话方的标志的原因)

Tag的生成规则:1)当UA 产生一个TAG并添加到请求或应答时,它必须是唯一的。

会话(Session):根据SDP 描述"一个多煤体会话是一个由多媒体发送方和接受方组成的集合,并且包括发送方和接受方之间的数据"

SIP事务(SIP Transaction):(事务是由一个呼叫支路(Call leg)中的Cseq 顺序号来标识的。一个ACK请求与对应的INVITE请求拥有相同的CSeq,构成自己的事务)

事务用户Transaction User(TU): 在Transaction 层之上的协议层. TU 包括了UAC core, UAS core, proxy core.

用户代理/终端系统UA:包含UAC和UAS.

UAC 用来产生请求, 可以由一些外部的东西来发出请求和处理应答(比如按下一个按钮);

UAS 接收并处理应答请求。

UAC和UAS处理依赖两个特点:a)基于请求或应答是否在一个对话内b)基于请求的方法

3.消息的基本组成

3.1 Request 消息的基本组成

一个SIP Request请求必须至少包含如下头域:TO,FROM,Cseq,Call-ID,Max_Forwards,Via(这些消息包含了消息的地址,响应的路由,消息传递次数,详细的顺序和事务的唯一标识)

Call_ID的生成规则:a) Call_ID 是在一系列消息中,区分一组消息的唯一标志b) 在对话中的任一个UA的所有请求和所有应答的Call-ID必须一致c)在UA的每次注册中,都应该是一样的d)在对话外的时候,UAC发起一个新的请求,这个Call_ID必须由UAC产生一个全局唯一的Call_ID(所有的UA 都必须保证自己产生的Call_ID不会和其它UA产生的Call_ID重复)。e) 请求的重新尝试不被当做一个新的请求,不需要新的Call_ID。

CSeq的生成规则:a)用来区分和作为事务的顺序使用b)由方法和顺序号组成,方法必须和请求的方法一致c)对于对话外的非REGISTER请求,顺序号码可以是任意的。

格式:CSeq:1 BYTE

Via 中的Branch:a)用于区分请求创建的事务(客户端和服务器端都会使用)b)除了CANCEL和给非2XX应答的ACK外,branch参数对UA发出的所有请求来说,在时间和空间上必须唯一(CANCEL 请求的branch必须和它所取消的请求的branch一致;给非2XX应答的ACK必须和其对应的INVITE请求有相同的BRANCH ID)c)可以利用branch id的唯一性作为事务的ID ??

??谁何时产生此Branch ID

二.SIP 协议的结构、处理流程

1. 采用分层结构,各层之前松散偶合。

第一层语法和编码层(组成消息);

第二层传输层(消息的发送与接收);

第三层事务层: 一个SIP 事务由一个请求和这个请求的所有应答组成.(当终结应答不是一个2XX应答时,事务还包括一个ACK,如果一个应答是2XX,那么ACK 并不认为是事务的一部分) a)事务存在于UA 及有状态的proxy 服务器中. b)事务层处理应用服务层的重发, 匹配请求的应答, 以及应用服务层的超时.

第四层事务用户层: 每一个SIP 实体(除了无状态Proxy), 都有一个事务用户.

当TU 发送一个请求, 他首先创建一个客户事务实例并且和请求一起发送.

TU 可以创建客户事务也可以取消客户事务, 当取消一个事务时, 它请求服务器取消正在处理的事务,并回滚状态到事务开始前的状态, 并产生指定的错误报告.

2. SIP 协议基本网络模型

事务用户层(Transaction User)

事务层(Transaction)

传输层(Transport)

语法和编码层(Syntax & Encoding)

三.SIP 过程分解(1.步骤描述2.画出流程来3.标出每一步的具体细节)

UAC/USC 的处理依赖于请求或应答是否是对话内/对话外请求和方法。一下讨论对话外的方法无关的规则。

1. UAC产生/发送/接收回复

UAC 产生一个请求、发送一个请求、接收处理应答

1.1. 产生一个请求

一个SIP Request请求必须至少包含如下头域:TO,FROM,Cseq,Call-ID,Max_Forwards,Via。

Request-URI:最开始的Request-URI 应该是T o头域的值

当Register 方法涉及隐私时有些差异

预设路由表的情况(12.2.1.1)

To:是第一个最先指定请求的接受地或者是(AOR)。

To field 的填写。

A request outside of a dialog MUST NOT contain a To tag; the tag in the To field of a request identifies the peer of the dialog. Since no dialog

is established, no tag is present.

From: 请求发起者的逻辑名称。通常用户或用户的本地主机的管理人员会事先规定Form 头域的值。

Form field 的用处。

The From field MUST contain a new "tag" parameter, chosen by the UAC. (See 19.3 Tags)

Call-ID:acts as a unique identifier to group together a series of messages.

It MUST be the same for all requests and responses sent by either UA in a dialog.

It SHOULD be the same in each registration from a UA.

In a new request created by a UAC outside of any dialog, the Call-ID header field MUST be selected by the UAC as a globally unique identifier over space and time。

Call-IDs are case-sensitive

Note that when requests are retried after certain failure responses that solicit an amendment to a request , these retried requests are not considered new requests, and therefore do not need new Call-ID header fields;

CSeq:serves as a way to identify and order transactions. It consists of a sequence number and a method. The method MUST match that of the request。

For non-REGISTER requests outside of a dialog, the sequence number value is arbitrary.

这个顺序号码必须可以由32位的无符号整数表达,必须小于2^31.

Max-Forwards:用来限制请求到他的目的地的中间的跳转,每隔一个跳转就自动减一,到达0时,会报告一个483错误回应。

Via:indicates the transport used for the transaction and identifies the location where the response is to be sent. A Via header field value is added only after the transport that will be used to reach the next hop has been selected.

当UAC 创建一个请求时,它必须在头域中添加一个Via头域。The via header contains a branch parameter??

Contact:用来告诉对方回信息给谁。

MUST be present and contain exactly one SIP or SIPS URI in any request that can result in the establishment of a dialog.

1.2. Sending the request

如何确定发送的目标地址?使用DNS来查找或本地策略指定.

1.3. Processing Responses

应答首先被transport处理,并且被transport发送给transaction处理,transaction处理完成之后将应答发送给TU处理。

处理Transaction 层错误

处理未知的应答

处理Vias:

处理3XX:

处理4XX:

2.UAS接收请求/处理/回复请求

UAS 接收请求,处理流程(首先身份认证,然后方法判定,然后头域,然后处理剩余部分)

2.1. Method Inspection:

2.2. Header Inspection:

2.3. To and Request-URI:To头域包含了由From 头域描述的发送者发出的请求的原始接受者。当To头域和自身不相符合的情况下,UAS 可以自行决定是否接收这个

请求。但是由Request-URI 确定是否由UAS 来处理这个请求。

2.4. Merged Requests:If the request has no tag in the To header field, the UAS core MUST check the request against ongoing transactions. If the From tag, Call-ID, and CSeq exactly match those associated with an ongoing transaction, but the request does not match that transaction (based on the matching rules in Section 17.2.3), the UAS core SHOULD generate a 482 (Loop Detected) response and pass it to the server transaction. (检测到环路)

2.5. Require 检查:

2.6. Content Processing:

2.7. Applying Extensions:

2.8. Processing the Request: 请参考REGISTER,OPTIONS,INVITE,BYTE

2.9. Generating the Response:

遵循以下步骤产生一个应答。创建完成之后,UAS将应答交给收到这个请求的服务端transaction去处理。

2.9.1. Sending a Provisional Response

2.9.2. Headers and Tags

2.10. Stateless UAS Behavior

Stateless UASs do not use a transaction layer; they receive requests directly from the transport layer and send responses directly to the transport layer.

2.11. Redirect Servers

A redirect server is logically constituted of a server transaction layer and a transaction user that has access to a location service of some kind (see Section 10 for more on registrars and location services).

接收到非Cancel 请求与Cancel 请求的处理。It is the responsibility of clients to detect forwarding loops between redirect servers.

3. Dialog and How to construct a dialog(by request and response) and then how subsequent requests and responses are sent within a dialog.

A dialog is identified at each UA with a dialog ID, which consists of a Call-ID value, a local tag and a remote tag.

A dialog contains certain pieces of state needed for further message transmissions within the dialog. This state consists of the dialog ID, a local sequence number , a remote sequence number, a local URI, a remote URI, remote target, a boolean flag called "secure", and a route set, which is an ordered list of URIs.(对话的"early" 状态与"confirmed"状态)

3.1 Creation of a Dialog

Dialogs are created through the generation of non-failure responses to requests with specific methods. Within this specification, only 2xx and 101-199 responses with a To tag, where the request was INVITE, will establish a dialog.

3.1.1 UAS Behavior

当UAS响应一个应答,并且这个应答会建立一个对话时:

1)copy all Record-Route header field values from the request into the response

2) add a Contact header field to the response.

3) If the request arrived over TLS, and the Request-URI contained a SIPS URI, the "secure" flag is set to TRUE

4) The remote URI MUST be set to the URI in the From field, and the local URI MUST be set to the URI in the To field

3.1.2 UAC Behavior

1)MUST provide a SIP or SIPS URI with global scope in the Contact header field of the request.

2)If the request was sent over TLS, and the Request-URI contained a SIPS URI, the "secure" flag is set to TRUE.

3)The route set MUST be set to the list of URIs in the Record-Route header field from the response, taken in reverse order and preserving all URI

parameters.

......

3.2 Requests within a Dialog

建立对话之后,可以在对话中创建新的transaction。

对话中的请求可以包含Record-Rout 和 Contact头域,尽管他们可能修改Remote target URI, 但这些请求不会导致对话的路由被修改。

3.2.1 UAC Behavior

3.2.1.1 Generating the Request

对话中的请求由许多对话的状态组成。

3.2.1.2 Processing the Responses

3.2.2 UAS Behavior

UAS 收到请求并处理请求时相关状态要么一起改变,要么一起不变。

3.3 Termination of a Dialog

1)对话外的请求产生一个非2XX应答,会终结“early dialog”

2)BYE 方法终结一个对话

4.Invite, Register,Options,ACK,Byte,Cancel 方法

四.SIP 概念封装成类

1)把所有的对象(概念)list 出来2)把消息在对象之间的流动及处理过程整理出来3)把对象之间的关系整理出来

1. 类<---->概念

SipMessage(Header field(Request Line、StatusLine、Form、To、SDP......))

UAC/UAS/Proxy core

Dialog/Session(A 2xx response to an INVITE establishes a session, and it also creates a dialog between the UA that issued the INVITE and the UA that generated the 2xx response. Therefore, when multiple 2xx responses are received from different remote UAs (because the INVITE forked), each 2xx establishes a different dialog. All these dialogs are part of the same call.)

Transaction

Transport

Timer

2.类的实现

五.建立测试环境六.其它

1.Dialog 的判断TU(UAC/UAS/Proxy core) Client/Server Transaction

Transport

SipMessage

2.Transaction 的判断

3.CSeq 的参数算法

使用32位长整数(即使每秒产生一笔,也要136年才会重复),非0的初始值可以考虑采用时间来作为初始序列号(31位有符号或32位无符号)。

4.Target Refresh requests ??

12.1.1.1

5.Via 头域的Branch 参数

6.

sip协议原理分析及总结

SIP协议学习总结 1、SIP协议定义 SIP(Session Initiation Protocol,即初始会话协议)是IETF提出的基于文本编码的IP电话/多媒体会议协议。用于建立、修改并终止多媒体会话。SIP 协议可用于发起会话,也可以用于邀请成员加入已经用其它方式建立的会话。多媒体会话可以是点到点的话音通信或视频通信,也可以是多点参与的话音或视频会议等。SIP协议透明地支持名字映射和重定向服务,便于实现ISDN,智能网以及个人移动业务。SIP协议可以用多点控制单元(MCU)或全互连的方式代替组播发起多方呼叫。与PSTN相连的IP电话网关也可以用SIP协议来建立普通电话用户之间的呼叫。 SIP协议在IETF多媒体数据及控制体系协议栈结构的位置 H.323SIP RTSP RSVP RTCP H.263 etc. RTP TCP UDP IP PPP Sonet AAL3/4AAL5 ATM Ethernet PPP V.34 SIP协议支持多媒体通信的五个方面: ◆用户定位:确定用于通信的终端系统; ◆用户能力:确定通信媒体和媒体的使用参数; ◆用户有效性:确定被叫加入通信的意愿; ◆会话建立:建立主叫和被叫的呼叫参数; ◆会话管理:包括呼叫转移和呼叫终止; SIP协议的结构 SIP是一个分层的协议,也就是说SIP协议由一组相当无关的处理层次组成,这些层次之间只有松散的关系。 SIP最底层的是它的语法和编码层。编码方式是采用扩展的Backus-Naur Form grammar (BNF范式)。 第二层是传输层。它定义了一个客户端发送请求和接收应答的方式,以及一 个服务器接收请求和发送应答的方式。所有的SIP要素都包含一个通讯层。 第三层是事务层。事务是SIP的基本组成部分。一个事务是UAC向UAS发送的一个请求以及UAS向UAC发送的一系列应答。事务层处理应用服务层的重发,匹配请求的应答,以及应用服务层的超时。任何一个用户代理客户端完成的事情都是

基于SIP的视频会议结构和原理

摘要根据 IETF SIPPING 工作组提出的集中式会议模型,设计并实现了基于 SIP 的视频会议系统。该系统各部分可分别设计,具有良好的可扩展性。详细介绍了此系统的结构和工作原理。 前言 近几年来,随着计算机技术、通信技术和互联网技术的飞速发展,视频会议的应用范围正逐渐从传统的专业领域、大型企业等高端用户向中小企业等普通用户和个人用户拓展。据有关机构的分析结果显示,2004 年我国视频会议市场的规模已经达到 18.7 亿元,并以每年 26% 的速度递增,市场前景十分广阔。 本文主要介绍了一种基于 SIP 的集中式视频会议模型,并根据此模型设计了初步的实现方案,分析了此方案的工作原理。目前, IETF 领导的对 SIP 会议模型的研究还处于草案阶段,并没有成为标准,因此,对 SIP 会议框架及其实现技术的研究具有一定的理论和实践意义。 1 视频会议系统的主流技术标准 目前,视频会议系统的主流技术标准有 2 个, H.323 和 SIP[1] 。前者是由 ITU-T SG16 定义,包括 H.225 呼叫控制信令和 RAS 信令、 H.245 媒体控制信令和 H.450 补充业务信令规范;后者由 IETF MMUSIC 工作组定义,包括 SDP 媒体描述规范。 H.323 系统沿用传统电信网的设计理念,兼顾传统 PSTN 呼叫流程和 IP 网特点而发展成熟,吸取了许多电信网的组网、互联和运营经验,能与 PSTN 网、窄带视频业务以及其他数据业务和应用网互联互通,近年来得到了广泛的应用,尤其是在组建 VoIP 大网方面凸现了其技术优势。 H.323 协议范围广,涵盖了各种独立设备、个人计算机技术以及点对点和点对多点的视频会议,该协议解决了视频会议中呼叫与会话控制、多媒体与带宽管理等许多问题。也正是因为 H.323 系统在设计的时候考虑的问题太多,整个体系结构显得庞大且较为复杂,限制了其在中小企业的部署。 SIP 是用来建立、修改和终结多媒体会话的应用层控制协议,主要完成用户定位、用户能力交换、呼叫建立、呼叫处理等功能。它继承了互联网协议的设计理念,与 H.323 协议相比,具有简单灵活、扩展方便的特点,可方便地与其他互联网协议结合提供丰富的 IP 多媒体业务,以便在各种网络环境下部署。 目前,大规模商用 VoIP 网络和会议系统都采用 H.323 标准,但随着 VoIP 技术的进一步发展和视频会议系统应用的逐渐普及, SIP 协议正日益受到业界的重视。 3GPP 已经确定将 SIP 协议作为第三代移动通信全 IP 网络的控制协议,制订了基于 SIP 的 IP 多媒体子系统( IMS )。业界也已经确定将 SIP 作为下一代网络( NGN )的核心控制协议。与此同时, SIP 协议及其应用的标准化工作也在积极的进行之中,这其中就包括由 IETF SIPPING 工作组领导的集中式多媒体会议的标准化工作和 XCON 工作组领导的会场控制和 CPCP ( Conference Policy Control Protocol )的标准化工作。随着这些标准的制订,基于 SIP 的视频会议系统必将获得越来越广泛的应用。 2 集中式会议系统模型

SIP业务基本知识

1、SIP业务基本知识 1.1 业务介绍 会话初始协议(Session Initiation Protocol)是一种信令协议,用于初始、管理和终止网络中的语音和视频会话,具体地说就是用来生成、修改和终结一个或多个参与者之间的会话。SIP的业务模式是一个点对点协议,其中有两个要素——SIP用户代理和SIP网络服务器。用户代理是呼叫的终端系统元素,而SIP 服务器是处理与多个呼叫相关联信令的网络设备。用户代理本身具有一客户机元素(用户代理客户机UAC)和一服务器元素(用户代理服务器UAS)。客户机元素初始呼叫而服务器元素应答呼叫。这允许点到点的呼叫通过客户机-服务器协议来完成。下图是SIP业务的网络结构和各个参与者的关系。 SIP业务的核心特点集中在SIP的设计目标之一是提供类似公用交换电话网(PSTN)中呼叫处理功能的扩展集。在这个扩展集中,实现类似日常电话的操作:拨号,振铃,回铃音或者忙音,只是实现方式和术语有所不同。SIP也实现了许多信令系统7(SS7)中更高级的呼叫处理功能,尽管这两个协议相差很远。SS7是一个高度集中处理的协议,其特点表现为高复杂度的中心网络结构和无智能的哑终端(传统的电话机)。SIP则是一个点对点协议,所以它只需要一个相对简单的(因此也高度可扩展的)核心网络,而将处理工作下放给连接在网络边缘的智能端点(装有硬件或软件的终端设备)。SIP的许多功能在端点中实现,这与传统的SS7将其在网络核心设备实现的作法大异其趣。而协议的其他特点还有它是一个文本协议,所以易于调测,结构灵活;而且它是一个中性的底层传输协议,可

用TCP或UDP(推荐UDP);同时呼叫和媒体信息同时传送:媒体信息的传送由SDP传送 SIP是互联网工程任务组(IETF)多媒体数据和控制体系结构的一个组成部分,因此它与IETF的许多其他协议都有联系,例如RTP(实时传输协议)和SDP协议。SIP与许多其它的协议协同工作,仅仅涉及通信会话的信令部分(control message)。SIP报文内容传送会话描述协议(SDP),SDP协议描述了会话所使用流媒体细节,如:使用哪个IP端口,采用哪种编解码器等等。SIP的一个典型用途是:SIP“会话”传输一些简单的经过封包的实时传输协议流。RTP 本身才是语音或视频的载体。 1.2 业务过程和协议流程 ? 注册流程: (1)用户首次试呼时,终端代理A 向代理服务器发送REGISTER 注册请求;(2)代理服务器通过后端认证/计费中心获知用户信息不在数据库中,便向终端代理回送401Unauthorized 质询信息,其中包含安全认证所需的令牌; (3)终端代理提示用户输入其标识和密码后,根据安全认证令牌将其加密后,再次用REGISTER 消息报告给代理服务器;

sip协议简单解释

引言 节省费用以及想把语音和数据融合在一起的需求,促使了IP电话的蓬勃发展。 为了使IP电话为大众所接受,成为主流,甚至最终取代传统的POTS(Plain Old Telephone 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项功能:支持信令和控制,即支持

SIP协议的安全性机制研究

SIP协议的安全性机制研究 赵鹏通信一团技术室 摘要网络环境中的SIP协议需要安全机制保证信息传输的安全性。本文介绍了SIP协议在客户端和服务器段运用的安全性机制,包括客户端的主叫保密、认证字符串、处理可疑响应 以及服务器端的注册服务器、代理服务器、Internet服务器采取的安全机制。 关键词SIP协议安全机制服务器认证 1 引言 软交换是一种使用IP网络作为承载网络的技术,这使得软交换网络在发展过程中需要面对和解决IP技术本身存在的许多问题以及软交换技术作为一个新技术而存在的问题。软交换网络的通信协议和媒体信息主要采用IP数据包的形式进行传送,而且网络中接入的节点比较多,用户的接入方式和接入地点都非常灵活,所以软交换网络也就面临着比较突出的安全问题。 作为实现软交换技术的基本协议之一,SIP协议通过三类基本方式实现协议的安全机制。首先,SIP协议中定义了形式为“User:Password”的基本认证信息。它由本地用户提供,向远端用户或服务器查询是否具有访问该远端用户或服务器的权限,并通过被查询用户或服务器的响应信息得知查询结果。 其次,SIP协议在SIP消息中通过定义Call-ID、Encryption、Authentication、Proxy-Authentication、Priority-Authentication等消息头字段,实现了对呼叫序号唯一性、信息加密、服务器和用户访问权限、用户优先权限等方面的控制。 最后,SIP呼叫中的消息发送和接收过程按照加密、数字签名、检验数字签名、解密的顺序进行。SIP呼叫对用户使用的数字签名形式不作规定,但用户一旦选定某次呼叫的数字签名形式和消息加密方式,该呼叫中所有消息及消息中所有字段都遵从选定的加密规则。SIP 点对点呼叫使用端到端的数字签名和消息加密方式,而由于SIP呼叫实现多方通信时仍然使用端到端建立呼叫的方式,所以端到端加密方式仍能满足呼叫中所需的共享信息加密。 基于上述三种基本方式,SIP协议在服务器端和客户端实现了安全性机制。通过对SIP协议的跟踪和研究,本文将从呼叫信息保密、可疑响应处理、认证字符串和认证机制等方面讨论基于SIP协议的软交换网络中客户端和服务器的安全性机制的实现问题。 2 客户端的安全性机制 在保护智能客户端时需要考虑的安全性保证问题包括身份验证、授权、数据验证、保护敏感数据、审核和日志记录、异常管理等。通过解决上述安全性问题,可以保证用户身份和权限的正确、确保信息的完整性、保护应用程序不受恶意输入的威胁,并随时跟踪网络环境配置的变化。 为了确保呼叫安全,排除接收到的干扰性和破坏性消息,SIP用户采取了一系列机制确保手法信息的安全性和可靠性。在发送请求时,SIP用户通过主叫保密机制保护主叫用户的本地URI信息;在收到呼叫请求时,SIP用户通过分析访问者在请求消息中提供的认证字符串,确认访问者的身份和权限;在收到响应消息时,SIP用户对不可靠的响应进行进一步确认和处理。 (1)主叫保密机制

SIP原理

网络IP电话不仅具有成本低廉、网络资源利用率高等诸多优点,而且还可以进一步集成多媒体信息(包括语音、图像、数据等),以实现交互式的实时通信等,具有很大的发展潜力,且有逐渐取代传统PSTN 电话的趋势,成为NGN(Next General Network)中语音信息传输的主要形式。 目前构建IP电话系统结构的信令协议主要有H.323协议和SIP协议,二者完全平行,互不兼容。H.323协议是为多媒体会议系统而提出的。该协议采用传统电信网络繁琐的信令概念,非常庞大,无论从实现技术手段,还是使用和管理方法上都十分复杂。而SIP协议则是以现有的Internet协议为基础来构架IP电话业务网的应用层协议。它将网络设备的复杂性推向网络边缘,支持单播、多播通信、名称映射和重定向业务,还支持类似呼叫转发、呼叫拒绝等电信业务的实现以及支持用户移动性。与H.323相比,SIP更适用于智能用户终端,使用更加灵活,掌握更加容易。鉴于此,本文提出了一种客户机-服务器模式的符合SIP 协议规范的IP电话系统设计实现方案。 该系统具有以下特点: (1)它采用IP-IP通信模式; (2)电话终端设备直接与用户机USB接口相连,可方便地实现与被叫者的文本、语音等数据的可靠传输; (3)系统包含完整的用户数据管理系统和网络通话管理控制系统; (4)提供较高的QoS。 该系统充分利用SIP协议,提供了诸多增值服务,使得系统除具备普通电话的功能和业务外,还可以提供自主设置留言、来电过滤、跟踪呼叫等多种功能,适用于大中型企业集团或单位内部使用。 1、SIP协议概述 总体来说,SIP协议支持多媒体通信中以下几个方面的功能: (1)用户定位:确定通信中终端的位置; (2)用户可用性:确定被叫方是否愿意参与通信; (3)性能协商:确定通信中所用媒体及媒体参数; (4)会话建立:呼叫双方会话参数的建立; (5)会话管理:包括会话转移和中止、会话参数变更、调用新业务等内容。 SIP协议是一个客户服务器协议,用于发起和管理用户间的会话。SIP终端系统称为用户代理,即UA(User Agent),含用户代理客户机UAC(User Agent C1ient)和用户代理服务器UAS(User Agent sever)两部分。中间单元称为代理服务器。它的消息分为两大类:从客户端到服务器的请求(Request)和从服务器到客户端的响应(Response)。无论请求消息还是响应消息都是由起始行(Start-Line)、消息头部(Message—Header)和可选 的消息体(Message—Body)构成。

简述VOIP的基本原理和关键技术

简述VOIP的基本原理和关键技术 摘要:传统的IP网络主要是用来传输数据业务,采用的是尽力而为的、无连接的技术,因此没有服务质量保证,存在分组丢失、失序到达和时延抖动等情况。数据业务对此要求不高,但话音属于实时业务,对时序、时延等有严格的要求。因此必须采取特殊措施来保障一定的业务质量。 关键词:VOIP 基本原理关键技术 一、VOIP的基本原理 VOIP是建立在IP技术上的分组化、数字化传输技术,其基本原理是:通过语音压缩算法对语音数据进行压缩编码处理,然后把这些语音数据按IP等相关协议进行打包,经过IP网络把数据包传输到接收地,再把这些语音数据包串起来,经过解码解压处理后,恢复成原来的语音信号,从而达到由IP网络传送语音的目的。 二、VOIP的关键技术 VOIP的关键技术包括信令技术、编码技术、实时传输技术、服务质量保证技术、以及网络传输技术等。 1.信令技术。信令技术保证电话呼叫的顺利实现和话音质量,目前被广泛接受的VOIP控制信令体系包括ITU—T的H.323系列和IETF的会话初始化协议SIP。 ITU的H.323系列建议定义了在无业务质量保证的因特网或其它分组网络上多媒体通信的协议及其规程。H.323标准是局域网、广域网、Intranet和Intranet 上的多媒体提供技术基础保障。H.323是ITU-T有关多媒体通信的一个协议集,包括用于ISDN的H.320,用于B-ISDN的H.321和用于PSTN终端的H.324等建议。其编码机制,协议范围和基本操作类似于ISDN的Q.931信令协议的简化版本,并采用了比较传统的电路交换的方法。相关的协议包括用于控制的H.245,用于建立连接的H.252.0,用于大型会议的H.332,用于补充业务的H.450.1、H.450.2和H.450.3,有关安全的H.235,与电路交换业务互操作的H.246等。 H.323提供设备之间、高层应用之间和提供商之间的互操作性。它不依赖于网络结构,独立于操作系统和硬件平台,支持多点功能、组播和带宽管理。H.323具备相当的灵活性,支持包含不同功能的节点之间的会议和不同网络之间的会议。 H.323建议的多媒体会议系统中的信息流包括音频、视频、数据和控制信息。信息流采用H.225.0建议方式来打包和传送。 H.323呼叫建立过程涉及到三种信令:RAS信令,H.225.0呼叫信令和H.245控制信令。其中RAS信令用来完成终端与网守之间的登记注册、授权许可、带宽改变、状态和脱离解除等过程;H.225.0呼叫信令用来建立两个终端之间的连

sip与XDM概述

摘要:SIP协议是NGN中的重要协议,越来越得到业界的重视。本文通过SIP协议的背景、功能、网络元素、实现机制、以及SIP消息的组成等几个方面对SIP协议做了全方位的概要性介绍,以使读者对SIP有初步的概念和认识。 关键字:SIP NGN 代理服务器 一、SIP协议的背景和功能 SIP( 会话初始协议)的开发目的是用来帮助提供跨越因特网的高级电话业务。因特网电话(IP电话)正在向一种正式的商业电话模式演进,SIP就是用来确保这种演进实现而需要的NGN(下一代网络)系列协议中重要的一员。 SIP是IETF标准进程的一部分,它是在诸如SMTP(简单邮件传送协议)和HTTP(超文本传送协议)基础之上建立起来的。它用来建立,改变和终止基于IP网络的用户间的呼叫。为了提供电话业务它还需要结合不同的标准和协议:特别是需要确保传输(RTP),与当前电话网络的信令互连,能够确保语音质量(RSVP),能够提供目录(LDAP),能够鉴权用户(RADIUS)等等。 SIP被描述为用来生成,修改和终结一个或多个参与者之间的会话。这些会话包括因特网多媒体会议,因特网(或任何IP网络)电话呼叫和多媒体发布。会话中的成员能够通过多播或单播联系的网络来通信。SIP支持会话描述,它允许参与者在一组兼容媒体类型上达成一致。它同时通过代理和重定向请求到用户当前位置来支持用户移动性。SIP不与任何特定的会议控制协议捆绑。 本质上,SIP提供以下功能: 名字翻译和用户定位:无论被呼叫方在哪里都确保呼叫达到被叫方。执行任何描述信息到定位信息的映射。确保呼叫(会话)的本质细节被支持。 特征协商:它允许与呼叫有关的组(这可以是多方呼叫)在支持的特征上达成一致(注意:不是所有方都能够支持相同级别的特征)。例如视频可以或不可以被支持。总之,存在很多需要协商的范围。 呼叫参与者管理:呼叫中参与者能够引入其它用户加入呼叫或取消到其它用户的连接。此外,用户可以被转移或置为呼叫保持。 呼叫特征改变:用户应该能够改变呼叫过程中的呼叫特征。例如,一呼叫可以被设置为“voice-only”,但是在呼叫过程中,用户可以需要开启视频功能。也就是说一个加入呼叫的第三方为了加入该呼叫可以开启不同的特征。 二、SIP网络元素 SIP中有两个要素。SIP用户代理和SIP网络服务器。用户代理是呼叫的终端系统元素,而SIP服务器是处理与多个呼叫相关联信令的网络设备。 用户代理本身具有一客户机元素(用户代理客户机UAC)和一服务器元素(用户代理服务器UAS)。客户机元素初始呼叫而服务器元素应答呼叫。这允许点到点的呼叫通过客户机-服务器协议来完成。 SIP服务器元素提供多种类型的服务器。有三种服务器形式存在于网络中--SIP有状态代理服务器,SIP无状态代理服务器和SIP重定向服务器。由于呼叫者未必知道被呼叫方的IP 地址或主机名,SIP服务器的主要功能是提供名字解析和用户定位。可以获得的是email形式的地址或与被呼叫方关联的电话号码。使用该信息,呼叫者的用户代理能够确定特定服务器来解析地址信息--这可能涉及网络中很多服务器。 SIP代理服务器接收请求,决定将这些请求传送到何处,并且将它们传送到下一服务器(使用下一跳路由原理)。在网络中可以有多跳。 有状态和无状态代理服务器的区别是有状态代理服务器记住它接收的入请求,以及回送的响应和它转送的出请求。无状态代理服务器一旦转送请求后就忘记所有的信息。这允许有状态

SIP学习笔记

SIP学习笔记: 一SIP概述 1.SIP起源 2.SIP功能 3.SIP应用 4.SIP标准化 5.SIP结构 1.SIP起源: 1.1起源: 由IETF提起的一种信令协议,伴随着Internet的发展,最终,经过讨论,将SIPV1和SCIP进行合并,保留SIP协议。 1.2概述: SIP称为会话发起协议,是一个在IP网络上进行多媒体通信的应用层控制协议,它被用来创建、修改、和终结一个或多个参加者参加的会话进程。 SIP被称为是一种轻量级协议,只使用6个指令管理呼叫控制信息,SIP协议的简单易行是极低成本应用系统选择该协议的重要原因。基于文本编码,基于UTF-8,基于TCP/UDP 5060端口。 SIP可以基于IPV4也可以基于IPV6,是一个信令协议。 SIP并未对媒体传输加以定义,因此该协议能用在媒体传输作为专用设备的应用系统,提高效率并降低成本,SIP也允许通过任意数据报协议传输呼叫控制信息,使其在非TCP/IP 环境中也能使用。 SIP是一种客户机/服务器协议,发起方为客户(UAC),响应方为服务器(UAS),UAC和UAS都是指某个特定事物而言。 1.3 SIP编址: SIP使用统一资源定位符(URL)作为唯一标识。由两部分组成:用户名和主机名(用户名@主机名)。用户名指某个特定的应用程序,而主机名的解析有:DNS和注册服务器。 1.1起源: 由IETF提起的一种信令协议,伴随着Internet的发展,最终,经过讨论,将SIPV1和SCIP进行合并,保留SIP协议。 2.SIP功能; SIP支持会话描述,允许参与者在一组兼容媒体类型上达成一致,SIP不与任何特定的会议控制协议捆绑,。本质上,提供以下功能: 名字翻译和用户定位; 特征协商; .呼叫参与者管理; 呼叫特征改变;

VoIP基本原理与常见设备

导读--1995年以色列VocalTec公司所推出的Internet Phone,不但是VoIP网络电话的开端,也揭开了电信IP化的序幕。 1995年以色列VocalTec公司所推出的Internet Phone,不但是VoIP网络电话的开端,也揭开了电信IP化的序幕。人们从此不但可以享受到更便宜、甚至完全免费的通话及多媒体增值服务,电信业的服务内容及面貌也为之剧变。 一开始的网络电话是以软件的形式呈现,同时仅限于PC to PC间的通话,换句话说,人们只要分别在两端不同的PC上,安装网络电话软件,即可经由IP网络进行对话。随着宽频普及与相关网络技术的演进,网络电话也由单纯PC to PC的通话形式,发展出IP to PSTN (公共开关电话网络)、PSTN to IP、PSTN to PSTN及IP to IP等各种形式,当然他们的共通点,就是以IP网络为传输媒介,如此一来,电信业长久以PSTN电路交换网网络为传输媒介的惯例及独占性也逐渐被打破。 VoIP的原理、架构及要求 由Voice over IP的字面意义,可以直译为透过IP网络传输的语音讯号或影像讯号,所以VoIP就是一种可以在IP网络上互传模拟音讯或视讯的一种技术。简单地说,它是藉由一连串的转码、编码、压缩、打包等程序,好让该语音数据可以在IP网络上传输到目的端,然后再经由相反的程序,还原成原来的语音讯号以供接听者接收。 进一步来说,VoIP大致透过5道程序来互传语音讯号,首先是将发话端的模拟语音讯号进行编码的动作,目前主要是采用ITU-T G.711语音编码标准来转换。第二道程序则是将语音封包加以压缩,同时并添加址及控制信息,如此便可以在第三阶段中,也就是传输IP 封包阶段,在浩瀚的IP网络中寻找到传送的目的端。到了目的端,IP封包会进行译码还原的作业,最后并转换成喇叭、听筒或耳机能播放的模拟音讯。 在一个基本的VoIP架构之中,大致包含4个基本元素: (1)媒体网关器(Media Gateway):主要扮演将语音讯号转换成为IP封包的角色。 (2)媒体网关控制器(Media Gateway Controller):又称为Gate Keeper或Call Server。主要负责管理讯号传输与转换的工作。 (3)语音服务器:主要提供电话不通、占线或忙线时的语音响应服务。 (4)信号网关器(Signaling Gateway):主要工作是在交换过程中进行相关控制,以决定通话建立与否,以及提供相关应用的增值服务。 虽然VoIP拥有许多优点,但绝不可能在短期内完全取代已有悠久历史并发展成熟的PSTN电路交换网,所以现阶段两者势必会共存一段时间。为了要让两者间能相互沟通,势

相关文档
最新文档