Conversation controller deployment method and device

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.

CN120151907APending Publication Date: 2025-06-13HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510377694.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2021-01-28
Publication Date
2025-06-13

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 CN120151907A_ABST
    Figure CN120151907A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a call controller deployment method and device, and relates to the field of distributed communication. The method comprises the steps that a first role notification message is acquired, and the first role notification message is used for indicating that a first call controller is a current main call controller in the distributed call system and indicating a mode corresponding to the first call controller; and determining the main call controller after the distributed call system according to the mode corresponding to the first call controller. Through the method, when multiple call controllers exist in the distributed call system, it can be determined that one call controller executes the function of the decision center, and the problem of execution errors caused by the fact that the multiple call controllers work at the same time is avoided.
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 call controllers. 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 a stable mode and / or a preemptive mode. In this application, the mode corresponding to the first call controller may refer to a certain mode adopted when the first call controller serves as the primary call controller. Similar descriptions that may appear for the second call controller, the third call controller, etc. hereinafter also have similar meanings as those introduced above. Hereinafter in this application, the mode corresponding to the call controller may also be described 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 primary call controller. After the second call controller goes online, it needs to determine the subsequent primary call controller according to the mode adopted by the current primary call controller. Specifically, when the second call controller learns that the current primary call control adopts the stable mode, the second call controller determines that the primary call controller of the distributed call system is the first call controller; when the second call controller learns that the current primary call controller adopts the preemptive mode, the second call controller will negotiate with the first call controller to determine the role of the primary call controller, and then the primary call controller of the distributed call system may change after the negotiation.

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

[0011] According to the method provided by the embodiments of this application, by determining a new call controller according to the mode adopted by the current primary call controller, it is possible to determine a call controller to perform the function of the decision-making center when there are multiple call controllers in the distributed call system, avoiding the problem of execution errors caused by multiple call controllers working simultaneously.

[0012] Combined with the first aspect, in some implementation manners of the first aspect, the mode corresponding to the first call controller includes a preemptive mode or a stable mode. 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 that the subsequent call controller is 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 some implementations of the first aspect, the negotiation to determine the subsequent primary call controller further 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, determining the first call controller as the subsequent primary call controller; when the first score is lower than the second score, determining the second call controller as the subsequent primary call controller.

[0019] Among them, the evaluation items can be flexibly set according to needs. 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), etc.

[0020] According to the method provided in the embodiments of the present application, when the mode corresponding to the current primary call controller is preemptive, by analyzing the capability parameters of the call controller, the primary call controller after the distributed call system is preferably selected, 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 some 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; the communication fee 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, where the second capability information includes the capability parameters of the evaluation items corresponding to the second call controller.

[0023] According to the method provided in the present application, by sending the capability information from the second call controller to the first 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 preferably select the same primary call controller according to the same parameters and standards, avoiding the situation of inconsistent negotiation of the primary call controller.

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

[0025] According to the method provided in the present application, a primary call controller and a standby call controller can be set in the distributed call system. If the second call controller fails to successfully compete for the primary call controller, the second call controller can also be used as the standby call controller; or, if there is already a preemptive standby call controller, the second call controller can also compete for this standby call controller. The existence of the standby call controller can enable the standby call controller to execute the functions of the call controller in a timely manner when the primary call controller goes offline, ensuring the stability of the distributed call.

