sidetone

Usage

Recording and audio

Calls are recorded by rule, into plain WAV files you can play anywhere. Audio is G.711 everywhere, with HD voice where both ends have it.

Recording calls

Settings decide who is recorded (Settings → Recording): record_all, or the calls of record_users, through record_trunks, from record_queues, each a list of names. Both parties end up on one WAV file, in recordings/ under the data directory, about a megabyte a minute. They are not in the database or its backups: copy that folder yourself.

The Recordings page lists and plays them; GET /v1/recordings lists them (?call_id= finds a call's), GET /v1/recordings/{id}/audio downloads one, DELETE removes it. Read-only tokens can see that a call was recorded but cannot listen, to recordings or to voicemail.

  • recording_notice names an uploaded sound played to both parties when recording starts. Whether you must tell people, and get their consent, is a matter of law where you and they are. sidetone gives you the means; the obligation is yours.
  • recording_retention_days (90) removes old recordings, files included; 0 keeps them for ever.
  • A recording follows the call through transfers. Hold music and the notice itself are not on it. If the disk fills up the recording stops; the call does not.

Audio quality

Calls use G.711 (PCMU or PCMA), which everything speaks. hd_audio (Settings → Calls) lets two parties that both offer G.722, "HD voice" on Yealink, Snom, Grandstream and most softphones, use it; the server carries it as it comes, and its own hold music and recordings follow.

It is off by default because the server does not convert between codecs. A call that is G.722 can only be transferred to, or picked up by, a party that also speaks G.722, so not to an outside line on a G.711-only trunk; the transfer fails and the call stays as it was. Calls the server answers itself, voicemail, menus and queues, are always G.711, and so is everything they hand on. Opus is not supported.

Timeouts

Two settings end calls that have died quietly. media_timeout ends a call after that many seconds without audio from either party; dialog_check_interval asks both parties every so often whether they are still there, which catches a dead call on hold that sends no audio. Both are under Settings → Calls, and max_call_duration beside them caps how long any call may last.