Calling method, electronic device, and system

By caching the called device's communication capabilities locally on the calling device during a VoIP call and asynchronously updating the call request, the call latency problem caused by excessive time spent querying the cloud server in VoIP calls is solved, thereby improving call success rate and user experience.

WO2026153439A1PCT designated stage Publication Date: 2026-07-23HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
HUAWEI TECH CO LTD
Filing Date
2026-01-15
Publication Date
2026-07-23

AI Technical Summary

Technical Problem

In VoIP calls, the calling device may take too long to query the called device's communication capabilities from the VoIP application's cloud server, leading to increased call latency and potentially even call failure.

Method used

The calling device caches the device information of the login server locally, and when a call operation is detected, it directly obtains the communication capabilities of the called device from the local machine instead of querying from the cloud server. This, combined with an asynchronous update mechanism, optimizes the call request.

Benefits of technology

It reduces call latency for VoIP calls, improves call completion rate and user experience, and reduces the impact of network environment quality on communication capability acquisition.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2026072895_23072026_PF_FP_ABST
    Figure CN2026072895_23072026_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed in the embodiments of the present application are a calling method, an electronic device, and a system. The method is applicable to a first communication system, which comprises a first electronic device, a second electronic device and a first server, wherein the first electronic device logs in to the first server by means of a first account, and the second electronic device logs in to the first server by means of a second account. The first electronic device may: at a first time, download first information from the first server, wherein the first information is information of devices corresponding to one or more accounts logging in to the first server; at a second time, detect a user operation of calling the second account by means of the first account, wherein the second time is later than the first time; in response to the user operation, acquire second information from the first information, wherein the second information is used for the first electronic device to establish a VOIP call with the second electronic device; and send a VOIP call request to the first server, wherein the VOIP call request comprises the first account, the second account and the second information.
Need to check novelty before this filing date? Find Prior Art

Description

A calling method, electronic device and system

[0001] This application claims priority to Chinese Patent Application No. 202510080663.7, filed with the State Intellectual Property Office of China on January 17, 2025, entitled “A Calling Method, Electronic Device and System”, the entire contents of which are incorporated herein by reference. Technical Field

[0002] This application relates to the field of terminal technology, and in particular to a calling method, electronic device and system. Background Technology

[0003] With the development of technology, electronic devices have gradually become an indispensable tool in people's lives. Electronic devices can include Voice Over Internet Protocol (VoIP) applications (APPs), allowing users to make VoIP calls. VoIP is a technology primarily based on IP telephony with corresponding value-added services. It is based on the packet-switched and digital transmission technology of IP. In a VoIP call, the voice signal is converted into digital data packets at the sending end, and these digital data packets are then transmitted over the internet. The receiving end then converts the digital data packets back into a voice signal, thus enabling a VoIP call between the sending and receiving ends. Common VoIP applications include Changlian. TM ,WeChat TM FaceTime TM wait.

