Method and device for deploying call controller

By obtaining the current mode of the main call controller in the distributed calling system and selecting the preferred new main call controller, the problem of process errors caused by multiple call controllers working simultaneously is solved, and the system stability and call quality are improved.

CN114828053BActive Publication Date: 2025-04-11HUAWEI TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202110119266.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-01-28
Publication Date
2025-04-11
Estimated Expiration
2041-01-28

AI Technical Summary

Technical Problem

In a distributed calling system, how to choose the preferred call controller to avoid the problem of process errors caused by multiple call controllers working simultaneously.

Method used

Determine the new master call controller by obtaining the mode of the current master call controller. The specific method includes maintaining the current master call controller when the mode of the call controller is stable; when the mode is preemptive, negotiate to determine a new master call controller, and preferably a device with better performance is used as the master call controller.

Benefits of technology

In a distributed calling system, execution errors caused by the simultaneous operation of multiple call controllers are effectively avoided, ensuring the stability of the system and call quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114828053B_ABST
    Figure CN114828053B_ABST
Patent Text Reader

Abstract

The embodiments of the present application provide a method and device for deploying a call controller, which relate to the field of distributed communications. The method includes: obtaining a first role notification message, the first role notification message is used to indicate that the first call controller is the current primary call controller in the distributed call system, and the mode corresponding to the first call controller; according to the mode corresponding to the first call controller, determining the primary call controller of the distributed call system. Through this method, when there are multiple call controllers in the distributed call system, it is possible to determine that a call controller performs the function of a decision center, thereby avoiding the problem of execution errors caused by multiple call controllers working at the same time.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of distributed communications, and in particular to a method and device for deploying a call controller. Background Art

[0002] With the development of Internet of Things (IoT), the number of electronic devices owned by each user is increasing, and each electronic device can be easily interconnected. In order to obtain a better user experience, it is becoming more and more common to use multiple electronic devices to complete a task together. For example, when a user uses a mobile phone to make a video call with a contact, in order to see the video image more clearly, the TV screen can be used to play the video image.

[0003] However, when multiple devices participate in the same task, how to select appropriate devices to schedule the capabilities of each electronic device is an issue that deserves attention at present. Summary of the invention

[0004] The present application provides a method and device for deploying a call controller. By selecting a call controller with the best performance as the main call controller according to preset rules, the problem of how to select the best call controller when there are multiple call controllers in a distributed call system is solved to avoid the problem of process errors caused by multiple call controllers working at the same time.

[0005] In a first aspect, a method for deploying a call controller is provided, which is applied to a second call controller newly launched in a distributed call system, including: obtaining a first role notification message, the first role notification message is used to indicate that the first call controller is the current primary call controller in the distributed call system, and a mode corresponding to the first call controller; according to the mode corresponding to the first call controller, determining the primary call controller of the distributed call system thereafter.

[0006] Among them, the main call controller refers to the call controller that plays the role of a decision-making center in the distributed call system, such as being able to schedule the various devices and / or components participating in the distributed call, and distribute the different services involved in the call process (such as audio playback, video playback, audio acquisition, video acquisition, etc.) to different devices and / or components to ensure the smooth progress of the distributed call. Compared with other call controllers, the main call controller refers to the call controller that is in working state during the distributed call process, while other call controllers can participate in the distributed call as ordinary devices or backup call controllers.

[0007] In addition, the call controller in the embodiment of the present application may refer to a device provided with a call controller, that is, a device having a call controller function (such as a mobile phone, etc.).

[0008] Optionally, the modes supported by the first call controller may include stable and / or preemptive modes. In the present application, the mode corresponding to the first call controller may refer to a mode adopted when the first call controller is used as the primary call controller. Similar descriptions that may appear below for the second call controller, the third call controller, etc. are also similar to the meanings described above. The following description of the call controller corresponding mode may also be described in this application as the mode adopted by the call controller.

[0009] It should be understood that in the above method, the first call controller serves as the current active call controller. After the second call controller comes online, it needs to determine the subsequent active call controller based on the mode adopted by the current active call controller. Specifically, when the second call controller learns that the current active call controller adopts the stable mode, the second call controller determines that the active call controller of the distributed call system is the first call controller; when the second call controller learns that the current active call controller adopts the preemptive mode, the second call controller will negotiate with the first call controller to determine the role of the active call controller. After the negotiation, the active call controller of the distributed call system may change.

[0010] In the above method, "after" can be relative to "current" in the first technical feature. If the first call controller is a stable type, then "after" can be after the moment corresponding to the mode adopted by the first call controller is learned by the second call controller based on the first role notification message. If the first call controller is a preemptive type, then "after" can be after the moment when a new call controller is determined through the negotiation process.

[0011] According to the method provided in the embodiment of the present application, by determining a new call controller based on the mode adopted by the current main call controller, when there are multiple call controllers in a distributed call system, one call controller can be determined to perform the function of the decision center, thereby avoiding the problem of execution errors caused by multiple call controllers working at the same time.

[0012] In combination with the first aspect, in certain implementations of the first aspect, the mode corresponding to the first call controller includes preemptive mode or stable mode, and determining the subsequent primary call controller according to the mode corresponding to the first call controller specifically includes: when the mode corresponding to the first call controller is the preemptive mode, negotiating with the first call controller to determine the subsequent primary call controller; when the mode corresponding to the first call controller is the stable mode, determining the subsequent call controller to be the first call controller.

[0013] Optionally, the stable type (or stable mode) refers to a role with a stable call controller (primary call controller or backup call controller). If the primary call controller currently deployed in the distributed call system is a stable call controller, then when other call controllers join or exit the system later, the primary call controller will not be reselected, thereby ensuring the stability of the primary call controller role in the system and further ensuring the stability of distributed calls.

[0014] Optionally, preemptive (or preemptive mode) means that the role of the call controller (active call controller or standby call controller) can be contested by other call controllers. If the active call controller currently deployed in the distributed call system is a preemptive call controller, then if a new call controller joins the system later, the call controllers in the entire system will negotiate and select the call controller with the best capabilities as the new decision center based on preset criteria, thereby ensuring that the call controller used by the distributed call system is always the call controller with the best performance.

[0015] According to the method provided in the embodiment of the present application, by setting the call controller to a stable mode or a preemptive mode, a call controller of a corresponding mode can be selected based on different distributed call requirements, thereby providing users with an experience effect of stable call quality or high-quality call quality.

[0016] In combination with the first aspect, in certain implementations of the first aspect, the negotiation with the first call controller to determine the subsequent primary call controller includes: obtaining first capability information, the first capability information including capability parameters of evaluation items corresponding to the first call controller; and negotiating to determine the subsequent primary call controller based on the first capability information and second capability information, the second capability information including capability parameters of the evaluation items corresponding to the second call controller.

[0017] According to the method provided in the embodiment of the present application, if the mode corresponding to the current primary call controller is preemptive, the primary call controller after the distributed call system is preferred by analyzing the capability parameters of the call controller, so that the device with better performance is used as the primary call controller, thereby ensuring the performance of the distributed call.

[0018] In combination with the first aspect, in certain implementations of the first aspect, the negotiation to determine the subsequent primary call controller also includes: weighting the capability parameters of the evaluation items corresponding to the first call controller with the preset weights corresponding to the evaluation items to obtain a first score corresponding to the first call controller; and weighting the capability parameters of the evaluation items corresponding to the second call controller with the preset weights corresponding to the evaluation items to obtain a second score corresponding to the second call controller; wherein, when the first score is higher than or equal to the second score, the first call controller is determined as the subsequent primary call controller; when the first score is lower than the second score, the second call controller is determined as the subsequent primary call controller.

[0019] The evaluation items can be flexibly set as needed. Optionally, the evaluation items can be, for example, capabilities related to the functions performed by the call controller, such as the capabilities of the processor (related to the decision center function) and the like.

[0020] According to the method provided in the embodiment of the present application, if the mode corresponding to the current primary call controller is preemptive, the primary call controller after the distributed call system is preferred by analyzing the capability parameters of the call controller, so that the device with better performance is used as the primary call controller, thereby ensuring the performance of the distributed call.

[0021] In combination with the first aspect, in certain implementations of the first aspect, the evaluation items include at least one of the following: the number of components corresponding to the call controller; the processor performance corresponding to the call controller; the memory capacity corresponding to the call controller; the network connection quality corresponding to the call controller; the video quality corresponding to the call controller; and the communication charges corresponding to the call controller.

[0022] In combination with the first aspect, in some implementations of the first aspect, the method further includes: sending second capability information to the first call controller, the second capability information including capability parameters of evaluation items corresponding to the second call controller.

[0023] According to the method provided in the present application, by sending capability information to the first call controller through the second call controller, the first call controller and the second call controller can synchronously analyze the performance of the call controller according to the same capability information and preset rules, so that the first call controller and the second call controller can select the same primary call controller according to the same parameters and standards, avoiding inconsistent negotiations of the primary call controller.

[0024] In combination with the first aspect, in certain implementations of the first aspect, the method also includes: when there is currently no backup call controller in the distributed call system, determining the second call controller as the backup call controller; when there is a third call controller in the distributed call system as the current backup call controller, determining the backup call controller after the distributed call system according to a mode corresponding to the third call controller.

[0025] According to the method provided by the present application, a main call controller and a backup call controller can be set in a distributed call system. If the second call controller fails to successfully run for the main call controller, the second call controller can also be used as a backup call controller; or, if there is a preemptive backup call controller, the second call controller can also run for the backup call controller. The existence of the backup call controller can ensure the stability of the distributed call by enabling the backup call controller to perform the function of the call controller in a timely manner when the main call controller goes offline.

[0026] In combination with the first aspect, in certain implementations of the first aspect, when the mode corresponding to the first call controller is a stable mode, the method further includes: when there is no backup call controller currently in the distributed call system, determining the second call controller as the backup call controller; when there is a third call controller in the distributed call system as the current backup call controller, determining the subsequent backup call controller of the distributed call system according to the mode corresponding to the third call controller.

[0027] According to the method provided by the present application, a main call controller and a backup call controller can be set in a distributed call system. If the mode corresponding to the current main call controller is stable, the second call controller can also serve as a backup call controller; or, if there is a preemptive backup call controller, the second call controller can also compete for the backup call controller. The existence of the backup call controller can ensure the stability of the distributed call by enabling the backup call controller to perform the function of the call controller in a timely manner when the main call controller goes offline.

