Breadcrumbs

Voice Connector deployment guide

Prerequisites

Software Requirements

Item

Recommended

Installation guide

Operating System

Debian 12

                                                           -

Docker

v24 or higher

https://docs.docker.com/engine/install/debian/

EFSwitch

Latest version

Installation

Configuration

EF CX

Latest version

Deployment

Dialer and database(For outbound only)

4.5

Deployment

Port Utilization Requirements

The following ports must be open on the server for the voice connector to function.

Type

Application

Description

Port

TCP

FreeSwitch 

ESL port

8021

TCP

FreeSwitch 

Websocket port

7443

TCP

Voice Connector

Access port

any/ (set in docker-compose.yml)

TCP

Postgres

Database access port

5432

TCP

Dialer

Access port

any/ (configured in dialer)

The ports can be opened as follows:

  • SSH into the Debian server.

    • Use command:

      • ssh username@server-ip
        
    • Enter the ssh password and press Enter.

    • Use command:

      • su
        
    • Enter the root user's password

  • Run the following command and replace PORT with each of the required ports listed above:

    • sudo iptables -A INPUT -p tcp -m tcp --dport PORT-j ACCEPT
      
    • Example:  

      sudo iptables -A INPUT -p tcp -m tcp --dport 8021 -j ACCEPT
      
  • Save this port configuration with command:

    • sudo iptables-save
      

Container Deployment

The voice connector is deployed as a docker image.

  • Create a folder voice-connector with the command:

    • mkdir voice-connector
      
  • Enter the folder with the command:

    • cd voice-connector
      
  • Create a file docker-compose.yml.

    • vi docker-compose.yml
      
  • Enter editing mode with the 'I' or 'Insert' keys.

  • Copy the contents below and paste them into the file docker-compose.yml

    version: "3.8"
    services:
      voice-connector:
        image: gitimages.expertflow.com/freeswitch/ecx_generic_connector:4.5
        container_name: unified-voice-connector
        ports:
          - 8115:8080
        env_file:
          - ./env.txt
        restart: always
    
  • Save and exit by :

    • Press the Esc key.

    • Enter the phrase :wq to save and exit.

  • Create a file env.txt

    • vi env.txt
      
  • Enter editing mode with the 'I' or 'Insert' keys.

  • Copy the contents below and paste them into the file env.txt

    CX_FQDN=https://cim.expertflow.com
    ESL_PORT=8021
    ESL_PASSWORD=ClueCon
    DIALER_API=http://192.168.1.10:6666
    MIDDLEWARE_API=http://192.168.1.10:7115/recording-middleware
    LOG_LEVEL=INFO
    DB_NAME=username
    DB_URL=192.168.1.16
    DB_PORT=5432
    DB_USERNAME=fusionpbx
    DB_PASS=password
    DB_CONN_TIMEOUT=3000
    
    • CX_FQDN: The address of EF CX. https://FQDN

    • ESL_PORT: The port of Freeswitch ESL (Default 8021, Same as in Efswitch settings here)

    • ESL_PASSWORD: Freeswitch ESL password (Default ClueCon, Same as in Efswitch settings here)

    • DIALER_API: API link of the dialer in format: http://IP:PORT (Fill in IP and PORT of dialer)

      • Where IP is the IP address of the current server.

      • And PORT is the external port of the dialer container.

    • MIDDLEWARE_API: The API link of the recording middle-ware that will provide recording files. Format: http://IP:PORT/recording-middleware

      • Where IP is the IP address of the current server.

      • And PORT is the external port of the dialer container.

    • LOG_LEVEL: The amount of detail in the logs. Default is INFO, and for more detailed logs the value should be DEBUG.

    • DB_NAME: Database name (Fill in based on created database)

    • DB_URL: Database server IP address (Fill in based on created database)

    • DB_PORT: Database port (default 5432)

    • DB_USERNAME: Database username (Fill in based on created database)

    • DB_PASS: Database password (Fill in based on created database)

    • DB_CONN_TIMEOUT: Timeout for connecting to the database (Default 3000)

  • Run the command:

    • docker login gitimages.expertflow.com
      
    • Enter your username and password as prompted (make sure that you were granted access to the repository).

  • Within the folder run the command:

    • docker compose up -d
      
  • Confirm that the docker container is running by using the command:

    • docker ps
      
      image2023-9-6_12-55-39.png?version=1&modificationDate=1693986938289&cacheVersion=1&api=v2&width=800
  • Confirm that the container is running correctly by opening the logs with command:

    • docker logs -f containerID
      
      image2023-9-6_12-58-15.png?version=1&modificationDate=1693987093716&cacheVersion=1&api=v2&width=700