Update README to a minimal description

- Remove KurentoRoom references
- Update license to Apache License v2
- Remove implementation details
pull/1/head
Micael Gallego 2016-10-11 10:07:07 +02:00
parent 103377996a
commit 482b275136
1 changed files with 7 additions and 254 deletions

261
README.md
View File

@ -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` - Kurentos 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/