Dual physical channel secure connection

Various systems and methods for initiating a communication session are provided herein. A system for initiating a communication session includes a transmitter disposed in a housing of the system; a controller coupled to the transmitter, and disposed in the housing; a communication controller to interface with the controller and cause the transmitter to transmit a first signal to a receiver device, the first signal including a public key associated with the system; and a radio coupled to the communication controller to receive a response from the receiver device, the response including an encrypted public key of the receiver device and a unique identifier that identifies the receiver device, the public key of the receiver device and the unique identifier both encrypted with the public key associated with the system, and the response used to establish a wireless connection between the system and the receiver device.

TECHNICAL FIELD

Embodiments described herein generally relate to networking and in particular, to initiating a communication session.

BACKGROUND

According to some technical analysts, there will be over 50 billion connected “things” by the year 2020. This will completely transform current infrastructures and will drive new innovations in industry, products, and services. Internet of Things (IoT) is term that represents devices and systems that communicate over a network, such as the Internet. The IoT is a network of physical objects or “things” embedded with electronics, software, and sensors that enables these objects to collect and exchange data between themselves and between other computing devices. Example “things” include connected home appliances, sensors in automobiles, biochips, public cameras, wearable devices, and the like. Standards groups have begun the process of formulating standards that specify procedures for device discovery, communications between devices, service discovery, security, and other procedures used in forming and maintaining IoT networks. Example groups include the Open interconnect Consortium (OIC), Internet Protocol for Smart Objects (IPSO) Alliance, and the Industrial Internet Consortium.

DETAILED DESCRIPTION

IoT may be described as a ‘network of networks’ where devices utilize underlying communications networks and technologies such as the Internet to communicate, but form their own logical networks of IoT devices (called nodes). As noted above, the prevalence of IoT devices is increasing. IoT devices may contain a variety of sensors (e.g., cameras, microphones, global positioning systems (GPS), telemetry, etc.) for a variety of purposes, such as a camera and microphone on a television set to allow video conferencing. IoT devices include practically anything that is network-addressable and remotely-controllable, such as window shades, refrigerators, ceiling lights, landscaping lights, security systems, thermostats, televisions, network accessible storage (NAS), automobiles, health monitors, exercise equipment, industrial equipment, manufacturing equipment, robots, and the list goes on.

Interconnection between IoT devices may be provided using a variety of communication standards, such as ZIGBEE (i.e., conforms to families of standards defined in IEEE 802.15.4), BLUETOOTH (i.e., conforms to families of standards defined in IEEE 802.15.1 and defined by the Bluetooth Special Interest Group (SIG)), BLUETOOTH Low Energy (BLE), Symphony, 6LoWPAN, Wireless Fidelity (WiFi) protocols utilizing an Institute for Electrical and Electronics Engineers (IEEE) 802.11 family of standards, including 802.11n, 802.11 ac, 802.11 ad, 802.11 ah, and the like. In the case of BLUETOOTH and BLE, two devices are paired using a connection protocol. Conventional BLUETOOTH pairing requires user involvement with software and knowledge of the BLUETOOTH ID of the pairing device to initiate the connection. The BLUETOOTH ID, which has to be transmitted to pair BLUETOOTH devices, poses a security risk. What is needed is a more efficient, intuitive, and secure connection and pairing system and protocol.

Disclosed herein are systems and methods that provide a simplified method to pair and connect BLUETOOTH devices. Using an infrared (IR) light, or any other directional beam signal, a user may initiate a BLUETOOTH pairing or connection protocol from a user device to bond with a target device. Use of an infrared or other directional signal as a point-and-connect protocol has several potential benefits, including ease of use, security, power savings, consistent implementation, directionality, low cost, and faster pairing and bonding time. For example, the user does not have to learn different IoT interfaces to search for IoT devices; instead, the user merely points to and activates the IoT device of his choice. Pairing security is enhanced due to the proximity, line-of-sight, and other characteristics of directional signal-based initiation. A user may avoid or detect a potential man-in-the-middle attack, for example, because the user is able to see the intended IoT device. Further, because the user device does not have to constantly advertise its existence, the battery drain is reduced and computational energy is conserved and secure. Other advantages will become apparent in view of the continuing discussion.

BLUETOOTH connection techniques differ slightly between classic BLUETOOTH and BLE. In classic BLUETOOTH, the procedure for forming connections is asymmetrical, where one BLUETOOTH device acts as a pager while the other BLUETOOTH device scans for pages. The procedure is targeted so that the page is only responded to by the specified BLUETOOTH device scanning for pages.

In BLE, a device that transmits advertising packets is referred to as an advertiser and a device that receives advertising packets on the advertising channels with intent to connect to an advertiser is known as an initiator. When an initiator receives an advertising packet of interest, then the initiator may request a connection over the same advertising radio frequency (RF) channel on which it received the connectable advertising packet. Devices that receive advertising on the advertising channel without the intention of connecting are referred to as scanners and are outside of the scope of this discussion. An initiator may make a request to connect to the advertiser, and once the connection is established, the initiator is referred to as the master, while the advertiser is referred to as the slave. The master controls aspects of the master-slave communication.

