Manual for installing version 1.3.X on the old distribution FreePBX Distro SNG7-PBX-64bit and other OS with php5
Table of contents:
3. Installing the basic Pbxunit system and the "Call Records" report
4. Installing the "Auto-call" module
5. Installing the "Automatic Polls" module
6. Installing the "Text to speech" module
0. Installation security
After installation, change the admin user password in the pbxunit web interface.
1. System Requirements
ОС: Linux (Python 3.X, MySQL or MariaDB database, web-server Apache and PHP5)
FreePBX modules must be installed: Recordings, IVR, Queues
Tested on: FreePBX v14, FreePBX v15, FreePBX v16
Tested on distributions: FreePBX Distro SNG7-PBX-64bit
2. The project is protected by Ioncube, you need to install the loader for the Apache web server
Download the Ioncube loader for your operating system by following the link: https://www.ioncube.com/loaders.php
For example:
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
Extract the archive, for example:
mkdir /usr/local/lib/php5
tar xvf ioncube_loaders_lin_x86-64.tar.gz -C /usr/local/lib/php5
In order to learn the version of PHP, run the following command in the operating system:
php -v
Open the php.ini configuration file
Example for FreePBX Distro:
nano /etc/php.ini
Example for Debian Linux:
nano /etc/php5/apache2/php.ini
Add a line to the [PHP] section, specify the module for your version of php, an example for PHP version 5.6:
zend_extension = /usr/local/lib/php5/ioncube/ioncube_loader_lin_5.6.so
Restart the web server
Example for FreePBX Distro:
service httpd restart
Example for Debian Linux:
service apache2 restart
Make sure that the module is loaded and appeared in the list:
php -v
3. Installing the basic Pbxunit system and the "Call Records" report
Install the OS distribution FreePBX Distro SNG7-PBX-64bit: https://www.freepbx.org/downloads/
During OS installation, the system will ask you to enter the root password. Remember it.
Perform basic FreePBX setup, start trunks and at least 1 route for outgoing communication.
Login into the server OS command shell as the root user.
Change to your home directory and create a directory for the installation files:
cd ~
mkdir src
cd src
Download the archive with the latest version of Pbxunit for PHP 5.
wget https://pbxunit.com/downloads/pbxunit-php5-en-last.tar.gz
Unzip the archive:
tar xvf pbxunit-php5-en-last.tar.gz
Extract the archive: Find out the password from the MySQL database user - freepbxuser.
You can view the username and password in the freepbx configuration file:
cat /etc/freepbx.conf
The password is contained in a variable $amp_conf['AMPDBPASS']
Navigate to the database directory from the unpacked archive. Enter the command to import tables into the asterisk database:
cd ~/src/pbxunit/database
mysql -u freepbxuser -p -D asterisk < asterisk.sql
Enter the database password for the freepbxuser user.
To speed up reports, it is desirable to add the missing indexes to the cdr table for the asteriskcdrdb database. Attention - if your system already contains a large amount of statistics in the cdr table, adding indexes can lock the table for a long time, run the command with the Asterisk service stopped.
Enter the command to create indexes in the asteriskcdrdb database:
mysql -u freepbxuser -p -D asteriskcdrdb < asteriskcdrdb_indexes.sql
Enter the database password for the freepbxuser user.
Navigate to the web directory from the unpacked archive. Copy the pbxunit directory to the web server directory:
cd ~/src/pbxunit/web
cp -r pbxunit/ /var/www/html/
Edit the Pbxunit configuration file:
nano /var/www/html/pbxunit/config.php
Enter password from user freebxuser, MySQL database:
For asterisk database, example:
$_AST_CONFIG['DBPass'] = 'db password for freepbxuser';
For asteriskcdrdb database, example:
$_AST_CONFIG['DBPassCDR'] = 'db password for freepbxuser';
The password for the freepbxuser database user can be found in the FreePBX configuration file:
cat /etc/freepbx.conf
Run the command to change script permissions:
fwconsole chown
Full description of the configuration file: Web-interface configuration file
Now you can log in under the Administrator account to the web interface at:
http://<server IP-address>/pbxunit/
Default login: admin password: pbxunit
In "Administration -> Modules and licenses -> Edit company name" enter your company name and save.
4. Installing the "Auto-call" module
Run the command to create a symbolic link for Python 3:
ln -s /bin/python3.6 /bin/python3
Install the MySQL Python library:
yum install python36u-pymysql
Install the pip package manager:
yum install python36u-pip
Update pip:
pip3.6 install --upgrade pip
Install the pyst library for Python:
pip3.6 install pyst
Change to the Pbxunit installation directory:
cd ~/src/pbxunit
Copy the directory with the configuration file to the directory /etc:
cp -r configs/pbxunit /etc/
The password for the freepbxuser database user can be found in the FreePBX configuration file:
cat /etc/freepbx.conf
Find out the admin user password for the Asterisk Manager Interface, you can see it in the /etc/asterisk/manager.conf config:
cat /etc/asterisk/manager.conf
The password is in the [admin] section, the "secret" parameter.
Edit the config file:
nano /etc/pbxunit/pbxunit.conf
In the [mysql] section, enter the MySQL user password freepbxuser, for example:
db_user=freepbxuser
db_pass=freepbxuser DB user password
In the [ami] section, enter the details from the admin user for the Asterisk Manager Interface:
user=admin
pass=ami user password
In the [path] section, specify the path for the directory with sound files along with the language code, for example, for English:
sounds=/var/lib/asterisk/sounds/en
The selected language must be downloaded in FreePBX, you can check it in the Admin -> Sound Languages tab in FreePBX
Full description of the configuration file: Service configuration file
Copy the Python libraries to your version's python libraries directory:
cp -r python-lib/pbxunit/ /usr/lib/python3.6/site-packages/
Change to the modules/autocall/ directory from the installation archive:
cd ~/src/pbxunit/modules/autocall
Enter the command for additional fields in the cdr table from the asteriskcdrdb database:
Attention - if your system already contains a large amount of statistics in the cdr table, adding indexes can lock the table for a long time, run the command with the Asterisk service stopped.
mysql -u freepbxuser -p -D asteriskcdrdb < database/asteriskcdrdb.sql
Enter the database password for the freepbxuser user.
Copy the files from the modules/autocall/agi-bin directory to the Asterisk agi-bin directory:
cp agi-bin/* /var/lib/asterisk/agi-bin/
Copy the service startup files from modules/init.d to the /etc/init.d directory:
cp init.d/* /etc/init.d/
Make the files executable:
chmod a+x /etc/init.d/pbxu_*
Add the contents of the dialplan/extensions_custom.conf file to /etc/asterisk/extensions_custom.conf
cat dialplan/extensions_custom.conf >> /etc/asterisk/extensions_custom.conf
If necessary, edit the /etc/asterisk/extensions_custom.conf config. In the [pbxu-autocall-dial] section, change the language of the channel to the required one, for example:
exten => _.,n,Set(CHANNEL(language)=en)
If you need disable recording CDR. In the [macro-pbxu-autocall] section, you can disable recording CDR statistics during auto-call, to do this, uncomment the line:
#exten => s,n,NoCDR()
When recording in CDR is disabled, the Duration field will not be displayed in reports.
Reload the Asterisk dial plan:
asterisk -x 'dialplan reload'
Add services to startup, example:
nano /etc/rc.local
Add lines:
/etc/init.d/pbxu_queue_autocall.py restart
/etc/init.d/pbxu_start_autocall.py restart
Set execute permissions for rc.local:
chmod a+x /etc/rc.d/rc.local
Run the command to change script permissions:
fwconsole chown
Start services:
/etc/init.d/pbxu_queue_autocall.py start
/etc/init.d/pbxu_start_autocall.py start
To import large job files, you may need to edit the php.ini file on your OS.
Edit the file:
nano /etc/php.ini
Increase the data upload limit, for example, up to 50 MB. Find and edit the post_max_size variable in /etc/php.ini
post_max_size = 50M
After changes in php.ini - restart the web server:
service httpd restart
5. Installing the "Automatic Polls" module
You must first have the "Auto-call" module installed.
Change to the modules/autopolls/ directory from the installation archive:
cd ~/src/pbxunit/modules/autopolls
Copy the files from the autopolls/agi-bin directory to the Asterisk agi-bin directory:
cp agi-bin/* /var/lib/asterisk/agi-bin/
Copy the contents of the dialplan/extensions_custom.conf file to /etc/asterisk/extensions_custom.conf
cat dialplan/extensions_custom.conf >> /etc/asterisk/extensions_custom.conf
Reload the Asterisk dial plan:
asterisk -x 'dialplan reload'
Run the command to change script permissions:
fwconsole chown
6. Installing the "Text to speech" module
Amazon Polly
Install the boto3 python library for Amazon Polly to work:
pip3.6 install boto3
Yandex Cloud Speechkit
Install the requests library:
pip3.6 install requests
Install the package for converting from ogg format for Yandex Cloud Speechkit:
The utility from it should be located along the path: /usr/bin/avconv
For the 64-bit FreePBX Distro 16 distribution, you can copy the compiled file from the pbxunit distribution:
cd ~/src/pbxunit/
cp opt/x86_64/avconv /usr/bin/
chmod a+x /usr/bin/avconv