You may be able to construct a set of useful IVR menus from the pre-recorded sounds that you can download from Digium (or other places). However, most of the available sound libraries seem to be designed more as plugs for the services of the voice talent than anything actually useful. Were this not the case, they would include words like "the" that could be used to construct real menus, not stories about monkeys or weasels.
In all probability, you'll want to record your own IVR sounds, based on your own menus, and not waste your time trying to string together a set of Alison's less-than-adequate utterances. If your friend Sophia has a mellifluous voice and you can convince her to record your voice prompts, or you happen to win big on Wait, Wait, Don't Tell me and Carl Castle is at your beck and call, you're all set.
Basically, we'll define an extension that you can call, which will record whatever is spoken into the phone, at which point the resultant file can be saved and included in an IVR menu tree. We can save them in our own IVR subdirectory off the standard sounds directory:
su mkdir /var/lib/asterisk/sounds/ivr chown root:root /var/lib/asterisk/sounds/ivr chmod u=rwx,go=rx /var/lib/asterisk/sounds/ivr
We build a macro that can be used, wherever you define extensions, to define an extension that allows recording of IVR prompts. The macro, which looks like this, is added to extensions.conf:
; ; recordivr: ; ; Macro to record a phrase as a ".wav" file in the /tmp directory, where ; it can be saved for use in an IVR menu. ; ; This uses the pls-rcrd-name-at-tone sound from the Asterisk extra sounds ; in asterisk-extra-sounds-en-wav-current.tar.gz. Its not the right prompt ; but it is "a" prompt. You could record a different prompt, using this ; macro and then use that prompt for future recordings. ; ; The result is put in /tmp/asterisk-recording.wav. You can copy it ; wherever you wish. ; [macro-recordivr] exten => s,1,Playback(pls-rcrd-name-at-tone) exten => s,n,Record(/tmp/asterisk-recording.wav) exten => s,n,Wait(2) exten => s,n,Playback(/tmp/asterisk-recording) exten => s,n,wait(2) exten => s,n,Hangup
To define an extension that can be used for IVR sound recording, you use the macro wherever you define the other extensions in your system. For example, if you have local DAHDI extensions defined in the user-defined file /etc/asterisk/local/dahdi-extensions.conf (as shown above in Defining Local FXS/FXO Lines), you might add this:
; Define an extension used to record IVR prompts. We'll use 899. exten => 899,1,Macro(recordivr)
After you reload the dialplan, you simply dial the extension that you've defined (e.g. 899). When you hear Alison's prompt, speak your IVR message into the phone and press '' when you're done. Remember to speak clearly, using natural inflection, and include any pauses that you want to occur in the message. When you press the '', your message will be replayed after a two-second delay. If you are happy with it just hang up. Otherwise, hang up, redial the extension again, and start all over.
For each IVR message that you record, copy it from the /tmp directory to the IVR directory that you created (above):
cp /tmp/asterisk-recording.wav /var/lib/asterisk/sounds/ivr/hi-there.wav
You will then be able to use the message in your IVR menus, like this:
Exten => s,n,Playback(ivr/hi-there)