[go: up one dir, main page]

CN106464510A - 高效地混合voip数据 - Google Patents

高效地混合voip数据 Download PDF

Info

Publication number
CN106464510A
CN106464510A CN201580010220.5A CN201580010220A CN106464510A CN 106464510 A CN106464510 A CN 106464510A CN 201580010220 A CN201580010220 A CN 201580010220A CN 106464510 A CN106464510 A CN 106464510A
Authority
CN
China
Prior art keywords
user
media
users
time interval
mixed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201580010220.5A
Other languages
English (en)
Inventor
R·E·奥齐
R·Z·斯派尔
R·L·理查森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN106464510A publication Critical patent/CN106464510A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1827Network arrangements for conference optimisation or adaptation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • H04L51/066Format adaptation, e.g. format conversion or compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/10Multimedia information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/56Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities
    • H04M3/568Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities audio processing specific to telephonic conferencing, e.g. spatial distribution, mixing of participants
    • H04M3/569Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities audio processing specific to telephonic conferencing, e.g. spatial distribution, mixing of participants using the instant speaker's algorithm
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)

Abstract

用于监测多个用户之间的通信会话的方法、计算机程序产品和计算机系统。确定是否所述多个用户中的至少两个用户在所述通信会话中发送媒体。如果仅所述多个用户中的第一用户在发送媒体,则将所述媒体经由第一技术传送给所述多个用户。如果所述多个用户中的所述第一用户和第二用户在发送媒体,则将所述媒体经由第二技术传送给所述多个用户。

Description

