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 Imagic yum install -y ImageMagick ImageMagick-devel sudo yum install -y php-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 -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
First of all, we need to install ict and epel repositories

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
First of all, we need to install ict and epel repositories

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();