[0004] Currently, when a user makes a VoIP call, the calling device (an electronic device with a VoIP application client installed) needs to obtain the communication capabilities of one or more called devices (electronic devices with a VoIP application client installed). This includes obtaining basic information fields such as the called device's login account to the VoIP application's cloud server (i.e., the called device's user account) and its identifier; obtaining the called device's public key information for key negotiation; and obtaining the called device's supported resolutions for video call resolution negotiation. This ensures a smooth VoIP call. To obtain the communication capabilities of one or more called devices, the calling device typically needs to query the VoIP application's cloud server for these capabilities. However, querying the VoIP application's cloud server for the communication capabilities of one or more called devices can be time-consuming, increasing call latency. Furthermore, if the query request sent by the calling device to the cloud server times out, it may even cause the VoIP call to fail. Summary of the Invention

[0005] This application provides a calling method, electronic device, and system. The method can be applied to a first communication system, which includes a first electronic device, a first server, and a second electronic device. The first electronic device logs into the first server using a first account, and the second electronic device logs into the first server using a second account. At a first time, the first electronic device can download first information from the first server. This first information is the information (i.e., communication capabilities) of devices corresponding to one or more accounts logged into the first server. At a second time, the first electronic device can detect a user operation calling the second account using the first account; the second time is later than the first time. In response to the user operation, the first electronic device can obtain second information from the first information. This second information can be used by the first electronic device and the second electronic device to establish a VoIP call. Finally, the first electronic device can send a VoIP call request to the first server. This VoIP call request includes the first account, the second account, and the second information. By using the method provided in this application, the electronic device can reduce the call latency of VoIP calls and improve the call completion rate of VoIP calls.

[0006] In a first aspect, this application provides a calling method applied to a first electronic device. The method includes: at a first time, downloading first information from a first server, the first information being information about devices corresponding to one or more accounts logged into the first server; at a second time, detecting a user operation calling a second account through the first account; wherein the second time is later than the first time, the first account is the account used by the first electronic device to log into the first server, and the second account is the account used by the second electronic device to log into the first server; in response to the user operation, obtaining second information from the first information, the second information being used by the first electronic device and the second electronic device to establish a Voice over Internet Protocol (VoIP) call; and sending a VoIP call request to the first server, the VoIP call request including the first account, the second account, and the second information.

[0007] The first electronic device can be the electronic device 100 (calling device) shown in Figure 4A; the second electronic device can be the electronic device 200 (one or more called devices); the first server can be the server 300 (cloud server of the VoIP application) shown in Figure 4B; the first account can be the account used by the electronic device 100 to log in to the server 300 (calling account); the second account can be the account used by the electronic device 200 to log in to the server 300 (called account); the first information can be the information (i.e., communication capabilities) of the device corresponding to one or more accounts logging into the server 300. For example, the first information can include the information (i.e., communication capabilities) of the device corresponding to the user account of the contact registered on the VoIP application in the address book of the electronic device 100; the second information can be the information (i.e., communication capabilities) of one or more called devices (electronic devices 200); the first time can be the time when the electronic device 100 registers on the server 300; from the user's perspective, the first time can also be the time when the user registers in the VoIP application; from the software perspective of network communication, the first time can also be the time when the client of the VoIP application registers on the server of the VoIP application; the second time can be the time when the user of the electronic device 100 initiates a VoIP call to the second account through the first account.

[0008] By using the method provided in the first aspect, when a user-initiated call is detected, the electronic device 100 can directly obtain the called device's communication capabilities from the locally cached first information, instead of querying the called device's communication capabilities from the cloud server. This saves a significant amount of time spent calling the cloud server interface to request and query the called device's communication capabilities, reducing call latency for VoIP calls. Furthermore, since the called device's communication capabilities are directly obtained by the electronic device 100 from the local cache, the acquisition of the called device's communication capabilities is not affected by network environment quality, thereby improving the call completion rate of VoIP calls and thus enhancing the user experience.

[0009] In conjunction with the first aspect, in some embodiments, the second information includes the identifier of the second electronic device, indication information that the second electronic device supports audio calls, and indication information that the second electronic device participates in resonance, wherein the electronic devices participating in resonance log in to the first server through the same account.

[0010] In conjunction with the first aspect, in some embodiments, the second information further includes one or more of the following: the public key of the second electronic device, the version number of the public key, indication information on whether the second electronic device supports video calls, the video call resolution supported by the second electronic device, and indication information on whether the second electronic device is in Do Not Disturb mode.

[0011] In some embodiments, the second information may include, but is not limited to, the identifier of the electronic device 200, indication information that the electronic device 200 supports audio calls, and indication information that the electronic device 200 participates in resonance. Optionally, the second information may also include one or more of the following: the public key and version number of the public key of the electronic device 200, indication information that the electronic device 200 supports video calls and the video call resolution supported by the electronic device 200, indication information that the electronic device 200 supports receiving or sending messages, feature indication information such as whether the electronic device 200 supports screen sharing, indication information that the electronic device 200 is in Do Not Disturb mode, the type of the electronic device 200, the last login time of the electronic device 200, and the SDK version of the electronic device 200. It is understood that the content of the second information may also be other, and the embodiments of this application do not limit it.

[0012] In other embodiments, where the second information includes indications that the electronic device 200 does not support audio calls, the second information may also include, but is not limited to, the identifier of the electronic device 200, indications that the electronic device 200 supports video calls and the video call resolution supported by the electronic device 200, and indications that the electronic device 200 participates in resonance. Optionally, the second information may also include one or more of the following: the public key and version number of the public key of the electronic device 200, indications of whether the electronic device 200 supports receiving or sending messages, feature indications such as whether the electronic device 200 supports screen sharing, indications of whether the electronic device 200 is in Do Not Disturb mode, the type of the electronic device 200, the last login time of the electronic device 200, and the SDK version of the electronic device 200. It is understood that the content included in the second information may also be other, and the embodiments of this application do not limit this.

[0013] It is understood that since the devices indicated by the first information are all electronic devices with communication capabilities, and the second information is obtained from the first information, the devices indicated by the second information are also all electronic devices with communication capabilities. In some embodiments, where the communication attributes of a device include indication information on whether it has communication capabilities, the communication attributes of the device in the second information may also include indication information on having communication capabilities.

[0014] In conjunction with the first aspect, in some embodiments, the method further includes: at a second time, in response to a user operation, downloading second information from a first server; if the second information downloaded at the second time is updated compared to the second information obtained from the first information, then updating the VoIP call request based on the second information downloaded at the second time.

[0015] Specifically, electronic device 100 can send a request to server 300 to obtain second information through a background thread. In response to the request from electronic device 100, server 300 can return the second information to electronic device 100.

[0016] It should be noted that the second information obtained by electronic device 100 from server 300 may be different from the second information obtained from the first information. This is because the second information obtained by electronic device 100 from the first information is not updated in real time, while the second information obtained by electronic device 100 from server 300 is updated in real time. Therefore, the second information obtained by electronic device 100 from server 300 is more timely than the second information obtained from the first information.

[0017] In this way, when a user initiates a call, the electronic device 100 can also asynchronously obtain the latest communication capabilities of the called device from the server 300 through a background thread, and compare the communication capabilities of the called device obtained directly from the local cache with the communication capabilities of the called device obtained asynchronously from the server 300. If they are inconsistent, the electronic device 100 can update the VOIP call request sent to the server 300 according to the latest communication capabilities of the called device to ensure the correctness of the VOIP call function.

[0018] In conjunction with the first aspect, in some embodiments, if the second information downloaded at the second time is updated compared to the second information obtained from the first information, the VoIP call request is updated based on the second information downloaded at the second time. Specifically, this includes: if the second information downloaded at the second time adds information about devices logging into the first server with a second account, then an additional VoIP call request is sent to the first server, the additional VoIP call request including the first account, the second account, and the information of the newly added device; if the second information downloaded at the second time reduces the information about devices logging into the first server with a second account, then the VoIP call request is canceled from being sent to the first server, the canceled VoIP call request including the first account, the second account, and the information of the reduced device; if the second information downloaded at the second time is updated in content, then a new VoIP call request is sent to the first server, the new VoIP call request including the first account, the second account, and the updated second information.

[0019] In some embodiments, canceling a VoIP call request specifically means that electronic device 100 sends a signaling message to server 300 to cancel the VoIP call, causing server 300 to release resources allocated to the co-ringing device with reduced call volume. In some embodiments, if electronic device 100 does not cancel the VoIP call request to server 300, after server 300 receives a VoIP call request containing information about the reduced co-ringing device, server 300 may not forward the VoIP call request to electronic device 200.

[0020] In some embodiments, resending a VoIP call request specifically means that the electronic device 100 cancels the resending of the previous VoIP call request to the server 300. The previous VoIP call request may include the first account, the second account, and the information of the previous ringing device. After canceling the resending of the previous VoIP call request, the electronic device 100 also resends the updated VoIP call request to the server 300. The updated VoIP call request may include the first account, the second account, and the information of the updated ringing device.

[0021] In conjunction with the first aspect, in some embodiments, the content includes one or more of the following: the public key of the second electronic device, the version number of the public key, indication information on whether the second electronic device supports video calls, and the video call resolution supported by the second electronic device, wherein the range of video call resolutions supported by the updated second electronic device does not overlap with the range of video call resolutions supported by the previous second electronic device.

[0022] In conjunction with the first aspect, in some embodiments, the method further includes: if the indication information of the second electronic device supporting audio calls in the second information downloaded at the second time is updated to the indication information of not supporting audio calls, then the method further cancels the sending of the VOIP call request to the first server, wherein the canceled VOIP call request includes the first account, the second account, and the updated second information.

[0023] In some embodiments, canceling a VoIP call request specifically means that electronic device 100 sends a signaling message to server 300 to cancel the VoIP call, causing server 300 to release resources allocated to the ringing device that has lost audio call capability. In some embodiments, if electronic device 100 does not cancel the VoIP call request to server 300, after server 300 receives a VoIP call request containing indication information that audio call is not supported, server 300 may not forward the VoIP call request to electronic device 200.

[0024] In conjunction with the first aspect, in some embodiments, the method further includes: if the video call resolution supported by the second electronic device in the second information downloaded at the second time has been updated, and the range of video call resolutions supported by the updated second electronic device overlaps with the range of video call resolutions supported by the second electronic device before the update, then continue to send a VoIP call request to the first server, the VoIP call request including a first account, a second account, and the second information obtained from the first information.

[0025] It should be noted that if the range of video call resolutions supported by the updated electronic device 200 overlaps with the range of video call resolutions supported by the electronic device 200 before the update, the electronic device 100 can continue the VoIP call process. That is to say, the electronic device 100 can continue to send VoIP call requests to the server 300. The second information contained in the VoIP call request is still the second information before the update (i.e., the second information obtained by the electronic device 100 from the first information).

[0026] In conjunction with the first aspect, in some embodiments, the method further includes: if the second information downloaded at a second time is updated compared to the second information obtained from the first information, then the first information is updated based on the second information downloaded at the second time.

[0027] In this way, electronic device 100 can initiate calls based on the latest device communication capabilities, thereby avoiding call error correction caused by communication capability discrepancies and optimizing the user experience. Furthermore, in addition to VoIP call communication capabilities, the message sending and receiving capabilities within VoIP applications are also updated in a timely manner.

[0028] Secondly, this application provides a calling method applied to a first server. The method includes: receiving a request from a first electronic device to obtain first information at a first time, wherein the first information is information about devices corresponding to one or more accounts logged into the first server; sending the first information to the first electronic device; and receiving a VoIP call request from the first electronic device, wherein the VoIP call request includes a first account, a second account, and second information; wherein the second information is obtained by the first electronic device from the first information in response to a user operation detected at a second time that calls the second account through the first account, and the second information is used by the first electronic device to establish a VoIP call with the second electronic device; the second time is later than the first time; the first account is the account used by the first electronic device to log into the first server; and the second account is the account used by the second electronic device to log into the first server.

[0029] The first electronic device can be the electronic device 100 (calling device) shown in Figure 4A; the second electronic device can be the electronic device 200 (one or more called devices); the first server can be the server 300 (cloud server of the VoIP application) shown in Figure 4B; the first account can be the account used by the electronic device 100 to log in to the server 300 (calling account); the second account can be the account used by the electronic device 200 to log in to the server 300 (called account); the first information can be the information (i.e., communication capabilities) of the device corresponding to one or more accounts logging into the server 300. For example, the first information can include the information (i.e., communication capabilities) of the device corresponding to the user account of the contact registered on the VoIP application in the address book of the electronic device 100; the second information can be the information (i.e., communication capabilities) of one or more called devices (electronic devices 200); the first time can be the time when the electronic device 100 registers on the server 300; from the user's perspective, the first time can also be the time when the user registers in the VoIP application; from the software perspective of network communication, the first time can also be the time when the client of the VoIP application registers on the server of the VoIP application; the second time can be the time when the user of the electronic device 100 initiates a VoIP call to the second account through the first account.

[0030] By using the method provided in the second aspect, the server 300 can send the first information to the electronic device 100 in advance, so that the electronic device 100 can cache the first information in the local database in advance. Furthermore, when the electronic device 100 detects that the user has initiated a call, it can directly obtain the communication capabilities of the called device from the locally cached first information, thereby reducing the call latency of VoIP calls and improving the call completion rate of VoIP calls.

[0031] In conjunction with the second aspect, in some embodiments, the second information includes the identifier of the second electronic device, indication information that the second electronic device supports audio calls, and indication information that the second electronic device participates in resonance, wherein the electronic devices participating in resonance log in to the first server through the same account.

[0032] In conjunction with the second aspect, in some embodiments, the second information further includes one or more of the following: the public key of the second electronic device, the version number of the public key, indication information on whether the second electronic device supports video calls, the video call resolution supported by the second electronic device, and indication information on whether the second electronic device is in Do Not Disturb mode.

[0033] In conjunction with the second aspect, in some embodiments, the method further includes: receiving a request from the first electronic device to obtain second information at a second time, and sending the second information to the first electronic device.

[0034] In this way, server 300 can push the latest communication capabilities of the called device to electronic device 100, so that electronic device 100 can compare the communication capabilities of the called device obtained directly from the local cache with the communication capabilities of the called device obtained asynchronously from server 300. If they are inconsistent, electronic device 100 can update the VOIP call request sent to server 300 according to the latest communication capabilities of the called device to ensure the correctness of the VOIP call function.

[0035] Thirdly, this application provides a communication system, which includes a first electronic device and a second electronic device; wherein there is a communication connection between the first electronic device and the second electronic device; the first electronic device is the electronic device described in any one of the second aspects above, and the second electronic device is the electronic device described in any one of the third or fourth aspects above.

[0036] Fourthly, this application provides an electronic device, which includes a processor and a memory; wherein the memory is coupled to the processor and is used to store a computer program, and when the processor executes the computer program, the electronic device performs the method of either the first or second aspect described above.

[0037] Fifthly, this application provides a computer-readable storage medium storing a computer program that is executed by a processor to implement the method described in either the first or second aspect above.

[0038] Sixthly, this application provides a computer program product that, when executed by a processor, implements the method described in either the first or second aspect above.

[0039] In a seventh aspect, this application provides a chip including a processor and a memory, wherein the memory is used to store a computer program, and the processor is used to execute the computer program stored in the memory, causing the chip to perform the method described in either the first or second aspect above.

[0040] The solutions provided in the third to seventh aspects above are used to implement or cooperate with the methods provided in the first to second aspects above, and therefore can achieve the same or corresponding beneficial effects as the methods in the first to second aspects, which will not be elaborated here. Attached Figure Description

[0041] Figures 1A and 1B are schematic diagrams of a set of interfaces for users to make VoIP calls according to embodiments of this application;

[0042] Figure 2 is a flowchart illustrating a calling method based on the calling device querying the communication capabilities of the called device from a cloud server according to an embodiment of this application.

[0043] Figure 3 is a schematic diagram of a communication system provided in an embodiment of this application;

[0044] Figure 4A is a schematic diagram of the structure of an electronic device 100 provided in an embodiment of this application;

[0045] Figure 4B is a schematic diagram of the structure of a server 300 provided in an embodiment of this application;

[0046] Figure 5 is a flowchart illustrating a calling method based on the calling device obtaining the communication capabilities of the called device from the local cache, according to an embodiment of this application. Detailed Implementation

[0047] The terminology used in the embodiments of this application is for the purpose of describing particular embodiments only and is not intended to be a limitation of this application.

[0048] With the development of technology, electronic devices have gradually become an indispensable tool in people's lives. Electronic devices can include Voice Over Internet Protocol (VoIP) applications (APPs), allowing users to make VoIP calls. VoIP is a technology primarily based on IP telephony and offering corresponding value-added services. It is based on the packet-switched and digital transmission technology of IP. In a VoIP call, the voice signal is converted into digital data packets at the sending end, and these digital data packets are then transmitted over the internet. The receiving end then converts the digital data packets back into a voice signal, thus enabling a VoIP call between the sending and receiving ends.

[0049] In scenarios where a user makes a VoIP call, before initiating the call, the calling device (an electronic device with a VoIP application client installed) needs to obtain the communication capabilities of one or more called devices (electronic devices with a VoIP application client installed). This includes obtaining basic information fields such as the called device's login account to the VoIP application's cloud server (i.e., the called device's user account) and its identifier; obtaining the called device's public key information for key negotiation; and obtaining the called device's supported resolutions for video call resolution negotiation. This allows the calling device to initiate a correct VoIP call to one or more called devices based on their communication capabilities, ensuring a smooth VoIP call. In one implementation, the calling device typically needs to query the communication capabilities of one or more called devices from the VoIP application's cloud server. For VoIP calls supporting simultaneous ringing of multiple called devices, the calling device needs to obtain the communication capabilities of the ringing devices from the VoIP application's cloud server before making the call. It should be noted that "simultaneous ringing" can refer to ringing at the same time or almost simultaneously. For example, the ringing time deviation between multiple devices ringing simultaneously is less than a preset threshold (e.g., 0.1 seconds). These devices can be one or more electronic devices logged into a cloud server using the same called party account for the VoIP application, and these devices have VoIP calling functionality enabled. However, the time it takes for the calling device to send a query request to the cloud server receiving the request and / or for the cloud server to return the query result to the calling device receiving the result is closely related to the quality of the network environment. In other words, the time it takes to query the called party's communication capabilities from the cloud server depends on the quality of the network environment. Specifically, the worse the network quality, the longer the time it takes for the calling device to send a query request to the cloud server and / or for the cloud server to return the query result to the calling device receiving the result; that is, the longer the time it takes to query the called party's communication capabilities from the cloud server. For example, under typical poor network conditions (e.g., 800ms latency, 250ms jitter, and 20% packet loss in both uplink and downlink), the time it takes for the calling device to query the called device's communication capabilities from the cloud server can be as high as 6 seconds or more. This time spent querying the called device's communication capabilities from the cloud server affects the overall call latency of the VoIP call; the longer the query takes, the longer the VoIP call latency will be. Furthermore, if the query takes too long (i.e., exceeds a preset threshold (e.g., 6 seconds)), the query request sent by the calling device to the cloud server will time out and become invalid, which may even cause the VoIP call to fail to initiate.

[0050] Figures 1A and 1B exemplarily illustrate a set of user interfaces for making VoIP calls according to embodiments of this application.

[0051] For example, as shown in FIG1A, the calling device may display a user interface 110, which may be a contact interface of a VoIP application. The user interface 110 may include a list of dialable contact accounts 111, which may include one or more dialable contact accounts (e.g., contact account Bob, contact account Linda). The contact account list 111 may include one or more controls corresponding to each dialable contact account, and these one or more controls may include, but are not limited to, audio call control 112, video call control 113, and message control 114. The audio call control 112 can be used to initiate a VoIP audio call request from the calling account (i.e., the user account of the calling device) to the called account (i.e., the contact account corresponding to the audio call control 112). The video call control 113 can be used to initiate a VoIP video call request from the calling account to the called account (i.e., the contact account corresponding to the video call control 113). The message control 114 can be used to trigger the viewing of network messages of the VoIP application. These network messages can include network messages sent from the calling account to the called account (i.e., the contact account corresponding to the message control 114) and network messages received from the called account (i.e., the contact account corresponding to the message control 114) by the calling account. It should be noted that both the contact account and the calling account are user accounts of the VoIP application. These user accounts can be generated by the VoIP application or obtained by the VoIP application from the address book, where the address book is an application used to manage contact information on a device. The user account of the VoIP application can be a mobile phone number or other information; this embodiment does not impose any restrictions on this.

[0052] In some embodiments, the calling device can receive an operation to initiate a VoIP call (i.e., a VoIP call) from the calling account to the called account (i.e., the dialable contact account) (e.g., clicking the audio call control 112 corresponding to the contact account Bob). In response to this operation, the calling device can query the communication capabilities of one or more called devices from the cloud server of the VoIP application and display the call waiting interface of the VoIP application (e.g., the user interface 120 shown in Figure 1B). It should be noted that the aforementioned one or more called devices can also be referred to as ringing devices. Ringing can refer to simultaneous or nearly simultaneous ringing, for example, the ringing time deviation between multiple ringing devices is less than a preset threshold (e.g., 0.1 seconds). The aforementioned one or more called devices can be one or more electronic devices that are logged into the cloud server of the VoIP application through the same called account, and these one or more called devices have enabled the VoIP calling function.

[0053] For example, as shown in Figure 1B, the calling device can display a user interface 120, which can be a call waiting interface for a VoIP application. This user interface 120 can include a prompt message 121 (e.g., "VoIP voice is calling"), which can be used to prompt the user to wait for the VoIP call to connect. In some examples, the prompt message may not be displayed on the interface but conveyed to the user in other ways, such as through voice announcement. It should be noted that the time spent by the user waiting for the VoIP call to connect on the call waiting interface of the VoIP application can include the time spent by the calling device querying the communication capabilities of one or more called devices from the VoIP application's cloud server. As mentioned above, the time spent querying the communication capabilities of called devices from the cloud server depends on the quality of the network environment. Specifically, the worse the network environment, the longer the time spent querying the communication capabilities of called devices from the cloud server, and the longer the VoIP call latency will be. For example, in a typical poor network environment (e.g., 800ms latency, 250ms jitter, and 20% packet loss in both uplink and downlink), the calling device can take more than 6 seconds to query the called device's communication capabilities from the cloud server. Therefore, in a poor network environment, users have a poor experience in initiating VoIP calls through VoIP applications.

[0054] Figure 2 exemplarily illustrates the specific flow of a call method provided in this application embodiment, which involves a calling device querying the communication capabilities of a called device from a cloud server. This method can be applied to a communication system including a calling device, a cloud server for a VoIP application (i.e., a cloud server), and one or more called devices. In this communication system, the calling device can log in to the cloud server for the VoIP application using a calling account, and one or more called devices can log in to the cloud server for the VoIP application using a called account. It should be noted that, from the user's perspective, the device logging in to the cloud server for the VoIP application using a user account can mean that the user logs in to the VoIP application using a user account; from the software perspective of network communication, the device logging in to the cloud server for the VoIP application using a user account can mean that the client of the VoIP application on the device logs in to the server of the VoIP application using a user account.

[0055] As shown in Figure 2, the method may include:

[0056] S101. Upon detecting a user operation calling the called account, the calling device sends a request to the cloud server to obtain the communication capabilities of the called device.

[0057] S102, The cloud server returns the communication capabilities of the called device to the calling device.

[0058] In some embodiments, upon detecting a user operation where a calling device calls a called account through a calling account, the calling device can download the communication capabilities of one or more called devices from the cloud server of the VoIP application. These communication capabilities can be used by the calling device to establish a VoIP call with one or more called devices, allowing the calling device to send a VoIP call request to the one or more called devices through the cloud server of the VoIP application. Specifically, the calling device can send a request to the cloud server to obtain the communication capabilities of one or more called devices through a service in the VoIP application. In response to the request from the calling device to obtain the communication capabilities of one or more called devices, the cloud server can return the communication capabilities of one or more called devices to the calling device.

[0059] It should be noted that the description of the communication capabilities of one or more called devices can be found in the relevant content of the second information in the subsequent embodiments, which will not be elaborated here.

[0060] In some embodiments, after acquiring the communication capabilities of one or more called devices, the calling device may invoke the dialing interface of a service in a VoIP application. When invoking the dialing interface, the calling device may pass the communication capabilities of one or more called devices to a service in the VoIP application, enabling the service in the VoIP application to initiate a call to one or more called devices based on their communication capabilities.

[0061] S103. The calling device sends a VoIP call request to the cloud server.

[0062] S104. The cloud server forwards the VoIP call request to the called device.

[0063] In some embodiments, after acquiring the communication capabilities of one or more called devices, the calling device can send a VoIP call request to the cloud server through services in a VoIP application. This VoIP call request includes the calling account, the called account, and the communication capabilities of one or more called devices. It should be noted that there can be one or more VoIP call requests, and the number of VoIP call requests can correspond one-to-one with the number of called devices. One VoIP call request can contain the communication capabilities of one called device. In this embodiment, the calling device can initiate a call to one or more called devices; that is, the calling device can send a VoIP call request to one or more called devices through the cloud server. Specifically, the calling device can send a VoIP call request to the cloud server, and this VoIP call request can contain the communication capabilities of one or more called devices. After receiving the VoIP call request from the calling device, the cloud server can forward the VoIP call request to one or more called devices based on their communication capabilities. After receiving the forwarded VoIP call request from the cloud server, one or more called devices can ring the incoming call notification, at which point the VoIP call is successfully connected.

[0064] It should be noted that, as mentioned above, the time taken from the calling device sending a query request to the cloud server receiving the query request and / or from the cloud server returning the query result to the calling device receiving the query result is closely related to the quality of the network environment. Specifically, the worse the network environment, the longer the time taken from the calling device sending a query request to the cloud server receiving the query request and / or from the cloud server returning the query result to the calling device receiving the query result. Therefore, the time taken for the calling device to query the communication capability of the called device from the cloud server mainly occurs between steps S101 and S102. It can be understood that the longer the time taken from the calling device sending a query request to the cloud server receiving the query request and / or from the cloud server returning the query result to the calling device receiving the query result, the longer the time taken for the calling device to query the communication capability of the called device from the cloud server. Furthermore, the time it takes for the calling device to query the called device's communication capabilities from the cloud server affects the overall call latency of the VoIP call. The longer the query takes, the longer the VoIP call latency will be. Moreover, if the query takes too long (i.e., longer than a preset threshold (e.g., 6 seconds)), the query request sent by the calling device to the cloud server will time out, potentially causing the VoIP call to fail.

[0065] To address the aforementioned issues, this application provides a calling method, electronic device, and system. The method can be applied to a first communication system, which includes a first electronic device, a first server, and a second electronic device. The first electronic device logs into the first server using a first account, and the second electronic device logs into the first server using a second account. At a first time, the first electronic device can download first information from the first server. This first information is the information (i.e., communication capabilities) of devices corresponding to one or more accounts logged into the first server. At a second time, the first electronic device can detect a user operation calling the second account using the first account; the second time is later than the first time. In response to the user operation, the first electronic device can obtain second information from the first information. This second information can be used to establish a VoIP call between the first and second electronic devices. Finally, the first electronic device can send a VoIP call request to the first server. This VoIP call request includes the first account, the second account, and the second information. By using the method provided in this application, the electronic device can reduce the call latency of VoIP calls and improve the call completion rate of VoIP calls.

[0066] It should be noted that the first electronic device can be the aforementioned calling device, the second electronic device can be one or more of the aforementioned called devices, the first server can be a cloud server of the VoIP application, the first account can be the aforementioned calling account, the second account can be the aforementioned called account, and the second information can be the information (i.e., communication capabilities) of the aforementioned one or more called devices.

[0067] It should be noted that one or more accounts can be user accounts of a VoIP application. In some embodiments, these one or more accounts can be generated by the VoIP application. In other embodiments, the one or more accounts can originate from the address book, which are user accounts of contacts in the address book of the first electronic device. For example, the first information may include information about the device (i.e., communication capabilities) corresponding to the user account of a contact registered on the first server in the address book. In some embodiments, the first information may only include information about the device corresponding to the user account of a contact registered on the first server in the address book whose historical call count exceeds a preset threshold (e.g., 10 times). The historical call count may be the number of calls made by the user within a recent period (e.g., within a week).

[0068] It should be noted that, from the user's perspective, logging into the VoIP application's cloud server via a user account can mean that the user is logging into the VoIP application using their user account; from the network communication software perspective, logging into the VoIP application's cloud server via a user account can mean that the VoIP application client on the device is logging into the VoIP application's server using their user account. Taking the first electronic device logging into the first server via a first account as an example, from the user's perspective, it can mean that the user of the first electronic device is logging into the VoIP application using their first account; from the network communication software perspective, it can mean that the VoIP application client on the first electronic device is logging into the VoIP application's server using their first account. Similarly, taking the second electronic device logging into the first server via a second account as an example, from the user's perspective, it can mean that the user of the second electronic device is logging into the VoIP application using their second account; from the network communication software perspective, it can mean that the VoIP application client on the second electronic device is logging into the VoIP application's server using their second account.

[0069] It should be noted that the communication process between the first electronic device, the first server, and the second electronic device described above is from a device perspective; however, this communication process can also be described from a software perspective. Specifically, the first electronic device has a VoIP application client installed, the first server has a VoIP application server installed, and the second electronic device has a VoIP application client installed. From a software perspective, the communication between the first electronic device, the first server, and the second electronic device is essentially communication between the VoIP application client and the VoIP application server.

[0070] For example, the first electronic device can be user A's mobile phone. At 2:10 PM on December 1, 2024, user A registers a first account in a VoIP application. At this time, the first electronic device downloads first information from the cloud server of the VoIP application. The first information is the device information (i.e., communication capabilities) corresponding to the user accounts of contacts registered in the VoIP application in user A's mobile phone address book. This first information includes information about user B's mobile phone, user B's tablet, user B's smartwatch, user C's mobile phone, and user C's laptop. At 7:55 PM on December 1, 2024, user A initiates a VoIP call to user B. Detecting user A's user operation of calling user B's second account through the first account, the first electronic device obtains the device information corresponding to the second account from the first information. The device information corresponding to the second account (i.e., the communication capabilities of one or more called devices) includes information about user B's mobile phone, user B's tablet, and user B's smartwatch. Then, the first electronic device sends three VoIP call requests to the cloud server, each containing information about User B's mobile phone, tablet, and smartwatch, respectively. After receiving the VoIP call requests from the first electronic device, the cloud server forwards the requests to User B's mobile phone, tablet, and smartwatch based on the different information (i.e., the communication capabilities of the called device).

[0071] First, we will introduce a communication system and related equipment provided in the embodiments of this application.

[0072] Figure 3 illustrates an exemplary communication system provided by an embodiment of this application.

[0073] As shown in Figure 3, the communication system may include: electronic device 100 (calling device), electronic device 200 (one or more called devices), and server 300 (cloud server for VoIP application).

[0074] In this embodiment, electronic device 100 refers to the aforementioned first electronic device. Electronic device 100 can be various types of smart terminal devices, and this application does not limit the specific type of electronic device 100. For example, electronic device 100 can be a mobile phone, or a mobile tablet, in-vehicle tablet, desktop computer, laptop computer, handheld computer, smartwatch, smart bracelet, smart speaker, smart screen, etc. In this application embodiment, electronic device 100 can be used to log in to server 300 through a first account. Electronic device 100 can also be used to download first information from server 300 at a first time, which is the information (i.e., communication capabilities) of the device corresponding to one or more accounts logging into server 300. Electronic device 100 can also be used to detect a user operation calling a second account through the first account at a second time, the second time being later than the first time, the second account being the account used by electronic device 200 to log in to server 300. In response to the user operation calling the second account, electronic device 100 can also be used to obtain second information from the first information, which can be used by electronic device 100 and electronic device 200 to establish a VoIP call. After obtaining the second information, the electronic device 100 can also be used to send a VoIP call request to the server 300, so that the server 300 forwards the VoIP call request to the electronic device 200. The VoIP call request includes the first account, the second account, and the second information.

[0075] In this embodiment, electronic device 200 refers to the aforementioned second electronic device. Electronic device 200 can be various types of smart terminal devices, and this application embodiment does not limit the specific type of electronic device 200. For example, electronic device 200 can be a mobile phone, or a mobile tablet computer, in-vehicle tablet computer, desktop computer, laptop computer, handheld computer, laptop, smartwatch, smart bracelet, smart speaker, smart screen, etc. In this application embodiment, electronic device 200 can be used to log in to server 300 through a second account. Electronic device 200 can also be used to receive VoIP call requests forwarded by server 300 from electronic device 100.

[0076] In this embodiment, server 300 is the aforementioned first server (also known as a cloud server). In this application embodiment, server 300 can be used to receive a request from electronic device 100 to obtain first information at a first time. This request may include one or more accounts that log in to server 300. It should be noted that the one or more accounts may be user accounts of a VoIP application. In some embodiments, these one or more accounts may be generated by a VoIP application. In other embodiments, these one or more accounts are user accounts of contacts in the address book of electronic device 100. After receiving the request from electronic device 100 to obtain first information, server 300 can also be used to send first information to electronic device 100. This first information is the device information (i.e., communication capabilities) corresponding to one or more accounts that log in to server 300. Server 300 can also be used to receive VoIP call requests sent by electronic device 100 to forward the VoIP call requests to electronic device 200. The VoIP call requests include a first account, a second account, and second information. The second information is obtained by electronic device 100 from the first information in response to a user operation that calls the second account through the first account, detected at the second time. The second information can be used by electronic device 100 and electronic device 200 to establish a VoIP call. The second time is later than the first time. The second account is the account used by electronic device 200 to log in to server 300, and the first account is the account used by electronic device 100 to log in to server 300.

[0077] Electronic device 100 and server 300 establish a communication connection, which may include, but is not limited to: wired connection (e.g., a wired connection established through a data cable connected via a Type-C interface), wireless connection such as wireless local area network (WLAN) communication connection, cellular mobile communication connection, etc. If it is a WLAN communication connection or a cellular mobile communication connection, then the communication connection between electronic device 100 and server 300 can be an indirect communication connection, that is, a communication connection established through an access point (AP), which may include, but is not limited to, base stations and routers. Furthermore, electronic device 100 and server 300 in this communication system can also connect and communicate using any combination of the above methods; this application embodiment does not impose any limitations on this. That is to say, electronic device 100 and server 300 in this communication system can form a network (i.e., network) according to a certain communication protocol and networking strategy, enabling mutual communication between electronic device 100 and server 300.

[0078] Electronic device 200 and server 300 establish a communication connection, which may include, but is not limited to, wired connections (e.g., a wired connection established via a data cable connected through a Type-C interface), wireless connections such as WLAN communication connections, cellular mobile communication connections, etc. If it is a WLAN communication connection or a cellular mobile communication connection, then the communication connection between electronic device 200 and server 300 can be an indirect communication connection, i.e., a communication connection established through an access point (AP), which may include, but is not limited to, base stations or routers. Furthermore, electronic device 200 and server 300 in this communication system can also connect and communicate using any combination of the above methods; this application embodiment does not impose any limitations on this. That is to say, electronic device 200 and server 300 in this communication system can form a network (i.e., network) according to a certain communication protocol and networking strategy, enabling mutual communication between electronic device 200 and server 300.

[0079] Figure 4A illustrates an electronic device 100 provided in an embodiment of this application.

[0080] As shown in Figure 4A, the electronic device 100 may include a processor 210, an external memory interface 220, an internal memory 221, a universal serial bus (USB) interface 230, a charging management module 240, a power management module 241, a battery 242, antenna 1, antenna 2, a mobile communication module 250, a wireless communication module 260, an audio module 270, a speaker 270A, a receiver 270B, a microphone 270C, a headphone jack 270D, a sensor module 280, a motor 291, a display screen 294, and a subscriber identity module (SIM) card interface 295, etc. The sensor module 280 may include at least one of a touch sensor 280K, etc.

[0081] It is understood that the structures illustrated in the embodiments of this application do not constitute a specific limitation on the electronic device 100. In other embodiments of this application, the electronic device 100 may include more or fewer components than illustrated, or combine some components, or split some components, or have different component arrangements. The illustrated components may be implemented in hardware, software, or a combination of software and hardware.

[0082] Processor 210 may include one or more processing units, such as: application processor (AP), modem processor, graphics processing unit (GPU), image signal processor (ISP), controller, memory, video codec, digital signal processor (DSP), baseband processor, and / or neural network processing unit (NPU), etc. Different processing units may be independent devices or integrated into one or more processors.

[0083] The controller can be the nerve center and command center of the electronic device 100. The controller can generate operation control signals according to the instruction opcode and timing signals to complete the control of fetching and executing instructions.

[0084] In this embodiment, processor 210 can be used to control electronic device 100 to download first information from server 300 at a first time. This first information is information about devices corresponding to one or more accounts logged into server 300. In response to a user operation detected at a second time, whereby the first account calls a second account, processor 210 can also be used to control electronic device 100 to obtain second information from the first information. This second information can be used by electronic device 100 to establish a VoIP call with electronic device 200. The second account is the account used by electronic device 200 to log into server 300, and the second time is later than the first time. Processor 210 can also be used to control electronic device 100 to send a VoIP call request to server 300. This VoIP call request includes the first account, the second account, and the second information. The first account is the account used by electronic device 100 to log into server 300.

[0085] In some embodiments, the second information may include the identifier of the electronic device 200, indication information that the electronic device 200 supports audio calls, and indication information that the electronic device 200 participates in co-ring. Co-ring may refer to ringing simultaneously or almost simultaneously. For example, the ringing time deviation between multiple co-ringing devices is less than a preset threshold (e.g., 0.1 seconds). The electronic devices participating in co-ring can log in to the server 300 through the same account.

[0086] In some embodiments, the second information may further include one or more of the following: the public key of the electronic device 200, the version number of the public key, an indication of whether the electronic device 200 supports video calls, the video call resolution supported by the electronic device 200, and an indication of whether the electronic device 200 is in Do Not Disturb mode.

[0087] In some embodiments, at a second time, in response to a user operation calling a second account through a first account, the processor 210 can be used to control the electronic device 100 to download second information from the server 300. If the second information downloaded at the second time is updated compared to the second information obtained from the first information, the processor 210 can also be used to update the VoIP call request based on the second information downloaded at the second time.

[0088] In some embodiments, if the second information downloaded at a second time is updated compared to the second information obtained from the first information, the processor 210 can be used to update the first information based on the second information downloaded at the second time.

[0089] The processor 210 may also include a memory for storing instructions and data. In some embodiments, the memory in the processor 210 is a cache memory. This memory can store instructions or data that the processor 210 has just used or that are used repeatedly. If the processor 210 needs to use the instruction or data again, it can directly retrieve it from the memory. This avoids repeated accesses, reduces the waiting time of the processor 210, and thus improves the efficiency of the system.

[0090] The external storage interface 220 can be used to connect an external storage card, such as a Micro SD card, to expand the storage capacity of the electronic device 100. The external storage card communicates with the processor 210 through the external storage interface 220 to perform data storage functions. For example, music, photos, videos, and other data can be stored on the external storage card. In this embodiment, the external storage can be used to store first information downloaded by the electronic device 100 from the server 300 at a first time. The external storage can also be used to store second information downloaded by the electronic device 100 from the server 300 at a second time.

[0091] Internal memory 221 can be used to store one or more computer programs, which include instructions. Processor 210 can execute the instructions stored in internal memory 221, thereby causing electronic device 100 to perform the calling methods provided in some embodiments of this application, as well as various functional applications and data processing. Internal memory 221 may include a program storage area and a data storage area. The program storage area may store the operating system; it may also store one or more applications (such as a gallery, contacts, VoIP applications, etc.). The data storage area may store data created during the use of electronic device 100 (such as photos, contacts, etc.). Furthermore, internal memory 221 may include high-speed random access memory and may also include non-volatile memory, such as at least one disk storage device, flash memory device, universal flash storage (UFS), etc.

[0092] USB port 230 is a USB standard compliant interface, specifically a Mini USB port, Micro USB port, USB Type-C port, etc. USB port 230 can be used to connect a charger to charge electronic device 100, and can also be used for data transfer between electronic device 100 and peripheral devices. It can also be used to connect headphones for audio playback. This interface can also be used to connect other electronic devices, such as augmented reality (AR) devices.

[0093] The charging management module 240 receives charging input from a charger. The charger can be a wireless charger or a wired charger. In some wired charging embodiments, the charging management module 240 receives charging input from the wired charger via a USB interface 230. In some wireless charging embodiments, the charging management module 240 receives wireless charging input via the wireless charging coil of the electronic device 100. While charging the battery 242, the charging management module 240 can also supply power to the electronic device 100 via the power management module 241.

[0094] The power management module 241 connects the battery 242, the charging management module 240, and the processor 210. The power management module 241 receives input from the battery 242 and / or the charging management module 240, supplying power to the processor 210, internal memory 221, external memory, display 294, and wireless communication module 260, etc. The power management module 241 can also monitor parameters such as battery capacity, battery cycle count, and battery health status (leakage current, impedance). In some other embodiments, the power management module 241 may also be located within the processor 210. In other embodiments, the power management module 241 and the charging management module 240 may be located in the same device.

[0095] The wireless communication function of electronic device 100 can be implemented through antenna 1, antenna 2, mobile communication module 250, wireless communication module 260, modem processor, and baseband processor. In this embodiment, electronic device 100 can log in to server 300 through a first account using antenna 1, antenna 2, mobile communication module 250, wireless communication module 260, modem processor, and baseband processor. Electronic device 100 can also download first information from server 300 in a timely manner using antenna 1, antenna 2, mobile communication module 250, wireless communication module 260, modem processor, and baseband processor. Electronic device 100 can also send VoIP call requests to server 300 through antenna 1, antenna 2, mobile communication module 250, wireless communication module 260, modem processor, and baseband processor.

[0096] In some embodiments, at a second time, in response to a user operation calling a second account through a first account, electronic device 100 can download second information from server 300 via antenna 1, antenna 2, mobile communication module 250, wireless communication module 260, modem processor, and baseband processor. If the second information downloaded at the second time is updated compared to the second information obtained from the first information, electronic device 100 can also update the VoIP call request based on the second information downloaded at the second time via antenna 1, antenna 2, mobile communication module 250, wireless communication module 260, modem processor, and baseband processor. Specifically, if the second information downloaded in the second time includes information about devices logging into server 300 with the second account, electronic device 100 can also send an additional VoIP call request to server 300. The additional VoIP call request includes information about the first account, the second account, and the newly added device. If the second information downloaded in the second time reduces information about devices logging into server 300 with the second account, electronic device 100 can also cancel sending a VoIP call request to server 300. The canceled VoIP call request includes information about the first account, the second account, and the reduced device. If the second information downloaded in the second time is updated in content, electronic device 100 can also resend a VoIP call request to server 300. The VoIP call request includes a first account, a second account, and updated second information. This information may include one or more of the following: the public key of electronic device 200, the version number of the public key, an indication of whether electronic device 200 supports video calls, and the video call resolutions supported by electronic device 200. The updated range of video call resolutions supported by electronic device 200 does not overlap with the range of video call resolutions supported by electronic device 200 before the update. If the indication of audio call support for electronic device 200 in the second information downloaded in the second time is updated to an indication of not supporting audio calls, electronic device 100 can also cancel sending the VoIP call request to server 300. The canceled VoIP call request includes the first account, the second account, and the updated second information. If the video call resolutions supported by electronic device 200 in the second information downloaded in the second time are updated, and the range of video call resolutions supported by electronic device 200 after the update overlaps with the range of video call resolutions supported by electronic device 200 before the update, electronic device 100 can continue to send VoIP call requests to server 300. These VoIP call requests still include the first account, the second account, and the second information obtained from the first information (i.e., the second information before the update).

[0097] Antenna 1 and antenna 2 are used to transmit and receive electromagnetic wave signals. Each antenna in electronic device 100 can be used to cover one or more communication frequency bands. Different antennas can also be multiplexed to improve antenna utilization. For example, antenna 1 can be multiplexed as a diversity antenna for a wireless local area network. In some other embodiments, the antennas can be used in conjunction with tuning switches.

[0098] The mobile communication module 250 can provide solutions for wireless communication, including 2G / 3G / 4G / 5G, applied to the electronic device 100. The mobile communication module 250 may include at least one filter, switch, power amplifier, low-noise amplifier, etc. The mobile communication module 250 can receive electromagnetic waves via the antenna 1, and perform filtering, amplification, and other processing on the received electromagnetic waves before transmitting them to the modem processor for demodulation. The mobile communication module 250 can also amplify the signal modulated by the modem processor and convert it into electromagnetic waves for radiation via the antenna. In some embodiments, at least some functional modules of the mobile communication module 250 may be housed in the processor 210. In some embodiments, at least some functional modules of the mobile communication module 250 and at least some modules of the processor 210 may be housed in the same device.

[0099] The modem processor may include a modulator and a demodulator. The modulator modulates the low-frequency baseband signal to be transmitted into a mid-to-high frequency signal. The demodulator demodulates the received electromagnetic wave signal into a low-frequency baseband signal. The demodulator then transmits the demodulated low-frequency baseband signal to the baseband processor for processing. After processing by the baseband processor, the low-frequency baseband signal is transmitted to the application processor. The application processor displays images or videos via the display screen 294. In some embodiments, the modem processor may be a separate device. In other embodiments, the modem processor may be independent of the processor 210 and may be housed within the same device as the mobile communication module 250 or other functional modules.

[0100] The wireless communication module 260 can provide solutions for wireless communication applications on the electronic device 100, including WLAN (such as Wireless Fidelity, WiFi), Bluetooth, Global Navigation Satellite System, frequency modulation, near field communication (NFC), infrared technology, ultra-wideband (UWB), and SparkLink. The wireless communication module 260 can be one or more devices integrating at least one communication processing module. The wireless communication module 260 receives electromagnetic waves via an antenna, frequency-modulates and filters the electromagnetic wave signal, and sends the processed signal to the processor 210. The wireless communication module 260 can also receive signals to be transmitted from the processor 210, frequency-modulate and amplify them, and then convert them into electromagnetic waves for radiation via the antenna. For example, the wireless communication module 260 may include a Bluetooth module, a WiFi module, etc.

[0101] In some embodiments, a portion of the antenna of the electronic device 100 is coupled to the mobile communication module 250, and another portion of the antenna is coupled to the wireless communication module 260, enabling the electronic device 100 to communicate with networks and other devices via wireless communication technology. The wireless communication technology may include 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), Millimeter Wave (mmWave), BitTorrent, Global Navigation Satellite System (GNSS), WLAN, NFC, Frequency Modulation (FM), UWB, and / or Infrared (IR) technology, etc. The GNSS may include the Global Positioning System (GPS), the Global Navigation Satellite System (GLONASS), the BeiDou Navigation Satellite System (BDS), the Quasi-Zenith Satellite System (QZSS), and / or satellite-based augmentation systems (SBAS).

[0102] Electronic device 100 can implement audio functions, such as music playback and recording, through audio module 270, speaker 270A, receiver 270B, microphone 270C, headphone jack 270D, and application processor.

[0103] The audio module 270 is used to convert digital audio information into analog audio signals for output, and also to convert analog audio input into digital audio signals. The audio module 270 can also be used for encoding and decoding audio signals. In some embodiments, the audio module 270 may be located in the processor 210, or some functional modules of the audio module 270 may be located in the processor 210. In this embodiment, the audio module 270 can be used to implement VoIP calls between a calling user and a called user. For example, if the electronic device 100 is the transmitting end, the analog voice signal can be converted into digital data packets by the audio module 270, and these digital data packets can then be transmitted to the receiving end via the Internet. If the electronic device 100 is the receiving end, the received digital data packets can be converted back into analog voice signals by the audio module 270.

[0104] The speaker 270A, also known as a "loudspeaker," is used to convert audio electrical signals into sound signals. The electronic device 100 can listen to music or make hands-free calls through the speaker 270A.

[0105] The receiver 270B, also known as the "earpiece," is used to convert audio electrical signals into sound signals. When the electronic device 100 answers a telephone call or voice message, the receiver 270B can be brought close to the ear to listen to the voice.

[0106] Microphone 270C, also known as a "microphone" or "voice transducer," is used to convert sound signals into electrical signals. When making a phone call or sending a voice message, the user can speak by bringing their mouth close to microphone 270C, inputting the sound signal into microphone 270C. Electronic device 100 may have at least one microphone 270C. In some embodiments, electronic device 100 may have two microphones 270C, which, in addition to collecting sound signals, can also perform noise reduction. In other embodiments, electronic device 100 may also have three, four, or more microphones 270C, which can collect sound signals, reduce noise, identify the sound source, and perform directional recording, etc.

[0107] The 270D headphone jack is used to connect wired headphones. The 270D headphone jack can be a USB 230 interface or a 3.5mm Open Mobile Terminal Platform (OMTP) standard interface, a CTIA (Cellular Telecommunications Industry Association of the USA) standard interface.

[0108] Touch sensor 280K, also known as a touch panel or touch-sensitive surface, can be disposed on display screen 294. The touch sensor 280K and display screen 294 together form a touchscreen, also called a "touchscreen". Touch sensor 280K is used to detect touch operations applied to or near it. The touch sensor can transmit the detected touch operation to the application processor to determine the type of touch event. Visual output related to the touch operation can be provided through display screen 294. In other embodiments, touch sensor 280K may also be disposed on the surface of electronic device 100, in a different location than display screen 294. In this embodiment, electronic device 100 can detect user operations of calling a second account through a first account via touch sensor 280K.

[0109] Motor 291 can generate vibration alerts. Motor 291 can be used for incoming call vibration alerts or for touch vibration feedback. For example, touch operations applied to different applications (such as taking photos, playing audio, etc.) can correspond to different vibration feedback effects. Touch operations applied to different areas of the display screen 294 can also correspond to different vibration feedback effects from motor 291. Different application scenarios (such as time reminders, receiving messages, alarm clocks, games, etc.) can also correspond to different vibration feedback effects. The touch vibration feedback effect can also be customized.

[0110] Electronic device 100 can perform display functions, such as displaying a VoIP application user interface, through a GPU, a display screen 294, and an application processor. The GPU is a microprocessor for image processing, connected to the display screen 294 and the application processor. The GPU is used to perform mathematical and geometric calculations for graphics rendering. Processor 210 may include one or more GPUs, which execute instructions to generate or modify display information.

[0111] The display screen 294 is used to display images, videos, etc. The display screen 294 includes a display panel. The display panel may be a liquid crystal display (LCD), an organic light-emitting diode (OLED), an active-matrix organic light-emitting diode (AMOLED), a flexible light-emitting diode (FLED), a quantum dot light-emitting diode (QLED), etc. In some embodiments, the electronic device 100 may include one or N displays 294, where N is a positive integer greater than 1.

[0112] The SIM card interface 295 is used to connect a SIM card. The SIM card can be inserted into or removed from the SIM card interface 295 to make contact with and separate from the electronic device 100. The electronic device 100 can support one or N SIM card interfaces, where N is a positive integer greater than 1. The SIM card interface 295 can support Nano SIM cards, Micro SIM cards, SIM cards, etc. Multiple cards can be inserted into the same SIM card interface 295 simultaneously. The multiple cards can be of the same or different types. The SIM card interface 295 is also compatible with different types of SIM cards. The SIM card interface 295 is also compatible with external memory cards. The electronic device 100 interacts with the network through the SIM card to realize functions such as calls and data communication. In some embodiments, the electronic device 100 uses an eSIM, i.e., an embedded SIM card. The eSIM card can be embedded in the electronic device 100 and cannot be separated from the electronic device 100.

[0113] The structure of electronic device 200 is the same as that of electronic device 100, and will not be described again here.

[0114] Figure 4B illustrates the structure of the server 300 provided in an embodiment of this application.

[0115] As shown in Figure 4B, server 300 may include processor 310 and memory 320. Components in server 300 are connected to each other via a bus and communicate based on the bus.

[0116] Processor 310 may include one or more processing units, such as application processors, modem processors, GPUs, ISPs, controllers, video codecs, DSPs, baseband processors, and / or NPUs. These different processing units may be independent devices or integrated into one or more processors. The controller can generate operation control signals based on instruction opcodes and timing signals to control instruction fetching and execution.

[0117] Memory 320 is coupled to processor 310 and is used to store various software programs and / or multiple sets of instructions. Memory 320 can be used to store computer executable program code, which includes instructions. Processor 310 executes various functional applications and data processing of server 300 by running the instructions stored in memory 320. Memory may also be provided in processor 310 for storing instructions and data.

[0118] The memory 320 may include one or more random access memory (RAM) and one or more non-volatile memory (NVM). The RAM can be directly read and written by the processor 310. The RAM can be used to store executable programs (e.g., machine instructions) of the operating system or other running programs. The NVM can also store executable programs and user and application data. Executable programs, i.e., user data, stored in the NVM can be pre-loaded into the RAM for direct reading and writing by the processor 310.

[0119] It should be understood that the server 300 shown in Figure 4B is merely an example, and the server 300 may have more or fewer components than those shown in Figure 4B, may combine two or more components, or may have different component configurations. The various components shown in Figure 4B may be implemented in hardware, software, or a combination of hardware and software, including one or more signal processing and / or application-specific integrated circuits.

[0120] The following is a detailed flowchart illustrating a calling method based on the calling device obtaining the communication capabilities of the called device from its local cache, as provided in an embodiment of this application.

[0121] Figure 5 exemplarily illustrates a specific flow of a calling method based on the calling device obtaining the communication capabilities of the called device from its local cache, according to an embodiment of this application. This method can be applied to the communication system shown in Figure 3. In this communication system, electronic device 100 can log in to server 300 using a first account, and electronic device 200 can log in to server 300 using a second account.

[0122] As shown in Figure 5, the method may include:

[0123] S201. At the first moment, the electronic device 100 sends a request to the server 300 to obtain the first information.

[0124] S202, Server 300 sends the first message to electronic device 100.

[0125] In this embodiment, at a first moment, the electronic device 100 can download first information from the server 300. This first information is the device information (i.e., communication capabilities) corresponding to one or more accounts logged into the server 300. Specifically, at the first moment, the electronic device 100 can send a request to the server 300 to obtain the first information. This request may include one or more accounts logged into the server 300. In response to the request from the electronic device 100 to obtain the first information, the server 300 can send the first information to the electronic device 100.

[0126] It should be noted that the "first time" can refer to the time when electronic device 100 registers on server 300. From the user's perspective, this "first time" can also refer to the time when the user registers in the VoIP application. From the perspective of network communication software, this "first time" can also refer to the time when the VoIP application client registers on the VoIP application server. For example, electronic device 100 can be user A's mobile phone. At 2:10 PM on December 1, 2024, user A registers the first account in the VoIP application. At this time, electronic device 100 downloads the first information from server 300 (i.e., the cloud server of the VoIP application). The first information is the device information (i.e., communication capabilities) corresponding to the user accounts of contacts registered in the VoIP application in user A's mobile phone address book. This first information includes information about user B's mobile phone, user B's tablet, user B's smartwatch, user C's mobile phone, and user C's laptop. It can be understood that the "first time" is 2:10 PM on December 1, 2024.

[0127] It should be noted that one or more accounts can be user accounts of a VoIP application. In some embodiments, these one or more accounts can be generated by the VoIP application. In other embodiments, one or more accounts can originate from the address book, which are the user accounts of contacts in the address book of the electronic device 100. For example, the first information may include information about the device (i.e., communication capabilities) corresponding to the user account of a contact registered on the server 300 in the address book. In some embodiments, the first information may only include information about the device corresponding to the user account of a contact registered on the server 300 in the address book whose historical call count is greater than a preset threshold (e.g., 10 times). The historical call count may be the number of calls made by the user within a recent period (e.g., within a week). It is understood that the first information can be stored in the external storage (referred to as external memory) of the electronic device 100. It should be noted that the conditions for the electronic device 100 to download the first information from the server 300 may include, but are not limited to, the electronic device 100 being connected to the Internet to achieve data transmission and communication, the remaining battery power of the electronic device 100 being greater than a preset threshold (e.g., 60%), and the free storage capacity of the external storage of the electronic device 100 being greater than a preset threshold (e.g., 100MB).

[0128] It should be noted that the device information may include, but is not limited to, the device's identifier, communication attributes, and user-set call policies. The device identifier can be used to uniquely identify a single ringing device. The device's communication attributes may include, but are not limited to, indications of whether audio calls are supported. Optionally, the device's communication attributes may also include one or more of the following: the device's public key and its version number, indications of whether video calls are supported and supported video call resolutions, indications of whether receiving or sending messages is supported, and feature indications such as whether screen sharing is supported. It is understood that the content of the device's communication attributes is related to the functionality of the VoIP application, and this application embodiment does not limit this. It should be noted that users can manually start, stop, or modify the relevant parameters of the VoIP application's functionality. For example, if the VoIP application has call encryption functionality, the device's communication attributes may also include the device's public key and its version number, which can be used for key negotiation between devices establishing a VoIP call. If the VoIP application has video call functionality, the device's communication attributes may also include indications of whether video calls are supported and supported video call resolutions, which can be used for video call resolution negotiation between devices establishing a VoIP video call. If the VoIP application has message sending and receiving capabilities, the device's communication attributes may further include indications of whether it supports receiving or sending messages. If the VoIP application has screen sharing capabilities, the device's communication attributes may further include indications of whether it supports screen sharing. It is understood that the content included in the device's communication attributes can also be other, and this application embodiment does not limit this. The user-set call policy may include, but is not limited to, indications of whether to participate in simultaneous ringing. It should be noted that simultaneous ringing can refer to ringing at the same time or almost simultaneously. For example, the ringing time deviation between multiple simultaneously ringing devices is less than a preset threshold (e.g., 0.1 seconds), and electronic devices participating in simultaneous ringing can log in to server 300 through the same account. Optionally, the user-set call policy may also include indications of whether it is in Do Not Disturb mode. It is understood that the content included in the user-set call policy can also be other, and this application embodiment does not limit this.

[0129] Optionally, the device information may also include one or more of the following: device type, most recent login time, and Software Development Kit (SDK) version. The device type can indicate the type of device the electronic device belongs to, such as a mobile phone, tablet, laptop, smartwatch, smart speaker, smart screen, etc. In some embodiments, specific types of devices do not participate in simultaneous ringing. The electronic device can identify devices that do not participate in simultaneous ringing within the same account based on the device type in the device information, and display these non-simultaneous ringing devices independently in the VoIP application, so that the electronic device can initiate VoIP calls to these non-simultaneous ringing devices individually. For example, referring to Figure 1A, devices of the device type "smart speaker" or "smart screen" do not participate in simultaneous ringing. These devices of the device type "smart speaker" or "smart screen" are displayed independently of the user account in the VoIP application, and the electronic device can initiate VoIP calls to these devices of the device type "smart speaker" or "smart screen" individually. The most recent login time can indicate the time when the electronic device last logged into server 300. In some embodiments, the number of simultaneous ringing devices initiated by electronic device 100 can not exceed a preset number (e.g., 5). In this scenario, if the number of devices corresponding to the called account exceeds a preset number (e.g., 5), the electronic device 100 can determine the called device to initiate the call based on the most recent login time in the information of the devices. For example, the electronic device can initiate a call to a device with a later most recent login time in its information. The SDK version can be used to indicate the version of the software development kit for developing VoIP applications. This SDK version can be used for SDK version negotiation between devices establishing VoIP calls to determine the functionality of the VoIP application. It is understood that the device information can include other content, and this embodiment does not limit this.

[0130] It should be noted that the devices indicated in the first information are all electronic devices with communication capabilities. Electronic devices with communication capabilities must meet the following conditions: the electronic device has registered an account on the cloud server of the VoIP application and logs into the cloud server using the registered account; the VoIP calling function in the settings application of the electronic device is enabled; and the device's communication attributes in the device information include indications of supporting audio calls and / or supporting video calls. Generally, the call policy set by the user in the first information may include indications of participating in simultaneous ringing. That is, the device's communication attributes in the first information include indications of supporting audio calls and / or supporting video calls, and the call policy set by the user in the first information may include indications of participating in simultaneous ringing. In some embodiments, the user can manually switch the device's call policy from participating in simultaneous ringing to not participating in simultaneous ringing.

[0131] In some embodiments, the communication attributes of a device may further include indication information indicating whether it has communication capabilities. If the communication attributes of the device in the device information include indication information indicating whether it has communication capabilities, then the communication attributes of the device in the device information also include indication information supporting audio calls and / or supporting video calls, and the electronic device has registered an account in the cloud server of the VoIP application and logged into the cloud server through the registered account, and the VoIP calling function in the settings application of the electronic device is enabled. Conversely, if the communication attributes of the device in the device information include indication information supporting audio calls and / or supporting video calls, and the electronic device has registered an account in the cloud server of the VoIP application and logged into the cloud server through the registered account, and the VoIP calling function in the settings application of the electronic device is enabled, then the communication attributes of the device in the device information also include indication information indicating whether it has communication capabilities. It is understood that when the communication attributes of the device include indication information indicating whether it has communication capabilities, the communication attributes of the device in the first information include indication information indicating whether it has communication capabilities.

[0132] In some embodiments, where the VoIP application has call encryption functionality, the device's communication attributes may further include the device's public key and its version number. Optionally, before downloading the first information from the server 300, the electronic device 100 may extend the public key update cycle; that is, the electronic device 100 may reduce the public key update frequency to reduce the probability of failure in key negotiation with the electronic device 200. This avoids wasting time by causing the electronic device 100 to re-query the key (public key) due to key negotiation failure, thereby reducing the call latency of the VoIP call.

[0133] In some embodiments, if an update is detected to the information of a device corresponding to one or more accounts on the login server 300, the device corresponding to the one or more accounts on the login server 300 can upload the updated device information to the server 300. Then, the server 300 can push the updated device information to the electronic device 100, so that the electronic device 100 updates the first information based on the updated information of the device corresponding to one or more accounts on the login server 300, thereby ensuring the accuracy of the locally maintained first information.

[0134] S203. At the second time, a user operation calling the second account is detected, and the electronic device 100 obtains the second information from the first information.

[0135] In this embodiment, at a second time, electronic device 100 can detect a user operation calling a second account through a first account, the second time being later than the first time. In response to the user operation, electronic device 100 can obtain second information from the first information, which can be used by electronic device 100 and electronic device 200 to establish a VoIP call, so that electronic device 100 sends a VoIP call request to electronic device 200 through server 300.

[0136] For example, the user interface of the electronic device 100 detecting a user operation calling a second account through a first account at a second time can be referred to Figures 1A-1B. In some embodiments, the electronic device 100 may display a contact interface of a VoIP application (e.g., user interface 110 shown in Figure 1A). The electronic device 100 may receive an operation to initiate a VoIP call (i.e., a VoIP call) through the first account to the second account (i.e., the dialable contact account) (e.g., clicking the audio call control 112 corresponding to the contact account Bob). In response to this operation, the electronic device 100 can obtain the communication capabilities (i.e., second information) of the electronic device 200 from the first information cached locally in the electronic device 100 and display a call waiting interface of the VoIP application (e.g., user interface 120 shown in Figure 1B). From the user's perspective, the second time may be the time when the user of the electronic device 100 initiates a VoIP call to the second account through the first account, for example, the time when the user of the electronic device 100 clicks the audio call control 112 corresponding to the contact account Bob.

[0137] For example, electronic device 100 can be user A's mobile phone, and electronic device 200 can be user B's mobile phone, user B's tablet computer, or user B's smartwatch. At 19:55 on December 1, 2024, user A initiates a VoIP call to user B. At this time, user operation is detected where user A calls user B's second account through a first account. Electronic device 100 obtains information about the device corresponding to the second account (i.e., the communication capabilities of one or more called devices) from the first information. The information about the device corresponding to the second account includes information about user B's mobile phone, user B's tablet computer, and user B's smartwatch. It is understood that the second time is 19:55 on December 1, 2024.

[0138] It should be noted that the second information can be information (i.e., communication capabilities) of one or more called devices (i.e., electronic devices 200), which can be one or more co-vibrating devices that log in to server 300 through a called account (second account). For example, referring to Figure 1A, the one or more co-vibrating devices can be devices (e.g., mobile phones, tablets, etc.) corresponding to the contact account Bob. In some embodiments, the second information may include, but is not limited to, the identifier of electronic device 200, indication information that electronic device 200 supports audio calls, and indication information that electronic device 200 participates in co-vibration. Optionally, the second information may also include one or more of the following: the public key and version number of the public key of electronic device 200, indication information that electronic device 200 supports video calls and the video call resolution supported by electronic device 200, indication information that electronic device 200 supports receiving or sending messages, feature indication information such as whether electronic device 200 supports screen sharing, indication information that electronic device 200 is in do-not-disturb mode, the type of electronic device 200, the last login time of electronic device 200, and the SDK version of electronic device 200. It is understood that the content of the second information may also be other, and this application embodiment does not limit this. In some other embodiments, when the second information includes indication information that the electronic device 200 does not support audio calls, the second information may also include, but is not limited to, the identifier of the electronic device 200, indication information that the electronic device 200 supports video calls and the video call resolution supported by the electronic device 200, and indication information that the electronic device 200 participates in resonance. Optionally, the second information may also include one or more of the following: the public key and version number of the public key of the electronic device 200, indication information on whether the electronic device 200 supports receiving or sending messages, feature indication information such as whether the electronic device 200 supports screen sharing, indication information on whether the electronic device 200 is in Do Not Disturb mode, the type of the electronic device 200, the last login time of the electronic device 200, and the SDK version of the electronic device 200. It is understood that the content of the second information may also be other, and this application embodiment does not limit this. It is understood that since the devices indicated by the first information are all electronic devices with communication capabilities, and the second information is obtained from the first information, the devices indicated by the second information are also electronic devices with communication capabilities. In some embodiments, where the communication attributes of the device include indication information on whether it has communication capabilities, the communication attributes of the device in the second information may also include indication information on whether it has communication capabilities.

[0139] In some embodiments, after obtaining the second information, the electronic device 100 can invoke the dialing interface of a service in a VoIP application. When invoking the dialing interface, the electronic device 100 can pass the second information to the service in the VoIP application, so that the service in the VoIP application can initiate a call to the electronic device 200 based on the second information.

[0140] It should be noted that the call latency of a VoIP call can include the latency for the calling device to obtain the communication capabilities of one or more called devices. Compared with the call method flow shown in Figure 2, which is based on the calling device querying the communication capabilities of the called device from the cloud server, the call method flow shown in Figure 5, which is based on the calling device obtaining the communication capabilities of the called device from the local cache, has the following advantages: When a user initiates a call, the electronic device 100 can directly obtain the communication capabilities of the called device from the first information in the local cache, instead of querying the communication capabilities of the called device from the cloud server. This saves a significant amount of time spent calling the cloud server interface to request and query the communication capabilities of the called device, thus reducing the call latency of the VoIP call. Furthermore, since the communication capabilities of the called device are directly obtained by the electronic device 100 from the local cache, the acquisition of the communication capabilities of the called device is not affected by the quality of the network environment, thereby improving the call completion rate of the VoIP call and thus improving the user experience.

[0141] S204. Electronic device 100 sends a VoIP call request to server 300.

[0142] S205, Server 300 forwards the VoIP call request to Electronic Device 200.

[0143] In this embodiment of the application, after obtaining the second information, the electronic device 100 can send a VoIP call request to the server 300 through the services in the VoIP application. The VoIP call request includes a first account, a second account, and the second information.

[0144] In some embodiments, electronic device 100 can initiate a call to no more than a preset number (e.g., 5) of simultaneous ringing devices by sending a VoIP call request. In this case, if the number of simultaneous ringing devices corresponding to the called account (second account) exceeds the preset number (e.g., 5), electronic device 100 can determine the called device to initiate the call based on the most recent login time in the information of the simultaneous ringing devices. For example, electronic device 100 can initiate a call to the simultaneous ringing device with a later most recent login time in the device's information. For example, the second account corresponds to 6 simultaneous ringing devices: device A, device B, device C, device D, device E, and device F. These 6 simultaneous ringing devices are arranged in order of their most recent login time as follows: device B, device D, device A, device C, device F, and device E. That is, device B is the device with the earliest most recent login time among the 6 simultaneous ringing devices, and device E is the device with the latest most recent login time among the 6 simultaneous ringing devices. Since electronic device 100 can only make calls to a maximum of 5 co-vibrating devices, and the second account corresponds to 6 co-vibrating devices, electronic device 100 can make calls to the 5 co-vibrating devices: device D, device A, device C, device F, and device E.

[0145] In this embodiment, electronic device 100 can initiate a call to electronic device 200; that is, electronic device 100 can send a VoIP call request to electronic device 200 through server 300. Specifically, electronic device 100 can send a VoIP call request to server 300, and this VoIP call request may contain second information (i.e., information about electronic device 200, i.e., communication capabilities)). After receiving the VoIP call request sent by electronic device 100, server 300 can forward the VoIP call request to electronic device 200 based on the second information. After receiving the forwarded VoIP call request from server 300, electronic device 200 can ring the incoming call notification, at which point the VoIP call is successfully connected.