It is understood that while examples and embodiments are described using the BLE nomenclature, the systems and methods described herein may also be applied to BLUETOOTH.

FIG. 1is a schematic diagram illustrating an operating environment100, according to an embodiment. The operating environment100includes a user device110and an IoT device150. The user device110may be any type of compute device including, but not limited to a smartphone, a laptop, a hybrid computer, a tablet, a phablet, a smartwatch, or other similar suitable devices that allow a user to initiate connection with the IoT device150. The IoT device150includes, but is not limited to any type of device capable of performing a compute function and connecting over a BLUETOOTH or BLE connection. Examples include consumer goods (e.g., television, refrigerator, washing machine, computer printer, audio system, smartphone, fire alarm, baby monitor, home automation devices, etc.), manufacturing devices, retail devices (e.g., shopping carts, price scanners, inventory systems, etc.), public works (e.g., gas meters, fire hydrants, street lights, etc.), and other suitable devices.

The user device110includes a transmitter111, capable of sending data, and controlled by controller112. In particular, the user device110may emit an IR signal from the transmitter111(e.g., IR emitter), the signal including information to initiate a BLUETOOTH connection with the IoT device150. Alternatively, the transmitter111may emit a millimeter wave signal to initiate a BLUETOOTH connection. Other directional signals may be used in place of IR or millimeter wave, such as directional sound, or other wavelengths of visual light or ultraviolet light. The directional signaling may be performed using any wavelength from the radio wave spectrum down to and including the x-ray region.

The IoT device150includes a receiver151and controller152, and upon receiving a triggering signal from the user device110, the IoT device150may connect with the user device110over BLUETOOTH according to the IEEE 802.15 family of standards.

Both the user device110and IoT device150also include BLUETOOTH hardware, firmware, and software to enable BLUETOOTH connectivity. The user device110includes a BLUETOOTH radio113controlled by BLUETOOTH firmware114and BLUETOOTH host115. Similarly, the IoT device150includes a BLUETOOTH radio153controlled by BLUETOOTH firmware154and BLUETOOTH host155. Operating systems116and156interface with the respective controllers112and152, and BLUETOOTH hosts115and155. Examples of the operating systems116and156include desktop operating systems, embedded operating systems, real-time operating systems, proprietary operating systems, network operating systems, and the like. Examples include, but are not limited to Windows® NT (and its variants), Windows® Mobile, Windows® Embedded, UNIX, Android™, JavaOS, Symbian OS, Linux, and other suitable operating system platforms.

A communication controller (not shown) may be implemented in hardware, firmware, or in the operating system116,156of the respective devices. The communication controller may act as an interface with various hardware abstraction layer (HAL) interfaces, such as device drivers, communication protocol stacks, libraries, and the like. The communication controller is operable to receive user input (e.g., from a system event or by an express system call to the communication controller), and interact with one or more lower-level communication devices (e.g., BLUETOOTH radio, cellular radio, infrared emitter, millimeter wave transceiver, etc.) based on the user input. The communication controller may be implemented, at least in part, in a user-level application that makes calls to one or more libraries, device interfaces, or the like, to cause communication devices to operate in a certain manner.

A user application space117and157on the user device110and optionally on the IoT device150, are used to implement user-level applications, controls, user interfaces, and the like, for a user to control the respective device. An application, app, extension, control panel, or other user-level executable software program may be used to initiate the signal to then, in turn, initiate BLUETOOTH connection protocols. Application space157is optional on the IoT device Applications or other executables may be executed in operating system156, protected memory, as an embedded process, or the like.

It is understood that other peer-to-peer protocols may be used instead of BLUETOOTH or BLE, such as WI-FI DIRECT or ZIGBEE. In such configurations, alternatively configured radios may he used along with the appropriate pairing or connection protocols.

FIG. 2is a swim lane diagram illustrating message traffic between the user device110and the IoT device150, according to an embodiment. Prior to connection, each device is provisioned with a device-specific security key. The security key may be a digital signature provided by a certificate authority. The digital signature may include a public key and a private key, such as in a private-key infrastructure (PKI) mechanism. The PKI mechanism may be based on a Diffie-Hellman scheme, RSA algorithm, Lamport signatures, Merkle signatures, hash trees, Rabin signatures, or other suitable PKI schemes.

At200, user input is received. The user input indicates that the user seeks to connect the user device110with the IoT device150using a BLUETOOTH (or BLE) connection. Various forms of user input may be received including, but not limited to a pressing a hard button, actuating a soft user interface control, performing a gesture, speaking a command, or other suitable user input.

Upon receiving the input, the user device110emits a signal using a transmitter202in the user device110. The signal204includes the public key of the user device110(KUSER) and is transmitted by line-of-sight to the IoT device150. The signal204may be one of several different types of directional signals including, but not limited to IR, millimeter wave, or directional sound. It is understood that transmitter202may be a transceiver in related embodiments.