[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 standby call controller in the distributed call system currently, determining the second call controller as the standby call controller; when there is a third call controller as the current standby call controller in the distributed call system, determining the standby call controller after the distributed call system according to the mode corresponding to the third call controller.

[0027] According to the method provided in the present application, a primary call controller and a standby call controller can be set in the distributed call system. If the mode corresponding to the current primary call controller is a stable mode, the second call controller can also be used as the standby call controller; or, if there is already a preemptive standby call controller, the second call controller can also compete for this standby call controller. The existence of the standby call controller can enable the standby call controller to execute the functions of the call controller in a timely manner when the primary call controller goes offline, ensuring the stability of the distributed call.

[0028] In combination with the first aspect, in some implementations of the first aspect, determining the standby call controller after the distributed call system according to the mode corresponding to the third call controller includes: receiving 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 the mode corresponding to the third call controller; determining the standby call controller after that according to the mode corresponding to the third call controller; where when the mode corresponding to the third call controller is the stable type, determining the third call controller as the standby call controller in the distributed call system after that; when the mode corresponding to the third call controller is the preemptive type, determining the standby call controller in the distributed call system after that through negotiation with the third call controller.

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

[0030] In combination with the first aspect, in some implementations of the first aspect, negotiating the standby call controller with the third call controller includes: weighting the ability parameter of the evaluation item corresponding to the third call controller with the preset weight value corresponding to the evaluation item to obtain the 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 standby call controller; when the second score is lower than the third score, determining the third call controller as the standby 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, and includes: receiving a first online notification message, where the first online notification message is used to indicate that a second call controller goes 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 primary call controller in the distributed call system, and the mode corresponding to the first call controller; determining the primary call controller after the distributed call system according to the mode corresponding to the first call controller.

[0032] In combination with the second aspect, in some implementation manners of the second aspect, the mode corresponding to the first call controller includes preemptive or stable. 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 preemptive, negotiating with the second call controller to determine the subsequent primary call controller; when the mode corresponding to the first call controller is stable, the subsequent call controller is the first call controller.

[0033] In combination with the second aspect, in some implementation manners of the second aspect, negotiating with the second call controller to determine the subsequent primary call controller includes: obtaining second capability information of the second call controller, where the second capability information includes capability parameters of evaluation items corresponding to the second call controller; negotiating the primary call controller according to the first capability information and the second capability information, where the first capability information includes capability parameters of the evaluation items corresponding to the first call controller.

[0034] In combination with the second aspect, in some implementation manners of the second aspect, negotiating to determine the subsequent primary call controller further includes: weighting the capability parameters of the evaluation items corresponding to the first call controller with the preset weight values 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 set weight values corresponding to the evaluation items to obtain a second score corresponding to the second call controller; where when the first score is higher than or equal to the second score, determining the first call controller as the subsequent primary call controller; or when the second score is higher than the first score, determining the second call controller as the subsequent primary call controller.

[0035] In a third aspect, a system for deploying call controllers is provided, including a first call controller and a second call controller in a distributed call system, where the first call controller is used for a first online notification message, and the first online notification message is used to indicate that the second call controller goes online in the distributed call system; and in response to the first online notification message, sending 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 primary call controller in the distributed call system and the mode corresponding to the first call controller; the second call controller is used to determine the subsequent primary call controller in the distributed call system according to the mode corresponding to the first call controller.

[0036] In combination with the third aspect, in some implementation manners of the third aspect, the mode corresponding to the first call controller includes preemptive or stable. 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 preemptive, 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 stable, 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, including: a receiving module, configured to obtain a first role notification message, where 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; a processing module, configured to determine the subsequent primary call controller in the distributed call system according to the mode corresponding to the first call controller.

[0038] In a fifth aspect, a call controller is provided, including: a receiving module, 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 goes online in the distributed call system; a sending module, configured 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 primary call controller in the distributed call system and the mode corresponding to the first call controller; a processing module, configured to determine the subsequent primary call controller in the distributed call system according to the mode corresponding to the first call controller.

[0039] In a sixth aspect, a call controller is provided, which includes at least one processor, a memory, and a communication interface. The communication interface is used to communicate with other communication devices. The memory includes computer instructions. When the computer instructions are executed by the processor, the call controller is configured to execute the method according to 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 on a computer, the computer is caused to execute the method according to any one of the implementation manners of the first aspect or the second aspect above.

[0041] In an eighth aspect, a computer-readable storage medium is provided. The computer-readable storage medium includes computer instructions. When the computer instructions are executed on a computer, the computer is caused to execute the method according to any one of the implementation manners of the first aspect or the second aspect above. Description of the Drawings

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

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

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

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

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

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

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

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

[0050] Figure 9 It is yet another schematic diagram of the deployment of a call controller provided by an embodiment of the present application.

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

[0052] Figure 11 It is another schematic flowchart of the deployment of a call controller provided by an embodiment of the present application.

[0053] Figure 12 It is yet another schematic flowchart of the deployment of a call controller provided by an embodiment of the present application.

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

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

[0056] Figure 15 It is a schematic diagram of the hardware structure of a call controller provided by an embodiment of the present application. Specific embodiments

[0057] The embodiments of the present application will be described below with reference to the accompanying drawings in the embodiments of the present application.

[0058] It should be noted that the terms used in the implementation part 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 may mean A or B; the "and / or" herein is only a description of the association relationship of the associated objects, indicating that there can be three relationships. For example, A and / or B may mean: A exists alone, A and B exist simultaneously, and B exists alone. In addition, in the description of the embodiments of the present application, unless otherwise specified, "a plurality of" means two or more than two, and "at least one", "one or more" means one, two or more than two.

[0059] Hereinafter, the terms "first" and "second" are only used for descriptive purposes and cannot be understood as indicating or implying relative importance or implicitly indicating the quantity of the indicated technical features. Thus, the features defined with "first" and "second" may explicitly or implicitly include one or more of such features.

[0060] The reference to "one embodiment" or "some embodiments" etc. described in this specification means that in one or more embodiments of the present application, the specific features, structures or characteristics described in connection with that embodiment are included. Thus, the statements "in one embodiment", "in some embodiments", "in other some embodiments", "in still other embodiments" etc. that appear in 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 another way. The terms "include", "comprise", "have" and their variants all mean "including but not limited to", unless otherwise specifically emphasized in another way.

[0061] The technical solution of the embodiment of the present application can be applied to various communication systems, such as: 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 5th generation (5G) system or New Radio (NR), etc.

[0062] The method for device management based on a distributed scenario provided by the embodiment of the present application can be applied to a terminal. Among them, the terminal can be, for example, a mobile phone, a tablet computer, a wearable device (such as a smart watch, a smart bracelet, smart glasses, smart jewelry, etc.), a vehicle-mounted device, an Augmented Reality (AR) / Virtual Reality (VR) device, a laptop computer, an Ultra-Mobile Personal Computer (UMPC), a netbook, a Personal Digital Assistant (PDA) and other electronic devices. The embodiment of the present application does not impose any restrictions on the specific type of the terminal. Exemplary embodiments of the terminal include terminals equipped with operating systems such as.

[0063] For ease of understanding, relevant terms and concepts that may be involved in the embodiment of the present application are first introduced.

[0064] (1) Distributed call system

[0065] Among them, a distributed system refers to an integrated whole composed of multiple electronic devices. In a distributed system, a task can be assigned to each of the electronic devices to complete collaboratively. Correspondingly, in a distributed communication system, after at least two electronic devices are connected by wireless connection or wired connection, they jointly execute a communication task.

[0066] It should be noted that the devices in a distributed communication system can be called distributed communication devices. The distributed communication system is in a distributed environment, which can be a local area network or a wide area network. The embodiments of this application do not make any limitations in this regard.

[0067] (2) Component

[0068] A component is a simple encapsulation of data and methods. A component has specific attributes and methods. Attributes are simple visitors to the component's data, and methods are the functions of the component.

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

[0070] Figure 1 It is a schematic diagram of a communication system to which a communication method provided by an embodiment of this application is applied. As Figure 1 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). Among them, the communication system can also be described as a distributed system, a distributed communication system, a distributed communication system, etc. The first electronic device 100 and the second electronic device 200 collaborate to complete a common task, such as a communication task, etc., based on this system.

[0071] Among them, the first electronic device 100 includes a call controller for managing the distributed call process. Among them, the call controller can also be described as a controller, a call control module, a central controller, etc. For the convenience of description, hereinafter, the electronic device including the call controller will be collectively referred to as the call controller, and the first electronic device 100 can also be described as the 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, a large-screen display device (such as a smart screen, etc.), a mobile phone, a tablet computer (Pad), a personal computer (PC), a laptop computer, a desktop computer, a vehicle-mounted device, a wearable 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 smart city, a wireless terminal in smart home, an artificial intelligence device, and other terminal devices. The embodiments of the present application do not impose any restrictions on the specific type of the call controller 100.

[0077] In some embodiments, the second electronic device 200 is a slave device in a communication system and includes components for making calls. Further, the components for making calls in the second electronic device 200 can directly perform data transmission with the components in the call controller 100 and / or the components in other second electronic devices 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 smart city, a wireless terminal in smart home, an artificial intelligence (AI) device, and other terminal devices. The embodiments of the present application do not impose any restrictions on the specific type of the electronic device 200.

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

[0080] Optionally, as Figure 1 shown, the above-mentioned communication system may further include a server 300. The server 300 is used to provide a line operator network (such as a mobile network, a telecom network, a Unicom network, etc.). The call controller 100 or the second electronic device 200 uses the server 300 to make a call using the operator network. Among them, in the embodiments of the present application, an electronic device making a call using the operator network may also be described as an electronic device dialing an operator call, an electronic device making a call using a phone application, etc., which will not be elaborated below.

[0081] Exemplarily, the server 300 may be a cloud server or a network server and other devices or servers with computing functions. The server 300 may be a single server, or a server cluster composed of multiple servers, or a cloud computing service center.

