Installation Guides

News

Installation Guide

Following are Manual installation instructions

ICTFax Installation

ICTFax is a unique and complete solution that features mass faxing. Email to Fax, Web to Fax, Fax to Email, and Fax over IP server with ATA / Rest API support

1. Install Basic System Requirements

  • Redhat 8 | Redhat 9 | Centos Rocky Linux8 | Rocky Linux9 | Centos 9 | Centos 8 |Centos 7 | Amazon Linux 2
  • Apache 2
  • MySQL 5 | MariaDB 10.3.28 | MariaDB 10.11.10
  • PHP 5.3.3 | PHP 8.3
  • ICTCore
  • 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

# libaio comes from BaseOS on its own, but mysql-selinux does not get pulled in,
# and SELinux blocks the server without it. Do not switch the base repositories off.
sudo dnf install libaio mysql-selinux -y
sudo dnf install MariaDB-server MariaDB-client -y

Install Remi-repo & Epel-repo

sudo dnf install epel-release -y
sudo yum install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm -y

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

sudo dnf config-manager --enable crb
sudo yum install http://repo.okay.com.mx/centos/9/x86_64/release/okay-release-1-10.el9.noarch.rpm -y
sudo dnf install task-freeswitch -y

Install ICT-Release Repo for installing ICTCore and ICTFax

sudo yum install https://service.ictinnovations.com/repo/8/ict-release-8-5.el8.noarch.rpm -y

Install ICTCore

sudo dnf install firewalld -y
sudo systemctl enable --now firewalld
sudo yum install ictcore ictcore-fax ictcore-email ictcore-voice ictcore-freeswitch -y

Install ICTFax

sudo yum install ictfax -y

Install Other Dependencies

sudo yum install php php-fpm php-gd php-mysqlnd -y Install Imagic sudo yum install -y ImageMagick ImageMagick-devel
sudo yum install -y php-imagick
echo "extension=imagick.so" | sudo tee /etc/php.d/imagick.ini > /dev/null 
Install mcrypt (optional)

PHP 8.3 does not bundle mcrypt and ICTCore does not call it, so you can skip this section. If you do run it, the build asks for the libmcrypt prefix, which is why the answer is piped in, and the ini file is only written when the module actually built. Creating that ini without the module makes PHP print a warning on every run.

sudo yum install --enablerepo=epel php-devel php-pear libmcrypt libmcrypt-devel -y printf "\n" | sudo pecl install mcrypt [ -f /usr/lib64/php/modules/mcrypt.so ] && echo 'extension=mcrypt.so' | sudo tee /etc/php.d/mcrypt.ini > /dev/null Install imap sudo 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/"

For production, set it in the PHP-FPM pool instead. The line above only
applies to the /api tree, because it sits inside that Directory block. The
web interface is served from /usr/ictfax and gets no restriction at all.
Setting it on the pool covers every request the pool handles, and a script cannot lift
it with ini_set(). Add this to /etc/php-fpm.d/www.conf:

php_admin_value[open_basedir] = /usr/ictfax/:/usr/ictcore/:/usr/bin:/bin:/tmp/

Keep /usr/ictfax/ in that list. Leave it out and PHP cannot open the
interface at all, and every page answers “No input file specified”. Then reload both
services:

sudo systemctl reload httpd php-fpm

Disable selinux

sudo setenforce 0

Restart the apache service
Restart php-fpm service

sudo systemctl restart httpd
sudo systemctl restart php-fpm

Install the ictfax database

Open a MariaDB prompt first. On a fresh install the root account authenticates
over the socket, so run it through sudo:

sudo mysql -u root

Then run the statements below at the MariaDB [(none)]> prompt. Change
plsChangeIt to a real password, and use that same password in the
[db] section of /etc/ictcore.conf further down, or ICTFax will not
connect.

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

Now visit http://yourdomain/ictfax

Default Username: admin@ictcore.org

Default Password: helloAdmin

Log in by entering the default admin and password, which we provided you. Go to the administration panel, which is placed on the bottom of the side bar on left. Create a new user or edit the existing.

You can configure providers and accounts too. For further details visit Admin guide.

Configure the email-2-fax and fax-2-service, following the guide “4. EMAIL TO FAX / FAX TO EMAIL SERVICE (OPTIONAL)” from this link https://ictfax.org/content/ictfax-installation-guide

echo "ictcore" | sudo tee -a /etc/mail/trusted-users > /dev/null
echo "apache" | sudo tee -a /etc/mail/trusted-users > /dev/null
echo "FAX_DOMAIN.COM" | sudo tee -a /etc/mail/local-host-names > /dev/null
echo '@FAX_DOMAIN.COM ictcore' | sudo tee -a /etc/mail/virtusertable > /dev/null

To apply email related changes

sudo /etc/mail/make

Restart sendmail service so changes can take affect

sudo systemctl enable sendmail
sudo systemctl restart sendmail

in case if document not uploading then install “libtiff-tools” package

sudo yum install libtiff-tools -y

Restart freeswitch with service

sudo systemctl restart freeswitch

enter into freeswitch

fs_cli

Additional Configuration

if freeswitch is not starting then update following below


update listen_ip with 0.0.0.0 in /etc/freeswitch/autoload_configs/event_socket.conf.xml

if you want to restart freeswitch by service command then run the following scripts and services;

