Asterisk course

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

  1. Obtain and extract the Asterisk source code.
  2. Change into the Asterisk source directory. This is the directory containing the extracted source files and Makefile.
  3. Prepare the source tree and allow dependency detection to complete.
  4. Run make menuselect.
  5. Choose modules, options, and sound packages.
  6. Save the selections and exit Menuselect.
  7. Compile Asterisk successfully.
  8. Run make install to 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 menuselect

The 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.

KeyActionUse in the workflow
Up arrowMove to the previous entryMove upward through categories or items.
Down arrowMove to the next entryMove downward through categories or items.
Right arrowOpen the highlighted category or submenuEnter a category such as Core Sound Packages.
Left arrowReturn to the previous menuLeave a category and return to the main screen.
EnterToggle the highlighted itemSelect or deselect a module or package.
xSave selections and exitCommit 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 categoryExample packagePurposeWhen to select it
Core Sound PackagesCORE-SOUND-EN-ALAWEssential English A-law prompts and announcements.Select when the deployment needs core prompts in English and the A-law format.
Extra Sound PackagesEXTRA-SOUND-EN-ALAWAdditional 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 install

make 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.

CommandWhere to run itPurposeExpected result
cd asterisk-13.13.1/From the directory containing the extracted source treeEnter the Asterisk source directory.The shell is working in the directory containing the Asterisk Makefile.
make menuselectAsterisk source directoryOpen the interactive build-selection interface.Categories and selectable build items are displayed.
make installAsterisk source directory, after successful compilationInstall 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 privilegesAssign 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

  1. Enter the extracted Asterisk source directory.
  2. Run make menuselect.
  3. Open Core Sound Packages with the right arrow.
  4. Highlight CORE-SOUND-EN-ALAW and press Enter to enable it.
  5. Press the left arrow to return to the main menu.
  6. Open Extra Sound Packages.
  7. Highlight EXTRA-SOUND-EN-ALAW and press Enter to enable it.
  8. Press x to save and exit.
  9. Compile Asterisk successfully, then run make install.
  10. 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.

  1. Reopen Menuselect and confirm that the item is enabled.
  2. Press x to save the configuration.
  3. Rebuild Asterisk successfully.
  4. Run make install again.
  5. 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 menuselect from 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 x to save and exit.
  • Core Sound Packages provide essential prompts; Extra Sound Packages provide supplementary prompts.
  • CORE-SOUND-EN-ALAW and EXTRA-SOUND-EN-ALAW are examples of English A-law sound packages.
  • A-law sound selection is separate from enabling or configuring call codecs.
  • make install installs selected components only after a successful build.
  • The runtime user and group must be able to read the installed sounds directory.