Patent Publication Number: US-11647057-B2

Title: Techniques for automatic cross-device meeting authentication

Description:
The present application is a continuation of application Ser. No. 14/976,298, filed Dec. 21, 2015, entitled “TECHNIQUES FOR AUTOMATIC CROSS-DEVICE MEETING AUTHENTICATION” which is incorporated by reference herein. 
    
    
     BACKGROUND 
     The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure. 
     Users can participate in real-time communication sessions or “virtual meetings” via their computing devices. In a typical scenario, a plurality of users can participate in a real-time communication session where at least some of the users are co-present in a same room. The room may have a single media system that is shared and can be controlled by users via authenticated computing devices. For example, slide presentations can be shown on a display of the media system. Some users, however, may have more than one computing device. For example, a particular user may have a mobile phone as well as a tablet computer or laptop computer. Only one of these computing devices, however, may be able to be quickly and easily authenticated by the media system, such as via a particular communication medium (e.g., Bluetooth). The user, therefore, may be unable to control the media system using their second computing device. 
     SUMMARY 
     A computer-implemented technique, a server, and a non-transitory computer-readable medium are presented. The server can include a memory (e.g., the computer-readable medium) having a set of instructions stored thereon that, when executed by one or more processors of the server, cause the server to perform the technique. The technique can include initializing, by the server and with a first computing device, a real-time communication session, wherein the first computing device is connected to a media system. The technique can include receiving, by the server and from at least one of the first computing device and a mobile computing device, authentication information for a user associated with the mobile computing device, the authentication information being indicative of the mobile computing device being in short-range wireless communication with the first computing device. The technique can include associating, by the server, the user with the real-time communication session. The technique can include detecting, by the server, that a second computing device that is associated with the user is logged into a same account as the mobile computing device. The technique can also include in response to the associating and the detecting, transmitting, from the server and to the second computing device, instructions that cause the second computing device to display a user interface element associated with the real-time communication session. 
     A mobile computing device is also presented. In one implementation, the mobile computing device can include a memory configured to store a set of instructions, a communication device configured to transmit and receive information, and one or more processors configured to execute the set of instructions, which causes the one or more processors to perform operations. In one implementation, the operations can include establishing, by the communication device, short-range wireless communication with a first computing device that is connected to a media system, and in response to establishing the short-range wireless communication, coordinating the transmission of authentication information, from at least one of the transceiver and the first computing device, to a server, wherein the authentication information is for a user associated with the mobile computing device. In one implementation, receipt of the authentication information can cause the server to associate the user with a real-time communication session, detect that a second computing device that is associated with the user is logged into a same account as the mobile computing device, and in response to the associating and the detecting, transmit, to the second computing device, instructions that cause the second computing device to display a user interface element associated with the real-time communication session. 
     In some embodiments, the technique can further comprise receiving, by the server and from the second computing device, an input corresponding to a selection by the user of the user interface element. 
     In some embodiments, receipt of the input can cause the server to enable the second computing device to participate in the real-time communication session and control the media system. 
     In some embodiments, the mobile computing device is associated with an access control list (ACL) of the first computing device. 
     In some embodiments, the second computing device is not configured for communication with the first computing device via short-range wireless communication. 
     In some embodiments, the mobile computing device is a mobile phone and the second computing device is a tablet computer or laptop computer. 
     In some embodiments, the media system comprises a non-smart display, and wherein the first computing device is coupled to the non-smart display. 
     Further areas of applicability of the present disclosure will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description and specific examples are intended for purposes of illustration only and are not intended to limit the scope of the disclosure. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present disclosure will become more fully understood from the detailed description and the accompanying drawings, wherein: 
         FIG.  1    is a diagram of an example computing system including an example computing device and an example server and according to some implementations of the present disclosure; 
         FIG.  2    is a functional block diagram of the example server of  FIG.  1   ; 
         FIG.  3    is a flow diagram of an example technique for automatic cross-device meeting authentication according to some implementations of the present disclosure; and 
         FIG.  4    is a diagram of an example user interface including an example user interface element according to some implementations of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     As previously discussed, a user may have multiple computing devices (e.g., a mobile phone as well as a tablet computer or laptop computer), but only one of their computing devices may be configured for quick and easy authentication for a particular real-time communication session or “virtual meeting.” In one implementation, one of their computing devices can be pre-authenticated, such as via an electronic invitation that adds the computing device as an access control entity (ACE) in an access control list (ACL). For example, when the user enters a room, their pre-authenticated computing device can be detected and invited to join the real-time communication session, such as via a short-range wireless communication medium (e.g., Bluetooth). This invitation can grant the computing device permission to control an associated media system (a display, speaker(s), camera(s), etc.). 
     Once the user gets situated in the room, however, they may wish to utilize their other (or “second”) computing device to participate in the real-time communication session. For example only, they may sit down and unpack their laptop computer or tablet computer, which they may prefer to utilize during the real-time communication session due to its larger user interface. Achieving authentication of this second computing device, however, can be a difficult and time consuming process, which may interrupt the real-time communication session. For example, the user may be required to complete a time consuming authentication process, such as Bluetooth pairing with the media system or scanning a text code or barcode (e.g., a quick response, or QR code). Moreover, in some cases, this second computing device may be unable to communicate via the short-range wireless communication medium. 
     Accordingly, techniques are presented for automatic cross-device meeting authentication. The term “meeting” as used herein can refer to any real-time communication session or “virtual meeting” participated in by at least one user via one or more of their computing devices. When a user enters a room, her/his mobile computing device (e.g., a mobile phone) may communicate with a first computing device associated with a media system. For example, the first computing device may be a computing device that is wired or wirelessly connected to the media system. In some implementations, this communication can occur via a short-range wireless communication medium, such as Bluetooth or WiFi Direct. The mobile computing device may be pre-authenticated (e.g., listed as an ACE in an ACL) and thus the mobile computing device can join the real-time communication session and be granted control of the media system. Thus, the techniques can provide for loosened meeting access controls by leveraging co-presence in the same room. These techniques are also performed automatically and therefore seamless to the user. 
     The mobile computing device may then transmit information via another computing network (e.g., the Internet) to a remote server that is associated with a user account. The mobile computing device can be currently logged into the user account. Upon receiving the information, the remote server can then communicate with the user&#39;s second computing device (e.g., a laptop computer or tablet computer). This second computing device can also be logged into the user account, and thus can be authenticated for the real-time communication session. In other words, the co-presence of both computing devices in the room with the media system is being leveraged to authenticate the second computing device. The second computing device can then join and be granted control of the media system. In some implementations, this enabling can include automatically configuring communication between the second computing device and the first computing device via the short-range wireless communication medium. Alternatively, the second computing device can connect to the real-time communication session via the other computing network (e.g., the Internet) or via the mobile computing device. 
     Referring now to  FIG.  1   , a diagram of an example computing system  100  is illustrated. The computing system  100  can be configured to implement a real-time communication session or “virtual meeting” amongst a plurality of users via their computing devices. The computing system  100  can include an example mobile computing device  104  and an example server  148  according to some implementations of the present disclosure. While the mobile computing device  104  is shown to be a mobile phone, the mobile computing device  104  can also be another suitable mobile computing device, such as a tablet computer, a laptop computer, or a wearable computing device such as eyewear or clothing that incorporates a computer. The mobile computing device  104  can be associated with a user  108 . The user  108  may also have another computing device  112  (also referred to as “second computing device  112 ”), such as a different mobile computing device than mobile computing device  104  (a laptop computer, a tablet computer, etc.). 
     Optionally, other users  116 - 1  . . .  116 -N (N≥1; collectively “other users  116 ”) may also participate in a real-time communication session, either in person or via their computing devices  120 - 1  . . .  120 -N (collectively “other computing devices  120 ”). The mobile computing device  104  can directly communicate with first computing device  124 , such as via a short-range wireless communication network  128  (hereinafter “first network  128 ”). For example, the first network  128  may be Bluetooth or WiFi Direct. In some implementations, the first computing device  124  can be coupled to a display  136  of a media system  132  and thus can act as a wireless access point. In such implementations, the display  136  can be a non-smart display, i.e., a display that is not itself configured to connect to the first network  128 . The media system  132  can be associated with a physical conference or meeting room. Other example components of the media system  132  include a set of speakers  140  and a set of cameras  144 . 
     Using the media system  132 , users that are physically present in the room are able to participate in a real-time communication session, which may or may not include other remote users. For example only, the users in the real-time communication session may control the display  136  to show a slide presentation. Sound and/or camera control can similarly be performed. In order to participate in and control the media system  132 , however, a particular computing device may need to be authenticated. The mobile computing device  104  can also be configured to communicate with the remote server  148  via another network  152  (hereinafter “second network  152 ”). The second network  152  can include a local area network (LAN), a wide area network (WAN), e.g., the Internet, or a combination thereof. The second computing device  112  can also be configured to communicate with the server  148  via the second network  152 . 
     Referring now to  FIG.  2   , a functional block diagram of the example server  148  is illustrated. The server  148  can include a communication device  200 , a processor  204 , and a memory  212 . The processor  204  can control operation of the server  148 , including implementing at least a portion of the techniques of the present disclosure. The term “processor” as used herein can refer to both a single processor and multiple processors operating in a parallel or distributed architecture. The communication device  200  can be configured for communication with other devices (e.g., the second computing device  112 ) via the second network  152 . One non-limiting example of the communication device  200  is a transceiver. The memory  208  can be any suitable storage medium (flash, hard disk, etc.) configured to store information. For example, the memory  208  may store a set of instructions that are executable by the processor  204 , which cause the server  148  to perform at least a portion of the techniques of the present disclosure. It will be appreciated that the example mobile computing device  104  can include the same or similar components as the server  148 , and thus can be configured to perform at least a portion of the techniques of the present disclosure, which are described more fully below. 
     In one example scenario, the user  108  enters a room having the media system  132 . The media system  132 , as previously discussed, is connected to the first computing device  124  (e.g., a computing device). For example, the real-time communication session may already be occurring and the media system  132  could be under the control of other users  116  via their computing devices  120  and the first computing device  124 . When the user  108  enters the room, her/his mobile computing device  104  can automatically detect the presence of the first computing device  124 . This detection, for example, can occur via the short-range wireless communication (first) network  128 . Once detected, the mobile computing device  104  can automatically transmit authentication information to the first computing device  128 . For example, the authentication information can include a unique identifier, which may correspond to a particular ACE in an ACL at the first computing device  124 . The first computing device  124  can then respond to the mobile computing device  104  via the first network  128 , thereby enabling the mobile computing device  104  to join the real-time communication session, as well as granting the mobile computing device  104  permission to control the media system  132 . In the meantime, the user  108  may sit down at a table in the room, and unpack her/his second computing device  112 . 
     As previously discussed, however, the other (or “second”) computing device  112  may be unable to communicate with the first computing device  124  via the first network  128 . Thus, after being authenticated and allowed to join the real-time communication session, the mobile computing device  104  can automatically transmit information (meeting information, authentication information, etc.) to the server  148  via the other computing (second) network  152  (e.g., the Internet). Receipt of this information can cause the server  148  to communicate with the second computing device  112  to authenticate the second computing device  112 . In one example, this authentication includes determining whether the second computing device  112  is simultaneously logged into a same user account as the mobile computing device  104 . Once authenticated, the second computing device  112  can then join the real-time communication session. This can occur via the second network  148  (e.g., via the mobile computing device  104 ) or by configuring the second computing device  112  for communication with the first computing device  124  via the first network  128 . In some implementations, the server  148  can provide the second computing device  112  with a user interface element that, when selected by the user  108 , causes the server  148  to enable the second computing device  112  to participate in the real-time communication session and control the media system  132 . 
     Referring now to  FIG.  3   , a flow diagram of an example technique  300  for automatic cross-device meeting authentication is illustrated. At  304 , the server  148  can initialize, with the first computing device  124 , a real-time communication session. At  308 , the server  148  can receive, from at least one of the first computing device  124  and the mobile computing device  104 , authentication information for the user  108 . The authentication information can be indicative of the mobile computing device  104  being in short-range wireless communication with the first computing device  124 . At  312 , the server  148  can associate the user  108  with the real-time communication session. At  316 , the server  104  can detect that the second computing device  112  is logged into a same account as the mobile computing device  104 . In response to the associating and the detecting, at  320  the server  104  can transmit, to the second computing device  112 , instructions that cause the second computing device  112  to display a user interface element associated with the real-time communication session. An example of the user interface element is a system tray notification or pop-up window, which is shown at  404  in an example user interface  400  of  FIG.  4   . Optionally, at  324  the server  148  can receive, from the second computing device  112 , an input corresponding to a selection by the user  108  of the user interface element. The receipt of this input, for example, can enable the second computing device  112  to participate in the wireless communication session, including controlling the media system  132 . 
     Further to the descriptions above, a user may be provided with controls allowing the user to make an election as to both if and when systems, programs or features described herein may enable collection of user information (e.g., information about a user&#39;s current location, or information about the user&#39;s current cellular account/billing plan), and if the user is sent content or communications from a server. In addition, certain data may be treated in one or more ways before it is stored or used, so that personally identifiable information is removed. For example, a user&#39;s identity may be treated so that no personally identifiable information can be determined for the user, or a user&#39;s geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined. Thus, the user may have control over what information is collected about the user, how that information is used, and what information is provided to the user. 
     Example embodiments are provided so that this disclosure will be thorough, and will fully convey the scope to those who are skilled in the art. Numerous specific details are set forth such as examples of specific components, devices, and methods, to provide a thorough understanding of embodiments of the present disclosure. It will be apparent to those skilled in the art that specific details need not be employed, that example embodiments may be embodied in many different forms and that neither should be construed to limit the scope of the disclosure. In some example embodiments, well-known procedures, well-known device structures, and well-known technologies are not described in detail. 
     The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting. As used herein, the singular forms “a,” “an,” and “the” may be intended to include the plural forms as well, unless the context clearly indicates otherwise. The term “and/or” includes any and all combinations of one or more of the associated listed items. The terms “comprises,” “comprising,” “including,” and “having,” are inclusive and therefore specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. The method steps, processes, and operations described herein are not to be construed as necessarily requiring their performance in the particular order discussed or illustrated, unless specifically identified as an order of performance. It is also to be understood that additional or alternative steps may be employed. 
     Although the terms first, second, third, etc. may be used herein to describe various elements, components, regions, layers and/or sections, these elements, components, regions, layers and/or sections should not be limited by these terms. These terms may be only used to distinguish one element, component, region, layer or section from another region, layer or section. Terms such as “first,” “second,” and other numerical terms when used herein do not imply a sequence or order unless clearly indicated by the context. Thus, a first element, component, region, layer or section discussed below could be termed a second element, component, region, layer or section without departing from the teachings of the example embodiments. 
     As used herein, the term module may refer to, be part of, or include: an Application Specific Integrated Circuit (ASIC); an electronic circuit; a combinational logic circuit; a field programmable gate array (FPGA); a processor or a distributed network of processors (shared, dedicated, or grouped) and storage in networked clusters or datacenters that executes code or a process; other suitable components that provide the described functionality; or a combination of some or all of the above, such as in a system-on-chip. The term module may also include memory (shared, dedicated, or grouped) that stores code executed by the one or more processors. 
     The term code, as used above, may include software, firmware, byte-code and/or microcode, and may refer to programs, routines, functions, classes, and/or objects. The term shared, as used above, means that some or all code from multiple modules may be executed using a single (shared) processor. In addition, some or all code from multiple modules may be stored by a single (shared) memory. The term group, as used above, means that some or all code from a single module may be executed using a group of processors. In addition, some or all code from a single module may be stored using a group of memories. 
     The techniques described herein may be implemented by one or more computer programs executed by one or more processors. The computer programs include processor-executable instructions that are stored on a non-transitory tangible computer readable medium. The computer programs may also include stored data. Non-limiting examples of the non-transitory tangible computer readable medium are nonvolatile memory, magnetic storage, and optical storage. 
     Some portions of the above description present the techniques described herein in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. These operations, while described functionally or logically, are understood to be implemented by computer programs. Furthermore, it has also proven convenient at times to refer to these arrangements of operations as modules or by functional names, without loss of generality. 
     Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system memories or registers or other such information storage, transmission or display devices. 
     Certain aspects of the described techniques include process steps and instructions described herein in the form of an algorithm. It should be noted that the described process steps and instructions could be embodied in software, firmware or hardware, and when embodied in software, could be downloaded to reside on and be operated from different platforms used by real time network operating systems. 
     The present disclosure also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored on a computer readable medium that can be accessed by the computer. Such a computer program may be stored in a tangible computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits (ASICs), or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus. Furthermore, the computers referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability. 
     The algorithms and operations presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may also be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatuses to perform the required method steps. The required structure for a variety of these systems will be apparent to those of skill in the art, along with equivalent variations. In addition, the present disclosure is not described with reference to any particular programming language. It is appreciated that a variety of programming languages may be used to implement the teachings of the present disclosure as described herein, and any references to specific languages are provided for disclosure of enablement and best mode of the present invention. 
     The present disclosure is well suited to a wide variety of computer network systems over numerous topologies. Within this field, the configuration and management of large networks comprise storage devices and computers that are communicatively coupled to dissimilar computers and storage devices over a network, such as the Internet. 
     The foregoing description of the embodiments has been provided for purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure. Individual elements or features of a particular embodiment are generally not limited to that particular embodiment, but, where applicable, are interchangeable and can be used in a selected embodiment, even if not specifically shown or described. The same may also be varied in many ways. Such variations are not to be regarded as a departure from the disclosure, and all such modifications are intended to be included within the scope of the disclosure.