cat <<EOF | sudo tee /etc/systemd/system/freeswitch.service
[Unit]
Description=freeswitch
Wants=network-online.target
Requires=network.target local-fs.target
After=network.target network-online.target local-fs.target

[Service]
; service
Type=forking
Environment="DAEMON_OPTS=-nonat"
EnvironmentFile=-/etc/default/freeswitch
ExecStart=/usr/bin/freeswitch -ncwait ${DAEMON_OPTS}
RestartSec=90
Restart=always
; exec
;User=root
;Group=daemon
LimitCORE=infinity
LimitNOFILE=100000
LimitNPROC=60000
LimitSTACK=250000
LimitRTPRIO=infinity
LimitRTTIME=infinity
IOSchedulingClass=realtime
IOSchedulingPriority=2
CPUSchedulingPolicy=rr
CPUSchedulingPriority=89
UMask=0007
NoNewPrivileges=false

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl start freeswitch
sudo systemctl enable freeswitch

Install SSL Certificate

To add the CentOS 8 EPEL repository, run the following command:

sudo yum install epel-release -y

Now that you have access to the repository, install all of the required packages:

 sudo yum install certbot python3-certbot-apache mod_ssl -y

Add VirtualHost in httpd.conf file

Use a drop-in file rather than editing the main config, so a package update
cannot overwrite it. Replace yourdomain.com with your own hostname.

cat <<EOF | sudo tee /etc/httpd/conf.d/ictfax.conf
<VirtualHost *:80>
DocumentRoot "/usr/ictfax"
ServerName yourdomain.com
</VirtualHost>
EOF

restart Apache service

sudo systemctl restart httpd

Now that Certbot is installed, you can use it to request an SSL certificate for your domain.

sudo certbot --apache

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

# libaio comes from BaseOS on its own, but mysql-selinux does not get pulled in,
# and SELinux blocks the server without it. Do not switch the base repositories off.
sudo dnf install libaio mysql-selinux -y
sudo dnf install MariaDB-server MariaDB-client -y

Install Remi-repo & Epel-repo

sudo dnf install epel-release -y
sudo yum install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm -y

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

sudo dnf config-manager --enable crb
sudo yum install http://repo.okay.com.mx/centos/9/x86_64/release/okay-release-1-10.el9.noarch.rpm -y
sudo dnf install task-freeswitch -y

Install ICT-Release Repo for installing ICTCore and ICTFax

sudo yum install https://service.ictinnovations.com/repo/8/ict-release-8-5.el8.noarch.rpm -y

Install ICTCore

sudo dnf install firewalld -y
sudo systemctl enable --now firewalld
sudo yum install ictcore ictcore-fax ictcore-email ictcore-voice ictcore-freeswitch -y

Install ICTFax

sudo yum install ictfax -y

Install Other Dependencies

sudo yum install php php-fpm php-gd php-mysqlnd -y Install Imagic sudo yum install -y ImageMagick ImageMagick-devel
sudo yum install -y php-imagick
echo "extension=imagick.so" | sudo tee /etc/php.d/imagick.ini > /dev/null 
Install mcrypt (optional)

PHP 8.3 does not bundle mcrypt and ICTCore does not call it, so you can skip this section. If you do run it, the build asks for the libmcrypt prefix, which is why the answer is piped in, and the ini file is only written when the module actually built. Creating that ini without the module makes PHP print a warning on every run.

sudo yum install --enablerepo=epel php-devel php-pear libmcrypt libmcrypt-devel -y printf "\n" | sudo pecl install mcrypt [ -f /usr/lib64/php/modules/mcrypt.so ] && echo 'extension=mcrypt.so' | sudo tee /etc/php.d/mcrypt.ini > /dev/null Install imap sudo 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/"

For production, set it in the PHP-FPM pool instead. The line above only
applies to the /api tree, because it sits inside that Directory block. The
web interface is served from /usr/ictfax and gets no restriction at all.
Setting it on the pool covers every request the pool handles, and a script cannot lift
it with ini_set(). Add this to /etc/php-fpm.d/www.conf:

php_admin_value[open_basedir] = /usr/ictfax/:/usr/ictcore/:/usr/bin:/bin:/tmp/

Keep /usr/ictfax/ in that list. Leave it out and PHP cannot open the
interface at all, and every page answers “No input file specified”. Then reload both
services:

sudo systemctl reload httpd php-fpm

Disable selinux

sudo setenforce 0

Restart the apache service
Restart php-fpm service

sudo systemctl restart httpd
sudo systemctl restart php-fpm

Install the ictfax database

Open a MariaDB prompt first. On a fresh install the root account authenticates
over the socket, so run it through sudo:

sudo mysql -u root

Then run the statements below at the MariaDB [(none)]> prompt. Change
plsChangeIt to a real password, and use that same password in the
[db] section of /etc/ictcore.conf further down, or ICTFax will not
connect.

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

Now visit http://yourdomain/ictfax

Default Username: admin@ictcore.org

Default Password: helloAdmin

Log in by entering the default admin and password, which we provided you. Go to the administration panel, which is placed on the bottom of the side bar on left. Create a new user or edit the existing.

You can configure providers and accounts too. For further details visit Admin guide.