高效地混合VOIP数据
相关申请
本申请要求于2014年2月24日递交的美国临时申请No.61/943,666的权益,通过引用的方式将该临时申请的内容全部并入本文。
背景技术
通常,传统的IP语音(Voice-Over-IP,VoIP)系统可能一直是主要围绕对等(P2P)通信(其可能一直被期望是在稳定的宽带互联网连接上运行的)来构建的。VoIP会议也可以包括N个端点(例如,通信会话中的两个以上的计算设备)。一些VoIP系统可以采用例如网格方案、中枢辐射(hub-and-spoke)模型方案以及其它方案。这些示例方案中的每一个可能仍然带来不太理想的用户体验。
发明内容
在一种示例实现方式中,一种由一个或多个计算设备执行的方法可以包括但不限于:由计算设备监测多个用户之间的通信会话。可以确定是否所述多个用户中的至少两个用户在所述通信会话中发送媒体。如果仅所述多个用户中的第一用户在发送媒体,则可以将所述媒体经由第一技术传送给所述多个用户。如果所述多个用户中的所述第一用户和第二用户在发送媒体,则可以将所述媒体经由第二技术传送给所述多个用户。
可以包括下面的示例特征中的一个或多个示例特征。确定是否所述多个用户中的所述至少两个用户在所述通信会话中发送媒体可以包括:确定在预定时间间隔内,是否所述多个用户中的所述至少两个用户在所述通信会话中同时发送媒体。将所述媒体经由所述第一技术传送给所述多个用户可以包括:将包含所述媒体的至少一部分的分组传送给所述多个用户,而不对所述分组进行解码和编码。将所述媒体经由所述第二技术传送给所述多个用户可以包括:等待预定数量的时间间隔;并且可以包括:对在所述预定数量的时间间隔期间从所述第一用户和所述第二用户接收的所述媒体进行混合。可以延迟将所混合的媒体发送给所述多个用户,直到所述预定数量的时间间隔之后。可以在所述预定数量的时间间隔之后的下一时间间隔期间,将所混合的媒体发送给所述多个用户。在所述下一时间间隔中发送给所述多个用户的所混合的媒体可以包括:多个时间间隔的、在单个时间间隔期间发送的多个分组中包含的媒体。对从所述第一用户和所述第二用户接收的所述媒体进行混合可以包括:当将所混合的媒体传送给所述第一用户时,在所混合的媒体中排除从所述第一用户发送的所述媒体。当仅所述第一用户和所述第二用户连接到所述通信会话时,可以将所述媒体经由所述第一技术传送给所述第一用户和所述第二用户。将所述媒体经由所述第二技术传送给所述多个用户可以包括:针对少于所述多个用户中的每个用户来执行编码操作。将所述媒体经由所述第二技术传送给所述多个用户可以包括:发送多信道媒体分组,其中每个信道是相应用户的编码的和加密的媒体流。
在另一种示例实现方式中,一种计算系统包括处理器和存储器,所述处理器和存储器被配置为执行可以包括但不限于以下各项的操作:监测多个用户之间的通信会话。可以确定是否所述多个用户中的至少两个用户在所述通信会话中发送媒体。如果仅所述多个用户中的第一用户在发送媒体,则可以将所述媒体经由第一技术传送给所述多个用户。如果所述多个用户中的所述第一用户和第二用户在发送媒体,则可以将所述媒体经由第二技术传送给所述多个用户。
可以包括下面的示例特征中的一个或多个示例特征。确定是否所述多个用户中的所述至少两个用户在所述通信会话中发送媒体可以包括:确定在预定时间间隔内,是否所述多个用户中的所述至少两个用户在所述通信会话中同时发送媒体。将所述媒体经由所述第一技术传送给所述多个用户可以包括:将包含所述媒体的至少一部分的分组传送给所述多个用户,而不对所述分组进行解码和编码。将所述媒体经由所述第二技术传送给所述多个用户可以包括:等待预定数量的时间间隔;并且可以包括:对在所述预定数量的时间间隔期间从所述第一用户和所述第二用户接收的所述媒体进行混合。可以延迟将所混合的媒体发送给所述多个用户,直到所述预定数量的时间间隔之后。可以在所述预定数量的时间间隔之后的下一时间间隔期间,将所混合的媒体发送给所述多个用户。在所述下一时间间隔中发送给所述多个用户的所混合的媒体可以包括:多个时间间隔的、在单个时间间隔期间发送的多个分组中包含的媒体。对从所述第一用户和所述第二用户接收的所述媒体进行混合可以包括:当将所混合的媒体传送给所述第一用户时,在所混合的媒体中排除从所述第一用户发送的所述媒体。当仅所述第一用户和所述第二用户连接到所述通信会话时,可以将所述媒体经由所述第一技术传送给所述第一用户和所述第二用户。将所述媒体经由所述第二技术传送给所述多个用户可以包括:针对少于所述多个用户中的每个用户来执行编码操作。将所述媒体经由所述第二技术传送给所述多个用户可以包括:发送多信道媒体分组,其中每个信道是相应用户的编码的和加密的媒体流。
在另一种示例实现方式中,一种计算机程序产品驻留在计算机可读存储介质上,所述计算机可读存储介质具有存储在其上的多个指令。当所述指令被处理器执行时使得所述处理器执行可以包括但不限于以下各项的操作:监测多个用户之间的通信会话。可以确定是否所述多个用户中的至少两个用户在所述通信会话中发送媒体。如果仅所述多个用户中的第一用户在发送媒体,则可以将所述媒体经由第一技术传送给所述多个用户。如果所述多个用户中的所述第一用户和第二用户在发送媒体,则可以将所述媒体经由第二技术传送给所述多个用户。
可以包括下面的示例特征中的一个或多个示例特征。确定是否所述多个用户中的所述至少两个用户在所述通信会话中发送媒体可以包括:确定在预定时间间隔内,是否所述多个用户中的所述至少两个用户在所述通信会话中同时发送媒体。将所述媒体经由所述第一技术传送给所述多个用户可以包括:将包含所述媒体的至少一部分的分组传送给所述多个用户,而不对所述分组进行解码和编码。将所述媒体经由所述第二技术传送给所述多个用户可以包括:等待预定数量的时间间隔;并且可以包括:对在所述预定数量的时间间隔期间从所述第一用户和所述第二用户接收的所述媒体进行混合。可以延迟将所混合的媒体发送给所述多个用户,直到所述预定数量的时间间隔之后。可以在所述预定数量的时间间隔之后的下一时间间隔期间,将所混合的媒体发送给所述多个用户。在所述下一时间间隔中发送给所述多个用户的所混合的媒体可以包括:多个时间间隔的、在单个时间间隔期间发送的多个分组中包含的媒体。对从所述第一用户和所述第二用户接收的所述媒体进行混合可以包括:当将所混合的媒体传送给所述第一用户时,在所混合的媒体中排除从所述第一用户发送的所述媒体。当仅所述第一用户和所述第二用户连接到所述通信会话时,可以将所述媒体经由所述第一技术传送给所述第一用户和所述第二用户。将所述媒体经由所述第二技术传送给所述多个用户可以包括:针对少于所述多个用户中的每个用户来执行编码操作。将所述媒体经由所述第二技术传送给所述多个用户可以包括:发送多信道媒体分组,其中每个信道是相应用户的编码的和加密的媒体流。
在附图和下面的描述中阐述了一个或多个示例实现方式的细节。根据描述、附图和权利要求书,其它特征和优点将变得显而易见。
附图说明
图1是根据本公开内容的一个或多个示例实现方式的耦合到分布式计算网络的传输过程的示例示意图;
图2是根据本公开内容的一个或多个示例实现方式的图1的客户端电子设备的示例示意图;
图3是根据本公开内容的一个或多个示例实现方式的图1的传输过程的示例流程图;以及
图4是根据本公开内容的一个或多个示例实现方式的图1的传输过程的两个示例传输场景的示例示意图。
各个附图中的相似的参考符号指示相似的元素。
具体实施方式
系统概述:
如本领域技术人员将认识到的,本公开内容可以被体现为方法、系统或计算机程序产品。因此,本公开内容可以采取完全硬件实现方式、完全软件实现方式(包括固件、驻留软件、微代码等)或结合软件和硬件方面的实现方式的形式,所述形式通常在本文中可以全部被称为“电路”、“模块”或“系统”。此外,本公开内容可以采取计算机可用存储介质上的计算机程序产品的形式,所述计算机可用存储介质具有体现在介质中的计算机可用程序代码。
可以利用任何适当的计算机可用介质或计算机可读介质(或媒体)。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可用存储介质或计算机可读存储介质(包括与计算设备或客户端电子设备相关联的存储设备)可以是例如但不限于:电、磁、光、电磁、红外或半导体系统、装置、设备、或前述各项的任何适当组合。计算机可读存储介质的更具体的示例(非排他列表)可以包括以下各项:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式压缩盘只读存储器(CD-ROM)、光存储设备、数字多功能光盘(DVD)、静态随机存取存储器(SRAM)、存储棒、软盘、机械编码设备(诸如穿孔卡或其上记录有指令的槽中的凸起结构)、诸如支持互联网或内联网的介质、或磁存储设备。注意,计算机可用介质或计算机可读介质甚至可以是在其上存储、扫描、编译、解释或否则如果需要可以以适当的方式处理,并且随后存储在计算机存储器中的程序的适当的介质。在本公开内容的上下文中,计算机可用存储介质或计算机可读存储介质可以是任何有形介质,其可以包含或存储程序以供或结合指令执行系统、装置或设备来使用。
计算机可读信号介质可以包括基带中的或作为载波的一部分的传播数据信号,所述传播数据信号具有体现在其中的计算机可读程序代码。这样的传播信号可以采取多种形式,包括但不限于:电磁、光或其任何适当的组合。计算机可读程序代码可以使用任何适当的介质来发送,包括但不限于:互联网、电线、光缆、RF等。计算机可读信号介质可以是具有如下特征的任何计算机可读介质:其不是计算机可读存储介质并且能够传送、传播或传输程序以供或结合指令执行系统、装置或设备使用。
用于执行本公开内容的操作的计算机程序代码可以是汇编程序指令、指令集架构(ISA)指令、机器指令、机器依赖的指令、微代码、固件指令、状态设置数据或以一种或多种编程语言(包括面向对象的编程语言,诸如Smalltalk、C++等等)的任何组合编写的源代码或对象代码。Java和所有基于Java的商标和标志是Oracle和/或其子公司的商标或注册商标。然而,用于执行本公开内容的操作的计算机程序代码还可以以传统的过程式编程语言(诸如“C”编程语言、PASCAL或类似的编程语言)以及脚本语言(诸如Javascript、PERL或Python)来编写。程序代码可以完全地在用户的计算机上、部分地在用户的计算机上、作为单独的软件包、部分地在用户的计算机上和部分地在远程计算机上或者完全地在远程计算机或服务器上执行。在后一种场景中,远程计算机可以通过局域网(LAN)或广域网(WAN)、或者可以实现到外部计算机的连接(例如,使用互联网服务提供商通过互联网)连接到用户的计算机。在一些实现方式中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(FPGA)、微控制器单元(MCU)或可编程逻辑阵列(PLA))可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令/代码,以使电子电路个性化,以便执行本公开内容的方面。
附图中的流程图和框图示出了根据本公开内容的各种实现方式的装置(系统)、方法和计算机程序产品的可能的实现方式的架构、功能和操作。将要理解的是,流程图和/或框图中的每个框、以及流程图和/或框图中的框的组合可以表示模块、片段或代码部分(其包括用于实现指定的逻辑功能/动作的一个或多个可执行计算机程序指令)。可以将这些计算机程序指令提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器来产生机器,使得计算机程序指令(其经由计算机或其它可编程数据处理装置的处理器执行)创建用于实现在流程图和/或框图中的一个或多个框或其组合中指定的功能/动作中的一个或多个功能/动作的能力。应当注意的是,在一些替代的实现方式中,在框中提及的功能可以不按附图中提及的顺序来发生。例如,被示为连续的两个框事实上可以基本并发地执行,或者根据涉及的功能,有时可以倒序地执行框。
这些计算机程序指令还可以存储在计算机可读存储器中,所述计算机可读存储器可以指示计算机或其它可编程数据处理装置以特定方式来运作,使得存储在计算机可读存储器中的指令产生制品,其包括实现在流程图和/或框图中的一个或多个框或其组合中指定的功能/动作的指令单元。
计算机程序指令还可以被加载到计算机或其它可编程数据处理装置上,以使得在计算机或其它可编程装置上执行(不必以特定次序)一系列可操作步骤,以产生计算机实现的过程,使得指令(其在计算机或其它可编程装置上执行)提供用于实现在流程图和/或框图中的一个或多个框或其组合中指定的功能/动作(不必以特定次序)的步骤。
现在参照图1,示出了可以驻留在计算机(例如,计算机12)上并且可以由计算机执行的传输过程10,所述计算机可以连接到网络(例如,网络14)(例如,互联网或局域网)。计算机12(和/或下文提及的客户端电子设备中的一个或多个客户端电子设备)的示例可以包括但不限于:个人计算机、膝上型计算机、移动计算设备、服务器计算机、一系列服务器计算机、大型计算机或计算云。计算机12可以执行操作系统,例如但不限于:OSRed或定制操作系统(在美国、其它国家或两者,Microsoft和Windows是Microsoft公司的注册商标;在美国、其它国家或两者,Mac和OS X是Apple公司的注册商标;在美国、其它国家或两者,Red Hat是Red Hat公司的注册商标;以及在美国、其它国家或两者,Linux是Linus Torvalds的注册商标)。
如将在下文更加详细地论述的,传输过程10可以监测多个用户之间的通信会话。可以确定是否多个用户中的至少两个用户在通信会话中发送媒体(例如,分组P 17)。如果仅多个用户中的第一用户在发送媒体,则可以将媒体经由第一技术传送给多个用户。如果多个用户中的第一用户和第二用户在发送媒体,则可以将媒体经由第二技术传送给多个用户。
传输过程10的指令集和子例程(其可以存储在耦合到计算机12的存储设备16上)可以由包括在计算机12内的一个或多个处理器(未示出)和一个或多个存储器架构(未示出)来执行。存储设备16可以包括但不限于:硬盘驱动器;闪盘驱动器、磁带驱动器;光驱;RAID阵列;随机存取存储器(RAM);以及只读存储器(ROM)。
网络14可以连接到一个或多个辅网络(例如,网络18),辅网络的示例可以包括但不限于例如:局域网;广域网;或内联网。
计算机12可以包括诸如数据库(例如,关系数据库、面向对象的数据库、存储数据库等)的数据存储,并且可以位于任何适当的存储器位置(诸如耦合到计算机12的存储设备16)以内。遍及本公开内容描述的任何数据可以存储在数据存储中。在一些实现方式中,计算机12可以利用数据库管理系统(诸如但不限于“My Structured Query Language”),以便提供对一个或多个数据库(诸如上文提及的关系数据库)的多用户访问。数据存储还可以是定制数据库(诸如,例如平面文件数据库或XML数据库)。还可以使用任何其它形式的数据存储机构和/或组织。传输过程10可以是数据存储的组件,其可以是与上文提及的数据存储接口的独立应用和/或经由客户端应用22、24、26、28访问的小应用程序/应用。上文提及的数据存储可以全部或部分地以云计算拓扑来分布。以这种方式,计算机12和存储设备16可以指代多个设备,所述多个设备也可以分布在整个网络中。
计算机12可以执行合作应用(例如,合作应用20),合作应用的示例可以包括但不限于:网络会议应用、视频会议应用、IP语音应用、IP视频应用、即时消息(IM)/“聊天”应用、短消息服务(SMS)/多媒体消息服务(MMS)应用或者允许虚拟会议和/或远程合作的其它应用。可以经由客户端应用22、24、26、28来访问传输过程10和/或合作应用20。传输过程10可以是独立应用、或者可以是可以与合作应用20、合作应用20的组件、和/或客户端应用22、24、26、28中的一个或多个客户端应用进行交互和/或在合作应用20、合作应用20的组件、和/或客户端应用22、24、26、28中的一个或多个客户端应用内执行的小应用程序/应用/脚本/扩展。合作应用20可以是独立应用、或者可以是可以与传输过程10、传输过程10的组件、和/或客户端应用22、24、26、28中的一个或多个客户端应用进行交互和/或在传输过程10、传输过程10的组件、和/或客户端应用22、24、26、28中的一个或多个客户端应用内执行的小应用程序/应用/脚本/扩展。客户端应用22、24、26、28中的一个或多个客户端应用可以是独立应用、或者可以是可以与传输过程10和/或合作应用20的组件进行交互和/或在传输过程10和/或合作应用20的组件内执行的和/或是传输过程10和/或合作应用20的组件的小应用程序/应用/脚本/扩展。客户端应用22、24、26、28的示例可以包括但不限于:网络会议应用、视频会议应用、IP语音应用、IP视频应用、即时消息(IM)/“聊天”应用、短消息服务(SMS)/多媒体消息服务(MMS)应用、或者允许虚拟会议和/或远程合作的其它应用、标准和/或移动网页浏览器、电子邮件客户端应用、文本和/或图形用户界面、定制的网页浏览器、插件、应用编程接口(API)或定制应用。客户端应用22、24、26、28的指令集和子例程(其可以存储在耦合到客户端电子设备38、40、42、44的存储设备30、32、34、36上)可以由并入到客户端电子设备38、40、42、44中的一个或多个处理器(未示出)和一个或多个存储器架构(未示出)来执行。
存储设备30、32、34、36可以包括但不限于:硬盘驱动器;闪盘驱动器、磁带驱动器;光驱;RAID阵列;随机存取存储器(RAM);以及只读存储器(ROM)。客户端电子设备38、40、42、44(和/或计算机12)的示例可以包括但不限于:个人计算机(例如,客户端电子设备38)、膝上型计算机(例如,客户端电子设备40)、具有智能/数据功能的蜂窝电话(例如,客户端电子设备42)、笔记本计算机(例如,客户端电子设备44)、平板计算机(未示出)、服务器(未示出)、电视机(未示出)、智能电视机(未示出)、媒体(例如,视频、图像等)、捕捉设备(未示出)、以及专用网络设备(未示出)。客户端电子设备38、40、42、44可以执行操作系统,操作系统的示例可以包括但不限于:AndroidtmOSRed或定制操作系统。
客户端应用22、24、26、28中的一个或多个客户端应用可以被配置为实现传输过程10的功能中的一些或全部功能(并且反之亦然)。因此,传输过程10可以是纯粹地服务器侧应用、纯粹地客户端侧应用、或者由客户端应用22、24、26、28中的一个或多个客户端应用和/或传输过程10合作执行的混合服务器侧/客户端侧应用。
客户端应用22、24、26、28中的一个或多个客户端应用可以被配置为实现合作应用20的功能中的一些或全部功能(并且反之亦然)。因此,合作应用20可以是纯粹地服务器侧应用、纯粹地客户端侧应用、或者由客户端应用22、24、26、28中的一个或多个客户端应用和/或合作应用20合作执行的混合服务器侧/客户端侧应用。由于单独地或以任何组合的方式采用客户端应用22、24、26、28中的一个或多个客户端应用、传输过程10和合作应用20可以实现相同功能中的一些或全部功能,所以对经由客户端应用22、24、26、28中的一个或多个客户端应用、传输过程10、合作应用20或其组合来实现这样的功能的描述、以及任何所描述的客户端应用22、24、26、28中的一个或多个客户端应用、传输过程10、合作应用20或其组合之间的用于实现这样的功能的交互应当仅被示为是示例,而不是对本公开内容的范围进行限制。
用户46、48、50、52可以直接通过网络14或通过辅网络18访问计算机12和传输过程10(例如,使用客户端电子设备38、40、42、44中的一个或多个客户端电子设备)。此外,计算机12可以通过辅网络18连接到网络14,如利用虚链接线54示出的。传输过程10可以包括一个或多个用户界面(诸如浏览器和文本用户界面或图形用户界面),用户46、48、50、52可以通过所述一个或多个用户界面来访问传输过程10。
各个客户端电子设备可以直接地或间接地耦合到网络14(或网络18)。例如,客户端电子设备38被示为经由硬连线网络连接直接地耦合到网络14。此外,客户端电子设备44被示为经由硬连线网络连接直接地耦合到网络18。客户端电子设备40被示为经由在客户端电子设备40与无线接入点(即,WAP)58之间建立的无线通信信道56无线地耦合到网络14,所述无线接入点58被示为直接地耦合到网络14。WAP 58可以是例如能够在客户端电子设备40与WAP 58之间建立无线通信信道56的IEEE 802.11a、802.11b、802.11g、和/或蓝牙tm设备。客户端电子设备42被示为经由在客户端电子设备42与蜂窝网络/桥路62之间建立的无线通信信道60无线地耦合到网络14,所述蜂窝网络/桥路62被示为直接地耦合到网络14。
IEEE 802.11x规范中的一些或全部规范可以使用以太网协议和具有冲突避免的载波侦听多路访问(即,CSMA/CA)来进行路径共享。各种802.11x规范可以使用例如相移键控(即,PSK)调制或补码键控(即,CCK)调制。蓝牙tm是电信产业规范,其允许例如移动电话、计算机、智能电话和其它电子设备使用短距离无线连接来互连。也可以使用其它形式的互连(例如,近场通信(NFC))。
还参照图2,示出了客户端电子设备38的示意图。虽然在该图中示出了客户端电子设备38,但是这仅是用于说明性的目的,并且不旨在作为本公开内容的限制,这是因为其它配置是可能的。例如,能够全部或部分地执行传输过程10的任何计算设备可以代替图2中的客户端电子设备38,所述任何电子设备的示例可以包括但不限于:计算机12和/或客户端电子设备40、42、44。
客户端电子设备38可以包括处理器和/或微处理器(例如,微处理器200),所述处理器和/或微处理器被配置为例如处理数据和执行上文提及的代码/指令集和子例程。微处理器200可以经由存储适配器(未示出)耦合到上文提及的存储设备(例如,存储设备30)。I/O控制器(例如,I/O控制器202)可以被配置为将微处理器200与各种设备(诸如键盘206、指向/选择设备(例如,鼠标208)、定制设备(例如,设备215)、USB端口(未示出)以及打印机端口(未示出))耦合。显示器适配器(例如,显示器适配器210)可以配置为将显示器212(例如,CRT或LCD显示器)与微处理器200耦合,而网络控制器/适配器214(例如,以太网适配器)可以被配置为将微处理器200耦合到上文提及的网络14(例如,互联网或局域网)。
通常,传统的IP语音(VoIP)系统可能一直是主要围绕对等(P2P)通信(其可能一直被期望是在稳定的宽带互联网连接上运行的)来构建的。P2P通信的一个示例优点可能是其可能不需要对音频分组进行混合或服务器交互(例如,在通常示例情况下(其中两个端点可以直接地连接),使服务能够很好地缩放,这是因为可能仅需要帮助促进初始通信,而从那以后没有进一步的要求)。
VoIP会议也可以包括N个端点(例如,通信会话中的两个以上的计算设备)。一些VoIP系统可以采用网格方案(例如,其中客户端被构建为处置N个输入流)。该示例方案在带宽方面可能是低效的,因而可能不适于大规模会议。替代示例方案可以采用中枢辐射模型方案(例如,其中全部端点可以创建与中央服务的P2P连接)。该服务可以负责对来自全部端点的输入进行混合并且为每个端点产生单个示出流。该架构在带宽方面可能是更有利的,并且可能更适于大规模会议。
然而,该示例方案在对输入进行混合的同时可能涉及CPU密集型操作,这是因为其可能要求对来自全部N个流的输入进行解码,并且随后针对全部N个流来对输出进行重新编码。因而,操作这样的服务可能被认为是高昂的。普通混合架构在容易抖动的网络连接(这在移动环境中可能是尤其常见的)的情况下可能不是完全理想的。在其中端点以嘈杂(例如,抖动或突发)方式发送媒体的示例情况下,其数据可能不以时间同步的方式来与其它端点正确地混合,这可能带来不太理想的用户体验。
如将在下文更加详细地论述的,传输过程10可以实现用于以如下方式来对来自N个端点(例如,N个计算设备)的VoIP数据进行混合的改进方案:可以使CPU使用最小化,同时以适当的时间同步的方式来对来自全部端点的数据进行混合。在一些实现方式中,结果可能是更好地处置由计算设备(例如,移动计算设备端点)引起的高度可变的网络状况的VoIP会议服务(例如,合作应用20)。因此,传输过程10可以产生被最终用户感觉到的高质量语音流(其具有可能在传统混合架构中经历的最小的砰声(pop)或其它抖动)。在一些实现方式中,可以执行传输10,使得将大多数分组在其到达服务的相同的时间间隔中发送出(例如,经由传输过程10的服务可以仅在必要时缓冲,并且不包括任何额外延时)。
如将在下文更加详细地论述的,对于每个计算设备端点,传输过程10可以例如跟踪下一“期望的”实时传输协议(RTP)序列和时间戳值。可以以不同的方式来实现传输过程10,而不总是传送来自给定端点的下一可用RTP分组(如可能在传统VoIP服务的情况下进行的)。
传输过程:
如上文论述的并且还参照至少图3-4,传输过程10可以监测300多个用户之间的通信会话。传输过程10可以确定302是否多个用户中的至少两个用户在通信会话中发送媒体。如果仅多个用户中的第一用户在发送媒体,则传输过程10可以将媒体经由第一技术传送304给多个用户。如果多个用户中的第一用户和第二用户在发送媒体,则传输过程10可以将媒体经由第二技术传送306给多个用户。
仅出于示例的目的,假设经由例如传输过程10、合作应用20、客户端应用或其组合来实现多个用户(例如,经由相应的客户端电子设备38、40、42和44的用户46、48、50和52)之间的通信会话(例如,VoIP会话)。在示例中,与上文提及的中枢辐射模型方案(例如,其中一个或多个客户端设备端点可以创建与中央计算设备服务的P2P连接)的一个或多个方面类似,可以在中央计算设备服务(例如,计算机12)处从用户接收媒体(例如,音频和/或视频数据和/或其它数据/信息)。在该示例中,经由计算机12的传输过程10可以能够对来自一个或多个端点(例如,用户的相应的客户端电子设备)的输入(例如,媒体输入)进行接收、混合/同步,并且为每个相应的用户的客户端电子设备产生单个输出流。将要认识到的是,可以在不脱离本公开内容的情况下使用其它方案。因而,对类似的中枢辐射模型方案的描述应当仅被认为是示例,而不是限制本公开内容的范围。
在一些实现方式中,传输过程10可以监测300多个用户之间的通信会话。例如,传输过程10可以监测300上文提及的在用户46、48、50和52之间经由相应的客户端电子设备38、40、42和44的VoIP会话。在一些实现方式中,传输过程10可以采用可能被传输过程10使用的实时传输协议(或酌情采用其它示例协议),针对例如传输统计(诸如针对同步的时间戳、针对分组丢失和重新排序检测的序列号、有效载荷格式等)、服务质量信息等来监测300VoIP会话。
在一些实现方式中,传输过程10可以确定302是否多个用户中的至少两个用户在通信会话中发送媒体。例如,传输过程10可以使用上文提及的当监测300VoIP会话时收集的信息中的任何信息来确定302VoIP会话中的多个用户中的哪些用户在发送媒体(例如,讲话),以及VoIP会话中的多个用户中的哪些用户未在发送媒体(例如,收听所发送的媒体但是不讲话的消极参与者)。例如,在一些实现方式中,如果传输过程10(例如,经由计算机12)当前在从特定的用户(例如,用户46)接收媒体(由于例如用户46在对着客户端电子设备38的麦克风讲话),则传输过程10可以确定302用户46当前在发送媒体(例如,音频媒体)。相反,如果传输过程10(例如,经由计算机12)当前未在从用户46接收媒体(由于例如用户46未在对着客户端电子设备38的麦克风讲话),则传输过程10可以确定302用户46当前未在发送媒体(例如,音频媒体)。在一些实现方式中,传输过程10可以将类似的技术应用于参与VoIP会话的每个用户,以确定302是否两个或更多用户在发送媒体(例如,音频和/或视频媒体)。
在一些实现方式中,传输过程10可以包括信号分析应用,所述信号分析应用可以能够在用户46何时在讲话与用户46何时未在讲话之间进行区分。例如,假设传输过程使用音量门限信号分析来确定302用户46当前是否在发送媒体。例如,如果从用户46发送的音频媒体满足或超过门限音量,则传输过程10可以确定302用户46在发送媒体。相反,如果从用户46发送的音频媒体未满足或未超过门限音量,则传输过程10可以确定302用户46未在发送媒体。继续关于该示例,传输过程10可以能够使用进一步的信号分析来在达到音量门限的背景噪音(诸如可能与讲话混淆的喷嚏,甚至当用户46未在讲话时)和当用户46在讲话时的实际讲话之间进行区分。将认识到的是,在不脱离本公开内容的范围的情况下,可以使用其它技术来确定302哪些用户在发送媒体。在一些实现方式中,上文提及的信号分析不需要要求对媒体(分组)的解码,这是因为关于音量级的元数据可以与所编码的媒体一起被封装。
例如,在一些实现方式中,确定302是否多个用户中的至少两个用户在通信会话中发送媒体可以包括:传输过程10确定308在预定时间间隔内,是否多个用户中的至少两个用户在通信会话中同时发送媒体。例如,仅出于示例的目的,假设预定时间间隔是例如20ms。在该示例中,如果传输过程10在接收到来自另一个用户(例如,经由客户端电子设备42的用户50)的音频媒体的20ms内接收到来自用户46的音频媒体,则传输过程10可以确定308至少两个用户(例如,用户46和50)在VoIP会话中同时发送媒体。相反,如果传输过程10在接收到先前的来自用户50的音频媒体的20ms之后接收到来自用户46的音频媒体,则传输过程10可以确定308用户46和50在VoIP会话中未同时发送媒体。在一些实现方式中,传输过程10可以分析所接收的媒体的相应的时间戳来作出上文提及的确定308。将认识到的是,在不脱离本公开内容的范围的情况下,可以使用其它技术和/或时间间隔。因而,使用分析时间戳和/或20ms间隔来作出上文提及的确定308应当仅被认为是示例,而不是限制本公开内容的范围。例如,在一些实现方式中,如果在时间+20ms处,传输过程10接收到来自用户46的媒体,并且随后在时间+40ms处,传输过程10接收到来自发送者50的媒体,则传输过程10可以确定308用户46和50在VoIP会话中同时发送媒体,并且在发送来自用户50的媒体之前进行等待,看看是否从用户46接收额外的媒体。在该示例中,传输过程10可以等待,直到从用户46接收到另一个媒体分组为止或者直到已经过去了100ms为止(在+120ms处)。在一些实现方式中,如果在时间+20ms处,传输过程10接收到来自用户46的媒体分组,并且随后在时间+140ms处,接收到来自用户50的媒体分组,则传输过程10可以确定用户46不再讲话,并且立即将从用户50发送的分组发送给其它用户。
在一些实现方式中,传输过程10可以检查正被发送的媒体分组的类型,以作出上文提及的关于用户是否在发送媒体的确定。例如,在一些实现方式中,当用户50不讲话时,客户端电子设备42可以发送一种类型的被称为“舒适噪音(comfort noise,CN)”的分组,而不是不发送媒体。当确定用户50是否在发送媒体时,接收CN分组可以与未接收实际的媒体分组类似等同。
在一些实现方式中,如果仅多个用户中的第一用户在发送媒体,则传输过程10可以将媒体经由第一技术传送304给多个用户。例如,在一些实现方式中,将媒体经由第一技术传送304给多个用户可以包括:传输过程10将包含媒体的至少一部分的分组传送310给多个用户,而不对分组进行解码和编码。例如,并且继续关于上文提及的示例,还假设仅用户46被确定为在VoIP会话中发送媒体。在该示例中,至少部分地基于确定仅用户46在发送媒体,传输过程10可以在计算机12处接收包含从用户46发送的媒体中的至少一些媒体的分组,并且可以避免对分组进行解码和/或编码(和/或缓冲)。传统地,媒体在到达计算机12时可以是已经被编码的,在计算机12处,其可以已经被解码,然后在将其发送给其它用户之前其已经被重新编码。然而,在一些实现方式中,例如,传输过程10可以在VoIP会话中将分组直接地传送310给用户,这可以本质上类似于将VoIP会话转变为CPU密集度较低的单向“广播”(虽然从其它用户接收媒体可以仍然是可能的)。在该示例中,因为单个讲话者可以覆盖绝大多数会议呼叫,所以“转变”可以减少传输过程10的混合服务部分所要求的编码和解码的次数,并且因此可以增加其效率。
在一些实现方式中,当仅第一用户和第二用户连接到通信会话时,可以将媒体经由第一技术发送给第一用户和第二用户。例如,传输过程10可以包括优化情形,其中通信会话中恰好存在两个用户(例如,用户46和50)并且都在发送媒体。在该情况下,与上文描述的第一技术类似,传输过程10可以将用户50的数据发送给用户46,并且反之亦然,而不是对数据进行解码和混合。这可以允许传输过程10减少或避免解码和编码。
在一些实现方式中,如果多个用户中的第一用户和第二用户在发送媒体,则传输过程10可以将媒体经由第二技术传送306给多个用户。将认识到的是,确定302是否一个或多个用户在发送媒体(并且因此确定要应用哪个传送304/306技术)可以是动态地并且实时地确定的。例如,媒体传送技术可以在相同用户之间的相同VoIP会话(和/或一串相关媒体分组)期间的任何时间改变。例如,并且参照至少图4,假设用户46在讲话并且相关联的媒体以例如10个分组(P1A-P10A)的形式被传输过程10接收。在该示例中,还假设用户46被确定302为是相当于(worth of)用户46的媒体的10个分组中的前8个分组期间的唯一讲话者,并且在相当于用户46的媒体的最后两个分组(例如,分组P9A和P10A)期间,用户50在被传输过程10接收的相当于用户50的媒体的两个分组(例如,分组P1B和P2B)期间与用户46同时讲话。因此,在该示例中,可以确定302对于分组P9A和P10A以及分组P1B和P2B,一个以上的讲话者在发送媒体。在该示例中,传输过程10可以确定302在VoIP会话中可以使用第一技术将分组P1A-P8A从计算机12传送304给多个用户,同时确定302在VoIP会话中可以使用第二技术将分组P9A和P10A以及分组P1B和P2B从计算机12传送306给多个用户(下文更加详细地描述的)。因而,可以至少部分地基于上文提及的确定302来将用于传送304/306来自VoIP会话的媒体的技术在传送技术之间动态地改变任意多次。
在一些实现方式中,将媒体经由第二技术传送306给多个用户可以包括:针对少于多个用户中的每个用户来执行322编码操作。例如,假设其中传送混合媒体以执行可能的最小数量的编码的场景。传统地,当针对多个用户来对媒体进行混合时,系统可以针对用户中的每个用户来执行编码操作,无论发送给用户中的一个或多个用户的所混合的媒体是否匹配。相反,传输过程10可以将此减小到最小数量的编码。例如,考虑其中存在4个用户(例如,用户46、50、52和48)的场景。用户46和50在产生媒体,而用户52和48未在产生媒体。在该示例中,传输过程10可以针对3个不同分组来执行322编码操作:
1、可以向用户46发送来自用户50的媒体
2、可以向用户50发送来自用户46的媒体
3、可以向用户52和48发送来自用户46和50的所混合的媒体,这是传输过程10可以节省资源的情况。例如,先前的系统可能已经将该分组编码两次(例如,针对每个用户各编码一次),然而,传输过程10可以仅编码一次。这允许传输过程10将编码的数量限制为产生媒体的用户端点的数量+1,而不是连接到通信会话的用户端点的数量。
在一些实现方式中,将媒体经由第二技术传送306给多个用户可以包括:发送324多信道媒体分组,其中每个信道是相应用户的编码的和加密的媒体流。例如,传输过程10可以通过从不在会议服务上(例如,在计算机12处)对媒体进行解码来提供对端到端通信进行完全地加密,无论产生媒体的用户端点的数量如何。例如,传输过程10可以发送多信道(例如,单声道、立体声等)媒体分组,其中每个信道可以是单独用户的编码的和加密的媒体流。在该示例中,每个用户(经由其相应的客户端电子设备)可以具有用于对媒体信道进行解密和混合的信息,但是计算机12可能不具有这样的信息。
在一些实现方式中,将媒体经由第二技术传送306给多个用户可以包括:传输过程10等待312预定数量的时间间隔,并且对在预定数量的时间间隔期间从第一用户和第二用户接收的媒体进行混合314。传输过程10可以延迟316将所混合的媒体发送给多个用户,直到预定数量的时间间隔之后,并且在预定数量的时间间隔之后的下一时间间隔期间,将所混合的媒体发送318给多个用户,其中在下一时间间隔中发送318给多个用户的所混合的媒体可以包括:多个时间间隔的、在单个时间间隔期间发送的多个分组中包含的媒体。在一些实现方式中,等待312预定数量的时间间隔可以包括等待零个时间间隔。
例如,传输过程10可以针对全部被确定302为在发送媒体的用户来确定下一“期望的”分组是否是可获得的(例如,尚未被接收或被认为丢失)。这样的确定可能涉及监测300/跟踪下一“期望的”RTP序列和时间戳值。在一些实现方式中,如果传输过程10确定下一期望的分组不是可获得的(如所预期的),则传输过程10可以等待312(例如,休眠)至少一个预定时间间隔(例如,均为20ms)并且然后再次尝试。在一些实现方式中,传输过程10可以在确定不再(例如,从任一用户)期望“下一”分组之前,等待312最大数量的时间间隔,例如,5个预定数量的时间间隔(例如,总共100ms)。将要认识到的是,在不脱离本公开内容的范围的情况下,可以使用其它时间间隔值和/或其它数量的预定时间间隔。还将认识到的是,用于确定是否多个用户中的至少两个用户在通信会话中同时发送媒体的预定时间间隔不需要与当延迟将所混合的媒体发送给多个用户时使用的预定时间间隔相同。在一些实现方式中,可以经由传输过程10的用户界面(未示出)来手动地调节间隔。在一些实现方式中,传输过程10可以基于网络连接的所观察的特性来动态地计算延迟。
继续关于上文示例,仅出于示例的目的,假设传输过程10确定302用户46和50当前分别经由客户端电子设备38和42在发送媒体。从时间0到时间4,还假设用户46每个时间间隔(例如,均为20ms)发送一个分组,使得传输过程10从用户46接收(例如,在计算机12处)媒体的4个分组。在该示例中,由于传输过程10不具有来自用户50的下一期望的分组(例如,尽管仍然在100ms时间间隔内),所以传输过程10可以继续等待312并且持有来自用户46的4个分组,并且延迟316将它们发送给VoIP会话中的其它用户。在该示例中,还假设在时间5处,传输过程10接收(例如,在计算机12处)来自用户46的又一个分组和来自用户50的5个分组(例如,在可变网络连接上)。此时(或在100ms时间间隔之后),传输过程10可以对分组1-5进行成功地混合314/同步并且按顺序发送318。参与VoIP会话的每个而用户可以随后接收从传输过程10经由计算机12发送318的5个时间间隔的数据(例如,媒体数据),并且可以(在其相应的客户端电子设备处)播出来自用户46和50的经正确的时间混合的连续的媒体数据流。
在该示例中,通过延迟316发送来自用户46的分组,传输过程10可以确保:使用适当的分组对在预定时间间隔期间分别从用户46和50接收的全部分组进行正确地混合,尽管用户50的网络状况低于标准。在一些实现方式中,延迟可以如零一样低。在一些实现方式中,上文方案可以通过如下操作来帮助补偿由用户50引起的延迟:立即发送出全部分组,而不是每个时间间隔发送一个分组(这可以使延迟加倍)。因此,在一些实现方式中,传输过程10可以当分组一准备好就将其发送318出去(但是以前通常不这样做)。因而,在一些实现方式中,不像传统架构,传输过程10可以在给定时间间隔中发送318多于一个时间间隔的媒体数据。
在一些实现方式中,对从第一用户和第二用户接收的媒体进行混合314可以包括:当将所混合的媒体传送给第一用户时,在所混合的媒体中排除320从第一用户发送的媒体。例如,当传输过程10对媒体进行混合314时,传输过程10可以将发送者的媒体从其输出分组中排除320。例如,如果用户46、50和52在通信会话中,并且用户46和50在产生媒体,则:
1、可以向用户46发送来自用户50的媒体
2、可以向用户50发送来自用户46的媒体
3、可以向用户52发送来自用户46和50的所混合的媒体。
这可以确保每个用户不听到自身的回声回来。
将认识到的是,虽然本公开内容使用音频媒体来描述实现方式,但是在不脱离本公开内容的范围的情况下,可以使用任何类型的媒体(例如,音频媒体、视频媒体或其组合)以及任何其它类型的数据。因而,对媒体(例如,音频媒体)的使用应当仅被示为是示例,而不是对本公开内容的范围进行限制。
本文使用的术语仅是出于描述特定实现方式的目的,而不旨在对本公开内容进行限制。如本文所使用的,单数形式的“一(a)”、“一个(an)”和“所述(the)”旨在也包括复数形式,除非上下文以其它方式明确指示。还将理解的是,当在本说明书中使用术语“包括”和/或“包含”时,指定所陈述的特征、整数、步骤(不必按特定次序)、操作、元素和/或组件的存在,但是不排除一个或多个其它特征、整数、步骤(不必按特定次序)、操作、元素、组件和/或其群组的存在或叠加。
可能在下文权利要求中的相应的结构、材料、动作和全部模块或步骤加功能元素的等效物旨在包括用于结合其它要求保护的元素来执行功能的任何结构、材料或动作,如特别要求保护的。对本公开内容的描述是出于说明和描述的目的而给出的,但是不旨在是详尽的或受限于以所公开的形式的公开内容。在不脱离本公开内容的范围和精神的情况下,许多修改、变形和其任意组合对于本领域普通技术人员将是显而易见的。选择并且描述实现方式,以便最佳地说明本公开内容的原则和实际应用,并且使本领域其它普通技术人员能够将针对具有各种修改的各种实现方式和/或实现方式的任何组合的本公开内容理解为适于所预期的特定使用。
因此已经详细地并且参照其实现方式来描述了本申请的公开内容,将是显而易见的是,在不脱离在所附权利要求书中限定的本公开内容的范围的情况下,修改、变形和实现方式的任意组合(包括任意修改、变形和其组合)是可能的。