The IoT device150receives the signal204at a receiver206. In response to the signal204, the IoT device150interfaces with a BLUETOOTH stack218to initiate a BLUETOOTH connection (operation206). The IoT device150uses the BLUETOOTH stack218and associated firmware and radio to transmit an encrypted package to the user device110. In particular, the IoT device150responds with a communication208, which includes a unique identification (UID) associated with the IoT device150. The UID may be a BLUETOOTH Device Identifier that is provisioned under the BLUETOOTH specification (e.g., 48-bit BLUETOOTH device address obtained from the IEEE Registration Authority). Alternatively, the UID may be an arbitrary UID, provided by another authority. The encrypted package also includes the security key of the IoT device150(KIOT). Both the security key of the IoT device150and the UID associated with the IoT device150are encrypted with the security key of the user device110({UID, KIOT} KUSER). This responsive signal208acts as an advertisement, such as in the BLE protocol. The user device110may then act as an initiator, accepting the advertisement and initiating a connection.

The user device110now has the public key of the IoT device150and the unique identification (UID) associated with the IoT device150. The user device151is able to decrypt the UID and determine whether it recognizes the UID. If this is the first time that the user device110has received this particular UID, then the user device110may prompt the user for verification (operation210). For example, the user device110may display a prompt on a screen or other output presentation of the user device110and suspend until it receives user input indicating that the Ica device150is valid. After the user interacts with the user device110to indicate that the connection request was valid, the user device110may store the UID of the IoT device115in memory (e.g., in firmware or non-volatile storage on the user device110, in a cloud storage location, or elsewhere) (operation212). Optionally, at this time, the user device151may refer to one or more access control list mechanisms, such as a white list, a black list, or other controls (operation214) to determine whether connection is allowed.

At operation216, the user device110attempts to connect with BLUETOOTH (or BLE) to the IoT device150using the UID provided by the IoT device150. In effect, the exchange up to this point has acted as an advertising mechanism for the IoT device110to announce its presence and with the signaling, to announce its ability and interest in connecting. In response, the user device110may store and forward the UID to a BLUETOOTH stack220of the user device110, which will then begin the connection protocol. For example, in BLE, the BLUETOOTH stack220may issue a “create connection” command to create a link layer connection to a connectable advertiser (i.e., the IoT device150). After connection is established, the user device110and IoT device150may exchange data and perform other conventional BLUETOOTH operations.

The IoT device150may optionally provide an indication of successful pairing or connection. The indication may be a visual, audible, or haptic signal. For example, the IoT device150may have a light-emitting diode (LED) that blinks green on successful pairing, yellow for a warning condition, and red for when the pairing or connection was unsuccessful. With audible chimes, a user may be alerted of various states, such as by using a light ding for successful pairing or connection, or a low gong for a failed pairing or connection. Haptic alerts may be used as well, such as with patterns of vibrations to indicate various states. Combinations of notification mechanisms may be used together.

If the user device110and IoT device150have never been bonded before, then the user device110and IoT device150may perform an initial pairing protocol. In an example, after causing the signal to be sent from the user device110to the IoT device150, the user may have to interact with the user device110in order to initially pair the devices. After the initial pairing protocol is completed the first time, the devices maintain each other's information so that subsequent BLUETOOTH bonding may be performed without the user interaction step.

FIG. 3is a block diagram illustrating a user device300and two IoT devices350A and350B, according to an embodiment. The user device300includes components similar to that of user device110discussed inFIG. 1. The user device300ofFIG. 3includes a radio301that may be controlled for various types of communication standards, such as BLUETOOTH, BLE, ZIGBEE, Wi-Fi, WI-FI DIRECT, and the like. In the user device300illustrated inFIG. 3, the radio301is configured for use with Zig ZIGBEE Bee firmware302and an associated ZIGBEE host303, and a BLUETOOTH firmware304and associated BLUETOOTH host305. In order to provide a hardware abstraction layer, a host translation layer306is used. The host translation layer306provides an interface between the operating system306and the hosts (e.g., ZIGBEE host303and BLUETOOTH host305). The host translation layer306may also be used to translate messaging from an application executing in user space308. By abstracting the underlying hardware from the user-level applications, the host translation layer306provides a simplified user interface where the user is not aware of or needs to expressly control which protocol is used to connect to the respective IoT device350A or350B.

For example, when the user activates an agnostic control to connect to IoT device350A, the user does not need to know which protocol is used to connect the user device300to the IoT device350A or350B. The user may activate a control, which may be a soft control (e.g., a button presented on a touchscreen) or a hard control (e.g., a button incorporated into the housing of the user device300). The control may be agnostic in that the control may not be labeled or indicate how the user device300is to connect to the IoT device (e.g., IoT device350A). For example, the agnostic control may be labeled “Connect” or “IoT Connect.” In contrast, examples of a non-agnostic control is “Connect with BLUETOOTH” or “Connect using ZIGBEE.” By using an agnostic control, the user is provided a simple mechanism to connect the IoT device that the user is pointing at with the user device. Upon detection of the activation of the agnostic control, the user device300may discover the IoT device350A and initiate a connection using directional signals, as described above with respect toFIGS. 1-2. In particular, the IoT device350A includes a receiver351A and associated controller352A to receive a directional signal from the user device300, to initiate the connection. A BLUETOOTH connection may be created using the BLUETOOTH radio353A, BLUETOOTH firmware354A, and BLUETOOTH host355A available on the IoT device350A.

