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]:urlmust 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 hasmode = communityhere, 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 |