[0082] Exemplarily, as Figure 2As shown, the software system of an electronic device may adopt a layered architecture, an event-driven architecture, a microkernel architecture, a microservices architecture, or a cloud architecture. In the embodiments of this application, the Android system with a layered architecture is taken as an example to exemplarily illustrate the software structure of the electronic device. Figure 2 It is a block diagram of the software structure of the electronic device in the embodiments of this application. The layered architecture divides the software into several layers, and 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] Among them, the application layer includes applications such as a voice assistant, a dial pad, and a call interface. The application framework layer provides application programming interfaces (APIs) and programming frameworks for the applications in the application layer. The application framework layer includes some predefined functions. As Figure 2 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 services, Voip call protocol stacks, etc. The kernel layer is the layer between hardware and software. The kernel layer contains display drivers, audio drivers, transmission control protocol (TCP) protocol stacks or IP protocol stacks, cellular protocol stacks, codec, Bluetooth / WIFI protocol stacks, etc.

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

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

[0086] A number parsing component, which is used to process the data input by the input component and output number information. Optionally, if the input data received by the number parsing component is number information, such as a specific number to be dialed, the number parsing component does not need to process it any further and directly outputs the received number information. Optionally, if the input data received by the number parsing 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 number information. Or after semantic analysis, a user name is obtained, and then the corresponding number information is searched in the phone book using the user name, and the determined number information is output. Exemplarily, as Figure 2 shown, the number parsing component includes, for example, number parsing located at the application framework layer.

[0087] A network component, which is used to receive the number information output by the number parsing component, generate an outgoing signaling based on the number information according to the protocol specification, and make a call. For example, if the number information is an operator number (i.e., a regular mobile phone number) and the network component is a baseband processor, then according to the call protocol, an outgoing signaling is sent to other call controllers using the operator network. Or, if the number information is the number information in an instant messaging application and the network component is the call module in the instant messaging application, then an outgoing signaling is directly sent to other call controllers using the wireless communication network. Correspondingly, the network component can also receive and process the incoming signaling received. Further, after the call connection with the peer call controller is established, the network component can also be used to transmit audio data and / or video data with the peer call controller. Exemplarily, as Figure 2 shown, the network component includes, for example, a cellular call service and a Voip call protocol stack located at the service layer.

[0088] A user interaction component, which is used to receive the input data of the user during the call and / or output data to the user. Optionally, the user component can be divided into an auditory component, a visual component, and an interaction component according to the interaction method between the component and the user. For example, the auditory component can also be described as an audio component or a voice component, and includes audio modules such as speakers, receivers, and microphones. The visual component can also be described as a video component or an image component, and includes a display screen, a camera, etc. The interaction component includes a physical keyboard or a soft keyboard, controls in the application, call controller buttons, touch sensors, etc. Among them, the auditory component can interact with the user through sound, its input is audio data, and its output is the sound that can be perceived by the user. The visual component can interact with the user through image data, its input is video data, and its output is the image that can be perceived by the user. The interaction component can also be directly described as a control component or a tactile component, which is used to receive the control commands input by the user. For example, the user inputs a hang-up command by clicking on the control displayed on the display screen. Exemplarily, as Figure 2As shown, user interaction components include, for example, a call interface located in the application layer. During a call, when the call interface detects a touch operation by the user, corresponding actions are executed.

[0089] It should be noted that the components included in the distributed call device can be either the above software components or hardware components. For example, an entity keyboard is connected to the call controller via a cable or wirelessly, and a software agent is configured in the call controller to convert the input by the user on the entity keyboard into commands. In this case, the entity keyboard cannot be separately classified as a component. However, if the entity keyboard can directly convert the input by the user into clear commands and send them to other components via a cable or wireless connection, then the entity keyboard can be separately classified as a component. That is to say, after the components are classified, it must be ensured that there are clear inputs and outputs during the interaction with other components.

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

[0091] It can be understood that the above component classification method is only an exemplary illustration, and other classification methods may also be included. The embodiments of the present application do not make specific limitations in this regard.

[0092] Generally speaking, a mobile phone has a large number of components, can ensure continuous online during a call, and has sufficient processor capabilities. Therefore, in most current cases, a mobile phone is used as the call controller in a distributed call system. However, due to the strong mobility of mobile phones and the varying performance of different mobile phones, when a mobile phone enters or exits a certain network, it is easy to interrupt or exit the distributed call process in that network, resulting in a poor user experience. In addition, with the development of electronic devices, the capabilities and performances supported by many other types of electronic devices have been greatly improved. Therefore, in many cases, multiple electronic devices configured with call controllers participate in distributed calls. However, to avoid possible errors in the call process when multiple call controllers work simultaneously, generally only one call controller is set in the distributed call system to execute tasks. This requires selecting a preferred call controller as the primary call controller from multiple call controllers.

[0093] In response to this need, the embodiments of the present application provide a method for deploying a call controller, which deploys the primary call controller according to a preset criterion based on the mode adopted by the call controller to ensure the stability of distributed calls and the distributed call effect.