[0028] In combination with the first aspect, in certain implementations of the first aspect, determining the subsequent backup call controller of the distributed call system according to the mode corresponding to the third call controller includes: receiving a second role message, the second role message is used to indicate that the third call controller is the current backup call controller in the distributed call system, and the mode corresponding to the third call controller; determining the subsequent backup call controller according to the mode corresponding to the third call controller; wherein, when the mode corresponding to the third call controller is stable, determining the third call controller as the subsequent backup call controller in the distributed call system; when the mode corresponding to the third call controller is preemptive, determining to negotiate with the third call controller to determine the subsequent backup call controller in the distributed call system.

[0029] Optionally, the modes supported by the third call controller may include stable mode and / or preemptive mode. In the present application, the mode corresponding to the third call controller may refer to a mode adopted when the third call controller is used as a standby call controller.

[0030] In combination with the first aspect, in certain implementations of the first aspect, the negotiation with the third call controller about the backup call controller includes: weighting the capability parameter of the evaluation item corresponding to the third call controller with the preset weight corresponding to the evaluation item to obtain a third score corresponding to the third call controller; when the second score is higher than or equal to the third score, determining the second call controller as the backup call controller; when the second score is lower than the third score, determining the third call controller as the backup call controller.

[0031] In a second aspect, a method for deploying a call controller is provided, which is applied to a first call controller in a distributed call system, including: receiving a first online notification message, the first online notification message is used to indicate that the second call controller is online in the distributed call system; sending a first role notification message to the second call controller, the first role notification message is used to indicate that the first call controller is the current active call controller in the distributed call system, and a mode corresponding to the first call controller; and determining the active call controller of the distributed call system according to the mode corresponding to the first call controller.

[0032] In combination with the second aspect, in certain implementations of the second aspect, the mode corresponding to the first call controller includes preemptive or stable, and determining the subsequent primary call controller according to the mode corresponding to the first call controller specifically includes: when the mode corresponding to the first call controller is the preemptive mode, negotiating with the second call controller to determine the subsequent primary call controller; when the mode corresponding to the first call controller is the stable mode, the subsequent call controller is the first call controller.

[0033] In combination with the second aspect, in certain implementations of the second aspect, the negotiation with the second call controller to determine the subsequent primary call controller includes: obtaining second capability information of the second call controller, the second capability information including capability parameters of evaluation items corresponding to the second call controller; negotiating the primary call controller based on the first capability information and the second capability information, wherein the first capability information includes the capability parameters of the evaluation items corresponding to the first call controller.

[0034] In combination with the second aspect, in certain implementations of the second aspect, the negotiation to determine the subsequent primary call controller also includes: weighting the capability parameters of the evaluation items corresponding to the first call controller with the preset weights corresponding to the evaluation items to obtain a first score corresponding to the first call controller; and weighting the capability parameters of the evaluation items corresponding to the second call controller with the preset weights corresponding to the evaluation items to obtain a second score corresponding to the second call controller; wherein, when the first score is higher than or equal to the second score, the first call controller is determined as the subsequent primary call controller; or, when the second score is higher than the first score, the second call controller is determined as the subsequent primary call controller.

[0035] According to a third aspect, a system for deploying a call controller is provided, comprising a first call controller and a second call controller in a distributed call system, wherein the first call controller is used for a first online notification message, the first online notification message being used to indicate that the second call controller is online in the distributed call system; and in response to the first online notification message, a first role message is sent to the second call controller, the first role message being used to indicate that the first call controller is the current active call controller in the distributed call system, and a mode corresponding to the first call controller; and the second call controller is used to determine the active call controller of the distributed call system according to the mode corresponding to the first call controller.

[0036] In combination with the third aspect, in certain implementations of the third aspect, the mode corresponding to the first call controller includes preemptive or stable, and determining the subsequent primary call controller according to the mode corresponding to the first call controller specifically includes: when the mode corresponding to the first call controller is the preemptive mode, the first call controller negotiates with the second call controller to determine the subsequent primary call controller; when the mode corresponding to the first call controller is the stable mode, the second call controller determines that the subsequent call controller is the first call controller.

[0037] In a fourth aspect, a call controller is provided, comprising: a receiving module for obtaining a first role notification message, wherein the first role notification message is used to indicate that the first call controller is the current active call controller in the distributed call system, and a mode corresponding to the first call controller; a processing module for determining the active call controller of the distributed call system according to the mode corresponding to the first call controller.

[0038] In the fifth aspect, a call controller is provided, including: a receiving module, used to receive a first online notification message sent by the second call controller, the first online notification message is used to indicate that the second call controller is online in the distributed call system; a sending module, used to send a first role message to the second call controller, the first role message is used to indicate that the first call controller is the current active call controller in the distributed call system, and the mode corresponding to the first call controller; a processing module, used to determine the active call controller after the distributed call system according to the mode corresponding to the first call controller.

[0039] In the sixth aspect, a call controller is provided, characterized in that it includes at least one processor, a memory and a communication interface, the communication interface is used to communicate with other communication devices, and the memory includes computer instructions. When the computer instructions are executed in the processor, the call controller is used to execute the method as described in any one of the first aspect or the second aspect above.

[0040] In a seventh aspect, a computer program is provided. When the computer program is executed in a computer, the computer is caused to execute the method as described in any implementation of the first aspect or the second aspect above.

[0041] In an eighth aspect, a computer-readable storage medium is provided, wherein the computer-readable storage medium includes computer instructions. When the computer instructions are executed in a computer, the computer executes the method as described in any implementation of the first aspect or the second aspect above. BRIEF DESCRIPTION OF THE DRAWINGS

[0042] Figure 1 It is a schematic diagram of a distributed call system provided in an embodiment of the present application.

[0043] Figure 2 It is a schematic diagram of the software structure of an electronic device provided in an embodiment of the present application.

[0044] Figure 3 It is a schematic diagram of a call controller deployment provided in an embodiment of the present application.

[0045] Figure 4 This is a schematic diagram of another call controller deployment provided in an embodiment of the present application.

[0046] Figure 5 This is a schematic diagram of another call controller deployment provided in an embodiment of the present application.

[0047] Figure 6 This is a schematic diagram of another call controller deployment provided in an embodiment of the present application.

[0048] Figure 7 This is a schematic diagram of another call controller deployment provided in an embodiment of the present application.

[0049] Figure 8 This is a schematic diagram of another call controller deployment provided in an embodiment of the present application.

[0050] Fig. 9 This is a schematic diagram of another call controller deployment provided in an embodiment of the present application.

[0051] Fig.10 It is a schematic flowchart of a call controller deployment provided in an embodiment of the present application.

[0052] Fig.11 This is a schematic flowchart of another call controller deployment provided in an embodiment of the present application.

[0053] Fig.12 This is a schematic flowchart of another call controller deployment provided in an embodiment of the present application.

[0054] Fig.13 It is a schematic diagram of a distributed call controller deployment provided in an embodiment of the present application.

[0055] Fig.14 It is a schematic diagram of a call controller mode selection interface provided in an embodiment of the present application.

[0056] Fig.15 It is a hardware structure diagram of a call controller provided in an embodiment of the present application. DETAILED DESCRIPTION

[0057] The embodiments of the present application are described below in conjunction with the drawings in the embodiments of the present application.

[0058] It should be noted that the terms used in the implementation methods of the embodiments of the present application are only used to explain the specific embodiments of the present application, and are not intended to limit the present application. In the description of the embodiments of the present application, unless otherwise specified, " / " means or, for example, A / B can mean A or B; "and / or" in this article is only a description of the association relationship of associated objects, indicating that there can be three relationships, for example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. In addition, in the description of the embodiments of the present application, unless otherwise specified, "multiple" means two or more than two, "at least one" and "one or more" mean one, two or more than two.

[0059] In the following, the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Therefore, it is defined that the "first" and "second" features may explicitly or implicitly include one or more of the features.

[0060] References to "one embodiment" or "some embodiments" etc. described in this specification mean that a particular feature, structure or characteristic described in conjunction with the embodiment is included in one or more embodiments of the present application. Thus, the phrases "in one embodiment", "in some embodiments", "in some other embodiments", "in some other embodiments", etc. that appear at different places in this specification do not necessarily refer to the same embodiment, but mean "one or more but not all embodiments", unless otherwise specifically emphasized in other ways. The terms "including", "comprising", "having" and their variations all mean "including but not limited to", unless otherwise specifically emphasized in other ways.

[0061] The technical solutions of the embodiments of the present application can be applied to various communication systems, for example: global system of mobile communication (GSM) system, code division multiple access (CDMA) system, wideband code division multiple access (WCDMA) system, general packet radio service (GPRS), long term evolution (LTE) system, LTE frequency division duplex (FDD) system, LTE time division duplex (TDD), universal mobile telecommunication system (UMTS), worldwide interoperability for microwave access (WiMAX) communication system, future fifth generation (5G) system or new radio (NR), etc.

[0062] The method for device management based on distributed scenarios provided in the embodiments of the present application can be applied to terminals, where the terminals can be, for example, mobile phones, tablet computers, wearable devices (such as smart watches, smart bracelets, smart glasses, smart jewelry, etc.), vehicle-mounted devices, augmented reality (AR) / virtual reality (VR) devices, laptop computers, ultra-mobile personal computers (UMPC), netbooks, personal digital assistants (PDA) and other electronic devices. The embodiments of the present application do not impose any restrictions on the specific types of terminals. Exemplary embodiments of the terminal include a mobile phone equipped with IOS○ R 、Android○ R Terminals for other operating systems.

[0063] To facilitate understanding, the relevant terms and concepts that may be involved in the embodiments of the present application are first introduced.

[0064] (1) Distributed call system

[0065] A distributed system is a system composed of multiple electronic devices. In a distributed system, a task can be assigned to each electronic device to complete it collaboratively. Correspondingly, in a distributed call system, at least two electronic devices are connected by wireless or wired connection to jointly perform a call task.

[0066] It should be noted that the equipment in the distributed call system can be referred to as distributed call equipment. The distributed call system is in a distributed environment, which can be a local area network or a wide area network, which is not limited in the embodiments of the present application.

[0067] (2) Component

[0068] A component is a simple encapsulation of data and methods. A component has specific properties and methods. Properties are simple accessors to component data, and methods are functions of a component.

