基于sdl的sip协议设计(重定向服务器)(编辑修改稿)内容摘要:

举个例子,某个人想要重定向所有会话邀请 ,一个 SIP 服务器就可以帮他实现这个要求,同时,这个服务器又可以使用代理功能去处理其他的请求。 第 7 页 注册服务器 SIP 注册服务器是接收注册( Register)请求的服务器,用户向注册服务器发送了一个注册请求,注册服务器收到后,接收请求消息,注册成功后返回一个最终应答“ 200 OK”。 同时它会把这个新注册的用户信息送到定位服务器中,以便日后需要的时候可以很方便地查找用户的位置信息。 注册服务器从某种意义上说也可以是一个数据库,所有用户代理的位置信息都放在其中。 定位服务器 在 SIP 的实体中并没有定位服务器,而且 SIP 服务器和定位服务器之间也不像 SIP 实体之间那样使用 SIP 协议,但它却是 SIP 体系结构中很重要的一部分。 注册服务器把新注册的用户代理的信息传到定位服务器中,定位服务器也可以和本地的数据库相连,用来存储这些用户的注册信息,包括位置、 IP 地址等信息,为用户提供定位的功能。 一些定位服务器使用的是轻量级目录访问协议( Lightweight Directory Access Protocol, LDPA)或 My SQL 和 SIP 服务器进行通信。 第 8 页 第三章 SIP 工作流程及注册服务器配置和实现方法 SIP 工作流程 SIP 定义了注册 /注销、呼叫、重定向以及能力查询四种工作过程,下面结合图例说明几种典型的呼叫处理。 注册目的 注册就是将自己的 IP登记给注册服务器的过程, 以便其他用户通过一个称为统一资源指标符 URL 的地址来访问到。 URL 地址可在该用户域的 SIP 代理中解析。 每个用户在启动时, 都要到注册服务器注册当前的 SIP URL 和 IP 地址的绑定,服务器最后把这些信息保存在位置服务器中。 用户发送 REGISTER 请 求向服务器通知他们当前所处的位置,这样,所有进入以 SIP 格式所表示的目的地址的请求都被代理处理,或重定向到用户当前所在的 IP 地址。 注册过程为后续会话连接做准备。 注册过程 用户代理要通过 SIP 进行通信,首先要在相应的服务器上登记注册,如图 31 所示: 用 户 代 理 A l i c e 注 册 服 务 器R E G I S T E R ( 1 )4 0 1 ( 2 )R E G I S T E R ( 3 )2 0 0 O K ( 4 ) 图 31 SIP 注册流程 注册的具体流程如下: 1) 用户代理 Alice 发送 REGISTER 请求给注册服务器,请求登记注册; 2) 注册服务器通过在数据库中查询发现该用户 不合法,返回一个 401 错误(Unauthorized)给 Alice,该错误响应中包含了令牌信息,用于用户再次注册的安全验证; 3) Alice 再次发出注册请求,这时用户的账号密码等已被步骤 2 中的令牌作了加密处理; 4) 注册服务器再次收到 REGISTER 请求,通过对用户的加密信息进行解密后再到数据库中进行合法验证,若 Alice 的信息合法,则登记入库,注册成功。 另外,注册服务器会返回一个 200 OK 响应(成功响应)给用户代理 Alice。 第 9 页 通过重定向服务器的呼叫 图 32 给出了两个 UA之间通过重定向服务器进行呼叫的具体流程: 用 户 代 理 A l i c e 重 定 向 服 务 器 用 户 代 理 B o bI N V I T E ( 1 )3 0 2 ( 2 )A C K ( 3 )I N V I T E ( 4 )1 8 0 R I N G I N G ( 5 )2 0 0 O K ( 6 )A C K ( 7 )M E D I A ( 8 )B Y E ( 9 )2 0 0 O K ( 1 0 ) 图 32 通过重定向服务呼叫的具体流程 具体的呼叫流程如下: 1) 用户代理 Alice 发出会话邀请消息 INVITE; 2) 服务器收到请求后查询被叫方 Bob 的地址,然后发送 302 响应 (Moved Temporarily)给 Alice 的代理,告知 Bob 的地址信息; 3) Alice 的代理收到响应后发送 ACK 向重定向服务器证实收到的响应消息; 4) Alice 依照 302 的 Contact 中指明的地址直接发送 INVITE 消息给代理 Bob; 5) Bob 端振铃的同时发送 180 响应给 Alice; 6) Bob 用户摘机,发送 200 OK 响应给 Alice; 7) Alice 收到响应后返回 ACK 进行确认; 8) Alice 和 Bob 会话连接成功,两用户之间可以进行媒体流的传输; 9) Bob 欲结束通话,于是发出 BYE 请求,提出终止通话的请求; 10) Alice 同意结束会话,返回一个 200 响应,此后通话结束。 第 10 页 注册服务器配 置及实现方式 SIP 提供了一个搜索机制,如果一个用户希望建立和其他用户的会话, SIP 必须查找能够找到对方用户正在使用的当前主机 (hosts)。 这个搜索机制经常被 SIP 网络基本元素使用,比如 proxy 服务器,重定向服务器等等。 他们在接收、以及响应一个请求的时候,会基于这个用户的位置信息来判定这个消息应该发送到哪里。 要实现这个, SIP 网络部件考虑了一个抽象的服务:位置服务;位置服务是通过对特定地区提供地址绑定来实现的。 一个 proxy 会从把输入的 URI 转换到用户实际位置的位 置服务中得到最终用户的位置。 注册服务为特定地区的位置服务创建绑定关系,这个绑定关系是用来建立包含一个或者多个联系地址的 addressofrecord URI。 因而,当那个地区的 proxy 接收到一个请求,这个请求的 RequestURI 和 addressofrecord 的记录匹配,那么这个 proxy 会转发请求到这个 addressofrecord 中登记的联系地址中去。 注册服务器实现方式 注册服务是为了实现位置的绑定,而这种绑定的目的在于最大可能的搜索到目标地址,从而 成功转发消息。 怎么样才能最大可能的完成搜索呢。 这个就要求登记服务所覆盖的区域和 URI 中的 addressofrecord 所覆盖的区域相同。 注册服务器通过两种不同的注册方式来实现,用户注册方式和服务器注册方式。 用户注册方式 只有当对那个 addressofrecord 的请求会被路由到这个区域的时候,登记这个addressofrecord 到这个区域的位置服务才是有意义的。 因为每个 proxy 主要处理本域的 UA,所以,发往这些 UA 的消息基本上都是要经过他的 proxy。 这就要求 UA 必须向负责他的域的注册服务器进行注册。 UA 通过发送一个 register 消息到注册服务器进行注册,注册信息存储在位置服务。 凡是发送到 UA 的 proxy 的消息,通过查询 UA 的注册信息得到 UA 地址,然后转发消息。 如图 33所示: 注 册 服 务 器t h e r e . c o m位 置 服 务P r o x yS i p . c o m . t h e r eU A 2U A 1U A 2 U A 12 . 存 储4 . 查 询6 . I N V I T E5 . 响 应m ql i s a3 . I N V I T Em q @ t h e r e . c o m1 . R E G I S T E R 图 33 用户注册 第 11 页 第四章 重定向服务器 的设计以及在 SDL 上的实现 重定向服务器概述 代理服务器负责请求消息的路由。 某些体系结构下可能需要降低它们的负荷 ,并提高信令传输通道的鲁棒性 ,这时可依 靠请求重定向来达到目的。 重定向即服务器用响应消息将某一请求的路由信息返回给客户端 ,从而使服务器既起到了帮助选路的功能 ,又可以不必处理由该请求所导致的更多消息往来 当请求的发起者收到重定向响应后 ,它将基于收到的 URL 发送新的请求。 重定向通过把 URL 信息从网络的核心传递到边缘而使网络获得了相当大的扩展升级能力。 重定向服务器逻辑上由一个服务器端事务端的事务层和一个能够访问某种定位服务的事务用户组成。 定位服务器实质上是一个数据库 ,它包含单个 URL 到一个或者多个联系地址之间的映射 ,通过这些联系地址就能找到 URL 所对应 的用户或实体。 重定向服务器自己不发送任何 SIP 请求。 在收到除 CANCEL 以外的请求时 ,重定向服务器可以拒绝它 ,或者通过定位服务获得一个可选地址列表并返回一个 3XX 最终响应。 对格式正确的 CANCEL 请求 ,重定向应返回 2XX 最终响应。 该响应将结束被取消请求的 SIP 事务。 重定向服务器维护整个 SIP 事务的状态。 客户端检测重定向服务器之间发生的转发循环。 当重定向服务器返回某个请求的 3XX 响应时 ,它在 Contact头字段。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。