Claims (33)

1.一种计算机实现的方法,包括:
由计算设备监测多个用户之间的通信会话;
确定是否所述多个用户中的至少两个用户在所述通信会话中发送媒体;
如果仅所述多个用户中的第一用户在发送媒体,则将所述媒体经由第一技术传送给所述多个用户;以及
如果所述多个用户中的所述第一用户和第二用户在发送媒体,则将所述媒体经由第二技术传送给所述多个用户。
2.根据权利要求1所述的计算机实现的方法,其中,确定是否所述多个用户中的所述至少两个用户在所述通信会话中发送媒体包括:确定在预定时间间隔内,是否所述多个用户中的所述至少两个用户在所述通信会话中同时发送媒体。
3.根据权利要求1所述的计算机实现的方法,其中,将所述媒体经由所述第一技术传送给所述多个用户包括:将包含所述媒体的至少一部分的分组传送给所述多个用户,而不对所述分组进行解码和编码。
4.根据权利要求1所述的计算机实现的方法,其中,将所述媒体经由所述第二技术传送给所述多个用户包括:
等待预定数量的时间间隔;以及
对在所述预定数量的时间间隔期间从所述第一用户和所述第二用户接收的所述媒体进行混合。
5.根据权利要求4所述的计算机实现的方法,还包括:延迟将所混合的媒体发送给所述多个用户,直到所述预定数量的时间间隔之后。
6.根据权利要求5所述的计算机实现的方法,还包括:在所述预定数量的时间间隔之后的下一时间间隔期间,将所混合的媒体发送给所述多个用户。
7.根据权利要求6所述的计算机实现的方法,其中,在所述下一时间间隔中发送给所述多个用户的所混合的媒体包括:多个时间间隔的、在单个时间间隔期间发送的多个分组中包含的媒体。
8.根据权利要求4所述的计算机实现的方法,其中,对从所述第一用户和所述第二用户接收的所述媒体进行混合包括:当将所混合的媒体传送给所述第一用户时,在所混合的媒体中排除从所述第一用户发送的所述媒体。
9.根据权利要求1所述的计算机实现的方法,其中,当仅所述第一用户和所述第二用户连接到所述通信会话时,将所述媒体经由所述第一技术传送给所述第一用户和所述第二用户。
10.根据权利要求1所述的计算机实现的方法,其中,将所述媒体经由所述第二技术传送给所述多个用户包括:针对少于所述多个用户中的每个用户来执行编码操作。
11.根据权利要求1所述的计算机实现的方法,其中,将所述媒体经由所述第二技术传送给所述多个用户包括:发送多信道媒体分组,其中每个信道是相应用户的编码的和加密的媒体流。
12.一种驻留在计算机可读存储介质上的计算机程序产品,所述计算机可读存储介质具有存储在其上的多个指令,当所述指令被处理器执行时使得所述处理器执行包括以下各项的操作:
监测多个用户之间的通信会话;
确定是否所述多个用户中的至少两个用户在所述通信会话中发送媒体;
如果仅所述多个用户中的第一用户在发送媒体,则将所述媒体经由第一技术传送给所述多个用户;以及
如果所述多个用户中的所述第一用户和第二用户在发送媒体,则将所述媒体经由第二技术传送给所述多个用户。
13.根据权利要求12所述的计算机程序产品,其中,确定是否所述多个用户中的所述至少两个用户在所述通信会话中发送媒体包括:确定在预定时间间隔内,是否所述多个用户中的所述至少两个用户在所述通信会话中同时发送媒体。
14.根据权利要求12所述的计算机程序产品,其中,将所述媒体经由所述第一技术传送给所述多个用户包括:将包含所述媒体的至少一部分的分组传送给所述多个用户,而不对所述分组进行解码和编码。
15.根据权利要求12所述的计算机程序产品,其中,将所述媒体经由所述第二技术传送给所述多个用户包括:
等待预定数量的时间间隔;以及
对在所述预定数量的时间间隔期间从所述第一用户和所述第二用户接收的所述媒体进行混合。
16.根据权利要求15所述的计算机程序产品,还包括:延迟将所混合的媒体发送给所述多个用户,直到所述预定数量的时间间隔之后。
17.根据权利要求16所述的计算机程序产品,还包括:在所述预定数量的时间间隔之后的下一时间间隔期间,将所混合的媒体发送给所述多个用户。
18.根据权利要求17所述的计算机程序产品,其中,在所述下一时间间隔中发送给所述多个用户的所混合的媒体包括:多个时间间隔的、在单个时间间隔期间发送的多个分组中包含的媒体。
19.根据权利要求15所述的计算机程序产品,其中,对从所述第一用户和所述第二用户接收的所述媒体进行混合包括:当将所混合的媒体传送给所述第一用户时,在所混合的媒体中排除从所述第一用户发送的所述媒体。
20.根据权利要求12所述的计算机程序产品,其中,当仅所述第一用户和所述第二用户连接到所述通信会话时,将所述媒体经由所述第一技术传送给所述第一用户和所述第二用户。
21.根据权利要求12所述的计算机程序产品,其中,将所述媒体经由所述第二技术传送给所述多个用户包括:针对少于所述多个用户中的每个用户来执行编码操作。
22.根据权利要求12所述的计算机程序产品,其中,将所述媒体经由所述第二技术传送给所述多个用户包括:发送多信道媒体分组,其中每个信道是相应用户的编码的和加密的媒体流。
23.一种包括处理器和存储器的计算系统,所述处理器和存储器被配置为执行包括以下各项的操作:
监测多个用户之间的通信会话;
确定是否所述多个用户中的至少两个用户在所述通信会话中发送媒体;
如果仅所述多个用户中的第一用户在发送媒体,则将所述媒体经由第一技术传送给所述多个用户;以及
如果所述多个用户中的所述第一用户和第二用户在发送媒体,则将所述媒体经由第二技术传送给所述多个用户。
24.根据权利要求23所述的计算系统,其中,确定是否所述多个用户中的所述至少两个用户在所述通信会话中发送媒体包括:确定在预定时间间隔内,是否所述多个用户中的所述至少两个用户在所述通信会话中同时发送媒体。
25.根据权利要求23所述的计算系统,其中,将所述媒体经由所述第一技术传送给所述多个用户包括:将包含所述媒体的至少一部分的分组传送给所述多个用户,而不对所述分组进行解码和编码。
26.根据权利要求23所述的计算系统,其中,将所述媒体经由所述第二技术传送给所述多个用户包括:
等待预定数量的时间间隔;以及
对在所述预定数量的时间间隔期间从所述第一用户和所述第二用户接收的所述媒体进行混合。
27.根据权利要求26所述的计算系统,还包括:延迟将所混合的媒体发送给所述多个用户,直到所述预定数量的时间间隔之后。
28.根据权利要求27所述的计算系统,还包括:在所述预定数量的时间间隔之后的下一时间间隔期间,将所混合的媒体发送给所述多个用户。
29.根据权利要求28所述的计算系统,其中,在所述下一时间间隔中发送给所述多个用户的所混合的媒体包括:多个时间间隔的、在单个时间间隔期间发送的多个分组中包含的媒体。
30.根据权利要求26所述的计算系统,其中,对从所述第一用户和所述第二用户接收的所述媒体进行混合包括:当将所混合的媒体传送给所述第一用户时,在所混合的媒体中排除从所述第一用户发送的所述媒体。
31.根据权利要求23所述的计算系统,其中,当仅所述第一用户和所述第二用户连接到所述通信会话时,将所述媒体经由所述第一技术传送给所述第一用户和所述第二用户。
32.根据权利要求23所述的计算系统,其中,将所述媒体经由所述第二技术传送给所述多个用户包括:针对少于所述多个用户中的每个用户来执行编码操作。
33.根据权利要求23所述的计算系统,其中,将所述媒体经由所述第二技术传送给所述多个用户包括:发送多信道媒体分组,其中每个信道是相应用户的编码的和加密的媒体流。
CN201580010220.5A 2014-02-24 2015-02-13 高效地混合voip数据 Pending CN106464510A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201461943666P 2014-02-24 2014-02-24
US61/943,666 2014-02-24
PCT/US2015/015752 WO2015126741A1 (en) 2014-02-24 2015-02-13 Efficiently mixing voip data

Publications (1)

Publication Number Publication Date
CN106464510A true CN106464510A (zh) 2017-02-22

Family

ID=53878842

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580010220.5A Pending CN106464510A (zh) 2014-02-24 2015-02-13 高效地混合voip数据

Country Status (6)

Country Link
US (1) US20150244658A1 (zh)
EP (1) EP3097657A4 (zh)
KR (1) KR20160126030A (zh)
CN (1) CN106464510A (zh)
TW (1) TWI593270B (zh)
WO (1) WO2015126741A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8625805B1 (en) 2012-07-16 2014-01-07 Wickr Inc. Digital security bubble
US10567349B2 (en) 2013-06-25 2020-02-18 Wickr Inc. Secure time-to-live
US10129260B1 (en) 2013-06-25 2018-11-13 Wickr Inc. Mutual privacy management
US9830089B1 (en) 2013-06-25 2017-11-28 Wickr Inc. Digital data sanitization
US9866591B1 (en) 2013-06-25 2018-01-09 Wickr Inc. Enterprise messaging platform
US9698976B1 (en) 2014-02-24 2017-07-04 Wickr Inc. Key management and dynamic perfect forward secrecy
US9584530B1 (en) 2014-06-27 2017-02-28 Wickr Inc. In-band identity verification and man-in-the-middle defense
US9654288B1 (en) 2014-12-11 2017-05-16 Wickr Inc. Securing group communications
US11089160B1 (en) * 2015-07-14 2021-08-10 Ujet, Inc. Peer-to-peer VoIP
US9590956B1 (en) 2015-12-18 2017-03-07 Wickr Inc. Decentralized authoritative messaging
US10291607B1 (en) 2016-02-02 2019-05-14 Wickr Inc. Providing real-time events to applications
US9596079B1 (en) 2016-04-14 2017-03-14 Wickr Inc. Secure telecommunications
US9590958B1 (en) 2016-04-14 2017-03-07 Wickr Inc. Secure file transfer
EP3293923B1 (en) * 2016-09-12 2020-07-22 Alcatel-Lucent España Method and device for media packet distribution over multiple access wireless communication network
KR102763118B1 (ko) * 2019-08-14 2025-02-07 라인플러스 주식회사 음성 컨퍼런스의 비대칭 채널을 이용한 오디오 제어 방법 및 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1645835A (zh) * 2004-01-19 2005-07-27 三星电子株式会社 基于ip语音来提供统一报文收发系统服务的系统和方法
CN101594623A (zh) * 2009-07-08 2009-12-02 杭州华三通信技术有限公司 一种互联网协议语音呼叫的监听方法及设备
US20130250817A1 (en) * 2007-02-02 2013-09-26 Radisys Canada Ulc Method of passing signal events through a voice over ip audio mixer device
CN103475793A (zh) * 2011-12-30 2013-12-25 斯凯普公司 使用附加终端进行呼叫

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5390177A (en) * 1993-03-24 1995-02-14 At&T Corp. Conferencing arrangement for compressed information signals
FR2810484B1 (fr) * 2000-06-19 2002-09-06 Cit Alcatel Procede de gestion et agencement de conference pour systeme de communication comportant des terminaux d'usager communiquant sous protocole ip
US7415005B1 (en) * 2001-10-29 2008-08-19 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Ad hoc selection of voice over internet streams
US9312953B2 (en) * 2003-03-03 2016-04-12 Alexander Ivan Soto System and method for performing in-service optical network certification
US8347341B2 (en) * 2006-03-16 2013-01-01 Time Warner Cable Inc. Methods and apparatus for centralized content and data delivery
US20080107045A1 (en) * 2006-11-02 2008-05-08 Viktors Berstis Queuing voip messages
US8447303B2 (en) * 2008-02-07 2013-05-21 Research In Motion Limited Method and system for automatic seamless mobility
US8520821B2 (en) * 2009-07-24 2013-08-27 Citrix Systems, Inc. Systems and methods for switching between computer and presenter audio transmission during conference call
US9049637B2 (en) * 2011-09-09 2015-06-02 Genband Us Llc Automatic transfer of mobile calls between voice over internet protocol (VoIP) and guaranteed service (GS) networks based on quality of service (QoS) measurements
US9014028B2 (en) * 2012-03-08 2015-04-21 International Business Machines Corporation Identifying and transitioning to an improved VOIP session
US8934887B2 (en) * 2012-05-31 2015-01-13 Emblaze Ltd. System and method for running mobile devices in the cloud
US8948058B2 (en) * 2012-07-23 2015-02-03 Cisco Technology, Inc. System and method for improving audio quality during web conferences over low-speed network connections
US9094889B2 (en) * 2013-11-19 2015-07-28 Avaya Inc. Method and system to manage mobile data network usage for VoIP calls

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1645835A (zh) * 2004-01-19 2005-07-27 三星电子株式会社 基于ip语音来提供统一报文收发系统服务的系统和方法
US20130250817A1 (en) * 2007-02-02 2013-09-26 Radisys Canada Ulc Method of passing signal events through a voice over ip audio mixer device
CN101594623A (zh) * 2009-07-08 2009-12-02 杭州华三通信技术有限公司 一种互联网协议语音呼叫的监听方法及设备
CN103475793A (zh) * 2011-12-30 2013-12-25 斯凯普公司 使用附加终端进行呼叫

