System and method for automatic reconnection for calls

CN116489130BActive Publication Date: 2026-06-02GOOGLE LLC

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
GOOGLE LLC
Filing Date
2016-07-13
Publication Date
2026-06-02

Smart Images

  • Figure CN116489130B_ABST
    Figure CN116489130B_ABST
Patent Text Reader

Abstract

The present invention relates to systems and methods for automatic reconnection for a call. The server detects that the client device has lost a connection with the participant device and continues to maintain the connection with the participant device. In some embodiments, the server determines why the client device lost the connection and selects a second device proximate to the client device by using information from a user profile associated with the client device. The server then proceeds to establish a connection between the client device and the participant device.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Case Analysis

[0002] This application is a divisional application of Chinese Invention Patent Application No. 201680024522.2, filed on July 13, 2016. Background Technology

[0003] This disclosure relates to telecommunications services. Telecommunications takes many forms, such as signal exchange via physical media (e.g., telephone cables) and signal exchange via electromagnetic waves. Telecommunications involves at least two entities and was prevalent in the era of mobile phone devices that allowed voice communication between two or more entities. The inconvenience of mobile voice communication occurs when a conversation is terminated due to unreliable signal quality encountered by one of the participants. In conventional systems, the user experiencing connection problems must redial the other party. The moment of low signal integrity that causes the disconnection may last only a few seconds, but the effort to redial and successfully reconnect to the other party may take several minutes, especially if the other party is also redialing. Summary of the Invention

[0004] One embodiment of this disclosure provides a method for resuming a communication session between a client device and a participating device. The method includes: detecting, via a server device running a central service, that a client device has lost connection with a participating device; maintaining a network connection with the participating device; retrieving user profiles and device statistics associated with the client device from a database; using information from the user profiles and device statistics to select a second device that is close to the client device; and resuming the communication session between the second device and the participating device.

[0005] Another embodiment of this disclosure provides a server configured as a central service for conducting communication sessions and configured to coordinate messages within the communication sessions. The server includes: at least one network interface configured to communicatively couple the server to multiple communication networks; and at least one processor configured to: store, retrieve, and analyze network, device, and user profile parameters in a database; maintain a connection with the at least one device when another device is no longer active in the communication session; provide a connection to a second device; and collect and classify parameters related to the communication session and the devices participating in the communication session.

[0006] Another embodiment of this disclosure provides a non-transitory computer-readable storage device for restoring a communication session between a client device and a participating device, the computer-readable storage device having computer-executable instructions for performing the following steps: determining that the client device has dropped out of the communication session; maintaining a network connection with the participating device at a server between the client device and the participating device; retrieving a user profile and device parameters associated with the client device via the server; using information from the user profile and device parameters to select a second device close to the client device; and restoring the communication session between the second device and the participating device. Attached Figure Description

[0007] Figure 1 This is a block diagram illustrating a communication system according to some example embodiments;

[0008] Figure 2 The illustration shows, according to some example embodiments, in Figure 1 A block diagram of the components of the client device in the system shown;

[0009] Figure 3 The illustration shows, according to some example embodiments, in Figure 1 A block diagram of the server components in the system shown.

[0010] Figure 4 This is a flowchart based on certain embodiments of providing steps for connecting two devices in a communication session, performed by a server or server cluster;

[0011] Figure 5 This is a flowchart illustrating data collection and database creation at a server, based on some example embodiments.

[0012] Figure 6 This is a flowchart of method steps for reconnecting a second device to a communication session, performed by a server or server cluster according to some example embodiments;

[0013] Figure 7 It is a flowchart of method steps for reconnecting a second device or client device to a participating device, performed by a server or server cluster according to some example embodiments;

[0014] Figure 8 This is a flowchart illustrating the steps of a method performed by a server or server cluster, according to some example embodiments, to reconnect a client device to a participating device via an alternative network; and

[0015] Figure 9 This is a flowchart illustrating the steps of collecting and sending data performed by a client device according to some example embodiments. Detailed Implementation

[0016] This disclosure relates to maintaining disconnected communication sessions. This feature is particularly important because, for example, in mobile phone communications, a mobile user is expected to have less than ideal network coverage throughout the length of a phone conversation. In one instance, a user might be driving to work while having a conversation, and along the way, the user might pass through areas with inconsistent network coverage quality, causing the call to drop. In another scenario, the user might be driving through a tunnel, causing the call to drop. In yet another scenario, the user might be making a video call on their computer, and the call might drop. Therefore, methods and services for maintaining calls are valuable.

