Call method, apparatus, system, storage medium, and program product

By using a push server to transmit call and response messages in VoIP calls, the problem of long TCP connection establishment time when VoIP applications are not running in the background is solved, resulting in faster response and call connection and improving user experience.

WO2026066389A1PCT designated stage Publication Date: 2026-04-02HUAWEI TECH CO LTD
View PDF 7 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-06-28
Publication Date
2026-04-02

AI Technical Summary

Technical Problem

In VoIP calls, when the called device's VoIP application is in the background and not running and no TCP long connection has been established, the calling device receives the called device's response message with excessive delay, resulting in a long call connection delay and affecting the user experience.

Method used

The push server transmits VoIP call and response messages between the terminal and the application server of the VoIP application. After receiving the call message, the terminal immediately sends the response message to the application server through the push server, avoiding waiting for the TCP long connection to be established successfully.

Benefits of technology

It simplifies the transmission process of response messages, reduces the time it takes for the calling device to receive response messages, improves the response speed and call connection efficiency of the called device, and enhances the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025105075_02042026_PF_FP_ABST
    Figure CN2025105075_02042026_PF_FP_ABST
Patent Text Reader

Abstract

The present application relates to the technical field of terminals, and discloses a call method, an apparatus, a system, a storage medium, and a program product, which can effectively reduce the duration for a calling device to receive a response message from a called device, effectively improve the connection efficiency between the calling device and the called device, and enhance user experience. The method comprises: a terminal receives a VOIP call message sent by a push server, and in response to the VOIP call message, sends a response message to an application server of a VOIP application by means of the push server.
Need to check novelty before this filing date? Find Prior Art

Description

Call method, device, system, storage medium and program product

[0001] The present application claims priority to the Chinese patent application No. 202411389979.6, filed on September 30, 2024, and entitled "Call method, device, system, storage medium and program product", the content of which is incorporated herein by reference in its entirety. TECHNICAL FIELD

[0002] The present application relates to the technical field of terminals, and in particular to a call method, device, system, storage medium and program product. BACKGROUND

[0003] When a calling device calls a called device using a voice over internet protocol (VOIP) application, if the VOIP application of the called device is in a background non-running state and no transmission control protocol (TCP) long connection is established between the called device and an application server of the VOIP application, the application server of the VOIP application can push a call message to the called device through a push server. After the called device receives the call message, the process of the VOIP application needs to be started first, and then a TCP long connection is established between the called device and the application server of the VOIP application. After the TCP long connection is successfully established, the called device can respond to the call message sent by the calling device through the TCP long connection, that is, send a response message to the calling device. After the calling device receives the response message, the calling device can send a call signaling to the called device to realize a call.

[0004] However, a large amount of time is consumed to establish the TCP long connection, which leads to a long time delay for the calling device to receive the response message of the called device, and further leads to a long time delay for the call between the calling device and the called device to be connected, which affects the user experience. SUMMARY

[0005] The embodiments of the present application provide a call method, device, system, storage medium and program product, which can effectively reduce the time length for the calling device to receive the response message of the called device, improve the connection efficiency of the call between the calling device and the called device, and enhance the user experience.

[0006] To achieve the above-mentioned purpose, the embodiments of the present application provide the following technical solutions:

[0007] In a first aspect, a call method is provided, which can be executed by a terminal installed with a VOIP application, or by a module applied in the terminal, such as a chip, a chip system or a circuit, or by a logic module or software capable of realizing all or part of the terminal functions, without limitation. For ease of description, the following is described by way of example of execution by the terminal.

[0008] The method comprises receiving a VOIP call message sent by a push server, and in response to the VOIP call message, sending a response message to an application server of the VOIP application through the push server.

[0009] Through the above technical solution, after the terminal (i.e. the called device) receives the VOIP call message sent by the calling device through the push server, the terminal can immediately send a response message to the application server of the VOIP application through the push server, so that the application server of the VOIP application can send the response message to the calling device, and the calling device can send a call signaling to the called device in response to the response message, thereby realizing the call. In this way, the process of sending the response message from the called device to the calling device is more concise and efficient, which can effectively reduce the time length for the calling device to receive the response message, improve the response speed of the called device, and further effectively improve the connection efficiency of the call between the calling device and the called device, and enhance the user experience.

[0010] In an optional implementation, the above method can further comprise that the terminal establishes a connection channel with the application server in response to the VOIP call message.

[0011] Optionally, the process of sending the response message to the application server through the push server and the process of establishing the connection channel with the application server can both be executed in response to the VOIP call message. For example, the terminal can send the response message to the application server through the push server in the process of establishing the connection channel with the application server. In this way, the terminal does not need to wait until the connection channel is successfully established before sending the response message. In this way, the time length for the calling device to receive the response message from the called device can be effectively reduced.

[0012] In addition, the terminal can disconnect the connection channel with the application server when the VOIP is in a background non-running state, and re-establish the connection channel with the application server after receiving the VOIP call message. In this way, the terminal does not need to maintain the connection channel with the application server for a long time, which can reduce the consumption of the terminal power and prolong the endurance time of the terminal.

[0013] In an optional implementation, the application server of the VOIP application is sent, by the push server, the response message in response to the VOIP call message, which can specifically include: starting a process of the VOIP application in response to the VOIP call message, and sending, by the push server, the response message to the application server of the VOIP application in response to the starting of the process of the VOIP application.

[0014] The technical solution described above describes a specific implementation of sending, by the push server, the response message to the application server of the VOIP application in response to the VOIP call message, which can effectively improve the realizability of the application.

[0015] In an optional implementation, the method described above can further include: sending, by the terminal, the first communication data to the application server through the push server.

[0016] Through the technical solution described above, the terminal can send the communication data to the application server through the push server in real time, greatly reducing the delay of data transmission and ensuring that the application server can receive the latest data in time.

[0017] In addition, the communication mode of sending, by the terminal, the communication data to the application server through the push server can realize dual-network (i.e. wireless network and cellular network) dual-connection. In this way, the terminal can send the communication data to the application server through the push server using a network with better quality, i.e. assuming that the terminal is currently connected to a wireless network and the cellular network is also in an open state, when the quality of the wireless network is poor, the terminal can switch from the wireless network to the cellular network and send the communication data to the application server through the push server, improving the reliability of data transmission and ensuring the smoothness of the communication process.

[0018] In an optional implementation, sending, by the push server, the first communication data to the application server can specifically include: in the case where a connection channel with the application server is successfully established, sending the first communication data to the application server through the connection channel and sending the first communication data to the application server through the push server; or in the case where the connection channel with the application server is not successfully established, sending the first communication data to the application server through the push server.

[0019] Through the technical solution described above, the terminal can send the communication data to the application server regardless of whether the connection channel with the application server is successfully established. In addition, in the case where the connection channel with the application server is successfully established, the terminal can also send the communication data to the application server through the dual-channel (including the connection channel and the channel sent through the push server), which can effectively improve the reliability of data transmission and further ensure the smoothness of the communication between the terminal and the calling device.

[0020] In an optional implementation, the first communication data can include at least one of communication signaling and a media stream.

[0021] The technical solution above describes the first communication data, which can expand the compatibility of the present application and effectively improve the realizability of the present application.

[0022] In an optional implementation, the method can further include that the terminal receives the second communication data sent by the push server.

[0023] Through the technical solution above, the terminal can receive the communication data from the push server in real time, without waiting for the connection channel between the terminal and the application server to be established and then receiving the communication data through the connection channel. In this way, the delay of data transmission can be greatly reduced, and the application server can receive the latest data in time.

[0024] In an optional implementation, the method can further include that the terminal receives the second communication data sent by the application server through the connection channel, and then performs deduplication processing on the second communication data sent by the push server and the second communication data sent by the application server through the connection channel to obtain deduplicated second communication data, and responds to the deduplicated second communication data.

[0025] Through the technical solution above, the terminal can receive the communication data sent by the application server through the dual-channel mode (including the connection channel and the channel through the push server), which can effectively improve the reliability of data transmission and further ensure the smoothness of communication between the terminal and the calling device.

[0026] In an optional implementation, the second communication data can include at least one of communication signaling and a media stream.

[0027] The technical solution above describes the second communication data, which can expand the compatibility of the present application and effectively improve the realizability of the present application.

[0028] In an optional implementation, the connection channel between the terminal and the application server is a TCP long connection.

[0029] The technical solution above describes the connection channel between the terminal and the application server, which effectively improves the realizability of the present application.

[0030] In a second aspect, a call method is provided, which can be executed by an application server of a VOIP application, or can be executed by a module, such as a chip, a chip system or a circuit, applied in the application server, or can be executed by a logic module or software capable of realizing all or part of the functions of the application server, and the present application is not limited in this regard. For ease of description, the following describes the execution by the application server as an example.

