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
|
||||
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/
|
||||
OpenVidu was forked from [KurentoRoom project](https://github.com/Kurento/kurento-room).
|
||||
|
|
Loading…
Reference in New Issue