[0017] According to various embodiments, the communication session can be a telephone call via PSTN (Public Switched Telephone Network), a cellular phone call, a voice call via IP (Internet Protocol), and / or a voice and video call via IP, etc. According to various embodiments, when a first user and a second user are communicating over the network, the first user may disconnect from the communication session. This document describes a system and method for maintaining the communication session connection on the server side when the first user is disconnected for any reason. When the first user disconnects, the server managing the communication session maintains the connection with the second user until the first user becomes available, rather than terminating the communication session.

[0018] Examples of networks include mobile or cellular networks using various coding schemes, such as Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), and Global System for Mobile Communications (GSM). The network is not limited to cellular networks but includes any network that supports voice or video communication. Furthermore, the network can include various network types and connectivity types between the first user and the second user. In some embodiments, the server includes at least one computing device that supports and provides services for voice and / or video communication between the first user and the second user.

[0019] In some embodiments, the communication session can be a conference call between a first user and multiple other users. In one example, the conference call continues even when the first user leaves the coverage area or drops out of the communication session, and the first user is allowed to reconnect when they re-enter the coverage area.

[0020] In some embodiments, the first user may be moving through multiple network coverage areas, with some areas lacking signal between these different coverage areas. The server detects movement from one coverage area to another, and then maintains the connection with the second user and provides the first user with the ability to automatically reconnect to the existing connection. In some embodiments, the first user can dial a specific phone number to reconnect to the communication session. In some embodiments, this specific phone number is associated with a user account or communication service, and in the event of a disconnection, a password or code is required to rejoin an active communication session when calling this specific phone number. In some embodiments, the first user can reconnect via software services provided by the server when initially connecting to the communication session. In some embodiments, the first user can reconnect via text messages, email, or a multimedia messaging service (MMS), as described in more detail herein.

[0021] In some embodiments, the server determines that a first user may lose connection at some point in the future based on the user's historical mobility patterns. By anticipating connectivity issues with the first user, the server maintains connectivity with a second user after the first user disconnects. Once the first user regains better reception, the first user can reconnect to the existing communication session with the second user. In some embodiments, the server decides to disconnect the first user from the communication session first because it detects that the first user is on a mobile device with low battery. The server then searches for another device associated with the first user that is close to the first user and reconnects that other device to an active communication session. In some embodiments, this other device is selected from a list of devices associated with the first user's profile. This other device can be a mobile phone, smartphone, landline, personal digital assistant (PDA), mobile computer, desktop computer, or any other device capable of voice or video communication over a network.

[0022] In some embodiments, the server determines that a first user will lose connection to the communication session based on the user's mobility pattern. The server then provides an alternative route by playing an audio message or sending a text or email message to the first user, thus preventing the first user from losing connection.

[0023] In some embodiments, when the first user disconnects, the second user suspends. When the second user suspends, the communication session is terminated, and the server does not attempt to reconnect the first user.

[0024] In some embodiments, when the first user disconnects, a second user is offered the option to leave a message for the first user. If the second user chooses to take this option and leaves a message for the first user, the server does not attempt to reconnect to the first user. The second user's message becomes available in the first user's mailbox. Examples of the first user's mailbox include voicemail systems. The transcribed voice message can also be sent to the first user's email address, or it can be sent to the first user via a multimedia messaging service (MMS) or a short message service (SMS).

[0025] In some embodiments, when the first user disconnects from the communication session, the server provides a message to the second user to notify the second user that the first user is in an area without coverage. The message may be an audio message, which is a voice message, music, a beep, a series of beeps, or one of other types of sounds. Among other things, the message may also be text-based, i.e., an email, a multimedia message, or a text message. The second user can then choose to wait for the first user to be added to an active connection, leave a message for the first user, or suspend. The server maintains the connection with the second user until the first user is reconnected, the communication session is idle for a predetermined timeout period, or the second user suspends.

[0026] Figure 1 This is a block diagram of a communication system 100 according to certain embodiments of the present disclosure. System 100 includes a server or server cluster 102, one or more client devices (labeled 104-1 to 104-n), participating devices 106, multiple network connections (labeled 108-1 to 108-m) linking client devices 104-1 to 104-n to one or more servers 102, one or more databases 110, and a network connection 112 between the one or more servers 102 and the participating devices 106. Network connection 112 is shown as, for example, a Session Initiation Protocol (SIP) network, but can be any type of network.

[0027] The client device or multiple client devices 104 and the participating device 106 can be any type of communication device supporting voice or video communication, including: telephone, mobile phone, smartphone, personal computer, laptop computer, smartwatch, picture frame with transmitter and microphone, smart TV, video game system, personal digital assistant (PDA), one or more wearable or embedded digital devices, etc. In some embodiments, the client device 104 and the participating device 106 can support multiple types of networks. For example, the client device 104 and the participating device 106 can have WiFi connectivity that allows voice calls via the Internet using VoIP or mobile network connectivity that allows voice calls via cellular and data networks.