[0031] The method comprises: sending, by the push server, the VOIP call message to the terminal, and receiving a response message sent by the push server.

[0032] Through the above technical solution, the application server can send the VOIP call message sent by the calling device to the called device through the push server, and can also receive the response message sent by the called device through the push server and send the response message to the calling device. The calling device can send call signaling to the called device in response to the response message to realize the call. In this way, the process of sending the response message from the called device to the calling device is more concise and efficient, which can effectively reduce the time length of receiving the response message by the calling device, improve the response speed of the called device, and thus effectively improve the connection efficiency of the call between the calling device and the called device and enhance the user experience.

[0033] In an optional embodiment, the above method can further comprise: receiving, by the application server, the first communication data sent by the push server.

[0034] Through the above technical solution, the application server can receive the communication data sent by the terminal in real time through the push server, greatly reducing the delay of data transmission and ensuring that the application server can receive the latest data in time.

[0035] In addition, the communication mode of sending the communication data from the terminal to the application server through the push server can realize dual-network (i.e. wireless network and cellular network) dual-connection. In this way, the terminal can send the communication data to the application server through the push server using a network with better quality, i.e. assuming that the terminal is currently connected to a wireless network and the cellular network is also in an open state, when the quality of the wireless network is poor, the terminal can switch from the wireless network to the cellular network and send the communication data to the application server through the push server, improving the reliability of data transmission and ensuring the smoothness of the communication process.

[0036] In an optional embodiment, the above method can further comprise: receiving, by the application server, the first communication data sent by the terminal through the connection channel, then performing deduplication processing on the first communication data sent by the push server and the first communication data sent by the terminal through the connection channel to obtain deduplicated first communication data, and responding to the deduplicated first communication data.

[0037] Through the technical solution, the application server can receive the communication data sent by the terminal regardless of whether the connection channel with the application server is successfully established. In addition, in the case that the connection channel between the terminal and the application server is successfully established, the application server can also receive the communication data sent by the terminal through the dual-channel mode (including the connection channel and the channel sent through the push server), which can effectively improve the reliability of data transmission and further ensure the smoothness of communication between the terminal and the calling device.

[0038] In an optional implementation, the first communication data can include at least one of communication signaling and a media stream.

[0039] The technical solution described above illustrates the first communication data, which can expand the compatibility of the present application and effectively improve the realizability of the present application.

[0040] In an optional implementation, the method can further include: the application server sending second communication data to the terminal through the push server.

[0041] Through the technical solution, the application server can send the communication data to the terminal in real time through the push server, greatly reducing the delay of data transmission and ensuring that the application server can receive the latest data in time.

[0042] In an optional implementation, the sending of the second communication data to the terminal through the push server can specifically include: in the case that the connection channel with the terminal is successfully established, sending the second communication data to the terminal through the connection channel and sending the second communication data to the terminal through the push server; or, in the case that the connection channel with the terminal is not successfully established, sending the second communication data to the terminal through the push server.

[0043] Through the technical solution, the application server can send the communication data to the terminal in real time through the push server, without waiting for the connection channel between the terminal to be established and then sending the communication data through the connection channel. In this way, the delay of data transmission can be greatly reduced, and the application server can receive the latest data in time.

[0044] In an optional implementation, the second communication data can include at least one of communication signaling and a media stream.

[0045] The technical solution described above illustrates the second communication data, which can expand the compatibility of the present application and effectively improve the realizability of the present application.

[0046] In an optional implementation, the connection channel between the terminal and the application server is a TCP long connection.

[0047] The technical solution above describes the connection channel between the terminal and the application server, and effectively improves the realizability of the application.

[0048] In a third aspect, a call method is provided, which can be executed by a push server, or can be executed by a module applied in the push server, such as a chip, a chip system or a circuit, or can be realized by a logic module or software which can realize all or part of the function of the push server, and the limitation is not made. In order to facilitate the description, the following is described by taking the execution by the push server as an example.

[0049] The method comprises the following steps: receiving a VOIP call message sent by an application server of a VOIP application, sending the VOIP call message to a terminal, receiving a response message sent by the terminal, and sending the response message to the application server.

[0050] Through the technical solution above, the push server can send the VOIP call message sent by the application server to the terminal (i.e. the called device), and send the response message sent by the terminal to the application server, so that the application server can send the response message to the calling device, and the calling device can send a call signaling to the called device in response to the response message, thereby realizing the call. In this way, the process of sending the response message from the called device to the calling device is more concise and efficient, which can effectively reduce the time length of receiving the response message by the calling device, improve the response speed of the called device, and further effectively improve the call connection efficiency between the calling device and the called device, and enhance the user experience.

[0051] In an optional implementation, the method above can further comprise: receiving, by the push server, first communication data sent by the terminal, and sending the first communication data to the application server.

[0052] Through the technical solution above, the push server can send the communication data sent by the terminal to the application server in real time, greatly reducing the delay of data transmission, and ensuring that the application server can receive the latest data in time.

[0053] In an optional implementation, the first communication data can comprise at least one of a communication signaling and a media stream.

[0054] The technical solution above describes the first communication data, which can expand the compatibility of the application and effectively improve the realizability of the application.

[0055] In an optional implementation, the method above can further comprise: receiving, by the push server, second communication data sent by the application server, and sending the second communication data to the terminal.

[0056] Through the technical solution, the push server can send the communication data sent by the application server to the terminal in real time, greatly reduces the delay of data transmission, and ensures that the terminal can receive the latest data in time.

[0057] In an optional implementation, the second communication data can include at least one of communication signaling and a media stream.

[0058] The technical solution described above illustrates the second communication data, can expand the compatibility of the application, and effectively improve the realizability of the application.

[0059] In a fourth aspect, a communication device is provided, which is located in a terminal and includes function units for performing any one of the methods provided in the first aspect, and the actions performed by each function unit are implemented through hardware or by executing corresponding software through hardware.

[0060] The device includes a transceiver module. The transceiver module is configured to receive a VOIP call message sent by the push server, and send a response message to an application server of a VOIP application through the push server in response to the VOIP call message.

[0061] In a fifth aspect, a communication device is provided, which is located in an application server of a VOIP application and includes function units for performing any one of the methods provided in the second aspect, and the actions performed by each function unit are implemented through hardware or by executing corresponding software through hardware.

[0062] The device includes a transceiver module. The transceiver module is configured to send a VOIP call message to a terminal through a push server, and receive a response message sent by the push server.

[0063] In a sixth aspect, a communication device is provided, which is located in a push server and includes function units for performing any one of the methods provided in the third aspect, and the actions performed by each function unit are implemented through hardware or by executing corresponding software through hardware.

[0064] The device includes a transceiver module. The transceiver module is configured to receive a VOIP call message sent by an application server of a VOIP application, and send the VOIP call message to a terminal, and receive a response message sent by the terminal, and send the response message to the application server.

[0065] In a seventh aspect, a communication system is provided, which includes a terminal, an application server and a push server. The terminal is configured to perform any one of the call methods provided in the first aspect, the application server is configured to perform any one of the call methods provided in the second aspect, and the push server is configured to perform any one of the call methods provided in the third aspect.

[0066] In an eighth aspect, a computer program product is provided, which includes instructions, when the instructions are executed on a computer, the computer executes any one of the call methods provided in the first aspect, the second aspect or the third aspect.

[0067] In a ninth aspect, a computer readable storage medium is provided, which includes computer executable instructions, when the instructions are executed on a computer, the computer executes any one of the call methods provided in the first aspect to the third aspect.

[0068] It should be noted that the technical effects brought by any one of the implementation manners in the fourth aspect to the ninth aspect can refer to the technical effects brought by the corresponding implementation manners in the first aspect, the second aspect and the third aspect, which will not be repeated here. BRIEF DESCRIPTION OF DRAWINGS

[0069] FIG. 1 is a call flow diagram in the related art;

[0070] FIG. 2 is a system architecture diagram of a communication system provided by an embodiment of the present application;

[0071] FIG. 3 is a software structure block diagram of a terminal provided by an embodiment of the present application;

[0072] FIG. 4 is an interaction flow diagram of a call method provided by an embodiment of the present application;

[0073] FIG. 5A is an interface diagram of displaying a call notification provided by an embodiment of the present application;

[0074] FIG. 5B is another interface diagram of displaying a call notification provided by an embodiment of the present application;

[0075] FIG. 6 is an interface diagram of displaying a red packet message provided by an embodiment of the present application;

[0076] FIG. 7 is an interaction flow diagram of another call method provided by an embodiment of the present application;

[0077] FIG. 8 is a flow diagram of a call method provided by an embodiment of the present application;

[0078] FIG. 9 is a structure diagram of a terminal provided by an embodiment of the present application;

[0079] FIG. 10 is a structure diagram of an application server provided by an embodiment of the present application. DETAILED DESCRIPTION