Similarly, if the user points the user device300at IoT device350B, instead of connecting with a BLUETOOTH protocol, the user device300is able to instead connect with the IoT device350B using the ZIGBEE protocol with the ZIGBEE firmware302and ZIGBEE host303. The IoT device350B includes complementary ZIGBEE hardware, firmware, and software to accept and control connections. In particular, the IoT device350B includes a receiver351B and associated controller352B to receive a directional signal from the user device300, to initiate the connection. The IoT device350B also includes a ZIGBEE radio353B, ZIGBEE firmware354B, and ZIGBEE host355B to communicate with the user device300using the ZIGBEE protocol.

FIG. 4is a block diagram illustrating the protocol stack400of a flexible connection mechanism according to an embodiment. The protocol stack400includes three layers: a device dependent layer402, a host translation layer404, and a connect software layer406. The device dependent layer402includes various device driver firmware, hardware, and other components to implement connection mechanisms such as BLUETOOTH, ZIGBEE, Z-WAVE, WI-FI DIRECT, and other wireless protocols.

The host translation layer404may be similar to the host translation layer306described inFIG. 3. In general, the host translation layer404handles the message translation and passing between the connect software layer406and the device dependent layer402.

The connect software layer406executes in a user space408or operating system410of an operating environment (e.g., on a user device300). The connect software layer406provides a user interface to the user, interfaces with libraries that may be executable from user space408or operating system410, and accesses driver software via the host translation layer404. The host translation layer404may be implemented as a library, operating system service, daemon, or other component that an executable in the connect software layer406may access in a similar manner to how the executable accesses other various libraries or operating system services.

The executable application operating in the connect software layer406may respond to a user's action, such as a user pressing a hard button on a housing of a user device while pointing the user device at an IoT device that she wishes to connect to and control. After the button is pressed the client device may present the IoT device for further user interaction. The user is then able to interact with the application with a touch and launch device specific software. As an example, if the user were to point the client user device at a refrigerator, the client user device and the refrigerator may pair, and refrigerator software may be launched and show the temperature, if the door is closed, what food and how much of it is available, and other features of the refrigerator.

In such an example, the connect software layer406receives user input initiating a connection attempt, the connect software layer406handles the user input and passes relevant information to the host translation layer404. The host translation layer404is used to attempt to connect to the IoT device being pointed at by the user. The host translation layer404may query the IoT device to determine available protocols that may be used to connect the user device and the IoT device. The host translation layer404may then control which aspects of the device dependent layer402are implemented to connect to the IoT device.

For instance, if the client device includes the abilities to connect using BLUETOOTH and ZIGBEE, the host translation layer404may attempt to discern what type of connection methods are available from a target IoT device and then use the appropriate components from the device dependent layer402to connect to the target IoT device.

The host translation layer404translates messages from the connect software layer406to the device dependent layer402. The host translation layer404is also responsible for book keeping the various connection parameters and maintaining local databases to supply them. Part of the database contents may be populated by the device vender. The host translation layer404includes device-dependent components that interface with the underlying hardware. These components may be installed by the connect software layer406or may be preinstalled by the device vender. The detail of the range limitation and connection parameters may be handled by the host translation layer404.

The device dependent layer402is the domain of the vender and is similar to the current connection mechanisms. The device dependent layer402includes protocol-specific communication hardware and driver software. Because there are multiple communication mechanisms the device dependent layer402may include many parts (e.g., for Bluetooth, Wi-Fi direct, etc.).

FIG. 5is a block diagram illustrating a user device500, according to an embodiment. The user device500is illustrated as a smartphone in this example, through it will be understood that user device500is representative of other types of computing devices, which may have more or fewer components, devices, or other features than exemplary user device500. User device500has a housing502that encloses the interior components. The housing502may provide access to the interior of device500to some degree. For instance, in devices with a user-replaceable battery, flash memory card, or subscriber identity module (SIM) card, the housing502may include a user-removable cover. In devices having a design that does not facilitate user access to the interior, housing502may nonetheless have a provision for permitting access to technicians so that certain components may be repaired or replaced if needed.

User device500further includes a touchscreen504, which may form a part of the overall enclosure of device500in cooperation with housing502. The touchscreen504includes hardware that functions as an output device (e.g., an LED screen for visual display, power and controller circuitry, etc.), and an input device generally layered over the visual display and formed from a suitable touch or proximity-sensitive technology (e.g., capacitive, resistive, optical, ultrasonic, etc.), along with the corresponding detection and power circuitry. Additionally, the user device500includes a user input device506, which in this example represents one or more user-operable input devices, such as button(s), keypad, keyboard, trackpad, mouse, etc.

As further depicted inFIG. 5, the user device500has several data capture devices, such as sensing transducers, the physical stimulation of which produces signaling that may be sampled, digitized, and stored as captured data. The camera508includes an image sensor, along with additional hardware for digitizing, processing, and storing portions of the image sensor output. The camera508also includes optics that may form a portion of the housing502. The camera508may record still images, motion video, or both.

A microphone510includes audio capture circuitry that samples, digitizes, and stores portions of the signaling produced by the microphone510in response to sensed acoustic stimulus. The microphone510is typically activated together with the camera508when the user device500is operated to record videos.