[0028] Figure 2 This is a block diagram of the basic functional components of a client device 104 according to some aspects of this disclosure. Figure 2 In the illustrated embodiment, client device 104 includes one or more processors 202, memory 204, network interface 206, storage device 208, power supply 210, one or more output devices 212, one or more input devices 214, and software modules (operating system 216, network monitor 218, and data collector 220) contained in memory 204. The software modules are provided to be contained in memory 204, but in some embodiments, the software modules are contained in storage device 208 or a combination of memory 204 and storage device 208. The various components (including processor 202, memory 204, network interface 206, storage device 208, power supply 210, output devices 212, input devices 214, operating system 216, network monitor 218, and data collector 220) are physically, communicatively, and / or operatively interconnected to enable inter-component communication.

[0029] As shown, processor 202 is configured to perform functions and / or process instructions to be executed within client device 104. For example, processor 202 executes instructions stored in memory 204 or on storage device 208. Memory 204, which may be a non-transitory computer-readable storage medium, is configured to store information within client device 204 during operation. In some embodiments, memory 204 includes temporary memory, which is an area for information that does not need to be maintained when client device 104 is turned off. Examples of such temporary memory include volatile memory, such as random access memory (RAM), dynamic random access memory (DRAM), and static random access memory (SRAM). Memory 204 also holds program instructions to be executed by processor 202.

[0030] Storage device 208 also includes one or more non-transitory computer-readable storage media. Storage device 208 is typically configured to store a larger amount of information than memory 204. Storage device 208 may be further configured to store information permanently. In some embodiments, storage device 208 includes non-volatile storage elements. Non-limiting examples of non-volatile storage elements include magnetic hard disks, optical disks, floppy disks, flash memory, or various forms of electrically programmable memory (EPROM) or electrically erasable programmable memory (EEPROM).

[0031] Client device 104 uses network interface 206 to communicate via one or more networks 108 (see...) Figure 1The network interface 206 can be a network interface card, such as an Ethernet card, an optical transceiver, a radio frequency transceiver, or any other type of device capable of sending and receiving information. Other non-limiting examples of network interfaces include those in client computing devices. 3G and Wi-Fi wireless devices, as well as Universal Serial Bus (USB).

[0032] Client device 104 includes one or more power sources 210 that supply power to the device. Non-limiting examples of power sources 210 include disposable power sources, rechargeable power sources, and / or power sources derived from nickel-cadmium, lithium-ion, or other suitable materials.

[0033] One or more output devices 212 are also included in client device 104. Output devices 212 are configured to provide output to a user using tactile, audio, and / or video stimuli. Output devices 212 may include a display screen (part of a sensitive screen), a sound card, a video graphics adapter card, or any other type of device for converting signals into an appropriate form that is understandable to humans or machines. Further examples of output devices 212 include speakers (such as headphones), cathode ray tube (CRT) monitors, liquid crystal displays (LCDs), or any other type of device capable of generating understandable output to a user.

[0034] Client device 104 includes one or more input devices 214. Input devices 214 are configured to receive input from a user or the user's surrounding environment via haptic, audio, and / or video feedback. Non-limiting examples of input devices 214 include presence-sensitive screens, mice, keyboards, voice response systems, cameras, microphones, or any other type of input device. In some examples, presence-sensitive screens include touch-sensitive screens.

[0035] Client device 104 includes operating system 216. Operating system 216 controls the operation of components of client device 104. For example, operating system 216 facilitates the interaction of one or more processors 202, memory 204, network interface 206, one or more storage devices 208, input device 214, output device 212, and power supply 210.

[0036] Client device 104 uses network monitor 218 to determine its geographic location. Network monitor 218 may interact with and receive input from a GPS transceiver, or network monitor 218 may be the state of processor 202, defined by a series of instructions stored in memory 204 or storage device 208, which, when executed, cause processor 202 to triangulate the geographic location of client device 104 based on any available network connection.

[0037] In some embodiments of this disclosure, client device 104 further includes a data collector 220. In some embodiments, data collector 220 represents various states of processor 202 and is defined by program instructions and / or data stored on memory 204 or storage device 208. Data collector 220 configures client device 104 to access data from network 108 (see...). Figure 1 The data collector 220 collects network quality parameters, device parameters, and location data. Once quality parameters and other information are collected for a specific wireless network, the data collector 220 configures the client device 104 to upload the collected parameters and location data regarding the location of the client device 108 to the server 102 (see [link to server 102]). Figure 1 ).

[0038] Various networks 108 represent a connectivity approach and can take multiple topological forms. For example, network 108 includes wireless and wired networks. Network 108 links server 102 and user equipment 104. Network 108 includes the infrastructure supporting the links required for voice communication between at least one user equipment and participating equipment. Network 108 may include cell towers, base stations, and switching networks.

