SIP协议详解.docx

上传人:b****5 文档编号:4516040 上传时间:2022-12-01 格式:DOCX 页数:25 大小:28.84KB
下载 相关 举报
SIP协议详解.docx_第1页
第1页 / 共25页
SIP协议详解.docx_第2页
第2页 / 共25页
SIP协议详解.docx_第3页
第3页 / 共25页
SIP协议详解.docx_第4页
第4页 / 共25页
SIP协议详解.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

SIP协议详解.docx

《SIP协议详解.docx》由会员分享,可在线阅读,更多相关《SIP协议详解.docx(25页珍藏版)》请在冰豆网上搜索。

SIP协议详解.docx

SIP协议详解

SIP协议详解

请求消息消息含义

发起会话请求,邀请用户加入一个会话,会话描述含于消息体中对于两方呼叫来说,主叫方在会话描述中指示其能够接受的媒体类型及其参数被叫方必需在成功响应消息的消息体中指明其希望接受哪些媒体,还可以指示其行将发送的媒体

如果收到的是关于参加会议的邀请,被叫方可以根据-ID或者会话描述中的标识确定用户已经加入该会议,并返回成功响应消息

证实已收到对于请求的最终响应该消息仅和消息配套使用结束会话

取消尚未完成的请求,对于已完成的请求则没有影响注册

查询服务器的能力

表3-2响应消息

序号

状态码

信息响应

1xx

成功响应

2xx

重定向响应

3xx

客户出错

4xx

表示需要采取进一步动作,以完成该请求多重选择永久迁移临时迁移见其它使用代理代换服务

表示请求消息中包含语法错误或者服务器不能完成对该请求消息的处理错误请求无权要求付款

消息功能

表示已经接收到请求消息,正在对其进行处理试呼叫振铃

呼叫正在前转排队

表示请求已经被成功接受、处理

序号

状态码

禁止没有发现不允许的方法不接受要求代理权请求超时消失

请求实体太大请求太大不支持的媒体类型不支持的方案分机无人接听要求转机间隔太短暂时无人接听呼叫腿/事务不存在相环探测跳频太高地址不完整不清楚线路忙终止请求此处不接受代处理请求难以辨认

消息功能

服务器出错

5xx

表示服务器故障不能完成对正确消息的处理内部服务器错误没实现的无效网关不提供此服务服务器超时版本不支持

序号

状态码

消息太长

消息功能

全局故障

6xx

表示请求不能在任何服务器上实现全忙拒绝都不存在不接受

请求消息和响应消息都包括头字段和消息字段

第3章协议

概述

基本概念相关术语协议栈结构协议的应用协议消息

消息类型消息结构基本消息流程

用户注册流程成功的用户呼叫流程成功的中继呼叫流程成功的-T中继呼叫流程

第3章协议

概述

基本概念

会话启动协议是由提出并主持研究的一个在IP网络上进行多媒体通信的应用层控制协议,它被用来创建、修改、和终结一个或多个参加者参加的会话进程这些会话包括多媒体会议、电话、远程教育以

及远程医疗等即所有的因特网上交互式两方或多方多媒体通信活动,统称为多媒体会话参加会话的成员可以通过组播方式、单播联网方式或者两者结合的方式进行通信协议是一个正在发展和不断研究中的协议一方面,它借鉴了其他标准和协议的设计思想,在风格上遵循因特网一贯坚持的简练、开放、兼容和可扩展等原则,并充分注意到因特网开放而复杂的网络环境下的安全问题另一方面,它也充分考虑了对传统公共电话网的各种业务,包括业务和业务的支持

利用带有会话描述的邀请消息来创建会话,以使参加者能够通过交互进行媒体类型协商它通过代理和重定向请求用户当前位置,以支持用户的移动性用户也可以登记它们的当前位置协议独立于其他会议控制协议,它在设计上独立于下面的传输层协议,因此可以灵活方便地扩展其他附加功能