[0069] For example, according to the functions implemented by the electronic device during a call, the electronic device can be divided according to the component dimension. For example, a mobile phone has the ability to process audio data, for example, including audio components for processing audio data, such as a microphone, a speaker, etc. A television has the ability to display video images, for example, including video components for displaying video images, such as a display screen, a camera, etc.

[0070] Figure 1 A schematic diagram of a communication system for applying a calling method provided in an embodiment of the present application. Figure 1 As shown, the communication system includes a first electronic device 100 and at least one second electronic device 200 (such as electronic device 1, electronic device 2 and electronic device 3). The communication system can also be described as a distributed system, a distributed communication system, a distributed call system, etc. The first electronic device 100 and the second electronic device 200 collaborate to complete a common task, such as a call task, based on the system.

[0071] The first electronic device 100 includes a call controller for managing the distributed call process. The call controller can also be described as a controller, a call control module, a central controller, etc. For ease of description, the electronic devices including the call controller are collectively referred to as call controllers below, and the first electronic device 100 can also be described as a call controller 100.

[0072] In some embodiments, before participating in a call process, the second electronic device in the distributed call system needs to divide and group the components it contains, and report the component grouping to the call controller, so that the call controller can call the optimal component combination during the call process to execute the call process. The process of reporting the component grouping to the call controller can also be described as a registration process, and each distributed call device registers the components it contains with the call controller to complete the registration process. The registration process is an automatic registration process, and the electronic device can automatically complete the registration process after detecting the electronic device containing the call controller. For example, Figure 3 As shown, the call controller can be located in the application framework layer.

[0073] In some embodiments, after receiving the registration of components in each distributed call device, the call controller selects a set of optimal component combinations according to the functions of each component, the components that need to be applied during the call, and the execution order, to jointly process the call task.

[0074] In the communication system, the call controller 100 and the second electronic device 200 can be connected through a wired network or a wireless network. For example, the call controller 100 can establish a short-range wireless communication connection with the above-mentioned one or more second electronic devices 200, respectively, to realize the communication function between the call controller 100 and the second electronic device 200. For example, the call controller 100 can establish a communication connection such as a Bluetooth connection, a wireless fidelity (Wi-Fi) connection, a ZigBee connection, or a near field communication (NFC) connection with the second electronic device 200. For another example, the call controller 100 can also establish a communication connection with the second electronic device 200 through a cellular network interconnection or a switching device (for example, a USB data cable or a Dock device). The embodiment of the present application does not specifically limit the connection method between devices.

[0075] In some embodiments, the call controller 100 is a master device in the communication system. The call controller 100 is used to receive registrations of various components used for calls in the distributed call system, and control the components to participate in the call process. Among them, the components used for calls include, for example, sound playback components, sound collection components, display components, network components, etc.

[0076] Exemplarily, the call controller 100 includes, for example, large-screen display devices (such as smart screens), mobile phones, tablet computers (Pads), personal computers (PCs), laptops, desktop computers, vehicle-mounted devices, wearable devices, ultra-mobile personal computers (UMPCs), netbooks, personal digital assistants (PDAs), wireless terminals in industrial control, wireless terminals in self-driving, wireless terminals in remote medical, wireless terminals in smart grids, wireless terminals in transportation safety, wireless terminals in smart cities, wireless terminals in smart homes, artificial intelligence devices and other terminal devices. The embodiments of the present application do not impose any restrictions on the specific types of the call controller 100.

[0077] In some embodiments, the second electronic device 200 is a slave device in the communication system, and includes a component for making a call. Further, the component for making a call in the second electronic device 200 can directly transmit data with the component in the call controller 100 and / or the component in the other second electronic device 200 to complete the call task.

[0078] Exemplarily, the second electronic device 200 includes, for example, a mobile phone, a large-screen display device (such as a smart screen, etc.), a tablet computer (Pad), a personal computer (PC), a laptop computer, a desktop computer, a vehicle-mounted device, a wearable device (such as a Bluetooth headset, a smart watch, etc.), a speaker, a virtual reality (VR) terminal device, an augmented reality (AR) terminal device, an ultra-mobile personal computer (UMPC), a netbook, a personal digital assistant (PDA), a wireless terminal in industrial control, a wireless terminal in self driving, a wireless terminal in remote medical, a wireless terminal in smart grid, a wireless terminal in transportation safety, a wireless terminal in a smart city, a wireless terminal in a smart home, an artificial intelligence device, and other terminal devices. The embodiment of the present application does not impose any restrictions on the specific type of the electronic device 200.

[0079] In some embodiments, the call controller 100 and the second electronic device 200 may also be referred to as distributed call devices, which are used to participate in the call process and provide a call experience for the user.

[0080] Optional, such as Figure 1 As shown, the above communication system may also include a server 300. The server 300 is used to provide a network of an operator (such as a mobile network, a telecommunications network, a Unicom network, etc.), and the call controller 100 or the second electronic device 200 uses the server 300 to make a call using the operator network. In the embodiment of the present application, the electronic device makes a call using the operator network, which can also be described as the electronic device making a call using the operator phone, the electronic device making a call using the phone application, etc., which will not be described in detail below.

[0081] Exemplarily, the server 300 may be a device or server with computing functions such as a cloud server or a network server. The server 300 may be a single server, or a server cluster consisting of multiple servers, or a cloud computing service center.

[0082] For example, Figure 2As shown, the software system of the electronic device can adopt a layered architecture, an event-driven architecture, a micro-core architecture, a micro-service architecture, or a cloud architecture. The embodiment of the present application takes the Android system of the layered architecture as an example to exemplify the software structure of the electronic device. Figure 2 It is a software structure diagram of the electronic device of the embodiment of the present application. The layered architecture divides the software into several layers, each layer has a clear role and division of labor. The layers communicate with each other through software interfaces. In some embodiments, the Android system is divided into four layers, from top to bottom, namely, the application layer, the application framework layer, the service layer, and the kernel layer.

[0083] The application layer includes applications such as voice assistant, dial pad, call interface, etc. The application framework layer provides application programming interface (API) and programming framework for applications in the application layer. The application framework layer includes some predefined functions. Figure 2 As shown, the application framework layer may include local phone management, call controller, number resolution, contact / call record storage, etc. The service layer includes cellular call service, Voip call protocol stack, etc. The kernel layer is the layer between hardware and software. The kernel layer includes display driver, audio driver, transmission control protocol (TCP) protocol stack or IP protocol stack, cellular protocol stack, codec, Bluetooth / WIFI protocol stack, etc.

[0084] The modules in the above layers can be divided into different components according to the functions they implement during the call. Figure 2 The electronic device software structure diagram shown illustrates the division of components. During a call, components can be classified into input components, number resolution components, user interaction components, and network components, for example.

[0085] The input component is used to receive user input before the call starts. And input data to other components during the call. For example, the input component can receive the user's voice command or text command. Optionally, in the software implementation of the call process, the input component may only include an output interface but not an input interface. For example, during the call, the input component sends the voice command to the number resolution component for processing without receiving data sent by other components. For example, Figure 2 As shown, the input component includes, for example, a voice assistant and a dial pad located at the application layer, which are used to send the received call information input by the user to the next component. For example, the dial pad sends the received user dialing information to the next component.

[0086] The number resolution component is used to process the data input by the input component and output the number information. Optionally, if the input data received by the number resolution component is number information, and if it is a specific number to be dialed, the number resolution component does not need to process it further and directly outputs the received number information. Optionally, if the input data received by the number resolution component is voice data, it is necessary to parse the voice data, convert the voice data into text information, and then perform semantic analysis on the text information to output the number information. Alternatively, after the semantic analysis, the user name is obtained, and then the user name is used to search for the corresponding number information in the phone book, and the determined number information is output. Exemplary, such as Figure 2 As shown, the number resolution component includes, for example, number resolution located at the application framework layer.

[0087] The network component is used to receive the number information output by the number resolution component, generate outgoing signaling based on the number information and in accordance with the protocol specifications, and perform dialing. For example, if the number information is an operator number (i.e., an ordinary mobile phone number) and the network component is a baseband processor, then according to the call protocol, the operator network is used to send outgoing signaling to other call controllers. Alternatively, if the number information is the number information in an instant messaging application and the network component is a call module in the instant messaging application, then the wireless communication network is directly used to send outgoing signaling to other call controllers. Accordingly, the network component can also receive and process received incoming signaling. Furthermore, after the call connection with the opposite call controller is established, the network component can also be used to transmit audio data and / or video data with the opposite call controller. Exemplary, such as Figure 2 As shown, the network components include, for example, a cellular call service at the service layer, a VoIP call protocol stack.

[0088] The user interaction component is used to receive the user's input data during the call, and / or output data to the user. Optionally, the user components can be divided into auditory components, visual components and interactive components according to the way the components interact with the user. For example, the auditory component can also be described as an audio component or a voice component, including audio modules such as a speaker, an earpiece, and a microphone. The visual component can also be described as a video component or an image component, including a display screen, a camera, and the like. The interactive components include a physical keyboard or a soft keyboard, controls in an application, call controller buttons, touch sensors, and the like. Among them, the auditory component can interact with the user through sound, and its input is audio data, and its output is sound that the user can perceive. The visual component can interact with the user through image data, and its input is video data, and its output is an image that the user can perceive. The interactive component can also be directly described as a control component or a tactile component, which is used to receive control commands input by the user, such as the user inputting a hang-up command by clicking on the control displayed on the display screen. Exemplary, such as Figure 2As shown, the user interaction component includes, for example, a call interface located in the application layer. For example, during a call, the call interface detects a touch operation of the user and executes a corresponding action.

[0089] It should be noted that the components included in the distributed call equipment can be either the above-mentioned software components or hardware components. For example, a physical keyboard is connected to the call controller via a cable or wireless connection, and a software agent is configured in the call controller to convert the user's input on the physical keyboard into commands. In this case, the physical keyboard cannot be divided into components separately. However, if the physical keyboard can directly convert the user's input into clear commands and send them to other components via cables or wireless connections, then the physical keyboard can be divided into components separately. In other words, after the components are divided, it must be possible to ensure clear input and output in the process of interacting with other components.

[0090] It should be noted that during a call, the data receiving capability of the above input component is optional, but it must have the data sending capability. The number resolution component, network component and user interaction component must have both data receiving capability and data sending capability.

[0091] It is understandable that the above-mentioned component division method is only an exemplary description and may also include other division methods, which are not specifically limited in the embodiments of the present application.

