Fork me on GitHub

Licode's Blog 

Here we will keep you informed about last news, events, and other stuff related to Lynckia, Licode and WebRTC.

We’re happy to announce we’re moving our forum to http://discourse.lynckia.com Using Google Groups as a mailing list is no longer working for us. While it has served us well in the years we’ve been here, we feel we have outlived it’s utility for us and we’re ready to move the discussion to greener (and newer) pastures.

Discourse provides a better way to engage in discussions and also its is ready to serve as a knowledge repository for Licode, something we’re lacking and want to correct. On top of all that, it’s an open source project and we love open source...

Read more ...

Till now, Licode configuration file allows only to configure a single Stun server and a single Turn server. We have just published an update that allows you to introduce multiple Ice servers. The new configuration parameter iceServers is an array in wich you can set several servers independently of the type:

Use undefined to run clients without Ice Servers

Stun servers format { "url": url } Turn servers format { "username": username, "credential": password, 

Read more ...

As you know Licode is designed to be deployed in private or public clouds taking advantage of the scalability capabilities of this type of environments. One of the scalability levels that Licode offers is the possibility of having more than one Erizo Controller conected to the same Nuve. Thus, in the same service you can have different Erizo Controllers managing different rooms. When a user connects to a new Room, Nuve decides to which Erizo Controller assign the room depending on different conditions.

The component that takes that decision is called Cloud Handler and until know it took the decision...

Read more ...

We have just updated the master branch with the changes in trickle_ice. The most obvious new feature is the support of Trickle Ice. It will make the delay until you start receiving or sending media via Licode a lot smaller.

However, this has a drawback, this new implementation modifies the protocol used to communicate erizoController with erizoClients.

Basically, if you modified erizoClient, erizoJSController or erizoController you will find you have to work a little to merge the new changes, we promise it is worth it :)