作为一个应用层的多媒体会话信令协议,可以被用来发起一个会话进程、在会话中邀请其他参加者加入会议,会话本身可以通过基于组播协议的会话通告协议、电子邮件、网页通告、以及轻量级号薄访问协议等方式预先通告各个可能的参加者协议支持别名映射、重定向服务、和业务它支持个人移动,即终端用户能够在任何地方、任何时间请求和获得已订购的任何电信业务总的来说,会话启动协议能够支持下列五种多媒体通信的信令功能:

用户定位:

确定参加通信的终端用户的位置;用户通信能力协商:

确定通信的媒体类型和参数;用户意愿交互:

确定被叫是否乐意参加某个通信;

建立呼叫:

包括向被叫“振铃”,确定主叫和被叫的呼叫参数;呼叫处理和控制:

包括呼叫重定向、呼叫转移、终止呼叫等等

协议可以通过、单播联网方式、或组播方式创建多方会话,支持和因特网电话之间的网关功能

协议可以与其他用于建立呼叫的信令系统或协议结合使用,它在设计上充分考虑了对其他协议的可扩展性譬如,协议支持的主叫可以识别出协议支持的被叫,通过网关利用协议向被叫发起并建立呼叫;另外,一个主叫可以识别出上的被叫及其电话号码,通过与相连的网关向被叫发起并建立呼叫协议不提供发言控制、投票等会议控制功能,也不规定如何管理一个会议但是协议可被用来引发这些会议控制协议协议本身不具备资源预留功能,但可以向被邀请者们传达这方面的信息

相关术语

1呼叫

一个呼叫是由一个公共源端所邀请的在一个会议中的所有参加者组成,由一个全球唯一的-ID进行标识

例如:

由同一个源邀请的一个会议的所有参加者构成一个呼叫;点到点IP电话会话是一种最简单的会话,它映射为单一的呼叫

通常情况下,呼叫由主叫方创建,但是更一般说来,呼叫可由并不参与媒体通信的第三方创建,此时会话的主叫方和会话的邀请方并不相同对于多播会议来说,一个用户可由不同的人邀请参加同一会议,则每一个邀请应视作不同的呼叫对于基于的会议,每个参与者使用一个呼叫邀请自己加入2事务

是一个客户/服务器协议客户和服务器之间的操作从第1个请求至最终响应为止的所有消息构成一个事务

一个正常的呼叫一般包含三个事务其中,呼叫启动包含两个操作请求:

邀请和证实,前者需要回送响应,后者只是证实已收到最终响应,不需要回送响应呼叫终结包含一个操作请求:

再见3

为了能正确传送协议消息,还需解决两个重要的问题一是寻址,即采用什么样的地址形式标识终端用户;二是用户定位沿用技术解决这两个问题

寻址采用,按照规定的导则定义其语法,特别是用户名字段可以是电话号码,以支持IP电话网关寻址,实现IP电话和的互通的一般结构为:

用户名:

口令主机:

端口;传送参数;用户参数;方法参数;生存期参数;服务器地址参数?

头部名=头部值

“”表示需采用协议和所指示的端系统通信

“用户名”可以由任意字符组成,一般可取类似与E-用户名形式,也可以是电话号码“主机”可为主机域名或4地址

“端口”指示请求消息送往的端口号,其缺省值为,即公开的端口号“口令”可以置于中,但一般不建议这样做,因为其安全性是有问题的“传送参数”指示采用还是传送,缺省值为

“用户参数”,的一个特定功能是允许主机类型为IP电话网关,此时,用户名可以为一般的电话号码由于语法表示无法区分电话号码和一般的用户名,因此,在域名后增加了“用户参数”字段该字段有两个可选值:

IP和电话,当其设定为“电话”时,表示用户名为电话号码,对应的端系统为IP电话网关“方法参数”指示所用的方法

“生存期参数”指示多播数据包的寿命,仅当传送参数为、服务器地址参数为多播地址时才能使用

“服务器地址参数”指示和该用户通信的服务器的地址,它覆盖“主机”字段中的地址,通常为多播地址

“传送参数”、“生存期参数”、“服务器地址参数”和“方法参数”均属于参数,只能在重定向地址,即后面所说的字段中才能使用下面给出若干个的示例:

;;

为用户名,为IP电话网关的IP地址

;:

;=;

