受控跨网络边界媒体流中继机的制作方法

文档序号:7593079阅读:132来源:国知局
专利名称:受控跨网络边界媒体流中继机的制作方法
技术领域
本发明一般涉及电子数据处理,具体涉及跨网络边界的流式传输数据的流程的管理。
(2)背景技术用于在数字设备观赏数字格式声像组合的数字多媒体在容量和衍生上快速增长。如今几乎每台新制造的个人电脑都包含一定形式的多媒体。诸如相机、录影机、电话和电视机等数字产品的销售都在稳定增长。随着因特网快速稳定的成长,多媒体在因特网领域变得越来越普及。这种计算机设备的用户对性能的期望也随着这种成长一起增长了。用户增长的期望不单延伸到硬件性能还延伸到数据自身的处理性能。
为多媒体应用开发了称为流式传输的技术来满足这些增长的期望。流式传输使数据可传输得能作为一条稳定且连续的流进行处理。这样的好处是数据可在发送完整个文件之前得以显示或收听,这是大型多媒体文件和诸如音频和视频数据等的实时媒体所必需的。
流式传输和发送媒体的一个一般问题是媒体跨网络边界的传递。网络的边界用于防止网络不合乎要求的渗透。通常将网络边界定义成一实体,它实际终接一网络并且/或者与另一网络连接,又终接一网络的逻辑地址空间并使其它网络的另一逻辑地址空间开始。信息业响应于这一问题并开发了发送媒体的信令协议。许多用于发送媒体的信令协议用熟知的地址信息在主信道上发信令和启动对话并有在一个或多个辅助信道上启动媒体传送的规定。在辅助信道上的地址信息不固定,是动态分配的。由于对辅助信道的端口分配的短暂性,网络边界不可能静态地配置成顾及媒体传过网络边界。因此,必须在边界上实施受控“孔”开关。在点对点对话中,在两端均可始发媒体。如果端点布局上位于网络边界的不同侧,两端点可以实现个体防火墙作为让媒体穿越到其它端点的途径。
信息业对这一问题作出响应。多数在公用网上发送的多媒体都使用IP协议。以IP协议发送的多媒体数据在协议信息中插入了IP地址和端口。一种解决办法是使用应用层网关(ALG)防火墙。ALG防火墙是检验应用协议流并只允许与安全政策相符的信息通过的应用意识防火墙。这种防火墙需要知道协议,以便能提取、变更或使用地址信息(例如IP地址和端口)。ALG防火墙可以为特定的协议设计成协议意识。然而,这种ALG防火墙在网络中有潜在的瓶颈,因为它们需要额外的逻辑和处理来解析并理解应用协议。
另外,在实施多媒体保安方案的系统中,ALG防火墙有可能不起作用。例如如果协议信息被加密且ALG防火墙不是具有所需密钥和运算法则的可信任实体,ALG防火墙将不能决定路由、安全等等,并会失效。另外,现在的多数部署在网络中的防火墙都不是多媒体协议意识。这些防火墙将不得不升级成贵得惊人的协议意识。另外,在现实的网络操作环境中,通常沿多媒体流的往返移动路径设置一系列的防火墙和NAT装置。为了确保多媒体的往返移动,每道防火墙都需是协议意识ALG防火墙。这意味着对已经部署的防火墙的新的投资和控制改变。随着新版本的协议不断地推出,ALG防火墙必需不断地升级以支持新的协议版本。这种控制改变和不断升级将带来防火墙的安全缺口,将网络暴露给入侵。
(3)发明内容本发明提供为跨网络边界的媒体流建立媒体对话的方法和系统。该系统包括一用于控制媒体中继机的媒体配置器控制模块。该媒体中继机保留媒体路径(它包含网络边界中的端口),打开媒体路径和端口,关闭媒体路径并提供关于媒体路径的信息。作为中介配置器控制模块的模块部分的媒体配置器适应于与媒体配置器控制模块和媒体中继机进行通信。
媒体配置器控制模块有一适应于处理从代理引擎接收到的多媒体对话事件的事件处理器。本地地址分解器与事件处理器通信并适应于确定媒体对话的地址标识符是否属于专用地址空间,并且当标识符属于专用地址空间时,确定用一控制元件或一控制元件组建立一条一端由地址标识符决定的媒体路径。控制元件为与事件处理器通信的客体。控制元件管理用于媒体中继机的资源。
媒体配置器控制模块还有一状态刷新定时器。该状态刷新定时器适应于找到超过规定时间还没有运行状态一致性核查的控制元件。状态一致性核查用来维持媒体中继机和与媒体中继机相关的控制元件之间的状态一致性。运行核查的原因是媒体中继机有可能在与运行媒体配置器控制模块的机器实体上不同的机器上运行。对每个超过规定时间还没有运行状态一致性核查的控制元件启动状态一致性核查。状态一致性核查包含锁定控制元件,检索所有位于由控制元件管理的媒体中继机建立的地址映射上的数据并决定由控制元件管理的媒体中继机和控制元件在建立的地址映射上是否有相同的信息。如发现由媒体中继机建立的映射和由控制元件映射的映射信息之间的不一致,释放所有与由控制元件映射但不在媒体中继机中的当前映射中的映射关联的端口并有条件地保留在媒体中继机中但不在控制元件映射中的映射。然后使该控制元件解锁。
多媒体对话事件包括对话启动信息、对话确认信息、对话建立信息、对话改变信息和对话终止信息。事件处理器响应于接收对话启动信息,通过本地地址分解器决定媒体流是否跨越专用和公用地址空间之间的边界,在媒体流跨边界时为数据流保留一条媒体路径,为使媒体配置器保留包括至少一个端口的媒体路径通过至少一个控制元件向该媒体配置器发送媒体路径保留请求,如保留请求成功,就在暂时存储器中存储为保留端口作的保留,修改对话描述以使对流公告的地址标识符变为保留的地址标识符,并向代理引擎发送一修改后的对话描述。
事件处理器响应于接收对话确认信息检索为媒体路径保留的公用地址参数,向媒体配置器发送媒体路径打开请求和有所保留的公用地址参数,如媒体路径打开请求成功,则对媒体路径修改涉及已打开的路径的对话描述,并向代理引擎发送修改后的对话描述。
事件处理器响应于接收对话终止信息,取得用于媒体对话的已打开的媒体路径的地址参数,向媒体配置器发送关闭具有该地址参数的媒体路径的请求,并在已开放媒体路径关闭后向代理引擎发送终止对话信息。
媒体中继机由发送到媒体配置器的命令控制。该形成应用编程接口的命令包含使媒体配置器初始化并提供媒体中继机的网络名的初始化命令、保留特定媒体路径的保留媒体路径命令、打开特定媒体路径的打开媒体路径命令和关闭特定媒体路径的关闭媒体路径命令。另外,将关闭所有媒体路径命令用于关闭由媒体配置器建立的所有媒体路径,将查询媒体路径信息命令用于取得关于媒体路径的信息。
本发明的附加特征和优点将因以下参照附图对实施例的详细描述而变得明显。
(4)


