1. 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.

2. Basic System Requirements

  • CentOS 6/7
  • Apache 2
  • MySQL 5
  • PHP 5.3.3
  • Sendmail
  • FreeSWITCH

3. Installation

First of all, we need to install ict and epel repositories

for centos 7

rpm -Uvh ''
yum install epel-release

for CentOs 6 also install Freeswitch repository

rpm -Uvh ''
rpm -Uvh ''
-Uvh ''

Once these are installed now we need to install the ICTCore.

Install ICTCore

yum update
yum install ictcore ictcore-voice ictcore-fax ictcore-email ictcore-sms

Create a new Database

Login to MySQL and enter these commands one by one:

USE ictcore;
GRANT ALL PRIVILEGES ON ictcore.* TO ictcoreuser@localhost IDENTIFIED BY 'plsChangeIt';
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

4. REST API Guide

Full List of REST APIs available here

5. Getting Started

We believe in leveraging open source in telecommunications, providing a free platform for simple and advanced CTI applications. ICTCore was built by people like you, and we need your help to make ICTCore better! Why not participate in a useful project today? Please check docs folder to learn how to begin.

Following is an example about sending fax by using ICTCore
// prepare a program with fax document
= array('file_name' => '/some/pdf/file.pdf');
= new Sendfax(null, array('data' => $programData));

// create a transmission
= 12;
= 1;
= faxProgram->transmission_create($contact_id, $account_id);

// schedule transmission
->schedule(array('delay' => 3600)); // in seconds


p>// or dispatch immediately