CN107306315B - 语音会议创建方法、会议服务器及系统 - Google Patents
语音会议创建方法、会议服务器及系统 Download PDFInfo
- Publication number
- CN107306315B CN107306315B CN201610238928.2A CN201610238928A CN107306315B CN 107306315 B CN107306315 B CN 107306315B CN 201610238928 A CN201610238928 A CN 201610238928A CN 107306315 B CN107306315 B CN 107306315B
- Authority
- CN
- China
- Prior art keywords
- conference
- cpus
- auxiliary
- cpu
- voice
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/56—Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities
- H04M3/562—Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities where the conference facilities are distributed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
- H04L12/1818—Conference organisation arrangements, e.g. handling schedules, setting up parameters needed by nodes to attend a conference, booking network resources, notifying involved parties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
- H04L12/1827—Network arrangements for conference optimisation or adaptation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Telephonic Communication Services (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例涉及语音会议创建方法、会议服务器及系统,该方法应用于具有多个中央处理器CPU的会议服务器,该方法包括:会议服务器接收终端发送的会议创建请求,会议创建请求中携带所述会议的容量信息;根据会议创建请求中携带的会议的容量信息,确定会议服务器包括的多个CPU的总容量大于或者等于会议的容量;从多个CPU中选取总容量满足会议的容量的至少两个CPU;在至少两个CPU之间建立通信连接,创建由至少两个CPU进行语音信息处理的会议。本发明实施例提供的方案可以实现跨CPU的会议,扩大了会议服务器可创建的单个会议的容量。
Description
技术领域
本发明涉及通信技术领域,尤其涉及语音会议创建方法、会议服务器及系统。
背景技术
在企业的日常运营中,不同地区的用户会通过会议服务器就某个专题进行语音会议交流。传统会议服务器利用通信设备配套的数字信号处理(Digital SignalProcessing,简称DSP)芯片处理语音信息。随着中央处理器(Central Processing Unit,简称CPU)的处理性能提升,现有会议服务器实现了在单个CPU上对语音编解码及混音的功能。
但是由于单个CPU的容量有限,基于单个CPU的会议服务器的单个会议可参与的用户较少,最多在100方左右。现有会议服务器无法满足某些特定的场景,比如200—300人的远程培训、讲座等。虽然现有多个CPU的总容量满足大容量会议的需求,但是现有技术却无法利用多个CPU召开同一个大容量的会议。
发明内容
本发明实施例提供一种语音会议的创建方法、会议服务器及系统,可以实现跨CPU的会议,扩大了会议服务器可创建的单个会议的容量。
第一方面,本发明提供了一种语音会议的创建方法,该方法应用于具有多个中央处理器CPU的会议服务器,包括:
会议服务器接收终端发送的会议创建请求,会议创建请求中携带会议的容量信息;根据会议创建请求中携带的会议的容量信息,确定会议服务器包括的多个CPU的总容量大于或者等于会议的容量;从多个CPU中选取总容量满足会议的容量的至少两个CPU;在至少两个CPU之间建立通信连接,创建由至少两个CPU进行语音信息处理的会议。因此,本发明实施例提供的方案能够实现跨CPU的会议,扩大了会议服务器可创建的单个会议的容量。
在一种可能的设计中,将至少两个CPU分为主CPU和M-1个辅CPU,其中M为大于或者等于2的正整数;在主CPU和所述M-1个辅CPU中的每一个辅CPU之间建立通信连接,其中,M-1个辅CPU之间通过主CPU交换语音信息;将接入会议的终端的语音信息分配到M个CPU进行语音信息处理,创建会议。
具体地,通过设置主CPU和辅CPU,以及将主CPU和M-1个辅CPU中的每一个辅CPU建立通信连接的方式,实现了终端的语音信息之间跨CPU互通,实现了单个会议跨CPU。
在一种可能的设计中,为所述主CPU配置M-1个会议资源点,分别为所述M-1个辅CPU中的每一个辅CPU配置一个会议资源点;将所述主CPU的M-1个会议资源点分别与所述M-1个辅CPU中的每一个辅CPU的会议资源点配对;所述主CPU分别与所述M-1个辅CPU中的每一个辅CPU通过配对的会议资源点交换语音信息。
在一种可能的设计中,分别为所述M-1个辅CPU中的每一个辅CPU配置第一共享内存和第二共享内存;所述主CPU将所述至少两个CPU中除第i个辅CPU的语音信息存放在所述第i个辅CPU的第一共享内存中;所述主CPU从所述第i个辅CPU的第二共享内存中获取第i个辅CPU的语音信息,其中,i为大于或者等于1且小于或者等于M-1的正整数。
更具体地,通过为主CPU和辅CPU建立通信通道直接交换语音信息的方式;或者通过为主CPU和辅CPU配置共享内存通过间接存取的方式交换语音信息等方式,实现了主CPU和辅CPU之间的互通。在实际应用中,可根据实际软硬件性能,选择其中一种或者两种方式的结合,实现跨CPU会议。
需要说明的是,对于接入会议的终端的分配,可以采取平衡负载原则,将接入会议的终端的语音信息平均分配到至少两个CPU;或者可以采取最大负载原则,将接入会议的终端的语音信息依次分配到至少两个CPU。在实际应用中,可根据实际设计的需要,选择其中一种分配方式,将终端的语音信息分配到各CPU进行处理。
在一种可能的设计中,会议服务器运行一个会议控制进程,多个CPU中的每一个CPU上运行一个语音处理进程;语音处理进程用于对语音信息进行编解码及混音,会议控制进程用于管理和调度语音处理进程;会议控制进程从多个CPU中选取总容量满足会议的容量的至少两个CPU;会议控制进程在至少两个CPU上运行的至少两个语音处理进程之间建立通信连接,会议控制进程将接入会议的终端的语音信息分配到至少两个语音处理进程进行语音信息处理,创建会议。
具体地,可根据实际设计,将会议服务器拆分成会议控制和语音处理两部分,在相应的CPU上布置相关进程,完成相应的方法步骤或功能。各CPU上运行的语音处理进程之间的互通方式可参见上述主CPU和辅CPU之间实现互通的方式。
第二方面,本发明提供了一种会议服务器,具有多个中央处理器CPU,包括:
接收单元,用于接收终端发送的会议创建请求,会议创建请求中携带会议的容量信息;确定单元,用于根据会议创建请求中携带的会议的容量信息,确定会议服务器包括的多个CPU的总容量大于或者等于会议的容量;选取单元,用于从多个CPU中选取总容量满足会议的容量的至少两个CPU;创建单元,用于在至少两个CPU之间建立通信连接,创建由至少两个CPU进行语音信息处理的会议。
在一种可能的设计中,创建单元具体用于:将至少两个CPU分为主CPU和M-1个辅CPU,其中M为大于或者等于2的正整数;在主CPU和M-1个辅CPU中的每一个辅CPU之间建立通信连接,其中,M-1个辅CPU之间通过主CPU交换语音信息;将接入会议的终端的语音信息分配到M个CPU进行语音信息处理,创建会议。
在一种可能的设计中,创建单元包括:第一配置子单元,用于为主CPU配置M-1个会议资源点,分别为M-1个辅CPU中的每一个辅CPU配置一个会议资源点;配对子单元,用于将主CPU的M-1个会议资源点分别与M-1个辅CPU中的每一个辅CPU的会议资源点配对;主CPU分别与M-1个辅CPU中的每一个辅CPU通过配对的会议资源点交换语音信息。
在一种可能的设计中,创建单元包括:第二配置子单元,用于分别为M-1个辅CPU中的每一个辅CPU配置第一共享内存和第二共享内存;其中,主CPU将所述至少两个CPU中除第i个辅CPU的语音信息存放在第i个辅CPU的第一共享内存中;主CPU从第i个辅CPU的第二共享内存中获取第i个辅CPU的语音信息,其中,i为大于或者等于1且小于或者等于M-1的正整数。
在一种可能的设计中,会议服务器运行一个会议控制进程,多个CPU中的每一个CPU上运行一个语音处理进程;语音处理进程用于对语音信息进行编解码及混音,会议控制进程用于管理和调度语音处理进程;会议控制进程从多个CPU中选取总容量满足会议的容量的至少两个CPU;会议控制进程在至少两个CPU上运行的至少两个语音处理进程之间建立通信连接,会议控制进程将接入会议的终端的语音信息分配到至少两个语音处理进程进行语音信息处理,创建会议。
第三方面,本发明提供了一种会议服务器,包括:网卡、存储器、多个处理器和总线;网卡配置多个通信接口,其中,终端通过通信接口交换语音信息;存储器用于存储程序和终端的语音信息;网卡、存储器和处理器通过总线通信;当会议服务器运行时,处理器用于执行存储器存储的程序,以执行上述第一方面所述的方法。
第四方面,本发明提供了一种语音会议的创建系统,包括:
终端,用于向会议服务器发送会议创建请求,会议创建请求中携带会议的容量信息;会议服务器,用于接收终端发送的会议创建请求,根据会议创建请求中携带的会议的容量信息,确定会议服务器包括的多个CPU的总容量大于或者等于会议的容量;从多个CPU中选取总容量满足会议的容量的至少两个CPU;在至少两个CPU之间建立通信连接,创建由至少两个CPU进行语音信息处理的会议。
在一种可能的设计中,会议服务器具体用于:将至少两个CPU分为主CPU和M-1个辅CPU,其中M为大于或者等于2的正整数;在主CPU和M-1个辅CPU中的每一个辅CPU之间建立通信连接,其中,M-1个辅CPU之间通过主CPU交换语音信息;将接入会议的终端的语音信息分配到至少两个CPU进行语音信息处理,创建会议。
在一种可能的设计中,会议服务器具体用于:为主CPU配置M-1个会议资源点,分别为M-1个辅CPU中的每一个辅CPU配置一个会议资源点;将主CPU的M-1个会议资源点分别与M-1个辅CPU中的每一个辅CPU的会议资源点配对;主CPU分别与M-1个辅CPU中的每一个辅CPU通过配对的会议资源点交换语音信息。
在一种可能的设计中,会议服务器具体用于:分别为M-1个辅CPU中的每一个辅CPU配置第一共享内存和第二共享内存;主CPU将至少两个CPU中除第i个辅CPU的语音信息存放在第i个辅CPU的第一共享内存中;主CPU从第i个辅CPU的第二共享内存中获取第i个辅CPU的语音信息,其中,i为大于或者等于1且小于或者等于M-1的正整数。
基于上述技术方案,本发明实施例提供的语音会议创建方法、会议服务器及系统,可以实现跨CPU的单个会议,扩大了多CPU核的会议服务器可创建的单个会议的容量,利用了各CPU的碎片资源,提升了用户体验及CPU利用率。
附图说明
图1为语音会议使用场景架构图;
图2为本发明实施例提供的一种语音会议创建方法流程图;
图3为本发明实施提供的主CPU和辅CPU之间建立通信连接一种具体的实现方式;
图4为本发明实施提供的会议控制进程与语音处理进程之间的通信连接关系图;
图5为本发明实施例提供的一种语音会议创建流程图;
图6为本发明实施提供的主CPU和辅CPU之间建立通信连接另一种具体的实现方式;
图7为本发明实施例提供的另一种语音会议创建流程图;
图8为本发明实施例提供的一种语音会议创建信令流程图;
图9为本发明实施例提供的一种参会人员入会流程图;
图10为本发明实施例提供的另一种语音会议创建信令流程图;
图11为本发明实施例提供的另一种参会人员入会流程图;
图12a为本发明实施例提供的一种会议服务器结构示意图;
图12b为本发明实施例提供的另一种会议服务器结构示意图;
图13a为本发明实施例提供的一种创建单元1204结构示意图;
图13b为本发明实施例提供的另一种创建单元1204结构示意图;
图14为本发明实施例提供的又一种会议服务器结构示意图;
图15为本发明实施例提供的一种语音会议创建系统架构图。
具体实施方式
下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例描述的会议服务器框架以及业务场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着会议服务器的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
图1示出了语音会议使用场景架构图。如图1所示,多个用户语音终端通过会议服务器相互通话。其中,用户语音终端可以包括具有无线或有线语音通话功能的电脑终端、手机终端和话机终端等等。具体地,将上述可做语音通话的设备统称为终端。各终端分别与会议服务器对接,通过会议服务器将语音混音、编码及解码,实现多方语音会议。本发明所涉及的会议服务器可以是通用服务器,如基于X86的PC Server。
在一个示例中,有的终端需要通过公共交换电话网络(Public SwitchedTelephone Network,简称PSTN)拨打或接听电话,终端需要与PSTN网关对接后,再接入会议服务器,因此,将需要与PSTN网关对接的终端统称为PSTN终端。普通终端可以直接与会议服务器对接。
进一步地,PSTN网关将PSTN终端发送的PSTN语音数据转换成实时传输协议(Real-time Transport Protocol,简称RTP)网络报文,并将转换后的RTP网络报文发送到会议服务器。同时,PSTN网关将从会议服务器接收到的RTP网络报文转换成PSTN语音数据给PSTN终端。普通终端直接将语音数据转换成RTP网络报文发送到会议服务器,并接收会议服务器发送的RTP网络报文,将收到的RTP网络报文解码成语音数据。以下实施例中可能涉及PSTN终端和(普通)终端,其具体涉及的语音数据格式可参照此部分的解释,将不予赘述。
以下以图2为例说明本发明提供的语音会议创建方法流程,图2为本发明实施例提供的语音会议创建方法流程图,所述方法应用于具有多个中央处理器CPU的会议服务器,所述方法具体包括步骤201—204:
在步骤201,会议服务器接收终端发送的会议创建请求,会议创建请求中携带会议的容量信息。
具体地,会议的容量信息包括预留参会人数、及对CPU处理能力和CPU存储能力的要求信息。
其中,会议服务器接收终端发送的会议创建请求之前,向多个CPU中的每一个CPU发送容量查询请求,统计每一个CPU的容量。
在步骤202,根据会议创建请求中携带的会议的容量信息,确定会议服务器包括的多个CPU的总容量大于或者等于会议的容量。
具体地,会议服务器中包括的多个CPU的总容量可理解为会议服务器包括的各个CPU剩余可用容量的总和。
在步骤203,从多个CPU中选取总容量满足会议的容量的至少两个CPU。
具体地,当单个CPU的容量不能满足会议的容量时,选择其中总容量满足会议的容量的至少两个CPU。
需要说明的是,将终端的语音信息平均分配到至少两个CPU,或者将终端的语音信息依次分配到至少两个CPU,当一个CPU的剩余容量达到阈值时,则分配到下一个CPU。
在步骤204,在至少两个CPU之间建立通信连接,创建由至少两个CPU进行语音信息处理的会议。
具体地,会议服务器可将至少两个CPU分为主CPU和M-1个辅CPU,其中,M为大于或者等于2的正整数。在主CPU和每个辅CPU之间建立通信连接,使得M个CPU下的终端的语音信息互通。其中,M-1个辅CPU之间通过主CPU交换语音信息,创建由M个CPU进行语音信息处理的会议。
可以理解的是,至少两个CPU其数量可用M代表,M≥2,且M为正整数。下文中提到的M个CPU即代表至少两个CPU。需要说明的是,对于接入会议的终端的分配,可以采取平衡负载原则,将接入会议的终端的语音信息平均分配到M个CPU进行语音信息处理。或者可以采取最大负载原则,将接入会议的终端的语音信息依次分配到M个CPU中的每一个CPU进行语音信息处理,其中,当M个CPU中的第m个CPU的剩余容量小于或者等于第一阈值时,将会停止为第m个CPU分配接入会议的终端的语音信息,其中,M-1≥m≥1,且m为正整数。具体地,接入会议的终端的语音信息的的分配原则并不局限与本发明实施例提供的方式,还可采取其他方式。
具体地,在主CPU和辅CPU之间建立通信连接的方法可包括多种途径,例如可为主CPU和辅CPU建立通信通道直接交换语音信息,或者可为主CPU和辅CPU配置共享内存通过间接存取的方式交换语音信息等,具体可参见图3—图7所示。
以下以图3为例说明本发明实施例提供语音会议创建方法,图3为本发明实施提供的主CPU和辅CPU之间建立通信连接的一种具体的实现方式,如图3所示,主CPU和每一个辅CPU之间通过配对的会议资源点建立通信连接,直接交换语音信息。
可以理解的是,这里的会议资源点指的是可以进行信息传输的实体或者虚拟端口,其命名不限于会议资源点。
在一个示例中,设辅CPU共有M-1个,会议服务器为主CPU配置M-1个会议资源点,分别为M-1个辅CPU中的每一个辅CPU配置一个会议资源点。将主CPU的M-1个会议资源点分别与M-1个辅CPU中的每一个辅CPU的会议资源点一一配对。例如,将主CPU配置M-1个会议资源点中的第i个会议资源点与第i个辅CPU的会议资源点进行配对。其中,M-1≥i≥1,且i为正整数。主CPU与M-1个辅CPU中的每一个辅CPU分别通过已经配对成功的会议资源点交换语音信息。主CPU获取每一个辅CPU的语音信息,并将M个CPU中除第i个辅CPU的语音信息发送给第i个辅CPU。
以下以图4为例说明本发明实施例提供语音会议创建方法。
在一个可能的设计中,可将会议服务器拆分成会议控制和语音处理两部分,会议控制单独部署一个进程,记为会议控制进程;语音处理单独部署N个进程,记为N个语音处理进程。每个语音处理进程单独绑定一个CPU核,会议控制进程可根据实际情况选择不绑定CPU核,或者绑定语音处理进程外的其他CPU核。每个语音处理进程只能在其绑定的CPU核上运行。会议控制进程统一管理和调度语音处理进程,语音处理进程用于对语音数据进行编解码及混音。
图4为本发明实施提供的会议控制进程与语音处理进程之间的通信连接关系图,如图4所示,会议控制进程41与每一个语音处理进程42均有通信连接,用以会议控制进程41统一管理和调度每一个语音处理进程42。
进一步地,可指定其中一个语音处理进程42为主处理进程421,其余语音处理进程为辅处理进程422。其中,主处理进程421分别与辅处理进程422中的每一个辅处理进程422建立通信连接,以主处理进程421为中心点分别和各个辅处理进程422实现星状互通。各个辅处理进程422通过主处理进程交换语音信息。
可以理解的是,通过会议控制进程41管理和调控每一个语音处理进程42,将参会终端的语音信息分配到各语音处理进程42,进一步,通过将语音处理进程划分主处理进程421和辅处理进程422,并为主处理进程421和各辅处理进程422之间建立通信连接,将不同语音处理进程下的终端的语音信息互通,创建了跨CPU的语音会议。具体主处理进程421和各辅处理进程422之间建立通信连接的方法可参考图3、图5所示的主CPU与各辅CPU之间建立通信连接的方法。为了方便区分,每个语音处理进程42设有专用进程标识。可以理解的是,为了简化说明,以下提到语音处理进程42的容量即指代语音处理进程42所绑定的CPU的容量。
以下以图5为例说明本发明实施例提供的语音会议创建方法,图5为本发明实施例提供的一种语音会议创建流程图,其中,会议服务器包括应用进程50、操作系统(OperatingSystem,简称OS)51和硬件52。
具体地,应用进程50用于在CPU上运行,以处理终端的语音信息。可包括会议控制进程501和多个语音处理进程502。操作系统51用于执行应用进程50。硬件52包括多个CPU、内存和网卡,用于接收语音信息,并对语音信息进行存储、处理和转发。
具体地,当创建一个会议A时,会议控制进程501判断会议A的会议容量;当单个语音处理进程502的容量不能满足要求时,查找总容量能够满足会议A的M个语音处理进程502数量及进程标识,将会议A建立在标识的M个语音处理进程502上。可以理解的是,在会议A进行过程中,当会议A中参加会议的人员开始超过起始预订人员时,可动态扩容,直至将会议服务器中所有语音处理进程502的容量占用为止。
具体地,参会人员可以自行通过终端拨打统一会议接入码、然后输入会议的身份标识号(Identity,简称ID)和密码的方式接入会议,或者通过会议服务器召集的方式邀请指定会议人员对应的终端接入会议。
进一步地,会议控制进程可以按照均衡负载原则,将终端的语音信息平均分配到各个语音处理进程。或者会议控制进程可以按照最大负载原则将终端的语音信息依次接入不同的语音处理进程。
同样地,会议控制进程501将M个语音处理进程502分为主处理进程和M-1个辅处理进程,其中,主处理进程和M-1个辅处理进程互通的方法可参见图3通过配对的会议资源点建立通信连接的方式,在此不复赘述。其数据交互信令流程参见步骤531—539:
假设PATN终端A、终端C、终端D同时说话,其中,会议控制进程记为Conf_Ctrl,语音处理进程记为Conf_Media1、…、Conf_MediaN,N≥1,且N为正整数。Conf_Ctrl将PSTN终端A、终端C的语音通过RTP网络报文方式传送到Conf_Media0,Conf_Ctrl将终端D的语音通过RTP网络报文方式传送到Conf_Media1。
在步骤531,PSTN网关将PSTN终端A发送的PSTN语音信息转换成RTP网络报文,并发送到Conf_Media0。
在步骤532,终端C将语音信息编码打包成RTP网络报文发送给会议服务器的Conf_Media0。
在步骤533,终端D将语音信息编码打包成RTP网络报文发送给会议服务器的Conf_Media1。
设定Conf_Media0为主处理进程,Conf_Media1为辅处理进程。同时,辅处理进程还可包括其他语音处理进程,例如图5中的Conf_MediaN。
设辅处理进程有M-1个,Conf_Ctrl为主处理进程分配M-1个会议资源点,为各个辅处理进程分配一个会议资源点,并将主处理进程与各辅处理进程的会议资源点一一配对。则,各个语音处理进程之间可以通过网络报文的形式交换语音信息。主处理进程获取每一个辅处理进程的语音信息,然后主处理进程将M个语音处理进程中除第i个辅处理进程的语音信息发送给第i个辅处理进程,其中,M-1≥i≥1,且i为正整数。
在步骤534,Conf_Media0利用绑定的CPU0将PSTN终端A和终端C的语音解码后,再混音打包成一路语音编码以RTP网络报文的方式通过已配对的会议资源点发送到Conf_Media1。
在步骤535,Conf_Media1利用绑定的CPU3将终端D的语音解码后,单独混音一路编码后以RTP网络报文的方式通过已配对的会议资源点发送给Conf_Media0。
在一个示例中,设定Conf_Media0为主处理进程,辅处理进程还可包括Conf_Media2。辅处理进程Conf_Media1和Conf_Media2分别将语音信息通过RTP网络报文的方式发送给主处理进程Conf_Media0。主处理进程Conf_Media0将Conf_Media1和语Conf_Media2的语音信息解码后,将Conf_Media0和Conf_Media2包括的语音信息混音编码通过RTP网络报文的方式发送给Conf_Media1,将Conf_Media0和Conf_Media1包括的语音信息混音编码通过RTP网络报文的方式发送给Conf_Media2。
在步骤536,Conf_Media0将Conf_Media1和用户A、C的语音解码,并将解码后的Conf_Media1和终端C的语音混音一路编码后以RTP网络报文格式发送PSTN终端A,PSTN网关将从会议服务器收到的RTP网络报文转换成PSTN语音数据给PSTN终端A。
在步骤537,Conf_Media0将Conf_Media1和用户A、C的语音解码,并将解码后的Conf_Media1和PSTN终端A的语音混音一路编码后以RTP网络报文格式发送终端C。
在步骤538,Conf_Media1将Conf_Media0和终端D的语音解码,并将解码后的Conf_Media0和终端D的语音混音一路编码后以RTP网络报文格式发送终端B。
在步骤539,Conf_Media1将Conf_Media0和终端D的语音解码,并将解码后的Conf_Media0语音单独混音一路编码后以RTP网络报文格式发送给终端D。
以下以图6为例说明本发明实施例提供语音会议创建方法,图6为本发明实施提供的主CPU和辅CPU之间建立通信连接另一种具体的实现方式,如图6所示,主CPU和每一个辅CPU之间通过共享内存存取终端语音信息的方式建立通信连接。
在一个示例中,设辅CPU共有M-1个,会议服务器分别为M-1个辅CPU中的每一个辅CPU配置共享内存,包括第一共享内存和第二共享内存。主CPU将M个CPU中除第i个辅CPU的语音信息存放在第i个辅CPU的第一共享内存中,主CPU从第i个辅CPU的第二共享内存中获取第i个辅CPU的语音信息,其中,M-1≥i≥1,且i为正整数。
本发明实施例提供的语音会议创建方法,通过为单一会议下的CPU建立通信连接,实现了跨CPU的语音会议,增加了单个会议可容纳的人数。同时,本发明充分利用不同CPU的剩余容量,将多个CPU的资源利用去碎片化,提升了用户体验及CPU的利用率。
以下以图7为例说明本发明实施例提供的语音会议创建方法,图7为本发明实施例提供的另一种语音会议创建流程图,如图7所示,会议服务器包括应用进程70、会议控制进程701、语音处理进程702、OS 71、硬件72。具体参见图6中的说明,在此不予赘述。
具体地,图4或图7所示通过配置共享内存间接存取的方式交换语音信息的语音会议,其数据交互信令参见步骤731—739:
具体地,步骤731—步骤733、以及步骤736—739可参照图6步骤631—步骤633、以及步骤636—639所述,在此不予赘述。以下介绍步骤734—步骤735:
设辅处理进程有M-1个,Conf_Ctrl为每个辅处理进程配置2个共享内存,分别记为共享内存0和共享内存1。即共配置共享内存2×(M-1)个,其中M-1个共享内存0由主处理进程做生产者(数据发送方)、M-1辅处理进程做消费者(数据接收方);剩余M-1个共享内存1由M-1个辅处理进程做生产者(数据发送方)、主处理进程做消费者(数据接收方)。
具体地,主处理进程从第i个辅处理进程的共享内存1中获取第i个辅处理进程的语音信息,主处理进程将M个语音处理进程中除第i个辅处理进程的语音信息存放在第i个辅处理进程的共享内存0中,其中,M-1≥i≥1,且i为正整数。以下设定Conf_Media0为主处理进程,Conf_Media1为辅处理进程。
在步骤734,Conf_Media0利用绑定的CPU0将PSTN终端A和终端C的语音解码后,再混音打包成一路语音编码存放在Conf_Media1的共享内存0。Conf_Media1通过它的共享内存0获取Conf_Media0的语音信息。
在步骤735,Conf_Media1利用绑定的CPU1将终端D语音单独混音一路编码后存放在Conf_Media1的共享内存1。Conf_Media0通过Conf_Media1的共享内存1获取Conf_Media1的语音信息。
在一个示例中,设定Conf_Media0为主处理进程,辅处理进程还可包括Conf_Media2。主处理进程Conf_Media0分别通过辅处理进程Conf_Media1和Conf_Media2的共享内存1获取Conf_Media1和Conf_Media2的语音信息。主处理进程Conf_Media0将Conf_Media1和语Conf_Media2的语音信息解码后,将Conf_Media0和Conf_Media2包括的语音信息混音编码存放在Conf_Media1的共享内存0,将Conf_Media0和Conf_Media1包括的语音信息混音编码存放在Conf_Media2的共享内存0。
需要说明的是,采用建立通信通道直接交换语音信息创建语音会议的方法,相对较简单,但对CPU的处理能力要求高一些;另外,采用配置共享内存间接存取的方式交换语音信息创建语音会议的方法,对内存的需要高一些。本发明实施例可根据具体的硬件信息,选择采取哪种方案使得CPU之间互通,具有很好的灵活性。
以下以图8为例说明本发明实施例提供的语音会议创建方法,图8为本发明实施例提供的一种语音会议创建信令流程图,如图8所示,包括步骤801—步骤812:
在步骤801,会议控制进程启动时,从各语音处理进程获取对应的各CPU的容量信息。
在步骤802,查询会议能力。
具体地,会议控制进程启动时,通过进程间消息通信的方式分别向N个语音处理进程发送会议资源的初始容量查询请求。
在步骤803,会议能力响应。
具体地,各语音处理进程收到查询请求后,将初始容量上报给会议控制进程。
在步骤804,保存各进程的会议容量,后续由会议控制进程统一管理调度。
在步骤805,创建会议A。
具体地,终端向会议服务器发出创建会议A的请求,其中,终端发送的会议A的创建请求中携带会议A的容量信息。如果所有语音处理进程对应的CPU总容量不够创建会议A,直接向终端返回失败;如果剩余会议资源足够,则创建会议A。
在步骤806,检查会议A的预留容量,根据各个进程当前剩余的会议能力判断是否需要在多于一个的语音处理进程上建立会议。
具体地,设M个语音处理进程对应的CPU总容量满足会议A的容量需求。当M≥2时,指定其中一个语音处理进程为主处理进程,其余M-1个语音处理进程为辅处理进程,以主处理进程为中心点分别和M-1个辅处理进程实现星状互通。其具体互通方法可参照图3—图7的介绍,在此不予赘述。以下以其中一种通过配对会议资源点直接交换语音信息的方式为例,说明本发明。
在步骤807,申请会议A1,会议A1在语音处理进程1所在的CPU1上运行。设定语音处理进程1为主处理进程,进一步地,并获取会议A1的会议资源点,假设是端口P1,P2…P(M-1)。
在步骤808,申请会议A2,会议A2在语音处理进程2所在的CPU2上运行,并获取会议A2的会议资源点,假设是端口PM。
在步骤809,申请会议AM,会议AM在语音处理进程M所在的CPUM上运行,并获取会议AM的会议资源点,假设是端口P(2M-2)。
需要说明的是,这里的语音处理进程与CPU对应的顺序和标号只是为了方便解释本发明,它们各自的标号可以不是固定的,只需满足一个语音处理进程绑定一个CPU即可。
在步骤810,将系统资源点配对,将语音处理进程1的会议资源点P1与语音处理进程2的会议资源点PM配对,使用<内部IP地址P1,内部IP地址PM>对,在语音处理进程1上开启会议通道,使用<内部IP地址PM,内部IP地址P1>对在语音处理进程2上开启会议通道,此时语音处理进程1和语音处理进程2就互通了。依次对各个辅处理进程处理,直到主处理进程1和所有相关的辅处理进程互通。
在步骤811,语音处理进程1与语音处理进程2互通。
在步骤812,语音处理进程1与语音处理进程M互通。
具体地,使用<内部IP地址P(M-1),内部IP地址P(2M-2)>对,在语音处理进程1上开启会议通道,使用<内部IP地址P(2M-2),内部IP地址P(M-1)>对在语音处理进程M上开启会议通道,语音处理进程1与语音处理进程M互通。
需要说明的是,主处理进程与各辅处理进程通过RTP网络报文方式交换语音信息。传送的细节依赖于会议服务器操作系统的传输控制协议/因特网互联协议(TransmissionControl Protocol/Internet Protocol,简称TCP/IP)栈处理完成,在此不予赘述。
以下以图9为例说明本发明实施例提供的语音会议创建方法,图9为本发明实施例提供的一种参会人员入会流程图,如图9所示,包括步骤901—步骤917:
在步骤901,语音处理进程1与语音处理进程2互通。
在步骤902,语音处理进程1与语音处理进程M互通。
具体地,步骤901和步骤902可参见步骤810—步骤812所述,在此不予赘述。
在步骤903,终端A拨打会议接入码,输入会议A的ID及对应密码。
具体地,其中一个参会终端向会议服务器发送会议A创建请求,若会议控制进程检查所有语音处理进程总容量满足会议A使用,则创建会议A。会议服务器为会议A设定统一的会议接入码、会议ID和密码。
在步骤904,按照均衡负载原则,将终端A分配到语音处理进程1。
具体地,将参会人员的语音信息平均分配到各语音处理进程。
在步骤905,将终端A的信息设置到语音处理进程1。
在步骤906,将语音处理进程1上的会议通道信息告知到终端A。
在步骤907,终端A与语音处理进程1互通。
在步骤908,终端B拨打会议接入码,输入会议A的ID及对应密码。
在步骤909,按照均衡负载原则,将终端B分配到语音处理进程2。
在步骤910,将终端B的信息设置到语音处理进程2。
在步骤911,将语音处理进程2上的会议通道信息告知到终端B。
在步骤912,终端B与语音处理进程2互通。
在步骤913,邀请终端C入会,按照均衡负载原则,将终端C分配到语音处理进程M。
具体地,会议控制进程邀请邀请终端C入会的同时,将语音处理进程M上的会议通道信息告知到终端C。
在步骤914,邀请终端C接入会议A。
在步骤915,终端C应答入会。
在步骤916,将终端C的信息设置到语音处理进程M。
在步骤917,终端C与语音处理进程M互通。
进一步地,因所有语音处理进程都是通过相应的会议控制进程统一管理调度,因此实际参加会议的人员并未感知到这种内部处理的差异。但是却实现了跨CPU会议和各CPU资源利用去碎片化。
以下以图10为例说明本发明实施例提供的语音会议创建方法,图10为本发明实施例提供的另一种语音会议创建信令流程图,如图10所示,包括步骤1001—步骤1009:
具体地,步骤1001—步骤1006参见步骤801—步骤806所述,在此不予赘述。以下介绍步骤1007—步骤1009:
终端向会议服务器发出创建会议A的请求,其中,终端发送的会议A的创建请求中携带会议A的容量信息。如果所有语音处理进程对应的CPU总容量满足会议A的容量需求,则创建会议A。设M个语音处理进程对应的CPU总容量满足会议A的容量需求,以M大于等于2为例,会议A创建的时候,会议控制进程指定M个语音处理进程中的一个语音处理进程为主处理进程,其他M-1个语音处理进程为辅处理进程。主处理进程可以通过共享内存方案实现与各辅处理进程交换语音数据。参见步骤1007—步骤1009:
在步骤1007,申请会议A1。
在步骤1008,申请会议A2。
具体地,设会议A1所在的语音处理进程1为主处理进程,会议控制进程会为会议A2所在的语音处理进程2和语音处理进程1配置共享内存0和共享内存1。
在步骤1009,申请会议AM。
具体地,会议控制进程会为会议AM所在的语音处理进程M和语音处理进程1配置共享内存0和共享内存1。
需要说明的是,采用共享内存方案时,当会议A创建成功之后,创建2(M-1)个共享内存块分别作为在主处理进程和各辅处理进程之间交换语音编码数据的载体。进一步地,为了方便区分各个共享内存,将第i个辅处理进程做消费者的共享内存命名为第i个辅处理进程的第一共享内存或共享内存0,将第i个辅处理进程做生产者的共享内存命名为第i个辅处理进程的第二共享内存或共享内存1。
具体地,共享内存的大小依赖于采用的编解码程序及设置的最大时延而定,在共享内存中存放的一帧数据的大小由采用的语音编解码程序而定,以20ms打包时长,64kbps速率的G711编解码程序为例,一帧数据为160字节,假定允许的最大时延是200ms,那么一块共享内存只要能够存储10帧数据就足够,即1600字节大小即已足够。可以理解的是,上述数据只用来解释本发明,并不用于限定本发明。
以下以图11为例说明本发明实施例提供的语音会议创建方法,图11为本发明实施例提供的另一种参会人员入会流程图,如图11所示,包括步骤1101—步骤1117:
在步骤1101,终端A拨打会议接入码,输入会议A的ID及对应密码。
在步骤1102,按照最大负载原则,将终端A分配到语音处理进程1。
在步骤1103,将终端A的信息设置到语音处理进程1。
在步骤1104,将语音处理进程1上的会议通道信息告知到终端A。
在步骤1105,终端A与语音处理进程1互通。
在步骤1106,终端B拨打会议接入码,输入会议A的ID及对应密码。
在步骤1107,按照最大负载原则,发现语音处理进程1已到达分担临界,遂分配到语音处理进程2,并为语音处理进程1和语音处理进程2分别分配一个系统资源点进行互通。
在步骤1108,将语音处理进程2的系统资源信息设置到语音处理进程1。
在步骤1109,将语音处理进程1的系统资源信息设置到语音处理进程2。
在步骤1110,语音处理进程1与语音处理进程2互通。
在步骤1111,将语音处理进程2上的会议通道信息告知到终端B。
在步骤1112,终端B与语音处理进程2互通。
在步骤1113,邀请终端C入会,按照最大负载原则,将终端C分配到语音处理进程2。
在步骤1114,邀请终端C接入会议A。
在步骤1115,终端C应答入会。
在步骤1116,将终端C的信息设置到语音处理进程M。
在步骤1117,终端C与语音处理进程M互通。
需要说明的是,无论是采用均衡负载原则分配终端的语音信息还是采用最大负载原则分配终端的语音信息。参见图3、图5—图7所示,会议服务器内部各CPU运行的语音处理进程之间都可通过配对的会议资源点或者共享内存方案交换语音信息。
具体地,可根据参会人员的分配原则决定主处理进程与各辅处理进程互通的时间。
例如图9所示的实施例,会议控制进程根据均衡负载原则将终端的语音信息平均分配到各个语音处理进程,那么,主处理进程与各辅处理进程互通可以在各个终端接入会议服务器之前完成。
又例如图11所示的实施例,会议控制进程根据最大负载原则,按照参会人员的先后顺序,先将参会人员语音信息分流到各个语音处理进程。那么,主处理进程与各辅处理进程互通可以在各个终端接入会议服务器的过程中完成,当每启用一个辅处理进程时,将该新启用的辅处理进程与主处理进程互通。
本发明实施例提供的语音会议创建方法,利用进程绑定及分布式调度的机制实现语音会议跨CPU处理的方法,实现了多个CPU会议资源去碎片化的方法。能够在通用服务器上充分利用多个CPU的能力实现大容量语音会议。对通用服务器上多个CPU时资源利用去碎片化,提升用户体验及CPU的利用率。
以下以图12a为例说明本发明实施例提供的会议服务器,图12a为本发明实施例提供的一种会议服务器结构示意图,其中,该会议服务器具有多个CPU,如图12a所示,包括:
接收单元1201,用于接收终端发送的会议创建请求,会议创建请求中携带会议的容量信息。
确定单元1202,用于根据会议创建请求中携带的会议的容量信息,确定会议服务器包括的多个CPU的总容量大于或者等于会议的容量。
选取单元1203,用于从多个CPU中选取总容量满足会议的容量的至少两个CPU。
其中,可将至少两个CPU设为M个CPU,M为大于或者等于2的正整数。
创建单元1204,用于在至少两个CPU之间建立通信连接,创建由至少两个CPU进行语音信息处理的会议。
具体地,将M个CPU分为主CPU和M-1个辅CPU;在主CPU和M-1个辅CPU中的每一个辅CPU之间建立通信连接,其中,M-1个辅CPU之间通过主CPU交换语音信息。将接入会议的终端的语音信息分配到M个CPU进行语音信息处理,创建会议。
进一步,将接入会议的终端的语音信息平均分配到M个CPU进行语音信息处理。或者将接入会议的终端的语音信息依次分配到M个CPU中的每一个CPU进行语音信息处理,其中,当M个CPU中的第m个CPU的剩余容量小于或者等于第一阈值时,将会停止为第m个CPU分配所述接入会议的终端的语音信息,其中,M-1≥m≥1,且m为正整数。
具体各单元以及各单元之间的工作过程可参见图2所示的方法实施例,在此不予赘述。
以下以图12b为例说明本发明实施例提供的会议服务器,图12b为本发明实施例提供的另一种会议服务器结构示意图,如图12b所示,该会议服务器除包括图12a中的1201、1202、1203和1204四个单元之外,还包括:
查询单元1205,用于在接收单元1201接收终端发送的会议创建请求之前,向多个CPU中的每一个CPU发送容量查询请求,统计每一个CPU的容量。其中,1201、1202、1203和1204四个单元的具体功能可参照图12a中的描述,在此不予赘述。
其中,1201、1202、1203、1204和1205各单元在会议服务器包括的多个CPU上执行,完成相关功能。
需要说明的是,上述图2-图11以语音会议创建的方法步骤的角度对本发明实施例提供的方案进行了介绍。可以理解的是,1201、1202、1203、1204和1205各单元等是为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对1201、1202、1203、1204和1205等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
以下以图13a为例说明本发明实施例提供的创建单元1204,图13a为本发明实施例提供的一种创建单元1204结构示意图,如图13a所示,包括:
第一配置子单元1214a,用于为主CPU配置M-1个会议资源点,分别为M-1个辅CPU中的每一个辅CPU配置一个会议资源点;
配对子单元1224a,用于将主CPU的M-1个会议资源点分别与M-1个辅CPU中的每一个辅CPU的会议资源点配对;主CPU分别与M-1个辅CPU中的每一个辅CPU通过配对的会议资源点交换语音信息。
可以理解的是,1214a、1224a的工作过程可参见图3所示的方法实施例,在此不予赘述。
以下以图13b为例说明本发明实施例提供的创建单元1204,图13b为本发明实施例提供的另一种创建单元1204结构示意图,如图13b所示,包括:
第二配置子单元1214b,用于分别为M-1个辅CPU中的每一个辅CPU配置第一共享内存和第二共享内存。
具体地,主CPU将M个CPU中除第i个辅CPU的语音信息存放在第i个辅CPU的第一共享内存中;主CPU从第i个辅CPU的第二共享内存中获取第i个辅CPU的语音信息,其中,M-1≥i≥1,且i为正整数。
可以理解的是,1214b的工作过程可参见图6所示的方法实施例,在此不予赘述。
在一个示例中,本发明实施例提供的会议服务器运行一个会议控制进程,会议服务器包括多个CPU,其中,多个CPU中的每一个CPU上运行一个语音处理进程;语音处理进程用于对语音信息进行编解码及混音,会议控制进程用于管理和调度所述语音处理进程。会议控制进程从多个CPU中选取总容量满足会议的容量的至少两个CPU;会议控制进程在至少两个CPU上运行的至少两个语音处理进程之间建立通信连接,会议控制进程将接入会议的终端的语音信息分配到至少两个语音处理进程进行语音信息处理,创建会议。
可以理解的是,基于上述会议控制进程和语音处理进程的会议服务器的具体工作方式,可参见图4—图5、图7—图11所示的方法实施例中的描述,在此不予赘述。
以下以图14为例说明本发明实施例提供的会议服务器,图14为本发明实施例提供的又一种会议服务器结构示意图,如图14所示,包括:网卡1401、存储器1402、多个处理器1403和总线1404。
具体地,网卡1404配置多个通信接口,其中,接入会议的终端通过所述通信接口交换语音信息;存储器1402用于存储程序和终端的语音信息;网卡1401、存储器1402和处理器1403通过总线1404通信;当会议服务器运行时,处理器1403用于执行存储器1402存储的程序,使得处理器1403执行上述图2—图11方法实施例中的方法步骤。
其中,存储器1402可以是一个存储装置,也可以是多个存储元件的统称,且用于存储运行会议服务器所需的程序以及数据等信息。且存储器1402可以包括随机存取存储器(Random Access Memory,简称RAM)、闪存、只读存储器(Read Only Memory,简称ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,简称EPROM)、电可擦可编程只读存储器(Electrically EPROM,简称EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)、闪存(Flash)或者本领域熟知的任何其它形式的存储介质等中的一个或多个存储介质的组合。
处理器1403可以是CPU,通用处理器,DSP,专用集成电路(Application-SpecificIntegrated Circuit,简称ASIC),现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,单元和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
总线1404可以是工业标准体系结构(Industry Standard Architecture,简称ISA)总线、外部设备互连(Peripheral Component,简称PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称EISA)总线等。该总线1404可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
具体地,处理器1403可用于执行图2—图11所示的语音会议的创建方法。存储器1402可用于存储图2—图11所示的语音会议中所需的程序以及数据,或者存储处理器1403处理的终端的语音信息等。
进一步,总线1404可用于连接图12a、12b、13a或13b中的各单元。处理器1403可用于执行1201、1202、1203、1204或1205各单元的功能,处理器1402可用于存储1201、1202、1203、1204或1205各单元的数据。
以下以图15为例说明本发明实施例提供的语音会议创建系统,图15为本发明实施例提供的一种语音会议创建系统架构图,如图15所示,包括:终端1501、会议服务器1502。
终端1501,用于向会议服务器1502发送会议创建请求,其中,会议创建请求中携带会议的容量信息。
需要说明的是,终端1501为一个或多个。终端1501向会议服务器1502发送会议创建请求,创建会议。进一步地,终端1501可通过向会议服务器1502发送会议接入码、会议ID和密码的方式接入会议,或者终端1501可通过接受会议服务器1502的邀请的方式接入会议。
会议服务器1502,用于接收终端1501发送的会议创建请求,根据会议创建请求中携带的会议的容量信息,确定会议服务器1502包括的多个CPU的总容量大于或者等于会议的容量;从多个CPU中选取总容量满足会议的容量的至少两个CPU;在至少两个CPU之间建立通信连接,创建由至少两个CPU进行语音信息处理的会议。
具体地,会议服务器1502将至少两个CPU分为主CPU和M-1个辅CPU,其中M为大于或者等于2的正整数;在主CPU和M-1个辅CPU中的每一个辅CPU之间建立通信连接,其中,M-1个辅CPU之间通过主CPU交换语音信息;将接入会议的终端1501的语音信息分配到至少两个CPU进行语音信息处理,创建会议。
进一步地,会议服务器1502为主CPU配置M-1个会议资源点,分别为M-1个辅CPU中的每一个辅CPU配置一个会议资源点;将主CPU的M-1个会议资源点分别与M-1个辅CPU中的每一个辅CPU的会议资源点配对;主CPU分别与M-1个辅CPU中的每一个辅CPU通过配对的会议资源点交换语音信息。
或者进一步地,会议服务器1502分别为M-1个辅CPU中的每一个辅CPU配置第一共享内存和第二共享内存;主CPU将至少两个CPU中除第i个辅CPU的语音信息存放在第i个辅CPU的第一共享内存中;主CPU从第i个辅CPU的第二共享内存中获取第i个辅CPU的语音信息,其中,i为大于或者等于1且小于或者等于M-1的正整数。
可以理解的是,本说明书中提到的CPU的语音信息指的是该CPU所处理的终端的语音信息。
具体地,图15所示的语音会议创建系统,其具体工作过程,可参见上述图2-图14所述的语音会议创建方法及会议服务器的工作过程,在此不予赘述。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (12)
1.一种语音会议创建方法,其特征在于,所述方法应用于具有多个中央处理器CPU的会议服务器,所述方法包括:
所述会议服务器接收终端发送的会议创建请求,所述会议创建请求中携带所述会议的容量信息;
根据所述会议创建请求中携带的所述会议的容量信息,确定所述会议服务器包括的多个CPU的总容量大于或者等于所述会议的容量;
从所述多个CPU中选取总容量满足所述会议的容量的至少两个CPU;
将所述至少两个CPU分为主CPU和M-1个辅CPU,其中M为大于或者等于2的正整数;
在所述主CPU和所述M-1个辅CPU中的每一个辅CPU之间建立通信连接,其中,所述M-1个辅CPU之间通过所述主CPU交换语音信息;
将接入会议的终端的语音信息分配到所述至少两个CPU进行语音信息处理,创建所述会议。
2.如权利要求1所述的方法,其特征在于,所述在所述主CPU和所述M-1个辅CPU中的每一个辅CPU之间建立通信连接,其中,所述M-1个辅CPU之间通过所述主CPU交换语音信息,具体包括:
为所述主CPU配置M-1个会议资源点,分别为所述M-1个辅CPU中的每一个辅CPU配置一个会议资源点;
将所述主CPU的M-1个会议资源点分别与所述M-1个辅CPU中的每一个辅CPU的会议资源点配对;
所述主CPU分别与所述M-1个辅CPU中的每一个辅CPU通过配对的会议资源点交换语音信息。
3.如权利要求1所述的方法,其特征在于,所述在所述主CPU和所述M-1个辅CPU中的每一个辅CPU之间建立通信连接,其中,所述M-1个辅CPU之间通过所述主CPU交换语音信息,具体包括:
分别为所述M-1个辅CPU中的每一个辅CPU配置第一共享内存和第二共享内存;
所述主CPU将所述至少两个CPU中除第i个辅CPU的语音信息存放在所述第i个辅CPU的第一共享内存中;
所述主CPU从所述第i个辅CPU的第二共享内存中获取第i个辅CPU的语音信息,其中,i为大于或者等于1且小于或者等于M-1的正整数。
4.如权利要求1—3任一项所述的方法,其特征在于,所述会议服务器运行一个会议控制进程,所述多个CPU中的每一个CPU上运行一个语音处理进程;所述语音处理进程用于对语音信息进行编解码及混音,所述会议控制进程用于管理和调度所述语音处理进程;
所述会议控制进程从所述多个CPU中选取总容量满足所述会议的容量的至少两个CPU;
所述会议控制进程在所述至少两个CPU上运行的至少两个语音处理进程之间建立通信连接,所述会议控制进程将接入会议的终端的语音信息分配到所述至少两个语音处理进程进行语音信息处理,创建所述会议。
5.一种会议服务器,其特征在于,具有多个中央处理器CPU,包括:
接收单元,用于接收终端发送的会议创建请求,所述会议创建请求中携带所述会议的容量信息;
确定单元,用于根据所述会议创建请求中携带的所述会议的容量信息,确定所述会议服务器包括的多个CPU的总容量大于或者等于所述会议的容量;
选取单元,用于从所述多个CPU中选取总容量满足所述会议的容量的至少两个CPU;
创建单元,用于将所述至少两个CPU分为主CPU和M-1个辅CPU,其中M为大于或者等于2的正整数;在所述主CPU和所述M-1个辅CPU中的每一个辅CPU之间建立通信连接,其中,所述M-1个辅CPU之间通过所述主CPU交换语音信息;将接入会议的终端的语音信息分配到所述至少两个CPU进行语音信息处理,创建所述会议。
6.如权利要求5所述的会议服务器,其特征在于,所述创建单元,包括:
第一配置子单元,用于为所述主CPU配置M-1个会议资源点,分别为所述M-1个辅CPU中的每一个辅CPU配置一个会议资源点;
配对子单元,用于将所述主CPU的M-1个会议资源点分别与所述M-1个辅CPU中的每一个辅CPU的会议资源点配对;所述主CPU分别与所述M-1个辅CPU中的每一个辅CPU通过配对的会议资源点交换语音信息。
7.如权利要求5所述的会议服务器,其特征在于,所述创建单元,包括:
第二配置子单元,用于分别为所述M-1个辅CPU中的每一个辅CPU配置第一共享内存和第二共享内存;
其中,所述主CPU将所述至少两个CPU中除第i个辅CPU的语音信息存放在所述第i个辅CPU的第一共享内存中;所述主CPU从所述第i个辅CPU的第二共享内存中获取第i个辅CPU的语音信息,其中,i为大于或者等于1且小于或者等于M-1的正整数。
8.如权利要求5—7任一项所述的会议服务器,其特征在于,所述会议服务器运行一个会议控制进程,所述多个CPU中的每一个CPU上运行一个语音处理进程;所述语音处理进程用于对语音信息进行编解码及混音,所述会议控制进程用于管理和调度所述语音处理进程;
所述会议控制进程从所述多个CPU中选取总容量满足所述会议的容量的至少两个CPU;
所述会议控制进程在所述至少两个CPU上运行的至少两个语音处理进程之间建立通信连接,所述会议控制进程将接入会议的终端的语音信息分配到所述至少两个语音处理进程进行语音信息处理,创建所述会议。
9.一种会议服务器,其特征在于,包括:网卡、存储器、多个处理器和总线;
所述网卡配置多个通信接口,其中,终端通过所述通信接口交换语音信息;
所述存储器用于存储程序和终端的语音信息;
所述网卡、所述存储器和所述处理器通过所述总线通信;
当所述会议服务器运行时,所述处理器用于执行所述存储器存储的所述程序,以执行权利要求1—4任一项所述的方法。
10.一种语音会议创建系统,其特征在于,包括:
终端,用于向会议服务器发送会议创建请求,所述会议创建请求中携带所述会议的容量信息;
会议服务器,用于接收终端发送的所述会议创建请求,根据所述会议创建请求中携带的所述会议的容量信息,确定所述会议服务器包括的多个CPU的总容量大于或者等于所述会议的容量;从所述多个CPU中选取总容量满足所述会议的容量的至少两个CPU;将所述至少两个CPU分为主CPU和M-1个辅CPU,其中M为大于或者等于2的正整数;在所述主CPU和所述M-1个辅CPU中的每一个辅CPU之间建立通信连接,其中,所述M-1个辅CPU之间通过所述主CPU交换语音信息;将接入会议的终端的语音信息分配到所述至少两个CPU进行语音信息处理,创建所述会议。
11.如权利要求10所述的系统,其特征在于,所述会议服务器具体用于:
为所述主CPU配置M-1个会议资源点,分别为所述M-1个辅CPU中的每一个辅CPU配置一个会议资源点;
将所述主CPU的M-1个会议资源点分别与所述M-1个辅CPU中的每一个辅CPU的会议资源点配对;
所述主CPU分别与所述M-1个辅CPU中的每一个辅CPU通过配对的会议资源点交换语音信息。
12.如权利要求10所述的系统,其特征在于,所述会议服务器具体用于:
分别为所述M-1个辅CPU中的每一个辅CPU配置第一共享内存和第二共享内存;
所述主CPU将所述至少两个CPU中除第i个辅CPU的语音信息存放在所述第i个辅CPU的第一共享内存中;
所述主CPU从所述第i个辅CPU的第二共享内存中获取第i个辅CPU的语音信息,其中,i为大于或者等于1且小于或者等于M-1的正整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610238928.2A CN107306315B (zh) | 2016-04-18 | 2016-04-18 | 语音会议创建方法、会议服务器及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610238928.2A CN107306315B (zh) | 2016-04-18 | 2016-04-18 | 语音会议创建方法、会议服务器及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107306315A CN107306315A (zh) | 2017-10-31 |
CN107306315B true CN107306315B (zh) | 2020-09-29 |
Family
ID=60152145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610238928.2A Active CN107306315B (zh) | 2016-04-18 | 2016-04-18 | 语音会议创建方法、会议服务器及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107306315B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795237B (zh) * | 2019-10-08 | 2021-02-09 | 支付宝(杭州)信息技术有限公司 | 资源处理方法、装置、电子设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1820505A (zh) * | 2003-07-07 | 2006-08-16 | 泰德通信公司 | 分布式mcu |
CN102244657A (zh) * | 2011-06-24 | 2011-11-16 | 中兴通讯股份有限公司 | 多点控制单元级联会议的注册方法及系统 |
CN102629960A (zh) * | 2004-03-09 | 2012-08-08 | 西门子通讯公司 | 分布式电话会议 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8649494B2 (en) * | 2008-08-05 | 2014-02-11 | International Business Machines Corporation | Participant alerts during multi-person teleconferences |
-
2016
- 2016-04-18 CN CN201610238928.2A patent/CN107306315B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1820505A (zh) * | 2003-07-07 | 2006-08-16 | 泰德通信公司 | 分布式mcu |
CN102629960A (zh) * | 2004-03-09 | 2012-08-08 | 西门子通讯公司 | 分布式电话会议 |
CN102244657A (zh) * | 2011-06-24 | 2011-11-16 | 中兴通讯股份有限公司 | 多点控制单元级联会议的注册方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107306315A (zh) | 2017-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104125540B (zh) | 多方通话终端及从多方通话转换为一对一通话的方法 | |
WO2019184987A1 (zh) | 接入ims的方法和通信装置 | |
US8311197B2 (en) | Method and system for allocating, revoking and transferring resources in a conference system | |
CN110225146B (zh) | 内外网映射方法、装置、电子设备、介质及视频会议系统 | |
CN102334309B (zh) | 使用会议标识符对会议进行分布式路由 | |
US20100166153A1 (en) | Method and apparatus for emergency call processing | |
US9178925B2 (en) | Exchanging media stream data between thin client and media gateway, bypassing virtual machine, in cloud computing system | |
CN101656715B (zh) | 一种媒体旁路的方法、系统和装置 | |
CN104170337A (zh) | 无线网络之上的多模态通信优先级 | |
CA2976416C (en) | A method of distributing bandwidth among streaming sessions of communication devices in a network | |
CN103516625A (zh) | 带宽虚拟化 | |
US7707296B2 (en) | Method and apparatus for selecting a media processor to host a conference | |
CN101682354A (zh) | 用于管理双信道无线设备的技术 | |
CN112312061A (zh) | 一种视频会议方法、装置、电子设备及存储介质 | |
US8988487B2 (en) | Cloud video exchanging conference device | |
CN103283205A (zh) | 本地媒体再现 | |
CN107666396B (zh) | 一种多终端会议处理方法及装置 | |
CN107306315B (zh) | 语音会议创建方法、会议服务器及系统 | |
CN102223371B (zh) | 多媒体会议管理方法及设备 | |
CN111679918B (zh) | 一种消息传输方法及装置 | |
KR101674616B1 (ko) | 가상화 기반 원격 화상 회의 제공 시스템 | |
CN101340646B (zh) | 一种调度员同时参与多个呼叫的集群通信系统和方法 | |
CN108337325B (zh) | 基于p2p服务和虚拟化技术的无线集群对讲系统及方法 | |
US7480294B1 (en) | Network resource allocation | |
CN111461367B (zh) | 数据处理方法、装置、设备、会议终端和机器可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |