Update the languages
This commit is contained in:
parent
59ad1ae154
commit
c2eb48df2d
|
|
@ -0,0 +1,14 @@
|
|||
<include>
|
||||
<language name="en" say-module="en" sound-prefix="$${sounds_dir}/en/us/callie" tts-engine="cepstral" tts-voice="callie">
|
||||
<phrases>
|
||||
<macros>
|
||||
<X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
|
||||
<!--voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="ivr/*.xml"/> <!-- IVR and custom phrases go here -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/voicemail_ivr.xml"/>
|
||||
</macros>
|
||||
</phrases>
|
||||
</language>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
<include>
|
||||
|
||||
<macro name="demo_ivr_count">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="demo_ivr_main_menu" pause="100"> <!-- 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="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
|
||||
<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 -->
|
||||
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
|
||||
<action function="play-file" data="silence_stream://1500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 4: Register for ClueCon -->
|
||||
<action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
|
||||
<action function="play-file" data="digits/4.wav"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 6: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<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="play-file" data="silence_stream://2000"/>
|
||||
</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" pause="100">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="silence_stream://1000"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 4: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<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="play-file" data="silence_stream://2000"/>
|
||||
</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="play-file" data="ivr/ivr-sample_submenu.wav"/>
|
||||
|
||||
<!-- Menu option *: Return to top menu -->
|
||||
<action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
|
||||
<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"/>
|
||||
|
||||
</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="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
<include>
|
||||
<macro name="msgcount">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
<!-- or -->
|
||||
<!--<action function="speak-text" data="you have $1 messages"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="saydate">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="current_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="timespec">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="time_measurement"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="ip-addr">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="iterated" type="ip_address"/>
|
||||
<action function="say" data="$1" method="pronounced" type="ip_address"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell-phonetic">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_phonetic"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="tts-timeleft">
|
||||
<!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
|
||||
<!-- If the function "break" is encountered all parsing will cease -->
|
||||
<input pattern="(\d+):(\d+)">
|
||||
<match>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
<action function="break"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input pattern="(\d+) min (\d+) sec">
|
||||
<match>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-specify_mininum.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_matching_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-result_match.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-too_many_result.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_more_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-result_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-at_extension.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_select_entry.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_next.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_prev.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-start_new_search.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person last name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person first name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by first name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by last name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search match no user on this system, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 result match your search"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search returned too many result, please try again"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="No more result"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Result number $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="at extension $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<include>
|
||||
<macro name="pin_number_start">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-continue.wav" />
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="pin_number_enter_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_extension_followed_by_pound.wav" />
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
<include>
|
||||
<macro name="queue_position">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-you_are_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="ivr/ivr-in_line.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_called_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_joined.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_left_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_left.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="callers_in_conf">
|
||||
<input pattern="^1$" break_on_match="true">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<!--<action function="play-file" data="ivr/ivr-there_is.wav"/>-->
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-listener_in_conference.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_dest_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_destination_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_src_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_source_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_set">
|
||||
<input pattern="^(\d+):(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$2" method="iterated" type="number"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_set.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_cancel">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_cancelled.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="screen_confirm">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<!-- Note, be sure to pass in the full path to the file or else!! -->
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
<include>
|
||||
<macro name="wakeup-greeting">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To schedule a wakeup call enter a 4 digit number -->
|
||||
<!-- For 6:30 am press 0630. Enter the digits now. -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-request_wakeup_call.wav"/>
|
||||
<!--
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
<action function="play-file" data="digits/3.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
|
||||
<action function="execute" data="sleep(750)"/>
|
||||
<action function="play-file" data="ivr/ivr-for.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
<action function="play-file" data="digits/30.wav"/>
|
||||
<action function="play-file" data="time/a-m.wav"/>
|
||||
-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-hours">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="time/hours.wav"/>
|
||||
<!--<action function="play-file" data="misc/followed.wav"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-minutes">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="time/minutes.wav"/>
|
||||
<!--<action function="play-file" data="misc/followed.wav"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-destination">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Enter the number followed by pound -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-number.wav"/>
|
||||
<action function="play-file" data="misc/followed.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-scheduled">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Your wakeup call has been scheduled for 0715 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-requested_wakeup_call_for.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-accept">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To accept press 1 to cancel press 2 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-cancel">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To cancel the wakeup call press * -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-cancel_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="play-file" data="misc/followed.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-cancelled">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- wakeup call cancelled -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-wakeup_call_cancelled.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Say the current date and time -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call-exit" enabled="false">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- This is your wakeup call to exit press 1 for 9 minutes press 2 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call-snooze" enabled="false">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- This is your wakeup call to exit press 1 for 10 minutes press 2 -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-for.wav"/>
|
||||
<action function="play-file" data="digits/10.wav"/>
|
||||
<action function="play-file" data="time/minutes.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,430 @@
|
|||
<include>
|
||||
|
||||
<macro name="voicemail_enter_id">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_enter_pass">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_fail_auth">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_change_pass_success">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-Thank_you.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_change_pass_fail">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_goodbye">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-goodbye.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_abort">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-abort.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_message_count">
|
||||
<input pattern="^(1):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-$2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-$2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<!-- To listen to new messages -->
|
||||
<action function="play-file" data="voicemail/vm-listen_new.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To listen to saved messages -->
|
||||
<action function="play-file" data="voicemail/vm-listen_saved.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- For advanced options -->
|
||||
<action function="play-file" data="voicemail/vm-advanced.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To exit -->
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_config_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<!-- To record a greeting -->
|
||||
<action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To choose greeting -->
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To record your name -->
|
||||
<action function="play-file" data="voicemail/vm-record_name2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To change password -->
|
||||
<action function="play-file" data="voicemail/vm-change_password.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To return to main menu -->
|
||||
<action function="play-file" data="voicemail/vm-main_menu.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_name1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-rerecord.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_urgent_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-continue.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_prepend">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-send_message_now.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-followed_by.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_invalid_extension">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_listen_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-return_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-to_forward.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-return_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-to_forward.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting_fail">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_message">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_greeting_selected">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-greeting.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-selected.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-person.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-not_available.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_number">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_message_number">
|
||||
<input pattern="^([a-z]+):(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message_number.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_phone_number">
|
||||
<input pattern="^000|^$|^[Aa]non|^[Pp]rivate" break_on_match="true">
|
||||
<match>
|
||||
<!-- add 'anonymous caller' sound here -->
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-this_is_a_call_from.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
|
||||
<macro name="voicemail_ack">
|
||||
<input pattern="^(too-small)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-too-small.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(deleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(saved)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(emailed)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(marked-urgent)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_disk_quota_exceeded">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_announce_ext">
|
||||
<input pattern="^([^\:]+):(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_lot_full">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_lot_empty">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,238 @@
|
|||
<include>
|
||||
|
||||
<macro name="voicemail_enter_id">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="please enter your i d, followed by $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_enter_pass">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="please enter your password, followed by $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_fail_auth">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="login incorrect."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="welcome to your voicemail."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_goodbye">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="goodbye."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_abort">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="too many failed attempts."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_message_count">
|
||||
<input pattern="^1:(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="you have $1 $2 messages in folder ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $4."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_config_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/>
|
||||
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_urgent_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To mark this message urgent, press $1, To continue, press $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_invalid_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 is not a valid extension."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="enter the extension you wish to forward to, then press $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_prepend">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="To record an announcement, press $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_listen_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to the recording again, press $1, To save the recording, press $2, To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="choose a greeting between 1 and 3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting_fail">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="invalid value."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_message">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_greeting_selected">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="greeting $1 selected."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 is not available."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_message_number">
|
||||
<input pattern="^([a-z]+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 message number $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_phone_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_ack">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="message $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,397 @@
|
|||
<include>
|
||||
|
||||
<macros name="voicemail_ivr">
|
||||
<macro name="press_key">
|
||||
<input pattern="^(.*):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="$2"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="plurial_msg">
|
||||
<input pattern="^[01]:(.*):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^.*:(.*):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="$2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_id">
|
||||
<input pattern="(.+)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_pass">
|
||||
<input pattern="(.+)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
|
||||
</nomatch>
|
||||
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="fail_auth">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="hello">
|
||||
<input>
|
||||
<match>
|
||||
<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="goodbye">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-goodbye.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="abort">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-abort.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="message_count">
|
||||
<input field="${VM-Total-New-Urgent-Messages}" pattern="^(0)$">
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="${VM-Total-New-Urgent-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-urgent-new.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-New-Urgent-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input field="${VM-Total-New-Messages}" pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="${VM-Total-New-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-new.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-New-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input field="${VM-Total-Saved-Messages}" pattern="^(0)$">
|
||||
<nomatch>
|
||||
<action function="play-file" data="currency/and.wav"/>
|
||||
<action function="say" data="${VM-Total-Saved-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-saved.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-Saved-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="menu">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-New-Messages}:voicemail/vm-listen_new.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-Saved-Messages}:voicemail/vm-listen_saved.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Config-Menu}:voicemail/vm-advanced.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-to_exit.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="config_menu">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Greeting}:voicemail/vm-to_record_greeting.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Choose-Greeting}:voicemail/vm-choose_greeting.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Name}:voicemail/vm-record_name2.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Change-Password}:voicemail/vm-change_password.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Menu}:voicemail/vm-main_menu.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_name">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_name1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_ask_prepend">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_ask_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<!--<action function="phrase" phrase="play-file" data="voicemail/vm-followed_by.wav"/>-->
|
||||
<!--<action function="say" data="${VM-Key-Terminate}" method="pronounced" type="name_spelled"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_file_check">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Save-File}:voicemail/vm-save_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-File}:voicemail/vm-rerecord.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_urgent_check">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Urgent}:voicemail/vm-mark-urgent.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-continue.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_prepend">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-followed_by.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="invalid_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="listen_file_check">
|
||||
<input>
|
||||
<match>
|
||||
<!--<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Next-Msg}:voicemail/vm-for_next_msg.wav"/>--> <!-- Not existant in callie recordings -->
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Save-File}:voicemail/vm-save_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Delete-File}:voicemail/vm-delete_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input field="${VM-Message-Email}" pattern="^$">
|
||||
<nomatch>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Email}:voicemail/vm-forward_to_email.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Callback}:voicemail/vm-return_call.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="choose_greeting">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="choose_greeting_fail">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_greeting">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_message">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="greeting_selected">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-greeting.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-selected.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-person.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-not_available.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_number">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_message_number">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-${VM-Message-Type}.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message_number.wav"/>
|
||||
<action function="say" data="${VM-Message-Number}" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_phone_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
|
||||
<macro name="ack">
|
||||
<input pattern="^(too-small)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-too-small.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(undeleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(deleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(saved)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(emailed)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(marked-urgent)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_date_event">
|
||||
<input>
|
||||
<match>
|
||||
<action function="say" data="${VM-Message-Received-Epoch}" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_message">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="${VM-Message-File-Path}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_recording">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="${VM-Record-File-Path}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="disk_quota_exceeded">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</macros>
|
||||
|
||||
</include>
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
<include>
|
||||
<language name="de" sound-prefix="/snds" tts-engine="cepstral" tts-voice="david">
|
||||
<phrases>
|
||||
<macros>
|
||||
<X-PRE-PROCESS cmd="include" data="demo/demo.xml"/>
|
||||
<!--voicemail_de_tts is purely implemented with tts, we need a files based implementation too -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/tts.xml"/>
|
||||
</macros>
|
||||
</phrases>
|
||||
</language>
|
||||
</include>
|
||||
<include>
|
||||
<language name="de" say-module="de" sound-prefix="$${sounds_dir}/de/de/callie" tts-engine="cepstral" tts-voice="david">
|
||||
<phrases>
|
||||
<macros>
|
||||
<X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
|
||||
<!--voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="ivr/*.xml"/> <!-- IVR and custom phrases go here -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/voicemail_ivr.xml"/>
|
||||
</macros>
|
||||
</phrases>
|
||||
</language>
|
||||
</include>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,145 @@
|
|||
<include>
|
||||
|
||||
<macro name="demo_ivr_count">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="demo_ivr_main_menu" pause="100"> <!-- 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="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
|
||||
<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 -->
|
||||
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
|
||||
<action function="play-file" data="silence_stream://1500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 4: Register for ClueCon -->
|
||||
<action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
|
||||
<action function="play-file" data="digits/4.wav"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 6: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<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="play-file" data="silence_stream://2000"/>
|
||||
</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" pause="100">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="silence_stream://1000"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 4: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<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="play-file" data="silence_stream://2000"/>
|
||||
</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="play-file" data="ivr/ivr-sample_submenu.wav"/>
|
||||
|
||||
<!-- Menu option *: Return to top menu -->
|
||||
<action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
|
||||
<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"/>
|
||||
|
||||
</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="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
<!-- or -->
|
||||
<!--<action function="speak-text" data="Sie haben $1 Nachrichten"/>-->
|
||||
<!--<action function="speak-text" data="you have $1 messages"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -52,19 +52,19 @@
|
|||
<!-- If the function "break" is encountered all parsing will cease -->
|
||||
<input pattern="(\d+):(\d+)">
|
||||
<match>
|
||||
<action function="speak-text" data="Sie haben $1 Minuten, $2 Sekunden übrig $strftime(%Y-%m-%d)"/>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
<action function="break"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="Die Eingabe war ungültig."/>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input pattern="(\d+) min (\d+) sek">
|
||||
<input pattern="(\d+) min (\d+) sec">
|
||||
<match>
|
||||
<action function="speak-text" data="Sie haben $1 Minuten, $2 Sekunden übrig $strftime(%Y-%m-%d)"/>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="Die Eingabe war ungültig."/>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,119 @@
|
|||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-specify_mininum.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_matching_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-result_match.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-too_many_result.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_more_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-result_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-at_extension.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_select_entry.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_next.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_prev.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-start_new_search.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person last name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person first name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by first name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by last name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search match no user on this system, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 result match your search"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search returned too many result, please try again"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="No more result"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Result number $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="at extension $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<include>
|
||||
<macro name="pin_number_start">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-continue.wav" />
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="pin_number_enter_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_extension_followed_by_pound.wav" />
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
<include>
|
||||
<macro name="queue_position">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-you_are_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="ivr/ivr-in_line.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_called_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_joined.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_left_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_left.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="callers_in_conf">
|
||||
<input pattern="^1$" break_on_match="true">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<!--<action function="play-file" data="ivr/ivr-there_is.wav"/>-->
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-listener_in_conference.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_dest_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_destination_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_src_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_source_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_set">
|
||||
<input pattern="^(\d+):(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$2" method="iterated" type="number"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_set.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_cancel">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_cancelled.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="screen_confirm">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<!-- Note, be sure to pass in the full path to the file or else!! -->
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
<include>
|
||||
<macro name="wakeup-greeting">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To schedule a wakeup call enter a 4 digit number -->
|
||||
<!-- For 6:30 am press 0630. Enter the digits now. -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-request_wakeup_call.wav"/>
|
||||
<!--
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
<action function="play-file" data="digits/3.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
|
||||
<action function="execute" data="sleep(750)"/>
|
||||
<action function="play-file" data="ivr/ivr-for.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
<action function="play-file" data="digits/30.wav"/>
|
||||
<action function="play-file" data="time/a-m.wav"/>
|
||||
-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-hours">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="time/hours.wav"/>
|
||||
<!--<action function="play-file" data="misc/followed.wav"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-minutes">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="time/minutes.wav"/>
|
||||
<!--<action function="play-file" data="misc/followed.wav"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-destination">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Enter the number followed by pound -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-number.wav"/>
|
||||
<action function="play-file" data="misc/followed.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-scheduled">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Your wakeup call has been scheduled for 0715 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-requested_wakeup_call_for.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-accept">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To accept press 1 to cancel press 2 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-cancel">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To cancel the wakeup call press * -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-cancel_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="play-file" data="misc/followed.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-cancelled">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- wakeup call cancelled -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-wakeup_call_cancelled.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Say the current date and time -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call-exit" enabled="false">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- This is your wakeup call to exit press 1 for 9 minutes press 2 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call-snooze" enabled="false">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- This is your wakeup call to exit press 1 for 10 minutes press 2 -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-for.wav"/>
|
||||
<action function="play-file" data="digits/10.wav"/>
|
||||
<action function="play-file" data="time/minutes.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -26,6 +26,22 @@
|
|||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_change_pass_success">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-Thank_you.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_change_pass_fail">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
|
|
@ -54,8 +70,7 @@
|
|||
<input pattern="^(1):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action application="log" data="INFO $1 $2"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items" gender="feminine"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-$2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
</match>
|
||||
|
|
@ -63,7 +78,7 @@
|
|||
<input pattern="^(\d+):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items" gender="feminine"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-$2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
|
|
@ -78,16 +93,19 @@
|
|||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To listen to saved messages -->
|
||||
<action function="play-file" data="voicemail/vm-listen_saved.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- For advanced options -->
|
||||
<action function="play-file" data="voicemail/vm-advanced.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To exit -->
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
|
|
@ -104,21 +122,25 @@
|
|||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To choose greeting -->
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To record your name -->
|
||||
<action function="play-file" data="voicemail/vm-record_name2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To change password -->
|
||||
<action function="play-file" data="voicemail/vm-change_password.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To return to main menu -->
|
||||
<action function="play-file" data="voicemail/vm-main_menu.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
|
|
@ -304,16 +326,23 @@
|
|||
<match>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message_number.wav"/>
|
||||
<action application="log" data="INFO $1 $2"/>
|
||||
<action function="say" data="$2" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_phone_number">
|
||||
<input pattern="^000|^$|^[Aa]non|^[Pp]rivate" break_on_match="true">
|
||||
<match>
|
||||
<!-- add 'anonymous caller' sound here -->
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-this_is_a_call_from.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -361,8 +390,7 @@
|
|||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action application="log" data="INFO $1"/>
|
||||
<action function="say" data="$1" method="counted" type="current_date_time"/>
|
||||
<action function="say" data="$1" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<macro name="voicemail_enter_id">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="Bitte geben Sie Ihren Benutzernamen ein, gefolgt von $1."/>
|
||||
<action function="speak-text" data="please enter your i d, followed by $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
<macro name="voicemail_enter_pass">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="Bitte geben Sie Ihr Passwort ein, gefolgt von $1."/>
|
||||
<action function="speak-text" data="please enter your password, followed by $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
<macro name="voicemail_fail_auth">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="Falsche Benutzerdaten."/>
|
||||
<action function="speak-text" data="login incorrect."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -27,7 +27,7 @@
|
|||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="Willkommen in Ihrem Postfach."/>
|
||||
<action function="speak-text" data="welcome to your voicemail."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -35,7 +35,7 @@
|
|||
<macro name="voicemail_goodbye">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="Auf Wiedersehen."/>
|
||||
<action function="speak-text" data="goodbye."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -43,20 +43,20 @@
|
|||
<macro name="voicemail_abort">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="Zu viele Fehlversuche."/>
|
||||
<action function="speak-text" data="too many failed attempts."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_message_count">
|
||||
<input pattern="^1:(.*)$">
|
||||
<input pattern="^1:(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="Sie haben 1 $2 Nachricht im Ordner ${voicemail_current_folder}."/>
|
||||
<action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^([0,2-9]+):(.*)$">
|
||||
<input pattern="^(\d+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Sie haben $1 $2 Nachrichten im Ordner ${voicemail_current_folder}."/>
|
||||
<action function="speak-text" data="you have $1 $2 messages in folder ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -65,16 +65,16 @@
|
|||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="Um neue Nachrichten zu hören, drücken Sie $1. Um gespeicherte Nachrichten zu hören, drücken Sie $2, Für erweiterte Optionen, drücken Sie $3. Zum beenden drücken Sie $4."/>
|
||||
data="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $4."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_config_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="Um eine Ansage aufzunehmen, drücken Sie $1. Um eine Ansage auszuwählen, drücken Sie $2. Um ihren Namen aufzunehmen, drücken Sie $3. Um zum Hauptmenü zurückzukehren, drücken Sie $4."/>
|
||||
data="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -82,7 +82,8 @@
|
|||
<macro name="voicemail_record_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Sprechen Sie Ihren Namen nach dem Ton, drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
|
||||
<action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/>
|
||||
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -91,7 +92,7 @@
|
|||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="Um die Aufzeichnung anzuhören, drücken Sie $1. Um die Aufzeichnung zu speichern, drücken Sie $2. Für eine erneute Aufnahme drücken Sie $3."/>
|
||||
data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -100,16 +101,40 @@
|
|||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="Drücken Sie $1 um diese Nachricht als wichtig zu markieren. Um fortzufahren drücken Sie $2."/>
|
||||
data="To mark this message urgent, press $1, To continue, press $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_invalid_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 is not a valid extension."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="enter the extension you wish to forward to, then press $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_prepend">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="To record an announcement, press $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_listen_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="Drücken Sie $1 um die Nachricht erneut zu hören. Um die Nachricht zu speichern, drücken Sie $2. Zum löschen der Nachricht drücken Sie $3. Für die Weiterleitung als Email, drücken Sie $4."/>
|
||||
data="To listen to the recording again, press $1, To save the recording, press $2, To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -117,7 +142,7 @@
|
|||
<macro name="voicemail_choose_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Wählen Sie eine Ansage zwischen 1 und 3."/>
|
||||
<action function="speak-text" data="choose a greeting between 1 and 3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -125,7 +150,7 @@
|
|||
<macro name="voicemail_choose_greeting_fail">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Ungültige Eingabe."/>
|
||||
<action function="speak-text" data="invalid value."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -133,7 +158,7 @@
|
|||
<macro name="voicemail_record_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Zeichnen Sie Ihre Ansage nach dem Ton auf. Drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
|
||||
<action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -141,7 +166,7 @@
|
|||
<macro name="voicemail_record_message">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Sprechen Sie nach dem Ton. Drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
|
||||
<action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -149,7 +174,7 @@
|
|||
<macro name="voicemail_greeting_selected">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Ansage $1 ausgewählt."/>
|
||||
<action function="speak-text" data="greeting $1 selected."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -157,7 +182,7 @@
|
|||
<macro name="voicemail_play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 ist nicht verfügbar."/>
|
||||
<action function="speak-text" data="$1 is not available."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -173,7 +198,7 @@
|
|||
<macro name="voicemail_say_message_number">
|
||||
<input pattern="^([a-z]+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 Nachricht Nummer $2."/>
|
||||
<action function="speak-text" data="$1 message number $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -197,7 +222,7 @@
|
|||
<macro name="voicemail_ack">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Nachricht $1"/>
|
||||
<action function="speak-text" data="message $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -205,7 +230,7 @@
|
|||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$strftime($1|%A, %B %d %Y, %I %M %p)"/>
|
||||
<action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,397 @@
|
|||
<include>
|
||||
|
||||
<macros name="voicemail_ivr">
|
||||
<macro name="press_key">
|
||||
<input pattern="^(.*):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="$2"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="plurial_msg">
|
||||
<input pattern="^[01]:(.*):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^.*:(.*):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="$2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_id">
|
||||
<input pattern="(.+)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_pass">
|
||||
<input pattern="(.+)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
|
||||
</nomatch>
|
||||
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="fail_auth">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="hello">
|
||||
<input>
|
||||
<match>
|
||||
<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="goodbye">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-goodbye.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="abort">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-abort.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="message_count">
|
||||
<input field="${VM-Total-New-Urgent-Messages}" pattern="^(0)$">
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="${VM-Total-New-Urgent-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-urgent-new.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-New-Urgent-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input field="${VM-Total-New-Messages}" pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="${VM-Total-New-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-new.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-New-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input field="${VM-Total-Saved-Messages}" pattern="^(0)$">
|
||||
<nomatch>
|
||||
<action function="play-file" data="currency/and.wav"/>
|
||||
<action function="say" data="${VM-Total-Saved-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-saved.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-Saved-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="menu">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-New-Messages}:voicemail/vm-listen_new.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-Saved-Messages}:voicemail/vm-listen_saved.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Config-Menu}:voicemail/vm-advanced.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-to_exit.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="config_menu">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Greeting}:voicemail/vm-to_record_greeting.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Choose-Greeting}:voicemail/vm-choose_greeting.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Name}:voicemail/vm-record_name2.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Change-Password}:voicemail/vm-change_password.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Menu}:voicemail/vm-main_menu.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_name">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_name1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_ask_prepend">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_ask_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<!--<action function="phrase" phrase="play-file" data="voicemail/vm-followed_by.wav"/>-->
|
||||
<!--<action function="say" data="${VM-Key-Terminate}" method="pronounced" type="name_spelled"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_file_check">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Save-File}:voicemail/vm-save_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-File}:voicemail/vm-rerecord.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_urgent_check">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Urgent}:voicemail/vm-mark-urgent.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-continue.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_prepend">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-followed_by.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="invalid_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="listen_file_check">
|
||||
<input>
|
||||
<match>
|
||||
<!--<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Next-Msg}:voicemail/vm-for_next_msg.wav"/>--> <!-- Not existant in callie recordings -->
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Save-File}:voicemail/vm-save_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Delete-File}:voicemail/vm-delete_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input field="${VM-Message-Email}" pattern="^$">
|
||||
<nomatch>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Email}:voicemail/vm-forward_to_email.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Callback}:voicemail/vm-return_call.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="choose_greeting">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="choose_greeting_fail">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_greeting">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_message">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="greeting_selected">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-greeting.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-selected.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-person.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-not_available.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_number">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_message_number">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-${VM-Message-Type}.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message_number.wav"/>
|
||||
<action function="say" data="${VM-Message-Number}" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_phone_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
|
||||
<macro name="ack">
|
||||
<input pattern="^(too-small)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-too-small.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(undeleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(deleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(saved)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(emailed)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(marked-urgent)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_date_event">
|
||||
<input>
|
||||
<match>
|
||||
<action function="say" data="${VM-Message-Received-Epoch}" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_message">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="${VM-Message-File-Path}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_recording">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="${VM-Record-File-Path}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="disk_quota_exceeded">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</macros>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
<include>
|
||||
|
||||
<macro name="demo_ivr_count">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="demo_ivr_main_menu" pause="100"> <!-- 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="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
|
||||
<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 -->
|
||||
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
|
||||
<action function="play-file" data="silence_stream://1500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 4: Register for ClueCon -->
|
||||
<action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
|
||||
<action function="play-file" data="digits/4.wav"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 6: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<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="play-file" data="silence_stream://2000"/>
|
||||
</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" pause="100">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="silence_stream://1000"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 4: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<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="play-file" data="silence_stream://2000"/>
|
||||
</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="play-file" data="ivr/ivr-sample_submenu.wav"/>
|
||||
|
||||
<!-- Menu option *: Return to top menu -->
|
||||
<action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
|
||||
<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"/>
|
||||
|
||||
</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="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
<include>
|
||||
<macro name="msgcount">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
<!-- or -->
|
||||
<!--<action function="speak-text" data="you have $1 messages"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="saydate">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="current_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="timespec">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="time_measurement"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="ip-addr">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="iterated" type="ip_address"/>
|
||||
<action function="say" data="$1" method="pronounced" type="ip_address"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell-phonetic">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_phonetic"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="tts-timeleft">
|
||||
<!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
|
||||
<!-- If the function "break" is encountered all parsing will cease -->
|
||||
<input pattern="(\d+):(\d+)">
|
||||
<match>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
<action function="break"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input pattern="(\d+) min (\d+) sec">
|
||||
<match>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-specify_mininum.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_matching_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-result_match.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-too_many_result.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_more_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-result_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-at_extension.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_select_entry.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_next.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_prev.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-start_new_search.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person last name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person first name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by first name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by last name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search match no user on this system, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 result match your search"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search returned too many result, please try again"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="No more result"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Result number $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="at extension $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<include>
|
||||
<language name="es" say-module="es" sound-prefix="$${sounds_dir}/es/cl/callie" tts-engine="cepstral" tts-voice="callie">
|
||||
<phrases>
|
||||
<macros>
|
||||
<X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
|
||||
<!--voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="ivr/*.xml"/> <!-- IVR and custom phrases go here -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/voicemail_ivr.xml"/>
|
||||
</macros>
|
||||
</phrases>
|
||||
</language>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<include>
|
||||
<macro name="pin_number_start">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-continue.wav" />
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="pin_number_enter_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_extension_followed_by_pound.wav" />
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
<include>
|
||||
<macro name="queue_position">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-you_are_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="ivr/ivr-in_line.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_called_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_joined.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_left_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_left.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="callers_in_conf">
|
||||
<input pattern="^1$" break_on_match="true">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<!--<action function="play-file" data="ivr/ivr-there_is.wav"/>-->
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-listener_in_conference.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_dest_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_destination_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_src_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_source_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_set">
|
||||
<input pattern="^(\d+):(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$2" method="iterated" type="number"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_set.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_cancel">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_cancelled.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="screen_confirm">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<!-- Note, be sure to pass in the full path to the file or else!! -->
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
<include>
|
||||
<macro name="wakeup-greeting">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To schedule a wakeup call enter a 4 digit number -->
|
||||
<!-- For 6:30 am press 0630. Enter the digits now. -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-request_wakeup_call.wav"/>
|
||||
<!--
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
<action function="play-file" data="digits/3.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
|
||||
<action function="execute" data="sleep(750)"/>
|
||||
<action function="play-file" data="ivr/ivr-for.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
<action function="play-file" data="digits/30.wav"/>
|
||||
<action function="play-file" data="time/a-m.wav"/>
|
||||
-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-hours">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="time/hours.wav"/>
|
||||
<!--<action function="play-file" data="misc/followed.wav"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-minutes">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="time/minutes.wav"/>
|
||||
<!--<action function="play-file" data="misc/followed.wav"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-destination">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Enter the number followed by pound -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-number.wav"/>
|
||||
<action function="play-file" data="misc/followed.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-scheduled">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Your wakeup call has been scheduled for 0715 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-requested_wakeup_call_for.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-accept">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To accept press 1 to cancel press 2 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-cancel">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To cancel the wakeup call press * -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-cancel_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="play-file" data="misc/followed.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-cancelled">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- wakeup call cancelled -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-wakeup_call_cancelled.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Say the current date and time -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call-exit" enabled="false">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- This is your wakeup call to exit press 1 for 9 minutes press 2 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call-snooze" enabled="false">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- This is your wakeup call to exit press 1 for 10 minutes press 2 -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-for.wav"/>
|
||||
<action function="play-file" data="digits/10.wav"/>
|
||||
<action function="play-file" data="time/minutes.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,430 @@
|
|||
<include>
|
||||
|
||||
<macro name="voicemail_enter_id">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_enter_pass">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_fail_auth">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_change_pass_success">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-Thank_you.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_change_pass_fail">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_goodbye">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-goodbye.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_abort">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-abort.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_message_count">
|
||||
<input pattern="^(1):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-$2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-$2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<!-- To listen to new messages -->
|
||||
<action function="play-file" data="voicemail/vm-listen_new.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To listen to saved messages -->
|
||||
<action function="play-file" data="voicemail/vm-listen_saved.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- For advanced options -->
|
||||
<action function="play-file" data="voicemail/vm-advanced.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To exit -->
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_config_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<!-- To record a greeting -->
|
||||
<action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To choose greeting -->
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To record your name -->
|
||||
<action function="play-file" data="voicemail/vm-record_name2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To change password -->
|
||||
<action function="play-file" data="voicemail/vm-change_password.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To return to main menu -->
|
||||
<action function="play-file" data="voicemail/vm-main_menu.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_name1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-rerecord.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_urgent_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-continue.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_prepend">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-send_message_now.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-followed_by.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_invalid_extension">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_listen_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-return_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-to_forward.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-return_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-to_forward.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting_fail">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_message">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_greeting_selected">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-greeting.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-selected.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-person.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-not_available.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_number">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_message_number">
|
||||
<input pattern="^([a-z]+):(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message_number.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_phone_number">
|
||||
<input pattern="^000|^$|^[Aa]non|^[Pp]rivate" break_on_match="true">
|
||||
<match>
|
||||
<!-- add 'anonymous caller' sound here -->
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-this_is_a_call_from.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
|
||||
<macro name="voicemail_ack">
|
||||
<input pattern="^(too-small)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-too-small.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(deleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(saved)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(emailed)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(marked-urgent)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_disk_quota_exceeded">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_announce_ext">
|
||||
<input pattern="^([^\:]+):(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_lot_full">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_lot_empty">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,238 @@
|
|||
<include>
|
||||
|
||||
<macro name="voicemail_enter_id">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="please enter your i d, followed by $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_enter_pass">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="please enter your password, followed by $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_fail_auth">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="login incorrect."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="welcome to your voicemail."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_goodbye">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="goodbye."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_abort">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="too many failed attempts."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_message_count">
|
||||
<input pattern="^1:(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="you have $1 $2 messages in folder ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $4."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_config_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/>
|
||||
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_urgent_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To mark this message urgent, press $1, To continue, press $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_invalid_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 is not a valid extension."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="enter the extension you wish to forward to, then press $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_prepend">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="To record an announcement, press $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_listen_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to the recording again, press $1, To save the recording, press $2, To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="choose a greeting between 1 and 3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting_fail">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="invalid value."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_message">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_greeting_selected">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="greeting $1 selected."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 is not available."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_message_number">
|
||||
<input pattern="^([a-z]+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 message number $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_phone_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_ack">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="message $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,397 @@
|
|||
<include>
|
||||
|
||||
<macros name="voicemail_ivr">
|
||||
<macro name="press_key">
|
||||
<input pattern="^(.*):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="$2"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="plurial_msg">
|
||||
<input pattern="^[01]:(.*):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^.*:(.*):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="$2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_id">
|
||||
<input pattern="(.+)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_pass">
|
||||
<input pattern="(.+)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
|
||||
</nomatch>
|
||||
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="fail_auth">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="hello">
|
||||
<input>
|
||||
<match>
|
||||
<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="goodbye">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-goodbye.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="abort">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-abort.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="message_count">
|
||||
<input field="${VM-Total-New-Urgent-Messages}" pattern="^(0)$">
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="${VM-Total-New-Urgent-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-urgent-new.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-New-Urgent-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input field="${VM-Total-New-Messages}" pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="${VM-Total-New-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-new.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-New-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input field="${VM-Total-Saved-Messages}" pattern="^(0)$">
|
||||
<nomatch>
|
||||
<action function="play-file" data="currency/and.wav"/>
|
||||
<action function="say" data="${VM-Total-Saved-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-saved.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-Saved-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="menu">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-New-Messages}:voicemail/vm-listen_new.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-Saved-Messages}:voicemail/vm-listen_saved.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Config-Menu}:voicemail/vm-advanced.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-to_exit.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="config_menu">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Greeting}:voicemail/vm-to_record_greeting.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Choose-Greeting}:voicemail/vm-choose_greeting.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Name}:voicemail/vm-record_name2.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Change-Password}:voicemail/vm-change_password.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Menu}:voicemail/vm-main_menu.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_name">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_name1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_ask_prepend">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_ask_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<!--<action function="phrase" phrase="play-file" data="voicemail/vm-followed_by.wav"/>-->
|
||||
<!--<action function="say" data="${VM-Key-Terminate}" method="pronounced" type="name_spelled"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_file_check">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Save-File}:voicemail/vm-save_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-File}:voicemail/vm-rerecord.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_urgent_check">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Urgent}:voicemail/vm-mark-urgent.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-continue.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_prepend">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-followed_by.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="invalid_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="listen_file_check">
|
||||
<input>
|
||||
<match>
|
||||
<!--<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Next-Msg}:voicemail/vm-for_next_msg.wav"/>--> <!-- Not existant in callie recordings -->
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Save-File}:voicemail/vm-save_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Delete-File}:voicemail/vm-delete_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input field="${VM-Message-Email}" pattern="^$">
|
||||
<nomatch>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Email}:voicemail/vm-forward_to_email.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Callback}:voicemail/vm-return_call.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="choose_greeting">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="choose_greeting_fail">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_greeting">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_message">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="greeting_selected">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-greeting.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-selected.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-person.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-not_available.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_number">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_message_number">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-${VM-Message-Type}.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message_number.wav"/>
|
||||
<action function="say" data="${VM-Message-Number}" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_phone_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
|
||||
<macro name="ack">
|
||||
<input pattern="^(too-small)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-too-small.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(undeleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(deleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(saved)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(emailed)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(marked-urgent)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_date_event">
|
||||
<input>
|
||||
<match>
|
||||
<action function="say" data="${VM-Message-Received-Epoch}" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_message">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="${VM-Message-File-Path}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_recording">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="${VM-Record-File-Path}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="disk_quota_exceeded">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</macros>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
<include>
|
||||
|
||||
<macro name="demo_ivr_count">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="demo_ivr_main_menu" pause="100"> <!-- 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="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
|
||||
<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 -->
|
||||
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
|
||||
<action function="play-file" data="silence_stream://1500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 4: Register for ClueCon -->
|
||||
<action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
|
||||
<action function="play-file" data="digits/4.wav"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 6: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<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="play-file" data="silence_stream://2000"/>
|
||||
</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" pause="100">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="silence_stream://1000"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 4: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<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="play-file" data="silence_stream://2000"/>
|
||||
</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="play-file" data="ivr/ivr-sample_submenu.wav"/>
|
||||
|
||||
<!-- Menu option *: Return to top menu -->
|
||||
<action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
|
||||
<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"/>
|
||||
|
||||
</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="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -2,17 +2,70 @@
|
|||
<macro name="msgcount">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="tuas.wav"/>
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="messages.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
<!-- or -->
|
||||
<!--<action function="speak-text" data="you have $1 messages"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="timeleft">
|
||||
<macro name="saydate">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="current_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="timespec">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="time_measurement"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="ip-addr">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="iterated" type="ip_address"/>
|
||||
<action function="say" data="$1" method="pronounced" type="ip_address"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell-phonetic">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_phonetic"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="tts-timeleft">
|
||||
<!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
|
||||
<!-- If the function "break" is encountered all parsing will cease -->
|
||||
<input pattern="(\d+):(\d+)">
|
||||
<match>
|
||||
<action function="speak-text" data="il reste $1 minutes et $2 secondes"/>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
<action function="break"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input pattern="(\d+) min (\d+) sec">
|
||||
<match>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
|
|||
|
|
@ -1,122 +1,119 @@
|
|||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter-person.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter-person.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
<action function="play-file" data="directory/dir-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
<action function="play-file" data="directory/dir-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-specify_mininum_first.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-specify_mininum.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_match_entry.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-result_match.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_matching_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-result_match.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_many_result.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-too_many_result.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</macro>
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_more_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_more_result.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-result_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</macro>
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-at_extension.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-result_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_select_entry.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_next.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_prev.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-start_new_search.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-at_extension.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_select_entry.wav"/>
|
||||
<action function="play-file" data="directory/dir-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_next.wav"/>
|
||||
<action function="play-file" data="directory/dir-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_prev.wav"/>
|
||||
<action function="play-file" data="directory/dir-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-to_make_new_search.wav"/>
|
||||
<action function="play-file" data="directory/dir-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
|
|||
|
|
@ -1,101 +1,95 @@
|
|||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Veuillez entrer les premières lettres du nom de famille"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Veuillez entrer les premières lettres du prénom"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="pour chercher par prénom, tapez $2"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="pour chercher par nom de famille, tapez $2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person last name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person first name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by first name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by last name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(1)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Vous devez entrer au minimum une lettre du nom de la personne, essayez encore"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Vous devez entrer au minimum $1 lettres du nom de la personne, essayer encore"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="Votre recherche n'a retournée aucun résultat, essayez encore"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 résultats correspondent à votre recherche"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search match no user on this system, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 result match your search"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Votre recherche retourne trop de résultats, essayer encore"/>
|
||||
</match>
|
||||
</input>
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search returned too many result, please try again"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</macro>
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="No more result"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Fin des résultats."/>
|
||||
</match>
|
||||
</input>
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Result number $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</macro>
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Résultat numéro $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="at extension $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="Pour sélectionner ce nom, tapez $1, pour le nom suivant tapez $2, pour le nom précédent, tapez $3, pour faire une nouvelle recherche, tapez $4"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="au poste $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include><!--This line will be ignored it's here to validate the xml and is optional -->
|
||||
</include>
|
||||
|
|
|
|||
|
|
@ -1,12 +1,14 @@
|
|||
<include>
|
||||
<language name="fr" say-module="fr" sound-prefix="$${sounds_dir}/fr/ca/june" tts-engine="cepstral" tts-voice="david">
|
||||
<phrases>
|
||||
<macros>
|
||||
<X-PRE-PROCESS cmd="include" data="demo/demo.xml"/>
|
||||
<!-- voicemail_fr_tts is purely implemented with tts, we need a files based implementation too -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>
|
||||
<X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
|
||||
</macros>
|
||||
</phrases>
|
||||
</language>
|
||||
</include>
|
||||
<include>
|
||||
<language name="fr" say-module="fr" sound-prefix="$${sounds_dir}/fr/ca/june" tts-engine="cepstral" tts-voice="david">
|
||||
<phrases>
|
||||
<macros>
|
||||
<X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
|
||||
<!--voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="ivr/*.xml"/> <!-- IVR and custom phrases go here -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/voicemail_ivr.xml"/>
|
||||
</macros>
|
||||
</phrases>
|
||||
</language>
|
||||
</include>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
<include>
|
||||
<macro name="pin_number_start">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-continue.wav" />
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="pin_number_enter_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_extension_followed_by_pound.wav" />
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
<include>
|
||||
<macro name="queue_position">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-you_are_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="ivr/ivr-in_line.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_called_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_joined.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_left_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_left.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="callers_in_conf">
|
||||
<input pattern="^1$" break_on_match="true">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<!--<action function="play-file" data="ivr/ivr-there_is.wav"/>-->
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-listener_in_conference.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_dest_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_destination_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_src_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_source_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_set">
|
||||
<input pattern="^(\d+):(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$2" method="iterated" type="number"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_set.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_cancel">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_cancelled.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="screen_confirm">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<!-- Note, be sure to pass in the full path to the file or else!! -->
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
<include>
|
||||
<macro name="wakeup-greeting">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To schedule a wakeup call enter a 4 digit number -->
|
||||
<!-- For 6:30 am press 0630. Enter the digits now. -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-request_wakeup_call.wav"/>
|
||||
<!--
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
<action function="play-file" data="digits/3.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
|
||||
<action function="execute" data="sleep(750)"/>
|
||||
<action function="play-file" data="ivr/ivr-for.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
<action function="play-file" data="digits/30.wav"/>
|
||||
<action function="play-file" data="time/a-m.wav"/>
|
||||
-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-hours">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="time/hours.wav"/>
|
||||
<!--<action function="play-file" data="misc/followed.wav"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-minutes">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="time/minutes.wav"/>
|
||||
<!--<action function="play-file" data="misc/followed.wav"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-destination">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Enter the number followed by pound -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-number.wav"/>
|
||||
<action function="play-file" data="misc/followed.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-scheduled">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Your wakeup call has been scheduled for 0715 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-requested_wakeup_call_for.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-accept">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To accept press 1 to cancel press 2 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-cancel">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To cancel the wakeup call press * -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-cancel_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="play-file" data="misc/followed.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-cancelled">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- wakeup call cancelled -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-wakeup_call_cancelled.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Say the current date and time -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call-exit" enabled="false">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- This is your wakeup call to exit press 1 for 9 minutes press 2 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call-snooze" enabled="false">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- This is your wakeup call to exit press 1 for 10 minutes press 2 -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-for.wav"/>
|
||||
<action function="play-file" data="digits/10.wav"/>
|
||||
<action function="play-file" data="time/minutes.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -3,7 +3,8 @@
|
|||
<macro name="voicemail_enter_id">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="Entrez votre Identification, suivi par $1."/>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -11,7 +12,8 @@
|
|||
<macro name="voicemail_enter_pass">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="Entrez votre code, suivi par $1."/>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -19,7 +21,23 @@
|
|||
<macro name="voicemail_fail_auth">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="Identification incorrecte."/>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_change_pass_success">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-Thank_you.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_change_pass_fail">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -27,7 +45,7 @@
|
|||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="Bienvenue sur votre répondeur."/>
|
||||
<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -35,7 +53,7 @@
|
|||
<macro name="voicemail_goodbye">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="Au revoir."/>
|
||||
<action function="play-file" data="voicemail/vm-goodbye.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -43,25 +61,26 @@
|
|||
<macro name="voicemail_abort">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="Trop de tentatives ont échouées."/>
|
||||
<action function="play-file" data="voicemail/vm-abort.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_message_count">
|
||||
<input pattern="^([^:]+):urgent-new">
|
||||
<input pattern="^(1):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="Vous avez $1 nouveaux messages urgents dans le répertoire ${voicemail_current_folder}."/>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-$2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^([^:]+):new">
|
||||
<input pattern="^(\d+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Vous avez $1 nouveaux messages dans le répertoire ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^([^:]+):saved">
|
||||
<match>
|
||||
<action function="speak-text" data="Vous avez $1 messages sauvegardés dans le répertoire ${voicemail_current_folder}."/>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-$2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -69,8 +88,28 @@
|
|||
<macro name="voicemail_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="Pour écouter les nouveaux messages, tapez $1, Pour écouter les messages enregistrés, tapez $2, Pour les options avancées, tapez $3, pour sortir, tapez $4."/>
|
||||
<!-- To listen to new messages -->
|
||||
<action function="play-file" data="voicemail/vm-listen_new.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To listen to saved messages -->
|
||||
<action function="play-file" data="voicemail/vm-listen_saved.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- For advanced options -->
|
||||
<action function="play-file" data="voicemail/vm-advanced.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To exit -->
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -78,8 +117,34 @@
|
|||
<macro name="voicemail_config_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="pour enregistrer un message d'accueil, tapez $1, Pour choisir votre message d'accueil, tapez $2, Pour enregistrer votre nom, tapez $3, Pour changer votre mot de passe, tapez $4, Pour retourner au menu principal, tapez $5."/>
|
||||
<!-- To record a greeting -->
|
||||
<action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To choose greeting -->
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To record your name -->
|
||||
<action function="play-file" data="voicemail/vm-record_name2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To change password -->
|
||||
<action function="play-file" data="voicemail/vm-change_password.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To return to main menu -->
|
||||
<action function="play-file" data="voicemail/vm-main_menu.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -87,8 +152,7 @@
|
|||
<macro name="voicemail_record_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="enregistrez votre nom après le bip, puis tapez une touche, ou arrêtez de parler pour arrêter l'enregistrement."/>
|
||||
|
||||
<action function="play-file" data="voicemail/vm-record_name1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -96,8 +160,15 @@
|
|||
<macro name="voicemail_record_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="Pour écouter l'enregistrement, tapez $1, pour sauvegarder l'enregistrement, tapez $2, Pour réenregistrer, tapez $3."/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-rerecord.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -105,17 +176,87 @@
|
|||
<macro name="voicemail_record_urgent_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="Pour indiquer que ce message est urgent, tapez $1, Pour continuer, tapez $2."/>
|
||||
<action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-continue.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_prepend">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-send_message_now.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-followed_by.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_invalid_extension">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_listen_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])(:(.*))?$">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="Pour réécouter l'enregistrement à nouveau, tapez $1, Pour sauvegarder l'enregistrement, tapez $2, Pour supprimer l'enregistrement, tapez $3, pour transférer l'enregistrement à votre email $8, tapez $4, Pour appeler l'auteur du message, tapez $5, Pour transférer ce message à un autre numéro, tapez $6."/>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-return_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-to_forward.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-return_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-to_forward.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -123,7 +264,7 @@
|
|||
<macro name="voicemail_choose_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="choisissez un message d'accueil entre 1 et 3."/>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -131,7 +272,7 @@
|
|||
<macro name="voicemail_choose_greeting_fail">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="valeur incorrecte."/>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -139,7 +280,7 @@
|
|||
<macro name="voicemail_record_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="enregistrez votre message d'accueil après le bip, puis tapez une touche ou arrêtez de parler pour arrêter l'enregistrement."/>
|
||||
<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -147,15 +288,17 @@
|
|||
<macro name="voicemail_record_message">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="enregistrez votre message après le bip, puis tapez une touche ou arrêtez de parler pour arrêter l'enregistrement."/>
|
||||
<action function="play-file" data="voicemail/vm-record_message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_greeting_selected">
|
||||
<input pattern="^(.*)$">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="speak-text" data="message d'accueil numéro $1 sélectionné."/>
|
||||
<action function="play-file" data="voicemail/vm-greeting.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-selected.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -163,36 +306,43 @@
|
|||
<macro name="voicemail_play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 n'est pas disponible."/>
|
||||
<action function="play-file" data="voicemail/vm-person.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-not_available.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_number">
|
||||
<input pattern="^(.*)$">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_message_number">
|
||||
<input pattern="^new:(.*)$">
|
||||
<input pattern="^([a-z]+):(\d+)$">
|
||||
<match>
|
||||
<action function="speak-text" data="nouveau message numéro $1."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^saved:(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="message sauvegardé numéro $1."/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message_number.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_phone_number">
|
||||
<input pattern="^000|^$|^[Aa]non|^[Pp]rivate" break_on_match="true">
|
||||
<match>
|
||||
<!-- add 'anonymous caller' sound here -->
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_a_call_from.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -200,35 +350,39 @@
|
|||
<macro name="voicemail_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
|
||||
<macro name="voicemail_ack">
|
||||
<input pattern="^(too-small)$">
|
||||
<match>
|
||||
<action function="speak-text" data="message trop court"/>
|
||||
<action function="play-file" data="voicemail/vm-too-small.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(deleted)$">
|
||||
<match>
|
||||
<action function="speak-text" data="message supprimé"/>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(saved)$">
|
||||
<match>
|
||||
<action function="speak-text" data="message sauvegardé"/>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(emailed)$">
|
||||
<match>
|
||||
<action function="speak-text" data="message envoyé"/>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(marked-urgent)$">
|
||||
<match>
|
||||
<action function="speak-text" data="message marqué urgent"/>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -236,9 +390,41 @@
|
|||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="${strftime($1|%e/%m/%Y, %H heures %M)}"/>
|
||||
<action function="say" data="$1" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
<macro name="voicemail_disk_quota_exceeded">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_announce_ext">
|
||||
<input pattern="^([^\:]+):(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_lot_full">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_lot_empty">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,238 @@
|
|||
<include>
|
||||
|
||||
<macro name="voicemail_enter_id">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="please enter your i d, followed by $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_enter_pass">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="please enter your password, followed by $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_fail_auth">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="login incorrect."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="welcome to your voicemail."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_goodbye">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="goodbye."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_abort">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="too many failed attempts."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_message_count">
|
||||
<input pattern="^1:(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="you have $1 $2 messages in folder ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $4."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_config_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/>
|
||||
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_urgent_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To mark this message urgent, press $1, To continue, press $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_invalid_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 is not a valid extension."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="enter the extension you wish to forward to, then press $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_prepend">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="To record an announcement, press $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_listen_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to the recording again, press $1, To save the recording, press $2, To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="choose a greeting between 1 and 3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting_fail">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="invalid value."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_message">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_greeting_selected">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="greeting $1 selected."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 is not available."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_message_number">
|
||||
<input pattern="^([a-z]+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 message number $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_phone_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_ack">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="message $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,397 @@
|
|||
<include>
|
||||
|
||||
<macros name="voicemail_ivr">
|
||||
<macro name="press_key">
|
||||
<input pattern="^(.*):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="$2"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="plurial_msg">
|
||||
<input pattern="^[01]:(.*):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^.*:(.*):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="$2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_id">
|
||||
<input pattern="(.+)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_pass">
|
||||
<input pattern="(.+)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
|
||||
</nomatch>
|
||||
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="fail_auth">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="hello">
|
||||
<input>
|
||||
<match>
|
||||
<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="goodbye">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-goodbye.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="abort">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-abort.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="message_count">
|
||||
<input field="${VM-Total-New-Urgent-Messages}" pattern="^(0)$">
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="${VM-Total-New-Urgent-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-urgent-new.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-New-Urgent-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input field="${VM-Total-New-Messages}" pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="${VM-Total-New-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-new.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-New-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input field="${VM-Total-Saved-Messages}" pattern="^(0)$">
|
||||
<nomatch>
|
||||
<action function="play-file" data="currency/and.wav"/>
|
||||
<action function="say" data="${VM-Total-Saved-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-saved.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-Saved-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="menu">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-New-Messages}:voicemail/vm-listen_new.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-Saved-Messages}:voicemail/vm-listen_saved.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Config-Menu}:voicemail/vm-advanced.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-to_exit.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="config_menu">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Greeting}:voicemail/vm-to_record_greeting.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Choose-Greeting}:voicemail/vm-choose_greeting.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Name}:voicemail/vm-record_name2.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Change-Password}:voicemail/vm-change_password.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Menu}:voicemail/vm-main_menu.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_name">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_name1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_ask_prepend">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_ask_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<!--<action function="phrase" phrase="play-file" data="voicemail/vm-followed_by.wav"/>-->
|
||||
<!--<action function="say" data="${VM-Key-Terminate}" method="pronounced" type="name_spelled"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_file_check">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Save-File}:voicemail/vm-save_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-File}:voicemail/vm-rerecord.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_urgent_check">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Urgent}:voicemail/vm-mark-urgent.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-continue.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_prepend">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-followed_by.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="invalid_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="listen_file_check">
|
||||
<input>
|
||||
<match>
|
||||
<!--<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Next-Msg}:voicemail/vm-for_next_msg.wav"/>--> <!-- Not existant in callie recordings -->
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Save-File}:voicemail/vm-save_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Delete-File}:voicemail/vm-delete_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input field="${VM-Message-Email}" pattern="^$">
|
||||
<nomatch>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Email}:voicemail/vm-forward_to_email.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Callback}:voicemail/vm-return_call.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="choose_greeting">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="choose_greeting_fail">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_greeting">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_message">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="greeting_selected">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-greeting.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-selected.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-person.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-not_available.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_number">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_message_number">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-${VM-Message-Type}.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message_number.wav"/>
|
||||
<action function="say" data="${VM-Message-Number}" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_phone_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
|
||||
<macro name="ack">
|
||||
<input pattern="^(too-small)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-too-small.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(undeleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(deleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(saved)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(emailed)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(marked-urgent)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_date_event">
|
||||
<input>
|
||||
<match>
|
||||
<action function="say" data="${VM-Message-Received-Epoch}" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_message">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="${VM-Message-File-Path}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_recording">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="${VM-Record-File-Path}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="disk_quota_exceeded">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</macros>
|
||||
|
||||
</include>
|
||||
|
|
@ -138,9 +138,8 @@
|
|||
<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"/>
|
||||
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include><!--This line will be ignored it's here to validate the xml and is optional -->
|
||||
</include>
|
||||
|
|
|
|||
|
|
@ -1,122 +1,119 @@
|
|||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-specify_mininum.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-specify_mininum.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_matching_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-result_match.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_matching_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-result_match.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-too_many_result.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-too_many_result.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</macro>
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_more_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_more_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-result_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</macro>
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-at_extension.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-result_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_select_entry.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_next.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_prev.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-start_new_search.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-at_extension.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_select_entry.wav"/>
|
||||
<action function="play-file" data="directory/dir-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_next.wav"/>
|
||||
<action function="play-file" data="directory/dir-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_prev.wav"/>
|
||||
<action function="play-file" data="directory/dir-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-start_new_search.wav"/>
|
||||
<action function="play-file" data="directory/dir-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,95 @@
|
|||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person last name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person first name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by first name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by last name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search match no user on this system, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 result match your search"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search returned too many result, please try again"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="No more result"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Result number $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="at extension $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
<include>
|
||||
<language name="he" sound-prefix="$${sounds_dir}/he/daniel" tts-engine="cepstral" tts-voice="daniel">
|
||||
<phrases>
|
||||
<macros>
|
||||
<X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>
|
||||
<X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/>
|
||||
</macros>
|
||||
</phrases>
|
||||
</language>
|
||||
</include>
|
||||
<include>
|
||||
<language name="he" say-module="he" sound-prefix="$${sounds_dir}/he/he/daniel" tts-engine="cepstral" tts-voice="david">
|
||||
<phrases>
|
||||
<macros>
|
||||
<X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
|
||||
<!--voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="ivr/*.xml"/> <!-- IVR and custom phrases go here -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/voicemail_ivr.xml"/>
|
||||
</macros>
|
||||
</phrases>
|
||||
</language>
|
||||
</include>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
<include>
|
||||
<macro name="pin_number_start">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-continue.wav" />
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="pin_number_enter_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_extension_followed_by_pound.wav" />
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
<include>
|
||||
<macro name="queue_position">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-you_are_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="ivr/ivr-in_line.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_called_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_joined.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_left_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_left.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="callers_in_conf">
|
||||
<input pattern="^1$" break_on_match="true">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<!--<action function="play-file" data="ivr/ivr-there_is.wav"/>-->
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-listener_in_conference.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_dest_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_destination_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_src_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_source_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_set">
|
||||
<input pattern="^(\d+):(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$2" method="iterated" type="number"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_set.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_cancel">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_cancelled.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="screen_confirm">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<!-- Note, be sure to pass in the full path to the file or else!! -->
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
<include>
|
||||
<macro name="wakeup-greeting">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To schedule a wakeup call enter a 4 digit number -->
|
||||
<!-- For 6:30 am press 0630. Enter the digits now. -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-request_wakeup_call.wav"/>
|
||||
<!--
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
<action function="play-file" data="digits/3.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
|
||||
<action function="execute" data="sleep(750)"/>
|
||||
<action function="play-file" data="ivr/ivr-for.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
<action function="play-file" data="digits/30.wav"/>
|
||||
<action function="play-file" data="time/a-m.wav"/>
|
||||
-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-hours">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="time/hours.wav"/>
|
||||
<!--<action function="play-file" data="misc/followed.wav"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-minutes">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="time/minutes.wav"/>
|
||||
<!--<action function="play-file" data="misc/followed.wav"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-destination">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Enter the number followed by pound -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-number.wav"/>
|
||||
<action function="play-file" data="misc/followed.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-scheduled">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Your wakeup call has been scheduled for 0715 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-requested_wakeup_call_for.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-accept">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To accept press 1 to cancel press 2 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-cancel">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To cancel the wakeup call press * -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-cancel_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="play-file" data="misc/followed.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-cancelled">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- wakeup call cancelled -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-wakeup_call_cancelled.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Say the current date and time -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call-exit" enabled="false">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- This is your wakeup call to exit press 1 for 9 minutes press 2 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call-snooze" enabled="false">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- This is your wakeup call to exit press 1 for 10 minutes press 2 -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-for.wav"/>
|
||||
<action function="play-file" data="digits/10.wav"/>
|
||||
<action function="play-file" data="time/minutes.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -26,6 +26,22 @@
|
|||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_change_pass_success">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-Thank_you.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_change_pass_fail">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
|
|
@ -316,9 +332,17 @@
|
|||
</macro>
|
||||
|
||||
<macro name="voicemail_say_phone_number">
|
||||
<input pattern="^000|^$|^[Aa]non|^[Pp]rivate" break_on_match="true">
|
||||
<match>
|
||||
<!-- add 'anonymous caller' sound here -->
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-this_is_a_call_from.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
@ -366,7 +390,7 @@
|
|||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="current_date_time"/>
|
||||
<action function="say" data="$1" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,238 @@
|
|||
<include>
|
||||
|
||||
<macro name="voicemail_enter_id">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="please enter your i d, followed by $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_enter_pass">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="please enter your password, followed by $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_fail_auth">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="login incorrect."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="welcome to your voicemail."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_goodbye">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="goodbye."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_abort">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="too many failed attempts."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_message_count">
|
||||
<input pattern="^1:(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="you have $1 $2 messages in folder ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $4."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_config_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/>
|
||||
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_urgent_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To mark this message urgent, press $1, To continue, press $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_invalid_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 is not a valid extension."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="enter the extension you wish to forward to, then press $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_prepend">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="To record an announcement, press $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_listen_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to the recording again, press $1, To save the recording, press $2, To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="choose a greeting between 1 and 3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting_fail">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="invalid value."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_message">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_greeting_selected">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="greeting $1 selected."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 is not available."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_message_number">
|
||||
<input pattern="^([a-z]+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 message number $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_phone_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_ack">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="message $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,397 @@
|
|||
<include>
|
||||
|
||||
<macros name="voicemail_ivr">
|
||||
<macro name="press_key">
|
||||
<input pattern="^(.*):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="$2"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="plurial_msg">
|
||||
<input pattern="^[01]:(.*):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^.*:(.*):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="$2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_id">
|
||||
<input pattern="(.+)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_pass">
|
||||
<input pattern="(.+)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
|
||||
</nomatch>
|
||||
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="fail_auth">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="hello">
|
||||
<input>
|
||||
<match>
|
||||
<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="goodbye">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-goodbye.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="abort">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-abort.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="message_count">
|
||||
<input field="${VM-Total-New-Urgent-Messages}" pattern="^(0)$">
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="${VM-Total-New-Urgent-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-urgent-new.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-New-Urgent-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input field="${VM-Total-New-Messages}" pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="${VM-Total-New-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-new.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-New-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input field="${VM-Total-Saved-Messages}" pattern="^(0)$">
|
||||
<nomatch>
|
||||
<action function="play-file" data="currency/and.wav"/>
|
||||
<action function="say" data="${VM-Total-Saved-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-saved.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-Saved-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="menu">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-New-Messages}:voicemail/vm-listen_new.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-Saved-Messages}:voicemail/vm-listen_saved.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Config-Menu}:voicemail/vm-advanced.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-to_exit.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="config_menu">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Greeting}:voicemail/vm-to_record_greeting.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Choose-Greeting}:voicemail/vm-choose_greeting.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Name}:voicemail/vm-record_name2.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Change-Password}:voicemail/vm-change_password.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Menu}:voicemail/vm-main_menu.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_name">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_name1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_ask_prepend">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_ask_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<!--<action function="phrase" phrase="play-file" data="voicemail/vm-followed_by.wav"/>-->
|
||||
<!--<action function="say" data="${VM-Key-Terminate}" method="pronounced" type="name_spelled"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_file_check">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Save-File}:voicemail/vm-save_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-File}:voicemail/vm-rerecord.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_urgent_check">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Urgent}:voicemail/vm-mark-urgent.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-continue.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_prepend">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-followed_by.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="invalid_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="listen_file_check">
|
||||
<input>
|
||||
<match>
|
||||
<!--<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Next-Msg}:voicemail/vm-for_next_msg.wav"/>--> <!-- Not existant in callie recordings -->
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Save-File}:voicemail/vm-save_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Delete-File}:voicemail/vm-delete_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input field="${VM-Message-Email}" pattern="^$">
|
||||
<nomatch>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Email}:voicemail/vm-forward_to_email.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Callback}:voicemail/vm-return_call.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="choose_greeting">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="choose_greeting_fail">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_greeting">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_message">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="greeting_selected">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-greeting.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-selected.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-person.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-not_available.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_number">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_message_number">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-${VM-Message-Type}.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message_number.wav"/>
|
||||
<action function="say" data="${VM-Message-Number}" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_phone_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
|
||||
<macro name="ack">
|
||||
<input pattern="^(too-small)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-too-small.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(undeleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(deleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(saved)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(emailed)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(marked-urgent)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_date_event">
|
||||
<input>
|
||||
<match>
|
||||
<action function="say" data="${VM-Message-Received-Epoch}" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_message">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="${VM-Message-File-Path}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_recording">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="${VM-Record-File-Path}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="disk_quota_exceeded">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</macros>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
<include>
|
||||
|
||||
<macro name="demo_ivr_count">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="demo_ivr_main_menu" pause="100"> <!-- 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="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
|
||||
<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 -->
|
||||
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
|
||||
<action function="play-file" data="silence_stream://1500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 4: Register for ClueCon -->
|
||||
<action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
|
||||
<action function="play-file" data="digits/4.wav"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 6: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<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="play-file" data="silence_stream://2000"/>
|
||||
</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" pause="100">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="silence_stream://1000"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 4: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<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="play-file" data="silence_stream://2000"/>
|
||||
</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="play-file" data="ivr/ivr-sample_submenu.wav"/>
|
||||
|
||||
<!-- Menu option *: Return to top menu -->
|
||||
<action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
|
||||
<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"/>
|
||||
|
||||
</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="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
<include>
|
||||
<macro name="msgcount">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
<!-- or -->
|
||||
<!--<action function="speak-text" data="you have $1 messages"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="saydate">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="current_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="timespec">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="time_measurement"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="ip-addr">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="iterated" type="ip_address"/>
|
||||
<action function="say" data="$1" method="pronounced" type="ip_address"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell-phonetic">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_phonetic"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="tts-timeleft">
|
||||
<!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
|
||||
<!-- If the function "break" is encountered all parsing will cease -->
|
||||
<input pattern="(\d+):(\d+)">
|
||||
<match>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
<action function="break"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input pattern="(\d+) min (\d+) sec">
|
||||
<match>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-specify_mininum.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_matching_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-result_match.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-too_many_result.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_more_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-result_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-at_extension.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_select_entry.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_next.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_prev.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-start_new_search.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person last name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person first name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by first name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by last name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search match no user on this system, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 result match your search"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search returned too many result, please try again"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="No more result"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Result number $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="at extension $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<include>
|
||||
<language name="it" say-module="it" sound-prefix="$${sounds_dir}/it/it/callie" tts-engine="cepstral" tts-voice="callie">
|
||||
<phrases>
|
||||
<macros>
|
||||
<X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
|
||||
<!--voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="ivr/*.xml"/> <!-- IVR and custom phrases go here -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/voicemail_ivr.xml"/>
|
||||
</macros>
|
||||
</phrases>
|
||||
</language>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<include>
|
||||
<macro name="pin_number_start">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-continue.wav" />
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="pin_number_enter_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_extension_followed_by_pound.wav" />
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
<include>
|
||||
<macro name="queue_position">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-you_are_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="ivr/ivr-in_line.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_called_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_joined.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_left_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_left.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="callers_in_conf">
|
||||
<input pattern="^1$" break_on_match="true">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<!--<action function="play-file" data="ivr/ivr-there_is.wav"/>-->
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-listener_in_conference.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_dest_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_destination_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_src_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_source_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_set">
|
||||
<input pattern="^(\d+):(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$2" method="iterated" type="number"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_set.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_cancel">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_cancelled.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="screen_confirm">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<!-- Note, be sure to pass in the full path to the file or else!! -->
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
<include>
|
||||
<macro name="wakeup-greeting">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To schedule a wakeup call enter a 4 digit number -->
|
||||
<!-- For 6:30 am press 0630. Enter the digits now. -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-request_wakeup_call.wav"/>
|
||||
<!--
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
<action function="play-file" data="digits/3.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
|
||||
<action function="execute" data="sleep(750)"/>
|
||||
<action function="play-file" data="ivr/ivr-for.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
<action function="play-file" data="digits/30.wav"/>
|
||||
<action function="play-file" data="time/a-m.wav"/>
|
||||
-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-hours">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="time/hours.wav"/>
|
||||
<!--<action function="play-file" data="misc/followed.wav"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-minutes">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="time/minutes.wav"/>
|
||||
<!--<action function="play-file" data="misc/followed.wav"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-destination">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Enter the number followed by pound -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-number.wav"/>
|
||||
<action function="play-file" data="misc/followed.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-scheduled">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Your wakeup call has been scheduled for 0715 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-requested_wakeup_call_for.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-accept">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To accept press 1 to cancel press 2 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-cancel">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To cancel the wakeup call press * -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-cancel_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="play-file" data="misc/followed.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-cancelled">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- wakeup call cancelled -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-wakeup_call_cancelled.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Say the current date and time -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call-exit" enabled="false">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- This is your wakeup call to exit press 1 for 9 minutes press 2 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call-snooze" enabled="false">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- This is your wakeup call to exit press 1 for 10 minutes press 2 -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-for.wav"/>
|
||||
<action function="play-file" data="digits/10.wav"/>
|
||||
<action function="play-file" data="time/minutes.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,430 @@
|
|||
<include>
|
||||
|
||||
<macro name="voicemail_enter_id">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_enter_pass">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_fail_auth">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_change_pass_success">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-Thank_you.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_change_pass_fail">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_goodbye">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-goodbye.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_abort">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-abort.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_message_count">
|
||||
<input pattern="^(1):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-$2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-$2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<!-- To listen to new messages -->
|
||||
<action function="play-file" data="voicemail/vm-listen_new.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To listen to saved messages -->
|
||||
<action function="play-file" data="voicemail/vm-listen_saved.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- For advanced options -->
|
||||
<action function="play-file" data="voicemail/vm-advanced.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To exit -->
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_config_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<!-- To record a greeting -->
|
||||
<action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To choose greeting -->
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To record your name -->
|
||||
<action function="play-file" data="voicemail/vm-record_name2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To change password -->
|
||||
<action function="play-file" data="voicemail/vm-change_password.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To return to main menu -->
|
||||
<action function="play-file" data="voicemail/vm-main_menu.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_name1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-rerecord.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_urgent_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-continue.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_prepend">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-send_message_now.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-followed_by.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_invalid_extension">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_listen_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-return_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-to_forward.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-return_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-to_forward.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting_fail">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_message">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_greeting_selected">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-greeting.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-selected.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-person.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-not_available.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_number">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_message_number">
|
||||
<input pattern="^([a-z]+):(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message_number.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_phone_number">
|
||||
<input pattern="^000|^$|^[Aa]non|^[Pp]rivate" break_on_match="true">
|
||||
<match>
|
||||
<!-- add 'anonymous caller' sound here -->
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-this_is_a_call_from.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
|
||||
<macro name="voicemail_ack">
|
||||
<input pattern="^(too-small)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-too-small.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(deleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(saved)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(emailed)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(marked-urgent)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_disk_quota_exceeded">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_announce_ext">
|
||||
<input pattern="^([^\:]+):(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_lot_full">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_lot_empty">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,238 @@
|
|||
<include>
|
||||
|
||||
<macro name="voicemail_enter_id">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="please enter your i d, followed by $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_enter_pass">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="please enter your password, followed by $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_fail_auth">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="login incorrect."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="welcome to your voicemail."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_goodbye">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="goodbye."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_abort">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="too many failed attempts."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_message_count">
|
||||
<input pattern="^1:(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="you have $1 $2 messages in folder ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $4."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_config_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/>
|
||||
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_urgent_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To mark this message urgent, press $1, To continue, press $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_invalid_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 is not a valid extension."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="enter the extension you wish to forward to, then press $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_prepend">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="To record an announcement, press $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_listen_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to the recording again, press $1, To save the recording, press $2, To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="choose a greeting between 1 and 3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting_fail">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="invalid value."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_message">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_greeting_selected">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="greeting $1 selected."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 is not available."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_message_number">
|
||||
<input pattern="^([a-z]+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 message number $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_phone_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_ack">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="message $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,397 @@
|
|||
<include>
|
||||
|
||||
<macros name="voicemail_ivr">
|
||||
<macro name="press_key">
|
||||
<input pattern="^(.*):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="$2"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="plurial_msg">
|
||||
<input pattern="^[01]:(.*):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^.*:(.*):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="$2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_id">
|
||||
<input pattern="(.+)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_pass">
|
||||
<input pattern="(.+)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
|
||||
</nomatch>
|
||||
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="fail_auth">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="hello">
|
||||
<input>
|
||||
<match>
|
||||
<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="goodbye">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-goodbye.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="abort">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-abort.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="message_count">
|
||||
<input field="${VM-Total-New-Urgent-Messages}" pattern="^(0)$">
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="${VM-Total-New-Urgent-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-urgent-new.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-New-Urgent-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input field="${VM-Total-New-Messages}" pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="${VM-Total-New-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-new.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-New-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input field="${VM-Total-Saved-Messages}" pattern="^(0)$">
|
||||
<nomatch>
|
||||
<action function="play-file" data="currency/and.wav"/>
|
||||
<action function="say" data="${VM-Total-Saved-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-saved.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-Saved-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="menu">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-New-Messages}:voicemail/vm-listen_new.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-Saved-Messages}:voicemail/vm-listen_saved.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Config-Menu}:voicemail/vm-advanced.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-to_exit.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="config_menu">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Greeting}:voicemail/vm-to_record_greeting.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Choose-Greeting}:voicemail/vm-choose_greeting.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Name}:voicemail/vm-record_name2.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Change-Password}:voicemail/vm-change_password.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Menu}:voicemail/vm-main_menu.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_name">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_name1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_ask_prepend">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_ask_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<!--<action function="phrase" phrase="play-file" data="voicemail/vm-followed_by.wav"/>-->
|
||||
<!--<action function="say" data="${VM-Key-Terminate}" method="pronounced" type="name_spelled"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_file_check">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Save-File}:voicemail/vm-save_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-File}:voicemail/vm-rerecord.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_urgent_check">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Urgent}:voicemail/vm-mark-urgent.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-continue.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_prepend">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-followed_by.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="invalid_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="listen_file_check">
|
||||
<input>
|
||||
<match>
|
||||
<!--<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Next-Msg}:voicemail/vm-for_next_msg.wav"/>--> <!-- Not existant in callie recordings -->
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Save-File}:voicemail/vm-save_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Delete-File}:voicemail/vm-delete_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input field="${VM-Message-Email}" pattern="^$">
|
||||
<nomatch>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Email}:voicemail/vm-forward_to_email.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Callback}:voicemail/vm-return_call.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="choose_greeting">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="choose_greeting_fail">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_greeting">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_message">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="greeting_selected">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-greeting.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-selected.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-person.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-not_available.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_number">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_message_number">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-${VM-Message-Type}.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message_number.wav"/>
|
||||
<action function="say" data="${VM-Message-Number}" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_phone_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
|
||||
<macro name="ack">
|
||||
<input pattern="^(too-small)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-too-small.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(undeleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(deleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(saved)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(emailed)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(marked-urgent)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_date_event">
|
||||
<input>
|
||||
<match>
|
||||
<action function="say" data="${VM-Message-Received-Epoch}" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_message">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="${VM-Message-File-Path}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_recording">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="${VM-Record-File-Path}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="disk_quota_exceeded">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</macros>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
<include>
|
||||
|
||||
<macro name="demo_ivr_count">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="demo_ivr_main_menu" pause="100"> <!-- 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="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
|
||||
<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 -->
|
||||
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
|
||||
<action function="play-file" data="silence_stream://1500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 4: Register for ClueCon -->
|
||||
<action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
|
||||
<action function="play-file" data="digits/4.wav"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 6: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<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="play-file" data="silence_stream://2000"/>
|
||||
</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" pause="100">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="silence_stream://1000"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 4: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<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="play-file" data="silence_stream://2000"/>
|
||||
</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="play-file" data="ivr/ivr-sample_submenu.wav"/>
|
||||
|
||||
<!-- Menu option *: Return to top menu -->
|
||||
<action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
|
||||
<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"/>
|
||||
|
||||
</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="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
<include>
|
||||
<macro name="msgcount">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
<!-- or -->
|
||||
<!--<action function="speak-text" data="you have $1 messages"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="saydate">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="current_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="timespec">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="time_measurement"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="ip-addr">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="iterated" type="ip_address"/>
|
||||
<action function="say" data="$1" method="pronounced" type="ip_address"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell-phonetic">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_phonetic"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="tts-timeleft">
|
||||
<!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
|
||||
<!-- If the function "break" is encountered all parsing will cease -->
|
||||
<input pattern="(\d+):(\d+)">
|
||||
<match>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
<action function="break"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input pattern="(\d+) min (\d+) sec">
|
||||
<match>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-specify_mininum.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_matching_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-result_match.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-too_many_result.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_more_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-result_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-at_extension.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_select_entry.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_next.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_prev.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-start_new_search.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person last name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person first name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by first name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by last name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search match no user on this system, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 result match your search"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search returned too many result, please try again"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="No more result"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Result number $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="at extension $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
<include>
|
||||
|
||||
<macro name="demo_ivr_count">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="demo_ivr_main_menu" pause="100"> <!-- 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="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
|
||||
<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 -->
|
||||
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
|
||||
<action function="play-file" data="silence_stream://1500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 4: Register for ClueCon -->
|
||||
<action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
|
||||
<action function="play-file" data="digits/4.wav"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 6: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<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="play-file" data="silence_stream://2000"/>
|
||||
</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" pause="100">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="silence_stream://1000"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 4: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<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="play-file" data="silence_stream://2000"/>
|
||||
</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="play-file" data="ivr/ivr-sample_submenu.wav"/>
|
||||
|
||||
<!-- Menu option *: Return to top menu -->
|
||||
<action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
|
||||
<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"/>
|
||||
|
||||
</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="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
<include>
|
||||
<macro name="msgcount">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
<!-- or -->
|
||||
<!--<action function="speak-text" data="you have $1 messages"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="saydate">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="current_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="timespec">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="time_measurement"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="ip-addr">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="iterated" type="ip_address"/>
|
||||
<action function="say" data="$1" method="pronounced" type="ip_address"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell-phonetic">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_phonetic"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="tts-timeleft">
|
||||
<!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
|
||||
<!-- If the function "break" is encountered all parsing will cease -->
|
||||
<input pattern="(\d+):(\d+)">
|
||||
<match>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
<action function="break"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input pattern="(\d+) min (\d+) sec">
|
||||
<match>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-specify_mininum.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_matching_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-result_match.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-too_many_result.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_more_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-result_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-at_extension.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_select_entry.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_next.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_prev.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-start_new_search.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person last name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person first name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by first name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by last name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search match no user on this system, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 result match your search"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search returned too many result, please try again"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="No more result"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Result number $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="at extension $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<include>
|
||||
<language name="en" say-module="en" sound-prefix="$${sounds_dir}/en/us/callie" tts-engine="cepstral" tts-voice="callie">
|
||||
<phrases>
|
||||
<macros>
|
||||
<X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
|
||||
<!--voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="ivr/*.xml"/> <!-- IVR and custom phrases go here -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/voicemail_ivr.xml"/>
|
||||
</macros>
|
||||
</phrases>
|
||||
</language>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<include>
|
||||
<macro name="pin_number_start">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-continue.wav" />
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="pin_number_enter_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_extension_followed_by_pound.wav" />
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
<include>
|
||||
<macro name="queue_position">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-you_are_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="ivr/ivr-in_line.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_called_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_joined.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_left_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_left.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="callers_in_conf">
|
||||
<input pattern="^1$" break_on_match="true">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<!--<action function="play-file" data="ivr/ivr-there_is.wav"/>-->
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-listener_in_conference.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_dest_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_destination_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_src_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_source_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_set">
|
||||
<input pattern="^(\d+):(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$2" method="iterated" type="number"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_set.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_cancel">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_cancelled.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="screen_confirm">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<!-- Note, be sure to pass in the full path to the file or else!! -->
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
<include>
|
||||
<macro name="wakeup-greeting">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To schedule a wakeup call enter a 4 digit number -->
|
||||
<!-- For 6:30 am press 0630. Enter the digits now. -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-request_wakeup_call.wav"/>
|
||||
<!--
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
<action function="play-file" data="digits/3.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
|
||||
<action function="execute" data="sleep(750)"/>
|
||||
<action function="play-file" data="ivr/ivr-for.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
<action function="play-file" data="digits/30.wav"/>
|
||||
<action function="play-file" data="time/a-m.wav"/>
|
||||
-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-hours">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="time/hours.wav"/>
|
||||
<!--<action function="play-file" data="misc/followed.wav"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-minutes">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="time/minutes.wav"/>
|
||||
<!--<action function="play-file" data="misc/followed.wav"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-destination">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Enter the number followed by pound -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-number.wav"/>
|
||||
<action function="play-file" data="misc/followed.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-scheduled">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Your wakeup call has been scheduled for 0715 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-requested_wakeup_call_for.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-accept">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To accept press 1 to cancel press 2 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-cancel">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To cancel the wakeup call press * -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-cancel_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="play-file" data="misc/followed.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-cancelled">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- wakeup call cancelled -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-wakeup_call_cancelled.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Say the current date and time -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call-exit" enabled="false">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- This is your wakeup call to exit press 1 for 9 minutes press 2 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call-snooze" enabled="false">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- This is your wakeup call to exit press 1 for 10 minutes press 2 -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-for.wav"/>
|
||||
<action function="play-file" data="digits/10.wav"/>
|
||||
<action function="play-file" data="time/minutes.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,430 @@
|
|||
<include>
|
||||
|
||||
<macro name="voicemail_enter_id">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_enter_pass">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_fail_auth">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_change_pass_success">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-Thank_you.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_change_pass_fail">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_goodbye">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-goodbye.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_abort">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-abort.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_message_count">
|
||||
<input pattern="^(1):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-$2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-$2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<!-- To listen to new messages -->
|
||||
<action function="play-file" data="voicemail/vm-listen_new.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To listen to saved messages -->
|
||||
<action function="play-file" data="voicemail/vm-listen_saved.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- For advanced options -->
|
||||
<action function="play-file" data="voicemail/vm-advanced.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To exit -->
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_config_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<!-- To record a greeting -->
|
||||
<action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To choose greeting -->
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To record your name -->
|
||||
<action function="play-file" data="voicemail/vm-record_name2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To change password -->
|
||||
<action function="play-file" data="voicemail/vm-change_password.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To return to main menu -->
|
||||
<action function="play-file" data="voicemail/vm-main_menu.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_name1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-rerecord.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_urgent_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-continue.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_prepend">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-send_message_now.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-followed_by.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_invalid_extension">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_listen_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-return_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-to_forward.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-return_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-to_forward.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting_fail">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_message">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_greeting_selected">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-greeting.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-selected.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-person.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-not_available.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_number">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_message_number">
|
||||
<input pattern="^([a-z]+):(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message_number.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_phone_number">
|
||||
<input pattern="^000|^$|^[Aa]non|^[Pp]rivate" break_on_match="true">
|
||||
<match>
|
||||
<!-- add 'anonymous caller' sound here -->
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-this_is_a_call_from.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
|
||||
<macro name="voicemail_ack">
|
||||
<input pattern="^(too-small)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-too-small.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(deleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(saved)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(emailed)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(marked-urgent)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_disk_quota_exceeded">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_announce_ext">
|
||||
<input pattern="^([^\:]+):(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_lot_full">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_lot_empty">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,238 @@
|
|||
<include>
|
||||
|
||||
<macro name="voicemail_enter_id">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="please enter your i d, followed by $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_enter_pass">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="please enter your password, followed by $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_fail_auth">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="login incorrect."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="welcome to your voicemail."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_goodbye">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="goodbye."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_abort">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="too many failed attempts."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_message_count">
|
||||
<input pattern="^1:(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="you have $1 $2 messages in folder ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $4."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_config_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/>
|
||||
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_urgent_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To mark this message urgent, press $1, To continue, press $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_invalid_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 is not a valid extension."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="enter the extension you wish to forward to, then press $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_prepend">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="To record an announcement, press $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_listen_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to the recording again, press $1, To save the recording, press $2, To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="choose a greeting between 1 and 3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting_fail">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="invalid value."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_message">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_greeting_selected">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="greeting $1 selected."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 is not available."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_message_number">
|
||||
<input pattern="^([a-z]+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 message number $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_phone_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_ack">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="message $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,397 @@
|
|||
<include>
|
||||
|
||||
<macros name="voicemail_ivr">
|
||||
<macro name="press_key">
|
||||
<input pattern="^(.*):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="$2"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="plurial_msg">
|
||||
<input pattern="^[01]:(.*):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^.*:(.*):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="$2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_id">
|
||||
<input pattern="(.+)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_pass">
|
||||
<input pattern="(.+)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
|
||||
</nomatch>
|
||||
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="fail_auth">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="hello">
|
||||
<input>
|
||||
<match>
|
||||
<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="goodbye">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-goodbye.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="abort">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-abort.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="message_count">
|
||||
<input field="${VM-Total-New-Urgent-Messages}" pattern="^(0)$">
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="${VM-Total-New-Urgent-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-urgent-new.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-New-Urgent-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input field="${VM-Total-New-Messages}" pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="${VM-Total-New-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-new.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-New-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input field="${VM-Total-Saved-Messages}" pattern="^(0)$">
|
||||
<nomatch>
|
||||
<action function="play-file" data="currency/and.wav"/>
|
||||
<action function="say" data="${VM-Total-Saved-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-saved.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-Saved-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="menu">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-New-Messages}:voicemail/vm-listen_new.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-Saved-Messages}:voicemail/vm-listen_saved.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Config-Menu}:voicemail/vm-advanced.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-to_exit.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="config_menu">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Greeting}:voicemail/vm-to_record_greeting.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Choose-Greeting}:voicemail/vm-choose_greeting.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Name}:voicemail/vm-record_name2.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Change-Password}:voicemail/vm-change_password.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Menu}:voicemail/vm-main_menu.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_name">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_name1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_ask_prepend">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_ask_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<!--<action function="phrase" phrase="play-file" data="voicemail/vm-followed_by.wav"/>-->
|
||||
<!--<action function="say" data="${VM-Key-Terminate}" method="pronounced" type="name_spelled"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_file_check">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Save-File}:voicemail/vm-save_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-File}:voicemail/vm-rerecord.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_urgent_check">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Urgent}:voicemail/vm-mark-urgent.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-continue.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_prepend">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-followed_by.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="invalid_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="listen_file_check">
|
||||
<input>
|
||||
<match>
|
||||
<!--<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Next-Msg}:voicemail/vm-for_next_msg.wav"/>--> <!-- Not existant in callie recordings -->
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Save-File}:voicemail/vm-save_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Delete-File}:voicemail/vm-delete_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input field="${VM-Message-Email}" pattern="^$">
|
||||
<nomatch>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Email}:voicemail/vm-forward_to_email.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Callback}:voicemail/vm-return_call.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="choose_greeting">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="choose_greeting_fail">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_greeting">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_message">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="greeting_selected">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-greeting.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-selected.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-person.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-not_available.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_number">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_message_number">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-${VM-Message-Type}.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message_number.wav"/>
|
||||
<action function="say" data="${VM-Message-Number}" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_phone_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
|
||||
<macro name="ack">
|
||||
<input pattern="^(too-small)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-too-small.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(undeleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(deleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(saved)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(emailed)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(marked-urgent)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_date_event">
|
||||
<input>
|
||||
<match>
|
||||
<action function="say" data="${VM-Message-Received-Epoch}" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_message">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="${VM-Message-File-Path}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_recording">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="${VM-Record-File-Path}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="disk_quota_exceeded">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</macros>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<include>
|
||||
<macro name="pin_number_start">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-continue.wav" />
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="pin_number_enter_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_extension_followed_by_pound.wav" />
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
<include>
|
||||
<macro name="queue_position">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-you_are_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="ivr/ivr-in_line.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_called_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_joined.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_left_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_left.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="callers_in_conf">
|
||||
<input pattern="^1$" break_on_match="true">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<!--<action function="play-file" data="ivr/ivr-there_is.wav"/>-->
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-listener_in_conference.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_dest_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_destination_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_src_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_source_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_set">
|
||||
<input pattern="^(\d+):(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$2" method="iterated" type="number"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_set.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_cancel">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_cancelled.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="screen_confirm">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<!-- Note, be sure to pass in the full path to the file or else!! -->
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
<include>
|
||||
<macro name="wakeup-greeting">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To schedule a wakeup call enter a 4 digit number -->
|
||||
<!-- For 6:30 am press 0630. Enter the digits now. -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-request_wakeup_call.wav"/>
|
||||
<!--
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
<action function="play-file" data="digits/3.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
|
||||
<action function="execute" data="sleep(750)"/>
|
||||
<action function="play-file" data="ivr/ivr-for.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
<action function="play-file" data="digits/30.wav"/>
|
||||
<action function="play-file" data="time/a-m.wav"/>
|
||||
-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-hours">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="time/hours.wav"/>
|
||||
<!--<action function="play-file" data="misc/followed.wav"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-minutes">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="time/minutes.wav"/>
|
||||
<!--<action function="play-file" data="misc/followed.wav"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-destination">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Enter the number followed by pound -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-number.wav"/>
|
||||
<action function="play-file" data="misc/followed.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-scheduled">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Your wakeup call has been scheduled for 0715 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-requested_wakeup_call_for.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-accept">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To accept press 1 to cancel press 2 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-cancel">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To cancel the wakeup call press * -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-cancel_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="play-file" data="misc/followed.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-cancelled">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- wakeup call cancelled -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-wakeup_call_cancelled.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Say the current date and time -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call-exit" enabled="false">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- This is your wakeup call to exit press 1 for 9 minutes press 2 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call-snooze" enabled="false">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- This is your wakeup call to exit press 1 for 10 minutes press 2 -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-for.wav"/>
|
||||
<action function="play-file" data="digits/10.wav"/>
|
||||
<action function="play-file" data="time/minutes.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<include>
|
||||
<language name="nl" say-module="nl" sound-prefix="$${sounds_dir}/nl/nl/callie" tts-engine="cepstral" tts-voice="callie">
|
||||
<phrases>
|
||||
<macros>
|
||||
<X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
|
||||
<!--voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="ivr/*.xml"/> <!-- IVR and custom phrases go here -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/voicemail_ivr.xml"/>
|
||||
</macros>
|
||||
</phrases>
|
||||
</language>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,430 @@
|
|||
<include>
|
||||
|
||||
<macro name="voicemail_enter_id">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_enter_pass">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_fail_auth">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_change_pass_success">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-Thank_you.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_change_pass_fail">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_goodbye">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-goodbye.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_abort">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-abort.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_message_count">
|
||||
<input pattern="^(1):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-$2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-$2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<!-- To listen to new messages -->
|
||||
<action function="play-file" data="voicemail/vm-listen_new.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To listen to saved messages -->
|
||||
<action function="play-file" data="voicemail/vm-listen_saved.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- For advanced options -->
|
||||
<action function="play-file" data="voicemail/vm-advanced.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To exit -->
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_config_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<!-- To record a greeting -->
|
||||
<action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To choose greeting -->
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To record your name -->
|
||||
<action function="play-file" data="voicemail/vm-record_name2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To change password -->
|
||||
<action function="play-file" data="voicemail/vm-change_password.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To return to main menu -->
|
||||
<action function="play-file" data="voicemail/vm-main_menu.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_name1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-rerecord.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_urgent_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-continue.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_prepend">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-send_message_now.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-followed_by.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_invalid_extension">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_listen_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-return_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-to_forward.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-return_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-to_forward.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting_fail">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_message">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_greeting_selected">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-greeting.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-selected.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-person.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-not_available.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_number">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_message_number">
|
||||
<input pattern="^([a-z]+):(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message_number.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_phone_number">
|
||||
<input pattern="^000|^$|^[Aa]non|^[Pp]rivate" break_on_match="true">
|
||||
<match>
|
||||
<!-- add 'anonymous caller' sound here -->
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-this_is_a_call_from.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
|
||||
<macro name="voicemail_ack">
|
||||
<input pattern="^(too-small)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-too-small.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(deleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(saved)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(emailed)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(marked-urgent)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_disk_quota_exceeded">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_announce_ext">
|
||||
<input pattern="^([^\:]+):(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_lot_full">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_lot_empty">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,238 @@
|
|||
<include>
|
||||
|
||||
<macro name="voicemail_enter_id">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="please enter your i d, followed by $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_enter_pass">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="please enter your password, followed by $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_fail_auth">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="login incorrect."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="welcome to your voicemail."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_goodbye">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="goodbye."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_abort">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="too many failed attempts."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_message_count">
|
||||
<input pattern="^1:(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="you have $1 $2 messages in folder ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $4."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_config_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/>
|
||||
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_urgent_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To mark this message urgent, press $1, To continue, press $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_invalid_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 is not a valid extension."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="enter the extension you wish to forward to, then press $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_prepend">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="To record an announcement, press $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_listen_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to the recording again, press $1, To save the recording, press $2, To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="choose a greeting between 1 and 3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting_fail">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="invalid value."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_message">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_greeting_selected">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="greeting $1 selected."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 is not available."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_message_number">
|
||||
<input pattern="^([a-z]+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 message number $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_phone_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_ack">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="message $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,397 @@
|
|||
<include>
|
||||
|
||||
<macros name="voicemail_ivr">
|
||||
<macro name="press_key">
|
||||
<input pattern="^(.*):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="$2"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="plurial_msg">
|
||||
<input pattern="^[01]:(.*):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^.*:(.*):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="$2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_id">
|
||||
<input pattern="(.+)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_pass">
|
||||
<input pattern="(.+)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
|
||||
</nomatch>
|
||||
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="fail_auth">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="hello">
|
||||
<input>
|
||||
<match>
|
||||
<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="goodbye">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-goodbye.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="abort">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-abort.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="message_count">
|
||||
<input field="${VM-Total-New-Urgent-Messages}" pattern="^(0)$">
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="${VM-Total-New-Urgent-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-urgent-new.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-New-Urgent-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input field="${VM-Total-New-Messages}" pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="${VM-Total-New-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-new.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-New-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input field="${VM-Total-Saved-Messages}" pattern="^(0)$">
|
||||
<nomatch>
|
||||
<action function="play-file" data="currency/and.wav"/>
|
||||
<action function="say" data="${VM-Total-Saved-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-saved.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-Saved-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="menu">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-New-Messages}:voicemail/vm-listen_new.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-Saved-Messages}:voicemail/vm-listen_saved.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Config-Menu}:voicemail/vm-advanced.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-to_exit.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="config_menu">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Greeting}:voicemail/vm-to_record_greeting.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Choose-Greeting}:voicemail/vm-choose_greeting.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Name}:voicemail/vm-record_name2.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Change-Password}:voicemail/vm-change_password.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Menu}:voicemail/vm-main_menu.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_name">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_name1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_ask_prepend">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_ask_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<!--<action function="phrase" phrase="play-file" data="voicemail/vm-followed_by.wav"/>-->
|
||||
<!--<action function="say" data="${VM-Key-Terminate}" method="pronounced" type="name_spelled"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_file_check">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Save-File}:voicemail/vm-save_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-File}:voicemail/vm-rerecord.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_urgent_check">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Urgent}:voicemail/vm-mark-urgent.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-continue.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_prepend">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-followed_by.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="invalid_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="listen_file_check">
|
||||
<input>
|
||||
<match>
|
||||
<!--<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Next-Msg}:voicemail/vm-for_next_msg.wav"/>--> <!-- Not existant in callie recordings -->
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Save-File}:voicemail/vm-save_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Delete-File}:voicemail/vm-delete_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input field="${VM-Message-Email}" pattern="^$">
|
||||
<nomatch>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Email}:voicemail/vm-forward_to_email.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Callback}:voicemail/vm-return_call.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="choose_greeting">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="choose_greeting_fail">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_greeting">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_message">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="greeting_selected">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-greeting.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-selected.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-person.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-not_available.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_number">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_message_number">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-${VM-Message-Type}.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message_number.wav"/>
|
||||
<action function="say" data="${VM-Message-Number}" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_phone_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
|
||||
<macro name="ack">
|
||||
<input pattern="^(too-small)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-too-small.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(undeleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(deleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(saved)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(emailed)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(marked-urgent)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_date_event">
|
||||
<input>
|
||||
<match>
|
||||
<action function="say" data="${VM-Message-Received-Epoch}" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_message">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="${VM-Message-File-Path}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_recording">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="${VM-Record-File-Path}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="disk_quota_exceeded">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</macros>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
<include>
|
||||
|
||||
<macro name="demo_ivr_count">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="demo_ivr_main_menu" pause="100"> <!-- 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="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
|
||||
<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 -->
|
||||
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
|
||||
<action function="play-file" data="silence_stream://1500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 4: Register for ClueCon -->
|
||||
<action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
|
||||
<action function="play-file" data="digits/4.wav"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 6: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<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="play-file" data="silence_stream://2000"/>
|
||||
</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" pause="100">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="silence_stream://1000"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 4: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<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="play-file" data="silence_stream://2000"/>
|
||||
</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="play-file" data="ivr/ivr-sample_submenu.wav"/>
|
||||
|
||||
<!-- Menu option *: Return to top menu -->
|
||||
<action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
|
||||
<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"/>
|
||||
|
||||
</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="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
<include>
|
||||
<macro name="msgcount">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
<!-- or -->
|
||||
<!--<action function="speak-text" data="you have $1 messages"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="saydate">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="current_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="timespec">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="time_measurement"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="ip-addr">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="iterated" type="ip_address"/>
|
||||
<action function="say" data="$1" method="pronounced" type="ip_address"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell-phonetic">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_phonetic"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="tts-timeleft">
|
||||
<!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
|
||||
<!-- If the function "break" is encountered all parsing will cease -->
|
||||
<input pattern="(\d+):(\d+)">
|
||||
<match>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
<action function="break"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input pattern="(\d+) min (\d+) sec">
|
||||
<match>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-specify_mininum.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_matching_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-result_match.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-too_many_result.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_more_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-result_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-at_extension.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_select_entry.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_next.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_prev.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-start_new_search.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person last name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person first name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by first name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by last name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search match no user on this system, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 result match your search"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search returned too many result, please try again"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="No more result"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Result number $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="at extension $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<include>
|
||||
<macro name="pin_number_start">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-continue.wav" />
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="pin_number_enter_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_extension_followed_by_pound.wav" />
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
<include>
|
||||
<macro name="queue_position">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-you_are_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="ivr/ivr-in_line.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_called_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_joined.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_left_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_left.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="callers_in_conf">
|
||||
<input pattern="^1$" break_on_match="true">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<!--<action function="play-file" data="ivr/ivr-there_is.wav"/>-->
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-listener_in_conference.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_dest_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_destination_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_src_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_source_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_set">
|
||||
<input pattern="^(\d+):(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$2" method="iterated" type="number"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_set.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_cancel">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_cancelled.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="screen_confirm">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<!-- Note, be sure to pass in the full path to the file or else!! -->
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
<include>
|
||||
<macro name="wakeup-greeting">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To schedule a wakeup call enter a 4 digit number -->
|
||||
<!-- For 6:30 am press 0630. Enter the digits now. -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-request_wakeup_call.wav"/>
|
||||
<!--
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
<action function="play-file" data="digits/3.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
|
||||
<action function="execute" data="sleep(750)"/>
|
||||
<action function="play-file" data="ivr/ivr-for.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
<action function="play-file" data="digits/30.wav"/>
|
||||
<action function="play-file" data="time/a-m.wav"/>
|
||||
-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-hours">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="time/hours.wav"/>
|
||||
<!--<action function="play-file" data="misc/followed.wav"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-minutes">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="time/minutes.wav"/>
|
||||
<!--<action function="play-file" data="misc/followed.wav"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-destination">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Enter the number followed by pound -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-please_enter_the.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-number.wav"/>
|
||||
<action function="play-file" data="misc/followed.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-scheduled">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Your wakeup call has been scheduled for 0715 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-requested_wakeup_call_for.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-accept">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To accept press 1 to cancel press 2 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-cancel">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- To cancel the wakeup call press * -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-cancel_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="play-file" data="misc/followed.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-cancelled">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- wakeup call cancelled -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-wakeup_call_cancelled.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Say the current date and time -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call-exit" enabled="false">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- This is your wakeup call to exit press 1 for 9 minutes press 2 -->
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="wakeup-call-snooze" enabled="false">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- This is your wakeup call to exit press 1 for 10 minutes press 2 -->
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="ivr/ivr-this_is_your_wakeup_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-for.wav"/>
|
||||
<action function="play-file" data="digits/10.wav"/>
|
||||
<action function="play-file" data="time/minutes.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<include>
|
||||
<language name="pt" say-module="pt" sound-prefix="$${sounds_dir}/pt/pt/callie" tts-engine="cepstral" tts-voice="callie">
|
||||
<phrases>
|
||||
<macros>
|
||||
<X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
|
||||
<!--voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="ivr/*.xml"/> <!-- IVR and custom phrases go here -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/voicemail_ivr.xml"/>
|
||||
</macros>
|
||||
</phrases>
|
||||
</language>
|
||||
</include>
|
||||
|
|
@ -0,0 +1,430 @@
|
|||
<include>
|
||||
|
||||
<macro name="voicemail_enter_id">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_enter_pass">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_fail_auth">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_change_pass_success">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-Thank_you.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_change_pass_fail">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_goodbye">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-goodbye.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_abort">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-abort.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_message_count">
|
||||
<input pattern="^(1):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-$2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-$2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<!-- To listen to new messages -->
|
||||
<action function="play-file" data="voicemail/vm-listen_new.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To listen to saved messages -->
|
||||
<action function="play-file" data="voicemail/vm-listen_saved.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- For advanced options -->
|
||||
<action function="play-file" data="voicemail/vm-advanced.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To exit -->
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_config_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<!-- To record a greeting -->
|
||||
<action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To choose greeting -->
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To record your name -->
|
||||
<action function="play-file" data="voicemail/vm-record_name2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To change password -->
|
||||
<action function="play-file" data="voicemail/vm-change_password.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
|
||||
<!-- To return to main menu -->
|
||||
<action function="play-file" data="voicemail/vm-main_menu.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_name1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-rerecord.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_urgent_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-continue.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_prepend">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-send_message_now.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-followed_by.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_invalid_extension">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_listen_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-return_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-to_forward.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-return_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-to_forward.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting_fail">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_message">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_greeting_selected">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-greeting.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-selected.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-person.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-not_available.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_number">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_message_number">
|
||||
<input pattern="^([a-z]+):(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message_number.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_phone_number">
|
||||
<input pattern="^000|^$|^[Aa]non|^[Pp]rivate" break_on_match="true">
|
||||
<match>
|
||||
<!-- add 'anonymous caller' sound here -->
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-this_is_a_call_from.wav"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(500)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
|
||||
<macro name="voicemail_ack">
|
||||
<input pattern="^(too-small)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-too-small.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(deleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(saved)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(emailed)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(marked-urgent)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_disk_quota_exceeded">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_announce_ext">
|
||||
<input pattern="^([^\:]+):(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_lot_full">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_lot_empty">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,238 @@
|
|||
<include>
|
||||
|
||||
<macro name="voicemail_enter_id">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="please enter your i d, followed by $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_enter_pass">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="please enter your password, followed by $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_fail_auth">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="login incorrect."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="welcome to your voicemail."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_goodbye">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="goodbye."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_abort">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="too many failed attempts."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_message_count">
|
||||
<input pattern="^1:(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="you have $1 $2 messages in folder ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $4."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_config_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/>
|
||||
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_urgent_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To mark this message urgent, press $1, To continue, press $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_invalid_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 is not a valid extension."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="enter the extension you wish to forward to, then press $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_prepend">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="To record an announcement, press $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_listen_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="To listen to the recording again, press $1, To save the recording, press $2, To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="choose a greeting between 1 and 3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting_fail">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="invalid value."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_message">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_greeting_selected">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="greeting $1 selected."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 is not available."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_message_number">
|
||||
<input pattern="^([a-z]+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 message number $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_phone_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_ack">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="message $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,397 @@
|
|||
<include>
|
||||
|
||||
<macros name="voicemail_ivr">
|
||||
<macro name="press_key">
|
||||
<input pattern="^(.*):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="$2"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="plurial_msg">
|
||||
<input pattern="^[01]:(.*):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^.*:(.*):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="$2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_id">
|
||||
<input pattern="(.+)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_pass">
|
||||
<input pattern="(.+)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
|
||||
</nomatch>
|
||||
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="fail_auth">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="hello">
|
||||
<input>
|
||||
<match>
|
||||
<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="goodbye">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-goodbye.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="abort">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-abort.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="message_count">
|
||||
<input field="${VM-Total-New-Urgent-Messages}" pattern="^(0)$">
|
||||
<nomatch>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="${VM-Total-New-Urgent-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-urgent-new.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-New-Urgent-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input field="${VM-Total-New-Messages}" pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="${VM-Total-New-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-new.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-New-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input field="${VM-Total-Saved-Messages}" pattern="^(0)$">
|
||||
<nomatch>
|
||||
<action function="play-file" data="currency/and.wav"/>
|
||||
<action function="say" data="${VM-Total-Saved-Messages}" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-saved.wav"/>
|
||||
<action function="phrase" phrase="plurial_msg@voicemail_ivr" data="${VM-Total-Saved-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="menu">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-New-Messages}:voicemail/vm-listen_new.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-Saved-Messages}:voicemail/vm-listen_saved.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Config-Menu}:voicemail/vm-advanced.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-to_exit.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="config_menu">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Greeting}:voicemail/vm-to_record_greeting.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Choose-Greeting}:voicemail/vm-choose_greeting.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Name}:voicemail/vm-record_name2.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Change-Password}:voicemail/vm-change_password.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Menu}:voicemail/vm-main_menu.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_name">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_name1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_ask_prepend">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_ask_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<!--<action function="phrase" phrase="play-file" data="voicemail/vm-followed_by.wav"/>-->
|
||||
<!--<action function="say" data="${VM-Key-Terminate}" method="pronounced" type="name_spelled"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_file_check">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Save-File}:voicemail/vm-save_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-File}:voicemail/vm-rerecord.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_urgent_check">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Urgent}:voicemail/vm-mark-urgent.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-continue.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_prepend">
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-followed_by.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="invalid_extension">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="listen_file_check">
|
||||
<input>
|
||||
<match>
|
||||
<!--<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Next-Msg}:voicemail/vm-for_next_msg.wav"/>--> <!-- Not existant in callie recordings -->
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Save-File}:voicemail/vm-save_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Delete-File}:voicemail/vm-delete_recording.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input field="${VM-Message-Email}" pattern="^$">
|
||||
<nomatch>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Email}:voicemail/vm-forward_to_email.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input>
|
||||
<match>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Callback}:voicemail/vm-return_call.wav"/>
|
||||
<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="choose_greeting">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="choose_greeting_fail">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_greeting">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="record_message">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="greeting_selected">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-greeting.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-selected.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-person.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-not_available.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_number">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_message_number">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-${VM-Message-Type}.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message_number.wav"/>
|
||||
<action function="say" data="${VM-Message-Number}" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_phone_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
|
||||
<macro name="ack">
|
||||
<input pattern="^(too-small)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-too-small.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(undeleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(deleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(saved)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(emailed)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(marked-urgent)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="say_date_event">
|
||||
<input>
|
||||
<match>
|
||||
<action function="say" data="${VM-Message-Received-Epoch}" method="pronounced" type="short_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_message">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="${VM-Message-File-Path}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="play_recording">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="${VM-Record-File-Path}"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="disk_quota_exceeded">
|
||||
<input>
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</macros>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
<include>
|
||||
|
||||
<macro name="demo_ivr_count">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="demo_ivr_main_menu" pause="100"> <!-- 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="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
|
||||
<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 -->
|
||||
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
|
||||
<action function="play-file" data="silence_stream://1500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 4: Register for ClueCon -->
|
||||
<action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
|
||||
<action function="play-file" data="digits/4.wav"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 6: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<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="play-file" data="silence_stream://2000"/>
|
||||
</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" pause="100">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="silence_stream://1000"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 4: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<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"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<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="play-file" data="silence_stream://2000"/>
|
||||
</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="play-file" data="ivr/ivr-sample_submenu.wav"/>
|
||||
|
||||
<!-- Menu option *: Return to top menu -->
|
||||
<action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
|
||||
<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"/>
|
||||
|
||||
</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="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
<include>
|
||||
<macro name="msgcount">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
<!-- or -->
|
||||
<!--<action function="speak-text" data="you have $1 messages"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="saydate">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="current_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="timespec">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="time_measurement"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="ip-addr">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="iterated" type="ip_address"/>
|
||||
<action function="say" data="$1" method="pronounced" type="ip_address"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell-phonetic">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_phonetic"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="tts-timeleft">
|
||||
<!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
|
||||
<!-- If the function "break" is encountered all parsing will cease -->
|
||||
<input pattern="(\d+):(\d+)">
|
||||
<match>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
<action function="break"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input pattern="(\d+) min (\d+) sec">
|
||||
<match>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue