VMware ESXi and vSphere Cluster Management
Select and Install Asterisk Modules and Sound Packages with Menuselect
Learn to use Asterisk Menuselect to choose modules, install English A-law core and extra prompts, build selected components, and correct sound-file ownership.
Menuselect is Asterisk’s terminal-based build-selection interface. It lets you choose optional modules, bundled resources, codecs, sound packages, and compiler or build options before compiling and installing Asterisk.
The selections are saved in the Asterisk source tree. When you build and run the normal installation targets, those selections determine which available components are compiled and installed.
Prerequisites
Before launching Menuselect, prepare the Asterisk source tree and complete the required build prerequisites. Dependency detection should be finished first. A missing development library can make a module or sound package unavailable, even if the corresponding menu entry is visible.
Run commands from the Asterisk source directory: the top-level directory containing the downloaded source code and build files.
cd /path/to/asterisk-source
The exact available modules and categories depend on the Asterisk release and the development libraries installed on the system.
Start Menuselect
From the top-level source directory, open the interface with:
make menuselect
The main screen is organized into categories rather than displaying every module at once. Categories commonly contain areas for applications, channel drivers, codecs, format handlers, resource modules, compiler flags, and sound packages. The names and contents can differ between releases.
Navigate and change selections
Use the keyboard to move through the interface. Enter a category to see its entries, return to the previous screen when finished, and toggle an item to change its build state. The interface normally shows selection and dependency indicators beside entries.
| Key | Action | Use in the interface |
|---|---|---|
| Up arrow | Move up | Highlight the previous category or entry. |
| Down arrow | Move down | Highlight the next category or entry. |
| Right arrow | Enter or open | Open a highlighted category or move into a selection area. |
| Left arrow | Back or leave | Return to the previous menu level. |
| Enter | Activate or toggle | Select, clear, or activate the highlighted item according to the screen. |
| X, or the save-and-exit key shown by the interface | Save and exit | Write the selections and leave Menuselect. Follow the key label displayed in your release. |
An enabled entry is selected for the build. A disabled entry is not selected. An unavailable entry has a dependency or configuration problem and cannot be selected until that problem is resolved. A selected item can still depend on libraries or other modules; selecting it does not supply missing dependencies automatically.
Select Asterisk modules carefully
A module is a loadable Asterisk component that provides a feature, application, channel driver, codec, format handler, or integration. Open the category appropriate to the feature you need, highlight the component, and toggle it on or off.
Select only the features required by the deployment when practical. A smaller module set reduces dependency burden, maintenance work, and attack surface. For example, a server that does not use a particular channel technology or integration does not need to build that component.
Check the dependency indication before relying on a selection. If a required library or related module is unavailable, the component may remain disabled or may not be built successfully.
Select core sound prompts
Core sound prompts are the essential bundled recordings Asterisk uses for call handling, such as system messages, menus, and prompts used by applications. In Menuselect:
- Open Core Sound Packages.
- Locate the English package encoded as A-law.
- Enable CORE-SOUND-EN-ALAW.
CORE-SOUND-EN-ALAW is an English core prompt package in A-law format. Select the language and encoding that match the media environment rather than selecting every package by default.
Select extra sound prompts
Extra sound packages provide additional prompts beyond the core set. They can support call flows that use recordings not included in the essential package.
- Return to the main category list.
- Open Extra Sound Packages.
- Enable EXTRA-SOUND-EN-ALAW.
| Menuselect category | Example package | Purpose | When to choose it |
|---|---|---|---|
| Core Sound Packages | CORE-SOUND-EN-ALAW | Essential English A-law prompts. | When English core prompts are needed and A-law is suitable for the deployment. |
| Extra Sound Packages | EXTRA-SOUND-EN-ALAW | Additional English A-law prompts. | When call flows require prompts beyond the core set. |
Understand the A-law choice
A-law is a G.711 logarithmic PCM encoding. G.711 uses companding, the compression and expansion of audio amplitudes, to represent speech efficiently in telephony PCM formats. A-law is widely used in Europe and many international PSTN environments.
Choose a prompt format based on the codecs negotiated by endpoints and trunks, not on physical location alone. A deployment in another region may still use A-law, and a deployment in a traditionally A-law region may negotiate another codec.
Using a native prompt format can reduce transcoding and improve prompt playback efficiency. Core and extra packages should generally use a format appropriate to the same telephony environment. If a different encoding is required, identify the preferred codec or file format, then select matching language and core and extra packages where available. Avoid unnecessary packages unless the additional disk usage and format support are intentional.
Save, build, and install
Exit Menuselect with its save-and-exit action. Saving records the choices for the current source tree; it does not by itself install files.
If the selected components have not yet been compiled, build them using the normal build process for the prepared source tree. Then install the selected build output:
make install
make install installs the Asterisk artifacts selected and compiled for the current source tree and build configuration. It does not install an option that remained unavailable or was not selected.
Set sound-file ownership safely
Installed sound files must be readable by the Linux service account: the dedicated user and group under which the Asterisk service runs. Linux ownership is the user and group association that controls access to files and directories.
After confirming the actual sounds directory and runtime account, assign ownership recursively:
chown -R asteriskuser:asteriskuser /var/lib/asterisk/sounds/
asteriskuser is only an example. Replace it with the user and group configured for the local Asterisk service. Also replace the directory if the installation prefix, distribution packaging, or local configuration uses another sounds path.
Verify the installation
Start or reload Asterisk using the service procedure appropriate for the installation, then verify both the files and runtime behavior. Basic shell checks include:
ls -la /var/lib/asterisk/sounds/
find /var/lib/asterisk/sounds -type f -iname '*.alaw'
| Check | Command or method | Expected result |
|---|---|---|
| Sound directory exists | ls -la /var/lib/asterisk/sounds/ | The configured sounds directory is present and accessible. |
| Sound files were installed | find /var/lib/asterisk/sounds -type f -iname '*.alaw' | Expected A-law prompt files are listed. |
| Ownership matches the service account | Inspect the user and group columns with ls -la. | The files and relevant directories have the configured Asterisk runtime owner and group, with read access. |
| Asterisk can access or play prompts | Start or reload Asterisk and test a representative call flow. | Asterisk loads the relevant modules, locates the prompt files, and plays them successfully. |
Verify that the prompt filenames and format match what the call flow requests. A-law files alone do not guarantee successful playback if the active channel codec, format support, or runtime sounds path is different from the build and installation assumptions.
Troubleshooting
A module or sound package cannot be enabled
- Read the dependency status shown beside the unavailable item.
- Install the matching operating-system development package or other prerequisite where appropriate.
- Repeat the applicable configuration or dependency-detection step required by the Asterisk release.
- Reopen Menuselect and confirm that the option is now available.
The source package or Asterisk version may also omit an option entirely. A correctly prepared source tree cannot select a component that is not provided by that release.
Selected modules or prompts are absent after leaving Menuselect
- Reopen Menuselect and confirm the selection state.
- Use the displayed save-and-exit action rather than abandoning the interface.
- Run the build and
make install, then inspect the installation output. - Check whether an unresolved dependency prevented the item from being built.
Asterisk cannot play installed prompts
- Confirm that the configured sounds path is the directory where the package was installed.
- Inspect owner, group, file read permissions, and directory traversal permissions.
- Correct ownership for the actual service account, not the example account in this lesson.
- Confirm that the requested prompt format is installed and supported by the active channel codec.
Playback causes unnecessary transcoding or fails for a regional deployment
- Identify the codec negotiated by the representative endpoint or trunk.
- Compare that codec with the selected prompt encoding.
- Install a suitable matching package, such as A-law where appropriate.
- Test the actual call flow after reloading or restarting Asterisk.
Practical workflow summary
- Change to the prepared Asterisk source directory.
- Run
make menuselect. - Enable only the required modules and confirm their dependencies.
- In Core Sound Packages, enable
CORE-SOUND-EN-ALAW. - In Extra Sound Packages, enable
EXTRA-SOUND-EN-ALAWif additional prompts are needed. - Save and exit Menuselect.
- Compile the selected output if necessary, then run
make install. - Assign the installed sounds directory to the actual Asterisk service user and group.
- Check files, ownership, permissions, module loading, prompt paths, and playback.
For a different prompt encoding, repeat the same process with matching core and extra packages. The important decisions are the required features, available dependencies, negotiated media codecs, and the runtime account and paths used by the local installation.
See the Asterisk module installation with Menuselect guide for the related workflow.