| @ -1 +1,3 @@ | |||||
| *~ | *~ | ||||
| freeswitch.serial | |||||
| @ -1 +0,0 @@ | |||||
| change_me | |||||
| @ -1,19 +0,0 @@ | |||||
| <configuration name="acl.conf" description="Network Lists"> | |||||
| <network-lists> | |||||
| <list name="trusted" default="deny"> | |||||
| <node type="allow" cidr="173.203.215.241/32"/> <!--proxy2.switchfreedom.com--> | |||||
| <node type="allow" cidr="72.249.14.242/32"/> <!--gw01-car.dal.us.icall.net--> | |||||
| <node type="allow" cidr="8.19.97.6/32"/> <!--sbc01-car.dal.us.icall.net--> | |||||
| <node type="allow" cidr="208.85.184.0/24"/> <!--velocity.net--> | |||||
| <node type="allow" cidr="184.106.172.9/32"/> <!--sipproxy001-prod-ord.2600hz.com--> | |||||
| <node type="allow" cidr="204.232.212.190/32"/> <!--sipproxy002-prod-dfw.2600hz.com--> | |||||
| <node type="allow" cidr="216.82.224.202/32"/> <!-- bandwidth.com--> | |||||
| <X-PRE-PROCESS cmd="include" data="/etc/freeswitch/carriers.xml"/> | |||||
| </list> | |||||
| <list name="authoritative" default="deny"> | |||||
| <node type="allow" cidr="184.106.157.174/32"/> <!--sipproxy001-aa-ord.2600hz.com--> | |||||
| <node type="allow" cidr="209.114.35.233/32"/> <!--sipproxy001-aa-dfw.2600hz.com--> | |||||
| <node type="allow" cidr="184.106.170.176/32"/> <!--sipproxy001-dev-ord.2600hz.com--> | |||||
| </list> | |||||
| </network-lists> | |||||
| </configuration> | |||||
| @ -0,0 +1,12 @@ | |||||
| <configuration name="cepstral.conf" description="Cepstral TTS configuration"> | |||||
| <settings> | |||||
| <!-- | |||||
| Possible encodings: | |||||
| * utf-8 | |||||
| * us-ascii | |||||
| * iso8859-1 (default) | |||||
| * iso8859-15 | |||||
| --> | |||||
| <param name="encoding" value="utf-8"/> | |||||
| </settings> | |||||
| </configuration> | |||||
| @ -1,12 +0,0 @@ | |||||
| <configuration name="erlang_event.conf" description="Erlang Socket Client"> | |||||
| <settings> | |||||
| <param name="listen-ip" value="0.0.0.0"/> | |||||
| <param name="listen-port" value="8031"/> | |||||
| <param name="cookie-file" value="$${base_dir}/conf/autoload_configs/.erlang.cookie" /> | |||||
| <param name="shortname" value="false"/> | |||||
| <param name="nodename" value="freeswitch@%HOSTNAME%" /> | |||||
| <!--<param name="apply-inbound-acl" value="lan"/>--> | |||||
| <param name="encoding" value="binary"/> | |||||
| <!--<param name="compat-rel" value="12"/> --> | |||||
| </settings> | |||||
| </configuration> | |||||
| @ -0,0 +1,127 @@ | |||||
| <configuration name="httapi.conf" description="HT-TAPI Hypertext Telephony API"> | |||||
| <settings> | |||||
| <!-- print xml on the consol --> | |||||
| <param name="debug" value="true"/> | |||||
| <!-- time to keep audio files when discoverd they were deleted from the http server --> | |||||
| <param name="file-not-found-expires" value="300"/> | |||||
| <!-- how often to re-check the server to make sure the remote file has not changed --> | |||||
| <param name="file-cache-ttl" value="300"/> | |||||
| </settings> | |||||
| <profiles> | |||||
| <profile name="default"> | |||||
| <!-- default params for conference action tags --> | |||||
| <conference> | |||||
| <param name="default-profile" value="default"/> | |||||
| </conference> | |||||
| <!-- default params for dial action tags --> | |||||
| <dial> | |||||
| <param name="context" value="default"/> | |||||
| <param name="dialplan" value="XML"/> | |||||
| </dial> | |||||
| <!-- permissions --> | |||||
| <permissions> | |||||
| <!-- <permission name="all" value="true"/> --> | |||||
| <!--<permission name="none" value="true"/> --> | |||||
| <permission name="set-params" value="true"/> | |||||
| <permission name="set-vars" value="false"> | |||||
| <!-- default to "deny" or "allow" --> | |||||
| <!-- type attr can be "deny" or "allow" nothing defaults to opposite of the list default so allow in this case --> | |||||
| <!-- | |||||
| <variable-list default="deny"> | |||||
| <variable name="caller_id_name"/> | |||||
| <variable name="hangup"/> | |||||
| </variable-list> | |||||
| --> | |||||
| </permission> | |||||
| <permission name="get-vars" value="false"> | |||||
| <!-- default to "deny" or "allow" --> | |||||
| <!-- type attr can be "deny" or "allow" nothing defaults to opposite of the list default so allow in this case --> | |||||
| <!-- | |||||
| <variable-list default="deny"> | |||||
| <variable name="caller_id_name"/> | |||||
| <variable name="hangup"/> | |||||
| </variable-list> | |||||
| --> | |||||
| </permission> | |||||
| <permission name="extended-data" value="false"/> | |||||
| <permission name="execute-apps" value="true"> | |||||
| <!-- default to "deny" or "allow" --> | |||||
| <application-list default="deny"> | |||||
| <!-- type attr can be "deny" or "allow" nothing defaults to opposite of the list default so allow in this case --> | |||||
| <application name="info"/> | |||||
| <application name="hangup"/> | |||||
| </application-list> | |||||
| </permission> | |||||
| <permission name="expand-vars-in-tag-body" value="false"> | |||||
| <!-- default to "deny" or "allow" --> | |||||
| <!-- type attr can be "deny" or "allow" nothing defaults to opposite of the list default so allow in this case --> | |||||
| <!-- | |||||
| <variable-list default="deny"> | |||||
| <variable name="caller_id_name"/> | |||||
| <variable name="hangup"/> | |||||
| </variable-list> | |||||
| <api-list default="deny"> | |||||
| <api name="expr"/> | |||||
| <api name="lua"/> | |||||
| </api-list> | |||||
| --> | |||||
| </permission> | |||||
| <permission name="dial" value="true"/> | |||||
| <permission name="dial-set-context" value="false"/> | |||||
| <permission name="dial-set-dialplan" value="false"/> | |||||
| <permission name="dial-set-cid-name" value="false"/> | |||||
| <permission name="dial-set-cid-number" value="false"/> | |||||
| <permission name="dial-full-originate" value="false"/> | |||||
| <permission name="conference" value="true"/> | |||||
| <permission name="conference-set-profile" value="false"/> | |||||
| </permissions> | |||||
| <params> | |||||
| <!-- default url can be overridden by app data --> | |||||
| <param name="gateway-url" value="http://www.freeswitch.org/api/index.cgi" /> | |||||
| <!-- set this to provide authentication credentials to the server --> | |||||
| <!--<param name="gateway-credentials" value="muser:mypass"/>--> | |||||
| <!--<param name="auth-scheme" value="basic"/>--> | |||||
| <!-- optional: this will enable the CA root certificate check by libcurl to | |||||
| verify that the certificate was issued by a major Certificate Authority. | |||||
| note: default value is disabled. only enable if you want this! --> | |||||
| <!--<param name="enable-cacert-check" value="true"/>--> | |||||
| <!-- optional: verify that the server is actually the one listed in the cert --> | |||||
| <!-- <param name="enable-ssl-verifyhost" value="true"/> --> | |||||
| <!-- optional: these options can be used to specify custom SSL certificates | |||||
| to use for HTTPS communications. Either use both options or neither. | |||||
| Specify your public key with 'ssl-cert-path' and the private key with | |||||
| 'ssl-key-path'. If your private key has a password, specify it with | |||||
| 'ssl-key-password'. --> | |||||
| <!-- <param name="ssl-cert-path" value="$${base_dir}/conf/certs/public_key.pem"/> --> | |||||
| <!-- <param name="ssl-key-path" value="$${base_dir}/conf/certs/private_key.pem"/> --> | |||||
| <!-- <param name="ssl-key-password" value="MyPrivateKeyPassword"/> --> | |||||
| <!-- optional timeout --> | |||||
| <!-- <param name="timeout" value="10"/> --> | |||||
| <!-- optional: use a custom CA certificate in PEM format to verify the peer | |||||
| with. This is useful if you are acting as your own certificate authority. | |||||
| note: only makes sense if used in combination with "enable-cacert-check." --> | |||||
| <!-- <param name="ssl-cacert-file" value="$${base_dir}/conf/certs/cacert.pem"/> --> | |||||
| <!-- optional: specify the SSL version to force HTTPS to use. Valid options are | |||||
| "SSLv3" and "TLSv1". Otherwise libcurl will auto-negotiate the version. --> | |||||
| <!-- <param name="ssl-version" value="TLSv1"/> --> | |||||
| <!-- optional: enables cookies and stores them in the specified file. --> | |||||
| <!-- <param name="cookie-file" value="/tmp/cookie-mod_xml_curl.txt"/> --> | |||||
| <!-- one or more of these imply you want to pick the exact variables that are transmitted --> | |||||
| <!--<param name="enable-post-var" value="Caller-Unique-ID"/>--> | |||||
| </params> | |||||
| </profile> | |||||
| </profiles> | |||||
| </configuration> | |||||
| @ -1,12 +1,12 @@ | |||||
| <configuration name="kazoo.conf" description="Kazoo Erlang Socket"> | |||||
| <configuration name="kazoo.conf" description="Kazoo Erlang Socket Client"> | |||||
| <settings> | <settings> | ||||
| <param name="listen-ip" value="0.0.0.0"/> | <param name="listen-ip" value="0.0.0.0"/> | ||||
| <param name="listen-port" value="8031"/> | <param name="listen-port" value="8031"/> | ||||
| <param name="cookie-file" value="$${base_dir}/conf/autoload_configs/.erlang.cookie" /> | |||||
| <param name="cookie-file" value="/etc/freeswitch/autoload_configs/.erlang.cookie" /> | |||||
| <param name="shortname" value="false"/> | <param name="shortname" value="false"/> | ||||
| <param name="nodename" value="freeswitch@%HOSTNAME%" /> | |||||
| <param name="nodename" value="freeswitch@fs01a.5060.io" /> | |||||
| <!--<param name="apply-inbound-acl" value="lan"/>--> | <!--<param name="apply-inbound-acl" value="lan"/>--> | ||||
| <param name="encoding" value="binary"/> | <param name="encoding" value="binary"/> | ||||
| <!--<param name="compat-rel" value="12"/> --> | <!--<param name="compat-rel" value="12"/> --> | ||||
| </settings> | </settings> | ||||
| </configuration> | |||||
| </configuration> | |||||
| @ -1,23 +0,0 @@ | |||||
| <configuration name="xml_cdr.conf" description="XML CDR CURL logger"> | |||||
| <settings> | |||||
| <!--<param name="url" value="http://localhost/cdr_curl/post.php"/>--> | |||||
| <!--<param name="cred" value="user:pass"/>--> | |||||
| <!--<param name="retries" value="2"/>--> | |||||
| <!--<param name="delay" value="1"/>--> | |||||
| <param name="log-dir" value=""/> | |||||
| <param name="log-b-leg" value="false"/> | |||||
| <param name="prefix-a-leg" value="true"/> | |||||
| <param name="encode" value="true"/> | |||||
| <!--<param name="disable-100-continue" value="true"/>--> | |||||
| <!--<param name="err-log-dir" value="/tmp"/>--> | |||||
| <!--<param name="auth-scheme" value="basic"/>--> | |||||
| <!--<param name="enable-cacert-check" value="true"/>--> | |||||
| <!--<param name="enable-ssl-verifyhost" value="true"/>--> | |||||
| <!--<param name="ssl-cert-path" value="$${base_dir}/conf/certs/public_key.pem"/>--> | |||||
| <!--<param name="ssl-key-path" value="$${base_dir}/conf/certs/private_key.pem"/>--> | |||||
| <!--<param name="ssl-key-password" value="MyPrivateKeyPassword"/>--> | |||||
| <!--<param name="ssl-cacert-file" value="$${base_dir}/conf/certs/cacert.pem"/>--> | |||||
| <!--<param name="ssl-version" value="TLSv1"/>--> | |||||
| <!--<param name="cookie-file" value="/tmp/cookie-mod_xml_curl.txt"/>--> | |||||
| </settings> | |||||
| </configuration> | |||||
| @ -1,3 +0,0 @@ | |||||
| <?xml version="1.0"?> | |||||
| <include> | |||||
| </include> | |||||
| @ -1,3 +0,0 @@ | |||||
| <?xml version="1.0"?> | |||||
| <include> | |||||
| </include> | |||||
| @ -1,7 +1,22 @@ | |||||
| <include> | <include> | ||||
| <language name="de" sound-path="/snds" tts-engine="cepstral" tts-voice="david"> | |||||
| <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"/> | |||||
| <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> | </language> | ||||
| </include> | </include> | ||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -1,71 +1,82 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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="Sie haben $1 Nachrichten"/>--> | |||||
| </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="Sie haben $1 Minuten, $2 Sekunden übrig $strftime(%Y-%m-%d)"/> | |||||
| <action function="break"/> | |||||
| </match> | |||||
| <nomatch> | |||||
| <action function="speak-text" data="Die Eingabe war ungültig."/> | |||||
| </nomatch> | |||||
| </input> | |||||
| <input pattern="(\d+) min (\d+) sek"> | |||||
| <match> | |||||
| <action function="speak-text" data="Sie haben $1 Minuten, $2 Sekunden übrig $strftime(%Y-%m-%d)"/> | |||||
| </match> | |||||
| <nomatch> | |||||
| <action function="speak-text" data="Die Eingabe war ungültig."/> | |||||
| </nomatch> | |||||
| </input> | |||||
| </macro> | |||||
| </include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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="Sie haben $1 Nachrichten"/>--> | |||||
| </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="Sie haben $1 Minuten, $2 Sekunden übrig $strftime(%Y-%m-%d)"/> | |||||
| <action function="break"/> | |||||
| </match> | |||||
| <nomatch> | |||||
| <action function="speak-text" data="Die Eingabe war ungültig."/> | |||||
| </nomatch> | |||||
| </input> | |||||
| <input pattern="(\d+) min (\d+) sek"> | |||||
| <match> | |||||
| <action function="speak-text" data="Sie haben $1 Minuten, $2 Sekunden übrig $strftime(%Y-%m-%d)"/> | |||||
| </match> | |||||
| <nomatch> | |||||
| <action function="speak-text" data="Die Eingabe war ungültig."/> | |||||
| </nomatch> | |||||
| </input> | |||||
| </macro> | |||||
| </include> | |||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -0,0 +1,413 @@ | |||||
| <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_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 application="log" data="INFO $1 $2"/> | |||||
| <action function="say" data="$1" method="pronounced" type="items" gender="feminine"/> | |||||
| <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" gender="feminine"/> | |||||
| <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 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="^(.*)$"> | |||||
| <match> | |||||
| <action function="say" data="$1" method="pronounced" type="name_spelled"/> | |||||
| </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 application="log" data="INFO $1"/> | |||||
| <action function="say" data="$1" method="counted" type="current_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> | |||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -0,0 +1,156 @@ | |||||
| <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> | |||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -0,0 +1,82 @@ | |||||
| <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> | |||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -0,0 +1,35 @@ | |||||
| <include> | |||||
| <macro name="funny_prompts" pause="750"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="play-file" data="ivr/ivr-wakey_wakey_sunshine.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-no_no_no.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-did_you_mean_to_press_key.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-seriously_mean_to_press_key.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-oh_whatever.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-one_more_mistake.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-congratulations_you_pressed_star.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-engineers_busy_assisting_other_sales.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-message_self_destruct.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-all_your_call_are_belong_to_us.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-love_those_touch_tones.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-yes_we_have_no_bananas.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-dude_you_suck.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-on_hold_indefinitely.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-youre_doing_it_wrong.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-were_asterisk_free.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-douche_telecom.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-asterisk_like_syphilis.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-freeguipy.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-terribly_wrong_awkward.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-it_was_that_bug.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-concentrate.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-founder_of_freesource.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-cold_foolish.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-trollover_minutes.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-yuno_silent_drill.wav"/> | |||||
| <action function="play-file" data="ivr/ivr-beacuase.wav"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| </include> | |||||
| @ -0,0 +1,171 @@ | |||||
| <?xml version="1.0" encoding="Windows-1252"?> | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <macro name="new_demo_ivr_main_menu" pause="100"> <!-- See conf/ivr_menus/ivr.conf.xml for an example on how to use this macro in an IVR --> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/> | |||||
| <action function="play-file" data="silence_stream://500"/> | |||||
| <!-- Menu option 1: For information about FreeSWITCH... --> | |||||
| <action function="play-file" data="misc/misc-information_about_freeswitch.wav"/> | |||||
| <action function="play-file" data="digits/1.wav"/> | |||||
| <!-- Menu option 2: To learn more about FreeSWITCH Solutions... --> | |||||
| <action function="play-file" data="misc/misc-learn_more_about_freeswitch_solutions.wav"/> | |||||
| <action function="play-file" data="digits/2.wav"/> | |||||
| <!-- Menu option 3: To hear about ClueCon --> | |||||
| <action function="play-file" data="misc/misc-to_hear_about_cluecon.wav"/> | |||||
| <action function="play-file" data="digits/3.wav"/> | |||||
| <!-- Menu option 4: For other options --> | |||||
| <action function="play-file" data="ivr/ivr-for_other_options.wav"/> | |||||
| <action function="play-file" data="digits/4.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 new_demo_ivr_main_menu except it is the "short" version --> | |||||
| <!-- The short version has all the options but not the initial greeting --> | |||||
| <macro name="new_demo_ivr_main_menu_short" pause="100"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <!-- Menu option 1: For information about FreeSWITCH... --> | |||||
| <action function="play-file" data="misc/misc-information_about_freeswitch.wav"/> | |||||
| <action function="play-file" data="digits/1.wav"/> | |||||
| <!-- Menu option 2: To learn more about FreeSWITCH Solutions... --> | |||||
| <action function="play-file" data="misc/misc-learn_more_about_freeswitch_solutions.wav"/> | |||||
| <action function="play-file" data="digits/2.wav"/> | |||||
| <!-- Menu option 3: To hear about ClueCon --> | |||||
| <action function="play-file" data="misc/misc-to_hear_about_cluecon.wav"/> | |||||
| <action function="play-file" data="digits/3.wav"/> | |||||
| <!-- Menu option 4: For other options --> | |||||
| <action function="play-file" data="ivr/ivr-for_other_options.wav"/> | |||||
| <action function="play-file" data="digits/4.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> | |||||
| <!-- More information about FreeSWITCH... --> | |||||
| <macro name="learn_about_freeswitch_sub_menu"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <!-- Information about FreeSWITCH and OSTAG... --> | |||||
| <action function="play-file" data="misc-freeswitch_is_state_of_the_art.wav"/> | |||||
| <action function="play-file" data="silence_stream://50"/> | |||||
| <action function="play-file" data="misc-it_is_stable_scalable_extensible.wav"/> | |||||
| <action function="play-file" data="silence_stream://50"/> | |||||
| <action function="play-file" data="misc-free_to_download.wav"/> | |||||
| <action function="play-file" data="silence_stream://50"/> | |||||
| <action function="play-file" data="misc-freeswitch_sponsored_by_ostag.wav"/> | |||||
| <action function="play-file" data="silence_stream://50"/> | |||||
| <action function="play-file" data="misc-ostag_learn_more.wav"/> | |||||
| <action function="play-file" data="silence_stream://50"/> | |||||
| <!-- Menu option 9: Repeat this information --> | |||||
| <action function="play-file" data="ivr/ivr-repeat_this_information.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"/> | |||||
| <!-- 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> | |||||
| <!-- More information about FreeSWITCH Solutions... --> | |||||
| <macro name="learn_about_freeswitch_solutions_sub_menu"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <!-- Information about FreeSWITCH Solutions... --> | |||||
| <action function="play-file" data="[[sounds from tony/brian]]"/> | |||||
| <action function="play-file" data="silence_stream://50"/> | |||||
| <action function="play-file" data="[[sounds from tony/brian]]"/> | |||||
| <action function="play-file" data="silence_stream://50"/> | |||||
| <action function="play-file" data="[[sounds from tony/brian]]"/> | |||||
| <action function="play-file" data="silence_stream://50"/> | |||||
| <action function="play-file" data="[[sounds from tony/brian]]"/> | |||||
| <action function="play-file" data="silence_stream://50"/> | |||||
| <action function="play-file" data="[[sounds from tony/brian]]"/> | |||||
| <action function="play-file" data="silence_stream://50"/> | |||||
| <!-- Menu option 9: Repeat this information --> | |||||
| <action function="play-file" data="ivr/ivr-repeat_this_information.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"/> | |||||
| <!-- 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> | |||||
| <!-- More information about ClueCon --> | |||||
| <macro name="learn_about_cluecon_sub_menu"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <!-- Information about ClueCon... --> | |||||
| <action function="play-file" data="misc-cluecon_is_premier_conference.wav"/> | |||||
| <action function="play-file" data="silence_stream://50"/> | |||||
| <action function="play-file" data="misc-chicago_each_summer.wav"/> | |||||
| <action function="play-file" data="silence_stream://50"/> | |||||
| <action function="play-file" data="misc-wide_range_of_persons.wav"/> | |||||
| <action function="play-file" data="silence_stream://50"/> | |||||
| <action function="play-file" data="misc-support_open_source_by_attending.wav"/> | |||||
| <action function="play-file" data="silence_stream://500"/> | |||||
| <action function="play-file" data="ivr-register_for_cluecon.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"/> | |||||
| <action function="play-file" data="silence_stream://500"/> | |||||
| <!-- Menu option 9: Repeat this information --> | |||||
| <action function="play-file" data="ivr/ivr-repeat_this_information.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"/> | |||||
| <!-- 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><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -1,121 +1,130 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <macro name="directory_intro"> | |||||
| <input pattern="^(last_name)" break_on_match="false"> | |||||
| <match> | |||||
| <action function="play-file" data="directory/8000/dir-enter_person.wav"/> | |||||
| <action function="play-file" data="directory/8000/dir-last_name.wav"/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(first_name)" break_on_match="false"> | |||||
| <match> | |||||
| <action function="play-file" data="directory/8000/dir-enter_person.wav"/> | |||||
| <action function="play-file" data="directory/8000/dir-first_name.wav"/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(last_name):([0-9#*])$" break_on_match="false"> | |||||
| <match> | |||||
| <action function="play-file" data="directory/8000/dir-to_search_by.wav"/> | |||||
| <action function="play-file" data="directory/8000/dir-first_name.wav"/> | |||||
| <action function="play-file" data="directory/8000/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/8000/dir-to_search_by.wav"/> | |||||
| <action function="play-file" data="directory/8000/dir-last_name.wav"/> | |||||
| <action function="play-file" data="directory/8000/dir-press.wav"/> | |||||
| <action function="say" data="$2" method="pronounced" type="name_spelled"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <include> | |||||
| <macro name="directory_min_search_digits"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="play-file" data="directory/8000/dir-specify_mininum_first.wav"/> | |||||
| <action function="say" data="$1" method="pronounced" type="items"/> | |||||
| <action function="play-file" data="directory/8000/dir-letters_of_person_name.wav"/> | |||||
| </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_result_count"> | |||||
| <input pattern="^0$" break_on_match="true"> | |||||
| <match> | |||||
| <action function="play-file" data="directory/8000/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/8000/dir-result_match.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_too_large"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="play-file" data="directory/8000/dir-to_many_result.wav"/> | |||||
| </match> | |||||
| </input> | |||||
| <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> | |||||
| <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/8000/dir-no_more_results.wav"/> | |||||
| </match> | |||||
| </input> | |||||
| <macro name="directory_result_last"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="play-file" data="directory/dir-no_more_results.wav"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| </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_item"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="play-file" data="directory/8000/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_at"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="play-file" data="directory/8000/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_menu"> | |||||
| <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$"> | |||||
| <match> | |||||
| <action function="play-file" data="directory/8000/dir-to_select_entry.wav"/> | |||||
| <action function="play-file" data="directory/8000/dir-press.wav"/> | |||||
| <action function="say" data="$1" method="pronounced" type="name_spelled"/> | |||||
| <action function="play-file" data="directory/8000/dir-for_next.wav"/> | |||||
| <action function="play-file" data="directory/8000/dir-press.wav"/> | |||||
| <action function="say" data="$2" method="pronounced" type="name_spelled"/> | |||||
| <!--<action function="play-file" data="directory/8000/dir-for_prev.wav"/>--> | |||||
| <action function="play-file" data="directory/8000/dir-press.wav"/> | |||||
| <action function="say" data="$3" method="pronounced" type="name_spelled"/> | |||||
| <action function="play-file" data="directory/8000/dir-start_new_search.wav"/> | |||||
| <action function="play-file" data="directory/8000/dir-press.wav"/> | |||||
| <action function="say" data="$4" method="pronounced" type="name_spelled"/> | |||||
| <macro name="directory_result_say_name"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="say" data="$1" method="pronounced" type="name_spelled"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| </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><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| </include> | |||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -1,96 +1,106 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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_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_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"> | |||||
| <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 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="No more result"/> | |||||
| </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="Result number $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="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_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="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><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| </include> | |||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -1,6 +1,25 @@ | |||||
| <include> | <include> | ||||
| <language name="en" sound-path="$${sounds_dir}/en/us/callie" tts-engine="flite" tts-voice="kal"> | |||||
| <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> | |||||
| <X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> | |||||
| <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 --> | |||||
| </macros> | |||||
| <X-PRE-PROCESS cmd="include" data="vm/voicemail_ivr.xml"/> | |||||
| </phrases> | |||||
| </language> | </language> | ||||
| </include> | </include> | ||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -0,0 +1,153 @@ | |||||
| <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> | |||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -0,0 +1,417 @@ | |||||
| <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="plural_msg"> | |||||
| <input pattern="^[1]:(.*):(.*)$" 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="plural_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="plural_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="plural_msg@voicemail_ivr" data="${VM-Total-Saved-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/> | |||||
| </nomatch> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="menu"> | |||||
| <input field="${VM-Total-New-Messages}" pattern="^(0)$"> | |||||
| <nomatch> | |||||
| <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-New-Messages}:voicemail/vm-listen_new.wav"/> | |||||
| </nomatch> | |||||
| </input> | |||||
| <input field="${VM-Total-Saved-Messages}" pattern="^(0)$"> | |||||
| <nomatch> | |||||
| <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-Saved-Messages}:voicemail/vm-listen_saved.wav"/> | |||||
| </nomatch> | |||||
| </input> | |||||
| <input> | |||||
| <match> | |||||
| <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="${VM-Preference-Greeting-File-Path}"/> | |||||
| <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> | |||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -0,0 +1,71 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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="Usted tiene $1 mensajes"/>--> | |||||
| </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="Quedan $1 minutos y $2 segundos $strftime(%Y-%m-%d)"/> | |||||
| <action function="break"/> | |||||
| </match> | |||||
| <nomatch> | |||||
| <action function="speak-text" data="Esa fue una entrada inválida."/> | |||||
| </nomatch> | |||||
| </input> | |||||
| <input pattern="(\d+) min (\d+) sec"> | |||||
| <match> | |||||
| <action function="speak-text" data="Quedan $1 minutos y $2 segundos $strftime(%Y-%m-%d)"/> | |||||
| </match> | |||||
| <nomatch> | |||||
| <action function="speak-text" data="Esa fue una entrada inválida."/> | |||||
| </nomatch> | |||||
| </input> | |||||
| </macro> | |||||
| </include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -0,0 +1,71 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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="Usted tiene $1 mensajes"/>--> | |||||
| </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="Quedan $1 minutos y $2 segundos $strftime(%Y-%m-%d)"/> | |||||
| <action function="break"/> | |||||
| </match> | |||||
| <nomatch> | |||||
| <action function="speak-text" data="Esa fue una entrada inválida."/> | |||||
| </nomatch> | |||||
| </input> | |||||
| <input pattern="(\d+) min (\d+) sec"> | |||||
| <match> | |||||
| <action function="speak-text" data="Quedan $1 minutos y $2 segundos $strftime(%Y-%m-%d)"/> | |||||
| </match> | |||||
| <nomatch> | |||||
| <action function="speak-text" data="Esa fue una entrada inválida."/> | |||||
| </nomatch> | |||||
| </input> | |||||
| </macro> | |||||
| </include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -0,0 +1,148 @@ | |||||
| <?xml version="1.0" encoding="Windows-1252"?> | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -0,0 +1,148 @@ | |||||
| <?xml version="1.0" encoding="Windows-1252"?> | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -0,0 +1,121 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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_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="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> | |||||
| </include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -0,0 +1,121 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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_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="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> | |||||
| </include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -0,0 +1,96 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <macro name="directory_intro"> | |||||
| <input pattern="^(last_name)" break_on_match="false"> | |||||
| <match> | |||||
| <action function="speak-text" data="Introduzca las primeras letras del apellido de la persona."/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(first_name)" break_on_match="false"> | |||||
| <match> | |||||
| <action function="speak-text" data="Introduzca las primeras letras del nombre de la persona."/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(last_name):([0-9#*])$" break_on_match="false"> | |||||
| <match> | |||||
| <action function="speak-text" data="Para buscar por apellido, pulse $2"/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(first_name):([0-9#*])$" break_on_match="false"> | |||||
| <match> | |||||
| <action function="speak-text" data="Para buscar por nombre, pulse $2"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_min_search_digits"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Necesita especificar un mínimo de $1 letras del nombre buscado. Por favor intente de nuevo."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_count"> | |||||
| <input pattern="^0$" break_on_match="true"> | |||||
| <match> | |||||
| <action function="speak-text" data="No hay resultados que coincidan con su busqueda. Por favor intente de nuevo."/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="$1 resultados coinciden con su busqueda."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_count_too_large"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Su busqueda genera demasiados resultados. Por favor intente de nuevo."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_last"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="No hay más resultados."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_item"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Resultado número $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="Para seleccionar este resultado pulse $1, para el resultado siguiente pulse $2, para el resultado previo pulse $3, para empezar una nueva busqueda pulse $4"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_at"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="en la extensión $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 --> | |||||
| @ -0,0 +1,96 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <macro name="directory_intro"> | |||||
| <input pattern="^(last_name)" break_on_match="false"> | |||||
| <match> | |||||
| <action function="speak-text" data="Ingrese las primeras letras del apellido de la persona."/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(first_name)" break_on_match="false"> | |||||
| <match> | |||||
| <action function="speak-text" data="Ingrese las primeras letras del nombre de la persona."/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(last_name):([0-9#*])$" break_on_match="false"> | |||||
| <match> | |||||
| <action function="speak-text" data="Para buscar por apellido, pulse $2"/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(first_name):([0-9#*])$" break_on_match="false"> | |||||
| <match> | |||||
| <action function="speak-text" data="Para buscar por nombre, pulse $2"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_min_search_digits"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Necesita especificar un mínimo de $1 letras del nombre buscado. Por favor intente de nuevo."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_count"> | |||||
| <input pattern="^0$" break_on_match="true"> | |||||
| <match> | |||||
| <action function="speak-text" data="No hay resultados que coincidan con su busqueda. Por favor intente de nuevo."/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="$1 resultados coinciden con su busqueda."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_count_too_large"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Su busqueda genera demasiados resultados. Por favor intente de nuevo."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_last"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="No hay más resultados."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_item"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Resultado número $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="Para seleccionar este resultado pulse $1, para el resultado siguiente pulse $2, para el resultado previo pulse $3, para empezar una nueva busqueda pulse $4"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_at"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="en la extensión $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 --> | |||||
| @ -0,0 +1,8 @@ | |||||
| <include> | |||||
| <language name="es" sound-path="$${sounds_dir}/es/ES/cristina" tts-engine="cepstral" tts-voice="marta"> | |||||
| <X-PRE-PROCESS cmd="include" data="demo/*-es-ES.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml --> | |||||
| <!--voicemail_es_ES_tts is purely implemented with tts, we have the files based one that is the default. --> | |||||
| <X-PRE-PROCESS cmd="include" data="vm/sounds-es-ES.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral --> | |||||
| <X-PRE-PROCESS cmd="include" data="dir/sounds-es-ES.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral --> | |||||
| </language> | |||||
| </include> | |||||
| @ -0,0 +1,8 @@ | |||||
| <include> | |||||
| <language name="es" sound-path="$${sounds_dir}/es/mx/maria" tts-engine="cepstral" tts-voice="marta"> | |||||
| <X-PRE-PROCESS cmd="include" data="demo/*-es-MX.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml --> | |||||
| <!--voicemail_es_MX_tts is purely implemented with tts, we have the files based one that is the default. --> | |||||
| <X-PRE-PROCESS cmd="include" data="vm/sounds-es-MX.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral --> | |||||
| <X-PRE-PROCESS cmd="include" data="dir/sounds-es-MX.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral --> | |||||
| </language> | |||||
| </include> | |||||
| @ -0,0 +1,404 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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_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="play-file" data="digits/un.wav"/> | |||||
| <action function="play-file" data="voicemail/vm-message.wav"/> | |||||
| <action function="play-file" data="voicemail/vm-$2.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-messages.wav"/> | |||||
| <action function="play-file" data="voicemail/vm-$2_s.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="^(.*)$"> | |||||
| <match> | |||||
| <action function="say" data="$1" method="pronounced" type="name_spelled"/> | |||||
| </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="current_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><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -0,0 +1,404 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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_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="play-file" data="digits/un.wav"/> | |||||
| <action function="play-file" data="voicemail/vm-message.wav"/> | |||||
| <action function="play-file" data="voicemail/vm-$2.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-messages.wav"/> | |||||
| <action function="play-file" data="voicemail/vm-$2.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="^(.*)$"> | |||||
| <match> | |||||
| <action function="say" data="$1" method="pronounced" type="name_spelled"/> | |||||
| </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="current_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><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -0,0 +1,238 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <macro name="voicemail_enter_id"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Por favor introduzca su número de usuario, seguido por $1."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_enter_pass"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Por favor introduzca su contraseña, seguido por $1."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_fail_auth"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Inicio de sesión incorrecto."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_hello"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Bienvenido a su buzón de voz."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_goodbye"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Adiós."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_abort"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Demasiados intentos fallidos."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_message_count"> | |||||
| <input pattern="^1:(.*)$" break_on_match="true"> | |||||
| <match> | |||||
| <action function="speak-text" data="Usted tiene 1 $1 mensaje en la bandeja de entrada ${voicemail_current_folder}."/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(\d+):(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Usted tiene $1 $2 mensajes en la bandeja de entrada ${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="Para escuchar mensajes nuevos, pulse $1. Para escuchar mensajes guardados, pulse $2. Para opciones avanzadas, pulse $3. Para salir, pulse $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="Para grabar un saludo, pulse $1. Para elegir un saludo, pulse $2. Para grabar su nombre, pulse $3. Para cambiar su contraseña, pulse $5. Para el menú principal, pulse $5."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_name"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Por favor grabe su nombre después de la señal, pulse cualquier tecla o deje de hablar para poner fin a la grabación."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_file_check"> | |||||
| <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" | |||||
| data="Para escuchar la grabación, pulse $1. Para guardar la grabación, pulse $2. Para regrabar, pulse $3."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_urgent_check"> | |||||
| <input pattern="^([0-9#*]):([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" | |||||
| data="Para marcar este mensaje como urgente, pulse $1. Para continuar, pulse $2."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_invalid_extension"> | |||||
| <input pattern="^([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" data="$1 no es una extensión válida."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_forward_message_enter_extension"> | |||||
| <input pattern="^([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Introduzca la extensión a la cual quiere enviar este mensaje, seguido de $1"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_forward_prepend"> | |||||
| <input pattern="^([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Para grabar un saludo, pulse $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="Para escuchar la grabación, pulse $1. Para guardar la grabación, pulse $2. Para eliminar la grabación, pulse $3. Para enviar la grabación a su e-mail, pulse $4. Para devolver la llamada, pulse $5. Para enviar este mensaje a otra extensión, pulse $6."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_choose_greeting"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Elija un saludo entre 1 y 9."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_choose_greeting_fail"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Valor inválido."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_greeting"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Grabe su saludo después de la señal, pulse cualquier tecla o deje de hablar para poner fin a la grabación."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_message"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Grabe su mensaje después de la señal, pulse cualquier tecla o deje de hablar para poner fin a la grabación."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_greeting_selected"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Saludo $1 seleccionado."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_play_greeting"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="$1 no está disponible."/> | |||||
| </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 mensaje número $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="mensaje $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><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -0,0 +1,238 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <macro name="voicemail_enter_id"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Por favor ingrese su número de usuario, seguido por $1."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_enter_pass"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Por favor ingrese su contraseña, seguido por $1."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_fail_auth"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Inicio de sesión incorrecto."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_hello"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Bienvenido a su buzón de voz."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_goodbye"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Adiós."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_abort"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Demasiados intentos fallidos."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_message_count"> | |||||
| <input pattern="^1:(.*)$" break_on_match="true"> | |||||
| <match> | |||||
| <action function="speak-text" data="Usted tiene 1 $1 mensaje en la bandeja de entrada ${voicemail_current_folder}."/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(\d+):(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Usted tiene $1 $2 mensajes en la bandeja de entrada ${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="Para escuchar mensajes nuevos, pulse $1. Para escuchar mensajes guardados, pulse $2. Para opciones avanzadas, pulse $3. Para salir, pulse $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="Para grabar un saludo, pulse $1. Para elegir un saludo, pulse $2. Para grabar su nombre, pulse $3. Para cambiar su contraseña, pulse $5. Para el menú principal, pulse $5."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_name"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Después del tono, por favor anote su nombre, pulse cualquier tecla o deje de hablar para poner fin a la grabación."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_file_check"> | |||||
| <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" | |||||
| data="Para escuchar la grabación, pulse $1. Para guardar la grabación, pulse $2. Para regrabar, pulse $3."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_urgent_check"> | |||||
| <input pattern="^([0-9#*]):([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" | |||||
| data="Para marcar este mensaje como urgente, pulse $1. Para continuar, pulse $2."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_invalid_extension"> | |||||
| <input pattern="^([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" data="$1 no es una extensión válida."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_forward_message_enter_extension"> | |||||
| <input pattern="^([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Introduzca la extensión a la cual quiere enviar este mensaje, seguido de $1"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_forward_prepend"> | |||||
| <input pattern="^([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Para grabar un saludo, pulse $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="Para escuchar la grabación, pulse $1. Para guardar la grabación, pulse $2. Para eliminar la grabación, pulse $3. Para enviar la grabación a su e-mail, pulse $4. Para devolver la llamada, pulse $5. Para enviar este mensaje a otra extensión, pulse $6."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_choose_greeting"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Elija un saludo entre 1 y 9."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_choose_greeting_fail"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Valor inválido."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_greeting"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Grabe su saludo después del tono, pulse cualquier tecla o deje de hablar para poner fin a la grabación."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_message"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Grabe su mensaje después del tono, pulse cualquier tecla o deje de hablar para poner fin a la grabación."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_greeting_selected"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Saludo $1 seleccionado."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_play_greeting"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="$1 no está disponible."/> | |||||
| </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 mensaje número $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="mensaje $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><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -1,18 +1,29 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <macro name="msgcount"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="play-file" data="tuas.wav"/> | |||||
| <action function="say" data="$1" method="pronounced" type="items"/> | |||||
| <action function="play-file" data="messages.wav"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="timeleft"> | |||||
| <input pattern="(\d+):(\d+)"> | |||||
| <match> | |||||
| <action function="speak-text" data="il reste $1 minutes et $2 secondes"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| </include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <include> | |||||
| <macro name="msgcount"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="play-file" data="tuas.wav"/> | |||||
| <action function="say" data="$1" method="pronounced" type="items"/> | |||||
| <action function="play-file" data="messages.wav"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="timeleft"> | |||||
| <input pattern="(\d+):(\d+)"> | |||||
| <match> | |||||
| <action function="speak-text" data="il reste $1 minutes et $2 secondes"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| </include> | |||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -1,121 +1,130 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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> | |||||
| <include> | |||||
| <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_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_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_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_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"> | |||||
| <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> | |||||
| <macro name="directory_result_count_too_large"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="play-file" data="directory/dir-to_many_result.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_last"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="play-file" data="directory/dir-no_more_result.wav"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| </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_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_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_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"/> | |||||
| <macro name="directory_result_say_name"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="say" data="$1" method="pronounced" type="name_spelled"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| </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><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| </include> | |||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -1,101 +1,110 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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="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_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="^(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_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="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_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="Votre recherche retourne trop de résultats, essayer encore"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| </macro> | |||||
| <macro name="directory_result_last"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Fin des résultats."/> | |||||
| </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="Résultat numéro $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="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_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="au poste $1"/> | |||||
| </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_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_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> | |||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -1,8 +1,23 @@ | |||||
| <include> | <include> | ||||
| <language name="fr" sound-path="/snds" tts-engine="cepstral" tts-voice="david"> | |||||
| <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 --> | |||||
| <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> | </language> | ||||
| </include> | </include> | ||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -0,0 +1,157 @@ | |||||
| <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> | |||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -0,0 +1,82 @@ | |||||
| <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> | |||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -0,0 +1,130 @@ | |||||
| <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="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> | |||||
| </include> | |||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -0,0 +1,22 @@ | |||||
| <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> | |||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -0,0 +1,417 @@ | |||||
| <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_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="^(.*)$"> | |||||
| <match> | |||||
| <action function="say" data="$1" method="pronounced" type="name_spelled"/> | |||||
| </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="current_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> | |||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -0,0 +1,148 @@ | |||||
| <?xml version="1.0" encoding="Windows-1252"?> | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -0,0 +1,148 @@ | |||||
| <?xml version="1.0" encoding="Windows-1252"?> | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -0,0 +1,71 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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="Faltam $1 minutos, $2 segundos $strftime(%Y-%m-%d)"/> | |||||
| <action function="break"/> | |||||
| </match> | |||||
| <nomatch> | |||||
| <action function="speak-text" data="Essa opção não é valida."/> | |||||
| </nomatch> | |||||
| </input> | |||||
| <input pattern="(\d+) min (\d+) sec"> | |||||
| <match> | |||||
| <action function="speak-text" data="Faltam $1 minutos, $2 segundos $strftime(%Y-%m-%d)"/> | |||||
| </match> | |||||
| <nomatch> | |||||
| <action function="speak-text" data="Essa opção não é valida."/> | |||||
| </nomatch> | |||||
| </input> | |||||
| </macro> | |||||
| </include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -0,0 +1,71 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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="Você tem $1 mensagens"/>--> | |||||
| </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="Faltam $1 minutos, $2 segundos $strftime(%Y-%m-%d)"/> | |||||
| <action function="break"/> | |||||
| </match> | |||||
| <nomatch> | |||||
| <action function="speak-text" data="Essa era uma entrada inválida."/> | |||||
| </nomatch> | |||||
| </input> | |||||
| <input pattern="(\d+) min (\d+) sec"> | |||||
| <match> | |||||
| <action function="speak-text" data="Faltam $1 minutos, $2 segundos $strftime(%Y-%m-%d)"/> | |||||
| </match> | |||||
| <nomatch> | |||||
| <action function="speak-text" data="Essa era uma entrada inválida."/> | |||||
| </nomatch> | |||||
| </input> | |||||
| </macro> | |||||
| </include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -0,0 +1,121 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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_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="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> | |||||
| </include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -0,0 +1,121 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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_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="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> | |||||
| </include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -0,0 +1,96 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <macro name="directory_intro"> | |||||
| <input pattern="^(last_name)" break_on_match="false"> | |||||
| <match> | |||||
| <action function="speak-text" data="Por favor marque as primeiras letras do apelido da pessoa"/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(first_name)" break_on_match="false"> | |||||
| <match> | |||||
| <action function="speak-text" data="Por favor marque as primeiras letras do nome da pessoa"/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(last_name):([0-9#*])$" break_on_match="false"> | |||||
| <match> | |||||
| <action function="speak-text" data="Para buscar por primeiro nome, digite $2"/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(first_name):([0-9#*])$" break_on_match="false"> | |||||
| <match> | |||||
| <action function="speak-text" data="Para buscar por apelido, digite $2"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_min_search_digits"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Você precisa dizer um mínimo de $1 letras do nome da pessoa, tente novamente."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_count"> | |||||
| <input pattern="^0$" break_on_match="true"> | |||||
| <match> | |||||
| <action function="speak-text" data="Não foram encontrados resultados, tente novamente."/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="$1 resultados encontrados para a sua busca."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_count_too_large"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="A sua busca devolveu muitos resultados, por favor tente novamente."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_last"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Não há mais resultados."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_item"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Resultado número $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="Para escolher este resultado digite $1, Para o resultado seguinte digite $2, Para o resultado anterior digite $3, Para uma nova busca digite $4"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_at"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="No ramal $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 --> | |||||
| @ -0,0 +1,96 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <macro name="directory_intro"> | |||||
| <input pattern="^(last_name)" break_on_match="false"> | |||||
| <match> | |||||
| <action function="speak-text" data="Por favor introduza os primeiras letras do apelido da pessoa"/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(first_name)" break_on_match="false"> | |||||
| <match> | |||||
| <action function="speak-text" data="Por favor introduza os primeiros dígitos do primeiro nome da pessoa"/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(last_name):([0-9#*])$" break_on_match="false"> | |||||
| <match> | |||||
| <action function="speak-text" data="Para pesquisar por primeiro nome, marque $2"/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(first_name):([0-9#*])$" break_on_match="false"> | |||||
| <match> | |||||
| <action function="speak-text" data="Para pesquisar por apelido, marque $2"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_min_search_digits"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Você necessita de especificar um mínimo de $1 letras do nome da pessoa, tente novamente."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_count"> | |||||
| <input pattern="^0$" break_on_match="true"> | |||||
| <match> | |||||
| <action function="speak-text" data="Não foram encontrados resultados, tente novamente."/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="$1 resultados encontrados para a sua pesquisa."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_count_too_large"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="A sua pesquisa devolveu demasiados resultados, por favor tente novamente."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_last"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Não há mais resultados"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_item"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Resultado número $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="Para seleccionar este resultado marque $1, Para o resultado seguinte marque $2, Para o resultado anterior marque $3, Para iniciar uma nova pesquisa marque $4"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="directory_result_at"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Na extensão $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 --> | |||||
| @ -0,0 +1,8 @@ | |||||
| <include> | |||||
| <language name="pt" sound-path="$${sounds_dir}/pt/BR/karina" tts-engine="cepstral" tts-voice="marta"> | |||||
| <X-PRE-PROCESS cmd="include" data="demo/*-pt-BR.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml --> | |||||
| <!--voicemail_pt_BR_tts is purely implemented with tts, we have the files based one that is the default. --> | |||||
| <X-PRE-PROCESS cmd="include" data="vm/sounds-pt-BR.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral --> | |||||
| <X-PRE-PROCESS cmd="include" data="dir/sounds-pt-BR.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral --> | |||||
| </language> | |||||
| </include> | |||||
| @ -0,0 +1,8 @@ | |||||
| <include> | |||||
| <language name="pt" sound-path="$${sounds_dir}/pt/PT/karina" tts-engine="cepstral" tts-voice="marta"> | |||||
| <X-PRE-PROCESS cmd="include" data="demo/*-pt-PT.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml --> | |||||
| <!--voicemail_pt_PT_tts is purely implemented with tts, we have the files based one that is the default. --> | |||||
| <X-PRE-PROCESS cmd="include" data="vm/sounds-pt-PT.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral --> | |||||
| <X-PRE-PROCESS cmd="include" data="dir/sounds-pt-PT.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral --> | |||||
| </language> | |||||
| </include> | |||||
| @ -0,0 +1,404 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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_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="play-file" data="digits/uma.wav"/> | |||||
| <action function="play-file" data="voicemail/vm-message.wav"/> | |||||
| <action function="play-file" data="voicemail/vm-$2.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-messages.wav"/> | |||||
| <action function="play-file" data="voicemail/vm-$2_s.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="^(.*)$"> | |||||
| <match> | |||||
| <action function="say" data="$1" method="pronounced" type="name_spelled"/> | |||||
| </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="current_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><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -0,0 +1,404 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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_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="play-file" data="digits/uma.wav"/> | |||||
| <action function="play-file" data="voicemail/vm-message.wav"/> | |||||
| <action function="play-file" data="voicemail/vm-$2.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-messages.wav"/> | |||||
| <action function="play-file" data="voicemail/vm-$2_s.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="^(.*)$"> | |||||
| <match> | |||||
| <action function="say" data="$1" method="pronounced" type="name_spelled"/> | |||||
| </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="current_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><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -0,0 +1,239 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <macro name="voicemail_enter_id"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Por favor digite o seu número de usuario, e depois $1."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_enter_pass"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Por favor digite a sua contrasenha, e depois $1."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_fail_auth"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Inicio incorreto da sessão."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_hello"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Bem-vindo ao seu correio de voz."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_goodbye"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Até logo."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_abort"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Muitas tentativas fracassadas."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_message_count"> | |||||
| <input pattern="^1:(.*)$" break_on_match="true"> | |||||
| <match> | |||||
| <action function="speak-text" data="Você tem 1 $1 mensagem no directório ${voicemail_current_folder}."/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(\d+):(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Você tem $1 $2 mensagens no directório ${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="Para ouvir as mensagens novas, digite $1, Para ouvir as mensagens armazenadas, digite $2, Para opções avançadas, digite $3, Para sair, digite $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="Para gravar a sua saudação, digite $1, Para escolher a sua saudação, digite $2, Para gravar o seu nome, digite $3, Para mudar a sua senha, digite $5, Para o menu principal, digite $5."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_name"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Após o sinal grave o seu nome, digite qualquer tecla ou deixe de falar para finalizar a gravação."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_file_check"> | |||||
| <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" | |||||
| data="Para ouvir a gravação, digite $1, Para guardar a gravação, digite $2, Para gravar novamente, digite $3."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_urgent_check"> | |||||
| <input pattern="^([0-9#*]):([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" | |||||
| data="Para marcar esta mensagem como urgente, digite $1, Para continuar, digite $2."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_invalid_extension"> | |||||
| <input pattern="^([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" data="$1 não é um ramal válido."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_forward_message_enter_extension"> | |||||
| <input pattern="^([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Marque o ramal para o qual pretende encaminhar esta mensagem, e depois $1"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_forward_prepend"> | |||||
| <input pattern="^([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Para gravar um anúncio, digite $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="Para ouvir a gravação novamente, press $1, Para guardar a gravação, press $2, Para borrar a gravação, press $3, Para enviar a gravação para o seu email, press $4, Para devolver a ligação agora, press $5, Para encaminhar esta mensagem para outro ramal, press $6."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_choose_greeting"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Escolha uma saudação entre as opções 1 e 3."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_choose_greeting_fail"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Valor inválido."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_greeting"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Após o sinal grave a sua saudação, digite qualquer tecla ou deixe de falar para finalizar a gravação."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_message"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Após o sinal grave a sua mensagem, digite qualquer tecla ou deixe de falar para finalizar a gravação."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_greeting_selected"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Saudação $1 selecionada."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_play_greeting"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="$1 não está disponível."/> | |||||
| </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 mensagem número $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="Mensagem $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><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -0,0 +1,238 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <macro name="voicemail_enter_id"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Por favor introduza o seu número de utilizador, seguido de $1."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_enter_pass"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Por favor introduza a sua palavra passe, seguida de $1."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_fail_auth"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Falha na autenticação."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_hello"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Bem-vindo ao seu correio de voz."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_goodbye"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Até breve."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_abort"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="speak-text" data="Demasiadas tentativas falhadas."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_message_count"> | |||||
| <input pattern="^1:(.*)$" break_on_match="true"> | |||||
| <match> | |||||
| <action function="speak-text" data="Você tem 1 $1 mensagen no directório ${voicemail_current_folder}."/> | |||||
| </match> | |||||
| </input> | |||||
| <input pattern="^(\d+):(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Você tem $1 $2 mensagens no directório ${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="Para ouvir as mensagens novas, marque $1, Para ouvir as mensagens guardadas, marque $2, Para opções avançadas, marque $3, Para sair, marque $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="Para gravar a sua saudação, marque $1, Para escolher a sua saudação, marque $2, Para gravar o seu nome, marque $3, Para alterar a sua palavra passe, marque $5, Para o menu principal, marque $5."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_name"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Após o sinal grave o seu nome, pressione qualquer tecla ou deixe de falar para parar a gravação."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_file_check"> | |||||
| <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" | |||||
| data="Para ouvir a gravação, marque $1, Para guardar a gravação, marque $2, Para gravar novamente, marque $3."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_urgent_check"> | |||||
| <input pattern="^([0-9#*]):([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" | |||||
| data="Para marcar esta mensagem como urgente, marque $1, Para continuar, marque $2."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_invalid_extension"> | |||||
| <input pattern="^([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" data="$1 não é uma extensão válida."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_forward_message_enter_extension"> | |||||
| <input pattern="^([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Introduza a extensão para a qual pretende encaminhar esta mensagem, seguido de $1"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_forward_prepend"> | |||||
| <input pattern="^([0-9#*])$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Para gravar um anúncio, marque $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="Para ouvir a gravação novamente, marque $1, Para guardar a gravação, marque $2, Para apagar a gravação, marque $3, Para encaminhar a gravação para o seu email, marque $4, Para devolver a chamada agora, marque $5, Para encaminhar esta mensagem para outra extensão, marque $6."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_choose_greeting"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Seleccione uma saudação entre 1 e 3."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_choose_greeting_fail"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="valor inválido."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_greeting"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Após o sinal grave a sua saudação, pressione qualquer tecla ou deixe de falar para parar a gravação."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_record_message"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Após o sinal grave a sua mensagem, pressione qualquer tecla ou deixe de falar para parar a gravação."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_greeting_selected"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="Saudação $1 seleccionada."/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="voicemail_play_greeting"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="$1 não está disponível."/> | |||||
| </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 mensagem número $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="Mensagem $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><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| @ -1,100 +1,109 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <macro name="saymoney"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="say" data="$1" method="pronounced" type="currency"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <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="saydatetime"> | |||||
| <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="timespec2"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="say" data="$1" method="pronounced" type="CURRENT_DATE_TIME"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="ip-addr-interated"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="say" data="$1" method="iterated" type="ip_address"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="ip-addr"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <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><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <include> | |||||
| <macro name="saymoney"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="say" data="$1" method="pronounced" type="currency"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <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="saydatetime"> | |||||
| <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="timespec2"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="say" data="$1" method="pronounced" type="CURRENT_DATE_TIME"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="ip-addr-interated"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <action function="say" data="$1" method="iterated" type="ip_address"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| <macro name="ip-addr"> | |||||
| <input pattern="(.*)"> | |||||
| <match> | |||||
| <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> | |||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -1,121 +1,130 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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> | |||||
| <include> | |||||
| <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_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_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_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_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"> | |||||
| <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> | |||||
| <macro name="directory_result_count_too_large"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="play-file" data="directory/dir-to_many_result.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_last"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="play-file" data="directory/dir-no_more_result.wav"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| </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_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_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_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"/> | |||||
| <macro name="directory_result_say_name"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="say" data="$1" method="pronounced" type="name_spelled"/> | |||||
| </match> | |||||
| </input> | |||||
| </macro> | |||||
| </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><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| </include> | |||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -1,96 +1,105 @@ | |||||
| <include><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| <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_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_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"> | |||||
| <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 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="No more result"/> | |||||
| </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="Result number $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_say_name"> | |||||
| <input pattern="^(.*)$"> | |||||
| <match> | |||||
| <action function="speak-text" data="$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><!--This line will be ignored it's here to validate the xml and is optional --> | |||||
| </include> | |||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -1,9 +1,23 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | |||||
| <!--тестовые файлы Вы звуковые файлы можно взять тут svn co http://svn.freeswitch.ru/bbv/mod_say_ru/ru/ --> | <!--тестовые файлы Вы звуковые файлы можно взять тут svn co http://svn.freeswitch.ru/bbv/mod_say_ru/ru/ --> | ||||
| <include> | <include> | ||||
| <language name="ru" sound-path="$${sounds_dir}/ru/RU/elena" tts-engine="cepstral" tts-voice="elena"> | |||||
| <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 --> | |||||
| <language name="ru" sound-prefix="$${sounds_dir}/ru/RU/elena" tts-engine="cepstral" tts-voice="elena"> | |||||
| <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 --> | |||||
| </macros> | |||||
| </phrases> | |||||
| </language> | </language> | ||||
| </include> | </include> | ||||
| <!-- | |||||
| For Emacs: | |||||
| Local Variables: | |||||
| mode:xml | |||||
| indent-tabs-mode:nil | |||||
| tab-width:2 | |||||
| c-basic-offset:2 | |||||
| End: | |||||
| For VIM: | |||||
| vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab: | |||||
| --> | |||||
| @ -1,56 +0,0 @@ | |||||
| #!/bin/bash | |||||
| DISPATCHER_FILE="/usr/local/etc/opensips/dispatcher.list" | |||||
| OSIP_CTL="/usr/local/etc/opensips/opensipsctl" | |||||
| fUsage () { | |||||
| echo "Usage: $0 [-r reload] [-f flush] [Media Server IP] [-a active] [-i inactive] [-p probing]" | |||||
| exit 1 | |||||
| } | |||||
| cd `dirname $0` | |||||
| [[ ! $1 == -* ]] && server=$1 && shift | |||||
| while [ -n "$*" ]; do | |||||
| case "x$1" in | |||||
| x-a) | |||||
| action="a" | |||||
| ;; | |||||
| x-i) | |||||
| action="i" | |||||
| ;; | |||||
| x-p) | |||||
| action="p" | |||||
| ;; | |||||
| x-r) | |||||
| action="r" | |||||
| ;; | |||||
| x-f) | |||||
| action="f" | |||||
| ;; | |||||
| x--help) | |||||
| fUsage | |||||
| ;; | |||||
| *) | |||||
| fUsage | |||||
| ;; | |||||
| esac | |||||
| shift | |||||
| done | |||||
| if [ -z $action ]; then | |||||
| echo "# $OSIP_CTL fifo ds_list" | |||||
| $OSIP_CTL fifo ds_list | |||||
| exit 0 | |||||
| elif [ $action == "r" ]; then | |||||
| echo "# $OSIP_CTL fifo ds_reload" | |||||
| $OSIP_CTL fifo ds_reload | |||||
| exit 0 | |||||
| elif grep -q $server $DISPATCHER_FILE; then | |||||
| echo "# $OSIP_CTL fifo ds_set_state $action `grep $server $DISPATCHER_FILE | cut -d' ' -f 1` `grep $server $DISPATCHER_FILE | cut -d' ' -f 2`" | |||||
| $OSIP_CTL fifo ds_set_state $action `grep $server $DISPATCHER_FILE | cut -d' ' -f 1` `grep $server $DISPATCHER_FILE | cut -d' ' -f 2` | |||||
| exit 0 | |||||
| else | |||||
| echo "ERROR: Could not locate $server in $DISPATCHER_FILE" | |||||
| exit 1 | |||||
| fi | |||||