add ivr demo thanks mcollins.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8019 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
e9e9acd16c
commit
05a73345b9
|
@ -1,53 +1,47 @@
|
|||
<configuration name="ivr.conf" description="IVR menus">
|
||||
<menus>
|
||||
<menu name="demo"
|
||||
greet-long="soundfiles/ivr/demo/greet-long.wav"
|
||||
greet-short="soundfiles/ivr/demo/greet-short.wav"
|
||||
invalid-sound="soundfiles/ivr/invalid.wav"
|
||||
exit-sound="soundfiles/ivr/exit.wav" timeout ="15"
|
||||
max-failures="3">
|
||||
<entry action="menu-exit" digits="*"/>
|
||||
<entry action="menu-play-sound" digits="1" params="soundfiles/features.wav"/>
|
||||
<entry action="menu-sub" digits="2" param="demo2"/>
|
||||
<entry action="menu-exec-app" digits="3" param="bridge sofia/$${domain}/888@conference.freeswtich.org"/>
|
||||
<entry action="menu-call-transfer" digits="4" param="888"/>
|
||||
<entry action="menu-sub" digits="8" param="menu8"/>
|
||||
</menu>
|
||||
|
||||
<menu name="demo2"
|
||||
greet-long="soundfiles/ivr/demo2/greet-long.wav"
|
||||
greet-short="soundfiles/ivr/demo2/greet-short.wav"
|
||||
invalid-sound="soundfiles/ivr/invalid.wav"
|
||||
exit-sound="soundfiles/ivr/exit.wav"
|
||||
timeout ="15"
|
||||
max-failures="3">
|
||||
<entry action="menu-back" digits="#"/>
|
||||
<entry action="menu-top" digits="*"/>
|
||||
</menu>
|
||||
|
||||
<menu name="demo3"
|
||||
greet-long="say:Press 1 to join the conference, Press 2 to join the other conference"
|
||||
greet-short="say:Press 1 to join the conference, Press 2 to join the other conference"
|
||||
invalid-sound="say:invalid extension"
|
||||
exit-sound="say:exit sound" timeout ="15"
|
||||
max-failures="3"
|
||||
tts-voice="callie" tts-engine="cepstral">
|
||||
<entry action="menu-exit" digits="*"/>
|
||||
<!-- <entry action="menu-say-text" digits="1" param="You pressed 1"/> -->
|
||||
<entry action="menu-call-transfer" digits="1" param="1000"/>
|
||||
<entry action="menu-call-transfer" digits="2" param="1001"/>
|
||||
</menu>
|
||||
|
||||
<menu name="menu8"
|
||||
greet-long="/soundfiles/ivr/menu8/greet-long.wav"
|
||||
greet-short="/soundfiles/ivr/menu8/greet-short.wav"
|
||||
invalid-sound="/soundfiles/ivr/menu8/invalid.wav"
|
||||
exit-sound="/soundfiles/ivr/menu8/exit.wav"
|
||||
timeout ="15"
|
||||
max-failures="3">
|
||||
<entry action="menu-back" digits="#"/>
|
||||
<entry action="menu-play-sound" digits="4" param="soundfiles/4.wav"/>
|
||||
<entry action="menu-top" digits="*"/>
|
||||
</menu>
|
||||
</menus>
|
||||
</configuration>
|
||||
<configuration name="ivr.conf" description="IVR menus">
|
||||
<menus>
|
||||
<!-- demo IVR setup -->
|
||||
<!-- demo IVR, Main Menu -->
|
||||
<menu name="demo_ivr"
|
||||
greet-long="phrase:demo_ivr_main_menu"
|
||||
greet-short="phrase:demo_ivr_main_menu_short""
|
||||
invalid-sound="voicemail/vm-hello.wav"
|
||||
exit-sound="voicemail/vm-goodbye.wav"
|
||||
timeout ="15"
|
||||
max-failures="3">
|
||||
<entry action="menu-exec-app" digits="1" param="bridge sofia/$${domain}/888@conference.freeswtich.org"/>
|
||||
<entry action="menu-call-transfer" digits="2" param="9996"/> <!-- FS echo -->
|
||||
<entry action="menu-call-transfer" digits="3" param="9999"/> <!-- MOH -->
|
||||
<entry action="menu-sub" digits="4" param="demo_ivr_submenu"/> <!-- demo sub menu -->
|
||||
<entry action="menu-call-transfer" digits="5" param="1234*256"/> <!-- Screaming monkeys -->
|
||||
<entry action="menu-top" digits="9" param="demo_ivr"/> <!-- Repeat this menu -->
|
||||
</menu>
|
||||
|
||||
<!-- Demo IVR, Sub Menu -->
|
||||
<menu name="demo_ivr_submenu"
|
||||
greet-long="phrase:demo_ivr_sub_menu"
|
||||
greet-short="phrase:demo_ivr_sub_menu_short"
|
||||
invalid-sound="voicemail/vm-hello.wav"
|
||||
exit-sound="voicemail/vm-goodbye.wav" timeout="15"
|
||||
max-failures="3">
|
||||
<entry action="menu-top" digits="*"/>
|
||||
</menu>
|
||||
</menus>
|
||||
</configuration>
|
||||
|
||||
|
||||
<!-- TTS sample; non-functional but it demonstrates say: and TTS -->
|
||||
<!--
|
||||
<menu name="demo3"
|
||||
greet-long="say:Press 1 to join the conference, Press 2 to join the other conference"
|
||||
greet-short="say:Press 1 to join the conference, Press 2 to join the other conference"
|
||||
invalid-sound="say:invalid extension"
|
||||
exit-sound="say:exit sound" timeout ="15"
|
||||
max-failures="3"
|
||||
tts-voice="callie" tts-engine="cepstral">
|
||||
<entry action="menu-exit" digits="*"/>
|
||||
<entry action="menu-say-text" digits="1" param="You pressed 1"/>
|
||||
<entry action="menu-call-transfer" digits="2" param="1000"/>
|
||||
<entry action="menu-call-transfer" digits="3" param="1001"/>
|
||||
</menu>
|
||||
-->
|
||||
|
|
|
@ -0,0 +1,149 @@
|
|||
<include><!--This line will be ignored it's here to validate the xml and is optional -->
|
||||
|
||||
<macro name="demo_ivr_main_menu"> <!-- See conf/autoload_config/ivr.conf.xml for an example on how to use this macro in an IVR -->
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- string together several existing sound files to create one long greeting -->
|
||||
<action function="execute" data="answer"/>
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<action function="play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>
|
||||
<!-- note that you can do more than just play files, e.g. have pauses and do TTS -->
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/3.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<!-- Menu option 4: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/4.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/5.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/9.wav"/>
|
||||
<action function="execute" data="sleep(6000)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
|
||||
<!-- The short version has all the options but not the initial greeting -->
|
||||
<macro name="demo_ivr_main_menu_short">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/3.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<!-- Menu option 4: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/4.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/5.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/9.wav"/>
|
||||
<action function="execute" data="sleep(6000)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<!-- The following macro is the "long" greeting for the demo_ivr_sub_menu -->
|
||||
<macro name="demo_ivr_sub_menu">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<!-- Menu option *: Return to top menu -->
|
||||
<action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
|
||||
<!-- The short version has all the options but not the initial greeting -->
|
||||
<macro name="demo_ivr_sub_menu_short">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Menu option *: Return to top menu -->
|
||||
<action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
<action function="execute" data="sleep(250)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include><!--This line will be ignored it's here to validate the xml and is optional -->
|
|
@ -1,7 +1,7 @@
|
|||
<include>
|
||||
<language name="en" sound-path="$${base_dir}/sounds/en/us/callie" tts-engine="cepstral" tts-voice="callie">
|
||||
<X-PRE-PROCESS cmd="include" data="demo/demo.xml"/>
|
||||
<!--voicemail_en_tts is purely implemented with tts, we need a files based implementation too -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>
|
||||
</language>
|
||||
</include>
|
||||
<include>
|
||||
<language name="en" sound-path="$${base_dir}/sounds/en/us/callie" tts-engine="cepstral" tts-voice="callie">
|
||||
<X-PRE-PROCESS cmd="include" data="demo/demo*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
|
||||
<!--voicemail_en_tts is purely implemented with tts, we need a files based implementation too -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>
|
||||
</language>
|
||||
</include>
|
||||
|
|
Loading…
Reference in New Issue