updated to latest git version, added HU lang support, and minor fixes to the Makefile
authorMazi Lo <OpenWRT@slickdeals.endjunk.com>
Tue, 30 Aug 2011 00:22:55 +0000 (00:22 +0000)
committerMazi Lo <OpenWRT@slickdeals.endjunk.com>
Tue, 30 Aug 2011 00:22:55 +0000 (00:22 +0000)
SVN-Revision: 28128

17 files changed:
net/freeswitch/Makefile
net/freeswitch/files/etc.packages/event_multicast/autoload_configs/event_multicast.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/say-de/lang/de/de.xml
net/freeswitch/files/etc.packages/say-en/lang/en/dir/sounds.xml
net/freeswitch/files/etc.packages/say-en/lang/en/dir/tts.xml
net/freeswitch/files/etc.packages/say-en/lang/en/en.xml
net/freeswitch/files/etc.packages/say-en/lang/en/ivr/sounds.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/say-en/lang/en/vm/sounds.xml
net/freeswitch/files/etc.packages/say-fr/lang/fr/fr.xml
net/freeswitch/files/etc.packages/say-he/lang/he/demo/demo-ivr.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/say-he/lang/he/demo/demo.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/say-he/lang/he/dir/sounds.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/say-he/lang/he/he.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/say-he/lang/he/vm/sounds.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/say-ru/lang/ru/ru.xml
net/freeswitch/files/etc.packages/unimrcp/autoload_configs/unimrcp.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/voicemail/autoload_configs/voicemail.conf.xml

index 1edd42aa48e5ff3f11b6ad0d49fbf23084cb464e..64de197b8ce88d98b025c76c00975b508d1e2e85 100644 (file)
@@ -11,17 +11,17 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=freeswitch
 PKG_VERSION:=1.0.7
 PKG_RELEASE:=1
-PKG_REV:=46f097c1b94f43e5dad2c0b9592e921ae6933665
-PKG_SOURCE_VERSION:=$(PKG_REV)
 
 
 #
 # The latest FS git hash in PKG_REV can be obtained from http://fisheye.freeswitch.org
 #
+PKG_REV:=f697e5aa37e0aae56ce7d07ce74080fe809ddf25
+PKG_SOURCE_VERSION:=$(PKG_REV)
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=git://git.$(PKG_NAME).org/$(PKG_NAME).git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_git-$(shell echo $(PKG_REV)|cut -b -9).tar.bz2
+PKG_SOURCE:=$(PKG_SOURCE_SUBDIR)_git-$(shell echo $(PKG_REV)|cut -b -9).tar.bz2
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 
 
@@ -141,7 +141,13 @@ FS_MOD_AVAILABLE:= \
 
 
 PKG_CONFIG_DEPENDS:= \
+       CONFIG_FS_SOFIA_WITH_GNUTLS \
+       CONFIG_FS_SOFIA_WITH_IPV6 \
        CONFIG_FS_SOFIA_WITH_ODBC \
+       CONFIG_FS_SOFIA_WITH_OPT \
+       CONFIG_FS_SOFIA_WITH_SCTP \
+       CONFIG_FS_SOFIA_WITH_ZRTP_GIT \
+       CONFIG_FS_SOFIA_WITHOUT_MYSQL \
        $(patsubst %,CONFIG_PACKAGE_$(PKG_NAME)-mod-%,$(FS_MOD_AVAILABLE)) \
 
 
@@ -161,7 +167,7 @@ endef
 define Package/$(PKG_NAME)
 $(call Package/$(PKG_NAME)/Default)
   TITLE:=FreeSWITCH open source telephony platform
-  DEPENDS:= +libopenssl +libreadline +libncurses +libpthread +libstdcpp
+  DEPENDS:= +libreadline +libncurses +libpthread +libstdcpp
   MENU:=1
 endef
 
@@ -174,13 +180,64 @@ endef
 
 
 define Package/$(PKG_NAME)/config
-    config FS_SOFIA_WITH_ODBC
+    config FS_SOFIA_WITH_IPV6
     depends on PACKAGE_$(PKG_NAME)
-    bool "Compile $(PKG_NAME)-mod-sofia with ODBC support (Requires unixodbc_svn)"
+    bool "Compile with IPV6 support"
+    default y
+    help
+            Compile $(PKG_NAME) with IPV6 Support.
+
+    config FS_SOFIA_WITH_OPT
+    depends on PACKAGE_$(PKG_NAME)
+    bool "Compile with optimization"
+    default y
+    help
+            Compile $(PKG_NAME) with optimization enabled.
+
+    config FS_SOFIA_WITHOUT_MYSQL
+    depends on PACKAGE_$(PKG_NAME)
+    bool "Compile without MySQL"
+    default y
+    help
+            Compile $(PKG_NAME) without MySQL.
+endef
+
+
+define Package/$(PKG_NAME)-mod-dingaling/config
+    config FS_SOFIA_WITH_GNUTLS
+    depends on PACKAGE_$(PKG_NAME)-mod-dingaling
+    bool "Compile with GNU TLS (Requires libgnutls-openssl)"
+    default y
+    select PACKAGE_libgnutls-openssl
+    help
+            Compile $(PKG_NAME)-mod-dingaling with GNU TLS Support (Requires libgnutls-openssl package).
+endef
+
+
+define Package/$(PKG_NAME)-mod-sofia/config
+    config FS_SOFIA_WITH_ODBC
+    depends on PACKAGE_$(PKG_NAME)-mod-sofia
+    bool "Compile with ODBC support (BROKEN: Requires unixodbc_svn)"
     default n
     select PACKAGE_unixodbc_svn
     help
             Compile $(PKG_NAME)-mod-sofia with ODBC Support (Requires unixodbc_svn package).
+
+    config FS_SOFIA_WITH_SCTP
+    depends on PACKAGE_$(PKG_NAME)-mod-sofia
+    bool "Compile with SCTP support (BROKEN)"
+    default n
+    select PACKAGE_sctp
+    help
+            Compile $(PKG_NAME)-mod-sofia with SCTP (Stream Control Transfer Protocol) support.
+
+    config FS_SOFIA_WITH_ZRTP_GIT
+    depends on PACKAGE_$(PKG_NAME)-mod-sofia
+    bool "Compile with ZRTP support (BROKEN: Requires libzrtpcpp)"
+    default n
+    select PACKAGE_libzrtpcpp
+    help
+            Compile $(PKG_NAME)-mod-sofia with ZRTP Support (Requires libzrtpcpp package).
 endef
 
 
@@ -261,6 +318,7 @@ endef
 define Package/$(PKG_NAME)-collection-minimal
 $(call Package/$(PKG_NAME)/Default)
   TITLE:=FreeSWITCH minimal package collection
+  DEFAULT:=y
   DEPENDS:= $(PKG_NAME) \
                +$(PKG_NAME)-config-minimal \
                +$(PKG_NAME)-mod-codec2 \
@@ -370,7 +428,7 @@ endif
 
 FS_TARGET_CFLAGS:= ${TARGET_CFLAGS} -DLUA_USE_LINUX $(FPIC) -std=gnu99 -Wno-format
 FS_TARGET_CXXFLAGS:= ${TARGET_CXXFLAGS} -DLUA_USE_LINUX $(FPIC) -Wno-format
-FS_TARGET_CPPFLAGS:= -I. -I./lua ${TARGET_CPPFLAGS}
+FS_TARGET_CPPFLAGS:= -I. -I./lua $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-erlang-event),-I$(STAGING_DIR_HOST)/lib/erlang/lib/erl_interface-3.6/include) $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-json-cdr),-Wno-error) ${TARGET_CPPFLAGS}
 
 
 CONFIGURE_ARGS+= \
@@ -382,16 +440,19 @@ CONFIGURE_ARGS+= \
        --srcdir="$(PKG_BUILD_DIR)" \
        --sysconfdir="/etc/$(PKG_NAME)" \
        --with-modinstdir="/usr/lib/$(PKG_NAME)" \
-       --enable-ipv6 \
-       --enable-optimization \
        --with-random="/dev/urandom" \
-       --without-mysql \
+       $(if $(CONFIG_FS_SOFIA_WITHOUT_MYSQL),--without-mysql) \
+       $(call autoconf_bool,CONFIG_FS_SOFIA_WITH_IPV6,ipv6) \
+       $(call autoconf_bool,CONFIG_FS_SOFIA_WITH_OPT,optimization) \
        $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-celt),--with-ogg="$(STAGING_DIR)/usr",--without-iogg) \
        $(if ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-curl)|$(CONFIG_PACKAGE_$(PKG_NAME)-mod-xml-cdr)|$(CONFIG_PACKAGE_$(PKG_NAME)-mod-xml-curl)),--with-libcurl="$(STAGING_DIR)/usr",--without-libcurl) \
