Prerequisites
Software Requirements
|
Item |
Recommended |
Installation guide |
|
Operating System |
Debian 12 |
- |
|
Docker |
v24 or higher |
|
|
Media Server |
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 |
Media Server |
ESL port |
8021 |
|
TCP |
Media Server |
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:TAG deploy: resources: limits: memory: 1024m reservations: memory: 256m container_name: unified-voice-connector ports: - 8115:8080 env_file: - ./env.txt command: ["java", "-Xms256m", "-Xmx1024m", "-XX:+UseG1GC", "-XX:MinHeapFreeRatio=10", "-XX:MaxHeapFreeRatio=30", "-jar", "/app/ecx_generic_connector.jar"] restart: always-
Replace the 'TAG' keyword with the required image tag obtained from the releases page here.
-
-
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=MyEslPass DIALER_API=http://192.168.1.10:6666 LOG_LEVEL=INFO AUTH_ENABLED=true API_USERNAME=admin API_PASS=admin ROOT_DOMAIN=tenant-id # for MTT tenancy it will be rootdomain of efcx solution (eg.. expertflow.com) ESL_DEFAULT_DOMAIN=192.168.1.17-
CX_FQDN: The address of EF CX. https://FQDN. In case of Multitenants it should be: <https://<TENANT-ID>>.<ROOT_DOMAIN>
-
ESL_PORT: The port of Media Server ESL (Default 8021, Same as in Media Server settings here)
-
ESL_PASSWORD: Media Server ESL password (Use the same password set in the Media Server 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.
-
Leave at default value if not using the progressive outbound feature.
-
-
LOG_LEVEL: The amount of detail in the logs. Default is INFO, and for more detailed logs the value should be DEBUG.
-
AUTH_ENABLED: true or false depending on whether APISIX authentication is enabled in EFCX. The four settings below are set if this value is true.
-
API_USERNAME: The username created in Keycloak for API authentication.
-
On Keycloak create a user in the Expertflow realm.
-
Assign the admin and default roles, and have Email-Verified option enabled.
-
Assign a non-temporary password to this user as well.
-
-
API_PASS: The password for the above user created in Keycloak for API authentication
-
ROOT_DOMAIN: For Multitenant Deployment-> expertflow.com (value will be equal to tenantId for on prem deployment)
-
ESL_DEFAULT_DOMAIN: Media Server IP through which ESL connection can be established
-
-
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
-