Voice channel allocation method, voice communication method, device, equipment and medium

By flexibly allocating voice channels based on dialing event records in multi-voice port gateway devices, the problem of low hardware resource utilization is solved, achieving more efficient resource utilization and cost reduction.

CN120614343BActive Publication Date: 2026-08-25FIBERHOME TELECOMMUNICATION TECHNOLOGIES CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510781390.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-06-12
Publication Date
2026-08-25
Estimated Expiration
2045-06-12

AI Technical Summary

Technical Problem

In existing multi-voice-port gateway devices, the voice channel binding method leads to low hardware resource utilization, especially in scenarios with uneven usage, resulting in serious resource waste and affecting user experience.

Method used

By recording voice dialing events, voice channels can be flexibly allocated. Some voice ports can be bound to at least two channels, some to one channel, and the remainder can be allocated as needed. The binding status can be dynamically adjusted to adapt to user habits and improve resource utilization.

Benefits of technology

It improves the utilization rate of the voice channel, reduces hardware costs, maintains user experience, and maximizes the use of device resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120614343B_ABST
    Figure CN120614343B_ABST
Patent Text Reader

Abstract

The present disclosure belongs to the technical field of gateway voice service, and provides a voice channel allocation method, a voice communication method, a device, equipment and a medium. The allocation method comprises applying in a multi-voice-port gateway device, and part of the voice ports are not bound to the remaining voice channels. The allocation method comprises: receiving a voice channel application sent by a voice service module, judging whether the current voice port is bound to a voice channel; if yes, allocating the bound voice channel to the current voice port; if no, judging whether there is an idle voice channel in a current voice channel state record table; if yes, calling a voice driver module to initialize a specified idle voice channel, obtaining available voice channel information based on an initialization result and idle voice channel information, and feeding back the available voice channel information while updating the voice channel state table to update the state of the specified idle voice channel to busy; if no, feeding back a rejection application information. The voice hardware resources can be used to the greatest extent, and the user experience is not reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure belongs to the field of gateway voice service technology, and in particular relates to voice channel allocation methods, voice communication methods, devices, equipment and media. Background Technology

[0002] Although landline phones are used less frequently in modern voice communication, they remain a primary method in hotels and office buildings. For multi-port gateway devices used in hotels and office buildings, each voice port is bound to a fixed voice channel, typically two fixed channels per port. This binding of two fixed channels is necessary because multi-party voice services such as three-way calls and call waiting require at least two channels. This method ensures that each voice port is always available. However, since each voice port in a multi-port gateway device cannot be in constant use, while this method ensures a good user experience, the bound voice channels remain idle when the port is not in use. This results in low overall utilization of the multi-port gateway device's voice hardware resources, especially noticeable in places like hotels where occupancy rates vary significantly between peak and off-peak seasons.

[0003] This method of binding fixed voice channels to multi-port gateway devices ensures that all voice ports are always available for voice calls, eliminating any situation where voice calls cannot be made. While this maximizes the user experience, it also results in low voice channel utilization. In real-world scenarios, it's rare for all voice ports of a multi-port gateway device to be in use simultaneously; even having half of the voice ports in use at the same time is almost impossible. Therefore, the overall utilization rate of voice hardware resources using this method of binding fixed voice channels to multi-port gateway devices decreases as the idle time of the voice ports increases. Summary of the Invention

[0004] To address the aforementioned issues, this disclosure provides a method and apparatus for allocating voice channels in a multi-voice port gateway device. By employing dialing events based on the voice port, the method enables fixed binding and flexible allocation of voice ports and voice channels, thereby improving the utilization rate of voice channels and the overall utilization rate of voice hardware resources in the multi-voice port gateway device.

[0005] Firstly, a voice channel allocation method is provided, applied in a multi-voice port gateway device. The multi-voice port gateway device includes: a voice port connected to a landline phone, a voice service module, and a voice driver module. Some voice ports are each bound to at least two voice channels, some voice ports are each bound to one voice channel, and the remaining voice ports are not bound to any remaining voice channels. The number of bound voice channels is determined by the dialing event records of the landline phone connected to the voice port, wherein the dialing event records include a voice port identifier and a dialing time. The method includes: Receive voice channel requests sent by the voice service module and determine whether the current voice port is bound to a voice channel; If yes, then the bound voice channel will be assigned to the current voice port; otherwise, it will be determined whether there is an idle voice channel in the current voice channel status record table. When there is an available voice channel, the voice driver module is invoked to initialize the specified available voice channel, the initialization result and available voice channel information are received, and the available voice channel information is obtained based on the initialization result and available voice channel information and fed back to the voice service module. At the same time, the maintained voice channel status table is updated in real time, and the status of the specified available voice channel is updated to busy. When there are no available voice channels, the application rejection message is sent to the voice service module.

[0006] Furthermore, it also includes: Upon receiving a voice channel release request from the voice service module, the system calls the voice driver module to release the voice channel currently in use for that voice port. Simultaneously, it updates the maintained voice channel status table in real time, changing the status of the currently in use voice channel to idle.

[0007] Furthermore, after receiving a voice channel request, it also includes recording the current dialing event.