[0094] It should be understood that the primary call controller described in the embodiments of the present application refers to a call controller that plays a decision-making center role in a distributed call system. For example, it can schedule each device and / or component participating in the distributed call, and distribute different services involved in the call process (such as audio playback, video playback, audio capture, video capture, 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 the call controller that is in a working state during the distributed call process, while other call controllers can participate in the distributed call as ordinary devices or backup call controllers.

[0095] For ease of understanding, the following introduces the modes supported by the call controller. Exemplarily, the call controller provided in the embodiments of the present application can be divided into a stable call controller that supports the stable mode, a preemptive call controller that supports the preemptive mode, and a call controller that supports both the stable mode and the preemptive mode. However, it should be understood that for a call controller that supports both the stable mode and the preemptive mode, it corresponds to one of the modes during its operation (that is, either the stable type or the preemptive type is adopted).

[0096] Stable call controller: Taking the already deployed primary call controller as an example, if the currently deployed primary call controller in the distributed call system is a stable call controller, then when other call controllers join or leave 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 guaranteeing the stability of the distributed call.

[0097] Preemptive call controller: Taking the already deployed primary call controller as an example, if the currently deployed primary call controller 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-making center based on a preset criterion, so as to ensure that the call controller used in the distributed call system is always the call controller with the best performance.

[0098] In some embodiments, the mode supported by the call controller in the embodiments of the present application can be a mode preset before the call controller leaves the factory. For example, program instructions of the stable type and / or the preemptive type are written into the call control module. Optionally, the call control module can correspond to, for example, Figure 2 the call controller in the application program framework layer as shown. In some embodiments, the call control module can also be located in Figure 2 the application layer as shown, and the present application does not make any limitations in this regard.

[0099] For ease of understanding, the following introduces the scenarios for deploying the call controller provided in the embodiments of the present application in conjunction with the accompanying drawings.

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

[0101] It should be understood that before the call controller 1 goes online, since there is no primary call controller in the current system as a decision center to schedule the components in the distributed call system, each component in the system does 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. And, the call controller 1 can preset a first time. If a response message sent by the primary call controller is not received within the first time, indicating that there is no primary 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 a response message from other call controllers is not received within the first time, the call controller 1 can broadcast its own role and address to surrounding devices and / or components, so that the surrounding electronic devices and / or components can register their capabilities on the call controller 1. Further, the call controller 1 can periodically, such as every 1 s, broadcast a heartbeat message to surrounding devices and / or components, and the heartbeat message is used to indicate the role and address of the primary call controller. When other electronic devices and / or components go online, they can unicast the heartbeat message to the call controller 1 specifically, such as sending registration information to the call controller 1 to register their capabilities.

[0104] It should be understood that the mode adopted by the primary call controller can be a stable mode or a preemptive mode. When a new call controller continues to go online in the distributed call system, the embodiments of the present application deploy the call controller accordingly according to the mode of the primary call controller.

[0105] Exemplarily, as Figure 4 shown, it is a schematic diagram of a deployment process of a primary call controller provided by an embodiment of the present application.

[0106] It should be understood that Figure 4 the system architecture in Figure 3 can be based on the system architecture in Figure 4 that is, at this time, there is already a call controller 1 in an online state as the primary call controller in the distributed call system. In addition,

[0107] In some embodiments, after the call controller 2 goes online, it can broadcast an online notification message, which may 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 may be, for example, at least one of the multicast addresses, such as at least one address among the multicast addresses 224.0.0.1 to 224.0.0.9; other electronic devices will monitor the messages on the preset broadcast address, so that the online notification message sent by the call controller 2 can be obtained from the broadcast address.

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

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

[0111] In some embodiments, the call controller 2 can learn the mode adopted by the current primary call controller according to the role notification message, and determine whether to reselect the primary call controller according to the mode of the primary call controller. Among them, when the primary call controller supports the stable mode, the primary call controller in the system is still the call controller 1, and each call controller does not need to reselect the primary call controller; when the primary call controller supports the preemptive mode, the call controller 1 and the call controller 2 reselect the primary call controller. In other words, when the primary call controller is in the preemptive mode, 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 primary call controller can be the stable mode or the preemptive mode, and the mode adopted by the newly online call controller 2 can also be the stable mode or the preemptive mode. According to the modes adopted by the primary call controller (call controller 1) and the newly online call controller (call controller 2), it can be divided into the 4 cases shown in Table 1.

[0113] Table 1

[0114] Number Mode adopted by Call Controller 1 Mode adopted by Call Controller 2 Situation 1 Stable type Stable type Situation 2 Stable type Preemptive type Situation 3 Preemptive type Stable type Situation 4 Preemptive type Preemptive type

[0115] For Case 1 and Case 2 in Table 1: When the call controller 2 learns from the role notification message that the mode adopted by the current primary call controller is the stable mode, the call controller 2 will not negotiate to become the new primary call controller. In other words, the call controller 1 and the call controller 2 will not perform the process of reselecting a new primary call controller. The call controller 1 still serves as the primary call controller, while the call controller 2 can participate in the distributed call as an ordinary device.

[0116] It should be understood that the above process is for the stable primary call controller. When a new call controller goes online, the newly online call controller directly acts as an ordinary device, thus ensuring the stability of the primary call controller role in the distributed call system, and further ensuring the stability of the distributed call and improving the user experience.

[0117] For Case 3 and Case 4 in Table 1: When the call controller 2 learns from the role notification message that the mode adopted by the current primary call controller is the preemptive mode, the call controller 1 and the call controller 2 can reselect a new primary call controller.

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

[0119] In some embodiments, when the call controller 2 learns from the role notification message of the call controller 1 that the call controller 1 supports the preemptive mode, the call controller 2 can send the capability information of this call controller 2 to the call controller 1.

[0120] Among them, the ways for the call controller 1 and the call controller 2 to send their respective capability information can be broadcast or unicast, which is not limited here.

[0121] In some embodiments, after the call controller 1 and the call controller 2 obtain the capability information of each other, they can respectively select the primary call controller preferably based on the preset criteria. Specifically, the process for the call controller 1 and the call controller 2 to preferably select the primary call controller can include: performing a weighted calculation on the capability parameters corresponding to the evaluation items of the call controller 1 and the preset weights corresponding to the evaluation items to obtain the score 1 of the call controller, and performing a weighted calculation on the capability parameters corresponding to the evaluation items of the call controller 2 and the corresponding preset weights to obtain the score 2 of the call controller 2; comparing the score 1 and the 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) The number of components. The number of components may specifically refer to the number of components included in the device where the call controller is located. Components include, for example, network components, number parsing components, speaker components, display components, etc. Among them, the more the number of components, the less cross-device data transmission, and the more likely it is to be preferably used as the primary call controller.

[0124] 2) Processor performance. Processor performance may specifically include the number of cores and the main frequency of the processor. Among them, the more cores the processor includes and the higher the main frequency, the more likely the device is to be preferably used 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. Among them, the larger the memory, the more likely it is to be preferably used as the primary call controller.

[0126] 4) Network quality. 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 and the resolution of the video image of the device where the call controller is located.

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

[0129] It should be understood that by resetting the ability parameter corresponding to the video quality according to the video quality of the call controller (such as video resolution), it is possible to avoid the actual value of the video quality differing too much from the parameters of other evaluation items, resulting in the final scoring result being determined by this video quality evaluation item and unable to highlight the influence 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 there are similar problems with other evaluation items, the above processing can also be performed.

[0131] 6) Tariff. Specifically, the tariff can set the corresponding value according to the network type to which the call controller is connected. For example, when the device is connected to a broadband network (such as a wired broadband or Wi-Fi), the corresponding ability parameter of the tariff is set to 2; when the device is connected to a cellular network, the corresponding ability parameter of the tariff is set to 1.

[0132] 7) Battery power, etc. Specifically, the battery power can include the battery power value or the power supply method of the device. For example, the device is powered by the device's own battery, or the device is powered by plugging in. Among them, the corresponding value of the battery power supply method can be set to 1, and the corresponding value of the plug-in method can be set to 2; in addition, when all the devices where the call controllers are located are powered by batteries, the battery power can be the current battery power value of the device.

