Secure connected device control and monitoring system
Claim Score by NHIP
Abstract
Examples are disclosed that facilitate connecting in a secure and efficient manner a mobile device to networked-enabled devices located in a premises. The security of the networked-enabled, connected devices in the premises may be maintained by use of a gateway device situated behind a home router. Through the home router, the gateway device maintains a persistent connection with a network component of a service provider. When an authorized application executing on a mobile device attempts to connect with the gateway device to communicate with the respective customer connected devices, the device control application is connected to a pre-established communication port to allow direct communication between the device control application and the respective customer connected device. A service provider's network component in some examples maintains the pre-established connection for the duration of the session in which the customer connected device is to be controlled via a mobile device, or longer.

Term
8.5 yearsto projected expiry
Projected expiry 31 March 2035, counted from filing; an application has no term until it is granted.
- Priority and filed
- Published
- Today
- Projected expiry
20 claims: 3 independent, 17 dependent
- 1A home network gateway device, comprising:a memory for storing customer connected device profile information;a multi-protocol communication interface compatible with a plurality of different communication protocols for interfacing with customer connected devices;and a processor coupled to the memory and the multi-protocol communication interface, wherein the processor is configured to perform functions, including functions to: establish a persistent and secure connection with a service provider device in a service provider network;receive a data transmission identifier assigned by the service provider device to a customer connected device connected to the multi-protocol communication interface;store the assigned data transmission identifier in a data record in the memory associated with the customer connected device;receive a request for information from a service provider device, wherein the request includes a data transmission identifier;access the memory to identify the customer connected device associated with the data transmission identifier in the request;in response to identifying the customer connected device, retrieving status information from the customer connected device;and forward the status information to the service provider device.
- 12A service provider device, comprising:a memory for storing customer connected device profile information;a mobile communication network connection;a data communication network connection;and a processor coupled to the memory, the mobile communication network connection and the data communication network connection, wherein the processor is configured to perform functions, including functions to: receive an indication via the data communication network connection that a request for a persistent connection has been received;in response to receiving a request, establish a persistent connection with a gateway device in a home network;receive a request from a mobile device via the mobile communication network connection for information related to the gateway device in the home network, wherein the mobile device request includes service subscriber information usable to identify and authenticate the subscriber;upon authenticating the subscriber, obtain from the mobile device a user datagram protocol port identifier established by the mobile device;and provide the obtained user datagram protocol port identifier to the gateway device for the establishment of a communication path between the mobile device and the gateway device.
- 16Broadest claimClaim Score 57, broad(NHIP)A method, comprising:receiving an indication via a data communication network that a request for a persistent connection has been received;in response to receiving a request, establishing a persistent connection with a gateway device in a home network;receiving a request from a mobile device via the mobile communication network connection for information related to the gateway device in the home network, wherein the mobile device request includes service subscriber information usable to identify and authenticate the subscriber;upon authenticating the subscriber, obtaining from the mobile device a user datagram protocol port identifier established by the mobile device;and providing the obtained user datagram protocol port identifier to the gateway device for the establishment of a communication path between the mobile device and the gateway device.
Independent claims3
138 paragraphs in 3 sections, as filed
BACKGROUND
0001The increased availability of customer connected home or business use appliances has led to a proliferation of a variety of personal or home automation systems. Such systems allow customers to remotely control various systems both from within and from outside their homes or businesses via their portable or wearable smart mobile devices using Bluetooth, Wi-Fi, broadband Internet and cellular telephone networks. Examples of controllable functions include managing a home security system, controlling energy consumption within a premises by managing heating and lighting, accessing home media and entertainment (both across a user's home and in the user's automobile), monitoring vital parameters (e.g., heart rate, blood sugar) and providing timely information to life support systems, tracking children's whereabouts, and the like.
0002Multiple, off-the-shelf, customer connected home or business premises-based devices can be easily connected to the cellular, Bluetooth or Wi-Fi networks and controlled via an application/controller program that resides on a smartphone or other type of portable or wearable device. However, such “plug and play” systems pose at least two problems to the user. First, the user may be confused by being exposed to an unstructured and fragmented electronics ecosystem that has been created due to an ever growing choice of add-on devices coupled with evolving networking standards (e.g., Zigbee, Zwave, X10 and the like). In other words, the different customer connected devices do not comply with a single standard or a compatible communication protocol, and therefore, the connected devices do not interact well with one another. Secondly, many in home devices manufactured by different manufacturers require different applications on the user's mobile device; and those applications offer distinctly different user interfaces. Also, smartphone and wearable device applications developed by third party vendors may not be completely compatible with all connected devices or with each other, resulting in sub-par performance. For example, older computing devices may have operating systems that are out-of-date or even incompatible with operating systems of other devices. As a result, devices of the same manufacturer may not effectively communicate or interact with one another due to the incompatibility of the respective device operating systems or other compatibility issues, such as communication protocol differences. Even a broad-based, consolidated system may restrict the kind of devices that can be activated within an ecosystem.
0003Aside from the interoperability issues, there is yet another issue associated with multiple customer connected devices related to accessing a user's home network, such as a Wi-Fi network. Presently, the above referenced customer connected devices in a customer's home/Wi-Fi network are behind a router; and securely, be accessing in-home from a mobile device external to the home/Wi-Fi network represents a complex challenge. Each customer connected device has to be individually configured to connect to mobile applications and vice versa. If users want to connect multiple devices to their home/Wi-Fi network, each connected device has to maintain a separate connection with the outside network. Moreover, mobile devices outside the home/Wi-Fi network cannot initiate communication with the enabled customer connected devices inside the home/Wi-Fi network without manually configuring the router of the home network. Without assistance, the management of disparate devices that use differing communication standards eventually translates into a poor user/customer experience.
0004As a result, there is a need for improvement in managing disparate devices that are implemented behind a router of a premises local area network, such as a Wi-Fi network.
BRIEF DESCRIPTION OF THE DRAWINGS
0005The drawing figures depict one or more implementations in accord with the present teachings, by way of example only, not by way of limitation. In the figures, like reference numerals refer to the same or similar elements.
0006<figref idref="DRAWINGS">FIG. 1</figref> is a high-level functional block diagram of an example of a system for providing remote access to connectable devices within a customer premises network (e.g., in a home or business).
0007<figref idref="DRAWINGS">FIG. 2</figref> is a block diagram illustrating an example of the logical connections and logical separation between the elements of a service provider network and home network of <figref idref="DRAWINGS">FIG. 1</figref>.
0008<figref idref="DRAWINGS">FIGS. 3A and 3B</figref> are a signal flow diagrams illustrating an example of the signal flows among home connection logical layer and persistent connection logical layer elements through a persistent connection platform in the service provider network.
0009<figref idref="DRAWINGS">FIG. 4</figref> is a signal flow diagram illustrating an example of the notification and command signal flows within the home connection logical layer and the persistent connection logical layer through a persistent connection platform in the service provider network.
0010<figref idref="DRAWINGS">FIG. 5A</figref> is an example of a system configured to stream video from an IP-based camera to a customer's mobile device(s).
0011<figref idref="DRAWINGS">FIG. 5B</figref> is a signal flow diagram illustrating an example of the signal flows to stream video from an IP-based camera to a customer's mobile device(s).
0012<figref idref="DRAWINGS">FIG. 6</figref> illustrates an example of a device control application user interface to allow a user to obtain access to customer connected devices at the premises connected to a gateway device according to examples of the disclosed subject matter.
0013<figref idref="DRAWINGS">FIG. 7</figref> is a high-level functional block diagram of an example of a touch screen type mobile device that communicates with a gateway device as shown in <figref idref="DRAWINGS">FIGS. 1 and 4</figref>.
0014<figref idref="DRAWINGS">FIG. 8</figref> is a simplified functional block diagram of a computer that may be configured as a host or server, for example, to function as a persistent connection platform, a router, a server or a gateway in the system of <figref idref="DRAWINGS">FIG. 1</figref>.
0015<figref idref="DRAWINGS">FIG. 9</figref> is a simplified functional block diagram of a personal computer or other work station or terminal device.
DETAILED DESCRIPTION OF EXAMPLES
0016In the following detailed description, numerous specific details are set forth by way of examples in order to provide a thorough understanding of the relevant teachings. However, it should be apparent that the present teachings may be practiced without such details. In other instances, well known methods, procedures, components, and/or circuitry have been described at a relatively high-level, without detail, in order to avoid unnecessarily obscuring aspects of the present teachings.
0017In order to overcome the obstacles to easily managing and communicating with disparate home automation components, examples of the disclosed systems provide a combination of customer connected devices that interact with a gateway device that facilitates communicating with the home automation components behind the user's home network. The gateway device provides a seamless plug-n-play environment that offers users (e.g., mobile communication network operator customers/subscribers) the option of using devices of their choice and interactive capabilities as described in more detail with reference to <figref idref="DRAWINGS">FIG. 1</figref>.
0018<figref idref="DRAWINGS">FIG. 1</figref> illustrates a high-level functional block diagram of a system configured according to an example of the disclosed subject matter. In the example, the system <b>100</b> includes a service provider network <b>123</b> and a home network <b>130</b> as well as a mobile network operator (MNO) communication network <b>120</b>, mobile devices MD<b>1</b>-MD<b>3</b>, and a data communication network <b>127</b>, such as the Internet or a business intranet.
0019As discussed herein, the service provider using the service provider network provides a customer connected device control service that allows service subscribers to control their customer connected devices in a premises, such as the subscriber's home or business, from remote locations using a mobile device, such as a smartphone, laptop, tablet, wearable device, or any other suitable device. Examples of a wearable device include a watch, fitness device, personal digital assistant, or the like. As part of the service, the remote mobile device is configured to execute computer program instructions of a customer connected device control application (i.e., a home connect application). The customer connected device control application, also referred to as the home connect application, is implemented in modules that execute on the gateway <b>150</b>, the mobile devices MD<b>1</b>-MD<b>3</b>, and the public server <b>125</b>. Note that the public server <b>125</b> may be any publicly accessible server. In the present example, the public server <b>125</b> is a service provider server that is publicly accessible from external networks, such as the internet <b>127</b>.
0020The gateway <b>150</b> in a customer's home network <b>130</b> connects to multiple connected devices <b>161</b>-<b>169</b>. The gateway <b>150</b> shares the information about the connected devices <b>161</b>-<b>169</b> with the instances of the customer connected device control application executing on the public server <b>125</b> and the customer's mobile devices MD<b>1</b>-MD<b>3</b> via the PCP <b>126</b> and the mobile communication network <b>120</b>. In turn, this enables the customer to communicate with the connected devices <b>161</b>-<b>169</b> from their respective mobile devices MD<b>1</b>-MD<b>3</b>. For example, when sending a message to a connected device (e.g., <b>163</b>) from mobile device MD<b>1</b>, the mobile device MD<b>1</b> contacts via the PCP <b>126</b> the gateway <b>150</b> connected to the respective connected device (e.g., <b>163</b>), and the gateway <b>150</b> relays the message to the connected device <b>163</b>. Similarly, the connected device <b>163</b> is configured to send a message (e.g., a notification or an alert) to a mobile device, such as MD<b>1</b> through the gateway <b>150</b>, which relays the message to the PCP <b>126</b> that delivers the message to the mobile device MD<b>1</b>. Of course, any of mobile devices MD<b>1</b>-MD<b>3</b> may be send messages to the gateway <b>150</b> and receive messages from the gateway <b>150</b>.
0021The service provider network <b>123</b>, among other functions, is configured to facilitate communication between mobile devices, such as MD<b>1</b>-MD<b>3</b>, and the customer connected devices <b>161</b>-<b>169</b> within the home network. For example, a customer connected device control system service provided by the service provider includes allowing a customer (i.e., a service subscriber) to use the service provider network <b>123</b> resources to securely connect to the subscriber's home network (e.g., home network <b>130</b>) and access, via the home router <b>140</b> and gateway <b>150</b>, the customer connected devices <b>161</b>-<b>169</b>. Using the service to access the customer connected devices <b>161</b>-<b>169</b>, the user/customer through a customer connected device control application (i.e., a home connect application) on the mobile device is able to obtain data from devices <b>161</b>-<b>169</b>, send control commands to the customer connected devices <b>161</b>-<b>169</b>, exchange status information (e.g., device is ON/OFF, functioning properly, notifications (e.g., door has opened, a switch has switched to the ON position)), or other information. The control commands sent by the customer connected device control application on the mobile device may be in a communication protocol format different from the customer connected devices <b>161</b>-<b>169</b>. In such an example, the gateway <b>150</b> (i.e., a home network device) receives the control command from the device control application. As mentioned, the control command includes instructions directed to a particular one of the customer connected devices, but is in a communication protocol format (e.g., Zwave) different from the received instructions (e.g., TCP/IP). The gateway <b>150</b> is configured to translate the received instructions in the control command into a communication protocol format of the connected, customer connected device. The gateway <b>150</b> establishes a connection with the customer connected device and delivers the translated instructions to the customer connected device for execution of the instructions. In an alternate example, the multi-protocol communication interface <b>159</b> of the gateway <b>150</b> is configured to receive and decode signals formatted in various communication protocols received from the customer connected device and encode and transmit signals to the customer connected device. For example, the multi-protocol communication interface <b>159</b> is configured to recognize signals of various communication protocols, such as Zigbee, X10, TCP/IP and the like, received from connected devices. The multi-protocol communication interface <b>159</b>, for example, indicates to the gateway <b>150</b> the communication protocol of the received signal, which allows the gateway to decode and process the received signals.
0022In the presented examples, a service provider is an entity that maintains the PCP <b>126</b> and public server <b>125</b> in the service provider network <b>123</b>. The service provider (not shown) also maintains a database of customer connected device profile information transmitted to the PCP <b>126</b> for each gateway device <b>150</b>. In addition, the service provider provides a device control application suitable for use with the gateway device <b>150</b>, the customer connected devices <b>161</b>-<b>169</b>, and the PCP <b>126</b>. The service provider may be a mobile (i.e., cellular) network operator that provides a customer connected device control service in combination with also providing mobile communication (i.e., cellular) services for the respective mobile devices. Alternatively, the service provider may be a third-party that utilizes the mobile communication services of the mobile network operator and provides a device control application suitable for use with the gateway device <b>150</b> the customer connected devices <b>161</b>-<b>169</b>, and the PCP <b>126</b>.
0023Detailed examples of the customer connected device control system service are explained with reference to the following examples of <figref idref="DRAWINGS">FIGS. 1-6</figref>.
0024With reference to <figref idref="DRAWINGS">FIG. 1</figref>, the service provider network <b>123</b> includes network devices configured to implement provisioning of home automation components with the service provider network <b>123</b>. For example, the service provider network <b>123</b> includes network devices, such as a persistent connection platform (PCP) <b>126</b>, and a public server <b>125</b>. The public server <b>125</b> of the service provider network is a server that is accessible via a mobile communication network, such as MNO communication network <b>120</b>, or the data communication network <b>127</b>, such as the Internet, by any person (e.g., a subscriber or non-subscriber). A user that subscribes (i.e., subscriber) to a customer connected device control service (e.g., a home automation control service) provided by the service provider has access via the public server <b>125</b> to the PCP <b>126</b>. The public server <b>125</b> is configured to connect to the data communication network <b>127</b> and establish a connection with the home router <b>140</b>. Of course, the public server <b>125</b> is also accessible via the internet router <b>142</b>, but not for the purpose of providing the home automation service. The internet router <b>142</b> is an on-premises Wi-Fi router that allows devices, such as tablets, computers and smartphones to access the data communication network <b>127</b> (i.e., the internet). The public server <b>125</b> is coupled to the MNO communication network <b>120</b> and the data communication network <b>127</b>, and provides access to the PCP <b>126</b> from devices, such as the home router <b>140</b> or mobile devices MD<b>1</b>-MD<b>3</b>, that communicate via the data communication network <b>127</b> and/or the MNO communication network <b>120</b> with the service provider network <b>123</b>. The PCP <b>126</b> connects devices, such as gateway <b>150</b> and connected devices <b>161</b>-<b>169</b>, to mobile devices, such as MD<b>1</b>-MD<b>3</b>, outside the home network <b>130</b>, and initiates and maintains communication via a persistent connection with the respective mobile devices MD<b>1</b>, MD<b>2</b> or MD<b>3</b> and with the gateway <b>150</b> inside the home network <b>130</b>. Mobile device MD<b>3</b> is shown connected to the Internet <b>127</b> via an access point <b>128</b>. The access point <b>128</b> may be a Wi-Fi, WiMax or other type of wireless network access point. Similarly, a persistent connection is established between the mobile device MD <b>3</b> and the PCP <b>126</b> of the service provider network <b>123</b>, in this example, via public server <b>125</b> and the Internet <b>127</b>.
0025The connection is a persistent connection because the PCP <b>126</b> and/or the gateway <b>150</b> does not permit the connection to “timeout” due to a lack of data exchange, for example, by using “stay-alive” commands as are known in the art. The use of the term “connection” in this context refers to a logical communication session between the PCP <b>126</b> and the gateway <b>150</b> that is not necessarily a physical or electrical connection. For example, the persistent connection is established by exchanging a hypertext transfer protocol (HTTP) connection messages between the PCP <b>126</b> and the gateway <b>150</b>. Also, it is appreciated that HTTP is an application layer protocol and requires a transport layer protocol (e.g., Transmission Control Protocol (TCP) or Internet Protocol (IP)) for device-to-device data transfer. The persistent connection may be considered a dedicated data pipe for real-time or near real-time data exchange between the PCP <b>126</b> and the respective devices <b>161</b>-<b>169</b> via the gateway <b>150</b>. Similarly, a persistent connection exists between the PCP <b>126</b> and a device control application executing on a respective one of the mobile devices MD<b>1</b>-MD<b>3</b>. The persistent connection is an HTTP connection that uses the same packet connection to send and receive multiple HTTP requests and responses, as opposed to establishing a new connection for every single request and response pair.
0026For example, the persistent connection between the gateway device <b>150</b> and the PCP <b>126</b> via the public server <b>125</b> is a connection maintained through the data communication network <b>127</b> and the MNO communication network <b>120</b> and via the home router <b>140</b> of the home network <b>130</b>. The persistent connection is a logical “always on” connection that is available without having to re-authenticate the connected devices. In other words, time and network resources are saved by not having to re-authenticate the gateway device <b>150</b> to the PCP <b>126</b> and, upon successful authentication, re-establishing the connection between the gateway device <b>150</b> and the PCP <b>126</b>. Conversely, as mentioned above, the dashed arrows shown in <figref idref="DRAWINGS">FIG. 1</figref> indicate a logical on-demand connection. For example, customer connected devices <b>161</b>-<b>169</b> have an on-demand connection with the gateway <b>150</b>. Similarly, the connections between the computing devices <b>152</b> and <b>154</b> with the internet router <b>142</b> and connection of the internet router <b>142</b> with the data communication network <b>127</b> are logical on-demand connections.
0027Explained differently, the Persistent Connection Platform (PCP) <b>126</b> is configured to maintain a long lived transmission control protocol (TCP) connections (i.e. persistent connections) between multiple devices irrespective of the underlying network. An advantage of the described examples is that the connected devices <b>161</b>-<b>169</b> of <figref idref="DRAWINGS">FIG. 1</figref> are accessible through a secure persistent connection maintained and secured by the service provider network that enables communication using minimal network resources. Since the connection is a persistent connection repeated requests and responses do not have to be exchanged and processed by the network resources. The PCP solution provides a secure communication channel that is device-agnostic. Security-wise, it obviates the use of Port forwarding on the Router for an IP Camera—which prevents intruders from hacking into the system. It is also independent of the disparate protocols (such as Zigbee, Z-wave, TCP/IP, BLE (Bluetooth Low Energy) etc) that each device may employ. Updating of firmware on these devices is also supported, regardless of the hardware. Thus, the customer can easily add a device of their choice to their current system without concerning themselves with the technical protocols that are involved. Moreover, the devices can be easily accessed from anywhere via the Internet.
0028In an example, the PCP <b>126</b> includes two software modules: the Push Client (PC) and the Push Engine (PE) (both not shown, but described in more detail with reference to other examples). The PE of the PCP <b>126</b> is configured for creating and managing a number of persistent TCP connections. The PE acts as a server module of the PCP <b>126</b>. Meanwhile, the PC acts as the client module and is associated with a device or system that is maintaining a persistent connection with the PE, such as the gateway <b>150</b>, the public server <b>125</b> and the mobile devices MD<b>1</b>-MD<b>3</b>.
0029The PE is implemented in the PCP <b>126</b> that communicates via the public server <b>125</b>, which, in some examples, is maintained and controlled by the home automation service provider. A PC can be located on the Internet or in a private network, e.g., behind the home router in customer's home network. In an implementation of the customer connected device control (also, referred to as the “home connect” and “device control”) application, the gateway <b>150</b> also hosts a PC module. Using the PC module, the gateway <b>150</b> is able to create a connection with the PCP <b>126</b> via the Internet <b>127</b> and open a bi-directional channel to communicate with other devices connected to the PCP <b>126</b>. The mobile devices MD<b>1</b>-MD<b>3</b> with the home connect application also include a PC module and may connect to the PE via the MNO communication network <b>120</b>, which may be a cellular network. The public server <b>125</b> also executes a home connect application includes a PC module. The public server <b>125</b>, in an example, is also configured to push messages to the mobile devices MD<b>1</b>-MD<b>3</b> and the gateway <b>150</b> via the PCP <b>126</b>.
0030The MNO mobile communication network <b>120</b> includes a cellular radio access network (RAN), for example, a Long Term Evolution (LTE) network, an Enhanced Data rates for GSM Evolution (EDGE) network, Code Division Multiple Access (CDMA) <b>2000</b> network and the like, for communicating with the mobile devices MD<b>1</b> and MD<b>2</b>. The MNO communication network <b>120</b> may also include business operations network devices, databases and servers, such as customer account databases, subscriber information and similar information. Although three subscriber mobile devices MD<b>1</b>-MD<b>3</b> are shown, more or less devices may be accommodated. The subscriber mobile devices MD<b>1</b>-MD<b>3</b> may be a smartphone, a tablet computer, a laptop computer, a personal computer, or any device that allows the user to connect to a cellular communication network, such as MNO mobile communication network <b>120</b>, or a data communication network, such as the Internet <b>127</b>.
0031The home network <b>130</b>, depending upon the implementation, includes a home router <b>140</b> and a gateway device <b>150</b>, an internet-connected device router <b>142</b> and internet-connected devices <b>152</b> and <b>154</b>. For example, the home network <b>130</b> is one of a local area network (LAN), a Wi-Fi network or similar network. Alternatively, the home network <b>130</b> may include aspects of each of a LAN, Wi-Fi or similar network. The example gateway device <b>150</b> illustrated in <figref idref="DRAWINGS">FIG. 1</figref> supports connection to and communication with a variety of home automation or personal connected devices within the home network <b>130</b> that communicate using disparate protocols such as Z-Wave devices <b>161</b>, Bluetooth low energy (BLE) devices <b>163</b>, Zigbee devices <b>165</b>, transport control protocol/Internet protocol (TCP/IP) devices <b>167</b>, and other devices <b>169</b>, such as X10 protocol devices. For example, the connected devices <b>161</b>-<b>169</b> and the gateway <b>150</b> are connected to the home LAN/Wi-Fi (e.g. thermostat, switch, bulbs), Bluetooth (e.g. Fitbit), Z-Wave network (e.g., Motion/Flood sensors), Zigbee network (e.g., lawn sprinklers, home security) and other networks (e.g., X10, and the like). The types of home automation or customer connected devices <b>161</b>-<b>169</b> (i.e., “connected devices”) that can communicate with the gateway <b>150</b> include customer connected switches (e.g., light, appliance, etc.), bulbs or home products (such as window coverings and treatments, door locks, entertainment systems, sprinkler systems, yard products, garage door openers, water and motion sensors, thermostats, and the like), network enabled cameras, network enabled thermostats, Zwave sensors (such as motion sensors, water detection system), an array of wearable devices, such as wearable devices (such as a fitness monitor, health monitors (such as FitBit®), a watch or devices integrated in clothing), other devices (such as a transportation borne device), and the like.
0032In an example, a user provides details regarding a connected device <b>161</b>-<b>169</b> to the gateway <b>150</b>. This may be a registration of the respective connected device, such as for example, a camera <b>167</b>, with the gateway <b>150</b>. For example, the user provides the brand, model and/or serial number of the camera <b>167</b> to a user interface on a device, such as device <b>152</b> or <b>154</b> provided by an application, such as the device control application, used to interface with the gateway <b>150</b>. The gateway <b>150</b> may access the required drivers (via, for example, the data communication network <b>127</b> and server <b>124</b>, drivers stored in a memory of the gateway <b>150</b>, or from a CD or other flash driver provided with the camera). Once registered, the gateway <b>150</b> begins communicating with the camera <b>167</b>. For example, the camera may begin communicating with the gateway <b>150</b> according to proprietary protocols (for transfer of data commands and the like) used by the camera <b>167</b>. In an example, each of the different home automation or personal connected devices <b>161</b>-<b>169</b> communicate via a different protocol that make interoperability of the respective devices difficult. Of course, only one, less than all or all of the different protocols may be used by the respective connected device(s) <b>161</b>-<b>169</b>. In order to manage the disparate connected devices <b>161</b>-<b>169</b>, the gateway device <b>150</b> is configured to interface with the connected devices executing via the respective protocols using, for example, application programming interfaces (API) of the respective protocols. The gateway <b>150</b> includes a physical and/or wireless interface <b>159</b> for connecting with the respective connected devices <b>161</b>-<b>169</b>. The gateway <b>150</b> performs a discovery process and a pairing process with each of the connected devices <b>161</b>-<b>169</b>. For example, the discovery process is performed according to a data discover protocol as is known in the art. Based on the data obtained during the data discovery process, the gateway device <b>150</b> obtains further information either from the connected device <b>161</b>-<b>169</b> directly or from the user registration process. For example, information, such as a manufacturer, model number, software/firmware versions, driver information, communication protocol, user credentials, and the like about each of the connected devices <b>161</b>-<b>169</b> may be obtained. In addition, the gateway <b>150</b> also includes a connection to a memory or data storage (DS) <b>158</b>, which may be preconfigured to include such customer connected device-related information. Upon performing the data discovery process (and a pairing process between the respective connected device and the gateway <b>150</b>, if not already completed), the gateway device <b>150</b> facilitates the management of connected devices <b>161</b>-<b>169</b> behind the home router <b>140</b> over the respective Wi-Fi, Bluetooth, Bluetooth Low Energy, Zigbee, Z-wave or other protocols. Of course, depending upon the communication protocol of the respective connected devices <b>161</b>-<b>169</b>, the connections of the respective connected devices <b>161</b>-<b>169</b> to the gateway <b>150</b> may be via a wired or wireless communication path. For example, one device of a particular protocol, such as Zigbee, for example, may require a wired connection to the gateway <b>150</b> while control signals to other Zigbee devices is via a wireless connection according to the Zigbee protocol.
0033At this time it may be appropriate to discuss a couple of the more prominently used communication protocols that were mentioned above. For example, the Z-Wave communication protocol is a wireless communications protocol designed for home automation, specifically to remotely control applications in residential and light commercial environments. The technology uses a low-power RF radio embedded or retrofitted into home electronics devices and systems, such as lighting, residential access control, entertainment systems and household appliances. Similarly, the ZigBee specification is a suite of high level communication protocols used to create personal area networks built from small, low-power digital radios. The ZigBee specification is based on an IEEE 802.15 standard. Though low-powered, ZigBee devices can transmit data over long distances by passing data through intermediate devices to reach more distant ones, creating a mesh network. In addition, the Bluetooth low energy, Bluetooth LE, or simply BLE, which is also referred to as Bluetooth Smart, is a wireless personal area network technology designed and marketed by the Bluetooth Special Interest Group aimed at novel applications in the healthcare, fitness, gateway security, and home entertainment industries. Compared to “Classic” Bluetooth, BLE is intended to provide considerably reduced power consumption and cost while maintaining a similar communication range.
0034The gateway <b>150</b> communicates with the respective customer connected devices <b>161</b>-<b>169</b> via each of the device's respective communication protocol through an on-demand connection (illustrated by the dashed line). In other words, the communication pathway (i.e., the dashed line) is established and terminated by either the gateway device <b>150</b> or the respective customer connected device <b>161</b>-<b>169</b>. For example, the Zigbee devices <b>165</b> are lawn sprinklers that are configured to turn on and off at specific times of day, and provide a notification to the gateway <b>150</b> whenever a turn on or turn off event occurs. In such a case, the Zigbee device <b>165</b> turns on, generates a notification that requires an on-demand communication path to be established to deliver the notification and terminates the communication path after the delivery of the notification to the gateway <b>150</b>. The gateway <b>150</b> is configured via the interface <b>159</b> to communicate with one or more customer connected devices <b>161</b>-<b>169</b> simultaneously.
0035While the gateway <b>150</b> manages the customer connected devices <b>161</b>-<b>169</b>, connectivity to the customer's mobile devices MD<b>1</b>-MD<b>3</b> is managed by the PCP <b>126</b> via the MNO communication network <b>120</b>, for example, over a 4G cellular network.
0036An advantage of using a gateway, such as gateway device <b>150</b>, in the system <b>100</b> is that the gateway device <b>150</b> enables bidirectional communication between devices (e.g., allowing interactivity between devices) and is agnostic to any device communication protocol. The infrastructure substantially guarantees secured connectivity with respectable quality of service.
0037In this example, the home router <b>140</b> is a router dedicated to the gateway <b>150</b>. Meanwhile, the Internet router <b>142</b> provides devices other than the gateway device <b>150</b>, such as <b>152</b> and <b>153</b>, connectivity to the data communication network <b>127</b> via a network (not shown), such as a fiber optic, coaxial cable, satellite or the like. In the example of <figref idref="DRAWINGS">FIG. 1</figref>, devices <b>152</b> and <b>154</b> are shown as a personal computer and a laptop computer respectively, but could also be smart televisions, tablets, smartphones, appliances or any other internet-connectable device. In addition, the connections of the devices <b>152</b> and <b>154</b> via the internet router <b>142</b> with the data communication network <b>127</b> are on-demand connections.
0038The connections for the internet router <b>142</b> and the home router <b>140</b> outside the home network <b>130</b> are different. The internet router <b>142</b> connects to the data communication network <b>127</b> via the Internet service provider (not shown) and receives data from servers, such as servers <b>124</b>. For example, one or more of the servers <b>124</b> may provide application-related data, connected device-related data, such as drivers or firmware updates, streaming content or the like to devices <b>152</b> and <b>154</b> within home network <b>130</b>. The home router <b>140</b> connects to and is accessible from the Mobile Network Operator (MNO) communication network <b>120</b> and/or the service provider network <b>123</b> via the data communication network <b>127</b>. In another example, the Internet router <b>142</b> and the home router <b>140</b> may be configured to be a single router device, but with the separate functionality provided by the respective home router <b>140</b> and internet router <b>142</b>. For example, a single router device (not shown) may be provided to a subscriber for use in the subscriber's home network, but the single router device has two separate routers, one being the Internet router <b>142</b> and the other being home router <b>140</b>. Alternatively, the home router <b>140</b> and the gateway <b>150</b> may be configured together in a separate device such as a set-top box, a stand-alone device or the like. In some examples, the home router <b>140</b> and/or the gateway device <b>150</b> are configured to allow devices <b>152</b> and <b>154</b> to communicate with the connected devices <b>161</b>-<b>169</b>.
0039In a general example of the operation of the gateway <b>150</b>, once connected to the user's home network <b>130</b>, the gateway device <b>150</b> seeks out all customer connected (e.g., Bluetooth, IP, Zigbee, Z-wave and the like) devices <b>161</b>-<b>169</b> connected to the user's home network <b>130</b>. Upon identifying the customer connected (i.e. connected) devices <b>161</b>-<b>169</b>, the gateway device <b>150</b> initiates and maintains connection with all the connected devices <b>161</b>-<b>169</b> in the home network <b>130</b>. The gateway device <b>150</b> by sending a persistent connection request via the home router <b>140</b> also establishes a preliminary communication connection with the PCP <b>126</b> through the public server <b>125</b>. In order to establish the connection with the PCP <b>126</b>, the gateway device <b>150</b> and the public server <b>125</b> exchange network credentials, such as user account information and the like, based on the service's subscriber information and/or on the subscriber's relationship with the MNO (if the service is provided by the MNO) to authenticate the gateway device <b>150</b> to the public server <b>125</b> in the service provider network <b>123</b>. For example, the subscriber-related credentials include information related to a mobile device of the subscriber, such as an MDN or IMEI, a subscriber user name and a subscriber password of a subscriber authorized to receive the services provided through the device control application services. Upon a successful authentication of the subscriber by the public server <b>125</b>, the public server <b>125</b> sends a request to the PCP <b>126</b> to establish a persistent connection with the gateway <b>150</b>. For example, the public server <b>125</b> sends with the request the IP address of the PCP <b>126</b> transmits a HTTP request to the gateway <b>150</b> requesting establishment of a secure, persistent connection. Upon completion of a handshaking process, the secure, persistent connection is established between the PCP <b>126</b> and the gateway device <b>150</b>. The PCP <b>126</b> maintains the persistent connection with the home router <b>140</b> and the gateway <b>150</b>.
0040The persistent connection thus enables the device control application launched on the mobile device MD <b>1</b> to receive real-time or near real-time data over the MNO communication network <b>120</b> from the PCP <b>126</b> or the gateway <b>150</b>. For example, the real-time or near real-time data is pushed to the mobile device MD<b>1</b> by the PCP <b>126</b> over the persistent connection, as data from devices <b>161</b>-<b>169</b> becomes available from the gateway <b>150</b>. As noted earlier, a persistent connection is a logical communication session established between a mobile device MD<b>1</b> and PCP <b>126</b> so that the mobile device MD<b>1</b> can receive real-time or near real-time data from the PCP <b>126</b>. This connection is established over a packet connection using various protocols, including TCP/IP, Secure Socket Layer (SSL), and HTTP protocols.
0041For example, the PCP <b>126</b> assigns a data transmission identifier to each of the customer connected device connected to the gateway <b>150</b>. Prior to or after authentication of the gateway device <b>150</b> with the PCP <b>126</b> (and the establishment of the persistent connection), a device control mobile application for controlling the customer connected devices <b>161</b>-<b>169</b> installed on the user's mobile device or wearable device, such as one or more of devices MD<b>1</b>-MD<b>3</b>, establishes a connection to the PCP <b>126</b>. The device control mobile application of the mobile device (e.g., MD<b>1</b>) is authenticated by the PCP <b>126</b>. Upon successful authentication of the device control mobile application by the PCP <b>126</b>, the mobile application/controller of the respective mobile device MD<b>1</b> is able to be connected by the PCP <b>126</b>, via the home router <b>140</b>, to the gateway device <b>150</b> over an established persistent connection. Details of the establishment of the connection between the MD<b>1</b> and the gateway <b>150</b> made by the PCP <b>126</b> are described below. The established connection allows communication with and control of the customer connected devices <b>161</b>-<b>169</b> in the home network <b>130</b> via the device control mobile application/controller executing on the mobile device MD <b>1</b>.
0042As shown by the solid arrows in <figref idref="DRAWINGS">FIG. 1</figref>, a persistent connection is maintained between the gateway device <b>150</b> and the PCP <b>126</b> of the service provider network <b>123</b>. The persistent connection may use the TCP/IP protocol to exchange communications between the gateway <b>150</b> and the mobile application on the mobile device MD <b>1</b>. The persistent connection creates a data pipeline between the gateway device <b>150</b> and the PCP <b>126</b> and in turn with user's mobile devices MD<b>1</b>-MD<b>3</b>. The public server <b>125</b> provides authorization for the mobile devices MD<b>1</b>-MD<b>3</b> to connect to the gateway device <b>150</b>. For example, one of the BLE devices <b>163</b> may be a door lock that is infrequently used during the course of a typical day. The door lock <b>163</b>, for example, may be placed in the lock position (e.g., when the subscriber is leaving home to go to work) and placed in the unlocked position in the evening (e.g., upon the subscriber's return from work). As a result, the maintenance of a persistent connection between the door lock <b>163</b> and the gateway <b>150</b> is inefficient and unnecessary. Thus, an on-demand connection is more logical and efficient for the connection between the devices <b>161</b>-<b>169</b> and the gateway <b>150</b>. Continuing with the example, the door lock <b>163</b> is configured to send a notification to the gateway <b>150</b> only when the door lock is operated. When the door lock <b>163</b> is operated, a processor within the door lock <b>163</b> may generate a connection request for the gateway <b>150</b>. In response to the connection being made between the door lock <b>163</b> and the gateway <b>150</b>, the door lock <b>163</b> sends a notification in response to the operation of the door lock <b>163</b>. In other words, an on-demand connection is made whenever a connected device needs information from the gateway <b>150</b> or from another device, such as mobile device MD<b>1</b>. In response to receiving the notification, the gateway <b>150</b> forwards the notification to the PCP <b>126</b> via the persistent connection with the PCP <b>126</b>.
0043Each networked-enabled, or connected, device <b>161</b>-<b>169</b> connected to the service provider network <b>123</b> (via the home router <b>140</b> and gateway device <b>150</b>) is assigned by the PCP <b>126</b> a unique data transmission identifier, called a pushID. All communication among the connected devices <b>161</b>-<b>169</b> and the PCP <b>126</b> (that have been assigned a pushID by the PCP <b>126</b>) use the pushID for addressing. For example, a Zwave device <b>161</b> may be assigned a pushID, which may be an 8 bit value (e.g., 01010101) that allows for 256 different pushIDs to be assigned. Using the pushID alone, the PCP <b>126</b> is configured to perform the following tasks efficiently and in a manner that is scalable: peer-to-peer messaging, peer-to-peer media sharing, and/or peer or server initiated messaging. In addition, the PCP <b>126</b> is configured to perform predefined operations on suitably configured customer connected devices <b>161</b>-<b>169</b> based on commands from one or more of the respective mobile devices MD<b>1</b>-MD<b>3</b>. Predefined operations can be programmed by the user on their device; an example would be to open the Garage door when the user is approaching their home. This action can be triggered using GPS (e.g. when the user's phone coordinates match their home coordinates). Additionally, the user can choose to turn the house lights on and change the thermostat settings, based on when the Garage door was opened. For example, the respective customer connected devices <b>161</b>-<b>169</b> provide status data, messages, and other communications to the PCP <b>126</b> for transmission to one or more mobile devices MD<b>1</b>-MD<b>3</b>. In one example, the gateway <b>150</b> is configured to send status data or messages to a particular mobile device of mobile devices MD<b>1</b>-MD<b>3</b>. The data or messages may be provided for a particular client mobile device MD<b>1</b>-MD<b>3</b> based on a subscription or account of a user/customer of the client mobile device with the service provider. The mobile devices MD<b>1</b>-MD<b>3</b> in some examples authenticate and register themselves with the public server <b>125</b>, in order to establish a persistent connection with the PCP <b>126</b>.
0044The PCP <b>126</b>, in some examples, has access to subscriber-related information stored in databases (not shown) coupled to the MNO communication network <b>120</b>. The subscriber-related information, for example, includes subscriber user names, user credential information, network configuration and performance information (e.g., download/upload speed, home router specifications and the like), user account information and the like. In some examples, the subscriber-related information is used by the PCP <b>126</b> or public server <b>125</b> to authenticate devices, such as gateway device <b>150</b> and/or mobile devices, such as MD<b>1</b>-MD<b>3</b>. The PCP <b>126</b> cannot connect to the gateway <b>150</b> directly since it is behind the home router <b>140</b> and is thereby undetectable by devices outside of the home network <b>130</b> without proper authorization.
0045In another example of the operation of the system <b>100</b>, the gateway <b>150</b> identifies each of the customer connected devices <b>161</b>-<b>169</b> of the different protocols connected to the gateway <b>150</b>. The gateway <b>150</b> retrieves, via a data discovery process, from each of the connected devices <b>161</b>-<b>169</b> information about the respective sensors such as manufacturer, model, protocols, software versions, firmware versions, identifiers, and device credentials. The gateway <b>150</b> uses some of the retrieved information to generate a profile of the respective enabled customer connected devices <b>161</b>-<b>169</b>. Only some of the retrieved information is used in the generation of the profile that is shared with the PCP <b>126</b> because the information that is not included may include credential related information that if left unsecured outside of the home network <b>130</b> may comprise the security of the respective devices <b>161</b>-<b>169</b>. The gateway <b>150</b> relays the generated profile to the PCP <b>126</b>, which maintains the enabled customer connected device <b>161</b>-<b>169</b> profiles in a data storage (not shown).
0046In the example, each of the mobile devices MD<b>1</b>-MD<b>3</b> has a computer application for controlling and receiving/exchanging information with the enabled customer connected devices <b>161</b>-<b>169</b> stored in memory. When the device control application begins a registration process with the PCP <b>126</b>. For example, a handshaking procedure is performed by the device control application authenticates through the MNO communication network <b>120</b> by exchanging device control application credentials stored on the mobile device with the PCP <b>126</b>. For example, the credentials may include a user name, a service provider account number, a user passcode, encrypted security keys, and similar encrypted or unencrypted information that uniquely and securely identifies the device control application to the PCP <b>126</b>.
0047At this time, it may be appropriate to describe with reference to <figref idref="DRAWINGS">FIG. 2</figref> the connections between the various system elements in a logical manner to better understand the interaction of the elements and the improvements provided by the described examples. <figref idref="DRAWINGS">FIG. 2</figref> is a block diagram illustrating an example of the logical connections and logical separation between the elements of a system for providing the connected home monitoring service described herein. The system <b>200</b> includes the service provider network <b>123</b> and home network <b>130</b> of <figref idref="DRAWINGS">FIG. 1</figref>. In an example, the customer connected device control application (i.e., home connect application) executing on the public server <b>125</b> is also configured to push messages to the mobile devices MD<b>1</b>-MD<b>3</b> and the gateway device <b>150</b> via the PCP <b>126</b>. The logical relationship between the PCP <b>126</b> and the customer connected device control application is shown in <figref idref="DRAWINGS">FIG. 2</figref>. As shown in <figref idref="DRAWINGS">FIG. 2</figref>, when executing the customer connected device control application on mobile devices MD<b>1</b>-MD<b>3</b>, the gateway device <b>150</b> and the PCP <b>126</b> are executing their respective instances of the customer connected device control application that form a logical relationship between the PCP <b>126</b>, the gateway <b>150</b> and connected devices <b>161</b>-<b>169</b>. The logical relationship includes two logical layers: the Home Connect Layer and the Persistent Connection Layer.
0048The Home Connect Layer (HCL) is a logical representation of the customer connected device control application, and the Persistent Connection Layer (PCL) is a logical representation of the PCP push engine and push clients. The system elements, such as the gateway <b>150</b>, the public server <b>125</b>, and the mobile devices MD<b>1</b>-MD<b>3</b> when implementing the customer connected device control application communicate within the HCL for the exchange of data and control signals related to the customer connected device control application. In the HCL, each of the gateway <b>150</b>, the public server <b>125</b>, and the mobile devices MD<b>1</b>-MD<b>3</b> executes an instance of the customer connected device control application as illustrated by the reference label “A” that is appended to the end of the respective reference number (e.g., gateway <b>150</b>A, public server <b>125</b>A, and MD<b>1</b>PC-MD<b>3</b>A). In addition, each executing instance of the customer connected device control application implements a Push Client (PC) module on each respective device. However, the respective PC is logically a part of the PCL. For example, the instance of the device control application executing on the gateway <b>150</b> (i.e., gateway <b>150</b>A) implements the logical PC <b>150</b>PC, the public server implements the logical PC <b>125</b>PC, and the mobile devices MD<b>1</b>-MD<b>3</b> respectively implement logical PCs MD<b>1</b>PC-MD<b>3</b>PC. All logical push clients, gateway PC <b>150</b>PC, public server PC <b>125</b>PC and mobile device PC MD<b>1</b>PC-MD<b>3</b>PC, are shown in the PCL since logically the respective PCs reside in the PCL. When the PCP <b>126</b> is configured to execute programming that implements the PCP <b>126</b> Push Engine (PE) <b>126</b>PE, which is also shown in the PCL since the PE logically resides in the PCL. The example of <figref idref="DRAWINGS">FIG. 2</figref> is useful for illustrating communication between the logical HCL elements and the logical PCP <b>126</b>PE on the PCL and the establishment of persistent TCP connections. The persistent connections are shown in <figref idref="DRAWINGS">FIG. 2</figref> by the bolded arrows labeled “Persistent Connection (Per Con)” or “Per Con.” The PC <b>150</b>PC and PC MD<b>1</b>PC-MD<b>3</b>A and PCP <b>126</b>PE logical modules interact to maintain the TCP connection via regular heartbeat messages. Occasionally, heartbeat (HB) messages are exchanged between the respective PCs and the PE to maintain connectivity by ensuring the connection remains open. The HB messages are shown by the alternating long dash-short dashed line labeled “HB to maintain Per Con.” or “HB.” In some examples, the HB messages are exchanged every 28 minutes or at some other interval. The HB message interval, in an example, is periodic, but in other examples, the HB message is aperiodic. In an alternative example, the HB messages are exchanged or generated by either the PC or the PE in response to some event, such as an activation of or a subscriber interaction with a connected device, such as devices <b>161</b>-<b>169</b> of <figref idref="DRAWINGS">FIG. 1</figref>. For example, when subscribers are away from the premises, the HB message may be periodic, but when the subscribers are at the premises, the HB messages may be sent when a user interacts with a connected device. In cases where the HB signal is lost, a new persistent TCP connection is initiated by the PC. HB messages from the HCL elements pass through the established TCP connection maintained by the PCL.
0049In addition to the HB messages, data messages from the HCL elements pass through TCP connection maintained by the PCL. In other words, the gateway <b>150</b>PC, home connect public server <b>125</b>PC, and the mobile devices MD<b>1</b>PC-MD<b>3</b>PC communicate information related to the mobile devices MD<b>1</b>-MD<b>3</b> and the connected devices <b>161</b>-<b>169</b> via the persistent TCP connections established by the PCP <b>126</b>PE. The logical HCL elements can also communicate with each other outside the PCP <b>126</b>PE. For example, as shown by the data/control signal arrows of <figref idref="DRAWINGS">FIG. 2</figref>, the gateway <b>150</b>A and/or mobile devices MD<b>1</b>PC-MD<b>3</b>A can connect to the home connect public server <b>125</b>A using a hypertext transfer protocol secure (HTTPS) connections via web services. However, when the gateway <b>150</b>PC and Mobile devices MD<b>1</b>PC-MD<b>3</b>PC communicate with each other, the exchange of data, such as connected device related-information and status information, occurs via the bi-directional TCP channel PCP <b>126</b>PE instead of using an HTTPS connection. This makes the communication more secure and allows the communication to be performed without having to establish the HTTPS connection.
0050In an example, the PCP <b>126</b> including the PE <b>126</b>PE executes on the public server <b>125</b>, and is maintained and controlled by the service provider in the service provider network <b>123</b>. Any PC of possibly many PCs may be implemented through the Internet or in a private network, such as a service provider customer's home network. A private network, for example, includes a gateway device <b>150</b> behind the home router <b>140</b>. In the examples of the home connect application, the gateway device <b>150</b> includes the PC module. Using the PC module, the gateway device <b>150</b> creates a connection on the PCP <b>126</b> via the data communication network <b>127</b> (e.g., the Internet) and opens a bi-directional communication channel to communicate with other devices connected to the PCP <b>126</b>. In addition, the mobile devices MD<b>1</b>-MD<b>3</b> equipped with a home connect application also include a PC module and connect to the PCP <b>126</b>PE via the MNO mobile communication network (i.e. cellular network) <b>120</b>. The home connect service provider through the service provider network <b>123</b> hosts a home connect application and a PC module on the public server <b>125</b>.
0051In an example of an initial connection between a PC and the PE, a respective PC, such as gateway <b>150</b>PC initiates a connection (shown by the encircled 1) by sending a request to join to the PE <b>126</b>A—in other words, gateway <b>150</b>PC connects to the PCP <b>126</b>PE using a TCP connection. For example, the request includes identifying information, such as identifiers of the requesting device, passwords and user names or the like. In this case, the request includes gateway <b>150</b> identifying information. The request is secured, for example, by using encryption or using security features such as using a hash function and including the hash value in the request, or using other known security techniques. Upon receipt of the PCP <b>126</b>PE validates (i.e., authenticates and verifies) the requesting gateway <b>150</b>PC (shown at encircled 2), and after successful validation, the PE <b>126</b>PE establishes a bi-directional TCP channel (shown as the dashed line with the open arrow heads) for the exchange of data communications. The PE<b>126</b>A maintains the connection and keeps the connection open using the occasional HB message mentioned above.
0052Once a PC of a respective device (such as a mobile device or another gateway) is connected to the PCP <b>126</b>PE, the PC of the respective device is assigned a PushId, shown as PCPID in <figref idref="DRAWINGS">FIG. 2</figref>. The PushId is a unique identifier on the PCP <b>126</b>. Using the PCPID, the gateway <b>150</b>PC can send messages to other PCs connected to the PCP <b>126</b> PE that have also been assigned a PCPID, such as PC MD<b>1</b>. In other words, the PCs, PC <b>150</b>PC, PC <b>125</b>A and PCs MD<b>1</b>PC-MD<b>3</b>A communicate using each other's PushIds. The PCs connected to the PCP <b>126</b>PE may discover each other via the PE <b>126</b>A. For example, the PCP<b>126</b> PE maintains a mapping of devices <b>161</b>-<b>169</b> to remote devices MD<b>1</b>-MD<b>3</b> permitted by the subscriber to exchange communications with the devices <b>161</b>-<b>169</b> located in the subscriber's home network <b>130</b>. In a further example, once a PushId of a remote PC executing on a device is known, any PC can send a message to the remote PC. Using the security features of the PCP <b>126</b> and with appropriate permissions of the contacted remote PCs, such a configuration creates a peer-to-peer system where PCs can discover and communicate with each other via the PCP<b>126</b> PE while also maintaining individual connections between the respective PCs.
0053An description of the runtime detailed functionalities of the PCL layer are unnecessary for implementing and understanding the described examples which are directed to the functions of the home connect application and how the home connect application uses the PCP to communicate at the application layer. In order to provide a better understanding of exchange of control and data between the various elements described with respect to <figref idref="DRAWINGS">FIG. 2</figref>, it may be appropriate to describe an example of the signal flow for establishing the persistent connections between the gateway <b>150</b> and the PCP <b>126</b> and the mobile devices MD<b>1</b>-MD<b>3</b> and the PCP <b>126</b> as well as a discussion of the information flow between the respective system components (e.g., mobile devices, public server and gateway).
0054<figref idref="DRAWINGS">FIGS. 3A and 3B</figref> are a signal flow diagram illustrating an example of the signal flows among home connection logical layer elements through a persistent connection platform in the service provider network. In particular, the flow of signals exchanged between the HCL and PCL elements to setup the PCP level connections are shown. In <figref idref="DRAWINGS">FIGS. 3A and 3B</figref>, for simplicity, the PCL elements using only the PCP module are shown and described. In other words, <figref idref="DRAWINGS">FIG. 2</figref> shows the connections setup between the individual HCL and PCL elements while <figref idref="DRAWINGS">FIGS. 3A and 3B</figref> illustrate the signals used to setup the connections between HCL and PCL.
0055Since the examples of <figref idref="DRAWINGS">FIGS. 3A and 3B</figref> refer to the connections established by the HCL and the PCL, the illustrated system elements include both the physical component (e.g., connected device <b>161</b>) and the respective PC or PE provided through the execution of the home connect application (e.g., connected device <b>161</b> PC). The system illustrated in <figref idref="DRAWINGS">FIGS. 3A and 3B</figref> includes an example of a connected device (CD) <b>161</b>, the gateway <b>150</b>A/<b>150</b>PC, a PCP <b>126</b>PE/<b>126</b>PC, the public server <b>125</b>A/<b>125</b>PC and a mobile device, such as MD<b>1</b>PC/MD<b>1</b>PC.
0056As shown in <figref idref="DRAWINGS">FIG. 3A</figref>, each of the HCL elements—gateway <b>150</b>, public server <b>125</b>, and the mobile device MD<b>1</b> initiate a connection setup process. For example, at step <b>1</b>, the gateway <b>150</b>A/<b>150</b>PC initiates a connection with the PCP <b>126</b>PE by sending a connection request to the PCP <b>126</b>PE. As discussed above with respect to <figref idref="DRAWINGS">FIG. 1</figref>, the connection request includes information that identifies the gateway <b>150</b> to the PCP <b>126</b>. In response to the connection request, the PCP <b>126</b>PE authenticates and verifies (i.e. validates) the gateway <b>150</b>A/<b>150</b>PC as a device authorized to communicate with the PCP <b>126</b>. In response to a successful validation, the PCP <b>126</b>PE assigns a PushID, or PCPID, to the gateway <b>150</b>A/<b>150</b>PC. In the example, of step <b>2</b>, the PCPID assigned to gateway <b>150</b>A/<b>150</b>PC is shown as PCPID_GW. Upon receipt of the assigned PCPID_GW, the gateway <b>150</b>A/<b>150</b>PC completes the setup of the validated and secure persistent connection (Per Con), which is a TCP connection, with the PCP <b>126</b>PE (Step <b>3</b>). Similarly, at step <b>1</b>A, the home connect application executing on the public server <b>125</b>A/<b>125</b>PC initiates a connection with the PCP <b>126</b>PE by sending a connection request to the PCP <b>126</b>PE. The public server <b>125</b>A/<b>125</b>PC connection request contains, for example, information, such as a security key or other code, that identifies the home connect application as an authorized application. In response to the connection request, the PCP <b>126</b>PE validates the home connect application executing on the public server <b>125</b>A/<b>125</b>PC as an application authorized to communicate with the PCP <b>126</b>PE. In response to a successful validation, the PCP <b>126</b>PE assigns a PushID, or PCPID, to the home connect application executing on the public server <b>125</b>A/<b>125</b>PC (Step <b>2</b>A). In the example at step <b>2</b>A, the PCPID assigned to the home connect application executing on the public server <b>125</b>A/<b>125</b>PC is shown as PCPID_PS. Upon receipt of the assigned PCPID_PS, the home connect application executing on the public server <b>125</b>A/<b>125</b>PC completes the setup of the validated and secure persistent connection (Per Con), which is a TCP connection, with the PCP <b>126</b>PE (Step <b>3</b>A). In an example, the HCL gateway PC element <b>150</b>PC uses the assigned PCPID, PCPID_GW, when communicating with the public server PC <b>125</b>A, which is also an HCL element. Similarly, the public server PC <b>125</b>A uses the assigned PCPID, PCPID_PS, when communicating with the gateway PC element <b>150</b>PC.
0057The above processes are also performed by each of the respective mobile devices MD<b>1</b>-MD<b>3</b> that are executing the home connect application. In the example of <figref idref="DRAWINGS">FIG. 3A</figref> at step <b>1</b>B, the PC on mobile device MD<b>1</b> (i.e., MD<b>1</b>PC), initiates a connection with the PCP <b>126</b>PE by sending the PCP <b>126</b>PE a connection request. The mobile device PC MD<b>1</b>PC connection request contains, for example, information, such as a security key or other code, that identifies the home connect application as an authorized application. In response to the connection request, the PCP <b>126</b>PE validates the home connect application executing on the mobile device PC MD<b>1</b>PC as an application authorized to communicate with the PCP <b>126</b>PE. In response to a successful validation, the PCP <b>126</b>PE assigns a PushID, or PCPID, to the home connect application executing on the MD<b>1</b>PC (Step <b>2</b>B). The PCPID assigned to the home connect application executing on the MD<b>1</b>PC is shown as PCPID_MD<b>1</b>. Upon receipt of the assigned PCPID_MD<b>1</b>, the home connect application executing on the MD<b>1</b>PC completes the setup of the validated and secure persistent connection (Per Con), which is a TCP connection, with the PCP <b>126</b>PE (Step <b>3</b>B).
0058In an example, the gateway PC element <b>150</b>PC uses the assigned PCPID, PCPID_GW, when communicating with the public server PC <b>125</b>PC or the mobile device PC MD<b>1</b>PC. For example, any direct message communicated between the gateway <b>150</b>A/<b>150</b>PC and the public server <b>125</b>A/<b>125</b>PC includes the respective PCPID of the device sending the communication in a header of the direct message. Similarly, the public server PC <b>125</b>PC uses the assigned PCPID_PS in any communication direct to the gateway PC element <b>150</b>PC. The mobile device PC MD<b>1</b>PC also includes the assigned PCPID_MD<b>1</b> when communicating with either the gateway PC <b>150</b>PC or the public server PC <b>125</b>A.
0059Also, shown in <figref idref="DRAWINGS">FIG. 3A</figref>, there is a device, for example, device <b>161</b> that shown at step A attempting to connect to the gateway <b>150</b>A/<b>150</b>PC by sending a discover and join request. The discover and join request may be made through various mechanisms, such through the “Plug and Play” data discovery techniques described above. Each of the devices <b>161</b>-<b>169</b> discover on protocols used by the respective manufacturer of each device and the capabilities (e.g., processor and operating systems) of the individual devices. In another example, the discovery of the devices <b>161</b>-<b>169</b> may be performed by the gateway <b>150</b>A/<b>150</b>PC, which may periodically poll, for example, different frequencies of known devices in the proximity of the home network <b>130</b>. A device <b>161</b> attempting to connect to the gateway <b>150</b>A/<b>150</b>PC, or responding to the gateway <b>150</b>A/<b>150</b>PC polling, transmits a join request to the gateway <b>150</b>A/<b>150</b>PC. At step B, the gateway <b>150</b>A/<b>150</b>PC authenticates and verifies the respective connected device <b>161</b> and assigns an identifier (i.e., Local ID) to the connected device <b>161</b> that uniquely identifies the connected device in the home network <b>130</b>. For example as shown in Step B, the local ID assigned to the device <b>161</b> is (CD_<b>001</b>) for the connected device. Upon receipt of the assigned local ID, the device is a connected device <b>161</b>.
0060In response to receiving the local ID, at step C, the connected device <b>161</b> sends profile information as discussed above to the gateway <b>150</b>A/<b>150</b>PC. The gateway device <b>150</b>A/<b>150</b>PC, in turn at step D, sends the connected device (CD) profile information to the PCP <b>126</b>PE. The PCP <b>126</b>PE sends the profile information to the public server <b>125</b>. The public server <b>125</b>A/<b>125</b>PC creates from the profile information a profile for each of the connected devices, such as connected device <b>161</b> connected to the gateway <b>150</b>A/<b>150</b>PC. Using the created profiles, the public server <b>125</b>A/<b>125</b>PC maps the connected device <b>161</b> to a mapping of the other connected devices connected to the gateway <b>150</b>A/<b>150</b>PC. The mapping, for example, is performed by storing the CD <b>161</b> profile information and the gateway <b>150</b>A/<b>150</b>PC PCPID with reference to the customer's subscriber account in a data store X (Step E). For example, the data record in the data store X includes the subscriber account identifier (e.g., customerID_X), the gateway <b>150</b>A/<b>150</b>PC PCPID (i.e., PCPID_GW), the CD <b>161</b> Local ID (i.e., CD_<b>001</b>) and/or other connected devices connected to the gateway <b>150</b>, associated mobile device identifiers, such as MDN or IMEI, or other information, such as additional identifiers of devices.
0061Of course, other mapping schemes may be used. The public server <b>125</b> maintains, for example, several mappings of connected device-related data. Examples of the mappings include: a mapping of the gateway and mobile devices attached to a given service provider subscriber account; a mapping of the PCP identifiers for each of the gateway and mobile devices for a given service provider subscriber account, a mapping all of the connected devices to a respective gateway and/or a mapping of the mobile devices for a given service provider subscriber account. In another example, additional information related to the device, such as the subscriber account preferences and identifiers, such as MDNs of mobile devices associated with the subscriber account may also be stored in the data store X. The data store X, for example, stores a data record corresponding to each connected device associated with the subscriber account identifier as part of the mapping. In another example, another mapping scheme includes an identifier of a primary mobile device (e.g., an MDN) associated with the gateway <b>150</b>A/<b>150</b>PC in place of the subscriber account identifier.
0062These mappings are used by HCL elements, such as the gateway <b>150</b>A/<b>150</b>PC, the public server <b>125</b> and the mobile devices MD<b>1</b>-MD<b>3</b> to discover each other on the home connect application layer. The PCP <b>126</b>PE maintains the mappings between the HCL elements and their PCP identifiers—this mapping is used to actually exchange messages on the PCL layer.
0063In some examples, a subscriber user may have access to multiple home networks through the service provider. For example, a user may have a number of connected devices (e.g., thermostat, window treatments, entertainment devices, lighting, appliances, and the like) in their residential premises home network, and also have a business premises home network with a number of connected devices (e.g., thermostat, lights, computer equipment, vending equipment and the like), so the user may have access codes or home network identifiers assigned by the customer connected device control application executing on the PCP <b>126</b>PE. For example, as mentioned above with respect to step <b>2</b>, the PCP <b>126</b>PE assigns a PCPID to a respective gateway <b>150</b> (i.e., a PCPID_GW), which is associated with a customer account, and assigns another PCPID, such as PCPID_GW<b>2</b>, that uniquely identifies another gateway, such as a business premises gateway (not shown) that is associated with a same or different mobile device.
0064Returning to <figref idref="DRAWINGS">FIG. 3A</figref>, in order to determine which connected devices <b>161</b>-<b>169</b> are presently connected to the gateway <b>150</b>A/<b>150</b>PC, the mobile device MD<b>1</b>A/<b>1</b>PC as well as the other mobile devices MD<b>2</b>A/<b>2</b>PC and MD <b>3</b>A/<b>3</b>PC transmits a request intended for the public server <b>125</b> to obtain profiles of the connected devices. This allows the mobile devices MD<b>1</b>-MD<b>3</b> to discover and communicate with connected devices <b>161</b>-<b>169</b>. For example, at step OP<b>1</b>, the mobile device MD<b>1</b> sends via the PCP <b>126</b>PE a request intended for the public server <b>125</b>. The request may include an identifier associated with the mobile device MD<b>1</b>, such as the MDN, and a gateway identifier that identifies the gateway <b>150</b>A/<b>150</b>PC in the particular home network of interest to the user. For example, the request includes a series of identifiers, such as CustomerID_X, PCPID_GW<b>2</b>, CD<b>01</b>_Profile, CD<b>02</b>_Profile, and CD<b>03</b>_Profile. In response to receiving the request, the PCP <b>126</b>PE forwards the request with the series of identifiers to the public server <b>125</b> (Step OP<b>2</b>). The public server <b>125</b> locates and retrieves all of the connected devices for the identified customer and identified gateway from the data store X (Step OP<b>3</b>). The public server <b>125</b> returns, at Step OP<b>4</b>, the list of connected devices to the mobile device MD<b>1</b>. The list may be composed of identifiers of each of the connected devices to the gateway <b>150</b>A/<b>150</b>PC. For example, if the list includes two connected devices, the identifiers of the two connected devices may have a format such as PCPID_GW_CD<b>01</b> and PCPID_GW_CD<b>02</b>. The mobile device MD <b>1</b> receives the list of connected device, and the connected device control application executing on the mobile device MD<b>1</b> stores the list of connected devices in a memory of the mobile device.
0065In an example, the MD<b>1</b> connected device control application causes the presentation of the list, or a subset of the list, to be presented on a display device of the MD<b>1</b>. For example, depending upon settings in the application, the subset of the list of connected devices may be the connected devices that the user is most interested in monitoring or receiving notifications or alerts. For example, the user may choose a connected device <b>161</b>-<b>169</b>, such as a thermostat and a front door sensor, as connected devices of interest. At a different time, the user may select other connected devices as connected devices of interest. The connected device application and the presentation of information by the application are described in more detail with reference to <figref idref="DRAWINGS">FIG. 6</figref> below.
0066In response to the user selection of connected devices to monitor, the connected device control application on the mobile device MD<b>1</b>, at OP<b>5</b>, transmits an updated list of interested connected devices and an identifier of the mobile device MD<b>1</b> to the PCP <b>126</b>PE for subsequent delivery to the public server <b>125</b>A/<b>125</b>PC. Upon receipt of the updated list of interested connected devices, the PCP <b>126</b>PE forwards the updated list of interested connected devices to the public server <b>125</b>A/<b>125</b>PC. The public server <b>125</b>A/<b>125</b>PC is further configured to forward the updated list of interested connected devices to the gateway <b>150</b>A/<b>150</b>PC for monitoring. At OP <b>7</b>, the public server <b>125</b>A/<b>125</b>PC forwards the updated list of interested connected devices to the PCP <b>126</b>PE for subsequent delivery to the gateway <b>150</b>A/<b>150</b>PC. The <b>150</b>A/<b>150</b>PC <b>126</b>PE forwards, at OP <b>8</b>, to the gateway <b>150</b>A/<b>150</b>PC. In addition, the gateway <b>150</b>A/<b>150</b>PC registers the updated list of interested connected devices with reference to the mobile device MD<b>1</b>A/<b>1</b>PC.
0067Once all of the mobile devices, such as MD<b>1</b> and MD <b>2</b> or however many are included in the subscriber account, and the connected devices of interest, such as CD <b>161</b>, are registered with the gateway <b>150</b>A/<b>150</b>PC, the gateway <b>150</b>A/<b>150</b>PC begins maintaining the persistent connection with the PCP <b>126</b>PE. <figref idref="DRAWINGS">FIG. 3B</figref> illustrates an example of persistent connection maintenance according to the disclosed subject matter. As shown in <figref idref="DRAWINGS">FIG. 3B</figref>, the gateway <b>150</b>A/<b>150</b>PC begins maintaining the persistent connection by transmitting a heartbeat signal, or keep alive signal to the PCP <b>126</b>PE (step HB<b>1</b>). In more detail, the PCP <b>126</b>PE has a timer that monitors how long a connection is inactive, and should the timer reach a predetermined inactivity time limit (e.g., 5 minutes, 60 seconds or the like), the connection is terminated. The heartbeat (HB), or keep alive, signal is scheduled to be transmitted from the gateway <b>150</b>A/<b>150</b>PC before the predetermined inactivity time limit is reached. Similarly, the home connect application of the public server <b>125</b>A/<b>125</b>PC is also configured to generate a HB signal. The home connect application of the public server <b>125</b>A/<b>125</b>PC is configured to transmit at a scheduled, or predetermined, time an HB signal to the PCP <b>126</b>PE to maintain the persistent connection.
0068<figref idref="DRAWINGS">FIG. 4</figref> is a signal flow diagram illustrating an example of the signal flows within the home connection logical layer through a persistent connection platform in the service provider network.
0069<figref idref="DRAWINGS">FIG. 4</figref> shows the signals exchanged by the HCL elements, such as the gateway <b>150</b>A/<b>150</b>PC, the PCP <b>126</b>PE, the public server <b>125</b>A/<b>125</b>PC, and the mobile devices MD<b>1</b>A/<b>1</b>PC to MD <b>3</b>A/<b>3</b>PC. As explained with respect to <figref idref="DRAWINGS">FIG. 3A</figref> above, once the mobile devices MD<b>1</b>A/<b>1</b>PC discover the connected devices <b>161</b>-<b>169</b>, customers using the mobile device MD<b>1</b>A/<b>1</b>PC may decide which connected devices they want to follow and/or control from the mobile device MD<b>1</b>A/<b>1</b>PC. For these selected connected devices, the mobile device MD<b>1</b>/<b>1</b>A may receive regular updates. For example, as shown in <figref idref="DRAWINGS">FIG. 4</figref>, at step <b>1</b>, one or more of the connected devices <b>161</b>-<b>169</b> sends a status update message to the gateway <b>150</b>A/<b>150</b>PC, which forwards at (Step <b>2</b>) the status update message to the PCP <b>126</b>PE. The PCP <b>126</b>PE forwards the status update to the public server <b>125</b>A/<b>125</b>PC (Step <b>3</b>). The public server <b>125</b>A/<b>125</b>PC stores the status updates of the respective connected devices <b>161</b>-<b>169</b> in a data storage (not shown). Periodically, the public server <b>125</b>A/<b>125</b>PC, at step <b>4</b>, determines which connected devices are associated with a particular mobile device, or in response to a request from a mobile device, such as mobile device MD<b>1</b>/<b>1</b>A, the connected devices associated with the requesting mobile device MD<b>1</b>A/<b>1</b>PC. After determining the connected devices associated with the mobile device MD<b>1</b>A/<b>1</b>PC, the public server <b>125</b>A/<b>125</b>PC sends a message or messages containing the status update information for one or more associated connected devices to the PCP <b>126</b>PE. In response to receiving the collected status update messages, the PCP <b>126</b>PE, at step <b>5</b>, identifies from the status update message(s) the identity of the intended mobile device recipient (i.e., MD<b>1</b>A/<b>1</b>PC) and forwards the status update message(s) to the mobile device MD<b>1</b>A/<b>1</b>PC. In an example, the connected device <b>161</b>-<b>169</b> is a temperature sensor. The user has indicated in a preferences menu that a status update message of a change in the temperature is to be sent to the mobile device MD<b>1</b>A/<b>1</b>PC. For example, the user may wish to see a temperature update from a thermostat connected device for every change of two degrees in temperature. In order to receive the temperature status updates, steps <b>1</b>-<b>5</b> of <figref idref="DRAWINGS">FIG. 4</figref> are performed.
0070In addition to the status update example, there is an example in which a user receive messages related to alarm conditions on the user's respective mobile devices. An example scenario, as illustrated in <figref idref="DRAWINGS">FIG. 4</figref>, includes a motion detector or flood detector detecting a critical condition and generating a warning alarm. All of the alarms selected by a user in a preferences menu of the home connect application that are generated by the respective connected devices <b>161</b>-<b>169</b> may be relayed to the mobile devices MD<b>1</b>A/<b>1</b>PC-<b>3</b>A/<b>3</b>PC via the gateway <b>150</b>A/<b>150</b>PC. When a selected alarm is generated by a connected device <b>161</b>-<b>169</b>, the alarm message is sent to the gateway <b>150</b>A/<b>150</b>PC at step A. The gateway <b>150</b>A/<b>150</b>PC forwards the alarm message to the PCP <b>126</b>PE (Step B). As part of the forwarded alarm message, the gateway <b>150</b>A/<b>150</b>PC appends a gateway identifier (i.e., PCPID_GW) to the alarm message. The PCP <b>126</b>PE receives the alarm message from the gateway <b>150</b>A/<b>150</b>PC. Based on the gateway identifier, the PCP<b>126</b>PE is able to determine the associated mobile devices to which the alarm message is intended. Upon determining the mobile devices associated with the received alarm messages, the PCP <b>126</b>PE at step C, forwards the alarm message to the associated mobile devices MD<b>1</b>A/<b>1</b>PC-<b>3</b>A/<b>3</b>PC.
0071In another example, the home connect application executing on the mobile device facilitates an on-demand request-response function by configuring the mobile device to send a command to a connected device and receive a response. Consider another example in which a user would like to view their measured home temperature and thermostat setting (e.g. 72 degrees F.) (and, if the thermostat is capable, to change the thermostat temperature setting as they wish) on their mobile device (e.g. MD <b>1</b> or MD <b>2</b>) while they are away from the user's home. The example process is described in more detail with reference to <figref idref="DRAWINGS">FIG. 4</figref>. In the example shown in <figref idref="DRAWINGS">FIG. 4</figref>, once mobile device MD<b>1</b>A/<b>1</b>PC, MD<b>2</b>A/<b>2</b>PC or MD<b>3</b>A/<b>3</b>PC discovers a respective connected device <b>161</b>-<b>169</b> a user wants to control, such as the above referenced thermostat, the mobile device, such as MD<b>1</b>A/<b>1</b>PC sends the command (at Step A<b>1</b>) to be executed on the connected device, such as <b>161</b>, to the PCP <b>126</b>PE. The command, for example, includes an identifier of the gateway <b>150</b>A/<b>150</b>PC, an identifier of the connected device <b>161</b> to which is the target (i.e., intended recipient) of the command, an identifier, such as the MDN, of the mobile device, and/or other information that allows the PCP <b>126</b>PE to identify and deliver the command to the gateway <b>150</b>A/<b>150</b>PC. For example, the PCP <b>126</b>PE accesses a look-up table using the gateway identifier included in the command to locate an address of the persistent connection. Upon identifying the gateway <b>150</b>A/<b>150</b>PC to which the command is to be delivered, the PCP <b>126</b>PE sends the command via the located persistent connection address to the gateway <b>150</b>A/<b>150</b>PC (Step A<b>2</b>). The gateway <b>150</b>A/<b>150</b>PC receives the command identifies the target connected device <b>161</b>, and relays the command to the target connected device <b>161</b> (Step A<b>3</b>). The command may be an instruction, such as turn ON or OFF, change a setting or the like, an information request, such as a status request, or the like. If the command is an instruction, the target connected device <b>161</b> may respond with an acknowledgement that the command was performed or a negative acknowledgement. The target connected device <b>161</b> responds to the command and relays back to the gateway <b>150</b>A/<b>150</b>PC at Step A<b>4</b>. The gateway <b>150</b>A/<b>150</b>PC forwards (at Step A<b>5</b>) the response along with other information identifying the respective mobile device via the persistent connection to the PCP <b>126</b>PE. The PCP <b>126</b>PE identifies the mobile device that is the intended recipient of the response message and sends (at Step A<b>6</b>) the response message to the mobile device MD<b>1</b>/<b>1</b>A. This allows users (e.g., customers of the home connect service) to control devices at home on demand. An example scenario includes customers turning on a light switch at home or opening the garage door remotely.
0072An example of a system configured to stream video from an internet protocol (IP)-enabled camera to the customer's mobile device(s) is described below. The customer can buy any generic, IP-based camera of their choice, connect the camera to their home network, download an application provided by a home connect service provider to their mobile device, sign up for the service and begin streaming video from their home to their mobile devices.
0073<figref idref="DRAWINGS">FIG. 5A</figref> is an example of a system configured to stream video from an IP-based camera to a customer's mobile device(s). The customer can buy any generic, IP-based, Real Time Streaming Protocol (RTSP)-enabled camera of their choice. <figref idref="DRAWINGS">FIG. 5A</figref> illustrates a high-level block diagram of a process for enabling the home connect application executing on a mobile device, such as MD<b>1</b> to stream video from a network-enabled customer connected device camera, such as 161-169.
0074When the connected device is a camera configured to utilize the (IP), the IP camera is handled by the gateway <b>150</b> in a slightly different manner compared to other connected devices because the IP camera involves streaming of multimedia content. The protocol used to transfer streaming multimedia data from the IP camera to the authorized mobile devices is the RTSP protocol. The RTSP protocol involves a specific set of commands that sets up the (i) IP level connections (i.e., transmission control protocol/user datagram protocol (TCP/UDP) connections) for exchanging control signals and also (ii) the UDP level connections to deliver the streaming content from the connected camera to the respective mobile device(s).
0075In the example, one of network-enabled customer connected devices, such as TCP/IP device <b>167</b> is a video camera located on a premises of a service provider subscriber. A user registers the camera with the service provider via the public server <b>125</b> of the service provider network <b>123</b>. When the user installs the camera and turns ON the camera, an initial handshake between the camera <b>167</b> and the gateway <b>150</b> occurs.
0076For example, the gateway <b>150</b> detects the presence of the camera <b>169</b> on the user's Wi-Fi network, local area network (LAN) or short-range wireless communication network and once found, the gateway <b>150</b>, as discussed above, performs a data discovery process, and stores profile information of the camera <b>167</b>. The gateway <b>150</b> serves as a proxy for the camera with respect to the service provider and the network-enabled customer connected device control mobile application. After obtaining the camera profile information, the gateway <b>150</b> relays, as discussed above, a camera profile to the PCP <b>126</b>. The PCP <b>126</b> maintains the profile of the camera <b>167</b> in memory.
0077Subsequently, the mobile device (i.e., MD<b>1</b>) user in the example wants to receive a live (i.e., substantially real-time or with minimal time delay) video stream from the camera <b>167</b>. When a user launches the network-enabled customer connected device control application on their mobile device (i.e., MD<b>1</b>), the home connect (or connected device control) application initiates a connection request via the MNO communication network <b>120</b> with the PCP <b>126</b>. The home connect application executing on the mobile device MD<b>1</b> or MD<b>2</b> receives a user input selecting the connected camera to present the video captured by the connected camera. In response, the respective mobile devices MD<b>1</b> and MD<b>2</b> launch a streaming content player application, which initiates a request for content. The respective mobile devices MD<b>1</b> and MD<b>2</b> forward their respective requests for content to the PCP <b>126</b> via the public server <b>125</b>. The PCP <b>126</b> via the public server <b>125</b> forwards the requests for content to the gateway <b>150</b>. In response, the gateway <b>150</b> and the PCP <b>126</b> establish via the public server <b>125</b> respective user datagram protocol (UDP) connections with the mobile devices MD<b>1</b> and MD<b>2</b>. The PCP <b>126</b> assigns a port (i.e., a UDP port) for each of the respective UDP connections, and a respective identifier of the UDP port is stored in a memory of the PCP <b>126</b>. In response to receiving the connection request from the home connect (i.e., connected device control) application, the PCP <b>126</b> via the public server <b>125</b> forwards the streaming content player request to the gateway <b>150</b> behind the home router <b>140</b> (Step <b>2</b>).
0078In response to the request, the gateway <b>150</b>, at Step <b>3</b>, initiates a RTSP Protocol connection with the camera <b>169</b>. The gateway <b>150</b> requests information of the UDP port opened by the device control application to receive the streaming video data packets from the camera <b>167</b>. The gateway <b>150</b> also obtains the internet protocol address assigned by the home router <b>140</b> of the camera <b>167</b>.
0079The gateway <b>150</b> begins receiving UDP data packets from the camera <b>167</b> (Step <b>4</b>). Through the UDP port identified by the PCP <b>126</b>, the gateway <b>150</b> begins delivering the UDP data packets directly to the home connect, or device control, application executing on the mobile devices MD<b>1</b> and MD<b>2</b> through the public server <b>125</b> and the mobile communication network <b>120</b>. As shown, the UDP data packets are not channeled through the PCP <b>126</b>, but through a data connection (made between the public server <b>125</b> and the mobile devices MD<b>1</b> and MD <b>2</b> through the mobile communication <b>120</b>) that is different from the secure persistent connection between the gateway <b>150</b> and the PCP <b>126</b>. Even though, data is transmitted outside of the persistent connection, the persistent connection remains for later use by the device control application. The PCP <b>126</b> is employed only through the initial handshake process executed by the gateway <b>150</b> and the device control application executing on the mobile device MD<b>1</b>. Since the handshake and data transfer processes are distinct, a breakdown in either one of the respective processes does not affect the other. Since data is being transferred via the data communication network <b>127</b> and the MNO communication network <b>120</b>, it is secured (against hackers/sniffers) using at least two methods.
0080For example, in a first method, the UDP port is generated in a random fashion and is changed periodically (the user may not experience any interruption in their camera stream owing to this periodic change). This default feature of the RTSP protocol provides enhanced security by preventing ports from being “sniffed” by unauthorized users or systems. The device control application executing on the mobile device MD <b>1</b>, for example, coordinates with the gateway <b>150</b> to define a port to determine a random port to deliver data. For example at random times, either the device control application or the gateway <b>150</b> generates signal that a port change is needed. An algorithm is executed that allows for a random selection of a new port and the connection is changes to the selected port. In this way, security is improved because a single entity does not select a port. The second method is encrypting the UDP data packets communicated between the gateway <b>150</b> and the device control application. The presently described examples provide a secure implementation for not only the connected camera <b>167</b>, but for any of the connected devices, because the implementation maintains the respective devices <b>161</b>-<b>169</b> behind the home router <b>140</b> and, as a result, an unauthorized user does not know or may have difficulty determining the address of the respective devices <b>161</b>-<b>169</b>.
0081In order to avoid loss of data because of internet congestion or the possibility of a lost connection, the gateway <b>150</b> is configured such that it can queue/buffer the data packets arriving from the camera <b>169</b>. When the network connection is regained, the buffered data packets can be forwarded on to the device control application. Upon receipt of the UDP data packets, the device control application streams the received video UDP data packets using an appropriate video data player (as are known in the art).
0082In addition to receiving the video UDP data packets from the camera <b>169</b>, the user, via the device control application, is also able to control the camera functions (if available), such as zoom, pan, tilt, turning ON/OFF as well as manage data files related to stored video data. In addition, the device control application facilitates the control and communication with other of devices <b>161</b>-<b>169</b> such as switches, bulbs, thermostats and motion and flood sensors regardless of the communication protocols used by the respective devices <b>161</b>-<b>169</b>. The system can also be configured to relay updates to wearable devices, which may be any one or more of MD<b>1</b>-MD<b>3</b>, and can readily access any of the devices <b>161</b>-<b>169</b> that have a profile available on the PCP <b>126</b>.
0083In order to avoid loss of data because of internet congestion or the possibility of a lost connection, the gateway is configured such that the gateway buffers the data packets arriving from the camera. When the network connection is regained the buffered data packets can be forwarded on to the mobile device steaming content player application.
0084<figref idref="DRAWINGS">FIG. 5B</figref> shows an example of the signal and content flow between an IP Camera and Mobile devices via the PCP. Typically, the RTSP protocol is initiated by the respective mobile device that is requesting the content. Each mobile device is configured with a RTSP client module that contacts a RTSP server module in the gateway <b>150</b>. The RTSP client module is the consumer of the streaming content and the RTSP server module is the provider of the streaming content. The gateway <b>150</b> is configured to execute the RTSP server module. The RTSP client and the RTSP server modules exchange a series of commands to set up the channels to exchange the control signals and the streaming data.
0085For example, as shown in <figref idref="DRAWINGS">FIG. 5B</figref>, steps A-G, the RTSP protocol calls for a series of commands to be exchanged via the public server <b>125</b> and the PCP <b>126</b> between the RTSP client and RTSP server. In the example, the RTSP client executing in the mobile device MD<b>1</b> initiates the connection and the RTSP server executing on the gateway <b>150</b> (referred to as “RTSP server” hereafter). The RTSP client sends (at Step A) the OPTIONS command to the RTSP server. In response, the RTSP server reply back with details of its capabilities, such as whether the RTSP server is able to support streaming media content, and acknowledges that the message was successfully received, understood and accepted by the RTSP server. Next, the RTSP client sends a DESCRIBE message to the RTSP server that includes information, such as a uniform resource locator (URL) or other information related to the specific content the RTSP client is able to accommodate, such as the format or bitrate, from the IP camera (Step C). If RTSP server responds with a message, such as the message at Step D, that the RTSP server can support the requested content, the RTSP client requests, at Step E, in a SETUP message to establish the UDP ports used for exchanging control signals and the UDP ports the RTSP client has selected (i.e., <b>1000</b>-<b>1004</b>) to receive the streaming content from the RTSP server. In response to the SETUP message, the RTSP server returns an acknowledgement message that also includes the UDP port identifiers (i.e., Transport: server_ports: <b>2000</b>-<b>2004</b>) that the RTSP server has selected to use to communicate with RTSP client (Step F). At this point, the RTSP client and RTSP server have reserved the respective UDP ports specified for communicating with each other. The RTSP client sends a PLAY command from the RTSP client of the mobile steaming application player on the mobile device MD <b>1</b> includes MD <b>1</b> identifying information requesting the RTSP server module of the connected device <b>167</b> to start sending the streaming content on the specified ports (Step G).
0086In order for the gateway <b>150</b> to deliver the requested streaming content to the requesting mobile device MD<b>1</b>, the gateway <b>150</b> is configured with a RSTP client and a RTSP server. As a result, the gateway <b>150</b> is able to act as a streaming content RTSP server to the requesting mobile devices and act as a streaming content RTSP client to receive the streaming content provided by the IP camera <b>167</b>. As shown in <figref idref="DRAWINGS">FIG. 5B</figref>, the gateway <b>150</b> acts as the proxy between the mobile device MD<b>1</b> and the connected device (i.e., IP camera) <b>167</b>. In other words, the gateway <b>150</b> is able to perform the set up functions of a RTSP client and the IP camera <b>167</b> performs the set up functions of a RTSP server. For example, at Step H, the RTSP server of the gateway <b>150</b> sends a request to establish a RTSP channel for streaming the content to the RTSP client that is also executing on the gateway <b>150</b>.
0087The gateway <b>150</b> executes the RTSP client that sends RTSP commands such as the OPTIONS, DESCRIBE and SETUP commands sent in Steps A, C, E and G described above, and the IP camera <b>167</b> executing the RTSP client responds to the gateway <b>150</b> RTSP client with acknowledgment messages similar to those provided in Steps B, D and F described above. A specific example of the RTSP messages exchanged between the gateway <b>150</b> RTSP client and the IP camera <b>167</b> RTSP server are shown in Step I. In other words, the gateway <b>150</b> using the same commands as the mobile device MD<b>1</b> and the gateway <b>150</b> sets up their own RTSP channel (as explained above) and the gateway <b>150</b> and the IP camera <b>167</b> sets up a separate RTSP channel. In response to the successful completion of the RTSP commands to establish the RTSP channel between the IP camera <b>167</b> and the gateway <b>150</b> RTSP client, the RTSP client on the gateway <b>150</b> sends an acknowledgment message to the RTSP server of the gateway <b>150</b> (Step J). The RTSP server of the gateway <b>150</b> sends the acknowledgment message, at Step K, to the PCP, which via the public server <b>125</b> forwards the acknowledgment message to the RTSP client of the mobile device MD <b>1</b>.
0088In this example, in order for a mobile device, such as MD <b>1</b>, to receive content from a specific IP camera <b>167</b>, each mobile device MD<b>1</b> setups a RTSP channel with the gateway <b>150</b>. But the gateway <b>150</b> is able to maintain a single RTSP channel with the IP camera <b>167</b>. Once the IP camera <b>167</b> sends the streaming content to the gateway <b>150</b>, the gateway <b>150</b>, for example, buffers and distributes the streaming content to one or more mobile devices, such as MD<b>1</b>-MD<b>3</b>. In other words, the gateway <b>150</b> is configured to handle multiple requests for content or data from mobile devices external to the home network via multiple communication channels while maintaining a single channel with the respective connected device that is providing the content or data.
0089For example, at Step M, the RTSP server of the IP camera <b>167</b> sends streaming content in UDP packets on the ports <b>3000</b>-<b>3004</b> as requested by the RTSP client on the gateway <b>150</b> (see Step I) to the gateway <b>150</b>. The RTSP client on the gateway <b>150</b> forwards the UDP packets to the mobile on ports <b>1000</b>-<b>1004</b> as requested in the SETUP message of Step E. Since the UDP channel is outside the PCP <b>126</b> persistent channel, the streaming content is sent to the public server <b>125</b> (Step N), which forwards the content to the mobile device MD<b>1</b> RTSP client (Step <b>0</b>). The RTSP client under control of the streaming content media player presents the streaming content on a display of the mobile device MD<b>1</b>.
0090The UDP ports decided by the RTSP client and server are randomly generated and change over time, for security reasons. The gateway hides the IP camera from being exposed on the public network but the HCP layer allows mobile devices to connect and receive content from IP cameras on-demand.
0091Besides setting up the RTSP channel, the RTSP client-server modules also allow TEARDOWN of the channels. These are typically done in sequence as well. For instance, the mobile device may initiate the teardown with the gateway which in turn may initiate TEARDOWN with the camera. However, if multiple mobile devices are connected to it for receiving the content from a specific IP camera, the gateway may simply teardown the RTSP channel with the specific mobile device.
0092The above examples describe a system that securely maintains a persistent connection between a user's launched mobile device and a service provider network component that allows the user to communication with their customer connected devices within the user's home network <b>130</b> without having to establish and reestablish a communication session through servers without the security features provided by the service provider network <b>123</b> components <b>126</b> and <b>125</b>.
0093Other implementations are also envisioned. For example, a wearable device such as a Fitbit® or the like may be used to indicate a wearer's proximity to a home and the system in response unlocks a door to the home. In more detail, when a user approaches their driveway, their wearable device is configured to provide a signal to the gateway indicating to the gateway to control the connected device associated with the main door to unlock the main door. For example, the lock may be configured to be unlocked once the user's device is within a certain perimeter (e.g., 100 feet) of the house.
0094In another example, fitness-related wearable devices may be configured to establish a connection to the user's (weight) scale and forward this information to the public server. The public server forwards the scale information to the user's mobile device. A family may have multiple fitness-related wearable devices and each fitness-related wearable device may be configured with names, alerts, and the like specific to the respective user.
0095Other functionality includes generating a notification to the user that the user has forgotten their mobile device/phone. For example, in the case when the user steps away, such as 100 feet, from their home without their phone, the wearable device may be configured to vibrate for a brief period of time and/or in a certain pattern of vibrations. For example, the wearable device may be configured to vibrate only after the user steps outside a predefined perimeter, such as 50 feet, around the user's house.
0096<figref idref="DRAWINGS">FIG. 6</figref> illustrates an example of mobile application user interface according to examples of the disclosed subject matter. For example, the mobile device <b>200</b> includes a display device <b>217</b>. The mobile device <b>200</b> display device <b>217</b> presents a mobile device user interface <b>210</b> and a mobile device status bar <b>215</b>. The mobile status bar <b>215</b> is an area of a mobile device that informs the user of the status of different functions of the mobile device, such as the strength of the cellular connection, whether connected to Wi-Fi or Bluetooth, incoming calls, new e-mails or text messages, the presence of voicemails in a voicemail box, and the like.
0097The mobile device user interface <b>210</b> presents information related to an executing device control application that is configured to interact with the home connect service provided by the service provider and thereby allow a user to control and interact with customer connected devices <b>161</b>-<b>169</b> coupled to the gateway <b>150</b>.
0098In the present example, the mobile device user interface (UI) <b>210</b> is presenting information related to a customer connected device controller application executing on the mobile device <b>200</b>. The information includes information related to the customer connected devices <b>161</b>-<b>169</b> coupled to the gateway <b>150</b>, and may include status information and the like. For example, the UI <b>210</b> presents icons <b>202</b>-<b>206</b> representative of a respective customer connected device or a category of customer connected device (e.g., sensors) controlled by the executing customer connected device controller device control application (i.e., controller application).
0099In the presented example, the presented customer connected device icons include a switch <b>202</b>, a motion sensor <b>203</b>, a humidity sensor <b>204</b>, a thermostat <b>205</b> and a camera <b>206</b>. Also shown, but not required, is a status indicator that is presented adjacent to the respective icons. The status may be provided, if available and/or if set in the user preferences of the device control application. For example, each of the icons <b>202</b>-<b>206</b> are shown with status information, such as switch <b>202</b> “Switch: Closed;” sensor <b>203</b> “Motion Sensors: False;” humidity sensor <b>204</b> “Humidity: 45%;” thermostat <b>205</b> “Temperature: 85°;” and camera <b>206</b> “Camera: Off-Line” adjacent to each in the UI <b>210</b>.
0100In an example of the category of customer connected sensors, a user selection of the switch icon <b>202</b> results in the presentation of all customer connected switches connected to the gateway <b>150</b>. Or, in response to a user selection of the motion sensor icon <b>204</b>, a list of motion sensors that are controllable are presented in the customer connected device notification window <b>208</b> of the UI <b>210</b>. Alternatively, the selection of the motion sensor icon <b>204</b> may present a first device in the list to present information related to a respective sensor. In the present example of <figref idref="DRAWINGS">FIG. 2</figref>, the sensor, such as a Zigbee device <b>165</b>, may be a thermostat <b>205</b> and the thermostat <b>205</b> settings (e.g., 72 degrees Fahrenheit (F)) may be presented in the customer connected device notification window <b>208</b> of the UI <b>210</b>.
0101In addition, the controller application may configure a processor (explained in more detail below) to obtain a current room temperature measured by the thermostat, which in the present case indicates 69 degrees F.
0102Alternatively, in an example, the controller application includes a user preference setting graphical user interface presented in another screen or window of the UI <b>210</b> that allows a user to select devices for presentation in the customer connected notification window <b>208</b>. For example, sensors of interest may be the home thermostat <b>205</b>, the front door lock, such as switch <b>202</b> and a motion detector in the garage, such as motion sensor <b>203</b>. The user may select a user preference setting to receive a notification in the notification window <b>208</b> when the status of any of these three sensors changes. For example, the user may have selected in the user preferences settings window to receive a notification when the thermostat measures a rise in room temperature that approaches the thermostat setting. Alternatively, upon selection of a particular icon, the icon may be highlighted in the UI <b>210</b> as indicated by the box <b>216</b>. In response to the selection, additional status information may include the thermostat settings, such as “72°” and the lowest temperature detected in the past 24 hours, for example. Continuing with the thermostat example, the controller application also presents in the customer connected notification window <b>208</b> control inputs <b>209</b> that offer a user an opportunity to change the thermostat settings.
0103The on-demand connections between the customer connected devices <b>161</b>-<b>169</b> and the gateway <b>150</b> are used not only for purposes of notification, but also for status updates. For example, the status of different devices may change during the course of a day, lights might be turned ON or OFF, appliances may be used or content may be updated on entertainment system, and all of these changes may not be included in the notifications set by the user, stopping the user from being inundated with notifications on the mobile device. However, the PCP <b>126</b> receives the status of the devices <b>161</b>-<b>169</b> in order to provide up-to-date information to the device control applications when the device control applications launch. As such, when a device control application is not executing on one of the mobile devices MD<b>1</b>-MD<b>3</b> and, as a result, is not connected to the PCP <b>126</b>, the persistent connection between the PCP <b>126</b> and the gateway <b>150</b> is used to transmit the status updates of the customer connected devices <b>161</b>-<b>169</b> to the gateway <b>150</b>. In the example, when the device control application is launched on a mobile device MD<b>1</b>, the device control application communicates with the PCP <b>126</b> and acquires updated thermostat information. Also, in response to the launch of the device control application, the gateway <b>150</b> communicates with and obtains a temperature value/update from the thermostat. In response to obtaining the temperature value, the gateway <b>150</b> posts this update to the PCP <b>126</b>.
0104The launched device control application also requests updates from the PCP <b>126</b> as and when the updates are available; when the gateway <b>150</b> receives the next update from the thermostat it is delivered to the device control application directly via the communication path (i.e., over the UDP port connection) indicated to by the customer connected data arrow in <figref idref="DRAWINGS">FIG. 1</figref>. The delivered update bypasses the PCP <b>126</b> and obviates the need for the device control application to poll the PCP <b>126</b> which can lead to delays in message delivery and significant battery drain—both of which are undesirable for the mobile device user. As a result, an improvement provided by the described example is the elimination of a need by the device control application executing on the respective mobile device to poll the PCP <b>126</b> involves the creation of a new TCP/IP connection over an HTTP; which takes time and may overload the device's resources.
0105Thus, updates are received by the device control application executing on the respective mobile device as and when the temperature changes. The user can also choose to change the temperature setting in their home via the device control application using the same infrastructure and process as described above by selecting the YES control input <b>209</b>.
0106In addition to the notifications provide by the gateway <b>150</b> mentioned above, the gateway <b>150</b> is also configured to generate an alert. An alert is different from a notification as the system may determine the alerts and the user may determine the notification. In addition, alerts have a higher priority than notifications and updates. The following example describes the difference. For example, a motion sensor bulb that turns ON at 6 pm can be treated as an update (i.e. the turning ON of the bulb likely meaning a family member has come home) whereas a motion sensor bulb that turns on anytime between 9 am and 5 pm can be configured as an Alert—meaning that the motion sensor has been triggered by an intruder or unexpected person. Such an alert is pushed with higher priority than an update by the gateway <b>150</b> to the PCP <b>126</b> and in turn to the device control application executing on a respective mobile device MD<b>1</b>-MD<b>3</b>. An alert can be configured either on the gateway <b>150</b> (via a programming user interface) or on the respective device <b>161</b>-<b>169</b>, for example, based on the manufacturer's instructions. An advantage of having the alert configured on the gateway <b>150</b> is that the programmability of the gateway <b>150</b> offers the user a centralized system where the user can add and/or modify alerts as they please, thereby offering greater user choice and flexibility.
0107Referring back to <figref idref="DRAWINGS">FIG. 1</figref>, mobile device MD<b>3</b> is shown connected to the data communication network <b>127</b> via the access point <b>128</b>. The mobile device MD<b>3</b> also is configured to execute the device control application of the service provider to control the respective devices <b>161</b>-<b>169</b>. When launched the device control application creates a connection with the PCP <b>126</b> via the data communication network <b>127</b> and the public server <b>125</b>. Similar to PCP <b>126</b> persistent connections made via the MNO communication network <b>120</b> to the mobile devices <b>126</b>, the connection to the PCP <b>126</b> by the mobile device MD<b>3</b> is also persistent but through the public server <b>125</b> of the service provider network <b>123</b> and the data communication network <b>127</b> instead of through the MNO communication network <b>120</b>.
0108In an example in which the device control application is executing on a mobile device, such as MD<b>3</b>, and communicates with the PCP <b>126</b> via the data communication network <b>127</b> and the public server <b>125</b>, the device control application similarly opens a UDP port for receiving customer connected data (not shown by an arrow) from the gateway <b>150</b>, and identifies the UDP port by providing a UDP port identifier to the PCP <b>126</b>. The PCP <b>126</b> identifies the UDP port opened by the device control application to the gateway <b>150</b>. Upon obtaining the UDP port identifier from the PCP <b>126</b>, the gateway <b>150</b> begins communicating with the mobile device MD <b>3</b> via the data communication network <b>127</b>.
0109As background, the User Datagram Protocol (UDP) is one of the core members of the Internet protocol suite (the set of network protocols used for the Internet). With UDP, computer applications can send messages, in this case referred to as datagrams, to other hosts on an Internet Protocol network without prior communications to set up special transmission channels or data paths. The Internet Protocol (IP) is the principal communications protocol in the Internet protocol suite for relaying datagrams across network boundaries. Its routing function enables internetworking, and essentially establishes the Internet.
0110Other examples are also realized with the above described solutions using a wearable device such as bracelet or watch. For example, when a user approaches their drive way, their wearable device communicates via the MNO communication network <b>120</b> or even the user's home Wi-Fi network to the gateway <b>150</b> that the user is within a certain proximity to the user's home. In response to receiving the indication, the gateway <b>150</b> can signal the door lock on the main door to unlock. In other words, the lock can be configured to be unlocked once the user's device is within a certain perimeter of the house.
0111In another example, the system <b>100</b> also provides a notification to a user if they have forgotten their mobile device/phone at home. For example, the mobile device/phone may be registered as a customer connected device with the gateway <b>150</b>. According to user preference settings, the user may set a notification to notify the user that the user has left the house without the mobile device/phone. If the user happens to leave their home and travels a predefined distance from the home without their registered mobile device/phone, the wearable device is configured to vibrate as a form of notification.
0112Of course, other examples are envisioned that utilize user preference settings and the functionality described in the foregoing examples and as recited in the following claims, but for the sake of brevity are not disclosed.
0113The present examples provide advantages and improvements over the applied prior art. Although all of the advantages and improvements may not be provided by every example, each example provides at least one advantage or improvement over the prior art. For example, some of the described examples provide a unified solution allows the user to easily control disparate devices in an on-demand, plug-and-play fashion. In addition, the user can access actionable data on their device of choice (i.e., smartphones or tablets) over the MNO communication network (i.e., cellular) network in near-real time. Also, the Persistent Connection Platform employed in the described solutions ensure minimal communication delays with acceptable quality of service (QOS) between the device control application executing on the mobile device and the customer connected devices. Additionally, any sensitive user data (such as a video stream) that is transmitted over the public internet is transmitted in an encrypted format with enhanced security measures available through the service provider that mitigates the threat of unauthorized access to any of the data and/or the control of the customer connected devices.
0114At this time, it may be useful to consider, at a high level, the functional elements/aspects of the UE <b>310</b> and the PPI manager in more detail. <figref idref="DRAWINGS">FIG. 3</figref> provides a block diagram illustration of an example of touch-screen type mobile device <b>13</b>. Although shown as a handheld smartphone for discussion purposes, mobile device <b>13</b> may also be a tablet or may be incorporated into another device, such as a tablet, wearable device, a personal digital assistant (PDA) or the like. The mobile device <b>13</b> functions as a normal digital wireless telephone device. For that function, the device <b>13</b> includes a microphone <b>1002</b> for audio signal input and a speaker <b>1004</b> for audio signal output. The microphone <b>1002</b> and speaker <b>1004</b> connect to voice coding and decoding circuitry (vocoder) <b>1006</b>. For a voice telephone call, for example, the vocoder <b>1006</b> provides two-way conversion between analog audio signals representing speech or other audio and digital samples at a compressed bit rate compatible with the digital protocol of wireless telephone network communications or voice over packet (i.e. Internet Protocol) communications.
0115For digital wireless communications, the handset <b>13</b> also includes at least one digital transceiver (XCVR) <b>1008</b>. Today, the handset <b>13</b> is configured for digital wireless communications using one or more of the common network technology types. In an example, the XCVR <b>1008</b> is configured as a transceiver suitable data (which includes voice) communications over different types of radio access networks and/or mobile communication networks, such as a long term evolution (LTE) network according to any standards or requirements related to VoLTE. The concepts discussed here encompass embodiments of the mobile device <b>13</b> utilizing any digital transceivers that conform to current or future developed digital wireless communication standards. The mobile device <b>13</b> may also be capable of analog operation via a legacy network technology.
0116The transceiver <b>1008</b> provides two-way wireless communication of information, such as vocoded speech samples and/or digital information for data communications (including for authentication), in accordance with the technology of the networks of <figref idref="DRAWINGS">FIG. 1</figref>. The transceiver <b>1008</b> also sends and receives a variety of signaling messages in support of the various voice and data services provided via the mobile device <b>13</b> and the communication network. Each transceiver <b>1008</b> connects through RF send and receive amplifiers (not separately shown) to an antenna <b>1009</b>.
0117A microprocessor <b>1062</b> serves as a programmable controller for the mobile device <b>13</b>, in that it controls all operations of the mobile device <b>13</b> in accord with programming that it executes, for all normal operations, and for operations involved in the device connect mobile application customer connected device control service under consideration here. A microprocessor, or generally, a processor, is a hardware circuit having elements structured and arranged to perform one or more processing functions, typically various data processing functions. Although discrete logic components could be used, the examples utilize components forming a programmable central processing unit (CPU). A microprocessor for example includes one or more integrated circuit (IC) chips incorporating the electronic elements to perform the functions of the CPU. The microprocessor <b>1062</b>, for example, may be based on any known or available microprocessor architecture, such as a Reduced Instruction Set Computing (RISC) using an ARM architecture, as commonly used today in mobile devices and other portable electronic devices. Of course, other microprocessor circuitry may be used to form the CPU or processor hardware in server computers or other user terminal computer equipment.
0118The microprocessor <b>1062</b> serves as the programmable host for mobile device <b>13</b> by configuring the mobile device <b>13</b> to perform various operations, for example, in accordance with instructions or programming executable by microprocessor <b>1062</b>. For example, such operations may include various general operations of the mobile device <b>13</b> as well as operations related to confirming or adjusting operational settings of the mobile device <b>13</b>, contacting network devices, storing user preference information, controlling encoding/decoding of voice and video data, and the like. Although a processor may be configured by use of hardwired logic, typical processors in mobile devices are general processing circuits configured by execution of programming. The microprocessor <b>1062</b> connects to other elements of the mobile device <b>13</b> via appropriate circuitry, such as bus or terminal connections. In a present example, the mobile device <b>13</b> includes flash type program memory <b>1064</b>, for storage of various “software” or “firmware” program routines such as device operating system (OS), voice encoding/decoding algorithms, video encoding/decoding algorithms, programs related to graphical user interface elements and functions. The memory <b>1064</b> also stores mobile configuration settings, such as the MDN, the IMEID and/or mobile identification number (MIN), etc. The mobile device <b>13</b> may also include a non-volatile random access memory (RAM) <b>1033</b> for a working data processing memory. Of course, other storage devices or configurations may be added to or substituted for those in the example. The memories <b>1064</b>, <b>1033</b> also store various data, such as telephone numbers and server addresses, downloaded data such as multimedia content and applications, and various data input by the user. Programming stored in the flash type program memory <b>1064</b>, sometimes referred to as “firmware,” is loaded into and executed by the microprocessor <b>1062</b>. For example, the customer connected device control application code is stored in the memory <b>1064</b>.
0119As outlined above, the mobile device <b>13</b> includes a processor, and programming, such as mobile application(s) <b>1030</b>, stored in the memory <b>1064</b> configures the processor so that the mobile device is capable of performing various desired functions, including in this case the functions involved in the technique for providing revisions to the discontinuous reception settings of the mobile device <b>13</b>. The logic implemented by the processor <b>1062</b> of the mobile device <b>13</b> configures the processor <b>1062</b> to control various functions as implemented by the mobile device <b>13</b>. The logic for a processor <b>1062</b> may be implemented in a variety of ways, but in our example, the processor logic is implemented by programming for execution by the processor <b>1062</b>. Regular operations of the device are controlled by operation of the processor <b>1062</b>. Mobile applications, such as the customer connected device control application, <b>1300</b> may be stored in flash memory <b>1064</b> as well as other applications (e.g., games, productivity, entertainment (video and/or audio), voice and the like).
0120The mobile device <b>13</b> includes a touch-screen display <b>1020</b> for displaying messages, menus or the like, call related information dialed by the user, calling party numbers, etc., including the graphical user interface <b>217</b> of <figref idref="DRAWINGS">FIG. 2</figref>. Keys <b>1030</b> or a virtual keyboard presented via the touch-screen display <b>1020</b> may enable dialing digits for voice and/or data calls as well as generating selection inputs, for example, as may be keyed-in by the user based on a displayed menu or as a cursor control and selection of a highlighted item on a displayed screen. The touch-screen display <b>1020</b> and keys <b>1030</b> are the physical elements providing a textual or graphical user interface. Various combinations of the keypad <b>120</b>, touch-screen display <b>1020</b>, microphone <b>1002</b> and speaker <b>1004</b> may be used as the physical input output elements of the graphical user interface (GUI), for multimedia (e.g., audio and/or video) communications including communications/interactions related to voice and/or video calling. Of course other user interface elements may be used, such as a trackball, as in some types of PDAs or smart phones.
0121In addition to normal telephone and data communication related input/output, the user interface elements also may be used for display of menus and other information to the user and user input of selections, including any needed during user selection of a menu option. For example, if used as a selection device, the user interface elements allow a user to input information or make setting selections via, for example, interactions with the enabled customer connected device control application, related to the user's usage of the devices <b>161</b>-<b>169</b> and the gateway <b>150</b>.
0122For input purposes, touch screen display <b>1020</b> includes a plurality of touch sensors <b>1022</b>. Other interface elements may include a keypad including one or more keys <b>1030</b>. For example, the keypad may be implemented in hardware as a T9 or QWERTY keyboard of mobile device <b>13</b> and keys <b>1030</b> may correspond to the physical keys of such a keyboard. Alternatively, keys <b>1030</b> (and keyboard) of mobile device <b>13</b> may be implemented as “soft keys” of a virtual keyboard graphically represented in an appropriate arrangement via touch screen display <b>1020</b>. The soft keys presented on the touch screen display <b>1020</b> may allow the user of mobile device <b>13</b> to invoke the same user interface functions as with the physical hardware keys. In some implementations, the microphone <b>1002</b> and speaker <b>1004</b> may be used as additional user interface elements, for audio input and output, including with respect to some functions related to the video calling processing and communication, as described herein. The different user interface elements may be used to navigate through the examples of video calling service graphical user interfaces described herein.
0123For output, touch screen display <b>1020</b> is used to present information (e.g., text, video, graphics or other visible digital media content) to the user of mobile device <b>13</b>. Processor <b>1062</b> controls visible display output on the LCD or other display element of the touch screen display <b>1020</b> via a display driver <b>1024</b>, to present the various visible outputs to the device user.
0124In general, touch screen display <b>1020</b> and touch sensors <b>1022</b> (and one or more keys <b>1030</b>, if included) are used to provide the textual and graphical user interface for the mobile device <b>13</b>. In an example, touch screen display <b>1020</b> provides viewable content to the user at mobile device <b>13</b>. Touch screen display <b>1020</b> also enables the user to interact directly with the viewable content provided in the content display area, typically by touching the surface of the screen with a finger or an implement such as a stylus.
0125As shown in <figref idref="DRAWINGS">FIG. 3</figref>, the mobile device <b>13</b> also includes a sense circuit <b>1028</b> coupled to touch sensors <b>1022</b> for detecting the occurrence and relative location/position of each touch with respect to a content display area of touch screen display <b>1020</b>. In addition, the sense circuit <b>1028</b> is configured to provide processor <b>1062</b> with touch-position information based on user input received via touch sensors <b>1022</b> (e.g. a user interface element). In some implementations, processor <b>1062</b> is configured to correlate the touch position information to specific content being displayed within the content display area on touch screen display <b>1020</b>. The touch-position information captured by sense circuit <b>1028</b> and provided to processor <b>1062</b> may include, but is not limited to, coordinates identifying the location of each detected touch with respect to the display area of touch screen display <b>1020</b> and a timestamp corresponding to each detected touch position.
0126There are a variety of ways that a mobile device <b>13</b> may be configured to obtain information with respect to current location of the device. In our example, the mobile device <b>13</b> includes a global positioning satellite (GPS) receiver <b>1032</b> and associated antenna <b>1034</b>. Location information, in some examples, trigger the device control application to generate commands to the respective devices <b>161</b>-<b>169</b>. For example, the GPS receiver <b>1032</b> provides location information indicating that the mobile device <b>13</b> is within a predetermined distance of the user's home. In response to the location information indicating the predetermined distance, the device control application according to user preferences and/or settings generates a command to a respective device <b>161</b>-<b>169</b> via the gateway <b>150</b>, for example, to open the garage door and to turn ON the kitchen lights, or perform some other actions.
0127As known in the data processing and communications arts, a general-purpose computer typically comprises a central processor or other processing device, an internal communication bus, various types of memory or storage media (RAM, ROM, EEPROM, Flash, cache memory, disk drives etc.) for code and data storage, and one or more network interface cards or ports for communication purposes. The software functionalities involve programming, including executable code as well as associated stored data, e.g. files used for the enabled customer connected device profile storage in the examples described herein. In operation, the code is stored within the general-purpose computer platform. At other times, however, the software may be stored at other locations and/or transported for loading into the appropriate general-purpose computer system. Execution of such code by a processor of the computer platform enables the platform to implement the methodology for enabling control of enabled customer connected devices based on a persistent connection maintained by a service provider network component, in essentially the manner performed in the implementations discussed and illustrated herein.
0128<figref idref="DRAWINGS">FIGS. 8 and 9</figref> provide functional block diagram illustrations of general purpose computer hardware platforms. <figref idref="DRAWINGS">FIG. 8</figref> illustrates a network or host computer platform, as may typically be used to implement a server, router or gateway device. <figref idref="DRAWINGS">FIG. 9</figref> depicts a computer with user interface elements, as may be used to implement a personal computer or other type of work station or terminal device, although the computer of <figref idref="DRAWINGS">FIG. 9</figref> may also act as a server if appropriately programmed, such as gateway <b>150</b> or user devices <b>152</b> and <b>154</b>. It is believed that the general structure and general operation of such equipment as shown in <figref idref="DRAWINGS">FIGS. 8 and 5</figref> should be self-explanatory from the high-level illustrations.
0129A server, or more specifically, the PCP <b>126</b>, the home router <b>140</b> or gateway <b>150</b>, for example, includes a data communication interface for packet data communication. For example, the gateway device <b>150</b> and the PCP <b>126</b> of <figref idref="DRAWINGS">FIG. 1</figref> are configured to include one or more of the components shown. In addition, the gateway interface <b>159</b> of the gateway device <b>150</b> may be connected as the input/output (I/O) device, and include multiple connection physical ports or antennas as well as transceivers for connecting networking devices that receive communications (either wired or wireless) according to communication protocols associated with the respective devices <b>161</b>-<b>169</b> of the various protocols, such as Zwave, BLE, Zigbee, TCP/IP or other communication protocols. The server, or gateway, also includes a central processing unit (CPU), in the form of one or more processors, for executing program instructions. The server platform typically includes an internal communication bus, program storage and data storage (DS) for various data files to be processed and/or communicated by the server, although the server often receives programming and data via network communications. The hardware elements, operating systems and programming languages of such servers are conventional in nature. Of course, the server functions may be implemented in a distributed fashion on a number of similar platforms, to distribute the processing load.
0130A computer type user terminal device, such as a personal desktop computer or tablet computer or devices like <b>152</b> and <b>154</b> of <figref idref="DRAWINGS">FIG. 1</figref>, similarly includes a data communication interface CPU, main memory and one or more mass storage devices for storing user data and the various executable programs (see <figref idref="DRAWINGS">FIG. 9</figref>). A mobile device type user terminal may include similar elements, but may typically use smaller components that also require less power, to facilitate implementation in a portable form factor. The various types of user terminal devices may also include various user input and output elements. A computer, for example, may include a keyboard and a cursor control/selection device such as a mouse, trackball, joystick or touchpad; and a display for visual outputs. A microphone and speaker enable audio input and output. Some smartphones include similar but smaller input and output elements. Tablets and other types of smartphones utilize touch sensitive display screens, instead of separate keyboard and cursor control elements. The hardware elements, operating systems and programming languages of such user terminal devices also are conventional in nature.
0131At least some aspects of the methods of enabling the customer connected control service provided by the service provider outlined above may be embodied in programming, e.g. for the mobile device, the connectable device, and/or the provisioning system server. Program aspects of the technology may be thought of as “products” or “articles of manufacture” typically in the form of executable code and/or associated data that is carried on or embodied in a type of machine readable medium. “Storage” type media include any or all of the tangible memory of the computers, processors or the like, or associated modules thereof, such as various semiconductor memories, tape drives, disk drives and the like, which may provide non-transitory storage at any time for the software programming. All or portions of the software may at times be communicated through the Internet or various other telecommunication networks. Such communications, for example, may enable loading of the software from one computer or processor into another, for example, from a management server or host computer of the provisioning system into the computer platform of a user mobile device or a connectable device. Thus, another type of media that may bear the software elements includes optical, electrical and electromagnetic waves, such as used across physical interfaces between local devices, through wired and optical landline networks and over various air-links. The physical elements that carry such waves, such as wired or wireless links, optical links or the like, also may be considered as media bearing the software. As used herein, unless restricted to non-transitory, tangible “storage” media, terms such as computer or machine “readable medium” refer to any medium that participates in providing instructions to a processor for execution.
0132Hence, a machine readable medium may take many forms, including but not limited to, a tangible storage medium, a carrier wave medium or physical transmission medium. Non-volatile storage media include, for example, optical or magnetic disks, such as any of the storage devices in any computer(s) or the like, such as may be used to implement the connectable device provisioning service, etc. shown in the drawings. Volatile storage media include dynamic memory, such as main memory of such a computer platform. Tangible transmission media include coaxial cables; copper wire and fiber optics, including the wires that comprise a bus within a computer system. Carrier-wave transmission media can take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media therefore include for example: a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any other optical medium, punch cards paper tape, any other physical storage medium with patterns of holes, a RAM, a PROM and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a computer or the like can read programming code and/or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution.
0133While the foregoing has described what are considered to be the best mode and/or other examples, it is understood that various modifications may be made therein and that the subject matter disclosed herein may be implemented in various forms and examples, and that the teachings may be applied in numerous applications, only some of which have been described herein. It is intended by the following claims to claim any and all applications, modifications and variations that fall within the true scope of the present teachings.
0134Unless otherwise stated, all measurements, values, ratings, positions, magnitudes, sizes, and other specifications that are set forth in this specification, including in the claims that follow, are approximate, not exact. They are intended to have a reasonable range that is consistent with the functions to which they relate and with what is customary in the art to which they pertain.
0135The scope of protection is limited solely by the claims that now follow. That scope is intended and should be interpreted to be as broad as is consistent with the ordinary meaning of the language that is used in the claims when interpreted in light of this specification and the prosecution history that follows and to encompass all structural and functional equivalents. Notwithstanding, none of the claims are intended to embrace subject matter that fails to satisfy the requirement of Sections <b>101</b>, <b>102</b>, or <b>103</b> of the Patent Act, nor should they be interpreted in such a way. Any unintended embracement of such subject matter is hereby disclaimed.
0136Except as stated immediately above, nothing that has been stated or illustrated is intended or should be interpreted to cause a dedication of any component, step, feature, object, benefit, advantage, or equivalent to the public, regardless of whether it is or is not recited in the claims.
0137It will be understood that the terms and expressions used herein have the ordinary meaning as is accorded to such terms and expressions with respect to their corresponding respective areas of inquiry and study except where specific meanings have otherwise been set forth herein. Relational terms such as first and second and the like may be used solely to distinguish one entity or action from another without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms “comprises,” “comprising,” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by “a” or “an” does not, without further constraints, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises the element.
0138The Abstract of the Disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in various embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed examples require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed example. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separately claimed subject matter.
Contents3
11 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11
Every citation, both ways
| Document | Relation | Office | Category | Cited during | Relevant claims |
|---|---|---|---|---|---|
| US10510235B2 | Cited by | United States of America | – | Search report | – |
| GB2634422A | Cited by | United Kingdom | – | Search report | – |
| US11171930B2 | Cited by | United States of America | – | Search report | – |
| US12250273B2 | Cited by | United States of America | – | Search report | – |
| US11616830B1 | Cited by | United States of America | – | Search report | – |
| US11638135B2 | Cited by | United States of America | – | Search report | – |
| US2021185740A1 | Cited by | United States of America | – | Search report | – |
| US2019097980A1 | Cited by | United States of America | – | Search report | – |
| US2019097980A1 | Cited by | United States of America | – | Search report | – |
| US10368744B1 | Cited by | United States of America | – | Search report | – |
| US2017300025A1 | Cited by | United States of America | – | Pre-grant | – |
| US11394760B2 | Cited by | United States of America | – | Applicant | – |
| US10317867B2 | Cited by | United States of America | – | Search report | – |
| US10742742B2 | Cited by | United States of America | – | Search report | – |
| US12154398B2 | Cited by | United States of America | – | Search report | – |
| US11095471B2 | Cited by | United States of America | – | Applicant | – |
| US11463330B2 | Cited by | United States of America | – | Search report | – |
| US11089100B2 | Cited by | United States of America | – | Applicant | – |
| US11070387B2 | Cited by | United States of America | – | Search report | – |
| US11327737B2 | Cited by | United States of America | – | Search report | – |
| CN110086772A | Cited by | China | – | Search report | – |
| US10944836B2 | Cited by | United States of America | – | Search report | – |
| US11221596B2 | Cited by | United States of America | – | Search report | – |
| US2022303238A1 | Cited by | United States of America | – | Search report | – |
| US10645152B2 | Cited by | United States of America | – | Search report | – |
| US11399007B2 | Cited by | United States of America | – | Search report | – |
| US9538323B2 | Cited by | United States of America | – | Search report | – |
| US2016182432A1 | Cited by | United States of America | – | Search report | – |
| US11831596B2 | Cited by | United States of America | – | Search report | – |
| US12381941B1 | Cited by | United States of America | – | Search report | – |
| US2016183030A1 | Cited by | United States of America | – | Pre-grant | – |
| US2022408261A1 | Cited by | United States of America | – | Search report | – |
| US12047437B1 | Cited by | United States of America | – | Search report | – |
| US2020329354A1 | Cited by | United States of America | – | Search report | – |
| US12292805B2 | Cited by | United States of America | – | Applicant | – |
| US11038838B2 | Cited by | United States of America | – | Applicant | – |
| US12477591B2 | Cited by | United States of America | – | Search report | – |
| US2021226819A1 | Cited by | United States of America | – | Search report | – |
| WO2021109753A1 | Cited by | World Intellectual Property Organization (WIPO) | – | International search | – |
| US2016182432A1 | Cited by | United States of America | – | Search report | – |
| US9578443B2 | Cited by | United States of America | – | Search report | – |
| EP4425980A3 | Cited by | European Patent Office (EPO) | – | Search report | – |
| US2019114888A1 | Cited by | United States of America | – | Search report | – |
| US2024364785A1 | Cited by | United States of America | – | Search report | – |
| US2018270075A1 | Cited by | United States of America | – | Search report | – |
| US11843584B2 | Cited by | United States of America | – | Applicant | – |
| US2023106918A1 | Cited by | United States of America | – | Search report | – |
| US9985796B2 | Cited by | United States of America | – | Applicant | – |
| US11329943B2 | Cited by | United States of America | – | Search report | – |
| US10277456B2 | Cited by | United States of America | – | Applicant | – |
| US2018053331A1 | Cited by | United States of America | – | Search report | – |
| US2018075731A1 | Cited by | United States of America | – | Search report | – |
| US2021126808A1 | Cited by | United States of America | – | Search report | – |
| US11872009B1 | Cited by | United States of America | – | Applicant | – |
| US2018375927A1 | Cited by | United States of America | – | Search report | – |
| US11755503B2 | Cited by | United States of America | – | Applicant | – |
| US11019122B2 | Cited by | United States of America | – | Search report | – |
| US2018309864A1 | Cited by | United States of America | – | Search report | – |
| US12081622B2 | Cited by | United States of America | – | Search report | – |
| US10680878B2 | Cited by | United States of America | – | Applicant | – |
| US2018270075A1 | Cited by | United States of America | – | Search report | – |
| US11489690B2 | Cited by | United States of America | – | Applicant | – |
| US2018287813A1 | Cited by | United States of America | – | Search report | – |
| US2016378082A1 | Cited by | United States of America | – | Pre-grant | – |
| US12041106B2 | Cited by | United States of America | – | Applicant | – |
| US2018075731A1 | Cited by | United States of America | – | Search report | – |
| WO2023244697A1 | Cited by | World Intellectual Property Organization (WIPO) | – | International search | – |
| US2017171317A1 | Cited by | United States of America | – | Search report | – |
| US11627107B2 | Cited by | United States of America | – | Applicant | – |
| CN115412389A | Cited by | China | – | Search report | – |
| US2024364603A1 | Cited by | United States of America | – | Search report | – |
| US12058012B1 | Cited by | United States of America | – | Search report | – |
| US11954478B2 | Cited by | United States of America | – | Applicant | – |
| US10129218B2 | Cited by | United States of America | – | Search report | – |
| EP3599755A1 | Cited by | European Patent Office (EPO) | – | Examiner | – |
| US10765320B1 | Cited by | United States of America | – | Applicant | – |
| US10769935B2 | Cited by | United States of America | – | Search report | – |
| US2018234294A1 | Cited by | United States of America | – | Search report | – |
| US2023254375A1 | Cited by | United States of America | – | Search report | – |
| CN111865739A | Cited by | China | – | Search report | – |
| US11563594B2 | Cited by | United States of America | – | Search report | – |
| US11178542B1 | Cited by | United States of America | – | Search report | – |
| WO2018081568A1 | Cited by | World Intellectual Property Organization (WIPO) | – | International search | – |
| US2009259746A1 | Cites | United States of America | Y | Pre-grant | 10 |
| US2009259746A1 | Cites | United States of America | Y | Search report | 10 |
| US2015163168A1 | Cites | United States of America | XY | Search report | 1-4, 6 |
| US2015163168A1 | Cites | United States of America | XY | Pre-grant | 1-4, 6 |
| US2015281122A1 | Cites | United States of America | A | Pre-grant | – |
| US2015281122A1 | Cites | United States of America | A | Search report | – |
| US2016142402A1 | Cites | United States of America | A | Pre-grant | – |
| US2016142402A1 | Cites | United States of America | A | Search report | – |
| US8378779B2 | Cites | United States of America | A | Pre-grant | – |
| US8378779B2 | Cites | United States of America | A | Search report | – |
| Zhu US Patent Publication no 2015/0373607 | Non-patent | – | – | Search report | – |
| Logue US Patent Publication no 2015/0149781 | Non-patent | – | – | Search report | – |
2 members in 1 office; this record represents the family
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2016165663A1 | United States of America | A1 | |
| US10306705B2 | United States of America | B2 |
102 transactions on the USPTO file
Allowed after 3 non-final rejections, 2 final rejections and 2 RCEs.
- Non-final rejections
- 3
- Final rejections
- 2
- RCEs
- 2
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Applicant Initiated Interview SummaryMEXIA | MEXIA | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Electronic request for Examiner InterviewM865E | M865E | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| After Final Consideration Program Amendment too ExtensiveAFNE | AFNE | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| PILOT- Request for After Final Consideration ProgramRAFC | RAFC | |
| Response after Final ActionA.NE | A.NE | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Electronic request for Examiner InterviewM865E | M865E | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Electronic request for Examiner InterviewM865E | M865E | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Miscellaneous Incoming LetterLET. | LET. | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| After Final Consideration Program Additional Consideration and/or updated searchAFAC | AFAC | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| PILOT- Request for After Final Consideration ProgramRAFC | RAFC | |
| Response after Final ActionA.NE | A.NE | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Electronic request for Examiner InterviewM865E | M865E | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Electronic request for Examiner InterviewM865E | M865E | |
| Email NotificationEML_NTR | EML_NTR | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Email NotificationEML_NTR | EML_NTR | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Sent to Classification ContractorPGPC | PGPC | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Cleared by OIPE CSRL194 | L194 | |
| Cleared by OIPE CSRL194 | L194 | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN |
5 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Information on status: patent application and granting procedure in generalPUBLICATIONS -- ISSUE FEE PAYMENT VERIFIEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalNOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONSSTPP | STPP | |
| AssignmentAS | AS |
Numbers
- Publication
- 20160165663
- Application
- 14564885
Titles
- English
- SECURE CONNECTED DEVICE CONTROL AND MONITORING SYSTEM
Patent term adjustment
- A delay
- +116 daysthe office missed an examination deadline
- Applicant delay
- −4 days
- Net adjustment
- 112 days
Classification
- CPC, 6
- H04W8/10
- H04W88/16
- H04W84/12
- H04W76/12
- H04W76/11
- H04W76/10
- IPC, 2
- H04W88 16
- H04W84 12