The part of Kahevo that carries every call's audio is being rebuilt as our own engine.
The heaviest work in a phone system is carrying audio: thousands of small packets a second, every one on time.
Why now
Two reasons.
The first is control. A core part of Kahevo has depended on software written by others, and its license terms changed in a way we were not comfortable building a business on. We have lived through enough vendors changing terms. The core of Kahevo should depend on nobody's license but our own.
The second is that it is the right tool. Carrying audio is work that must never pause, and the language Kahevo's call service is written in tidies up its memory in short pauses. Under hundreds of calls, those pauses add up. Rust has no such pauses.
Piece by piece
A rewrite that replaces everything on one day is how projects die. This one goes in a piece at a time:
- first, a seam: the rest of Kahevo talks to "whatever carries the audio" through one narrow doorway,
- then the codecs,
- then the audio itself,
- then call signaling,
- then encryption.
Every piece sits behind its own switch. A server can turn it on, try it, and turn it off again. If the engine is missing, Kahevo carries on exactly as before.
The rules we set
- No home-made cryptography. Ever.
- Every outside part it uses has a permissive license, checked automatically, with its source kept in our own repository.
- Everything it reads from the network is treated as hostile. It refuses anything oversized before reading it.
What does not change
Call handling, menus, voicemail, the web pages, the database: none of it is touched. That was the point of the seam.
Where it stands
In testing. Numbers next.