Communication device, communication method, and program

The communication device manages HGW resources to prioritize critical calls, addressing CPU overload and bandwidth issues, ensuring stable voice and video communication even under high load conditions.

JP7872045B2Active Publication Date: 2026-06-09NEC PLATFROMS LTD

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
NEC PLATFROMS LTD
Filing Date
2023-07-28
Publication Date
2026-06-09

AI Technical Summary

Technical Problem

Existing home gateway devices (HGWs) struggle to maintain reliable voice and video communication under high load conditions due to CPU overload, leading to discarded frames and inadequate bandwidth management, especially during emergency calls.

Method used

A communication device and method that includes a specific communication destination holding unit, a communication destination ID acquisition unit, and a control unit to manage application software and hardware resources based on predefined lists, ensuring priority and bandwidth allocation for critical calls.

Benefits of technology

Enables highly reliable voice and video calls by prioritizing and managing resources for specific communication destinations, stabilizing communication during high loads and emergencies.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007872045000001
    Figure 0007872045000001
  • Figure 0007872045000002
    Figure 0007872045000002
  • Figure 0007872045000003
    Figure 0007872045000003
Patent Text Reader

Abstract

To provide a communication device, a communication method, and a program that enable calls using highly reliable voice or video even at the time of a high load.SOLUTION: A communication device is provided including a specific communication destination holding unit that holds a specific communication destination list, which is a list including specific communication destination IDs, which are identification numbers of specific communication destinations; a communication destination ID acquisition unit that acquires a communication destination ID, which is an identification number of a communication destination; a first determination unit that determines whether a specific communication destination ID that is identical or corresponds to the communication destination ID is included in the specific communication destination holding unit; and a control unit that controls application software or hardware depending on a determination result of the first determination unit.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a communication device, a communication method, and a program capable of maintaining the quality of a call by voice or the like at a certain level.

Background Art

[0002] Although voice calls are being replaced by those using VoIP (Voice over Internet Protocol), since they pass through the same communication path as communication data by other application software, as the overall communication volume increases, the bandwidth used for voice calls is becoming relatively tight in more cases. In the core network, measures can be taken by service providers such as priority control, but in access networks including within a home, due to the nature of IP-based communication, centralized control is difficult, and ensuring the reliability of calls in an emergency has become an issue.

[0003] Among these, a home gateway device (Home GateWay, hereinafter referred to as HGW) connects various communication terminals such as smartphones, tablets, and household appliances in addition to a personal computer (hereinafter referred to as PC), and the communication volume such as high-definition video services tends to increase. Many HGWs are equipped with a function of making a voice call by VoIP through the Internet.

[0004] Patent Document 1 discloses the following communication device and the like. The device and the like is an HGW that connects an in-house network and an out-house network. The device holds a specific number in association with control information. When a specific number for communication is dialed in an in-house device connected to the device, it is determined whether the dial signal matches the held specific number, and if it matches, communication with the outside is controlled based on the control information held in association with the dialed specific number.

Prior Art Documents

Patent Documents

[0005] [Patent Document 1] Japanese Patent Publication No. 2008-85667 [Overview of the project] [Problems that the invention aims to solve]

[0006] Furthermore, the disclosures in the above-mentioned prior art documents are incorporated herein by reference. The following analysis was conducted by the inventors.

[0007] As described above, according to the invention disclosed in Patent Document 1, it is possible to control communication between an in-home device and an external device based on pre-held control information using a dial signal transmitted from an in-home device connected to the home. For example, when a specific number is dialed from the in-home device, it is possible to perform control such as connecting the WebTV connected to the HGW to the URL included in the control information associated with the number. Furthermore, when a number not included in the above specific number, such as "03-XXXX-xxxx", is dialed, it is possible to perform processing such as connecting to the dialed destination via a VoIP application.

[0008] However, although the above process associates a specific number with predetermined control information, the control information is limited to processes such as launching a VoIP application, and does not take into account control related to cooperation with other application software or hardware, such as launching a VoIP application when a specific number is dialed and suppressing the execution of other applications.

[0009] Furthermore, most current HGWs (Home Gateways) use software control for VoIP voice communication. Therefore, if the connected terminals overload the HGW's CPU usage, some frames are discarded, which can affect VoIP voice calls.

[0010] Therefore, from one perspective of the present invention, the objective is to provide a communication device, a communication method, and a program that enable reliable voice or video communication even under high load conditions. [Means for solving the problem]

[0011] According to a first aspect of the present invention, a communication device is provided that includes: a specific communication destination holding unit that holds a specific communication destination list which is a list containing a specific communication destination ID which is an identification number of a specific communication destination; a communication destination ID acquisition unit that acquires a communication destination ID which is an identification number of a communication destination; a first determination unit that determines whether or not a specific communication destination ID identical to or corresponding to the communication destination ID is included in the specific communication destination holding unit; and a control unit that controls application software or hardware according to the determination result of the first determination unit.

[0012] A second aspect of the present invention provides a communication method for causing a computer to perform the following steps: obtaining a specific communication destination list which is a list containing a specific communication destination ID which is an identification number of a specific communication destination; obtaining a communication destination ID which is an identification number of a communication destination; determining whether a specific communication destination ID identical to or corresponding to the communication destination ID is included in the specific communication destination list; and controlling application software or hardware according to the determination result.

[0013] A third aspect of the present invention provides a program for causing a computer to execute the following: a process of obtaining a specific communication destination list, which is a list containing a specific communication destination ID, which is an identification number of a specific communication destination; a process of obtaining a communication destination ID, which is an identification number of a communication destination; a process of determining whether a specific communication destination ID identical to or corresponding to the communication destination ID is included in the specific communication destination list; and a process of controlling application software or hardware according to the determination result.

[0014] This program can be recorded on a computer-readable storage medium. The storage medium can be a non-transient medium such as semiconductor memory, hard disk, magnetic recording medium, or optical recording medium. The present invention can also be embodied as a computer program product. [Effects of the Invention]

[0015] According to each aspect of the present invention, it is possible to provide a communication device, a communication method, and a program that enable highly reliable voice or video calls even under high load conditions. [Brief explanation of the drawing]