[0092] Generally speaking, mobile phones have a large number of components that can ensure continuous online during calls, and the processor power is sufficient. Therefore, in most cases, mobile phones are used as call controllers in distributed call systems. However, due to the high mobility of mobile phones and the different performance of different mobile phones, when mobile phones enter or move out of a network, it is easy to interrupt or exit the distributed call process in the network, resulting in a poor user experience. In addition, with the development of electronic devices, the capabilities and performance supported by many other types of electronic devices have been greatly improved. Therefore, in many cases, there will be multiple electronic devices equipped with call controllers participating in distributed calls. However, in order to avoid the possibility of call execution errors when multiple call controllers work at the same time, generally only one call controller is set to perform tasks in the distributed call system, which requires selecting one from multiple call controllers as the main call controller.

[0093] To meet this demand, an embodiment of the present application provides a method for deploying a call controller, by deploying the main call controller according to the mode adopted by the call controller and preset criteria to ensure the stability and effect of distributed calls.

[0094] It should be understood that the primary call controller mentioned in the embodiment of the present application refers to a call controller that plays the role of a decision-making center in a distributed call system, such as being able to schedule various devices and / or components participating in a distributed call, and distribute different services involved in the call process (such as audio playback, video playback, audio acquisition, video acquisition, etc.) to different devices and / or components to ensure the smooth progress of the distributed call. Compared with other call controllers, the primary call controller refers to a call controller that is in working state during the distributed call process, while other call controllers can participate in the distributed call as a backup call controller after the ordinary device.

[0095] For ease of understanding, the modes supported by the call controller are introduced below. Exemplarily, the call controller provided in the embodiment of the present application can be divided into a stable call controller that supports a stable mode, a preemptive call controller that supports a preemptive mode, and a call controller that supports both a stable mode and a preemptive mode. However, it should be understood that for a call controller that supports both a stable mode and a preemptive mode, it corresponds to one of the modes when it works (that is, one of the stable mode and the preemptive mode).

[0096] Stable call controller: Taking the deployed main call controller as an example, if the main call controller currently deployed in the distributed call system is a stable call controller, then when other call controllers join or exit the system later, the main call controller will not be reselected, thereby ensuring the stability of the main call controller role in the system, and then ensuring the stability of distributed calls.

[0097] Preemptive call controller: Taking the deployed primary call controller as an example, if the primary call controller currently deployed in the distributed call system is a preemptive call controller, then when a new call controller joins the system later, the call controllers in the entire system will select the call controller with the best capabilities as the new decision center based on preset criteria, thereby ensuring that the call controller used by the distributed call system is always the call controller with the best performance.

[0098] In some embodiments, the modes supported by the call controller in the embodiments of the present application may be pre-set modes before the call controller leaves the factory, for example, by writing stable and / or preemptive program instructions into the call control module. Optionally, the call control module may correspond to, for example, Figure 2 In some embodiments, the call control module can also be located at Figure 2 The application layer shown is not limited in this application.

[0099] For ease of understanding, the following describes the call controller deployment scenario provided in the embodiment of the present application in conjunction with the accompanying drawings.

[0100] For example, Figure 3 As shown, it is a schematic diagram of a distributed call system provided by an embodiment of the present application. The distributed call system includes various components currently in an online state and a newly online call controller 1. Among them, the various components currently online can be components participating in the distributed call, for example, they can include network components, number resolution components and other components (such as registration components, subscription components, etc.).

[0101] It should be understood that before the call controller 1 comes online, since there is no main call controller in the current system as a decision center to schedule components in the distributed call system, the various components in the system do not support distributed calls.

[0102] In some embodiments, after the call controller 1 goes online, it can broadcast an online notification message to surrounding electronic devices and / or components. In addition, the call controller 1 can preset a first time, and if it does not receive a response message sent by the active call controller within the first time, indicating that there is no active call controller in the current system, the call controller 1 can automatically become the call controller in the system.

[0103] Specifically, if the call controller 1 determines that it has not received a response message from other call controllers within the first time, the call controller 1 can broadcast its own role and address to the surrounding devices and / or components, so that the surrounding electronic devices and / or components can register their capabilities on the call controller 1. Furthermore, the call controller 1 can periodically, such as every 1 second, broadcast a heartbeat message to the surrounding devices and / or components, and the heartbeat message is used to indicate the role and address of the main call controller. When other electronic devices and / or components come online, the heartbeat message can be unicast to the call controller 1 in a targeted manner, such as sending registration information to the call controller 1 to register its capabilities.

[0104] It should be understood that the mode adopted by the primary call controller can be stable or preemptive. When new call controllers continue to be put online in the distributed call system, the embodiment of the present application deploys the call controllers accordingly according to the mode of the primary call controller.

[0105] For example, Figure 4 As shown, it is a schematic diagram of a primary call controller deployment process provided in an embodiment of the present application.

[0106] It should be understood that Figure 4 The system architecture in Figure 3 Based on the system architecture in, that is, at this time, there is already an online call controller 1 in the distributed call system as the main call controller. In addition, Figure 4 The system also includes a newly launched call controller 2.

[0107] In some embodiments, after the call controller 2 comes online, it can broadcast an online notification message, and the online notification message can include, for example, the communication address of the call controller 2 (such as the IP address and port number of the call controller 2).

[0108] Specifically, the call controller 2 can send the online notification message to a preset broadcast address, where the broadcast address can be, for example, at least one of the multicast addresses, such as at least one of the multicast addresses 224.0.0.1 to 224.0.0.9; other electronic devices will monitor the messages on the preset broadcast address, and thus can obtain the online notification message sent by the call controller 2 from the broadcast address.

[0109] In some embodiments, when the active call controller (call controller 1) receives the online notification message broadcast by call controller 2, it can send a role notification message to call controller 2 in response to the online notification message, and the role notification message is used to indicate that call controller 1 is the active call controller in the current system and the mode adopted by the active call controller. Optionally, the role notification message can also include the communication address of the active call controller.

[0110] Optionally, the active call controller may also send the role notification message to a preset broadcast address; the call controller 2 may obtain the role notification message from the broadcast address.

[0111] In some embodiments, call controller 2 can learn the mode adopted by the current active call controller according to the role notification message, and determine whether to reselect the active call controller according to the mode of the active call controller. Among them, when the active call controller supports the stable mode, the active call controller in the system is still call controller 1, and each call controller does not need to reselect the active call controller; when the active call controller supports the preemptive mode, call controller 1 and call controller 2 reselect the active call controller. In other words, when the active call controller is preemptive, the newly online call controller can participate in the negotiation to become the new call controller.

[0112] Exemplarily, as shown in Table 1, the mode adopted by the main call controller can be stable or preemptive, and the mode adopted by the newly launched call controller 2 can also be stable or preemptive. According to the modes adopted by the main call controller (call controller 1) and the newly launched call controller (call controller 2), it can be divided into the four situations shown in Table 1.

[0113] Table 1

[0114] serial number Mode used by call controller 1 Mode used by call controller 2 Scenario 1 Stable Stable Scenario 2 Stable Preemptive Scenario 3 Preemptive Stable Scenario 4 Preemptive Preemptive

[0115] For Situation 1 and Situation 2 in Table 1: When call controller 2 learns that the mode adopted by the current active call controller is stable based on the role notification message, call controller 2 will not negotiate to become the new active call controller. In other words, call controller 1 and call controller 2 will not perform the process of reselecting a new active call controller, call controller 1 will still serve as the active call controller, and call controller 2 can participate in distributed calls as a common device.

[0116] It should be understood that the above process is for a stable primary call controller. When a new call controller comes online, the newly online call controller is directly used as a normal device, thereby ensuring the stability of the primary call controller role in the distributed call system, and then ensuring the stability of distributed calls and improving the user experience.

[0117] For situation 3 and situation 4 in Table 1: when call controller 2 learns that the mode adopted by the current active call controller is preemptive based on the role notification message, call controller 1 and call controller 2 can reselect a new active call controller.

[0118] In some embodiments, when call controller 1 supports preemption, call controller 1 may send capability information of the call controller to call controller 2. Specifically, the capability information may be carried in a role notification message sent by call controller 1; or, the capability information may be sent separately by call controller 1. The capability information includes capability parameters corresponding to preset evaluation items, such as the number of cores (capability parameter) corresponding to CPU performance (evaluation item).

[0119] In some embodiments, when call controller 2 learns that call controller 1 supports preemptive based on a role notification message from call controller 1 , call controller 2 may send capability information of call controller 2 to call controller 1 .

[0120] The call controller 1 and the call controller 2 may send their respective capability information by broadcast or unicast, which is not limited here.

[0121] In some embodiments, after call controller 1 and call controller 2 obtain each other's capability information, they can respectively select the primary call controller based on preset criteria. Specifically, the process of call controller 1 and call controller 2 selecting the primary call controller can include: performing weighted calculation on the capability parameters corresponding to the evaluation items of call controller 1 and the preset weights corresponding to the evaluation items to obtain score 1 of the call controller, and performing weighted calculation on the capability parameters corresponding to the evaluation items of call controller 2 and the corresponding preset weights to obtain score 2 of call controller 2; comparing score 1 and score 2, and selecting the call controller with the highest score as the new primary call controller.

[0122] Specifically, the preset evaluation items in the embodiments of the present application may include, for example, one or more of the following:

[0123] 1) Number of components. The number of components specifically refers to the number of components included in the device where the call controller is located, such as network components, number resolution components, speaker components, display components, etc. The more components there are, the less data transmission across devices can be reduced, and the more likely it is to be selected as the primary call controller.

[0124] 2) Processor performance. The processor performance may specifically include the number of cores and the main frequency of the processor. The more cores a processor includes and the higher the main frequency, the more likely the device is to be preferred as the primary call controller. The processor may be, for example, a central processing unit (CPU).

[0125] 3) Memory capacity. The memory capacity may specifically include the capacity of the random access memory (RAM) of the device where the call controller is located. The larger the memory, the more likely it is to be selected as the primary call controller.

[0126] 4) Network quality: The network quality may specifically include the network bandwidth when the device where the call controller is located communicates.

[0127] 5) Video quality: Video quality may specifically include the size of the display screen of the device where the call controller is located and the resolution of the video image.

