多媒体通信方法 【发明领域】
本发明涉及电信,尤其是涉及电信和多媒体管理方法和装置,其使用户能够在即时(live)模式或时移(time-shifted)模式中复查会话的消息并在这两个模式之间来回转换会话,参与多个会话,并且将会话的消息存档用于以后的复查或处理。
相关技术的描述
语音通信的当前状态具有缺乏活动性的缺点。不管自动交换、高带宽网络和技术例如卫星、光纤、语音IP(VoIP)、无线和蜂窝网络如何,在人们如何使用电话方面有很少的变化。人们仍然需要拿起电话,拨叫另一方,等待产生连接,并接着与被拨叫方进行全双工同步会话。如果接收者不回答,则不产生连接,且不发生会话。
如果接收者有语音邮件,最多可留下单向异步语音消息。然而,发送语音邮件的过程繁琐且耗费时间。呼叫者需要等待另一端的电话停止响铃,转换到语音邮件系统,听语音消息问候,并接着留下消息。当前的语音邮件系统对接收者也不方便。接收者必须拨代码来访问其语音邮件,在一系列提示中导航(navigate),听队列中的任何早些时候的语音消息,并接着最后听发送者的消息。
一般语音邮件系统的另一缺点是不能组织语音消息或将语音消息永久地存档。使用一些语音邮件系统,用户可保存消息,但在预定的一段时间之后它被自动删除并永远丢失。
当前语音邮件系统的又一问题是在可留下消息之前必须在呼叫者和语音邮件系统之间产生连接。如果没有产生连接,则呼叫者无法留下消息。
当前电话系统基于相对过于简单化的使用模式:实时即时呼叫或无条理的语音邮件消息,其一般在它们被听到之后删除。这些形式的语音通信没有捕获可使用语音通信获得的实际功效,或没有利用网络速度的提升和现在可用的带宽。此外,如果电话网络有故障或不可访问(例如,便携式电话用户在没有覆盖的区域内或电话线路由于糟糕的天气而有故障),则不可发生通信。
通常,基于电话的通信没有跟上基于文本的通信中的进步。即时消息(instant message)、电子邮件、传真、聊天组和将文本消息存档的能力对于基于文本的通信都是平常的。除了语音邮件,少有现有的工具可管理语音消息和/或将语音消息存档。比较起来,当前可用来管理电话通信的工具与文本通信比较是原始的。
公司环境提供了在当前语音通信工具中的缺点的仅一个例子。当前没有综合方法来将整个组织中的语音通信作为公司资产来进行管理。雇员通常不记录也持久地储存其电话会话。大多数与商业有关的语音通信资产与讲话流失得一样快,而没有方法来以任何可管理的形式管理或存储那些会话的内容。
作为例证性的例子,考虑公司的销售经理。在忙碌的一天中,经理可能打很多电话,并通过电话与客户终结几个销售。没有组织、储存并随后取回这些会话的能力,经理就没有方法来解决可能出现的潜在问题,例如恢复一个交易相对另一交易的条款,或驳斥就以前对销售达成协议的条款进行争论的客户。如果这个经理有容易取回并复查会话的能力,则这些类型的问题可容易和顺利地解决。
当前的战术(tactical)无线电系统,例如军事、火警、警察、护理人员、援救队和第一出动人员所使用的那些系统也有很多缺点。大部分战术无线电通信必须通过消息发送者和接收者之间的“即时”无线电连接出现。如果在双方之间没有无线电连接,则会没有通信。如果发送者或接收者不可使用其无线电进行传送,或无线电电路连接不能建立,则不能发送紧急消息。战术通信因此被几个基本问题困扰。没有方法来:(i)保证消息的递送;(ii)接收者回顾并听取没有被实时地听到的消息;(iii)在会话中控制参与者的间隔;(iv)在对即时会话缺乏信号完整性时使系统处理。如果没有即时听到消息,则它被遗失。没有工具来使发送者或接收者管理、按优先顺序排列、存档和以后取回(即,时移)以前被发送的会话消息。
战术无线电通信系统的又一缺点是每个信道一次只有一个消息被发送。考虑大建筑物火灾的例子,其中,多队消防员、警察和护理人员同时援救被困在建筑物中的受困者,与火灾作斗争,给受困者提供医疗帮助,并控制旁观者。如果每个队使用同一信道,则通信可能变得拥挤和混乱。当多于一个的人同时传输时,传输变得“被压制(step on)”。此外也没有方法来区分开高和低优先级消息。在燃烧地建筑物内与火灾作斗争或援救被困的受困者的一队应有高于其它队例如控制旁观者的队的优先级。如果高优先级消息被较低优先级消息压制,则它可能不仅妨碍重要的通信,而且可能危及建筑物内的消防员和受困者的生命。
对缺乏按优先顺序排列消息的能力的一个可能的解决方案是使用多个信道,其中每队被分配一个不同的信道。然而该解决方案产生其自己的一组问题。消防队长如何在任何时刻及时确定听哪个信道?如果多个队都在不同的信道上,他们彼此如何通信?如果一个队要求紧急帮助,而正在听别的信道的其他队如何知道?虽然多个信道可减轻一些问题,但也可能引起混乱,比使用单个信道的情况产生更多的问题。
有效地按优先顺序排列消息、允许多个会话同时发生、实现消息的时移以保证发送、或支持存档和储存会话用于以后的取回和复查的管理工具的缺乏都促成与战术无线电相关的问题。在第一出动人员例如军事、警察和火警的情况下,有效的通信工具可能实际上意味着生和死之间的差别,或任务的成功或失败。上面的燃烧的建筑物例子在说明当前战术无线电通信的仅仅一些问题方面是有用的。对于军事、警察、第一出动人员和使用战术通信的其他人存在类似的问题。
使用基于分组的网络,通常使用的协议包括传输控制协议(TCP)和用户数据报协议(UDP)。UDP提供快速发送数据的优点,但以完整性为代价。分组可能在运送中被漏掉,且当试图在目的地尽快再现(render)数据时是不可行的。尽管有缺点,但由于其速度属性,UDP是互联网协议语音(VoIP)传输的标准。另一方面,TCP确实保证完美数据(即,所传输的数据的准确拷贝)的发送,但以等待时间为代价。所有分组被发送,而不管花费多长时间。此延迟使TCP对用在“即时”电话呼叫上不实际。目前,没有这样一种同时提供TCP和UDP的性能优点的已知协议,在这种协议中,可传输“足够好的”媒体,用于尽快再现媒体的完美拷贝的最后发送。此外,不存在根据在网络上接收者的在场以及其在即时或时移模式中再现数据的意图来确定应通过网络发送多少信息的协议。此外,在确定传输多少数据中使用通常考虑的其它因素,例如网络等待时间、网络降质、分组丢失、分组损坏和总带宽条件。然而,现有技术系统不考虑接收者的在场和意图。作为结果,默认的假定是,数据被接收者实时地再现。当接收者不打算立即再现数据时,当不需要时,这些现有技术系统不必使用带宽,降低了网络的总性能。
由于上述原因,电话、语音邮件和战术语音通信系统是不够的。因此需要改进的语音和媒体通信和管理系统和方法,以及通过基于分组的网络发送语音和其它媒体方面的改进。
【发明内容】
本发明目的在于一种通信设备。该通信设备被配置成通过通信网络接收包含媒体的消息,并且接收包含使用所述通信设备创建的媒体的消息。该设备还包括时移缓冲器,其以基于时间的格式存储包含在通过所述通信网络接收到的消息和在本地创建的消息中的媒体。该时移缓存器使所述通信设备能够实现:(i)以接近实时的模式再现通过所述网络接收到的媒体;或者(ii)通过从所述时移缓存器取回所存储的媒体来以时移模式再现通过所述网络接收到的媒体和在本地创建的媒体。该通信设备还包括消息管理系统,其使通信设备能够在不中断接收到的消息的媒体到时移缓冲器中的正在进行的存储的情况下,将媒体的再现在时移模式和接近实时的模式之间转换。
附图的简要说明
参考结合附图理解的下列描述可最好地理解本发明,这些附图示出本发明的特定实施方式。
图1是本发明的通信和媒体管理系统的体系结构的图示。
图2A和2B示出在本发明的通信和管理系统中的设备上运行的客户机的结构图。
图3是在本发明的通信和管理系统中使用的服务器的结构图。
图4A到4D示出在本发明的通信和管理系统中使用的数据有效载荷的各种实施方式。
图5是示出根据本发明通过共享IP网络传输的数据的图示。
图6是示出根据本发明通过基于电路的网络传输的数据的图示。
图7是示出根据本发明在蜂窝网络和互联网上传输的数据的图示。
图8A到8F是示出本发明的通信和管理系统的存储和流(stream)功能的一系列流程图。
图9A到9C是示出有效载荷质量管理器(PQM)的操作的流程图,而图9D到9F是示出数据质量管理器(DQM)的流程图,这两个管理器都被本发明的客户机和服务器使用。
图10是具有可用在本发明的系统上的图形用户接口的示例性设备。
图11A到11F是示出本发明的多会话管理(MCMS)特征的图示。
图12A到12C是示出本发明的连续多会话管理系统(MCMS-C)特征的图示。
图13A到13D示出详述本发明的操作的一系列图示。
图14A和14B是示出用于运行本发明的客户机和服务器应用程序的硬件的结构图。
应注意,在附图中相似的参考数字指相似的元件。
特定实施方式的详细描述
现在参考如在附图中示出的其中的各种实施方式来详细描述本发明。在下列描述中,阐述了特定的细节,以便提供对本发明的彻底理解。然而对本领域技术人员应明显,本发明可在不使用这里阐述的一些实现细节的情况下实践。还应理解,没有详细描述公知的操作,以便不必使本发明不清楚。
A.功能概述
通信媒体管理方法和系统支持参与语音会话和/或使用各种媒体类型例如语音、视频、文本、位置、传感器信息和其它数据管理多个同时会话的新模式。用户可通过向指定的接收者发送语音消息来参与会话。根据偏好和优先级,接收者可实时地参与会话,或他们可简单地被通知消息准备被取回。在后面的情况下,接收者通过复查并在方便时回答已记录的消息在时移模式中参与会话。
用户被授权在(i)给用户提供类似于标准全双工电话呼叫的体验的近似同步或“即时”会话;或(ii)在一系列前后时间延迟的传输(即,时移模式)中进行通信。进一步地,参与会话的用户可从即时模式无缝地转换到时移模式,并再次转换回来。这个属性也使用户可能通过在每个会话的两个模式之间按优先顺序排列并变动来同时参与多个会话。使用系统的两个人因此可彼此来回发送已记录的语音消息,并在方便时复查消息,或消息可按它们本质上合并到即时同步语音会话的速率被发送。为了本申请的目的,这种新的通信形式称为“Voxing”。
当你“Vox”某人时,会话由被记录在多个位置上的一系列分立的已记录的消息组成,这些位置可包括发送者的编码设备(例如电话或计算机)、在网络的多个传输中继(hop)上的服务器以及接收者的再现设备。与标准电话呼叫或语音邮件不同,系统提供了下列特征和优点:(i)会话可在即时和时移之间转换,反之亦然;(ii)分立的会话消息在语义上连接在一起并被存档;(iii)因为消息被记录并可用于以后取回,注意力可暂时从会话转移,接着可以后在方便时复查会话;(iv)会话可暂停数秒、数分钟、数小时或甚至数天,并可在停止的地方再次恢复;(v)人可再加入进行中的会话并快速复查遗失的消息和跟上(catch up)当前的消息(例如,即时消息);(vi)发生会话不需要如传统电话呼叫所要求的专用电路;以及(vii)最后,为了发起会话,人可简单地开始传输到个人或组。如果另一端上的一人或多人注意到他们正接收消息,他们有选择复查和实时地进会话的权利或在他们选择之后的时间复查的权利。
通信媒体管理系统也支持优化数据通过网络的传输的新模式。系统有效地管理有效载荷到接收者的发送,当网络条件较不理想时,该接收者实时地参与会话。例如当网络条件差时,系统有意降低用于传输到当被接收者接收时“足够好”以被再现的点的数据的质量,允许会话的实时参与。系统也保证随着时间的过去消息的“准确”拷贝的最终发送。系统和方法因此提供了速度和准确性两者的优点。通过在时间性和媒体质量之间进行折衷、使用接收者是否打算立即实时地复查消息的在场和意图以及网络等待时间、网络降质、分组丢失或损坏和/或当前带宽条件的衡量,来优化对网络带宽的利用。
应注意,会话消息可只包含语音或包含语音、视频和其它数据,例如传感器信息。当复查消息时,取决于包含在消息中的媒体的类型,听取或在视觉上复查它们,或其组合。虽然到本申请的提交为止,大多数会话只是语音,但这里描述的通信系统和方法旨在广泛地包括会话,该会话包括多媒体类型,例如语音和视频。
公开了提供下列特征和功能中的一个或多个的改进的语音和其它媒体通信和管理系统和方法:
i.使用户能够参与多种会话类型,包括即时电话呼叫、会议电话、语音消息、连续或同时的通信;
ii使用户能够在即时模式或时移模式(语音消息)中复查会话消息;
iii.使用户能够在同步“即时”模式和时移模式之间无缝地转换会话;
iv.使用户能够参与会话,而不等待建立与另一参与者或网络的连接。该属性允许用户开始会话,参与会话,并且即使在网络可不用时,在网络质量差时或其他参与者无空时也复查以前接收到的时移的会话消息;
v.使系统能够在发送方保存有效载荷数据,且在网络传输之后在所有接收方保存媒体有效载荷数据;
vi.使系统能够通过将消息按序连接在一起形成在语义上有意义的会话来组织消息,其中每个消息可被识别并联系到给定会话中的给定参与者;
vii.使用户能够使用一组用户控制的功能来管理每个会话,例如复查“即时”、暂停或时移会话直到方便复查时,在各种模式和用于管理会话(例如存档、加标记、搜索和从档案库取回)的方法中重放(例如,播放加快、跟上即时、跳到会话首部);
viii.使系统能够管理在场数据并与所有会话参与者共享在场数据,包括在线状态、关于在即时或时移模式中复查任何给定的消息的意图、对消息的当前关注、再现方法以及发送方和接收方之间的网络条件;
ix.使用户能够同时管理多个会话,其中(a)一个会话正在进行,而所有其它会话暂停;(b)多个会话被连续再现,例如但不限于战术通信,或者(c)多个会话是活跃的并被同时再现,例如在股票交易所或贸易场所中;
x.使用户能够储存所有的会话,且如果需要,持久地将它们存档在有形介质中,按需要提供可被有组织地编索引、搜索、转录、翻译和/或复查的有用资源;
xi.使系统能够使用消息的尽力交付模式,以用于尽快再现的“足够好”速率提供实时呼叫功能(类似于UDP),以及通过从最初保存的完美拷贝(类似于TCP)请求任何遗失或损坏的数据的重传来提供传输的消息的准确拷贝的被保证的最后发送;以及
xii.使系统能够通过在时间性和媒体质量之间进行折衷、使用接收者的在场和意图(即,在实时或在时移模式中复查媒体)以及网络等待时间、网络降质、分组丢失或损坏和/或当前带宽条件的衡量,来优化对网络带宽的利用。
在各种实施方式中,可实现上面列出的很多特征和功能中的一些或全部。然而应理解,本发明的不同实施方式不需要合并上面列出的全部特征和功能。
B.术语表
在解释本发明的细节之前,定义在整个书面描述中使用的一些术语和缩略语是有用的。术语的该术语表被按系统部件、媒体、媒体管理、人和会话管理组织成组。
B.1.系统部件
客户机:客户机是通信系统中的用户应用程序,其包括用户接口、持久性数据存储器和“Voxing”功能。用户与客户机应用程序进行交互作用,且客户机应用程序管理通过网络传输或接收的所有通信(消息和信号)和有效载荷(媒体)转移。客户机支持对媒体的编码(例如,语音、视频或其它数据内容的捕获)以及对媒体的再现,并支持对数据在网络上的传输进行优化以及保护、加密和验证。客户机可由一个或多个用户使用(即,多租户)。
设备:运行客户机应用程序的物理设备。用户可在任何给定的时间点主动地登录到单个设备或多个设备。在不同实施方式中,设备可为通用计算机、便携式计算设备、可编程的电话、可编程的无线电装置或任何其它可编程的通信设备。
服务器:通信网络中的计算机节点。服务器负责通过网络和持久性存储器将在用户之间来回发送的消息按规定路线传送,还负责对媒体有效载荷进行存档。服务器提供对数据在网络上的传输的优化以及路由、译码、保护、加密和验证。
B.2.媒体
消息:从一个用户到另一的通信的单个单位。每个消息由某种媒体例如语音或视频组成。每个消息被分配某些属性,包括:(i)发送消息的用户;(ii)它所属的会话;(iii)可选的或用户创建的重要标记;(iv)时间戳;以及(v)媒体有效载荷。
媒体:音频、视频、文本、位置、传感器读数例如温度、或其它数据。
会话:两个或多个用户之间在其设备上(被识别、持久地储存、分组并按优先顺序排列)的一串消息。用户通常按需要使用其设备,通过在实时或在时移模式中复查消息或创建并发送会话消息,来参与会话。当新消息被创建时,它们定义新的会话,或它们被添加到现有的会话。
会话首部:由最近的扬声器编码的会话的最近的消息。它是用户在复查“即时”时处于会话中的位置或人在使用“跳到即时”特征的情况下所跳到的位置。
多会话管理系统或MCMS:作为客户应用程序的部分运行的应用程序,其使用户能够使用各种媒体类型参与多个会话。使用MCMS应用程序,用户在多个会话中选择一个会话作为当前的,其中只有当前会话的消息被再现。对于选定的当前会话,用户可从时移模式中的一系列来回消息转换到接近同步的“即时”模式,类似于标准电话会话,并再次转换回来。未选定的会话的消息处于暂停状态。如果其他人仍然参与那些会话,则与未选定的会话相关的消息将累积。用户可选择性地在多个会话中转换当前会话,并复查选定的当前会话的被累积的消息。
连续多会话管理系统或MCMS-C:类似于MCMS,具有再现和使用户能够通过时移和优先级分级系统来管理并参与连续多个会话的增加的特征,其由系统自动管理。MCMS-C应用程序允许连续会话的消息按优先顺序被再现,与只再现当前选定的会话的消息的MCMS相反。MCMS-C特别适用于下列情况:连续会话的消息按优先顺序被再现很重要,和/或接收所有消息,即使属于较低优先级会话的那些消息,比实时地接收消息更重要。MCMS-C可能适合的情况的例子包括但不限于医院、出租车队管理或战术通信。
同时多会话管理系统或MCMS-S:类似于MCMS,具有能够使用MCMS-S的增加的特征,选择用于同时再现的多个会话,与只再现当前选定的会话的消息的MCMS不同。MCMS-S特别适用于下列情况:用户同时听多个会话,例如交易人听不同交易的多个经纪人并向其中的一人或多人周期性地同时发送交易请求。MCMS-S也可适合于战术通信。
优先级:系统用来确定当用户参与MCMS-C时接着再现哪个消息的机制。优先级由系统自动管理。用户可设置默认的优先级,或可使用一组预定的系统优先级。在其中多于一个的消息准备被同时再现的冲突的情况下,系统至少部分地根据优先级解决该冲突,以确定什么消息要立即再现以及什么消息要时移。
标记:用户或系统可分配到会话或消息的一组属性,例如主题(公司名)、指令(行动条款)、指示符(会话概要)、或人可能想要通过其来搜索或组织数据的任何其它标志。
重要标记:使发送者能够指定消息何时被再现的特殊消息属性,而不管其它优先级设置如何。例如“紧急”重要标记将优先于其它优先级。该特征对战术系统很关键,虽然任何系统可配置成使用或禁用该特征。
分组:能够通过计算机网络被按规定路由传送的二进制数据的任何单位。每个分组由首部(元数据)和有效载荷(媒体数据)组成。包括标准分组协议,例如但不限于互联网协议(IP)、EvDO、UMTS、或任何其它基于分组的无线电、光纤或有线网络。
首部或分组首部:描述分组的分组部分;关于有效载荷的元数据、其编码类型和目的地。
Vox分组:使系统和方法能够进一步改进和优化消息、媒体和其它信令信息的发送的专有分组。
媒体有效载荷(或有效载荷):分组的实际媒体部分。
B.3.媒体管理
时移延迟(TSD):在Vox分组的到达与分组在设备上再现之间的时间量。TSD必须超过最小时移延迟。TSD一般由用户在接收到之后的某个时间选择复查会话消息时的行为确定。
最小时移延迟(MTSD):被客户机强加以允许使用抖动(jitter)缓冲区技术来进行抖动处理的时移延迟。这使系统延迟再现,直到足够数量的分组到达以产生可用的媒体流。系统一般随着时间的过去适应性地调节MTSD,以补偿网络中的变化的条件。
再现:以适合于用户使用的形式(例如,语音、文本、图形显示、视频或其组合)将媒体流发送到用户。
混合:一个或多个媒体流的再现。例如,来自会话的两个参与者的媒体流可在再现时被混合,产生类似于多人同时讲话的会话的用户体验。
编码:转换由用户所产生的(例如,语音或视频)、或以其他方式在设备上引起(例如GPS或其它传感器数据)的媒体、或将媒体转换成由客户机处理的数字数据的过程。
自适应抖动缓冲区:抖动缓冲区或去抖动缓冲区用于对分组交换网络引入的抖动(即,序列分组之外的到达或分组的延迟的到达)计数,以便可没有中断地执行通过网络传输的音频(或视频)信号的连续再现。数据在再现之前存储在缓冲区中,以允许媒体的合理尺寸的缓冲区到达。媒体可在所有分组被接收之前被再现,为传播折衷选择质量。自适应抖动缓冲区能够动态地改变其尺寸以优化延迟/质量折衷。
持久性无限消息缓冲区(PIMB):PIMB是指执行“即时”数据的去抖动以及存档数据的存储和取回的、基于时间的媒体的存储的存储管理系统。PIMB还包括媒体的可能无限和持久性存储的额外属性。PIMB在一些或所有参与者设备和/或服务器维持消息和会话的Vox分组的“准确”或完整拷贝。
分组丢失补偿或隐蔽(PLC):在再现媒体流期间,PLC部件补偿遗失的分组,插入结果以向复查者提供流。遗失的分组可被再现为无声,或来自相邻分组的信息可用于提供插入的声音或图像。待使用的特定的方法将依赖于媒体、使用中的编解码器和其它通常已知的参数。
B.4人
用户:被授权使用系统的人。
联系人:系统对用户或非用户的记录。用户一般参与和其联系人列表上的成员的会话。非用户是使用传统电话、无线电装置或启用其它非客户机12的设备来访问或使用系统的用户。
组:多个联系人的联合。联系人可被选择性添加或从组中删除。当会话发生在组中间时,组中的所有成员可以或可以不参加。
信道:一般用于战术通信系统。信道类似于组,因为它使多个联系人与信道关联。
参与者:被识别为会话的成员的人。可为用户或非用户参与者。
B.5.会话管理
时移:时移是当任何消息(如用户接收者所确定的)被接收之后,在任何时间播放该消息的能力。通过时移,用户可复查消息:(i)通过在MTSD之后立即再现来立即按需请求;或(ii)依据用户的判断在复查消息的模式中时移;(iii)来自档案库,用于老的会话的搜索、重建等;(iv)在延迟的一段时间之后适应需要被首先复查的其它较高优先级消息(或会话)的复查;(v)和/或如果必要使消息重复地被再次听到和理解。换句话说,时移是用户在系统强加MTSD之后的任何时间再现消息的能力。
复查:听、观看、阅读或以其他方式观察消息中的媒体内容。复查可在接近同步的实时的“即时模式”或时移模式中发生。
意图:(i)记录用户是希望尽快复查会话消息还是希望在时移模式中复查消息的用户定义的属性;(ii)由用户的行为暗示;或(i)和(ii)的组合。
注意力:记录用户是否此刻复查给定会话的消息的用户属性。
跟上即时(CTL):允许不在会话首部的用户更快地复查以前的消息以“跟上即时”(即,会话首部)的再现模式。CTL特征可使用任何数量的跟上技术,例如消息的较快重放、消息的媒体中的间隙的移除、犹豫虚词(hesitation particle)的移除等。当用户跟上即时时,系统无缝地进入即时会话。这是例如在用户需要暂时将其注意力从会话移走但在其返回时希望听到整个会话的情况下关于会议电话的非常有用的特征。
跟上模式:确定CTL过程如何跟上(即,重放加快、消除无声和犹豫虚词或其组合)的用户配置或预先配置的模式。
跳到即时(JTL):该特征允许用户从其当前位置跳到会话首部。当用户不想复查其会话中的当前位置与会话首部之间的所有消息时,他们一般使用JTL特征。当实现JTL特征时,用户略过任何中间消息,并开始再现在会话首部处的“即时”消息。
MCMS参与者属性:由用户定义的、或由系统从用户行为理解的、由管理员分配的、或其组合的一组属性,这些属性定义意图、注意力、优先级和接收者对给定会话的再现偏好。这些属性包括但不限于:(i)当接收者希望再现会话消息时的意图。可能的意图值包括:“现在”、“时移”、“跟上即时(CTL)”、“暂停”和“从不”;(ii)跟上模式,其是确定CTL过程应如何使接收者跟上即时(例如,播放加快、略过无声间隙或犹豫、或以正常速度播放)的配置设置;(iii)时移延迟(TSD),其定义接收者在会话中的当前位置离会话首部多远,以及(iv)消息相对于接收者的其它会话的优先级。
C.系统结构
参考图1,其示出了根据本发明的一个实施方式的电信和媒体管理系统的结构图。系统10包括分别在设备131到13n上运行的多个客户机121到12n。设备13通过包括一个或多个服务器16的通信服务网络14彼此通信。一个或多个网络181到18n设置成将多个设备131到13n耦合到通信服务网络14。在不同实施方式中,网络18可为公共交换电话网络(PSTN)、基于例如CDMA或GSM的蜂窝网络、互联网、战术无线电网络、或任何其它通信网络、或其组合。通信服务网络14是在各网络181到18n的顶部上的或以其他方式与各网络181到18n进行通信的网络层。在不同实施方式中,网络层14是异类或同类的。客户机121到12n使用称为“Vox分组”的单独的消息单元彼此通信并与网络181到18n以及网络14上的服务器16进行通信,这将在下面详细描述。
D.客户机结构
参考图2A和2B,其示出了在设备13上运行的客户机12的结构图。如图2A所示,客户机12包括多会话管理系统(MCMS)应用程序20、再现和编码模块21、以及MCMS应用数据库22。如图2B所示,客户机12还包括存储和流(SAS)模块24,其具有持久性无限消息缓冲区(PIMB)读出器26、PIMB写入器28、PIMB数据库30、数据和网络质量(DNQS)存储器32、以及媒体驱动器和编码器硬件34。MCMS应用程序20以及存储和流模块24分别通过消息处理模块25a和25b彼此进行通信。客户机12还包括验证-加密-保护模块40和通信协议模块44。
模块40在将“Vox”分组传输到客户机12以及从客户机12接收“Vox”分组期间提供验证、加密和保护服务。当在接收数据时传输数据并将Vox分组从本地分组去封装时,通信协议模块44将Vox分组封装到底层网络18所使用的本地分组中,底层网络18连接到运行客户机12的设备13。使用模块40和44,在客户机12之间提供多方端到端验证、加密和保护。消息在网络181到18n和网络14中从第一发送设备13到第二接收设备13被验证、加密和保护。
D.1.1MCMS数据库
数据库22储存并管理系统10中很多实体的持久性元数据,包括联系人和参与者、会话和消息(即时和所储存的)、和默认优先级、以及关于服务器16的信息。此外,MCMS数据库22储存用户会话、在场和状态的从一时刻到另一时刻的操作数据,以及与用户进行会话的或用户联系人列表上的所有参与者的会话、在场和状态的从一时刻到另一时刻操作数据。例如,对于会话和消息,数据库22记住状态信息,例如用户已经或未曾复查的会话的什么消息、优先级、以及在其中客户机12是参与者的每个会话的跟上即时状态、所有参与者的在场和状态、以及其它网络和其它系统管理数据。
D.1.2MCMS应用程序
MCMS应用程序20使用各种媒体和数据类型(语音、视频、文本、位置、数据等)支持参与会话和/或管理多个会话的不同Voxing模式。用户通过使用他们的启用客户机12的设备13将消息发送到指定的接收者,来参与会话。根据偏好和优先级,接收者可实时地复查消息,或他们可仅仅被通知消息准备好被复查。用户可从一系列消息来回转换,这些消息在时移模式(或语音消息)中或在接近同步的全双工会话(类似于标准“即时”电话呼叫)中被复查并接着再次回到语音消息。MCMS应用程序20允许用户实时地控制与其最重要会话的交互作用,而不遗失其它正在进行的会话中的任何消息。例如,MCMS应用程序20通知来自会话的紧急或高优先级通信的用户他们目前不复查。MCMS应用程序20也使来自所有会话的所有消息被储存,用于以后取回,所以它们可在任何时间被复查。
根据各种实施方式,存在MCMS应用程序20的几种不同的操作模式,包括连续MCMS(MCMS-C)和同时MCMS(MCMS-S),其分别支持消息的连续和同时的再现。下面详细描述这些实施方式中的每个。除非特别指出,术语“MCMS”通常用于表示MCMS应用程序20,其包括前述不同的模式。
MCMS应用程序20是包括很多模块和服务的多层结构。模块和服务包括MCMS数据库模块20a、SAS服务模块20b、消息和信令服务模块20c、用户接口应用编程接口(API)20d、用户接口模块20e、会话/消息管理服务20f、优先级服务20g、联系人服务20h、在场/状态服务20i以及消息/信号服务20j。
D.1.2.1MCMS数据库模块
MCMS数据库模块20a是管理MCMS应用程序20访问MCMS数据库22所必需的所有功能的服务模块。
D.1.2.2SAS服务模块
SAS服务模块20b包括一组功能调用,其实现MCMS应用程序20和存储和流模块24之间的通信和协调,且其分别通过消息处理模块25a和25b来回传递。当被用户调用和/或被网络条件指示时,这组功能调用使MCMS应用程序20和存储和流模块24能够按需要操作来实现各种Voxing功能。SAS服务模块20b所执行的一些功能包括维持和传递消息传输和消息确认的状态、用于再现消息的指令、以及用户的状态和在场。
D.1.2.3消息和信令服务模块
消息和信令服务模块20c在客户机12和服务器16上运行,并实现系统10的客户机12和服务器16之间的通信。包括消息、数据和其它信号的该通信允许客户机12和系统10跟踪并管理通信、网络状态、用户和用户状态。在客户机12和服务器16上运行的消息和信令服务模块20c之间发送的消息和信号的类型包括例如用户的网络可用性、服务器16发送到客户机12(可能包括“高水印(high water mark)”)的消息的跟踪,这些消息确定是否整个消息或消息的某个部分丢失(例如由“产生的”客户机创建的每会话每参与者的序列号)、用户是否正讲话或复查给定会话的消息、用户相对于会话首部的位置、或参与者何时不再复查会话实况。这些是在客户机12和服务器16上的消息和信令服务模块之间发送的很多类型的消息和信号中的一些的实例,且决不应被解释为限制本发明。
D.1.2.4用户接口API
用户接口API 20d是界定一组功能调用的模块,这些调用定义用户接口模块20e和MCMS应用程序20的底层服务之间的编程接口。用户接口API 20d支持通用方法,例如UI应用程序支持、以及用户接口操作MCMS应用程序20所必需的所有功能调用。在各种实施方式中,用户接口API 20d使客户机12能够支持各种用户接口和设备类型,例如基于Adobe Flash的和/或Microsoft Windows应用程序、蜂窝或移动电话设备、以载频驱动的PSTN设备、语音用户接口(VUI)和物理无线电通信接口。在各种实施方式中,用户接口API 20d既使高度灵活的也使高度受限的用户接口的设计能够支持MCMS应用程序20的功能。
D.1.2.5MCMS用户接口模块
MCMS用户接口模块20e支持客户机12的音频和视频用户接口的操作和功能。用户接口模块20e支持很多用户交互作用,并可使用各种交互作用介质例如图形用户接口屏幕的阵列、音频/DTMF接口或设备13上的语音用户接口来实现,所有这些交互作用介质都使用户能够与系统10进行交互作用。被支持的用户交互作用的部分列表例如包括功能:登录;管理、加入和监控会话;控制会话再现;管理优先级;以及请求复查被存档的会话。应注意,该列表是示例性的,且决不应被解释为限制本发明。
D.1.2.6会话/消息管理服务
会话/消息管理服务20f是定义管理数据结构和过程的一组功能的模块,其负责管理并保留用户管理在会话的参与者之间传输和接收的媒体(例如,语音或视频内容消息)的接收和复查所需要的所有信息。消息被组织成会话。运行应用程序12的设备13所发送和接收的媒体可用于在被接收时立即复查。接收到的媒体也被记录,用于在时移模式中复查、会话管理和归档目的。在可选的实施方式中,消息或会话可以可选地被暂时标记,指定其期望的保留要求(例如,超出对立即再现的要求,一些消息将不被保留或储存)。在又一实施方式中,媒体可以可选地被标记用于只在时移模式中复查,且不能在接收到时立即被复查。
对于用户的每个当前的或正在进行的会话,会话/消息管理服务20f进一步实现在任何时间媒体到接收客户机12的发送,且接收客户机12无缝地使这些消息与适当的会话相关,而不管接收者活动或不活动。
使用会话/消息管理服务20f,所有会话实质上是异步的。如果两个用户主动地参与给定会话,且在传输之间用户控制的延迟最小,则体验将是同步全双工会话之一,如同当前的电话或VoIP会话一样。如果用户由于无论什么原因延迟其参与,则会话趋向于异步语音(或其它媒体)消息体验。在可选实施方式中,会话可以可选地被标记为仅仅异步消息或仅仅同步消息。在这些情况的任一个中,会话不能在两个模式之间移动,除非标记被重置。在标记被重置之后,会话再次可在接近同步(即,即时或实时)和异步(即,时移或语音消息)模式之间移动。
会话/消息管理服务20f以逐步的方式处理消息的传输和接收。当传输时,媒体可在消息被同时编码、储存和传输时产生。换句话说,消息的传输可与用户产生媒体同时出现(即,当对其设备13讲话或产生视频时)。在接收侧上,消息的接收、储存和再现也都逐步出现。消息不需要在它们可被再现之前被全部接收到。消息的再现可与消息被传送同时出现,直到刚好达到MTSD。进一步地,服务20f也能够同时传输正在进行的消息并再现进入的消息。服务20f的逐步性质允许用户参与即时会话,对会话的媒体同时储存和流式化,用于以后取回和复查以及这里所述的其它功能。
如果用户遗失早些时候的消息或卷入另一会话,通过会话/消息管理服务20f对消息进行的时移,允许用户对会话“跟上即时”。该时移过程消除了用户向其整个组或信道广播使消息重复的请求的需要。较老的消息可在任何时间以可能较高的速度重放,以节省时间。用户可容易在其消息中和各个消息内来回跳跃。复查过程可在消息-优先级基础上配置成可能跳过较低优先级的消息。
在一个实施方式中,会话/消息管理服务20f也由特定的参与者(讲话者)识别消息,且默认地混合被同时发送(MCMS-S)的会话消息。在可选实施方式中,用户可分开复查会话的不同参与的讲话者的传输。
会话/消息管理服务20f进一步允许在被添加到活跃的或存档的会话的参与者中间共享会话。在一个实施方式中,任何添加到会话的参与者被提供对会话的访问,并有取回以前的会话消息用于复查的能力。在可选实施方式中,所添加的参与者被提供对只从新参与者加入的点开始的会话消息的访问,而不是任何以前的会话消息。
会话/消息管理服务20f也负责管理用于控制存储和流模块24所执行的所有再现任务的功能。这些任务包括适合地对运行应用程序12的设备13再现媒体(例如,语音、视频等)。这些再现任务包括但不限于混合消息(即,交迭的消息)的再现,以及根据用户定义的标准的再现,例如播放加快、跟上即时、消除无声和移除犹豫虚词、频移、以及在多方会话中将独立的增益控制应用于各个发送者的能力。
D.1.2.7优先级服务
优先级服务20g是定义管理数据结构和过程的一组功能的模块,其负责管理并保留用户管理用户所参与的连续会话(即,MCMS-C)的优先级所需的所有信息。当用户参与多个连续的即时会话时,用户需要按优先顺序排列会话。当不同会话的消息准备同时再现时产生问题。算法用于确定消息被再现的顺序,该顺序考虑待再现的消息的可用性和用户设置的优先级。算法确定具有最高优先级的可用消息首先被再现,而任何同时可用的消息被自动时移,恰好足以允许再现较高优先级的消息。当再现时间变得可获得时,系统将根据用户的优先级自动再现时移的消息。
D.1.2.8联系人服务
联系人服务20h是定义管理数据结构和过程的一组功能的模块,其负责管理并保留验证一个或多个联系人并使一个或多个联系人与会话相关联所需的所有信息。当作为与多个联系人相关的会话的一部分发送消息时,所有的联系人都接收到该消息。
D.1.2.9在场/状态服务
在场/状态服务20i是定义管理数据结构和过程的一组功能的模块,其负责管理并共享在系统的某些用户和/或非用户之间的在场和状态信息。在各种实施方式中,为参与客户机12的用户所参与的会话的所有用户和非用户、联系人列表中的所有用户和非用户、或预定域内的用户(例如,公司或其它组织的成员)维持在场和状态信息。这些例子只是例证性的,且不应被解释为限制性的。在场/状态服务模块20i可管理和共享关于用户和/或非用户的任何限定组的在场和状态信息。
在场/状态服务20i使用户能够监控其它用户的意图、注意力及其对任何给定会话的时移延迟(即,他们对复查会话实况的消息落后到什么程度)的状态。在一个实施方式中,提供了关于在场和状态数据的可用性的隐私控制。在场/状态模块20i进一步控制使系统10能够发送与用户的行为和意图匹配的消息的数据。例如,用户可通过指定复查或不复查会话实况的意图来指示其状态。作为响应,根据用户的意图再现的命令,在场/状态服务20i发出使“即时”或时移的消息。此外,用户的意图被会话的其他参与者共享。服务20i也能够从用户的行为推断其它状态值。在场和状态信息也用于优化网络业务和带宽,如下面更详细描述的。
D.1.2.10消息/信号服务
消息/信号服务20j是定义管理数据结构和过程的一组功能的模块,其负责使用特殊的消息或可听音向系统10的用户发消息和发信号。特殊的消息或音可包括例如消息是即时的还是时移的、消息来自于谁的指示、优先级以及其它因素的指示。消息/信号服务20j进一步具有下列能力:(i)发信号通知网络上的用户的在场或缺席,以及通知是否一个或多个用户不再主动复查会话消息的能力;(ii)当其注意另一会话而根本不注意其设备13时,“响铃”或以其他方式通知另一用户引起其注意;(iii)为当前不在网络18上的用户留下消息,从而下次个人再次连接到网络18时立即复查该消息;(iv)产生警告发送者发送消息没有被接收者接收到的可听到的或可见的反馈,产生消息被接收者接收时的确认,和/或指示消息何时被接收者听到的确认;以及(v)实现优先级方案,其中可在会议或战术呼叫时通知个人立即需要其注意力在呼叫上。该指示可传达接收者多级别紧急事件和某种确认。
D.1.2.11再现和编码
再现和编码模块21负责执行MCMS应用程序20的所有再现任务。这些任务包括为运行应用程序12的设备13适当地再现媒体。
D.2存储和流模块
存储和流模块24支持下述很多功能和性能属性。
使用存储和流模块24,消息传输本质上是“全双工的”,使任一方能够在任何时间发送消息,即使当另一方也在发送消息时,或如果另一方没有空或以其他方式在使用中。存储和流模块能够如在即时PSTN或VoIP呼叫中一样再现消息,或在时移消息模式中发送它们。它能够优化传输并根据用户的愿望控制再现。
存储和流模块24维持与底层网络18上的所有目标接收者(例如服务器16或其它设备13)的连接性,管理所有消息、信号和媒体传输,并优化在网络18上的发送速度和带宽利用以满足用户的即时性能要求,同时管理网络质量和能力。模块24适应并优化与底层网络18的质量和能力相称的媒体发送。当可获得底层网络资源不充足时,所传输的媒体流的质量可能被降低。当带宽变得可用时,所传输的媒体流的质量可能提高。除了对媒体质量的折衷以外,存储和流功能可根据用户意图对在每个分组中传输的媒体的数量进行折衷,以如下所述实时地再现数据。
通过根据底层网络18的条件动态地控制媒体的发送速率,存储和流模块24被优化以发送在接收时“足够好”再现的时间敏感的媒体,并为了存档目的通过请求丢失的、低质量或损坏的分组的重传的后台过程,来保证媒体的准确或完整拷贝的最终发送。只要足够的网络资源存在以满足最低媒体质量水平,该重传就不妨碍即时呼叫媒体的再现。系统10的客户机12因此设计成在以相当大的可能等待时间为代价的媒体的准确或完整拷贝的发送与媒体的快速发送之间填补性能缺口,但不保证完整性。在本申请的上下文中,术语“足够好”意指媒体的质量足够,使得当它被再现时它是可理解的。“足够好”的概念因此是主观的,且不应在绝对的意义上被解释。例如,足够好的某些媒体的质量水平可根据媒体的类型、环境和其它因素变化。
存储和流模块24进一步持久地储存通过利用设备13产生的、或以其它方式使用设备13发源的、或通过网络18从其它设备13和/或用户接收的所有媒体。将该媒体储存在运行客户机12的设备13上有一些重要的优点:(i)它使用户能够为另一方留下消息,即使在发送者和/或接收者没有空或网络连通性差时。在不充足的带宽的情况下,消息将与可有效地使用可用带宽一样快得被传输。在没有连通性的情况下,只要网络连通性变得可用,就将消息排队用于传输,导致时移发送;(ii)用户能够暂停、重放、快进并对于正在进行的会话跟上即时,以及取回和复查被存档的以前会话的消息;以及(iii)它实现在系统10上的数据有效载荷的优化,并提高了相对网络带宽和可能不时地出现的连通性问题的系统适应性。
存储和流模块24还负责:适当地混合消息以产生交迭的消息(由会话或背景噪声中的讲话者的正常交迭产生),模拟实际会话,其中多方正在讲话;再现音频媒体的转录或转换;根据很多用户定义的标准调节媒体的再现,该标准包括播放加快、消除口语词之间的无声间隙、移除犹豫虚词、以及频移;以及在多方会话中将独立的增益控制应用于各个发送者的能力;以及其它可能的再现选项。
存储和流模块24管理其本身和MCMS之间的控制和信息消息。
D.2.1持久性无限消息缓冲区(PIMB)
持久性无限消息缓冲区或PIMB 30是用于其储存和取回的一组附有索引的(即附有时间戳和顺序编号的)媒体有效载荷数据结构和系统。在一个实施方式中,PIMB 30中的数据是任意持久性的,意味着它实质上永远可用或至少直到系统用完储存。各种保持速率和策略可用于有效地利用存储资源。对PIMB 30的物理存储实现方法存在很多可能的实现方法,包括但不限于:RAM、闪存、硬盘驱动器、光学介质或其某种组合。PIMB 30在尺寸上也是“无限的”,意味着可存储在PIMB 30中的数据的量并不内在地被限制。无需此限制与数据一被再现就丢弃数据的现有抖动缓冲区技术比较。在一个特定的实施方式中,使用与用于持久储存的硬盘驱动器连接的小和相对快的RAM高速缓冲存储器可实现PIMB 30。当超过PIMB 30的物理储存容量时,数据保持在服务器16上(如下所述),用于以后按需取回。诸如最近最少使用或先进先出的用户标准或置换算法用于控制储存在PIMB 30中的实际数据和保持在服务器16上的或在任何时刻被存档的数据。PIMB 30进一步提供系统存储器的属性和数据库的随机存取属性。任何数量的会话不管其持续时间或每个会话中消息的数量如何,都可被储存并以后取回用于复查。此外,与会话消息相关的元数据例如其创作者或其长度也可存储在PIMB 30中。在可选实施方式中,附有索引的媒体有效载荷和其它数据可在指定的一段时间(例如30天)内被储存。一旦媒体的寿命超过指定的期限,有效载荷和数据就被丢弃。在另一实施方式中,可根据包含有效载荷的消息的发送者和/或接收者或与有效载荷相关的会话或消息的主题来丢弃有效载荷。在又一些其它实施方式中,有效载荷和数据可被暂时标记,意味着超过对立即再现的要求,消息将不储存在PIMB30中。
D.2.2数据和网络质量存储器
数据和网络质量存储器(DNQS)32是用于存储关于从PIMB 30读取或写到PIMB 30的媒体有效载荷和Vox分组的信息的数据存储器。
D.2.3PIMB写入器
PIMB写入器28为了两个基本目的将数据写到PIMB 30。PIMB写入器28写入来自运行客户机12(“编码接收”)的设备13上的媒体捕获设备(例如,麦克风或摄像机)的数据。PIMB写入器28也将从其它客户机12通过网络18接收的数据写入PIMB 30中(“净接收(Net Receive)”)。
D.2.3.1编码接收
为了从设备13捕获媒体,PIMB写入器28包括编码接收器28a和数据存储器28c。当用户对着麦克风讲话或使用例如设备13产生视频图像时,硬件34接收原始音频和/或视频信号并将其提供到编码接收器28a,编码接收器28a将信号编码成附有索引的媒体有效载荷(此后有时简单地称为“有效载荷”)。数据存储器28c将有效载荷储存在PIMB 30中。其它类型的媒体例如传感器数据以类似的方式转换成有效载荷。
D.2.3.2净接收
为了将通过网络18接收的媒体储存在PIMB 30中,PIMB写入器28的净接收功能包括净接收器28d、数据缓冲器28e、数据存储器28f、数据质量管理器28g和网络质量管理器28h。净接收器28d通过网络18接收Vox分组。数据缓冲器28e将接收到的Vox分组置入其自己的适当序列中,并阻止进入的Vox分组的重现延迟至少最小时移延迟(MTSD)。数据存储器28f将分组转换成附有索引的媒体有效载荷,并将附有索引的媒体有效载荷存储在PIMB 30中。当有效载荷被储存时,数据质量管理器(DQM)28g记录任何遗失或有缺陷的分组。如果分组遗失或有缺陷,则DQM 28g安排对通过网络18重传的请求。发送设备通过重发遗失或有缺陷的分组来回答。最终这些分组转换成附有索引的媒体有效载荷,并储存在PIMB 30中。通过取回遗失或有缺陷的分组,发送者的消息的“准确”拷贝最终储存在PIMB 30中。遗失和/或有缺陷的分组的重传不实时地延迟消息的再现,假定被发送的分组具有“足够好”的质量和数量。如果不足的网络资源可用于支持新的“即时”数据以及重传,则重传请求可被DQM 28g延迟。
D.2.4PIMB读出器
PIMB读出器26为了两个基本目的从PIMB 30读取数据。当为本地客户机12再现数据PIMB(“再现”)时,PIMB读出器26访问PIMB 30。当客户机12通过网络18传输数据(“传输”)时,数据从PIMB 30被读取。
D.2.4.1再现
为了在客户机12上再现消息,PIMB读出器26包括数据优先器26a、数据取回器26b、分组损失补偿/内插器(PLC/内插器)26c、数据混合器26d和数据再现器26e。优先器26a通过建立可能被再现的消息的有顺序队列,按优先顺序排列待再现的数据。它使用用户配置的优先级用于再现连续的会话(MCMS-C)。此外,数据优先器利用媒体数据在由MTSD所施加的限制内再现的可用性、用户的当前注意力、以及用户限定和暗示的意图。数据取回器26b从PIMB 30取回按优先顺序排列的附有索引的媒体载荷。PLC/内插器26c使用已知的分组损失补偿和内插算法对取回的有效载荷执行分组损失补偿和内插。要使用的特定方法取决于使用中的媒体编解码器以及其它公知的参数。混合器26d用于将来自单个会话的多个消息的数据流适当地混合在一起。例如,如果会话的两个或多个参与者同时讲话,则混合器26d混合消息,产生两个参与者同时讲话的效应。在可选实施方式中,用户具有一次复查来自一个参与者的多个流的选择。如果会话中只有一个参与者讲话,则混合器26d可只传递单个消息流,而不执行任何混合。再现器26e从混合器模块26d获得数据,并将其转换成适合于硬件驱动器34的形式。硬件34接着根据媒体的类型驱动设备13的扬声器或视频显示器,产生语音、视频或设备13上的某个其它可听得见和/或可看得见的通知。
D.2.4.2传输
为了准备用于通过网络18从客户机12传输的消息,PIMB读出器26包括数据优先器26f、分组质量管理器(PQM)26g、数据取回器26h、打包器26i、发送器26j和确认器26k。数据优先器26f按优先顺序排列用于通过网络18传输的消息。使用与可用于传输的有效载荷有关的MCMS参与者属性、网络连通性和带宽条件以及超出下一中继从而即时或时移地再现的用户意图、且在一些实施方式中传输捆绑的可能优化,来确定优先级,在所述一些实施方式中,到任何给定的下一网络中继的多个分组是可用的。按优先顺序排列的分组接着使用PQM 26g被优化,这确保对即时消息的“足够好”数据质量的及时发送,同时最小化实时带宽,如下面更详细描述的。数据取回器26h从PIMB 30取回适当的有效载荷。打包器26i将有效载荷装配成Vox分组,其接着由发送器模块26j通过网络18发送。当接收者接收到Vox分组时,确认通过网络18被发送回确认器26k,用于通知发送用户消息已到达其目的地。
D.2.5分组质量管理器
PQM 26g具有几个优化目标:(i)时间敏感的媒体的充分拷贝的及时发送(对于再现“尽快从而足够好”);(ii)可用带宽的有效使用,意味着使用底层网络的最佳传输频率、有效载荷质量和分组大小;以及(iii)当网络条件变化时动态地调节或改变传输频率、有效载荷内容、有效载荷质量、分组大小等的能力。
D.2.6网络质量管理器
在网络传输的接收侧上是网络质量管理器28h(NQM)。NQM负责为将媒体发送到客户机12的每个发送者观察网络性能的特定属性,将抖动、损失和吞吐量的期望值与其实际值比较。这用于为每个发送者计算网络质量评级(NQR)。该NQR用于指示发送者空闲性和接收设备的用户的会话活跃度。
D.2.7数据质量管理器
数据质量管理器28g通过观察分组损失、抖动和吞吐量,测量通过网络接收到的数据的质量。DQM 28g为了三个目的使用这些测量:(i)将接收报告发送回发送者;(ii)可选地使用那些接收报告来请求某些数据的重传;以及(iii)使NQM 28h可利用这些测量。
E.服务器结构
参考图3,其为在服务器16上运行的应用程序78的结构图。应用程序78在很多方面类似于客户机应用程序12,并包括MCMS服务器应用程序80、MCMS数据库82、存储和流模块84、PIMB 85、数据和网络质量存储器(DNQS)86、管理在MCMS服务器应用程序80与存储和流模块84之间来回的消息和信号的MCMS-SAS消息处理模块87a和87b、存档/取回器88、和档案库89。应用程序78还包括验证-加密-保护模块40和通信协议模块44。
MCMS服务器应用程序80是包括MCMS数据库模块20a、存储和流(SAS)模块20b、消息/信令模块20c、会话/消息管理服务20f、优先级服务20g、联系人(包括用户和验证)服务20h、在场/状态服务20i和消息/信号服务20的多层结构。应用程序78的前述模块和服务类似或等同于与客户机12具有相似的参考数字的模块和服务,因此不在这里详细描述,除了一个明显的例外。在各种实施方式中,MCMS服务器应用程序80以及存储和流模块84,包括MCMS数据库82,配置成在应用程序的一个实例中支持很多用户。所述一个实例还可配置成支持多个域,其中每个域被定义为一组用户(即,公司或属于共同的组织的其它用户组)。该结构允许服务器16上的每个应用程序78为多个用户(或域)服务,其中每个用户(或域)对其他用户是不可见的。此划分被称为“多租用(multi-tenancy)”。
服务器存储和流模块84执行净接收和传输的功能。对于净接收功能,模块84包括净接收器28d、数据缓冲器28e、数据存储器28f、数据质量管理器(DQM)28g和网络质量管理器28h。对于传输功能,模块84包括数据优先器26f、分组优化器26g、数据取回器26h、打包器26i、发送器26j和确认器26k。存储和流模块84的前述元件类似或等同于与客户机12具有相似参考数字的模块和服务,因此不在这里详细描述。
因为服务器16不直接与用户进行交互作用,不需要提供在客户机12的存储和流模块24中设置的编码和再现功能。MCMS应用程序80当在服务器16上运行时不直接与用户进行交互作用。因此,不需要用户接口和用户接口API模块和服务20e和20d。
每个服务器16上的应用程序78可能为多个租户服务,意味着它为系统10的多个用户服务。服务器应用程序78的PIMB 85因此明显较大,并用于存储多个用户的媒体有效载荷,这与PIMB 30不同,PIMB 30用于只储存仅仅一个用户的所产生或接收到的有效载荷。存储和流模块84的主要目的是接收客户机12所传输的消息并将消息传输到其它客户机12。当消息被接收到时,它们储存在PIMB 85中并直接根据系统配置沿着到预期接收者或到接收者的路径传输到网络层14的下一服务器16(即,下一“中继”)。存档取回器88负责将储存在PIMB 85中的媒体有效载荷在档案库89中存档。当PIMB 85中的物理空间用完时,PIMB 85中的媒体有效载荷移到档案库89,其为大容量存储设备。在各种实施方式中,储存在PIMB 85中的有效载荷可根据用户定义的标准和/或任何已知的置换算法例如先进先出(FIFO)或最近最少使用(LRU)被存档。应注意,为了简单起见在图1中只示出一个服务器16。应理解,在实际实施方式中,多个服务器或“服务器群”可用于具有大量用户的网络。
术语“持久”和“无限”用于描述PIMB 30,且PIMB 85不应照字面被解释为绝对术语。用户可能希望无限地储存被认为重要的一些消息。在其它情况下,例如两个朋友之间的随意聊天,消息可在某个时间段之后被删除以节省空间。根据本发明的各种实施方式,可使用由系统10设置的或由用户配置的不同的保留策略。词“无限”的使用指没有对PIMB强加任何预设时间边界。这与当前的抖动缓冲器系统形成对照,其在媒体被再现之后丢弃它。术语“持久”和“无限”因此应广泛地被解释为意指PIMB30和PIMB 85对时间范围和可存储在其中的消息的数量没有内在限制。
在持久性存储介质中给会话消息存档有很多优点。语音消息和其它媒体可按需要被组织起来、编索引、搜索、转录、翻译和复查。语音以及其它媒体因此变成可由用户和组织管理的资产。这些媒体资产对公司、第一出动人员、警察和火警部门以及军队具有价值。
F.Vox协议和附有索引的媒体有效载荷
如上所述,Vox协议由存储和流模块24使用来支持有效载荷传输、存储和优化的所有方面。Vox分组是设计成封装在传输分组或网络18的底层技术的传输分组内部的有组织的消息格式。该布置明显提高了系统10的灵活性。通过将Vox分组嵌入现有的传输分组中,与定义“Voxing”应用程序的新传输层不同,系统10利用在现有电信基础设施上运行的基于当前分组的通信网络。因此不需要产生用于处理Vox分组的新网络结构,从而利用这里所述的系统和方法的所有好处。
参考图4A,其示出Vox分组95的一般格式结构。Vox分组95的格式包括用于类型、子类型、长度和有效载荷的字段。Vox分组的不同类型包括验证、信令、媒体有效载荷、媒体多路复用(一个消息)和媒体多路复用(多个消息)。子类型字段用于表示验证、信令或媒体类型消息的不同类型。验证消息的可能的子类型包括用于关键字交换和验证所必需的那些子类型。信令消息的可能的子类型包括注册、路由、消息建立和网络管理。媒体消息的可能的子类型包括不同的编解码器类型和不同的有效载荷聚集技术。长度字段限定有效载荷的总长度或大小。有效载荷字段包含分组95的媒体或实际有效载荷。
参考图4B,其示出说明封装在网络18所使用的示例性协议中的Vox分组95的图示。在本例中,Vox分组95分别嵌入底层UDP、IP和以太网传输分组96中。以这种方式,Vox分组95可在网络18的底层UDP、IP和以太网层中传输。这是分组网络所使用的标准协议封装技术。
参考图4C,其示出说明封装在UDP、IP和以太网97中的媒体多路复用Vox分组95的图示。在本例中,Vox分组95包括媒体类型字段、媒体子类型字段、长度字段、消息ID字段、时间戳字段、序列ID字段和媒体有效载荷字段。
参考图4D,其示出附有索引的媒体有效载荷98的格式。附有索引的媒体有效载荷包括子类型字段、长度字段、消息标识符(ID)字段、时间戳字段、序列标识符(ID)字段和媒体有效载荷的字段。
Vox分组95封装到底层网络的传输分组中允许媒体、消息和会话每个都由多个属性限定。
当媒体在设备13上产生或以其他方式起源时,它一般是基于时间的,意指它随着时间的过去以某种有意义的方式改变。例如当人参与会话时,他们讲的词集合在一起成为句子或语句,其可随着时间的过去变化,且因而形成的数据(流和分组)将随着时间的过去维持相同的变化。类似地,视频(与静止的照片不同)以及GPS或其它传感器数据将随着时间的过去变化。不管类型或它如何起源,媒体被分割并置于多个Vox分组95的有效载荷中。分组接着分别在传输和接收设备13处以流(即,流媒体)的形式被连续地储存、传输、接收、储存并再现。因为每个分组95附有索引、附有时间戳并被给出序列标识符,单独分组可被分割成消息。通过连续将单独的消息连接在一起,可构成会话。
系统10的一个进一步的独特的方面是客户机12所产生的媒体有效载荷被储存在多个位置。有效载荷不仅储存在产生设备13的PIMB 30中,而且储存在服务器16的PIMB 85和接收设备13的PIMB 30中。该基本特征使很多上述Voxing功能实现或变得可能,并给系统10提供适应性和可操作性,即使当网络条件差时或当会话的参与者没有连接到网络时。
G.与底层电信协议的互操作性
系统10预定在各种现有的通信网络18例如互联网、固定PSTN类型的电路网络以及移动或蜂窝电话网络或其组合上运行或被分层。系统10围绕着在系统10中的不同客户机12和服务器16之间移动很多小单位的信息(即,Vox分组)的概念而被设计。虽然Vox分组可在大小上变化,根据其功能和有效载荷,它们对底层网络层都表现为相同类型的数据。在一个实施方式中,系统10为IPv4网络例如互联网而被设计和优化,但也可支持其它类型的网络。为了该文件的目的,术语“IP”应被理解为意指IPv4、IPv6或互联网协议的任何其它当前或未来的实现。
参考图5,其示出在设备13上运行并通过共享的IP网络100与服务器16进行通信的客户机12的图示。如所示,客户机12通过第一互联网服务器提供商A耦合到共享的IP网络100,且服务器16通过第二互联网服务提供商B耦合到共享的IP网络100。在通信期间,Vox分组95(在附图中被设计的“VP”)被封装在UDP/IP分组中,接着如本领域中公知的在其它1P协议分组中交错(interleave),并在整个共享的IP网络100中从客户机12传输到服务器16,或反之亦然。如公知的,每个较低分组层封装直接在其上的层的整个分组。分组也可在两个服务器16之间以类似的方式发送。消息通过共享的IP网络100从启用一个客户机12的设备13发送到另一设备。在每个中继时,Vox分组95嵌入底层IP协议中并被传输,直到它们达到目标目的地。
图5的图示仅仅是示例性的,为了说明只示出连接到网络100的单个客户机12和服务器16。在系统10的实际实施方式中,大量客户机12和一个或多个服务器16一般连接到共享的IP网络100。注意到客户机12和服务器16没有排它地使用IP网络100也是有用的。在所示例子中,通过互联网提供商A耦合到网络100的HTTP客户机可使用HTTP服务器来回发送分组,其通过第三互联网提供商C耦合到网络100。系统10不控制嵌入IP分组中的VP横穿网络100的方式。更确切地,横穿并共享网络100的所有分组都根据底层共享的IP网络100的标准程序这么做。
参考图6,其示出基于“电路”的网络104,例如GSM移动电话网络。电路网络104耦合在设备13上运行的客户机12和服务器16之间。一旦在客户机12和服务器16之间建立电路,系统10就将Vox分组(Vp1、VP2、VP3、VP4、VP5等)分层到网络104所使用的底层分组上,并在整个网络104中传输它们,产生“虚拟Vox”电路。Vox分组连续横穿电路网络104,一般使用本领域中公知的用于通过电路网络传输数据的间隔或成帧数据。此外,分组结构参数例如有效载荷大小和所包括的首部字段的数量可用于利用每个分组开销的缺乏,并增加在整个网络104中的数据传输的速度和/或效率。应再次注意,为了简单起见,只有单个客户机12和服务器16被示为连接到网络104。然而应理解,客户机12和服务器16之间的额外的电路以及其它部件可同时通过网络104来建立。网络104因此不专用于Vox分组的传输,而更确切地其可与其它类型的网络业务共享。
参考图7,其示出说明与第一网络A相关的启用第一客户机12A的设备13A和与第二网络B相关的启用第二客户机12B的设备13B之间的通信。网络A和B每个还分别包括网关服务器16A和16B。网关服务器对16A和16B便于两个网络A和B之间的通信,允许设备13A和13B彼此通信。在各种实施方式中,网络A和B每个可为任何类型的网络。例如,每个网络A和/或B可为IP网络、电路类型的网络、或无线或蜂窝网络(即,CDMA、GSM、TDMA等)。横跨两个网络A和B的服务器16被认为是网关服务器,因为它们在两个网络之间按规定路线传输业务或用作“门”。
使用系统10,存在优化系统性能的几个底层网络交互作用考虑因素。这些考虑因素包括例如解析Vox分组95将被发送到的底层地址、任何已发送的Vox分组的完整性、以及可在整个给定网络或网络的组合上发送的单个消息的最大传输单元(MTU)的管理的因素。
目标客户机12的地址需要是已知的,以便底层网络将Vox分组95发送到正确的位址。对于IPv4网络,该地址一般为IPv4地址,其为唯一地识别网络中的主机的32位数字。对于其它联网技术,该地址可为某个其它类型的标识符。IP网络使用域名系统(DNS)来将人可读的名称解析成IP地址,并使用地址解析协议(ARP)将IP地址解析成物理地址。不管底层联网技术如何,系统10都使用上述或其它已知的编址方案以将Vox分组95发送到正确的位置。
如同几乎任何基于分组的通信系统一样,如果底层网络不能够发送其中封装有Vox分组的分组,则所传输的Vox分组可能不被发送到其寄送的位置。大多数分组网络不通知发送器何时丢下分组。相反,它们依赖于发送器和接收器来通知并补偿任何丢下的分组。系统10设计成使用这些接收器接收报告消息以协调此分组丢失管理。如果底层网络能够通知发送者丢失或丢下的分组,则系统10在其重传协议中利用该信息。
MTU的管理是确定可在整个网络中发送的最大传输单元(即,单个消息的最大大小)。对于基于分组的网络,底层网络利用MTU。对于电路交换网络,MTU可为网络效率和性能的可调参数。因此在大多数情况下,底层网络利用或确定可被有效地传输的Vox分组95的最大大小。例如对于IP网络,如果有效载荷超过MTU,则分组可被分段,但遭受相当大的性能损失。对于以太网网络上的IP,传输设备具有1518个字节的MTU,如以太网所实施的。最大的IP分组必须为以太网首部留下空间。最大的UDP分组必须为IP和以太网首部留下空间,且可例如在以太网上产生的最大Vox协议是以太网MTU(1518)-IP首部(20)-UDP首部(8)=1490个字节。因为Vox协议将具有其自己的首部,实际Vox媒体有效载荷将小于以太网网络上的1490个字节。对于吉比特(Gigabit)以太网,MTU可大得多,但将使用类似的规则确定。
在完全基于分组的网络中,有MTU的两个可能的值,本地链路MTU和路径MTU。确定本地链路MTU产生有效地发送到本地网络接口的Vox分组的最大大小。路径MTU产生可完整无损地一直发送到远程节点的Vox分组的最大大小。如果发送者通过以太网被连接,则Vox分组可通过在途中具有较小的MTU的各种其它系统传递到接收者。到目的地的路径上的较小MTU需要被发送者解析和知道。在IP世界中,存在用于发现称为“路径MTU发现”的最小MTU的标准程序。对于其它类型的网络,可使用等效的程序。再次,因为系统10在其它网络的顶部被分层,可使用上面MTU算法中的任何一个。
H.操作流程图
H.1存储和流
参考图8A到8F,提供了一系列流程图来示出分别在客户机12和服务器16上的存储和流模块24和84的操作。图8A示出将消息传输到第二客户机122的第一客户机121的操作的序列。图8B和8C示出发送客户机121上的PIMB写入器28和PIMB读出器28的操作。图8D和8E示出接收客户机122上的PIMB写入器28和PIMB读出器26的操作。图10F示出服务器16上的存储和流模块84的流程图。
在图8A中,在设备131上运行的客户机121的用户发起待传输的媒体。媒体可用很多不同的方法被发起于设备13,以便用户通过对着麦克风讲话而产生媒体或在其设备13上产生视频内容。媒体也可由设备13通过接收传感器数据例如GPS信息或温度读数而被发起。无论媒体如何被发起,媒体都被PIMB写入器28(框130)编码,PIMB写入器28将媒体转换成附有索引的媒体有效载荷,并将其存储在客户机121上的PIMB 30中(框132)。客户机121上的PIMB读出器26从PIMB 30读出有效载荷,产生Vox分组,并通过网络18将分组传输到接收客户机122(框134)。沿着发送客户机121和接收客户机122之间的路径的每个服务器16将所传输的有效载荷存储在PIMB 85中,并将Vox分组传输到下一中继(框133)。在接收客户机122,PIMB写入器28的净接收功能将Vox分组转换成附有索引的媒体有效载荷(框136),并将有效载荷存储在客户机122的PIMB 30中(框138)。客户机122上的PIMB读出器26的再现模块将从PIMB 30读取的有效载荷信息再现为适合于人使用的介质例如音频或视频(框140)。下面关于图10B到10E更详细地描述这些步骤中的每个。
在图8B中,详细提供了由PIMB写入器28执行的编码接收功能序列(图8A的步骤130)。在初始步骤1301中,运行客户机121的设备13的使用产生待传输的媒体。如上所述,可通过对着麦克风讲话、使用摄像机接收传感器数据或通过某种其它媒体产生部件来产生媒体。在下一步骤1302中,编码接收器28a给媒体编码并产生附有索引的媒体有效载荷(步骤1303),该有效载荷接着由数据存储器28c储存在PIMB 30中(步骤132)。
在图8C中,详细提供了由客户机121上的PIMB读出器26执行的传输功能的序列(图8A的步骤134)。在决策环1341中,PIMB读出器26的传输功能连续检查以查看是否待传输的附有索引的媒体有效载荷被写到PIMB 30中并可用于传输。如果这样的有效载荷在PIMB 30中可用,则数据优先器26f使用MCMS参与者属性信息按优先顺序排列应首先被发送的有效载荷,如在步骤1342中所示的。关于最高优先级有效载荷的信息被传递到运行PQM的分组优化器模块26g(步骤1343),如下面关于图9A-9C更详细描述的。适当的有效载荷接着由数据取回器26h从PIMB 30取回(步骤1344),并由打包器26i转换成Vox分组95(步骤1345)。Vox分组95接着通过网络18由发送器26j发送到接收客户机122(步骤1346),接收客户机122发送回反映被接收到的分组的特性(损失、抖动、吞吐量)的接收报告。这些接收报告给PQM提供计算给定的接收方的MABR所必需的信息。前述过程对每个传输环重复,如从传输步骤到流程图的顶部的返回箭头所指示的。
在上述实施方式中,媒体被编码、存储在PIMB 30中,并接着通过网络以串行方式传输。在可选的实施方式中,被编码的媒体可储存在PIMB 30中,并通过网络并行地传输,意味着两种功能实质上同时出现。
在图8D中,示出了在接收客户机122上的PIMB写入器28的净接收功能的序列(图8A的步骤136)。在初始步骤1361中,净接收器28d通过网络18接收Vox分组95。数据存储器28f将分组转换成附有索引的媒体有效载荷(步骤1363),这些有效载荷被储存在PIMB 30中(步骤1364)。当有效载荷被储存时,运行数据质量管理器(DQM)。DQM 28g检查遗失或破坏的分组,确保所传输的数据的准确拷贝的最终存储,并将关于网络的条件的接收报告发送到发送器。下面关于图9D到9F更详细地描述DQM28g的这些功能中的每个。
在图8E中,示出了在接收客户机122上的PIMB读出器26的再现功能的序列(图8A的步骤140)。在初始步骤1401中,数据优先器26a按优先顺序排列待再现的附有索引的媒体有效载荷,如由MCMS应用程序20使用MTSD信息以及包括用户意图和注意力状态的用户状态和在场信息所确定的。优先的有效载荷接着由数据取回器26b从PIMB 30读取(步骤1402)。PLC/内插器26c使用已知的分组损失补偿和内插算法,根据使用哪个编解码器,来对取回的有效载荷执行分组损失补偿和内插(步骤1403)。在下一步骤中,如果两个或多个参与者同时在同一会话中产生媒体(例如,都同时讲话),则混合器26d混合会话的多个消息(步骤1404)。再现器26e从混合器26d再现数据流(步骤1405),为接收的用户产生声音、视频或其它媒体(步骤1406)。
在图8F中,示出了服务器16从网络18中的前一中继接收Vox分组,储存、存档并传输Vox分组到下一中继的序列。在初始步骤中,服务器16执行PIMB写入器的净接收功能(类似于图8D),以将接收到的数据的附有索引的媒体有效载荷存储在PIMB 85和档案库89或服务器16中。服务器16也执行PIMB写入器的传输功能(类似于图8C),以将接收到的分组转发到网络18上的下一中继上。以这种方式,由发送客户机121产生的媒体的拷贝被接收、存储并沿着到接收客户机122的路径的每个中继被发送。
在前述实施方式中,接收到的附有索引的媒体的记录储存在服务器16的PIMB 91中,并以串行方式传输到下一中继。在可选的实施方式中,接收到的附有索引的有效载荷可储存在PIMB 91中,并实质上同时传输到下一中继。发送和接收设备13的PIMB 30上的媒体的存储都考虑媒体的逐步传输和再现。在发送侧上,当正接收于发送设备上起源的媒体时,它可通过网络被逐步发送。在各种实施方式中,在被编码的媒体存储在PIMB 30中之前、之后或实质上相同的时间,可逐步传输该媒体(而不管它如何被发起)。在接收侧上,当进入的媒体通过网络被接收时,它也可被逐步再现,假定用户选择在接近实时的模式中复查媒体。在各种实施方式中,在进入的媒体存储在接收设备13的PIMB 30中之前、之后或实质上相同的时间,可逐步传输该媒体。如果接收到的媒体将在时移模式中被复查,则媒体从PIMB 30被取回(或如果在本地PIMB 30上被代替,则可能为服务器16上的PIMB 85),用于以后在用户所指定的时间复查。
在本申请的上下文中,术语“逐步的”或“逐步地”意味着被广泛地解释,且通常意指根据数据的可用性连续处理数据流。例如,当媒体在设备13上产生或另被发起时,该媒体的逐步编码、存储、打包和传输是连续的,只要媒体是可用的。当人讲话时,该媒体在人讲话的持续时间内逐步或连续地被编码、存储、打包和传输。当人暂停或停止讲话时,没有媒体要逐步处理。当人再次重新开始讲话时,媒体的逐步处理重新开始。在接收侧上,当媒体被接收时(即,可用),媒体也被逐步处理。在媒体被接收时,它被连续地存储。当媒体在接近实时的模式中时被接收到或在时移模式中从存储器接收时,它也将被继续再现。虽然在语音的背景下提供了上面的解释,应理解,可按类似的方式逐步处理所有类型的媒体。此外,媒体的逐步处理不一定必须以时间索引的顺序被逐步处理。更确切地,媒体以其被接收的顺序被处理。如果在一个实施方式中不按索引顺序接收媒体,则媒体以其被接收的顺序被逐步处理,并接着在PIMB 30中组织成附有索引的序列。在可选的实施方式中,接收到的媒体可组织成其附有索引的序列,并接着被逐步再现。
H.2PQM操作流程图
PQM 26g依赖于称为最大可用比特率(MABR)的度量,最大可用比特率是在发送和接收节点对之间的实际传输容量或带宽(即,在给定时间点网络的容量的测量)的连续计算的近似。当即时网络条件变化时,MABR被更新。在计算MABR中考虑网络吞吐量、分组损失和抖动的有规律的测量。在可选实施方式中,也可根据一天的时刻、网络类型、其它条件或参数人工设置或限制MABR。
PQM也考虑接收者的意图以优化时间敏感性的传输。如果(i)接收者的意图是“即时”或在接近实时的模式中复查传输,或(ii)接收者希望立即复查由于某个原因当前没有储存在其设备13上的消息(例如,消息以前储存在档案库89中),则传输被认为是时间敏感的。接收者的意图可通过接收者的行为推断出,或接收者可设置或以其他方式指定其意图。另一方面,如果接收者的意图是在时移模式中复查消息,则传输被认为不是时间敏感的。接收者在即时或时移模式中复查传输的意图至少部分地限定传输的“时间性要求”。在各种其它实施方式中,在限定传输的时间性要求时也可考虑例如传输的紧急性或优先级的因素。
在发送者和接收者对之间网络路径中的节点也需要关于接收者的意图状态一致。如果一个目标接收者指示时间性,意味着他们希望立即或即时复查传输,则在网络上沿着发送者-接收者路径的所有中间节点需要有相同的时间性要求,而不管其他接收者的要求如何。每个中间节点的时间性要求因此依赖于传输被发送到的接收节点。这种依赖性对于网络传输路径中的目标节点有时称为“要求的联合”。
PQM进一步考虑每个被调度的消息有效载荷传输的理想比特率或“IBR”。对于时间敏感的传输,根据实质上实时或即时通信所需的打包率来计算IBR(在这里称为实时比特率或RTBR)。例如对于语音,包含20毫秒的音频数据的每20毫秒分组的打包率被认为是用于进行即时会话的可接受的IBR。以每秒千比特为单位的这样的系统的RTBR将是音频有效载荷数据的1秒的大小加上将为传输而产生的所有网络首部的大小。对于视频媒体或语音和视频的组合,RTBR可能实质上高于简单的语音。对于其它类型的媒体例如传感器或GPS定位数据,RTBR可能低于语音的RTBR。对于非时间敏感的传输,IBR被设置到最大效率比特率(MEBR)以优化网络上传输的使用或效率。通过将打包率调节到底层网络的最大可能的值来计算MEBR。如果多个消息或有效载荷在发送和接收对之间被发送,则对传输考虑综合IBR(AIBR)。
对于每个发送和接收对,PQM通过在一系列传输环中发送数据来操作。每个发送和接收对的传输环是独立的。在网络上的任何传输可能影响其它发送-接收对的MABR。因此,优选地为所有接收者连续计算MABR。
参考图9A到9C,示出了说明对单个发送和接收对的PQM的操作的序列。在图9A中,示出了在确定单个发送和接收对之间的MABR中的步骤。在图9B中,示出了说明用于对单个发送和接收对计算每个传输环的AIBR的步骤。在图9C中,示出了用于确定要在每个环的发送和接收对之间传输的数据的数量的序列。在这三个图中示出的过程同时运行并彼此进行交互作用,如下面更详细描述的。
在图9A中,示出了用于为发送和接收对之间的网络接口计算MABR的流程图50。在初始步骤501中,监控发送和接收对之间的网络接口。发送者周期性地接收报告,其包含关于在步骤502中在接收方处的网络连接的状态的信息。报告包括关于数据吞吐量503、分组损失504和抖动505的当前状态的信息,如由接收方在网络接口处观察到的。在步骤506中,根据包含在报告中的这些观察资料在发送方计算MABR。通过监控或观察在这些报告中的数据,根据发送和接收对之间的当前网络容量或条件来连续调节MABR值。当网络容量变得对数据传输更有利时,MABR将增加。如果网络容量对传输变得较不利,MABR将减少,对于不稳定的网络可能一直到减少零。这些报告类似于TCP网络中的节点产生的分组损失报告,但也额外地包括吞吐量和抖动信息。
如果在发送和接收对之间有几个网络接口,则为每个接口计算MABR,对该接口接收到接收报告。如果在网络上最近没有发送业务,或没有接收到接收报告,则MABR可能不反映当前的网络条件。然而,因为当数据被传输时接收报告由接收方连续产生,发送方的MABR度量将快速收敛到更精确的值。
参考图9B,其示出说明用于为传输环计算AIBR的步骤的流程图52。在初始步骤521中,确定对于准备在当前环中的发送和接收对之间传输的媒体的消息(据此,我们意指属于该消息的附有时间索引的媒体的部分)。接着建立对于媒体的消息的列表522。对于列表中的每个消息523,考虑每个消息的时间敏感性或时间性要求524。如果特定的消息不是时间敏感的,则IBR被设置到最大效率比特率(MEBR)525。另一方面,如果消息是时间敏感的,则IBR被设置到实时比特率(RTBR)526。在下一步骤527中,以前为列表中的每个消息计算的IBR被汇总在一起,产生传输环的综合理想比特率(AIBR)528。如返回箭头所表示的529,上述过程对发送和接收对之间的每个传输环重复。
参考图9C,其示出说明用于确定要在每个传输环的发送和接收对之间传输的数据率的序列的流程图54。在初始步骤541中,对于下次传输,比较MABR(如在图9A中计算的)与AIBR(如在图9B中确定的)。
如果MABR大于或等于AIBR,则被识别为准备好在环中传输的所有消息以IBR率被打包542并传输543。
另一方面,如果MABR小于AIBR,则应用一系列程序,使得PQM满足数据的充分拷贝的及时发送、可用带宽的有效使用、和/或对有效载荷内容和质量、分组大小和传输率的调节的其目标,以满足当前的网络条件。
在初始步骤中,为时间敏感性复查列表中的消息544。如果没有时间敏感的消息,则比特率减小到MABR545,且消息被传输543。
如果列表包括时间敏感的消息,则为非时间敏感的消息分配的比特率减小546,直到它满足MABR限制。如果将比特率一直减小到零不足以满足MABR,则这些非时间敏感的消息从在环中待传输的消息的列表中被移除。如果比特率减小,使得它小于或等于MABR,则剩余的消息被打包和传输543。
如果非时间敏感的消息的移除不足以满足MABR,则使用另一程序,其涉及对剩余的时间敏感的消息使用较低质量编解码器547。通过在传输环期间发送较少的比特来试图尽快传输有效载荷数据。换句话说,通过降低有效载荷的质量,传输在给定的一段时间发送较少的比特。在各种实施方式中,可使用不同的编解码器,每个编解码器具有不同比特率对质量折衷。如果较低质量的编解码器的使用足够,意味着满足MABR限制,则消息被发送543。
如果较低质量编解码器的使用不满足MABR,则时间敏感的消息的打包间隔增加548。对于该程序,首部与有效载荷比增加了,这降低了总比特率,但引入等待时间(即,在传输到接收者的发送中的延迟)。如果该程序导致AIBR减小到小于或等于MABR,则传输发生543。
如果在改变打包间隔之后,仍然不满足MABR,则比特率可逐渐降低到在MABR限制内549。当比特率以这种方式降低时,时间敏感的消息以不足以维持即时会话的速率被发送。因此,会话被强制脱离“即时”。如果网络出故障或条件非常差,则可能没有数据传输发生。再次,前述序列对发送和接收对之间的每个传输环重复5410。
如果在发送和接收对之间有多个网络接口,则对接收报告可用的每个接口执行关于图9C描述的序列。在各种实施方式中,发送方可包括在多个接口中分配传输载荷的逻辑。在不同的例子中,有效载荷可只在一个接口上发送,而在其它实施方式中,可使用一些或全部接口。
前述描述涉及系统10中的任何发送和接收对。在大部分情况下,发送和接收对将分别包括客户机12、启用的设备13和服务器16、两个服务器16、服务器16和启用客户机12的设备13,或甚至可能两个客户机12。如果发送节点同时向两个(或多个)接收节点传输,则关于图9A-9C描述的上述序列对每个接收-发送对同时发生。
H.3DQM操作流程图
DQM 28g确定在客户机12接收到的数据是否被破坏或是否有遗失的分组。此外,接收客户机12的DQM 28g产生接收报告,其被发送回网络上的传输节点。DQM 28g也运行后台过程以确保所传输的数据的准确拷贝最终被接收和存储。下面分别在图9D到9F中描述了这些功能。
参考图9D,其示出说明用于检查遗失的和/或破坏的数据的DQM 28g的操作的流程图。在初始步骤561中,DQM 28g使用公知技术例如CRC或类似的完整性检查机制检查破坏的分组。如果分组被破坏,则分组被视为遗失的562。DQM 28g接着确定任何分组是否是遗失的563。如果在预定的一段时间之后没有接收到失序分组,则假定它为遗失的。DQM 28g记录DNQS 32中任何破坏或遗失的分组564。另一方面,如果没有检测到破坏或遗失的分组,则DQM 28确定是否为了节省带宽的目的,接收到的数据的质量被发送者故意降低565。降低的质量被记录在DNQS 32中566。不管接收到的数据的质量是否降低,数据的接收信息(例如,分组序列号、时间戳、和分组将被发送到的网络中下一节点的网络地址)被储存在DNQS32中567。前述过程连续地重复,如到流程图的起始处的返回箭头所表示的。
作为图9D中详述的过程的结果,关于未降质的分组的接收的信息、降低质量的分组的缺陷以及遗失的分组都存储在DNQS 32中。当媒体被接收到时,DNQS 32维持关于媒体的状态的最新消息。
参考图9E,其示出说明DQM 28g的接收报告产生功能的操作的流程图。在初始步骤中,DNQS 32被周期性地扫描581,以确定是否有接收报告需要被产生的任何媒体582。如果答案是否定的,则上面的扫描过程重复。另一方面,如果媒体被识别出,则该过程确定媒体是否是时间敏感的583,意味着用户打算复查媒体实况或用户希望立即复查没有储存在其设备13上的媒体。
如果不是时间敏感的,则接收者通知发送者将重传优先级(如下定义的)设置为低584。如果是时间敏感的,则考虑分组丢失的量585。如果分组丢失的量在可用质量范围之外,则重传优先级被设置为高586。如上所述,如果分组丢失的量太大,则接收者可能不能够在接收到媒体时复查媒体。如果质量在可接受的范围内,意味着传输的质量足以使其在再现时可被理解,则用于发送接收报告的优先级被设置为低584。不管接收者是否在接收到时复查,都发送接收报告587,DNQS 32被更新588,且网络质量管理器(NQM)28h被更新589。在步骤584定义的重传请求因此是以时间敏感性为条件的。在步骤586定义的重传请求是以时间敏感性和质量为条件的。
重传优先级通知发送者的PQM 26g适当地按优先顺序排列需要重传的媒体的传输率。例如,当重传优先级被设置为高时,则发送者的发送PQM26g应在任何新媒体之前发送任何重传。如果优先级低,则PQM 26g应在任何新媒体之后发送重传的媒体。
前述过程连续地重复,以便在媒体被接收到时产生接收报告。如果发送者没有以及时的方式接收到接收报告,则发送者的PQM 26g将减小传输率,如果没有接收到接收报告就最终停止传输。
参考图9F,其示出说明用于请求遗失或降质的媒体的序列的流程图。在初始步骤601中,周期性地扫描DNQS 32寻找遗失或降质的媒体602。如果没有遗失或降质的媒体,则上面定义的扫描周期性地重复。
如果在预定阈值的时间段之后失序分组没有到达,则媒体被认为是遗失的603。如果分组在阈值之前到达,则不再认为它是遗失的。另一方面,如果在超过阈值之后,分组没有到达,则它被认为是遗失的。由于遗失的分组,产生用于重传的低优先级的请求604,且请求的时间被记录在DNQS32中605。该过程重复,直到接收到遗失的分组。当遗失的分组到达且相应的媒体在PIMB 30中可用时,从DNQS 32移除媒体的遗失状态。因此,在步骤604中定义的重传请求是以媒体是否被确定为遗失为条件的。
如果被降质,则DQM 32确定媒体是否是即时会话的部分606。如果不是,进行对降质的媒体的完全质量拷贝的请求607,完全质量的媒体被指定为遗失的608,并在DNQS 32记录请求时间609。如果媒体是即时会话的部分,则不立即采取行动,以便保存网络带宽。当会话转变到即时模式之外时,则执行步骤607到609以确保降质的媒体的完全质量(即,准确的或完美的)拷贝最终被接收到。当数据在接收客户机12的PIMB 30中变得可用时,相关媒体的降质状态从DQNS 32移除。在步骤607中定义的传输状态是以媒体是否被降质且不是即时会话的部分为条件的。
前述过程连续重复,如在601从605和609到流程图的顶部的返回箭头表示的。通过重复图9F中概述的过程,所有被传输的媒体的准确拷贝被储存在接收设备13的PIMB 30中。以这种方式,在接收设备13保证被传输的媒体的准确拷贝的储存。
I.图形用户接口
参考图10,其示出运行客户机应用程序12的示例性设备13。设备13包括图形用户接口显示器110、数据输入按钮、键或键盘112、麦克风114以及用于将电信号转换成声音的变换器116,例如扬声器。显示器110也可作为触摸屏接收输入。进一步地,使用触摸屏接口可合并显示器110和键盘112。如上所述,设备13可以是多种不同的通信工具,例如桌面型计算机、膝上型或其它移动计算机、个人数字助理、可编程固定电话或蜂窝电话、或可编程无线电装置、或几乎任何其它类型的可编程通信设备。在以下的意义上附图所示的示例性设备13意指是“一般的”,即,它被认为表示或包括上面列出的所有通信设备。此外,术语“图形”用户接口不应被解释为限制性的。可在设备13上实现的、也包括音频/DEMF接口、语音用户接口(VUI)、音频转换接口或其组合的其它类型的用户接口可都用于实现下面描述的各种功能。为了简单起见,用户可与其设备13进行交互作用的这些类型的方法中的每种通常都称为“用户接口”。
所有的设备13不管其类型如何都优选地具有使用户能够操作设备13并与系统10中的其它用户进行通信的用户接口。虽然用户接口可设计成有实质上无限数量的不同外观和感觉实现,但存在所有设备13应共同具有的某些功能和特征。下面列出这些功能和特征。
用户接口优选地包括下列状态指示器或标记中的一个或多个:(i)电池指示器;(ii)连通性指示器;(iii)时钟;(iv)发送器状态;(v)传输同步状态;(vi)复查状态;(vii)需要关注的优先级消息;以及(viii)遗失的消息。
用户接口优选地包括下列功能、标记和要素来进行和管理单个会话:(i)会话的名称和/或参与者的列表;(ii)会话状态;(iii)会话类型;(iv)会话持续时间;(v)在会话首部之后的时间;(vi)未完成的消息;(vii)参与者的在场/状态;(viii)具有导航信息的元数据;(iix)会话属性或标志符;(ix)包括标题、计划表、参与者、会话概述的会话结构;以及(v)显示哪些参与者贡献消息以及哪些参与者听或复查消息的指示符。
除了上面直接列出的那些以外,用户接口还优选地包括下列功能、标记和要素来进行和管理多个会话:(i)每个会话的名称/标识符;(ii)即时/活动的或常设(standing)/不活动的指示符;(iii)在首部处或时移的复查位置;(iv)优先级和其它属性;以及(v)会话的什么部分被遗失的指示符。
用户接口还优选地包括很多导航特征,例如:(i)每个会话的DVR型快速后退/前进;(ii)即时消息型的个人消息导航;(iii)会话时间指示符;(iv)时标(time scale)移动(即,通过会话的一个或多个消息的快速向前或向后);(v)会话的变化的优先级;(vi)中止(hang up);以及(vii)始位(home)。
前述功能和特征可用各种方式实现,例如使用触摸屏图形用户接口110,或其它输入设备例如数据输入按钮、键或键盘112、鼠标、通过语音激活的命令或其组合。同样,在上面列出的功能和特征以及如何实现它们不意味着是无遗漏的。可使用的各种方法和技术是如此广泛,以至于在这里全部列出或讨论它们是不实际的。
J.会话
MCMS应用程序20支持很多不同类型的会话,例如接近实时或“即时”呼叫,其中从参与者讲话以及其它参与者听到第一参与者时开始的延迟非常小;参与者以较长的延迟在消息之间来回交换语音消息的会话;涉及多个用户的“即时”会议呼叫;在有规律的调度时间的常设会议呼叫;或可配置的有组织的呼叫类型例如同时总结,其中每个参与者都预先留下消息简介,以让其他人在每个人参加即时会议呼叫之前复查。MCMS应用程序20的又一独特的属性是用户在不同类型的会话之间转换的能力。例如,参与者可无缝地从语音消息模式转换到即时呼叫并再次转换回来。或者即时会议呼叫的参与者可转换到语音消息模式并在会议呼叫之后彼此发送更新或行动项目。虽然提到了一些例子,但应理解,系统10非常灵活并提供在不同类型的呼叫或会话之间以及在多个会话之间转换的很多选择。通过改变消息之间的延迟,参与者有效地在最适合其需要的会话类型之间转换。上面的例子因此不应被解释为限制性的。
如上所述,会话由在其原始上下文和序列中保持的消息组成。被发送的消息属于现有的会话或开始的新会话。一般会话包括围绕所限定的主题、话题、时间、组或信道组织的一组消息。例如,会话可涉及共用一组人群,例如俱乐部的成员,公司可在固定的时间有常设的会话,例如每周销售会议,或朋友可以有关于各种话题的特别会话,例如制定晚餐计划。
每个会话由一组属性限定,包括名称、参与者的列表、开始和结束时间、以及至少包括未决、现行或终止的状态。在其它实施方式中,其它会话状态是可能的。用户与其设备13上的MCMS应用程序20进行交互作用。在优选实施方式中,接口允许用户通过各种属性中的任何一个组织会话。
参与者和会话之间的关系也具有属性。这些属性包括但不限于优先级、状态(参与者在会话中的状态)。参与者状态的值包括活跃的、一次参与多于一个的会话、在时移模式中复查会话、跟上即时、被动地参与(即,不主动复查,而是接收高优先级的消息)、等待(standby)、或忽略会话(即,拒绝参与或记录会话)。
从接收者观点来看,用户可选择或限定消息的相对优先级。例如,来自某人的老板的消息一般被给出比社会上的熟人高的优先级。在一些实施方式中,接收者有设置其自己的优先级的能力。在MCMS-C的实现方法中,用户选择其会话的子集被连续再现。用户接着为这些会话设置有次序的优先级。系统使用用户设置的优先级来给待再现的消息排序。前述算法使用用户优先级和关于可用消息数据的信息(超出MTSD)来给待再现的消息排队。
在其它实施方式例如战术通信中,接收者可能没有设置优先级的能力或者有受限制的设置优先级的能力。例如,消防员可能没有降低来自消防队长的消息的优先级的能力。然而发送用户有发送紧急或高度重要的消息的能力。通过将消息标记为紧急的或危急的,消息在接收者处被尽快再现,不考虑接收者的任何优先级设置。根据预定的优先级方案来解决多个紧急消息中间的任何冲突。
K.MCMS操作
参考图11A,其示出将MCMS应用程序20的主要功能分组的组织图1100。主要功能包括账户管理1102、会话管理1104、综合会话列表管理1106、会话参与1108、呼叫控制1110和联系人管理1112。在注册并登录到系统10中之后,用户可在实现下面详细描述的各种管理功能的设备13的用户接口中导航。在一些实施方式中,该功能将提供极大的灵活性。在其它实施方式例如战术或通信无线电装置中,用户接口的实现可用很多用户功能和预先配置的选项被限制,以满足设备的效用。这里的讨论是示例性的,且不意味着是MCMS功能的无遗漏的解释,而更确切地意味着仅仅提供一些MCMS属性的概述。
K.1账户管理
在账户管理功能1102中,注册用户可改变某些设置和偏好。用户可改变其电子邮件地址、口令、名字、电话号码、电话口令、呼入号码、默认和/或用户定义的再现速度、标记、用于复查消息的增益或音量水平、跟上即时模式等。为了进行这些变化,用户通过其设备13的接口110输入适当的信息。MCMS应用程序20通过将更新的偏好写入MCMS数据库22中来作出反应。
K.2会话管理
如图11B所示,会话管理1104是一组功能,其允许用户观看其综合会话列表、创建新的会话、更新会话的细节、删除会话和选择会话。下面描述这些功能中的每一个。
观看会话1104a-对每个会话,MCMS应用程序20可给用户提供下列属性中的一个或多个:会话的名称、实际开始时间、最后的活动状态、标记、持续时间、参与者的列表。对于每个参与者,名字和/或电话号码、状态(即时、其它呼叫、在过去、跟上模式、离线-可到达、离线-不可用)。
创建会话1104b-用户通过输入会话名称、联系人的列表和可选的预定开始时间经由接口110来创建会话。如果没有指定开始时间,则假定开始时间是立刻。作为响应,MCMS应用程序20在数据库22中创建新的会话,关联联系人列表上每个参与者的记录。MCMS应用程序20也在数据库22中为联系人列表上的每个用户创建参与者记录,允许呼叫者接收联系人列表上的其他人的在场信息。如果会话被调度,则MCMS应用程序20在指定的时间开始会话。否则,会话立刻开始。
更新会话细节1104c-用户可通过用户接口110对会话进行改变。例如,可添加或移除参与者。参与者的状态的任何变化在MCMS数据库22中被更新。
删除会话1104d-用户可通过接口110从会话列表删除特定的会话。作为响应,MCMS应用程序20记录数据库22中的变化,并将会话指示为被删除的。
关闭会话1104e-用户可选择终止或关闭会话。在一个实施方式中,只有创建会话的用户可选择终止该会话。
K.3综合会话列表管理
如图11C所示,综合会话列表管理1106是允许用户参与多个会话(即,用户的综合会话列表)的一组功能。综合会话列表管理功能允许用户通过其设备上的接口110来“即时”参与一个会话,同时在时移模式中参与其它会话。
选择会话1106a-通过接口110,用户可在用户的综合会话列表中选择一个会话作为当前的。当前会话的消息可在“即时”或时移模式中再现。用户可在综合会话列表中不时地转换会话。
转换会话模式1106b-在可选的实施方式中,用户能够从MCMS、MCMS-C和MCMS-S操作模式转换。
K.4会话参与
如图11D所示,会话参与1108是一组功能,其允许用户开始会话、接收加入会话的通知、获得会话状态信息并中止会话。
开始会话1108a-在由用户通过接口110或由MCMS应用程序中的调度程序创建会话之后,检查每个参与者的状态。如果参与者是离线的,则努力联系这个人。如果参与者离线但参与另一会话,则MCMS应用程序20通知该参与者。所有在线参与者的在场状态在数据库22中被更新。
接收通知1108b-系统可借助于用户接口110通过图形显示和/或可听得见的通知来通知用户其被请求对会话的注意。
会话状态1108c-用户可通过其设备13的接口110请求会话的状态。作为响应,MCMS应用程序20集合储存在数据库22中的状态信息,并将信息显示给用户。
会话暂停1108d-通过用户接口110,用户可中止活跃的会话或从活跃的会话转换。作为响应,MCMS应用程序20对数据库22中的活跃会话更新用户的参与状态,并指导存储和流模块24将用户从会话移除。
K.5会话控制
如图11E所示,会话控制1110是允许用户控制其在会话中的参与的一组功能。这些功能允许用户跟上即时,跳到首部,跳到过去的位置、暂停、当复查会话的消息时播放加快和播放减慢。这些功能中的每个通过设备13上的接口110由用户触发。
跟上即时1110a-用户可在正在进行的会话中使用“CTL”功能跟上即时。当该功能被激活时,MCMS应用程序20检查用户已复查的会话中的最后一个点,并使用用户指定的比正常再现选项更快的选项来指导存储和流模块24再现以前没有听到的消息,以及当它到达首部时无缝地转换到即时模式。
跳到首部1110c-该功能使用户能够跳到会话首部,略过会话中的用户的当前点和首部之间的任何介入的消息。当被实现时,MCMS应用程序20指示存储和流模块立即在会话首部再现消息。(如果会话首部当前是活跃的,这叫做跳到即时(JTL)。)
跳到过去1110d-该功能使用户能够跳回到会话中前面的消息或点,类似于倒带或重放功能。当被实现时,MCMS应用程序20指示存储和流模块24再现从倒带点开始的媒体。
暂停1110e-该功能使用户能够暂停会话消息的复查。作为响应,存储和流模块24停止消息的再现,直到另一命令被发出。
播放加快1110f-该功能使用户能够更快地再现消息。作为响应,存储和流模块24以比正常更快的速率再现消息。再现速率可由用户指定或用户可从很多预设的选项选择。
播放减慢1110g-该功能使用户能够更慢地再现消息。作为响应,存储和流模块24以比正常更慢的速率再现消息。再现速率可由用户指定或用户可从很多预设的选项选择。
K.6联系人管理
如图11F所示,系统10给用户提供了用于管理联系人列表和用户组的很多功能。这些功能包括添加、编辑、删除联系人和用户组。这些功能中的每个由用户通过其设备13的接口实现。在用户的联系人列表或组列表中的任何修改或删除被储存在MCMS数据库22中。
添加联系人1112a-该功能使用户能够将新的联系人添加到其联系人列表。新的联系人可为注册用户或外部联系人。一般为每个联系人记录提供名称、电话号码、号码类型(手机、办公室、家庭、计算机等)、电子邮件地址和其它个人信息。
编辑联系人1112b-该功能使用户能够编辑或更新现有的联系人记录。
删除联系人1112c-该功能使用户能够移除或删除现有的联系人记录。
搜索联系人1112d-该功能使用户能够在其联系人列表中搜索特定的联系人。可使用很多标准例如名字、电话号码、最近被呼叫、最频繁地被呼叫、组等来进行搜索。
获得参与者列表1112e-该功能使用户能够按很多不同的搜索标准搜索和取回会话的参与者的列表,所述搜索标准包括例如按名字、最近向外的呼叫、最近进入的呼叫、最频繁的呼叫等。
授权呼叫者复查状态1112f-该功能使第一用户能够授权其它用户观看第一用户的状态。非授权用户不能观看第一用户的状态。
创建联系人组1112g-该功能使用户能够将联系人的号码关联到组。当用户定义组时,该组中的联系人的列表存储在MCMS数据库22中。
编辑联系人组1112h-该功能使用户能够编辑组或更新组的成员的联系信息。
删除联系人组1112i-该功能使用户能够删除组。
L.MCMS操作
L.1MCMS-C
如上所述,MCMS-C操作类似于MCMS,具有使用户能够通过消息的时移和优先级分级系统来连续管理和参与多个会话的增加的特征,这些消息由系统自动管理。实现MCMS-C功能包括三个基本过程。如图12A所示,第一过程涉及为连续再现限定一组会话。一旦限定了该列表,分级的优先级组和其它因素就应用于与该组会话相关的附有索引的媒体有效载荷。附有索引的媒体有效载荷接着按先后顺序被排列。通过按先后顺序再现媒体,该组会话的消息被连续再现。
参考图12A,其示出说明用于规定要连续再现的会话的列表的步骤的流程图。在初始步骤1202中,规定用户的综合会话列表。用户或预配数据(步骤1204)接着用于选择综合列表中的会话,用于连续的再现(步骤1206)。对于例如战术通信系统,通常,预配数据用于强制会话被连续再现。对于非战术应用程序,用户一般被提供高度灵活性来选择用于连续再现的会话。
参考图12B,其示出说明用于规定分级的优先级组以再现连续会话的消息的步骤的流程图。在初始步骤(1208)中,一组优先级规则被定义并应用于将被连续再现的会话的列表(1206)。在各种实施方式中,该组优先级规则范围可从严格的分级通信协议到高度灵活的通信协议。例如在经常希望有严格的分级的战术通信系统中,这组优先级规则将优选地以并行消息被再现的特定顺序来强加。例如,对于第一反应人员战术系统,可给来自消防队长的消息最高优先级。可给燃烧的建筑物内的消防员下一级优先级。在下一级,可给建筑物之外的消防员优先级。通过规定严格的优先级,监督灭火成效的人或处于危险中的人的当前消息先于起着不太重要的作用的人而被再现。使用非战术通信,可给用户极大的灵活性来定义其自己的优先级方案,以满足个人需要。销售经理可例如规定优先级方案,其列出与从最重要到最不重要的客户的连续会话。或者用户可在家庭和朋友中间按优先顺序排列连续消息。不管所使用的方案如何,都在此过程中定义连续会话的优先级列表(步骤1210)。
参考图12C,其示出说明从不同的连续会话接收到的消息的队列的结构的流程图。在初始步骤中,为每个将被连续再现的会话连续检测消息的未再现的附有索引的媒体有效载荷(即,流媒体)的可用性(步骤1212)。优先级分级应用于可用的附有索引的媒体有效载荷流(步骤1214)。至少部分地根据优先级分级和可能如下所述的其它参数,可用的附有索引的媒体有效载荷布置成连续的顺序(步骤1216)。附有索引的媒体有效载荷接着以先后顺序被连续再现(步骤1218)。通过连续地重复上述过程,多个会话的消息被连续再现。
在一个实施方式中,先后的顺序部分或全部基于优先级分级。在可选的实施方式中,除了分级和可用性以外,也可考虑其它参数。例如,使用一个或多个参数,例如,与中断附有索引的媒体有效载荷的当前再现的流以及高优先级会话的附有索引的媒体有效载荷有关的转换成本、附有索引的媒体有效载荷的可用流的质量、附有索引的媒体有效载荷以打乱的顺序或从系统的控制器的输入被接收的相对时间,可定义先后的顺序。
一般当不同会话的消息之间的冲突出现时,按先后顺序再现附有索引的媒体有效载荷,同时暂停或延迟其它可用的附有索引的媒体有效载荷的再现。当没有冲突时,附有索引的媒体有效载荷在变得可用时被立即再现。
在又一实施方式中,可在时移模式中可选地复查连续再现的会话的消息。如果第一通信设备的用户产生与连续再现的会话相关的媒体,则该媒体附有索引并储存在设备的PIMB 30以及网络上的服务器16的PIMB 85中。因此当在时移模式中复查会话时,用户选择只复查与会话相关的进入的消息,或复查进入的消息以及与会话相关的第一用户以时间索引顺序创建的媒体。
L.2MCMS-S操作
在MCMS-S或同时模式中,启用客户机12的设备13的用户可限定一组会话用于同时再现。一旦限定了该组会话,就在设备13上同时再现与该组会话相关的附有索引的媒体有效载荷,而不管它们是否交迭。在可选的实施方式中,用户可以可选地从一组媒体流分开地再现接收到的附有索引的媒体有效载荷。也可以可选地在接近实时或时移模式中再现同时会话的附有索引的媒体有效载荷。
L.3MCMS、MCMS-C和MCMS-S实例
在图13A到13D中,示出了说明会话的属性以及MCMS、MCMS-C和MCMS-S的操作的一系列图。
在图13A中,时序图示出在用户“X”和标为“Y”和“Z”的两个其他用户之间再现标为“A”的会话的消息的附有索引的媒体有效载荷的序列。在本例中,媒体由用户Y在t1、t5、t6、t7和t9所标明的时间间隔期间产生。媒体由用户Z在t3、t6和t9到t10所标明的时间间隔期间产生。
在附图底部示出在用户X的设备13处的再现序列。在时间间隔t1、t5和t7期间,只再现从Y得到的媒体。在时间间隔t3和t10期间,只再现从Z得到的媒体。在时间间隔t6和t9期间,再现从Y和Z两者得到的媒体。在时间间隔t2、t4和t8期间,不再现任何媒体,因为用户Y或Z都不在这些时期期间产生媒体。应注意,时间间隔t1到t10并不是意味着表示固定的时间间隔,而更确切地,仅仅是产生媒体的时间段。
图13A的图示在说明会话的属性时是有用的。当一个用户(Y或Z)正产生媒体时,该媒体在X的设备13处被接收到,并可用于再现。当用户X和Y都产生媒体时,两个媒体流都在X的设备13处被接收到,并可用于混合。当用户X或Y都不产生媒体时,没有媒体在X的设备13处被接收到。如上所述,用户X可选择以接近实时模式或时移模式复查在会话A期间产生的媒体。此外,用户X可选择复查以所示的混合格式的媒体或在时移模式中分开地复查来自Y和Z的媒体。
图13B示出MCMS的操作。在本例中,用户正参与被指定为A、B和C三个会话。对于会话A、B和C,用户分别产生或接收所指定(分别是A1、A2、A3和A4、B1、B2和B3以及C1和C2)的消息。每个消息的计时和持续时间由沿着时间线的起始点指示。在本例中,除了消息B2以外,所有的消息都在某种程度上在时间上交迭,注意到此是有用的。
对于MCMS应用程序,用户选择一个会话作为当前会话。对于选定的会话,用户可复查进入的消息并产生被传输到会话的其他参与者的消息。在本例中,用户按顺序分别选择会话B、C和A为当前的。消息序列因此最初是B1、B2和B3,后面是C1和C2,接着最后是A1到A4。再次,当特定的会话被选择为当前的时,用户可在接近实时和时移模式之间转换并转换回来。该图所示的最后的再现不意味着相应于该图的顶部部分所示的接收到的消息的计时。更确切地,该图的下部部分用来根据用户所选择的会话顺序只显示消息的再现顺序。
图13B的例子因此在说明MCMS应用程序的属性中是有用的。用户将一个会话选择为当前的。其它会话暂停。用户也可在所有会话中在任何时间转换当前的会话。
参考图13C,其示出说明MCMS-C的操作的图。在本例中,用户参与两个连续的会话A和B。对于会话A,接收到三个消息A1、A2和A3。对于会话B,接收到三个消息B1、B2和B3。对于本例,消息B1与消息A1冲突,注意到此是有用的。此外,会话A具有比会话B高的优先级。
在两个会话的连续再现期间,较高优先级的消息A1和A2首先接近实时地被再现,如附图中的垂直虚线表示的。因为在消息A2和A3之间有相对大的时间间隔,该间隔通过时移和再现消息B1和B2来填充。当A3到达时,它接近实时地被再现,而消息B3只在较高优先级的消息A3被再现之后才被再现。通过在较高优先级消息之间时移地再现优先级较低优先级的消息,可管理连续的多个会话。应注意,在这个简单的实例中,优先级是用于确定再现的连续顺序的唯一参数。如上所述,也可使用很多其它参数。
参考图13D,其示出说明MCMS-S的图。在本例中,用户参与三个同时的会话A、B和C。对于在该图中示出的每个会话A、B和C,分别接收消息A1、A2和A3、B1、B2和B3以及C1和C2。对于MCMS-S,进入的消息在被接收到时在接收设备13处被再现。如在该图的下部部分所示的,三个会话A、B和C的消息的再现顺序因此与消息被接收时相同。以这种方式,可同时再现多个会话。
在前述实例中,描述了MCMS应用程序的几种变形,包括MCMS-C和MCMS-S。不管所使用的MCMS应用程序的特定类型如何,它们都共享几个共同的特征。在每种情况下,会话由消息的被连接的顺序或组织限定。消息从媒体流分割,每个消息被给出顺序标识符,并以创建媒体的时间编索引。根据MCMS应用程序的变形,可根据一个或多个再现选择来再现消息。再现选择使用从零到多个不同的属性,包括以一种形式或另一种形式来过滤、分组、交迭和/或顺序化消息。以这种方式,可在单个启用客户机12的设备13上进行多个会话,每个会话包括一连串消息。最后,MCMS的每个变形可用相同的方式处理中断消息的接收。当接收到中断消息时,它一般优先于其它消息,并在属于其它会话的其它消息之前被再现。
M.客户机和服务器硬件
参考图14A,其示出说明用于储存并执行客户机应用程序12的设备13的硬件的结构图140。硬件包括CPU 142、主存储器144和大容量存储器146。如在本领域中公知的,客户机应用程序12被装入和储存在主存储器144和大容量存储器146中,并由CPU 142执行。
参考图14B,其示出说明用于储存并执行服务器应用程序78的服务器16的硬件的结构图150。硬件包括CPU 152、主存储器154、大容量存储器156和档案库89。如在本领域中公知的,服务器应用程序78被加载和储存在主存储器154和大容量存储器156中,并由CPU 152执行。如上所述,一个或多个用户的附有索引的媒体有效载荷储存在档案库89中。
虽然为了方便,上面以单数形式描述了很多部件和过程,但本领域的技术人员应认识到,多个部件和重复的过程也可用于实践这里所述的系统和方法的技术。进一步地,虽然参考其中的特定实施方式特别示出和描述了本发明,但本领域技术人员应理解,在所公开的实施方式的形式和细节中可进行变化,而不偏离本发明的实质或范围。例如,本发明的实施方式用于各种部件,且不应被限制到上面提到的部件。因此,这意味着本发明应被解释为包括落在本发明的实质和范围内的所有变形和等效形式。