特定实施方式的详细描述
现在参考如在附图中示出的其中的各种实施方式来详细描述本发明。在下列描述中,阐述了特定的细节,以便提供对本发明的彻底理解。然而对本领域技术人员应明显,本发明可在不使用这里阐述的一些实现细节的情况下实践。还应理解,没有详细描述公知的操作,以便不必使本发明不清楚。
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分组中,接着如本领域中公知的在其它IP协议分组中交错(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)。下面关于图8B到8E更详细地描述这些步骤中的每个。
在图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,所示为示出了会话的媒体的实时同步的图示,所述会话在使用了设备13A的第一参与者和使用了设备13B的第二参与者之间进行。存储和流模块24的渐进特性确保了当创建媒体时,会话媒体被逐步存储在设备13A或设备13B这二者上。在发送侧上,当创建媒体时,操作PQM26g(图9A到9C)将使用发送设备13创建的任何媒体逐步传输和存储在本地PIMB 30中。在接收设备13上,当媒体被接收和再现时,DQM 28g将任何被接收到的媒体逐步存储在本地PIMB 30中。作为结果,当创建媒体时,会话的两个参与者都同步该会话的媒体的拷贝。
为清楚说明起见,图10仅仅显示了参与会话的两个设备13A和13B。应当理解的是,无论会话中有多少参与者都可以实现媒体的实时同步。此外,为简化说明起见,图中的网络14被显示为通用的网络云。再一次说明,应当理解的是,网络14可以包括一个或多个服务器16,这里在13A和13B两个设备之间的每个媒介中继的PIMB 85以及存储和流模块84存储会话的媒体的拷贝,并且使用设备13A和13B有选择地执行实时同步。
参考图11,所示为示出了用于设备13A和设备13B之间的会话的媒体的接近实时的同步的序列的流程图。在这个例子中,假定设备A和设备B的用户参与了以接近实时模式的会话。设备13A和13B可以直接地或通过一个或多个媒介服务器16(未被示出)参与会话。
在发起会话(1102)后,设备13A和设备13B的用户每个都将典型地创建媒体。在图的左侧,所示为用于同步设备13A的PIMB30的序列。在右侧,所示为用于同步设备13B的PIMB30的序列。图示两侧的序列在本质上是相同的。
在会话过程中,设备13A的用户将生成语音媒体(1104A)。当创建这个媒体时,如上面关于图8B(1106A)所描述的,该媒体以附有索引的格式被编码和存储在设备13A的本地PIMB 30中。
设备13B将所有被本地创建的语音媒体的状态通知设备13A,所述语音媒体是源自与会话有关的设备13B(1108A)。在各种实施方式中,新媒体的通知可以采取各种不同的形式。例如,通知可以发生在:(i)当设备13B开始生成并且初次传输与会话有关的媒体时;(ii)当设备13B登录时;(iii)每当与会话有关的媒体在设备13B上被创建,并且被传输到设备13A时;(iv)当设备13B将使用与会话相关的设备13B所创建的所有媒体的状态周期性地通知设备13A时;(v)设备13A周期性地询问设备13B关于在设备13B上创建并存储的媒体的状态,或者(vi)设备13B用同步更新消息通知设备13A这些媒体是正好先于媒体的传输可用,还是与媒体的传输同时可用。在另一个实施方式中,(vii)会话媒体可以被存储在设备13A和设备13B之间的一个或多个服务器16中继上。上面关于(i)到(vi)所描述的各种通知可以发生在所述服务器16与设备13A和/或13B之间,而不是直接发生在设备13A和13B之间。最后,这些通知可以含有(i)到(vii)的一些组合。当媒体被传输时(如以上关于图8C所描述的),其被排序并加以时间戳,允许设备13A确定其已经接收哪个媒体,以及其可能遗失哪个媒体。
响应于通知,设备13A请求与会话相关的尚未在设备13A的PIMB 30中被存储的所有语音媒体(1110A)。这是通过继以上面关于图8D描述的例行过程来完成的,包括如相对于图9D到9F所描述的运行DQM 28g。依靠于条件,被请求的媒体可以是带有特定时间戳或者在时间戳范围内的媒体。例如,如果设备A接收到的媒体小于之前所发送媒体的完整拷贝,则请求仅仅识别需要补充的媒体,并使设备A上的媒体拷贝完整。可选择地,在进行中的会话期间,请求可以不具有特定的结束点。作为代替,从设备A到设备B的请求是开放式的,并且在新媒体被创建时,设备B发送该新媒体。
作为响应,当与会话有关的新媒体被创建时,设备13B使用上面关于图8C描述的序列,将所请求的媒体连同任何新媒体一起发送(1112A)。作为响应,设备13A将所有被接收的媒体本地存储在其PIMB中。其结果是,当媒体在设备13B上被创建时,设备13A能够维持会话的媒体的完整拷贝。
当设备13B创建语音媒体时,序列1104B到1114B被实施。序列1104B到1114B是对1104A到1114A的补充,并因此在此处不做详细描述。两个序列(1104A到1114A)和(1104B到1114B)的最终结果是,当会话实时发生时,设备13A和设备13B两者每个都维持会话的媒体的同步拷贝。
即使当MABR小于AIBR时,在设备13A和13B上也会发生会话的媒体的同步。如上面关于图9C所描述的,当MABR小于AIBR时,许多程序被实现以维持会话的“即时性”,其中包括:仅仅传输时间敏感的媒体,使用较少比特来代表每单位时间上的媒体,增加打包间隔,并且减小媒体被传输的速率以满足网络14上的条件。这些程序具有的优点是扩展了维持会话即时性的能力,但这是以不传输原始编码时的媒体的准确或完整拷贝为代价的。其结果是,虽然同步被维持,但在接收设备上得到的却是原始编码媒体的较不准确拷贝。在接收设备上使用DQM(图9D到9F),将媒体的遗失、损坏和小于媒体全比特率版本的替代品最终传输并存储在接收设备上。该补充程序最终导致设备13A和13B中会话的媒体的完整同步。因此,在某些条件下,可能无法实时同步被传输媒体的完整或准确的拷贝。更确切地说,同步可以是一个正在进行中的工作,其中仅当补充程序完成之后才能接收到媒体的完整拷贝。
虽然上面的说明是在语音会话的背景下被描述的,但应当理解的是,所述会话媒体可以含有任何媒体类型,除语音之外,还包括视频、GPS信息、或其他传感器数据。此外,会话不一定必须只限于两个用户或参与者。无论有多少设备13参与了会话,都会发生会话的媒体的接近实时的同步。
J.分布式服务架构
在上面的讨论中,网络基础设施14被表示为单个服务器16,其服务于启用多个客户机12的设备13。在可选择的实施方式中,联网的基础设施为服务器16的分布式网络。
参考图12,所示为根据本发明的分布式服务网络14的例子。该分布式网络14包括多个服务器16。服务器16中的每一个都可以被配置成实现一个或多个与分布式网络相关的功能。给定的服务器16可以被配置作为:归属服务器(home server)、网关客户机服务器、网关服务器、目录服务器、接入服务器、或其任何组合。无论特殊服务器16被配置成执行多少功能,每个服务器16都共享如图3所示的架构,并且包括存储和流模块84和PIMB 85,其中可能有例外。即如果服务器16仅被配置为目录服务器,则不要求有存储和流模块84和PIMB 85。
每个用户可分配特定的服务器16作为他们的归属服务器。该归属服务器是在网络14上存储用户会话中的每一个的媒体的地方。对于每个会话,被存储的媒体都包括由所有参与者分担的媒体,其中包括用户分担的媒体。
在一个实施方式中,归属设备13依靠众所周知的域名服务系统(DNS)来定位他们的归属服务器16,以及定位其他用户的归属服务器16。在可选择的实施方式中,使用了轻量级目录访问协议(LDAP)。对本领域中的技术人员而言应当明显的是,任何类型的网络目录查询系统都可以用来定位归属服务器16。
归属服务器16还管理和执行归属服务器迁移。归属服务器16通常位于网络14拓扑中的一个便利位置,在那里用户可以正常地接入网络14。不管出于何种原因,如果用户在一段时间内从网络拓扑中的不同位置接入网络14,则关于该用户的归属服务器16可以被移动至在网络拓扑中对于该用户更加优化的另一个服务器16。当发生这种情况时,通过网络14,用户持久存储的媒体从之前的归属服务器16被迁移到新的归属服务器16。在用户移动后的预定时间段之后,这种迁移过程可以被自动发起,或者其能够被手动实现。
例如图7中所示,网关服务器16是网络14和其他通信网络之间的网关。网关服务器16横跨两个网络,并且当两个网络域之间按规定路线传输业务时,该网关服务器16负责根据需要执行任何映射、代码转换、重新封装、采取保护措施、或者其他转换功能。例如当两个网络有不同的打包需要时,网关服务器16从一个网络所使用的格式中将分组以第二网络所使用的格式重新打包,反之亦然。
网关客户机服务器16在分布式服务架构14和启用非客户机12的通信设备1202之间提供中间媒介。在网络14上,网关客户机服务器16代表设备1202执行下列项的功能:(i)MCMS应用20(包括MCMS、并且可选地包括MCMS-S和/或MCMS-C)以及(ii)模块84和PIMB 85的存储、流和持久存储操作。特别地,网关客户机服务器执行“PIMB读取器和再现”功能(图8E)、“PIMB写入器净接收”功能(图8D)、“PIMB写入器编码接收”功能(图8B)、以及“PIMB读取器传输”功能(图8C),这使得会话媒体被存储在服务器16的PIMB 85中,所述服务器16代表启用非客户机12的设备1202。启用非客户机12的设备的例子可以包括标准的座机或PSTN电话、移动或卫星电话、战术无线电装置、或者任何其他已知的传统通信设备。另外,启用非客户机12的通信设备1202可以包括非传统的设备,其被特别地制造为与网关客户机服务器16协同操作。关于网关客户机服务器的更多细节,可参看均在2008年9月8号提交的序列号为12/206,537和12/206,548的美国申请,其每个的题目均为“Telecommunication and Multimedia Management Method and Apparatus”,此处出于所有目的将这两者并入。
用户通过基础网络18连接到网络14的接入点被称为接入服务器16。对于用户而言,该接入服务器16可以改变。例如,用户可以从网络14断开连接,移动到新的物理位置,并随后通过不同的服务器16重新连接。用户的接入服务器16也可以从一个接入服务器16迁移到另一个接入服务器。例如,当乘车旅行时,如果用户具有通过基础网络18的第一节点到网络14的无线接入,则当用户移动到无线网络18的第一节点范围以外并进入无线网络18的第二节点范围内时,可以改变接入服务器16。如果对于基础无线网络18的两个节点来说,到网络14的接入点不同,则对于该用户接入服务器16将会改变。通过优化用户和网络14上其他节点之间的通信,用户通过任意接入服务器16接入网络14的能力改进了网络效率。
目录服务器16提供关于网络12中其余部分的路由信息。当用户加入网络14时,则接入服务器(i)通知目录服务器16该用户已经加入,并且(ii)将其自身识别为关于该用户的接入服务器16。目录服务器16为所有连接到所述网络14的用户将(i)和(ii)连同(iii)每个用户的归属服务器1202一起整合到目录中。目录服务器16被不断地更新。当用户加入或离开网络,或者当接入服务器16和/或关于用户的归属服务器16改变时,目录被更新。以这种方式,目录总是能提供关于路由消息和其他网络业务的当前信息或最新信息,所述其他网络业务在网络14的用户之间,或是在通过网关服务器16位于其他网络上的用户之间。
如果用户的归属服务器16和接入服务器16相同,则该服务器16持久存储由该用户传输或接收的所有媒体。对于为了传输而由用户创建的媒体,以及对于发送给用户的媒体,所述服务器16执行上面关于图8F所描述的功能,其中包括PQM(图9A到9C)以及PQM(图9D到9F)的操作。以这种方式,由用户传输和接收的媒体的拷贝被持久存储在用户的归属服务器16上。此外,任何小于完整拷贝或完全拷贝的、遗失或损坏的媒体拷贝最终通过PQM 26g和DQM 28g的补充操作被接收。
如果对于用户来说,接入服务器16不是归属服务器16,则被传输和接收的媒体至少被临时存储在接入服务器16上,这是使用了相对于图8F所描述的相同的操作,其中包括PQM(图9A到9C)和PQM(图9D到9F)的操作。在一个实施方式中,媒体仅仅被存储在接入服务器16上,直到确认了媒体被交付并且持久存储到用户的归属服务器16和设备13上为止。在可选择的实施方式中,甚至当媒体的交付被确认之后,该媒体都会被持久存储在接入服务器16和归属服务器16上。取决于应用和网络拓扑,在确认了媒体被交付到归属服务器16和/或设备13上之后,可以使用不同的方案在接入服务器16上删除媒体。
归属服务器16还负责在其档案库89中归档会话的媒体。媒体可以出于许多原因被归档,例如媒体被本地删除之后修复该媒体到设备13,或者在设备13上由用户验证之后将媒体发送到新设备13。
在图12所示的实施方式中,许多个启用客户机12的设备13通过各种接入、归属、以及网关服务器16连接到网络14。此外,启用非客户机12的设备1202还通过网关客户机服务器16连接到所述网络14。如上面所注意到的,每个服务器16可以实现上面所列出功能中的一个或多个。例如,在设备13通过其归属服务器16连接到网络14的情况下,则服务器执行双重角色,即为关于该设备的接入服务器和归属服务器。在设备13通过服务器16而非其归属服务器16接入网络14的情况下,则关于该设备的接入服务器和归属服务器16是不同的。在另外的其它情况下,归属服务器和/或接入服务器16还可以作为网关服务器、网关客户机服务器以及和/或目录服务器运行。无论服务器16被配置成实现哪些功能,当服务器16充当在网络14上用于传输消息的中继时,所述服务器16存储并且传输媒体,如上面关于图8F所描述的,其中包括执行PQM(图9A到9C)和PQM(图9D到9F)的操作(除了可能仅被配置作为目录服务器的服务器16)。无论执行了哪个功能或哪些功能,所述服务器16中的每一个还是多客户共享的,这意味着它们每个都能够同时支持或服务于多个用户。
应当注意的是,服务器16的特定布置与图12中所描述和显示的功能或一些功能都仅仅是示例性的,并且是出于图解说明的目的而被提供的。在真实的实施方式中,服务器16的数目,由每个服务器16执行的一个或多个功能,以及分布式网络14的真实配置可以是以近似无限多的变化数量来变化。
在可选择的实施方式中,网络14可以被配置而不带有专用的目录服务器16。在这些实施方式中,接入服务器16被配置成假定有目录或路由功能中的一些或全部。网络14里的接入服务器16中的一些或全部可以被配置成维持路由表,其中包括“默认”路由,用于对其他的接入服务器和归属服务器16以及用户进行定位并发送消息。
在另一个实施方式中,对于其他的设备13或1202,启用客户机12的设备13可以充当服务器16。例如,启用基于交通工具的客户机12的无线电设备13可以是关于该交通工具驾驶者的客户机、以及关于附近所有无线电装置的服务器。在另一个例子中,计算机可以不仅仅充当关于本地用户的客户机12,还可以作为关于启用其他客户机12的计算机的服务器,所述计算机连接到本地网络。
在另一些实施方式中,当到归属服务器16和/或目录服务器16的网络连接降质或不可用时,接入服务器16可以提供到归属服务器16和/或目录服务器16的代理接入。通过定位适当的归属服务器、其他接入服务器和启用客户机的设备13,并且映射启用客户机的设备12与服务器16之间最有效的路径,接入服务器还提供当前优化的路由信息。
K.网络路由
当会话发生在各种启用客户机12的设备13和/或启用非客户机12的设备1202之间时,各个消息的典型传输是从一个或多个设备13和/或1202到一个或多个服务器16,在分布式网络14上从服务器16到服务器16,然后再从服务器16到一个或多个设备13和/或1202。以Vox分组95形式的消息横穿网络14,这些消息被嵌入由基础网络或一些基础网络所使用的任何分组类型中。在各种实施方式中,基础网络可以依赖互联网协议(IP)、实时协议(RTP)、或者任何其他的协议类型,以用于网络业务的传输。在在分布式架构14上路由各个消息时,优选地使用在减小业务和延迟的同时维持了简单性的程序。
参考图13,所示为简单的分布式网络14,其用于示出在本发明的一个实施方式中所使用的路由程序。在这个实施方式中,网络14包括标签为“接入服务器1”和“接入服务器2”的接入服务器16、启用客户机12的设备13(1)到13(5)、许多归属服务器16、以及目录服务器16。设备13(1)到13(4)通过接入服务器1连接到所述网络14。设备13(5)通过接入服务器2连接到所述网络14。归属服务器1、2和5分别是关于设备13(1)、13(2)、和13(5)的归属服务器16。设备13(3)和13(4)共享归属服务器16。也为第六设备13(6)提供第六归属服务器16,在这个例子中,因为当前第六设备13(6)与网络14断开连接,所以故意未将其示出。
当设备13(1)发起与设备13(2)到13(6)的会话时,设备13(1)向接入服务器1发送请求,接入服务器注意到其已经与设备13(2)到13(4)连接。接入服务器1还从目录服务器16请求设备13(5)和13(6)以及关于设备13(1)到13(6)的归属服务器的状态。通过通知接入服务器1设备13(5)通过接入服务器2在线并且设备13(6)不在线,目录服务器16响应。目录服务器16还通知接入服务器1,关于参与者13(1)、13(2)、13(3)到13(4)、13(5)和13(6)的归属服务器分别是归属服务器1、2、3到4、5和6。
当设备13(1)发送与会话相关的消息时,这些消息被发送到接入服务器1。接下来,这些消息被直接转发至设备13(2)到13(4),这是因为这些设备都被连接到接入服务器1。另外,接入服务器1注意到剩余的传输目的地,特别是归属服务器5和6以及设备13(5),具有相同的下一中继,该中继为接入服务器2。因为所有这些目的地都共享相同的下一中继,所以接入服务器1向接入服务器2发送每个消息的仅单个拷贝。然后这些消息由接入服务器2发送到设备13(5)、归属服务器5和归属服务器6。归属服务器1到6中的每一个分别保存关于设备13(1)到13(6)的消息。当设备13(6)上线时,归属服务器6向设备13(6)转发消息,使该设备能够接收会话的媒体。如果在网络14上,设备13(5)和13(6)具有不同的下一中继,则将消息的仅单个拷贝发送到每个下一中继。由任何其他设备13(2)到13(6)所生成的消息以与上面描述相类似的方式通过网络14被路由。
上面所描述的路由程序提供了许多优势。通过经由相同接入服务器在由相同接入服务器16所识别的设备13之间直接路由消息,减小了网络业务和延迟。对照向网络中共享相同下一中继的多个接收者转发多个拷贝的方式,由于转发消息的仅单个拷贝,再次减少了网络业务和延迟。通过将沿相同中继到多个接收者的消息传输合并为单个传输,并且仅当有多个下一中继时才复制或“发散”消息,显著地减小了总网络业务和延迟。
在可选择的实施方式中,接入服务器16可以被配置成允许通过相同的接入服务器16连接到网络14的设备13直接相互通信。以这个实施方式,在两个(或更多)设备13之间直接发送的任何消息仍要被发送到公共接入服务器16,接下来该公共接入服务器16向关于相同设备13的归属服务器转发这些消息。这种布置提供了关于连接到相同接入服务器16的设备13之间的通信在延迟方面的改善,但代价是增加了设备13和接入服务器16这两者上的复杂度。因为所有消息仍必须被发送到接入服务器16,所以实质上加倍了网络业务。
L.分布式服务架构上的实时同步
使用服务器16的一个优势是能够维持在分布式网络14上被传输的媒体的接近实时同步。参考图14,所示为网络14的例子,该网络14被配置成在一个或多个网络18(未显示)的顶端。在这个例子中,两个启用客户机的设备13(1)、13(2)和启用非客户机12的设备1202通过网络14参与语音(并可选择地为其他媒体类型的)会话。网络14包括接入服务器16(1)和16(2),它们分别提供了关于设备13(1)和13(2)的网络接入。启用非客户机12的设备1202通过被配置成网络客户机的服务器16连接到网络14。另外,提供了目录服务器16。也许除了可以有选择地包括模块84和PIMB85的目录服务器16之外,服务器16中的每一个都包括存储和流模块84以及PIMB 85。
当会话的消息在网络上的每个发送和接收对之间传输时,(关于设备13(1)和13(2)的)存储和流模块24以及(关于服务器16中的每一个的)存储和流模块84运行按上面关于图11所描述的序列。其结果是,会话的媒体被同步地存储在传统设备1202与设备13(1)和13(2)之间的网络14上的每个服务器16中继的PIMB 85中。所述媒体还被同步地存储在设备13(1)和13(2)的PIMB 30中。
在一个实施方式中,媒体被同步并持久地存储在网络14上的每个服务器16中继里。在一个可选择的实施方式中,在网络14上,会话的媒体被持久地仅存储在关于传统设备1202的网关客户机服务器16上、和分别关于设备13(1)和13(2)的归属服务器16(1)和16(2)上,而不在接入服务器16(1)和16(2)上。在后一个实施方式中,一旦确认了媒体已经被分别持久地存储在归属服务器16(1)和16(2)和/或设备13(1)和13(2)上,则媒体不再被存储在接入服务器16(1)和16(2)上。
当媒体通过网络14从其源迁移到目的地时,该媒体在每个发送接收对之间被同步。网络上的每个节点,包括启用客户机的设备13(1)、13(2)和每个媒介服务器16,被“逐中继地”同步。对照只同步发送和接收通信设备13(i)和13(2),通过执行网络14上的每个发送接收中继之间的媒体的同步,增加了在网络14上的媒体的弹性和冗余度。
虽然网络14上的同步已经在语音会话的背景下被描述,但应当理解的是,所述会话的媒体可以含有任何媒体类型,其中包括语音、视频、GPS信息、或其他传感器数据。此外,会话不必如上面所描述的只限于三个参与者。无论有多少参与者,都会发生会话的媒体的接近实时同步。而且媒体也没有必要在会话的背景下被传输。与会话无关的媒体能够在网络14上被同步。最后,还应当理解的是,图14中所示出的特定网络配置只不过是说明性的,其用于解释网络上的实时同步。该所示特定配置也不应被解释为以任何方式限制。
应当注意的是,在上面关于图8A到8F、图9A到9F、和图10到14的讨论中,媒体被描述为附有以基于时间的格式被索引。应当理解的是,附有时间索引的媒体是示例性的,并且不应被解释为限制本发明。相反,可以使用任何索引格式,例如通过比特或字节序列索引、散列类型索引、二叉树类型索引、基于文件目录索引、或者其任何组合。所以术语“索引”应当被广泛地解释为覆盖任何索引方案。
M.客户机和服务器硬件
参考图15A,其示出说明用于储存并执行客户机应用程序12的设备13的硬件的结构图140。硬件包括CPU 142、主存储器144和大容量存储器146。如在本领域中公知的,客户机应用程序12被装入和储存在主存储器144和大容量存储器146中,并由CPU 142执行。
参考图15B,其示出说明用于储存并执行服务器应用程序78的服务器16(或服务器1202到1210中的任何一个)的硬件的结构图150。硬件包括CPU 152、主存储器154、大容量存储器156和档案库89。如在本领域中公知的,服务器应用程序78被加载和储存在主存储器154和大容量存储器156中,并由CPU 152执行。如上所述,一个或多个用户的附有索引的媒体有效载荷储存在档案库89中。
虽然为了方便,上面以单数形式描述了很多部件和过程,但本领域的技术人员应认识到,多个部件和重复的过程也可用于实践这里所述的系统和方法的技术。进一步地,虽然参考其中的特定实施方式特别示出和描述了本发明,但本领域技术人员应理解,在所公开的实施方式的形式和细节中可进行变化,而不偏离本发明的实质或范围。例如,本发明的实施方式用于各种部件,且不应被限制到上面提到的部件。因此,这意味着本发明应被解释为包括落在本发明的实质和范围内的所有变形和等效形式。