OpenVidu 2.13 released

Hello OpenViders,

In behalf of the OpenVidu team, I am glad to announce the new 2.13 version of OpenVidu Platform.

The main topic of this release is “Dockerization” of production deployment. Until now, AWS deployment was pretty much automated, be installation on premises was a manual process for CE and a complex process for PRO (based on ansible). From 2.13 version, OpenVidu Platform is deployed with docker containers. This provides several advantages:

  • Any linux distribution: Until now, installation was restricted to Ubuntu due to Kurento Media Server requirements. Now OpenVidu can be installed in any modern linux distribution.
  • Easier to install: A basic script downloads docker-compose.yml and other additional files. The first time OpenVidu is executed, needed docker images are downloaded.
  • Easier to use: As we include by default OpenVidu Call app in any OpenVidu installation. Of couse, it can be disabled or replaced with your own application (dockerized or not).
  • Easier to update: Just update docker-compose.yml file and new services versions will be downloaded automatically.
  • Easier to configure: As we have used .env file as the main configuration file of OpenVidu platform.

You can find more information about the new release in the announcement post in Medium.

The recommended way to update from 2.12 version or older is to reinstall the platform from scratch. In that way, services installed on the host doesn’t interfere with dockerized services. Remember to backup existing data: configuration, recordings and ElasticSearch indexes (if you are using OpenVidu PRO) and restore it in the appropriate new folders.

Happy videoconferencing!

2 Likes

Hello!

I have the PRO version with aws, I want to know. how can I upgrade to the latest version, currently I have the 2.12.0 version. I have tried to make an update in the Stark of cloud formation but I don’t have the option to change the version.

Greetings

The easier way will be without any doubt launching a new stack from scratch.
If you don’t have any data you want to keep, then just drop your stack and follow new 2.13.0 deployment on AWS instructions to have it running in just a few minutes.

If you have recorded files and historical Elasticsearch/Kibana data you want to bring to your new deployment, then you will have to make a backup of them and copy them on the new deployment once it is donde. Recorded files is pretty straightforward: you copy the entire recording folder as it is, and put it in the new deployment at the required path. Elasticsearch data will be a little more tricky. We are currently doing some tests to try providing a step-by-step guide on how to migrate the ES data to 2.13.0 from previous versions.

Stay tuned!

There you go: https://openvidu.discourse.group/t/migration-guide-from-openvidu-pro-2-12-0-to-2-13-0

Hola Pablo, he montado otro stack nuevo con la versión nueva, he puesto el mismo número de licencia, cuando tenga este funcionando borraré el otro, pero ahora me encuentro con un error en el recording, no se activa y me da el siguiente error:

Blockquote

ERROR: unknown URL https://fxxxxxxxxx/inspector/accept-certificate
OpenVidu Server does not have path /inspector/accept-certificate mapped
If you are seeing this message as a result of COMPOSED recording, the problem is most likely an issue with the recording URL.
Current recording URL is https://fxxxxxxx/inspector/accept-certificate
The recording service cannot access the recording layout through this URL.
Use OpenVidu configuration property OPENVIDU_RECORDING_COMPOSED_URL to provide a valid URL for the recording service to connect to.

Un saludo

te adjunto también el fichero .env

OpenVidu configuration

----------------------

Documentation: https://docs.openvidu.io/en/stable/reference-docs/openvidu-config/

NOTE: This file doesn’t need to quote assignment values, like most shells do.

All values are stored as-is, even if they contain spaces, so don’t quote them.

Domain name. If you do not have one, the public IP of the machine.

For example: 198.51.100.1, or openvidu.example.com

OPENVIDU_DOMAIN_OR_PUBLIC_IP=frikivideo.cecotec.es

OpenVidu PRO License

OPENVIDU_PRO_LICENSE=98b439f6-010e-xxxx-b3eb-xxxxxxxxxx

OpenVidu SECRET used for apps to connect to OpenVidu server and users to access to OpenVidu Dashboard

OPENVIDU_SECRET=xxxxxx

Certificate type:

- selfsigned: Self signed certificate. Not recommended for production use.

Users will see an ERROR when connected to web page.

- owncert: Valid certificate purchased in a Internet services company.