-       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-dingaling),--with-openssl="$(STAGING_DIR)/usr",--without-openssl) \
+       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-dingaling)|$(CONFIG_FS_SOFIA_WITH_GNUTLS),--with-libgnutls="$(STAGING_DIR)/usr") \
        $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-java),--with-java="$(STAGING_DIR)/usr",--without-java) \
-       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-spandsp),--enable-builtin-tiff,) \
-       --$(if $(CONFIG_FS_SOFIA_WITH_ODBC),en,dis)able-core-odbc-support --with-odbc="$(STAGING_DIR)/usr" \
+       $(call autoconf_bool,CONFIG_PACKAGE_$(PKG_NAME)-mod-spandsp,builtin-tiff) \
+       $(call autoconf_bool,CONFIG_FS_SOFIA_WITH_SCTP,sctp) \
+       $(call autoconf_bool,CONFIG_FS_SOFIA_WITH_ZRTP_GIT,zrtp) \
+       $(call autoconf_bool,CONFIG_FS_SOFIA_WITH_ODBC,core-odbc-support) \
+       $(if $(CONFIG_FS_SOFIA_WITH_ODBC),--with-odbc="$(STAGING_DIR)/usr") \
 
 
 CONFIGURE_VARS+= \
@@ -418,6 +479,7 @@ CONFIGURE_VARS+= \
        HOST_CC="/usr/bin/cc" \
        HOST_CXX="/usr/bin/g++" \
        CROSS_COMPILE="1" \
+       ax_cv_c_compiler_vendor="gnu" \
        ac_cv_dev_urandom="yes" \
        ac_cv_file_dbd_apr_dbd_mysql_c="no" \
        ac_cv_file__dev_random="no" \
@@ -431,6 +493,7 @@ CONFIGURE_VARS+= \
        apr_cv_tcp_nodelay_with_cork="yes" \
        apr_cv_type_rwlock_t="yes" \
        ac_cv_path_LIBGNUTLS_CONFIG="no" \
+       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-perl),ac_cv_path_PERL="yes",) \
        libzmq_cv_cxx_werror_flag="" \
 
 
@@ -611,7 +674,7 @@ $(eval $(call BuildPackage,$(PKG_NAME)-config-minimal))
 
 
 #
-# $(eval $(call BuildPlugin,Name,Title,Inter Depends,Extra Depends))
+# $(eval $(call BuildPlugin,Name,Title,Files,Inter Depends,Extra Depends))
 #
 $(eval $(call BuildPlugin,alsa,Alsa endpoint,mod_alsa,,))
 $(eval $(call BuildPlugin,amr,GSM-AMR codec,mod_amr,,))
@@ -636,7 +699,7 @@ $(eval $(call BuildPlugin,db,Database backend,mod_db,,))
 $(eval $(call BuildPlugin,dialplan-asterisk,Asterisk dialplan parser,mod_dialplan_asterisk,,))
 $(eval $(call BuildPlugin,dialplan-directory,Dialplan directory,mod_dialplan_directory,,))
 $(eval $(call BuildPlugin,dialplan-xml,Dialplan-XML interface,mod_dialplan_xml,,))
-$(eval $(call BuildPlugin,dingaling,Jabber interface,mod_dingaling,,+libgnutls-openssl)) 
+$(eval $(call BuildPlugin,dingaling,Jabber interface,mod_dingaling,,)) 
 $(eval $(call BuildPlugin,directory,application mod_directory,mod_directory,,))
 $(eval $(call BuildPlugin,distributor,application mod_distributor,mod_distributor,,))
 $(eval $(call BuildPlugin,dptools,Dialplan tools,mod_dptools,,))
