Seamless continuation of communication sessions
By achieving seamless state transfer between devices in a network environment, the user experience problem during device switching in the prior art is solved, seamless device switching in group communication sessions is realized, and user experience and flexibility between devices is improved. sex.
Patent Information
- Application Number
- CN202380039207.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-02-23
- Filing Date
- 2023-05-09
- Publication Date
- 2024-12-20
AI Technical Summary
The prior art cannot seamlessly switch to different devices in a communication session, resulting in the user having to leave or end the current session when replacing the device, rejoin the new device, affecting the user experience.
By implementing seamless state transfer between devices in a network environment, using the server to manage user account information and communication data, ensuring that the communication session status is transferred from the first device to the second device while being transparent to other participants.
It realizes seamless device switching in group communication sessions, improves user experience, allows users to replace devices without interrupting communication sessions, and enhances flexibility and convenience between devices.
Smart Images

Figure CN119174140A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of U.S. Provisional Patent Application Serial No. 63 / 340,415, filed on May 10, 2022, entitled “SEAMLESS CONTINUATION OF COMMUNICATIONS SESSIONS,” which is hereby incorporated by reference in its entirety and made a part of this U.S. utility model patent application for all purposes. Technical Field
[0003] The present specification relates generally to group communications on electronic devices, and more particularly to seamless continuation of conference sessions on other devices. Background Art
[0004] Electronic devices (such as laptops, tablets, or smart phones) can be configured to participate in group communication sessions. For example, video communication sessions allow people in remote locations to each view each other's video streams in real time. BRIEF DESCRIPTION OF THE DRAWINGS
[0005] Certain features of the subject technology are set forth in the appended claims. However, for illustrative purposes, several specific implementations of the subject technology are set forth in the following figures.
[0006] Figure 1 An example network environment for a conference session in accordance with one or more implementations is illustrated, wherein the conference session can be handed off from a first electronic device of a user account to a second electronic device of the user account.
[0007] Figure 2 Example electronic devices are depicted that may implement the subject methods and systems according to one or more implementations.
[0008] Figure 3 Depicted are example timing diagrams in which a video communication session may be transferred from a first device to a second device according to one or more implementations.
[0009] Figure 4 Describes a method according to one or more specific implementations Figure 3 , where a participant may be first presented with a first video feed from a first device of a user account and then a second video feed.
[0010] Figure 5 An example environment for transferring a video communication session from a first device to a second device according to one or more implementations is depicted.
[0011] Figure 6A sequence diagram depicts an example sequence for transferring a conferencing session from a first device to a second device according to one or more implementations.
[0012] Figure 7 A flow diagram is depicted of an example process for authenticating a new device for a user account with a current device for the user account in accordance with one or more implementations.
[0013] Figure 8 A flow diagram is depicted of an example process for authenticating a new device of a user account with a participant's device in accordance with one or more implementations.
[0014] Fig. 9 Example electronic devices are depicted that can be used to implement aspects of the present disclosure according to one or more implementations. DETAILED DESCRIPTION
[0015] The specific description shown below is intended to be a description of various configurations of the subject technology and is not intended to represent the only configuration that the subject technology can be practiced. The accompanying drawings are incorporated herein and constitute a part of the detailed description. The detailed description includes specific details intended to provide a thorough understanding of the subject technology. However, the subject technology is not limited to the specific details described herein, and one or more other specific implementations can be used to practice. In one or more specific implementations, structures and components are shown in block diagram form to avoid blurring the concepts of the subject technology.
[0016] Electronic devices may be configured to transmit and receive data between each other to participate in a communication session (e.g., a video call, an audio call, etc.) with one or more other similarly configured electronic devices. Participants in a communication session may have multiple electronic devices (e.g., smart phones, laptops, tablets, etc.) that can be used to participate in the communication session. However, participants generally cannot change which device is being used in a particular communication session while the communication session is ongoing. Participants will first have to leave or end the communication session with the current device and then join the communication session or start a new communication session with the new device in order to use the new device in the communication session.
[0017] In the subject system, a handover process is provided for seamless continuation of a communication session from a first device to a second device. In one or more specific implementations, the first device and the second device can both be registered to the same user account. The handover allows the state of the communication session to be transferred from the first device to the second device while leaving the communication session substantially unaffected for other participants of the communication session.
[0018] Figure 1A network environment 100 for a conference session is illustrated according to one or more implementations, wherein the conference session is switched from a first electronic device 102 of a user account to a second electronic device 104 of the user account. However, not all of the depicted components may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Changes in the arrangement and types of these components may be made without departing from the spirit or scope of the claims set forth herein. Additional components, different components, or fewer components may be provided.
[0019] The network environment 100 may include an electronic device 102, an electronic device 104, an electronic device 112, and one or more servers (such as server 110). A network 108 may communicatively couple (directly or indirectly) the electronic device 102, the electronic device 104, the electronic device 112, and / or the server 110. In one or more specific implementations, the network 108 may be an interconnected network of devices that may include the Internet or be communicatively coupled to the Internet. For purposes of explanation, the network environment 100 is described in detail in detail in FIG. Figure 1 1. The network environment 100 is illustrated as including electronic device 102, electronic device 104, electronic device 112, and server 110; however, the network environment 100 may include any number of electronic devices and / or any number of servers that are communicatively coupled to each other directly or via the network 108.
[0020] The electronic device 102 may be, for example, a desktop computer; a portable computing device such as a laptop, a smart phone, a peripheral device (e.g., a digital camera, a headset), a tablet device, stand-alone video conferencing hardware, a wearable device (such as a watch, a wristband, etc.); or any other suitable device including, for example, one or more wireless interfaces, such as a WLAN radio, a cellular radio, a Bluetooth radio, a Zigbee radio, a near field communication (NFC) radio, and / or other wireless radios. In one or more specific implementations, the electronic device 102 may include a conferencing module (and / or circuitry) and one or more applications. Figure 1 In the embodiment, by way of example, the electronic device 102 is depicted as a smart phone. The electronic device 102 may be and / or may include the following Fig. 9 In one or more specific implementations, the electronic device 102 may include a camera and a microphone, and may provide a conference module or application for obtaining and / or exchanging user communication data (such as an audio stream and / or a video stream) through the network 108, such as providing a corresponding conference module or application installed and accessible at, for example, the electronic device 104 and / or the electronic device 112.
[0021] The electronic device 104 may be, for example, a portable computing device such as a laptop computer, a smart phone, a peripheral device (e.g., a digital camera, a headset), a tablet device, a wearable device (e.g., a watch, a wristband, etc.); any other suitable device including, for example, one or more wireless interfaces, such as a WLAN radio device, a cellular radio device, a Bluetooth radio device, a Zigbee radio device, an NFC radio device, and / or other wireless radio devices. In one or more specific implementations, the electronic device 104 may include a conferencing module and one or more applications. Figure 1 In the embodiment, the electronic device 104 is depicted as a laptop computer by way of example. The electronic device 104 may be and / or may include the following Fig. 9 In one or more specific implementations, the electronic device 104 may include a camera and a microphone, and may provide a conference module for obtaining and / or exchanging user communication data (such as an audio stream and / or a video stream) through the network 108, such as providing a corresponding conference module installed and accessible at, for example, the electronic device 102 and / or the electronic device 112. The electronic device 104 may be in a position 106 near the electronic device 102 for transmitting and / or receiving messages directly with the electronic device 102, such as Bluetooth messages or other near field communications.
[0022] The electronic device 112 may be, for example, a portable computing device such as a laptop computer, a smart phone, a peripheral device (e.g., a digital camera, a headset), a tablet device, a wearable device (e.g., a watch, a wristband, etc.); any other suitable device including, for example, one or more wireless interfaces, such as a WLAN radio device, a cellular radio device, a Bluetooth radio device, a Zigbee radio device, an NFC radio device, and / or other wireless radio devices. In one or more specific implementations, the electronic device 112 may include a conferencing module and one or more applications. Figure 1 In the embodiment, the electronic device 112 is depicted as a smart phone by way of example. The electronic device 112 may be and / or may include the following Fig. 9 In one or more specific implementations, the electronic device 112 may include a camera and a microphone, and may provide a conference module or application for obtaining and / or exchanging user communication data (such as an audio stream and / or a video stream) through the network 108, such as providing a corresponding conference module or application installed and accessible at, for example, the electronic device 104, the electronic device 102, and / or the electronic device 112.
[0023] In one or more specific implementations, such as during a group communication session (e.g., an audio conference session or a video conference session), one or more servers (such as conference server 110) may perform operations for managing the secure exchange of user communication data and / or communication session data between various electronic devices (such as electronic device 102, electronic device 104, and / or electronic device 112). In some variations, conference server 110 is a relay server (e.g., a fast relay server). In some variations, conference server 110 includes one or more app-specific modules (e.g., plug-ins) that perform operations for corresponding applications. In some variations, conference server 110 includes one or more push modules for providing asynchronous notifications (e.g., publish-subscribe messaging) to one or more electronic devices.
[0024] In one or more specific implementations, conference server 110 may store account information (e.g., account, handle, or any other account-specific data) associated with electronic device 102, electronic device 104, electronic device 112, and / or users of these devices. In one or more specific implementations, one or more servers (such as server 110) may provide content (e.g., media content, application content, or any other suitable data) to be processed at participant devices (e.g., electronic device 102, electronic device 104, electronic device 112) by applications of the participant devices.
[0025] Figure 2 Electronic devices that can implement the subject methods and systems according to one or more specific implementations are depicted. For the purpose of explanation, this article mainly refers to Figure 1 The electronic device 102 is described Figure 2 However, this is merely illustrative and Figure 2 The features of the electronic device of the present invention may be implemented in any of the electronic device 104 and / or the electronic device 112 or another electronic device for implementing the subject technology. However, not all of the components depicted may be used in all specific implementations, and one or more specific implementations may include additional or different components than those shown in the figures. Changes in the arrangement and type of these components may be made without departing from the spirit or scope of the claims listed herein. Additional components, different components, or fewer components may be provided.
[0026] The electronic device 102 may include one or more of a host processor 202, a memory 204, one or more sensors 206, and / or a communication interface 208. The host processor 202 may include suitable logic components, circuits, and / or code capable of processing data and / or controlling the operation of the electronic device 102. In this regard, the host processor 202 may be enabled to provide control signals to various other components of the electronic device 102. The host processor 202 may also control the transfer of data between various parts of the electronic device 102. The host processor 202 may further implement an operating system or otherwise be capable of executing code to manage the operation of the electronic device 102.
[0027] The memory 204 may include suitable logic, circuitry, and / or code to enable storage of various types of information, such as received data, generated data, code, and / or configuration information. The memory 204 may include, for example, random access memory (RAM), read-only memory (ROM), flash memory, and / or magnetic storage. In one or more implementations, the memory 204 may store communication session data (e.g., as provided by the server 110) for participating in communication sessions with other electronic devices. The memory 204 may further store account information and any other type of identifier that associates the electronic device 102 with its corresponding user account.
[0028] Sensors 206 may include one or more microphones and / or cameras. A microphone may be used to facilitate audio features of a communication session. For example, a microphone may obtain an audio signal corresponding to the voice of a participant in the communication session. A camera may be used to facilitate video features of a communication session. For example, a camera may obtain an image of the face of a participant in the communication session.
[0029] The communication interface 208 may include suitable logic, circuitry, and / or code to enable wired or wireless communication, such as between the electronic device 102 and the server 110. The communication interface 208 may include, for example, one or more of a Bluetooth communication interface, an NFC interface, a Zigbee communication interface, a WLAN communication interface, a USB communication interface, a cellular interface, or generally, any communication interface.
[0030] In one or more specific implementations, one or more of the host processor 202, memory 204, sensor 206, communication interface 208, and / or one or more portions thereof may be implemented in software (e.g., subroutines and code), in hardware (e.g., application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), controllers, state machines, gated logic components, discrete hardware components, or any other suitable devices), and / or a combination of both.
[0031] Figure 3A timing diagram 300 is depicted in which a participant in a video communication session can continue the video communication session or switch the video communication session from a first device 302 to a second device 304 according to one or more implementations. In one or more implementations, the first device 302 can be Figure 1 and Figure 2 The specific implementation of the electronic device 102, and the second device 304 may be Figure 1 304. For example, the first device 302 may be a smartphone and the second device 304 may be a tablet. However, it is contemplated that the first device 302 and the second device 304 may be any electronic devices configured to participate in a communication session (such as a video communication session, an audio communication session, a phone call, etc.). In one or more implementations, the electronic device 102 and the electronic device 104 are associated with the same user account (e.g., Figure 1 The user account of server 110 is associated with the server 110).
[0032] like Figure 3 As shown, the first device 302 is a smart phone participating in a video communication session. The first device 302 can present video feeds of participants of the video communication session, such as a first video feed 306, a second video feed 308, a third video feed 310, and a fourth video feed 312. In one or more specific implementations, the first video feed 306, the second video feed 308, the third video feed 310, and the fourth video feed 312 are received from respective electronic devices of respective remote participants in the video communication session. The first device 302 can also present a fifth video feed 314 generated from a sensor (such as a camera) on the first device 302.
[0033] For example, the fifth video feed 314 may include views of the faces of users of the first device 302 and the second device 304. The first device 302 may switch the video communication session to the second device 304, as described in further detail below. The switch causes the video feeds of the participants of the video communication session (e.g., the first video feed 306, the second video feed 308, the third video feed 310, and the fourth video feed 312) to be presented on the second device 304. The switch also causes the fifth video feed 314 to be replaced with a sixth video feed 316 generated from a sensor on the second device 304. In one or more specific implementations, after the switch, the first device 302 may cease obtaining the fifth video feed 314 and / or cease displaying the first video feed 306, the second video feed 308, the third video feed 310, and the fourth video feed 312. Figure 3 In the example of FIG. 4 , four remote video feeds for four remote participants are shown; however, in other use cases, more or less than four remote video feeds may be displayed for more or less than four remote participants in a video communication session.
[0034] Figure 4 A timing diagram 400 is depicted in accordance with one or more implementations, wherein a first video feed from a first device 302 of a user account may first be presented to a participant device 402, followed by a second video feed from a second device 304 of a user account. The timing diagram 400 may be from the perspective of a participant of a communication session of the timing diagram 300. The participant device 402 may be a smartphone. However, it is contemplated that the participant device 402 may be any electronic device configured to participate in a communication session, such as a video communication session, a telephone call, etc.
[0035] like Figure 4 As shown, participant device 402 is a smartphone participating in a video communication session. According to timing diagram 300, participant device 402 may correspond to any of first video feed 306, second video feed 308, third video feed 310, or fourth video feed 312. Participant device 402 may present video feeds of participants of the video communication session, such as the first video feed from first device 302, third video feed 408, fourth video feed 410, and fifth video feed 412. Participant device 402 may also present a sixth video feed 414 generated from a sensor on participant device 402. A user account corresponding to the first video feed from first device 302 may switch the communication session from the first device to the second device (e.g., in timing diagram 300). The switch causes the participant device 402 to display video feeds from other participants who did not perform the switch (e.g., third video feed 408, fourth video feed 410, fifth video feed 412, and sixth video feed 414) and the second video feed from the second device 304 corresponding to the user account that performed the switch.
[0036] Figure 5 An environment 500 is depicted for transferring a video communication session from a first device (e.g., a current device 502, such as electronic device 102) to a second device (e.g., a new device 508, such as electronic device 104) according to one or more implementations. The current device 502 may be a smartphone, the new device 508 may be a laptop, and the other device 510 may be a tablet computer, each registered to the same user (e.g., each associated with the same user account). However, it is contemplated that the current device 502, the new device 508, and the other device 510 may be electronic devices configured to participate in a communication session (such as a video communication session, a phone call, etc.). Figure 5 As shown in the example of , the user is participating in a video communication session via current device 502. Nearby, the user has new device 508 and other devices 510 as options to which the video communication session can be switched. For example, another device 510 can also be associated with the same user account of the user.
[0037] The current device 502 may be automatically or manually triggered to initiate a switch 504 to another device. For example, another device (e.g., new device 508 and another device 510) may be selected from the current device 502, and / or the current device 502 may announce an option to switch the video communication session to the user's other devices (e.g., new device 508 and another device 510). In order to initiate the switch 504, the current device 502 may transmit information related to the user's account, information related to the current device 502, and / or information related to the video communication session to the user's other devices. In one or more specific implementations, the information may include information that may be known only to the current device 502. The information may be sent directly or indirectly to the user's other devices. For example, the information may be sent via the server 506 and pushed to the user's other devices.
[0038] A device may be selected from the current device 502 to receive the video communication session, or the user may initiate a handoff using the device to receive the handoff. Figure 5 In the example of , the new device 508 may be selected to receive the handoff. In response to receiving information from the current device 502 after initiating the handoff, the new device 508 may initiate verification 512 of the handoff by transmitting some or all of the information received by the new device 508 from the current device 502 back to the current device 502 and the other devices participating in the video communication session. The current device 502 and / or the other devices participating in the video communication session may verify 512 the handoff by verifying the accuracy of the information, such as information about the Figures 6 to 8 If the new device 508 is successfully authenticated, the authenticated new device 508b replaces the current device 502 in the video communication session. In one or more implementations, in the event of an unsuccessful authentication handover, the new device 508 may be rejected from the video communication session or may be added as a new participant device along with the current device 502.
[0039] Figure 6 A sequence diagram depicts a sequence 600 for transferring a conference session from a current device 502 (e.g., a first device, such as electronic device 102) to a new device 508 (e.g., a second device, such as electronic device 104) according to one or more implementations. Figure 5 The sequence 600 is described with reference to the current device 502 and the new device 508. However, the sequence 600 is not limited to Figure 5600, and one or more blocks (also referred to as steps, sequences or operations) of sequence 600 may be performed by one or more other components and / or by other suitable devices. In addition, the blocks of sequence 600 do not have to be performed in the order shown, and / or one or more blocks of sequence 600 do not have to be performed and / or may be replaced by other operations.
[0040] At block 604, current device 502 initiates a communication session with participant device 602. Participant device 602 represents any of one or more electronic devices (e.g., smartphones, tablets, laptops, etc.) registered to one or more user accounts other than the user accounts of current device 502 and new device 508 (e.g., associated with one or more user accounts other than the user accounts associated with current device 502 and new device 508). Additionally, while current device 502 is depicted as a smartphone and new device 508 is depicted as a laptop, current device 502 and new device 508 may be any type of electronic device capable of participating in a communication session.
[0041] At operation 606, an invitation to the communication session is sent from the device of the user account (e.g., current device 502) to the devices of the participants in the communication session (e.g., participant device 602). Figure 6 In the example of , the current device 502 transmits an invitation to the communication session to the participant device 602. At operation 608, an announcement message is transmitted from a device of the user account (e.g., the current device 502) to one or more other devices of the user account (e.g., the new device 508). Figure 6In the example of , the current device 502 transmits a declaration message to the new device 508. In some embodiments, the declaration message is included in the invitation to the communication session. In some embodiments, the declaration message accompanies the invitation to the communication session (e.g., before or after it). In some embodiments, the declaration message indicates that the communication session to which the invitation is applied is switch-capable. In one or more specific implementations, the declaration can be transmitted to other devices of the user account after the declaration message is registered by other devices. In some specific implementations, the device registers the declaration message in response to receiving an invitation to the communication session. In one or more specific implementations, when it is determined (e.g., by the current device 502) that the current device 502 and the new device 508 share the same user account, are physically nearby (e.g., within the range of direct peer-to-peer communication) and / or are addressed using the same handle (e.g., phone number or email), the current device 502 may only send a declaration message to the new device 508. In some specific implementations, invitations transmitted to participant devices that are not associated with the same user account as the current device 502 are not provided with declaration messages. In some implementations, the device of the user account (e.g., the current device 502) does not transmit the announcement message to the participant devices that are not associated with the same user account as the current device 502. In some implementations, the invitation may include information about the current device 502 and / or information about the communication session, such as the following about Figure 7 and Figure 8 In some implementations, the announcement message may include information about the current device 502 and / or information about the communication session, such as the following description of Figure 7 and Figure 8 Further details are given below. Figure 6 The device initiating the communication session is depicted as transmitting the invitation / announcement, but it will be understood that any device participating in the communication session may transmit the invitation / announcement and share information between the devices.
[0042] At block 610, a UI indicator may be presented on an electronic display of one or more devices that share an account with the current device 502, indicating that the nearby communication session may be switched to the device. For example, a notification may appear on an electronic display of the new device 508 indicating that the communication session on the current device 502 may be switched to the new device. The UI indicator (e.g., notification) may be acknowledged, rejected, or ignored.
[0043] In operation 612, if the UI indication indicating the availability of switching is confirmed on the device, the device may transmit a message indicating that the communication session is to be switched to the sender device (of the announcement message, e.g., 502). For example, if the notification on the new device 508 is confirmed, the new device 508 may send a message indicating that the communication session is to be switched to the current device 502.
[0044] At block 614, the device that is handing over the communication session to another device may prepare to hand over the communication session. The preparation may include controlling a speaker, microphone, display, or any other aspect of the device. For example, the current device 502 may mute the speaker and microphone so that once the new device 508 joins the communication session, the uplink and downlink of the communication session from the current device 502 do not duplicate the audio from the new device 508.
[0045] At block 616, the device confirming the handover of the communication session (e.g., the new device 508) may prepare to join the communication session. Preparation may include creating a data object including participant association information representing the association of the new device 508 with the current device 502. The participant association information may include session-specific identifiers, such as a session-specific participant ID and a stream ID, which may be based on the announcement message from operation 608 (e.g., included in the announcement message). Preparation may also or alternatively include creating a communication session control message including the participant association information, an account identifier associated with the new device 508, and a participant handle associated with the new device 508. The account identifier and the participant handle may also be those associated with the current device 502.
[0046] At operation 618, the server 506 may receive data including participant association information from the new device 508. The new device 508 encapsulates the data into a communication session control message and transmits the communication session control message to the server 506 for push to the participants of the communication session (e.g., the current device 502 and the participant device 602). In one or more specific implementations, the server 506 may encapsulate the information into a communication session control message for push to the participants of the communication session.
[0047] In operations 620 and 622, the server 506 may push the communication session control message to the participants of the communication session. For example, the current device 502 and the participant device 602 may receive the communication session control message from the server 506 in operations 620 and 622, respectively.
[0048] At block 624, the device switching the communication session may verify the communication session control message. For example, the current device 502 may determine that the communication session control message from the new device 508 includes information about the current device 502 and / or the communication session that the current device 502 can independently verify. Figure 7 The verification process of the current device 502 is further described.
[0049] At block 626, the participants in the communication session may also verify the communication session control message. For example, the participant device 602 may determine that the communication session control message from the new device 508 includes information about the current device 502 and / or information about the communication session that the participant device 602 received from the current device 502 at operation 606. Figure 8 The authentication process of the participant device 602 is further described.
[0050] At block 628, the device that switched the communication session (e.g., the current device 502) removes itself from the communication session. Removing the current device 502 from the communication session may include the current device 502 sending a leave message corresponding to the communication session to the server 506. The server 506 may push the leave message to the participants of the communication session (e.g., the new device 508 and the participant device 602). In one or more specific implementations, to illustrate the scenario where the leave message arrives before the communication session control message of block 616, the leave message may also include at least some of the information from the communication session control message, including the participant association information generated as at block 616, the account identifier associated with the new device 508, and the participant handle associated with the new device 508.
[0051] In one or more implementations, authentication of the new device may not be successful for both the current device 502 and the participant device 602, in which case the current device 502 may omit block 628 and remain in the communication session. In one or more implementations, one or more devices participating in the communication session (e.g., the new device 508 and / or the participant device 602) may have initiated a pause after the new device (e.g., the new device 508) joins the communication session, after which the device switching the communication session (e.g., the current device 502) is removed from the communication session if it has not already done so.
[0052] Figure 7 A flow chart of a process 700 for authenticating a new device of a user account with a current device of the user account according to one or more implementations is depicted. Figure 1 and Figure 2 The electronic device 102 and Figure 6The process 700 is described with reference to the sequence diagram of the electronic device 102 and the current device 502. However, the process 700 is not limited to the electronic device 102 and / or the current device 502, and one or more frames (also referred to as steps or operations) of the process 700 can be performed by one or more other components of the electronic device 102 and / or by other suitable devices. Further for the purpose of explanation, the frames of the process 700 are described herein as occurring sequentially or linearly. However, multiple frames of the process 700 can occur in parallel. In addition, the frames of the process 700 do not have to be performed in the order shown, and / or one or more frames of the process 700 do not have to be performed and / or can be replaced by other operations.
[0053] At box 702, an announcement message is sent from a current device (e.g., current device 502, such as electronic device 102). The announcement message corresponds to a communication session with at least one participant device in which the current device is participating. The announcement message may include information about the communication session and / or the current device because the current device is involved in the communication session. For example, the announcement message may include a session-specific participant ID and a stream ID, wherein the session-specific participant ID and the stream ID are both associated with the communication session and the current device. During the communication session, the current device may send an announcement message to the new device directly or indirectly. For example, the announcement message may be sent directly to the new device via Bluetooth. In one or more specific implementations, the current device may send an announcement message to the new device only when it is determined that the current device and the new device share the same account, are physically nearby, and / or are addressed using the same handle.
[0054] At block 704, a communication session control message is received by the current device. The communication session control message is generated by the new device that received the announcement message at block 702. To generate the communication session control message, the new device may create a data object including participant association information to represent the association of the new device with the current device. Thus, the participant association information may include session-specific identifiers, such as session-specific participant IDs and stream IDs, which may be based on the announcement message (e.g., included in the announcement message). In addition to the participant association information, the communication session control message may also include an account identifier associated with the new device and a participant handle associated with the new device. In the case where the new device belongs to a user account of the current device (e.g., registered to the same user account to which the current device is registered) and is to be successfully authenticated, the account identifier and participant handle may also be the same account identifier and participant handle associated with the current device.
[0055] The communication session control message may be received directly or indirectly. The communication session control message may be received directly from the new device. For example, the communication session control message may be sent via Bluetooth. The communication session control message may also or alternatively be received indirectly from a communication session server (e.g., server 110 and / or server 506) during the communication session. For example, the communication session control message may be sent via a push message over a wide area network.
[0056] At block 706, the new device may be authenticated by the current device. Authentication is based at least on a comparison of an identifier of the current device with an identifier of the communication session control message. The identifier may include a session-specific participant ID unique to a participant of the group communication session and a stream ID unique to a video stream of a participant of the group communication session. The identifier may be created as part of a group communication session to facilitate the group communication session. The comparison may include determining that the communication session control message includes a data object, such as the participant association information described with respect to block 704, and determining that the participant association information in the data object of the communication session control message includes a session-specific participant ID and stream ID of the current device in the communication session. The current device compares its session-specific participant ID and stream ID with the session-specific participant ID and stream ID from the communication session control message that the new device suggests belongs to the current device.
[0057] The comparison may further include determining that the communication session control message includes an account identifier associated with the current device and a participant handle associated with the current device. The current device compares its account identifier and participant handle with the account identifier and participant handle from the communication session control message that the new device suggests belongs to the current device.
[0058] At block 708, in the event that the verification of block 706 is successful, the current device removes itself from the communication session. The verification may be considered successful when all data fields compared in the comparison or any other specified number of data fields match. Removing the current device from the communication session may include the current device sending a leave message corresponding to the communication session to the communication session server. The communication session server may push the leave message to the participants of the communication session (e.g., the new device and the participant devices). In one or more specific implementations, the leave message may include at least some of the information from the communication session control message received at block 704, such as participant association information.
[0059] At box 710, in the case where the verification of box 706 is unsuccessful, the current device can remain in the communication session. When any data field compared in the comparison or any other specified number of data fields do not match, the verification can be considered unsuccessful. In one or more specific implementations, in order to accommodate the new device in the communication session, the communication session can change the format. For example, in the case where the received communication session control message is trying to add a new device, and in the case where the communication session only includes the current device and the participant device, one or more participants in the communication session can upgrade the communication session from a one-to-one communication session to a group communication session. In one or more specific implementations, in the case where the verification of box 706 is unsuccessful, the new device can be added to the communication session as a new participant device together with the remaining current devices. For example, one or more participant devices of the participant devices of the communication session can approve the new device as a new participant device separately from the switching operation.
[0060] Although the new device may be included as a new participant in the group communication session despite not being authenticated for handoff, in some use cases, in one or more implementations, the participant devices of the group communication session may still deny the new device from joining and / or have the ability to remove the new device from the group communication session. For example, one or more of the participant devices of the group communication session may receive a notification that the new device is attempting to join the group communication session and a prompt to remove the new device. In one or more implementations, the communication session may be downgraded from a group communication session to a one-to-one communication session in the event that the current device is replaced with the new device and the communication session has only the new device and the participant devices. The communication session may also be downgraded from a group communication session to a one-to-one communication session in the event that the new device is blocked or removed from joining the communication session and the communication session has only the current device and the participant devices.
[0061] Figure 8 A flow chart of a process 800 for verifying a new device of a user account using a participant's device is depicted according to one or more specific implementations. Figure 1 and Figure 2 The electronic device 112 and Figure 6 Process 800 is described with reference to participant device 602 and sequence diagram of the electronic device 112. However, process 800 is not limited to electronic device 112 and / or participant device 602, and one or more blocks (also referred to as steps or operations) of process 800 may be performed by one or more other components of electronic device 102 and / or by other suitable devices. Further for the purpose of explanation, the blocks of process 800 are described herein as occurring sequentially or linearly. However, multiple blocks of process 800 may occur in parallel. In addition, the blocks of process 800 do not have to be performed in the order shown, and / or one or more blocks of process 800 do not have to be performed and / or may be replaced by other operations.
[0062] At block 802, a communication session invitation message is received. A communication session invitation message is a message used to invite other devices to participate in a group communication session (such as a video communication session or any other group conference session). The communication session invitation message may be received by at least a first device (e.g., participant device 602), which, once joined the communication session, is referred to herein as a participant device associated with a user account participating in the communication session. The communication session invitation message may be sent from a second device, which is referred to herein as a current device (e.g., current device 502) registered to a user account in the communication session, which user account is being changed (e.g., switched) from the second device to a new device (e.g., a third device, such as new device 508 and / or electronic device 104). In one or more specific implementations, other communication session messages may be received to share information between participants to facilitate authentication of new devices from other participants.
[0063] The communication session invitation message may include a first session-specific identifier. The first session-specific identifier may include one or more identifiers that can be used to identify the current device in the communication session. For example, the first session-specific identifier may include a session-specific participant ID that is unique to a participant of the group communication session and a stream ID that is unique to a video stream of a participant of the group communication session. The first session-specific identifier may be created as part of the group communication session to facilitate the group communication session. Although the first session-specific identifier may identify the current device, an account associated with the current device and a name by which the current device is referred to within the software application may be transmitted along with the account identifier and the participant handle, respectively, which may accompany the first session-specific identifier.
[0064] Upon receiving the communication session invitation message, the participant devices may also share their session-specific identifiers. Where each device in the communication session has session-specific identifiers of the other devices participating in the communication session (e.g., as a result of this sharing), any participant in the group communication session may replace their device with another device associated with the same account while remaining in the communication session. Thus, it should be understood that the switching of a communication session from one device to another is not limited to the current device.
[0065] At block 804, a communication session control message may be received (e.g., by a participant device). The communication session control message may be a message transmitted from a communication session participant and / or a server arranged to configure the communication session. The communication session control message may be generated by a new device (e.g., a third device) to a user account and include a second session-specific identifier for identifying the new device in the communication session. The new device may create the second session-specific identifier using information received from the current device (e.g., via a communication session invitation, via an announcement message, etc.). In some implementations, in block 802, the new device creates the second session-specific identifier using information included in an invitation similar to a group communication session invitation sent to a participant device. In some implementations, when the devices share the same account and are physically close to each other, the new device creates the second session-specific identifier using information included in an announcement message (e.g., a Bluetooth message) from the current device to the new device.
[0066] The communication session control message may include an account identifier associated with the new device, a participant handle associated with the new device, and / or a data object including participant association information. The account identifier may indicate an account associated with the new device, and the participant handle may indicate how to address the new device. The participant association information may be a data structure including an identifier used by the current device in the group communication session and sent from the current device to the new device. For example, the participant association information in the communication session control message generated by the new device may include a session-specific participant ID and a stream ID, where the session-specific participant ID and the stream ID are both based on the communication session and both correspond to the current device.
[0067] The new device may transmit a communication session control message directly or indirectly to a participant (e.g., a participant device) of the communication session. For example, the communication session control message may be transmitted to a push service in a cloud server for delivery to the participants of the communication session via a wide area network. The communication session control message may be received by the participant device to verify the association of the new device with the current device. As another example, the communication session control message may be sent directly to the participant device via a Bluetooth message.
[0068] At block 806, the new device may be authenticated by the participant device. In one or more specific implementations, the authentication is based at least in part on a comparison of a first session-specific identifier included in the communication session invitation and a second session-specific identifier included in the communication session control message. For example, the comparison may include determining that the communication session control message includes a data object, such as the participant association information described with respect to block 804, and determining that the participant association information in the data object of the communication session control message includes a session-specific participant ID and a stream ID of a current device in the communication session. The participant device may have at least a session-specific participant ID and a stream ID of the current device from the communication session invitation message, as described in block 802, which may be compared to the session-specific participant ID and stream ID from the communication session control message that the new device claims to belong to the current device.
[0069] The comparison may further include determining that the communication session control message includes an account identifier associated with the current device and a participant handle associated with the current device. The participant device may have the account identifier and participant handle of the current device from the communication session invitation message, as described in block 802, which may be compared to the account identifier and participant handle from the communication session control message that the new device claims belongs to the current device.
[0070] At box 808, in the case of successful verification of box 806, the current device is replaced with the new device in the communication session. Replacing the current device with the new device in the communication session may include transitioning the display of the participant device of the video stream associated with the current device to another video stream associated with the new device (e.g., received from the new device). The video stream of the new device may be displayed at the same position as the video stream of the current device in the UI for the communication session. In this way, the video stream of the user account is presented to the participant in the same UI position on the participant device, and a substantially seamless switch from the current device to the new device is achieved at the participant device. In one or more specific implementations, the participant device may also generate a UI indication that the current device has been replaced by the new device in the communication session. For example, in the case where the current device is a smart phone and the new device is a laptop, the UI may display a smart phone icon next to the video stream of the user account when the current device is in use, and then display a laptop icon next to the video stream of the user account when the new device is in use.
[0071] At block 810, in the event that the authentication of block 806 is unsuccessful, the new device may join the communication session without replacing the current device. In one or more implementations, the communication session may change format in order to accommodate the new device in the communication session. For example, in the event that the received communication session control message is attempting to add a new device and the communication session includes only the current device and the participant devices, one or more participants in the communication session may upgrade the communication session from a one-to-one communication session to a group communication session.
[0072] Although the new device may be included in the group communication session despite not being verified for handoff, the participants of the group communication session may still allow or deny the new device to join and / or have the ability to remove the new device from the group communication session. For example, one or more of the participants of the group communication session may receive a notification that the new device is attempting to join the group communication session and a prompt to remove the new device. In one or more specific implementations, the communication session may be downgraded from a group communication session to a one-to-one communication session in the event that the current device is replaced with the new device and the communication session has only the new device and the participant devices. The communication session may also be downgraded from a group communication session to a one-to-one communication session in the event that the new device is blocked or removed from joining the communication session and the communication session has only the current device and the participant devices.
[0073] As described above, one aspect of the present technology is to collect and use data available from specific and legitimate sources for the handover of communication sessions. The present disclosure contemplates that, in some instances, the collected data may include personal information data that uniquely identifies or can be used to identify a specific person. Such personal information data may include demographic data, location-based data, online identifiers, phone numbers, email addresses, home addresses, images, videos, audio data, data or records related to a user's health or fitness level (e.g., vital signs measurements, medication information, exercise information), date of birth, or any other personal information.
[0074] The present disclosure recognizes that the use of such personal information data in the present technology can be used to benefit users. For example, personal information data can be used for the switching of communication sessions. Therefore, the use of such personal information data can facilitate transaction processing (e.g., online transaction processing). In addition, the present disclosure also anticipates other uses of personal information data that benefit users. For example, health and fitness data can be used according to user preferences to provide insights into their overall health status, or can be used as positive feedback to individuals who use technology to pursue health goals.
[0075] The present disclosure envisions that entities responsible for collecting, analyzing, disclosing, transmitting, storing or otherwise using such personal information data will comply with established privacy policies and / or privacy practices. Specifically, such entities will be expected to implement and consistently apply privacy practices that are generally recognized as meeting or exceeding the requirements of the industry or government that maintain user privacy. Such information about the use of personal data should be accessible to users in large quantities and conveniently, and should be updated as the collection and / or use of data changes. The user's personal information should be collected only for legal use. In addition, such collection / sharing should only occur after receiving user consent or other legal basis specified in applicable law. In addition, such entities should consider taking any necessary steps to protect and safeguard access to such personal information data and ensure that other entities with access to personal information data comply with their privacy policies and procedures. In addition, such entities may subject themselves to third-party assessments to demonstrate that they comply with widely accepted privacy policies and practices. In addition, policies and practices should be adjusted for specific types of personal information data collected and / or accessed, and applied to applicable laws and standards, including specific considerations that are exclusive to jurisdictions that can be used to impose higher standards. For example, in the United States, collection or access to certain health data may be governed by federal and / or state laws, such as the Health Insurance Portability and Accountability Act (HIPAA); while health data in other countries may be subject to other regulations and policies and should be handled accordingly.
[0076] Regardless of the foregoing, the present disclosure also contemplates implementations in which users selectively block the use or access of personal information data. That is, the present disclosure contemplates hardware elements and / or software elements to prevent or block access to such personal information data. For example, with respect to the switching of communication sessions, the technology of the present invention may be configured to allow users to choose to "opt in" or "opt out" to participate in the collection of personal information data during or at any time after registration for a service. In addition to providing "opt-in" and "opt-out" options, the present disclosure also contemplates providing notifications related to access or use of personal information. For example, a user may be notified that their personal information data will be accessed when downloading an application, and then be reminded again just before the personal information data is accessed by the application.
[0077] In addition, it is the intention of the present disclosure that personal information data should be managed and processed in a manner that minimizes the risk of unintentional or unauthorized access or use. Once the data is no longer needed, the risk can be minimized by limiting data collection and data deletion. In addition, and when applicable, including in certain health-related applications, data de-identification can be used to protect the privacy of users. De-identification can be promoted when appropriate by removing identifiers, controlling the amount or specificity of stored data (e.g., collecting location data at the city level rather than at the address level), controlling how data is stored (e.g., aggregating data among users), and / or other methods such as differential privacy.
[0078] Therefore, while the present disclosure broadly covers the use of personal information data to implement one or more of the various disclosed implementations, the present disclosure also contemplates that various implementations may be implemented without access to such personal information data. That is, various implementations of the present technology will not fail to function properly due to the lack of all or part of such personal information data.
[0079] Fig. 9 An example electronic device is depicted in which aspects of the present disclosure may be implemented. Electronic device 900 may be used to generate a reference Figures 1 to 8 Any electronic device that may be and / or may be a part of the features and processes described herein, including but not limited to laptop computers, tablet computers, smart phones, and wearable devices (e.g., smart watches, fitness bands). The electronic device 900 may include various types of computer-readable media and interfaces for various other types of computer-readable media. The electronic device 900 includes one or more processing units 912, a permanent storage device 902, a system memory 904 (and / or a buffer), an input device interface 914, an output device interface 906, a bus 908, a ROM 910, one or more processing units 912, one or more network interfaces 916, and / or subsets and variations thereof.
[0080] The bus 908 generally represents all system buses, peripheral busses, and chipset buses that communicatively connect the many internal devices of the electronic device 900. In one or more specific implementations, the bus 908 communicatively connects one or more processing units 912 with the ROM 910, the system memory 904, and the permanent storage device 902. The one or more processing units 912 retrieve instructions to be executed and data to be processed from these various memory units in order to perform the processes disclosed in the present subject matter. In different specific implementations, the one or more processing units 912 can be a single processor or a multi-core processor.
[0081] ROM 910 stores static data and instructions required by one or more processing units 912 and other modules of the electronic device 900. On the other hand, permanent storage device 902 can be a read-write memory device. Permanent storage device 902 can be a non-volatile memory unit that stores instructions and data even when the electronic device 900 is turned off. In one or more specific implementations, a mass storage device (such as a magnetic disk or optical disk and its corresponding magnetic disk drive) can be used as permanent storage device 902.
[0082] In one or more specific implementations, a removable storage device (such as a floppy disk, a flash drive and its corresponding disk drive) can be used as the permanent storage device 902. Like the permanent storage device 902, the system memory 904 can be a read-write memory device. However, unlike the permanent storage device 902, the system memory 904 can be a volatile read-write memory, such as RAM. The system memory 904 can store any of the instructions and data that one or more processing units 912 may need at runtime. In one or more specific implementations, the processes disclosed in the subject matter are stored in the system memory 904, the permanent storage device 902, and / or the ROM 910. The one or more processing units 912 retrieve instructions to be executed and data to be processed from these various memory units in order to perform the processes of one or more specific implementations.
[0083] The bus 908 is also connected to an input device interface 914 and an output device interface 906. The input device interface 914 enables a user to transmit information and select commands to the electronic device 900. Input devices that can be used with the input device interface 914 may include, for example, an alphanumeric keyboard, a touch screen, and a pointing device (also referred to as a "cursor control device"). The output device interface 906 may, for example, enable the display of images generated by the electronic device 900. Output devices that can be used with the output device interface 906 may include, for example, a printer and a display device, such as a liquid crystal display (LCD), a light emitting diode (LED) display, an organic light emitting diode (OLED) display, a flexible display, a flat panel display, a solid state display, a projector, or any other device for outputting information.
[0084] One or more implementations may include a device that acts as both an input device and an output device, such as a touch screen. In these implementations, the feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and the input from the user may be received in any form, including acoustic, voice, or tactile input.
[0085] Finally, if Fig. 9As shown, bus 908 also couples electronic device 900 to one or more networks and / or to one or more network nodes via one or more network interfaces 916. In this manner, electronic device 900 may be part of a computer network, such as a LAN, a wide area network ("WAN"), or an intranet, or may be part of a network of networks, such as the Internet. Any or all components of electronic device 900 may be used with the subject disclosure.
[0086] Implementations within the scope of the present disclosure may be implemented in part or in whole using a tangible computer-readable storage medium (or multiple tangible computer-readable storage media of one or more types) programmed with one or more instructions. Tangible computer-readable storage media may also be non-transitory in nature.
[0087] Computer-readable storage media can be any storage media that can be read, written, or otherwise accessed by a general or special computing device, including any processing electronics and / or processing circuitry capable of executing instructions. For example, without limitation, computer-readable media can include any volatile semiconductor memory, such as RAM, DRAM, SRAM, T-RAM, Z-RAM, and TTRAM. Computer-readable media can also include any non-volatile semiconductor memory, such as ROM, PROM, EPROM, EEPROM, NVRAM, flash memory, nvSRAM, FeRAM, FeTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, racetrack memory, FJG, and Millipede memory.
[0088] In addition, the computer-readable storage medium may include any non-semiconductor memory, such as optical disk storage, magnetic disk storage, magnetic tape, other magnetic storage devices, or any other medium capable of storing one or more instructions. In one or more specific implementations, the tangible computer-readable storage medium may be directly coupled to the computing device, while in other specific implementations, the tangible computer-readable storage medium may be indirectly coupled to the computing device, for example, via one or more wired connections, one or more wireless connections, or any combination thereof.
[0089] Instructions can be directly executable, or can be used to develop executable instructions. For example, instructions can be implemented as executable or non-executable machine code, or can be implemented as high-level language instructions that can be compiled to produce executable or non-executable machine code. In addition, instructions can also be implemented as data, or can include data. Computer executable instructions can also be organized in any format, including routines, subroutines, programs, data structures, objects, modules, applications, applets, functions, etc. As recognized by those skilled in the art, the details including but not limited to the number, structure, sequence and organization of instructions can be significantly different without changing the underlying logic, function, processing and output.
[0090] Although the above discussion mainly involves microprocessors or multi-core processors that execute software, one or more implementations are performed by one or more integrated circuits such as ASICs or FPGAs. In one or more implementations, such integrated circuits execute instructions stored on the circuits themselves.
[0091] Those skilled in the art will recognize that the various illustrative frames, modules, elements, parts, methods and algorithms described herein can be implemented as electronic hardware, computer software or a combination of the two. In order to illustrate this interchangeability of hardware and software, various illustrative frames, modules, elements, parts, methods and algorithms have been generally described above according to functionality. Whether such functionality is implemented as hardware or software depends on the specific application and the design constraints imposed on the entire system. The technician can implement the described functionality in different ways for each specific application. Various parts and frames can be arranged differently (e.g., arranged in different orders, or divided in different ways) without departing from the scope of the subject technology.
[0092] It should be understood that the specific order or the hierarchical structure of the frame in the process disclosed by the present invention are the illustration of the example method. Based on the design preferred requirements, it should be understood that the specific order or the hierarchical structure of the frame in the process can be rearranged or all the illustrated frames are executed. Any frame in these frames can be executed simultaneously. In one or more specific implementations, multitasking and parallel processing may be advantageous. In addition, the division of each system component in the above-mentioned embodiment should not be understood as requiring such division in all embodiments, and it should be understood that program components and system can be generally integrated together in a single software product or encapsulated in multiple software products.
[0093] As used in this specification and any claims of this patent application, the terms "base station", "receiver", "computer", "server", "processor" and "memory" all refer to electronic devices or other technical devices. These terms exclude people or groups of people. For the purpose of this specification, the term "display" or "displaying" means displaying on an electronic device.
[0094] As used herein, the phrase "at least one of" following a list of items, any of which is separated by the terms "and" or "or", modifies the list as a whole, rather than each member of the list (i.e., each item). The phrase "at least one of" does not require selection of at least one of each item listed; rather, the phrase allows for a meaning that includes at least one of any one item and / or at least one of any combination of items and / or at least one of each item. For example, the phrase "at least one of A, B, and C" or "at least one of A, B, or C" each refers to only A, only B, or only C; any combination of A, B, and C; and / or at least one of each of A, B, and C.
[0095] The predicate words "configured to," "operable to," and "programmed to" do not imply any specific tangible or intangible modification of a subject matter but are intended to be used interchangeably. In one or more specific implementations, a processor configured to monitor and control an operation or component may also mean that the processor is programmed to monitor and control the operation or that the processor is operable to monitor and control the operation. Similarly, a processor configured to execute code may be interpreted as a processor programmed to execute code or operable to execute code.
[0096] Phrases such as aspect, this aspect, another aspect, some aspects, one or more aspects, a specific implementation, this specific implementation, another specific implementation, one or more specific implementations, one or more specific implementations, implementation, this implementation, another implementation, one or more specific implementations, one or more implementations, configuration, this configuration, another configuration, some configurations, one or more configurations, subject technology, disclosure, the present disclosure, other variations thereof, and the like are for convenience and do not mean that disclosures involving such phrases are essential to the subject technology, nor do they mean that such disclosures apply to all configurations of the subject technology. Disclosures involving such one or more phrases may apply to all configurations or one or more configurations. Disclosures involving such one or more phrases may provide one or more examples. Phrases such as aspect or some aspects may refer to one or more aspects and vice versa, and this applies similarly to the other aforementioned phrases.
[0097] The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any implementation described herein as "exemplary" or as an "example" is not necessarily to be construed as preferred or advantageous over other implementations. In addition, to the extent that the terms "including," "having," and the like are used in the specification or claims, such terms are intended to be inclusive in a manner similar to how the term "comprising" is interpreted when used as a transitional word in a claim.
[0098] All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later become known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be covered by the claims. In addition, nothing disclosed herein is intended to be made available to the public regardless of whether the disclosure is explicitly stated in the claims. Pursuant to 35 U.S.C. §112, paragraph 6, no claim element shall be construed unless the element is expressly stated using the phrase “means for” or, in the case of a method claim, the element is stated using the phrase “step for”.
[0099] The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects are apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects. Therefore, the claims are not intended to be limited to the aspects shown herein, but are intended to make the full scope consistent with the language claims, wherein the reference to the singular element is not intended to mean "only one", but to refer to "one or more", unless specifically noted. Unless otherwise specifically stated, the term "some" refers to one or more. Male pronouns (e.g., his) include female and neutral (e.g., her and its), and vice versa. Titles and subtitles (if any) are used only for convenience and do not limit the subject disclosure.
Claims
1. A method comprising: sending, by a first device, an announcement message corresponding to a communication session in which the first device is participating with at least a second device; receiving, by the first device and during the communication session, a communication session control message generated by a third device, the communication session control message including the information contained in the announcement message; authenticating, using the first device, the third device based on the communication session control message; as well as Responsive to successfully authenticating the third device, removing the first device from the communication session.
2. The method of claim 1 , wherein sending the announce message corresponding to the communication session comprises: The announce message is sent, by the first device, to at least the third device during the communication session.
3. The method of claim 2, wherein sending the announce message corresponding to the communication session comprises: The announce message is sent directly from the first device to the third device.
4. The method of claim 2, wherein the announce message includes a session-specific participant ID and a stream ID, wherein both the session-specific participant ID and the stream ID are associated with the communication session and the first device.
5. The method of claim 1, wherein the communication session control message comprises at least an account identifier associated with the third device, a participant handle associated with the third device, and a data object comprising participant association information. 6 . The method of claim 5 , wherein the participant association information comprises a session-specific participant ID and a flow ID, wherein both the session-specific participant ID and the flow ID are based on the announcement message.
7. The method of claim 5, wherein receiving the communication session control message comprises: The communication session control message is received from a communication session server via a wide area network.
8. The method of claim 1 , wherein authenticating the third device based on the communication session control message comprises: determining that the communication session control message includes a data object; as well as Determining that the participant association information in the data object includes at least a session-specific participant ID and a flow ID of the first device.
9. The method of claim 8, wherein authenticating the third device based on the communication session control message further comprises: It is determined that the communication session control message includes an account identifier associated with the first device and a participant handle associated with the first device.
10. The method of claim 1, wherein removing the first device from the communication session comprises: A leave message corresponding to the communication session is sent by the first device to a communication session server.
11. A device comprising: A processor, the processor being configured to: sending an announce message corresponding to a communication session in which the device is participating with at least a second device; During the communication session, receiving a communication session control message generated by a third device, the communication session control message including information included in the announcement message; authenticating the third device based on the communication session control message; as well as Responsive to successfully authenticating the third device, removing the device from the communication session.
12. The device of claim 11, wherein the processor is configured to send the announce message corresponding to the communication session by sending the announce message to at least the third device during the communication session.
13. The device of claim 12, wherein the announce message comprises a session-specific participant ID and a flow ID, wherein both the session-specific participant ID and the flow ID are associated with the communication session and the device.
14. The device of claim 11, wherein the processor is configured to authenticate the third device based on the communication session control message by: determining that the communication session control message includes a data object; and Determining the participant association information in the data object includes at least a session-specific participant ID and a flow ID of the device.
15. The device of claim 14, wherein the processor is configured to authenticate the third device based on the communication session control message further by determining that the communication session control message includes an account identifier associated with the device and a participant handle associated with the device.
16. A non-transitory computer-readable medium comprising computer-readable instructions that, when executed by a processor, cause the processor to perform one or more operations comprising: sending, by a first device, an announcement message corresponding to a communication session in which the first device is participating with at least a second device; receiving, by the first device and during the communication session, a communication session control message generated by a third device, the communication session control message including the information contained in the announcement message; authenticating, using the first device, the third device based on the communication session control message; as well as Responsive to successfully authenticating the third device, removing the first device from the communication session.
17. The non-transitory computer-readable medium of claim 16, wherein sending the announce message corresponding to the communication session comprises: The announce message is sent, by the first device, to at least the third device during the communication session.
18. The non-transitory computer-readable medium of claim 17, wherein the announce message comprises a session-specific participant ID and a flow ID, wherein both the session-specific participant ID and the flow ID are associated with the communication session and the first device.
19. The non-transitory computer-readable medium of claim 16, wherein authenticating the third device based on the communication session control message comprises: determining that the communication session control message includes a data object; as well as Determining that the participant association information in the data object includes at least a session-specific participant ID and a flow ID of the first device.
20. The non-transitory computer-readable medium of claim 19, wherein authenticating the third device based on the communication session control message further comprises: It is determined that the communication session control message includes an account identifier associated with the first device and a participant handle associated with the first device.