[0008] Furthermore, it also includes: within a set time period, based on the dialing event records, determining the multi-party calls and two-party calls in the dialing event records, counting the number of multi-party calls and two-party calls for each voice port, and updating the binding relationship between the voice port and the voice channel. Specifically, the voice port with the number of multi-party calls exceeding the first threshold is bound to 2 voice channels, and the voice port with the number of two-party calls exceeding the second threshold is bound to 1 voice channel.

[0009] Firstly, a voice communication method is provided, applied in a multi-voice-port gateway device. The multi-voice-port gateway device includes: a voice port connected to a fixed-line telephone, a voice service module, a voice channel management module, and a voice driver module. Some voice ports are each bound to at least two voice channels, some voice ports are each bound to one voice channel, and the remaining voice ports are not bound to any remaining voice channels. The number of bound voice channels is determined by the dialing event records of the fixed-line telephone connected to the voice port, wherein the dialing event records include a voice port identifier and a dialing time. The method includes: The voice service module receives off-hook and dialing events from the landline phone connected to the current voice port; The voice service module converts off-hook and dialing events into call requests, and based on the call requests, sends a voice channel application to the voice channel management module. The voice channel management module receives a voice channel application, determines that the current voice port is not bound to a voice channel, queries the current voice channel status record table to determine that there is an available voice channel, and calls the voice driver module to initialize the specified available voice channel. The voice driver module feeds back the initialization results and available voice channel information to the voice channel management module; Based on the initialization results and idle voice channel information, the voice channel management module obtains available voice channel information and feeds it back to the voice service module. At the same time, it updates the maintained voice channel status table in real time and updates the status of the specified idle voice channel to busy. The voice service module sends a call request to the remote phone to establish a call connection between the fixed phone at the current voice port and the remote phone.

[0010] Furthermore, it also includes: transmitting the hang-up event of the connected landline phone to the voice service module via the voice port; The voice service module receives the hang-up event from the fixed phone at the voice port, converts it into a call end request, requests the voice channel management module to release the currently used voice channel, and sends a call end request to the remote phone. When the voice channel management module receives a voice channel release request from the voice service module, it calls the voice driver module to release the currently used voice channel and updates the maintained voice channel status table in real time. After the voice-driven module releases the voice channel currently being used by the voice channel management module, it will send the release completion result back to the voice channel management module.

[0011] Furthermore, it also includes: the voice channel management module queries the current voice channel status record table, determines that there are no available voice channels, and sends a rejection message to the voice service module; The voice service module records the dialing event of the current voice port and sends a voice prompt to it saying "The current voice port is busy and will automatically dial back later". When the voice channel management module determines that there is an available voice channel, it notifies the voice service module that the voice ports whose applications were previously rejected now have an available voice channel to apply for. The voice service module sends a ringing command to the current voice port; The voice port transmits the off-hook event of the connected landline phone to the voice service module. The voice service module sends a voice prompt to the current voice port asking "Do you want to automatically redial the last undialed number?" If it determines that it needs to automatically redial the last undialed number, it converts the last dialing event of the current voice port into a call request, clears the recorded dialing event of the current voice port, requests an idle voice channel from the voice channel management module, and sends a call request to the remote phone based on the requested idle voice channel.

[0012] Furthermore, after the voice service module sends a call request to the remote phone and establishes a call connection between the fixed phone at the current voice port and the remote phone, it also includes: The voice service module receives the fork spring and dialing events, converts the fork spring and dialing events into a second call request, and sends a voice channel application to the voice channel management module; The voice channel management module receives a voice channel application, determines that the current voice port is not bound to a voice channel, queries the current voice channel status record table to determine that there is an available voice channel, and calls the voice driver module to initialize the specified available voice channel. The voice driver module feeds back the initialization results and available voice channel information to the voice channel management module; Based on the initialization results and idle voice channel information, the voice channel management module obtains available voice channel information and feeds it back to the voice service module. At the same time, it updates the maintained voice channel status table in real time and updates the status of the specified idle voice channel to busy. The voice service module sends a second call request to the remote phone to establish a call between the local fixed phone and the remote phone connected to the current voice port. The voice port transmits the hang-up event of the connected landline phone to the voice service module; The voice service module receives the hang-up event from the fixed phone at the voice port, converts it into a call end request, requests the voice channel management module to release the two currently used voice channels, and sends a call end request to the remote phone. When the voice channel management module receives a voice channel release request from the voice service module, it calls the voice driver module to release the two voice channels currently in use, and at the same time updates the voice channel status table it maintains in real time. After the voice-driven module releases the two voice channels currently in use by the voice channel management module, it will send the release completion result back to the voice channel management module.

[0013] Furthermore, after the voice service module sends a call request to the remote phone and establishes a call connection between the fixed phone at the current voice port and the remote phone, it also includes: The voice service module receives the fork spring and dialing events, converts the fork spring and dialing events into a second call request, and sends a voice channel application to the voice channel management module; The voice channel management module receives a voice channel application, determines that the current voice port is not bound to a voice channel, queries the current voice channel status record table to determine that there is no free voice channel, and sends a rejection message to the voice service. Based on the received rejection request message, the voice service module switches the multi-party call mode from local mixing mode to server mixing mode, and sends a call request to the remote phone to establish a call with the remote phone. The voice port transmits the hang-up event of the connected landline phone to the voice service module and converts it into a call end request; The voice service module restores the multi-party call mode to local mixing mode, requests the voice channel management module to release the currently used voice channel, and sends a call end request to the remote phone. When the voice channel management module receives a voice channel release request from the voice service module, it calls the voice driver module to release the currently used voice channel and updates the maintained voice channel status table in real time. After the voice-driven module releases the voice channel currently being used by the voice channel management module, it will send the release completion result back to the voice channel management module.

