# US 12,003,660 B2 · Method and system to implement secure real time communications (SRTC) between WebRTC and the internet of things (IoT)

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,003,660 B2
- Document ID: US12003660B2
- Status: Granted
- Kind: B2
- Application number: 17/646,710
- Filed: 2021-12-31
- Published: 2023-07-06
- Granted: 2024-06-04
- Earliest claimed: 2021-12-31
- Assignees: Avila Technology, LLC
- Applicants: Avila Technology, LLC
- Inventors: Robert Bernardi
- Web page: https://patentgrep.com/patent/US12003660B2

## CPC

- H04M 1/72445: for supporting Internet browser applications
- H04L 63/0428: {wherein the data content is protected, e.g. by encrypting or encapsulating the payload}
- H04L 63/10: {for controlling access to devices or network resources}
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 67/104: Peer-to-peer [P2P] networks
- H04L 67/12: specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L 67/125: involving control of end-device applications over a network
- H04L 67/51: Discovery or management thereof, e.g. service location protocol [SLP] or web services
- H04M: TELEPHONIC COMMUNICATION (circuits for controlling other apparatus via a telephone cable and not involving telephone switching apparatus G08)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The invention relates to processes and systems for using Web Real-Time Communications (RTC) to connect and communicate with devices used in an Internet of Things (IoT) framework, and devices made for the same.

## Claims

### Claim 1

A communication and sharing system for assigning an internet protocol (IP) address to a data or video fee from a wireless internet of things (IoT) device to establish a Web Real-Time Communication (WebRTC) peer-to-peer connection to a user communication device, comprising:
a WebRTC application of a user communication device having program instructions saved to memory and executable on a processor to establish an encrypted peer-to-peer communication with the wireless IoT device,
said WebRTC application having a discovery module with program instructions to send a discovery request to obtain an IoT Device IP address from a WebRTC Cloud Server,
said WebRTC Cloud Server assigning the IoT Device IP Address to the IoT data or video feed from the wireless IoT device selected from an IoT sensor, IoT switch, IoT camera, IoT meter, IoT receiver, and IoT wireless antenna,
an IoT Protocol Cloud Gateway having an Message Queue Telemetry Transport protocol (MQTT) broker connected to the wireless IoT device and programmed to transport the IoT data or video feed over TCP/IP to an IoT Software Cloud Platform,
the IoT Software Cloud Platform having a data and video module to receive the IoT data or video feed and perform data and video processing, storage/collection, analytics, visualization, and IoT device management,
a Janus Media and GStreamer Streaming Media (JM-GSM) Cloud Server connected to the IoT Software Cloud Platform to receive the processed IoT data or video feed, said Janus Media and GStreamer Streaming Media (JM-GSM) Cloud Server having a Janus-server-side plugin to enhance real-time video and having a GStreamer video and data processing module for creating streaming media,
the WebRTC Cloud Server connected to the Janus Media and GStreamer Streaming Media (JM-GSM) Cloud Server, said WebRTC Cloud Server connected to a WebRTC cloud server farm having a WebRTC browser to provide WebRTC peer-to-peer connection between the IoT device and the first communication device, said WebRTC Cloud Server connected to a Cloud Dynamic Host Configuration Protocol (DHCP) Server to assign the IoT Device IP Address, and
a WebRTC Signaling Server connected to the WebRTC Cloud Server, said WebRTC Signaling Server in communication with the WebRTC application on the first communication device using a Session Management Javascript Application Programming Interface (API) and using a Peer Connection Javascript API.

### Claim 2 (depends on 1)

The system according to claim 1,
wherein the WebRTC browser is hosted on a cloud-accessed virtual machine that is part of a browser farm comprising a plurality of cloud-accessed virtual machines each having a WebRTC browser installed thereon, and wherein each WebRTC browser is configured to handle from 1-4 individual processed IoT data or video feeds;
wherein the IoT device is a wireless IoT device selected from an IoT sensor, IoT switch, IoT camera, IoT meter, IoT receiver, and IoT wireless antenna.

### Claim 3 (depends on 1)

The system according to claim 1, a user communication device having a processor and configured to send a discovery request from a WebRTC application installed on the user communication device to a WebRTC Signaling Server connected to the WebRTC Cloud Server, to establish an encrypted peer-to-peer communication between the user communication device and the IoT device, the discovery request obtaining the IoT Device IP address from the WebRTC Cloud Server and sending it to the user communication device, wherein said WebRTC Signaling Server is in communication with the WebRTC application on the user communication device using a Session Management Javascript API and using a Peer Connection Javascript API.

### Claim 4 (depends on 3)

