Meeting Rooms Configuration

Meeting Rooms configuration

Create default env file

  1. Launch the following commands that will generate the .env file:

    Warning

    Please Copy the whole code block below and Paste it in a terminal. It will (re)generate the .env file. Do not copy-paste only the .env content because it contains specific here-document syntax.

    function generatePassword() {
        openssl rand -hex 16
    }
    
    function generateEnvFile() {
    
      cat > /etc/docker/meetingrooms/.env << EOF
    # XiVO vars
    XIVOCC_TAG=2026.05
    XIVOCC_DIST=latest
    XUC_HOST=${XUC_HOST}
    MEETING_ROOMS_HOST_IP=${MEETING_ROOMS_HOST_IP}
    XIVO_HOST=${XIVO_HOST}
    #
    # XiVO Edge vars
    #
    TURN_CREDENTIALS=${TURN_CREDENTIALS}
    TURN_HOST=${TURN_HOST}
    TURN_PORT=3478
    TURNS_HOST=\${TURN_HOST}
    TURNS_PORT=${TURNS_PORT}
    #
    # JWT Configuration
    ENABLE_AUTH=1
    ENABLE_GUESTS=0
    AUTH_TYPE=jwt
    JWT_APP_ID=xivo
    JWT_APP_SECRET=${JWT_APP_SECRET}
    #
    # Security
    #
    JICOFO_AUTH_PASSWORD=${JICOFO_AUTH_PASSWORD}
    JVB_AUTH_PASSWORD=${JVB_AUTH_PASSWORD}
    JIGASI_XMPP_PASSWORD=${JIGASI_XMPP_PASSWORD}
    #
    # Basic config
    #
    CONFIG=/etc/docker/meetingrooms/jitsi/
    JVB_ADVERTISE_IPS=\${MEETING_ROOMS_HOST_IP}
    HTTP_PORT=80
    HTTPS_PORT=443
    TZ=Europe/Paris
    PUBLIC_URL=https://\${XUC_HOST}/video
    XMPP_MODULES=muc_size
    XMPP_MUC_MODULES=token_verification,token_affiliation
    ENABLE_CLOSE_PAGE=true
    ENABLE_END_CONFERENCE=false
    #
    # Basic Jigasi configuration options
    #
    JIGASI_SIP_URI=xivo-jitsi@\${XIVO_HOST}
    JIGASI_SIP_PASSWORD=${JIGASI_SIP_PASSWORD}
    JIGASI_SIP_SERVER=\${XIVO_HOST}
    JIGASI_SIP_PORT=5060
    JIGASI_SIP_TRANSPORT=UDP
    #
    # Advanced configuration options (you generally don't need to change these)
    #
    ENABLE_P2P=false
    EOF
    }
    
    ENV_FILE="/etc/docker/meetingrooms/.env"
    
    if [ -f "$ENV_FILE" ]; then
        source "$ENV_FILE"
    else
        JICOFO_AUTH_PASSWORD=$(generatePassword)
        JVB_AUTH_PASSWORD=$(generatePassword)
        JIGASI_XMPP_PASSWORD=$(generatePassword)
        JIGASI_SIP_PASSWORD=$(generatePassword)
        XIVO_HOST="<FILL IN>"
        XUC_HOST="<FILL IN>"
        MEETING_ROOMS_HOST_IP="<FILL IN>"
        TURN_HOST="<FILL IN>"
        TURNS_PORT=3478
        TURN_CREDENTIALS="<FILL IN>"
        JWT_APP_SECRET="<FILL IN>"
    fi
    
    generateEnvFile
    
  2. Then open the /etc/docker/meetingrooms/.env and fill in:

  • XUC_HOST var with the same content as the XUC_HOST var in your XiVO CC configuration

  • MEETING_ROOMS_HOST_IP var with the meeting rooms server IP address. It must be the meeting rooms server IP address accessible for your LAN client. It must be set otherwise nothing will work correctly.

  • XIVO_HOST with the VoIP IP of the XiVO PBX It will be the IP towards which the Jitsi SIP gateway will register its SIP peer.

  • JWT_APP_SECRET with the same content as the CONFIGMGT_AUTH_SECRET var defined in your XiVO’s /etc/docker/xivo/custom.env file

  • Fill in also parameters linked to XiVO Edge (which is a prerequisite to use Meeting Room Server - see Requirements):

    • TURN_HOST var with the Edge STUN/TURN server FQDN (i.e. which must be a FQDN corresponding to the certificate configured on the Edge STUN/TURN server).

    • TURN_CREDENTIALS var with the value of the TURN_SECRET configure in the Edge TURN Server (the secret generated during TURN Server Secret).

Start the services

Start the services:

docker login -u xivoxc
(use the token provided by the XiVO team)

meetingrooms-dcomp pull && docker logout
meetingrooms-dcomp up -d

Edge Configuration

Note

These steps are to be done on the XiVO CC.

On the Edge server you must add the Meetingroom server IP address in the TURN_ALLOWED_PEERS.

Please refer to TURN Server Relay Authorization section.

XIVO CC Configuration

Note

These steps are to be done on the XiVO CC.

If you are using the XiVO UC Embedded mode you must follow the sub-section below: XiVO UC Embedded Configuration

On XiVO CC, to be able to use the video service you must configure the NGINX_JITSI_HOST variable.

  1. Add the NGINX_JITSI_HOST value in the /etc/docker/compose/custom.env file:

    NGINX_JITSI_HOST=<IP Address of the Meeting Rooms server>
    
  2. Relaunch the services

xivocc-dcomp up -d

XiVO UC Embedded Configuration

Important

This section applies only if you are in the XiVO UC Embedded mode.

With XiVO UC applications, to be able to use the video service you must configure the NGINX_JITSI_HOST variable.

  1. Add the NGINX_JITSI_HOST value in the /etc/docker/xivo/custom.env file:

    NGINX_JITSI_HOST=<IP Address of the Meeting Rooms server>
    
  2. Relaunch the services

xivo-dcomp up -d

XiVO Configuration

Note

These steps are to be done on the XiVO

If you are using the XiVO UC Embedded mode you must also follow the section XiVO UC Embedded Configuration

Configure Jitsi properties in your custom env

  1. Edit /etc/docker/xivo/custom.env file :

    MEETINGROOM_AUTH_DOMAIN=<The domain serving the service, i.e. "meet.jitsi" by default, can be also set to "*">
    MEETINGROOM_AUTH_APP_ID=<Value of the JWT_APP_ID defined in your jitsi .env file>
    

Configure the Trunk to Jitsi

On XiVO, go on page Services ‣ IPBX ‣ Trunk management ‣ SIP Protocol, and create a SIP trunk with:

  • Tab General:

    • Name: xivo-jitsi

    • Username: xivo-jitsi

    • Password: put the value of the JIGASI_SIP_PASSWORD variable in the /etc/docker/meetingrooms/.env

    • Connection type: Peer

    • IP addressing type: Dynamic

    • Context: default

    • Media server: MDS Main

    • NAT: Yes (force rport + comedia)

  • Tab Advanced:

    • Redirect media streams: No

Then restart the jigasi docker on Meeting Room server:

meetingrooms-dcomp restart jigasi

Customize proxy settings on XiVO

Important

You need to do this only if XIVO is behind a proxy.

If XiVO PBX is behind a proxy (and you followed the Proxy Configuration guide) then you must tweak the proxy setting for agid container to add the Meetingroom server IP address in the NO_PROXY list.

See Proxy Configuration for AGID