[0133] Exemplarily, as shown in Table 2, it is the corresponding ability parameters of different evaluation items and the corresponding preset weights of different evaluation items.

[0134] Table 2

[0135]

[0136] In some embodiments, if a certain evaluation item of a device is better than that 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.), less tariff (such as connecting to a broadband network) or more sufficient battery power (such as being powered by the plug-in method), etc., it means that its ability is better and it is more likely to be used as the main call controller.

[0137] Exemplarily, as shown in Table 3, it is the exemplary ability parameters of each evaluation item of Call Controller 1 and Call Controller 2, and the corresponding exemplary preset weights of each evaluation item.

[0138] Table 3

[0139]

[0140] According to the preset criteria and the results shown in the above table, Call Controller 1 and Call Controller 2 can calculate the scores of Call Controller 1 and Call Controller 2 respectively according to the following formulas (1) and (2):

[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, indicating 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 corresponding preset weights for each evaluation item are only examples. In some embodiments, the number, type of evaluation items, and the corresponding preset weights can be flexibly set according to needs. For example, the evaluation items can also include the audio quality of the device where the call controller is located. Specifically, the audio quality can be represented by the size of the speaker cavity on the device, or can be represented by the device type. For example, the numerical value corresponding to the audio quality of a speaker is set to 3, the numerical value corresponding to the audio quality of a mobile phone is set to 2, and the numerical value corresponding to the audio quality of a headset is set to 1, etc. The present 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), after call controller 1 determines that it is no longer the primary call controller according to the scoring results, it can be downgraded to an ordinary device. Specifically, this call controller 1 can delete the electronic devices and / or components with registered capabilities, or mark the capabilities registered by the electronic devices and / or components as invalid; and this call controller 1 also no longer broadcasts notification messages including its role as the primary call controller and its address to the surrounding devices.

[0146] In some embodiments, after the above process of reselecting the primary call controller, call controller 2 can determine itself as the new primary call controller according to the scoring results; afterwards, this call controller 2 can broadcast notification messages to other devices and / or components in the distributed call system periodically, such as every 1 s. The notification message can include the role of call controller 2 (the new primary call controller) and the address of this call controller 2. The peripheral devices and / or components of the primary call controller can register their capabilities on the new call control according to this notification message, so as to realize that call controller 2 serves as the new decision center to schedule the distributed call.

[0147] In some embodiments, if there are newly online electronic devices and / or components later, then the newly online electronic devices and / or components can send unicasts specifically according to the notification messages periodically broadcast by this call controller 2, such as sending registration messages to this call controller 2 to register their capabilities.

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

[0149] In some possible scenarios, when the primary call controller goes offline, if there are other call controllers in the system at this time, these other call controllers can also negotiate to become the new primary call controller. It should be understood that the situation where the primary call controller goes offline can include two situations: taking the initiative to go offline and being forced to go offline.

[0150] Regarding the situation where the primary call controller takes the initiative to go offline: If the primary call controller takes the initiative to go offline, the primary call controller will broadcast an offline notification message before going offline; in response to this offline notification message, other call controllers can negotiate to become the new primary call controller.

[0151] Regarding the situation where the primary call controller is forced to go offline: When the primary call controller is forced to go offline, such as when the primary call controller leaves the local area network coverage range and the network connection is disconnected, and other call controllers in the system do not receive the heartbeat message sent by the primary call controller within a preset second time, indicating that the primary call controller has gone offline, then other call controllers can renegotiate to become the new primary call controller.

[0152] The following introduces the call controller deployment scenario when the primary call controller goes 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 one call controller in the distributed call system.

[0154] Exemplarily, as Figure 5 shown, it is a schematic diagram of the deployment process of a call controller provided by an embodiment of the present application. Among them, Figure 3 the call controller 1 in is the primary call controller, and the call controller 2 participates in the distributed call as an ordinary device.

[0155] Exemplarily, as Figure 5 shown, when the call controller 2 learns that the primary call controller has gone offline, the call controller 2 can broadcast its own capability information to surrounding electronic devices and / or components.

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

[0157] Specifically, the call controller 2 can broadcast its own role and address, enabling peripheral electronic devices and / or components to register their capabilities with the call controller 2. Subsequently, the new primary call controller (i.e., the call controller 2) can distribute the services of the distributed call accordingly based on the registered capabilities of each electronic device and / or component, ensuring the smooth progress of the distributed call, etc. The specific working process of the primary call controller can refer to the introduction of the above-related content and will not be elaborated here.

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

[0159] For another example, another possible scenario when the primary call controller goes offline is as follows: After the primary call controller goes offline, the distributed call system still includes multiple call controllers.

[0160] Exemplarily, as Figure 6 shown, it is a schematic diagram of the deployment process of another call controller provided by an embodiment of the present application. Among them, Figure 6 the call controller 1 in is the primary call controller, and the call controllers 2 and 3 are other call controllers in the system.

[0161] In some embodiments, if the call controllers 2 and 3 learn that the primary call controller has gone offline, the call controllers 2 and 3 can negotiate to become the new primary call controller.

[0162] Specifically, the process for the call controllers 2 and 3 to negotiate to become the new primary call controller can include: When the call controllers 2 and 3 learn that the primary call controller has gone offline, the call controller 2 broadcasts a broadcast message 1 including its own capability information, and the call controller 3 broadcasts a broadcast message 2 including its own capability information; subsequently, the call controller 2 obtains the capability information of the call controller 3 based on the broadcast message of the call controller 3, and then selects the call controller with better capabilities as the new primary call controller according to a preset criterion; similarly, the call controller 3 obtains the capability information of the call controller 2 based on the broadcast message of the call controller 2, and then selects the call controller with better capabilities as the new primary call controller according to a preset criterion.

[0163] According to the method for deploying a call controller provided by an 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 a preset criterion, thereby ensuring the quality of distributed calls and improving the user experience.

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

[0165] Exemplarily, electronic devices and / or components in the distributed call system can register their capabilities with both the primary call controller and the standby call controller simultaneously. And if an electronic device and / or component initiates a distributed call, the request data can be unicast to both the primary call controller and the standby call controller. Thus, it is ensured that when the primary call controller goes offline, the standby call controller can seamlessly take over the tasks of the primary call controller.

[0166] The following embodiments will introduce the call controller deployment process in the primary-standby call controller scenario with reference to the accompanying drawings.

[0167] Exemplarily, as Figure 7 shown, it is a schematic diagram of a call controller deployment process provided by an embodiment of the present application.