[0016] [Figure 1] This is a block diagram showing an example of the configuration of a communication device in one embodiment. [Figure 2] This is a block diagram showing an example of the configuration of a communication device according to the first embodiment. [Figure 3] This figure shows an example of a specific communication destination list in a communication device according to the first embodiment. [Figure 4] This figure shows an example of a list of specific application software according to the first embodiment. [Figure 5] This is a flowchart illustrating the operation of the communication device according to the first embodiment. [Figure 6] This is a schematic diagram showing an example of the hardware configuration in a communication device according to the first embodiment. [Figure 7] This is a flowchart illustrating the operation of the communication device according to the second embodiment. [Figure 8] This is a flowchart illustrating the operation of the communication device according to the third embodiment. [Figure 9] This is a block diagram showing the configuration of the HGW in the embodiment. [Figure 10] This is a flowchart illustrating the operation of the HGW in the example. [Figure 11]It is a conceptual diagram showing an image of an emergency phone number storage area. [Figure 12] It is a conceptual diagram showing an image of an application priority storage area. [Figure 13] It is a diagram for explaining the state transition of an application priority storage area. [Figure 14] It is a diagram for explaining an example of performing communication suppression by a CPU assignment change means in a configuration where the CPU has 4 cores. [Figure 15] It is a schematic diagram for explaining the flow of transfer by software, the flow of transfer by VoIP communication, and the flow of transfer by a Hardware Offloading function. [Figure 16] It is a block diagram showing the configuration of an HGW according to another embodiment. [Figure 17] It is a diagram for explaining the setting screen image of an emergency phone registration means in the GUI of an HGW. [Figure 18] It is a diagram for explaining the image of an emergency phone number storage area in an embodiment. [Figure 19] It is a diagram for explaining the setting screen image of a stop application change means in the GUI of an HGW. [Figure 20] It is a diagram for explaining the image of an application priority storage area.

Mode for Carrying Out the Invention

[0017] First, an overview of an embodiment will be described. Note that the reference numerals of the drawings appended to this overview are for convenience and are appended to each element as an example to assist understanding, and the description of this overview is not intended to be limiting in any way.

[0018] FIG. 1 shows a block diagram showing an example of the configuration of a communication device according to an embodiment. The communication device 10 according to an embodiment includes a specific communication destination holding unit 11, a communication destination ID acquisition unit 12, a first determination unit 13, and a control unit 14.

[0019] The specific communication destination holding unit 11 holds a specific communication destination list, which is a list containing specific communication destination IDs, which are identification numbers of specific communication destinations. The communication destination ID acquisition unit 12 acquires communication destination IDs, which are identification numbers of communication destinations. The first determination unit 13 determines whether a specific communication destination ID identical to or corresponding to a communication destination ID is included in the specific communication destination holding unit 11. The control unit 14 controls the application software or hardware according to the determination result of the first determination unit.

[0020] In this embodiment, when a call is made from a subordinate terminal or the like, the communication device can determine whether the identification number that identifies the communication destination is included in a list that includes a specific communication destination ID. If it is determined that the ID is included, the control unit 14 can execute control of the application software or hardware. For example, if the specific communication destination ID includes a number for emergency calls, and a call is made using that number via VoIP application software, it is possible to perform processes such as stopping other application software that is running at that time or increasing the CPU usage of the VoIP application software. This makes it possible to provide highly reliable and stable voice calls in emergencies.

[0021] [First Embodiment] [Device Configuration] Figure 2 is a block diagram showing an example of the configuration of a communication device according to the first embodiment. The communication device 10 of the first embodiment includes a specific communication destination holding unit 11, a communication destination ID acquisition unit 12, a first determination unit 13, and a control unit 14, similar to the first embodiment. A distinctive feature of this embodiment is that it further includes a specific application software list holding unit 15 and a second determination unit 16, and the control unit 14 controls the application software to be executed according to the determination results of the first determination unit 13 and the second determination unit 16, respectively.

[0022] The specific communication destination holding unit 11 holds a specific communication destination list, which is a list containing a specific communication destination ID, which is an identification number for a specific communication destination. An "identification number" refers to a string of characters that can identify a communication destination, such as a telephone number, SIP (Session Initiation Protocol) address, IP address, or FQDN (Fully Qualified Domain Name). This unit holds these identification numbers in a database or the like. A "specific communication destination" can be any communication destination, but it may be a communication destination that requires some kind of control to ensure the reliability of communication at the time of transmission, such as an emergency call destination for the police or ambulance.

[0023] Figure 3 is a conceptual diagram illustrating an example of a specific communication destination list in the communication device of this embodiment. As shown in this figure, the specific communication destination IDs include emergency telephone numbers such as 119 or 110, specific telephone numbers, SIP addresses, and IP addresses. The specific communication destination IDs may also be associated with the control contents of the control unit 14, which will be described later.

[0024] The communication destination ID acquisition unit 12 acquires the communication destination ID, which is the identification number of the communication destination. It acquires the communication destination ID by referring to communication data such as packets sent by itself or its subordinate terminals. The "identification number" is as described above. The acquired communication destination ID is sent to the first determination unit 13, which will be described later.

[0025] The first determination unit 13 determines whether a specific destination ID identical to or corresponding to the destination ID is included in the specific destination retention unit. Specifically, it searches the specific destination list in the specific destination retention unit 11 using the destination ID acquired by the destination ID acquisition unit 12 as a key, and determines whether a matching item exists. The destination ID and the "corresponding" specific destination ID do not necessarily have to be a perfectly identical string of characters; relationships that can be treated as virtually identical, such as an IP address and an FQDN, are also included. The determination result of the first determination unit 13 is sent to the control unit 14, which will be described later.

[0026] The specific application software list holding unit 15 holds a list of specific application software. "Specific" can be arbitrarily specified, but it refers to application software that requires some kind of control during communication, such as applications that interfere when performing a VoIP call because they handle voice in a similar way.

[0027] Figure 4 is a conceptual diagram illustrating an example of a list of specific application software in this embodiment. As shown in this diagram, specific application software is listed. The list of specific application software may be presented by application name as shown in the diagram, or it may be specifically identified by its path. Furthermore, specific application software may be associated with a "priority" which will be described later.

