VoIP.info Guide

FreePBX Sound Languages: separate prompt packs from call-flow selection

Set a global default, install only the required language and format packs, and change channel language at explicit call-flow boundaries with controlled fallback tests.

Reviewed 2026-10-11Sangoma PBX GUI 13 Sound Languages and Languages guides, FreePBX release/17.0 Sound Languages 17.0.5 and Languages 17.0.1 metadata and dialplan source, and current Asterisk prompt-search documentation reviewed October 10, 2026; the older screen guides establish documented concepts rather than an exact FreePBX 17 field map, and repository versions do not prove the installed module, signature, saved state, generated or loaded dialplan, sound files, channel language, selected prompt or audible result on any PBXIntermediateDocumentation based · not lab tested

Keep installed prompt inventory separate from channel selection

FreePBX uses two related controls with different jobs. Sound Languages manages the global default and downloadable prompt packs by language, module and file format. The Languages module changes the language on a call-flow channel and then continues to another destination. Installing a pack does not select it for a call, and selecting a language does not prove the needed prompt and format are present.

Write down the intended default language, every explicit call-flow change, the prompts each path needs and the accepted fallback. Treat core prompts, extra prompts and custom System Recordings as separate inventories. Keep licensing and editorial approval for custom speech outside the module-presence check.

Reconcile documentation with the installed FreePBX 17 modules

Sangoma's detailed Sound Languages and Languages screen guides identify PBX GUI version 13. The current release/17.0 metadata reviewed here lists Sound Languages 17.0.5 and Languages 17.0.1 with FreePBX 17 support. Use the older guides for their documented ownership and fallback concepts, then verify the installed signed packages, exact labels and supported actions on the target FreePBX 17 host.

A repository branch or version number does not establish what is installed, enabled, saved, generated or loaded. Record the module versions and signatures before making changes, use Module Admin for supported updates, and preserve a rollback of the current default, installed packs and call-flow destinations.

Define exact language codes and expected fallback

Assign each call path an exact language code and owner. Asterisk documents progressively broader lookup for underscore-separated channel languages: a value such as en_GB_female_BT can fall back through en_GB_female, en_GB, en and finally the base sounds directory. Sangoma also documents fallback to the global language when a selected-language recording is missing.

That fallback can keep a call usable while producing a mixed-language experience, so an audible prompt is not proof that the requested localized file was selected. Record which fallbacks are allowed, which are release blockers and how custom codes map to directories. Do not copy a static language list from an older guide and present it as current availability.

Install only the required pack, module and format combinations

For each approved language, identify the core or extra sound package, the prompt set version and the file formats required by the actual call codecs and playback path. Install through Sound Languages and preserve the transaction result. A package row, successful download or selected format still does not prove that every file exists, is readable, can be decoded or is audible.

Validate representative prompt IDs in the effective Asterisk sounds tree and keep custom recordings in their documented language-specific location or supported System Recordings workflow. Do not repair one missing prompt by broadening permissions across the sounds tree, replacing the default language or installing every available format.

Place explicit language changes at owned call-flow boundaries

Use a Languages destination where a route, IVR branch or other call flow must change CHANNEL(language) and continue to a defined destination. Current FreePBX 17 source also exposes language choices to managed inbound-route and user or extension hooks. Document precedence and later overrides so the same call does not inherit an accidental language from another boundary.

Submit the module form, Apply Config through the supported workflow and inspect the generated and loaded dialplan rather than editing managed files. Prove that the expected branch sets the language before the prompt plays and that an unrelated default-language path remains unchanged.

Test prompt selection, fallback and audible content separately

Use bounded calls for the default language and every explicit language destination. Include common navigation, numbers or dates, voicemail or IVR prompts where applicable, one custom recording, one intentionally absent localized prompt and an unaffected call path. Preserve the effective channel language, requested prompt ID, selected file or fallback, playback result and authorized listener observation as separate evidence.

Correct only the first failed layer: module state, language code, pack, format, file, call-flow placement, generated state or playback. Revert to the recorded default and destinations if unrelated calls change. No PBX, installed module, package, prompt file, channel, dialplan, playback or call was inspected or tested for this guide.

Do not confuse shared custom media with prompt-pack fallback

A System Recording has its own object, ordered media and language boundary, while the caller channel and installed sound packs control other lookup behavior. The System Recordings guide and paired diagnostic keep those owners separate before files are replaced or copied.

Sources & applicability

Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.

Examples require adaptation to your topology. No live PBX or hardware testing is claimed.