The system according to claim 3, wherein
said WebRTC application has a blockchain module to connect the user communication device as a first node to the IoT device as a second node in a Private Blockchain network,
the WebRTC application having an invite module to send an invite message to a communication session from the user communication device to the IP address of the IoT device through a WebRTC browser extension to a WebRTC signaling server operatively connected to the Private Blockchain network; and
the WebRTC application having an accept-connection module to establish encrypted WebRTC peer-to-peer connection between the WebRTC browser of the user communication device and the WebRTC browser connected with the wireless IoT device in response to an acceptance by the wireless IoT device of the invite sent by the user communication device.

### Claim 5 (depends on 4)

The system according to claim 4, comprising a Saving Module in the WebRTC application to transmit the communication session, in an encrypted communication between the user communication device and a Cloud Storage Server, using a distributed hash table, wherein the IP address of the user communication device is a key mapped to a second value that is a saved communication session.

### Claim 6 (depends on 4)

The system according to claim 4, comprising a DRM Module in the WebRTC application to assign, using a menu of the WebRTC application on the user communication device, a DRM permission to the communication session saved to the Cloud Storage Server network, wherein the DRM permission is selected from the group consisting of: record, not record, store, screen share, revoke, expire, offline view, blacklist, copy, forward, screen capture, rights violation, and cancel/disappear.

### Claim 7 (depends on 5)

The system according to claim 5, comprising a Rendering Module in the WebRTC application to render in the Cloud Storage Server, an HTML file of the saved communication session, the HTML file stored in the Cloud Storage Server and having a URL link associated therewith.

### Claim 8 (depends on 7)

The system according to claim 7, comprising a DRM Enforcement Module in the WebRTC application to enforce the DRM permission of the communication session, and having programming instructions wherein said Cloud Storage Server is in encrypted communication with the wireless IoT device, said wireless IoT device having the WebRTC application operatively connected to the WebRTC browser of the wireless IoT device to access, using the URL link, the HTML file of the saved communication session and rendering the saved communication session on the Cloud Storage Server, and said WebRTC application enforces the DRM permission of the saved communication session using the DRM enforcement module in the WebRTC application, and said DRM enforcement module configured to send an enforcement command when a DRM permission violation is detected to revoke an encryption key that encrypts an electronic signal between the WebRTC application and the WebRTC browser, wherein the electronic signal is between a CODEC in the WebRTC browser and a playback component or module for a speaker or display of the wireless IoT device.

### Claim 9 (depends on 8)

The system according to claim 8, comprising a Private Blockchain Module in the WebRTC application to communicate with the Cloud Storage Server and provide user identity, authentication, a digital hash, Group Node Coupling, personally-identifiable information (PII) security, content linking, content searching, and content addressing.

### Claim 10 (depends on 9)

The system according to claim 9, comprising a Hardware Security Module in the WebRTC application to communicate with the Cloud Storage Server to provide AES 256 GCM encryption, and ECDH Diffie-Hellman encryption for audio and video streams.

### Claim 11 (depends on 10)

The system according to claim 10, comprising a key management module in communication with the WebRTC-Gateway Server and the Signaling Server to provide homomorphic encryption of a communication between the WebRTC-gateway Server and the Signaling Server, said homomorphic encryption allowing the Signaling Server to extract the private IP address without decrypting the JSON SMS message.

### Claim 12 (depends on 11)

The system according to claim 11, wherein the user communication device is selected from a mobile communication device, a desktop computer communication device, and a tablet communication device.

### Claim 13

A process for assigning an internet protocol (IP) address to a data or video fee from a wireless internet of things (IoT) device to establish a Web Real-Time Communication (WebRTC) peer-to-peer connection to a user communication device in a communication system and sharing platform, comprising:
Sending data or video from an internet-of-things (IoT) device over transmission control protocol/internet protocol (TCP/IP) to an IoT Protocol Gateway comprising an Message Queue Telemetry Transport protocol (MQTT) Broker in communication with the IoT device;
Sending the IoT device data or video from the IoT Protocol Gateway to an IoT Software & Artificial Intelligence (A.I.) Platform Cloud Server having a data and video module to perform data and video processing, storage/collection, analytics, visualization, and IoT device management and generating a processed IoT data or video feed;
Sending the processed IoT data or video feed to a Janus Media and GStreamer Streaming Media (JM-GSM) Cloud Server connected to the IoT Software Cloud Platform, said Janus Media and GStreamer Streaming Media (JM-GSM) Cloud Server having a Janus-server-side plugin to enhance real-time video and having a GStreamer video and data processing module for creating streaming media;
Sending the processed IoT data or video feed to a WebRTC Cloud Server having a WebRTC browser, said WebRTC Cloud Server connected to a Cloud Dynamic Host Configuration Protocol (DHCP) Server and assigning an origin IP address to the IoT Device connected to the processed IoT data or video feed;
wherein the WebRTC browser is hosted on a cloud-accessed virtual machine that is part of a browser farm comprising a plurality of cloud-accessed virtual machines each having a WebRTC browser installed thereon, and wherein each WebRTC browser is configured to handle from 1-4 individual processed IoT data or video feeds,
wherein the IoT device is a wireless IoT device selected from an IoT sensor, IoT switch, IoT camera, IoT meter, IoT receiver, and IoT wireless antenna, and
Sending a discovery request from a WebRTC application of a user communication device to a WebRTC Signaling Server connected to the WebRTC Cloud Server to establish an encrypted peer-to-peer communication between the user communication device and the IoT device, the discovery request obtaining the IoT Device IP address from the WebRTC Cloud Server and sending it to the user communication device, wherein said WebRTC Signaling Server is in communication with the WebRTC application on the user communication device using a Session Management Javascript Application Programming Interface (API) and using a Peer Connection Javascript API.