[0028] The second determination unit 16 determines whether the currently running application software is included in the specific application software list holding unit 15. Specifically, at a predetermined timing, it obtains the name of the currently running application software, and using this as a key, it searches the specific application software list in the specific application software list holding unit 15 to determine whether a matching specific application software exists. The search key and the search target may also be an identifier that identifies the application software. If the determination result is that a match exists, it passes the name or identifier of the matching application software to the control unit 14, which will be described later.

[0029] The control unit 14 controls the application software to be executed according to the determination results of the first determination unit 13 and the second determination unit 16. Specifically, it receives from the first determination unit 13 whether or not the communication destination ID matches in the specific communication destination holding unit 11, and from the second determination unit 16 the name or identifier of the application software if it matches, and then executes control. In this invention, "control" mainly refers to coordinating between application software in order to enable stable communication and calls. For example, if the determination result of the first determination unit 13 is that a specific communication destination ID identical to or corresponding to the communication destination ID is included in the specific communication destination holding unit 11, and the determination result of the second determination unit 16 is that the currently running application software is included in the specific application software list holding unit 15, the control unit 14 may selectively stop the currently running application software included in the specific application software list holding unit 15 or lower its execution priority.

[0030] In other words, if "119" is listed in the specific communication destination list in the specific communication destination holding unit 11, and the communication destination ID "119" is dialed on the terminal, it is possible to stop the execution of the video playback software, as the currently running application software includes video playback software for the specific application software. This makes it possible to secure downlink communication bandwidth for video playback, and enables highly urgent communications to be carried out in a stable communication state.

[0031] The specific application software list holding unit 15 may also associate and store specific application software with application software priority, which is the priority for executing the application software. In this case, the control unit 14 may perform a process to stop the running application software based on the application software priority. Specifically, the control unit 14 may perform control such as stopping running application software whose application software priority is lower than a predetermined value.

[0032] The communication device 10 may also be able to receive and edit the above-mentioned application software priority. That is, it may further have an application software priority receiving unit (not shown) that receives application software priority, and the specific application software list holding unit 15 may be configured to update and hold the priority received by the application software priority receiving unit.

[0033] [Explanation of operation] Figure 5 is a flowchart illustrating the operation of the communication device 10 in the first embodiment. As shown in this figure, when the communication device 10 starts operation, it obtains a specific communication destination list, which is a list containing a specific communication destination ID, which is the identification number of a specific communication destination (step S51). Next, it obtains a specific application software list, which holds a list of specific application software (step S52). Next, it obtains a communication destination ID, which is the identification number of a communication destination (step S53). After that, it determines whether a specific communication destination ID identical to or corresponding to the communication destination ID is included in the specific communication destination list (step S54). If the determination result is that it is included (step S54, Y), it further determines whether the running application software is included in the specific application software list (step S55). If the determination result is that it is included (step S55, Y), it stops the running application software included in the specific application software list holding unit (step S56), and terminates the control processing of the series of application software. If the determination result is that neither step S54 nor step S55 is included ((step S54, N) or (step S55, N)), the series of control processes is terminated.

[0034] [Hardware configuration] Next, the hardware configuration of the communication device 10 according to the first embodiment will be described. Figure 6 is a block diagram showing an example of the hardware configuration of the communication device 10 according to the first embodiment.

[0035] The communication device 10, which constitutes the communication device, can be configured using an information processing device (computer), and has the configuration illustrated in Figure 6. For example, the communication device 10 includes a CPU (Central Processing Unit) 61, memory 62, input / output interface 63, and a communication means such as a NIC (Network Interface Card) 64, all of which are interconnected by an internal bus 65.

[0036] However, the configuration shown in Figure 6 is not intended to limit the hardware configuration of each device constituting the communication device. Each communication device 10 may include hardware not shown, and may not have an input / output interface 63 if necessary. Furthermore, the number of CPUs etc. included in the communication device 10 is not intended to be limited to the example in Figure 6; for example, multiple CPUs may be included in each device.

[0037] Memory 62 consists of RAM (Random Access Memory), ROM (Read Only Memory), and auxiliary storage devices (such as hard disks).

[0038] The input / output interface 63 is a means that serves as an interface for a display device or input device (not shown). The display device is, for example, a liquid crystal display. The input device is, for example, a device that accepts user input such as a keyboard or mouse.

[0039] The functions of the communication device 10 are realized by a processing module which is a communication destination ID acquisition program, a first decision program, a second decision program, a control program, a specific communication destination list stored in memory 62, and a specific application software list.

[0040] The above processing modules are implemented, for example, by the CPU 61 executing programs stored in memory 62. These programs can be downloaded via a network or updated using a storage medium containing the programs. The processing modules may also be implemented using semiconductor chips. In other words, there needs to be some means of executing the functions performed by the processing modules using hardware and / or software.

[0041] [Hardware operation] When the communication device 10 starts operating, a program for obtaining the destination ID is called from memory 62 and enters execution mode on the CPU 61. This program scans packets sent from the terminal at the start of communication and obtains identification number data, which is the destination ID of the terminal.

[0042] Next, the first decision program is called from memory 62 and enters execution mode on CPU 61. This program reads the specific communication destination list data stored in memory 62 and searches the list using the acquired communication destination ID data as a key.

[0043] If the search results find a matching specific communication destination list ID, a second decision program is called from memory 62 and enters execution mode on CPU 61. This program reads the specific application software list data stored in memory 62 and determines whether a matching application software is currently running. Here, the program may use the application software identifier (ID) or determine whether the name of the running application software matches.

[0044] If the determination reveals that there is an application software currently running that matches the list of specific application software, the second determination program returns its identifier or a token to identify the application software as a value.

[0045] Next, the control program is called from memory 62 and enters execution mode on CPU 61. This program terminates the application software process corresponding to the token or identifier returned as a value.

[0046] If a priority is associated with a specific application software list, the priority value may also be obtained to determine whether it is lower than a predetermined priority. If it is lower, the process may be terminated. If it is higher than a predetermined priority, the process priority value may be lowered.

[0047] [Explanation of effects] As described above, the communication device 10 of this embodiment can stably perform communication with a specific communication destination without having processing resources consumed by running application software, by performing processing such as stopping the running application software that corresponds to the specific application software list when the communication destination is a specific communication destination.

[0048] [Second Embodiment] In the second embodiment, a communication device is described that can control the system so that, in order to ensure stable communication, a terminal or the like can exclusively use hardware resources used by a specific application software when communicating with a specific destination.