为用户名,为主机的IP地址,为主机端口号用户参数为“电话”,表示用户名为电话号码

:

;=;

为用户名,为主机域名方法参数为“登记”4用户定位

用户定位基于登记用户终端上电后即向登记服务器登记,专门为此定义了一个“登记”请求消息,并规定了登记操作过程5定位服务

重定位服务器或代理服务器用来获得被叫位置的一种服务,可由定位服务器提供,但协议不规定服务器如何请求定位服务在华为U-解决方案中,兼任定位服务器的角色

6代理,代理服务器

作为一个逻辑网络实体代表客户端转发请求或者响应,可以同时作为客户端和服务器端代理服务器有三种形态:

、和,其可以采用分支、循环等方式向多个地址尝试转发请求

代理服务器的主要功能:

路由、认证鉴权、计费监控、呼叫控制、业务提供等在华为U-解决方案中,兼任代理服务器的角色7重定向服务器

重定向服务器将请求中的目的地址映射为零个或多个新的地址,然后返回给客户端,客户端直接再次向这些新的地址发起请求重定向服务器并不接收或者拒绝呼叫,主要完成路由功能,与注册过程配合可以支持终端的移动性在华为U-解决方案中,兼任重定向服务器的角色8注册员

注册员为接收注册请求的服务器,通常与或者共存注册员需要将注册请求中的地址映射关系保存到数据库中,供后续的相关呼叫过程使用,同时可以提供定位服务在华为U-解决方案中,兼任注册员的角色

9用户助理

用来发起或者接收请求的逻辑实体称为10用户助理客户

发起请求的一方称为,举例就是的一种实际形态

11用户助理服务器,举例就是的一种实际形态

注意:

和的划分是针对一个事务而言的

协议栈结构

协议栈结构如图3-1所示

图3-1协议栈

协议是多媒体数据和控制体系结构的一部分,与其它协议相互合作,例如:

用于预约网络资源,用于传输实时数据并提供服务质量反馈,用于控制实时媒体流的传输,用于通过组播发布多媒体会话,用于描述多媒体会话但是协议的功能和实施并不依赖这些协议

传输层支持:

协议承载在IP网,网络层协议为IP,传输层协议可用或,推荐首选

协议的应用

通过/-T与其它软交换系统互通,以及与其它域设备互通,协议在中的典型应用如图3-2所示:

图3-2在中的典型应用

协议消息

消息类型

消息采用文本方式编码,分为两类:

请求消息和响应消息1请求消息

用于客户端为了激活按特定操作而发给服务器的消息,包括,,,,和消息等,各消息功能如表3-1所示

表3-1请求消息

请求消息

消息含义

发起会话请求,邀请用户加入一个会话,会话描述含于消息体中对于两方呼叫来说,主叫方在会话描述中指示其能够接受的媒体类型及其参数被叫方必需在成功响应消息的消息体中指明其希望接受哪些媒体,还可以指示其行将发送的媒体

如果收到的是关于参加会议的邀请,被叫方可以根据-ID或者会话描述中的标识确定用户已经加入该会议,并返回成功响应消息

证实已收到对于请求的最终响应该消息仅和消息配套使用结束会话

取消尚未完成的请求,对于已完成的请求则没有影响注册

查询服务器的能力

2响应消息

用于对请求消息进行响应,指示呼叫的成功或失败状态不同类的响应消息由状态码来区分状态码包含三位整数,状态码的第一位用于定义响应类型,另外两位用于进一步对响应进行更加详细的说明各响应消息分类和含义如表3-2所示

表3-2响应消息

序号

状态码

信息响应

1xx

成功响应

2xx

重定向响应

3xx

客户出错

4xx

表示需要采取进一步动作,以完成该请求多重选择永久迁移临时迁移见其它使用代理代换服务

表示请求消息中包含语法错误或者服务器不能完成对该请求消息的处理错误请求无权要求付款禁止没有发现不允许的方法不接受要求代理权请求超时消失

请求实体太大

消息功能

表示已经接收到请求消息,正在对其进行处理试呼叫振铃

呼叫正在前转排队

表示请求已经被成功接受、处理

序号

状态码

