Voice Connector deployment guide
Prerequisites
Software Requirements
Item | Recommended | Installation guide |
Operating System | Debian 12 | - |
Docker | v24 or higher | |
EFSwitch | Latest version | |
EF CX | Latest version | |
Dialer and database(For outbound only) | 4.5 |
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:
- CODE
ssh username@server-ip
Enter the ssh password and press Enter.
Use command:
- CODE
su
Enter the root user's password
Run the following command and replace PORT with each of the required ports listed above:
- CODE
sudo iptables -A INPUT -p tcp -m tcp --dport PORT-j ACCEPT
Example:
CODEsudo iptables -A INPUT -p tcp -m tcp --dport 8021 -j ACCEPT
Save this port configuration with command:
- CODE
sudo iptables-save
Container Deployment
The voice connector is deployed as a docker image.
Create a folder voice-connector with the command:
- CODE
mkdir voice-connector
Enter the folder with the command:
- CODE
cd voice-connector
Create a file docker-compose.yml.
- CODE
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 :
CODEversion: "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
- CODE
vi env.txt
Enter editing mode with the 'I' or 'Insert' keys.
Copy the contents below and paste them into the file env.txt :
CODECX_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:
- CODE
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:
- CODE
docker compose up -d
Confirm that the docker container is running by using the command:
- CODE
docker ps
Confirm that the container is running correctly by opening the logs with command:
- CODE
docker logs -f containerID