[0049] [Device Configuration] An example of the configuration of the communication device 10 in the second embodiment is the same as in Figure 1. As shown in Figure 1, the communication device 10 in this embodiment includes a specific communication destination holding unit 11, a communication destination ID acquisition unit 12, a first determination unit 13, and a control unit 14. The specific communication destination holding unit 11, the communication destination ID acquisition unit 12, and the first determination unit 13 have already been described in the above embodiment, so their description is omitted here. A distinctive feature of the communication device 10 in this embodiment is that, when the determination result of the first determination unit indicates that a specific communication destination ID identical to or corresponding to the aforementioned communication destination ID is included in the specific communication destination holding unit, the control unit 14 allows a specific application software to occupy a predetermined percentage of the hardware resources it uses.

[0050] If the determination result of the first determination unit indicates that a specific communication destination ID identical to or corresponding to the aforementioned communication destination ID is included in the specific communication destination holding unit 11, the control unit 14 will allow a specific application software to exclusively use a predetermined percentage of the hardware resources it uses.

[0051] "Specific application software" refers to software that may require adjustment of hardware resources used in order to ensure stable operation. Examples include application software related to video communication or voice calls, and preferably, VoIP application software. "Adjustment" refers to control measures such as allocating a predetermined percentage of hardware resources. "Hardware resources" refers to CPUs, memory, communication modules such as NICs, etc. "Allocating a predetermined percentage" could include, for example, maintaining a 20% allocation of memory space during an emergency call, or restricting all hardware interrupts to software other than VoIP application software during a voice call.

[0052] Furthermore, in a multiprocessor environment where the communication device 10 has multiple CPUs, control measures such as dedicating one or more of the multiple CPUs to specific application software can be considered.

[0053] It is desirable that the control of the proportion of hardware resources used by the specific application software mentioned above can be performed while the communication device 10 is operating.

[0054] [Explanation of operation] Figure 7 is a flowchart illustrating the operation of the communication device 10 in the second embodiment. As shown in this figure, first, a specific communication destination list is obtained, which is a list containing a specific communication destination ID, which is the identification number of a specific communication destination (step S71). Next, a communication destination ID, which is the identification number of a communication destination, is obtained (step S72). After that, it is determined whether or not a specific communication destination ID identical to or corresponding to the communication destination ID is included in the specific communication destination list (step S73). If it is determined that it is included (step S73, Y), the hardware resources used by the specific application software are reserved for a predetermined percentage (step S74). If it is determined that it is not included (step S73, N), the series of control processes is terminated.

[0055] [Hardware configuration] Next, the hardware configuration of the communication device 10 according to the second embodiment will be described. The hardware configuration of the communication device 10 according to the second embodiment is the same as the configuration shown in Figure 6.

[0056] The communication device 10, which constitutes the communication device, can be configured using an information processing device (computer), and has the configuration illustrated in Figure 6. For example, the communication device 10 includes a CPU (Central Processing Unit) 61, memory 62, input / output interface 63, and a NIC (Network Interface Card) 64, which are interconnected by an internal bus 65.

[0057] [Hardware operation] When the communication device 10 starts operating, a program for obtaining the destination ID is called from memory 62 and enters execution mode on the CPU 61. This program scans packets sent from the terminal at the start of communication and obtains identification number data, which is the destination ID of the terminal.

[0058] Next, the first decision program is called from memory 62 and enters execution mode on CPU 61. This program reads the specific communication destination list data stored in memory 62 and searches the list using the acquired communication destination ID data as a key.

[0059] If a matching specific communication destination list ID is found as a result of the search, the control program is called from memory 62 and enters execution mode on CPU 61. This program allocates a predetermined percentage of the hardware resources used by application software running for communication, such as VoIP application software. Specifically, it may, for example, allocate a predetermined percentage of memory space within physical memory and make that area the area used by the VoIP application. If necessary, it may also stop processes of other applications using memory 62. Furthermore, it may also perform control such as changing the device settings of the VoIP application's NIC 64 to change the chip's usage ratio and priority.

[0060] [Explanation of effects] According to the communication device 10 of this embodiment, when a call is made to a specific destination, it is possible to dedicate hardware that runs specific application software to it. This enables stable voice calls, for example, by dedicating a predetermined percentage of hardware resources to a voice call application.

[0061] [Third Embodiment] In the third embodiment, the configuration of the communication device 10, which improves the reliability of voice calls by limiting the communication bandwidth in the control unit 14, will be described.

[0062] [Device Configuration] An example of the configuration of the communication device 10 in the third embodiment is the same as in Figure 1. As shown in Figure 1, the communication device 10 in this embodiment includes a specific communication destination holding unit 11, a communication destination ID acquisition unit 12, a first determination unit 13, and a control unit 14. The specific communication destination holding unit 11, the communication destination ID acquisition unit 12, and the first determination unit 13 have already been described in the above embodiment, so their description is omitted here. A distinctive feature of the communication device 10 in this embodiment is that the control unit 14 limits the bandwidth of communications other than those handled by application software that handles voice or video when the determination result of the first determination unit 13 indicates that a specific communication destination ID identical to or corresponding to the communication destination ID is included in the specific communication destination holding unit 11.

[0063] For example, the control unit 14 may perform control such as limiting the communication bandwidth of application software running in addition to the VoIP application software during a voice call with a specific communication destination.

[0064] Bandwidth limiting for communications can be implemented in two ways: buffering communication data exceeding the limit with communication equipment to avoid peaks, or discarding and deleting packets of communication data exceeding the limit. Both methods are applicable.

[0065] While buffering and packet discarding can be handled by executing software commands on the CPU, a large amount of data to be buffered or discarded places a heavy load on the CPU. To avoid this, hardware control can be used to automate buffering and packet discarding. Specifically, the NIC chipset or buffer memory can be used to perform buffering and packet discarding.

[0066] [Explanation of operation] Figure 8 is a flowchart illustrating the operation of the communication device 10 in the third embodiment. As shown in this figure, first, a specific communication destination list is obtained, which is a list containing a specific communication destination ID, which is the identification number of a specific communication destination (step S81). Next, a communication destination ID, which is the identification number of a communication destination, is obtained (step S82). After that, it is determined whether or not a specific communication destination ID identical to or corresponding to the communication destination ID is included in the specific communication destination list (step S83). If it is determined that it is included (step S83, Y), the bandwidth of communication other than that of application software handling voice or video is limited (step S84). If it is determined that it is not included (step S83, N), the series of control processes is terminated.