@@ -697,8 +760,8 @@ $(eval $(call BuildPlugin,skypopen,Skype compatible endpoint,mod_skypopen,,+libX
 $(eval $(call BuildPlugin,snapshot,application mod_snapshot,mod_snapshot,,))
 $(eval $(call BuildPlugin,sndfile,Multi-Format file transcoder,mod_sndfile,,))
 $(eval $(call BuildPlugin,snipe-hunt,application mod_snipe_hunt,mod_snipe_hunt,,))
-$(eval $(call BuildPlugin,snom,SNOM specific features,mod_snom,,))
 $(eval $(call BuildPlugin,snmp,Simple Network Management Protocol,mod_snmp,,+libnetsnmp))
+$(eval $(call BuildPlugin,snom,SNOM specific features,mod_snom,,))
 $(eval $(call BuildPlugin,sofia,SIP,mod_sofia,,))
 $(eval $(call BuildPlugin,spandsp,Span DSP,mod_spandsp,,+libjpeg))
 $(eval $(call BuildPlugin,speex,Speex codec,mod_speex,,))
diff --git a/net/freeswitch/files/etc.packages/event_multicast/autoload_configs/event_multicast.conf.xml b/net/freeswitch/files/etc.packages/event_multicast/autoload_configs/event_multicast.conf.xml
new file mode 100644 (file)
index 0000000..eac0392
--- /dev/null
@@ -0,0 +1,14 @@
+<configuration name="event_multicast.conf" description="Multicast Event">
+  <settings>
+    <param name="address" value="225.1.1.1"/>
+    <param name="port" value="4242"/>
+    <param name="bindings" value="all"/>
+    <param name="ttl" value="1"/>
+    <!-- <param name="loopback" value="no"/>-->
+    <!-- Uncomment this to enable pre-shared key encryption on the packets. -->
+    <!-- For this option to work, you'll need to have the openssl development -->
+    <!-- headers installed when you ran ./configure -->
+    <!-- <param name="psk" value="ClueCon"/> -->
+  </settings>
+</configuration>
+
index 5239489f75720207cec1d373abf6aa0e1a4af3b1..1b44c9a1ddade3a894dc1bd2e06972f777c06975 100644 (file)
@@ -1,7 +1,11 @@
 <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>
 </include>
index 02d6b3671f98d61b9dd21acb8ea0b7d764ed039b..fc288ff6221e1877a6b01dbcd50426edac40ba39 100644 (file)
-<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="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/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.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_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/dir-no_more_result.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/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="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/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>
index 67ae5ab2656d1c8d7e25ef6c81a4eae3585984a3..84007b7d52dfad266ff1efb085f79aaa9d919d4a 100644 (file)
@@ -1,96 +1,95 @@
-<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>
index 6bd5a7d5fbde5ac4dabe3a2ab07b5a93e66eab38..2ccd51382337270fda1f573c5bfc9bb3d144ed82 100644 (file)
@@ -1,8 +1,13 @@
 <include>
-  <language name="en" sound-path="$${sounds_dir}/en/us/callie" tts-engine="cepstral" tts-voice="callie">
-    <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 -->
+  <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>
+    </phrases>
   </language>
 </include>
diff --git a/net/freeswitch/files/etc.packages/say-en/lang/en/ivr/sounds.xml b/net/freeswitch/files/etc.packages/say-en/lang/en/ivr/sounds.xml
new file mode 100644 (file)
index 0000000..e436e29
--- /dev/null
@@ -0,0 +1,65 @@
+<include> <!--This line will be ignored it's here to validate the xml and is optional -->
+       <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="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>
+
+</include>
index 63c9cd75c2f9750d7cf9aff3d36abdacebe092bf..5a090411d74f954ec874e5fec56f2991114606ef 100644 (file)
   <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="play-file" data="voicemail/vm-listen_new.wav"/>
+       <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="play-file" data="voicemail/vm-listen_saved.wav"/>
+       <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="play-file" data="voicemail/vm-advanced.wav"/>
+       <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"/>
-       <action function="play-file" data="voicemail/vm-to_exit.wav"/>
       </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="play-file" data="voicemail/vm-to_record_greeting.wav"/>
+       <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="play-file" data="voicemail/vm-choose_greeting.wav"/>
+       <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="play-file" data="voicemail/vm-record_name2.wav"/>
+       <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="play-file" data="voicemail/vm-change_password.wav"/>
+       <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"/>
-       <action function="play-file" data="voicemail/vm-main_menu.wav"/>
       </match>
     </input>
   </macro>
index 12bec06f20cebdf844ad2657136673a1698e8a7f..eaf00f247efdb41d4331ce8236cf1154a043f7ed 100644 (file)
@@ -1,8 +1,12 @@
 <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>
 </include>
diff --git a/net/freeswitch/files/etc.packages/say-he/lang/he/demo/demo-ivr.xml b/net/freeswitch/files/etc.packages/say-he/lang/he/demo/demo-ivr.xml
new file mode 100644 (file)
index 0000000..ec7d7bc
--- /dev/null
@@ -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 -->
diff --git a/net/freeswitch/files/etc.packages/say-he/lang/he/demo/demo.xml b/net/freeswitch/files/etc.packages/say-he/lang/he/demo/demo.xml
new file mode 100644 (file)
index 0000000..e3e6f02
--- /dev/null
@@ -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="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 -->
diff --git a/net/freeswitch/files/etc.packages/say-he/lang/he/dir/sounds.xml b/net/freeswitch/files/etc.packages/say-he/lang/he/dir/sounds.xml
new file mode 100644 (file)
index 0000000..15ecec3
--- /dev/null
@@ -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="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><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/net/freeswitch/files/etc.packages/say-he/lang/he/he.xml b/net/freeswitch/files/etc.packages/say-he/lang/he/he.xml
new file mode 100644 (file)
index 0000000..fe7c5d8
--- /dev/null
@@ -0,0 +1,11 @@
+<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>
diff --git a/net/freeswitch/files/etc.packages/say-he/lang/he/vm/sounds.xml b/net/freeswitch/files/etc.packages/say-he/lang/he/vm/sounds.xml
new file mode 100644 (file)
index 0000000..5a09041
--- /dev/null
@@ -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="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><!--This line will be ignored it's here to validate the xml and is optional -->
index 25d63b611012964106a09cf666eb6f6589cbea68..686e84086000ec2f03db9f7e3db1211f1ea975c0 100644 (file)
@@ -1,9 +1,13 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--тестовые файлы Вы звуковые файлы можно взять тут svn co http://svn.freeswitch.ru/bbv/mod_say_ru/ru/  -->
 <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>
 </include>
diff --git a/net/freeswitch/files/etc.packages/unimrcp/autoload_configs/unimrcp.conf.xml b/net/freeswitch/files/etc.packages/unimrcp/autoload_configs/unimrcp.conf.xml
new file mode 100644 (file)
index 0000000..45dda79
--- /dev/null
@@ -0,0 +1,23 @@
+<configuration name="unimrcp.conf" description="UniMRCP Client">
+  <settings>
+    <!-- UniMRCP profile to use for TTS -->
+    <param name="default-tts-profile" value="voxeo-prophecy8.0-mrcp1"/>
+    <!-- UniMRCP profile to use for ASR -->
+    <param name="default-asr-profile" value="voxeo-prophecy8.0-mrcp1"/>
+    <!-- UniMRCP logging level to appear in freeswitch.log.  Options are:
+         EMERGENCY|ALERT|CRITICAL|ERROR|WARNING|NOTICE|INFO|DEBUG -->
+    <param name="log-level" value="DEBUG"/>
+    <!-- Enable events for profile creation, open, and close -->
+    <param name="enable-profile-events" value="false"/>
+
+    <param name="max-connection-count" value="100"/>
+    <param name="offer-new-connection" value="1"/>
+    <param name="request-timeout" value="3000"/>
+  </settings>
+
+  <profiles>
+    <X-PRE-PROCESS cmd="include" data="../mrcp_profiles/*.xml"/>
+  </profiles>
+
+</configuration>
+
index 31b8937edb2af6c72f39e5e09d26de74146290ed..d03927925b1ccab85f7e68b114073f8482d339a9 100644 (file)
       <param name="ff-key" value="6"/>
       <param name="rew-key" value="4"/>
       <param name="skip-greet-key" value="#"/>
-      <!--<param name="previous-message-key" value=""/>-->
-      <!--<param name="next-message-key" value=""/>-->
-      <!--<param name="skip-info-key" value=""/>-->
+      <param name="previous-message-key" value="1"/>
+      <param name="next-message-key" value="3"/>
+      <param name="skip-info-key" value="*"/>
+      <param name="repeat-message-key" value="0"/>
       <param name="record-silence-threshold" value="200"/>
       <param name="record-silence-hits" value="2"/>
       <param name="web-template-file" value="web-vm.tpl"/>
+      <param name="db-password-override" value="false"/>
+      <param name="allow-empty-password-auth" value="true"/>
       <!-- if you need to change the sample rate of the recorded files e.g. gmail voicemail player -->
       <!--<param name="record-sample-rate" value="11025"/>-->
       <!-- the next two both must be set for this to be enabled