Configure the email-2-fax and fax-2-service, following the guide “4. EMAIL TO FAX / FAX TO EMAIL SERVICE (OPTIONAL)” from this link https://ictfax.org/content/ictfax-installation-guide

echo "ictcore" | sudo tee -a /etc/mail/trusted-users > /dev/null
echo "apache" | sudo tee -a /etc/mail/trusted-users > /dev/null
echo "FAX_DOMAIN.COM" | sudo tee -a /etc/mail/local-host-names > /dev/null
echo '@FAX_DOMAIN.COM ictcore' | sudo tee -a /etc/mail/virtusertable > /dev/null

To apply email related changes

sudo /etc/mail/make

Restart sendmail service so changes can take affect

sudo systemctl enable sendmail
sudo systemctl restart sendmail

in case if document not uploading then install “libtiff-tools” package

sudo yum install libtiff-tools -y

Restart freeswitch with service

sudo systemctl restart freeswitch

enter into freeswitch

fs_cli

Additional Configuration

if freeswitch is not starting then update following below


update listen_ip with 0.0.0.0 in /etc/freeswitch/autoload_configs/event_socket.conf.xml

if you want to restart freeswitch by service command then run the following scripts and services;

cat <<EOF | sudo tee /etc/systemd/system/freeswitch.service
[Unit]
Description=freeswitch
Wants=network-online.target
Requires=network.target local-fs.target
After=network.target network-online.target local-fs.target

[Service]
; service
Type=forking
Environment="DAEMON_OPTS=-nonat"
EnvironmentFile=-/etc/default/freeswitch
ExecStart=/usr/bin/freeswitch -ncwait ${DAEMON_OPTS}
RestartSec=90
Restart=always
; exec
;User=root
;Group=daemon
LimitCORE=infinity
LimitNOFILE=100000
LimitNPROC=60000
LimitSTACK=250000
LimitRTPRIO=infinity
LimitRTTIME=infinity
IOSchedulingClass=realtime
IOSchedulingPriority=2
CPUSchedulingPolicy=rr
CPUSchedulingPriority=89
UMask=0007
NoNewPrivileges=false

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl start freeswitch
sudo systemctl enable freeswitch

Install SSL Certificate

To add the CentOS 8 EPEL repository, run the following command:

sudo yum install epel-release -y

Now that you have access to the repository, install all of the required packages:

 sudo yum install certbot python3-certbot-apache mod_ssl -y

Add VirtualHost in httpd.conf file

Use a drop-in file rather than editing the main config, so a package update
cannot overwrite it. Replace yourdomain.com with your own hostname.

cat <<EOF | sudo tee /etc/httpd/conf.d/ictfax.conf
<VirtualHost *:80>
DocumentRoot "/usr/ictfax"
ServerName yourdomain.com
</VirtualHost>
EOF

restart Apache service

sudo systemctl restart httpd

Now that Certbot is installed, you can use it to request an SSL certificate for your domain.

sudo certbot --apache

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/rhel8-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
module_hotfixes = 1

module_hotfixes matters on EL8. Without it dnf answers All matches were filtered out by modular filtering and refuses to install, because the AppStream mariadb module claims those package names. Disabling that module does not lift it.

Install required dependencies

sudo dnf install perl-DBI boost-program-options socat -y
sudo dnf install boost boost-program-options -y

Install the MariaDB

# libaio comes from BaseOS on its own, but mysql-selinux does not get pulled in,
# and SELinux blocks the server without it. Do not switch the base repositories off.
sudo dnf install libaio mysql-selinux -y
sudo dnf install MariaDB-server MariaDB-client -y

Install Remi-repo & Epel-repo

sudo dnf install epel-release -y
sudo yum install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm -y

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 from this link

sudo yum install http://repo.okay.com.mx/centos/8/x86_64/release/okay-release-1-10.el8.noarch.rpm -y

Install ICT-Release Repo for install ICTCore and ICTFax

sudo yum install https://service.ictinnovations.com/repo/8/ict-release-8-5.el8.noarch.rpm -y

Install ICTCore

sudo dnf install firewalld -y
sudo systemctl enable --now firewalld
sudo yum install ictcore ictcore-fax ictcore-email ictcore-voice ictcore-freeswitch -y

Install ICTFax

sudo yum install ictfax -y

Install Other Dependencies

sudo yum install php php-fpm php-gd php-mysqlnd -y Install Imagic sudo yum install -y ImageMagick ImageMagick-devel 
sudo pecl install imagick if pecl command giving error then use: sudo yum install -y php-imagick
echo "extension=imagick.so" | sudo tee /etc/php.d/imagick.ini > /dev/null Install mcrypt (optional)

PHP 8.3 does not bundle mcrypt and ICTCore does not call it, so you can skip this section. If you do run it, the build asks for the libmcrypt prefix, which is why the answer is piped in, and the ini file is only written when the module actually built. Creating that ini without the module makes PHP print a warning on every run.

sudo yum install --enablerepo=epel php-devel php-pear libmcrypt libmcrypt-devel -y printf "\n" | sudo pecl install mcrypt [ -f /usr/lib64/php/modules/mcrypt.so ] && echo 'extension=mcrypt.so' | sudo tee /etc/php.d/mcrypt.ini > /dev/null Install imap sudo 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/"