[0080] In the description of the present application, unless otherwise specified, " / " means "or", for example, A / B can mean A or B. "And / or" herein is only a description of the association relationship of the associated objects, which means that there can be three relationships, for example, A and / or B, which can mean: A exists alone, A and B exist together, and B exists alone. In addition, "at least one" means one or more, and "multiple" means two or more. "First", "second", and the like do not limit the quantity and execution order, and "first", "second", and the like do not necessarily mean different.

[0081] It should be noted that in the embodiments of the present application, the words "exemplary" or "for example" are used to mean serving as an example, instance, or illustration. Any embodiment or design presented as "exemplary" or "for example" in the present application should not be interpreted as being more preferred or advantageous than other embodiments or design solutions. Rather, the use of "exemplary" or "for example" is intended to present relevant concepts in a concrete manner.

[0082] It can be understood that "embodiments" mentioned throughout the description mean that the specific features, structures or characteristics related to the embodiments are included in at least one embodiment of the present application. Therefore, throughout the description, various embodiments do not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in any suitable manner in one or more embodiments. It can be understood that in various embodiments of the present application, the size of the sequence number of each process does not mean the execution order, and the execution order of each process should be determined according to its function and inherent logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0083] In the present application, unless otherwise specified, the same or similar parts between various embodiments can be mutually referred to. In various embodiments of the present application, if there is no special specification and no logical conflict, the terms and / or descriptions between different embodiments are consistent and can be mutually referred to. The technical features in different embodiments can be combined to form new embodiments according to their inherent logical relationship. The following embodiments of the present application do not constitute a limitation on the protection scope of the present application.

[0084] When the calling device calls the called device using the VOIP application, in the case that the VOIP application is a super application, the process of the VOIP application keeps alive, so that the TCP long connection between the terminal (including the calling device and the called device) and the application server of the VOIP application can be kept in a connected state for a long time. Therefore, the application server of the VOIP application can send a call message to the called device through the TCP long connection. In this way, the process keeps alive and the TCP long connection keeps in a connected state for a long time, which will consume a large amount of power of the terminal and shorten the endurance time of the terminal.

[0085] However, the process of most VOIP applications cannot be kept alive for a long time, that is, when the calling device calls the called device using the VOIP application, if the VOIP application of the called device is in a background non-running state and no TCP long connection is established between the called device and the application server of the VOIP application, the application server of the VOIP application cannot send the call message to the called device through the above-mentioned manner, thereby causing the applicability of the above-mentioned manner to be poor.

[0086] At this time, the application server of the VOIP application can send the call message to the called device through the push server. After the called device receives the call message, the process of the VOIP application needs to be started first, and then a TCP long connection is established between the called device and the application server of the VOIP application. After the TCP long connection is successfully established, the called device can respond to the call message sent by the calling device through the TCP long connection, such as sending a response message to the calling device. After the calling device receives the response message, the calling device can send the call signaling to the called device to realize the call.

[0087] Exemplarily, as shown in FIG. 1, taking the calling device as device A and the called device as device B, the device A calls the device B through the VOIP application, and the VOIP application installed in the device B is in a background non-running state. The device A can send a call message carrying the device identifier of the device B to the application server of the VOIP application. After receiving the call message, the application server of the application A can send the call message to the device B through the push server. After the device B receives the call message, the process of the VOIP application can be started. Then, the device B can establish a TCP long connection with the application server of the VOIP application. After the TCP long connection is successfully established, the called device can send a response message to the calling device through the TCP long connection, so that the calling device sends the call signaling to the called device based on the response message to realize the call.

[0088] The above-mentioned process of establishing the TCP long connection is very complex, not only three TCP handshakes between the terminal and the application server of the VOIP application are needed, but also a series of operations such as key agreement, authentication and authorization between the terminal and the application server of the VOIP application are needed, so that the TCP long connection can be successfully established. It can be known that a large amount of time is consumed when the TCP long connection is established. According to the test, when the network quality is poor (such as the packet loss rate of the network is greater than 20% or the network delay is greater than 800 milliseconds), the time length for successfully establishing the TCP long connection even exceeds 10 seconds (s), so that the called device cannot respond to the call message of the calling device for a long time, the time delay for the calling device to receive the response message of the called device is too long, and then the call connection time delay between the calling device and the called device is too long, thereby affecting the user experience.

[0089] In view of this, the embodiment of the present application provides a call method applied to a terminal. Specifically, the terminal is installed with a VOIP application, and after receiving a VOIP call message sent by a push server, the terminal can send a response message to an application server of the VOIP application through the push server in response to the VOIP call message. The response message is used to indicate that the terminal receives the VOIP call message.

[0090] Through the above technical solution, after receiving the VOIP call message sent by the push server, the terminal can immediately send a response message to the application server of the VOIP application through the push server. Subsequently, the application server of the VOIP application can send the response message to the calling device, so that the calling device can send call signaling to the called device in response to the response message, and realize the call. Without waiting for the TCP long connection to be successfully established, the terminal can be called. In this way, the process of the called device sending a response message to the calling device is more concise and efficient, which can effectively reduce the time length of the calling device receiving the response message, improve the response speed of the called device, and further effectively improve the connection efficiency of the call between the calling device and the called device, and enhance the user experience.

[0091] The technical solutions provided by the present application will be described below in conjunction with the drawings of the specification.

[0092] FIG. 2 is a schematic diagram of a system architecture of a communication system provided by an embodiment of the present application. As shown in FIG. 2, the communication system includes one or more terminals (such as terminal 201 and terminal 202) installed with a VOIP application (such as a smooth connection application), an application server 203 of the VOIP application, and a push (Push) server 204.

[0093] The Push service can be installed or integrated in each terminal, and the Push service is used to receive the message pushed by the application server 203 to the VOIP application through the Push server 204. The pushed message can be referred to as a Push message. It should be noted that if the VOIP application in the terminal enables the Push message function, the Push service of the terminal can receive and display the Push message of the VOIP application from the Push server 204 even if the VOIP application is not running or in a background non-running state.

[0094] In addition, in the embodiment of the present application, the Push service can also transmit the message sent by the VOIP application to the Push server 204, so that the Push server 204 sends the message to the application server 203.

[0095] The application server 203 can be configured to push messages to a VOIP application installed in a terminal. In some embodiments, the application server 203 can be understood as a service server of the VOIP application. The application server 203 can provide call services for the VOIP application, and can also provide other services for the VOIP application, such as message sending and receiving, conference, schedule, and the like.

[0096] The push server 204 can receive the push message sent by the application server 203, and push the push message to the VOIP application through a push service integrated in the terminal.

[0097] The terminals (e.g., the terminal 201 and the terminal 202) and the application server 203, the application server 203 and the push server 204, and the push server 204 and the terminals can communicate through a communication network.

[0098] The communication network can include a local area network (LAN) and / or a wide area network (WAN). The communication network can be implemented using any known network communication protocol, which can be various wired or wireless communication protocols, such as Ethernet, universal serial bus (USB), fire wire, global system for mobile communications (GSM), general packet radio service (GPRS), code division multiple access (CDMA), wideband code division multiple access (WCDMA), time-division code division multiple access (TD-SCDMA), long term evolution (LTE), Bluetooth, wireless fidelity (Wi-Fi), near field communication (NFC), a communication protocol supporting a network slicing architecture, or any other suitable communication protocol.

[0099] The terminal 201 and the terminal 202 can be a mobile phone, a tablet computer, a desktop computer, a laptop computer, a handheld computer, a notebook computer, an ultra-mobile personal computer (UMPC), a netbook, a cellular phone, a personal digital assistant (PDA), an augmented reality (AR) device, a virtual reality (VR) device, an artificial intelligence (AI) device, a wearable device (for example, a smart bracelet), an in-vehicle device, a smart home device (for example, a smart television, a smart screen, a large screen device, etc.), and / or a smart city device. The embodiments of the present application do not specially limit the specific types of the terminal 201 and the terminal 202.

[0100] The application server 203 can be a server, or a server cluster composed of multiple servers, or a cloud computing center. Similarly, the Push server 204 can be a server, or a server cluster composed of multiple servers, or a cloud computing center. The embodiments of the present application do not specially limit the names of the application server 203 and the Push server 204.

[0101] In the embodiments of the present application, the user holding the terminal 201 (which can also be referred to as a calling user) can make a VOIP call with the terminal 201 (which can also be referred to as a calling device) to the terminal 202 (which can also be referred to as a called device) held by the user holding the terminal 202 (which can also be referred to as a called user) through the VOIP application of the terminal 201. Specifically, the terminal 201 can send a VOIP call message to the application server 203 of the VOIP application in response to the call operation triggered by the user 1 in the VOIP application for the user 2, and the VOIP call message is used to request a VOIP call with the terminal 201. After the application server 203 receives the VOIP call message, it can detect whether a connection channel is established between itself and the terminal 202, and in the case that no connection channel is established between itself and the terminal 202, the application server 203 can send a VOIP call message to the terminal 202 through the Push server 204. The terminal 202 can send a response message to the application server 203 of the VOIP application through the Push server 204 in response to the VOIP call message. So that the application server 203 of the VOIP application can send the response message to the terminal 201, and then realize the VOIP call of the two parties.

