# WebRTC Gateway
ECLWebRTC WebRTC Gateway is an experimental approach to expand WebRTC possiblity. We're seeking new partners who challanges innovation.
# Concept
The mission of ECLWebRTC is to make everyone use WebRTC easily. At first ECLWebRTC starts to provide signaling to browser, then extends the device support to iOS and Android. As a next step, in order to the range of device and use case, we developed the ECLWebRTC WebRTC Gateway which is IP reachable.
# Background
WebRTC Engine inside the browsers is only controlled by the browser's API. Control via JavaScript is the condititon.
Because of this, you might have the problem like:
- You want devices to use WebRTC but the devices is not capable of running browser
- How can we operate the IoT device outside?
- I want to analyze the video with AI or to send data...
- I want to use WebRTC on server-side but the headless browsers doesn't meet my requirements...
- Can we make use of SIP/RTP property we already have?
- etc...
What if there's a WebRTC Engine which can be controlled by the program? This can leads to develop software or service freely...
In order to meet this needs, previously there's limited ways like developing something with libWebRTC from scratch, OpenWebRTC, or Janus. However, it's really difficult to understand the library and to develop application. In addition, before your starting production service there are other problems like:
- Usability of existing application is different from the browser's one
- You need to prepare signaling and TURN server
- You can not get enough support from developers
# Functions
To solve these problems, we have developed the ECLWebRTC WebRTC Gateway which equips WebRTC engine which is wrapped with ECLWebRTC. There are functions below:
- You can use ECLWebRTC as you do
- Signaling server, TURN server
- Controll the application with REST API which is similar to existing ECLWebRTC's API
- You can inject data to ECLWebRTC WebRTC Gateway from outside
- Send RTP to ECLWebRTC WebRTC Gateway and the remote party can recevie it as MediaStream
- Receive RTP which is sent by remote party is originally MediaStream
- Send UDP and inject it to DataChannel
- Receive UDP which is originally DataChannel
- Because ECLWebRTC WebRTC Gateway runs as stand-alone application, low performance devices can use it
# How to use
At first you need to use REST API, then you establish WebRTC sesssion. After this, what you need to do is send RTP or UDP to ECLWebRTC WebRTC Gateway via established session from your program. Lots of use case should be covered. For instance, you can inject the video to recording device, or you can send control signal to the device which in behind the firewall.
# Use case
By controlling WebRTC Engine freely, the use case is unlimited. Some use cases are introduced below.
- Control the low performance device which can't use WebRTC by itself
- Recording audio
- Implement communication components of VR game with WebRTC
- Want to be virtual WebRTCer by sending the same video to 1,000 people
- Store the data on the AI platform on the cloud
- View the analyzed data on the AI platform on the cloud
- Utilization of existing SIP/RTP eqiupments
If you found the exciting use cases, let us know!
# How to Use
# Download
- Windows(x64): Windows 10, 8, 7
- Linux(x64): Ubuntu18.04, 16.04, etc.
- Linux(ARM)
# Raspberry Pi (Linux ARM) Minimum Requirements
- Hardware: Raspberry Pi 3B or later
- Software: Raspbian Version 9 or later
# Updates and Release Notes
# License
This software includes the softwares which are disributed under Apache2 license.