openvidu-call 🔗

Check it on GitHub

OpenVidu Call is the flagship videoconference app integrating many of the capabilities offered by OpenVidu platform. It brings a great number of essential features: screensharing, chat service, intelligent layout, speech detection, switch cameras, and so on. Visit its presentation page for more information. OpenVidu Call is installed by default when you deploy OpenVidu.

OpenVidu Call frontend is built with Angular and its backend is built with Node using ExpressJS.

Understanding code structure 🔗

Get and execute the code 🔗

1) Clone the repo:

git clone
cd openvidu-call

2) You will need Node and NPM to run the app. You can install them in Linux with the following commands:

sudo apt-get update
sudo curl -sL | sudo bash -
sudo apt-get install -y nodejs

Please visit to install it on other platforms.

3) Execute OpenVidu:

If you are using Docker Toolbox on Windows, read this FAQ to properly execute OpenVidu development container and how to adapt these instructions.

OpenVidu platform must be up and running. The easiest way is running this OpenVidu development container (you will need Docker CE):

# WARNING: this container is not suitable for production deployments of OpenVidu Platform
# Visit

docker run -p 4443:4443 --rm -e OPENVIDU_SECRET=MY_SECRET openvidu/openvidu-server-kms:2.20.0

4) Install dependencies of OpenVidu Call backend (Node):

npm install --prefix openvidu-call-back

5) Start OpenVidu Call backend. To configure this command you can check the section below.

npm run start --prefix openvidu-call-back

6) Install dependencies of OpenVidu Call frontend (Angular). Open another terminal to run the following command:

npm install --prefix openvidu-call-front

7) Finally, serve OpenVidu Call frontend

cd openvidu-call-front
npx ng serve --open

To learn some tips to develop with OpenVidu, check this FAQ

Configuration parameters for OpenVidu Call 🔗

Parameter Description Default value
SERVER_PORT Port where http server will be listen 5000
OPENVIDU_URL URL where connect to OpenVidu platform http://localhost:4443
OPENVIDU_SECRET Secret for the OpenVidu platform MY_SECRET

This configuration parameters can be set as environment variables. For example, to execute the application against an OpenVidu platform deployed for production you should use the command:

$ npx cross-env OPENVIDU_URL= OPENVIDU_SECRET=PASSWORD nodemon src/app.ts

How to build OpenVidu Call 🔗

Docker image 🔗

OpenVidu Call container is designed to be served next to an OpenVidu deployment. To allow the use of this image out of an OpenVidu deployment, you have two options:
  1. Handle the NGINX certificates with a proxy
  2. To edit OpenVidu Call image including the certificate

Building a Docker image of OpenVidu call is really easy.

1) Under openvidu-call directory, execute:

docker build -f docker/custom.dockerfile -t <your-tag-name> --build-arg BASE_HREF=<your-base-href> .

2) After that, you can run the Docker container:

docker run -p <your-port>:5000 -e OPENVIDU_URL=<your-openvidu-url> -e OPENVIDU_SECRET=<your-secret> <your-tag-name>

3) Go to http://localhost:your-port

Configuration parameters for build OpenVidu Call with Docker 🔗

Parameter Description Default value
BASE_HREF URL prefix of app path /

Packaged Node.js application 🔗

You can also build OpenVidu Call using webpack. Under openvidu-call directory:

1) Build OpenVidu Call frontend:

npm run build-prod BASE_HREF --prefix openvidu-call-front

2) Build OpenVidu Call backend:

cd openvidu-call-back
npm run build

3) You will find the app built in dist directory. You can use Node to launch it:

cd dist/
node openvidu-call-server.js