Additional sensors in the user device500include an accelerometer512with a multi-axis sensor that produces signaling in response to changes in motion, and electronics to sample and digitize that signaling, and a magnetometer514with sensors and supporting circuitry that detect the direction and intensity of the ambient magnetic field, or any externally-applied magnetic fields.

The user device500may also include a user input control (e.g., hard button, a slider, a switch, or a soft button) to trigger the emitter and Bluetooth connection sequence. For example, the user device500may have a user input control516on the side of the housing502, in this example a button, which when actuated by the user, causes a signal to be emitted from a transmitter518. As discussed above, the signal emitted from the transmitter518may be of various types of directional signals, including but not limited to IR or millimeter wave. The user action may initiate the process flow discussed above with respect toFIGS. 1-3and elsewhere herein.

FIG. 6is a flowchart illustrating a method600for initiating a communication session from a user device, according to an embodiment. At block602, a first signal is transmitted to a receiver device using a directional transmitter disposed in a housing of the user device, the first signal including a public key associated with the user device. In an embodiment, the directional transmitter is an infrared transmitter, and wherein the first signal is an infrared signal. In a related embodiment, the directional transmitter is a directional millimeter wave transmitter, and the first signal is a millimeter wave signal. In another embodiment, the directional transmitter is a directional sound wave transmitter, and the first signal is a directional sound wave signal.

At block604, a response from the receiver device is received via a non-directional radio disposed in the housing of the user device, the response including an encrypted public key of the receiver device and a unique identifier that identifies the receiver device, the public key of the receiver device and the unique identifier both encrypted with the public key associated with the system.

In an embodiment, the non-directional radio comprises a Bluetooth radio to interface with a Bluetooth host and firmware, and to establish the Bluetooth connection with the receiver device. In a related embodiment, the unique identifier is a Bluetooth device identifier of the receiver device.

At block606, the response is used to establish a wireless connection between the system and the receiver device.

In an embodiment, the method600includes receiving input from a user input control and triggering the communication controller to transmit the first signal in response to the input. In an embodiment, the user input control comprises a hard button on an exterior portion of the housing. In a related embodiment, the user input control comprises a slider on an exterior portion of the housing. In another embodiment, the user input control comprises a switch on an exterior portion of the housing.

In an embodiment, the method600includes determining a wireless protocol available from the receiving device and configuring the non-directional radio to communicate using the wireless protocol. In a further embodiment, the non-directional radio is configurable to communicate using a plurality of wireless protocols including BLUETOOTH and ZIGBEE.

FIG. 7is a flowchart illustrating a method700for establishing a communication session with a user device, according to an embodiment. At block702, a first signal from the user device is received via a transceiver of a host device, the first signal including a public key associated with the user device. In an embodiment, the receiver is an infrared receiver, and wherein the first signal is an infrared signal. In an embodiment, the receiver is a directional millimeter wave receiver, and the first signal is a millimeter wave signal. In another embodiment, the receiver is a directional sound wave receiver, and the first signal is a directional sound wave signal.

At block704, a public key of the host device and a unique identifier of the host device is transmitted via a radio, to the user device, the public key of the host device and the unique identifier of the host device each encrypted with the public key received from the user device.

At block706, a wireless connection is established between the host device and the user device.

In an embodiment, the unique identifier is a BLUETOOTH device identifier of the system. In a related embodiment, establishing the wireless connection comprises interfacing with a BLUETOOTH host on the system in order to respond to a connection request from the remote device.

In another embodiment, establishing the wireless connection comprises interfacing with a ZIGBEE host on the system in order to respond to a connection request from the remote device.

A processor subsystem may be used to execute the instruction on the machine-readable medium. The processor subsystem may include one or more processors, each with one or more cores. Additionally, the processor subsystem may be disposed on one or more physical devices. The processor subsystem may include one or more specialized processors, such as a graphics processing unit (GPU), a digital signal processor (DSP), a field programmable gate array (FPGA), or a fixed function processor.

Circuitry or circuits, as used in this document, may comprise, for example, singly or in any combination, hardwired circuitry, programmable circuitry such as computer processors comprising one or more individual instruction processing cores, state machine circuitry, and/or firmware that stores instructions executed by programmable circuitry. The circuits, circuitry, or modules may, collectively or individually, be embodied as circuitry that forms part of a larger system, for example, an integrated circuit (IC), system on-chip (SoC), desktop computers, laptop computers, tablet computers, servers, smart phones, etc.

Example computer system800includes at least one processor802(e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both, processor cores, compute nodes, etc.), a main memory804and a static memory806, which communicate with each other via a link808(e.g., bus). The computer system800may further include a video display unit810, an alphanumeric input device812(e.g., a keyboard), and a user interface (UI) navigation device814(e.g., a mouse). In one embodiment, the video display unit810, input device812and UI navigation device814are incorporated into a touch screen display. The computer system800may additionally include a storage device816(e.g., a drive unit), a signal generation device818(e.g., a speaker), a network interface device820, and one or more sensors (not shown), such as a global positioning system (GPS) sensor, compass, accelerometer, gyrometer, magnetometer, or other sensor.