虽然所附的权利要求书详细地陈述了本发明的特征,本发明连同目的和优点可以从以下结合附图的详细描述得到最佳的理解图1为大体上示出本发明所驻留的示例性计算机系统的方框图;图2为大体上示出本发明工作的示例性环境的方框图;图3a为大体上示出根据本发明的传授在专用地址空间建立用户启动的媒体对话的步骤的方框图;图3b为大体上示出建立根据本发明的传授在公用地址空间建立用户启动的媒体对话的步骤方框图;图4为大体上示出根据本发明的传授当客户机在不同专用地址空间时建立媒体对话的步骤方框图;图5为大体上示出本发明的元件如何与实时通信服务器的元件连接的方框图;图6为本发明的媒体中继机控制模块的方框图;图7为示出媒体中继机控制模块开始启动媒体对话的步骤的流程图;图8为示出媒体中继机控制模块开始接通媒体对话的步骤的流程图;图9为示出媒体中继机控制模块开始终止媒体对话的步骤的流程图;(5)具体实施方式
本发明提供从两个方向中任一个或两个方向的网络边界通过诸如音频和视频数据等实时多媒体的系统和方法。本发明的媒体中继机动态地配置的防火墙堵在媒体路径中,使媒体可在一个或两个方向上流动,并翻译嵌入在辅助信道的首标(例如UDP/IP,TCP/IP等等)的媒体流动地址信息。媒体中继机管理端口的范围及代表防火墙的IP地址。媒体控制模块被用来连接媒体中继机和运行服务器引擎或实时通信(RTC)服务器的代理引擎的服务器操作系统。这使得在信令协议改变或出现新的协议时已配置防火墙的系统能继续使用防火墙。例如服务器引擎可以是微软公司生产的微软实时通信服务器2003的服务引擎。
见附图,其中同样的参考号指同种元件,本发明图示成在一合适的计算机环境中实施。尽管没有要求,但本发明将在计算机可执行指令的总的上下文中描述,例如由个人电脑执行的程序模块。程序模块通常包含例程、程序、对象、元件、数据结构等等,它们执行具体的任务或实施具体的抽象数据类型。另外,本领域的技术人员会理解本发明可使用其它计算机系统配置,包括手提式装置、多处理器系统、以微处理器为基础的可编程的消费电子设备网络PC机、微型机算机、大型机等等。本发明还可用于分布式的计算机环境,其中任务是由通过通信网络连接的远程处理装置执行的。在分布式计算机环境中,程序模块可以定位于本地和远程的存储装置。
图1示出本发明可以实施的适合的计算机环境100的例子。该计算机环境100仅仅是适合的计算机环境的一个例子而非对本发明的使用范围或功能性的任何限定。不能将计算机环境100解释成依赖或要求示例性环境100中所示元件中的任一个或其组合。
本发明可与许多其它通用或特殊用途计算机系统环境或配置一起操作。可以适合于与本发明一起使用的公知计算机系统、环境和/或配置的例子包含但不局限于个人电脑、服务器计算机、手提式或膝上装置、多处理器系统、基于微处理器的系统、固定机顶盒、可编程消费电子产品、网络PC机、微型计算机、大型计算机、包含任何以上系统或装置的分布式计算机环境等等。
本发明将在计算机可执行指令的总的上下文中描述,例如由电脑执行的程序模块。程序模块通常包含例程、程序、对象、元件、数据结构等等,它们执行具体的任务或实施具体的抽象数据类型。本发明还可用于分布式的计算机环境,其中任务是由通过通信网络连接的远程处理装置执行的。在分布式计算机环境中,程序模块可以定位于本地和远程的存储装置。
参照图1,实施本发明的示例系统包括以计算机110的形式出现的通用计算装置。计算机110的元件可包含但不局限于处理单元120、系统存储器130和将包含系统存储器的多种系统元件连接到处理单元120的系统总线121。该系统总线121可以是包括存储器总线或存储器控制器、外围总线和使用多种总线结构中任一种的本地总线在内的多种总线结构中的任一种。作为示例而不是限定,这些结构包括行业标准结构(ISA)总线、微通道结构(MCA)总线、强化行业标准结构(EISA)总线、视频电子设备标准协会(VESA)本地总线和周边元件互连接口(PCI)总线也称夹层总线。
计算机110通常包含多种计算机可读媒体。计算机可读媒体可以是可以由计算机110存取的任何媒体并包含易失性和非易失性媒体且可换及不可换媒体。作为示例而非限定,计算机可读媒体可包括计算机存储器媒体和通信媒体。计算机存储器媒体包含以任何方法或工艺实施于存储诸如计算机可读命令、数据结构、程序模块或其它数据等信息的易失性和非易失性媒体、可换及不可换媒体。计算机存储器媒体包含但不限于RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字通用光盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储装置或其它任何一种可用于存储所需信息并可由计算机110存取的媒体。通信媒体通常包含在诸如载波等已调数据信号或其它传输机构实施计算机可读命令、数据结构、程序模块或其它数据。已调数据信号的意思是已用诸如将信息编码于信号等方式调整或改变一个或多个特性的信号。作为示例而非限定,通信媒体包含诸如有线网络或直接有线连接的有线媒体和诸如声、RF、红外线的无线媒体和其它无线媒体。
系统存储器130包含诸如只读存储器(ROM)131和随机存取存储器(RAM)132等易失和/或非易失性存储器形式的计算机存储器媒体。基本输入/输出系统133(BIOS)包含帮助在计算机110中的元件间传送信息的基本例行程序,例如在启动时通常存储在ROM131。RAM132通常包含数据和/或可立即存取和/或当前由处理单元120操作的程序模块。作为示例而非限定,图1示出操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可包含其它可换/不可换、易失性/非易失性计算机存储器媒体。仅作为示例,图1示出读取或写入不可换且非易失性磁媒体的硬盘驱动器141、读取或写入可换且非易失性光盘152的磁盘驱动器151以及读取或写入,诸如CD ROM或其它光学媒体的可换且非易失性光盘156的光盘驱动器155。其它可用于示例的操作环境的可换/不可换、易失性/非易失性计算机存储器媒体包含但不限于磁带盒、闪速存储卡、数字通用光盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器141通常通过一个诸如接口140的不可换存储接口连接到系统总线121,硬盘驱动器151和光盘驱动器155通常通过诸如接口150的可换存储器接口连接到系统总线121。
以上讨论的并在图1示出的驱动器及与其相关联的计算机存储器媒体给计算机110提供计算机可读命令的存储器、数据结构、程序模块和用于计算机110的其它数据。例如在图1中硬盘驱动器141图示为对操作系统144、应用程序145、其它程序模块146及程序数据147进行存储。注意这些元件既可与操作系统134、应用程序135、其它程序模块136及程序数据137相同也可与之不同。这里将操作系统144、应用程序145、其它程序模块146及程序数据147标以不同的号码是为了表示它们至少是不同的版本。用户可以通过诸如键盘162、麦克风163的输入装置和诸如鼠标、跟踪球或触摸板的点击设备将命令和信息输入计算机110。其它输入装置(未示出)可包含操纵杆、游戏盘、圆盘式卫星电视无线、扫描仪等等。这些及其它输入装置常常通过耦合至系统总线的用户输入接口160连接到处理单元120,但可以由其它接口或诸如并行端口、游戏端口或通用串行总线(USB)的总线结构连接。监视器191或其它类型的显示装置也经过诸如视频接口190的接口连接至系统总线121。除了监视器之外,计算机还可包含其它诸如扬声器197、打印机196等可通过输出外围接口195连接的外围输出设备。
计算机110可在使用逻辑连接到一个或多个诸如远程计算机180的远程计算机的联网环境中操作。远程计算机180可以是个人计算机、手提装置、服务器、路由器、PC网、同类设备或其它常用网络节点,并通常包含许多或所有上述与计算机110相关的元件,尽管图1仅示出存储器装置181,图1所示的逻辑连接包含局域网(LAN)171和广域网(WAN)173,但也包含其它网络。这些联网环境在办公室、企业范围网、企业内部互联网和互联网中是很平常的。
在用于局域网联网环境时,计算机110由网络接口或适配器170连接至局域网170。在用于广域网联网环境时,计算机110通常包含调制解调器172或其它用于在诸如互联网的广域网173上建立通信的装置。调制解调器172可以是内置的或外置的,可以通过用户输入接口160或其它适合的机构与系统总线121相连。在联网环境中,以上描述的与计算机110关联的程序模块或其一部分可以存储在远程存储装置。作为示例而非限定,图1示出位于远程计算机181上的远程应用程序185。可以理解图示的网络连接是示例还可以使用建立计算机间通信连接的其它手段。
在以下的描述中,本发明将参照由一个或多个计算机(除非另外指出的)执行的动作和运算符号表示。这样,可以理解这种有时称为计算机执行的动作和运算包括对代表结构形式数据的电信号的处理计算机的处理单元操作。这种处理转换数据或将它维持在计算机的存储系统中的一些位置,该处理以本领域技术人员熟知的方式重新配置或改变计算机的操作。数据被维持的的数据结构是具有由数据格式规定的具体特性的存储器物理位置。虽然在上述环境中描述了本发明,但它不意味着限制,本领域的技术人员会理解,以下描述的多种动作和操作也可以用硬件实现。对话启动协议(SIP)(RFC2843)将用于描述本发明。本发明的元件和其它元件之间的信息名将使用SIP名。可以理解其它协议和信息名可以被使用。
图2示出可以操作本发明的合适的操作环境200的示例。图2示出可部署本发明的几种方法。防火墙202、204、206、208位于企业210的周边。媒体中继机220由代理引擎222控制且伺服具有媒体源/宿2281-2283的逻辑域224、226。媒体中继机230由代理引擎232控制且伺服具有媒体源/宿2284-2285的逻辑域234。媒体中继机236由代理引擎232控制且服务于具有媒体源/宿2286的逻辑域238。应理解的是代理引擎可伺服单个或多个媒体中继机,多个代理引擎可控制单个媒体中继机(当分配给每个代理引擎的地址资源为不连续时)或多个媒体中继机。还应理解的是操作环境200仅仅是合适的操作环境的一个例子而不是对本发明的使用范围和功能性的限定。不能把计算机环境200解释成带任何依赖性也不能解释成依赖或要求示例性环境200中所示元件中的任一个或其组合。
请见图3a和3b,在操作中,邀请请求(即,一发送给用户(或服务)请求加入发送者和接收者之间的对话的请求)被发送至代理引擎300。在出站呼叫中,该邀请请求是由客户机302(线320)发送的。代理引擎300提取媒体IP地址和端口并存储它们。它保留来自建立对话时要使用的共用地址资源组的公用标识符(例如用于建立媒体通信业务的公用UDP/IP或TCP/IP地址和端口组)。代理引擎300也修改对话描述协议(SDP)“细节”,以将所述邀请请求的媒体地址/端口变为媒体中继机302的公用地址/端口。代理引擎300通过防火墙306(线322-326)将经修改的邀请请求传递给公用客户机308。客户机308机回答OK(线328、330)。防火墙306将OK传送至代理引擎300(线332)。代理引擎300从OK信息中提取媒体IP地址和端口并存储它们。它修改SDP细节使媒体地址/端口变为媒体中继机304的专用地址/端口。代理引擎将OK传送至客户机302(线334)。在接收到ok之后,客户机302启动媒体(线336)并发送ACK。代理引擎300接收ACK并向媒体中继机304发送请求和它存储的信息(媒体IP地址和端口)(线338)。媒体中继机304为RTP和RTCP流或传输建立地址映射,以在客户机302、308之间流动。ACK到达客户机308(线340-344),客户机308当媒体流动为双向时启动媒体流程。媒体在线336-344上流动。
在入站呼叫中,邀请请求是由公用网络(线350)上的客户机308发出的。邀请请求到达防火墙306(例如到达防火墙的端口5060)。应该认识到防火墙必须配置成发送至端口5060的入站呼叫被发送至RTC服务器,其中的专用地址空间放置了媒体配置控制模块。现有的防火墙考虑到要建立这种映射。防火墙306将邀请请求传递到代理引擎(线354)。代理引擎300提取媒体IP地址和端口并存储它们。它保留来自建立对话时要使用的共和地址资源组的公用标识符。代理引擎300也修改对话描述协议(SDP)″细节″,以将所述邀请请求的媒体地址/端口变为媒体中继机302的公用地址/端口。代理引擎300将经修改的邀请请求传递给客户机302(线356)。客户机302回答OK(线358)。代理引擎300从OK信息中提取媒体IP地址和端口并存储它们。它也修改SDP“细节”,使媒体地址/端口变为媒体中继机304的专用地址/端口。代理引擎通过防火墙306(线360-364)将OK传送至客户机308。在接收到ok之后,客户机308启动媒体(线366)并发送ACK。代理引擎300接收ACK并向媒体中继机304发送请求和它存储的信息(媒体IP地址和端口)(线370)。媒体中继机304为RTP和RTCP流或传输建立地址映射,以在客户机302、308之间流动。ACK到达客户机302,客户机302当媒体流为双向时开始媒体流。媒体在线366-368、372-374上流动。
见图4,在两个客户都位于专用网络时发生相似控制流程。在图4中,客户机302位于防火墙306后面的专用网络400,客户机308位于防火墙404后面的专用网络402。在防火墙306和404之间的是诸如因特网的公用网络406。网络402具有代理引擎/媒体中继机408。通过线410-418及在线420-428上流动的媒体流发送建立媒体对话的控制信息。代理引擎/媒体中继机接收邀请请求并修改SDP“细节”,使媒体流象先前描述的那样在到达客户前,先流到媒体中继机。
安装并不断开发许多种防火墙。这些防火墙中有许多都有自己的专用软件与路由器、客户等连接。见图5,代理引擎500通过媒体控制模块520与媒体中继机510通信。媒体控制模块520从相关消息(例如邀请请求)提取媒体路由信息(IP地址、UDP端口),引导媒体中继机520对媒体流程建立/放弃NAT(网络地址翻译器)映射,并对代理引擎500传送有关建立的NAT映射的信息。
代理引擎500包括基栈502和代理逻辑电路504。基栈502将从Winsock(在TCP或UDP传输上)接收到的原始字符流等转换成协议信息流。例如如果基栈502为SIP基栈,它将原始字符流等转换成SIP信息流。代理逻辑电路将协议信息发送到已登记用于交易事件、多媒体对话事件或呼叫事件的扩展模块。媒体中继机控制模块520被归类为扩展模块。该媒体中继机控制模块520与代理引擎500一起登记,以传送所有多媒体对话事件。当代理引擎500检测到媒体中继机控制模块登记过的多媒体对话事件时,它通知媒体中继机控制模块并将信息传递给媒体中继机控制模块。媒体中继机控制模块520从信息中提取需要的信息,决定联系哪一个媒体中继机510,并向媒体中继机510发送一个做以下动作之一的请求根据信息中给定的参数为媒体可双向流动作准备;打开用于信息所属的对话的双向媒体路径;关闭用于信息所属的对话的双向媒体路径;检索代理引擎500的关注统计数字。
管理实体506为扩展模块提供管理服务。这些管理服务包括模块的启动和关闭、当整个系统启动或关闭时模块配置的存储和恢复以及模块配置中的动态改变机构。管理实体的例子是管理模块、SIP模块控制器、命令行解释程序和图形UI支持模块。
见图6,媒体中继机控制模块520包括翻译管理层522和媒体配置器5241-524N。翻译管理层522管理分配给所有由代理引擎500管理的媒体中继机510的地址资源。该翻译管理层522完成几个逻辑功能。它从代理引擎500接收多媒体对话事件和相关的协议信息(如SIP信息)并提取关于已传送信息中公告的媒体流的信息。翻译管理层522决定媒体对话中的媒体流是否跨企业网络的专用/公用边界。如果媒体对话中的媒体流跨企业网络的专用/公用边界,翻译管理层522决定哪一个媒体配置器将控制用于流的媒体路径。翻译管理层522将对话事件转换成合适的保留、打开或关闭媒体路径的请求。然后将所述请求发送至选定的媒体配置器并在媒体配置器不能打开或关闭用于流的媒体路径时执行需要的动作。媒体配置器5241-524N是实施代理引擎500和媒体中继机之间通信的实体。每个媒体配置器使用一可被相应媒体中继机理解的控制协议与相应的媒体中继机通信。
如前所述,管理实体506提供管理服务。对媒体控制模块520而言,这些管理服务包括启动、停止、存储、恢复、初始化和关闭命令。状态管理层508从基栈502接收协议信息流并将协议信息发送给事件处理器526。例如如果基栈为SIP基栈,该协议信息可包括邀请请求、OK信息、ACK信息、BYE信息和撤销(CANCEL)信息。该状态管理层508将协议信息转变为对话启动、对话确认、对话建立、对话改变和对话终止信息。
事件处理器526提供由代理引擎500传送的多媒体事件的处理。本地地址翻译器528对一给定地址标识符(IP地址或域名)决定该地址标识符是否属于专用地址空间。它使用专用域中的地址的本地地址数据库和由媒体控制模块520控制的域的本地域数据库。如果地址标识符属于专用地址空间,本地地址翻译器528决定哪个控制元件530或控制组应用于建立媒体路径。
控制元件530是由翻译管理层522为了代表具有所有分配给它的资源的单个媒体中继机510而建立的媒体中继机510的抽象体。控制元件530知道所有分配给媒体中继机的资源并管理那些代表媒体中继机的资源。控制元件的信息包括媒体中继机的控制IP地址、它的域名、媒体中继机服务器的专用地址的范围、分配给媒体中继机的公用地址标识符的范围(即,公用IP地址和端口范围)、用来与媒体中继机通信的控制协议和有关媒体中继机的其它配置信息。出于加载平衡的目的,控制元件组合成一控制组532。控制组532是服务于同一专用地址标识符的子集(例如逻辑域)的一组控制元件。建立控制组来分配来自多个中继机和/或防火墙中高密度逻辑域的加载。
例如控制组5321包括与媒体配置5241连接的控制元件5301用来与媒体中继机通信。类似地,控制组5322包括控制元件5302和5303,控制组5323包括控制元件5304、5305和5306。当将专用地址范围提供给媒体中继机模块处理时,本地地址翻译器为每个范围示例一个控制组530。使控制组的索引与地址范围关连并存储在数据库中。
状态刷新定时器534为维持控制元件530和代理引擎500控制的所有媒体中继机之间状态一致性的实体。需要状态一致性是由于媒体中继机510可能在实体上与代理引擎500运行的机器不同的机器上运行,这样会导致连接“失时效”。到预定期时,状态刷新定时器找到超过一定时间未对其运行状态一致性核查的那些控制元件。然后定时器534对每个控制元件启动状态一致性核查。状态一致性核查锁定控制元件,在所有由媒体中继机控制元件管理建立的地址映射上检索数据,然后确定媒体中继机510和控制元件530是否在建立的地址映射上具有完全一样的信息。如发现由媒体中继机建立的映射和由媒体中继机的控制元件映射的映射信息之间存在差异,定时器534力图解决这一差异。它释放与由控制元件映射但不在媒体中继机的当前映射中的映射关联的端口并有条件地保留在媒体中继机中但不在控制元件映射中的映射。接着定时器为控制元件解锁。
如前所述,事件处理器526提供由代理引擎500传送的多媒体事件的处理。传送的信息包括对话启动、对话确认、对话建立、对话改变和对话终止的信息。代理引擎500接收到邀请信息,就向事件处理器526发送对话启动信息。见图7,事件处理器526执行对话启动保留程序。它决定来自对话启动信息的对话描述是否为空(步骤700)。如对话描述为空,则不保留端口。如对话描述不为空,则事件处理器526经过地址分解器528对在对话描述中公告的每个媒体流确定该媒体流是否跨专用和公用地址空间的边界(步骤702)。如媒体流不跨边界,则保留用于媒体流的媒体路径。这是由负责保留用于流的媒体路径的媒体配置器完成的(步骤704)。保留用于媒体路径的公用端口(步骤706)。通过合适的控制元件向媒体配置器发送媒体路径保留请求(步骤708)。如保留请求成功,保留端口的保留存入暂时存储器(步骤710)。修改对话描述,以使为媒体流公告的地址标识符对接收方有一定意义。如失败,释放所有先前为对话所作的媒体路径保留(步骤712)并通知代理引擎要终止该对话(步骤714)。
如至少一股对话中的媒体流跨越地址空间边界,修改对话描述,以从公用地址资源组对保留的端口改变为流公告的地址标识符(步骤716)。将保留的端口用于形成信令对话的EM(扩展模块)对话语境,并传送该端至代理引擎500,作为EM语境存储(步骤718)。经修改的信息被发送至远端客户机(步骤720)。
代理引擎500接收到OK回答时,它将对话确认信息发送给事件处理器526。见图8,事件处理器执行对话确认资源提交程序。从代理引擎检索EM语境(步骤800)。它确定EM语境是否为空(步骤802)。如EM语境为空,则运行对话启动保留程序(见图7)。如EM文本不为空,则对于每股对话描述中公告的媒体流,事件处理器526通过本地地址分解器528确定媒体流是否跨专用及公用地址空间的边界(步骤804)。如媒体流不跨边界,则核查下一股媒体流。如媒体流跨边界,从EM语境检索先前为媒体流保留的公用地址参数(步骤806)。从EM语境中检索进行控制的媒体配置器的索引(步骤808)。以先前保留的公用地址参数作为参数对媒体配置器发送媒体路径打开请求(例如排队)(步骤810)。如排队成功,核查下一股媒体流。如排队失败,则对所有打开的对话中的路径将媒体路径关闭请求排队(步骤812)并通知代理引擎要终止对话(步骤814)。
如至少一股对话中的媒体流跨越地址空间边界,修改对话描述以适用于媒体流的打开的路径(步骤816)。将打开的端口作为信令对话的EM语境存储,并被传送至代理引擎500,作为EM语境存储(步骤818)。经修改的信息被发送至远端客户(步骤820)。
对话终止时,代理引擎500向事件处理器526发送对话终止信息。见图9,事件处理器执行对话终止程序。从由代理引擎500检索到的EM语境得到打开路径的信息(步骤900)。对于每个为对话打开的媒体路径,从EM对话语境检索媒体路径的地址参数(步骤902)。对于进行控制的媒体配置器的索引也是从EM对话语境中检索到的(步骤904)。关闭媒体路径的请求被发送至控制媒体配置器(步骤906)来命令媒体中继机关闭媒体路径。在所有媒体路径都关闭后,将终止对话信息发送至代理引擎500(步骤908)。
如前所述,媒体配置器524X通常负责媒体中继机510传送控制请求。通常每一NAT控制协议有一媒体配置器。媒体配置器可与防火墙通信以建立动态通道。媒体配置器做以下动作从翻译管理层522(通过控制元件)接收对媒体中继机进行发送(通过I媒体配置器接口(IMediaConfiguratorinterface))的请求;将该请求转换成专用于模块支持的控制协议的格式;向媒体中继机发送该请求;发送一请求至防火墙来创造动态通道;接收来自媒体中继机的回答;将该回答从模块支持的专用控制协议的格式转换成控制元件理解的格式;向翻译管理层发送经转换的回答。
所有媒体配置器实施一编程接口。对编程接口的命令包括初始化、保留媒体路径、打开媒体路径、关闭媒体路径、关闭所有媒体路径、查询媒体路径信息和停机。初始化命令包括使媒体配置器初始化并提供媒体中继机的网络名。在初始化时,媒体配置器创建其专用数据结构,使其初始化并建立具有媒体中继机和防火墙的控制通道。如果媒体路径保留成功则命令送回OK。如不成功,则送回出错码。所述保留媒体路径命令保留媒体路径并提供要保留的媒体路径的完整或部分说明。如媒体路径成功保留则命令送回成功信息。如不成功则送回出错码。
打开媒体路径命令按规定以提供的参数打开媒体路径。提供的参数为要打开的媒体路径的完整的说明。媒体配置器向媒体中继机和防火墙传送路径打开请求(提交先前保留的映射)来打开端口。应当事先保留媒体路径。如媒体路径成功打开则命令送回成功信息。如不成功则送回出错码。
关闭媒体路径命令关闭媒体路径。用命令提供对媒体路径的处理。媒体配置器与媒体中继机通信以去除预先为媒体路径建立的映射,并与防火墙通信以关闭预先为媒体路径打开的公用端口。如媒体路径关闭成功则命令送回成功信息。如不成功则送回出错码。
关闭所有媒体路径命令通过媒体配置器关闭所有媒体路径。媒体配置器与媒体中继机通信以去除预先由媒体配置器建立的所有映射,并与防火墙通信以关闭由防火墙代表媒体配置器打开的所有公用端口。
查询媒体路径信息命令被用于获得有关媒体路径的信息。提供对正在检索信息的媒体路径的处理和该媒体数据路径的长度。还提供要交付信息的存储器的指针。如媒体路径信息检索成功则命令送回成功信息。如不成功则送回出错码。关闭命令关闭媒体配置器。释放所有取得的资源。
可见给出了一种把实时媒体传过网络周边的系统和方法。尽管是根据对话启动协议描述的,本发明仍可应用于其它信令协议。本发明的媒体中继机代表防火墙管理端口和地址的范围,藉此简化防火墙的设计。用于与媒体中继机通信的本发明的媒体中继机控制模块允许管理者使用任何类型的防火墙。
考虑到应用本发明的原理的许多可能的实施例,应该承认这里参照附图描述的实施例只是用作示例而不应作为对本发明范围的限定。例如本领域的技术人员认可在软件中示出的实施例的元件可以在硬件中实施或反过来也一样,或者可以在不偏离本发明的精神的情况下修改例示的实施例的安排和细节。因此,这里描述的本发明想到了所有这些在以下权利要求和其等同物的范围内可能出现的实施例。
权利要求
1.一种用于控制媒体中继机的媒体配置器控制模块,其特征在于,所述媒体配置器控制模块包括一适应于处理从代理引擎接收到的多媒体对话事件的事件处理器;一与事件处理器通信的本地地址分解器,该本地地址分解器适应于确定地址标识符是否属于专用地址空间,并且在地址标识符属于专用地址空间时确定用控制元件和控制组中的至少一个建立一条一端由地址标识符决定的媒体路径;和至少一个与事件处理器通信的控制元件,该至少一个控制元件管理用于媒体继电器的资源。
2.如权利要求1所述的媒体配置器控制模块,其特征在于,至少一个控制元件包括一控制组和至少另一个控制元件。
3.如权利要求1所述的媒体配置器控制模块,其特征在于,还包括一状态刷新定时器,该状态刷新定时器适应于找到超过规定时间还没有运行状态一致性核查的控制元件;对每个超过规定时间还没有运行状态一致性核查的控制元件启动状态一致性核查,该状态一致性核查包括锁定该控制元件;在所有由控制元件管理的媒体中继机建立的地址映射中检索数据;确定由控制元件管理的媒体中继机是否和控制元件在建立的地址映射上具有相同的信息;如发现由控制元件管理的媒体中继机建立的地址映射和由控制元件映射的映射信息有差异释放与由控制元件映射但不在媒体中继机中当前映射中的映射关联端口;有条件地保留在媒体中继机中但不在控制元件映射中的映射;和使控制元件解锁。
4.如权利要求1所述的媒体配置器控制模块,其特征在于,还包括一媒体配置器,该媒体配置器适应于与至少一个控制元件和媒体中继机通信。
5.如权利要求1所述的媒体配置器控制模块,其特征在于,其中多媒体对话事件包括对话启动信息,该事件处理器响应于接收对话启动信息,还适应于通过本地地址分解器媒确定体流是否跨专用和公用地址空间的边界,当媒体流跨边界时为媒体流保留一媒体路径,经过至少一个控制元件向媒体配置器发送媒体路径保留请求为媒体配置器保留包括至少一个端口的媒体路径,如保留请求成功在暂时存储器中存储为该端口作的保留,修改对话描述以使对流公告的地址标识符变成保留的标识符,并向代理引擎发送修改后的对话描述。
6.如权利要求1所述的媒体配置器控制模块,其特征在于,其中多媒体对话事件包括对话确认信息,该事件处理器响应于接收对话确认信息,还适应于检索为媒体路径保留的公用地址参数,向媒体配置器发送媒体路径打开请求和所保留的公用地址参数路径的请求;如媒体路径打开请求成功,对媒体路径修改涉及已打开的路径的对话描述;向代理引擎发送修改后的对话描述。
7.如权利要求1所述的媒体配置器控制模块,其特征在于,所述多媒体对话事件包括对话终止信息,该事件处理器响应于接收对话终止信息,还适应于取得用于媒体对话的已打开媒体路径的地址参数,向媒体配置器发送关闭具有该地址参数的媒体路径的请求;在关闭已打开的媒体路径后向代理引擎发送一终止对话信息。
8.一种用于从发送方向接收方发送媒体流的建立媒体对话的方法,其特征在于,其中包括以下步骤确定媒体流是否跨第一地址空间和第二地址空间之间的网络边界;如媒体流跨该网络边界确定使用哪一个媒体中继机;命令媒体中继机保留具有至少一个用于媒体的端口的媒体路径;如保留了至少一个端口在暂时存储器中存储为该至少一个端口作的保留;从共用地址资源组将地址标识符修改成保留的地址标识符;修改对话描述以使用于媒体流的地址标识符变为保留的地址标识符;和在信息中向接收方发送该对话描述。
9.如权利要求8所述的方法,其特征在于,还包括在没有保留至少一个端口时终止对话的步骤。
10.如权利要求9所述的方法,其特征在于,还包括释放存储在暂时存储器中的保留的步骤。
11.如权利要求8所述的方法,其特征在于,其中命令媒体中继机保留媒体路径的步骤包括命令媒体配置器保留媒体路径的步骤。
12.如权利要求8所述的方法,其特征在于,还包括形成用于媒体对话的事件信息(EM)对话语境的步骤。
13.如权利要求12所述的方法,其特征在于,还包括向代理引擎发送EM对话语境的步骤。
14.如权利要求8所述的方法,其特征在于,还包括以下步骤响应于发送对话描述,接收对话确认信息;如媒体流跨边界空间命令媒体中继机打开媒体路径;并且经过媒体路径从发送方向接收方发送媒体。
15.如权利要求14所述的方法,其特征在于,还包括检索用于媒体对话的事件信息语境的步骤。
16.如权利要求14所述的方法,其特征在于,其中命令媒体中继机打开媒体路径的步骤包括命令媒体配置器打开媒体路径的步骤。
17.如权利要求14所述的方法,其特征在于,还包括当媒体中继机不打开媒体路径时终止媒体对话的步骤。
18.如权利要求14所述的方法,其特征在于,其中命令媒体中继机打开媒体路径的步骤包括打开至少一个端口的步骤。
19.如权利要求14所述的方法,其特征在于,还包括终止对话的步骤。
20.如权利要求19所述的方法,其特征在于,所述终止对话的步骤包括命令媒体中继机关闭媒体路径的步骤。
21.如权利要求20所述的方法,其特征在于,所述命令媒体中继机关闭媒体路径的步骤包括以下步骤取得用于媒体路径的地址参数;确定哪个媒体配置器正在控制媒体中继机;和向媒体配置器发送命令媒体中继机关闭媒体路径的请求;该请求具有用于媒体路径的地址参数。
22.如权利要求19所述的方法,其特征在于,所述终止媒体对话的步骤包括在媒体对话被终止后向代理引擎发送终止对话信息的步骤。
23.一种用于建立从发送方向接收方发送媒体流用的媒体对话的系统,其特征在于,包括一与网络边界装置通信的媒体中继机,该媒体中继机对网络边界中的媒体路径进行打开和关闭;和一与网络中继机通信的媒体配置器,该媒体配置器适应于接收来自媒体配置器控制模块的请求用于发送至媒体中继机,将该请求转换成专用于媒体中继机支持的控制协议的格式,向媒体中继机发送该请求,向网络边界装置发送创建动态通道的请求,接收来自媒体中继机的回答,将该回答从专用于配置器支持的控制协议的格式转换成媒体配置器控制模块理解的格式,并向媒体配置器控制模块发送经转换的回答。
24.如权利要求23所述的系统,其特征在于,所述媒体配置器控制模块与媒体配置器和代理引擎通信。
25.如权利要求23所述的系统,其特征在于,所述媒体配置器控制模块包括一适应于处理从代理引擎接收的多媒体对话事件的事件处理器;一与事件处理器通信的本地地址分解器,该本地地址分解器适应于确定地址标识符是否属于专用地址空间,并且当标识符属于专用地址空间时,确定用控制元件和控制组中的至少一个建立一条一端由地址标识符决定的媒体路径;和至少一个与本地地址分解器通信的控制元件,该至少一个控制元件管理用于媒体中继机的资源。
26.如权利要求25所述的系统,其特征在于,所述至少一个控制元件包括一控制组和至少一个其它的控制元件。
27.如权利要求25所述的系统,其特征在于,还包括一状态刷新定时器,该状态刷新定时器适应于找到超过一定时间还没有运行状态一致性核查的控制元件;对每个超过一定时间还没有运行状态一致性核查的控制元件启动状态一致性核查,该状态一致性核查包括锁定该控制元件;检索由控制元件管理的媒体中继机建立的所有地址映射上的数据;确定控制元件管理的媒体中继机是否与控制元件在已建立的地址映射上具有同样的信息;如发现由控制元件管理的媒体中继机建立的映射与由控制元件映射的映射信息之间有差异释放与由控制元件映射但不在媒体中继机中当前映射中的映射关联的端口;有条件地保留在媒体中继机中但不在控制元件映射中的映射;和使该控制元件解锁。
28.一种用于控制媒体中继机的方法,其特征在于,包括以下步骤发送使媒体配置器初始化的初始化命令并提供媒体中继机的网络名;发送保留媒体路径命令来保留特定的媒体路径;发送打开媒体路径命令来打开特定的媒体路径;发送关闭媒体路径命令来关闭特定的媒体路径;
29.如权利要求28所述的方法,其特征在于,包括发送关闭所有媒体路径命令来关闭所有由媒体配置器创建的媒体路径的步骤。
30.如权利要求28所述的方法,其特征在于,包括发送查询媒体路径信息命令来取得关于媒体路径信息的步骤。
31.一种具有用于建立媒体对话的计算机可执行指令的计算机可读媒体,该计算机可执行指令执行的步骤包括当媒体跨网络边界时命令媒体中继机保留包括至少一个端口的媒体路径;将媒体对话的地址标识符修改成保留的地址标识符;和将具有保留的地址标识符的媒体对话的经修改对话描述发送至媒体对话的接收方。
32.如权利要求31所述的计算机可读媒体,其特征在于,还包括用于执行以下步骤的计算机可执行指令响应于接收对话确认信息,命令媒体中继机打开媒体路径;和经过媒体路径将媒体发送至媒体对话的接收方。
33.如权利要求32所述的计算机可读媒体,其特征在于,还包括用于执行包括终止媒体对话在内的步骤的计算机可执行指令。
34.如权利要求33所述的计算机可读媒体,其特征在于,其中终止媒体对话的步骤包括命令媒体中继器关闭媒体路径的步骤。
35.如权利要求34所述的计算机可读媒体,其特征在于,其中命令媒体中继机关闭媒体路径的步骤包括命令媒体配置器关闭媒体路径的步骤。
36.如权利要求31所述的计算机可读媒体,其特征在于,还包括用于执行以下步骤的计算机可执行指令确定使用哪个媒体中继机;和当保留了至少一个端口时在暂时存储器中存储至少一个端口的保留。
37.如权利要求31所述的计算机可读媒体,其特征在于,其中命令媒体中继机打开媒体路径的步骤包括命令媒体配置器打开媒体路径的步骤。
38.一种用于控制媒体中继机的方法,其特征在于,包括以下步骤响应于接收初始化命令,提供媒体中继机的网络名;响应于接收保留媒体路径命令,命令媒体中继机保留特定的媒体路径;响应于接收打开媒体路径命令,命令媒体中继机打开特定的媒体路径;响应于接收关闭媒体路径命令,命令媒体中继机关闭特定的媒体路径。
39.如权利要求38所述的方法,其特征在于,还包括响应于接收关闭所有媒体路径命令,命令媒体中继机关闭所有由媒体配置器创建的媒体路径的步骤。
40.如权利要求38所述的方法,其特征在于,还包括响应于接收查询媒体路径信息命令,提供关于媒体路径的信息的步骤。
全文摘要
本发明为流跨网络边界的媒体流提供建立媒体对话的装置和方法。该系统包括由媒体配置器控制模块控制的媒体中继机。该媒体中继机保留媒体路径(包括网络边界中的端口),打开媒体路径,关闭媒体路径,并提供关于媒体路径的信息。媒体配置器适应于与媒体配置器控制模块和媒体中继机通信。该控制模块具有处理多媒体对话事件的事件处理器、确定媒体对话的地址标识符是否属于专用地址空间的本地地址分解器和用于建立媒体路径的控制元件。该控制元件管理用于媒体中继机的资源。状态刷新定时器用于维持所有由代理引擎控制的媒体中继机和控制元件之间的状态一致性。
文档编号H04L12/00GK1574798SQ20041004748
公开日2005年2月2日 申请日期2004年5月28日 优先权日2003年5月29日
发明者I·克利曼, A·格夫里列斯库 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1