Photo by Markus Spiske on Unsplash

OpenPaaS’ Newsletter —December 2018

It’s been an impressive year for the OpenPaaS product and the team. The product matured quickly to become a friendly help for your day to day collaborative tasks. The industrialization team is working on automatic deployments and Infrastructure as Code using the famous Kubernetes orchestrator.

Feature wise, we are working on two new major features, that will be available in the first semester of 2019: “Office” documents online edition, and, what we’ll explore in this article, integrated video-conferencing.

Video-conferencing is now mainstream

We have a long story on video conferencing solutions, and are heavy users of such tools. Moreover, we get our hands dirty and created a nice web application called Hubl.in. Video-conference business is complex and asks for very specific skills. That’s why we decided, for the OpenPaaS integration, to use the mainstream and OpenSource solution Jitsi. Now let’s dig a little in the details.

Building blocks

The OpenPaaS video conference Web application relies on several blocks and technologies to provide a fully integrated solution into the OpenPaaS platform.

  1. The REST and real time (websockets) APIs are provided by an OpenPaaS back-end component aka Awesome Component. This component is deployed into OpenPaaS runtime
  2. In order to be able to interact with the OpenPaaS ‘portal’, some front-end components are provided on top of the ‘legacy’ OpenPaaS front-end framework based on AngularJS
  3. The Web application is developed using the Vue.js front-end framework
  4. The core video conference feature is provided by Jitsi

A video conference is identified by a unique identifier (id). Any OpenPaaS user can join any conference by using the right id. He can also create a new conference by setting the id of its choice. This approach allows to integrate video conference anywhere in OpenPaaS: Everything is a resource in OpenPaaS, and each resource has an identifier also. The link between video conference and resource is then easy to build.

Realtime API

The real time API is based on OpenPaaS websocket framework. This allows to create ‘video conference calls’ between users: by using the framework and legacy AngularJS components, we are easily building ‘click to call’ buttons and ‘call notifications’ directly injected into the OpenPaaS portal.

in-app call notifications

REST API

While the video conference main feature can live without storing anything in a database, the REST API provides features to share video conferences with external OpenPaaS users: a user can choose to share a current conference with some external users by generating a special link. This link is generated by calling the back-end with a REST API call, which stores information in the database so that public conferences are linked to private ones: external users can join OpenPaaS users in a conference without having to login.

Vue Web application

The Vue Web application is wrapping Jitsi application by using the jitsi API (basically an iframe with the ability to send/receive messages). It uses the OpenPaaS layout to provide an unified style and add some ‘basic’ features :

  • Login/Logout by using the OpenPaaS APIs and JWT
  • OpenPaaS user name and avatar injection
  • “Public sharing”: share a link to external users so they can join a private OpenPaaS conference
  • Jitsi instance configuration by using properties defined in the OpenPaaS administration module
  • Error handling: unreachable Jitsi instance, loading time-out, …
The OpenPaaS video conference app

OpenPaaS modules integrations

By developing a core module to integrate deeply with OpenPaaS, the video conference can also be used from others modules.

One first use is to be able to add a video conference to a calendar event: as an event creator, you can choose to link it with a video conference. Attendees will be able to use the conference link by getting it from the event, or by using the link displayed in the email invitation they received:

Add a video conference info in the meeting
Video conference in the email view of the event

This is possible by nature from the OpenPaaS dynamicity provided by OpenPaaS components: each module can inject front-end components into other modules at specific places. In the previous example, the calendar module provides anchor points which the video conference module uses to inject conference creation and display. A deeper integration is also possible by linking video conference to any OpenPaaS resource or collaboration.

Conclusion : The Social PaaS way

The video conference application validates the PaaS goal of OpenPaaS. One can develop a new application by using the technologies of his choice and then can easily integrates it in the platform to take benefit from the social features: user management, user communication, extensions, …

Keep in touch with OpenPaaS on Twitter, Facebook, GitHub, and our dedicated Forum. For LinShare, follow its Twitter account.

Interested in joining LINAGORA? We are hiring!