[0067] [Explanation of effects] According to the communication device 10 of this embodiment, when communicating with a specific destination, the network bandwidth usage of application software other than the specific application software being executed is limited. As a result, sufficient network bandwidth is secured during a call with the specific destination, enabling stable communication.

[0068] [Examples] In this embodiment, an HGW (Home Gateway) will be used as an example of an application of the communication device 10 of the above embodiment.

[0069] [Configuration of the example] Figure 9 is a block diagram showing the configuration of the HGW100 in this embodiment. As shown in Figure 9, the HGW100 includes a data processing device 101 and a storage device 102.

[0070] The data processing device 101 includes a VoIP calling means 111, an emergency call determination means 112, a stop application selection means 113, an application control means 114, a CPU assignment change means 115, and a shaping implementation means 116.

[0071] The VoIP calling means 111 allows the HGW to communicate via SIP and make VoIP calls with a SIP server on the higher-level network and a telephone that will be the VoIP counterpart.

[0072] The emergency call determination means 112 refers to the telephone number information included in the SIP communication and determines whether it matches an emergency call registered in the emergency telephone number storage area 121.

[0073] The application to be stopped selection means 113 refers to the application priority storage area 122 to obtain information and priority of currently running applications and selects the applications to be stopped.

[0074] The application control means 114 stops the application or restarts a stopped application.

[0075] The CPU assignment change means 115 selects the CPU that the application will use.

[0076] The shaping implementation means 116 sets an upper limit on the amount of communication to be transmitted or received, stores data exceeding that limit in a buffer, and delays transmission, thereby suppressing communication to maintain a constant communication speed.

[0077] The storage device 102 includes an emergency telephone number storage area 121 and an application priority storage area 122.

[0078] The emergency telephone number storage area 121 stores telephone number information that the HGW will treat as an emergency call. Figure 11 is a conceptual diagram showing an image of the emergency telephone number storage area 121.

[0079] The application priority storage area 122 stores information about currently running applications and the priority of each application. The HGW refers to the information stored in the emergency telephone number storage area 121 to determine which applications to suppress. Figure 12 is a conceptual diagram showing an image of the application priority storage area 122.

[0080] [Explanation of operation] Figure 10 is a flowchart illustrating the operation of the HGW in this embodiment. First, the user operates a telephone connected to the HGW to make a VoIP call. When a call is made from the telephone, the HGW uses the SIP protocol to make a VoIP call to the telephone number specified by the VoIP calling means 111 (step S1001 in Figure 10).

[0081] In step S1001 of Figure 10, the HGW refers to the emergency telephone number information registered in the emergency telephone number storage area 121 and checks whether the telephone number destination dialed by the user exists in the list of emergency telephone numbers (step S1002). In step S1002 of Figure 10, if the telephone number destination dialed by the user is an emergency telephone number, communication suppression is performed (step S1003). Details of each communication suppression method will be described later along with specific examples. In step 1002 of Figure 10, if the telephone number destination dialed by the user is not an emergency telephone number, no communication suppression is performed and normal VoIP call processing is carried out. Next, when the emergency call is finished, the communication suppression and telephone priority setting performed in step S1003 of Figure 10 are canceled (step S1004).

[0082] Next, the operation of this embodiment will be explained in detail using a specific example. First, let's assume that a user makes a VoIP call by operating a telephone connected to the HGW. At this time, let's assume that the user dials the telephone number "110". When a call is made from the telephone, the HGW makes a VoIP call using the SIP protocol to the telephone number specified by the VoIP dialing means 111 (step S1001 in Figure 10). In this embodiment, the Request-URI of the SIP protocol INVITE frame sent when the VoIP call is made is analyzed to obtain the telephone number destination information (in this embodiment, "110") sent by the HGW.

[0083] In step S1001 of Figure 10, the HGW refers to the emergency telephone number information registered in the emergency telephone number storage area 121 and checks whether the telephone number destination dialed by the user exists in the list of emergency telephone numbers (step S1002). In step S1002 of Figure 10, in this embodiment, the user dials the telephone number "110", which matches the emergency telephone number registered in the emergency telephone number storage area 121, so the process in step S1003 is performed next. In step S1003 of Figure 10, the following communication suppression will be performed. 1) Application suppression means 2) Means for changing CPU assignment 3) Means for suppressing LAN communication by shaping

[0084] In this embodiment, all communication suppression methods are implemented to reduce the load during emergency calls, however, it is also possible to select and use some of the suppression methods. When a VoIP call ends, a SIP protocol BYE frame is sent from the terminal that ended the call. This device releases communication suppression when it sends or receives a BYE frame (step S1004 in Figure 10). Communication suppression is released by setting or starting the application again using the same means as for normal startup, which is used to change each setting that was changed by communication suppression.

[0085] Next, we will describe the details of each communication suppression method.

[0086] 1) Application suppression means The application suppression means first determines which applications to suppress using the application selection means 113. The priority and state of each application are stored in advance in the application priority storage area 122. The state transitions of the application priority storage area 122 are shown in Figure 13. Applications whose state in the application priority storage area 122 is "active" are targeted for suppression, while applications in "standby," "stop," and "disable" states are not running and are therefore excluded from suppression.

[0087] The application to be stopped selection means 113 determines that applications with a priority below a certain level among the running applications are to be suppressed. In this embodiment, applications with a priority of 2 or lower are to be suppressed and stopped. Next, the application control means 114 stops the applications selected by the application to be stopped selection means 113.

[0088] In this embodiment, applications with a priority of 2 or lower, such as telnetd, httpd, and ftpd, will be stopped, while applications with a priority of 3 or higher, such as tv_service, routing_service, and wlan_service, will not be stopped. Stopping will be done using a process termination function, such as the kill command. By selecting and partially stopping applications that involve communication from those currently running, it becomes possible to prevent specific applications from interfering with emergency phone communications.

