Abstract:
Apparatus and methods to evaluate connectivity between a primary device and a secondary device to support a connection for a real-time application to a remote device are disclosed. The primary device receives a connection request from the remote device and sends invitations to one or more secondary devices to connect with the remote device, the invitations sent through a first communication path. A secondary device that receives the invitation sends a connectivity evaluation packet to the primary device through a second communication path. When a connectivity response is received from the primary device through the second communication path and a user accepts the invitation, the secondary device sends an invitation response to the primary device and subsequently establishes a connection to the primary device through the second communication path. In some embodiments, the first communication path includes a cloud-based server that provides a guaranteed delivery message service.
Abstract:
A unified message delivery between multiple devices is disclosed. Sending messages through a local communications link, such as but not limited to at least one of a Bluetooth connection and a peer-to-peer WiFi connection, can lead to faster transmission times and reduced server load. When the local communications link is unavailable or not suitable, the messages can be sent through a network and a push server. In some examples, messages can be sent through both the local communications link and through the network and the push server. Duplicates of a received message can be avoided by utilizing indicators. In some examples, one or more devices can include queue(s) to ensure ordered delivery of a plurality of messages when a local communications link and network connection become unavailable.
Abstract:
A group communications platform facilitates that sharing of an application environment with other users. The platform may receive a request to initiate a group session for a local user and a remote user. An out-of-process network connection with a system communication channel between a local computing device associated with the local user and a remote computing device associated with the remote user may be established for the group session. A system call may be received from a local instance of a first application on the local computing device to transfer local data to a remote instance of the first application on the remote computing device via the out-of-process network connection. The local data may be transferred to the remote instance of the first application on the remote computing device via the out-of-process network connection and the system communication channel. The local data may include state data of the local instance of the first application for updating a state of the remote instance of the first application.
Abstract:
A quick relay communication protocol is used by an initiating communication device (such as a wearable electronic device, e.g., a smart watch) and/or a recipient communication device (such as a companion electronic device to the wearable electronic device, e.g., a smart phone, a tablet computer or a laptop computer) to selectively communicate messages via different communication channels. Based on available connections and a communication constraint associated with a message, a processor executing a program module in an application layer in the initiating communication device provides transmission instructions to an interface circuit in the initiating communication device, which transmits a message to the recipient communication device based on the transmission instructions. When there are currently no available connections and the message is eligible to be communicated through a cloud-based relay server, the processor establishes a cloud-based connection with the recipient communication device via the relay server.
Abstract:
A device implementing the subject technology may include at least one processor configured to receive downlink condition reports from device, each downlink condition report indicating a downlink channel condition of a respective device. The at least one processor is further configured to determine an uplink channel condition for each of the devices. The at least one processor is further configured to determine, for each respective device and based at least in part on the downlink condition reports and the uplink channel conditions, quality tiers, each of the quality tiers indicating a quality of at least one of an audio stream or a video stream. The at least one processor is further configured to provide for transmission, to each respective device, the quality tiers determined for the respective device.
Abstract:
Techniques are disclosed relating to multiway communications. In some embodiments, a first electronic device initiates a multiway call between a plurality of electronic devices and exchanges a first secret with a first set of electronic devices participating during a first portion of the multiway call, the first secret being used to encrypt traffic between the first set of electronic devices. The first electronic device receives an indication that first set of participating electronic devices has changed and, in response to the indication, exchanges a second secret with a second set of electronic devices participating during a second portion of the multiway call, the second secret being used to encrypt traffic between the second set of participating electronic devices. In some embodiments, the indication identifies a second electronic device as leaving the multiway call, and the second secret is not exchanged with the second electronic device.
Abstract:
A device implementing the subject technology may include at least one processor configured to establish a group communication session for two or more electronic devices utilizing a first communication modality. The at least one processor may be further configured to determine to utilize a second communication modality for the group communication session. The at least one processor may be further configured to transition the group communication session from the first communication modality to the second communication modality.
Abstract:
A device implementing the subject technology may include at least one processor configured to receive an indication of a task being performed at an other device. The at least one processor is further configured to perform, in response to receipt of the indication, one or more preliminary operations in anticipation of receiving a handoff of the task. The at least one processor is further configured to receive, after performing the one or more preliminary operations, a notification that the task is being handed off. The at least one processor is further configured to receive the handoff of the task from the other device. The at least one processor is further configured to continue to perform the task based at least in part on the one or more preliminary operations that were performed prior to receiving the notification that the task is being handed off.
Abstract:
Techniques are disclosed relating to multiway communications. In some embodiments, a first electronic device initiates a multiway call between a plurality of electronic devices and exchanges a first secret with a first set of electronic devices participating during a first portion of the multiway call, the first secret being used to encrypt traffic between the first set of electronic devices. The first electronic device receives an indication that first set of participating electronic devices has changed and, in response to the indication, exchanges a second secret with a second set of electronic devices participating during a second portion of the multiway call, the second secret being used to encrypt traffic between the second set of participating electronic devices. In some embodiments, the indication identifies a second electronic device as leaving the multiway call, and the second secret is not exchanged with the second electronic device.
Abstract:
A unified message delivery between multiple devices is disclosed. Sending messages through a local communications link, such as but not limited to at least one of a Bluetooth connection and a peer-to-peer WiFi connection, can lead to faster transmission times and reduced server load. When the local communications link is unavailable or not suitable, the messages can be sent through a network and a push server. In some examples, messages can be sent through both the local communications link and through the network and the push server. Duplicates of a received message can be avoided by utilizing indicators. In some examples, one or more devices can include queue(s) to ensure ordered delivery of a plurality of messages when a local communications link and network connection become unavailable.