2.5 KiB
Video server
Generating certificates
To generate SSL certificates you must:
- Go to
/server/ssl
- Execute
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
Development
To start in development mode you must:
-
Install the dependencies
npm install
. -
Go to the linx-devops project and run the
create_certificate_for_domain.sh
script fromprivate-system-trusted-cert
, it expects an ip/domain as the first argument. ex:sh create_certificate_for_domain.sh 192.168.1.199
(Use your private IP-address) -
You need to update the Video Server in the provisioning to point to your private IP. ex: https://192.168.1.199:3000
-
The generated files must be moved to server/ssl and renamed as follows:
- device.key -> key.pem
- nginx-selfsigned.crt -> cert.pem
-
Go to https://dev.linx.safemobile.com/dispatcher/resources/help/LINXHelp.html#safemobile-certificate-import and import the certificate for your system type
-
The ANNOUNCED IP in .env must be configured to use the same private IP used in generating the certificate.
-
Run the
npm start:dev
command to start the server in dev mode. (Any change will trigger a refresh of the server)
Production
To start in production mode you must:
- Install the dependencies
npm install
. - Run the
npm start:prod
command to start the server in production mode. (To connect to the terminal, usepm2 log video-server
)
Web client
- The server will start by default on port 3000, and the ssl certificates will have to be configured
- The web client can be accessed using the /sfu path ex: https://HOST/sfu/?assetId=1&&accountId=1&producer=true&dest_asset_id=75&assetName=Adi assetId = asset id of the unit on which you are doing the test accountId = account id of the unit on which you are doing the test producer = it will always be true because you are the producer (it's possible to put false, but then you have to have another client with producer true) assetName = asset name of the unit on which you are doing the test dest_asset_id= the addressee with whom the call is made
- To make a call using this client, you need a microphone and permission to use it
- For any changes related to the client, the command `npm run watch' will have to be used to generate the bundle.js used by the web client
Demo project
The demo project used initially and then modified for our needs https://github.com/jamalag/mediasoup2