[0089] 2) Means for changing CPU assignment Next, we will describe the method for changing the CPU assignment. As a prerequisite, the HGW is assumed to be a multiprocessor system with multiple CPUs. Furthermore, the HGW is assumed to have the functionality to specify the CPU to be used for each application (process) or thread by changing the CPU Affinity setting. Normally, applications are associated with multiple CPUs to efficiently utilize them. However, in that case, if a particular CPU becomes overloaded, it may be disrupted by temporary communication loss, etc.

[0090] In this embodiment, Figure 14 shows an example of communication suppression performed by the CPU assignment change means 115 in a 4-core CPU configuration. As shown in Figure 14, under normal circumstances, all applications use all CPUs from CPU0 to CPU3, but when an emergency call is detected, it is possible to dynamically switch by changing the CPU Affinity setting so that the VoIP application occupies CPU3. Under normal circumstances, all CPUs are used for efficient resource utilization and load balancing, but only during an emergency call, the VoIP application occupies the CPU used by VoIP, thereby preventing VoIP calls from being interrupted by the operation of other applications.

[0091] 3) Means for suppressing LAN communication by shaping Next, we will explain the means of suppressing LAN communication through shaping. As a prerequisite, the HGW is assumed to have a Hardware Offloading function and a hardware-controlled shaping function. An illustrative diagram of the Hardware Offloading function and shaping function in this embodiment is shown in Figure 15.

[0092] Figure 15 shows the software-based transfer flow (labeled SW path flow), the VoIP communication transfer flow (labeled VoIP flow), and the Hardware Offloading function transfer flow (labeled HW path flow). When communicating between the LAN port connecting the in-home LAN terminal and the WAN port connecting the upstream line, the communication is routed through the hardware control unit (labeled HW control unit) (152 and 154 in Figure 15). The shaping function is performed by the HW control unit. In the SW path flow, since the transfer is software-controlled, communication between the LAN terminal and the internet is routed through the CPU (157).

[0093] In VoIP flows, transfers are controlled by software, so communication between the HGW and the internet is performed via the CPU (158). In HW path flows, transfers are controlled by hardware, and communication between the LAN terminal and the internet is performed without going through the CPU (156). Figure 15 shows the locations where shaping is performed. Normally, when discarding frames in software transfer control, the discarding is done by software control, so if a large number of frames are discarded, the load on the CPU becomes high and an overload condition occurs.

[0094] However, in this embodiment, the shaping function is performed in the HW control unit (LAN) (152) before transmission to the CPU. This allows shaping to be performed by hardware control without software-controlled discarding, thereby significantly reducing the CPU load. Normally, data shaping is not performed, but when an emergency call is detected, dynamic shaping settings are applied to communications to the CPU. This reduces the load on terminals transmitting from LAN terminals only during emergency calls.

[0095] [Explanation of effects] The first effect of the HGW in this embodiment is the reduction of CPU load caused by internal applications during VoIP calls. This is because the application suppression means and CPU assignment change means in this embodiment make it possible to significantly reduce the impact on the CPU caused by other applications running during VoIP calls. The second effect is the reduction of load from external terminals during VoIP calls. This is because the LAN communication suppression means by shaping in this embodiment makes it possible to significantly reduce the load on the CPU when there is an excessive communication load from LAN-side terminals during VoIP calls.

[0096] [Other examples] Figure 16 shows the configuration of another embodiment of the present invention. This embodiment in Figure 16 differs from the embodiment in Figure 9 in that the emergency telephone destination and the stop application can be changed. Referring to Figure 16, it includes a data processing device 101 in the HGW and a storage device 102 for storing information in the HGW.

[0097] The data processing device 101 includes a VoIP calling means 111, an emergency call determination means 112, a stop application selection means 113, an application control means 114, a CPU assignment change means 115, a shaping implementation means 116, an emergency call registration means 117, and a stop application change means 118. This embodiment differs from the embodiment in Figure 9 in that the emergency call registration means 117 and the stop application change means 118 are added.

[0098] The VoIP calling means 111, emergency call determination means 112, application to be stopped selection means 113, application control means 114, CPU assignment change means 115, and shaping implementation means 116 are equivalent to those in the embodiment shown in Figure 9, so their description is omitted.

[0099] The emergency telephone registration method 117 registers the telephone number specified by the user in the emergency telephone number storage area 121.

[0100] The application modification means 118 modifies the operating priority of some applications registered in the application priority storage area 122 according to the user's specifications.

[0101] The storage device 102 includes an emergency telephone number storage area 121 and an application priority storage area 122.

[0102] The emergency telephone number storage area 121 and the application priority storage area 122 are equivalent to those in the embodiment shown in Figure 9, so their description is omitted.

[0103] Next, the operation of an embodiment of the present invention will be explained using specific examples with reference to Figures 17 to 20. As a premise, the HGW is equipped with a Graphical User Interface (hereinafter referred to as GUI) for the user to perform various settings, and various settings can be performed using protocols such as Hyper Text Transfer Protocol (hereinafter referred to as HTTP) via browser operation on a personal computer or tablet connected to the HGW.

[0104] Figure 17 is a diagram illustrating the setting screen image of the emergency telephone registration means 117 in the HGW's GUI. The user operates the browser on a terminal connected to the HGW and enters "09012345678" in Emergency Destination-1 and presses the setting button. The HGW uses the emergency telephone registration means 117 to register the telephone numbers of Emergency Destination-1 to Emergency Destination-3 specified by the user in the emergency telephone number storage area 121.

[0105] Figure 18 is a diagram illustrating the image of the emergency telephone number storage area 121 in this embodiment. In this embodiment, emergency telephone numbers pre-registered by the system are registered in the System Reserved table, and emergency telephone numbers specified by the user are registered in the User Defined table. In this embodiment, the user instructed that "09012345678" be registered as emergency destination 1, so the HGW uses the emergency telephone registration means 117 to register "09012345678" as No. 1 in the User Defined table. Although not specified in this embodiment, emergency destination 2 is to be registered as No. 2, and emergency destination 3 as No. 3.

[0106] As demonstrated in this embodiment, user-defined phone numbers can also be treated as emergency calls, and like emergency calls, interference from other communications can be suppressed, thereby reducing the degradation of voice quality.

[0107] Figure 19 is a diagram illustrating the setting screen image of the application change mechanism 118 in the HGW GUI. Figure 20 is a diagram illustrating the image of the application priority storage area 122.

