视频会议呼叫建立的制作方法

文档序号:7756050阅读:300来源:国知局
专利名称:视频会议呼叫建立的制作方法
技术领域
本发明一般涉及视频会议,尤其涉及一种用于建立视频会议呼叫的方法和装置。
背景技术
传统的视频会议系统采用多会议单元(MCU),所述多会议单元是用于从各个视频会议参与者接收介质流并将所述介质流组合起来以便发送给视频会议会话中的目的客户的网络部件。MCS价格昂贵,并且其使用导致在传统视频会议系统中的可缩放性的局限性。
因此,具有一种用于建立不需使用MCU并且不需设置相应的缩放性问题的视频会议呼叫的方法和装置是所期望和有益的。

发明内容
通过本发明的一种用于建立视频会议呼叫的方法和装置解决了上述问题以及与现有技术相关的其他问题。
本发明使用服务器来建立视频会议呼叫。当在初始用户(初始请求视频会议的用户)和多个目的客户(初始客户希望与之建立视频会议的客户)之间建立视频会议呼叫时,本发明在初始客户和多个目的客户之间启动IP组播会话。当在初始客户和仅一个目的客户之间视频会议呼叫建立时,则启动IP单播会话。
根据本发明的一方面,提供一种用于建立多个客户间的组播会话的方法,包括下列步骤分配通用组播IP地址,从而客户可以参加视频会议会话;和将所述通用组播IP地址发送至所述多个客户中的至少一个。
根据本发明的另一方面,提供一种用于建立多个客户间的组播会话的系统,包括用于分配通用组播IP地址从而所述多个客户能够参与会话的装置;和在与分配装置的数据通信中用于将通用组播IP地址发送至所述多个客户中的至少一个的装置。
根据本发明的再一个方面,提供一种用于建立在多个客户间的组播会话的方法,包括以下步骤提供接收用于视频会议会话的通用组播IP地址的性能;和提供使用所述通用组播IP地址来接收视频会议内容的性能。
通过下面结合附图对优选实施例的详细说明,本发明的这些和其他方面、特征和优点将变得更加明显。