[0168] In Figure 7 the shown distributed call system, it includes the currently online primary call controller (i.e., call controller 1), the newly online call controller 2 and call controller 3 in sequence, as well as components in the system, such as network components, number resolution components, and other components. Among them, the modes adopted by call controller 1, call controller 2, and call controller 3 can be stable or preemptive.

[0169] First, continuing to refer to the different situations divided in Table 1, the primary-standby call controller deployment process when call controller 2 goes online while call controller 3 has not yet gone online will be introduced.

[0170] In some embodiments, referring to Situation 1 and Situation 2 in Table 1, if call controller 1 is stable, when call controller 2 newly goes online, regardless of whether the mode of this call controller 2 is stable or preemptive, call controller 1 remains the primary call controller, and call controller 2 becomes the standby call controller.

[0171] In some embodiments, referring to Case 3 and Case 4 in Table 1, the call controller 1 is preemptive. When the call controller 2 newly goes online, regardless of 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 the new primary call controller. Among them, the call controller with the best capabilities can become the new primary call controller, and the call controller with relatively poor capabilities can become the standby call controller. The specific negotiation process can refer to the relevant content mentioned above and will not be elaborated here.

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

[0173] Table 4

[0174]

[0175] Exemplarily, in Scenario 1 and Scenario 2 shown in Table 4, both the primary call controller and the standby call controller adopt the stable mode. At this time, if the call controller 3 goes online, regardless of whether the call controller 3 supports the stable mode or the preemptive mode, the call controller 3 will not negotiate for the primary call controller or the standby call controller. At this time, the roles of the primary and standby call controllers in the distributed call system remain stable, thus ensuring the stability of the distributed call.

[0176] Exemplarily, in Scenario 3 and Scenario 4 shown in Table 4, the primary call controller adopts the stable mode and the standby call controller adopts the preemptive mode. After that, if the call controller 3 goes online, the call controller 3 can negotiate to become the new standby call controller, and the primary call controller remains the call controller 1.

[0177] Exemplarily, in Scenario 5 and Scenario 6 shown in Table 4, the primary call controller adopts the preemptive mode and the standby call controller adopts the stable mode. After that, if the call controller 3 goes 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 standby call controller remains the call controller 2.

[0178] Exemplarily, in Scenario 7 and Scenario 8 shown in Table 4, both the primary call controller and the standby call controller adopt the preemptive mode. After that, if the call controller 3 goes online, the call controller 3 can renegotiate with the call controller 1 and the call controller 2. According to the order of capabilities, the one with the best capabilities is taken as the new primary call controller, the one with relatively poor capabilities is taken as the new standby 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 by the embodiments of the present application, by setting the call controller in two modes: stable mode and preemptive mode, 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 one call controller in a working state, so as to avoid the execution error of the call process caused by mutual interference when multiple call controllers work simultaneously, thereby improving the stability and call quality of the distributed call.

[0180] The following describes, with reference to the accompanying drawings, the scenario where the primary call controller goes offline in a system with a primary and standby call controller.

[0181] It should be understood that the situation where the primary call controller goes offline may include taking the initiative to go offline and being forced to go offline. Among them, if the primary call controller takes the initiative to go offline, the primary call controller will broadcast an offline notification message to surrounding devices and / or components before going offline; in response to this offline notification message, the standby call controller can automatically become the primary call controller. If the primary call controller is forced to go offline, such as when the primary call controller leaves the coverage area of the local area network and the network connection is disconnected, if the standby call controller in the system does not receive the heartbeat message sent by the primary call controller within a preset second time, it means that the primary call controller has gone offline, and the standby call controller can automatically become the primary call controller.

[0182] Exemplarily, a possible scenario is: the primary call controller goes offline, and there is still a standby call controller and a call controller acting as an ordinary device in the system.

[0183] Exemplarily, as Figure 8 shown, it is a schematic diagram of another deployment process of the primary and standby call controllers provided by the embodiments of the present application. In the Figure 8 system, call controller 1 is the primary call controller, call controller 2 is the standby call controller, and call controller 3 is the call controller acting as an ordinary device.

[0184] In some embodiments, after call controller 1 goes offline, call controller 2 automatically acts as the primary call controller and takes over the tasks of the primary call controller. Among them, if call controller 2 is in the stable mode, then this call controller 2 will always maintain its role as the primary call controller. At this time, call controller 3 in the system can automatically become the standby call controller; if call control 2 is in the preemptive mode, then call controller 2 and call controller 3 can select a new primary call controller according to the preset criteria, and the other call controller that does not become the primary 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, Figure 9 FIG. 1 is a schematic diagram of another primary and standby call controller deployment process provided by an embodiment of the present application. Figure 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 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, Figure 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. 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 primary call controller in a distributed call system and the mode corresponding to the first call controller.

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

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

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

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

[0197] It should be understood that the first call controller, as the primary call controller, may periodically broadcast a heartbeat message, where the heartbeat message includes 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 may also include the mode corresponding to the first call controller. At this time, the first role notification message may also be the heartbeat message.

[0198] S1002. Determine the subsequent primary call controller of the distributed call system according to the mode corresponding to the first call controller.

[0199] Among them, the mode corresponding to the first call controller includes a preemptive mode or a stable mode. When the mode corresponding to the first call controller is a stable mode, the first call controller remains the primary call controller; when the mode corresponding to the first call controller is a preemptive mode, a 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 do not reselect the primary call controller, and the first call controller still serves 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 can reselect the active call controller by performing a negotiation process to select a call controller with better capabilities as the new active call controller.

[0203] Exemplarily, as Figure 11 shown, it is a schematic diagram of another call controller deployment process provided by an embodiment of the present application. This process may include the following steps:

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

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

[0206] S1102, reselect the active call controller according to the first capability information and the second capability information, where the second capability information includes the 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 the 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 the second score corresponding to the second call controller; where when the first score is higher than or equal to the second score, the first call controller is selected as the active call controller; or when the second score is higher than the first score, the second call controller is selected as the active call controller.

[0208] In some embodiments, the evaluation items may include 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 charge of the device where the call controller is located.

[0209] When a distributed call system presets a primary call controller and a standby call controller, in some embodiments, the second call controller can also serve as the standby call controller. The following are several scenarios: 1) There is only one primary call controller in the system, and this primary call controller supports the stable mode. Then the newly online second call controller can automatically serve as the standby call controller; 2) There is only one primary call controller in the system, and this primary call controller supports the preemptive mode. Then the first call controller (the current primary call controller) negotiates with the second call controller for the primary call controller. If the ability of the first call controller is superior to that of the second call controller, the first call controller still serves as the primary call controller, and the second call controller serves as the standby call controller; 3) There is a primary call controller and a standby call controller (such as the third call controller) in the system. Among them, the primary call controller is in the stable mode, and the standby call controller is in the preemptive mode. Then the second call controller can negotiate with the third call controller to become the new standby call controller; 4) There is a primary call controller and a standby call controller (such as the third call controller) in the system. Among them, both the primary call controller and the standby call controller are in the preemptive mode. Then the first call controller, the second call controller, and the third call controller can reselect the primary call controller and the standby call controller, and determine the corresponding roles according to the ability scores of each call controller. For example, 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 primary call controller, the second call controller serves as the new standby call controller, and the third call controller can participate in the distributed call as an ordinary device.

[0210] Taking the above scenario 3) as an example, the process of the second call controller negotiating with the standby call controller is introduced.

[0211] Exemplarily, as Figure 12 shown, it is a schematic diagram of the process of deploying another call controller provided by the embodiment of the present application. The process includes the following steps:

[0212] S1201, receive the second role message sent by the third call controller. This second role message is used to indicate that the third call controller is the standby call controller in the distributed call system and the corresponding mode of the third call controller.

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

[0214] In some embodiments, the re-selection of the standby call controller may include: The second call controller may obtain third capability information of the third call controller, where the third capability information includes the capability parameters of the evaluation items corresponding to the third call controller; The second call controller re-selects the standby call controller according to the third capability information and the second capability information.

[0215] Specifically, the second call controller may weight the capability parameters 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 standby call controller; When the third score is lower than the second score, the second call controller is selected as the standby call controller.

[0216] Similarly, on the side of the third call controller, a process for determining the standby call controller may also be performed according to 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 side of the second call controller and will not be elaborated here.

[0217] According to the method for selecting a call controller provided by the embodiments of the present application, by setting the call controller in two modes: stable mode and preemptive mode, and setting corresponding deployment criteria for the call controllers in the two different modes, when there are multiple call controllers in the call system, it is ensured that there is one call controller in the working state, so as to avoid the execution error of the call process caused by mutual interference when multiple call controllers work simultaneously, 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 an entity call controller that realizes the call controller function through one device, or may also be a virtual call controller composed of various components located on different devices. When a device only has some components that execute the call controller function and cannot complete the call controller function alone, a virtual call controller can also be selected, where each component of the virtual call controller can be distributed on different devices.

[0219] As Figure 13 shown, the call controller provided by the embodiments of the present application may also be a virtual call controller composed of various distributed components located on different devices. An example of the possible composition of its component modules is shown in Table 5.

[0220] Table 5

[0221]

[0222] Among them, 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 be registered as a distribution module at the same time, responsible for coordinating the business distribution of each component.

[0223] Referring to Figure 13 , in some embodiments, when all components of the call controller are registered and each component goes online, it is equivalent to the virtual call controller going online, and the distributed call system can perform distributed calls.

[0224] Through the above method, when no device in the network can completely have all components of the distributed call controller, multiple devices can jointly complete a virtual call controller, enabling distributed calls to be carried out. 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 embodiments of the present application can be preset with a stable or preemptive mode (such as setting the mode before leaving the factory). The above deployment process of the call controller does not require manual operation by the user, and the main call controller and / or standby call controller can be determined according to preset rules among call controllers.

[0226] In some embodiments, the call controller in the embodiments of the present application can also be preset with two modes: stable and preemptive, and the user manually selects the mode of the call controller. Taking the call controller as a mobile phone as an example, as Figure 14 shown, the user can select whether to set the mobile phone as the main call controller or the standby call controller in the call controller column in the settings of the mobile phone. For example, the user can click the enable control of the main call controller to make the mobile phone the main call controller; at this time, the enable control of the standby call controller remains closed (the on state and off state are as Figure 14 shown). After that, the user can also click the selection control corresponding to stable or preemptive in the dropdown list of the main call controller to determine the mode of the main call controller. In order to enable the user to understand the meanings of stable and preemptive modes of the main call controller and the differences between the two, Figure 14 the interface shown can also include text descriptions of stable and preemptive modes. For example, the description of stable mode is "When the stable mode of the call controller is enabled, the joining or exiting of other call controllers will not affect the role of this device as the main call controller", and the description of preemptive mode is "When the preemptive mode of the call controller is enabled, when other call controllers with better performance join, the role of the main call controller may switch to the new call controller".

[0227] When the user selects the mobile phone as the standby call controller, the mode selection dropdown list of the standby call controller can be the same as Figure 14Similar to the above, details are not described herein again.

[0228] It should be understood that Figure 14 The interface shown is only an example. In actual applications, the way for users to select the call controller mode is not limited to this, and this application does not make any restrictions.

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

[0230] Exemplarily, as Figure 15 shown, it is a schematic structural diagram of a call controller provided by an embodiment of this application. The call controller 1500 includes at least one processor 1501, a memory 1502, and a communication interface 1503. Among them, the processor 1502, the memory 1502, and the communication interface 1503 can be connected through a universal serial bus (USB) 1504. The memory 1502 includes computer instructions. When the computer instructions are executed in the processor 1501, the following steps are realized: 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 the current primary call controller in the distributed call system, and the mode corresponding to the first call controller; determining the subsequent primary call controller of the distributed call system according to the mode corresponding to the first call controller.

[0231] In some embodiments, when the computer instructions are executed in the processor 1501, the following steps are realized: the mode corresponding to the first call controller includes the preemptive mode or the stable mode. 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 that the subsequent call controller is the first call controller.

[0232] In some embodiments, when the computer instructions are executed in the processor 1501, the following steps are implemented: negotiating the primary call controller with the first call controller, including: obtaining first capability information of the first call controller, where the first capability information includes capability parameters of evaluation items corresponding to the first call controller; negotiating the primary call controller according to the first capability information and second capability information, where the second capability information includes 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 further includes: weighting the capability parameters of the evaluation items corresponding to the first call controller with 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 preset weights corresponding to the evaluation items to obtain a second score corresponding to the second call controller; where 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; the communication charge 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, where the second capability information includes capability parameters of 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 no standby call controller in the distributed call system currently, determining the second call controller as the standby call controller; when there is a third call controller as the current standby call controller in the distributed call system, determining the subsequent standby call controller of the distributed call system according to the mode corresponding to the third call controller.

[0237] In some embodiments, when the mode supported by the first call controller is the stable mode, when the computer instructions are executed in the processor 1501, the following steps are implemented: when there is no standby call controller in the distributed call system currently, determine the second call controller as the standby call controller; when there is a third call controller as the current standby call controller in the distributed call system, determine the standby call controller after the distributed call system 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: the determining the standby call controller after the distributed call system according to the mode corresponding to the third call controller includes: receiving a second role message sent by the third call controller, 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 the mode corresponding to the third call controller; determining whether to negotiate with the third call controller about the standby call controller according to the mode corresponding to the third call controller; where, when the mode corresponding to the third call controller is the stable mode, determine the third call controller as the standby call controller after the distributed call system; when the mode corresponding to the third call controller is the preemptive mode, determine to negotiate with the third call controller about the standby call controller, and determine the standby call controller after the distributed call system according to the negotiation result.

