Overview of the CCNQ4 SIP softswitch
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
README.md
goals.md

README.md

CCNQ4

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.

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.
  • 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 socket.io → 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).