For production, set it in the PHP-FPM pool instead. The line above only
applies to the /api tree, because it sits inside that Directory block. The
web interface is served from /usr/ictfax and gets no restriction at all.
Setting it on the pool covers every request the pool handles, and a script cannot lift
it with ini_set(). Add this to /etc/php-fpm.d/www.conf:

php_admin_value[open_basedir] = /usr/ictfax/:/usr/ictcore/:/usr/bin:/bin:/tmp/

Keep /usr/ictfax/ in that list. Leave it out and PHP cannot open the
interface at all, and every page answers “No input file specified”. Then reload both
services:

sudo systemctl reload httpd php-fpm

Disable selinux

sudo setenforce 0

Restart the apache service
Restart php-fpm service

sudo systemctl restart httpd
sudo systemctl restart php-fpm

Install the ictfax database

Open a MariaDB prompt first. On a fresh install the root account authenticates
over the socket, so run it through sudo:

sudo mysql -u root

Then run the statements below at the MariaDB [(none)]> prompt. Change
plsChangeIt to a real password, and use that same password in the
[db] section of /etc/ictcore.conf further down, or ICTFax will not
connect.

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

Now visit http://yourdomain/ictfax 

Default Username: admin@ictcore.org

Default Password: helloAdmin

Log in by entering the default admin and password, which we provided you. Go to the administration panel, which is placed on the bottom of the side bar on left. Create a new user or edit the existing.

You can configure providers and accounts too. For further details visit Admin guide.

Configure the email-2-fax and fax-2-service, following the guide “4. EMAIL TO FAX / FAX TO EMAIL SERVICE (OPTIONAL)” from this link https://ictfax.org/content/ictfax-installation-guide

echo "ictcore" | sudo tee -a /etc/mail/trusted-users > /dev/null
echo "apache" | sudo tee -a /etc/mail/trusted-users > /dev/null
echo "FAX_DOMAIN.COM" | sudo tee -a /etc/mail/local-host-names > /dev/null
echo '@FAX_DOMAIN.COM ictcore' | sudo tee -a /etc/mail/virtusertable > /dev/null

To apply email related changes

sudo /etc/mail/make

Restart sendmail service so changes can take affect

sudo systemctl enable sendmail
sudo systemctl restart sendmail

in case if document not uploading then install “libtiff-tools” package

sudo yum install libtiff-tools -y

Restart freeswitch with service

sudo systemctl restart freeswitch

enter into freeswitch

fs_cli

Additional Configuration

if freeswitch is not starting then update following below


update listen_ip with 0.0.0.0 in /etc/freeswitch/autoload_configs/event_socket.conf.xml

if you want to restart freeswitch by service command then run the following scripts and services;

cat <<EOF | sudo tee /etc/systemd/system/freeswitch.service
[Unit]
Description=freeswitch
Wants=network-online.target
Requires=network.target local-fs.target
After=network.target network-online.target local-fs.target

[Service]
; service
Type=forking
Environment="DAEMON_OPTS=-nonat"
EnvironmentFile=-/etc/default/freeswitch
ExecStart=/usr/bin/freeswitch -ncwait ${DAEMON_OPTS}
RestartSec=90
Restart=always
; exec
;User=root
;Group=daemon
LimitCORE=infinity
LimitNOFILE=100000
LimitNPROC=60000
LimitSTACK=250000
LimitRTPRIO=infinity
LimitRTTIME=infinity
IOSchedulingClass=realtime
IOSchedulingPriority=2
CPUSchedulingPolicy=rr
CPUSchedulingPriority=89
UMask=0007
NoNewPrivileges=false

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl start freeswitch
sudo systemctl enable freeswitch

Install SSL Certificate

To add the CentOS 8 EPEL repository, run the following command:

sudo yum install epel-release -y

Now that you have access to the repository, install all of the required packages:

 sudo yum install certbot python3-certbot-apache mod_ssl -y

Add a VirtualHost as a drop-in file rather than editing the main config, so a
package update cannot overwrite it. Replace yourdomain.com with your own
hostname.

cat <<EOF | sudo tee /etc/httpd/conf.d/ictfax.conf
<VirtualHost *:80>
DocumentRoot "/usr/ictfax"
ServerName yourdomain.com
</VirtualHost>
EOF

restart Apache service

sudo systemctl restart httpd

Now that Certbot is installed, you can use it to request an SSL certificate for your domain.

sudo certbot --apache

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/rhel8-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
module_hotfixes = 1

module_hotfixes matters on EL8. Without it dnf answers All matches were filtered out by modular filtering and refuses to install, because the AppStream mariadb module claims those package names. Disabling that module does not lift it.

Install required dependencies

sudo dnf install perl-DBI boost-program-options socat -y
sudo dnf install boost boost-program-options -y

Install the MariaDB

# libaio comes from BaseOS on its own, but mysql-selinux does not get pulled in,
# and SELinux blocks the server without it. Do not switch the base repositories off.
sudo dnf install libaio mysql-selinux -y
sudo dnf install MariaDB-server MariaDB-client -y

Install Remi-repo & Epel-repo

sudo dnf install epel-release -y
sudo yum install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm -y

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 from this link

sudo yum install http://repo.okay.com.mx/centos/8/x86_64/release/okay-release-1-10.el8.noarch.rpm -y

Install ICT-Release Repo for install ICTCore and ICTFax

