Relay service for communication between controllers and accessories
First Claim
Patent Images
1. A method for communicating between a first controller and an accessory via a relay service, the method comprising:
- assigning, by the relay service, a first operator relay alias for the first controller, the first operator relay alias being usable by the relay service to send messages to the first controller;
assigning, by the relay service, an accessory relay alias for the accessory, wherein the accessory relay alias is uncorrelated with any other accessory-identifying information;
receiving, by the relay service, a request to establish a relay pairing between the first operator relay alias and the accessory relay alias;
responsive to the request to establish a relay pairing, generating and storing, by the relay service, a first valid access token in association with the first operator relay alias and the accessory relay alias;
establishing, at the relay service, a persistent accessory connection on a socket, the persistent accessory connection being identified with the accessory relay alias and the first valid access token;
receiving, by the relay service, a relay request from the first controller to relay a message to the accessory, the relay request including the first operator relay alias, the accessory relay alias, an relay request access token, and message content; and
responsive to a determination that the relay request access token received with the relay request from the first controller corresponds to the first valid access token, sending the message content to the accessory via the socket.
2 Assignments
0 Petitions
Accused Products
Abstract
A relay service can relay messages between controllers and electronically controllable accessory devices that may be located remotely from the controllers. Relaying of messages by the relay service can be decoupled from any knowledge of the functionality of the accessory or the content of the messages. Device identification and relaying of messages can be managed using “relay aliases” that are meaningful only to the relay service and the endpoint devices (the controller and accessory). The endpoint devices can implement end-to-end security for messages transported by the relay service.
39 Citations
20 Claims
-
1. A method for communicating between a first controller and an accessory via a relay service, the method comprising:
-
assigning, by the relay service, a first operator relay alias for the first controller, the first operator relay alias being usable by the relay service to send messages to the first controller; assigning, by the relay service, an accessory relay alias for the accessory, wherein the accessory relay alias is uncorrelated with any other accessory-identifying information; receiving, by the relay service, a request to establish a relay pairing between the first operator relay alias and the accessory relay alias; responsive to the request to establish a relay pairing, generating and storing, by the relay service, a first valid access token in association with the first operator relay alias and the accessory relay alias; establishing, at the relay service, a persistent accessory connection on a socket, the persistent accessory connection being identified with the accessory relay alias and the first valid access token; receiving, by the relay service, a relay request from the first controller to relay a message to the accessory, the relay request including the first operator relay alias, the accessory relay alias, an relay request access token, and message content; and responsive to a determination that the relay request access token received with the relay request from the first controller corresponds to the first valid access token, sending the message content to the accessory via the socket. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
establishing, by a controller, communication with an accessory via a local channel; sending, by the controller to the accessory via the local channel, an operator relay alias for the controller, the operator relay alias being assigned to the controller by a relay service; receiving, by the controller from the accessory via the local channel, an accessory relay alias assigned to the accessory by the relay service; receiving, by the controller from the accessory via the local channel, a temporary pairing token obtained by the accessory from the relay service; sending, by the controller to the relay service, a request for an access token, the request including the temporary pairing token, the accessory relay alias, and an operator relay alias of the controller; receiving, by the controller from the relay service, an access token generated by the relay service; storing, by the controller, the access token in association with the accessory relay alias; sending, by the controller to the accessory via the local channel, the access token; and using, by the controller, the access token, the operator relay alias, and the accessory relay alias to communicate with the accessory via the relay service. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A method comprising:
-
establishing, by an accessory, communication with a controller via a local channel; receiving, by the accessory from the controller via the local channel, an operator relay alias for the controller, the operator relay alias being assigned to the controller by a relay service; sending, by the accessory to the controller via the local channel, an accessory relay alias assigned to the accessory by the relay service; sending, by the accessory to the relay service, a request for a temporary pairing token, the request including the accessory relay alias and the operator relay alias of the controller; receiving, by the accessory from the relay service, a temporary pairing token generated by the relay service; sending, by the accessory to the controller via the local channel, the temporary pairing token; receiving, by the accessory from the controller, an access token obtained by the controller from the relay service; storing, by the accessory, the access token in association with the operator relay alias; and using, by the accessory, the access token, the operator relay alias, and the accessory relay alias to communicate with the controller via the relay service. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification