IraCPA Debian Installation

The Epicode releases for Debian consist of multiple deb packages. They are as follows:

ira-apt-config: Only for servers with internet access. This adds the freeswitch repo URL to the Debian source list. So that required dependencies can be pulled from the freeswitch repository.

ira-create-local-repo: For servers without internet access. This contains the deb packages for all the dependencies required. It will copy them to the machine and configure a local repository so that apt-get will pull dependencies from the local repo.

irabase: Required for all sites. This contains Epicode interprocess messaging framework and licensing framework. This sets up:

  • Redis server or stunnel based on the option chosen during installation
  • TxHive
  • IraPass for cloud or node licensing

iracpa: Required only if the site needs web socket API to stream media to IraCPA engine and get CPA results. This sets up:

  • IraCPA with web socket interface

NOTE:

  1.  iracpa is required when you also need the web socket interface for streaming media for CPA analysis.
  2. If a site only needs the CPA web socket interface and does not need to handle dialing and calls,  Just install irabase and iracpa.


Step 1: Download the latest debs

Download the latest debs from the shared Google drive folder below:
https://drive.google.com/drive/u/0/folders/10BBg7f4Dvp09tuhfhYslfU4P-eDi0ygb

Step 2: Setup prerequisites

Server with Internet

Ensure that the urls for official debian repo are not commented out in the source list.

sudo nano /etc/apt/sources.list

If there are no urls here or all the lines are commented out, edit the file. The content should look similar to what is shown below.

deb http://cdn-aws.deb.debian.org/debian buster main
deb-src http://cdn-aws.deb.debian.org/debian buster main
deb http://security.debian.org/debian-security buster/updates main
deb-src http://security.debian.org/debian-security buster/updates main
deb http://cdn-aws.deb.debian.org/debian buster-updates main
deb-src http://cdn-aws.deb.debian.org/debian buster-updates main

Run the latest version of the deb package ira-apt-config. This will prepare the server to securely download the dependencies required by IraCpa and IraDialer over the internet.

sudo apt install ./ira-apt-config_1.0.0-1.deb

Server without Internet

Since the server does not have internet, comment out the urls to the online repositories in the sources list.

sudo nano /etc/apt/sources.list

Comment out all the lines in the file by prepending each line with a hash (#) character. Save it and exit. The content should now be something like below.

#deb http://cdn-aws.deb.debian.org/debian buster main
#deb-src http://cdn-aws.deb.debian.org/debian buster main
#deb http://security.debian.org/debian-security buster/updates main
#deb-src http://security.debian.org/debian-security buster/updates main
#deb http://cdn-aws.deb.debian.org/debian buster-updates main
#deb-src http://cdn-aws.deb.debian.org/debian buster-updates main

Run the latest version of the deb package ira-create-local-repo. This will create a local repo with all the dependencies which will be installed while installing IraCpa.

sudo apt install ./ira-create-local-repo_1.1.0-2.deb

Step 3: apt-get update

Make sure to run the command below after installing one of the above deb packages.

sudo apt-get update

Step 4: serverdetails.json

Ensure that the file /AEC/serverdetails.json exists and is of the format shown below.

{
"redis_endpoint": "master.redis-xxxx-xxxx.xxxx.xxxx.cache.amazonaws.com",
"unique_hive_name": "AEC_TEST_1",
"licenses_assigned": [
{ "product": "txhive", "item": "instance", "count": "20", "tenant": "all"},
{ "product": "iracpa", "item": "amd", "count": "20", "tenant": "acqueon"}
]
}

Refer the article for more details on serverdetails.json:

Step 5: Install the debs

First install irabase and follow the prompts (During future updations, this step only needs to be performed if a new version of irabase is available)

sudo apt install ./irabase_1.0.1-3.deb

Next install the iracpa in the same way.

sudo apt install ./<package_name>.deb

Fixes for known issues

During installation of irabase, if you choose to install and use local redis server, then it is possible that the setup might end with the message below:




This means that the redis-server was unable to start, most likely due to a port conflict. This usually happens when the stunnel process is running and is binding to the same port.

Run the command:

sudo /opt/epi/script/kill_stunnel_process.sh

If the stunnel process was running, and it is killed by the script it would print “stunnel running. Stopping it”. If it does this, you should now be able to restart redis-server and resume operation.

sudo service redis-server restart

Check the redis-server status to ensure that it is running.

sudo service redis-server status

If the stunnel process was not running, the script would print “stunnel is not running”. This means that the cause for redis-server failing to start is not the port conflict. This is usually resolved by rebooting the server.

FAQs

How do I know if the site is using local redis or cloud redis?

Check the value for redis_endpoint in /AEC/serverdetails.json. If it is localhost, that means it is set to use local redis, else it is set to use cloud redis.

Also check the service status of “redis-server” and “redistunnel” by running:

sudo service <service_name> status

For local redis, redis-server should be running and redistunnel should be inactive.

For cloud redis, redis-server should be inactive and redistunnel should be running.

How do I know if the site is using node locked license or cloud license?

Open the file /opt/epi/conf/irapass.xml. In the tag “common_settings” look for the value of the attribute “node_locked”. If it is “Y” then it is using node locked licensing. If it is “N” then it is using cloud licensing.

How do I change a site from local redis to cloud redis or vice versa?

Update /AEC/serverdetails.json with the right redis endpoint and run the command:

sudo dpkg-reconfigure irabase

Choose the right option in the prompt provided.

How do I change a site from using node locked licensing to cloud licensing?

Run the command:

sudo dpkg-reconfigure irabase

Choose the right option in the prompt provided.

How do I change the proxy_web url or the HTTP proxy settings?

Open the file /opt/epi/conf/irapass.xml. In the tag “common_settings” set the values for proxy_web and/or HTTP proxy and then restart the irapass service.

sudo service irapass restart

Make sure to check the latest irapass log to ensure that it has received the license. In a HA setup, only the senior IraPass will request and get the licenses from the cloud. The junior IraPass instances will just sync it from the senior IraPass.