# Object: Voice Menu

The **Voice Menu** object is used for implementing an IVR (Interactive
Voice Response) or automated attendant system, allowing callers to
listen to a recording and navigate to different destinations using their
dial pad. This object acts as a virtual receptionist, and includes the
ability to play key messages and pass information to callers.

On receiving an incoming call, the **Voice Menu** plays an audio
message, prompting the caller to enter an extension number. The call is
then passed to the connecting object with the matching extension number.
Logic is included so that erroneously entered extensions or caller-entry
timeouts may be properly handled.

[![../../../_images/voice-menu-object.jpg](../../../_images/voice-menu-object.jpg)](../../../_images/voice-menu-object.jpg)


**Fig. 1.** Voice Menu Object

The information to be entered for this object is:

- The name of the **Voice Menu** object, for example, "Main Voice
  Menu".
- An audio message that is played to the caller can be uploaded from a local drive (in .mp3, .m4a, .wav, .flac, or .ogg format), recorded directly, or selected from files or playlists previously uploaded to the [Audio Files](../../Audio-files/index.html#ps3-audio-files) menu. This audio message typically includes information about extension numbers that callers need to enter on their dial pad to connect with people or departments.

[![../../../_images/text_to_speech_audio_file_option1.png](../../../_images/text_to_speech_audio_file_option1.png)](../../../_images/text_to_speech_audio_file_option1.png)


**Fig. 2.** Voice Menu Object Creation

If an audio file has not been created yet, you can generate one from
the **Audio File** field in the **Voice Menu** object window. Open the
**Audio File** dropdown and click **Create Audio File**.

In the **Text to speech** window, enter the message, select a **Voice**
from the list of available voices, and click **Generate**. After
previewing the generated audio, enter a filename and click **Save** to
store the file in your audio library. For the full text-to-speech audio
file creation flow, see [Text to speech audio files](../../Audio-files/audio-files.html#ps3-audio-files-text-to-speech).

[![../../../_images/text_to_speech_generate2.png](../../../_images/text_to_speech_generate2.png)](../../../_images/text_to_speech_generate2.png)


**Fig. 3.** Text to speech window

- A timeout (from 1 second to 2 minutes), defining the maximum time
  allowed for the caller to enter an extension number using their dial
  pad. This timer starts immediately after the audio message has been
  played. The timeout value is changed by positioning the mouse over
  the right-hand edge of the timeout bar, and then "dragging" the edge
  in a left or right direction.

[![../../../_images/fig234.png](../../../_images/fig234.png)](../../../_images/fig234.png)


**Fig. 4.** Timeout And Playback Sliders

- A playback counter (from 1 to 11) allows the sequence of playing the
  selected audio file and completing the caller-input timeout to be
  repeated before that call is forwarded in accordance with the
  "Reached timeout limit" logic as described below. The playback count
  is changed by positioning the mouse over the right-hand edge of the
  "Playbacks" bar, and then "dragging" the edge in a left or right
  direction.

It is important to note that cables exiting from the right-hand socket
of the **Voice Menu** object serve three possible functions:

- **Extension** - The cable forwards incoming calls to the appropriate
  object in response to a valid extension number entered by the caller.
- **IVR invalid selection** - The cable forwards incoming calls to a
  specified object (such as an **Audio Playback** object) if the caller
  enters an invalid extension number.
- **Reached the timeout limit** - The cable forwards incoming calls to
  a specified object (such as an **Audio Playback** object) if the
  caller does not enter an extension number within the defined timeout
  period.

When a cable is generated from a **Voice Menu** object and is connected
to another object, a configuration menu is automatically displayed,
prompting the user to select the **Connection type** ("Extension", "IVR
invalid selection" or "Reached the timeout limit") for that cable.

[![../../../_images/fig324.png](../../../_images/fig324.png)](../../../_images/fig324.png)


**Fig. 5.** Create Connection

If a **Connection type** "Extension" is selected, an extension number
must be entered to match the instructions in the voice message that is
played to the caller. This extension number will be displayed on the
cable that connects the **Voice Menu** object to the adjacent object.

[![../../../_images/fig422.png](../../../_images/fig422.png)](../../../_images/fig422.png)


**Fig. 6.** Extension

In the usage example of the **Voice Menu** object shown below, a voice
message is played to the caller, with the instructions "Press 100 for
sales, and 200 for support". If the caller presses "100", then the call
will be forwarded to the sales ring group, and if "200" is pressed, then
the call will be forwarded to the support ring group. Invalid extension
and timeout conditions are forwarded to specified **Audio Playback**
objects where appropriate messages are played to the caller.

[![../../../_images/voice-menu-example-1.jpg](../../../_images/voice-menu-example-1.jpg)](../../../_images/voice-menu-example-1.jpg)


**Fig. 7.** First Usage Example

Extension numbers may be changed by clicking on the configured number
displayed on the cable. A configuration dialog window will be opened,
and a new extension number may be entered.

It should be noted that in the case where the caller enters an invalid
extension number or a timeout occurs, the call may be "looped" back to
the **Voice Menu** object. This will cause the instructions regarding
valid extension numbers to be replayed to the caller, and the caller
will have an additional opportunity to contact the desired party. In the
illustration below, calls generating error conditions are forwarded to
**Audio Playback** objects where specified messages are played to the
caller (for example, a message "You have entered an invalid extension
number"). On completion of this audio playback, the call is returned to
the **Voice Menu** object.

[![../../../_images/voice-menu-example-2.jpg](../../../_images/voice-menu-example-2.jpg)](../../../_images/voice-menu-example-2.jpg)


**Fig. 8.** Second Usage Example