请求太大不支持的媒体类型不支持的方案分机无人接听要求转机间隔太短暂时无人接听呼叫腿/事务不存在相环探测跳频太高地址不完整不清楚线路忙终止请求此处不接受代处理请求难以辨认

消息功能

服务器出错

5xx

全局故障

6xx

表示服务器故障不能完成对正确消息的处理内部服务器错误没实现的无效网关不提供此服务服务器超时版本不支持消息太长

表示请求不能在任何服务器上实现全忙拒绝都不存在不接受

请求消息和响应消息都包括头字段和消息字段

在消息中加入消息正文部分

消息结构

1请求消息

(1)请求消息结构

如图3-3所示是请求命令的格式,由起始行、消息头和消息体组成通过换行符区分消息头中的每一条参数行对于不同的请求消息,有些参数可选

图3-3请求消息结构

(2)请求消息参数

下面仅对几个常用的参数字段进行说明

-ID

该字段用以唯一标识一个特定的邀请或标识某一客户的所有登记

需要注意的是,一个多媒体会议可能会有多个呼叫,每个呼叫有其自己的-ID例如,某用户可数次邀请某人参加同一历时很长的会议用户也可能会收到数个参加同一会议或呼叫的邀请,其-ID各不相同用户可以利用会话描述中的标识,例如中的o字段的会话标识和版本号判定这些邀请的重复性

-ID的一般格式为:

-ID:

本地标识主机

其中,主机应为全局定义域名和全局可选路IP地址,此时,本地标识由在“主机”范围内唯一的字符组成否则,本地标识必须是全局唯一的值,以保证-ID的全局唯一性-ID字符需区分大小写-ID示例:

-Id:

其中,为主机的IP地址,--4为全局唯一的本地标识

所有请求和响应必须包含此字段,以指示请求的发起者服务器将此字段从请求消息复制到响应消息该字段的一般格式为:

:

显示名<->;=

其中,显示名为用户界面上显示的字符,如果系统不予显示,应置显示名为“匿名()”显示名为任选字段称为标记,为16进制数字串,中间可带连字符“-”当两个共享同一地址的用户实例用相同的-ID发起呼叫邀请时,就需用此标记予以区分标记值必须全局唯一用户在整个呼叫期间应保持相同的-ID和标记值字段的示例:

:

<:

>;=1c

该字段指明请求的接收者,其格式和相同,仅第一个关键词代之以所有请求和响应消息必须包含此字段

字段中的标记参数可用于区分由同一标识的不同的用户实例由于代理服务器可以并行分发多个请求,同一请求可能到达用户的不同实例由于每个实例都可能响应,因此需用标记来区分来自不同实例的响应需要注意的是,字段中的标记是由每个实例至于响应消息中的字段的示例:

:

<:

>

:

<:

>;=ca

注意,在中,-ID、和三个字段标识一个呼叫分支在代理服务器并行分发请求时,一个呼叫可能会有多个呼叫分支

称之为命令序号客户在每个请求中应加入此字段,它由命令名称和一个十进制序号组成,该序号由请求客户选定,在-ID范围内唯一确定序号初值可为任意值,其后具有相同-ID值,但不同命令名称、消息体的请求,其序号应加1重发请求的序号保持不变服务器将请求中的值复制到响应消息中,用于将请求和其触发的响应相关联

和请求的值和对应的请求相同,请求的序号应大于请求服务器必须记忆相同-ID的请求的最高序号,收到序号低于此值的请求应在给出响应后予以丢弃

由代理服务器并行分发的请求,其值相同严格来说,对于任何可由或请求取消的请求以及客户可连续发送多个具有相同-ID请求的情况都是需要的,其作用是判定响应和请求的对应关系字段的示例:

:

1

字段用以指示请求历经的路径它可以防止请求消息传送产生环路,并确保响应和请求消息选择同样的路径,以保证通过防火墙或满足其它特定的选路要求

发起请求的客户必须将其自身的主机名或网络地址插入请求的字段,如果未采用缺省端口号,还需插入此端口号在请求前传过程中,每个代理服务器必须将其自身地址作为一个新的字段加在已有的字段之前如果代理服务器收到一个请求,发现其自身地址位于头部中,则必须回送响应“检测到环路”