[0014] Thirdly, a voice channel allocation device is provided, applied in a multi-voice port gateway device. The multi-voice port gateway device includes: a voice port connected to a fixed-line telephone, a voice service module, and a voice driver module. Some voice ports are each bound to at least two voice channels, some voice ports are each bound to one voice channel, and the remaining voice ports are not bound to any remaining voice channels. The number of bound voice channels is determined by the dialing event records of the fixed-line telephone connected to the voice port, wherein the dialing event records include a voice port identifier and a dialing time. The device includes: a receiving module, a first judgment module, a second judgment module, a processing module, and a sending module, wherein: The receiving module is used to receive voice channel requests sent by the voice service module, as well as initialization results and available voice channel information. The first judgment module is used to determine whether the current voice port is bound to a voice channel and obtain the first judgment result; The second judgment module is used to determine whether there is an idle voice channel in the current voice channel status record table when the first judgment result is negative, and to obtain the second judgment result. The processing module is used to allocate the bound voice channel to the current voice port when the first judgment result is yes; when the second judgment result is yes, it calls the voice driver module to initialize the specified idle voice channel, obtains the available voice channel information based on the received initialization result and idle voice channel information, and updates the maintained voice channel status table in real time, updating the status of the specified idle voice channel to busy. The sending module is used to send feedback information about available voice channels to the voice service module. If the second judgment result is negative, it sends feedback information rejecting the application to the voice service module.

[0015] Fourthly, a voice communication device is provided, comprising: a voice port connected to a landline phone, a voice service module, a voice channel management module, and a voice driver module, wherein some voice ports are each bound to at least two voice channels, some voice ports are each bound to one voice channel, and the remaining voice ports are not bound to any remaining voice channels; the number of bound voice channels is determined by the dialing event records of the landline phone connected to the voice port, wherein the dialing event records include the voice port identifier and the dialing time; The voice service module is used to receive off-hook and dial events from the fixed phone connected to the current voice port; convert off-hook and dial events into call requests; send a voice channel application to the voice channel management module based on the call request; and receive available voice channel information, send a call request to the remote phone based on the available voice channel information, and establish a call between the fixed phone and the remote phone connected to the current voice port. The voice channel management module is used to receive voice channel requests, determine that the current voice port is not bound to a voice channel; query the current voice channel status record table to determine that there is an idle voice channel, call the voice driver module to initialize the specified idle voice channel; based on the initialization result and idle voice channel information, obtain the available voice channel information and feed it back to the voice service module, while updating the maintained voice channel status table in real time and updating the status of the specified idle voice channel to busy; The voice-driven module is used to feed back the initialization results and idle voice channel information to the voice channel management module.

[0016] Fifthly, an electronic device is provided, including a processor, a communication interface, a memory, and a communication bus, wherein the processor, the communication interface, and the memory communicate with each other through the communication bus; Memory, used to store computer programs; The processor implements the above method when executing programs stored in memory.

[0017] In a sixth aspect, a computer storage medium is provided, wherein a computer program is stored therein, and the computer program, when executed by a processor, implements the above-described method.

[0018] Compared with the prior art, this disclosure has the following advantages: 1. Compared to the current method of binding fixed voice channels to multi-voice port gateway devices, the voice channel allocation method disclosed herein can maximize the utilization of the voice hardware resources on the multi-voice port gateway device, with virtually no reduction in user experience, and effectively reduce the hardware cost of the multi-voice port gateway device. For example, in the method of binding fixed voice channels, N voice ports require 2N voice channels, while in the solution disclosed herein, the number of voice channels required for N voice ports is between N and 2N. In scenarios where multi-party calls are rarely used or where the user experience can be appropriately reduced, only N voice channels are needed.

[0019] 2. The multi-voice port gateway device in this disclosure will automatically adjust the binding status of the voice port and the voice channel according to the dialing event record, so that the multi-voice port gateway device can always meet the user's usage habits, thereby maintaining a good user experience.

[0020] Other features and advantages of this disclosure will be set forth in the description which follows, and will be apparent in part from the description, or may be learned by practicing the disclosure. The objects and other advantages of this disclosure may be realized and obtained by means of the structures pointed out in the description, claims and drawings. Attached Figure Description

[0021] To more clearly illustrate the technical solutions in the embodiments of this disclosure or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of this disclosure. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0022] Figure 1 A schematic diagram illustrating the method of allocating voice channels in a multi-voice port gateway device according to an embodiment of the present disclosure is shown. Figure 2 A schematic diagram of a normal voice call process of a multi-voice port gateway device when there is an available voice channel is shown according to an embodiment of the present disclosure; Figure 3 A schematic diagram of a normal voice call process of a multi-voice port gateway device when there are no idle voice channels is shown according to an embodiment of the present disclosure; Figure 4 A schematic diagram of a multi-party voice call process of a multi-voice port gateway device when there is an available voice channel is shown according to an embodiment of the present disclosure; Figure 5 A schematic diagram of a multi-party voice call process of a multi-voice port gateway device when there is no available voice channel is shown according to an embodiment of the present disclosure. Detailed Implementation

