CX Voice Upgrade Guide

1. Update Media Server Scripts

  • SSH into the Media Server and switch to root.

  • If a freeswitch-scripts folder already exists in the current directory, remove it or rename it to avoid conflict:

    rm -rf freeswitch-scripts
    

    or

    mv freeswitch-scripts freeswitch-scripts-old
    
  • Clone the Media Server scripts repository:

    git clone -b 5.8.0 https://efcx:RecRpsuH34yqp56YRFUb@gitlab.expertflow.com/rtc/freeswitch-scripts.git
    
  • Navigate to the cloned repository:

    cd freeswitch-scripts
    
  • Move the Lua scripts to the FreeSWITCH scripts directory:

    mv *.lua /usr/share/freeswitch/scripts
    
  • If files with the same name already exist under /usr/share/freeswitch/sounds/ivr_prompts/, remove or rename that folder first to avoid conflict:

    rm -rf /usr/share/freeswitch/sounds/ivr_prompts
    

    or

    mv /usr/share/freeswitch/sounds/ivr_prompts /usr/share/freeswitch/sounds/ivr_prompts-old
    mkdir -p /usr/share/freeswitch/sounds/ivr_prompts
    
  • Move the ivr_prompts folder contents to the FreeSWITCH sounds directory:

    mv ivr_prompts/* /usr/share/freeswitch/sounds/ivr_prompts/
    
  • Assign permissions:

    chmod 777 -R /usr/share/freeswitch/scripts
    chmod 777 -R /usr/share/freeswitch/sounds/ivr_prompts
    
  • Open vcApi.lua:

    vi /usr/share/freeswitch/scripts/vcApi.lua
    
  • Search for fsIp and replace fsIp = '192.168.1.161' with your actual Media Server Public IP.

  • Save and exit by pressing the Esc key, entering :wq, and pressing ENTER.

  • Open voicemail_end.lua:

    vi /usr/share/freeswitch/scripts/voicemail_end.lua
    
  • Locate VOICEMAIL_RECORDING_BASE_URL near the top of the script and set it to your media server voicemail endpoint:

    local VOICEMAIL_RECORDING_BASE_URL = "https://<MEDIA-SERVER-IP>/voicemail"
    

    Example: https://192.168.1.17/voicemail

  • Save and exit by pressing the Esc key, entering :wq, and pressing ENTER.

2. Upgrade Voice Connector

  • SSH into the Voice Connector server and switch to root.

  • Navigate to the Voice Connector directory:

    cd voice-connector
    
  • Stop the running container:

    docker compose down
    
  • Open docker-compose.yml:

    vi docker-compose.yml
    
  • Replace the image tag with 5.8.0:

    image: gitimages.expertflow.com/freeswitch/ecx_generic_connector:5.8.0
    
  • Save and exit (Esc, then :wq).

  • Start the container:

    docker compose up -d
    

3. Nginx — Voice Connector Route (Only for pause resume feature )

On the Media Server, open the FusionPBX Nginx config:

nano /etc/nginx/sites-available/fusionpbx

Inside the HTTPS server { ... } block, add the following location above location / {:

location /voice-connector/ {
    proxy_pass http://<VC-IP>:<VC-PORT>/;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}
  • Replace <VC-IP> with the Voice Connector server IP.

  • Replace <VC-PORT> with the Voice Connector port (e.g. 8115).

Test and reload Nginx:

nginx -t
systemctl reload nginx

Outbound Dialer

  1. Edit the docker-compose.yml file and update the outbound dialer tag to “5.8.0”

  2. Run the docker container with new build:

    docker compose up --build -d
    
  1. First go active directory from where recording link uploader is deployed.

  2. vi docker-compose.yml
    
  3. Update the tag in image line with following:

    gitimages.expertflow.com/voice-recording-solution/recording-link-activities:5.8.0
    
  4. In env.txt, remove following lines (no longer required):
    -> For CISCO profile:

    CX_TENANT_NAME
    CX_CONVERSATION_MANAGER
    

    For EFSWITCH profile:

    CX_CONVERSATION_MANAGER
    
  1. docker compose -f docker-compose.yml -d --build
    

Link Uploader should be up now. Check with:

docker ps -a.