[0146] For example, after obtaining information from user B's mobile phone, tablet computer, and smartwatch, electronic device 100 sends three VoIP call requests to the cloud server, each containing information from user B's mobile phone, tablet computer, and smartwatch, respectively. Upon receiving the VoIP call requests from electronic device 100, the cloud server forwards the VoIP call requests to user B's mobile phone, tablet computer, and smartwatch based on the different information provided.

[0147] S206. At the second time, in response to the user operation, the electronic device 100 sends a request to the server 300 to obtain the second information.

[0148] S207, Server 300 returns the second information to Electronic Device 100.

[0149] In some embodiments, at a second time, in response to a user operation calling a second account through a first account, electronic device 100 can download second information from server 300. Specifically, electronic device 100 can send a request to server 300 to obtain the second information through a background thread of a service in a VoIP application. In response to the request from electronic device 100 to obtain the second information, server 300 can return the second information to electronic device 100. It should be noted that the background thread can perform auxiliary tasks during the operation of the VoIP application, such as downloading the second information from server 300 at a second time, and the execution of these auxiliary tasks will not interfere with the normal operation of the VoIP application.

[0150] It should be noted that the second information obtained by electronic device 100 from server 300 may differ from the second information obtained from the first information. This is because the second information obtained by electronic device 100 from the first information is not updated in real time, while the second information obtained by electronic device 100 from server 300 is updated in real time. Therefore, the second information obtained by electronic device 100 from server 300 is more time-sensitive than the second information obtained from the first information. Specifically, the second information obtained by electronic device 100 from server 300 may differ in size from the second information obtained from the first information, and / or, the second information obtained by electronic device 100 from server 300 may differ in content. The difference in size between the second information obtained by electronic device 100 from server 300 and the second information obtained from the first information can specifically mean that the size of the second information obtained by electronic device 100 from server 300 is larger than that obtained from the first information, or that the size of the second information obtained by electronic device 100 from server 300 is smaller than that obtained from the first information. The second information obtained by electronic device 100 from server 300 differs in content from the second information obtained from the first information. Specifically, the second information obtained by electronic device 100 from server 300 may differ from the second information obtained from the first information in one or more of the following: indication information supporting audio calls, public key, public key version number, indication information on whether video calls are supported, supported video call resolution, indication information on whether receiving or sending messages is supported, feature indication information such as whether screen sharing is supported, indication information on whether it is in Do Not Disturb mode, and recent login time. It is understood that the differences between the second information obtained by electronic device 100 from server 300 and the second information obtained from the first information can also be other things, and this embodiment of the application does not limit this.