[0023] To make the objectives, technical solutions, and advantages of the embodiments of this disclosure clearer, the technical solutions of the embodiments of this disclosure will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this disclosure, and not all embodiments. Based on the embodiments of this disclosure, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this disclosure.

[0024] Figure 1 A schematic diagram illustrating a method for flexibly allocating voice channels to a multi-voice-port gateway device is provided. In this method, some voice ports are each bound to at least two voice channels, some voice ports are each bound to one voice channel, and the remaining voice ports are not bound to any remaining voice channels. The number of voice channels bound is determined by the dialing event records of the fixed phones connected to the voice ports, where the dialing event records include the voice port identifier and the dialing time. Here, the dialing event records the number of times each voice port uses normal calls (i.e., two-way calls) and the number of times it uses three-way calls. The frequency here is actually divided into two: the number of times normal calls are used, and the number of times three-way calls are made on the basis of normal calls (normal calls must be made before three-way calls are made).

[0025] The dialing event logs can be used to determine the usage scenarios and frequencies of each voice port. These scenarios include two-way and multi-way calls. Voice ports with more than a first threshold G for multi-way calls are bound to two voice channels, while those with more than a second threshold K for two-way calls are bound to one voice channel. For example, if voice port 1 has more than K ordinary calls in a day (K is configurable, e.g., 10), then voice port 1 is permanently bound to one voice channel. If voice port 1 has more than G three-way calls in a day (G is configurable, e.g., 5), then voice port 1 is permanently bound to two voice channels. Here, G will not exceed K, meaning the first threshold is less than the second threshold.

[0026] Figure 1For example, the voice channel management module counts dialing events for each voice port at a specified time each day (which can be set). If voice port 1 frequently uses multi-party voice calls and its number of multi-party calls exceeds the first threshold, then voice channel 1 and voice channel 2 are bound together. If voice port 2 frequently uses ordinary voice calls, i.e., two-way voice calls, and its number of two-way calls exceeds the second threshold, then voice channel 3 is bound together. Voice ports 3 through N are used normally and are not bound together. They share voice channels 4 through N and can be flexibly allocated as needed.

[0027] The method includes: Receive voice channel requests sent by the voice service module and determine whether the current voice port is bound to a voice channel; If yes, then the bound voice channel will be assigned to the current voice port; otherwise, it will be determined whether there is an idle voice channel in the current voice channel status record table. When there is an available voice channel, the voice driver module is invoked to initialize the specified available voice channel, the initialization result and available voice channel information are received, and the available voice channel information is obtained based on the initialization result and available voice channel information and fed back to the voice service module. At the same time, the maintained voice channel status table is updated in real time, and the status of the specified available voice channel is updated to busy. When there are no available voice channels, the application rejection message is sent to the voice service module.

[0028] Furthermore, the above method for allocating voice channels also includes: receiving a voice channel release request sent by the voice service module, calling the voice driver module to release the voice channel currently in use by the voice port, and simultaneously updating the maintained voice channel status table in real time to update the status of the voice channel currently in use by the voice port to idle.

[0029] Furthermore, after receiving a voice channel request, it also includes recording the current dialing event.

[0030] Furthermore, within a set time period, based on the dialing event records, the number of multi-party calls and two-party calls in the dialing event records are determined, the number of multi-party calls and two-party calls for each voice port are counted, and the binding relationship between the voice port and the voice channel is updated. Specifically, the voice port with the number of multi-party calls exceeding the first threshold is bound to two voice channels, and the voice port with the number of two-party calls exceeding the second threshold is bound to one voice channel.

[0031] Figure 2 This is a schematic diagram of a normal voice call process on a multi-voice port gateway device when there are available voice channels. The process is as follows: S1. In a multi-voice port gateway device, one of the voice ports transmits the off-hook and dialing events of the connected landline phone to the voice service module.

[0032] S2. The voice service module receives the off-hook and dialing events of the fixed phone at the voice port and converts them into call requests. Before sending the call request to the remote phone, it first applies for an idle voice channel from the voice channel management module.

[0033] S3. When the voice channel management module receives a voice channel application from the voice service module, it queries the current voice channel status record table. If it finds an available voice channel, it calls the voice driver module to initialize the specified available voice channel.

[0034] S4. After the voice driver module initializes the voice channel specified by the voice channel management module, it feeds back the initialization result and the voice channel information to the voice channel management module.

[0035] S5. The voice channel management module will use the initialization results and the voice channel information to determine the available voice channel information and then feed the available voice channel information back to the voice service module.

[0036] S6. The voice service module sends a call request to the remote phone to establish a call between the local fixed phone and the remote phone.

[0037] S7: The voice port transmits the hang-up event of the connected landline phone to the voice service module.

[0038] S8. The voice service module receives the hang-up event of the fixed phone at the voice port, converts it into a call end request, applies to the voice channel management module to release the currently used voice channel, and sends a call end request to the remote phone.