当请求消息通过网络地址翻译点时,请求的源地址和端口号可能被改变,此时字段就不能成为响应消息选路的依据为了防止这一点,代理服务器应校验顶端字段,如果发现其值和代理服务器检测到的前站地址不符,则应在该字段中加入“”参数,如此修改后的字段称为“接收方标记头部字段”例如:

:

//:

:

//:

;=

由点发出的请求消息路径外部地址为的网络地址翻译点后,到达代理服务器后者注意到前站发送地址和字段地址不符,就把实际发送地址作为接收方标记加在顶端字段的末尾,然后再将代理自己的地址作为新加的字段置于最上面

若代理服务器向多播地址发送请求,则必须在其头部字段中加入“多播地址()”参数,此参数指明该多播地址

代理服务器或收到头部字段时的处理规则是:

规则1:

第1个头部字段应该指示本代理服务器或如果不是,丢弃该消息,否则,删除该字段

规则2:

如果没有第2个头部字段,则该响应已经到达目的地否则,继续做如下处理

规则3:

如果第2个头部字段包含“”参数,则按该参数指示的多播地址发送响应,端口号由“发送方”参数指明,如未指明,就使用端口号响应的生存期应置为“生存期”参数指定的值,如未指明,则置为1

规则4:

如果第2个字段不包含“”参数,但有一个接收方标记字段,则应将该响应发往“”参数指示的地址

规则5:

如果既无“”参数又无标记,就按发送方参数指示的地址发送响应

字段的一般格式为:

发送协议发送方;隐藏参数;生存期参数;多播地址参数;接收方标记,分支参数

其中,发送协议的格式为:

协议名/协议版本/传送层,协议名和传送层的缺省值分别为和发送方为通常的发送方主机和端口号隐藏参数就是关键词,如有此参数,表示该字段已由上游代理予以加密,以提供隐私服务多播地址参数和接收方标记的意义如前所述生存期参数与多播地址参数配用分支参数用于代理服务器并行分发请求时标记各个分支,当响应到达时,代理可判定是哪一分支的响应字段的示例:

:

//:

;=16;=;=z9hG

该字段用于、和请求以及成功响应、呼叫进展响应和重定向响应消息,其作用是给出其后和用户直接通信的地址

和请求中的字段指示该请求发出的位置它使被叫可以直接将请求发往该地址,而不必借助字段经由一系列代理服务器返回对请求的成功响应消息可包含字段,它使其后请求可直接发往该字段给定的地址该地址一般是被叫主机的地址,如果该主机位于防火墙之后,则为代理服务器地址

对应于请求的呼叫进展响应消息中包含的字段的含义和成功响应消息相同但是,请求不能直接发往该地址,必须沿原请求发送的路径前传请求中的字段指明用户可达位置该请求还定义了通配字段“*”,它只能和值为0的“失效”字段配用,表示去除某用户的所有登记字段也可设定“失效”参数,给定登记的失效时间如果没有设定该参数,则用“失效”字段值作为其缺省值如果两者均无,则认为的失效时间为1小时请求的成功响应消息中的字段返回该用户当前可达的所有位置重定向响应消息,如用户临时迁移、永久迁移、地址模糊等消息中的字段给出供重试的其它可选地址,可用于对、和请求的响应消息字段的一般格式为:

地址;q参数;动作参数;失效参数;扩展属性

其中,地址的表示形式和,字段相同q参数,其取值范围为[0,1],指示给定位置的相对优先级数值越大,优先级越高动作参数仅用于请求它表明希望服务器对其后至该客户的请求进行代理服务还是重定向服务如果未含此参数,则执行动作取决于服务器的配置失效参数指明的有效时间,可用秒表示,也可用日期表示扩展属性就是扩展名字段的示例为:

:

<:

:

>;q=;=

-

该字段用于定义一个请求到达其目的地址所允许经过的中转站的最大值请求每经过一个中转站,该值减1如果该值为0时该请求还没有到达其目的地址,服务器将回送“”()响应并终止这个请求

设置该字段的目的主要是为了出现环路时不会一直消耗代理服务器的资源该字段的初始值为70

