INSTALLATION GUIDE
INTRODUCTION
ICTCore is an open-source unified communications framework for developers and integrators to rapidly develop ICT based applications using their existing development skills. By using ICTCore, the developer can create communication-based applications such as Auto attendant, Fax to Email, Click to Call, etc. They can program custom business logic that can control incoming and outgoing communication instances.
BASIC SYSTEM REQUIREMENTS
- Apache 2.4
- MYSQL 10.11
- PHP 5.3.3 | PHP 7.4 | PHP 8.3
- Sendmail
- FreeSWITCH
Install ICTFax Version 6.0
Please follow the steps below to install the ICTFax latest version 6.0
Install the MariaDB 10.11Create mariadb 10.11 repo. Add the following code into this file vi /etc/yum.repos.d/MariaDB.repo
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.11/rhel9-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
Install required dependencies
sudo dnf install perl-DBI boost-program-options socat -y sudo dnf install boost boost-program-options -y
Install the Perl module and its dependencies
sudo dnf install perl perl-CPAN -y sudo cpan Sys::Hostname
Install the MariaDB
sudo dnf install MariaDB-server MariaDB-client --disablerepo='*' --enablerepo='mariadb' -y
Install Remi-repo & Epel-repo
sudo dnf install epel-release -y yum install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm
Enable the PHP Remi 8.3
sudo yum module reset php -y sudo yum module enable php:remi-8.3 -y
Install the Okey repository for FreeSWITCH
dnf config-manager --enable crb wget http://repo.okay.com.mx/centos/9/x86_64/release/okay-release-1-10.el9.noarch.rpm yum install okay-release-1-10.el9.noarch.rpm dnf install task-freeswitch
Install ICT-Release Repo for installing ICTCore and ICTFax
yum install https://service.ictinnovations.com/repo/8/ict-release-8-5.el8.noarch.rpm
Install ICTCore
yum install ictcore ictcore-fax ictcore-email ictcore-voice ictcore-freeswitch
Install Other Dependencies
yum install php php-fpm php-gd php-mysqlnd
Install Imagicyum install -y ImageMagick ImageMagick-devel
sudo yum install -y php-imagick echo "extension=imagick.so" > /etc/php.d/imagick.ini
Install mcryptyum install --enablerepo=epel php-devel php-pear libmcrypt libmcrypt-devel pecl install mcrypt echo 'extension=mcrypt.so' > /etc/php.d/mcrypt.ini
Install imapyum install php-imap -y
Configure the document root in apache “/usr/ictfax”
Uncomment “LoadModule mpm_prefork_module modules/mod_mpm_prefork.so” and comment this line “LoadModule mpm_event_module modules/mod_mpm_event.so” from this file /etc/httpd/conf.modules.d/00-mpm.conf
Change PHP_ADMIN_VALUE open_basedir line into /etc/httpd/conf.d/ictcore.conf
SetEnv PHP_ADMIN_VALUE "open_basedir = /usr/ictcore/:/usr/bin:/bin:/tmp/"
Disable selinux
setenforce 0
Restart the apache service
Restart php-fpm service
service httpd restart service php-fpm restart
Install the ictfax database
CREATE DATABASE ictfax; USE ictfax; GRANT ALL PRIVILEGES ON ictfax.* TO ictfaxuser@localhost IDENTIFIED BY 'plsChangeIt'; FLUSH PRIVILEGES; source /usr/ictcore/db/database.sql; source /usr/ictcore/db/email.sql; source /usr/ictcore/db/fax.sql; source /usr/ictcore/db/ictfax.sql; source /usr/ictcore/db/voice.sql; source /usr/ictcore/db/data/role_user.sql; source /usr/ictcore/db/data/role_admin.sql; source /usr/ictcore/db/data/demo_users.sql; exit;
Open the file /etc/ictcore.conf and find out the [db] section and replace user, password and database name in the following lines:
user = ictfaxuser pass = plsChangeIt name = ictfax
cd /usr/ictcore/bin/sendmail ./email_to_fax
Rocky linux
disable the current PHP version
yum module disable php:7.2
Install Remi-repo
yum install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
enable the PHP Remi 7.4
yum module enable php:remi-7.4
install the Okey repository for FreeSWITCH from this link
rpm -ivh http://repo.okay.com.mx/centos/8/x86_64/release/okay-release-1-5.el8.noarch.rpm
Install ICT-Release
yum install https://service.ictinnovations.com/repo/8/ict-release-8-5.el8.noarch.rpm
download ICTCore package by yum command directly.
yum install ictcore ictcore-fax ictcore-email ictcore-voice ictcore-freeswitch
Install FastCGI Process Manager
yum install php php-fpm php-gd php-mysqlnd
uncomment “LoadModule mpm_prefork_module modules/mod_mpm_prefork.so” and comment this line “LoadModule mpm_event_module modules/mod_mpm_event.so” from this file /etc/httpd/conf.modules.d/00-mpm.conf
change PHP_ADMIN_VALUE open_basedir line into
SetEnv PHP_ADMIN_VALUE "open_basedir = /usr/ictcore/:/usr/bin:/bin:/tmp/"
install Imagic
yum install -y ImageMagick ImageMagick-devel pecl install imagick echo "extension=imagick.so" > /etc/php.d/imagick.ini
install mcrypt
yum install--enablerepo=epel php-devel php-pear libmcrypt libmcrypt-devel pecl install mcrypt echo 'extension=mcrypt.so' > /etc/php.d/mcrypt.ini
install imap
yum install php-imap
Create a new Database
Login to MySQL and enter these commands one by one:
CREATE DATABASE ictcore;
USE ictcore;
FLUSH PRIVILEGES;
SOURCE /usr/ictcore/db/database.sql;
SOURCE /usr/ictcore/db/fax.sql;
SOURCE /usr/ictcore/db/email.sql;
SOURCE /usr/ictcore/db/voice.sql;
SOURCE /usr/ictcore/db/sms.sql;
SOURCE /usr/ictcore/db/data/role_user.sql;
SOURCE /usr/ictcore/db/data/role_admin.sql;
SOURCE /usr/ictcore/db/data/demo_users.sql;
Now update /usr/ictcore/etc/ictcore.conf
files with database credentials as per above created database. Open the file ictcore.conf and find out the [db] section and replace user, password and database name in the following lines:
user = ictcoreuser
pass = plsChangeIt
name = ictcore
Now Restart the apache by typing the following command in the terminal:
service httpd restart
for centos 7
rpm -Uvh'https://service.ictinnovations.com/repo/7/ict-release-7-4.el7.centos.noarch.rpm'
yum install epel-release
ICTCORE INSTALLATION
yum -y install ictcore ictcore-fax ictcore-email ictcore-voice
Create a new Database
Login to MySQL and enter these commands one by one:
CREATE DATABASE ictcore; USE ictcore; GRANT ALL PRIVILEGES ON ictcore.* TO ictcoreuser@localhost IDENTIFIED BY 'plsChangeIt'; FLUSH PRIVILEGES; SOURCE /usr/ictcore/db/database.sql; SOURCE /usr/ictcore/db/fax.sql; SOURCE /usr/ictcore/db/email.sql; SOURCE /usr/ictcore/db/voice.sql; SOURCE /usr/ictcore/db/sms.sql; SOURCE /usr/ictcore/db/data/role_user.sql; SOURCE /usr/ictcore/db/data/role_admin.sql; SOURCE /usr/ictcore/db/data/demo_users.sql;
Now update /usr/ictcore/etc/ictcore.conf
files with database credentials as per above created database. Open the file ictcore.conf and find out the [db] section and replace user, password and database name in the following lines:
user = ictcoreuser pass = plsChangeIt name = ictcore
Now Restart the apache by typing the following command in the terminal:
service httpd restart
for Amazon Linux 2 (AWS2)
rpm -Uvh'https://service.ictinnovations.com/repo/7/ict-release-7-4.el7.centos.noarch.rpm'
sudo amazon-linux-extras install epel -y
ICTCORE INSTALLATION
yum -y install ictcore ictcore-fax ictcore-email ictcore-voice
Create a new Database
Login to MySQL and enter these commands one by one:
CREATE DATABASE ictcore; USE ictcore; GRANT ALL PRIVILEGES ON ictcore.* TO ictcoreuser@localhost IDENTIFIED BY 'plsChangeIt'; FLUSH PRIVILEGES; SOURCE /usr/ictcore/db/database.sql; SOURCE /usr/ictcore/db/fax.sql; SOURCE /usr/ictcore/db/email.sql; SOURCE /usr/ictcore/db/voice.sql; SOURCE /usr/ictcore/db/sms.sql; SOURCE /usr/ictcore/db/data/role_user.sql; SOURCE /usr/ictcore/db/data/role_admin.sql; SOURCE /usr/ictcore/db/data/demo_users.sql;
Now update /usr/ictcore/etc/ictcore.conf
files with database credentials as per above created database. Open the file ictcore.conf and find out the [db] section and replace user, password and database name in the following lines:
user = ictcoreuser pass = plsChangeIt name = ictcore
Now Restart the apache by typing the following command in the terminal:
service httpd restart
REST API Guide
You can find the full list of available REST APIs here.
Getting Started
We believe in leveraging open-source solutions in telecommunications to provide a free and powerful platform for both simple and advanced CTI applications.
ICTCore was built by contributors like you — and your help can make it even better!
Why not participate in a meaningful open-source project today?
Please refer to the docs
folder to learn how to get started.
Example: Sending a Fax Using ICTCore
// Prepare a program with a fax document $programData = array( 'file_name' => '/some/pdf/file.pdf' ); // Create a Sendfax program $faxProgram = new Sendfax(null, array('data' => $programData)); // Set contact and account IDs $contact_id = 12; $account_id = 1; // Create a fax transmission $faxTransmission = $faxProgram->transmission_create($contact_id, $account_id); // Schedule the transmission (in seconds) $faxTransmission->schedule(array('delay' => 3600)); // Or dispatch immediately $faxTransmission->send();