首页> 中国专利> 支持对对话中途失败的响应

支持对对话中途失败的响应

摘要

在一个实施例中,支持输出代理发现包括在本地代理处接收第一注册请求,其中第一注册请求从用户主体接收。输出代理集分配到用户主体。输出代理集包括输出代理。输出代理集标识符插入用于用户主体的第一注册响应内。输出代理集标识符允许用户主体识别多个输出代理。

著录项

  • 公开/公告号CN101490663A

    专利类型发明专利

  • 公开/公告日2009-07-22

    原文格式PDF

  • 申请/专利权人 思科技术公司;

    申请/专利号CN200780027564.2

  • 发明设计人 乔纳森·D·洛瑟博格;

    申请日2007-08-01

  • 分类号G06F15/16;G06F15/173;G06F15/177;

  • 代理机构北京东方亿思知识产权代理有限责任公司;

  • 代理人宋鹤

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 22:23:16

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-10-23

    授权

    授权

  • 2009-09-16

    实质审查的生效

    实质审查的生效

  • 2009-07-22

    公开

    公开

说明书

技术领域

本公开一般地涉及通信网络。

背景技术

通信网络的用户主体(user agent)可通过会话启动协议(SIP)代理 (proxy)来建立通信对话。在某些情况下,代理在对话期间可能失败,这 可能中断通信。用于响应于这种失败的已知技术在某些情况下不是令人满 意的。

附图说明

为了更完整地理解本公开及其优点,现在结合附图对以下描述进行参 考,其中:

图1示出了一部分通信系统的示例;并且

图2示出了图1的系统的操作示例。

具体实施方式

概述

根据本公开的教导,支持输出代理发现包括在本地代理处接收第一注 册请求,其中第一注册请求从用户主体接收。将输出代理集分配到用户主 体。输出代理集包括输出代理。将输出代理集标识符插入用于用户主体的 第一注册响应内。输出代理集标识符允许用户主体识别多个输出代理。

根据本公开的教导,响应于对话中途失败包括对于输出代理集中的每 个输出代理执行以下步骤:通过输出代理建立用户主体和本地代理之间的 流;并且维护用于流的连接表,其中连接表记录了通过流可访问的统一资 源标识符(URI)。关联于目标URI的已建立流被确定为已失败。关联于 目标URI的另一已建立流被识别和使用。

描述

图1是根据本公开的一个实施例的通信系统100的一部分的框图。在 实施例中,系统100包括用户主体101、网络103、一个或多个输出代理 104、以及如所示耦合的本地代理106。用户主体101已分别建立了通过网 络103到输出代理104b和104c的通信流102a和102b。输出代理104b和 104c已分别建立了到本地代理106的已注册通信流102c和102d。用户主 体101和本地代理106都包括接口(IF)110、一个或多个处理器114、以 及存储一个或多个连接表122的存储器118。

通常,系统100支持输出代理发现。输出代理104可向用户主体101 通知用于到本地代理106的通信的分配到用户主体101的输出代理集。本 地代理106也可向用户主体101通知输出代理集。在输出代理失败的情况 下,用户主体101可使用输出代理集中的备用输出代理104。

系统100还支持对对话中途失败的响应。用户主体101和/或本地代理 106可维护支持对对话中途失败的响应的连接表122。连接表122记录可 用于沿着用户主体101和本地代理106之间的流102通信的统一资源标识 符(URI)。用户主体101和/或本地代理106可使用连接表122来识别在 输出代理失败的情况下可使用的备用输出代理104。

用户主体101通常指可操作为与输出代理104和/或本地代理106传送 消息的任何适当设备。用户主体101例如可包括蜂窝电话、移动手持机、 个人数字助理(PDA)、诸如桌面或膝上型计算机之类的计算机、或者可 操作为通过网络103与输出代理104和/或本地代理106通信的任何其它适 当设备。

对话是用户主体101之间的通信。对话可包括一个或多个会话。会话 是涉及用户主体101和本地代理106的通信,并且可涉及一个或多个输出 代理104。用户主体101具有无限期地与用户主体101共存的实例标识 符。

通信流102(或连接)代表用户主体101和输出代理104之间以及输 出代理和本地代理106之间的沟通链路。例如,流102可能是传输控制协 议(TCP)连接、用户数据报协议(UDP)连接、或者任何其它适当的流 102。流102具有标识流的流标识符。流102可用于提供宽带接入,并且 甚至在存在输出代理104和本地代理106之间的居间(intervening)网络 地址转换时也可被重用。