[0039] One or more servers 102 are at least one machine that provides operation management and services for a voice or video communication session between a participating device 106 and a user device 104. The servers have access to multiple databases 110 and other facilities supporting the features described herein.

[0040] According to some embodiments, the device to be included in the client device 104 is as follows: Figure 2 Similar elements shown may also be included in the participating device 106.

[0041] Go to Figure 3A block diagram illustrating components of a server 102 according to certain aspects of this disclosure is provided. The server 102 includes one or more processors 302, memory 304, one or more network interfaces 306, one or more storage devices 308, and software modules (media manager 310, connectivity service router 312, data organizer 314, and database editor 316) contained in memory 304. The software modules are provided to be contained in memory 304, but in some embodiments, the software modules are contained in storage device 308 or a combination of memory 304 and storage device 308. In some embodiments, the various components (including one or more processors 302, memory 304, one or more network interfaces 306, one or more storage devices 308, media manager 310, connectivity service router 312, data organizer 314, and database editor 316) are physically, communicatively, and / or operatively interconnected to enable inter-component communication.

[0042] One or more processors 302, similar to one or more processors 202 in client device 104, are configured to implement functions and / or process instructions to be executed within server 102. For example, one or more processors 302 execute instructions stored in memory 304 or on storage device 308. Memory 304, which may be a non-transitory computer-readable storage medium, is configured to store information within server 102 during operation. In some embodiments, memory 304 includes temporary memory, which is an area for information that does not need to be maintained when server 102 is shut down. Examples of such temporary memory include volatile memory, such as random access memory (RAM), dynamic random access memory (DRAM), and static random access memory (SRAM). Memory 304 also holds program instructions to be executed by one or more processors 302.

[0043] Server 102 uses one or more network interfaces 306 via one or more networks (described as...) Figure 1 The server 102 communicates with external devices via network 108 and SIP network 112. This network may also include one or more wireless networks, wired networks, fiber optic networks, and other types of networks that can be used to establish communication between the server 102 and external devices. One or more network interfaces 306 may be network interface cards, such as Ethernet cards, optical transceivers, radio frequency transceivers, or any other type of device capable of sending and receiving information.

[0044] Storage device 308 in server 102 may also include one or more non-transitory computer-readable storage media. Storage device 308 is typically configured to store a larger amount of information than memory 304. Storage device 308 may be further configured to store information permanently. In some examples, storage device 304 includes non-volatile storage elements. Non-limiting examples of non-volatile storage elements include magnetic hard disks, optical disks, floppy disks, flash memory, resistive memory, or various forms of electrically programmable memory (EPROM) or electrically erasable programmable memory (EEPROM).

[0045] Server 102 further includes instructions to implement Media Manager 310, which is configured to provide media services to client device 104 or participating device 106. Media Manager 310 manages the provision of SMS, MMS, and email messages in association with information alerting external devices related to call status. For example, when client device 104 drops out of a communication session, Media Manager 310 alerts participating device 106 requesting voice or video messages. Media Manager 310 also provides media services if client device 104 receives guidance to remain in a certain area to avoid losing connection to the communication session. In some embodiments, Media Manager 310 facilitates communication between client device 104 and participating device 106. For example, Media Manager 310 filters, compresses, and encrypts voice or video data destined for various external devices. In some embodiments, when participating device 106 chooses to leave a voice message, Media Manager 310 is further configured to transcribe, package, and then send the voice message to an email address. The transcribed voice message may be an email attachment or an email body. In some aspects where the transcribed voice message is part of the email body, an attachment to the voice message may be included in the email. In some embodiments, an SMS or MMS message may be composed instead of an email and sent to at least one client device 104. The method of delivering voice messages to disconnected users can be configured in the user's profile preferences.

[0046] Connection service router 312 is configured to manage the connection between client device 104 and participant device 106. When client device 104 sends a communication signal to one or more servers 102 to initiate a communication session with participant device 106, connection service router 312 is configured to route client device 104 to the appropriate participant device 106 based on the received communication signal. In some embodiments, connection service router 312 is further configured to prepare and provide software services to automatically reconnect client device 104 in the event that client device 104 has dropped out of the communication session. For example, client device 104-1 is a smartphone communicating with participant device 106. Connection service router 312 can provide or initiate a software service running on client device 104-1 or a default second client device 104-3, which causes one of the devices to send a communication signal to one or more servers 102 in the event that client device 104-1 has dropped out of the communication session. In some aspects of this disclosure, the connection service router 312 is further configured to prepare different identifiers or numbers for the communication session between the client device 104 and the participating device 106. The connection service router 312 then provides the different number or identifier to the media manager 310 for packaging and sending to the client device 104.