[0128] In some embodiments, for example, if the video quality of call controller 1 (such as video resolution of 1080P) is higher than the video quality of call controller 2 (such as video resolution of 720P), the capability parameter corresponding to the video quality of call controller 1 is set to 2, and the capability parameter corresponding to the video quality of call controller 2 is set to 1.

[0129] It should be understood that by resetting the video quality corresponding capability parameters according to the call controller video quality (such as video resolution), it is possible to avoid the actual video quality value being too different from the parameters of other evaluation items, resulting in the final scoring result being determined by the video quality evaluation item and failing to highlight the impact of other evaluation items on the scoring result. The above processing can make the scoring result more accurately reflect the performance of the call controller.

[0130] Optionally, if other evaluation items have similar problems, the above processing can also be performed.

[0131] 6) Rates. The rates can be set based on the type of network to which the call controller is connected. For example, when the device is connected to broadband (such as wired broadband or Wi-Fi), the capability parameter corresponding to the rate is set to 2, and when the device is connected to a cellular network, the capability parameter corresponding to the rate is set to 1.

[0132] 7) Power, etc. Specifically, the power may include a power value or a power supply mode of the device, such as whether the device is powered by a battery of the device itself or whether the device is powered by plugging in a power source, wherein the value corresponding to the battery power supply mode may be set to 1, and the value corresponding to the plugging in power mode may be set to 2; in addition, when all devices where the call controllers are located are powered by batteries, the power may be the current power value of the device.

[0133] Exemplarily, as shown in Table 2, there are capability parameters corresponding to different evaluation items and preset weights corresponding to different evaluation items.

[0134] Table 2

[0135]

[0136] In some embodiments, if an evaluation item of a certain device is better than an evaluation item of another device, such as: having more components, better CPU performance (for example, more cores, higher main frequency), larger memory capacity, wider network bandwidth, better video quality (larger display screen size, higher video image resolution, etc.), lower charges (such as connecting to broadband) or more power (such as plug-in power supply), etc., then it means that its capabilities are better and it is more likely to serve as the primary call controller.

[0137] Exemplarily, as shown in Table 3, exemplary capability parameters of each evaluation item of call controller 1 and call controller 2, and exemplary preset weights corresponding to each evaluation item.

[0138] Table 3

[0139]

[0140] According to the preset criteria and the results shown in the above table, the scores of call controller 1 and call controller 2 can be calculated according to the following formula (1) and formula (2), respectively:

[0141] 3×30%+3×2.54×20%+64×15%+100×10%+6.1×2×10%+1×10%+100%×5%=23.394(1)

[0142] 4×30%+4×3.31×20%+32×15%+200×10%+10.8×1×10%+2×10%+80%×5%=29.968 (2)

[0143] From the scoring results, it can be seen that the score of call controller 2 is higher than that of call controller 1, which means that the performance of call controller 2 is better than that of call controller 1. Therefore, call controller 2 can be used as the new primary call controller.

[0144] It should be understood that the evaluation items listed in the embodiments of the present application and the preset weights corresponding to each evaluation item are only examples. In some embodiments, the number, type and corresponding preset weights of the evaluation items can be flexibly set as needed. For example, the evaluation items can also include the audio quality of the device where the call controller is located. The audio quality can be specifically represented by the size of the sound cavity of the speaker on the device, or it can be represented by the type of device, such as the value corresponding to the audio quality of the speaker is set to 3, the value corresponding to the audio quality of the mobile phone is set to 2, the value corresponding to the audio quality of the headset is set to 1, etc. This application does not limit this.

[0145] In some embodiments, after the above process of reselecting the primary call controller (or the process of negotiating to become the new primary call controller), the call controller 1 can be downgraded to a common device after determining that it is no longer the primary call controller according to the scoring results. Specifically, the call controller 1 can delete the electronic devices and / or components with registered capabilities, or mark the registered capabilities of the electronic devices and / or components as invalid; and the call controller 1 no longer broadcasts notification messages including its role as the primary call controller and its address to surrounding devices.

[0146] In some embodiments, after the above process of reselecting the primary call controller, the call controller 2 can determine itself as the new primary call controller according to the scoring result; thereafter, the call controller 2 can periodically, such as broadcasting a notification message to other devices and / or components in the distributed call system every 1 second, and the notification message can include the role of the call controller 2 (new primary call controller) and the address of the call controller 2. The peripheral devices and / or components of the primary call controller can register their capabilities on the new call controller according to the notification message, so that the call controller 2 can be used as a new decision center to schedule distributed calls.

[0147] In some embodiments, if there are new electronic devices and / or components online later, the new electronic devices and / or components can send unicast messages in a targeted manner based on the notification messages periodically broadcast by the call controller 2, such as sending registration messages to the call controller 2 to register capabilities.

[0148] According to the above method, for the preemptive primary call controller, when a new call controller comes online, each call controller selects the call controller with the best capability as the new primary call controller according to preset criteria, so that the primary call controller is served by the device with the best capability, thereby ensuring the quality of distributed calls and improving the user experience.

[0149] In some possible scenarios, when the active call controller goes offline, if there are other call controllers in the system, the other call controllers can also negotiate to become the new active call controller. It should be understood that the active call controller can go offline in two situations: active offline and passive offline.

[0150] Regarding the situation where the active call controller actively goes offline: If the active call controller actively goes offline, it will broadcast an offline notification message before going offline; in response to the offline notification message, other call controllers can negotiate to become the new active call controller.

[0151] Regarding the situation where the main call controller is passively offline: If the main call controller is passively offline, such as the main call controller leaves the LAN coverage and the network connection is disconnected, other call controllers in the system do not receive the heartbeat message sent by the main call controller within the preset second time, indicating that the main call controller has been offline, then other call controllers can renegotiate to become the new main call controller.

[0152] The following describes the call controller deployment scenario when the primary call controller is offline in conjunction with the accompanying drawings.

[0153] For example, a possible scenario when the primary call controller goes offline is: after the primary call controller goes offline, there is still a call controller in the distributed call system.

[0154] For example, Figure 5 FIG. 1 is a schematic diagram of a deployment process of a call controller provided in an embodiment of the present application. Figure 3 The call controller 1 is the main call controller, and the call controller 2 participates in the distributed call as a common device.

[0155] For example, Figure 5 As shown, when the call controller 2 learns that the main call controller is offline, the call controller 2 can broadcast its own capability information to surrounding electronic devices and / or components.

[0156] In some embodiments, if call controller 2 does not receive a response message from other call controllers within a preset second time, the response message may be, for example, capability information broadcasted by other call controllers themselves, then call controller 2 automatically becomes the new active call controller in the distributed call system.

[0157] Specifically, the call controller 2 can broadcast its role and address, so that the surrounding electronic devices and / or components can register their capabilities on the call controller 2. Afterwards, the new main call controller (i.e., call controller 2) can distribute the services of the distributed calls according to the registered capabilities of each electronic device and / or component, so as to ensure the smooth progress of the distributed calls. The specific working process of the main call controller can be found in the introduction of the above-mentioned related content, which will not be repeated here.

[0158] According to the above method, when the main call controller goes offline, other call controllers in the system can automatically become new main call controllers, thereby ensuring the quality of distributed calls and improving the user experience.

[0159] For another example, another possible scenario when the main call controller goes offline is: after the main call controller goes offline, the distributed call system further includes multiple call controllers.

[0160] For example, Figure 6 FIG. 1 is a schematic diagram of another deployment process of a call controller provided in an embodiment of the present application. Figure 6 The call controller 1 is the main call controller, and the call controller 2 and the call controller 3 are other call controllers in the system.

[0161] In some embodiments, if the call controller 2 and the call controller 3 learn that the active call controller is offline, the call controller 2 and the call controller 3 may negotiate to become the new active call controller.

[0162] Specifically, the process of call controller 2 and call controller 3 negotiating to become the new active call controller may include: when call controller 2 and call controller 3 learn that the active call controller is offline, call controller 2 broadcasts a broadcast message 1 including its own capability information, and call controller 3 broadcasts a broadcast message 2 including its own capability information; thereafter, call controller 2 obtains the capability information of call controller 3 based on the broadcast message of call controller 3, and then selects a call controller with better capability as the new active call controller according to preset criteria; similarly, call controller 3 obtains the capability information of call controller 2 based on the broadcast message of call controller 2, and then selects a call controller with better capability as the new active call controller according to preset criteria.

[0163] According to the call controller deployment method provided in the embodiment of the present application, when the primary call controller goes offline, other call controllers in the system can automatically select a new primary call controller according to preset criteria, thereby ensuring the quality of distributed calls and improving the user experience.

[0164] In addition to the single active call controller scenario described above, the method for deploying a call controller provided in the embodiment of the present application can also simultaneously deploy two call controllers in a distributed call system, including a primary call controller and a backup call controller (hereinafter referred to as the primary-backup call controller scenario). By deploying the primary call controller and the backup call controller at the same time, when the primary call controller goes offline, the backup call controller can quickly take over the role of the primary call controller to ensure the smoothness and stability of distributed calls.

[0165] Exemplarily, electronic devices and / or components in the distributed call system can register their capabilities on both the active call controller and the standby call controller. Furthermore, if an electronic device and / or component initiates a distributed call, the request data can be unicasted to the active call controller and the standby call controller. This ensures that when the active call controller goes offline, the standby call controller can seamlessly take over the tasks of the active call controller.

[0166] The following embodiments describe the call controller deployment process in the active and standby call controller scenario with reference to the accompanying drawings.

[0167] For example, Figure 7 As shown, a schematic diagram of a call controller deployment process provided in an embodiment of the present application.

[0168] exist Figure 7 The distributed call system shown includes the currently online main call controller (i.e., call controller 1), the newly online call controllers 2 and 3, and components in the system, such as network components, number resolution components, and other components. The modes adopted by call controllers 1, 2, and 3 can be stable or preemptive.

[0169] First, referring to the different scenarios in Table 1, the deployment process of the primary and standby call controllers when the call controller 2 is online but the call controller 3 is not online is introduced.

[0170] In some embodiments, referring to Situation 1 and Situation 2 in Table 1, call controller 1 is of stable type. If call controller 2 is newly online, regardless of whether the mode adopted by call controller 2 is stable or preemptive, call controller 1 is still the main call controller, and call controller 2 becomes the backup call controller.