[0039] S9. When the voice channel management module receives a voice channel release request from the voice service module, it calls the voice driver module to release the specified voice channel that is currently in use, and at the same time updates the voice channel status table it maintains in real time.

[0040] S10. After the voice driver module releases the voice channel specified by the voice channel management module, it will send the release completion result back to the voice channel management module.

[0041] Figure 3 The diagram below illustrates the normal voice call process of a multi-voice port gateway device when there are no available voice channels: S1, same as Figure 2 S1 in the middle.

[0042] S2, same Figure 2 S2 in the middle.

[0043] S3. When the voice channel management module receives a voice channel application from the voice service module, it queries the current voice channel status record table. If it finds that there is no free voice channel, it sends a message to the voice service module that no voice channel is currently available.

[0044] S4. After receiving feedback from the voice channel management module that no voice channel is currently available, the voice service module records the dialing event of the current voice port and sends a command to the current voice port to play the voice prompt "The current voice port is busy and will be automatically dialed back later". The user hears the voice prompt "The current voice port is busy and will be automatically dialed back later" on the landline.

[0045] S5. When other voice ports of the multi-voice port gateway device finish their calls, the voice channel management module receives a request to release the specified voice channel.

[0046] S6. The voice channel management module calls the voice driver module to release the specified voice channel that is currently in use, and at the same time updates the voice channel status table it maintains in real time.

[0047] S7. After the voice driver module releases the voice channel specified by the voice channel management module, it will send the release completion result back to the voice channel management module.

[0048] S8. The voice channel management module notifies the voice service module that there are available voice channels available for application if the voice channel application was previously rejected.

[0049] S9. The voice service module sends a ringing command to the current voice port, and the landline phone starts ringing.

[0050] S10. The voice port transmits the off-hook event of the connected landline phone to the voice service module. (If the user does not off-hook the landline phone at this time, the landline phone will stop ringing after the first ringing duration (e.g., 60 seconds) and will not proceed with the subsequent process.) The voice service module sends a voice prompt to the current voice port asking "Do you want to automatically redial the last undialed number?" The user hears the voice prompt "Do you want to automatically redial the last undialed number?" on the landline phone. If the user does not perform any operation within the second set duration (e.g., 5 seconds), the last undialed number will be automatically dialed (without the user needing to dial again). If the user hangs up the landline phone at this time, the subsequent process will not proceed (the recorded dialing events of this voice port will be cleared after the subsequent process is stopped).

[0051] S11. The voice service module converts the last dialing event of the voice port into a call request, clears the recorded dialing events of the voice port, and applies for an idle voice channel from the voice channel management module before sending the call request to the remote phone.

[0052] S12-S19, same Figure 2 S3-S10 in the middle.

[0053] Figure 4This is a schematic diagram illustrating the multi-party voice call process of a multi-voice port gateway device when there are available voice channels. The process is as follows: S1-S6, same Figure 2 S1-S6 in the middle.

[0054] In S7-S12 multi-voice port gateway devices, after one of the voice ports has established a regular voice call, it prepares to establish a multi-party voice call. The process for establishing a second regular voice call is the same. Figure 2 In S1-S6, after the second normal voice call is established, the multi-party call begins.

[0055] S13-S16: When a multi-party voice call ends, two voice channels need to be released. The release process is the same as above. Figure 2 The release process for each voice channel in S7-S10 is the same. Figure 2 (S8-S10 in the text).

[0056] Figure 5 The diagram illustrates the multi-party voice call process of a multi-voice port gateway device when there are no available voice channels. The process is as follows: S1-S6, same Figure 2 S1-S6 in the middle.

[0057] S7. After establishing a regular voice call, one of the voice ports of the multi-voice port gateway device prepares to establish a multi-party voice call by transmitting the call button and dialing events of the connected landline phone to the voice service module.

[0058] S8. The voice service module receives the call-out and dialing events from the fixed phone at the voice port and converts them into a second call request for that voice port. Before sending the call request to the remote phone, it first requests an idle voice channel from the voice channel management module.

[0059] S9. When the voice channel management module receives a voice channel application from the voice service module, it queries the current voice channel status record table. If it finds that there is no free voice channel, it sends a message to the voice service module that no voice channel is currently available.

[0060] S10. After receiving feedback from the voice channel management module that there is no voice channel available, the voice service module switches the multi-party call mode of the current voice port from local mixing mode to server mixing mode.

[0061] The server-side audio mixing mode only requires the device to use one voice channel to achieve multi-party call services, but it will put a burden on the server. Switching to server-side audio mixing mode is only a temporary emergency measure to ensure user experience.

[0062] S11. The voice service module sends a call request to the remote phone, establishes a call between the local fixed phone and the remote phone, and starts a multi-party call.

[0063] S12. The voice port transmits the hang-up event of the connected landline phone to the voice service module.

[0064] S13. The voice service module restores the current multi-party call mode of the voice port to the local mixing mode.

[0065] S14-S16, same Figure 2 S8-S10 in the middle.