[0102] It should be understood that FIG. 2 is merely an exemplary system architecture of a communication system provided by embodiments of the present application, and does not constitute a specific limitation on the communication system, which can include more or fewer devices than those shown, without limitation.

[0103] The following will introduce the software structure of the terminal involved in the embodiments of the present application.

[0104] The software system of the terminal can adopt a layered architecture, an event-driven architecture, a micro-kernel architecture, a micro-service architecture, or a cloud architecture. Embodiments of the present application exemplarily illustrate the software structure of the terminal by taking the system of the layered architecture shown in FIG. 3. The terminal can also adopt other software systems, without being limited to the system shown in FIG. 3.

[0105] FIG. 3 is a software structure block diagram of a terminal provided by an embodiment of the present application.

[0106] The layered architecture divides the software into several layers, each of which has a clear role and division of labor. The layers communicate with each other through software interfaces. In some embodiments, the system is divided into four layers, from top to bottom, an application program layer, an application program framework layer, a hardware abstraction layer (HAL) layer, and a kernel layer. Among them:

[0107] The application program layer can include a series of application program packages. Exemplarily, as shown in FIG. 3, the application program layer can include VOIP applications, such as QQ, It can also include other application programs such as a camera, a gallery, a calendar, a call, Bluetooth, music, etc.

[0108] The application program framework layer provides application programming interfaces (APIs) and programming frameworks for the application programs of the application program layer. The application program framework layer includes some pre-defined functions. Exemplarily, as shown in FIG. 3, the application program framework layer can include a Push service and a notification manager, and can also include a content provider, a view system, a phone manager, a resource manager, and an edit manager, etc.

[0109] Among them, the Push service can send the VOIP call message to the notification manager after receiving the VOIP call message from the Push server 204.

[0110] The notification manager can enable an application to display notification information in a status bar, which can be used to convey a notification type of message that can automatically disappear after a brief stay without user interaction. For example, the notification manager is used to notify a download completion, a message reminder, etc. The notification manager can also be a notification that appears in the form of a chart or a scroll bar text in the top status bar of the system, such as a notification of an application running in the background, and can also be a notification that appears in the form of a dialog window on the screen. For example, a text information is prompted in the status bar, a prompt sound is emitted, the electronic device is vibrated, a light flashes, etc.

[0111] In the embodiments of the present application, the notification manager can be used to display a call notification of a VOIP call message on a lock screen interface and a non-lock screen interface. A user can answer or reject a VOIP call through the call notification displayed by the notification manager, and can also delete the call notification.

[0112] The core library includes two parts: one part is a function function that needs to be called by the java language, and the other part is the core library.

[0113] The application layer and the application framework layer run in the virtual machine. The virtual machine executes the java files of the application layer and the application framework layer into binary files. The virtual machine is used to perform functions such as management of object life cycle, stack management, thread management, security and exception management, and garbage collection.

[0114] The HAL layer and the kernel layer are used to perform corresponding operations in response to a system service call in the application framework layer.

[0115] The kernel layer is a layer between hardware and software. The kernel layer can include an input system, a sensor driver, and a display driver, and can also include an audio driver, a camera driver, etc. The input system is used to listen to the input operation of a user, such as an operation of answering, answering or hanging up a VOIP call, an operation of deleting a call notification, etc.

[0116] For example, the display driver can drive the display screen to display a VOIP call notification and an answering page of a VOIP call. The sensor driver can drive the sensor (such as a touch sensor) to detect the input operation (such as an answering operation) of a user. The audio driver can drive the microphone to collect voice data of a user for a VOIP call. The camera driver can drive the camera to collect a video picture for a VOIP call.

[0117] Next, with reference to FIG. 2, a call method provided by the embodiments of the present application is described by taking a terminal (including a calling device and a called device), an application server of a VOIP application, and a Push server in FIG. 2 as examples. FIG. 4 is an interaction flow diagram of a call method provided by the embodiments of the present application, as shown in FIG. 4, the method includes:

[0118] S401, the calling device sends a VOIP call message to an application server.

[0119] The VOIP call message is used to request a VOIP call. The VOIP call message can include one or more of the following information: an account of the calling user, a name of the calling user, and an account of the called user.

[0120] Specifically, the calling device can be installed with a VOIP application, and the calling user can make a VOIP call (e.g. voice call, video call) to the called user through the VOIP application installed in the calling device. The calling device can send a VOIP call message to an application server of the VOIP application in response to a call operation of the calling user to the called user.

[0121] In an optional implementation, the VOIP call message can include a TunnelCreate signaling and an invite signaling.

[0122] In an optional implementation, the calling device can send the VOIP call message to the application server through at least one of a connection channel between the calling device and the application server or a Push server.

[0123] The following describes the calling device sending the VOIP call message to the application server through the connection channel between the calling device and the application server and sending the VOIP call message to the application server through the Push server.

[0124] Specifically, after generating the VOIP call message, the calling device can send the VOIP call message to the Push server, and the Push server can send the VOIP call message to the application server of the VOIP application after receiving the VOIP call message. In addition, the calling device can also detect whether a connection channel is established between the calling device and the application server of the VOIP application, and in the case that the connection channel is established between the calling device and the application server of the VOIP application, the calling device sends the VOIP call message to the application server through the connection channel. In the case that the connection channel is not established between the calling device and the application server of the VOIP application, the calling device establishes the connection channel with the application server, and sends the VOIP call message to the application server through the connection channel after the connection channel is successfully established.

[0125] In this implementation, as an example, the calling device can detect whether the connection channel is established between the calling device and the application server of the VOIP application while sending the VOIP call message to the application server.

[0126] In the embodiments of the present application, the connection channel can include, but is not limited to, a transmission control protocol (TCP) long connection, such as a WebSocket over QUIC (WebSocket over quick user datagram protocol internet connections) connection.

[0127] S402, the application server sends the VOIP call message to the Push server.

[0128] S403, the Push server sends the VOIP call message to the called device.

[0129] Specifically, after the application server receives the VOIP call message from the calling device, the application server can parse the VOIP call message to obtain the account of the called user, and send the VOIP call message and the account of the called user to the Push server. After receiving the VOIP call message and the account of the called user, the Push server can send the VOIP call message to the called device that logs in the account of the called user. In addition, the application server can also detect whether a connection channel is established between the application server and the called device. If the connection channel is established between the application server and the called device, the application server can also send the VOIP call message to the called device through the connection channel.

[0130] S404, the called device rings in response to the VOIP call message.

[0131] S405, the called device sends a response message to the Push server in response to the VOIP call message.

[0132] The response message is used to indicate that the called device receives the VOIP call message. The response message can include, but is not limited to, one or more of the account of the calling user and the account of the called user, and the like.

[0133] After the called device receives the VOIP call message, the called device can ring and display a call notification corresponding to the VOIP call message. The called user can perform a trigger operation on the call notification. The called device can start a process of a VOIP application in response to the trigger operation of the called user on the call notification. In response to the start of the process of the VOIP application, the called device can send the response message to the Push server and display a call answering interface.

[0134] In the embodiments of the present application, the triggering operation of the called user for the call notification is not limited. For example, the triggering operation of the called user for the call notification can be a touch operation such as a click operation or a sliding operation, or a voice instruction input, or an operation on a physical key.

[0135] In the embodiments of the present application, the position and content of the call notification displayed by the called device are not limited. For example, the called device can display the call notification on a lock screen interface, as shown in FIG. 5A. The called device can also display the call notification on a non-lock screen interface, as shown in FIG. 5B. The content of the call notification displayed by the called device can be "XXX invites you to voice call", as shown in FIG. 5A. The content of the call notification displayed by the called device can also be "XXX invites you to video call", as shown in FIG. 5B. Taking the click operation as an example, the called user can perform a click operation on the call notification shown in FIG. 5A or FIG. 5B. The called device can start the process of the VOIP application in response to the click operation of the called user for the call notification. After starting the process of the VOIP application, the called device can establish a connection channel with the application server and send a response message to the Push server to confirm that the VOIP call message is received.

[0136] In the embodiments of the present application, the process of the started VOIP application can include but is not limited to the main process of the VOIP application, such as a data update process, a third-party plug-in process, and the like, which are not limited.

[0137] In an optional embodiment, in the case where the VOIP call message includes a TunnelCreate signaling, the response message can be a confirmation (CreateAck) signaling.

[0138] S406, the called device establishes a connection channel with the application server in response to the VOIP call message.