Please put the certificates files inside folder ./owncert

with names certificate.key and certificate.cert

- letsencrypt: Generate a new certificate using letsencrypt. Please set the

required contact email for Let’s Encrypt in LETSENCRYPT_EMAIL

variable.

CERTIFICATE_TYPE=letsencrypt

If CERTIFICATE_TYPE=letsencrypt, you need to configure a valid email for notifications

LETSENCRYPT_EMAIL=xxxxx

Mode of cluster management. Can be auto (OpenVidu manages Media Nodes on its own.

Parameter KMS_URIS is ignored) or manual (user must manage Media Nodes. Parameter

KMS_URIS is used: if any uri is provided it must be valid)

OPENVIDU_PRO_CLUSTER_MODE=auto

Which environment are you using

Possibles values: aws, on_premise

OPENVIDU_PRO_CLUSTER_ENVIRONMENT=aws

The desired number of Media Nodes on startup. First the autodiscovery process is performed.

If there are too many Media Nodes after that, they will be dropped until this number is reached.

If there are not enough, more will be launched.

This only takes place if OPENVIDU_PRO_CLUSTER_MODE is set to auto

If set to zero no media servers will be lauched.

Type: number >= 0

OPENVIDU_PRO_CLUSTER_MEDIA_NODES=3

What parameter should be used to distribute the creation of new sessions

(and therefore distribution of load) among all available Media Nodes

OPENVIDU_PRO_CLUSTER_LOAD_STRATEGY=streams

Whether to enable recording module or not

OPENVIDU_RECORDING=false

Openvidu Folder Record used for save the openvidu recording videos. Change it

with the folder you want to use from your host.

OPENVIDU_RECORDING_PATH=/opt/openvidu/recordings

System path where OpenVidu Server should look for custom recording layouts

OPENVIDU_RECORDING_CUSTOM_LAYOUT=/opt/openvidu/custom-layout

if true any client can connect to

https://OPENVIDU_SERVER_IP:OPENVIDU_PORT/recordings/any_session_file.mp4

and access any recorded video file. If false this path will be secured with

OPENVIDU_SECRET param just as OpenVidu Server dashboard at

https://OPENVIDU_SERVER_IP:OPENVIDU_PORT

Values: true | false

OPENVIDU_RECORDING_PUBLIC_ACCESS=false

Which users should receive the recording events in the client side

(recordingStarted, recordingStopped). Can be all (every user connected to

the session), publisher_moderator (users with role ‘PUBLISHER’ or

‘MODERATOR’), moderator (only users with role ‘MODERATOR’) or none

(no user will receive these events)

OPENVIDU_RECORDING_NOTIFICATION=publisher_moderator

Timeout in seconds for recordings to automatically stop (and the session involved to be closed)

when conditions are met: a session recording is started but no user is publishing to it or a session

is being recorded and last user disconnects. If a user publishes within the timeout in either case,

the automatic stop of the recording is cancelled

0 means no timeout

OPENVIDU_RECORDING_AUTOSTOP_TIMEOUT=120

Maximum video bandwidth sent from clients to OpenVidu Server, in kbps.

0 means unconstrained

OPENVIDU_STREAMS_VIDEO_MAX_RECV_BANDWIDTH=1000

Minimum video bandwidth sent from clients to OpenVidu Server, in kbps.

0 means unconstrained

OPENVIDU_STREAMS_VIDEO_MIN_RECV_BANDWIDTH=300

Maximum video bandwidth sent from OpenVidu Server to clients, in kbps.

0 means unconstrained

OPENVIDU_STREAMS_VIDEO_MAX_SEND_BANDWIDTH=1000

Minimum video bandwidth sent from OpenVidu Server to clients, in kbps.

0 means unconstrained

OPENVIDU_STREAMS_VIDEO_MIN_SEND_BANDWIDTH=300

true to enable OpenVidu Webhook service. false’ otherwise

Values: true | false

OPENVIDU_WEBHOOK=false

HTTP endpoint where OpenVidu Server will send Webhook HTTP POST messages

Must be a valid URL: http(s)://ENDPOINT

#OPENVIDU_WEBHOOK_ENDPOINT=

