SIP SoftSwitch. All core development is completed (including Voicemail), development is now focusing on extended applications (such as IP Centrex).
Call Processing using Middleware
CCNQ4 uses the concept of middleware (similar to the ones used by Connect, ExpressJS, ...) to simplify writing dynamic call-handling applications.
-
useful-wind, a middleware-based framework to build applications for FreeSwitch.
-
thinkable-ducks, a npm package and Docker.IO image extending
useful-wind
with a REST interface and Socket.IO event notifications (to the spicy-action
proxy); the Docker.IO image embeds FreeSwitch.
Available middlewares / applications:
Infrastructure
-
docker.freeswitch, docker.couchdb, etc. — CCNQ4 relies on docker.io instead of Debian packages which were the norm for CCNQ3.
-
ccnq4-opensips, OpenSIPS-as-Docker-image integrated with configuration, CouchDB interfaces, REST management, ... (includes royal-thing, a tool to automatically restart an OpenSIPS registrant server on changes).
-
willing-toothbrush, the CouchDB-backed DNS server.
-
spicy-action, a web and Socket.IO proxy to allow browser-side clients, back-ends, and CouchDB, to exchange data.
-
nifty-ground, the distributed sniffer, integrated with
spicy-action
, delivered as a Docker.IO container.
-
ethereal-banana and absurd-clover, browser-side tools to handle sniffer traces and CDR statistics.
-
proud-thumb, demonstration browser tool showing call progress in real-time.
-
nimble-direction, distributed CouchDB toolbox — used to ensure individual call-processing servers continue working even in case of failure or unreachability of the master-master, main provisioning database.
-
cuddly, a devops notification framework, simple to use and deploy, based on Socket.IO.
-
gabby-potato, a Socket.IO-controlled FreeSwitch instance meant to be used as a generic client emulator and call-generator for automated testing.
FreeSwitch XML Configuration
-
acoustic-line, the CoffeeScript templating system used to generate FreeSwitch XML configurations.
-
bumpy-lawyer, FreeSwitch phrases for pronunciation of numbers, spelling words, etc.
FreeSwitch interaction with Node.js
-
esl, the Node.js Promise-based interface to FreeSwitch's event socket (inbound and outbound).