As always, we created a new [release/tag] (https://github.com/ging/licode/releases/tag/v1.1.0) to the previous version so...

Read more ...

This is an update of the previous post about roles management in Licode.

We have changed the format in which roles are defined in Licode’s installation. The new format is:

config.roles = {
  "teacher": {"publish": true, "subscribe": true, "record": true},
  "student": {"subscribe": true}
};

We can edit the roles in the configuration file that we can find at licode/licode_config.js once installed.

Read more ...

We have finally made the switch from the async_events branch to master. This branch includes a host of new features that make Licode more potent, configurable, scalable and stable than ever!

Here we will discuss the new distributed MCU architecture. As you know, erizo was a single process started with erizoController, the whole MCU is a single process. From now on, each publisher in Licode will have its own process in the Licode server.

What once was the erizoController process has been divided into three components. These new modules follow the same design philosophy we use in all Licode, they...

Read more ...

In this post we will explain in detail how to configure our custom roles in our Licode’s service.

Erizo Controller now supports the definition of role as a set of permissions, and these permissions are already predefined in this component. A permission allows a user to perform an action on a resource. Below you can find a list of the current permissions:

As you know, some days ago Chrome has updated the screensharing feature in WebRTC. Now you need to add a Chrome extension in order to share your desktop. Of course, Licode is totally compatible with the new feature and from Lynckia team we have uploaded our own extension to Google Web Store in order to support it.

Thanks to the extension now you can select the screen or the window that you are going to share.

You can download the extension here and test it in our screen sharing rooms at Licode’s demo portal.

Enjoy it!

Read more ...

We are always looking for ways to improve the productivity when it comes to developing, deploying and testing Licode. As a project with several library dependencies, 2-3 programming languages, etc. setting up a new machine for development can be daunting at times, even with our super-easy installation scripts.

Furthermore, testing in different network configurations (behind NAT, firewall, with remote erizos…) can be quite time consuming. We have found the solution to these problems with Vagrant

Vagrant is a very powerful tool to easily create, configure and port work environments. It uses virtualization and advanced provisioning tools such as Chef...

Read more ...

This week we have uploaded our demos portal with new types of applications of Licode. We have videoconference, audioconference and screen sharing demos. Furthermore, some of them are in peer-to-peer configuration.

You can try them as always at Licode’s demos portal

And, of course, we are going to add new demos very soon!

Best regards and enjoy Licode.

Read more ...

Last week we took Licode a step further by incorporating in the main branch many of the repository several features that have been in the works in the last few months.

Here are some highlights:

As well as a bunch of bugfixes!

We encourage all of you to switch to this branch and keep helping Licode with your feedback and opinions. We have already posted here regarding the TURN server support feature and we will keep posting more information about the others in the next few weeks...

Read more ...

In the latest version of Chrome Turn support in PeerConnection objects is enabled. So from today we have included this feature in Licode.

You can use it including the Turn Server configuration in licode-config file:

config.erizoController.turnServer = {}; config.erizoController.turnServer.url = "turn:myTurnServerHost:443?transport=tcp"; config.erizoController.turnServer.username = "username"; config.erizoController.turnServer.password = "pass"; 

This way all clients connected to Licode will include that Turn server in their PeerConnection configuration. We have made some test with rfc5766-turn-server and the results are really cool. You can start testing and tell us your impressions.

Thanks to Turn servers relay, Firefox compatibility and Chrome mobile...

Read more ...

We have developed a very cool feature in Licode. Now you can use peer – to – peer rooms in your services. That means that you can communicate your users directly between their browsers without passing through the MCU server (only for signalling). And this is very useful in applications with a low number of users in which you want to save server side resources.

An initial version is implemented in Licode’s “cleanup” branch (by the moment it only works between peers using the same browser, we are developing the interoperability Chrome - Firefox). And use it is very easy!...

Read more ...

Today we’ve finished the main tasks of making Licode compatible with Firefox.

Now users can access Licode rooms from stable versions of Chrome and Firefox. If you’re developing a solution with Licode and can’t wait to try this new functionality you have to pull the code from the “cleanup” branch.

There is still work to be done. For example, feedback compatibility and overall stabilization. So, please, don’t install it if you’re already providing a service using Licode.

As part of this work we’ve also switched the security mechanism from SDES to DTLS, and we’re making a partial refactorization of the...

Read more ...

We are very happy to announce that today we have processed the membership request of the 100th developer in Licode community.

Since November 2012, when we started with the community, we have more than 55 discussions with about 4 messages per day. Moreover, Licode GitHub repository has 94 stars, 27 forks, 503 commits, 8 branches and every day developers are more interested in contribute to our code.

All these numbers are the evidence of Licode is becoming a bigger and richer project every day. Thanks to all of you, your interest, testing and hard work Licode is a reference in...

Read more ...

We have just implemented a new very interesting functionality in Licode. From today you can include in your Licode applications the feature of share any client screen using the GetUserMedia API of WebRTC.

This is very easy. To allow it in a Stream you only need to create it this way:

var stream = Erizo.Stream({screen: true, data: true, attributes: {name:’myStream’}});

And then publish it in a room in the traditional way. Instructions in Client API.

We think this is a very useful feature and, in the tests that we have made, its performance its very amazing. We are also...

Read more ...

Regarding the new name of our project Licode today we have made the last change. It consists of update the name of our github repository. The new path is Licode GitHub.

GitHub redirects automatically your project to the new one. So if you have already cloned it you only need to make a pull in order to update the changes (we have made some changes in scripts names and so on).

In advance you should clone the repository from the new path. We have updated the instructions in installing Licode.

Thank you very much and enjoy...

Read more ...

Last Friday Lynckia team have won with Licode the seventh Open Source University Challenge CUSL.

In this edition have been participated more than 80 Open Source projects developed by the Spain University community. Licode has been specially valued because its increasing community and its ambitious development.

We want to thank the whole community because the effort, the testing and the contributions. This prize is also yours.

Lynckia CUSL

Read more ...

Today we announce that our Open Source project Lynckia now is called Licode. But don’t worry! Nothing is different in Licode. We are working hard on new features and with your help, and all the community Licode is becoming more and more amazing every day.

You can find some information about our development group at Lynckia and all the resources and documentation of Licode at Licode.

Thank you very much. And enjoy Licode.

Read more ...

Great news everyone!

Licode is now officially working with the last version of Chrome Beta on Android. That means all your applications using Licode are now going mobile.

To enable WebRTC on Chrome Dev for Android:

  1. Type in “chrome://flags” in the omnibox to access the flags
  2. Scroll about a third down and enable the “Enable WebRTC” flag
  3. You will be asked to relaunch the browser at the bottom of the page in order for the flag to take effect.

Now you can open your Licode application url (or our [test page] (http://chotis2.dit.upm.es) ) and that’s it :)

Keep...

Read more ...

Today we announce that now you can access to nuve API from your ruby server applications. Thanks to the nuve library developed in ruby now Licode is able to run with the three most popular server side languages: node.js, python and ruby.

You can find the library in our github repository (https://github.com/ging/licode/tree/master/nuve/nuveClient_ruby) and use it following the same API that in the rest of languages (http://lynckia.com/licode/server-api.html). You can feedback your impressions or problems in our mail list. Enjoy it!

Read more ...

One of the most important problems to be faced when working with real time communications is how to react to varying network conditions. Even if a bandwidth and general quality is agreed during the signalling or negotiation phase, any change in one of the participants’ connection will degrade the communication. There are many studies and implemented mechanisms to help solve this problem. These solutions are heavily dependant on the protocols and technologies used in each application

Licode lives in the WebRTC world and has to communicate with the current implementations, being Google Chrome the most important today. Chrome has...

Read more ...

Some weeks ago we had a very cool idea. We were talking about the posibility of running an erizo client in a node.js application and connect it to a Licode session. With this feature you can include in your Licode rooms streams from a client that not necessarily runs in a browser. It may be of interest, for example, for doing some operations with the streams like processing or synchronization.

Today it is posible with erizofc, a node module that you can include in your node application to run erizo clients with the same API used in browsers. You can...

Read more ...

Intro

We’ve been working on developing tests for checking WebRTC connections in Licode and Google Chrome (stable and unstable versions). We started using Travis for the server tests some weeks ago, but at this time, we wanted to go beyond simple tests of Nuve and basic room’s functionality.

Our idea is to test publishng, subscribing and further features of our client library in Chrome and in future versions of Firefox. During these tests we need to automatically start Chrome, accept the browser’s GetUserMedia request, and to send a fake video stream to check whether streams are sent or not.

...

Read more ...

Lately, we’ve been changing the LookAndFeel of Licode’s Web Site. Now we can introduce the brand new Blog!!

Here we’ll talk about news related to Licode and other WebRTC stuff, like demos, examples, screencasts, and so on.

Read more ...