This is the old SkyWay repository. Please consider migrating to the new SkyWay.
SkyWay WebRTC Gateway is an experimental approach to expand WebRTC possiblity. We're seeking new partners who challanges innovation.
The mission of SkyWay is to make everyone use WebRTC easily. At first SkyWay 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 SkyWay WebRTC Gateway which is IP reachable.
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
To solve these problems, we have developed the SkyWay WebRTC Gateway which equips WebRTC engine which is wrapped with SkyWay. There are functions below:
- You can use SkyWay as you do
- Signaling server, TURN server
- Controll the application with REST API which is similar to existing SkyWay's API
- You can inject data to SkyWay WebRTC Gateway from outside
- Send RTP to SkyWay 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
- DataChannelで届いたデータをUDPで受け取る
- Because SkyWay WebRTC Gateway runs as stand-alone application, low performance devices can use it
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 SkyWay 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.
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!
- Windows(x64): Windows 10, 8, 7
- Linux(x64): Ubuntu18.04, 16.04, etc.
- Linux(ARM)
- Hardware: Raspberry Pi 3B or later
- Software: Raspbian Version 9 or later
This software includes the softwares which are disributed under Apache2 license.