sudo yum install https://service.ictinnovations.com/repo/8/ict-release-8-5.el8.noarch.rpm -y

Install ICTCore

sudo dnf install firewalld -y
sudo systemctl enable --now firewalld
sudo yum install ictcore ictcore-fax ictcore-email ictcore-voice ictcore-freeswitch -y

Install ICTFax

sudo yum install ictfax -y

Install Other Dependencies

sudo yum install php php-fpm php-gd php-mysqlnd -y Install Imagic sudo yum install -y ImageMagick ImageMagick-devel 
sudo pecl install imagick if pecl command giving error then use: sudo yum install -y php-imagick
echo "extension=imagick.so" | sudo tee /etc/php.d/imagick.ini > /dev/null Install mcrypt (optional)

PHP 8.3 does not bundle mcrypt and ICTCore does not call it, so you can skip this section. If you do run it, the build asks for the libmcrypt prefix, which is why the answer is piped in, and the ini file is only written when the module actually built. Creating that ini without the module makes PHP print a warning on every run.

sudo yum install --enablerepo=epel php-devel php-pear libmcrypt libmcrypt-devel -y printf "\n" | sudo pecl install mcrypt [ -f /usr/lib64/php/modules/mcrypt.so ] && echo 'extension=mcrypt.so' | sudo tee /etc/php.d/mcrypt.ini > /dev/null Install imap sudo 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/"

For production, set it in the PHP-FPM pool instead. The line above only
applies to the /api tree, because it sits inside that Directory block. The
web interface is served from /usr/ictfax and gets no restriction at all.
Setting it on the pool covers every request the pool handles, and a script cannot lift
it with ini_set(). Add this to /etc/php-fpm.d/www.conf:

php_admin_value[open_basedir] = /usr/ictfax/:/usr/ictcore/:/usr/bin:/bin:/tmp/

Keep /usr/ictfax/ in that list. Leave it out and PHP cannot open the
interface at all, and every page answers “No input file specified”. Then reload both
services:

sudo systemctl reload httpd php-fpm

Disable selinux

sudo setenforce 0

Restart the apache service
Restart php-fpm service

sudo systemctl restart httpd
sudo systemctl restart php-fpm

Install the ictfax database

Open a MariaDB prompt first. On a fresh install the root account authenticates
over the socket, so run it through sudo:

sudo mysql -u root

Then run the statements below at the MariaDB [(none)]> prompt. Change
plsChangeIt to a real password, and use that same password in the
[db] section of /etc/ictcore.conf further down, or ICTFax will not
connect.

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

Now visit http://yourdomain/ictfax 

Default Username: admin@ictcore.org

Default Password: helloAdmin

Log in by entering the default admin and password, which we provided you. Go to the administration panel, which is placed on the bottom of the side bar on left. Create a new user or edit the existing.

You can configure providers and accounts too. For further details visit Admin guide.

Configure the email-2-fax and fax-2-service, following the guide “4. EMAIL TO FAX / FAX TO EMAIL SERVICE (OPTIONAL)” from this link https://ictfax.org/content/ictfax-installation-guide

echo "ictcore" | sudo tee -a /etc/mail/trusted-users > /dev/null
echo "apache" | sudo tee -a /etc/mail/trusted-users > /dev/null
echo "FAX_DOMAIN.COM" | sudo tee -a /etc/mail/local-host-names > /dev/null
echo '@FAX_DOMAIN.COM ictcore' | sudo tee -a /etc/mail/virtusertable > /dev/null

To apply email related changes

sudo /etc/mail/make

Restart sendmail service so changes can take affect

sudo systemctl enable sendmail
sudo systemctl restart sendmail

in case if document not uploading then install “libtiff-tools” package

sudo yum install libtiff-tools -y

Restart freeswitch with service

sudo systemctl restart freeswitch

enter into freeswitch

fs_cli

Additional Configuration

if freeswitch is not starting then update following below


update listen_ip with 0.0.0.0 in /etc/freeswitch/autoload_configs/event_socket.conf.xml

if you want to restart freeswitch by service command then run the following scripts and services;

cat <<EOF | sudo tee /etc/systemd/system/freeswitch.service
[Unit]
Description=freeswitch
Wants=network-online.target
Requires=network.target local-fs.target
After=network.target network-online.target local-fs.target

[Service]
; service
Type=forking
Environment="DAEMON_OPTS=-nonat"
EnvironmentFile=-/etc/default/freeswitch
ExecStart=/usr/bin/freeswitch -ncwait ${DAEMON_OPTS}
RestartSec=90
Restart=always
; exec
;User=root
;Group=daemon
LimitCORE=infinity
LimitNOFILE=100000
LimitNPROC=60000
LimitSTACK=250000
LimitRTPRIO=infinity
LimitRTTIME=infinity
IOSchedulingClass=realtime
IOSchedulingPriority=2
CPUSchedulingPolicy=rr
CPUSchedulingPriority=89
UMask=0007
NoNewPrivileges=false

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl start freeswitch
sudo systemctl enable freeswitch

Install SSL Certificate

To add the CentOS 8 EPEL repository, run the following command:

sudo yum install epel-release -y

Now that you have access to the repository, install all of the required packages:

 sudo yum install certbot python3-certbot-apache mod_ssl -y