图1A是说明根据本发明的一个示意性实施例的可以应用本发明的计算机系统100的方框图;图1B是说明根据本发明的一个示意性实施例的单播视频会议会话的方框图;图1C是说明根据本发明的一个示意性实施例的单播视频会议会话的方框图;图2是说明根据本发明的一个示意性实施例的可以应用本发明的网络200的方框图;图3是说明根据本发明的一个示意性实施例的图2的视频会议服务器205的方框图;图4是说明根据本发明的一个示意性实施例的、包括在图3的数据库实体的成员数据库314的成员数据库条目400的方框图;图5是说明根据本发明的一个示意性实施例的、包括在图3的数据库实体302中的有效会话数据库312的有效会话条目500的方框图;图6是说明根据本发明的一个示意性实施例的简单网络管理协议(SNMP)客户-服务器架构600的方框图;图7是说明根据本发明的一个示意性实施例的、用于使用会话启动协议(SIP)为视频会议会话登记的方法的图表;图8A是说明根据本发明的一个示意性实施例的、用于使用会话启动协议(SIP)建立单播视频会议会话的方法的图表;图8B是说明根据本发明的一个示意性实施例的、当从客户#1802(图8A的步骤810)接收到INVITE请求时由图2的视频会议服务器205采用的步骤的图表;图9是进一步说明根据本发明的一个示意性实施例的图8A的方法的图表;图10是说明根据本发明的另一个示意性实施例的、用于使用会话启动协议(SIP)建立组播视频会话的方法的图表;图11是说明根据本发明的一个示意性实施例的、用于使用会话启动协议(SIP)取消视频会议会话的方法的图表;图12是说明根据本发明的一个示意性实施例的、用于使用会话启动协议(SIP)终止在两个客户间的视频会议会话的方法的图表;
图13是说明根据本发明的一个示意性实施例的、用于使用会话启动协议(SIP)终止在三个客户间的视频会议会话的方法的图表;图14是说明根据本发明的另一个示意性实施例的、用于使用会话启动协议(SIP)中之在三个客户间的视频会议会话的方法的图表;图15是说明根据本发明的一个示意性实施例的、用于分辨率和帧速率调整的信令通知方法的图表;图16是说明根据本发明的一个示意性实施例的分辨率和帧速率调整(客户2和客户3)前的信令通知的图表;图17是说明根据本发明的一个示意性实施例的分辨率和帧速率调整(客户2和客户3)后的信令通知的图表;图18A是说明根据本发明的一个示意性实施例的视频会议客户应用1800的方框图;图18B是进一步说明根据本发明的一个示意性实施例的、包括在图18A的多媒体接口层1802中的音频混合器1899的方框图;图18C是进一步说明根据本发明的一个示意性实施例的、包括在图18A中的多媒体接口层1802中的回声消除模块1898的方框图;图19是说明根据本发明的一个示意性实施例的、由包括音频编码解码器1804a和/或视频编码解码1804b中的解码器1890所采用的方法的图表;图20是说明根据本发明的一个示意性实施例的用户平面协议堆栈2000的图表;图21是说明根据本发明的一个示意性实施例的控制平面协议堆栈2100的图表;图22是说明根据本发明的一个示意性实施例的、对应于图18A的用户接口1808的屏幕快照2200的方框图;图23是说明根据本发明的一个示意性实施例的登记接口2300的图表;图24是说明根据本发明的一个示意性实施例的、用于会话启动的用户选择接口2400的方框图;图25是说明根据本发明的一个示意性实施例的、用于接受或拒绝输入呼叫的邀请接口2500的方框图;以及图26是说明根据本发明的一个示意性实施例的、用于建立在三个客户间的组播视频会议会话的方法的流程图。
具体实施例方式
本发明着眼于用于建立视频会议呼叫的装置和方法。本发明灵活地允许建立从初始客户(初始客户是最初请求视频会议的客户)到一个单一目的客户或到多个目的客户(目的客户是初始客户想要与其进行视频会议的客户)的视频会议会话。该呼叫建立是通过中央视频服务器来控制的而不是基于直接对等网络而完成的。
当在视频会议会话期间视频要被发送至多个目的客户时,所述中央视频会议服务器向初始客户分配组播组IP地址以便将视频内容发送至目的客户。所述目的客户随后通过由中央视频会议服务器发送的请求被要求加入所述组播组。
应当理解,下面的术语“客户”、“客户计算机”和“视频会议客户应用”在这里互换使用。
应当理解,本发明可以被以不同形式的硬件、软件、固件、专用处理器或其组合来实现。最好,本发明以硬件和软件的组合实现。而且,所述软件最好用在程序存储设备上具体化的应用程序实体来实现。所述应用程序可以被上传到一个包括任何合适的架构的机器,并由该机器来执行。最好,该机器在具有诸如一个或多个中央处理单元(CPU)、随机存取存储器(RAM)和输入/输出(I/O)接口的硬件的计算机平台上来实现。所述计算机平台还包括一个操作系统和微指令代码。这里描述的不同处理和功能可以或者是微指令代码的部分或者是经由操作系统执行的应用程序(或其组合)的部分。此外,诸如附加数据存储设备和打印设备的各种其它外设设备可以连接到所述计算机平台。
更应理解,由于附图中描述的系统组成部件和方法步骤最好以软件来实现,取决于本发明被编程的方式,在系统部件(或处理步骤)之间的实际连接可能不同。给出这样的教程(teaching),本领域的技术人员将能够预期到这些和类似的实现或本发明的配置。
图1A是说明根据本发明的一个示意性实施例的可以应用本发明的计算机系统100的方框图。该计算机处理系统100包括经由一个系统总线104操作性地连接到其他部件的至少一个处理器(CPU)102。只读存储器(ROM)106、随机存取存储器(RAM)108、显示适配器110、I/O适配器112、用户接口适配器114、音频适配器199和网络适配器198操作性地连接到系统总线104。
显示设备116通过显示适配器110操作性地连接到系统总线104。盘存储设备(例如磁或光盘存储设备)118通过I/O适配器112操作性地连接到系统总线104。
鼠标120和键盘122通过用户接口适配器114操作性地连接到系统总线104。鼠标120和键盘122用于输入数据到系统100和从系统100输出数据。
至少一个扬声器(此后称为“扬声器”)197通过音频适配器199操作性地连接到系统总线104。
(数字和/或模拟)调制解调器196通过网络适配器198操作性地连接到系统总线104。
现在给出根据本发明的一个示意性实施例的基于策略的网络管理(PBNM)的说明。PBNM是一种提供定义策略和向网络分配策略(下面针对图2说明可以应用本发明的范例网络)能力的技术。这些策略允许对于诸如带宽和安全性的关键网络资源的协同控制。PBNM使得对诸如基于IP的视频会议的应用请求网络上的差别对待。PBMN提供用于允许不同类型的应用共存于一个单一网络并且向这些应用的每一个提供所要求的资源。
更具体地说,PBNM定义用于消耗网络资源的应用和用户的策略。例如,可以给商业关键应用最高的优先级和网络带宽的一个百分比,可以给视频会议和Voice over IP次高的优先级,最后可以将网络资源的剩余的量给不具有严格的带宽限制或关键时间限制的网络业务和文件传送。这种对用户和应用的区分可以通过使用PBNM来实现。
视频会议系统通过向网络策略服务器询问对应于视频会议应用的策略来绑入PBNM系统。视频会议服务器从网络策略服务器获得所述策略并基于所接收的参数确定用于视频会议的网络的可用资源。该策略通常对应于例如,在特定日期的时间之内或对于特定的用户对于该应用可用的带宽。该配置通过例如添加、删除、替换、修改等策略和/或其部分来容易地修改。结果,所述视频会议服务器将使用在该策略中提供的信息来管理网络上的会议会话。
图2是说明根据本发明的一个示意性实施例的可应用本发明的网络200的方框图。网络200包括视频会议服务器205、策略和QoS管理器210、MADCAP服务器215、第一多个计算机220a-f、第一局域网225、第一路由器240、第二多个计算机230a-e;第二局域网235、第二路由器245以及广域网250。
根据本发明的一个示意性实施例,现在给出服务器结构的说明。图3是说明根据本发明的一个示意性实施例的图2的视频会议服务器205的方框图。所述视频会议服务器205可以被认为包括下面三个基本实体数据库实体302;网络通信实体304和会话管理实体306。
会话管理实体306负责管理视频会议会话的建立和断开。会话管理实体306还提供用于视频会议服务器205的主控制的大部分。会话管理实体306包括用于实现会话管理实体306的功能的会话管理器320。
网络通信实体304负责封装用于视频会议系统的很多不同协议。所述协议包括用于远程行政(administration)和管理的简单网络管理协议(SNMP)、通用开放策略服务(COPS)或另一个诸如用于策略管理的轻量级目录访问协议(LDAP)的协议、用于组播地址分配的组播地址动态客户分配协议(MADCAP)、用于视频会议会话管理的会话启动协议(SIP)、以及用于分布式视频会议服务器管理的服务器到服务器消息。因此,所述网络通信实体304包括SNMP模块304a;LDAP客户模块304b;MADCAP客户模块304c;SIP模块304d;以及服务器到服务器管理模块304e。而且,前述的元件304a-e分别和下面的元件通信远程管理终端382、网络策略服务器(带宽经纪)384;MADCAP服务器215、桌上会议客户388以及其它视频会议服务器390。这种通信也可以使用共同由协议模块330所代表的传输控制协议(TCP)、用户数据报协议(UDP)、网际协议(IP)来实现。应当理解前述的协议列表和对应的元件仅仅是为了说明的目的,并且因此,可以容易地采用其它协议和对应的元件而维持本发明的精神和范围。
应当进一步理解视频会议服务器205的结构还适用于便携式设备的用户通过虚拟个人网络(VPN)连接到企业基础结构,以便发送内容到视频会议会话和从视频会议会话接收内容。
数据库实体302包括下面四个数据库调度数据库310、有效会话数据库312、成员数据库314和网络结构数据库316。
视频会议服务器205还包括,或至少与公司LDAP服务器(用户信息)340和可选外部数据库342交互。所述可选外部数据库342包括LADP客户304b。
现在给出对根据本发明的一个实施例的、包括在图3中的数据实体302中的成员数据库314的说明。所述成员数据库314包括关于每个已经登录进入该视频会议系统的用户的信息。例如,下面关于每个用户的信息可能保存在成员数据库314中用户名;密码(如果有);支持的视频编码解码器和捕捉分辨率;支持的音频编码解码器;当前IP地址;当前呼叫号码(如果当前是一个有效呼叫的成员);可用性(可用或不可用);视频摄像机类型和型号;网络上的位置(每个位置通过有限的带宽广域网链接连接)以及CPU类型和处理能力。应当理解前述的条目仅仅是为了说明,并且因此,对于每个用户作为附加或者替换某些或全部在先条目的其它条目可以保留在成员数据库314中,同时维持本发明的精神和范围。
图4是说明根据本发明的一个示意性实施例的在图3的数据库条目302中包括的成员数据库314的成员数据库条目400的图表。在图4的示意性实施例中,使用一个简单链接的列表来实现成员数据库314。然而,应当理解在本发明的其它实施例中,可以采用成员数据库314的不同实现而维持本发明的精神和范围。作为一个例子,可以使用LDAP类型的数据库来存储成员信息。
现在给出对于根据本发明的一个示意性实施例的、包括在图3的数据库实体302中的有效会话数据库312的说明。有效会话数据库312包括当前发生的每个视频会议会话的信息。例如,可以为在有效会话数据库312中的每个呼叫保留下面的信息呼叫方ID;规格;组播(是/否);如果是组播,则组播IP地址;对于每个参加者,网络位置,当前传输分辨率,当前传输比特速率,视频和音频编码解码器;公共/个人呼叫(别人可以加入吗?);会话的调度时间;会话的开始时间;以及其它附加选项。应当理解在先条目仅仅是为了说明的目的,并且因此,附加的或用于替换某些或所有前述条目的其它条目可以被保存在有效会话数据库312中,而维持本发明的精神和范围。
图5是说明根据本发明的一个示意性实施例的、包括在图3的数据库实体302中的有效会话数据库312的有效会话条目500的方框图。在图5的示意性实施例中,使用一个简单链接的列表实现所述有效会话数据库312。然而,应当理解在本发明的其它实施例中,可以采用有效会话数据库312的不同实现而维持本发明的精神和范围。
再次参照图3,现在给出根据本发明的一个示意性实施例的、包括在图3的数据库实体302中的网络结构数据库316的说明。网络结构数据库316包括整个网络的全面映射。网络结构数据库316包括每个有效网络元件(例如IP路由器、以太网交换器等)的信息和有关将路由器和交换器连接起来的链路的信息。为了有效地管理网络中的带宽和服务质量,视频会议服务器205需要了解这些信息。
还可以在网络结构数据库316中定义有关被允许同时发生的视频会议会话的数量、视频会议会话的比特速率、以及带宽限制的策略信息。在网络结构数据库316中,网络结构可以被表现为加权的图标。应当理解网络结构数据库316是在视频会议服务器205中的可选数据库。网络结构数据库316可以被用于高速缓存从策略服务器210请求的策略。
现在给出根据本发明的一个示意性实施例的包括在图3的数据库实体302中的调度数据库310的说明。调度数据库310包含用于用户保留使用视频会议系统时间的调度。这取决于这样的策略,例如,适当的信息系统部门关于能够同时在广域网250的特定链路上发生的视频会议会话的数量。
现在给出图3的网络通信实体304的说明。网络通信实体304包括简单网络管理协议(SNMP)模块304a;轻量级目录访问协议(LDAP)客户模块304b;组播地址动态客户分配协议(MADCAP)客户模块304c;会话启动协议(SIP)模块304d以及服务器到服务器管理模块304e。
现在给出根据本发明的一个示意性实施例的、包括在图3的网络通信实体304中的简单网络管理协议(SNMP)模块304a的说明。图6是说明根据本发明的一个示意性实施例的简单网络管理协议(SNMP)客户-服务器结构600的方框图。该结构600代表SNMP模块304a的一种实现;然而,应当理解本发明并不局限于图6中的结构,并且因此,可以采用其它的SNMP结构而维持本发明的精神和范围。SNMP将被用于视频会议服务器的远程管理和监控。
简单网络管理协议(SNMP)客户-服务器结构600包括SNMP管理站610和SNMP管理实体620。SNMP管理站610包括管理应用610a和SNMP管理器610b。SNMP管理实体620包括管理的资源620a、SNMP管理对象620b、以及SNMP代理620c。而且,SNMP管理站610和SNMP管理实体620中的每一个还包括UDP层630、IP层640、介质访问控制(MAC)层650和物理层660。
SNMP代理620c允许来自SNMP管理站610的监控和管理。SNMP代理620c是在SNMP结构600中的客户。SNMP代理620c基本上扮演响应于来自SNMP管理站610的用于信息和行动请求的角色。SNMP管理站610是在SNMP结构600中的服务器。SNMP管理站610是在网络中管理代理的中心实体。SNMP管理站610执行允许管理员从SNMP代理620c收集统计并且改变SNMP代理620c的配置参数的功能。
使用该SNMP模型,可以通过将这些资源表示为对象来管理视频会议服务器205中的资源。每个对象是表示被管理的代理的一个方面的数据变量。这种对象的收集通常被称为管理信息库(MIB)。MIB执行用于SNMP管理站610的在SNMP代理620c的访问点的收集的功能。SNMP管理站610能够通过检索在SNMP代理620c中的MIB对象的值来执行监控。SNMP管理站610还能够导致在SNMP代理620c的行动或者改变在SNMP代理620c的配置设置。
SNMP在IP层640上操作并且使用UDP层630作为其传输协议。
在SNMP管理协议中使用的基本消息如下GET;SET和TRAP。GET消息使得SNMP管理站610能够检索在SNMP代理620c的对象的值。SET消息使得SNMP管理站610能够设置在SNMP代理620c的对象的值。TRAP消息使得SNMP代理620c能够通知SNMP管理站610重要事件。
现在给出根据本发明的一个示意性实施例的包括在SNMP管理实体620中的SNMP管理资源620a的说明。远程管理能够监控和/或控制在视频会议服务器205中的下列资源有效会话和相关统计;会话记录;用于视频会议的网络策略;会话启动协议(SIP)参数和统计;以及MADCAP参数和统计。
从SNMP管理站610,以管理应用的名义发布下列三种类型的SNMP消息GetRequest;GetNextRequest;和SetRequest。前两个是GET功能的变种。所有三个消息都以GetResponse消息的形式被SNMP代理620c确认,所述GetResponse消息被传递到管理应用610a。SNMP代理620c还可以响应于在管理资源中发生的事件来发布trap消息。
再参照图3,现在给出根据本发明的一个示意性实施例的、包括在图3的网络通信实体304中的轻量级目录访问协议(LDAP)客户模块304b的说明。LDAP模块304b利用LDAP,LDAP是用于访问通用目录信息的基于IP的标准协议。LDAP定义用于访问和修改目录条目的操作,诸如搜索满足用户专用标准的条目;添加条目;删除条目;修改条目和比较条目。
现在给出根据本发明的一个示意性实施例的、包括在图3的网络通信实体中的组播地址动态客户分配协议(MADCAP)客户模块304c的说明。MADCAP模块304c利用MADCAP,其是允许主机从组播地址分配服务器请求组播地址分配服务的协议。当建立视频会议会话来使用组播服务时,视频会议服务器205必须获得组播地址来在会话中向客户分配组播地址。视频会议服务器205能够使用MADCAP协议从组播地址分配服务器动态获取组播地址。
现在给出根据本发明的一个示意性实施例的、包括在图3的网络通信实体304中的会话启动协议(SIP)模块304d的说明。SIP模块304d利用SIP,其是用于使用在基于IP网络上的一个或多个参加者创建、修改和终止多媒体会话的应用层控制协议。
在基于SIP的视频会议系统中,通过SIP URL来识别每个客户和服务器。该SIP URL采用user@host的形式,这是和电子邮件相同的格式,并且在大多数情况下该SIP URL是用户的电子邮件地址。
现在给出根据本发明的一个示意性实施例的、包括在图3的网络通信实体304中的服务器到服务器管理模块304e的说明。服务器到服务器管理模块304e利用用于在视频会议服务器之间交换信息的消息。服务器到服务器管理模块304e最好在在其中唯一的视频会议服务器(例如视频会议服务器205)在本地建立在它所支持的网络(例如LAN225)上的典型配置中利用,从而几个视频会议服务器能够在公司广域网(例如网络200)中存在。用于交换信息的消息的一些主要的目的包括同步数据库和检查网络资源的可用性。
下面的消息被定义QUERY-询问在远程服务器中的条目;ADD-向远程服务器添加条目;DELETE-从远程服务器删除条目;和UPDATE-更新在远程服务器上的条目。
现在给出根据本发明的一个示意性的实施例的视频会议服务器205的操作场景的说明。初始,提供对应于视频会议会话建立的操作场景的说明,然后是提供在视频会议会话期间对应于分辨率和帧速率调整的操作场景的说明。会话操作场景包括SIP服务器发现、成员登记、会话建立、会话取消和会话终止。
现在给出根据本发明的一个示意性的实施例的、对应于SIP服务器发现的会话操作场景的说明。用户(视频会议客户应用)可以向已配置的视频会议服务器(手动提供的)登记或者在开机时向熟知的“所有SIP服务器”组播地址“sip.mcast.net”(224.0.1.75)发送REGISTER请求。最好使用第二机制(REGISTER请求),因为这不需每个用户在他们的视频会议客户应用中手动配置本地SIP服务器的地址。在这种情况下,组播地址需要在网络中被正确地划分范围(scoped)来保证用户在向用于视频会议的正确的SIP服务器登记。除了前面的方法,在用于使提供的处理更简单的方法中,SIP规格建议管理员使用sip.domainname(例如,sip.princeton.tce.com)的传统来命名它们的服务器。
现在给出根据本发明的一个示意性的实施例的、对应于成员登记的会话操作场景的说明。图7是说明根据本发明的一个示意性实施例的使用会话启动协议(SIP)向、视频会议会话登记的方法的图表。图7、的例子包括、视频会议客户应用(客户)702和视频会议服务器(服务器)205。应当理解在此短语“客户应用”和“客户”可以互换使用。
在成员登记功能中,客户702向视频会议服务器205发送SIP REGISTER请求(步骤710)。视频会议服务器205接收这个消息并且在成员数据库314中存储客户702的IP地址和SIP URL。
该REGISTER请求可能包含消息主体,虽然在标准中并没有定义它的使用。该消息主体能够包含与正在向视频会议服务器205登记的客户702的配置选项相关的附加信息。
视频会议服务器205通过回送客户702一个200 OK消息来确认登记(步骤720)。
现在给出根据本发明的一个示意性实施例的单播和组播视频会议会话的说明。图1B和图1C是分别说明根据本发明的两个示意性实施例的单播视频会议会话和组播视频会议会话的方框图。图1B和1C的例子包括客户1 130、客户2 132、客户3 134、以太网交换器136、IP路由器138、IP路由器140和广域网142。
在单播的例子中,从每个客户发送一个单一流到其它的每个客户。随着加入网络的参加者的增多,这种方法会消耗大量的带宽。作为对照,在组播方式中,从每个客户只发送一个流。这样,组播方式消耗诸如和单播方式相比较小的资源。
现在给出根据本发明的一个示意性实施例的、对应于单播视频会议会话建立的会议操作场景的说明。图8A是说明根据本发明的一个示意性实施例的、使用会话启动协议(SIP)建立单播视频会议会话的方法的图表。图8A中的例子包括视频会议客户应用#1(客户#1)802、视频会议服务器(服务器)205、和视频会议客户应用#2(客户#2)806。
从客户#1 802向服务器205发送INVITE请求(步骤810)。该INVITE请求被从服务器205转发到客户#2 806(步骤815)。
从客户#2 706向服务器205发送180振铃消息(步骤820)。该180振铃消息被从服务器205转发到客户#1 702(步骤825)。
从客户#2 706发送200OK消息到服务器205(步骤830)。该200OK消息被从服务器205转发到客户#1 702(步骤835)。
从客户#1 702发送确认消息ACK到客户#2 706(步骤840)。在两个节点(客户#1 802和客户#2 806)间发生视频会议会话(介质会话)(步骤845)。
图8B是说明根据本发明的一个示意性实施例的、当从视频会议客户应用#1 802接收INVITE请求时视频会议服务器205所采取的步骤的图表。
服务器205初始检查请求用户(客户#1 802)是否向服务器205登记了并且还检查被呼叫的用户(客户#2 806)是否向服务器205登记了(步骤850)。
服务器205确定在网络上的每个用户的位置(步骤855)并且确定是否具有连接其两个位置(如果不同)的低带宽链路(例如广域网250)(步骤860)。
如果不具有将两个位置连接起来的低带宽链路广域网,服务器205则执行呼叫(步骤865)。然而,如果具有在两个用户之间的低带宽链路,则所述方法前进到步骤870。
在步骤870,服务器205检查在广域网250上的视频会议会话的策略;这基本上变成“能够以最大比特速率Y进行X会话”。服务器205基于这个策略检查可用性(步骤875)。如果不可用,则服务器205通过发送下面的任何消息拒绝该INVITE请求,“600-到处占线”、“486-这里占线”、“503-服务不可用”、或“603-被拒”(步骤880),并且所述方法被终止(不需继续到图8A的方法的步骤815)。然而,如果可用,则服务器205执行该呼叫(步骤865)。应当理解在步骤865之后接着是图8A中的步骤815。
图9是进一步说明根据本发明的一个示意性实施例的图8A的方法的图表。图9中的例子包括客户应用1 998、客户应用2 997、视频会议服务器205、和其它视频会议服务器986。也在图9中示出的视频会议服务器205的元件包括成员数据库314、有效会话数据库312、包括在网络结构数据库316中的策略数据库999、会话管理器320、SIP模块304d、以及服务器到服务器管理模块304e。
提供图9来描述在服务器205中的内部交互,并且因此只在最基本的层级被示出以提供在服务器205的实体之间的信令通知流的例子。
从客户应用1 998发送INVITE请求到在服务器205中的SIP模块304d(步骤903)。SIP模块304d解码所述消息并将该INVITE请求转发到会话管理器320(步骤906)。会话管理器320检查在网络结构数据库316中的有效会话数据库312、成员数据库314、以及策略数据库999以保证所述会话能够被正确地建立(分别为步骤909、912和915)。如果能够正确地建立所述会话,则有效会话数据库312、成员数据库314以及策略数据库999向会话管理器320发送OK消息(步骤918、921和924)。一旦完成了验证处理,服务器205将通知其它视频会议服务器系统状态的改变(步骤927和930)。
会话管理器320将INVITE消息转发给SIP模块304d(步骤933),SIP模块304d将随即将该INVITE消息转发给客户应用2 997(步骤936)。一旦接收到所述INVITE消息,客户应用2 997将使用指示SIP模块304d已经收到该INVITE消息的180振铃消息来响应于SIP模块304d(步骤939)。180振铃消息由SIP模块304d接收,被解码并随后被转发给会话管理器320(步骤942)。在视频会议服务器205的图9中所示的每个数据库中,客户的状态被更新(步骤945、948、951、954、957和958)。
180振铃消息被从会话管理器320转发到客户应用1 998(步骤960和963)。随后从客户应用2 997向SIP模块304d发送200 OK消息(步骤966)并且所述消息被从SIP模块304d转发给会话管理器320(步骤969)。该200 OK消息指示客户应用2 997正在接收视频会议会话的邀请。
在视频会议服务器205的图9中所示的每个数据库中,客户的状态被更新(步骤972、975、978、981、984和985)。OK消息被从会话管理器320发送至SIP模块304d并且被从SIP模块304d转发到客户应用1 998(步骤988和991)。从客户应用1 998发送ACK消息到客户应用2 997以完成所述会话的建立(步骤994)。
现在给出根据本发明的一个示意性实施例的、对应于组播视频会议的会话操作场景的说明。为了提供组播会话的建立,使用会话描述协议(SDP)。所述SDP协议能够传达组播地址和端口号。
除了需要组播地址外,组播会话建立与单播会话建立类似。组播地址由网络中的MADCAP服务器215分配。
图10是说明根据本发明的另一个示意性实施例的、用于使用会话启动协议(SIP)建立组播视频会议会话的方法的图表。图10中的例子包括视频会议客户应用#1(客户#1)1002、视频服务器(服务器)205、视频会议客户应用#2(客户#2)1006、和MADCAP服务器215。
从视频会议客户应用#1 1002发送、INVITE请求到服务器205(步骤1010)。从服务器205发送、MADCAP请求给MADCAP服务器215(步骤1015)。从MADCAP服务器215发送、确认消息ACK给服务器205(步骤1020)。所述INVITE请求被从服务器205转发给客户#2 1006(步骤1025)。
从客户#2 1006发送、180振铃消息给服务器205(步骤1030)。该180振铃消息被从服务器205转发给客户#1 1002(步骤1035)。
从客户#2 1006向服务器205发送、200 OK消息(步骤1040)。该200 OK消息被从服务器205转发给客户#1 1002(步骤1045)。
从客户#1 1002发送、确认消息ACK到客户#2 1006(步骤1050)。在两个节点(客户#1 1002和#21006)之间产生视频会议会话(介质会话)(步骤1055)。
现在给出根据本发明的一个示意性实施例的、对应于视频会议会话的取消的操作场景的说明。CANCEL消息用于终止未完成的会话建立尝试。客户可以使用该消息来终止客户初始启动的未完成的会话建立尝试。服务器将CANCEL消息转发到INVITE发送至的具有未完成请求的相同位置。客户不应当用“200 OK”消息来响应CANCEL消息。如果CANCEL消息不成功,则可以使用会话终止序列(即,BYE消息)。
图11是说明根据本发明的一个示意性实施例的、用于使用会话启动协议(SIP)取消视频会议会话的方法的图表。图11的例子包括视频会议客户应用#1(客户#1)1102、视频会议服务器(服务器)205、以及视频会议客户应用#2(客户#2)1106。
从客户#1 1102向服务器205发送INVITE请求(步骤1110)。该INVITE请求被从服务器205转发到客户#2 1106(步骤1115)。
从客户#2 1106发送180振铃消息到服务器205(步骤1120)。该180振铃消息被从服务器205转发到客户#1 1102(步骤1125)。
从客户#1 1102发送CANCEL消息到服务器205(步骤1130)。该CANCEL消息被从服务器205转发到客户#2 1106(步骤1135)。
现在给出根据本发明的一个示意性实施例的、对应于视频会议会话的终止的操作场景的说明。图12是说明根据本发明的一个示意性实施例的、用于使用会话启动协议(SIP)终止在两个客户间的视频会议会话的图表。图12的例子包括第一客户(视频会议客户应用#1)1202、视频会议服务器(服务器)205、以及第二客户(视频会议客户应用#2)1206。
客户#1 1202决定中断与客户#2 1206的呼叫。因此,客户#1 1202发送BYE消息到服务器205(步骤1210)。服务器205将该BYE消息转发到客户#21206(步骤1220)。
客户#2 1206回送200 OK消息到服务器205指示它(客户#2 1206)已经断开(步骤1230)。服务器205将该200 OK消息转发到客户#1 1202来指示成功的断开(步骤1240)。
图13是说明根据本发明的一个示意性实施例的、用于使用会话启动协议(SIP)来终止在三个客户间的视频会议会话的图表。图13的例子包括第一客户(视频会议客户应用#1)1302、视频会议服务器(服务器)205、第二客户(视频会议客户应用#2)1306、和第三客户(视频会议客户应用#3)1308。
客户#1 1302决定中断与客户#2 1306和客户#3 1308的呼叫。这并不会破坏在客户#2 1306和客户#3 1308之间的会话。
客户#1 1302向服务器205发送BYE消息(步骤1310)。服务器205解释该BYE消息并理解客户#2 1306和客户#3 1308介入了与客户#1 1302的视频会议会话,并将该BYE消息转发给客户#2 1306和客户#3 1308两者(步骤1320和1330)。
客户#2 1306回送200 OK消息给服务器205(步骤1340)。服务器205将该200 OK消息转发给客户#1 1302(步骤1350)。客户#3 1308回送200 OK消息给服务器205(步骤1360)。服务器205将该200 OK消息转发回客户#1 1302(步骤1370)。
图14是说明根据本发明的另一个示意性实施例的、用于使用会话启动协议(SIP)终止在两个客户间的视频会议会话的方法的图表。图14的例子包括第一客户(视频会议客户应用#1)1402、视频会议服务器(服务器)205、第二客户(视频会议客户应用#2)1406、和第三客户(视频会议客户应用#3)1408。
客户#1 1402决定中断与客户#2 1406和客户#3 1408的呼叫,这并不会破坏在客户#2 1406和客户#3 1408之间的会话。
客户#1 1402向服务器205发送要给客户#2 1406的BYE消息(步骤1410)。服务器205将该BYE消息转发给客户#2 1406(步骤1420)。客户#11402向服务器205发送要给客户#3 1408的BYE消息(步骤1430)。服务器205将该BYE消息转发给客户#3 1408(步骤1440)。
客户#2 1406回送200 OK消息给服务器205(步骤1450)。服务器205将该200 OK消息转发给客户#1 1402(步骤1460)。客户#3 1408回送200 OK消息给服务器205(步骤1470)。服务器205将该200 OK消息转发回客户#1 1402(步骤1480)。
除了前面对于图12到图14所述的例子,通过将该BYE消息发送给属于视频会议订户的组播组地址可以引起终止。使用这种方法,服务器和其它客户应用将接收到所述消息。由于与其相关的较低量的开支,这是一个更通用和有效的用于终止会话的机制。
现在给出根据本发明的一个示意性实施例的、对应于分辨率和帧速率调整的操作场景的说明。视频会议涉及在计算机网络上不同位置的几个用户间的现场、双向交互视频传输。实时交互视频要求用有限(constrained)的延迟来传输大量的数据。这要求视频会议系统所绑定的计算机网络必须能够为会话中所涉及的每个用户提供足够的带宽量和服务质量。有时带宽可能是一种有限的资源,而且在所有网络中不能永远保证服务质量。因此存在某些限制。在私有企业网络中,有可能保证服务质量,但是不能总是保证大量的带宽。
基本的企业计算机网络基础结构包括几种通过低速链路连接到一起的高速局域网(LAN)(见例如图2)。每个高速LAN通常表示在单一地理位置的网络基础结构,而低速链路是将多个地理位置连接到一起的长途链路。使用低速链路的原因在于长途链路的开销相对来说较高并且大多数网络业务通常在局域网中本地化,因此在这些长途链路中通常不交换大量的数据。
基于网络的基于IP的服务质量的最近发展提供了一种允许穿过这些网络发送其它类型的信息跨越的装置。这为非实时数据业务和此外的实时信息(即音频和视频)跨越基础结构开启了大门。得益于网络服务质量的视频会议服务非常适合于覆盖这个基础结构。在两个不同的地理位置的两个用户进行实时视频会议会话现在成为可能。视频会议会话的一个缺点在于实时视频的传输会消耗极大量的带宽并轻易地耗尽可用的网络资源。跨越网络发送的实时视频的比特速率主要取决于视频分辨率和所使用的压缩算法。一般,能够用合理的带宽量在网络支持在不同地理位置的两个、三个或四个用户之间的视频会议会话。然而,一般情况下,无法支持在视频会议会话中超过四个的附加用户,由于带宽约束,也无法支持第二视频会议会话。视频通信系统的限制因素是在地理位置之间的低速远程链路。
一个可能的解决方案是增加在两个地理位置之间的长途链路的带宽,以便支持系统中的更多用户。这种方法的缺点在于带宽是非常昂贵的。第二个解决方案是具有一个系统,其中在视频会议会话中只有有限量的用户(即,有效用户)被允许以高分辨率和高比特速率进行传输,而会话中的剩余的用户(即,无效用户)只能以受限的分辨率和受限的比特速率进行传输。该视频会议会话组织者将能控制哪个用户以高分辨率传输和哪个用户将以低分辨率传输。如果一个用户在会话中不有效讲话或互动,则不需要用高分辨率发送他们的视频。这种方法能提供对于带宽的巨大的节省。
向前参考图18A的视频会议客户应用1800,这种方法涉及在支持不同窗口大小(即,表示高分辨率和低分辨率的解码视频流的不同大小的显示窗口)的视频客户会议应用1800中的用户接口1808以及规定在服务器205和其它客户应用之间的通信的消息系统1842(包括在网络实体1806中,而网络实体1806又包括在图18A的视频客户会议应用1800中)。该消息系统1842将包括用于控制编码分辨率和发送每个客户应用的比特速率的消息。
现在给出根据本发明的一个示意性实施例的、对应于分辨率和帧速率调整的消息的说明。具体来讲,将描述MSG_WINDOW_SWITCH消息和MSG_ADJUST_CODEC消息。
MSG_WINDOW_SWITCH消息被从客户发送至服务器,指示在有效用户和一个无效用户之间的切换;即,有效用户变成无效,而无效用户变成有效。视频会议服务器将向客户确认这个请求。
MSG_ADJUST_CODEC消息被从服务器发送至每个客户。MSG_ADJUST_CODEC消息将指示客户发送应当发送的分辨率(即,CIF或QCIF)和帧速率。MSG_ADJUST_CODEC消息由每个客户确认。
图15是说明根据本发明的一个示意性实施例的、用于分辨率和帧速率调整的信令通知方法的图表。图15中的例子包括视频会议服务器(服务器)205、客户1 1504、客户2 1506、客户3 1508和客户4 1510。
MSG_WINDOW_SWITCH消息被从客户1 1504发送至服务器205(步骤1520)。确认消息ACK被从服务器205发送至客户1 1504(步骤1525)。
MSG_ADJUST_CODEC(低)消息被从服务器205发送至客户1 1504(步骤1530)。确认消息ACK被从客户1 1504发送至服务器205(步骤1535)。
MSG_ADJUST_CODEC(高)消息被从服务器205发送至客户2 1506(步骤1540)。确认消息ACK被从客户2 1506发送至服务器205(步骤1545)。
MSG_ADJUST_CODEC(低)消息被从服务器205发送至客户3 1508(步骤1550)。确认消息ACK被从客户3 1508发送至服务器205(步骤1555)。
MSG_ADJUST_CODEC(低)消息被从服务器205发送至客户4 1510(步骤1560)。确认消息ACK被从客户4 1510发送至服务器205(步骤1565)。
图16是说明根据本发明的一个示意性实施例的分辨率和帧速率调整(客户2和客户3)前的信令通知的图表。图17是说明根据本发明的一个示意性实施例的分辨率和帧速率调整(客户2和客户3)后的信令通知的图表。图16和图17的例子包括客户1 1602、客户2 1604、网络路由器1606、客户3 1608和客户4 1610。
“以低比特速率/分辨率发送”的消息被从客户11602发送至网络路由器1606(步骤1620)。“以高比特速率/分辨率发送”的消息被从客户3 1608发送至网络路由器1606(步骤1625)。“以低比特速率/分辨率发送”的消息被从客户2 1604发送至网络路由器1606(步骤1630)。“以高比特速率/分辨率发送”的消息被从客户4 1610发送至网络路由器1606(步骤1635)。
使用组播地址,数据被从网络路由器1606发送至客户2 1604、客户31608、客户1 1602和客户4 1610(分别为步骤1640、1645、1650和1655)。
前进到图17,“以低比特速率/分辨率发送”的消息被从客户1 1602发送至网络路由器1606(步骤1720)。“以高比特速率/分辨率发送”的消息被从客户3 1608发送至网络路由器1606(步骤1725)。“以高比特速率/分辨率发送”的消息被从客户2 1604发送至网络路由器1606(步骤1630)。“以低比特速率/分辨率发送”的消息被从客户4 1610发送至网络路由器1606(步骤1635)。
使用组播地址,数据被从网络路由器1606发送至客户2 1604、客户31608、客户1 1602和客户4 1610(分别为步骤1740、1745、1750和1755)。
现在给出根据本发明的一个示意性实施例的客户应用结构的说明。所述客户应用负责和用户的交互、与其它客户应用交换多媒体内容、以及管理和服务器应用的呼叫。而且,应当理解所述客户应用还能够在其自身包括服务器的功能。图18A是说明根据本发明的一个示意性实施例的视频会议客户应用1800的图表。应当理解视频会议客户应用1800可以在诸如任何计算机220a-f和任何计算机230a-f上找到。
视频会议客户应用1800包括下面四个基本功能实体多媒体接口层1802、编码解码器1804(音频编码解码器1804a和视频编码解码器1084b)、网络实体1806、和用户接口1808。
多媒体接口层1802是视频会议客户应用1800的主控示例。通过多媒体接口层1802路由和控制全部系统内通信。多媒体接口层1802的主要潜在特征之一是它能容易地互换不同的音频和视频编码解码器。除了这点,多媒体接口层1802向从属用户输入/输出实体和网络子系统的操作系统(OS)提供接口。多媒体接口层1802包括成员数据库1820、主控制模块1822、音频混合器1899、和回声消除模块1898。
用户接口1808提供终极用户和视频会议客户应用1800的交互点。用户接口1808最好但不是必须被实现为OS从属模块。很多图形用户接口都取决于它们所使用的特定OS。用户接口1808的四个主要功能是视频捕捉、音频捕捉、以及音频再现。用户接口1808包括音频/视频捕捉接口1830、音频/视频播放模块1832、成员视图模块1834、聊天模块1836、和用户选择/菜单1838。音频/视频捕捉接口1830包括相机接口1830a、麦克风接口1830b、和文件接口1830c。成员视图模块1834包括视频显示器1832a、音频播放模块1832b和文件接口1832c。
网络实体1806表示视频会议客户应用1800的通信子系统。网络实体1806的功能基于会话启动协议(SIP)的客户到服务器的消息发送以及音频和视频流的发送和接收。网络实体1806还包括用于客户之间的介质流的验证和加密通信的基本安全功能。网络实体1806包括安全模块1840、消息发送(messaging)系统1842、视频流模块1844、音频流模块1846、以及IP套接管(socket)1848a-c。
音频编码解码器1804a和视频编码解码器1084b是处理数字介质的压缩和解压缩的子系统。该编码解码器的接口应当简单和通用,以便使它们能容易地互换。此后定义多媒体接口层1802和编码解码器1804之间的简单关系,作为用于实现的示意性模块或指南。音频编码解码器1804a和视频编码解码器1084b每个包括编码器1880和解码器1890。该编码器1880和解码器1890每个包括队列1895。
视频会议客户应用1800和至少视频会议服务器205和其它客户1870交互。
现在给出根据本发明的一个示意性实施例的、包括在图18A的多媒体接口层1802中的成员数据库1820的说明。该成员数据库1820逐个会话存储关于参加用户的信息。成员数据库1820包括关于发送/接收IP地址、客户能力的信息、关于特定编码解码器的信息、和关于不同用户的状态的细节。应当理解在先的条目仅仅是为了说明的目的。因此,还可以在成员数据库1820保留附加在或替换部分或全部在先条目的条目,而维护本发明的精神和范围。包括在成员数据库1820中的信息被用于控制目的在于音频和视频解码器1890的进入信息。来自网络的介质信息需要被路由到正确的音频和视频解码器1890。同样重要的是,来自音频和视频解码器1890的介质信息需要被路由到正确的单播或组播地址用于分发。包括在成员数据库1820中的基本信息还被路由到用户接口1808以便使终极用户了解会话的参加者和他们的能力。一旦从视频会议服务器205接收了INVITE请求,则用户被添加到成员数据库1820中,并且一旦从视频会议服务器205接收了BYE请求则用户被清除。当会议终止时成员数据库1820被清空(flushed)。
现在给出根据本发明的一个示意性实施例的包括在图18A的多媒体接口层1802的主控制模块1822的说明。
主控制模块1822是多媒体接口层1802的一个非常重要的部分。主控制模块1822起着中央管理子系统的功能并且提供下面的主要功能用于音频和视频解码器和播放的同步机制;用于记录的目的连接解码器的目的地到屏幕或到文件;以及应用层服务质量。
对于最佳的视频会议用户体验来说音频和视频播放的同步至关重要。为了精确地同步这两个介质流,时间标记(timestamp)需要被使用并和介质内容一起发送。实时协议(RTP)提供了一个用于这个目的的包括时间纪录和序列号的通用首标。所提供的时间标记并不是为了同步这令各网络节点时钟,而是为了同步用于协调播放的音频和视频流。这些时间标记需要在捕捉时间在相同的节点从一个通用时钟导出。例如,当捕捉一个视频帧时,该视频帧被捕捉的时间必须被记录。这同样适用于音频。使用RPT的附加的细节和指导方针在这里的其它地方说明。
主控制模块1822同步音频和视频的功能在于建立网络实体1806和编码解码器1804之间的连接,以便适当地递送元数据(包括时间标记和序列号)和多媒体数据。如果分组迟到,则在取决于当前系统的条件解码之前或之后这些分组被丢弃。RTP时间标记随后被用于建立演示和播放时间标记。
主控制模块1822还负责将音频和视频解码器1890的输出导引到屏幕用于播放,到文件用于记录,或者导引到这两者。对每个解码器1890单独处理,因此这允许了解码器的输出被显示在屏幕上、第二解码器的输出被记录在文件中,而来自第三解码器的输出同时到文件和屏幕的范例情形。
除了上述的责任,主控制模块1822还涉及应用层服务质量。主控制模块1822收集关于分组丢弃、接收和发送的字节的信息,并且基于这些信息而行动。这可能涉及向另一个客户或者向视频会议服务器205发送一个消息来帮助补救发生在网络中的一种情形。实时控制协议(RTCP)可以被用于报告统计和分组丢失,并且能被用于应用专用信令通知。
图18B是进一步说明根据本发明的一个示意性实施例的包括在图18A中的多媒体接口层1802中的音频混合器1899的方框图。音频混合器1899,(这里也被称作“增益控制模块”),操作地连接到多个音频解码器1890。多个音频解码器1880接收压缩的音频流并且输出不压缩的音频流。不压缩的音频流被输入到音频混合器1899并被输出作为组合的音频流。
图18C是进一步说明根据本发明的一个示意性实施例的包括在图18A中的多媒体接口层1802中的回声消除模块1898的方框图。回声消除模块1898,(这里也被称为“回声消除器”),操作地连接到扬声器1897(例如音频播放模块1830b)和麦克风1896(例如麦克风接口1830b)。当在全双工或双向通信系统中从扬声器1897产生声音时,它原意是只能由本地听众听到的。然而,产生的声音还被本地麦克风1896听到,其随后允许该信号被发送回远端作为回声。由于这个原因,视频会议客户应用1800请求回声消除模块1898减轻这种效果,从而创造一个更好的用户体验。
现在给出根据本发明的示意性实施例的视频会议客户应用1800可用的接口的说明。所述接口包括和用户接口1808的交互点、网络实体1806和编码解码器1804。用户接口1808提供用于同时接收捕获的音频和视频以及它们相应的时间标记的功能。除此之外,必须提供用于向用户接口1808发送音频和视频的功能用于显示和再现。网络实体1806接口提供为信令通知来去消息的功能用于会话控制和安全。音频和视频编码解码器1804a,b提供用于配置控制的基本接口和发送和接收分组用于压缩和解压缩。
现在给出根据本发明的一个示意性实施例的音频和视频编码解码器1804a,b的说明。
在视频会议中有几种音频和视频编码解码器可用。最好但不是必须的,根据本发明的采用的编码解码器是基于软件的。根据本发明的一个示意性实施例,由于典型桌上型计算机的处理能力的局限,H.263被用作视频压缩和解压缩。随着桌上计算机功能在未来变得越来越强,能够实现使用诸如H.26L的更先进的编码解码器的能力并利用这种能力。当然,本发明并不局限于前述类型的编码解码器,并且因此,可以使用其它类型的编码解码器而维持本发明的精神和范围。
现在给出根据本发明的一个示意性实施例的编码解码器1804a,b的接口的说明。该说明将包括一个数据进入功能、调用(callback)功能和编码解码器选项。到编码解码器1804a,b的接口应该是足够灵活的并且在通用的意义上被定义以允许编码解码器的互换性以及允许在未来添加新的编码解码器。所提议的用于实现这种灵活和通用的接口的接口是一种具有提供给用户的有限数量功能的非常简单的接口。
所述数据进入功能就是用来存储帧或者编码器或解码器类的分组。
为了提供在多媒体接口层1802和多媒体编码解码器180之间的简单连接,所述数据输出功能应当被实现为调用。多媒体接口层1802向接收实体的输入功能设置这个调用功能。例如,当该编码解码器完成了对帧的编码或解码,这个功能将被调用以从编码或解码处理来递送预定的信息。由于编码解码器在调用中什么也不能做的局限,应当尽可能快地返回这个功能以避免等待和系统中不必要的延迟。在这个功能中应当执行的附加等待应当只是在访问共享资源时的排他性的锁定。
可用于不同类型的编码解码器的选项的范围可以变动,为了满足管理这些选项的要求,应当使用简单的接口。由于其所提供的灵活性,最好使用基于文字的接口(但不是必须的)。应当由一组如START和STOP的通用命令,以及编码解码器专用命令。本方法提供了一种简单的接口,但是由于需要简单的翻译器,添加了附加的复杂性。例如,Options功能足够通用来读取和写入选项。
例子Result=Options(“start”);Result=Options(“resolution=CIF“);等例如,某些在编码解码器之间的通用选项应当被标准化如下start;stop;pause;quality index(0-100);和resolution。
Quality index是说明编码解码器的整体质量的一个在0%到100%之间的值的一个因数。它遵循一个基本假定值越高则视频的质量越好。
图19是说明根据本发明的一个示意性实施例的、由包括在音频编码解码器1804a和/或视频编码解码1804b的解码器1890所采用的方法的图表。该方法相对于解码器上下文1901和呼叫器上下文1902来说明。该方法使用至少下面的输入和输出“data in”1999;“signal in”1998;“signal out callback”1997;“set callback function”1996和“data out callback”1995。“data in”1999被用于将数据存储到一个输入队列(步骤1905)。
执行初始步骤(init)来初始化解码器1890(步骤1910)。执行主循环,等待start或exit命令(步骤1920)。如果接收到exit命令,则退出该方法(步骤1922)并且返回例如另一个操作(1924)。
数据被从输入队列1895读出或者当输入队列1895为空时施加等待状态(步骤1930)。数据如果在步骤1930被读出,则其被解码(步骤1940)。“data outcallback”1995被提供给步骤1920。
现在给出根据本发明的一个示意性实施例的、由网络200所采用的通信的说明。该说明是对上面对网络通信提供的说明的补充。
消息通知系统1842(包括在图18A的网络实体1806中)提供在视频客户应用1800和视频会议服务器205之间的接口。它是要用于会话管理(即,会话建立和断开)的。信令通知消息通过视频会议服务器205通信并且不直接从客户到客户通信。诸如多媒体内容的数据和私人聊天消息只包括在客户间之间发送的信息。该消息通知系统将使用基于标准的会话启动协议(SIP)。
具有几个不同的协议用于管理视频客户应用1800。例如,可以采用会话启动协议(SIP),实时协议(RTP)、实时控制协议(RTCP)和会话描述协议(SDP)。
会话启动协议(SIP)的目的是会话管理。SIP是基于文件的应用层控制协议,用于创建、修改和终止和一个或多个在基于IP的网络上的参加者的多媒体会话。在客户和服务器之间使用SIP来实现这个。上面相对于视频会议服务器205对SIP进行进一步的说明。
实时协议(RTP)被用于实时多媒体的传输(即音频和视频)。RPT是用于提供和其所携带的多媒体信息有关的附加细节的协议。RTP驻留在传输层之上并通常在用户数据报协议(UDP)。在客户应用中RPT的主要功能是传输时间标记(用于音频和视频同步),序列号,以及识别其所封装的负载的类型(例如MPEG4、H.263、G.723等)。
图20是说明根据本发明的一个示意性实施例的用户平面协议堆栈2000的图表。堆栈2000包括在一层的视频2010和音频2020、用于在另一个层的视频2010和音频2020的RTP2030、在再一层的UDP端口#X 2040和UDP端口#Y 2050,IP层2060、链路层2070和物理层2080。除了通用RTP首标外还使用编码解码器专用首标。
实时控制协议(RTCP)是RTP标准的一部分。RTCP用作在发送者和接收者之间的统计报告工具。每个视频会议客户应用1800将收集它们的统计并将这些统计发送至彼此每一个和服务器205。视频会议服务器205基于这个数据将记录可能会在会话中发生的问题的信息。
图21是说明根据本发明的一个示意性实施例的控制平面协议堆栈2100的图表。堆栈2100包括SIP2110、UI编码解码器变动消息通知2120、在一层的RTCP2130、TCP层2140、IP层2150、链路层2160和物理层2170。
SDP的主要目的在于传达关于会话的介质流的信息。SDP包括,但不局限于下面的条目会话名称和目的;会话有效的时间、组成该会话的介质、接收该介质的信息(即,地址,端口,格式等);介质的类型;传输协议(RTP/UDP/IP);介质的格式(H.263等);组播;介质的组播地址;介质的传输端口;单播以及介质的远程地址。
这些SDP信息是SIP消息的消息主体,它们被一起发送。
现在给出根据本发明的一个示意性实施例的图18A中的用户接口的进一步说明。所述用户接口1808是视频客户应用1800的一个非常重要的元件。用户接口1808包括几个视图(显示/按钮/菜单/......)并且能够处理所有的输入数据(音频/视频捕捉、按钮、按键)。
图22是说明根据本发明的一个示意性实施例的、对应于图18A的用户接口1808的屏幕快照2200的图表。屏幕快照2200包括“大视图”2210、“小视图”2220、聊天视图部分2230、成员视图部分2240和聊天编辑部分2250。
再次参照图18A,视频捕捉接口1830能包括下列网络摄像机(未示出);捕捉卡和高质量相机(未示出);相机接口1830a;麦克风接口1830b;文件接口1830c等。
网络摄像机能够通过或者USB或者火线(IEEE1394)接口使用由Windows操作系统提供的Windows视频(VFW)应用编程接口(API)或通过替代的在诸如Linux的不同操作系统下的捕捉驱动软件来支持。当然,本发明并不觉局限于前述的接口、操作系统和可能使用的驱动软件,而能够维持本发明的劲射和范围。
成员视图模块1834被用于示出参加正在进行的呼叫的成员。呼叫的发起者(即主人)可以或者丢弃不想要的成员或者选择主动的成员。每个成员可以选择用于私人聊天消息交换的一个或多个成员。此外,成员的状态被在成员视图模块1834中用信令通知。成员随即可以将自己的状态设置成例如“不可用”来信令通知其他人他当前不在但是将会很快回来。
除了视频流,每个成员还有机会使用聊天模块1836向全部或仅仅某些其他成员发送聊天消息。所述消息被显示在聊天视图并且在聊天编辑视图中编辑。滑动条允许观看较早的消息。
现在给出根据本发明的一个示意性实施例的、用于客户应用1800的操作场景的说明。下面的说明仅仅是客户应用1800的某些特征的基本指导方针并且并不意味着表示特征的完整列表。所述说明将包括登陆、呼叫发起,呼叫接收和退出登录。
当初始启动客户应用1800时进行登陆。可以基于在启动时提供给操作系统的登陆名来自动进行登录,或者可以使用独立于登录的不同接口。这取决于用于当前使用的网络的认证的优选方法和策略是如何管理的。最简单的方法是使用和windows操作系统中使用的相同的登录名来保持名字的意志并且还具有服用现存用户数据库的能力(如果可用)。
图23是说明根据本发明的一个示意性实施例的注册接口2300的图表。如果用户当前在服务器上没有账户则使用注册特征2300。在任何电子邮件地址输入邮箱2340能够提供电子邮件地址用于容易地访问。
为了发起、呼叫,客户应用1800将询问服务器205关于可用的候选的列表。客户可以选择他或她愿意与之在视频会议会话中参与的用户。当涉及两个参加者时,会话将被设置为单播;否则,当涉及超过两个参加者时,会话将被设置为组播。
图24是说明根据本发明的一个示意性实施例的、用于会话启动的用户选择接口2400的方框图。
一旦用户发起呼叫,在他们的屏幕上显示示出发起者的姓名的消息。用户随即可以接受或拒绝该呼叫。如果客户接受该呼叫,客户应用1800则发出、接受(用于确认)消息到服务器205。服务器205随后通知当前参加呼叫的每个成员关于该新的客户。如果该客户通过发送、取消消息到服务器205来拒绝该呼叫,则所有其他的用户被通知这个事件。图25是说明根据本发明的一个示意性实施例的、用于接受或拒绝到来呼叫的邀请接口2500的方框图。
退出登录将用户从包括在视频会议服务器205中的数据库实体302中的成员数据库314中去除。向该会议的每个参加客户发送BYE消息。这可以通过组播或单播来进行。组播是用于发送这个消息的优选方法。
为了说明的目的,下面针对图2所示的示意性网络200给出对于本发明的说明。然而,应当理解本发明并不局限于图所示的特定网络结构。因此,可以根据本发明采用其它的网络配置和实现,并维持本发明的精神和范围。
图26是说明根据本发明的一个示意性实施例的、用于建立在三个客户间的组播视频会话的方法的流程图。所述方法实现为视频会议客户#1(客户#1)2602、视频会议客户#2(客户#2)2604、视频会议客户#3(客户#3)2606、视频会议服务器(服务器)205、路由器#1 240、以及路由器#2 245。在图26的图解性实施例中,客户#1 2602是初始客户,客户#2 2604和客户#3 2606是目的客户,并且全部参照如此可互换。
初始客户2602和目的客户2604、2606最初向服务器205登记(步骤2610)。根据本发明的一个优选实施例,初始客户2602和目的客户2604、2606使用相应的客户计算机的IP地址向服务器205登记;所述IP地址可以与诸如电子邮件地址或用户名称的唯一识别符相关。
从初始客户2602向服务器205发送用于视频会议会话的请求(步骤2615)。该请求指定要参加与初始客户2602的视频会议会话中的目的客户2604、2606。
服务器205向初始客户2602发送组播IP组地址(步骤2620)。初始客户2602向IP路由器#1 240发送网际组组播协议(IGMP)加入请求(步骤2625)。
服务器205将所述组播IP组地址和用于加入的请求发送给目的客户2604、2606中的每个(步骤2630)。目的客户2604、2606中的每个向服务器205发送接受或拒绝的通知(步骤2635)。该通知被从服务器205转发给初始客户2602(步骤2640)。
IGMP加入请求被从目的客户2604、2606发送到IP路由器#2 245(步骤2647)并被从IP路由器#2 245转发到IP路由器#1 240。(步骤2645)。
内容(音频和/或视频)被从初始客户2602发送至IP路由器#2 245(步骤2647)并被使用组播IP组地址从IP路由器#2 245转发到目的客户2604、2606中的每个(步骤2650)。而且,该内容被从目的客户2604、2606发送给IP路由器#2 245(步骤2655)。
应当理解IP路由器#1 240和IP路由器#2 245的引用是为了说明支持本发明的方法的网络路由结构的角色。因此,在还可使用其它的网络路由设备来代替或作为这里所述的网络路由设备的补充,并且维持本发明的精神和范围。
更应理解本发明并不仅仅局限于视频会议会话,而是可以使用相同的协议用于建立到多个客户的单向组播会话。在这个场景下,应用应当限制接收客户被允许在组播组IP地址上发送。
虽然结合

了示意性的实施例。应当理解本发明并不局限于仅仅是这些实施例,本领域的技术人员在不脱离本发明的范围和精神的情况下可以进行其他变化和修改。所有这些变化和修改往往包括在由所附权利要求所限定的本发明的范围之内。
权利要求
1.一种用于建立多个客户间的组播会话的方法,包括下列步骤分配通用组播IP地址,从而所述多个客户可以参加视频会议会话;和将所述通用组播IP地址发送至所述多个客户中的至少一个。
2.如权利要求1所述的方法,还包括步骤使用所述通用组播IP地址将视频会话内容发送至所述多个客户中的至少一个。
3.如权利要求1所述的方法,还包括步骤登记关于所述组播会话的所述多个客户中的至少一个。
4.如权利要求3所述的方法,其中,所述登记步骤包括步骤将所述所述多个客户中的至少一个的每一个与对应的IP地址相关联。
5.如权利要求4所述的方法,其中,所述登记步骤还包括步骤将所述多个客户中的至少一个的每一个的对应的IP地址与电子邮件地址和用户名中的至少一个相关联。
6.如权利要求1所述的方法,还包括步骤接收用于组播会话的初始请求,所述初始请求指定要加入组播会话的所述多个客户中的任意一个。
7.如权利要求1所述的方法,还包括步骤将用于加入组播会话的请求发送至所述多个客户中的至少一个。
8.如权利要求7所述的方法,还包括步骤从所述多个客户中的至少一个接收对于用于加入组播会话的请求的接受或拒绝。
9.如权利要求1所述的方法,还包括以下步骤从所述多个客户中的至少一个接收网际组组播协议(IGMP)加入请求;和响应于IGMP加入请求,使用所述通用组播IP地址将内容发送至所述多个客户中的至少一个。
10.一种用于建立多个客户间的组播会话的系统,包括用于分配通用组播IP地址从而所述多个客户可以参与会话的装置;和在与分配装置的数据通信中用于将通用组播IP地址发送至所述多个客户中的至少一个的装置。
11.如权利要求10所述的系统,还包括用于使用通用组播IP地址将视频会议内容发送至所述多个客户中的至少一个的装置。
12.如权利要求10所述的系统,还包括用于登记关于所述组播会话的所述多个客户中的至少一个的装置。
13.如权利要求12所述的系统,其中,所述用于登记的装置包括用于将所述多个客户中的至少一个的每一个与对应的IP地址相关联的装置。
14.如权利要求13所述的系统,其中,所述用于登记的装置还包括用于将所述多个客户中的至少一个的每一个的对应IP地址与电子邮件地址和用户名中的至少一个相关联的装置。
15.如权利要求10所述的系统,还包括用于接收用于组播会话的初始请求的装置,所述初始请求指定要加入组播会话的所述多个客户中的任意一个。
16.如权利要求10所述的系统,还包括用于将用于加入组播会话的请求发送至所述多个客户中的至少一个的每一个的装置。
17.如权利要求16所述的系统,还包括用于从所述多个客户中的至少一个的每一个接收对于用于加入组播会话的请求的接受或拒绝的装置。
18.如权利要求10所述的系统,还包括用于从所述多个客户中的至少一个的每一个接收网际组组播协议(IGMP)加入请求的装置;和用于响应于IGMP加入请求而使用所述通用组播IP地址将内容发送至所述多个客户中的至少一个的装置。
19.一种用于建立在多个客户间的组播会话的方法,包括以下步骤提供接收用于视频会议会话的通用组播IP地址的性能;和提供使用所述通用组播IP地址来接收视频会议内容的性能。
20.如权利要求19所述的方法,还包括步骤提供关于组播会话进行登记的性能。
21.如权利要求19所述的方法,还包括步骤提供发送用于组播会话的初始请求的性能,所述初始请求指定要参加组播会话的所述多个客户中的任意一个。
22.如权利要求19所述的方法,还包括步骤提供接收用于加入组播会话的请求的性能。
23.如权利要求22所述的方法,还包括步骤提供发送对于用于加入组播会话的请求的接受或拒绝的性能。
24.如权利要求19所述的方法,还包括以下步骤提供发送网际组组播协议(IGMP)加入请求的性能;和提供响应于IGMP加入请求而使用通用组播IP地址接收内容的性能。
全文摘要
一种用于建立在多个客户(客户1-3)间的组播会话的方法(图1)。所述方法包括步骤分配通用组播IP地址,从而客户可以参加视频会议会话;和将所述通用组播IP地址发送至所述多个客户中的至少一个。
文档编号H04M11/00GK1618202SQ02827631
公开日2005年5月18日 申请日期2002年12月12日 优先权日2001年12月15日
发明者约翰·W·理查德, 詹斯·坎布利 申请人:汤姆森特许公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1