Applicable from VRS 14.12.0. Compression for mixed call recordings is configured in docker/config.env.
Background
Previously, mixed call recordings used a fixed compression of 4000 Hz and 16-bit. That gave about 50% size reduction compared with an uncompressed mix, but it was not configurable. Changing the level required a code change.
Compression is now controlled from docker/config.env. You can keep the original ~50% behavior, use a stronger PCM option (~75%), or use GSM (~90%). Only new recordings after a mixer restart use the new settings. Older files stay in whatever format they were mixed with.
Important rules
-
Set options in
docker/config.env. -
After editing, recreate/restart the mixer so the new values apply.
-
Only one profile is active at a time.
-
If
OUTPUT_CODEC=gsmis set → GSM is used. IfOUTPUT_CODEC=gsmis commented → PCM compression fromCOMPRESSION_*is used. -
For PCM profiles (~50% / ~75%),
OUTPUT_CODEC=gsmmust be commented. -
For GSM (~90%),
COMPRESSION_SAMPLE_RATEandCOMPRESSION_BIT_DEPTHdo not affect the mix (they are ignored).
Profile 1 — about 50% compression (previous default)
Use this when you want the same behavior as before, but configured in env.
COMPRESSION_ENABLED=true
COMPRESSION_SAMPLE_RATE=4000
COMPRESSION_BIT_DEPTH=16
#OUTPUT_CODEC=gsm
|
Setting |
What to do |
|---|---|
|
|
Set to |
|
|
Set to |
|
|
Set to |
|
|
Comment out ( |
Profile 2 — about 75% compression (stronger PCM)
Use this when you need more compression, but still want PCM (not GSM).
COMPRESSION_ENABLED=true
COMPRESSION_SAMPLE_RATE=4000
COMPRESSION_BIT_DEPTH=8
#OUTPUT_CODEC=gsm
|
Setting |
What to do |
|---|---|
|
|
Set to |
|
|
Set to |
|
|
Set to |
|
|
Comment out ( |
Profile 3 — about 90% compression (GSM)
Use this for the strongest size reduction (telephony-style GSM storage).
OUTPUT_CODEC=gsm
COMPRESSION_ENABLED=false
|
Setting |
What to do |
|---|---|
|
|
Uncomment / set (required) |
|
|
Recommended |
|
|
No effect — may leave as-is |
|
|
No effect — may leave as-is |
Is COMPRESSION_ENABLED=false required for Profile 3?
No — not required for GSM to work.
When OUTPUT_CODEC=gsm is set, the mixer uses the GSM path and ignores compression rate/bit-depth settings.
Setting COMPRESSION_ENABLED=false is still recommended so the config is clear: it shows that PCM compression is not the active mode, and avoids confusion if someone later comments out OUTPUT_CODEC=gsm and accidentally leaves compression enabled.
Quick reference
|
Goal |
Active settings |
Comment OUTPUT_CODEC=gsm? |
Do COMPRESSION_* matter? |
Approx. savings |
|---|---|---|---|---|
|
~50% |
4000 Hz / 16-bit, compression on |
Yes |
Yes |
~50% |
|
~75% |
4000 Hz / 8-bit, compression on |
Yes |
Yes |
~75% |
|
~90% |
|
No (keep enabled) |
No (ignored) |
~90% |
Apply a profile (checklist)
-
Edit
docker/config.envusing one profile above. -
Confirm GSM is commented for ~50% / ~75%, or enabled for ~90%.
-
Recreate/restart the mixer.
-
Verify env inside the container (optional):
docker exec mixer printenv | grep -E 'OUTPUT_CODEC|COMPRESSION' -
Make a new test call and confirm size/quality.
-
Confirm UI play still works; for GSM, confirm download size stays small.