[0151] S208, Electronic device 100 determines whether the second information obtained from server 300 has been updated compared to the second information obtained from the first information.

[0152] S209, Electronic device 100 updates the VoIP call request based on the second information obtained from server 300.

[0153] S210, Electronic device 100 updates first information based on second information obtained from server 300.

[0154] In some embodiments, after receiving the second information returned by the server 300, the electronic device 100 can determine through the services in the VoIP application whether the second information obtained from the server 300 has been updated compared to the second information obtained from the first information. If so, the electronic device 100 can update the VoIP call request based on the second information obtained from the server 300 through the services in the VoIP application to ensure the correctness of the VoIP call function.

[0155] Specifically, if the second information obtained from server 300 includes information about a device logged into server 300 with a second account, it indicates that a new co-vibration device corresponding to the second account has been added. Furthermore, electronic device 100 can also send an additional VoIP call request to server 300 through a service in the VoIP application to call the newly added co-vibration device. The additional VoIP call request may include information about the first account, the second account, and the newly added co-vibration device.

[0156] Specifically, if the second information obtained from server 300 reduces the information of devices logged into server 300 with the second account, it indicates that the number of co-ring devices corresponding to the second account has decreased. That is, some co-ring devices indicated by the second information obtained from the first information have lost their communication capabilities, or the user has manually switched the device's call policy from participating in co-ring to not participating in co-ring. Further, electronic device 100 can also cancel sending a VoIP call request to server 300 through a service in the VoIP application to terminate calls to co-ring devices that have lost communication capabilities. The canceled VoIP call request may include the first account, the second account, and information about the reduced co-ring devices. In some embodiments, canceling a VoIP call request specifically means that electronic device 100 sends a signaling message to server 300 to cancel the VoIP call through a service in the VoIP application, so that server 300 releases the resources allocated to the reduced co-ring devices. In some embodiments, if the electronic device 100 does not cancel sending the VoIP call request to the server 300, after the server 300 receives the VoIP call request containing information about the reduced number of resonant devices, the server 300 may not forward the VoIP call request to the electronic device 200.