用户主体101在注册期间创建朝向输出代理104的流102。用户主体 101可创建朝向不同输出代理104的多个流102。流102随后由用户主体 101和输出代理104保持为打开。用于用户主体101的消息路由到输出代 理104,该输出代理104经由流102将消息路由到用户主体101。

用户主体101可使用保持活动(keepalive)机制来维持流102。保持 活动机制可用于检测输出代理104的失败以及发起新的流102。保持活动 机制的示例包括STUN(简单穿越在NAT(网络地址转换)下面(Simple Traversal Underneath NAT))机制。

网络103通常指能够发送包的任何互连系统。网络103例如可包括以 下的全部或一部分:蜂窝电话网络,公共交换电话网络(PSTN),公有 或私有数据网络,局域网(LAN),城域网(MAN),广域网 (WAN),本地、区域、或全球通信或计算机网络,例如因特网,有线或 无线网络,企业内部互联网,其它适当通信链接,或者前述的任意组合。

输出代理104通常执行用于系统100的周边连网功能。例如,输出代 理104可为一个或多个会话向用户主体101和从用户主体101路由消息。 输出代理104可以是服务器、路由器、和/或其它适当的网络元件。尽管系 统100包括三个输出代理104a、104b、和104c,还是可使用任何适当数量 的输出代理104。

在一个实施例中,向用户主体101分配包括用户主体101可使用来与 本地代理106通信的输出代理104的输出代理集。在输出代理失败的情况 下,用户主体101可使用输出代理集中的备用输出代理104。

本地代理106通常执行用于系统100的核心功能。例如,本地代理 106可访问来自数据库(未明确地示出)的用户主体101的简档 (profile),处理注册,和/或提供位置服务功能。在某些实施例中,本地 代理106在结构上可类似于输出代理104并且/或者可执行输出代理104的 功能。因此,某些这样的实施例可不包括输出代理104。尽管系统100包 括单个本地代理106,但是可使用任何适当数量的本地代理106。

在一个实施例中,用户主体101和本地代理106分别存储连接表122a 和122b。连接表122将统一资源标识符(URI)与可用于到达URI的流 102相关联。

可以任何适当方式建立URI-流关联性。在一个实施例中,用于打开流 102的URI可与流102相关联。另外,来自SIP服务或记录路由报头字段 的URI可与流102相关联。通常,服务路由指派用户主体101可用以请求 输出服务的路由,并且记录路由指定对话中途请求要通过其来路由的代 理。服务路由可响应于注册请求而被接收,并且记录路由可响应于对话设 置请求而被接收。

在实施例中,如果服务或记录路由的URI的域匹配于已经和用于发送 注册请求的流102相关联的URI,则服务或记录路由URI可与流102相关 联。用户主体101可查看对话设置请求或响应给出的记录路由集的最顶层 URI的域。如果域匹配已经关联的URI,则用户主体101将记录路由URI 与流102相关联。代理可查看记录路由报头字段的下一跳URI的域。如果 域匹配已经关联的URI,则代理将记录路由URI与流102相关联。

在一个实施例中,根据用于流102的连接请求生成的URI可与流102 相关联。例如,代理可接收用于流102的连接请求,例如TCP/TLS连接。 如果流102的客户端提供证书,则根据证书中主机名生成的URI可与流 102相关联。

为向目标URI发送请求,用户主体101或代理搜索用于与目标URI相 关联的流102的URI-流关联性。发送者可通过比较目标URI和URI-流关 联性的候选URI来执行最长匹配搜索。在最长匹配中,URI和不透明URI 参数匹配。在下一个最长匹配中,用户和域部分匹配。在最小指定匹配 中,域部分匹配,但是用户部分不匹配。

系统10的组件可包括元件的任何适当布置,例如接口、逻辑、存储 器、其它适当元件、或任一前述的组合。接口接收输入,发送输出,处理 输入和/或输出,执行其它适当操作,或者执行任一前述的组合。接口可包 括硬件和/或软件。

逻辑执行组件的操作,例如执行指令以根据输入生成输出。逻辑可包 括硬件、软件、其它逻辑、或任一前述的组合。某种逻辑,例如处理器, 可管理组件的操作。处理器的示例包括一个或多个计算机,一个或多个微 处理器,一个或多个应用,其它逻辑,或者任一前述的组合。