[0239] In some embodiments, when the computer instructions are executed in the processor 1501, the following steps are implemented: the negotiating with the third call controller about the standby call controller includes: weighting the capability parameter of the evaluation item corresponding to the third call controller with the preset weight value corresponding to the evaluation item to obtain the third score corresponding to the third call controller; when the second score is higher than or equal to the third score, determine the second call controller as the standby 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, where 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, where 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; determining the primary call controller after the distributed call system according to the mode corresponding to the first call controller.

[0241] In some 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 or stable. 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 preemptive, negotiating with the second call controller about the active call controller, and determining the subsequent active call controller according to the negotiation result; when the mode corresponding to the first call controller is stable, the subsequent call controller is the first call controller.

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

[0243] In some other embodiments, when the computer instructions are executed in the processor 1501, the following steps are implemented: determining the subsequent active call controller according to the negotiation result specifically includes: weighting the capability parameters of the evaluation items corresponding to the first call controller with 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 set weights corresponding to the evaluation items to obtain a second score corresponding to the second call controller; where when the first score is higher than or equal to the second score, determining the first call controller as the subsequent active call controller; or when the second score is higher than the first score, determining the second call controller as the subsequent active call controller.

[0244] In addition, an embodiment of the present application further 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 the 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 the mode corresponding to the first call controller.

[0246] A processing module, configured to determine the active call controller after the distributed call system according to the mode corresponding to the first call controller.

[0247] An embodiment of the present application further 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 goes online.

[0249] The sending module may be configured 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 active call controller in the distributed call system currently, and the mode corresponding to the first call controller.

[0250] The processing module may be configured to determine the active 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 further provides a distributed call system, including a first call controller and a second call controller, where the first call controller and the second call controller are respectively configured 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] An embodiment of the present application further provides a computer program, which, when executed in a processor, enables the method for deploying the call controller described above to be implemented.

[0253] An embodiment of the present application further provides a computer-readable storage medium, where the computer-readable storage medium includes computer instructions, which, when executed in a computer, enable the method for deploying the call controller described above to be 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 processes or functions described in the embodiments of the present application are generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium or transmitted through the computer-readable storage medium. The computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center in a wired manner (such as coaxial cable, optical fiber, digital subscriber line) or a wireless manner (such as infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that the computer can access or a data storage device such as a server or data center that includes one or more integrated available media. The available medium can be a magnetic medium (such as a floppy disk, hard disk, magnetic tape), an optical medium (such as a DVD), or a semiconductor medium (such as a solid state disk (SSD)), etc.

[0255] Those of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments can be completed by instructing relevant hardware with a computer program. The program can be stored in a computer-readable storage medium. When the program is executed, it can include the processes of the above method embodiments. The foregoing storage medium includes various media that can store program codes, such as ROM or random access memory RAM, magnetic disks, or optical discs.

[0256] As described above, the above are only the specific implementation manners of the embodiments of the present application, but the protection scope of the embodiments of the present application is not limited thereto. Any changes or substitutions within the technical scope disclosed in the embodiments of the present application should be covered by the protection scope of the embodiments of the present application. Therefore, the protection scope of the embodiments of the present application should be subject to the protection scope of the claims.

Claims

1. A method for deploying a call controller, characterized in that, applied to a first call controller in a distributed call system, including: Obtain a first notification message, which is used to indicate that a second call controller goes offline. Before going offline, the second call controller is the primary call controller in the distributed call system, and the primary call controller is used to play the role of a decision-making center in the distributed call system; Send a first broadcast in the distributed call system, where the first broadcast includes first capability information, and the first capability information includes the capability parameters of the evaluation items corresponding to the first call controller; After a preset first time, the first call controller becomes the primary call controller.

2. The method according to claim 1, characterized in that, before the first call controller becomes the primary call controller, the method further includes: Obtain a first role notification message, which includes third capability information, and the third capability information includes the capability parameters of the evaluation items corresponding to a third call controller. The distributed call system includes the third call controller; According to the mode corresponding to the first call controller, re-determine the primary call controller in the distributed call system after that from the first call controller and the third call controller; The first call controller becomes the primary call controller.

3. The method according to claim 2, characterized in that, the mode corresponding to the first call controller includes preemptive or stable. According to the mode corresponding to the first call controller, determining the primary call controller after that specifically includes: When the mode corresponding to the first call controller is preemptive, negotiate with the first call controller to determine the primary call controller after that; When the mode corresponding to the first call controller is stable, determine that the primary call controller after that is the first call controller.

4. The method according to claim 3, characterized in that, the negotiation to determine the primary call controller after that specifically includes: Weight 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, weight 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; where when the first score is higher than or equal to the second score, determine that the primary call controller after that 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 fee corresponding to the call controller.

6. The method according to claim 3 or 4, wherein, the method further comprises: 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.

7. The method according to claim 4, wherein, the method further comprises: when there is no standby call controller in the distributed call system currently, determining the second call controller as the standby call controller; when there is a third call controller as the current standby call controller in the distributed call system, determining the standby call controller after the distributed call system according to the mode corresponding to the third call controller.

8. The method according to claim 7, wherein, the determining the standby call controller after the distributed call system according to the mode corresponding to the third call controller comprises: obtaining a second role message, the second role message being used to indicate that the third call controller is the current standby call controller in the distributed call system and the mode corresponding to the third call controller; determining whether to negotiate with the third call controller to determine the standby call controller after the distributed call system according to the mode corresponding to the third call controller; wherein, when the mode corresponding to the third call controller is a stable mode, determining the standby call controller after the distributed call system as the third call controller; when the mode corresponding to the third call controller is a preemptive mode, determining to negotiate with the third call controller to determine the standby call controller after the distributed call system.

9. A call controller, wherein, comprises: a receiving module, configured to obtain a first notification message, the first notification message being used to indicate that a second call controller goes offline, the second call controller being the primary call controller in the distributed call system before going offline, and the primary call controller being used to play a decision-making center role in the distributed call system; a processing module, determining the first call controller as the primary call controller after the distributed call system.

10. A call controller, wherein, comprises at least one processor and a memory, the memory including computer instructions, when the computer instructions are executed in the processor, enabling the call controller to execute the method according to any one of claims 1 to 8.