Start
The documentation.
Everything an operator needs to run sidetone, in the order you will need it. The server's own operator guide is the same material on one page, kept in the repository beside the code.
sidetone is one program: a SIP server and PBX with its media relay, its database and its web console inside a single static binary. There is nothing to install beside it and nothing to restart. Every setting below lives behind the REST API and takes effect the moment it is saved; the console is only a client of that API, so whatever a page does, curl can do.
Start
- InstallationThe container, compose or the binary; the start-up flags; firewall and NAT; updating.
- The console and the APITokens, users who sign in, administrators, the audit log, talking to it with curl.
Usage
- Users and phonesExtensions, desk phones that set themselves up, softphones, the phonebook, forwarding, parking, busy lamps.
- Calling out and inTrunks, routes and inbound numbers; what a provider refuses; emergency numbers; toll fraud.
- Groups, queues and transferRing and hunt groups, hold, transfer, queues and agents, the wallboard.
- Voicemail, menus and hoursMailboxes, sounds, menus as data, business hours, holidays, email and webhooks.
- Recording and audioWho is recorded, where the files go; G.711 and HD voice.
- Browser phones and the desktop appThe console's own phone, Offhook, HTTPS, what a browser needs.
- Running it day to dayWatching it, debug pages, metrics, certificates, backups, troubleshooting.
Advanced
- Speech serversPrompts from text and voicemail as text, with OpenAI or a server of your own.
- SpeachesText to speech and transcription on your own machine, step by step.
- ChatterboxNatural voices for prompts from an open model, behind an OpenAI-compatible server.
- TURN with hairpinBrowser phones on networks that block UDP: a relay of your own.
- The APIThe envelope, tokens and scopes, configuration export, every resource.
Conventions on these pages
Examples use api as a shorthand for curl with the token and the JSON header set. Define it once in your shell and every example on these pages works as written:
$ TOKEN=sidetone_… $ api() { curl -sS -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' "$@"; } $ api localhost:8080/v1/users
Where a page names a setting in the console, such as Settings → Calls, the same thing has a field in the API, named beside it in monospace. Forms in the console show the few fields most setups need; the rest is under Advanced, which opens by itself when something in it is set.
Pre-release. sidetone runs on a live instance with Yealink desk phones and a sipgate trunk, which is where its interoperability bugs have been found so far. There is no tagged release yet; expect rough edges on hardware nobody has tried.