存储器存储信息。存储器可包括计算机存储器(例如,随机访问存储 器(RAM)或只读存储器(ROM)),大容量存储介质(例如硬盘), 可移除存储介质(例如致密光盘(CD)或数字视频光盘(DVD)),数 据库和/或网络存储器(例如服务器),其它计算机可读介质,或者任一前 述的组合。

可对系统100做出修改,添加、或省略,而不偏离本发明的范围。可 集成或分离系统100的组件。例如,本地代理106可包括一个或多个输出 代理104的功能,或者相反。而且,系统100的操作可由更多的、更少 的、或其它的组件来执行。例如,本地代理106的操作可由一个以上的组 件来执行,或者输出代理104a、104b、和104c的操作可由两个或多个组 件来执行。另外,系统100的操作可使用任何适当逻辑来执行。如本文档 中所使用,“每一个”指集合中的每一个元件或者集合的子集中的每一个 元件。参考图2描述关于系统100的一般操作的进一步细节。

图2是示出根据本公开的一个实施例的图1的系统100的示例操作的 调用流程图。尽管该示例在会话启动协议(SIP)的上下文中说明了系统 100的一般操作,但是可使用任何适当的通信协议。示例使用用于流102 的传输层安全(TLS)连接。然而,可使用任何适当类型的连接。

用户主体101打开与本地代理106的流102,并且在步骤102向本地 代理106发送注册请求。注册请求具有请求URI:

example.com

本地代理106确定注册请求不是来自输出代理104,并且在步骤204 对于用户主体101分配输出代理104a、104b、和104c,作为输出代理集 104。在步骤206,本地代理发送向用户主体101通知输出代理集104的注 册响应。注册响应包括用户可用于例如在域名服务(DNS)服务器中查找 输出代理104a、104b、和104c的输出代理集URI:

outbound.example.com

在步骤208,用户主体101打开与所选输出代理104b的流102a并且 向输出代理104b发送注册请求。注册请求包括请求URI和具有输出代理 集URI的路由报头。用户主体101还将输出代理集URI与流102a相关 联,使得用于流102a的用户主体连接表包括:

outbound.example.com

在步骤210,输出代理104b选择备用输出代理104c,并且将标识备用 输出代理104c的路径URI添加到注册请求。路径URI可具有包括备用输 出代理104c、实例、和/或注册标识符的用户部分。

在步骤212,输出代理104b打开与本地代理106的流102c并且沿着 流102c将注册请求发送到本地代理106。输出代理104b还将请求URI与 流102c相关联,使得用于流102c的输出代理104b连接表包括:

example.com

本地代理106将输出代理集URI与流102c相关联,使得用于流102c 的本地代理连接表包括:

outbound.example.com

在步骤214,本地代理106向用户主体101发送拒绝,以便对证书进 行挑战。

在步骤216,用户主体101发送具有用户名的新注册请求。指示用户 主体101将新注册请求发送到输出代理集URI。用户主体101确定输出代 理集URI关联于流102a,并且沿着流102a发送新注册请求。

在步骤218,输出代理104b将路径URI添加到新注册请求。路径URI 包括输出代理集、用户名、实例、和/或注册标识符,并且还可包括表示保 持活动支持的保持活动标志:

outbound proxy set identifiers+user name+

instance identifier+registration identifier

@outbound.example.com;keepalive indicator

在步骤220,输出代理104b确定请求URI与流102c相关联,并且沿 着流102c向本地代理106发送新注册请求。

在步骤222,本地代理106向输出代理104b发送注册响应。注册响应 的服务路由包括作为最顶层路由的路径URI和作为第二路由的请求URI。 路径URI的域匹配于与流102c相关联的请求URI的域,所以本地代理 106将路径URI添加到用于流102c的本地代理连接表,以产生:

outbound.example.com

outbound proxy set identifiers+user name+

instance identifier+registration identifier

@outbound.example.com;keepalive indicator

在步骤224,输出代理104b将替代代理报头字段添加到注册响应。替 代代理报头字段包括备用输出代理104c的地址,并且可对输出代理104区 分优先次序:

outbound proxy set identifiers+user name+

instance identifier+registration identifier

@outbound.example.com;backup outbound proxy

address

在步骤226,输出代理104b将注册响应转发到用户主体101。

