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.
| Measure | Value | Source | Measured |
|---|---|---|---|
| Telephony components in production | 3 application, edge and media deployments, plus FreePBX and its database | kubectl get deployments,statefulsets -n kamopbx and -n kamo | |
| SIP and media software operated | Asterisk, Kamailio, FreeSWITCH, FreePBX | deployment inventory across the kamopbx and kamo namespaces | |
| Supporting infrastructure for call state | CouchDB and RabbitMQ stateful sets | kubectl 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
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.