Install Asterisk Modules and Sound Packages with Menuselect
Learn how to use Asterisk Menuselect to choose modules, build options, and language-specific sound packages before compiling and installing Asterisk.
Menuselect is Asterisk's terminal-based build configuration interface. It lets you choose optional modules, resources, applications, codecs, sound packages, and other compile-time options before you build Asterisk.
The choices you save in Menuselect affect the next compilation and installation. A selected component can be built and installed when its dependencies are available; a deselected component is normally omitted.
Where Menuselect Fits in the Build Workflow
- Obtain and extract the Asterisk source code.
- Change into the Asterisk source directory. This is the directory containing the extracted source files and Makefile.
- Prepare the source tree and allow dependency detection to complete.
- Run
make menuselect. - Choose modules, options, and sound packages.
- Save the selections and exit Menuselect.
- Compile Asterisk successfully.
- Run
make installto install the resulting software and selected content.
Dependency detection can affect what Menuselect permits you to select. If a development library or other prerequisite is missing, an item may be shown as unavailable.
Starting Menuselect
Run the command from the Asterisk source directory. Replace the example directory with the actual directory created when you extracted your source package.
cd asterisk-13.13.1/
make menuselectThe first command enters the source tree. The second starts the interactive interface and displays a main screen containing selectable categories. Depending on the Asterisk version and available dependencies, the categories can include modules, applications, resources, codecs, compiler flags, and sound packages.
Navigating the Menuselect Interface
Menuselect is operated from the keyboard. Highlight a category or item, then use the appropriate key to move, open, return, or toggle it.
| Key | Action | Use in the workflow |
|---|---|---|
| Up arrow | Move to the previous entry | Move upward through categories or items. |
| Down arrow | Move to the next entry | Move downward through categories or items. |
| Right arrow | Open the highlighted category or submenu | Enter a category such as Core Sound Packages. |
| Left arrow | Return to the previous menu | Leave a category and return to the main screen. |
| Enter | Toggle the highlighted item | Select or deselect a module or package. |
| x | Save selections and exit | Commit the configuration before compiling and installing. |
The interface uses a visible indicator for selected entries. The exact appearance can vary by version or terminal, but selected items are commonly marked with a symbol or checkbox. Items that cannot be selected are typically displayed as unavailable or disabled, often with an explanation of the missing dependency.
Selecting Modules and Optional Content
A module is a loadable Asterisk component. Modules provide capabilities such as applications, channel drivers, resource interfaces, format handlers, and codec-related features.
In most installations, leave the default module selections enabled unless you have a specific reason to change them. Use the appropriate Menuselect category to add optional modules or other content needed by your deployment.
Before deselecting a default module, check whether your dialplan, endpoint technology, codec requirements, or external integration depends on it. Removing a module can make an application unavailable, prevent a device from using a channel technology, or remove support for a media format.
Keeping Defaults While Adding Sound Packages
A conservative approach is to leave the normal module set unchanged and use only the sound-package categories to add the required prompts. This preserves the default functionality while adding the language and encoding needed by the deployment.
Installing Core Sound Packages
Open the Core Sound Packages category. Core sounds contain commonly used Asterisk voice prompts and announcements, such as prompts used by standard applications.
Select a language and an audio encoding variant that match the telephony environment. For an English-language deployment using A-law prompts, select CORE-SOUND-EN-ALAW, or the equivalent label shown by your Asterisk version.
| Menuselect category | Example package | Purpose | When to select it |
|---|---|---|---|
| Core Sound Packages | CORE-SOUND-EN-ALAW | Essential English A-law prompts and announcements. | Select when the deployment needs core prompts in English and the A-law format. |
| Extra Sound Packages | EXTRA-SOUND-EN-ALAW | Additional English A-law prompts beyond the core collection. | Select when applications or the deployment require supplementary prompts in English and A-law. |
Installing Extra Sound Packages
Open the Extra Sound Packages category to select supplementary prompts. Extra sounds extend the core collection and may be useful to applications or dialplans that use prompts not included in the essential package.
For the same English A-law deployment, select EXTRA-SOUND-EN-ALAW, or the corresponding package label displayed in your version. Choose the same language and a compatible format unless you have a deliberate reason to install a different variant.
Understanding A-law Sound Selection
A-law, also written ALAW, is a G.711 pulse-code modulation companding law widely used in European telephone networks. It represents audio in a format commonly encountered in European telephony environments.
Sound prompts should be available in formats compatible with the codecs and media environment used by your endpoints, trunks, and applications. Selecting an A-law sound package provides sound files in A-law; it does not by itself enable, disable, or configure call codecs.
Sound-file format selection and codec configuration are separate concerns:
- A sound package determines which prompt files are installed and in which encoding or format.
- Codec configuration determines how call audio is negotiated, transported, or transcoded during a call.
Saving and Exiting Menuselect
When the selections are complete, press x. Menuselect saves the current choices and exits the interface.
Do not continue with the build until the selections have been saved. If you exit without saving, newly enabled modules or sound packages may not be included in the subsequent build.
Building and Installing the Selected Components
Compilation must complete successfully before installation. After saving Menuselect, run your normal Asterisk compilation command and check for errors. Then run the installation target from the same source directory:
make installmake install installs the compiled Asterisk software, selected modules, and selected sound packages into the configured system paths. Installation commonly requires elevated privileges when those paths are owned by the system or are not writable by your regular account.
| Command | Where to run it | Purpose | Expected result |
|---|---|---|---|
cd asterisk-13.13.1/ | From the directory containing the extracted source tree | Enter the Asterisk source directory. | The shell is working in the directory containing the Asterisk Makefile. |
make menuselect | Asterisk source directory | Open the interactive build-selection interface. | Categories and selectable build items are displayed. |
make install | Asterisk source directory, after successful compilation | Install the compiled software and selected components. | Asterisk modules and selected sound packages are copied into installation paths. |
chown -R asteriskuser:asteriskuser /var/lib/asterisk/sounds/ | Shell with sufficient administrative privileges | Assign ownership of the installed sound directory. | The configured Asterisk runtime account owns the sound files and can read them. |
Correcting Sound-File Ownership
The runtime user is the operating-system account under which the Asterisk service runs. That account needs read access to the installed sound files. Ownership is the filesystem user and group assignment that controls which account has access to files and directories.
If the service account cannot read the sounds directory, Asterisk may report missing prompts or fail to play them even when the files are installed. Assign the directory recursively to the actual service user and group:
chown -R asteriskuser:asteriskuser /var/lib/asterisk/sounds/Do not assume that asteriskuser is universal. Replace both names with the user and group configured for your Asterisk service. Also confirm that /var/lib/asterisk/sounds/ is the actual sounds path in your installation. After the command completes, verify the result with a directory listing or file-manager equivalent and confirm that the expected user and group own the directory and its contents.
For related Linux account and ownership guidance, see Add a System User for Asterisk and Change File Owner.
Practical Example: English A-law Prompts for a European Deployment
- Enter the extracted Asterisk source directory.
- Run
make menuselect. - Open Core Sound Packages with the right arrow.
- Highlight
CORE-SOUND-EN-ALAWand press Enter to enable it. - Press the left arrow to return to the main menu.
- Open Extra Sound Packages.
- Highlight
EXTRA-SOUND-EN-ALAWand press Enter to enable it. - Press
xto save and exit. - Compile Asterisk successfully, then run
make install. - Assign the installed sounds directory to the account that runs Asterisk and verify ownership.
The result is a core and supplementary collection of English prompts encoded in A-law, ready for use where that format suits the deployment.
Troubleshooting Menuselect and Sound Installation
An Item Cannot Be Selected
If a desired module or sound package is unavailable, inspect the information displayed by Menuselect. The usual causes are a missing development library or an incompletely prepared source tree.
- Identify the dependency information shown for the unavailable item.
- Install the required operating-system development packages.
- Rerun the applicable source preparation or configuration stage.
- Open Menuselect again and check whether the item is now selectable.
Asterisk Cannot Play the Installed Prompts
Check all three parts of the installation:
- Confirm that the required core or extra sound package was enabled.
- Verify that the prompt files exist under the configured Asterisk sounds path.
- Check that the Asterisk runtime user has read access to the directory and files.
- Confirm that the selected encoding meets the playback and telephony requirements.
Applications such as The Playback Application depend on accessible sound files when playing prompts from the dialplan.
Selected Modules Are Missing at Runtime
This commonly happens when the selection was not saved, the source was not rebuilt after changing selections, or a dependency prevented the module from being built.
- Reopen Menuselect and confirm that the item is enabled.
- Press
xto save the configuration. - Rebuild Asterisk successfully.
- Run
make installagain. - Review dependency availability if the item remains unavailable.
The Ownership Command Used the Wrong Account or Path
Verify the operating-system account configured for the Asterisk service and confirm the actual installed sounds directory. Asterisk may use a non-default user, group, or installation path. Repeat the ownership command with the matching values, then inspect the directory ownership and permissions.
Exam-Relevant Notes
- Menuselect is a menu-driven, terminal-based Asterisk build-selection interface.
- Run
make menuselectfrom the Asterisk source directory after source preparation and before final compilation and installation. - Use the arrow keys to navigate, Enter to toggle an item, and
xto save and exit. - Core Sound Packages provide essential prompts; Extra Sound Packages provide supplementary prompts.
CORE-SOUND-EN-ALAWandEXTRA-SOUND-EN-ALAWare examples of English A-law sound packages.- A-law sound selection is separate from enabling or configuring call codecs.
make installinstalls selected components only after a successful build.- The runtime user and group must be able to read the installed sounds directory.