Add a VirtualHost as a drop-in file rather than editing the main config, so a
package update cannot overwrite it. Replace yourdomain.com with your own
hostname.

cat <<EOF | sudo tee /etc/httpd/conf.d/ictfax.conf
<VirtualHost *:80>
DocumentRoot "/usr/ictfax"
ServerName yourdomain.com
</VirtualHost>
EOF

restart Apache service

sudo systemctl restart httpd

Now that Certbot is installed, you can use it to request an SSL certificate for your domain.

sudo certbot --apache

Install ICTFax Version 5.0

Please follow the steps below to install the ICTFax version 5.0

To install above requirements, first of all we need to install their respective repositories

sudo yum install -y https://service.ictinnovations.com/repo/7/ict-release-7-4.el7.centos.noarch.rpm
sudo amazon-linux-extras install epel -y 

SignalWire Personal Access Tokens (PAT)s are required to access FreeSWITCH install packages.

click the below link and follow the steps to create signalwire account and add personal access token. after this replace your signalwire username and personal access token in below first and second commands respectively.

How To Create a SignalWire Personal Access Token

echo "signalwire" | sudo tee /etc/yum/vars/signalwireusername > /dev/null
echo "TOKEN" | sudo tee /etc/yum/vars/signalwiretoken > /dev/null
sudo yum install -y https://$(< /etc/yum/vars/signalwireusername):$(< /etc/yum/vars/signalwiretoken)@freeswitch.signalwire.com/repo/yum/centos-release/freeswitch-release-repo-0-1.noarch.rpm epel-release

Disable SELinux, before proceeding further, Check the SELinux state by:

getenforce 

and then disable with

sudo setenforce 0

If the output is either permissive or disabled, skip this task and follow the instructions given below, otherwise disable it first and then follow the instructions:

2. ICTCore Installation

ICTCore is main dependency of ICTFax, If you have proper repositories pre installed (see above) then all other dependencies will be installed along with ICTCore. We just need to issue following command:

sudo yum -y install ictcore ictcore-fax ictcore-email ictcore-voice

Setup ICTFax Database

Login to mysql and enter these commands one by one:

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/fax.sql;
SOURCE /usr/ictcore/db/email.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;

Now update /usr/ictcore/etc/ictcore.conf files with database credential 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 = ictfaxuser
pass = plsChangeIt
name = ictfax

3. ICTFax Installation

Now install ICTFax web interface

sudo yum install ictfax -y

configure the document root in apache “/usr/ictfax”

open the apache configuration file /etc/httpd/conf/httpd.conf and then search for document root. replace existing document /usr/ictbroadcast/wwwroot to /usr/ictfax and save the file.

Now Restart the apache by typing the following command in the terminal

sudo systemctl restart httpd

Now visit http://yourdomain/ictfax 

Default Username: admin@ictcore.org

Default Password: helloAdmin

Log in by entering the default admin and password, which we provided you. Go to the administration panel, which is placed on the bottom of the side bar on left. Create a new user or edit the existing.

You can configure providers and accounts too. For further details visit Admin guide.

4. Email to Fax / Fax to Email service (optional)

make sure that your desired domain’s MX records are properly configured for email2fax server.

enable sendmail to listen on public ip address look for following line in /etc/mail/sendmail.mc

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

and change line mentioned above into