[0066] Based on the above method, this disclosure also provides an apparatus corresponding to the above voice channel allocation method, namely a voice channel allocation apparatus, applied in a multi-voice port gateway device. The multi-voice port gateway device includes: a voice port connected to a fixed telephone, a voice service module, and a voice driver module, wherein some voice ports are each bound to at least two voice channels, some voice ports are each bound to one voice channel, and the remaining voice ports are not bound to any remaining voice channels; the number of bound voice channels is determined by the dialing event records of the fixed telephone connected to the voice port, wherein the dialing event records include a voice port identifier and a dialing time; the apparatus includes: a receiving module, a first judgment module, a second judgment module, a processing module, and a sending module, wherein: The receiving module is used to receive voice channel requests sent by the voice service module, as well as initialization results and available voice channel information. The first judgment module is used to determine whether the current voice port is bound to a voice channel and obtain the first judgment result; The second judgment module is used to determine whether there is an idle voice channel in the current voice channel status record table when the first judgment result is negative, and to obtain the second judgment result. The processing module is used to allocate the bound voice channel to the current voice port when the first judgment result is yes; when the second judgment result is yes, it calls the voice driver module to initialize the specified idle voice channel, obtains the available voice channel information based on the received initialization result and idle voice channel information, and updates the maintained voice channel status table in real time, updating the status of the specified idle voice channel to busy. The sending module is used to send feedback information about available voice channels to the voice service module. If the second judgment result is negative, it sends feedback information rejecting the application to the voice service module.

[0067] Based on the above method, this disclosure also provides a voice communication device, namely a multi-voice port gateway device, including: a voice port connected to a fixed telephone, a voice service module, a voice channel management module, and a voice driver module, wherein some voice ports are each bound to at least 2 voice channels, some voice ports are each bound to 1 voice channel, and the remaining voice ports are not bound to the remaining voice channels; the number of bound voice channels is determined by the dialing event records of the fixed telephone connected to the voice port, wherein the dialing event records include the voice port identifier and the dialing time; The voice port connects to an external landline phone via a telephone line. It is used to report the operation events of the landline phone (such as picking up the phone, dialing, hanging up, etc.) to the voice service module via the telephone line, and to send the instructions of the voice service module to the landline phone (such as ringing, playing various signal tones, playing voice prompts, etc.) via the telephone line.

[0068] The voice service module receives off-hook and dialing events from the landline phone at the voice port and converts them into call requests. Before sending a call request to the remote phone, it first requests an available voice channel from the voice channel management module. If the request is successful, it sends a call request to the remote phone to attempt to establish a call. If the request fails and the current voice port is not in a call state (meaning that no voice channel has been allocated to the current voice port before), it sends a command to play a voice prompt to the current voice port. After receiving a message from the voice channel management module that an available channel is available, it sends a ringing command to the current voice port. If the application fails and the current voice port is in a call state (indicating that a voice channel has been previously allocated to the current voice port, the first-party user has already used the allocated voice channel to call the second-party user, and now needs to call the third-party user), then the multi-party call mode will be switched from local mixing mode to server mixing mode, and a call request will be sent to the remote phone to attempt to establish a call with the remote phone. After the multi-party call ends, the multi-party call mode will be restored to local mixing mode; the fixed phone hang-up event of the voice port will be received and converted into a call end request. If the current voice port is in a call state, the voice channel management module will be requested to release the currently used voice channel, and a call end request will be sent to the remote phone.

[0069] The voice channel management module maintains a table that records the real-time status (idle / busy) of the current voice channels on the device. When it receives a voice channel request from a voice service module, it responds based on whether there is an available voice channel in the current voice channel status record table. If an available voice channel is available, the request is granted, the voice driver module is invoked to initialize the specified idle voice channel, and the voice channel information is fed back to the voice service module, while the maintained voice channel status table is updated in real time. If no idle voice channel is available, the request is rejected. When a voice service module's voice channel request for a certain voice port is rejected, the module immediately notifies the voice service module that a previously rejected voice channel request is available upon discovery of a new idle voice channel. When a voice service module's voice channel release request is received, the voice driver module is invoked to release the specified currently used voice channel, while the status is updated in real time. Maintain a voice channel status table; whenever a voice channel application is received from the voice service module, record the voice port of the applied voice channel. At a specified time each day (configurable), based on the records, identify voice ports that have exceeded the specified number of uses for multi-party calls and regular calls (configurable), and reserve 1 to 2 voice channels for these voice ports (1 voice channel is reserved for voice ports that have exceeded the specified number of uses for regular voice calls, and 2 voice channels are reserved for voice ports that have exceeded the specified number of uses for multi-party voice calls). This is equivalent to binding these voice ports to designated voice channels so that they are always available for regular voice calls and multi-party voice calls. The voice driver module provides interfaces for other voice modules to initialize and release voice channels.

[0070] Based on the same inventive concept as the above disclosure, this disclosure also provides an electronic device. The electronic device of this disclosure includes at least one processor and at least one memory electrically connected to the processor. The memory is electrically connected to the processor, wherein the memory stores instructions executable by the at least one processor, which, when executed by the at least one processor, enables the at least one processor to perform the method described above.

[0071] It should be noted that the electrical connection between the above-mentioned units does not necessarily mean the connection between lines. The indirect connection method can be applied to the embodiments of this disclosure as long as it achieves the purpose of this disclosure.

[0072] Based on the same inventive concept, this disclosure also provides a computer storage medium storing a computer program, which, when executed by a processor, implements the above-described method.