[0047] Data organizer 314 configures one or more servers 102 to organize data from multiple networks 108 (see...). Figure 1 The data organizer 314 receives device and network parameters sent by multiple client devices 104. Client devices 104 are configured to upload collected location information (when device and network parameters are collected) and the actual collected parameters to server 102. The data organizer 314 associates the received location information with the reported parameters, thereby associating the location information from client devices 104 with the corresponding device and network parameters. The data organizer 314 further associates timestamps with the received location information and the collected parameters. In some embodiments, the timestamps are received from client devices 104; however, in other embodiments, the timestamps are generated by server 102. The data organizer 314 is further configured to aggregate all received device and network parameters for each location and each timestamp.

[0048] Database editor 316 configures server 102 to create database entries for each client device 104 associated with a user account during a specific time window. These database entries are stored in database 110. In some embodiments, for each specific time window, if client device 104 drops out of a communication session, database editor 316 specifies a default second client device to connect to. The default second client device is determined by analyzing parameters collected by data organizer 314. In some embodiments, the default second client device is determined by selecting the device closest to client device 104. In some embodiments, device capabilities are considered. For example, if a video communication session is in progress with client device 104-1, the default second client device could be selected as client device 104-2, which has the capability to provide and maintain a video call. In some embodiments, the performance characteristics of the second device are considered. For example, one device's network interface 206 may have a faster speed than another device.

[0049] Figure 4 Steps for establishing a communication session performed by one or more servers 102 are provided according to some embodiments of the present disclosure. Steps 402 and 404 indicate that a voice or video communication session can be requested from either client device 104 or participating device 106. In some aspects of the present disclosure, one or more servers 102 receive a request to establish a communication session from client device 104 in step 402. In some embodiments, one or more servers 102 may provide a reconnection service to client device 104, as described in step 406. Some examples of the reconnection service include: initiating a software service on client device 104 that includes: a certificate and a program to automatically dial or attempt to reconnect to the communication session when the connection is lost; an SMS, email, or MMS containing a different number that the user can call in the event of a connection loss; and an SMS, email, MMS, or voice media containing a PIN, password, or a password associated with the communication session. In step 408, one or more servers 102 connect client device 104 to participating device 106 and establish a communication session. After step 408, client device 104 and participating device 106 can exchange information through a communication session. In step 410, one or more servers monitor the communication session between the client device and the participating device. One or more servers 102 collect information about the call.

[0050] Figure 5Examples are provided of how one or more servers 102 collect and package information regarding certain embodiments of this disclosure. In step 502, one or more servers 102 receive location information from client device 104. In some embodiments, one or more servers 102 receive multiple locations from multiple client devices 104 not involved in the communication session. In some embodiments, the servers use the location information from multiple client devices not involved in the communication session to edit the ranking of client devices 104 to be connected in the event of a disconnection from an already connected client device 104. For example, if client device 104-1 is in a communication session with participant device 106, one or more servers 102 may receive location data from client devices 104-2 through 104-9. Additionally, one or more servers 102 may determine, based on the locations of client devices 104-1 through 104-9, that client device 104-5 is the closest device to client device 104-1. In step 502, location information may be obtained from database 110 for client devices currently inactive on the network. For example, client device 104-9 can be designated as a landline telephone with a specific permanent location.

[0051] In step 504, one or more servers receive network performance parameters from multiple client devices 104. In some embodiments, one or more servers receive network performance parameters from intermediate devices, nodes, and machines between client devices 104 and one or more servers 102. For example, one or more servers receive coverage data from a set of base stations or other servers and databases associated with the cellular connection. In step 506, one or more servers receive parameters from client devices 104. In some embodiments, client device parameters include battery life, signal strength, data speed, processor speed, etc. In step 508, a timestamp is associated with location information, received network performance parameters, and received client device parameters. The timestamp indicates the time when data (including location information and parameters) was collected by client device 104 or received by one or more servers 102. If the timestamp indicates the time when data was collected by the client device, the timestamp is applied by client device 104 and sent to one or more servers 102 along with the data. If the timestamp indicates the time when data was received by one or more servers 102, the timestamp is applied by one or more servers 102 when the data is received.

[0052] In step 510, one or more servers 102 aggregate performance parameters and device parameters based on location information and timestamps. Aggregating information from multiple client devices 104 provides performance and associated network parameters, which can be categorized based on their collection location and the time elapsed between when they were collected / uploaded by client devices 104 or received by one or more servers 102. In step 512, one or more servers 102 analyze the aggregated parameters and create or update entries in database 110 for users associated with client devices 104. In some embodiments, updating or changing database 110 may also change one or more parameters in the user profile associated with the user.