[0171] In some embodiments, referring to the scenarios 3 and 4 in Table 1, the call controller 1 is preemptive. If the call controller 2 is newly online, whether the mode adopted by the call controller 2 is stable or preemptive, the call controller 2 can negotiate with the call controller 1 to determine a new active call controller, wherein the call controller with the best capability can become the new active call controller, and the call controller with the poorest capability can become the standby call controller. The specific negotiation process can refer to the above-mentioned related content, which will not be repeated here.

[0172] For ease of understanding, it is assumed here that the new active call controller is still call controller 1, and the standby call controller is call controller 2. Later, if a call controller 3 is newly online, the modes supported by different call controllers can be specifically divided into several situations as shown in Table 4.

[0173] Table 4

[0174]

[0175] For example, in scenario 1 and scenario 2 shown in Table 4, both the active call controller and the standby call controller adopt the stable mode. At this time, if a call controller 3 is online, no matter the call controller 3 supports the stable mode or the preemptive mode, the call controller 3 will not negotiate the active call controller or the standby call controller. At this time, the roles of the active and standby call controllers in the distributed call system remain stable, thereby ensuring the stability of the distributed call.

[0176] For example, in Scenario 3 and Scenario 4 shown in Table 4, the active call controller adopts a stable mode and the backup call controller adopts a preemptive mode. Afterwards, if call controller 3 comes online, call controller 3 can negotiate to become the new backup call controller, while the active call controller remains call controller 1.

[0177] For example, in scenarios 5 and 6 shown in Table 4, the primary call controller adopts the preemptive mode and the backup call controller adopts the stable mode. Afterwards, if a call controller 3 comes online, regardless of whether the call controller 3 supports the stable mode or the preemptive mode, the call controller 3 can negotiate to become the new primary call controller, and the backup call controller is still call controller 2.

[0178] For example, in scenarios 7 and 8 shown in Table 4, both the primary call controller and the backup call controller adopt preemptive mode. Afterwards, if call controller 3 comes online, call controller 3 can renegotiate with call controller 1 and call controller 2. In order of capabilities, the one with the best capability will be used as the new primary call controller, the one with the poorer capability will be used as the new backup call controller, and the one with the worst performance can be downgraded to an ordinary device.

[0179] According to the method for selecting a call controller provided in an embodiment of the present application, by setting the call controller to two modes, stable and preemptive, and setting corresponding deployment criteria for the call controllers in the two different modes, when there are multiple call controllers in a distributed call system, it is ensured that there is a call controller in a working state, so as to avoid call process execution errors caused by mutual interference when multiple call controllers work at the same time, thereby improving the stability and call quality of distributed calls.

[0180] The following describes a scenario in which a primary call controller goes offline when there are primary and backup call controllers in the system in conjunction with the accompanying drawings.

[0181] It should be understood that the situations in which the main call controller goes offline can include active offline and passive offline. Among them, if the main call controller goes offline actively, it will broadcast an offline notification message to peripheral devices and / or components before going offline; in response to the offline notification message, the backup call controller can automatically become the main call controller. If the main call controller goes offline passively, such as when the main call controller leaves the coverage of the local area network and the network connection is disconnected, if the backup call controller in the system does not receive the heartbeat message sent by the main call controller within the preset second time, it means that the main call controller has gone offline, and the backup call controller can automatically become the main call controller.

[0182] Exemplarily, a possible scenario is: the main call controller is offline, and the system still has a backup call controller and a call controller that serves as a common device.

[0183] For example, Figure 8 FIG. 1 is a schematic diagram of another primary and standby call controller deployment process provided by an embodiment of the present application. Figure 8 In the system, call controller 1 is the main call controller, call controller 2 is the backup call controller, and call controller 3 is the call controller used as a common device.

[0184] In some embodiments, after call controller 1 goes offline, call controller 2 automatically takes on the role of the active call controller and takes over the tasks of the active call controller. If call controller 2 is stable, it will always maintain its role as the active call controller, and at this time, call controller 3 in the system can automatically become the standby call controller; if call controller 2 is preemptive, call controller 2 and call controller 3 can select a new active call controller according to preset criteria, and another call controller that has not become the active call controller can be used as the standby call controller.

[0185] Exemplarily, another possible scenario is: the main call controller is offline, and the system still has a backup call controller and multiple call controllers that serve as ordinary devices.

[0186] For example, Fig. 9 FIG. 1 is a schematic diagram of another primary and standby call controller deployment process provided by an embodiment of the present application. Fig. 9 In the system, call controller 1 is the main call controller, call controller 2 is the backup call controller, and call controller 3 and call controller 4 are call controllers used as common devices.

[0187] In some embodiments, after call controller 1 goes offline, call controller 2 automatically takes on the role of the active call controller. If call controller 2 is stable, it will always maintain its role as the active call controller. At this time, call controller 3 and call controller 4 in the system can negotiate to become the new standby call controller; if call controller 2 is preemptive, call controller 2, call controller 3 and call controller 4 can select the new active call controller and standby call controller according to preset criteria, such as determining the new active call controller and standby call controller according to the negotiated capability score.

[0188] It should be understood that during the time period between call controller 1 going offline and a new call controller being selected, call controller 2 can serve as the main call controller to schedule electronic devices and / or components of the distributed call system to ensure the smoothness and stability of the distributed calls.

[0189] According to the above method, by setting up a main call controller and a backup call controller in a distributed call system, it can be achieved that after the main call controller goes offline, the backup call controller can quickly take over the work of the main call controller, thereby ensuring the smoothness and stability of distributed calls.

[0190] The above describes some possible scenarios of the method for deploying a call controller provided in the embodiment of the present application and the deployment process in different scenarios. The following describes the specific process of the call controller deployment process in the embodiment of the present application in conjunction with the accompanying drawings.

[0191] For example, Fig.10 FIG. 1 is a schematic flow chart of a call controller deployment process provided by an embodiment of the present application. The process can be performed by a newly launched second call controller in a distributed call system, and specifically includes the following steps:

[0192] S1001, obtaining a first role notification message sent by a first call controller, where the first role notification message is used to indicate that the first call controller is a current active call controller in a distributed call system, and a mode corresponding to the first call controller.

[0193] In some embodiments, after the second call controller goes online, a first online notification message may be sent, where the first online notification message is used to indicate that the second call controller is online. Exemplarily, after the second call controller goes online, the first online notification message may be broadcast.

[0194] Among them, the mode corresponding to the first call controller includes stable mode or preemptive mode.

[0195] In some embodiments, after receiving the first online notification message, the first call controller in the system may respond to the first call controller, wherein the first call controller is the current active call controller in the distributed call system. Specifically, after receiving the first online notification message, the first call controller may broadcast a first role notification message.

[0196] In some embodiments, the second call controller receives the first role notification message, and learns, based on the first role notification message, that the mode corresponding to the first call controller is stable or preemptive.

[0197] It should be understood that the first call controller as the primary call controller can periodically broadcast a heartbeat message, and the heartbeat message includes the indication information of the first call controller as the primary call controller role and the communication address of the first call controller. Optionally, the heartbeat message can also include the mode corresponding to the first call controller, in which case the first role notification message can also be a heartbeat message.

[0198] S1002: Determine a primary call controller for the distributed call system according to a mode corresponding to the first call controller.

[0199] The mode corresponding to the first call controller includes preemptive mode or stable mode. When the mode corresponding to the first call controller is stable mode, the first call controller still serves as the primary call controller; when the mode corresponding to the first call controller is preemptive mode, the primary call controller is reselected.

[0200] In some embodiments, when the first call controller is a stable call controller, the second call controller and the second call controller will not reselect the primary call controller, and the first call controller will still serve as the primary call controller in the system.

[0201] In some embodiments, when the first call controller is a preemptive call controller, the second call controller and the second call controller reselect the primary call controller.

[0202] Exemplarily, the first call controller and the second call controller may reselect the primary call controller by executing a negotiation process to select a call controller with better capabilities as the new primary call controller.

[0203] For example, Fig.11 FIG. 1 is a schematic diagram of another call controller deployment process provided by an embodiment of the present application. The process may include the following steps:

[0204] S1101, obtaining first capability information of a first call controller, where the first capability information includes capability parameters of evaluation items corresponding to the first call controller.

[0205] In some embodiments, the first call controller may send the first capability information, for example, by broadcasting. Optionally, when the first call controller is preemptive, the first capability information may be carried in the first role message.

[0206] S1102: Reselect a primary call controller according to the first capability information and the second capability information, wherein the second capability information includes capability parameters of the evaluation items corresponding to the second call controller.

[0207] Specifically, the capability parameters of the evaluation items of the first call controller are weighted with the preset weights corresponding to the evaluation items to obtain a first score corresponding to the first call controller; and the capability parameters of the evaluation items of the second call controller are weighted with the preset weights corresponding to the evaluation items to obtain a second score corresponding to the second call controller; wherein, when the first score is higher than or equal to the second score, the first call controller is selected as the primary call controller; or, when the second score is higher than the first score, the second call controller is selected as the primary call controller.

[0208] In some embodiments, the evaluation items may include, for example, at least one of the following: 1) the number of components of the device where the call controller is located; 2) the number of cores and the main frequency of the central processing unit of the device where the call controller is located; 3) the memory capacity of the device where the call controller is located; 4) the current network connection quality of the device where the call controller is located; 5) the video quality of the device where the call controller is located; 6) the corresponding communication charges of the device where the call controller is located.

[0209] When the distributed call system presets a main call controller and a backup call controller, in some embodiments, the second call controller can also be used as a backup call controller. Including the following situations: 1) There is only one main call controller in the system, and the main call controller supports the stable mode, then the newly launched second call controller can automatically serve as the backup call controller; 2) There is only one main call controller in the system, and the main call controller supports the preemptive mode, then the first call controller (the current main call controller) negotiates with the second call controller for the main call controller. If the capability of the first call controller is better than that of the second call controller, the first call controller still serves as the main call controller, and the second call controller serves as the backup call controller; 3) There is one main call controller and one backup call controller (such as the third call controller) in the system, where the main call controller is stable and the backup call controller is preemptive. preemptive mode, the second call controller can negotiate with the third call controller to become the new backup call controller; 4) there is a main call controller and a backup call controller (such as the third call controller) in the system, where the main call controller and the backup call controller are both preemptive, then the first call controller, the second call controller and the third call controller can reselect the main call controller and the backup call controller, and determine the corresponding role according to the capability score of each call controller. If the scoring result is: the first call controller> the second call controller> the third call controller, then the first call controller still serves as the main call controller, the second call controller serves as the new backup call controller, and the third call controller can participate in distributed calls as an ordinary device.