[0073] Although the present disclosure has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features; and such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present disclosure.

Claims

1. A method for allocating voice channels, characterized in that, In a multi-voice-port gateway device, the device includes: a voice port connected to a landline phone, a voice service module, and a voice driver module. Some voice ports are bound to at least two voice channels, some are bound to one voice channel, and the remaining voice ports are not bound to any remaining voice channels. The number of bound voice channels is determined by the dialing event records of the landline phone connected to the voice port, where each dialing event record includes a voice port identifier and dialing time. The method includes: Receive voice channel requests sent by the voice service module and determine whether the current voice port is bound to a voice channel; If yes, then the bound voice channel will be assigned to the current voice port; otherwise, it will be determined whether there is an idle voice channel in the current voice channel status record table. When there is an available voice channel, the voice driver module is invoked to initialize the specified available voice channel, the initialization result and available voice channel information are received, and the available voice channel information is obtained based on the initialization result and available voice channel information and fed back to the voice service module. At the same time, the maintained voice channel status table is updated in real time, and the status of the specified available voice channel is updated to busy. When there are no available voice channels, the application rejection message is sent to the voice service module.

2. The method according to claim 1, characterized in that, Also includes: Upon receiving a voice channel release request from the voice service module, the system calls the voice driver module to release the voice channel currently in use for that voice port. Simultaneously, it updates the maintained voice channel status table in real time, changing the status of the currently in use voice channel to idle.

3. The method according to claim 1 or 2, characterized in that, After receiving a voice channel request, the process also includes recording the current dialing event.

4. The method according to claim 1 or 2, characterized in that, Also includes: Within a set time period, based on the dialing event records, determine the multi-party calls and two-party calls in the dialing event records, count the number of multi-party calls and two-party calls for each voice port, and update the binding relationship between the voice port and the voice channel. Specifically, the voice port with the number of multi-party calls exceeding the first threshold is bound to 2 voice channels, and the voice port with the number of two-party calls exceeding the second threshold is bound to 1 voice channel.

5. A voice communication method, characterized in that, In a multi-voice-port gateway device, the device includes: a voice port connected to a landline phone, a voice service module, a voice channel management module, and a voice driver module. Some voice ports are each bound to at least two voice channels, some are each bound to one voice channel, and the remaining voice ports are not bound to any remaining voice channels. The number of bound voice channels is determined by the dialing event records of the landline phone connected to the voice port, where each dialing event record includes the voice port identifier and the dialing time. The method includes: The voice service module receives off-hook and dialing events from the landline phone connected to the current voice port; The voice service module converts off-hook and dialing events into call requests, and based on the call requests, sends a voice channel application to the voice channel management module. The voice channel management module receives a voice channel application, determines that the current voice port is not bound to a voice channel, queries the current voice channel status record table to determine that there is an available voice channel, and calls the voice driver module to initialize the specified available voice channel. The voice driver module feeds back the initialization results and available voice channel information to the voice channel management module; Based on the initialization results and idle voice channel information, the voice channel management module obtains available voice channel information and feeds it back to the voice service module. At the same time, it updates the maintained voice channel status table in real time and updates the status of the specified idle voice channel to busy. The voice service module sends a call request to the remote phone to establish a call connection between the fixed phone at the current voice port and the remote phone.

6. The method according to claim 5, characterized in that, Also includes: The voice port transmits the hang-up event of the connected landline phone to the voice service module; The voice service module receives the hang-up event from the fixed phone at the voice port, converts it into a call end request, requests the voice channel management module to release the currently used voice channel, and sends a call end request to the remote phone. When the voice channel management module receives a voice channel release request from the voice service module, it calls the voice driver module to release the currently used voice channel and updates the maintained voice channel status table in real time. After the voice-driven module releases the voice channel currently being used by the voice channel management module, it will send the release completion result back to the voice channel management module.

7. The method according to claim 5, characterized in that, Also includes: The voice channel management module queries the current voice channel status record table, determines that there are no available voice channels, and sends a rejection message to the voice service module. The voice service module records the dialing event of the current voice port and sends a voice prompt to it saying "The current voice port is busy and will automatically dial back later". When the voice channel management module determines that there is an available voice channel, it notifies the voice service module that the voice ports whose applications were previously rejected now have an available voice channel to apply for. The voice service module sends a ringing command to the current voice port; The voice port transmits the off-hook event of the connected landline phone to the voice service module. The voice service module sends a voice prompt to the current voice port asking "Do you want to automatically redial the last undialed number?" If it determines that it needs to automatically redial the last undialed number, it converts the last dialing event of the current voice port into a call request, clears the recorded dialing event of the current voice port, requests an idle voice channel from the voice channel management module, and sends a call request to the remote phone based on the requested idle voice channel.