[0157] Specifically, if the second information obtained from server 300 is updated in content, electronic device 100 can also resend the VoIP call request to server 300 through the services in the VoIP application. The resent VoIP call request may include the first account, the second account, and the updated second information. In some embodiments, resending the VoIP call request may specifically mean that electronic device 100 cancels the resending of the previous VoIP call request to server 300 through the services in the VoIP application. The previous VoIP call request may include the first account, the second account, and the previous information of the co-ring device. After canceling the resending of the previous VoIP call request, electronic device 100 also resends the updated VoIP call request to server 300 through the services in the VoIP application. The updated VoIP call request may include the first account, the second account, and the updated information of the co-ring device. It should be noted that the above content may include one or more of the following: the public key of electronic device 200, the version number of the public key, indication information on whether electronic device 200 supports video calls, and the video call resolutions supported by electronic device 200. The range of video call resolutions supported by the updated electronic device 200 does not overlap with the range of video call resolutions supported by the electronic device 200 before the update. It is understood that the updated content of the second information obtained by electronic device 100 from server 300 compared to the second information obtained from the first information can be other than what is currently being discussed in this embodiment. It should be noted that if the range of video call resolutions supported by the updated electronic device 200 overlaps with the range of video call resolutions supported by the electronic device 200 before the update, then electronic device 100 can continue the VoIP call process. That is, electronic device 100 can continue to send VoIP call requests to server 300, and the second information included in the VoIP call request is still the same as the second information before the update (i.e., the second information obtained by electronic device 100 from the first information).