[0053] Figure 6 This is a flowchart illustrating the steps performed by a server or server cluster to reconnect a second device to a communication session, according to some example embodiments. Once participant device 106 and client device 104 are in a communication session, in step 410, one or more servers 102 monitor the communication session between the two devices. In step 602, one or more servers 102 determine whether client device 104 has dropped out of the communication session. In the event that client device 104 has suddenly dropped out of the communication session, in step 604, one or more servers 102 maintain the connection with participant device 106 and prevent participant device 106 from disconnecting. The maintained connection is an active communication channel existing between client device 104 and participant device 106. In some embodiments, in step 606, one or more servers 102 play a media message to participant device 106. In some instances, the media message may be in the form of text or email. The media message may notify participant device 106 that client device 104 has disconnected. The media message may also provide a timeout to participating device 106, which is a waiting period during which client device 104 must reconnect before terminating the communication session. The media message may also provide participating device 106 with a prompt to leave a message for client device 104. In some embodiments, the prompt may be timed to occur when the timeout expires. In some embodiments, participating device 106 chooses to leave a message and, after leaving the message, terminates the communication session.

[0054] After playing media to participant device 106, in step 608, one or more servers 102 determine the reason for the disconnection of client device 104. In some embodiments, this determination is based on information contained in database 110. For example, the information in database 110 may include collected parameters that indicate that client device 104 has low battery power, low signal strength, etc. In step 610, one or more servers 102 retrieve the latest location of client device 104. In step 612, one or more servers use the location and information retrieved from the user profile to determine a second device near client device 104. For example, client device 104-1 drops out of a communication session with participant device 106, and one or more servers 102 identify client device 104-3 as the most suitable device to reconnect to the communication session. In another example, one or more servers 102 consider the reason for the disconnection of client device 104-1. For example, after client device 104-1 drops a communication session with participant device 106 on network 108-1, one or more servers 102 identify that client device 104-1 was in an area with poor signal strength before the communication session dropped. Therefore, one or more servers 102 determine that the call dropped due to a lack of network coverage and, based on the network type available in the last location of client device 104-1, identify client device 104-3 as the most suitable device to connect to the communication session. Client device 104-3 on network 108-2 can then be selected to join the communication session. In steps 614 and 616, one or more servers 102 establish a connection with the second device and connect the second device to the communication session with participant device 106.

[0055] In some embodiments, in step 614, one or more servers 102 dial the second device to establish a connection with the second device. In some embodiments, the user dials the number of the second device to connect to one or more servers 102. In some embodiments, the determination of whether one or more servers 102 initiate a connection with the second device or whether the second device initiates a connection with one or more servers 102 is provided in the user profile associated with the different client devices 104.

[0056] In some embodiments, the nature of client device 104 defines the connection method of one or more servers 102. For example, if client device 104-3 is an office landline phone and client device 104-1's last location before disconnection was near an office building, one or more servers 102 will attempt to reconnect to the office number of client device 104-3. A similar scenario applies to home landline phones if client device 104-1's last location was at home. In some embodiments, if client device 104-3 is an office computer or a home computer, depending on the last known location of client device 104-1, one or more servers 102 may attempt voice or video communication sessions with either computer. The computer will need to have wired or wireless network connectivity and programs that support voice and / or video communication over such networks. In some instances, the computer is equipped with programs that support text-to-speech and speech-to-text, enabling text input from client device 104-3 to reach participant device 106 as an audio message and enabling audio messages from participant device 106 to reach client device 104-3 as text messages. The term "computer" encompasses cases where the client device 104-3 is a mobile device (e.g., a tablet or laptop computer with wireless or wired connectivity).

[0057] Figure 7 A flowchart is provided showing the steps performed by a server or server cluster, in some disclosed embodiments, to reconnect a second device or client device to a participating device. In step 410, while one or more servers 102 monitor the communication session between client device 104 and participating device 106, one or more servers 102 may, in step 702, use the collected aggregated data to determine that client device 104 will lose connectivity while monitoring the communication session. This determination or prediction that client device 104 will lose connectivity may be based on historical data. For example, a user of client device 104 may typically have inconsistent reception quality in a certain area while commuting to work, may typically lose reception in their work elevator, or may typically have inconsistent reception quality in certain parts of their home. By using location-based data to provide context, the server can collect information over time about user movement patterns and where voice call drops typically occur. Additionally, the server may use information about mobile network congestion or registered poor network coverage in areas the user is entering to determine the probability that client device 104 will lose connectivity.

