Skip to content

Commit

Permalink
enhance readme
Browse files Browse the repository at this point in the history
  • Loading branch information
reey committed Feb 26, 2023
1 parent f691613 commit c0506a7
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 3 deletions.
19 changes: 16 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,21 @@
# cumulocity-webrtc-webcam-plugin
# Cumulocity WebRTC Webcam Plugin

A plugin that allows to access the webcam of compatible cumulocity devices via webrtc
A plugin that allows to access the webcam of compatible Cumulocity devices via [WebRTC](https://en.wikipedia.org/wiki/WebRTC).
WebRTC allows to create a peer-to-peer connection between the Cumulocity device and the browser to stream the video.
Because of that the video traffic does not have to go through another server or e.g. Cumulocity, which saves bandwith and costs.

Have a look at the [cumulocity-electron-agent](https://github.com/SoftwareAG/cumulocity-electron-agent) for a sample implementation supporting this feature.
![](images/webcam.png)

The Webcam plugin adds a Webcam tab to compatible devices in the app you install it to. You can e.g. install it to the `Devicemanagement` or `Cockpit` application.

The plugin uses by default some [STUN servers](https://de.wikipedia.org/wiki/Session_Traversal_Utilities_for_NAT) by Google to find the public IP addresses of the peer in order to establish the peer-to-peer connection. You can configure a different set of [ICE servers](https://en.wikipedia.org/wiki/Interactive_Connectivity_Establishment) (STUN or TURN) via the configuration plugin included in the package.

Depending on the firewall setup beteen the two peers it might happen that a peer-to-peer connection can not be established.
In that case a third party [TURN server](https://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT) is required, where the video traffic passes through. You can host such a server on your own with e.g. [Coturn](https://github.com/coturn/coturn).

Have a look at the [cumulocity-electron-agent](https://github.com/SoftwareAG/cumulocity-electron-agent) for a sample device agent implementation supporting this feature.

Please note that this plugin will store **possible sensitive information** in form of e.g. **external and internal IP addresses** in Cumulocity operations in order to establish the peer-to-peer connection. A possible future solution to this could be to establish a websocket connection between the device and browser via a microservice to exchange those details without storing them in Cumulocity.

---

Expand Down
Binary file added images/webcam.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit c0506a7

Please sign in to comment.