[0158] Specifically, if the indication information of electronic device 200 supporting audio calls in the second information obtained from server 300 is updated to an indication information of not supporting audio calls, it indicates that electronic device 200 has lost its audio call capability. Further, electronic device 100 can also cancel sending a VoIP call request to server 300 through a service in the VoIP application to terminate the call to the co-ring device that has lost its audio call capability. The canceled VoIP call request may include a first account, a second account, and the updated second information. In some embodiments, canceling a VoIP call request specifically means that electronic device 100 sends a signaling message to server 300 to cancel the VoIP call through a service in the VoIP application, so that server 300 releases the resources allocated for the call to the co-ring device that has lost its audio call capability. In some embodiments, if electronic device 100 does not cancel sending a VoIP call request to server 300, after server 300 receives a VoIP call request containing an indication information of not supporting audio calls, server 300 may not forward the VoIP call request to electronic device 200.

[0159] In some embodiments, if the second information obtained from the server 300 is updated compared to the second information obtained from the first information, the electronic device 100 can update the first information based on the second information obtained from the server 300. This allows the electronic device 100 to initiate a call based on the latest device communication capabilities, thereby avoiding call error correction caused by communication capability discrepancies and optimizing the user experience. Furthermore, in addition to the communication capabilities for VoIP calls, the message sending and receiving capabilities within the VoIP application are also updated in a timely manner.