在步骤228,用户主体101记录输出代理104的优先级。用户主体 101将服务路由URI添加到用于流102a的用户连接表,以产生:

outbound.example.com

outbound proxy set identifiers+user name+

instance identifier+registration identifier

@outbound.example.com;keepalive indicator

在步骤230,用户主体101与输出代理104c建立流102d并且使用基 本与之前参考步骤216到228说明的相同的步骤来向输出代理104c注册。 分别与输出代理104b和104c的流102a和102b可具有相同的路径URI。

用于流102b的用户主体连接表包括:

outbound proxy set identifiers+user name+

instance identifier+registration identitier

@outbound.example.com;backup outbound proxy

address

outbound proxy set identifiers+user name+

instance identifier+registration identifier

@outbound.example.com;keepalive indicator

用于流102d的本地代理连接表包括:

outbound.example.com

user name+instance identifier+registration

identifier @outbound.example.com;keepalive

indicator

在步骤240,用户主体101发送用于与终止域150中的被呼叫方对话 的邀请请求。邀请请求包括具有最顶层路由的服务路由:

outbound proxy set identifiers+user name+

instance identifier+registration identifier

@outbound.example.com;keepalive indicator

邀请请求还包括标识被呼叫方的请求URI。用户主体101搜索URI-流 关联性以定位匹配于请求URI的URI,并且确定关联于流102a和102b的 URI匹配,表示可使用任一流102。用户主体选择流102a并且向输出代理 104b发送邀请请求。选择可以是任意的。

在步骤244,输出代理104b将不透明的URI参数添加到记录路由:

outbound proxy set identifiers+user name+

instance identifier+registration identifier

@outbound.example.com;opaque URI parameter

不透明的URI参数可包括SIP对话状态。在步骤246根据记录路由, 输出代理104b沿着流102c将邀请请求转发到本地代理106。

在步骤248根据记录路由,本地代理106将邀请请求转发到终止域 150。在步骤250,终止域150向本地代理106发送邀请响应。

本地代理106确定响应的记录路由的最顶层URI的域匹配于与流102c 相关联的请求URI的域,所以本地代理106将URI添加到用于流102c的 本地代理连接表,以产生:

outbound.example.com

outbound proxy set identifiers+user name+

instance identifier+registration identifier

@outbound.example.com;keepalive indicator

outbound proxy set identifiers+user name+

instance identifier+registration identifier

@outbound.example.com;opaque URI parameter

用于流102d的本地代理连接表包括:

outbound.example.com

outbound proxy set identifiers+user name+

instance identifier+registration identifier

@outbound.example.com;keepalive indicator

在步骤252,本地代理106b将邀请响应转发到输出代理104b。输出 代理104b用来自邀请响应的记录路由的URI更新输出代理104b连接表。

在步骤254,输出代理104b失败。在步骤256,用户主体101尝试向 本地代理106发送消息,但是发现流102a被切断了。为确定备用流102, 在步骤258,用户主体101执行URI的最长匹配搜索(如上所述)以寻找 可使用的流102。用户主体101确定可以使用到备用输出代理104c的流 102b,并且在步骤260,沿着流102b发送消息。本地代理106可使用类似 过程来沿着流102d向用户主体101发送消息。

可对这里描述的方法做出修改、添加、或省略,而不偏离本发明的范 围。方法可包括更多的、更少的、或其它的步骤。另外,可以任何适当顺 序来执行步骤。

本公开的某些实施例的优点在于输出代理可向用户主体通知用于到本 地代理的通信的分配给用户主体的输出代理集。在输出代理失败的情况 下,用户主体可使用输出代理集中的备用输出代理。

某些实施例的另一优点在于用户主体和/或本地代理可维护支持对对话 中途失败的响应的连接表。连接表记录了可用于沿着用户主体和本地代理 之间的流通信的统一资源标识符(URI)。用户主体和/或本地代理可使用 连接表来识别在输出代理失败的情况下可使用的备用流。

根据以下图形、描述、和权利要求,本公开的其它技术优点对于本领 域技术人员来说将很容易明白。而且,尽管上面已列举了特定优点,各种 实施例还是可包括列举优点的全部、某些或者一个也不包括。

尽管已用多个实施例描述了本公开,对于本领域技术人员来说暗示了 无数改变、变化、变更、变化、和修改,并且本公开旨在包含落入所附权 利要求范围内的这些改变、变化、变更、变换、和修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号