Also Published As

Publication number Publication date
TW201534096A (zh) 2015-09-01
US20150244658A1 (en) 2015-08-27
TWI593270B (zh) 2017-07-21
WO2015126741A1 (en) 2015-08-27
KR20160126030A (ko) 2016-11-01
EP3097657A1 (en) 2016-11-30
EP3097657A4 (en) 2017-09-20

Similar Documents

Publication Publication Date Title
CN106464510A (zh) 高效地混合voip数据
US7486658B2 (en) Method and system for media synchronization in QoS-enabled wireless networks
US10680839B2 (en) Data transmission using multiple channels with distinct data transmission protocols
US9084079B2 (en) Selectively formatting media during a group communication session
US8953468B2 (en) Voice over internet protocol (VoIP) session quality
EP1942646A2 (en) Multimedia conferencing method and signal
KR101855024B1 (ko) 다중 소스들로부터 단일 싱크로의 무선 미디어 공유
WO2012169805A3 (en) Enhanced stream reservation protocol for audio video networks
CN101641936B (zh) 群组通信系统中的媒体流建立
KR20140069155A (ko) 동기화된 무선 디스플레이 디바이스들
EP2929754A1 (en) Wireless real time media communications through the use of multiple media streams
US10778742B2 (en) System and method for sharing multimedia content with synched playback controls
US11683535B2 (en) System and method for capturing and distributing a live audio stream of a live event in real-time
US8571189B2 (en) Efficient transmission of audio and non-audio portions of a communication session for phones
CN107438990B (zh) 用于递送定时信息的方法和设备
US8412171B2 (en) Voice group sessions over telecommunication networks
EP2737711A1 (en) A system and method for broadcasting captions
CN105794159A (zh) 资源分配
US20120287827A1 (en) Private channels in unified telephony applications
US20230199504A1 (en) Wireless audio distribution systems and methods
CN107172652A (zh) 一种基于高层业务信息的基站调度方法及装置
WO2015154557A1 (zh) 数据报文的传输处理方法及装置
CN107211031B (zh) 用于在多媒体系统中传输数据的方法以及软件产品和用于控制多媒体系统中的数据传输的装置
Grozev Efficient and scalable video conferences with selective forwarding units and webRTC
US12137130B2 (en) Broadcast message-based conference audio synchronization

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170222

WD01 Invention patent application deemed withdrawn after publication