List of headers that OpenVidu Webhook service will attach to HTTP POST messages

#OPENVIDU_WEBHOOK_HEADERS=

List of events that will be sent by OpenVidu Webhook service

Leave blank if all events.

OPENVIDU_WEBHOOK_EVENTS=[sessionCreated,sessionDestroyed,participantJoined,participantLeft,webrtcConnectionCreated,webrtcConnectionDestroyed,recordingStatusChanged,filterEventDispatched,mediaNodeStatusChanged]

How often the garbage collector of non active sessions runs.

This helps cleaning up sessions that have been initialized through

REST API (and maybe tokens have been created for them) but have had no users connected.

Default to 900s (15 mins). 0 to disable non active sessions garbage collector

OPENVIDU_SESSIONS_GARBAGE_INTERVAL=900

Minimum time in seconds that a non active session must have been in existence

for the garbage collector of non active sessions to remove it. Default to 3600s (1 hour).

If non active sessions garbage collector is disabled

(property ‘OPENVIDU_SESSIONS_GARBAGE_INTERVAL’ to 0) this property is ignored

OPENVIDU_SESSIONS_GARBAGE_THRESHOLD=3600

Call Detail Record enabled

Whether to enable Call Detail Record or not

Values: true | false

OPENVIDU_CDR=false

Path where the cdr log files are hosted

OPENVIDU_CDR_PATH=/opt/openvidu/cdr

Kurento Media Server image

--------------------------

Docker hub kurento media server: https://hub.docker.com/r/kurento/kurento-media-server-dev

Uncomment the next line and define this variable with KMS image that you want use

KMS_IMAGE=kurento/kurento-media-server-dev:6.13

Kurento Media Server Level logs

-------------------------------

Uncomment the next line and define this variable to change

the verbosity level of the logs of KMS

Documentation: https://doc-kurento.readthedocs.io/en/stable/features/logging.html

KMS_DEBUG_LEVEL=3,Kurento*:4,kms*:4,sdp*:4,webrtc*:4,rtpendpoint:4,rtphandler:4,rtpsynchronizer:4,agnosticbin:4

Openvidu Server Level logs

--------------------------

Uncomment the next line and define this variable to change

the verbosity level of the logs of Openvidu Service

RECOMENDED VALUES: INFO for normal logs DEBUG for more verbose logs

OV_CE_DEBUG_LEVEL=INFO

Java Options

--------------------------

Uncomment the next line and define this to add options to java command

Documentation: https://docs.oracle.com/cd/E37116_01/install.111210/e23737/configuring_jvm.htm#OUDIG00058

JAVA_OPTIONS=-Xms2048m -Xmx4096m

Kibana And ElasticSearch Configuration

--------------------------

Kibana dashboard configuration (Credentials)

KIBANA_USER=xxxx
KIBANA_PASSWORD=xxxx

Cloudformation configuration

--------------------------

If you’re working outside AWS ignore this section

AWS_DEFAULT_REGION=eu-west-2
AWS_IMAGE_ID=ami-0d06b4674583e265a
AWS_INSTANCE_TYPE=c5.xlarge
AWS_KEY_NAME=dani-londres
AWS_SUBNET_ID=subnet-07b1727d
AWS_SECURITY_GROUP=sg-0ca770ee68061cc09
AWS_STACK_ID=arn:aws:cloudformation:eu-west-2:952964753381:stack/frikivideo/a57081b0-8870-11ea-9f96-02317fefc7aa
AWS_STACK_NAME=xxxxx

Please open a new thread with the title identifying your problem.

Also, write in english.

Regards

Hi, can the pro version support 1 million people in a livestream at the same time?
If no can we scale it to support unlimited people?

OpenVidu doesn’t support unlimited number of subscribers

what if we scale it up on our own?

And what is the max users you’ve had on a conference call?

It depends on multiple factors. You can obtain 250 viewers in a 4CPU machine. But it the network conditions are bad for some users, the rest of the users can be affected. This is how basic WebRTC works.

WebRTC is not designed for scalability. It is possible to implement advanced features in the server side to allow it. For example https://millicast.com/ service implement such features.

We plan to add some of those features to improve scalability if OpenVidu in the future, but they are not implemented right now.

Best regards