Our own telephone network

Asterisk, Kamailio and FreeSWITCH, carrying real calls

Business phone inside KamoCRM is not a reseller arrangement. We operate SIP infrastructure β€” FreePBX and Asterisk, with Kamailio and FreeSWITCH for the parts that need them β€” and reconcile call detail records back onto the customer record they belong to.

Every number here names where it came from and when it was measured.
MeasureValueSourceMeasured
Telephony components in production3 application, edge and media deployments, plus FreePBX and its databasekubectl get deployments,statefulsets -n kamopbx and -n kamo
SIP and media software operatedAsterisk, Kamailio, FreeSWITCH, FreePBXdeployment inventory across the kamopbx and kamo namespaces
Supporting infrastructure for call stateCouchDB and RabbitMQ stateful setskubectl get statefulsets -n kamopbx

What building it taught us

Telephony is the clearest example of the gap we are describing. Almost every platform that offers a phone feature is reselling somebody's API and marking it up. That works until a call quality problem needs diagnosing, at which point the reseller can only open a ticket on your behalf and wait, because they have no visibility into the media path and no ability to change anything about it.

Operating it means owning the awkward details. A configuration change written to the database does not reach the running switch unless an explicit reload is issued β€” write it without one and the extension you just created exists everywhere except in the system that answers calls. Call records name the trunk's caller ID in the field you would expect to hold the extension, and the extension in a different field entirely, so any naive attribution of calls to people is wrong in a way that looks plausible. Registration hangs at a particular protocol stage when consistent hashing is not configured correctly on the load balancer.

None of those are in a getting-started guide. They are what you learn by carrying live calls, and they are why we can integrate telephony into a client system with a realistic estimate rather than an optimistic one.

Built with

  • Asterisk
  • Kamailio
  • FreeSWITCH
  • FreePBX
  • SIP
  • RTP
  • CouchDB
  • RabbitMQ
  • Go

What this qualifies us for

Telephony integrationCalls, messages and recordings joined up to the customer recordReal-time systemsLive data, messaging, presence and media β€” the unforgiving end of the webCustom web applicationsThe system your business actually runs on, built properly

Tell us what you are trying to do

A short conversation is usually enough to tell whether we are the right people. If we are not, we will say so and point you somewhere better.

Start a conversationI already use KamoCRMHow we quote