Skip to content
Overview of the CCNQ4 SIP softswitch
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information. remove reference to exultant-songs, which has been merged Aug 19, 2017


SIP SoftSwitch. All core development is completed (including Voicemail and IP Centrex), development is now focusing on extended applications (such as Call-Center).

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:

  • tough-rate, LCR engine; provided as a Docker image with FreeSwitch, a REST interface and Socket.IO notifications. Also available is its munin plugin.
  • huge-play, the base SBC middleware for CCNQ4.
  • well-groomed-feast, the CouchDB-backed voicemail.
  • brown-pencil, an Interactive Voice Service for the French "RIO fixe".
  • flat-ornament, parametered execution of data scripts
  • earthy-slave, call rating.


  • docker.freeswitch, docker.couchdb, etc. — CCNQ4 relies on 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.
  • rightful-hot-server, app conventions for RioJS+ZappaJS — server-side.
  • rightful-hot, app conventions for RiotJS+ZappaJS — client-side.
  • rough-produce, log support events.
  • fr-sounds, French audio files for FreeSwitch, along with ordinary-tail, audio files for new services.
  • 2015-rmll-isp, a presentation about voice for ISP (in French).
  • incomplete: calm-belief, voicemail database cleanups.
  • exultant-sounds, click-to-dial over → now part of huge-play.
  • zesty-vessel, socket-to-mail service.
  • spicy-action-user, user parameters (locale, timezone) for spicy-action.
  • charming-circle, per-user database (for voicemail, provisioning, …).
  • astonishing-competition, CDR aggregation (pre-invoicing).
  • numbering-plans, International Numbering Plans.
  • entertaining-crib, CDR rating.
  • chunky-grade, provisioning validation.
  • frantic-team, inject replication documents in CouchDB.

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).
You can’t perform that action at this time.