8. The method according to claim 5, characterized in that, After the voice service module sends a call request to the remote phone and establishes a call connection between the fixed phone at the current voice port and the remote phone, it also includes: The voice service module receives the fork spring and dialing events, converts the fork spring and dialing events into a second call request, and sends a voice channel application to the voice channel management module; The voice channel management module receives a voice channel application, determines that the current voice port is not bound to a voice channel, queries the current voice channel status record table to determine that there is an available voice channel, and calls the voice driver module to initialize the specified available voice channel. The voice driver module feeds back the initialization results and available voice channel information to the voice channel management module; Based on the initialization results and idle voice channel information, the voice channel management module obtains available voice channel information and feeds it back to the voice service module. At the same time, it updates the maintained voice channel status table in real time and updates the status of the specified idle voice channel to busy. The voice service module sends a second call request to the remote phone to establish a call between the local fixed phone and the remote phone connected to the current voice port. The voice port transmits the hang-up event of the connected landline phone to the voice service module; The voice service module receives the hang-up event from the fixed phone at the voice port, converts it into a call end request, requests the voice channel management module to release the two currently used voice channels, and sends a call end request to the remote phone. When the voice channel management module receives a voice channel release request from the voice service module, it calls the voice driver module to release the two voice channels currently in use, and at the same time updates the voice channel status table it maintains in real time. After the voice-driven module releases the two voice channels currently in use by the voice channel management module, it will send the release completion result back to the voice channel management module.

9. The method according to claim 5, characterized in that, After the voice service module sends a call request to the remote phone and establishes a call connection between the fixed phone at the current voice port and the remote phone, it also includes: The voice service module receives the fork spring and dialing events, converts the fork spring and dialing events into a second call request, and sends a voice channel application to the voice channel management module; The voice channel management module receives a voice channel application, determines that the current voice port is not bound to a voice channel, queries the current voice channel status record table to determine that there is no free voice channel, and sends a rejection message to the voice service. Based on the received rejection request message, the voice service module switches the multi-party call mode from local mixing mode to server mixing mode, and sends a call request to the remote phone to establish a call with the remote phone. The voice port transmits the hang-up event of the connected landline phone to the voice service module and converts it into a call end request; The voice service module restores the multi-party call mode to local mixing mode, requests the voice channel management module to release the currently used voice channel, and sends a call end request to the remote phone. When the voice channel management module receives a voice channel release request from the voice service module, it calls the voice driver module to release the currently used voice channel and updates the maintained voice channel status table in real time. After the voice-driven module releases the voice channel currently being used by the voice channel management module, it will send the release completion result back to the voice channel management module.

10. A voice channel allocation device, characterized in that, In a multi-voice port gateway device, the device includes: a voice port connected to a landline phone, a voice service module, and a voice driver module. Some voice ports are bound to at least two voice channels, some are bound to one voice channel, and the remaining voice ports are not bound to any remaining voice channels. The number of bound voice channels is determined by the dialing event records of the landline phone connected to the voice port, where each dialing event record includes the voice port identifier and dialing time. The device includes: a receiving module, a first judgment module, a second judgment module, a processing module, and a sending module. The receiving module is used to receive voice channel requests sent by the voice service module, as well as initialization results and available voice channel information. The first judgment module is used to determine whether the current voice port is bound to a voice channel and obtain the first judgment result; The second judgment module is used to determine whether there is an idle voice channel in the current voice channel status record table when the first judgment result is negative, and to obtain the second judgment result. The processing module is used to allocate the bound voice channel to the current voice port when the first judgment result is yes; when the second judgment result is yes, it calls the voice driver module to initialize the specified idle voice channel, obtains the available voice channel information based on the received initialization result and idle voice channel information, and updates the maintained voice channel status table in real time, updating the status of the specified idle voice channel to busy. The sending module is used to send feedback information about available voice channels to the voice service module. If the second judgment result is negative, it sends feedback information rejecting the application to the voice service module.

11. A voice communication device, characterized in that, include: The system includes a voice port, a voice service module, a voice channel management module, and a voice driver module connected to a landline phone. Some voice ports are bound to at least two voice channels, some are bound to one voice channel, and the remaining voice ports are not bound to any remaining voice channels. The number of bound voice channels is determined by the dialing event records of the landline phone connected to the voice port, and the dialing event records include the voice port identifier and the dialing time. The voice service module is used to receive off-hook and dial events from the fixed phone connected to the current voice port; convert off-hook and dial events into call requests; send a voice channel application to the voice channel management module based on the call request; and receive available voice channel information, send a call request to the remote phone based on the available voice channel information, and establish a call between the fixed phone and the remote phone connected to the current voice port. The voice channel management module is used to receive voice channel requests, determine that the current voice port is not bound to a voice channel; query the current voice channel status record table to determine that there is an idle voice channel, call the voice driver module to initialize the specified idle voice channel; based on the initialization result and idle voice channel information, obtain the available voice channel information and feed it back to the voice service module, while updating the maintained voice channel status table in real time and updating the status of the specified idle voice channel to busy; The voice-driven module is used to feed back the initialization results and idle voice channel information to the voice channel management module.

12. An electronic device, characterized in that, It includes a processor, a communication interface, a memory, and a communication bus, wherein the processor, the communication interface, and the memory communicate with each other through the communication bus; Memory, used to store computer programs; A processor, when executing a program stored in memory, implements the method of any one of claims 1-4.

13. A computer storage medium, characterized in that, The computer storage medium stores a computer program, which, when executed by a processor, implements the method described in any one of claims 1-4.

Citation Information

Patent Citations

  • System and method for implementing multicenter voice scheduling

    CN101110865A

  • Port dynamic binding module for media gateway and dynamic binding method thereof

    CN1622555A