[0139] S406 is an optional step.

[0140] After receiving the VOIP call message, the called device can also detect whether a connection channel is established between the called device and the application server of the VOIP application. In the case where the connection channel is established between the called device and the application server of the VOIP application, the response message is sent to the application server through the connection channel. In the case where the connection channel is not established between the called device and the application server of the VOIP application, the connection channel is established with the application server, and after the connection channel is successfully established, the response message is sent to the application server through the connection channel.

[0141] For example, assuming that the called device does not establish a connection channel with the application server of the VOIP application, the called device can establish the connection channel with the application server in response to the start of the process of the VOIP application, and send a response message to the application server through the connection channel after the connection channel is successfully established.

[0142] The execution order of S405 and S406 is not limited, and S405 can be executed first, and then S406 can be executed, or S406 can be executed first, and then S405 can be executed, or S405 and S406 can be executed simultaneously.

[0143] The process of establishing a connection channel between the called device and the application server can refer to related technologies, which will not be described here.

[0144] S407, the Push server sends a response message to the application server.

[0145] Through the above technical solution, the called device can immediately send a response message to the Push server in response to the VOIP call message. Compared with the manner in which the called device returns a response message after the connection channel between the called device and the application server is established in the related art, the present solution can simplify the process of the called device sending a response message to the calling device, effectively reduce the time length of the called device receiving the response message, improve the response speed of the called device (tested, when the network quality is poor, the response speed of the called device can be improved by about 10s), and effectively improve the connection efficiency of the call between the calling device and the called device, and enhance the user experience.

[0146] In addition, the terminal can disconnect the connection channel between the terminal and the application server when the VOIP is in a background non-running state, and re-establish the connection channel with the application server after receiving the VOIP call message. In this way, the terminal does not need to maintain the connection channel with the application server for a long time, and the consumption of the terminal power can be reduced, and the endurance time of the terminal can be prolonged.

[0147] S408, the application server sends a response message to the calling device.

[0148] S409, the calling device rings.

[0149] Specifically, after receiving the response message, the application server can analyze the response message to obtain the account of the calling user. Then, the application server can send the response message to the calling device logged in the account of the calling user. After receiving the response message from the called device, the calling device can ring to perform subsequent communication with the called device.

[0150] After the calling device rings, the method can further include the following steps S410-S416:

[0151] S410, the called device sends the communication signaling 1 to the application server through the Push server.

[0152] The communication signaling 1 can include an answer signaling and a hang-up signaling, etc. The answer signaling is generated in response to a trigger operation of the called user on the answer interface displayed by the called device. The hang-up signaling is generated in response to a trigger operation of the called user on the hang-up interface displayed by the called device, and is used to instruct the called device to terminate the VOIP call.

[0153] Specifically, the called user can perform a trigger operation on the answer control or the hang-up control on the answer interface displayed by the called device. The called device can send the communication signaling 1 to the Push server in response to the trigger operation of the called user. The Push server can send the communication signaling 1 to the application server after receiving the communication signaling 1.

[0154] In addition, the called device can also detect whether a connection channel is established between the called device and the application server. In the case that the connection channel is successfully established between the called device and the application server, the called device can also send the communication signaling 1 to the application server through the connection channel. In the case that the connection channel is not successfully established between the called device and the application server, the called device can establish the connection channel with the application server, and send a response message to the application server through the connection channel after the connection channel is successfully established.

[0155] In this way, the called device can send the communication signaling to the application server regardless of whether the connection channel is successfully established between the called device and the application server, and the called device can also send the communication data to the application server through the double-channel mode in the case that the connection channel is successfully established between the called device and the application server. The communication signaling 1 sent to the application server through the connection channel can be uploaded through one end-to-cloud interaction, that is, the interaction process can be simplified, the processing delay can be reduced, and the timeliness of data transmission can be ensured. The communication signaling 1 sent to the application server through the Push server can effectively improve the reliability of data transmission without increasing the cost, thereby ensuring the smoothness of the communication between the calling device and the called device.

[0156] In addition, the communication mode of sending the communication data to the application server through the Push server can realize double-network (i.e. wireless network and cellular network) double-connection. In this way, the terminal can send the communication data to the application server through the Push server using a network with better quality, that is, assuming that the terminal is currently connected to a wireless network and the cellular network is also in an open state, when the quality of the wireless network is poor, the terminal can switch from the wireless network to the cellular network, and send the communication data to the application server through the Push server, thereby improving the reliability of data transmission and ensuring the smoothness of the communication process.

[0157] S411, the called device sends the communication signaling 1 to the application server through the connection channel.

[0158] It can be understood that S410 and S411 are parallel steps, that is, after the calling device rings, one way is to send the communication signaling 1 through the way described in S410, at this time, S411 is an optional step, that is, after the calling device rings, the communication signaling 1 can be sent to the application server through the Push server, and whether the communication signaling 1 is sent to the application server through the connection channel depends on the detection of the calling device on the connection channel between itself and the application server, which can be referred to S410.

[0159] Another way is to send the communication signaling 1 through the way described in S411, at this time, S410 is an optional step, that is, after the calling device rings, the communication signaling 1 can be sent to the application server through the connection channel.

[0160] S412, the application server performs deduplication processing on the communication signaling 1 sent by the Push server and the communication signaling 1 sent by the called device through the connection channel, to obtain the deduplicated communication signaling 1.

[0161] Specifically, after receiving the communication signaling 1 sent by the Push server and the communication signaling 1 sent by the called device, the application server can perform deduplication processing on the received communication signaling 1 based on the identifier of the communication signaling 1, to obtain the deduplicated communication signaling 1.

[0162] In an optional embodiment, the application server can also perform deduplication processing on the received communication signaling 1 based on the identifier of the communication signaling 1 and the time sequence information of the communication signaling 1, to obtain the deduplicated communication signaling 1.

[0163] The time sequence information of the communication signaling 1 refers to the time when the communication signaling 1 is received. Accordingly, after receiving the communication signaling 1 sent by the Push server and the communication signaling 1 sent by the called device, the application server can delete the communication signaling 1 received at a later time.

[0164] For example, it is assumed that the identifier of the communication signaling 1 is A, and the application server receives the communication signaling 1 with identifier A sent by the Push server at 10:00, and receives the communication signaling 1 with identifier A sent by the called device at 10:01, then the application server can delete the communication signaling 1 with identifier A sent by the called device.

[0165] It can be understood that S411 is an optional step, which is performed when the application server receives the communication signaling 1 sent by the called device through the connection channel and receives the communication signaling 1 sent by the called device through the Push server. When the application server only receives the communication signaling 1 sent by the called device through the connection channel or only receives the communication signaling 1 sent by the called device through the Push server, S411 is not performed.

[0166] S413, the application server sends the communication signaling 1 to the calling device through the Push server.

[0167] Specifically, the application server can send the communication signaling 1 to the Push server, and the Push server can send the communication signaling 1 to the calling device after receiving the communication signaling 1. In addition, the application server can also detect whether a connection channel is established between the application server and the calling device. In the case that the connection channel is successfully established between the application server and the calling device, the application server can also send the communication signaling 1 to the called device through the connection channel.

[0168] S414, the application server sends the communication signaling 1 to the calling device through the connection channel.

[0169] Specifically, the application server can send the communication signaling 1 to the called device through the connection channel after establishing the connection channel between the application server and the called device.

[0170] It can be understood that S413 and S414 are parallel steps, that is, after the application server receives the communication signaling 1, one way is to send the communication signaling 1 through the manner described in S413, and at this time, S414 is an optional step, that is, the application server sends the communication signaling 1 to the calling device through the Push server, and whether to send the communication signaling 1 to the calling device through the connection channel depends on the detection of the application server on the connection channel between the application server and the called device, which can be referred to S413.

[0171] The other way is to send the communication signaling 1 through the manner described in S414, and at this time, S413 is an optional step, that is, the application server directly sends the communication signaling 1 to the application server through the connection channel.

[0172] S415, the calling device performs deduplication processing on the communication signaling 1 sent by the Push server and the communication signaling 1 sent by the application server through the connection channel, and obtains the deduplicated communication signaling 1.

[0173] The process of deduplicating the communication signaling 1 by the called device can refer to the description of S412 above, which will not be described here.

[0174] It can be understood that S415 is an optional step, which is performed after the calling device receives the communication signaling 1 sent by the application server through the connection channel and receives the communication signaling 1 sent by the application server through the Push server. When the called device only receives the communication signaling 1 sent by the application server through the connection channel or only receives the communication signaling 1 sent by the application server through the Push server, S415 is not performed.

[0175] S416, the calling device responds to the communication signaling 1 after the de-duplication processing.

[0176] In an optional embodiment, the calling device can perform a corresponding operation in response to the communication signaling 1. For example, when the communication signaling 1 is an answer signaling, the called device can respond to the answer signaling to perform a call with the called user. When the communication signaling 1 is a hang-up signaling, the calling device can respond to the hang-up signaling to end the current call.

