IP Library Granted Patent US 11,750,514
Granted Patent B1
US 11,750,514 · App. 18/113,888 · Granted Sep 5, 2023

Connectivity candidate filtering

Inventors: Bojan Rajkovic (Salem, MA); Chin Siong Ong (Dorchester, MA)
Assignee: SimpliSafe, Inc.
H04L45/70H04L45/74
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,750,514
App. No.
18/113,888
Granted
Sep 5, 2023
Kind
B1
Abstract

In accordance with one disclosed method, a first application may receive a first connectivity candidate from a second application, the first connectivity candidate identifying at least a first internet protocol (IP) address that a remote application can potentially use to send data over a network to the second application for use by the first application. The first application may determine that the first connectivity candidate satisfies at least one criterion and, based at least in part on the first connectivity candidate satisfying the at least one criterion, may cause the first connectivity candidate to be sent to the remote application via a signaling channel to cause the remote application to attempt to use the first connectivity candidate to send data to the second application via the network.

Claims (63)

1. A method, comprising:

receiving, by a first application executable on a computing device, a first connectivity candidate from a second application hosted on the computing device, the first connectivity candidate identifying at least a first internet protocol (IP) address;

determining, by the first application, that a first value of a first attribute of a first connectivity candidate does not match a predetermined value;

based at least in part on the first value not matching the predetermined value, causing, by the first application, the first connectivity candidate to be sent to a remote application via a signaling channel to cause the remote application to attempt to use the first connectivity candidate to send data to the second application via a network;

receiving, by the first application, a second connectivity candidate from the second application, the second connectivity candidate identifying at least a second IP address;

determining, by the first application, that a second value of the first attribute of the second connectivity candidate matches the predetermined value; and

based at least in part on the second value matching the predetermined value, refraining from causing the second connectivity candidate to be sent to the remote application via the signaling channel.

2. The method of claim 1 , further comprising:

instructing, by the first application, a third application executing on the computing device to create a signaling client on the computing device to exchange signaling information with the remote application via the signaling channel, wherein:

causing the first connectivity candidate to be sent to the remote application via the signaling channel further comprises providing the first connectivity candidate to the signaling client; and

refraining from causing the second connectivity candidate to be sent to the remote application via the signaling channel further comprises refraining from providing the second connectivity candidate to signaling client.

3. The method of claim 1 , wherein the second application comprises a Web real-time communication (WebRTC) enabled component.

4. The method of claim 3 , wherein:

the WebRTC enabled component comprises a browser; and

the first application comprises a Web application executable by the browser.

5. The method of claim 4 , wherein the remote application is executed by a processor of a camera.

6. A method, comprising:

receiving, by a first application executable on a computing device, a first connectivity candidate from a remote application via a signaling channel, the first connectivity candidate including at least a first internet protocol (IP) address;

determining, by the first application, that a first value of a first attribute of a first connectivity candidate does not match a predetermined value;

based at least in part on the first value not matching the predetermined value, providing, by the first application, the first connectivity candidate to a second application to cause the second application to attempt to use the first connectivity candidate to send data to the remote application via a network;

receiving, by the first application, a second connectivity candidate from the remote application via the signaling channel, the second connectivity candidate including at least a second IP address;

determining, by the first application, that a second value of the first attribute of the second connectivity candidate matches the predetermined value; and

based at least in part on the second value matching the predetermined value, refraining from providing the second connectivity candidate to the second application.

7. The method of claim 6 , further comprising:

instructing, by the first application, a third application executing on the computing device to create a signaling client on the computing device to exchange signaling information with the remote application via the signaling channel, wherein:

receiving the first connectivity candidate from the remote application via the signaling channel further comprises receiving the first connectivity candidate from the signaling client; and

receiving the second connectivity candidate from the remote application via the signaling channel further comprises receiving the second connectivity candidate from the signaling client.

8. The method of claim 6 , wherein the second application comprises a Web real-time communication (WebRTC) enabled component.

9. The method of claim 8 , wherein:

the WebRTC enabled component comprises a browser; and

the first application comprises a Web application executable by the browser.

10. A method, comprising:

receiving, by a first application executable on a computing device, a first connectivity candidate from a second application hosted on the computing device, the first connectivity candidate identifying at least a first internet protocol (IP) address;

determining, by the first application, that a first value of a first attribute of a first connectivity candidate matches a predetermined value;

based at least in part on the first value matching the predetermined value, causing, by the first application, the first connectivity candidate to be sent to a remote application via a signaling channel to cause the remote application to attempt to use the first connectivity candidate to send data to the second application via a network;

receiving, by the first application, a second connectivity candidate from the second application, the second connectivity candidate identifying at least a second IP address;

determining, by the first application, that a second value of the first attribute of the second connectivity candidate does not match the predetermined value; and

based at least in part on the second value not matching the predetermined value, refraining from causing the second connectivity candidate to be sent to the remote application via the signaling channel.

11. The method of claim 10 , further comprising:

instructing, by the first application, a third application executing on the computing device to create a signaling client on the computing device to exchange signaling information with the remote application via the signaling channel, wherein:

causing the first connectivity candidate to be sent to the remote application via the signaling channel further comprises providing the first connectivity candidate to the signaling client; and

refraining from causing the second connectivity candidate to be sent to the remote application via the signaling channel further comprises refraining from providing the second connectivity candidate to signaling client.

12. The method of claim 10 , wherein the second application comprises a Web real-time communication (WebRTC) enabled component.

13. The method of claim 12 , wherein:

the WebRTC enabled component comprises a browser; and

the first application comprises a Web application executable by the browser.

14. The method of claim 13 , wherein the remote application is executed by a processor of a camera.

15. A method, comprising:

receiving, by a first application executable on a computing device, a first connectivity candidate from a remote application via a signaling channel, the first connectivity candidate including at least a first internet protocol (IP) address;

determining, by the first application, that a first value of a first attribute of a first connectivity candidate matches a predetermined value;

based at least in part on the first value matching the predetermined value, providing, by the first application, the first connectivity candidate to a second application to cause the second application to attempt to use the first connectivity candidate to send data to the remote application via a network;

receiving, by the first application, a second connectivity candidate from the remote application via the signaling channel, the second connectivity candidate including at least a second IP address;

determining, by the first application, that a second value of the first attribute of the second connectivity candidate does not match the predetermined value; and

based at least in part on the second value not matching the predetermined value, refraining from providing the second connectivity candidate to the second application.

16. The method of claim 15 , further comprising:

instructing, by the first application, a third application executing on the computing device to create a signaling client on the computing device to exchange signaling information with the remote application via the signaling channel, wherein:

receiving the first connectivity candidate from the remote application via the signaling channel further comprises receiving the first connectivity candidate from the signaling client; and

receiving the second connectivity candidate from the remote application via the signaling channel further comprises receiving the second connectivity candidate from the signaling client.

17. The method of claim 15 , wherein the second application comprises a Web real-time communication (WebRTC) enabled component.

18. The method of claim 17 , wherein:

the WebRTC enabled component comprises a browser; and

the first application comprises a Web application executable by the browser.

19. The method of claim 18 , wherein the remote application is executed by a processor of a camera.

Assignments (2)
SECURITY INTEREST Recorded Nov 12, 2025
From: SIMPLISAFE, INC.
To: CAPITAL ONE, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 073579/0854 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2023
From: RAJKOVIC, BOJAN; ONG, CHIN SIONG
To: SIMPLISAFE, INC.
Reel/Frame 062806/0430 →
Cited By (1)
US 12,598,137