Skip to content

Voice Menus (IVR)

A Voice Menu (IVR, or auto attendant) greets callers with a recorded announcement and lets them route themselves by pressing a key - “Press 1 for Sales, 2 for Support”. It answers calls automatically, so callers reach the right destination without a live operator, at any hour. Menus can be linked to one another to build multi-level trees (for example a main menu that leads to department sub-menus), and each key can send the caller to an extension, a Queue, a Hunt Group, voicemail, another menu, or a Feature Code.

Create/Edit Voice Menu

Selections

Name. Unique alphanumeric name for the menu, no spaces allowed.

Description. Menu description, optional.

Department. Optionally assign the Voice Menu to a Department. Defaults to “Not assigned”.

What to play? Allows you to choose whether the menu will play a prerecorded sound file (Prerecorded announcement) or a a sound file dynamically generated by a specified command.

Announcement. You can select an existing announcement from the list of previously recorded Voice Prompts or record a new announcement by one of three options:

  • Record Using Text-to-Speech. This option (if enabled) will allow you to enter text that will be converted to a recording in one of the available voices using AWS or Google.
  • Record via Phone Call. This option allows you to use your phone for making a recording.
  • Upload File. Allows you to upload a pre-recorded file which will be converted to a supported format if possible.

You can assign actions to user selections (key presses) by specifying options in the “What to do?” and “Select” columns.

If you require more complex call handling than the options in the menu allow directly, you can always create a Feature Code with an Action Script to handle that, and use the Feature Code as the menu selection.

Options

Wait before playing (sec). Total time system will wait before playing the announcement.

Ring while waiting. If selected will simulate ringing to the caller before the announcement is played.

Wait for response (sec). Total time system will wait for the response from the caller before it executes the action specified for “No Input”.

Wait for key press (sec). The time system will wait for a key press by the caller before it executes the action specified for “No Input”.

The following options should be used with caution:

  • Allow dialing extensions. If set, will allow the caller to dial User Extensions. You should use this with caution.

  • Allow dialing Feature Codes. If set, will allow the caller to dial any of the Feature Codes. You should use this with extreme caution.

  • Additional allowed dialing pattern. Used to allow the caller to enter digits other than User Extensions or Feature Codes. Control will be passed to a call handling script for further processing. You should use this with extreme caution.

IVR Analytics (Call Reports) records menu key presses, timeouts, and invalid input for each menu. It does not log rows when the caller uses Allow dialing extensions or Additional allowed dialing pattern to dial digits directly; those paths skip IVR event logging so dialplan stays reliable on all supported Asterisk builds.

Authentication. You can make Voice Menus “protected” by specifying a code that the caller will be prompted to enter before accessing this menu. An example of using this would be a voice portal accessible only to the company employees.

Worked example: a main menu with a safe fallback

Goal: callers to the main number hear a greeting, press 1 for Sales or 2 for Support, and anyone who mis-presses or stays silent still reaches reception instead of being dropped.

  1. Record the greeting. Under Voice Prompts (or right in the menu form via Record Using Text-to-Speech), create the announcement: “Thanks for calling Acme. For Sales, press 1. For Support, press 2. To reach an operator, stay on the line.”
  2. Create the menu. Add a Voice Menu main-menu, set What to play? to the greeting from step 1.
  3. Assign the keys. In the selections grid: key 1 -> Queue sales, key 2 -> Queue support.
  4. Always set the safety nets. Set No Input -> extension 101 (reception) and Invalid -> extension 101 too, so silence or a wrong key still lands on a person. Tune Wait for response / Wait for key press to ~5 seconds.
  5. Keep it locked down. Leave Allow dialing extensions, Allow dialing Feature Codes, and Additional allowed dialing pattern off - this is a public menu, and those would let outside callers reach internal extensions or toll routes.
  6. Point a number at it and verify. In Inbound Call Routes, send the main DID to main-menu, then call in: press 1 and 2 to confirm the queues, and say nothing to confirm the No-Input path rings reception. Check key presses and timeouts afterward under IVR Analytics.

For different day/night greetings, do not build two menus - branch at the inbound route with a Time Range Group so after-hours callers automatically hear the right message.

Best practices

  • Keep the top-level menu short - a handful of clear options is easier to follow than a long list, and callers rarely remember more than a few choices.
  • Always configure a No Input action (for callers on rotary phones or who simply wait) and an Invalid action, so a mis-press or silence still reaches a person or mailbox rather than dropping the call.
  • State the option before the key (“For Sales, press 1”) - it is easier to follow than “Press 1 for Sales”.
  • Leave Allow dialing extensions, Allow dialing Feature Codes, and Additional allowed dialing pattern off unless you specifically need them; on a public-facing menu they can let callers reach internal extensions or toll routes.
  • Use a Time Range Group or Routing Condition at the Inbound Route rather than building separate day/night menus by hand, so after-hours callers automatically hear the right greeting.