[0210] Taking the above scenario 3) as an example, the negotiation process between the second call controller and the standby call controller is introduced.

[0211] For example, Fig.12 FIG. 1 is a schematic diagram of another process of call controller deployment provided by an embodiment of the present application. The process includes the following steps:

[0212] S1201, receiving a second role message sent by a third call controller, where the second role message is used to indicate that the third call controller is a backup call controller in the distributed call system, and a mode corresponding to the third call controller.

[0213] S1202, when the mode corresponding to the third call controller is stable, the third call controller still serves as a backup call controller; when the mode corresponding to the third call controller is preemptive, the backup call controller is reselected.

[0214] In some embodiments, the reselection of the backup call controller may include: the second call controller may obtain the third capability information of the third call controller, and the third capability information includes the capability parameters of the evaluation items corresponding to the third call controller; the second call controller reselects the backup call controller based on the third capability information and the second capability information.

[0215] Specifically, the second call controller can weight the capability parameter of each evaluation item of the third call controller with the preset weight corresponding to each evaluation item to obtain a third score corresponding to the third call controller; when the third score is higher than or equal to the second score, the third call controller is selected as the backup call controller; when the third score is lower than the second score, the second call controller is selected as the backup call controller.

[0216] Similarly, on the third call controller side, the process of determining the backup call controller can also be carried out based on the capability information of the second call controller and the capability information of the third call controller. This process is similar to the above process on the second call controller side and will not be repeated here.

[0217] According to the method for selecting a call controller provided in an embodiment of the present application, by setting the call controller to two modes, stable and preemptive, and setting corresponding deployment criteria for the call controllers in the two different modes, it is ensured that when there are multiple call controllers in the call system, there is a call controller in working state to avoid call process execution errors caused by mutual interference when multiple call controllers work at the same time, thereby improving the stability and call quality of distributed calls.

[0218] It should be understood that the call controller involved in the embodiments of the present application may be a physical call controller that implements the call controller function through one device, or may be a virtual call controller composed of various components located on different devices. When a device only has some components that perform the call controller function and cannot perform the call controller function alone, a virtual call controller may also be selected, wherein the various components of the virtual call controller may be distributed on different devices.

[0219] like Fig.13 As shown, the call controller provided in the embodiment of the present application can also be a virtual call controller composed of various distributed components located on different devices. Examples of possible components of the component modules are shown in Table 5.

[0220] Table 5

[0221]

[0222] The computing power of the network component only needs to meet the functional requirements of the network component, and the network component can be registered as a data transfer module at the same time. The number resolution component can also be registered as a distribution module, responsible for coordinating the service distribution of each component.

[0223] Reference Fig.13 In some embodiments, when all components of the call controller are registered and online, it is equivalent to the virtual call controller being online, and the distributed call system can conduct distributed calls.

[0224] Through the above method, when no device in the network can completely have all the components of the distributed call controller, multiple devices can jointly complete a virtual call controller to enable distributed calls. The virtual call controller can be used as an alternative when the call controller cannot be completed on one device.

[0225] It should be understood that the call controller in the embodiment of the present application can be pre-set to a stable mode or a preemptive mode (such as a mode set before leaving the factory). The above-mentioned deployment process of the call controller does not require manual operation by the user. The call controllers can determine the primary call controller and / or the backup call controller according to preset rules.

[0226] In some embodiments, the call controller in the embodiments of the present application can also preset two modes: stable mode and preemptive mode, and the user manually selects the mode of the call controller. Fig.14 As shown, the user can choose to set the mobile phone as the main call controller or the backup call controller in the call controller column in the settings of the mobile phone. For example, the user can click the start control of the main call controller to make the mobile phone the main call controller; at this time, the start control of the backup call controller remains closed (the open state and the closed state are shown in FIG. Fig.14 ). After that, the user can also click the selection control corresponding to stable or preemptive in the drop-down bar of the primary call controller to determine the mode of the primary call controller. In order to make users understand the meaning of stable and preemptive primary call controllers and the difference between the two, Fig.14 The interface shown may also include textual introductions of stable and preemptive modes. For example, the introduction of the stable mode may be "When the stable mode of the call controller is turned on, the addition or exit of other call controllers will not affect the role of this device as the primary call controller", and the introduction of the preemptive mode may be "When the call controller preemptive mode is turned on, when other call controllers with better performance are added, the role of the primary call controller may be switched to the new call controller."

[0227] When the user chooses to use the mobile phone as the backup call controller, the mode selection drop-down bar of the backup call controller can be Fig.14The above is similar to the above, and will not be repeated here.

[0228] It should be understood that Fig.14 The interface shown is only an example. In actual application, the way in which the user selects the call controller mode is not limited to this, and this application does not limit it.

[0229] In other embodiments, if the call controllers participating in distributed calls share the same user account, the user can log in to the account and set the mode corresponding to all call controllers under the account, for example, setting the mode corresponding to all call controllers under the unified account to stable.

[0230] For example, Fig.15 As shown, it is a schematic diagram of the structure of a call controller provided in an embodiment of the present application. The call controller 1500 includes at least one processor 1501, a memory 1502 and a communication interface 1503, wherein the processor 1502, the memory 1502 and the communication interface 1503 can be connected via a universal serial bus (USB) 1504. The memory 1502 includes computer instructions, and when the computer instructions are executed in the processor 1501, the following steps are implemented: obtaining a first role notification message sent by a first call controller, the first role notification message is used to indicate that the first call controller is the current active call controller in the distributed call system, and the mode corresponding to the first call controller; according to the mode corresponding to the first call controller, determining the active call controller of the distributed call system.

[0231] In some embodiments, when the computer instructions are executed in the processor 1501, the following steps are implemented: the mode corresponding to the first call controller includes preemptive mode or stable mode, and the determining of the subsequent primary call controller according to the mode corresponding to the first call controller specifically includes: when the mode corresponding to the first call controller is the preemptive mode, negotiating with the first call controller to determine the subsequent primary call controller; when the mode corresponding to the first call controller is the stable mode, determining the subsequent call controller to be the first call controller.

[0232] In some embodiments, when the computer instructions are executed in the processor 1501, the following steps are implemented: the negotiation with the first call controller about the primary call controller includes: obtaining first capability information of the first call controller, the first capability information including capability parameters of the evaluation items corresponding to the first call controller; negotiating with the primary call controller based on the first capability information and second capability information, the second capability information including capability parameters of the evaluation items corresponding to the second call controller.

[0233] In some embodiments, when the computer instructions are executed in the processor 1501, the following steps are implemented: the negotiation to determine the subsequent primary call controller also includes: weighting the capability parameters of the evaluation items corresponding to the first call controller with the preset weights corresponding to the evaluation items to obtain a first score corresponding to the first call controller; and weighting the capability parameters of the evaluation items corresponding to the second call controller with the preset weights corresponding to the evaluation items to obtain a second score corresponding to the second call controller; wherein, when the first score is higher than or equal to the second score, the first call controller is determined as the subsequent primary call controller.

[0234] In some embodiments, the evaluation items include at least one of the following: the number of components corresponding to the call controller; the processor performance corresponding to the call controller; the memory capacity corresponding to the call controller; the network connection quality corresponding to the call controller; the video quality corresponding to the call controller; and the communication charges corresponding to the call controller.

[0235] In some embodiments, when the computer instructions are executed in the processor 1501, the following steps are implemented: sending second capability information to the first call controller, the second capability information including capability parameters of the evaluation items corresponding to the second call controller.

[0236] In some embodiments, when the computer instructions are executed in the processor 1501, the following steps are implemented: when there is currently no backup call controller in the distributed call system, the second call controller is determined as the backup call controller; when there is a third call controller in the distributed call system as the current backup call controller, the backup call controller after the distributed call system is determined according to the mode corresponding to the third call controller.

[0237] In some embodiments, when the mode supported by the first call controller is stable, when the computer instructions are executed in the processor 1501, the following steps are implemented: when there is currently no backup call controller in the distributed call system, the second call controller is determined as the backup call controller; when there is a third call controller in the distributed call system as the current backup call controller, the backup call controller after the distributed call system is determined according to the mode corresponding to the third call controller.

[0238] In some embodiments, when the computer instructions are executed in the processor 1501, the following steps are implemented: determining the subsequent backup call controller of the distributed call system according to the mode corresponding to the third call controller, including: receiving a second role message sent by the third call controller, the second role message being used to indicate that the third call controller is the current backup call controller in the distributed call system, and the mode corresponding to the third call controller; determining whether to negotiate the backup call controller with the third call controller according to the mode corresponding to the third call controller; wherein, when the mode corresponding to the third call controller is stable, determining the third call controller as the subsequent backup call controller in the distributed call system; when the mode corresponding to the third call controller is preemptive, determining to negotiate the backup call controller with the third call controller, and determining the subsequent backup call controller in the distributed call system according to the result of the negotiation.

[0239] In some embodiments, when the computer instructions are executed in the processor 1501, the following steps are implemented: the negotiation with the third call controller about the backup call controller includes: weighting the capability parameters of the evaluation items corresponding to the third call controller with the preset weights corresponding to the evaluation items to obtain a third score corresponding to the third call controller; when the second score is higher than or equal to the third score, determining the second call controller as the backup call controller.

[0240] In other embodiments, when the computer instructions are executed in the processor 1501, the following steps are implemented: receiving a first online notification message sent by the second call controller, the first online notification message is used to indicate that the second call controller is online; sending a first role notification message to the second call controller, the first role notification message is used to indicate that the first call controller is the current active call controller in the distributed call system, and the mode corresponding to the first call controller; and determining the active call controller of the distributed call system according to the mode corresponding to the first call controller.

[0241] In other embodiments, when the computer instructions are executed in the processor 1501, the following steps are implemented: the mode corresponding to the first call controller includes preemptive mode or stable mode, and the determining of the subsequent primary call controller according to the mode corresponding to the first call controller specifically includes: when the mode corresponding to the first call controller is the preemptive mode, negotiating with the second call controller about the primary call controller, and determining the subsequent primary call controller according to the result of the negotiation; when the mode corresponding to the first call controller is the stable mode, the subsequent call controller is the first call controller.