[0108] In this embodiment, the user can change some of the applications to be stopped. In this embodiment, routing_service corresponds to the internet service, wlan_service to the wireless service, and tv_service to the TV service. The user configures the service settings for emergency calls by operating the browser on a terminal connected to the HGW.

[0109] In this embodiment, it is assumed that the user has enabled the internet, enabled wireless, and disabled TV, and has pressed the settings button. The HGW uses the application change means 118 to change the priority of the user-specified application in the application priority storage area 122.

[0110] In this example, since the Internet service is set to enabled, the priority of routing_service is changed to "3". Since the wireless service is set to enabled, the priority of wlan_service is changed to "3". Since the TV service is set to disabled, the priority of tv_service is changed to "2".

[0111] Next, we will explain the flow of emergency calls in this embodiment. In the embodiment shown in Figure 16, the processing will be carried out according to the flowchart in Figure 10, just as in the embodiment in Figure 1.

[0112] First, the user operates a telephone connected to the HGW to make a VoIP call. At this time, the user is assumed to be dialing the telephone number "09012345678". When a call is made from the telephone, the HGW makes a VoIP call using the SIP protocol to the telephone number specified by the VoIP calling means 111 (step S1001 in Figure 10). In this embodiment, the Request-URI of the SIP protocol INVITE frame sent when the VoIP call is made is analyzed to obtain the telephone number destination information sent by the HGW (in this embodiment, "09012345678").

[0113] In step S1001 of Figure 10, the HGW refers to the emergency telephone number information registered in the emergency telephone number storage area 121 and checks if the telephone number destination dialed by the user matches the emergency telephone number list (step S1002 of Figure 10). In step S1002 of Figure 10, in this embodiment, the user dials the telephone number "09012345678", which matches the emergency telephone number registered in the emergency telephone number storage area 121, so the process in step S1003 is performed next. In step 1003, the following communication suppression is performed. 1) Application suppression means 2) Means for changing CPU assignment 3) Means for suppressing LAN communication by shaping

[0114] In this embodiment, all communication suppression methods are implemented to reduce the load during emergency calls, however, it is also possible to select and use some of the suppression methods. Furthermore, it may be possible to enable or disable each communication suppression method via a GUI. When a VoIP call ends, a SIP protocol BYE frame is sent from the terminal that ended the call. This device releases communication suppression when it sends or receives a BYE frame (step S1004). Communication suppression is released by reconfiguring or starting the application for each suppressed function using the same means as for normal activation.

[0115] 1) Application suppression means The application suppression means determines which applications to suppress using the application selection means 113. The priority and status are the same as in the embodiment shown in Figure 9, so their explanation is omitted. In this embodiment, applications with priority 2 or lower, namely tv_service, telnetd, httpd, and ftpd, are stopped, while routing_service and wlan_service, with priority 3 or higher, are not stopped. Stopping is achieved by using a process termination function, such as the kill command.

[0116] In this embodiment, the user can specify whether or not to stop tv_service, routing_service, and wlan_service, thereby preventing the unintended stopping of applications. Furthermore, by partially stopping applications that involve communication while currently running, it becomes possible to prevent interference with emergency phone calls.

[0117] 2) Means for changing CPU assignment The method for changing the CPU assignment is the same as the embodiment of the configuration shown in Figure 9, so its explanation will be omitted.

[0118] 3) Means for suppressing LAN communication by shaping The LAN communication suppression method using shaping is equivalent to the configuration shown in Figure 9, so its explanation is omitted.

[0119] Some or all of the above embodiments may also be described as follows, but are not limited to these. [Form 1] The communication device is as described above in relation to the first perspective. [Form 2] Preferably, a communication device according to Embodiment 1, further comprising: a specific application software list holding unit that holds a list of specific application software; and a second determination unit that determines whether or not the currently running application software is included in the specific application software list holding unit, wherein the control unit controls the application software to be executed according to the determination results of the first determination unit and the second determination unit, respectively. [Form 3] Preferably a communication device of form 2, wherein the control unit stops the running application software included in the specific application software list holding unit when the determination result of the first determination unit is that a specific communication destination ID identical to or corresponding to the communication destination ID is included in the specific communication destination holding unit, and the determination result of the second determination unit is that the running application software is included in the specific application software list holding unit. [Form 4] The specific application software list holding unit further associates and holds specific application software with application software priority, which is the priority for executing the application software, and the control unit stops the running application software based on the application software priority, preferably in the form of a communication device of the third form. [Form 5] The control unit is a communication device of form 4, which preferably stops running application software whose application software priority is lower than a predetermined value. [Form 6] A communication device, preferably of form 4 or 5, further comprising an application software priority receiving unit that receives application software priorities, and a specific application software list holding unit that updates and holds the priorities received by the application software priority receiving unit. [Form 7] Preferably, the communication device of form 1, wherein the control unit, when the determination result of the first determination unit is that a specific communication destination ID identical to or corresponding to the communication destination ID is included in the specific communication destination holding unit, causes a specific application software to occupy a predetermined percentage of the hardware resources used by that specific application software. [Form 8] The control unit is a communication device of form 7, which preferably has a control unit that allows application software related to video communication or audio communication to occupy a predetermined percentage of the hardware resources used by the application software. [Form 9] A communication device, preferably of form 8, comprising multiple CPUs, wherein the control unit dedicates at least one of the multiple CPUs to running a specific application software. [Form 10] The specific application software is VoIP application software, preferably a communication device of any one of the forms 7 to 9. [Form 11] The control unit is a communication device, preferably one of the forms 7 to 10, which can change the proportion of hardware resources used by a specific application software during operation. [Form 12] Preferably, the communication device of form 1, wherein the control unit, when the determination result of the first determination unit indicates that a specific communication destination ID identical to or corresponding to the communication destination ID is included in the specific communication destination holding unit, performs bandwidth restriction on communications other than those handled by application software that handles voice or video. [Form 13] The control unit performs bandwidth limiting for communications other than VoIP application software, preferably a communication device of form 12. [Form 14] Preferably, the communication device of form 13 has a control unit that performs communication bandwidth limiting by buffering communication data exceeding the limit in a storage area. [Form 15] The control unit performs communication bandwidth limiting by discarding communication data exceeding the limit, preferably in the form of a communication device according to embodiment 14. [Form 16] The control unit is a communication device, preferably of form 14 or 15, which replaces the processing that was previously performed using software resources with hardware resources in order to limit the communication bandwidth. [Form 17] The control unit is a communication device, preferably one of the embodiments 12 to 16, capable of performing communication bandwidth limiting during communication operation. [Form 18] The communication device is a home gateway device, preferably one of the communication devices of form 1 to 17. [Form 19] The communication method is as described above for the second perspective. [Form 20] The program related to the third perspective described above is as follows. Furthermore, forms 19 and 20 can be expanded into forms 2 through 18, similar to form 1.