[0160] It should be noted that steps S206-S210 are optional implementation steps in some embodiments.

[0161] Combining the specific flow of the call method shown in Figure 2, which involves the calling device querying the called device's communication capabilities from the cloud server, and the specific flow of the call method shown in Figure 5, which involves the calling device retrieving the called device's communication capabilities from the local cache, it can be seen that the latter method has the following advantages compared to the former: When a user initiates a call, the electronic device 100 can directly obtain the called device's communication capabilities from the first information in the local cache, instead of querying the cloud server. This saves a significant amount of time spent calling the cloud server interface to request and query the called device's communication capabilities, thus reducing the call latency of VoIP calls. Furthermore, since the called device's communication capabilities are directly obtained by the electronic device 100 from the local cache, the acquisition of the called device's communication capabilities is not affected by the network environment quality, thereby improving the call completion rate of VoIP calls and ultimately enhancing the user experience. Furthermore, upon detecting a user-initiated call, the electronic device 100 can asynchronously retrieve the latest communication capabilities of the called device from the cloud server via a background thread. It then compares the communication capabilities of the called device directly retrieved from the local cache with those asynchronously retrieved from the cloud server. If they are inconsistent, the electronic device 100 updates the VoIP call request sent to the cloud server based on the latest communication capabilities of the called device, ensuring the correctness of the VoIP call function. In addition, if the communication capabilities of the called device directly retrieved from the local cache are inconsistent with those asynchronously retrieved from the cloud server, the electronic device 100 can also update the first information in the local cache based on the latest communication capabilities of the called device. This allows the electronic device 100 to initiate calls based on the latest device's communication capabilities next time, thus avoiding call error correction caused by device communication capability discrepancies and optimizing the user experience. Moreover, in addition to the communication capabilities for VoIP calls, the communication capabilities for sending and receiving messages in VoIP applications are also updated in a timely manner.