### Claim 14 (depends on 13)

The process according to claim 13, wherein said WebRTC application having a blockchain module to connect the user communication device as a first node to the IoT device as a second node in a Private Blockchain network,
the WebRTC application having an invite module to send an invite message to a communication session from the user communication device to the IP address of the IoT device through a WebRTC browser extension to a WebRTC signaling server operatively connected to the Private Blockchain network; and
the WebRTC application having an accept-connection module to establish encrypted WebRTC peer-to-peer connection between the WebRTC browser of the user communication device and the WebRTC browser connected with the wireless IoT device in response to an acceptance by the wireless IoT device of the invite sent by the user communication device.

### Claim 15 (depends on 14)

The process according to claim 14, comprising saving a communication session using a Saving Module in the WebRTC application to transmit the communication session, in an encrypted communication between the user communication device and a Cloud Storage Server, using a distributed hash table, wherein the IP address of the user communication device is a key mapped to a second value that is the saved communication session.

### Claim 16 (depends on 15)

The process according to of claim 15, comprising assigning a Digital Rights Management (DRM) permission using a DRM Module in the WebRTC application to assign, using a menu of the WebRTC application on the user communication device, the DRM permission to the communication session saved to the Cloud Storage Server network, wherein the DRM permission is selected from the group consisting of: record, not record, store, screen share, revoke, expire, offline view, blacklist, copy, forward, screen capture, rights violation, and cancel/disappear.

### Claim 17 (depends on 16)

The process according to claim 16, comprising rendering an Hyper Text Markup Language (HTML) file of the saved communication session using a Rendering Module in the WebRTC application to render in the Cloud Storage Server, an HTML file of the saved communication session, the HTML file stored in the Cloud Storage Server and having a Uniform Resource Locator (URL) link associated therewith.

### Claim 18 (depends on 17)

The process according to claim 17, comprising enforcing the DRM permission of the communication session using a DRM Enforcement Module in the WebRTC application, and having programming instructions wherein said Cloud Storage Server is in encrypted communication with the wireless IoT device, said wireless IoT device having the WebRTC application operatively connected to the WebRTC browser of the wireless IoT device to access, using the URL link, the HTML file of the saved communication session and rendering the saved communication session on the Cloud Storage Server, and said WebRTC application enforces the DRM permission of the saved communication session using the DRM enforcement module in the WebRTC application, and said DRM enforcement module configured to send an enforcement command when a DRM permission violation is detected to revoke an encryption key that encrypts an electronic signal between the WebRTC application and the WebRTC browser, wherein the electronic signal is between a Compression-Decompression device (CODEC) in the WebRTC browser and a playback component or module for a speaker or display of the wireless IoT device.

### Claim 19 (depends on 18)

The process according to claim 18, comprising using a Private Blockchain Module in the WebRTC application to communicate with the Cloud Storage Server and provide user identity, authentication, a digital hash, Group Node Coupling, personally-identifiable information (PII) security, content linking, content searching, and content addressing.

### Claim 20 (depends on 2)

The process according to claim 2, comprising using a Hardware Security Module in the WebRTC application to communicate with the Cloud Storage Server to provide Advanced Encryption Standard 256 Galois/Counter Mode (AES 256 GCM) encryption, and Elliptic-curve Diffie-Hellman (ECDH) encryption for audio and video streams.

### Claim 21 (depends on 20)

The process according to claim 20, comprising using a key management module in communication with the WebRTC-Gateway Server and the Signaling Server to provide homomorphic encryption of a communication between the WebRTC-gateway Server and the Signaling Server, said homomorphic encryption allowing the Signaling Server to extract the private IP address without decrypting a Java Script Object Notation (JSON) Short Messaging Service (SMS) message.

### Claim 22 (depends on 21)

The process according to claim 21, comprising wherein the user communication device is selected from a mobile communication device, a desktop computer communication device, and a tablet communication device.