-字段的一般格式为:

-:

十进制整数

该字段给出代理服务器支持的所有请求消息类型列表字段的示例:

:

-

该字段表示消息体的大小,为十进制值应用程序使用该字段表示要发送的消息体的大小,而不考虑实体的媒体类型如果使用基于流的协议作为传输协议,则必须使用此消息头字段

消息体的长度不包括用于分离消息头部和消息体的空白行-值必须大于等于0如果消息中没有消息体,则-头字段值必须设为0用于构成请求消息和2xx响应消息的消息体-字段的一般格式为:

-:

十进制值-字段的示例:

-:

表示消息体的长度为个字节

-

-字段表示发送的消息体的媒体类型如果消息体不为空,则必须存在-头字段如果消息体为空且-头字段存在,则表示此类型的消息体长度为0-字段的示例:

-:

/

协议中定义的类临时响应消息的传输是不可靠的,即发送临时响应后并不能保证端能够接受到该消息

如果需要在该响应消息中携带媒体信息,那么就必须保证该消息能够可靠的传输到对端扩展为类响应消息的可靠传输提供了相应的机制新增加对临时响应消息的确认请求方法:

如果支持该扩展,则在发送的消息中增加:

头域和字段如果支持该扩展,则在发送类响应时增加:

头域和字段收到该响

应消息后需要向发送请求通知已收到该临时响应向发送对的2XX响应消息结束对该临时响应的确认过程

如果某一UA想要在发送的临时响应消息中携带消息体,那么和都必须支持和使用扩展以保证该消息的可靠传输举例:

:

-

-头字段包含有发起请求的用户终端的信息

显示用户代理的软件版本信息可能会令用户在使用有安全漏洞的软件易受到外界攻击,因此,应该使-头字段成为可选配置项举例:

-:

头字段指定了消息多长时间之后超时举例:

:

5

-

-头字段用在请求消息中,表示原因短语、会话描述或应答消息中携带的状态应答内容的首选语言类型如果消息中没有-头字段,则服务器端认为客户端支持所有语言举例:

-:

en

字段包含某个终端的鉴权证书首先介绍一下终端向服务器端请求认证的一般过程:

终端发起请求时如果服务器端需要对用户进行认证,那么会在本地产生本次认证的,并且通过认证请求头域将所有必要的参数返回给终端从而发起对用户认证过程

终端收到认证请求消息后根据服务器端返回的信息和用户配置等信息采用特定的算法生成加密的,并且通过新的请求消息发送给服务器端

服务器端在收到带有认证响应的新的请求消息后首先检查的正确性如果不是本地产生,则直接返回失败否则如果是本地产生,但是认证过程已经超时,则服务器端会重新产生并重新发起对用户的认证过程其中老的会通过参数返回

验证通过后服务器端会根据、用户名、密码、等采用和终端相同的算法生成,并且对此和请求消息中的进行比较,如果二者一致则用户认证成功,否则认证失败

字段的一般格式为:

认证方式,,,,,,

认证方式:

有、、-、等认证方式为-认证方式目前只支持-方式以后为了实现的卡号呼叫还会加入卡号认证的方式:

被认证的用户的用户名:

用于标识发起认证过程的域

由发起认证过程的实体产生的加密因子

终端在收到服务器的认证请求后根据服务器端产生的、用户名、密码、等信息经过一定的算法生成的一个字符串该字符串中包含了经过加密后的用户密码

发起的呼叫请求消息的-由于终端在收到认证请求后需要重新向服务器端发起请求该请求消息在经过网络服务器时某些字段包括-都有可能被修改认证头域的参数用于传递终端发起请求时原始消息的-用于对认证信息进行认证,这样才能保证认证过程的正确性:

如果在服务器端超时后终端才向服务器返回了带有认证响应的新的请求消息,则服务器端需要重新产生重新对用户进行认证其中中带有新的,老的会通过参数返回给终端:

用于传递生成的算法举例:

:

=""=""

=""="b7cdcf8dcb21ad3b6"=":

"

(3)请求消息示例

下面是请求消息编码的示例:

:

/

:

<

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1