基于时间预约的服务质量设置
这是一个非临时申请,根据35 U.S.C.§119要求序列号为60/341671,名称为《基于时间预约的服务质量设置》,申请日为2001年12月15日,代理摘要号:PU010306的临时申请利益,该临时申请在此引入作为参考。本申请还涉及分配的公共序列号为60/366331,名称为《视频会议系统结构》,申请日为2002年3月20日的临时申请,该临时申请在此引入作为参考。本申请还涉及分配的公共序列号为60/341720,名称为《视频会议带宽选择机制》,申请日期为2001年12月15日的临时申请;分配的公共序列号为60/341797,名称为《视频会议呼叫建立方法》,申请日期为2001年12月15日的临时申请;分配的公共序列号为60/341800,名称为《视频会议会话从单播到广播的切换》,申请日为2001年12月15日的临时申请;分配的公共序列号为60/341799,名称为《在视频会议系统中提供专用会话信道的方法和系统》,申请日期为2001年12月15日的临时申请;分配的公共序列号为60/341801,名称为《视频会议应用的用户接口》,申请日期为2001年12月15日的临时申请;分配的公共序列号为60/341819,名称为《服务器调用的时间调度视频会议》,申请日期为2001年12月15日的临时申请相关,这些临时申请在此引入作为参考。
技术领域
本发明一般涉及视频会议,具体地说,涉及一种为视频会议设置服务质量(QoS)契约和业务分类滤波器的方法。本方法使用时间预约来设置QoS契约和业务分类滤波器。所述业务分类滤波器将实时业务(视频会议业务)与非实时业务区别开。
背景技术
一般情况下,视频会议通过专用综合业务数字网(ISDN)和/或T1/T3电路来实现。这些电路在两个地理分离的位置之间提供专用路径。这种配置的一个缺点是专用电路可能会非常昂贵并且不能充分利用。如果因为视频会议会话没有发生而不是正在使用这些专用电路,那么会浪费大量带宽。许多具有地理分离位置的公司通常都具有在不同位置之间提供数据网络的专用电路(如T1电路)。这些专用电路允许每一位置的局域网(LAN)被连接到一起从而建立起一个广域网(WAN)。这些电路的主要用途是在两个位置之间提供数据连接。
每一位置处的LAN通过以太网交换机局部相连。LAN提供了一个具有大量带宽的基础设施。LAN上的典型连接带宽是100Mbps(双工)。这通常将被转变为在终端节点和将它们连接到WAN上的路由器之间可使用的附加数量的带宽。在WAN上几乎总是存在带宽限制,而在LAN上却没有,因此,在WAN接口上提供一种不同类型的业务(例如,与非实时业务相对的诸如视频会议业务的实时业务)是非常重要的。如果实时业务的优先权不比非实时业务的高,并且要通过WAN链路传输的信息量大于可用带宽,那么,将发生拥塞,导致非选择性的分组丢失。LAN通常依靠附加可用带宽量来保证不发生拥塞。
因此,期望并有益地具有一种方法以为视频会议会话提供有保证的带宽量,以避免诸如分组的非选择性丢失的不期望的影响。
发明内容
本发明使用用于为视频会议会话建立服务质量(QoS)契约和业务分类滤波器的方法解决了上述问题以及现有技术的其它相关问题。本方法在建立QoS契约和业务分类滤波器的过程中使用时间预约。所述业务分类滤波器将实时业务(视频会议业务)与非实时业务区别开。
根据本发明的一方面,在具有用于经由一个网络路由信息的路由元件的该网络中,提供了一种用于为客户机间的视频会议会话提供建立服务质量(QoS)契约的能力的方法。在一个与视频会议会话相关的时间周期内接受预约。在预约时间周期到了之后,一个配置信息被发送给至少一个路由元件,该配置信息用于从其它穿过网络的业务中滤出与视频会议会话相对应的实时业务。
根据本发明的另一个方面,在具有用于经由一个网络路由信息的路由元件的网络中,提供了一种用于为客户机间的视频会议会话提供建立服务质量(QoS)契约的能力的系统。该系统包括一个用于在一个与视频会议会话相关的时间周期内接受预约的装置。该系统还包括一个在预约时间周期到了之后将一个配置信息发送给至少一个路由元件的装置,该配置信息用于从其它穿过网络的业务中滤出与视频会议会话相对应的实时业务。
根据本发明的又一个方面,在具有用于经由一个网络路由信息的路由元件的网络中,提供了一种用于为客户机间的视频会议会话建立服务质量(QoS)契约的能力的方法。提供了一种传送视频会议会话预约的能力。该预约规定了一个用于视频会议的时间周期,从而使得客户机可以在规定的时间周期内以一个有保证的服务等级参与该视频会议会话。
通过下面结合附图对本发明最佳实施例的描述,本发明的这些和其它方面、特性和优点将更加明显。
附图说明
图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出了根据本发明一个范例性实施例,当从客户机#1 802处收到一个INVITE请求(图8A的步骤810)时,图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的流程示出了根据本发明一个范例性实施例的用于为视频会议会话建立服务质量(QoS)契约和业务分类滤波器的方法。
具体实施方式
本发明涉及一种为视频会议会话建立服务质量(QoS)契约和业务分类滤波器的方法。本方法在建立QoS契约和业务分类滤波器的过程中使用时间预约。业务分类滤波器将实时业务(视频会议业务)与非实时业务区别开。
应当理解,本发明可以硬件、软件、固件、专用处理器或其组合的各种形式实现。本发明最好是以硬件和软件的组合来实现。此外,软件最好是以实实在在嵌入到程序存储器中的应用程序来实现。该应用程序可以上载到由任何适当结构构成的机器中并由其执行。该机器最好是在一个具有诸如一个或多个中央处理单元(CPU)、一个随机读取存储器(RAM)和输入/输出(I/O)接口的硬件的计算机平台上实现。该计算机平台还包括操作系统和微指令代码。这里描述的各种处理和功能可以或者是微指令代码的一部分,或者是通过操作系统来执行的应用程序(或它们的组合)的一部分。另外,诸如附加数据存储设备和打印设备等各种其它外部设备可以被连接到该计算机平台。
还应该理解,因为附图中描述的某些系统结构组件和方法步骤最好是用软件实现的,所以系统组件(或处理步骤)之间的实际连接可以根据本发明的编程方法而不同。在这里给出一种教导,相关领域的一般技术人员可以设想本发明的这些以及类似的实现或配置。
图1A的框图示出了根据本发明所示实施例可以应用本发明的计算机系统100。计算机处理系统100包括至少一个经由系统总线104与其它组件可操作相耦合的处理器(CPU)102。只读存储器(ROM)106、随机读取存储器(RAM)、显示适配器110、I/O适配器112、用户接口适配器114、声音适配器199和网络适配器198被可操作地耦合到系统总线104。
显示设备116通过显示适配器110被可操作地耦合到系统总线104。盘存储设备(例如,磁或光盘存储设备)118通过I/O适配器112被可操作地耦合到系统总线104。
鼠标120和键盘122通过用户接口适配器114被可操作地耦合到系统总线104。鼠标120和键盘122被用于向/从系统100输入/输出信息。
至少一个扬声器(此后称之为“扬声器”)197通过音频适配器199被可操作地耦合到系统总线104。
(数字和/或模拟)调制解调器196通过网络适配器198被可操作地耦合到系统总线104。
现在将描述根据本发明一个范例性实施例的基于策略的网络管理(PBNM)。PBNM是一项提供定义和分配策略以管理网络(本发明可以在其上应用的网络的例子将在下面参考图2描述)的能力的技术。这些策略允许诸如带宽的临界网络资源和安全的协调控制。PBNM使能需要在网络上不同处理的应用程序,如基于IP的视频会议。PBMN提供了一种基础,从而允许在一个单一的网络上共存多个不同类型的应用程序并将所需资源提供给这些应用程序中的每一个程序。
再详细地说,PBNM规定用于消耗网络资源的应用程序和用户的策略。例如,商业临界应用程序可以被给予网络上的最高优先权和带宽百分比,视频和IP上的语音可以被给与次最高优先权,最后不需要严格带宽或时间临界限制的网络业务和文件传输可以被给与网络上剩余的资源。用户和应用程序的这个区别可以使用PBNM来实现。
视频会议系统通过向一个网络策略服务器查询与该视频会议应用程序对应的策略与PBNM系统关联。视频会议服务器从网络策略服务器获得策略,并且根据所接收的参数确定用于视频会议的网络中可用的资源。该策略一般对应于例如某天某特定时间内该应用程序或仅仅是某个用户可用的带宽。通过例如对策略和/或策略的一部分进行增加、删除、替换、修改等,可以很容易地修改该结构。结果是,视频会议服务器将使用在该策略中提供的信息来管理网络上的会议会话。
图2的框图示出了根据本发明一个范例性实施例可以应用本发明的网络200。网络200包括:视频会议服务器205、策略和QoS管理器210、MADCAP服务器215、第一多个计算机230a-f、第一局域网225、第一路由器240、第二多个计算机230a-e、第二局域网235、第二路由器245和广域网250。
现在将给出根据本发明一个范例性实施例的服务器结构的描述。图3的框图示的框图出了根据本发明一个范例性实施例的图2所示视频会议服务器205。视频会议服务器205可以被认为包括下面三个基本实体:数据库实体302、网络通信实体304和会话管理实体306。
会话管理实体306负责管理视频会议会话的建立和拆卸。会话管理实体306还提供了视频会议服务器205的大部分主控制。会话管理实体306包括用于实现会话管理实体306的功能的会话管理器320。
网络通信实体304负责封装用于视频会议系统的多个不同协议。这些协议可以包括用于远程行政管理和管理的简单网络管理协议(SNMP)、用于策略管理的通用开放策略服务(COPS)或另一协议、诸如用于策略管理的轻量目录访问协议(LDAP)、用于多播地址分配的多播地址动态客户机分配协议(MADCAP)、用于视频会议会话管理的会话发起协议(SIP)、用于分布式视频会议服务器管理的服务器对服务器消息传递。因此,网络通信实体304包括:SNMP模型304a、LDAP客户机模块304b、MADCAP客户机模块304c、SIP模块304d和服务器对服务器管理模块304e。此外,前述元件304a-e分别与下列元件通信:远程管理终端382、网络策略服务器(带宽代理)384、MADCAP服务器215、桌面会议客户机388及其它视频会议服务器390。这些通信也可以使用发送控制协议(TCP)、用户数据报协议(UDP)、互联网协议(IP)来实现,这些协议全部用协议模块330来表示。应该知道上述协议列表和对应的元件只是示例性的,其它协议和对应元件可以很容易地使用而保持本发明的精神和范围。
还应该知道,视频会议服务器205的结构还适用于便携式设备的用户通过虚拟专用网(VPN)连接到公司设施以发送和从视频会议会话接收内容。
数据库实体302包括下面四个数据库:日程安排数据库310、主动会话数据库312、成员数据库314和网络结构数据库316。
视频会议服务器205还包括公司LDAP服务器(用户信息)304和可选外部数据库342或至少与他们连接的接口。可选外部数据库342包括一个LDAP客户机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。
现在将参考本发明的一个示例性实施例,给出包括在网络通信实体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代理620c处SNMP管理站610的存取点的一个集合而行使功能。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函数的变种。所有三个消息由SNMP代理620c以GetResponse消息的形式应答,它被传至管理应用610a。SNMP代理620c还可以发出一个TRAP消息来响应被管理资源中发生的事件。
再参考图3,根据本发明的一个示例性实施例,现在将给出包含在图3的网络通信实体304的轻量目录访问协议(LDAP)的客户机模块304b的描述。LDAP模块304b使用LDAP,LDAP是一种基于IP来访问公共目录信息的标准协议。LDAP定义了访问和修改目录实体的操作,如:搜索满足用户特定准则的实体、增加一个实体、删除一个实体、修改一个实体和比较一个实体。
现在将根据本发明的一个示例性实施例,给出包含在图3的网络通信实体中的多播地址动态客户分配协议(MADCAP)的客户机模块304c的描述。MADCAP模块304c使用MADCAP,MADCAP是一种使得主机可以从多播地址分配服务器处请求多播地址分配服务的协议。当一个视频会议会话被建立以使用多播服务时,视频会议服务器205需要获得一个多播地址以分配给会话中的客户机。视频会议服务器205可以使用MADCAP协议从多播地址分配服务器处动态获取一个多播地址。
现在将根据本发明的一个示例性实施例,给出包含在图3的网络通信实体304中的会话发起协议(SIP)模块304d的描述。SIP模块304d使用SIP,SIP是一个用于与基于IP的网络上的一个或多个参与者,创建、修改和终止媒体会话的应用层控制协议。SIP是一种基于文本消息的协议。
在一个基于SIP的视频会议系统中,每一个客户机和服务器通过一个SIPURL来识别。SIP URL采用user@host的形式,它与电子邮件地址的格式相同,并且在大多数情况下SIP URL是用户的电子邮件地址。
现在将根据本发明的一个示例性实施例,给出包含在图3的网络通信实体304中的服务器对服务器管理模块304e的描述。服务器对服务器管理模块304e使用消息来在视频会议服务器之间交换信息。服务器对服务器管理模块304e最好使用在典型的调度中,其中一个视频会议服务器(如视频会议服务器205)被唯一地建立在它所支持的网络(如LAN225)的局部,从而多个视频会议服务器可以存在于公司范围的网络内(如网络200)。用于交换信息的消息的一些最初目的包括同步数据库和检测网络资源的可用性。
定义了下列消息:QUERY-在远程服务器中查询一个实体、ADD-在远程服务器中增加一个实体、DELETE-从远程服务器中删除一个实体、以及UPDATE-更新远程服务器中的一个实体。
服务器对服务器消息可以使用每个服务器之间基于TCP的连接。当一个服务器的状态改变时,其它服务器更新相同信息。
现在将根据本发明的一个示例性实施例,给出视频会议服务器205的示例性操作场景的描述。开始,提供了与视频会议会话的设置相对应的操作场景的描述,然后是在视频会议会话过程中与分辨率和帧速率调节相对应的操作场景的描述。会话的操作场景包括SIP服务器发现、成员注册、会话建立、会话取消和会话结束。
现在将根据本发明的一个示例性实施例,给出与SIP服务器发现相对应的会话操作场景的描述。用户(视频会议客户机应用)可以向一个预配置的视频会议服务器(手工设置的)注册,或者在启动时通过向已知的“所有SIP服务器”的多播地址“sip.mcast.net”(224.0.1.75)发送一个REGISTER请求来注册。第二种机制(REGISTER请求)更可取,因为它不需要每一个用户在它们的视频会议客户机应用中手工配置本地SIP服务器地址。这样,多播地址必需在网络中的整个范围内都正确,以保证用户将视频会议注册到了正确的SIP服务器。除了上面的方法,在另一个为使设置过程更简单的方法中,SIP标准建议管理员使用sip.domainname的约定(例如,sip.Princeton.tce.com)来命名SIP服务器。
现在将根据本发明的一个示例性实施例,给出与成员注册相对应的会话操作场景的描述。图7是一个说明了一种根据本发明的一个示例性实施例,用于使用会话发起协议(SIP)来注册视频会议会话的方法的图表。图7的例子包括一个视频会议客户机应用(客户机)702和一个视频会议服务器(服务器)205。应该注意,短语“客户机应用”和“客户机”在这里可以互换使用。
在成员注册功能中,客户机702向服务器205发送一个SIP REGISTER请求(步骤701)。服务器205接收这个消息并将客户机702的IP地址和SIP URL存入成员数据库314中。
REGISTER请求可以包括一个消息主体,尽管它的使用在标准中并没用定义。消息主体可以包括与向服务器205注册的客户机702的配置选项相关的附加信息。
服务器205通过回发一个200 OK消息给客户机702(步骤720)来确认注册。
现在将根据本发明的一个示例性实施例,给出单播和多播视频会议会话的描述。图1B和1C是根据本发明的两个实施例性实施例,分别描述了单播视频会议会话和多播视频会议会话的框图。图1B和1C的例子包括一个客户机1 130、一个客户机2 132、一个客户机3 134、一个以太网交换机136、一个IP路由器138、一个IP路由器140和一个WAN142。
在单播的例子中,唯一数据流从每个客户机发送到其它的每一个客户机。当很多参与者加入网络时,这种方法会消耗大量带宽。相反,在多播方法中,每一个客户机只发送一个数据流。这样,多播方法与单播方法相比,消耗较少的网络资源,如带宽。
现在将根据本发明的一个示例性实施例,给出与单播视频会议会话建立相对应的会话操作场景的描述。图8A是一个说明了一种根据本发明的一个示例性实施例,用于使用会话发起协议(SIP)来建立单播视频会议会话的方法的图表。图8A的例子包括一个视频会议客户机应用#1(客户机#1)802、一个视频会议服务器(服务器)205和一个视频会议客户机应用#2(客户机#2)806。
一个INVITE请求从客户机#1 802发送到服务器205(步骤810)。该INVITE请求被从服务器205转发到客户机#2 806(步骤815)。
一个180振铃消息从客户机#2 806发送到服务器205(步骤820)。该180振铃消息被从服务器205转发到客户机#1 802(步骤825)。
一个200 OK消息被从客户机发送到服务器205(步骤830)。该200 OK消息被从服务器205转发到客户机#1 802(步骤835)。
一个确认消息ACK被从客户机#1 802发送到客户机#2 806(步骤840)。视频会议会话在这两个节点(客户机#1 802和#2 806)之间产生了。
图8B是一个说明了根据本发明的一个示例性实施例,当从视频会议的客户机应用#1 802处收到一个INVITE请求(图8A的步骤810)时,的视频会议服务器205所采用的步骤的图表。
最初,服务器205检查请求用户(客户机#1 802)是否在服务器205中注册,并且它还检查被呼叫的用户(客户机#2 806)是否在服务器205中注册(步骤850)。
服务器205确定网络中的每一个用户的位置(步骤855),并且确定是否有连接这两个位置(如果不同)的低带宽WAN链路(如WAN 250)(步骤860)。
如果没有将这两个位置连接在一起的低带宽WAN链路,服务器205处理这个呼叫(步骤865)。但是,如果在这两个用户之间有低带宽链路,那么该方法处理步骤870。
在步骤870,服务器205检查WAN 250上的视频会议会话的策略;这从根本上转换成“X会话可以产生在最大比特速率Y上”。服务器205根据这个策略检查可用性(步骤875)。如果没有可用的,那么服务器205通过下列消息中的任何一个来拒绝INVITE请求,“600-所有地点忙”、“486-此处忙”、“503-服务不可用”或“603-拒绝”(步骤880),并且本方法结束(不再继续图8A的方法的步骤815)。但是,如果有可用的,那么服务器205处理该呼叫(步骤865)。应该知道步骤865在图8A的方法的步骤815之后。
图9是一个进一步说明了根据本发明的一个示例性实施例的图8A的方法的图表。图9的例子包括一个客户机应用1 988、一个客户机应用2 997、视频会议服务器205和其它视频会议服务器986。同样显示在图9中的视频会议服务器205的元件包括成员数据库314、主动会话数据库312、包括在网络结构数据库316中的一个策略数据库999、会话管理器320、SIP模块304d和服务器至服务器管理模块304e。
提供图9以描述视频会议服务器205中的内部交互,因此只在一个基本层面上显示,以提供视频会议服务器205的实体之间的信令流程的例子。
在视频会议服务器205中一个INVITE请求从客户机应用1 988发送到SIP模块304d(步骤903)。SIP模块304d对消息进行解码并将该INVITE转发给会话管理器320(步骤906)。会话管理器320检查主动会话数据库312、成员数据库314和网络结构数据库316中的策略数据库999以保证会话可以被正确建立(步骤909、912和915)。然后主动会话数据库312成员数据库314和策略数据库999发送一个OK消息给会话管理器320(步骤918、921和924)。一旦这个验证过程完成,视频会议服务器205将通知其它视频会议服务器系统状态中的变化(步骤927和930)。
会话管理器320将INVITE消息转发给SIP模块304d(步骤933),然后SIP模块304d将该INVITE消息转发给客户机应用2 997(步骤936)。根据接收到INVITE消息,客户机应用2 997以一个180振铃消息响应SIP模块304d,该消息表明SIP模块304d已经收到了INVITE消息(步骤939)。该180振铃消息被SIP模块304d接收,解码,然后转发给会话管理器320(步骤942)。客户机的状态在视频会议服务器205中的如图9所述的每一个数据库中更新(步骤945、948、951、954、957和958)。
180振铃消息被从会话管理器320转发到客户机应用1 998(步骤960和963)。然后一个200 OK消息被从客户机应用2 997发送到SIP模块304d(步骤966),并被从SIP模块转发到会话管理器320(步骤969)。该200 OK消息表明客户机应用2 997接受了该视频会话邀请。
客户机的状态在视频会议服务器205中的如图9所述的每一个数据库中更新(步骤972、975、978、981、984和985)。一个OK消息被从会话管理器320发送到SIP模块304d,并被从SIP模块304d转发到客户机应用1 988(步骤988和991)。一个ACK消息被从客户机应用1 988发送到客户机应用2 997,以完成会话的建立(步骤994)。
现在将根据本发明的一个示例性实施例,给出与多播视频会议会话建立相对应的会话操作场景的描述。为了提供多播会话建立,要使用会话描述协议(SDP)。SDP协议可以传送多播地址和端口号。
多播会话的建立与单播会话的建立类似,除了需要多播地址外。多播地址由网络中的MADCAP服务器215分配。
图10是一个说明了一种根据本发明的另一个示例性实施例,用于使用会话发起协议(SIP)来建立多播视频会议会话的方法的图表。图10的例子包括一个视频会议客户机应用#1(客户机#1)1002、一个视频会议服务器(服务器)205、一个视频会议和一个MADCAP服务器215。
一个INVITE请求被从客户机应用#1 1002发送到服务器205(步骤1010)。一个MADCAP请求被从服务器205发送到MADCAP服务器215(步骤1015)。一个确认消息ACK被从MADCAP服务器215发送到服务器205(步骤1025)。该INVITE消息被从服务器205转发到客户机应用#2 1006(步骤1035)。
一个180振铃消息被从客户机应用#2 1006发送到服务器205(步骤1030)。该180振铃消息被从服务器205转发到客户机应用#1 1002(步骤1045)。
一个确认消息ACK被从客户机应用#1 1002发送到客户机应用#2 1006(步骤1050)。视频会议会话(媒体会话)在两个节点(客户机#1 1002和#2 1006)之间产生了(步骤1055)。
现在将根据本发明的一个示例性实施例,给出与取消视频会议会话相对应的会话操作场景的描述。CANCEL消息用于终止正在进行的会话建立尝试。客户机可以使用这个消息来取消一个以前发起的正在进行的视频会议会话建立尝试。服务器将CANCEL消息转发给INVITE已经被发送给的具有正在处理的请求的相同位置。客户机不必用“200 OK”消息来响应CANCEL消息。如果CANCEL消息未成功,那么可以使用会话终止序列(如BYE消息)。
图11是一个说明了一种根据本发明的一个示例性实施例,用于使用会话发起协议(SIP)来取消一次视频会议会话的方法的图表。图11的例子包括一个视频会议客户机#1(客户机#1)1102、一个视频会议服务器(服务器)205和一个视频会议客户机#2(客户机#2)1106。
一个INVITE请求被从客户机#1 1102发送给服务器205(步骤1110)。该INVITE请求被从服务器205转发到客户机#2 1106(步骤1115)。
一个180振铃消息被从客户机#2 1106发送到服务器205(步骤1120)。该180振铃消息被从服务器205转发给客户机#1 1102(步骤1125)。
一个CANCEL消息被从客户机#1 1102发送给服务器205(步骤1130)。该CANCEL消息被从服务器205转发给客户机#1 1102(步骤1135)。
现在将根据本发明的一个示例性实施例,给出与终止视频会议会话相对应的会话操作场景的描述。图12是一个说明了一种根据本发明的一个示例性实施例,用于使用会话发起协议(SIP)来终止两个客户机之间的视频会议会话的方法的图表。图12的例子包括一个第一客户机(视频客户机应用#1)1202、一个视频会议服务器(服务器)205和一个第二客户机(视频客户机应用#2)1206。
客户机#1 1202决定断开与客户机#2 1206的通话。因此,客户机#11202发送一个BYE消息给服务器205(步骤1210)。服务器205将该BYE消息转发给客户机#2 1206(步骤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发送一个BYE消息给服务器205(步骤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)。客户机#1 1402向服务器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消息给视频会议用户所属的多播组地址来激活一个终端。使用这个方法,服务器和客户机应用将接收这个消息。这是由于与会话相关的费用较低而终止会话的更加通用和有效的机制。
现在将根据本发明的一个示例性实施例,给出与分辨率和帧速率调节相对应的操作场景的描述。视频会议涉及在计算机网络中的不同位置的多个用户之间传输实时的双向交互视频。实时交互视频需要在有限的时延内传输大量信息。这需要与视频会议系统相关联的计算机网络必需能够为会话中涉及的每一个用户提供足够数量的带宽和服务质量。带宽有时是一种有限资源,并且服务质量不能总是在所有网络中保证,因此存在一些限制。在专用公司网络中,可以保证服务质量,但是不能总是保证数量巨大的带宽。
基本的公司计算机网结构包括通过低速链路连接在一起的多个高速局域网(LAN)(比如图2)。每一个高速LAN一般表示一个单独地理位置上的网络结构,低速链路是将多个地理位置连接在一起的长距离链路。使用低速链路的原因是长距离链路的费用比较高并且大部分网络流量一般都集中在局域网内部,因此在这些长距离链路上不会经常交换大数据量数据。
在基于IP的网络上的服务质量的最新进展现在提供了一种使得其它类型的数据可以在这些网络中传输的方法。这打开了在该结构中除了传输非实时数据业务外,还可以传输实时信息(如视频和音频)的大门。利用网络中的服务质量的视频会议服务非常适合于施加在这种结构上。现在,处于两个不同地理位置的用户进行实时视频会议会话是可能的了。视频会议会话的一个不足在于实时视频的传输会消耗极大量的带宽,并且很容易耗尽可用的网络资源。网络上传输的实时视频的比特率主要由视频分辨率和所使用的压缩算法来决定。典型情况下,处于不同地理位置的两个、三个或四个用户之间的一个视频会议会话可以被具有合理带宽量的网路很好地支持。但是,一般有这样的情况,在一个视频会议会话中超过四个用户的更多用户不能够被支持,并且由于带宽的限制,也不能支持第二个视频会议。视频会议系统的这个限制因素是地理位置之间的低速长距离链路。
一个可能的解决方法是增加两个地理位置之间的长距离链路的带宽,以在系统中支持更多的用户。这种方法的缺点在于带宽是非常昂贵的。第二种解决方法是建立这样一种系统,其中视频会议会话中只有有限数量的用户(即积极用户)被允许在高分辨率和高比特率下传输,而视频会议会话中的其余用户(即消极用户)只能在有限的比特率和有限的分辨率下传输。视频会议会话的组织者将控制哪些用户在高分辨率下传输,哪些用户在低分辨率下传输。如果一个用户在会话中没有积极谈话或交互,那么就没有必要以高分辨率传输他们的视频。
提前参考图18A的视频会议客户机应用1800,此方法涉及在视频会议客户机应用1800中包括一个支持不同窗口大小(即,以不同尺寸的显示窗口显示高分辨率和低分辨率解码的视频流)的用户界面1808,和一个规定了服务器205和其它客户机应用之间的通信的消息系统1842(包含在网络实体1806中,网络实体1806又包含在图18A的视频会议客户机应用1800中)。消息系统1842包括控制每一个客户机应用的编码分辨率和传输比特率的消息。
现在将根据本发明的一个示例性实施例,给出与分辨率和帧速率调节相对应的消息的描述。特别是,将描述MSG_WINDOW_SWITCH消息和MSG_ADJUST_CODEC消息。
MSG_WINDOW_SWITC消息被从客户机发送到服务器,表示积极用户和消极用户之间的切换;也就是,积极用户变成消极的,消极用户变成积极的。视频会议服务器将向客户机确认这个请求。
MSG_ADJUST_CODEC消息被从服务器发送给每一个客户机。MSG_ADJUST_CODEC消息向客户机表明客户机应该以什么样的分辨率(即CIF或QCIF)和帧速率来发送。MSG_ADJUST_CODEC消息由每一个客户机确认。
图15是一个说明了一种根据本发明的一个示例性实施例,用于分辨率和帧速率调节的信令方法的图表。图15的例子包括一个视频会议服务器(服务器)205、一个客户机1 1504、一个客户机2 1506、一个客户机3 1508和一个客户机4 1510。
MSG_WINDOW_SWITC消息被从客户机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 1810。
“以低比特率/分辨率发送”的消息被从客户机1 1602发送到网络路由器1606(步骤1620)。“以高比特率/分辨率发送”的消息被从客户机3 1608发送到网络路由器1606(步骤1625)。“以低比特率/分辨率发送”的消息被从客户机2 1604发送到网络路由器1606(步骤1630)。“以高比特率/分辨率发送”的消息被从客户机4 1610发送到网络路由器1606(步骤1635)。
数据被使用多播地址从网络路由器1606分别发送到客户机2 1604、客户机3 1608、客户机1 1602和客户机4 1810(步骤1640、1645、1650和1655)。
继续图17,“以低比特率/分辨率发送”的消息被从客户机1 1602发送到网络路由器1606(步骤1720)。“以高比特率/分辨率发送”的消息被从客户机3 1608发送到网络路由器1606(步骤1725)。“以高比特率/分辨率发送”的消息被从客户机2 1604发送到网络路由器1606(步骤1730)。“以高比特率/分辨率发送”的消息被从客户机4 1610发送到网络路由器1606(步骤1735)。
数据被使用多播地址从网络路由器1606分别发送到客户机2 1604、客户机3 1608、客户机1 1602和客户机4 1810(步骤1740、1745、1750和1755)。
现在将根据本发明的一个示例性实施例,给出客户机应用的描述。客户机应用负责与用户交互,与其它客户机应用交换多媒体内容,和与服务器应用管理呼叫。图18A是一个根据本发明的一个示例性实施例的视频会议客户机应用1800的框图。应该知道视频会议客户机应用1800可以在如计算机220a-f中的任何一个和/或计算机230a-f中的任何一个上找到。
视频会议客户机应用1800包括下面四个基本实体:一个多媒体接口层1802、编解码器1804(音频编解码器1804a和视频编解码器1804b)、一个网络实体1806和一个用户接口1808。
多媒体接口层1802是视频会议客户机应用1800的主控制实例。所有系统内通信被路由到多媒体接口层1802,并且被它控制。多媒体接口层1802的一个重要的根本特性是非常容易地交换不同音频和视频编解码器1804的能力。除此外,多媒体接口层1802提供了一个与依赖操作系统(OS)的用户输入/输出实体以及网络子系统的接口。多媒体接口层1802包括一个成员数据库1820、一个主控制模块1822、一个音频混频器1899和一个回波消除模块1898。
用户接口1808提供了终端用户与视频会议客户机应用1800的交互点。用户接口1808最好但不是必须实现为与OS相关的模块。许多图形用户界面都是依赖于它们所使用的特定的OS。用户接口1808的四个主要功能是视频捕捉、视频显示、音频捕捉、音频播放。用户接口1808包括一个音频/视频捕捉接口1830、一个音频/视频播放模块1832、一个成员流览模块1834、一个聊天模块1836和一个用户选择/菜单1838。音频/视频捕捉接口1830包括一个摄像接口1830a、一个麦克风接口1830b和一个文件接口1830c。音频/视频播放模块1832包括一个视频显示器1832a、一个音频播放模块1832b和一个文件接口1832c。
网络实体1806表示视频会议客户机应用1800的通信子系统。网络实体1806的功能是基于会话发起协议(SIP)的客户机至服务器的消息传递,以及音频和视频流的发送和接收。网络实体1806还包括对客户机之间的媒体流进行认证和加密的基本安全功能。网络实体1806包括一个安全模块1840、一个消息传递系统1842、一个视频流模块1844、一个音频流模块1846和IPSocket 1848a-c。
音频编解码器1804a和视频编解码器1804b处理数字媒体的压缩和解压的子系统。编解码器的接口应该简单和通用以简单它们的交换。在下面内容中定义的多媒体接口层1802和编解码器1804的简单关系是一个示例性模板或实现指导。音频编解码器1804a和视频编解码器1804b每一个都包括一个编码器1880和一个解码器1890。编码器1880和解码器1890每一个都包括一个对列1895。
视频会议客户机应用1800至少连接于视频会议服务器205和其它客户机1870。
现在将参考本发明的一个示例性实施例,给出包含在图18A的多媒体接口层1802中的成员数据库1820的描述。成员数据库1820在每个会话的基础上存储每一个参加用户的信息。成员数据库1820包括与发送/接收IP地址相关的信息、客户机性能、特定编解码器的信息和不同用户的状态的详细信息。应该知道,上述项目只是示例性的,除了或代替上述项目的一些或全部的其它项目也可以保存在成员数据库1820中,而保持本发明的精神和范围。这些包括在成员数据库1820中的信息用于控制目的地为解码器1890的进入信息。来自网络的媒体信息需要被路由到正确的解码器1890。同等重要,来自解码器1890的媒体信息需要被路由到正确的单播或多播地址以发布。包括在成员数据库1820中的基本信息也被路由给用户接口1808以使终端用户知道会话中的参与者和他们的性能。一旦从视频会议服务器205接收到INVITE请求,就将用户加入到成员数据库182;一旦从视频会议服务器205接收到BYE请求,就将用户移除。当会话结束时,成员数据库182被清空。
现在将参考本发明的一个示例性实施例,给出包含在图18A的多媒体接口层1802中的主控制模块1822的描述。主控制模块1822作为中心管理子系统而行使功能,并且提供下列主要功能:用于音频和视频解码器和播放的同步机制,将解码器的目的地连接至屏幕或出于记录的目的连接至文件,应用层的服务质量。
音频和视频播放的同步对理想的视频会议用户体验来说是至关重要的。为了将这两个媒体流精确同步,需要使用时间戳,并且时间戳随媒体内容一起发送。实时协议(RTP)提供了一种用于此目的的包含时间戳和序列号的通用包头。提供的时间戳并不是为了同步两个网络节点的时钟,而是为了同步音频和视频以连贯播放。这些时间戳需要在捕获时刻从同一节点上的公共时钟来获取。例如,当捕获到一个视频帧时,视频帧被捕获的时刻必须被记录。这同样应用于音频。其它使用RTP的细节和原则在其它地方描述。
主控制模块1822同步音频和视频的功能是为了建立网络实体1806和编解码器1804之间的连接,以正确发布元数据(包括时间戳和序列号)和多媒体数据。如果分组被延误,那么根据系统的当前情况,它们将在解码前或后被丢弃。RTP时间戳随后被用来创建显示和播放时间戳。
主控制模块1822还负责将解码器1890的输出导向屏幕以显示,导向文件以记录,或两者。每一个解码器1890独立对待,因此在一个示例情况下,这使得一个解码器的输出显示在屏幕上,第二解码器的输出记录在一个文件中,而第三解码器的输出同时既输出给一个文件又输出给屏幕。
除了上述职责,主控制模块1822还涉及应用层的服务质量。主控制模块1822收集丢包和收发字节的信息,并根据这些信息来工作。这涉及向另一个客户机或视频会议服务器205发送消息,以帮助补偿网络中发生的情况。实时控制协议(RTCP)可以用于报告统计数据和分组丢失数据,并且可以用于应用的特定信令。
图18B是一个进一步说明了根据本发明的一个示例性实施例,包含在图18A的多媒体接口层1802中的音频混频器1899的框图。音频混频器1899(这里也指“增益控制模块”)在运行中与大量音频解码器1890相连。这些解码器1890接收压缩的音频流,输出解压的音频流。解压后的音频流被输入给音频混频器1899,并作为合并的音频流而输出。
图18C是一个进一步说明了根据本发明的一个示例性实施例,包含在图18A的多媒体接口层1802中的回波消除模块1898的框图。回波消除模块1898(这里也指“回波消除器”)在运行中与一个扬声器1897(如音频播放模块1832b)和一个麦克风1896(如麦克风接口1830b)相连。当声音在一个全双工或双向通信系统中从扬声器1897中产生时,它的目的只是被本地收听者听到。但是,产生的声音还被本地的麦克风1896听到,这使得信号又传送回远端,作为回声而听到。为此,视频会议客户机应用1800需要回波消除模块1898来减弱这个影响,而创建一个较好的用户经历。
现在将根据本发明的一个示例性实施例,给出视频会议客户机应用1800的子系统可用的接口的描述。这些接口包括:用户接口1808、网络实体1806和编解码器1804的交互点。用户接口1808提供接收捕获的音频和视频以及相应的时间戳的功能。除此外,还必须提供向用户接口1808发送音频和视频以显示和播放的功能。网络实体1806接口为会话控制和安全,提供进入和输出消息的发信号的功能。音频和视频编解码器1804a、b提供用于配置控制以及发送和接收分组以压缩或解压的基本接口。
现在将根据本发明的一个示例性实施例,给出音频和视频编解码器1804a、b的描述。
在视频会议中有多种可用的音频和视频编解码器。根据本发明而使用的编解码器,最好但不是必须是,基于软件的。根据本发明的一个示例性实施例,由于典型桌面计算机的处理能力的限制,H.263被用于视频压缩和解压。随着桌面计算机在将来变得更强大,可以实现并利用更高级的编解码如H.26L的能力。当然,本发明并不限于上述类型的编解码器,其它类型的编解码器也可以使用,而保持本发明的精神和范围。
现在将根据本发明的一个示例性实施例,给出编解码器1804a、b的接口的描述。描述将包括一个数据输入(DataIn)功能、回调功能和编解码选项。编解码器1804a、b的接口应该足够灵活,并且是在通用意义上定义的,以允许编解码的互换以及允许将来加入新的编解码器。用于实现这个灵活和通用的接口的建议性接口是一个非常简单的接口,只提供给用户有限数量的功能。
数据输入功能简单地用于存储编码器和解码器类的一个帧或一个分组。
为了提供多媒体接口层1802和编解码器1804之间的简单连接,数据输出功能应该被实现为一个回调。多媒体接口层1802向接收实体的输入函数设置这个回调函数。例如,当编解码器完成了一个帧的编码或解码时,这个函数将被编解码器调用,以从编码和解码处理过程中发布目标消息。由于编解码器不能在回调中做任何事情的限制,这个函数应该尽快返回,以防止系统中的等待和不必要的延时。在这个函数中唯一的额外等待应该是访问共享资源时的互斥锁。
不同编解码器的可用选项的范围是不同的。为了满足管理这些选项的需要,应该使用一个简单的接口。因为基于文本的接口所提供的灵活性,所以它是优选的(但不是必选的)。应该有一个公共命令集,如START和STOP,和编解码特定的命令。该方法提供了一种简单的接口,但是由于需要一种简单的解释器,所以在编解码器加入了额外的复杂性。例如,读和写选项是足够通用的选项函数。
例子:结果=选项(“开始”);结果=选项(“分辨率=CIF”);等
例如,编解码器中的一些公共选项可以被标准化如下:开始;停止;暂停;质量指数(0-100);和分辨率。
质量指数是一个将编解码器的整体质量描述为一个0%和100%之间的一个值的因子。它遵循的基本假设是值越大,视频质量越好。
图19是一个说明了一种根据本发明的一个示例性实施例,由包含在音频编解码器1804a和/或视频编解码器1804b中的解码器1890所使用的一种方法的图表。该方法是与解码器上下文1901和呼叫者上下文1902相对应进行描述的。该方法使用至少下列输入和输出来操作:“数据输入”1999;“信号输入”1998;“信号输出回调”1997;“设置回调函数”1996;和“数据输出回调”1995。“数据输入”1999用于将数据存储到一个输入队列中(步骤1905)。
执行初始化步骤(Init)来初始化解码器1890(步骤1910)。一个等待开始或退出命令的主循环被执行(步骤1920)。如果收到一个退出命令,那么方法退出(步骤1922),并且返回到例如另一个操作(步骤1924)。
数据被从输入队列1895中读出,或者如果输入队列1895为空,则实施等待情况。数据,如果在步骤1930中读出,被解码(步骤1940)。“数据输出回调”1995被提供给步骤1920。
现在将根据本发明的一个示例性实施例,给出网络200所使用的通信的描述。该描对上述提供给网络通信的进行补充。
消息传递系统1842(包含在图18A的网络实体1806中)提供了视频会议客户机应用1800和视频会议服务器205之间的接口。目的是用于会话管理(如会话建立和拆断)。所有的信令消息通过视频会议服务区205传递,并不是从客户机到客户机。如多媒体内容和专用聊天消息等的数据仅包括直接在客户机之间发送的信息。消息传递系统将使用基于会话发起协议(SIP)的标准。
有多个不同的管理视频会议客户机应用1800的功能的协议。例如,可以使用会话发起协议(SIP)、实时协议(RTP)、实时控制协议(RTCP)和会话描述协议(SDP)。
会话发起协议(SIP)的目的是会话管理。SIP是一个基于文本的应用层控制协议,用于创建、修改和终止与基于IP的网络中的一个或多个参与者的多媒体会话。SIP用于客户机和服务器之间来完成这个。SIP在上面参考视频会议服务器205已经进行了深入描述。
实时协议(RTP)用于实时多媒体(如音频和视频)的传送。RTP是一种用于提供与它所携带的多媒体信息类型相关的额外详细信息的应用层协议。RTP处于传输层之上,经常承载在用户报协议(UDP)上。RTP在客户机应用中的基本功能是为了传输时间戳(用于音频和视频同步)、序列号,以及标识它所封装的载荷的类型(如MPEG4、H.263、G.723等)。
图20是一个说明了根据本发明的一个示例性实施例的用户平面协议堆栈2000的图表。协议堆栈2000包括一层上的视频2010和语音2020,在另一层上既用于视频2010又用于语音2020的RTP2030,在又一层上的UDP端口#X和UDP端口#Y 2050,一个IP层2060,一个链路层2070和一个物理层2080。除了通用RTP包头,还使用编解码特定的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的进一步的描述将根据本发明的一个示例性实施例给出。用户接口1808是视频会议客户机应用1800的一个非常重要的元件。用户接口1808包括多个视图(显示器/按钮/菜单)并可以处理所有的输入数据(音频/视频捕捉,按钮,击键)。
图22是一个说明了根据本发明的一个示例性实施例,与图18A的用户接口1808对应的屏幕照片2200的框图。屏幕照片2200包括“大视图”2210、“小视图”2220、一个聊天视图部分2230、一个成员视图部分2240和一个聊天编辑部分2250。
再参考图18A,视频捕捉接口1830可包括下面的任何接口:网络摄像头(未显示)、捕捉卡和高质量摄像机(未显示)、摄像机接口1830a、麦克风接口1830b、文件接口1830c等等。
应该通过使用Windows操作系统提供的Windows视频(VFW)应用编程接口(API),通过USB或Firewire(IEEE1394)接口,或者通过在不同操作系统如Linux下使用的可选捕捉驱动器来支持。当然,本发明并不限于上述接口,操作系统或驱动器,所以其它接口,操作系统和驱动器也可以使用,而保持本发明的精神和范围。
成员视图模块1843用于显示参与在正在进行的呼叫中的成员。呼叫的发起者(如主控者)可以或者挂掉不希望的成员或者选择主动成员。每一个成员可以选择一个或多个成员来进行专用聊天消息交换。另外,成员的状态被标记在成员视图模块1834中。然后一个成员可以设置它自己的状态为,例如“不可用”,以向其他人发信号他当前没空,但是很快会回来。
除了视频流,每一个成员有使用聊天模块1836向所有人或者某些其他成员发送聊天消息的机会。消息被显示在聊天视图中,并可以在视图编辑视图中被编辑。滚动条使得可以浏览以前的信息。
现在将根据本发明的一个示例性实施例,给出视频会议客户机应用1800的操作场景的描述。下面的描述只是视频会议客户机应用1800的某些特性的基本准则,目的并不是表示完整的特性列表。描述将包括登录、发起呼叫、接受呼叫和注销。
当视频会议客户机应用1800最初开始时,登录就完成了。登录可以基于开始时提供给操作系统的登录名来自动完成,或者可以使用一个与登录独立的不同界面。这依赖于当前使用的网络的优选认证方法,以及策略的管理方法。最简单的方法是使用与Windows操作系统使用的相同的登录名,以保持命名一致,并且还可以重用已有的用户数据库(如果可行)。
图23是一个说明了根据本发明的一个示例性实施例的登录界面2300的图表。如果用户当前在服务器上没有账号,则使用签名特性2330。为了方便访问,可以在任何电子邮件地址输入框2340中提供电子邮件地址。
为了发起一次呼叫,视频会议客户机应用1800向服务器205查询可用的候选列表。客户机可以选择他或她希望加入到视频会议会话中的用户。当涉及两个参与者时,将建立一个单播会话;否则,当涉及超过两个参与者时,将建立一个多播会话。
图24是一个说明了根据本发明的一个示例性实施例,用于会话发起的用户选择界面2400的图表。
一旦用户被邀请加入一次呼叫,一个显示发起者的名子的消息将显示在屏幕上。然后用户可以或者接受或者拒绝该呼叫。如果用户接受了呼叫,那么视频会议客户机应用1800发送一个接受(或确认)消息给服务器205。然后服务器205向每一个当前参与在呼叫中的成员通知新用户。如果用户通过向服务器205发送取消消息来拒绝呼叫,那么所有其他成员也将被通知这个消息。图25是一个说明了根据本发明的一个示例性实施例,用于接受或拒绝呼入的邀请界面2500的图表。
注销将把用户从视频会议服务器205的数据库实体302中包含的成员数据库314中消除。一个BYE消息被发送给每一个会话的参与客户机。这即可以通过多播又可以通过单播来完成。
为了说明的目的,本发明的下列描述参考图2中的示例性网络200进行。但是,应该知道,本发明并不限于图2所示的特定网络结构,也可以根据本发明使用网络的其它结构和实现,而保持本发明的精神和范围。
对通过网络200的业务类型(实时业务和非实时业务)的区分可以在连接LAN225、235和WAN250的路由器240中完成。在这些路由器240、245中,存在一个具有特定准则,如源和目的因特网协议(IP)地址、用户报协议/传输控制协议(UDP/TCP)端口号,以及类似的可以用于提供区分业务的基础的滤波器。本发明提供了一种基于视频会议时间预约系统来动态建立这些业务分类滤波器的机制。
在视频会议系统中,时间预约系统典型情况下用于预约使用视频会议系统的时间周期。但是,除了使用时间预约系统来预约使用视频会议系统的时间周期外,根据本发明的视频会议系统的优点是可以为视频会议会话的持续时间建立服务质量契约,并且还可以提供滤波准则(如,视频会议的特点成员)。在预约时间周期到达之前,QoS契约和业务分类滤波器不会输入到将LAN225、235一起连至WAN250的路由器240、245。一旦预约时间周期结束,QoS契约和滤波器将被从将LAN225、235一起连至WAN250的路由器240、245中移除。例如,如果预约了某一天中的1:00PM至2:00PM之间的时间周期,视频会议服务器205将动态地为这个特定的时间量设置QoS契约和滤波器,以为WAN250上的两个客户机之间的视频会议会话提供正确的支持。路由器225、235根据本发明的一个示例性实施例提供了至WAN250的入口点,这是QoS契约和滤波器使用的地方。视频业务将获得它在WAN250上传输所需要的带宽量,任何剩余的未用带宽将被分配给有最佳作用的数据服务。
图26是一个说明了根据本发明的一个示例性实施例,用于为视频会议会话建立服务质量(QoS)契约和业务分类滤波器的方法的流图。该方法基于对视频会议会话时间的预约。方法包括一个视频会议客户机计算机#1(客户机计算机#1)2602、一个视频会议客户机计算机#2(客户机计算机#2)2604、一个视频会议服务器205、一个路由器#1 240、一个路由器#2 245。在例子中,客户机计算机#1是发起视频会议会话的客户机。
客户机计算机#1 2602和客户机计算机#2 2604开始在视频会议服务器205中注册(步骤2610a和2610b)。步骤2610a、2610b可以在计算机2602、2604最初加电的时侯或在某些其它时刻执行。在注册过程中提供的信息包括客户机计算机#1 2602和客户机计算机#2 2604的IP地址。每一个IP地址可以和一个位置名称或一个可以以某种方式唯一标识相应的客户机计算机的计算机名称相关联;当然,可以忽略这个关联而原样使用IP地址本身,因为IP地址实际上已经唯一标识了计算机,尽管可能使用的是对用户最不友好的格式。
客户机计算机#1 2602的用户预约视频会议会话的时间周期和日期(步骤2620)。当预约时间周期到达时(2625),配置信息被从视频会议服务器205处发送给路由器240、245的每一个(步骤2630a和2630b)。可以使用例如简单网络管理协议(SNMP)将配置信息发送给路由器240、245。当然,本发明并不限于SNMP,也可以使用其它协议,而保持本发明的精神和范围。配置信息包括QoS契约和业务分类滤波器。QoS契约指定视频会议会话业务所需的平均带宽量。业务分类滤波器指定源IP地址和目的IP地址,它还指定了用于实时业务的某些特定UPD端口。业务分类滤波器还可以像IP包头中设置的业务类型(ToS)字段的比特一样简单。应该知道本发明并不限于上面类型的业务分类滤波器,也可以使用其它类型的业务分类滤波器。也就是这里给出本发明所提供的启示,相关领域的一般技术人员将可以在其中补充这些以及各种其它类型的业务分类滤波器和信息,而保持本发明的精神和范围。
视频会议会话是根据QoS契约来管理的,使用业务分类滤波器来为视频会议会话提供保证的带宽量(步骤2640)。
随着预约时间周期和日期的到期(步骤2645),视频会议服务器205与路由器240、245的每一个关联以消除以前向发送给它们的配置信息(步骤2650a、2650b)。
或者,在时间周期到期时不立刻消除配置信息(每个步骤2650),而是当视频会议会话结束时管理视频会议会话的视频会议应用通知视频会议服务器205(步骤2647)。然后,紧接着步骤2647,执行步骤2650以使视频会议服务器205与路由器240、245的每一个关联以消除配置信息。这个备选方案可以在视频会议会话的过程中提供更大的灵活性。
应该知道,尽管图26的方法是参考视频会议会话的单个业务分类滤波器描述的,多于一个的业务分类滤波器也可以用于视频会议会话。例如,一个滤波器可以用于对实时业务进行分类/区分,另一个滤波器可以用于对非实时业务进行分类/区分。此外,尽管图26的方法是参考路由器描述的,网络的其它路由元件也可以使用,本发明并不仅限于路由器。这里给出本发明所提供的启示,相关领域的一般技术人员将可以补充这些以及本发明的各种其它各种配置和实现。
虽然示例性实施例是参考附图进行描述的,但是应该理解,本发明并不限于这些实施例,本领域的技术人员在不脱离本发明的精神和范围的情况下,可以子在其中进行各种其它变化和修改。所有这些变化和修改都作为附属权利要求所定义的而被包含在本发明的范围内。