[0242] In other embodiments, when the computer instructions are executed in the processor 1501, the following steps are implemented: the negotiation with the second call controller about the primary call controller includes: obtaining second capability information of the second call controller, the second capability information including capability parameters of the evaluation items corresponding to the second call controller; negotiating with the primary call controller based on the first capability information and the second capability information, wherein the first capability information includes the capability parameters of the evaluation items corresponding to the first call controller.

[0243] In other embodiments, when the computer instructions are executed in the processor 1501, the following steps are implemented: the determining of the subsequent primary call controller based on the result of the negotiation specifically includes: weighting the capability parameters of the evaluation items corresponding to the first call controller with the preset weights corresponding to the evaluation items to obtain a first score corresponding to the first call controller; and weighting the capability parameters of the evaluation items corresponding to the second call controller with the preset weights corresponding to the evaluation items to obtain a second score corresponding to the second call controller; wherein, when the first score is higher than or equal to the second score, the first call controller is determined as the subsequent primary call controller; or, when the second score is higher than the first score, the second call controller is determined as the subsequent primary call controller.

[0244] In addition, an embodiment of the present application also provides a call controller, including a receiving module and a processing module.

[0245] In some embodiments, the receiving module can be used to obtain a first role notification message sent by a first call controller, where the first role notification message is used to indicate that the first call controller is the current active call controller in the distributed call system, and a mode corresponding to the first call controller.

[0246] The processing module is used to determine the main call controller after the distributed call system according to the mode corresponding to the first call controller.

[0247] An embodiment of the present application also provides another call controller, including: a receiving module, a sending module and a processing module.

[0248] In some embodiments, the receiving module may be configured to receive a first online notification message sent by the second call controller, where the first online notification message is used to indicate that the second call controller is online.

[0249] The sending module can be used to send a first role message to the second call controller, where the first role message is used to indicate that the first call controller is the current active call controller in the distributed call system, and a mode corresponding to the first call controller.

[0250] The processing module can be used to determine the main call controller after the distributed call system according to the mode corresponding to the first call controller.

[0251] In addition, an embodiment of the present application also provides a distributed call system, including a first call controller and a second call controller, wherein the first call controller and the second call controller are respectively used to execute the functions of the call controller provided in the embodiment of the present application on the first call controller and the second call controller.

[0252] The embodiment of the present application also provides a computer program, which, when executed in a processor, enables the above-mentioned method of deploying a call controller to be implemented.

[0253] An embodiment of the present application further provides a computer-readable storage medium, which includes computer instructions. When the computer instructions are executed in a computer, the above-mentioned method of deploying a call controller is implemented.

[0254] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted through the computer-readable storage medium. The computer instructions may be transmitted from a website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state drive (SSD)), etc.

[0255] Those skilled in the art can understand that to implement all or part of the processes in the above-mentioned embodiments, the processes can be completed by computer programs to instruct related hardware, and the programs can be stored in computer-readable storage media. When the programs are executed, they can include the processes of the above-mentioned method embodiments. The aforementioned storage media include: ROM or random access memory RAM, magnetic disk or optical disk and other media that can store program codes.

[0256] The above is only a specific implementation of the embodiment of the present application, but the protection scope of the embodiment of the present application is not limited thereto, and any changes or replacements within the technical scope disclosed in the embodiment of the present application should be included in the protection scope of the embodiment of the present application. Therefore, the protection scope of the embodiment of the present application should be based on the protection scope of the claims.

Claims

1. A method for deploying a call controller, characterized in that: The newly launched second call controller used in the distributed call system includes: Obtain a first role notification message, where the first role notification message is used to indicate that the first call controller is the current active call controller in the distributed call system, and a mode corresponding to the first call controller, where the active call controller is used to act as a decision-making center in the distributed call system; According to the mode corresponding to the first call controller, the main call controller of the distributed call system is re-determined from the first call controller and the second call controller.

2. The method according to claim 1, characterized in that: The mode corresponding to the first call controller includes a preemptive mode or a stable mode, and the determining the subsequent active call controller according to the mode corresponding to the first call controller specifically includes: When the mode corresponding to the first call controller is the preemptive mode, negotiate with the first call controller to determine the subsequent active call controller; When the mode corresponding to the first call controller is a stable mode, it is determined that the subsequent main call controller is the first call controller.

3. The method according to claim 2, characterized in that The negotiation to determine the subsequent active call controller includes: Acquire first capability information, where the first capability information includes capability parameters of evaluation items corresponding to the first call controller; The subsequent active call controller is negotiated according to the first capability information and the second capability information, wherein the second capability information includes capability parameters of the evaluation item corresponding to the second call controller.

4. The method according to claim 3, characterized in that The negotiation to determine the subsequent active call controller specifically includes: The capability parameter of the evaluation item corresponding to the first call controller is weighted with the preset weight corresponding to the evaluation item to obtain a first score corresponding to the first call controller; and the capability parameter of the evaluation item corresponding to the second call controller is weighted with the preset weight corresponding to the evaluation item to obtain a second score corresponding to the second call controller; wherein, When the first score is higher than or equal to the second score, it is determined that the subsequent active call controller is the first call controller.

5. The method according to claim 3 or 4, characterized in that: The evaluation items include at least one of the following: The number of distributed call-related components corresponding to the call controller; The processor performance corresponding to the call controller; The memory capacity corresponding to the call controller; The network connection quality corresponding to the call controller; The video quality corresponding to the call controller; The communication charges corresponding to the call controller.

6. The method according to claim 3 or 4, characterized in that: The method further comprises: Send second capability information to the first call controller, where the second capability information includes capability parameters of evaluation items corresponding to the second call controller.

7. The method according to claim 4, characterized in that The method further comprises: When the distributed call system currently does not have a backup call controller, determining the second call controller as the backup call controller; When the distributed call system has a third call controller as the current backup call controller, the backup call controller after the distributed call system is determined according to the mode corresponding to the third call controller.

8. The method according to claim 7, characterized in that The step of determining the standby call controller after the distributed call system according to the mode corresponding to the third call controller includes: Acquire a second role message, where the second role message is used to indicate that the third call controller is the current standby call controller in the distributed call system, and a mode corresponding to the third call controller; According to the mode corresponding to the third call controller, determine whether to negotiate with the third call controller to determine the backup call controller after the distributed call system; wherein, When the mode corresponding to the third call controller is a stable mode, determining that the backup call controller after the distributed call system is the third call controller; When the mode corresponding to the third call controller is preemptive, determine the backup call controller after negotiating with the third call controller to determine the distributed call system.

9. A method for deploying a call controller, characterized in that: A first call controller applied to a distributed call system comprises: Acquire a first online notification message, where the first online notification message is used to indicate that the second call controller is online in the distributed call system; Sending a first role notification message to the second call controller, where the first role notification message is used to indicate that the first call controller is the current active call controller in the distributed call system, and a mode corresponding to the first call controller, and the active call controller plays the role of a decision-making center in the distributed call system; According to the mode corresponding to the first call controller, the main call controller of the distributed call system is re-determined from the first call controller and the second call controller.

10. The method according to claim 9, characterized in that The mode corresponding to the first call controller includes preemptive mode or stable mode. The determining, according to the mode corresponding to the first call controller, the subsequent active call controller specifically includes: When the mode corresponding to the first call controller is the preemptive mode, negotiate with the second call controller to determine the subsequent active call controller; When the mode corresponding to the first call controller is a stable mode, the subsequent main call controller is the first call controller.

11. The method according to claim 10, characterized in that The negotiating with the second call controller to determine the subsequent active call controller includes: Acquire second capability information, where the second capability information includes capability parameters of evaluation items corresponding to the second call controller; The subsequent active call controller is determined through negotiation according to the first capability information and the second capability information, wherein the first capability information includes capability parameters of the evaluation item corresponding to the first call controller.

12. The method according to claim 11, characterized in that The negotiation to determine the subsequent active call controller further includes: The capability parameter of the evaluation item corresponding to the first call controller is weighted with the preset weight corresponding to the evaluation item to obtain a first score corresponding to the first call controller; and the capability parameter of the evaluation item corresponding to the second call controller is weighted with the preset weight corresponding to the evaluation item to obtain a second score corresponding to the second call controller; wherein, When the first score is higher than or equal to the second score, it is determined that the subsequent active call controller is the first call controller.

13. A system for deploying a call controller, characterized in that: The system comprises a first call controller and a second call controller in a distributed call system, wherein: The first call controller is used to receive a first online notification message, where the first online notification message is used to instruct the second call controller to go online; The second call controller is used to obtain a first role message, the first role message is used to indicate that the first call controller is the current active call controller in the distributed call system, and the mode corresponding to the first call controller, and the active call controller plays the role of a decision-making center in the distributed call system; The second call controller is used to redetermine the primary call controller of the distributed call system from the first call controller and the second call controller according to the mode corresponding to the first call controller.

14. The system according to claim 13, characterized in that The mode corresponding to the first call controller includes preemptive mode or stable mode. The determining, according to the mode corresponding to the first call controller, the subsequent active call controller specifically includes: When the mode corresponding to the first call controller is the preemptive mode, the first call controller negotiates with the second call controller to determine the subsequent active call controller; When the mode corresponding to the first call controller is a stable mode, the second call controller determines that the subsequent active call controller is the first call controller.

15. A call controller, characterized in that: include: A receiving module, configured to obtain a first role notification message, wherein the first role notification message is used to indicate that the first call controller is the current primary call controller in the distributed call system, and a mode corresponding to the first call controller, wherein the primary call controller acts as a decision-making center in the distributed call system; A processing module is used to redetermine the primary call controller of the distributed call system from the first call controller and the second call controller according to the mode corresponding to the first call controller.

16. A call controller, characterized in that: include: A receiving module, used for receiving a first online notification message, where the first online notification message is used for indicating that the second call controller is online in the distributed call system; A sending module, used for sending a first role message to the second call controller, wherein the first role message is used for indicating that the first call controller is the current active call controller in the distributed call system, and a mode corresponding to the first call controller, wherein the active call controller acts as a decision-making center in the distributed call system; A processing module is used to redetermine the primary call controller of the distributed call system from the first call controller and the second call controller according to the mode corresponding to the first call controller.

17. A call controller, characterized in that: The method comprises at least one processor and a memory, wherein the memory comprises computer instructions. When the computer instructions are executed in the processor, the call controller is configured to execute the method according to any one of claims 1 to 12.

Citation Information

Patent Citations

  • Control method and control device for internet-of-things (IoT) equipment, readable storage medium and computer equipment

    CN108600302A