Voice Connector deployment guide
Prerequisites
Software Requirements
Item | Recommended | Installation guide |
Operating System | Debian 12 | - |
Docker | latest version | |
EFSwitch | Latest version | Installation: https://expertflow-docs.atlassian.net/l/cp/x3QT2arH Configuration: https://expertflow-docs.atlassian.net/l/cp/KPHw7amt |
EF CX | CX 4.4 |
Port Utilization Requirements
The following ports must be open on the server for the voice connector to function.
Type | Application | Description | Port |
TCP | EFSwitch | ESL port | 8021 |
TCP | EFSwitch | Websocket port | 7443 |
TCP | Voice Connector | Access port | any/ (set in docker-compose.yml) |
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 :
docker-compose.yml
JSversion: "3.8" services: voice-connector: image: gitimages.expertflow.com/freeswitch/ecx_generic_connector:TAG container_name: unified-voice-connector ports: - 8115:8115 env_file: - ./env.txt restart: always
Replace the 'TAG' keyword with the required image tag for CX 4.4 obtained from the releases page here.
Save and exit by :
Press the 'Esc' key.
Enter the phrase ':wq' (without quotes) to save and exit.
Create a file docker-variables.env
vi docker-variables.env
Enter editing mode with the 'I' or 'Insert' keys.
Copy the contents below and paste them into the file env.txt :
env.txt
JSCCM_API= https://efcx4.expertflow.com/ccm/message/receive SPRING_PORT= 8115 ESL_PORT= 8021 ESL_PASSWORD= ClueCon DIALER_API= placeholder DB_CONN_TIMEOUT=3000 DB_PASS=Password DB_URL=jdbc:postgresql://IP:5432/DB-NAME DB_USERNAME=efswitch DB_DIALECT=org.hibernate.dialect.PostgreSQLDialect DB_DRIVER=org.postgresql.Driver
CCM_API= The address of EF CX in format: https://FQDN/ccm/message/receive
SPRING_PORT= The internal port of the voice connector. Do not change from 8115.
ESL_PORT= The port of EFSwitch ESL (Default 8021, Same as in Efswitch settings here).
ESL_PASSWORD= EFSwitch ESL password (Default ClueCon, Same as in Efswitch settings here).
Note: The rest of values must not be changed from their default. Progressive outbound is not released before CX version 4.5.
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.