[0177] When the communication signaling 1 is an answer signaling, the calling device and the called device can perform a call. Accordingly, the calling device and the called device can send communication data to each other. The following describes that the called device sends communication data to the calling device.

[0178] After the calling device and the called device are connected, the method can further include the following steps S417-S423:

[0179] S417, the called device sends first communication data to the application server through the Push server.

[0180] The first communication data can include at least one of a communication signaling 2 and a media stream. The communication signaling 2 can include any call signaling except for an invitation signaling and a channel establishment signaling, such as a hang-up signaling. The media stream can include media format data in a call process, such as an audio stream and a video stream.

[0181] S418, the called device sends the first communication data to the application server through the connection channel.

[0182] The specific execution process of S417 and S418 can refer to the description of S410-S411, which will not be described here.

[0183] It can be understood that S417 and S418 are parallel steps.

[0184] S419, the application server performs de-duplication processing on the first communication data sent by the Push server and the first communication data sent by the called device through the connection channel, to obtain the first communication data after the de-duplication processing.

[0185] The specific execution process of S419 can refer to the description of S412, which will not be repeated here.

[0186] S419 is an optional step.

[0187] S420, the application server sends the first communication data to the calling device through the push server.

[0188] S421, the application server sends the first communication data to the calling device through the connection channel.

[0189] The specific execution process of S420-S421 can refer to the description of S413-S414, which will not be repeated here.

[0190] S420 and S421 are parallel steps.

[0191] S422, the calling device performs deduplication processing on the first communication data sent by the push server and the first communication data sent by the application server through the connection channel, to obtain deduplicated first communication data.

[0192] The specific execution process of S422 can refer to the description of S415, which will not be repeated here.

[0193] S422 is an optional step.

[0194] S423, the calling device responds to the deduplicated first communication data.

[0195] The specific execution process of S423 can refer to the description of S416, which will not be repeated here.

[0196] In an optional implementation, in the case where the first communication data is a media stream, the calling device can output the media stream so that the calling user can feed back the media stream. The content of the calling user's feedback is referred to as second communication data.

[0197] The second communication data can include at least one of the communication signaling 2 and the media stream.

[0198] The calling device can send the second communication data to the application server through the push server, and send the second communication data to the application server through the connection channel. The application server can send the second communication data to the called device through the connection channel in the case where the connection channel with the called device is successfully established, and send the second communication data to the called device through the push server. In the case where the connection channel with the called device is not successfully established, the second communication data is sent to the called device through the push server.

[0199] Correspondingly, the called device can receive the second communication data sent by the push server, receive the second communication data sent by the application server through the connection channel, then perform deduplication processing on the second communication data sent by the push server and the second communication data sent by the application server through the connection channel to obtain deduplicated second communication data, and finally respond to the deduplicated second communication data.

[0200] For details, refer to the processes of S417-S423 described above, which will not be repeated here.

[0201] Through the technical solution shown in FIG. 4, the calling device and the called device can both send communication data to the application server through the double channels, or receive the communication data sent by the application server through the double channels, which can effectively improve the reliability of data transmission and further ensure the smoothness of communication between the terminal and the calling device.

[0202] It should be noted that the above-mentioned manner in which the application server sends communication data to the terminal (calling device or called device) through the double channels can also be applied in other instant messaging (IM) scenarios, such as a red envelope grabbing scenario.

[0203] Taking the red envelope grabbing scenario as an example, assuming that the terminal held by a user who sends a red envelope is a calling device, the terminal held by a user who receives a red envelope is a called device, and the application for sending a red envelope is application A. The calling device can send a red envelope message to the application server of application A through the Push server in the case where a connection channel is established between the calling device and the application server of application A, and send the red envelope message to the application server through the connection channel. Or, the calling device can send the red envelope message to the application server through the connection channel in the case where a connection channel is established between the calling device and the application server of application A. Or, the calling device can send the red envelope message to the application server through the Push server in the case where no connection channel is established between the calling device and the application server of application A.

[0204] After receiving the red envelope message sent by the calling device through the connection channel and the red envelope message sent by the calling device through the Push server, the application server of application A can perform deduplication processing on the red envelope message. Then, the application server of application A can send the red envelope message to the called device through the Push server in the case where a connection channel is established between the called device and the application server of application A, and send the red envelope message to the called device through the connection channel. Or, the application server of application A can send the red envelope message to the called device through the connection channel in the case where a connection channel is established between the called device and the application server of application A. Or, the application server of application A can send the red envelope message to the called device through the Push server in the case where no connection channel is established between the called device and the application server of application A.

[0205] The called device receives the red envelope message sent by the Push server, and after receiving the red envelope message sent by the application server through the connection channel, can perform deduplication processing on the red envelope message. Then, the called device can display the red envelope message, as shown in FIG. 6. The called user can click the red envelope message to start the application A and receive the red envelope in the application A.

[0206] Correspondingly, the called device can generate a red envelope receiving message in response to the receiving operation of the called user on the red envelope. Then, the called device can send the red envelope receiving message to the application server of the application A through the Push server in the case that a connection channel is established between the called device and the application server, and send the red envelope receiving message to the application server through the connection channel. Or, the called device can send the red envelope receiving message to the application server through the connection channel in the case that a connection channel is established between the called device and the application server. Or, the called device can send the red envelope receiving message to the application server through the Push server in the case that no connection channel is established between the called device and the application server. So that the application server can feed back the red envelope receiving message to the calling device.

[0207] For details, reference can be made to the above description, which will not be repeated here.

[0208] Taking the calling user as user A, the calling device as device A, the called user as user B, the called device as device B, the VOIP call message as a call signaling containing TunnelCreate signaling and invite signaling, the response message as CreateAck signaling, the VOIP application as QChat, and the TCP long connection being established between the calling device and the application server, and no TCP long connection being established between the called device and the application server as examples, the method shown in FIG. 4 is further introduced from the perspective of software and hardware interaction, as shown in FIG. 7, which includes the following steps.

[0209] S701. The QChat of the device A sends the call signaling to the application server through the TCP long connection in response to the operation of the user A dialing the QChat phone to the user B.

[0210] The application server is the application server of the QChat application.

[0211] S702. The QChat of the device A sends the call signaling to the Push service of the device A in response to the operation of the user A dialing the QChat phone to the user B.

[0212] S703. The Push service of the device A sends the call signaling to the Push server.

[0213] S704. The Push server sends the call signaling to the application server.

[0214] S705, the application server de-duplicates the call signaling.

[0215] S706, the application server sends a Push message carrying the call signaling to the Push server.

[0216] S707, the Push server sends the Push message to the Push service of device B.

[0217] S708, the Push service of device B pulls up the free connection main process of device B.

[0218] S709, the Push service of device B sends the call signaling carried in the Push message to the free connection of device B.

[0219] S710, the free connection of device B rings in response to the call signaling.

[0220] S711, the free connection of device B establishes a TCP long connection with the application server in response to the call signaling, and sends a CreateAck signaling to the Push service of device B.

[0221] The free connection of device B can send the CreateAck signaling to the Push service of device B through a Push uplink channel.

[0222] S712, the Push service of device B sends the CreateAck signaling to the Push server.

[0223] The Push service of device B can send the CreateAck signaling to the Push server through a Push uplink channel.

[0224] S713, the Push server sends the CreateAck signaling to the application server.

[0225] S714, the application server sends the CreateAck signaling to the free connection of device A through the TCP long connection.

[0226] S715, the application server sends the CreateAck signaling to the Push service of device A through the Push server.

[0227] S716, the Push service of device A sends the CreateAck signaling to the free connection of device A.

[0228] S717, the free connection of device A de-duplicates the CreateAck signaling.

[0229] S718, the free connection of device A rings in response to the CreateAck signaling.

[0230] Through the technical solution, the CreateAck signaling of the called device can be directly sent to the application server through the Push server and finally reaches the device A, without waiting for the TCP long connection to be established and then sending the CreateAck signaling to the application server. In this way, the called device can save the time for waiting for the TCP long connection to be established, improve the response speed of the called device, and effectively shorten the time length for the called device to return the CreateAck signaling to the device A, shorten the time length for the device A and the called device to ring, and effectively improve the connection efficiency between the device A and the called device and enhance the user experience.

[0231] FIG. 8 is a flowchart of a call method provided by an embodiment of the application, which can be executed by a terminal 1 including a VOIP application, and the role of the terminal 1 in the process of the VOIP call is a called device. As shown in FIG. 8, the method includes the following steps.

[0232] S801, receiving a VOIP call message sent by a Push server.