The storage device816includes a machine-readable medium822on which is stored one or more sets of data structures and instructions824(e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein. The instructions824may also reside, completely or at least partially, within the main memory804, static memory806, and/or within the processor802during execution thereof by the computer system800, with the main memory804, static memory806, and the processor802also constituting machine-readable media.

ADDITIONAL NOTES & EXAMPLES

Example 1 is a system for initiating a communication session, the system comprising: a transmitter disposed in a housing of the system; a controller coupled to the transmitter, and disposed in the housing; a communication controller to interface with the controller and cause the transmitter to transmit a first signal to a receiver device, the first signal including a public key associated with the system; and a radio coupled to the communication controller to receive a response from the receiver device, the response including an encrypted public key of the receiver device and a unique identifier that identifies the receiver device, the public key of the receiver device and the unique identifier both encrypted with the public key associated with the system, and the response used to establish a wireless connection between the system and the receiver device.

In Example 2, the subject matter of Example 1 optionally includes wherein the transmitter is an infrared transmitter, and wherein the first signal is an infrared signal.

In Example 3, the subject matter of any one or more of Examples 1-2 optionally include wherein the transmitter is a directional millimeter wave transmitter, and wherein the first signal is a millimeter wave signal.

In Example 4, the subject matter of any one or more of Examples 1-3 optionally include wherein the transmitter is a directional sound wave transmitter, and wherein the first signal is a directional sound wave signal.

In Example 5, the subject matter of any one or more of Examples 1-4 optionally include wherein the radio comprises a BLUETOOTH, radio to: interface with a BLUETOOTH host and firmware; and establish the BLUETOOTH connection with the receiver device.

In Example 6, the subject matter of any one or more of Examples 1-5 optionally include wherein the unique identifier is a BLUETOOTH device identifier of the receiver device.

In Example 7, the subject matter of any one or more of Examples 1-6 optionally include a user input control that is communicatively coupled to the communication controller when in operation, and is configured to receive a user input and trigger the communication controller to transmit the first signal.

In Example 8, the subject matter of Example 7 optionally includes wherein the user input control comprises a hard button on an exterior portion of the housing.

In Example 9, the subject matter of any one or more of Examples 7-8 optionally include wherein the user input control comprises a slider on an exterior portion of the housing.

In Example 10, the subject matter of any one or more of Examples 7-9 optionally include wherein the user input control comprises a switch on an exterior portion of the housing.

In Example 11, the subject matter of any one or more of Examples 1-10 optionally include wherein the system is a user device.

In Example 12, the subject matter of any one or more of Examples 1-11 optionally include wherein the communication controller is to: determine a wireless protocol available from the receiving device; and configure the radio to communicate using the wireless protocol.

In Example 13, the subject matter of Example 12 optionally includes wherein the radio is configurable to communicate using a plurality of wireless protocols including BLUETOOTH and ZIGBEE.

Example 14 is a method for initiating a communication session from a user device, the method comprising: transmitting a first signal to a receiver device using a directional transmitter disposed in a housing of the user device, the first signal including a public key associated with the user device; receiving, via a non-directional radio disposed in the housing of the user device, a response from the receiver device, the response including an encrypted public key of the receiver device and a unique identifier that identifies the receiver device, the public key of the receiver device and the unique identifier both encrypted with the public key associated with the system; and using the response to establish a wireless connection between the system and the receiver device.

In Example 15, the subject matter of Example 14 optionally includes wherein the directional transmitter is an infrared transmitter, and wherein the first signal is an infrared signal.

In Example 16, the subject matter of any one or more of Examples 14-15 optionally include wherein the directional transmitter is a directional millimeter wave transmitter, and wherein the first signal is a millimeter wave signal.

In Example 17, the subject matter of any one or more of Examples 14-16 optionally include wherein the directional transmitter is a directional sound wave transmitter, and wherein the first signal is a directional sound wave signal.

In Example 18, the subject matter of any one or more of Examples 14-17 optionally include wherein the non-directional radio comprises a BLUETOOTH radio to interface with a BLUETOOTH host and firmware, and to establish the BLUETOOTH connection with the receiver device.

In Example 19, the subject matter of any one or more of Examples 14-18 optionally include wherein the unique identifier is a BLUETOOTH device identifier of the receiver device.

In Example 20, the subject matter of any one or more of Examples 14-19 optionally include receiving input from a user input control; and triggering the communication controller to transmit the first signal in response to the input.

In Example 21, the subject matter of Example 20 optionally includes wherein the user input control comprises a hard button on an exterior portion of the housing.

In Example 22, the subject matter of any one or more of Examples 20-21 optionally include wherein the user input control comprises a slider on an exterior portion of the housing.

In Example 23, the subject matter of any one or more of Examples 20-22 include wherein the user input control comprises a switch on an exterior portion of the housing.

In Example 24, the subject matter of any one or more of Examples 14-23 optionally include determining a wireless protocol available from the receiving device; and configuring the non-directional radio to communicate using the wireless protocol.

In Example 25, the subject matter of Example 24 optionally includes wherein the non-directional radio is configurable to communicate using a plurality of wireless protocols including BLUETOOTH and ZIGBEE.

Example 26 is at least one machine-readable medium including instructions, which when executed by a machine, cause the machine to perform operations of any of the methods of Examples 14-25.

Example 27 is an apparatus comprising means for performing any of the methods of Examples 14-25.

Example 28 is an apparatus for initiating a communication session from a user device, the apparatus comprising: means for transmitting a first signal to a receiver device using a directional transmitter disposed in a housing of the user device, the first signal including a public key associated with the user device; means for receiving, via a non-directional radio disposed in the housing of the user device, a response from the receiver device, the response including an encrypted public key of the receiver device and a unique identifier that identifies the receiver device, the public key of the receiver device and the unique identifier both encrypted with the public key associated with the system; and means for using the response to establish a wireless connection between the system and the receiver device.

In Example 29, the subject matter of Example 28 optionally includes wherein the directional transmitter is an infrared transmitter, and wherein the first signal is an infrared signal.

In Example 30, the subject matter of any one or more of Examples 28-29 optionally include wherein the directional transmitter is a directional millimeter wave transmitter, and wherein the first signal is a millimeter wave signal.

In Example 31, the subject matter of any one or more of Examples 28-30 optionally include wherein the directional transmitter is a directional sound wave transmitter, and wherein the first signal is a directional sound wave signal.

In Example 32, the subject matter of any one or more of Examples 28-31 optionally include wherein the non-directional radio comprises a Bluetooth radio to interface with a BLUETOOTH host and firmware, and to establish the BLUETOOTH connection with the receiver device.

In Example 33, the subject matter of any one or more of Examples 28-32 optionally include wherein the unique identifier is a BLUETOOTH device identifier of the receiver device.

In Example 34, the subject matter of any one or more of Examples 28-33 optionally include means for receiving input from a user input control; and means for triggering the communication controller to transmit the first signal in response to the input.

In Example 35, the subject matter of Example 34 optionally includes wherein the user input control comprises a hard button on an exterior portion of the housing.

In Example 36, the subject matter of any one or more of Examples 34-35 optionally include wherein the user input control comprises a slider on an exterior portion of the housing.

In Example 37, the subject matter of any one or more of Examples 34-36 optionally include wherein the user input control comprises a switch on an exterior portion of the housing.

In Example 38, the subject matter of any one or more of Examples 28-37 optionally include means for determining a wireless protocol available from the receiving device; and means for configuring the non-directional radio to communicate using the wireless protocol.

In Example 39, the subject matter of Example 38 optionally includes wherein the non-directional radio is configurable to communicate using a plurality of wireless protocols including BLUETOOTH and ZIGBEE.

Example 40 is at least one machine-readable medium including instructions for initiating a communication session, which when executed by a machine, cause the machine to: transmit, using a transmitter, a first signal to a receiver device, the first signal including a public key associated with the machine; and receive, via a radio, a response from the receiver device, the response including an encrypted public key of the receiver device and a unique identifier that identifies the receiver device, the public key of the receiver device and the unique identifier both encrypted with the public key associated with the system, and the response used to establish a wireless connection between the system and the receiver device.

In Example 41, the subject matter of Example 40 optionally includes wherein the transmitter is an infrared transmitter, and wherein the first signal is an infrared signal.

In Example 42, the subject matter of any one or more of Examples 40-41 optionally include wherein the transmitter is a directional millimeter wave transmitter, and wherein the first signal is a millimeter wave signal.

In Example 43, the subject matter of any one or more of Examples 40-42 optionally include wherein the transmitter is a directional sound wave transmitter, and wherein the first signal is a directional sound wave signal.

In Example 44, the subject matter of any one or more of Examples 40-43 optionally include wherein the radio comprises a BLUETOOTH radio to: interface with a BLUETOOTH host and firmware; and establish the BLUETOOTH connection with the receiver device.

In Example 45, the subject matter of any one or more of Examples 40-44 optionally include wherein the unique identifier is a BLUETOOTH device identifier of the receiver device.

In Example 46, the subject matter of any one or more of Examples 40-45 optionally include wherein the machine is a user device.

In Example 47, the subject matter of any one or more of Examples 40-46 optionally include instructions to: determine a wireless protocol available from the receiving device; and configure the radio to communicate using the wireless protocol.

In Example 48, the subject matter of Example 47 optionally includes wherein the radio is configurable to communicate using a plurality of wireless protocols including BLUETOOTH and ZIGBEE.

Example 49 is a system for establishing a communication session, the system comprising: a receiver disposed in a housing of the system; a controller coupled to the receiver, and disposed in the housing; and a communication controller to interface with the controller and to: receive, via the receiver, a first signal from a remote device, the first signal including a public key associated with the remote device; transmit, via a radio, a public key of the system and a unique identifier of the system, to the remote device, the public key of the system and the unique identifier of the system each encrypted with the public key received from the remote device; and establish a wireless connection between the system and the remote device.

In Example 50, the subject matter of Example 49 optionally includes wherein the receiver is an infrared receiver, and wherein the first signal is an infrared signal.

In Example 51, the subject matter of any one or more of Examples 49-50 optionally include wherein the receiver is a directional millimeter wave receiver, and wherein the first signal is a millimeter wave signal.

In Example 52, the subject matter of any one or more of Examples 49-51 optionally include wherein the receiver is a directional sound wave receiver, and wherein the first signal is a directional sound wave signal.

In Example 53, the subject matter of any one or more of Examples 49-52 optionally include wherein the unique identifier is a BLUETOOTH device identifier of the system.

In Example 54, the subject matter of any one or more of Examples 49-53 optionally include wherein to establish the wireless connection, the communication controller is to interface with a BLUETOOTH host on the system in order to respond to a connection request from the remote device.

In Example 55, the subject matter of any one or more of Examples 49-54 optionally include wherein to establish the wireless connection, the communication controller is to interface with a ZIGBEE host on the system in order to respond to a connection request from the remote device.

Example 56 is a method for establishing a communication session with a user device, the method comprising: receiving, via a transceiver of a host device, a first signal from the user device, the first signal including a public key associated with the user device; transmitting, via a radio, a public key of the host device and a unique identifier of the host device, to the user device, the public key of the host device and the unique identifier of the host device each encrypted with the public key received from the user device; and establishing a wireless connection between the host device and the user device.

In Example 57, the subject matter of Example 56 optionally includes wherein the receiver is an infrared receiver, and wherein the first signal is an infrared signal.

In Example 58, the subject matter of any one or more of Examples 56-57 optionally include wherein the receiver is a directional millimeter wave receiver, and wherein the first signal is a millimeter wave signal.

In Example 59, the subject matter of any one or more of Examples 56-58 optionally include wherein the receiver is a directional sound wave receiver, and wherein the first signal is a directional sound wave signal.

In Example 60, the subject matter of any one or more of Examples 56-59 optionally include wherein the unique identifier is a BLUETOOTH device identifier of the system.

In Example 61, the subject matter of any one or more of Examples 56-60 optionally include wherein establishing the wireless connection comprises interfacing with a BLUETOOTH host on the system in order to respond to a connection request from the remote device.

In Example 62, the subject matter of any one or more of Examples 56-61 optionally include wherein establishing the wireless connection comprises interfacing with a ZIGBEE host on the system in order to respond to a connection request from the remote device.

Example 63 is at least one machine-readable medium including instructions, which when executed by a machine, cause the machine to perform operations of any of the methods of Examples 56-62.

Example 64 is an apparatus comprising means for performing any of the methods of Examples 56-62.

Example 65 is an apparatus for establishing a communication session with a user device, the apparatus comprising: means for receiving, via a transceiver of a host device, a first signal from the user device, the first signal including a public key associated with the user device; means for transmitting, via a radio, a public key of the host device and a unique identifier of the host device, to the user device, the public key of the host device and the unique identifier of the host device each encrypted with the public key received from the user device; and means for establishing a wireless connection between the host device and the user device.

In Example 66, the subject matter of Example 65 optionally includes wherein the receiver is an infrared receiver, and wherein the first signal is an infrared signal.

In Example 67, the subject matter of any one or more of Examples 65-66 optionally include wherein the receiver is a directional millimeter wave receiver, and wherein the first signal is a millimeter wave signal.

In Example 68, the subject matter of any one or more of Examples 65-67 optionally include wherein the receiver is a directional sound wave receiver, and wherein the first signal is a directional sound wave signal.

In Example 69, the subject matter of any one or more of Examples 65-68 optionally include wherein the unique identifier is a BLUETOOTH device identifier of the system.

In Example 70, the subject matter of any one or more of Examples 65-69 optionally include wherein the means for establishing the wireless connection comprise means for interfacing with a BLUETOOTH host on the system in order to respond to a connection request from the remote device.

In Example 71 the subject matter of any one or more of Examples 65-70 optionally include wherein the means for establishing the wireless connection comprise means for interfacing with a ZIGBEE host on the system in order to respond to a connection request from the remote device.

Example 72 is at least one machine-readable medium including instructions for establishing a communication session with a user device, which when executed by a machine, cause the machine to: receive, via a transceiver of a host device, a first signal from the user device, the first signal including a public key associated with the user device; transmit, via a radio, a public key of the host device and a unique identifier of the host device, to the user device, the public key of the host device and the unique identifier of the host device each encrypted with the public key received from the user device; and establish a wireless connection between the host device and the user device.

In Example 73, the subject matter of Example 72 optionally includes wherein the receiver is an infrared receiver, and wherein the first signal is an infrared signal.

In Example 74, the subject matter of any one or more of Examples 72-73 optionally include wherein the receiver is a directional millimeter wave receiver, and wherein the first signal is a millimeter wave signal.

In Example 75, the subject matter of any one or more of Examples 72-74 optionally include wherein the receiver is a directional sound wave receiver, and wherein the first signal is a directional sound wave signal.

In Example 76, the subject matter of any one or more of Examples 72-75 optionally include wherein the unique identifier is a BLUETOOTH device identifier of the system.

In Example 77, the subject matter of any one or more of Examples 72-76 optionally include wherein the instructions to establish the wireless connection comprise instructions to interface with a BLUETOOTH host on the system in order to respond to a connection request from the remote device.

In Example 78, the subject matter of any one or more of Examples 72-77 optionally include wherein the instructions to establish the wireless connection comprise instructions to interface with a ZIGBEE host on the system in order to respond to a connection request from the remote device.