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:
-
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
-
-
Confirm that the container is running correctly by opening the logs with command:
-
docker logs -f containerID
-