Abstract:
A system and method for conducting a video call between an originating device and a terminating device by establishing a peer-to-peer (P2P) connection between the devices. The originating and terminating devices exchange candidate information through a P2P server, except that the candidate information for the terminating device is altered before arriving at the originating device. The altering includes changing the IP address and corresponding port for each candidate. The originating device uses the altered candidate information to derive new candidate pairs that are sent to the terminating device, which uses the new candidate pairs to also derive a second candidate list. If the candidate pairs match, a P2P connection is established between the devices.
Abstract:
A method for adaptive audio codec selection during a communication session is disclosed. The method can include negotiating a set of audio codecs for use during the communication session. The method can further include defining multiple audio tiers. Each audio tier can be associated with a network condition and can define an audio codec from the set of audio codecs for use in the associated network condition. The method can also include using a first audio codec during the wireless communication session. The method can additionally include determining a changed network condition selecting a second audio codec by determining the audio tier corresponding to the changed network condition. The method can further include, in response to the changed network condition, switching from the first audio codec to a second audio codec that is defined by an audio tier having an associated network condition corresponding to the changed network condition.
Abstract:
A wireless device described herein can use information on data flow, in addition to indications from the physical network, to decide on suitable bandwidth usage for audio and video information. This data flow information is further used to determine an efficient network route to use for high-quality reception and transmission of audio and video data, as well as the appropriate time to switch between available network routes to improve bandwidth performance.
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:
The subject technology provides a video conferencing application in which a live incoming or outgoing video stream can be supplemented with supplemental content, such as stickers, animations, etc., from within the video conferencing application. In this manner, a user participating in a video conferencing session with a remote user can add stickers, animations, and/or adaptive content to an outgoing video stream being captured by the device of the user, or to an incoming video stream from the device of the remote user, without having to locally cache/store a video clip before editing, and without having to leave the video conferencing session (or the video conferencing application) to access a video editing application.
Abstract:
Establishing a communication channel via a relay server with reduced setup time. Upon request by an initiating communication device a relay allocation server may allocate a single relay server for use in a communication session between the initiating communication device and one or more recipient communication devices. The relay server may be selected to perform favorably for the initiating communication device. Messaging for establishment of the communication session may be performed using persistent messaging connections, to avoid connection establishment cost. Messaging may also be performed using address tokens to avoid the cost of discovering global IP addresses. Following establishment of the communication session, the relay server may discover the IP address of one or more recipient communication devices, and may initiate reallocation of those devices to another relay server.
Abstract:
Computing devices may implement instant video communication connections for video communications. Connection information for mobile computing devices may be maintained. A request to initiate an instant video communication may be received, and if authorized, the connection information for the particular recipient mobile computing device may be accessed. Video communication data may then be sent to the recipient mobile computing device according to the connection information so that the video communication data may be displayed at the recipient device as it is received. New connection information for different mobile computing devices may be added, or updates to existing connection information may also be performed. Connection information for some mobile computing devices may be removed.
Abstract:
A uniform protocol can facilitate secure, authenticated communication between a controller device and an accessory device that is controlled by the controller. An accessory and a controller can establish a pairing, the existence of which can be verified at a later time and used to create a secure communication session. The accessory can provide an accessory definition record that defines the accessory as a collection of services, each service having one or more characteristics. Within a secure communication session, the controller can interrogate the characteristics to determine accessory state and/or modify the characteristics to instruct the accessory to change its state.
Abstract:
Computing devices may implement instant video communication connections for video communications. Connection information for mobile computing devices may be maintained. A request to initiate an instant video communication may be received, and if authorized, the connection information for the particular recipient mobile computing device may be accessed. Video communication data may then be sent to the recipient mobile computing device according to the connection information so that the video communication data may be displayed at the recipient device as it is received. New connection information for different mobile computing devices may be added, or updates to existing connection information may also be performed. Connection information for some mobile computing devices may be removed.
Abstract:
Some embodiments provide a method for initiating a video conference using a first mobile device. The method presents, during an audio call through a wireless communication network with a second device, a selectable user-interface (UI) item on the first mobile device for switching from the audio call to the video conference. The method receives a selection of the selectable UI item. The method initiates the video conference without terminating the audio call. The method terminates the audio call before allowing the first and second devices to present audio and video data exchanged through the video conference.