mirror of https://github.com/OpenVidu/openvidu.git
Update README to a minimal description
- Remove KurentoRoom references - Update license to Apache License v2 - Remove implementation detailspull/1/head
parent
103377996a
commit
482b275136
261
README.md
261
README.md
|
@ -1,257 +1,10 @@
|
||||||
[![][KurentoImage]][Kurento]
|
OpenVidu
|
||||||
|
========
|
||||||
|
|
||||||
Copyright © 2013-2016 [Kurento]. Licensed under [LGPL v2.1 License].
|
OpenVidu is a platform for adding group video calls in your web or mobile
|
||||||
|
application. It is based on [Kurento](http://www.kurento.org), the WebRTC platform
|
||||||
|
for multimedia applications.
|
||||||
|
|
||||||
kurento-room
|
OpenVidu and Kurento are licensed under Apache License v2.
|
||||||
============
|
|
||||||
|
|
||||||
Kurento Room is composed by several modules to offer group communications by
|
OpenVidu was forked from [KurentoRoom project](https://github.com/Kurento/kurento-room).
|
||||||
means of WebRTC. These modules are:
|
|
||||||
|
|
||||||
* `kurento-room-sdk` - module that provides a management interface for
|
|
||||||
developers of multimedia conferences (rooms) applications in Java
|
|
||||||
* `kurento-room-server` - Kurento’s own implementation of a room API, it
|
|
||||||
provides the WebSockets API for the communications between room clients and
|
|
||||||
the server.
|
|
||||||
* `kurento-room-client` - Java library that uses WebSockets and JSON-RPC to
|
|
||||||
interact with the server-side of the Room API. Can be used to implement the
|
|
||||||
client-side of a room application.
|
|
||||||
* `kurento-room-client-js` - Javascript library that acts as wrapper for several
|
|
||||||
JS APIs (WebRTC, WebSockets, Kurento Utils). Can be used to implement the
|
|
||||||
client-side of a room application.
|
|
||||||
* `kurento-room-demo` - demonstration project, contains the client-side
|
|
||||||
implementation (HTML, Javascript, graphic resources) and embeds the room
|
|
||||||
server to provide the functionality required for group communications
|
|
||||||
* `kurento-room-test` - integration and functionality tests for the basic room
|
|
||||||
server application
|
|
||||||
* `kurento-room-demo-test` - integration and functionality tests for the demo
|
|
||||||
application.
|
|
||||||
|
|
||||||
There is extensive documentation on each of these components together with a
|
|
||||||
tutorial based on the Room demo. This documentation can be easily generated in
|
|
||||||
HTML format from the [kurento-room-doc](./kurento-room-doc/README.md) project.
|
|
||||||
|
|
||||||
Dependencies
|
|
||||||
------------
|
|
||||||
|
|
||||||
These are some of the design and architecture requirements that an application
|
|
||||||
has to fulfill in order to integrate the Room API:
|
|
||||||
|
|
||||||
* include the SDK module to its dependencies list
|
|
||||||
* create one of the two `RoomManager` types as a singleton instance by
|
|
||||||
providing implementations for the following interfaces:
|
|
||||||
* `RoomEventHandler`
|
|
||||||
* `KurentoClientProvider`
|
|
||||||
* develop the client-side of the application for devices that support WebRTC
|
|
||||||
(*hint:* or use our *client-js* library and take a look at the demo's client
|
|
||||||
implementation)
|
|
||||||
* design a room signaling protocol that will be used between the clients and
|
|
||||||
the server (*hint:* or use the WebSockets API from `kurento-room-server`)
|
|
||||||
* implement a handler for clients' requests on the server-side, that will
|
|
||||||
use the `RoomManager` to process these requests (*hint:* JSON-RPC handler
|
|
||||||
from `kurento-room-server`)
|
|
||||||
* choose a response and notification mechanism for the communication with the
|
|
||||||
clients (*hint:* JSON-RPC notification service from `kurento-room-server`)
|
|
||||||
|
|
||||||
About the technology stacks that can or should be used to implement a Rooms
|
|
||||||
application:
|
|
||||||
|
|
||||||
* WebSockets for the communications between the server and the clients
|
|
||||||
* Spring and Spring Boot for the easy configuration and integration with some
|
|
||||||
of Kurento's modules. It also provides a WebSockets library.
|
|
||||||
|
|
||||||
And of course, the main requirement is at least one installation of the Kurento
|
|
||||||
Media Server, accessible to the room application.
|
|
||||||
|
|
||||||
Running the demo
|
|
||||||
----------------
|
|
||||||
|
|
||||||
For a quick initial contact with the framework, we recommend running the demo
|
|
||||||
application and observing the exchange of Websocket messages between the clients
|
|
||||||
and the server.
|
|
||||||
|
|
||||||
Currently, the demo is only supported for Ubuntu 14.04 LTS 64bits.
|
|
||||||
|
|
||||||
After cloning the tutorial, it can be executed directly from the terminal by
|
|
||||||
using Maven's `exec` plugin. To make sure the demo's
|
|
||||||
build and execution works smoothly, a stable release (or tag) is checked out
|
|
||||||
before proceeding with the build (prevents missing dependencies, given that in
|
|
||||||
Kurento *master* is the development branch):
|
|
||||||
|
|
||||||
```
|
|
||||||
$ git clone git@github.com:Kurento/kurento-room.git
|
|
||||||
$ cd kurento-room
|
|
||||||
$ git checkout 6.1.0
|
|
||||||
$ cd kurento-room-demo
|
|
||||||
$ mvn compile exec:java
|
|
||||||
```
|
|
||||||
|
|
||||||
Now open the following URL in a WebRTC-compatible browser and connect to a new
|
|
||||||
room by providing the desired user and room names:
|
|
||||||
|
|
||||||
```
|
|
||||||
http://localhost:8080
|
|
||||||
```
|
|
||||||
|
|
||||||
Configuring the demo
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
There are a couple of interesting options or properties that might have to be
|
|
||||||
modified for the demo to function properly.
|
|
||||||
|
|
||||||
The properties file, **kroomdemo.conf.json**, used in the demo's execution as
|
|
||||||
described above, is located in the folder `src/main/resources` and its
|
|
||||||
contents are the following:
|
|
||||||
|
|
||||||
{
|
|
||||||
"kms": {
|
|
||||||
"uris": ["ws://localhost:8888/kurento","ws://127.0.0.1:8888/kurento"]
|
|
||||||
},
|
|
||||||
"app": {
|
|
||||||
"uri": "http://localhost:8080/"
|
|
||||||
},
|
|
||||||
"kurento": {
|
|
||||||
"client": {
|
|
||||||
//milliseconds
|
|
||||||
"requestTimeout": 20000
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"demo": {
|
|
||||||
//mario-wings.png or wizard.png
|
|
||||||
"hatUrl": "mario-wings.png"
|
|
||||||
"hatCoords": {
|
|
||||||
// mario-wings hat
|
|
||||||
"offsetXPercent": -0.35F,
|
|
||||||
"offsetYPercent": -1.2F,
|
|
||||||
"widthPercent": 1.6F,
|
|
||||||
"heightPercent": 1.6F
|
|
||||||
|
|
||||||
//wizard hat
|
|
||||||
//"offsetXPercent": -0.2F,
|
|
||||||
//"offsetYPercent": -1.35F,
|
|
||||||
//"widthPercent": 1.5F,
|
|
||||||
//"heightPercent": 1.5F
|
|
||||||
},
|
|
||||||
"loopback" : {
|
|
||||||
"remote": false,
|
|
||||||
//matters only when remote is true
|
|
||||||
"andLocal": false
|
|
||||||
},
|
|
||||||
"authRegex": ".*",
|
|
||||||
"kmsLimit": 10
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
These properties can be overwritten on the command-line when starting
|
|
||||||
the demo server:
|
|
||||||
|
|
||||||
```
|
|
||||||
$ mvn compile exec:java -Dkms.uris=[\"ws://192.168.1.99:9001/kurento\"]
|
|
||||||
```
|
|
||||||
|
|
||||||
In this example, we've instructed the demo to use a different URI of a running
|
|
||||||
KMS instance when creating the `KurentoClient` required by the Room API.
|
|
||||||
|
|
||||||
More details on the demo's configuration and execution can be found in the demo's
|
|
||||||
[README page](./kurento-room-demo/README.md) or in the Room API
|
|
||||||
[documentation](./kurento-room-doc/README.md) .
|
|
||||||
|
|
||||||
What is Kurento
|
|
||||||
---------------
|
|
||||||
|
|
||||||
Kurento is an open source software project providing a platform suitable
|
|
||||||
for creating modular applications with advanced real-time communication
|
|
||||||
capabilities. For knowing more about Kurento, please visit the Kurento
|
|
||||||
project website: http://www.kurento.org.
|
|
||||||
|
|
||||||
Kurento is part of [FIWARE]. For further information on the relationship of
|
|
||||||
FIWARE and Kurento check the [Kurento FIWARE Catalog Entry]
|
|
||||||
|
|
||||||
Kurento is part of the [NUBOMEDIA] research initiative.
|
|
||||||
|
|
||||||
Documentation
|
|
||||||
-------------
|
|
||||||
|
|
||||||
The Kurento project provides detailed [documentation] including tutorials,
|
|
||||||
installation and development guides. A simplified version of the documentation
|
|
||||||
can be found on [readthedocs.org]. The [Open API specification] a.k.a. Kurento
|
|
||||||
Protocol is also available on [apiary.io].
|
|
||||||
|
|
||||||
Source
|
|
||||||
------
|
|
||||||
|
|
||||||
Code for other Kurento projects can be found in the [GitHub Kurento Group].
|
|
||||||
|
|
||||||
News and Website
|
|
||||||
----------------
|
|
||||||
|
|
||||||
Check the [Kurento blog]
|
|
||||||
Follow us on Twitter @[kurentoms].
|
|
||||||
|
|
||||||
Issue tracker
|
|
||||||
-------------
|
|
||||||
|
|
||||||
Issues and bug reports should be posted to the [GitHub Kurento bugtracker]
|
|
||||||
|
|
||||||
Licensing and distribution
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
Software associated to Kurento is provided as open source under GNU Library or
|
|
||||||
"Lesser" General Public License, version 2.1 (LGPL-2.1). Please check the
|
|
||||||
specific terms and conditions linked to this open source license at
|
|
||||||
http://opensource.org/licenses/LGPL-2.1. Please note that software derived as a
|
|
||||||
result of modifying the source code of Kurento software in order to fix a bug
|
|
||||||
or incorporate enhancements is considered a derivative work of the product.
|
|
||||||
Software that merely uses or aggregates (i.e. links to) an otherwise unmodified
|
|
||||||
version of existing software is not considered a derivative work.
|
|
||||||
|
|
||||||
Contribution policy
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
You can contribute to the Kurento community through bug-reports, bug-fixes, new
|
|
||||||
code or new documentation. For contributing to the Kurento community, drop a
|
|
||||||
post to the [Kurento Public Mailing List] providing full information about your
|
|
||||||
contribution and its value. In your contributions, you must comply with the
|
|
||||||
following guidelines
|
|
||||||
|
|
||||||
* You must specify the specific contents of your contribution either through a
|
|
||||||
detailed bug description, through a pull-request or through a patch.
|
|
||||||
* You must specify the licensing restrictions of the code you contribute.
|
|
||||||
* For newly created code to be incorporated in the Kurento code-base, you must
|
|
||||||
accept Kurento to own the code copyright, so that its open source nature is
|
|
||||||
guaranteed.
|
|
||||||
* You must justify appropriately the need and value of your contribution. The
|
|
||||||
Kurento project has no obligations in relation to accepting contributions
|
|
||||||
from third parties.
|
|
||||||
* The Kurento project leaders have the right of asking for further
|
|
||||||
explanations, tests or validations of any code contributed to the community
|
|
||||||
before it being incorporated into the Kurento code-base. You must be ready to
|
|
||||||
addressing all these kind of concerns before having your code approved.
|
|
||||||
|
|
||||||
Support
|
|
||||||
-------
|
|
||||||
|
|
||||||
The Kurento project provides community support through the [Kurento Public
|
|
||||||
Mailing List] and through [StackOverflow] using the tags *kurento* and
|
|
||||||
*fiware-kurento*.
|
|
||||||
|
|
||||||
Before asking for support, please read first the [Kurento Netiquette Guidelines]
|
|
||||||
|
|
||||||
[documentation]: http://www.kurento.org/documentation
|
|
||||||
[FIWARE]: http://www.fiware.org
|
|
||||||
[GitHub Kurento bugtracker]: https://github.com/Kurento/bugtracker/issues
|
|
||||||
[GitHub Kurento Group]: https://github.com/kurento
|
|
||||||
[kurentoms]: http://twitter.com/kurentoms
|
|
||||||
[Kurento]: http://kurento.org
|
|
||||||
[Kurento Blog]: http://www.kurento.org/blog
|
|
||||||
[Kurento FIWARE Catalog Entry]: http://catalogue.fiware.org/enablers/stream-oriented-kurento
|
|
||||||
[Kurento Netiquette Guidelines]: http://www.kurento.org/blog/kurento-netiquette-guidelines
|
|
||||||
[Kurento Public Mailing list]: https://groups.google.com/forum/#!forum/kurento
|
|
||||||
[KurentoImage]: https://secure.gravatar.com/avatar/21a2a12c56b2a91c8918d5779f1778bf?s=120
|
|
||||||
[LGPL v2.1 License]: http://www.gnu.org/licenses/lgpl-2.1.html
|
|
||||||
[NUBOMEDIA]: http://www.nubomedia.eu
|
|
||||||
[StackOverflow]: http://stackoverflow.com/search?q=kurento
|
|
||||||
[Read-the-docs]: http://read-the-docs.readthedocs.org/
|
|
||||||
[readthedocs.org]: http://kurento.readthedocs.org/
|
|
||||||
[Open API specification]: http://kurento.github.io/doc-kurento/
|
|
||||||
[apiary.io]: http://docs.streamoriented.apiary.io/
|
|
||||||
|
|
Loading…
Reference in New Issue