[0058] In some embodiments, in step 704, one or more servers 102 provide a warning to both client device 104 and participating device 106. This warning may take the form of an audio voice message or an audio signal (including beeps or a series of beeps). In some embodiments, the warning is provided only to client device 104. For example, if client device 104 is a non-stationary mobile phone, the warning may be an instruction to the user of client device 104 to keep client device 104 within an area of ​​appropriate signal strength. In this example, if the user follows these instructions, client device 104 will not enter an area of ​​low signal strength, thus avoiding a disconnection. In some embodiments, the warning provides an estimated time before the communication session is interrupted by a disconnection, where the estimated time is based on the distance between client device 104 and the area of ​​low signal strength, and the speed of client device 104 calculated from its location history. For example, client device 104 may receive a 30-second notification before the connection is disconnected. With an advance warning, the parties to the communication session will have time to decide whether to end the session or maintain the session until the party to be disconnected reconnects. In some embodiments, the warning is a voice message prompting the user to plug the client device 104 into a power source because the battery charge on the mobile device is low.

[0059] In step 602, one or more servers 102 determine whether the client device 104 has been disconnected from the communication session. Figure 6 As shown, steps 604, 606, 610, and 612 are performed. In the event that client device 104 drops out of the communication session, one or more servers 102 maintain a connection with participant device 106, and, in some embodiments, play media to participant device 106. The one or more servers 102 then retrieve the latest data and information of client device 104 from database 110, which includes user profiles, and select a second device to connect to the communication session.

[0060] In step 706, one or more servers provide dial pad signals to client device 104 and the second device. For example, if client device 104-1 drops out of the communication session and client device 104-3 is selected as the second device, one or more servers 102 will attempt to send dial pad signals to both client device 104-1 and client device 104-3. Depending on which device, client device 104-1 or client device 104-3, attempts to connect to one or more servers 102, and one or more servers 102 will receive the communication signals. In some embodiments, one or more servers 102 receive communication signals from both devices and select only one device. In some embodiments, client device 104-3 is unavailable and one or more servers 102 only receive communication signals from client device 104-1. In step 710, one or more servers establish a communication session between participating device 106 and the selected device.

[0061] According to certain embodiments Figure 8 Provided Figures 6 to 7 Alternative solutions. Figure 8 and Figure 6Steps 410, 602, 604, 606, 608, and 610 are used together. In step 610, after retrieving the latest location of client device 104, one or more servers 102 determine in step 802 that client device 104 is available via an alternative network and send dial pad signals to client device 104 on that alternative network. For example, client device 104-1 drops out of a communication session with participating device 106 connected via network 108-2 with one or more servers 102. One or more servers 102 determine and locate client device 104-1 via network 108-1 and send dial pad signals to client device 104-1 using network 108-1. In step 810, one or more servers then establish a connection with client device 104-1 via network 108-1 and then add client device 104-1 back into the communication session with participating device 106. In some embodiments, client device 104-1 is communicating via a cellular voice network and becomes disconnected. Through WiFi connectivity, one or more servers 102 locate client device 104-1 and attempt to connect to it via the WiFi network. In some embodiments, client device 104-1 is capable of connecting to multiple cellular networks operated by different cellular network operators. When client device 104-1 loses connectivity via a first operator's cellular network, one or more servers 102 connect to client device 104-1 via a second operator's cellular network. In some embodiments where one or more servers 102 connect to client device 104-1 via different networks, client device 104-1 serves (in...) Figures 6 to 7 The function of the second device or the selected device provided in the document. Figure 8 In this process, the disconnected client device 104 eventually becomes the selected device or the second device after one or more servers 102 find a replacement client device 104 on the network.

[0062] Figure 9 This is a flowchart illustrating steps performed by a client device 104, according to certain embodiments, to collect data and send the data to one or more servers 102. To alleviate the information gathering burden on the one or more servers 102, the client device 104 may collect client device and network parameters. In step 902, the client device 104 communicates with a network 108. In step 904, the client device 104 measures network quality parameters from the network 108. Network quality parameters may include only one parameter or a number of parameters. For example, network quality parameters may include at least one of bit error rate, signal strength (such as Received Signal Strength Indicator (RSSI)), network latency, and network throughput.

[0063] In step 906, client device 104 measures device parameters. In step 908, client device 104 provides these two parameters to a storage device on client device 104. In step 910, client device 104 collects network identification information, and in step 912, appends the network identification information to the parameter data collected in steps 904 and 906. In step 914, client device 104 appends location information to the collected parameter data. In step 918, client device 104 sends the collected parameter data to one or more servers 102.

[0064] All references cited in this paper (including publications, patent applications and patents) are incorporated herein by reference as if each reference were individually and specifically cited herein and fully elaborated upon herein.

