/* BEGIN BLOG-CLOSE-CHAT */ /* END BLOG-CLOSE-CHAT */

ICTCore Configuration

ICTCore is configured via /usr/ictcore/etc/ictcore.conf.

Config File Structure

[company]
name = ICTPBX

[security] private_key = /usr/ictcore/etc/ssh/ib_node public_key = /usr/ictcore/etc/ssh/ib_node.pub

[db] host = localhost port = 3306 user = ictfax name = ictfax type = mysql pass = “<generated at install>”

[freeswitch] user = user password = <random value generated at install> host = 127.0.0.1 port = 8021

[domain] name = yourdomain.com

The installer generates the database and ESL passwords for you. The ESL password in [freeswitch] has to match the one in /etc/freeswitch/autoload_configs/event_socket.conf.xml.

Other Sections

  • [website]: url must be the public https URL of your portal. If it still says http after you switch to HTTPS, logins fail.
  • [fusionpbx]: the PostgreSQL PBX database (host, port, name, user, pass).
  • [sendmail]: the SMTP server ICTCore sends email through (from, host, port, user, pass).
  • [signalwire_sms]: your SignalWire details for two-way SMS (Service Provider Edition).
  • [edition]: a Community Edition install has mode = community here, which turns off Service Provider features such as branding.

JWT Keys

ICTCore uses RS256 JWT for authentication. Generate a keypair if not already present:

ssh-keygen -t rsa -b 2048 -f /usr/ictcore/etc/ssh/ib_node -N ""

Route Cache

After uploading or changing any API PHP class, clear the route cache and reload PHP-FPM:

rm -f /usr/ictcore/cache/urlMap.cache /usr/ictcore/cache/*.php
systemctl reload php-fpm

Without this, ICTCore will serve stale routes and new endpoints won’t be found.

Key Paths

Path Purpose
/usr/ictcore/core/Api/ REST API class files
/usr/ictcore/wwwroot Apache DocumentRoot for /api
/usr/ictcore/cache/ Route cache (clear after changes)
/usr/ictcore/etc/ictcore.conf Main config