DAEMON_OPTIONS(`Port=smtp, Addr=0.0.0.0, Name=MTA')dnl

Add ictcore and apache to list of trusted user

echo "ictcore" | sudo tee -a /etc/mail/trusted-users > /dev/null
echo "apache" | sudo tee -a /etc/mail/trusted-users > /dev/null

Add your domain name in allowed local domain list to let sendmail receive mails for that domain

echo "FAX_DOMAIN.COM" | sudo tee -a /etc/mail/local-host-names > /dev/null

route all mails for none-existing addresses into ictcore mailbox so we can receive emails for addresses like xyz_number@FAX_DOMAIN.COM

echo '@FAX_DOMAIN.COM ictcore' | sudo tee -a /etc/mail/virtusertable > /dev/null

to apply email related changes

sudo /etc/mail/make

restart sendmail service so changes can take affect

sudo systemctl enable sendmail
sudo systemctl restart sendmail

edit /usr/ictcore/etc/ictcore.conf and update mailbox section like following

folder = /var/spool/email/ictcore

NOTE: make sure that port (25) is not blocked by firewall. if so execute following line to allow smtp port in firewall:

/sbin/iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT    # smtp
/etc/init.d/iptables save

Check dialplan table from MySQL, run following command. if nothing in dialplan table

cd /usr/ictcore/bin/sendmail
./email_to_fax

Now you are ready to send faxes through your email. See Admin / User Guide for further details.

Install SSL Certificate

Install following package in Server

sudo yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional

 

sudo yum install certbot python2-certbot-apache -y

Add VirtualHost in httpd.conf file

sudo vi /etc/httpd/conf/httpd.conf

then add following lines in httpd.conf file

<VirtualHost *:80>

DocumentRoot “/usr/ictfax”

ServerName yourdomain.com

</VirtualHost>

restart Apache service

sudo systemctl restart httpd

Now that Certbot is installed, you can use it to request an SSL certificate for your domain.

sudo certbot --apache

Install ICTFax Version 5.0

Please follow the steps below to install the ICTFax  version 5.0
To install above requirements, first of all we need to install their respective repositories

sudo yum install -y https://service.ictinnovations.com/repo/7/ict-release-7-4.el7.centos.noarch.rpm
sudo yum install -y epel-release 

SignalWire Personal Access Tokens (PAT)s are required to access FreeSWITCH install packages.

click the below link and follow the steps to create signalwire account and add personal access token. after this replace your signalwire username and personal access token in below first and second commands respectively.

How To Create a SignalWire Personal Access Token

echo "signalwire" | sudo tee /etc/yum/vars/signalwireusername > /dev/null
echo "TOKEN" | sudo tee /etc/yum/vars/signalwiretoken > /dev/null
sudo yum install -y https://$(< /etc/yum/vars/signalwireusername):$(< /etc/yum/vars/signalwiretoken)@freeswitch.signalwire.com/repo/yum/centos-release/freeswitch-release-repo-0-1.noarch.rpm epel-release

Disable SELinux, before proceeding further, Check the SELinux state by:

getenforce 

and then disable with

sudo setenforce 0

If the output is either permissive or disabled, skip this task and follow the instructions given below, otherwise disable it first and then follow the instructions:

2. ICTCore Installation

ICTCore is main dependency of ICTFax, If you have proper repositories pre installed (see above) then all other dependencies will be installed along with ICTCore. We just need to issue following command:

sudo yum -y install ictcore ictcore-fax ictcore-email ictcore-voice

Setup ICTFax Database

Login to mysql and enter these commands one by one:

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/fax.sql;
SOURCE /usr/ictcore/db/email.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;

Now update /usr/ictcore/etc/ictcore.conf files with database credential 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 = ictfaxuser
pass = plsChangeIt
name = ictfax

3. ICTFax Installation

Now install ICTFax web interface

sudo yum install ictfax -y

and configure the document root in Apache “/usr/ictfax”

open the Apache configuration file /etc/httpd/conf/httpd.conf and then search for the document root. replace existing document /usr/ictbroadcast/wwwroot to /usr/ictfax and save the file.

Now Restart the Apache by typing the following command in the terminal

sudo systemctl restart httpd

Now visit http://yourdomain/ictfax 

Default Username: admin@ictcore.org

Default Password: helloAdmin

Log in by entering the default admin and password, which we provided you. Go to the administration panel, which is placed on the bottom of the side bar on left. Create a new user or edit the existing.

You can configure providers and accounts too. For further details visit Admin guide.

4. Email to Fax / Fax to Email service (optional)

make sure that your desired domain’s MX records are properly configured for email2fax server.

enable sendmail to listen on public ip address look for following line in /etc/mail/sendmail.mc

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

and change line mentioned above into

DAEMON_OPTIONS(`Port=smtp, Addr=0.0.0.0, Name=MTA')dnl

Add ictcore and apache to list of trusted user

echo "ictcore" | sudo tee -a /etc/mail/trusted-users > /dev/null
echo "apache" | sudo tee -a /etc/mail/trusted-users > /dev/null

Add your domain name in allowed local domain list to let sendmail receive mails for that domain

echo "FAX_DOMAIN.COM" | sudo tee -a /etc/mail/local-host-names > /dev/null

route all mails for none-existing addresses into ictcore mailbox so we can receive emails for addresses like xyz_number@FAX_DOMAIN.COM

echo '@FAX_DOMAIN.COM ictcore' | sudo tee -a /etc/mail/virtusertable > /dev/null

to apply email related changes

sudo /etc/mail/make

restart sendmail service so changes can take affect

sudo systemctl enable sendmail
sudo systemctl restart sendmail

edit /usr/ictcore/etc/ictcore.conf and update mailbox section like following

folder = /var/spool/email/ictcore

NOTE: make sure that port (25) is not blocked by firewall. if so execute following line to allow smtp port in firewall:

/sbin/iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT    # smtp
/etc/init.d/iptables save

Check dialplan table from MySQL, run following command. if nothing in dialplan table

cd /usr/ictcore/bin/sendmail
./email_to_fax

Now you are ready to send faxes through your email. See Admin / User Guide for further details.

Install SSL Certificate

Install following package in Server

sudo yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional

 

sudo yum install certbot python2-certbot-apache -y

Add VirtualHost in httpd.conf file

sudo vi /etc/httpd/conf/httpd.conf

then add following lines in httpd.conf file

<VirtualHost *:80>

DocumentRoot “/usr/ictfax”

ServerName yourdomain.com

</VirtualHost>

restart Apache service

sudo systemctl restart httpd

Now that Certbot is installed, you can use it to request an SSL certificate for your domain.

sudo certbot --apache

Step 1: Visit the below link to Install Docker According to Required OS

https://docs.docker.com/engine/install/                
  • Restart the docker service
sudo systemctl restart docker 
  • Pull the repo from dockerhub
docker pull ictinnovations/ictfax
  • Create the container out of image
docker run -d --name ictcontainer -p 80:80 -p 443:443 -p 3306:3306 docker.io/ictinnovations/ictfax tail -f /bin/bash
  • Checking the running container id and status
docker ps -a
  • Enter/Attached into container
docker exec --privileged -it container_id /bin/bash

Step 2: Run following commands after Enter into container Image

  • Replace Document root to /usr/ictfax in vi /etc/httpd/conf/httpd.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/"

For production, set it in the PHP-FPM pool instead. The line above only
applies to the /api tree, because it sits inside that Directory block. The
web interface is served from /usr/ictfax and gets no restriction at all.
Setting it on the pool covers every request the pool handles, and a script cannot lift
it with ini_set(). Add this to /etc/php-fpm.d/www.conf:

php_admin_value[open_basedir] = /usr/ictfax/:/usr/ictcore/:/usr/bin:/bin:/tmp/

Keep /usr/ictfax/ in that list. Leave it out and PHP cannot open the
interface at all, and every page answers “No input file specified”. Then reload both
services:

sudo systemctl reload httpd php-fpm
  • Restart apache
/usr/sbin/httpd -k start
or
sudo systemctl restart httpd
  • Restart php-fpm
/usr/sbin/php-fpm
or
Service php-fpm restart
  • Run following commands for properly configuration of mariadb

Create mysql.sock file in /var/lib/mysql

sudo vi /var/lib/mysql/mysql.sock

Add following lines in /etc/my.cnf

[mysqld]
#mysqli.allow_local_infile=ON
event-scheduler=ON
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
  • Restart mysql/mariadb service
sudo systemctl restart mysqld
or
/usr/bin/mysqld_safe --datadir='/var/lib/mysql' --user=mysql &

Disable selinux

sudo setenforce 0

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

Now visit http://yourdomain/ictfax

Default Username: admin@ictcore.org

Default Password: helloAdmin

Log in by entering the default admin and password, which we provided you. Go to the administration panel, which is placed on the bottom of the side bar on left. Create a new user or edit the existing.

You can configure providers and accounts too. For further details visit Admin guide.

Configure the email-2-fax and fax-2-service, following the guide "4. EMAIL TO FAX / FAX TO EMAIL SERVICE (OPTIONAL)" from this link https://ictfax.org/content/ictfax-installation-guide

echo "ictcore" | sudo tee -a /etc/mail/trusted-users > /dev/null
echo "apache" | sudo tee -a /etc/mail/trusted-users > /dev/null

echo "FAX_DOMAIN.COM" | sudo tee -a /etc/mail/local-host-names > /dev/null

echo '@FAX_DOMAIN.COM ictcore' | sudo tee -a /etc/mail/virtusertable > /dev/null

To apply email related changes

sudo /etc/mail/make

Restart sendmail service so changes can take affect

sudo systemctl enable sendmail
sudo systemctl restart sendmail

in case if document not uploading then install "libtiff-tools" package

sudo yum install libtiff-tools -y

Restart freeswitch service

sudo systemctl restart freeswitch

enter into freeswitch

fs_cli

Additional Configuration

if freeswitch is not starting then update following below

update listen_ip with 0.0.0.0 in /etc/freeswitch/autoload_configs/event_socket.conf.xml

if you want to restart freeswitch by service command then run the following scripts and services;

cat <<EOF | sudo tee /etc/systemd/system/freeswitch.service
[Unit]
Description=freeswitch
Wants=network-online.target
Requires=network.target local-fs.target
After=network.target network-online.target local-fs.target

[Service]
; service
Type=forking
Environment="DAEMON_OPTS=-nonat"
EnvironmentFile=-/etc/default/freeswitch
ExecStart=/usr/bin/freeswitch -ncwait ${DAEMON_OPTS}
RestartSec=90
Restart=always
; exec
;User=root
;Group=daemon
LimitCORE=infinity
LimitNOFILE=100000
LimitNPROC=60000
LimitSTACK=250000
LimitRTPRIO=infinity
LimitRTTIME=infinity
IOSchedulingClass=realtime
IOSchedulingPriority=2
CPUSchedulingPolicy=rr
CPUSchedulingPriority=89
UMask=0007
NoNewPrivileges=false

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl start freeswitch
sudo systemctl enable freeswitch

First Fax

Sending First FAX

  • Login as admin
  • Add gateway / trunk for outgoing fax at “Administration” => “Provider Trunks”
  • Send new fax via “Send Fax” => “New Outbound Fax” or via email2fax
  • From user registration email address send an email with following values
  • To: faxnumber@FAX_DOMAIN.COM
  • Subject: Anything
  • Body:
  • Attachment: pdf file

Send Fax

Receiving First FAX

  • Point DIDs to fax server
  • Configure freeswitch to receive traffic for this DID provider.
  • Usually only IP address of the DID provider is sufficient to be added in ACL.
  • In Web GUI login as admin
  • Add incoming did number at “DID Numbers” => “Add DID”
  • Assign a DID number to user from “DID Number” => “Assign”
  • Click on “Settings” => “Incoming Numbers”
  • Forward fax by selecting “Forward” and select “Fax to Email”
  • Send test fax to selected did

Receive Fax

Useful links

Starting with REST APIs for FAX Starting with REST APIs for FAX

Complete REST API Guide for ICTFax Complete REST API Guide for ICTFax

Prefer to read the source first?

Everything this guide installs is public. The application is ICTFax on GitHub and the framework underneath it is ICTCore, so if a step here does not match what you see on your server, the install scripts in those repositories are the ground truth. If you would rather skip the manual steps entirely, the official Docker image brings up the whole stack in one command.

Related Articles