[0120] Each of the above-mentioned disclosures, including the cited patent documents, shall be incorporated herein by reference. Within the framework of the full disclosure of the present invention (including the claims), further modifications and adjustments to the embodiments or examples are possible based on the fundamental technical concept. Furthermore, within the framework of the full disclosure of the present invention, various combinations or selections of various disclosed elements (including each element of each claim, each element of each embodiment or example, each element of each drawing, etc.) are possible. In other words, the present invention naturally includes various modifications and alterations that a person skilled in the art could make in accordance with the full disclosure, including the claims, and the technical concept. In particular, with respect to the numerical ranges described herein, any numerical value or sub-range included within that range should be interpreted as being specifically described unless otherwise stated. [Explanation of symbols]

[0121] 10: Communication device 11: Specific communication destination retention unit 12: Communication destination ID acquisition section 13: First Decision Unit 14: Control Unit 15: Specific application software list holding unit 16: Second Decision Unit 61: CPU 62: Memory 63: Input / Output Interface 64: NIC 65: Internal bus 100:HGW 101: Data Processing Device 102: Storage device 111: VoIP calling method 112: Emergency call determination method 113: Means for selecting applications to be stopped 114: Application control means 115: Method for changing CPU assignment 116: Shaping Implementation Method 117: Emergency phone number registration method 118: Stopping Application Modification Method 121: Emergency phone number storage area 122: Application Priority Storage

Claims

1. A specific communication destination holding unit holds a specific communication destination list, which is a list containing a specific communication destination ID, which is an identification number of a specific communication destination, A communication destination ID acquisition unit that acquires a communication destination ID, which is the identification number of the communication destination, A first determination unit that determines whether a specific communication destination ID identical to or corresponding to the aforementioned communication destination ID is included in the specific communication destination holding unit, A control unit that controls application software or hardware according to the determination result of the first determination unit, A communication device having, A specific application software list holding unit that holds a list of specific application software, A second determination unit that determines whether the running application software is included in the specified application software list holding unit, It further possesses, The control unit controls the application software to be executed according to the determination results of the first determination unit and the second determination unit, respectively. If the determination result of the first determination unit indicates that a specific communication destination ID identical to or corresponding to the communication destination ID is included in the specific communication destination holding unit, the control unit will then... and, If the determination result of the second determination unit is that the currently running application software is included in the specific application software list holding unit, The running application software included in the specified application software list holding unit is stopped. The aforementioned specific application software list holding unit further associates and holds specific application software with application software priority, which is the priority for executing the application software. The control unit stops the running application software based on the application software priority. Communication device.

2. It further includes an application software priority receiving unit that receives the aforementioned application software priority, The aforementioned specific application software list holding unit updates and holds the priority received by the application software priority receiving unit. A communication device according to claim 1.

3. If the determination result of the first determination unit indicates that a specific communication destination ID identical to or corresponding to the communication destination ID is included in the specific communication destination holding unit, the control unit will then... Allowing a specific application software to exclusively use a predetermined percentage of the hardware resources. A communication device according to claim 1.

4. If the determination result of the first determination unit indicates that a specific communication destination ID identical to or corresponding to the communication destination ID is included in the specific communication destination holding unit, the control unit will then... To limit the bandwidth of communications other than those handled by application software that handles audio or video. A communication device according to claim 1.

5. The control unit performs communication bandwidth limiting by buffering communication data exceeding the limit using storage. A communication device according to claim 4.

6. A communication method that causes a computer to perform the following steps: The steps include obtaining a list of specific communication destinations, which is a list containing a specific communication destination ID, which is the identification number of a specific communication destination, The steps include obtaining the communication destination ID, which is the identification number of the communication destination, A first determination step of determining whether a specific communication destination ID identical to or corresponding to the aforementioned communication destination ID is included in the specific communication destination list, Depending on the result of the determination, the steps include controlling the application software or hardware, A communication method having, The steps include: maintaining a list of specific application software, A second determination step to determine whether the running application software is included in the specified application software list, It further possesses, The control step includes controlling the application software to be executed according to the determination results of the first determination step and the second determination step, respectively. If the result of the first determination step is that a specific communication destination ID identical to or corresponding to the communication destination ID is included in the specific communication destination list, and, If the result of the second determination step is that the running application software is included in the list of specified application software, The steps include stopping the running application software included in the aforementioned list of specific application software, Furthermore, the process involves associating and maintaining a specific application software with an application software priority, which is the priority for executing the application software. A communication method comprising the step of stopping running application software based on the aforementioned application software priority.

7. The process of obtaining a specific communication destination list, which is a list containing a specific communication destination ID, which is the identification number of a specific communication destination, The process of obtaining the communication destination ID, which is the identification number of the communication destination, A first determination process that determines whether a specific communication destination ID identical to or corresponding to the aforementioned communication destination ID is included in the specific communication destination list, Depending on the judgment result, a process is performed to control the application software or hardware, A program that causes a computer to execute, A process for maintaining a list of specific application software, A second determination process for determining whether the running application software is included in the specified application software list, The computer is then made to execute the following: The control process includes a process for controlling the application software to be executed according to the determination results of the first determination process and the second determination process, respectively. Furthermore, if the result of the first determination process is that a specific communication destination ID identical to or corresponding to the communication destination ID is included in the specific communication destination list, and, If the result of the second judgment process is that the running application software is included in the list of specified application software, A process to stop running application software included in the aforementioned list of specific application software, Furthermore, the process involves associating and maintaining a specific application software with an application software priority, which is the priority for executing that application software. A program that causes the computer to further execute a process to stop running application software based on the application software priority.