PHP unified communications framework. One REST API over voice, fax, SMS and email.
1.3K
You want your application to place a call, drop a voicemail, send a fax and text the result to a manager. You do not want to learn FreeSWITCH dialplan XML, Kannel config and Sendmail routing to get there.
That gap is what ICTCore fills. It's a PHP communications framework that sits between your business logic and the switches, and exposes the whole thing as a REST API. You write the scenario, ICTCore deals with the telephony.
Licensed MPL-2.0.
Most telephony stacks treat voice, fax, SMS and email as four separate products that happen to be installed on the same box. ICTCore treats them as one vocabulary. A transmission is a transmission whether it's a call or a fax, so an inbound fax can trigger an email, a finished call can trigger an SMS, and you write that rule once instead of three times.
That's the part that makes it a framework rather than a bundle, and it's the reason projects keep getting built on it:
docker run -d --name ictcore \
-p 8080:80 -p 8443:443 \
-p 5060:5060/udp -p 5060:5060/tcp \
-p 16384-16484:16384-16484/udp \
ictinnovations/ictcore:latest
Give it a minute or two on first boot. The container provisions MariaDB, loads the schema, generates a TLS certificate and starts FreeSWITCH before the API answers. Then http://localhost:8080/api/ is live.
Useful environment variables: ICTCORE_HOST for the hostname the API advertises, DB_HOST / DB_PORT / DB_NAME / DB_USER / DB_PASS to point at an external MariaDB instead of the bundled one, and FS_ESL_PASSWORD for the FreeSWITCH event socket. Worth mounting: /usr/ictcore/data, /usr/ictcore/log, and /var/lib/mysql if you keep the bundled database.
Rocky Linux 8 with FreeSWITCH 1.10.12, PHP 7.4, Apache and MariaDB wired together, rebuilt from the GitHub repository on every push. The build only publishes after a smoke test boots the container, waits for the REST API, checks the event socket is listening and confirms the schema landed, so a tag that exists is a tag that started.
The old January 2018 CentOS 7 tag is gone. CentOS 7 stopped receiving updates in June 2024, so there was no honest way to keep offering it.
ICTCore is a framework, so this image gives you an API and nothing to log into. There's nothing to screenshot here, because the interface belongs to whatever you build on top.
If you want a finished product with a web interface, pull ictinnovations/ictfax or ictinnovations/ictdialer. Both build this same stack and add a dashboard on top, and it looks like this:

Every counter on that page is an ICTCore transmission. The job list underneath is the same data the REST API returns:

git clone https://github.com/ictinnovations/ictcore.git
cd ictcore
docker build -f docker/Dockerfile -t ictcore:dev .
Documentation and the developer guide are at ictcore.org. Gateways currently supported are FreeSWITCH for voice and fax, Kannel for SMS, and Sendmail for email.
Built and maintained by ICT Innovations.
Content type
Image
Digest
sha256:8b205d66a…
Size
250.4 MB
Last updated
about 1 month ago
docker pull ictinnovations/ictcore