[0233] Specifically, the terminal 2 (a calling device) can send a VOIP call message to an application server of the VOIP application in response to a call operation of a calling user to a called user, the application server can send the VOIP call message to the Push server, and the Push server can send the VOIP call message to the terminal 1 after receiving the VOIP call message.

[0234] S802, sending a response message to the application server of the VOIP application through the Push server in response to the VOIP call message.

[0235] Specifically, the terminal 1 can send a response message to the Push server in response to the VOIP call message after receiving the VOIP call message sent by the Push server, and the Push server can send the response message to the application server after receiving the response message.

[0236] Specifically, the execution steps of S801-S802 can refer to the description in S401-S408 above, which will not be described here.

[0237] Through the technical solution, after receiving the VOIP call message sent by the terminal 2 through the Push server, the terminal 1 can immediately send a response message to the application server through the Push server, so that the application server can send the response message to the terminal 2, and the terminal 2 can send call signaling to the terminal 1 in response to the response message to realize the call. In this way, the process of sending the response message from the terminal 1 to the terminal 2 is more concise and efficient, which can effectively reduce the time length of the terminal 2 receiving the response message, improve the response speed of the terminal 1, and further effectively improve the call connection efficiency between the terminal 2 and the terminal 1, and enhance the user experience.

[0238] In an optional implementation, the terminal 1 can also establish a connection channel with the application server in response to the VOIP call message.

[0239] The specific execution steps can refer to the description in the above S406, which will not be repeated here.

[0240] In an optional implementation, the terminal 1 can also send the first communication data to the application server through the Push server.

[0241] Specifically, the terminal 1 can send the first communication data to the application server through the connection channel in the case of successfully establishing the connection channel with the application server, and send the first communication data to the application server through the Push server; or the terminal 1 can send the first communication data to the application server through the Push server in the case of unsuccessfully establishing the connection channel with the application server. Correspondingly, the application server can perform deduplication processing on the first communication data sent by the Push server and the first communication data sent by the terminal 1 through the connection channel, obtain the deduplicated first communication data, and respond to the deduplicated first communication data.

[0242] The specific execution steps can refer to the description in the above S417-S423, which will not be repeated here.

[0243] In an optional implementation, the terminal 1 can receive the second communication data sent by the Push server. In addition, the terminal 1 can also receive the second communication data sent by the application server through the connection channel. The terminal 1 can perform deduplication processing on the second communication data sent by the Push server and the second communication data sent by the application server through the connection channel, obtain the deduplicated second communication data, and respond to the deduplicated second communication data.

[0244] Specifically, the terminal 2 can send the second communication data to the application server. After receiving the second communication data, the application server can send the second communication data to the terminal 1 through the connection channel in the case that the connection channel is successfully established with the terminal 1, and send the second communication data to the terminal 1 through the Push server; or the application server can send the second communication data to the terminal 1 through the Push server in the case that the connection channel is not successfully established with the terminal 1.

[0245] Correspondingly, in the case that the terminal 1 receives the second communication data sent by the Push server and the second communication data sent by the application server through the connection channel, the terminal 1 can perform deduplication processing on the second communication data sent by the Push server and the second communication data sent by the application server through the connection channel, obtain the deduplicated second communication data, and respond to the deduplicated second communication data.

[0246] The specific execution steps can refer to the description in S417-S423 above, which will not be described here.

[0247] The structure of the terminal provided by the embodiment of the application will be introduced below.

[0248] FIG. 9 shows a structural schematic diagram of a terminal. The terminal can include a processor 910, a charging management module 920, a power management module 921, a battery 922, a mobile communication module 930, a wireless communication module 940, an audio module 950, a loudspeaker 951, a receiver 952, a microphone 953, a key 960, a camera 970, and a display screen 980.

[0249] It can be understood that the structure shown in the embodiment of the application does not constitute a specific limitation on the terminal. In another embodiment of the application, the terminal can include more or fewer components than the diagram, or combine certain components, or split certain components, or different component arrangements. The components shown in the diagram can be implemented in hardware, software, or a combination of software and hardware.

[0250] The processor 910 can include one or more processing units, e.g., an application processor (AP), a modem processor, a graphics processing unit (GPU), an image signal processor (ISP), a controller, a video codec, a digital signal processor (DSP), a baseband processor, and / or a neural-network processing unit (NPU), etc. Different processing units can be independent devices or integrated in one or more processors.

[0251] The processor 910 can also include a memory for storing instructions and data. In some embodiments, the memory in the processor 910 is a cache memory. The memory can hold instructions or data that the processor 910 has just used or is using repeatedly. If the processor 910 needs to use the instructions or data again, it can call them directly from the memory. This avoids repeated access and reduces the processor's 910 waiting time, thus improving the efficiency of the system.

[0252] The charging management module 920 is configured to receive charging input from a charger. The charger can be a wireless charger or a wired charger. In some embodiments of wired charging, the charging management module 920 can receive charging input from a wired charger through a USB interface. In some embodiments of wireless charging, the charging management module 920 can receive wireless charging input through a wireless charging coil of the terminal. The charging management module 920 can charge the battery 922 while also supplying power to the terminal through the power management module 921.

[0253] The power management module 921 is configured to connect the battery 922, the charging management module 920, and the processor 910. The power management module 921 receives input from the battery 922 and / or the charging management module 920 to supply power to the processor 910, the display screen 980, the camera 970, and the wireless communication module 940, etc. In some embodiments, the power management module 921 can be disposed in the processor 910. In other embodiments, the power management module 921 and the charging management module 920 can also be disposed in the same device.

[0254] The wireless communication function of the terminal can be implemented by the mobile communication module 930, the wireless communication module 940, the modem processor, the baseband processor, and the like, thereby implementing the receiving of the VOIP call message sent by the push server, the sending of the first communication data to the application server or the push server, the receiving of the second communication data sent by the application server or the push server, and the like described in the embodiments of the present application.

[0255] The mobile communication module 930 can provide a solution for wireless communication including 2G / 3G / 4G / 5G and the like applied to the terminal. The mobile communication module 930 can include at least one filter, a switch, a power amplifier, a low noise amplifier (LNA), and the like. In some embodiments, at least part of the functional modules of the mobile communication module 930 can be disposed in the processor 910. In some embodiments, at least part of the functional modules of the mobile communication module 930 can be disposed in the same device as at least part of the modules of the processor 910.

[0256] The wireless communication module 940 can provide a solution for wireless communication including wireless local area networks (WLAN), bluetooth (BT), global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC), infrared (IR) technology, and the like applied to the terminal.

[0257] The terminal can implement the display function by the GPU, the display screen 980, and the application processor, and the like. The GPU is a microprocessor for image processing, connected to the display screen 980 and the application processor. The GPU is used to perform mathematical and geometric calculations for graphics rendering. The processor 910 can include one or more GPUs that execute program instructions to generate or change display information.

[0258] The display screen 980 is used to display images, videos, interfaces, and the like. In some embodiments, the terminal can include one or N display screens 980, N being a positive integer greater than 1.

[0259] The terminal can implement the photographing function by the camera 970, the video codec, the GPU, the display screen 980, and the application processor, and the like.

[0260] The camera 970 is used to capture still images or videos. In some embodiments, the terminal can include one or N cameras 970, N being a positive integer greater than 1.

[0261] A video codec is used to compress or decompress digital video. A terminal can support one or more video codecs. In this way, the terminal can play or record videos in multiple encoding formats.

[0262] A terminal can implement audio functions through an audio module 950, a speaker 951, a receiver 952, a microphone 953, an application processor, and the like. For example, music playing, recording, and the like.

[0263] The audio module 950 is used to convert digital audio information into an analog audio signal output, and is also used to convert an analog audio input into a digital audio signal. The audio module 950 can also be used to encode and decode audio signals. In some embodiments, the audio module 950 can be disposed in the processor 910, or part of the functions of the audio module 950 can be disposed in the processor 910.

[0264] The speaker 951, also known as a "loudspeaker", is used to convert an audio electrical signal into a sound signal. The terminal can listen to music or listen to a hands-free call through the speaker 951.

[0265] The receiver 952, also known as a "earpiece", is used to convert an audio electrical signal into a sound signal. When the terminal answers a call or a voice message, the receiver 952 can be held close to the ear to listen to the voice.

[0266] The microphone 953, also known as a "microphone", "sound transducer", is used to convert a sound signal into an electrical signal.

[0267] The keys 960 include a power-on key, a volume key, and the like. The keys 960 can be mechanical keys. They can also be touch keys.

[0268] The structure of the server provided in the embodiments of the present application is described below.

[0269] FIG. 10 exemplarily shows the structure of an application server provided in the embodiments of the present application. The structure of the Push server can refer to the related description of the application server, and will not be described again hereinafter.

[0270] As shown in FIG. 10, the application server can include one or more processors 1001, a memory 1002, a communication interface 1003, a transmitter 1004, a receiver 1005, a coupler 1006, and an antenna 1007. These components can be connected through a bus 1008 or other means, and FIG. 10 takes the connection through the bus as an example. Among them:

[0271] The communication interface 1003 can be used for the application server to communicate with other communication devices, such as terminals. Specifically, the communication interface 1003 can be a 3G communication interface, a 4G communication interface, a 5G communication interface, or a communication interface of a future new radio, etc. Without being limited to a wireless communication interface, the application server can also be configured with a wired communication interface 1003, such as a local access network (LAN) interface. The transmitter 1004 can be used for transmitting processing of signals output by the processor 1001. The receiver 1005 can be used for receiving processing of mobile communication signals received by the antenna 1007.

[0272] In some embodiments of the present application, the transmitter 1004 and the receiver 1005 can be regarded as a wireless modem. In the application server, the number of transmitters 1004 and receivers 1005 can each be one or more. The antenna 1007 can be used to convert electromagnetic energy in a transmission line into electromagnetic waves in free space, or to convert electromagnetic waves in free space into electromagnetic energy in a transmission line. The coupler 1006 is used to divide the mobile communication signals received by the antenna 1007 into multiple paths and distribute them to multiple receivers 1005.

[0273] The memory 1002 is coupled to the processor 1001 and is used to store various software programs and / or sets of instructions. Specifically, the memory 1002 can include a high-speed random access memory, and can also include a non-volatile memory, such as one or more disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. The memory 1002 can store a network communication program that can be used to communicate with one or more additional devices, one or more terminal devices, and one or more network devices.

[0274] In some embodiments of the present application, the memory 1002 can be used to store an implementation program of the call method provided by one or more embodiments of the present application on the application server side. For implementation of the call method provided by one or more embodiments of the present application, please refer to the above embodiments.

[0275] The processor 1001 can be used to read and execute computer-readable instructions. Specifically, the processor 1001 can be used to invoke a program stored in the memory 1002, such as an implementation program of the call method provided by one or more embodiments of the present application on the application server side, and execute instructions contained in the program.

[0276] It should be noted that the application server shown in FIG. 10 is only one implementation manner of the embodiments of the present application, and in actual applications, the application server can also include more or fewer components, which are not limited herein.

[0277] More details about the functions and working principles of the application server can be found in the above-mentioned embodiments, and will not be repeated here.

[0278] The embodiments of the present application can be combined in any way to achieve different technical effects.

[0279] In the above embodiments, all or part of the embodiments can be implemented by software, hardware, firmware or any combination thereof. When implemented by software, all or part of the embodiments can be implemented in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the present application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer readable storage medium or transferred from one computer readable storage medium to another computer readable storage medium, for example, the computer instructions can be transferred from one website, computer, server or data center to another website, computer, server or data center through wired (such as coaxial cable, optical fiber, digital subscriber line) or wireless (such as infrared, wireless, microwave, etc.) mode. The computer readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that includes one or more available media sets. The available media can be magnetic media (for example, floppy disk, hard disk, magnetic tape), optical media (for example, DVD), or semiconductor media (for example, solid state disk (SSD)) and the like.

[0280] Those of ordinary skill in the art can understand that all or part of the processes in the above-mentioned embodiments can be implemented by a computer program to instruct the relevant hardware, which can be stored in a computer readable storage medium. When the program is executed, it can include the processes of the above-mentioned embodiments. The aforementioned storage medium includes ROM or random access memory (RAM), magnetic disk or optical disk and various program code storage media.

[0281] In summary, the above only describes the embodiments of the present application, and is not used to limit the protection scope of the present application. Any modification, equivalent replacement, improvement, etc. made according to the disclosure of the present application shall be included in the protection scope of the present application.

Claims

1. A call method characterized by, The application is applied to a terminal, the terminal comprising a voice over internet protocol (VOIP) application, and the method comprises: receiving a VOIP call message sent by a push server; in response to the VOIP call message, sending a response message to an application server of the VOIP application through the push server.

2. The method of claim 1, wherein, The method further comprises: in response to the VOIP call message, establishing a connection channel with the application server.

3. The method according to claim 1 or 2, characterized in that, The method further comprises: sending first communication data to the application server through the push server.

4. The method of claim 3, wherein, The sending of the first communication data to the application server through the push server comprises: in a case where the connection channel with the application server is successfully established, sending the first communication data to the application server through the connection channel and sending the first communication data to the application server through the push server; or in a case where the connection channel with the application server is not successfully established, sending the first communication data to the application server through the push server.

5. The method according to claim 3 or 4, characterized in that, The first communication data comprises at least one of: communication signaling; media stream.

6. The method according to any one of claims 1-5, characterized in that, The method further comprises: receiving second communication data sent by the push server.

7. The method of claim 6, wherein, The method further comprises: receiving second communication data sent by the application server through the connection channel; performing deduplication processing on the second communication data sent by the push server and the second communication data sent by the application server through the connection channel to obtain deduplicated second communication data; responding to the deduplicated second communication data.

8. The method according to claim 6 or 7, characterized in that, The second communication data comprises at least one of: communication signaling; media stream.

9. The method according to any one of claims 1-8, characterized in that, The connection channel between the terminal and the application server is a transmission control protocol (TCP) long connection.

10. A talk method, characterized by, The application is applied to a voice over internet protocol (VOIP) application server, and the method comprises: sending a VOIP call message to a terminal through a push server; receiving a response message sent by the push server.

11. The method of claim 10, wherein, The method further comprises: receiving first communication data sent by the push server.

12. The method of claim 11, wherein, The method further comprises: receiving first communication data sent by the terminal through the connection channel; performing deduplication processing on the first communication data sent by the push server and the first communication data sent by the terminal through the connection channel to obtain deduplicated first communication data; responding to the deduplicated first communication data.

13. The method according to claim 11 or 12, characterized in that, The first communication data comprises at least one of: communication signaling; media stream.

14. The method according to any one of claims 10-13, characterized in that, The method further comprises: sending second communication data to the terminal through the push server.

15. The method of claim 14, wherein, The sending of the second communication data to the terminal through the push server comprises: in a case where the connection channel with the terminal is successfully established, sending the second communication data to the terminal through the connection channel and sending the second communication data to the terminal through the push server; or in a case where the connection channel with the terminal is not successfully established, sending the second communication data to the terminal through the push server.

16. The method according to claim 14 or 15, characterized in that The second communication data comprises at least one of: communication signaling; Media stream.

17. The method according to any one of claims 10-16, characterized by, The connection channel between the terminal and the application server is a transmission control protocol (TCP) long connection.

18. A talk method, characterized by, The method is applied to a push server, and the method comprises: receiving a VOIP call message sent by an application server of a VOIP application; sending the VOIP call message to a terminal; receiving a response message sent by the terminal; sending the response message to the application server.

19. The method of claim 18, wherein, The method further comprises: receiving first communication data sent by the terminal; sending the first communication data to the application server.

20. The method of claim 19, wherein, The first communication data comprises at least one of the following: communication signaling; media stream.

21. The method of any one of claims 18-20, wherein, The method further comprises: receiving second communication data sent by the application server; sending the second communication data to the terminal.

22. The method of claim 21, wherein, The second communication data comprises at least one of the following: communication signaling; media stream.

23. A communications device, characterized by The apparatus is located in a terminal, and comprises functional units for performing the method according to any one of claims 1-9; wherein the actions performed by the functional units are implemented by hardware or by hardware executing corresponding software.

24. A communications device, characterized by The apparatus is located in an application server, and comprises functional units for performing the method according to any one of claims 10-17; wherein the actions performed by the functional units are implemented by hardware or by hardware executing corresponding software.

25. A communications device, characterized by The apparatus is located in a push server, and comprises functional units for performing the method according to any one of claims 18-22; wherein the actions performed by the functional units are implemented by hardware or by hardware executing corresponding software.

26. A communication system, characterized by The communication system comprises a terminal, an application server and a push server; The terminal is configured to perform the method according to any one of claims 1-9; The application server is configured to perform the method according to any one of claims 10-17; The push server is configured to perform the method according to any one of claims 18-22.

27. A computer-readable storage medium, characterized in that, The computer program product comprises instructions for causing a computer or a processor to perform the method according to any one of claims 1-9, or the method according to any one of claims 10-17, or the method according to any one of claims 18-22.

28. A computer program product, characterised in that, The computer program product comprises instructions for causing a computer or a processor to perform the method according to any one of claims 1-9, or the method according to any one of claims 10-17, or the method according to any one of claims 18-22.

Citation Information

Patent Citations

  • Session issuing method and system

    CN103051863A

  • Message safety pushing method and device based on optimization wireless protocol

    CN103458367A

  • Service push implementation method and device

    CN104468556A

  • Message pushing processing method, message pushing processing device, pushing server and application server

    CN105323205A

  • Call request response method and device, server, terminal and storage medium

    CN110650259A