[0065] In the context of describing the invention (particularly in the context of the following claims), the use of the terms “a,” “an,” “the,” and “at least one,” and similar references, is interpreted as covering both single and multiple items simultaneously, unless otherwise specified herein or obviously contradicted by the context. The use of the term “at least one” (e.g., “at least one of A and B”) after a list of one or more items should be interpreted as meaning one item (A or B) selected from the listed items or any combination of two or more of the listed items (A and B), unless otherwise specified herein or obviously contradicted by the context. The terms “comprising,” “with,” “having,” and “including,” unless otherwise stated, are interpreted as open-ended terms (i.e., meaning “including, but not limited to,”). Statements of numerical ranges herein, unless otherwise indicated herein, are intended only as a convenient way to individually refer to each individual value falling within the range, and each individual value is incorporated into the specification as if it were separately stated herein. All methods described herein may be performed in any suitable order, unless otherwise specified herein or obviously contradicted by the context. The use of any and all examples or exemplary language (e.g., “such as”) provided herein, unless otherwise stated, is intended only to better illustrate the invention and does not limit the scope of the invention. No language in the specification should be construed as indicating that any unstated element is necessary for the implementation of the invention.

[0066] Preferred embodiments of the invention have been described herein, including the best mode known to the inventors for carrying out the invention. Modifications to these preferred embodiments will become apparent to those skilled in the art upon reading the foregoing description. The inventors expect such modifications to be suitably used by those skilled in the art, and intend for the invention to be practiced in a manner different from that specifically described herein. Therefore, as permitted by applicable law, the invention includes all modifications and equivalents of the subject matter set forth in the appended claims. Furthermore, the invention encompasses any combination of the foregoing elements and all possible modifications thereof, unless otherwise specified herein or clearly contradicted by the context.

Claims

1. A method for resuming a communication session between a user and a participant, the method comprising: The server device determines that the user has lost a communication session with the participant by detecting that the user's client device has dropped from the first communication channel between the client device and the participant's device. The server device maintains the network connection to the participating device; The server device retrieves the user's profile and device statistics associated with the client device from the database; The server device selects a second device that is associated with the user profile and is close to the client device based on the user profile and the device statistics. The server device provides dial pad signals to both the client device and the second device; The server device receives at least one communication signal from at least one of the client device and the second device; as well as The communication session between the user and the participant is resumed by the server device through a second communication channel established between the participating device and one of the client devices and the second device that sends one of the at least one communication signal.

2. The method according to claim 1, further comprising: The server device provides media messages to the participating device, wherein the media messages include at least one of the following: voice messages, audio messages, text messages, or video messages from the participating device.

3. The method according to claim 1, further comprising: The server device determines the reason why the client device has lost connection from the first communication channel. The selection of the second device further includes selecting the second device based on the reason why the client device has dropped out of the first communication channel.

4. The method according to claim 1, wherein, The user profile includes the location of the client device, and one or more of the locations or preference settings of multiple devices associated with the user of the client device.

5. The method according to any one of claims 1 to 4, wherein, The device statistics include one or more of the following: battery life, signal strength, available network, or historical information associated with the location of the client device.

6. The method according to claim 1, wherein: Receiving the at least one communication signal includes: The server device receives the communication signals from both the client device and the second device. Resuming the communication session includes: The server device selects one of the client device and the second device to resume the communication session, and The server device resumes the communication session between the user and the participant by establishing a second communication channel between the participant device and the client device and one of the second devices.

7. The method of claim 1, further comprising: Before detecting that the client device has dropped out of the first communication channel The server device determines that the client device may lose connection based on at least one of historical information or location data. as well as The server device provides a warning to both the client device and the participating device.

8. The method according to claim 1, wherein, The client device is connected to the server via a first cellular network operated by a first operator, and the second device is connected to the server via a second cellular network operated by a second operator different from the first operator.

9. A server device for resuming a communication session between a user and a participant, the server device comprising: At least one processor, said at least one processor being configured to: It is determined that the user has lost a communication session with the participant by detecting that the user's client device has dropped from the first communication channel between the client device and the participant's device, which is connected to the server device. Maintain network connectivity to the participating devices; Retrieve the user's profile and device statistics associated with the client device from the database; A second device that is associated with the user profile and is close to the client device is selected based on the user profile and the device statistics. Provide dial pad signals to both the client device and the second device; Receive at least one communication signal from at least one of the client device and the second device; as well as The communication session between the user and the participant is resumed by establishing a second communication channel between the participating device and one of the client devices and the second device that transmits one of the at least one communication signal.

10. The server device of claim 9, further comprising means for performing the method of any one of claims 1 to 8.

11. A computer-readable storage medium encoded with instructions that, when executed, cause one or more processors of a computing device to perform the method according to any one of claims 1 to 8.