[0162] It should be noted that the calling method provided in this application, which involves the calling device obtaining the communication capabilities of the called device from its local cache, can be applied to VoIP applications built into the operating system, VoIP applications provided by the operating system vendor, VoIP applications installed on electronic devices, or third-party VoIP applications. In some embodiments, where the VoIP application's user account is obtained from the address book by the VoIP application, the VoIP application needs to obtain permission to access the address book.

[0163] Based on the embodiments of this application, first information including device identifiers, device communication attributes, and user-set call policies can be detected in the external storage of the electronic device (e.g., device information corresponding to user accounts of contacts registered on VoIP applications in the electronic device's address book). For a description of the content of the first information, please refer to the relevant content in the foregoing embodiments, which will not be repeated here. The storage format of the first information can be a database table or a structure; this application embodiment does not impose any limitations on this. If the first information is stored as a structure, it can be detected in a file.

[0164] Table 1

[0165] In this example, Table 1 shows the first information stored as a database table.

[0166] This application also provides a computer-readable storage medium storing a computer program. When the computer program is executed by a processor, it can implement the steps performed by the electronic device in the above method embodiments, or the steps performed by the human-computer interaction module and the computing module.

[0167] This application also provides a computer program product that, when run on a terminal device, enables the terminal device to perform the steps executed by the electronic device in the above method embodiments.

[0168] This application also provides a chip system, which includes a processor coupled to a memory. The processor executes a computer program stored in the memory to implement the steps performed by the electronic device in any of the method embodiments of this application. The chip system can be a single chip or a chip module composed of multiple chips.

[0169] The term "user interface (UI)," or simply "interface," used in the specification and accompanying drawings of this application, refers to the medium through which an application or operating system interacts and exchanges information with the user. It facilitates the conversion between the internal form of information and a form acceptable to the user. The user interface of an application is written in source code using specific computer languages ​​such as Java or Extensible Markup Language (XML). This source code is parsed and rendered on the terminal device, ultimately presenting user-recognizable content, such as images, text, and buttons. Controls, also known as widgets, are the basic elements of the user interface. Typical controls include toolbars, menu bars, text boxes, buttons, scroll bars, images, and text. The attributes and content of controls in the interface are defined using tags or nodes, such as XML tags. <textview> 、 <imgview> 、 <videoview>Nodes define the controls contained in the interface. A node corresponds to a control or property in the interface, and after parsing and rendering, the node is presented as the content visible to the user. In addition, many applications, such as hybrid applications, often contain web pages within their interfaces. A web page, also known as a page, can be understood as a special control embedded in the application interface. Web pages are source code written in a specific computer language, such as Hypertext Markup Language (HTML), Cascading Style Sheets (CSS), JavaScript (JS), etc. Web page source code can be loaded and displayed as user-readable content by a browser or a web page display component with browser-like functionality. The specific content contained in a web page is also defined through tags or nodes in the web page source code; for example, HTML uses tags or nodes to define the content. 、 、 <video> 、 <canvas>Used to define the elements and attributes of a webpage.

[0170] The most common form of user interface is the graphical user interface (GUI), which refers to a user interface related to computer operation displayed graphically. It can be an icon, window, control, or other interface element displayed on the screen of an electronic device. Controls can include visual interface elements such as icons, buttons, menus, tabs, text boxes, dialog boxes, status bars, navigation bars, and widgets.

[0171] The above-described embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit it. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.

[0172] It should be understood that in the various embodiments of this application, the order of the above-mentioned processes does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.

[0173] As used in the above embodiments, depending on the context, the term "when..." can be interpreted as meaning "if..." or "after..." or "in response to determining..." or "in response to detecting...". Similarly, depending on the context, the phrase "when determining..." or "if (the stated condition or event) is detected" can be interpreted as meaning "if determining..." or "in response to determining..." or "when (the stated condition or event) is detected" or "in response to detecting (the stated condition or event)".

[0174] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially 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 embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive), etc.

[0175] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. This program can be stored in a computer-readable storage medium, and when executed, it can include the processes described in the above method embodiments. The aforementioned storage medium includes various media capable of storing program code, such as ROM or random access memory (RAM), magnetic disks, or optical disks.< / canvas> < / video> < / videoview> < / imgview> < / textview>

Claims

1. A calling method applied to a first electronic device, characterized in that, The method includes: At the first moment, download the first information from the first server. The first information is the device information corresponding to one or more accounts that are logged into the first server. At a second time, a user operation calling a second account through a first account is detected; wherein the second time is later than the first time, the first account is the account used by the first electronic device to log in to the first server, and the second account is the account used by the second electronic device to log in to the first server; In response to the user operation, second information is obtained from the first information, and the second information is used for the first electronic device and the second electronic device to establish a Voice over Internet Protocol (VoIP) call; Send a VoIP call request to the first server, the VoIP call request including the first account, the second account, and the second information.

2. The method according to claim 1, characterized in that, The second information includes the identifier of the second electronic device, indication information that the second electronic device supports audio calls, and indication information that the second electronic device participates in simultaneous vibration. The electronic devices participating in simultaneous vibration log in to the first server through the same account.

3. The method according to claim 2, characterized in that, The second information also includes one or more of the following: the public key of the second electronic device, the version number of the public key, an indication of whether the second electronic device supports video calls, the video call resolution supported by the second electronic device, and an indication of whether the second electronic device is in Do Not Disturb mode.

4. The method according to claim 3, characterized in that, The method further includes: At the second time, in response to the user operation, the second information is downloaded from the first server; If the second information downloaded at the second time is updated compared to the second information obtained from the first information, then the VoIP call request is updated based on the second information downloaded at the second time.

5. The method according to claim 4, characterized in that, If the second information downloaded at the second time is updated compared to the second information obtained from the first information, then updating the VoIP call request based on the second information downloaded at the second time specifically includes: If the second information downloaded at the second time includes information about a device logged into the first server with the second account, then the VOIP call request is also sent to the first server. The additional VOIP call request includes the first account, the second account, and the information of the newly added device. If the second information downloaded at the second time reduces the information of the device logged in to the first server with the second account, then the VoIP call request is also canceled from being sent to the first server. The canceled VoIP call request includes the first account, the second account, and the reduced device information. If the second information downloaded at the second time is updated in content, the VoIP call request is resent to the first server. The resent VoIP call request includes the first account, the second account, and the updated second information.

6. The method according to claim 5, characterized in that, The content includes one or more of the following: the public key of the second electronic device, the version number of the public key, indication information on whether the second electronic device supports video calls, and the video call resolution supported by the second electronic device, wherein the range of video call resolutions supported by the updated second electronic device does not overlap with the range of video call resolutions supported by the second electronic device before the update.

7. The method according to claim 5 or 6, characterized in that, The method further includes: If the indication information that the second electronic device supports audio calls is updated to an indication information that it does not support audio calls in the second information downloaded at the second time, then the VoIP call request is also cancelled to the first server. The cancelled VoIP call request includes the first account, the second account, and the updated second information.

8. The method according to any one of claims 5-7, characterized in that, The method further includes: If the video call resolution supported by the second electronic device in the second information downloaded at the second time is updated, and the range of video call resolutions supported by the updated second electronic device overlaps with the range of video call resolutions supported by the second electronic device before the update, then the VOIP call request is sent to the first server again. The VOIP call request includes the first account, the second account, and the second information obtained from the first information.

9. The method according to any one of claims 4-8, characterized in that, The method further includes: If the second information downloaded at the second time is updated compared to the second information obtained from the first information, then the first information is updated based on the second information downloaded at the second time.

10. A calling method, applied to a first server, characterized in that, The method includes: At the first moment, a request to obtain first information is received from the first electronic device, wherein the first information is information about the device corresponding to one or more accounts logged into the first server; Send the first information to the first electronic device; The device receives a VoIP call request sent by the first electronic device. The VoIP call request includes a first account, a second account, and second information. The second information is obtained by the first electronic device from the first information in response to a user operation detected at a second time, whereby the first electronic device calls the second account through the first account. The second information is used by the first electronic device to establish a VoIP call with the second electronic device. The second time is later than the first time. The first account is the account used by the first electronic device to log in to the first server, and the second account is the account used by the second electronic device to log in to the first server.

11. The method according to claim 10, characterized in that, The second information includes the identifier of the second electronic device, indication information that the second electronic device supports audio calls, and indication information that the second electronic device participates in simultaneous vibration. The electronic devices participating in simultaneous vibration log in to the first server through the same account.

12. The method according to claim 11, characterized in that, The second information also includes one or more of the following: the public key of the second electronic device, the version number of the public key, an indication of whether the second electronic device supports video calls, the video call resolution supported by the second electronic device, and an indication of whether the second electronic device is in Do Not Disturb mode.

13. The method according to any one of claims 10-12, characterized in that, The method further includes: At the second time, a request to obtain the second information is received from the first electronic device, and the second information is sent to the first electronic device.

14. A communication system, characterized in that, It includes a first electronic device, a second electronic device, and a first server; wherein the first electronic device is connected to the second electronic device and the first server; the first electronic device is the electronic device according to any one of claims 1-9, and the first server is the electronic device according to any one of claims 10-13.

15. An electronic device, characterized in that, The electronic device includes a processor and a memory; wherein the memory is coupled to the processor and is used to store a computer program that, when executed by the processor, causes the electronic device to perform the method as described in any one of claims 1-9 or 10-13.

16. A computer storage medium, characterized in that, The computer storage medium stores a computer program that, when executed by a processor, causes the electronic device to perform the method as described in any one of claims 1-13.

17. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by the processor, it causes the electronic device to perform the method as described in any one of claims 1-13.