updated to FS git HEAD 5e3a6fc5e6f40be5d68c8b3cfbbfa3227fe06c2f
authorMazi Lo <OpenWRT@slickdeals.endjunk.com>
Mon, 7 Jan 2013 14:25:52 +0000 (14:25 +0000)
committerMazi Lo <OpenWRT@slickdeals.endjunk.com>
Mon, 7 Jan 2013 14:25:52 +0000 (14:25 +0000)
SVN-Revision: 35036

93 files changed:
net/freeswitch/Makefile
net/freeswitch/files/etc.minimal/autoload_configs/callcenter.conf.xml [deleted file]
net/freeswitch/files/etc.minimal/autoload_configs/console.conf.xml [deleted file]
net/freeswitch/files/etc.minimal/autoload_configs/dingaling.conf.xml [deleted file]
net/freeswitch/files/etc.minimal/autoload_configs/event_socket.conf.xml [deleted file]
net/freeswitch/files/etc.minimal/autoload_configs/ivr.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.minimal/autoload_configs/local_stream.conf.xml [deleted file]
net/freeswitch/files/etc.minimal/autoload_configs/lua.conf.xml [deleted file]
net/freeswitch/files/etc.minimal/autoload_configs/sofia.conf.xml [deleted file]
net/freeswitch/files/etc.minimal/autoload_configs/spandsp.conf.xml [deleted file]
net/freeswitch/files/etc.minimal/dialplan/default.xml
net/freeswitch/files/etc.minimal/vars.xml
net/freeswitch/files/etc.packages/alsa/autoload_configs/alsa.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/callcenter/autoload_configs/callcenter.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/cdr-csv/autoload_configs/cdr_csv.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/cdr-mongodb/autoload_configs/cdr_mongodb.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/cdr-pg-csv/autoload_configs/cdr_pg_csv.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/cdr_csv/autoload_configs/cdr_csv.conf.xml [deleted file]
net/freeswitch/files/etc.packages/cdr_pg_csv/autoload_configs/cdr_pg_csv.conf.xml [deleted file]
net/freeswitch/files/etc.packages/console/autoload_configs/console.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/dingaling/autoload_configs/dingaling.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/event-multicast/autoload_configs/event_multicast.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/event-socket/autoload_configs/event_socket.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/event_multicast/autoload_configs/event_multicast.conf.xml [deleted file]
net/freeswitch/files/etc.packages/httapi/autoload_configs/httapi.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/http-cache/autoload_configs/http_cache.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/http_cache/autoload_configs/http_cache.conf.xml [deleted file]
net/freeswitch/files/etc.packages/local-stream/autoload_configs/local_stream.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/logfile/autoload_configs/logfile.conf.xml
net/freeswitch/files/etc.packages/lua/autoload_configs/lua.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/say-de/lang/de/de.xml
net/freeswitch/files/etc.packages/say-de/lang/de/demo/demo.xml
net/freeswitch/files/etc.packages/say-de/lang/de/vm/sounds.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/say-de/lang/de/vm/tts.xml
net/freeswitch/files/etc.packages/say-en/lang/en/demo/demo-ivr.xml
net/freeswitch/files/etc.packages/say-en/lang/en/demo/demo.xml
net/freeswitch/files/etc.packages/say-en/lang/en/demo/funnies.xml [new file with mode: 0644]
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
net/freeswitch/files/etc.packages/say-en/lang/en/vm/sounds.xml
net/freeswitch/files/etc.packages/say-en/lang/en/vm/tts.xml
net/freeswitch/files/etc.packages/say-fr/lang/fr/demo/demo.xml
net/freeswitch/files/etc.packages/say-fr/lang/fr/dir/sounds.xml
net/freeswitch/files/etc.packages/say-fr/lang/fr/dir/tts.xml
net/freeswitch/files/etc.packages/say-fr/lang/fr/vm/sounds.xml
net/freeswitch/files/etc.packages/say-he/lang/he/demo/demo-ivr.xml
net/freeswitch/files/etc.packages/say-he/lang/he/demo/demo.xml
net/freeswitch/files/etc.packages/say-he/lang/he/dir/sounds.xml
net/freeswitch/files/etc.packages/say-he/lang/he/he.xml
net/freeswitch/files/etc.packages/say-he/lang/he/vm/sounds.xml
net/freeswitch/files/etc.packages/say-ru/lang/ru/demo/demo-ivr.xml
net/freeswitch/files/etc.packages/say-ru/lang/ru/demo/demo.xml
net/freeswitch/files/etc.packages/say-ru/lang/ru/dir/sounds.xml
net/freeswitch/files/etc.packages/say-ru/lang/ru/dir/tts.xml
net/freeswitch/files/etc.packages/say-ru/lang/ru/ru.xml
net/freeswitch/files/etc.packages/say-ru/lang/ru/vm/sounds.xml
net/freeswitch/files/etc.packages/say-ru/lang/ru/vm/tts.xml
net/freeswitch/files/etc.packages/sofia/autoload_configs/sofia.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/spandsp/autoload_configs/fax.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/spandsp/autoload_configs/spandsp.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/tts-commandline/autoload_configs/tts_commandline.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/tts_commandline/autoload_configs/tts_commandline.conf.xml [deleted file]
net/freeswitch/files/etc.packages/voicemail-ivr/autoload_configs/voicemail_ivr.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.packages/xml-cdr/autoload_configs/xml_cdr.conf.xml
net/freeswitch/patches/001-build-modules_conf_in.patch
net/freeswitch/patches/002-Makefile.am.patch [deleted file]
net/freeswitch/patches/002-configure_in.patch [new file with mode: 0644]
net/freeswitch/patches/003-Makefile.am.patch [new file with mode: 0644]
net/freeswitch/patches/003-libs-esl-Makefile.patch [deleted file]
net/freeswitch/patches/004-src-mod-applications-mod_mp4-mp4_helper_hpp.patch [deleted file]
net/freeswitch/patches/005-src-mod-codecs-mod_opus-Makefile.patch [deleted file]
net/freeswitch/patches/006-src-include-timerfd_wrap_h.patch [deleted file]
net/freeswitch/patches/007-src-mod-endpoints-mod_gsmopen-Makefile.patch [deleted file]
net/freeswitch/patches/008-src-mod-event_handlers-mod_snmp-Makefile.patch [deleted file]
net/freeswitch/patches/009-src-mod-codecs-mod_silk-Makefile.patch [deleted file]
net/freeswitch/patches/010-ppc_asm.patch [deleted file]
net/freeswitch/patches/100-libs-esl-Makefile.patch [new file with mode: 0644]
net/freeswitch/patches/101-libs-spandsp-src-spandsp-fast_convert_h.patch [new file with mode: 0644]
net/freeswitch/patches/103-libs-spandsp-src-t4_rx_c.patch [new file with mode: 0644]
net/freeswitch/patches/104-libs-spandsp-src-t4_tx_c.patch [new file with mode: 0644]
net/freeswitch/patches/105-libs-xmlrpc-c-config_mk_in.patch [new file with mode: 0644]
net/freeswitch/patches/106-libs-xmlrpc-c-lib-expat-gennmtab-Makefile.patch [new file with mode: 0644]
net/freeswitch/patches/200-src-include-timerfd_wrap_h.patch [new file with mode: 0644]
net/freeswitch/patches/201-src-mod-applications-mod_mp4-mp4_helper_hpp.patch [new file with mode: 0644]
net/freeswitch/patches/202-src-mod-codecs-mod_opus-Makefile.patch [new file with mode: 0644]
net/freeswitch/patches/203-src-mod-codecs-mod_silk-Makefile.patch [new file with mode: 0644]
net/freeswitch/patches/204-src-mod-directories-mod_ldap-Makefile.patch [new file with mode: 0644]
net/freeswitch/patches/205-src-mod-endpoints-mod_gsmopen-Makefile.patch [new file with mode: 0644]
net/freeswitch/patches/206-src-mod-event_handlers-mod_snmp-Makefile.patch [new file with mode: 0644]
net/freeswitch/patches/207-src-mod-xml_int-mod_xml_ldap-Makefile.patch [new file with mode: 0644]
net/freeswitch/patches/208-src-mod-xml_int-mod_xml_rpc-Makefile.patch [new file with mode: 0644]

index 5c5466b5b02bcb8ba4a9da4df7c0fd95d1ae5da0..0e15637bbf399427572709edf8192f47508bf987 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2009-2012 OpenWrt.org
+# Copyright (C) 2009-2013 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -10,19 +10,19 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=freeswitch
 PKG_DISTNAME:=$(PKG_NAME)_git
-PKG_VERSION:=1.0.7
-PKG_RELEASE:=2
+PKG_VERSION:=1.3.13b
+PKG_RELEASE:=1
 
 
 #
 # The latest FS git hash in PKG_REV can be obtained from http://fisheye.freeswitch.org
 #
-PKG_REV:=54b4b088d911d4c80f224ed561d8e278229a75ff
+PKG_REV:=5e3a6fc5e6f40be5d68c8b3cfbbfa3227fe06c2f
 PKG_SOURCE_VERSION:=$(PKG_REV)
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=git://git.$(PKG_NAME).org/$(PKG_NAME).git
 PKG_SOURCE_SUBDIR:=$(PKG_DISTNAME)
-PKG_SOURCE:=$(PKG_SOURCE_SUBDIR)-$(shell echo $(PKG_REV)|cut -b -9).tar.bz2
+PKG_SOURCE:=$(PKG_SOURCE_SUBDIR)-$(shell echo $(PKG_REV)|cut -b -7).tar.xz
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 
 
@@ -31,6 +31,7 @@ PKG_BUILD_PARALLEL:=1
 
 
 FS_MOD_AVAILABLE:= \
+       abstraction \
        alsa \
        amr \
        amrwb \
@@ -78,8 +79,11 @@ FS_MOD_AVAILABLE:= \
        h26x \
        h323 \
        hash \
+       html5 \
+       httapi \
        http-cache \
        ilbc \
+       isac \
        java \
        json-cdr \
        lcr \
@@ -89,18 +93,24 @@ FS_MOD_AVAILABLE:= \
        lua \
        managed \
        mp4 \
+       mp4v \
        native-file \
        nibblebill \
        openzap \
        opus \
+       oreka \
        portaudio \
        portaudio-stream \
+       posix-timer \
        radius-cdr \
+       redis \
        rss \
        rtmp \
+       sangoma-codec \
        say-de \
        say-en \
        say-es \
+       say-fa \
        say-fr \
        say-hu \
        say-it \
@@ -112,6 +122,7 @@ FS_MOD_AVAILABLE:= \
        shell-stream \
        silk \
        siren \
+       skel \
        skinny \
        skypopen \
        sms \
@@ -121,6 +132,7 @@ FS_MOD_AVAILABLE:= \
        snmp \
        snom \
        sofia \
+       sonar \
        spandsp \
        speex \
        spidermonkey \
@@ -138,9 +150,11 @@ FS_MOD_AVAILABLE:= \
        valet-parking \
        vmd \
        voicemail \
+       voicemail-ivr \
        xml-cdr \
        xml-curl \
        xml-rpc \
+       xml-scgi \
        yaml \
 
 
@@ -173,7 +187,7 @@ endef
 define Package/$(PKG_NAME)
 $(call Package/$(PKG_NAME)/Default)
   TITLE:=FreeSWITCH open source telephony platform
-  DEPENDS:= +libreadline +libncurses +libpthread +libstdcpp +libopenssl +libpq +librt +zlib
+  DEPENDS:=+libcurl +libjpeg +libncurses +libpq +libpthread +librt +libstdcpp
   MENU:=1
 endef
 
@@ -394,17 +408,17 @@ endif
 
 
 ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-flite),)
- $(eval $(call Download/files,flite,flite-1.5.1-current.tar.bz2,36e5d1c1307161211c8ffe9a75a623ae,,downloads/libs/,libs/))
+ $(eval $(call Download/files,flite,flite-1.5.4-current.tar.bz2,f3a2d88b1059f6f4ff3c20a8169bc0f4,,downloads/libs/,libs/))
 endif
 
 
 ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-opus),)
- $(eval $(call Download/files,opus,opus-0.9.0.tar.gz,8a729db587430392e64280a499e9d061,,downloads/libs/,libs/))
+ $(eval $(call Download/files,opus,opus-1.0.2.tar.gz,ic503ad05a59ddb44deab96204401be03,,downloads/libs/,libs/))
 endif
 
 
 ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-en),)
- $(eval $(call Download/files,sounds-en,$(PKG_NAME)-sounds-en-us-callie-8000-1.0.16.tar.gz,bde0883eb75fe06f39bde11f50a1f858,,,))
+ $(eval $(call Download/files,sounds-en,$(PKG_NAME)-sounds-en-us-callie-8000-1.0.22.tar.gz,cff509d878708ce5e6e7fedac7f683ef,,,))
        MAKE_INSTALL_TARGETS+= sounds-install
 endif
 
@@ -460,21 +474,23 @@ CONFIGURE_ARGS+= \
 
 
 CONFIGURE_VARS+= \
-       config_TARGET_CC="${TARGET_CC}" \
+       config_TARGET_CC="$(TOOLCHAIN_DIR)/bin/${TARGET_CC}" \
        config_TARGET_CFLAGS="${FS_TARGET_CPPFLAGS} ${FS_TARGET_CFLAGS}" \
-       config_TARGET_CXX="${TARGET_CXX}" \
+       config_TARGET_CXX="$(TOOLCHAIN_DIR)/bin/${TARGET_CXX}" \
        config_TARGET_CXXFLAGS="${FS_TARGET_CPPFLAGS} ${FS_TARGET_CXXFLAGS}" \
        config_TARGET_CPPFLAGS="${FS_TARGET_CPPFLAGS}" \
        config_TARGET_READLINE_INC="${FS_TARGET_CPPFLAGS}" \
        config_TARGET_READLINE_LIBS="${TARGET_LDFLAGS} -lreadline -lncurses" \
-       config_TARGET_LIBS="${TARGET_LDFLAGS} -lpthread" \
+       config_TARGET_LIBS="${TARGET_LDFLAGS} -lpthread -ldl" \
        config_BUILD_CC="${HOSTCC}" \
        config_BUILD_CFLAGS="${HOST_CFLAGS}" \
        CC_FOR_BUILD="${HOSTCC}" \
+       BUILDTOOL_CC="${HOSTCC}" \
+       BUILDTOOL_CCLD="${HOSTCC}" \
        LDFLAGS="$$$$LDFLAGS" \
        LDFLAGS_FOR_BUILD="${HOST_LDFLAGS}" \
-       CC="${TARGET_CC}" \
-       CXX="${TARGET_CXX}" \
+       CC="$(TOOLCHAIN_DIR)/bin/${TARGET_CC}" \
+       CXX="$(TOOLCHAIN_DIR)/bin/${TARGET_CXX}" \
        CFLAGS="${FS_TARGET_CPPFLAGS} ${FS_TARGET_CFLAGS}" \
        CXXFLAGS="${FS_TARGET_CPPFLAGS} ${FS_TARGET_CXXFLAGS}" \
        CPPFLAGS="${FS_TARGET_CPPFLAGS}" \
@@ -515,6 +531,9 @@ endef
 
 
 define Build/Configure
+       if [ -d $(PKG_BUILD_DIR)/libs/libcodec2/src ]; then \
+               (cd $(PKG_BUILD_DIR)/libs/libcodec2/src; $(HOSTCC) -c generate_codebook.c; $(HOSTCC) -o generate_codebook generate_codebook.o -lm) \
+       fi
        (cd $(PKG_BUILD_DIR); $(AM_TOOL_PATHS) ./bootstrap.sh)
        $(call Build/Configure/Default,)
        $(foreach m,$(FS_MOD_AVAILABLE),
@@ -529,10 +548,10 @@ endef
 
 define Build/Compile
        $(MAKE) -C $(PKG_BUILD_DIR) \
-               AR="$(TARGET_CROSS)ar" \
-               RANLIB="$(TARGET_CROSS)ranlib" \
-               CC="$(TARGET_CC)" \
-               CXX="$(TARGET_CXX)" \
+               AR="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)ar" \
+               RANLIB="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)ranlib" \
+               CC="$(TOOLCHAIN_DIR)/bin/$(TARGET_CC)" \
+               CXX="$(TOOLCHAIN_DIR)/bin/$(TARGET_CXX)" \
                DESTDIR="$(PKG_INSTALL_DIR)" \
                LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \
                all $(MAKE_INSTALL_TARGETS)
@@ -684,6 +703,7 @@ $(eval $(call BuildPackage,libopenzap))
 #
 # $(eval $(call BuildPlugin,Name,Title,Files,Inter Depends,Extra Depends))
 #
+$(eval $(call BuildPlugin,abstraction,Abstraction epplication,mod_abstraction,,))
 $(eval $(call BuildPlugin,alsa,Alsa endpoint,mod_alsa,,+alsa-lib))
 $(eval $(call BuildPlugin,amr,GSM-AMR codec,mod_amr,,))
 $(eval $(call BuildPlugin,amrwb,GSM-AMRWB,mod_amrwb,,))
@@ -731,8 +751,11 @@ $(eval $(call BuildPlugin,gsmopen,Short Message Service (SMS),mod_gsmopen,spands
 $(eval $(call BuildPlugin,h26x,H26X linear codec,mod_h26x,,))
 $(eval $(call BuildPlugin,h323,h323 endpoint,mod_h323,,@BROKEN)) # missing header files (other packages needed)
 $(eval $(call BuildPlugin,hash,API for manipulating a hash table,mod_hash,,))
+$(eval $(call BuildPlugin,html5,HTML5 Endpoint Module,mod_html5,,))
+$(eval $(call BuildPlugin,httapi,HT Telephony API and HTTP caching,mod_httapi,,))
 $(eval $(call BuildPlugin,http-cache,HTTP GET with caching,mod_http_cache,,+libcurl))
 $(eval $(call BuildPlugin,ilbc,ILBC codec,mod_ilbc,,))
+$(eval $(call BuildPlugin,isac,isac Codec,mod_isac,,))
 $(eval $(call BuildPlugin,java,Java language interface,mod_java,,@BROKEN)) # needs java
 $(eval $(call BuildPlugin,json-cdr,JSon-CDR interface,mod_json_cdr,,+libcurl))
 $(eval $(call BuildPlugin,lcr,Least Cost Routing,mod_lcr,,))
@@ -742,18 +765,23 @@ $(eval $(call BuildPlugin,loopback,Loopback endpoint,mod_loopback,,))
 $(eval $(call BuildPlugin,lua,Lua language interface,mod_lua,,+libstdcpp))
 $(eval $(call BuildPlugin,managed,language mod_managed,mod_managed,,+glib2 @BROKEN)) # needs Mono
 $(eval $(call BuildPlugin,mp4,MP4 File Format support for video apps.,mod_mp4,,@BROKEN)) # needs libmp4v2
+$(eval $(call BuildPlugin,mp4v,MP4 CoDec support for video apps.,mod_mp4v,,))
 $(eval $(call BuildPlugin,native-file,Native files,mod_native_file,,))
 $(eval $(call BuildPlugin,nibblebill,Billing,mod_nibblebill,,))
+$(eval $(call BuildPlugin,oreka,Media Recording with Oreka,mod_oreka,,))
 $(eval $(call BuildPlugin,openzap,Zaptel hardware interface,mod_openzap ozmod_analog ozmod_analog_em ozmod_isdn ozmod_skel ozmod_zt,,+libpcap +libopenzap))
 $(eval $(call BuildPlugin,opus,Opus CoDec,mod_opus,,))
 $(eval $(call BuildPlugin,portaudio,Local audio endpoint,mod_portaudio,,+alsa-lib))
 $(eval $(call BuildPlugin,portaudio-stream,portaudio stream format,mod_portaudio_stream,,+alsa-lib))
+$(eval $(call BuildPlugin,posix-timer,POSIX compliance soft timer,mod_posix_timer,,))
 $(eval $(call BuildPlugin,radius-cdr,Radius-CDR interface,mod_radius_cdr,,+freeradius2 @BROKEN)) # fails in freeradius-client
+$(eval $(call BuildPlugin,redis,redis,mod_redis,,))
 $(eval $(call BuildPlugin,rss,RRS feeds via TTS,mod_rss,,))
 $(eval $(call BuildPlugin,rtmp,RTMP Protocol Handler,mod_rtmp,,))
 $(eval $(call BuildPlugin,say-de,German say,mod_say_de,,))
 $(eval $(call BuildPlugin,say-en,English say,mod_say_en,,))
 $(eval $(call BuildPlugin,say-es,Spanish say,mod_say_es,,))
+$(eval $(call BuildPlugin,say-fa,Persian say,mod_say_fa,,))
 $(eval $(call BuildPlugin,say-fr,French say,mod_say_fr,,))
 $(eval $(call BuildPlugin,say-hu,Hungarian say,mod_say_hu,,))
 $(eval $(call BuildPlugin,say-it,Italian say,mod_say_it,,))
@@ -765,6 +793,7 @@ $(eval $(call BuildPlugin,say-zh,Chineese say,mod_say_zh,,))
 $(eval $(call BuildPlugin,shell-stream,Shell stream,mod_shell_stream,,))
 $(eval $(call BuildPlugin,silk,codec mod_silk,mod_silk,,))
 $(eval $(call BuildPlugin,siren,G.722.1 codec,mod_siren,,))
+$(eval $(call BuildPlugin,skel,Application Framework Demo Module,mod_skel,,))
 $(eval $(call BuildPlugin,skinny,endpoint mod_skinny,mod_skinny,,))
 $(eval $(call BuildPlugin,skypopen,Skype compatible endpoint,mod_skypopen,,@FEATURE_drawing-backend_libX11))
 $(eval $(call BuildPlugin,sms,SMS application,mod_sms,,))
@@ -791,8 +820,10 @@ $(eval $(call BuildPlugin,unimrcp,MRCP interface,mod_unimrcp,,@BROKEN))
 $(eval $(call BuildPlugin,valet-parking,application mod_valet_parking,mod_valet_parking,,))
 $(eval $(call BuildPlugin,vmd,VoiceMail beep detection,mod_vmd,,))
 $(eval $(call BuildPlugin,voicemail,VoiceMail,mod_voicemail,,))
+$(eval $(call BuildPlugin,voicemail-ivr,VoiceMail IVR,mod_voicemail_ivr,,))
 $(eval $(call BuildPlugin,xml-cdr,XML-CDR handler,mod_xml_cdr,,+libcurl))
 $(eval $(call BuildPlugin,xml-curl,XML-Curl gateway,mod_xml_curl,,+libcurl))
 $(eval $(call BuildPlugin,xml-rpc,XML-RPC interface,mod_xml_rpc,,))
+$(eval $(call BuildPlugin,xml-scgi,SCGI XML Gateway,mod_xml_scgi,,))
 $(eval $(call BuildPlugin,yaml,YAML dialplans,mod_yaml,,))
 
diff --git a/net/freeswitch/files/etc.minimal/autoload_configs/callcenter.conf.xml b/net/freeswitch/files/etc.minimal/autoload_configs/callcenter.conf.xml
deleted file mode 100644 (file)
index a069413..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-<configuration name="callcenter.conf" description="CallCenter">
-  <settings>
-    <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
-    <!--<param name="dbname" value="/dev/shm/callcenter.db"/>-->
-  </settings>
-
-  <queues>
-
-    <queue name="support@default">
-      <param name="strategy" value="longest-idle-agent"/>
-      <param name="moh-sound" value="$${hold_music}"/>
-      <!--<param name="record-template" value="$${base_dir}/recordings/${strftime(%Y-%m-%d-%H-%M-%S)}.${destination_number}.${caller_id_number}.${uuid}.wav"/>-->
-      <param name="time-base-score" value="system"/>
-      <param name="max-wait-time" value="0"/>
-      <param name="max-wait-time-with-no-agent" value="0"/>
-      <param name="max-wait-time-with-no-agent-time-reached" value="5"/>
-      <param name="tier-rules-apply" value="false"/>
-      <param name="tier-rule-wait-second" value="300"/>
-      <param name="tier-rule-wait-multiply-level" value="true"/>
-      <param name="tier-rule-no-agent-no-wait" value="false"/>
-      <param name="discard-abandoned-after" value="60"/>
-      <param name="abandoned-resume-allowed" value="false"/>
-    </queue>
-
-  </queues>
-
-<!-- WARNING: Configuration of XML Agents will be updated into the DB upon restart. -->
-<!-- WARNING: Configuration of XML Tiers will reset the level and position if those were supplied. -->
-<!-- WARNING: Agents and Tiers XML config shouldn't be used in a multi FS shared DB setup (Not currently supported anyway) -->
-  <agents>
-    <!--<agent name="1000@default" type="callback" contact="[call_timeout=10]user/1000@default" status="Available" max-no-answer="3" wrap-up-time="10" reject-delay-time="10" busy-delay-time="60" />-->
-  </agents>
-  <tiers>
-    <!-- If no level or position is provided, they will default to 1.  You should do this to keep db value on restart. -->
-    <!-- <tier agent="1000@default" queue="support@default" level="1" position="1"/> -->
-  </tiers>
-
-</configuration> 
diff --git a/net/freeswitch/files/etc.minimal/autoload_configs/console.conf.xml b/net/freeswitch/files/etc.minimal/autoload_configs/console.conf.xml
deleted file mode 100644 (file)
index 2d9e3e8..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-<configuration name="console.conf" description="Console Logger">
-  <!-- pick a file name, a function name or 'all' -->
-  <!-- map as many as you need for specific debugging -->
-  <mappings>
-    <!-- 
-      name can be a file name, function name or 'all' 
-      value is one or more of debug,info,notice,warning,err,crit,alert,all
-      See examples below
-
-
-      The following map is the default, which is all debug levels enabled:
-      <map name="all" value="debug,info,notice,warning,err,crit,alert"/>
-
-
-      Example: the following turns on debugging for error and critical levels only
-      <map name="all" value="err,crit"/>
-
-      NOTE: using map name="all" will override any other settings!  If you 
-            want a more specific set of console messages then you will need
-            to specify which files and/or functions you want to have debug
-            messages.  One option is to turn on just the more critical 
-            messages with map name="all", then specify the other types of 
-            console messages you want to see for various files and functions.
-
-      Example: turn on ERROR, CRIT, ALERT for all modules, then specify other
-               levels for various modules and functions
-
-        <map name="all" value="err,crit,alert"/>
-        <map name="switch_loadable_module_process" value="all"/>
-        <map name="mod_local_stream.c" value="warning,debug"/>
-        <map name="mod_sndfile.c" value="warning,info,debug"/>
-     -->
-    <map name="all" value="console,debug,info,notice,warning,err,crit,alert"/>
-    
-    <!--
-      You can use or modify this sample set of mappings.  It turns on higher
-      level messages for all modules and then specifies extra lower level
-      messages for OpenZAP, Sofia, and switch core messages.
-      
-    <map name="all"                         value="warning,err,crit,alert"/>
-    <map name="zap_analog.c"                value="all"/>
-    <map name="zap_io.c"                    value="all"/>
-    <map name="zap_isdn.c"                  value="all"/>
-    <map name="zap_zt.c"                    value="all"/>
-    <map name="mod_openzap"                 value="all"/>
-    <map name="sofia.c"                     value="notice"/>
-    <map name="switch_core_state_machine.c" value="all"/>      
-    
-    -->
-  </mappings>
-  <settings>
-    <!-- comment or set to false for no color logging -->
-    <param name="colorize" value="true"/>
-    <param name="loglevel" value="$${console_loglevel}"/>
-  </settings>
-</configuration>
diff --git a/net/freeswitch/files/etc.minimal/autoload_configs/dingaling.conf.xml b/net/freeswitch/files/etc.minimal/autoload_configs/dingaling.conf.xml
deleted file mode 100644 (file)
index e68c8b4..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<configuration name="dingaling.conf" description="XMPP Jingle Endpoint">
-  <settings>
-    <param name="debug" value="0"/>
-    <param name="codec-prefs" value="PCMU"/>
-  </settings>
-
-  <X-PRE-PROCESS cmd="include" data="../jingle_profiles/*.xml"/>
-
-</configuration>
diff --git a/net/freeswitch/files/etc.minimal/autoload_configs/event_socket.conf.xml b/net/freeswitch/files/etc.minimal/autoload_configs/event_socket.conf.xml
deleted file mode 100644 (file)
index 5ea2e09..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<configuration name="event_socket.conf" description="Socket Client">
-  <settings>
-    <param name="nat-map" value="false"/>
-    <param name="listen-ip" value="127.0.0.1"/>
-    <param name="listen-port" value="8021"/>
-    <param name="password" value="ClueCon"/>
-    <!--<param name="apply-inbound-acl" value="lan"/>-->
-  </settings>
-</configuration>
diff --git a/net/freeswitch/files/etc.minimal/autoload_configs/ivr.conf.xml b/net/freeswitch/files/etc.minimal/autoload_configs/ivr.conf.xml
new file mode 100644 (file)
index 0000000..bd4e73d
--- /dev/null
@@ -0,0 +1,5 @@
+<configuration name="ivr.conf" description="IVR menus">
+  <menus>
+    <X-PRE-PROCESS cmd="include" data="../ivr_menus/*.xml"/>
+  </menus>
+</configuration>
diff --git a/net/freeswitch/files/etc.minimal/autoload_configs/local_stream.conf.xml b/net/freeswitch/files/etc.minimal/autoload_configs/local_stream.conf.xml
deleted file mode 100644 (file)
index 94a5665..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-<configuration name="local_stream.conf" description="stream files from local dir">
-  <!-- fallback to default if requested moh class isn't found -->
-  <directory name="default" path="$${sounds_dir}/music/8000">
-    <param name="rate" value="8000"/>
-    <param name="shuffle" value="true"/>
-    <param name="channels" value="1"/>
-    <param name="interval" value="20"/>
-    <param name="timer-name" value="soft"/>
-    <!-- list of short files to break in with every so often -->
-    <!--<param name="chime-list" value="file1.wav,file2.wav"/>-->
-    <!-- frequency of break-in (seconds)-->
-    <!--<param name="chime-freq" value="30"/>-->
-    <!-- limit to how many seconds the file will play -->
-    <!--<param name="chime-max" value="500"/>-->
-  </directory>
-
-  <directory name="moh/8000" path="$${sounds_dir}/music/8000">
-    <param name="rate" value="8000"/>
-    <param name="shuffle" value="true"/>
-    <param name="channels" value="1"/>
-    <param name="interval" value="20"/>
-    <param name="timer-name" value="soft"/>
-  </directory>
-
-  <directory name="moh/16000" path="$${sounds_dir}/music/16000">
-    <param name="rate" value="16000"/>
-    <param name="shuffle" value="true"/>
-    <param name="channels" value="1"/>
-    <param name="interval" value="20"/>
-    <param name="timer-name" value="soft"/>
-  </directory>
-
-  <directory name="moh/32000" path="$${sounds_dir}/music/32000">
-    <param name="rate" value="32000"/>
-    <param name="shuffle" value="true"/>
-    <param name="channels" value="1"/>
-    <param name="interval" value="20"/>
-    <param name="timer-name" value="soft"/>
-  </directory>
-  <!--
-  <directory name="moh/48000" path="$${sounds_dir}/music/48000">
-    <param name="rate" value="48000"/>
-    <param name="shuffle" value="true"/>
-    <param name="channels" value="1"/>
-    <param name="interval" value="10"/>
-    <param name="timer-name" value="soft"/>
-  </directory>
-  -->
-</configuration>
diff --git a/net/freeswitch/files/etc.minimal/autoload_configs/lua.conf.xml b/net/freeswitch/files/etc.minimal/autoload_configs/lua.conf.xml
deleted file mode 100644 (file)
index 1eb594f..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<configuration name="lua.conf" description="LUA Configuration">
-  <settings>
-
-    <!-- 
-    Specify local directories that will be searched for LUA modules
-    These entries will be pre-pended to the LUA_CPATH environment variable
-    -->
-    <!-- <param name="module-directory" value="/usr/lib/lua/5.1/?.so"/> -->
-    <!-- <param name="module-directory" value="/usr/local/lib/lua/5.1/?.so"/> -->
-
-    <!-- 
-    Specify local directories that will be searched for LUA scripts
-    These entries will be pre-pended to the LUA_PATH environment variable
-    -->
-    <!-- <param name="script-directory" value="/usr/local/lua/?.lua"/> -->
-    <!-- <param name="script-directory" value="$${base_dir}/scripts/?.lua"/> -->
-
-    <!--<param name="xml-handler-script" value="/dp.lua"/>-->
-    <!--<param name="xml-handler-bindings" value="dialplan"/>-->
-
-    <!--
-       The following options identifies a lua script that is launched
-       at startup and may live forever in the background.
-       You can define multiple lines, one for each script you 
-       need to run.
-    -->
-    <!--<param name="startup-script" value="startup_script_1.lua"/>-->
-    <!--<param name="startup-script" value="startup_script_2.lua"/>-->
-  </settings>
-</configuration>
diff --git a/net/freeswitch/files/etc.minimal/autoload_configs/sofia.conf.xml b/net/freeswitch/files/etc.minimal/autoload_configs/sofia.conf.xml
deleted file mode 100644 (file)
index 24252d0..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<configuration name="sofia.conf" description="sofia Endpoint">
-
-  <global_settings>
-    <param name="log-level" value="0"/>
-    <!-- <param name="auto-restart" value="false"/> -->
-    <param name="debug-presence" value="0"/>
-  </global_settings>
-
-  <!--
-      The rabbit hole goes deep.  This includes all the
-      profiles in the sip_profiles directory that is up
-      one level from this directory.
-  -->
-  <profiles>
-    <X-PRE-PROCESS cmd="include" data="../sip_profiles/*.xml"/>
-  </profiles>
-
-</configuration>
diff --git a/net/freeswitch/files/etc.minimal/autoload_configs/spandsp.conf.xml b/net/freeswitch/files/etc.minimal/autoload_configs/spandsp.conf.xml
deleted file mode 100644 (file)
index aed847f..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<configuration name="spandsp.conf" description="Tone detector descriptors">
-   <descriptors>
-
-     <!-- These tones are defined in Annex to ITU Operational Bulletin No. 781 - 1.II.2003 -->
-     <!-- Various Tones Used in National Networks (According to ITU-T Recommendation E.180)(03/1998) -->
-
-     <!-- North America -->
-     <descriptor name="1">
-       <tone name="CED_TONE">
-         <element freq1="2100" freq2="0" min="500" max="0"/>
-       </tone>
-       <tone name="SIT">
-         <element freq1="950" freq2="0" min="256" max="400"/>
-         <element freq1="1400" freq2="0" min="256" max="400"/>
-         <element freq1="1800" freq2="0" min="256" max="400"/>
-       </tone>
-       <tone name="REORDER_TONE">
-         <element freq1="480" freq2="620" min="224" max="272"/>
-         <element freq1="0" freq2="0" min="224" max="272"/>
-       </tone>
-       <tone name="BUSY_TONE">
-         <element freq1="480" freq2="620" min="464" max="516"/>
-         <element freq1="0" freq2="0" min="464" max="516"/>
-       </tone>
-     </descriptor>
-
-     <!-- United Kingdom -->
-     <descriptor name="44">
-       <tone name="CED_TONE">
-         <element freq1="2100" freq2="0" min="500" max="0"/>
-       </tone>
-       <tone name="SIT">
-         <element freq1="950" freq2="0" min="256" max="400"/>
-         <element freq1="1400" freq2="0" min="256" max="400"/>
-         <element freq1="1800" freq2="0" min="256" max="400"/>
-       </tone>
-       <tone name="REORDER_TONE">
-         <element freq1="400" freq2="0" min="368" max="416"/>
-         <element freq1="0" freq2="0" min="336" max="368"/>
-         <element freq1="400" freq2="0" min="256" max="288"/>
-         <element freq1="0" freq2="0" min="512" max="544"/>
-       </tone>
-       <tone name="BUSY_TONE">
-         <element freq1="400" freq2="0" min="352" max="384"/>
-         <element freq1="0" freq2="0" min="352" max="384"/>
-         <element freq1="400" freq2="0" min="352" max="384"/>
-         <element freq1="0" freq2="0" min="352" max="384"/>
-       </tone>
-     </descriptor>
-
-     <!-- Germany -->
-     <descriptor name="49">
-       <tone name="CED_TONE">
-         <element freq1="2100" freq2="0" min="500" max="0"/>
-       </tone>
-       <tone name="SIT">
-         <element freq1="900" freq2="0" min="256" max="400"/>
-         <element freq1="1400" freq2="0" min="256" max="400"/>
-         <element freq1="1800" freq2="0" min="256" max="400"/>
-       </tone>
-       <tone name="REORDER_TONE">
-         <element freq1="425" freq2="0" min="224" max="272"/>
-         <element freq1="0" freq2="0" min="224" max="272"/>
-       </tone>
-       <tone name="BUSY_TONE">
-         <element freq1="425" freq2="0" min="464" max="516"/>
-         <element freq1="0" freq2="0" min="464" max="516"/>
-       </tone>
-     </descriptor>
-   </descriptors>
-
-</configuration>
-
index a368ee5d512b6a6ab4cdec34c2209967230e6e47..c62fee2368587dde1334d66c390839398004f2a9 100644 (file)
       </condition>
     </extension>
 
+    <extension name="laugh break">
+      <condition field="destination_number" expression="^9386$">
+        <action application="answer"/>
+        <action application="sleep" data="1500"/>
+        <action application="playback" data="phrase:funny_prompts"/>
+        <action application="hangup"/>
+      </condition>
+    </extension>
+
     <!--
        You can place files in the default directory to get included.
     -->
index de1186a068bba725bd3658b6f9157c959b3e6c69..e7c4483e4171bee2d22416d7ad09bb1b03651284 100644 (file)
        127 - BV32
 
   -->
-  <X-PRE-PROCESS cmd="set" data="global_codec_prefs=G7221@32000h,G7221@16000h,G722,PCMU,PCMA,GSM"/>
+  <X-PRE-PROCESS cmd="set" data="global_codec_prefs=G722,PCMU,PCMA,GSM"/>
   <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=PCMU,PCMA,GSM"/>
 
   <X-PRE-PROCESS cmd="set" data="bind_server_ip=auto"/>
diff --git a/net/freeswitch/files/etc.packages/alsa/autoload_configs/alsa.conf.xml b/net/freeswitch/files/etc.packages/alsa/autoload_configs/alsa.conf.xml
new file mode 100644 (file)
index 0000000..e589aca
--- /dev/null
@@ -0,0 +1,12 @@
+<configuration name="alsa.conf" description="Soundcard Endpoint">
+  <settings>
+    <!--Default dialplan and caller-id info -->
+    <param name="dialplan" value="XML"/>
+    <param name="cid-name" value="N800 Alsa"/>
+    <param name="cid-num" value="5555551212"/>
+
+    <!--audio sample rate and interval -->
+    <param name="sample-rate" value="8000"/>
+    <param name="codec-ms" value="20"/>
+  </settings>
+</configuration>
diff --git a/net/freeswitch/files/etc.packages/callcenter/autoload_configs/callcenter.conf.xml b/net/freeswitch/files/etc.packages/callcenter/autoload_configs/callcenter.conf.xml
new file mode 100644 (file)
index 0000000..a069413
--- /dev/null
@@ -0,0 +1,38 @@
+<configuration name="callcenter.conf" description="CallCenter">
+  <settings>
+    <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
+    <!--<param name="dbname" value="/dev/shm/callcenter.db"/>-->
+  </settings>
+
+  <queues>
+
+    <queue name="support@default">
+      <param name="strategy" value="longest-idle-agent"/>
+      <param name="moh-sound" value="$${hold_music}"/>
+      <!--<param name="record-template" value="$${base_dir}/recordings/${strftime(%Y-%m-%d-%H-%M-%S)}.${destination_number}.${caller_id_number}.${uuid}.wav"/>-->
+      <param name="time-base-score" value="system"/>
+      <param name="max-wait-time" value="0"/>
+      <param name="max-wait-time-with-no-agent" value="0"/>
+      <param name="max-wait-time-with-no-agent-time-reached" value="5"/>
+      <param name="tier-rules-apply" value="false"/>
+      <param name="tier-rule-wait-second" value="300"/>
+      <param name="tier-rule-wait-multiply-level" value="true"/>
+      <param name="tier-rule-no-agent-no-wait" value="false"/>
+      <param name="discard-abandoned-after" value="60"/>
+      <param name="abandoned-resume-allowed" value="false"/>
+    </queue>
+
+  </queues>
+
+<!-- WARNING: Configuration of XML Agents will be updated into the DB upon restart. -->
+<!-- WARNING: Configuration of XML Tiers will reset the level and position if those were supplied. -->
+<!-- WARNING: Agents and Tiers XML config shouldn't be used in a multi FS shared DB setup (Not currently supported anyway) -->
+  <agents>
+    <!--<agent name="1000@default" type="callback" contact="[call_timeout=10]user/1000@default" status="Available" max-no-answer="3" wrap-up-time="10" reject-delay-time="10" busy-delay-time="60" />-->
+  </agents>
+  <tiers>
+    <!-- If no level or position is provided, they will default to 1.  You should do this to keep db value on restart. -->
+    <!-- <tier agent="1000@default" queue="support@default" level="1" position="1"/> -->
+  </tiers>
+
+</configuration> 
diff --git a/net/freeswitch/files/etc.packages/cdr-csv/autoload_configs/cdr_csv.conf.xml b/net/freeswitch/files/etc.packages/cdr-csv/autoload_configs/cdr_csv.conf.xml
new file mode 100644 (file)
index 0000000..8d796c6
--- /dev/null
@@ -0,0 +1,23 @@
+<configuration name="cdr_csv.conf" description="CDR CSV Format">
+  <settings>
+    <!-- 'cdr-csv' will always be appended to log-base -->
+    <!--<param name="log-base" value="/var/log"/>-->
+    <param name="default-template" value="example"/>
+    <!-- This is like the info app but after the call is hung up -->
+    <!--<param name="debug" value="true"/>-->
+    <param name="rotate-on-hup" value="true"/>
+    <!-- may be a b or ab -->
+    <param name="legs" value="a"/>
+       <!-- Only log in Master.csv -->
+       <!-- <param name="master-file-only" value="true"/> -->
+  </settings>
+  <templates>
+    <template name="sql">INSERT INTO cdr VALUES ("${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}", "${accountcode}");</template>
+    <template name="example">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}","${accountcode}","${read_codec}","${write_codec}"</template>
+    <template name="snom">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}", "${accountcode}","${read_codec}","${write_codec}","${sip_user_agent}","${call_clientcode}","${sip_rtp_rxstat}","${sip_rtp_txstat}","${sofia_record_file}"</template>
+    <template name="linksys">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}","${accountcode}","${read_codec}","${write_codec}","${sip_user_agent}","${sip_p_rtp_stat}"</template>
+    <template name="asterisk">"${accountcode}","${caller_id_number}","${destination_number}","${context}","${caller_id}","${channel_name}","${bridge_channel}","${last_app}","${last_arg}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${amaflags}","${uuid}","${userfield}"</template>
+    <template name="opencdrrate">"${uuid}","${signal_bond}","${direction}","${ani}","${destination_number}","${answer_stamp}","${end_stamp}","${billsec}","${accountcode}","${userfield}","${network_addr}","${regex('${original_caller_id_name}'|^.)}","${sip_gateway_name}"</template>
+  </templates>
+</configuration>
+
diff --git a/net/freeswitch/files/etc.packages/cdr-mongodb/autoload_configs/cdr_mongodb.conf.xml b/net/freeswitch/files/etc.packages/cdr-mongodb/autoload_configs/cdr_mongodb.conf.xml
new file mode 100644 (file)
index 0000000..ce366d1
--- /dev/null
@@ -0,0 +1,13 @@
+<configuration name="cdr_mongodb.conf" description="MongoDB CDR logger">
+  <settings>
+    <!-- Hostnames and IPv6 addrs not supported (yet) -->
+    <param name="host" value="127.0.0.1"/>
+    <param name="port" value="27017"/>
+
+    <!-- Namespace format is database.collection -->
+    <param name="namespace" value="test.cdr"/>
+
+    <!-- If true, create CDR for B-leg of call (default: true) -->
+    <param name="log-b-leg" value="false"/>
+  </settings>
+</configuration>
diff --git a/net/freeswitch/files/etc.packages/cdr-pg-csv/autoload_configs/cdr_pg_csv.conf.xml b/net/freeswitch/files/etc.packages/cdr-pg-csv/autoload_configs/cdr_pg_csv.conf.xml
new file mode 100644 (file)
index 0000000..4fec817
--- /dev/null
@@ -0,0 +1,40 @@
+<configuration name="cdr_pg_csv.conf" description="CDR PG CSV Format">
+  <settings>
+    <!-- See parameters for PQconnectdb() at http://www.postgresql.org/docs/8.4/static/libpq-connect.html -->
+    <param name="db-info" value="host=localhost dbname=cdr connect_timeout=10" />
+    <!-- CDR table name -->
+    <!--<param name="db-table" value="cdr"/>-->
+
+    <!-- Log a-leg (a), b-leg (b) or both (ab) -->
+    <param name="legs" value="a"/>
+
+    <!-- Directory in which to spool failed SQL inserts -->
+    <!-- <param name="spool-dir" value="$${base_dir}/log/cdr-pg-csv"/> -->
+    <!-- Disk spool format if DB connection/insert fails - csv (default) or sql -->
+    <param name="spool-format" value="csv"/>
+    <param name="rotate-on-hup" value="true"/>
+
+    <!-- This is like the info app but after the call is hung up -->
+    <!--<param name="debug" value="true"/>-->
+  </settings>
+  <schema>
+    <field var="local_ip_v4"/>
+    <field var="caller_id_name"/>
+    <field var="caller_id_number"/>
+    <field var="destination_number"/>
+    <field var="context"/>
+    <field var="start_stamp"/>
+    <field var="answer_stamp"/>
+    <field var="end_stamp"/>
+    <field var="duration" quote="false"/>
+    <field var="billsec" quote="false"/>
+    <field var="hangup_cause"/>
+    <field var="uuid"/>
+    <field var="bleg_uuid"/>
+    <field var="accountcode"/>
+    <field var="read_codec"/>
+    <field var="write_codec"/>
+    <!-- <field var="sip_hangup_disposition"/> -->
+    <!-- <field var="ani"/> -->
+  </schema>
+</configuration>
diff --git a/net/freeswitch/files/etc.packages/cdr_csv/autoload_configs/cdr_csv.conf.xml b/net/freeswitch/files/etc.packages/cdr_csv/autoload_configs/cdr_csv.conf.xml
deleted file mode 100644 (file)
index bcefd46..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<configuration name="cdr_csv.conf" description="CDR CSV Format">
-  <settings>
-    <!-- 'cdr-csv' will always be appended to log-base -->
-    <!--<param name="log-base" value="/var/log"/>-->
-    <param name="default-template" value="example"/>
-    <!-- This is like the info app but after the call is hung up -->
-    <!--<param name="debug" value="true"/>-->
-    <param name="rotate-on-hup" value="true"/>
-    <!-- may be a b or ab -->
-    <param name="legs" value="a"/>
-       <!-- Only log in Master.csv -->
-       <!-- <param name="master-file-only" value="true"/> -->
-  </settings>
-  <templates>
-    <template name="sql">INSERT INTO cdr VALUES ("${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}", "${accountcode}");</template>
-    <template name="example">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}","${accountcode}","${read_codec}","${write_codec}"</template>
-    <template name="snom">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}", "${accountcode}","${read_codec}","${write_codec}","${sip_user_agent}","${call_clientcode}","${sip_rtp_rxstat}","${sip_rtp_txstat}","${sofia_record_file}"</template>
-    <template name="linksys">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}","${accountcode}","${read_codec}","${write_codec}","${sip_user_agent}","${sip_p_rtp_stat}"</template>
-    <template name="asterisk">"${accountcode}","${caller_id_number}","${destination_number}","${context}","${caller_id}","${channel_name}","${bridge_channel}","${last_app}","${last_arg}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${amaflags}","${uuid}","${userfield}"</template>
-  </templates>
-</configuration>
-
diff --git a/net/freeswitch/files/etc.packages/cdr_pg_csv/autoload_configs/cdr_pg_csv.conf.xml b/net/freeswitch/files/etc.packages/cdr_pg_csv/autoload_configs/cdr_pg_csv.conf.xml
deleted file mode 100644 (file)
index 4fec817..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<configuration name="cdr_pg_csv.conf" description="CDR PG CSV Format">
-  <settings>
-    <!-- See parameters for PQconnectdb() at http://www.postgresql.org/docs/8.4/static/libpq-connect.html -->
-    <param name="db-info" value="host=localhost dbname=cdr connect_timeout=10" />
-    <!-- CDR table name -->
-    <!--<param name="db-table" value="cdr"/>-->
-
-    <!-- Log a-leg (a), b-leg (b) or both (ab) -->
-    <param name="legs" value="a"/>
-
-    <!-- Directory in which to spool failed SQL inserts -->
-    <!-- <param name="spool-dir" value="$${base_dir}/log/cdr-pg-csv"/> -->
-    <!-- Disk spool format if DB connection/insert fails - csv (default) or sql -->
-    <param name="spool-format" value="csv"/>
-    <param name="rotate-on-hup" value="true"/>
-
-    <!-- This is like the info app but after the call is hung up -->
-    <!--<param name="debug" value="true"/>-->
-  </settings>
-  <schema>
-    <field var="local_ip_v4"/>
-    <field var="caller_id_name"/>
-    <field var="caller_id_number"/>
-    <field var="destination_number"/>
-    <field var="context"/>
-    <field var="start_stamp"/>
-    <field var="answer_stamp"/>
-    <field var="end_stamp"/>
-    <field var="duration" quote="false"/>
-    <field var="billsec" quote="false"/>
-    <field var="hangup_cause"/>
-    <field var="uuid"/>
-    <field var="bleg_uuid"/>
-    <field var="accountcode"/>
-    <field var="read_codec"/>
-    <field var="write_codec"/>
-    <!-- <field var="sip_hangup_disposition"/> -->
-    <!-- <field var="ani"/> -->
-  </schema>
-</configuration>
diff --git a/net/freeswitch/files/etc.packages/console/autoload_configs/console.conf.xml b/net/freeswitch/files/etc.packages/console/autoload_configs/console.conf.xml
new file mode 100644 (file)
index 0000000..2d9e3e8
--- /dev/null
@@ -0,0 +1,56 @@
+<configuration name="console.conf" description="Console Logger">
+  <!-- pick a file name, a function name or 'all' -->
+  <!-- map as many as you need for specific debugging -->
+  <mappings>
+    <!-- 
+      name can be a file name, function name or 'all' 
+      value is one or more of debug,info,notice,warning,err,crit,alert,all
+      See examples below
+
+
+      The following map is the default, which is all debug levels enabled:
+      <map name="all" value="debug,info,notice,warning,err,crit,alert"/>
+
+
+      Example: the following turns on debugging for error and critical levels only
+      <map name="all" value="err,crit"/>
+
+      NOTE: using map name="all" will override any other settings!  If you 
+            want a more specific set of console messages then you will need
+            to specify which files and/or functions you want to have debug
+            messages.  One option is to turn on just the more critical 
+            messages with map name="all", then specify the other types of 
+            console messages you want to see for various files and functions.
+
+      Example: turn on ERROR, CRIT, ALERT for all modules, then specify other
+               levels for various modules and functions
+
+        <map name="all" value="err,crit,alert"/>
+        <map name="switch_loadable_module_process" value="all"/>
+        <map name="mod_local_stream.c" value="warning,debug"/>
+        <map name="mod_sndfile.c" value="warning,info,debug"/>
+     -->
+    <map name="all" value="console,debug,info,notice,warning,err,crit,alert"/>
+    
+    <!--
+      You can use or modify this sample set of mappings.  It turns on higher
+      level messages for all modules and then specifies extra lower level
+      messages for OpenZAP, Sofia, and switch core messages.
+      
+    <map name="all"                         value="warning,err,crit,alert"/>
+    <map name="zap_analog.c"                value="all"/>
+    <map name="zap_io.c"                    value="all"/>
+    <map name="zap_isdn.c"                  value="all"/>
+    <map name="zap_zt.c"                    value="all"/>
+    <map name="mod_openzap"                 value="all"/>
+    <map name="sofia.c"                     value="notice"/>
+    <map name="switch_core_state_machine.c" value="all"/>      
+    
+    -->
+  </mappings>
+  <settings>
+    <!-- comment or set to false for no color logging -->
+    <param name="colorize" value="true"/>
+    <param name="loglevel" value="$${console_loglevel}"/>
+  </settings>
+</configuration>
diff --git a/net/freeswitch/files/etc.packages/dingaling/autoload_configs/dingaling.conf.xml b/net/freeswitch/files/etc.packages/dingaling/autoload_configs/dingaling.conf.xml
new file mode 100644 (file)
index 0000000..ce13191
--- /dev/null
@@ -0,0 +1,10 @@
+<configuration name="dingaling.conf" description="XMPP Jingle Endpoint">
+  <settings>
+    <param name="debug" value="0"/>
+    <!-- <param name="codec-prefs" value="H264,PCMU"/> --> <!-- Video isn't working, yet -->
+    <param name="codec-prefs" value="PCMU"/>
+  </settings>
+
+  <X-PRE-PROCESS cmd="include" data="../jingle_profiles/*.xml"/>
+
+</configuration>
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>
+
diff --git a/net/freeswitch/files/etc.packages/event-socket/autoload_configs/event_socket.conf.xml b/net/freeswitch/files/etc.packages/event-socket/autoload_configs/event_socket.conf.xml
new file mode 100644 (file)
index 0000000..5ea2e09
--- /dev/null
@@ -0,0 +1,9 @@
+<configuration name="event_socket.conf" description="Socket Client">
+  <settings>
+    <param name="nat-map" value="false"/>
+    <param name="listen-ip" value="127.0.0.1"/>
+    <param name="listen-port" value="8021"/>
+    <param name="password" value="ClueCon"/>
+    <!--<param name="apply-inbound-acl" value="lan"/>-->
+  </settings>
+</configuration>
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
deleted file mode 100644 (file)
index eac0392..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<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>
-
diff --git a/net/freeswitch/files/etc.packages/httapi/autoload_configs/httapi.conf.xml b/net/freeswitch/files/etc.packages/httapi/autoload_configs/httapi.conf.xml
new file mode 100644 (file)
index 0000000..68ab548
--- /dev/null
@@ -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" 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="Unique-ID"/>-->
+      </params>
+
+    </profile>
+  </profiles>
+</configuration>
diff --git a/net/freeswitch/files/etc.packages/http-cache/autoload_configs/http_cache.conf.xml b/net/freeswitch/files/etc.packages/http-cache/autoload_configs/http_cache.conf.xml
new file mode 100644 (file)
index 0000000..4f05269
--- /dev/null
@@ -0,0 +1,10 @@
+<configuration name="http_cache.conf" description="HTTP GET cache">
+  <settings>
+    <param name="max-urls" value="10000"/>
+    <param name="location" value="$${base_dir}/http_cache"/>
+    <param name="default-max-age" value="86400"/>
+    <param name="prefetch-thread-count" value="8"/>
+    <param name="prefetch-queue-size" value="100"/>
+  </settings>
+</configuration>
+
diff --git a/net/freeswitch/files/etc.packages/http_cache/autoload_configs/http_cache.conf.xml b/net/freeswitch/files/etc.packages/http_cache/autoload_configs/http_cache.conf.xml
deleted file mode 100644 (file)
index 4150d64..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<configuration name="http_cache.conf" description="HTTP GET cache">
-  <settings>
-    <param name="max-urls" value="10000"/>
-    <param name="location" value="$${base_dir}/http_cache"/>
-    <param name="default-max-age" value="86400"/>
-  </settings>
-</configuration>
-
diff --git a/net/freeswitch/files/etc.packages/local-stream/autoload_configs/local_stream.conf.xml b/net/freeswitch/files/etc.packages/local-stream/autoload_configs/local_stream.conf.xml
new file mode 100644 (file)
index 0000000..94a5665
--- /dev/null
@@ -0,0 +1,49 @@
+<configuration name="local_stream.conf" description="stream files from local dir">
+  <!-- fallback to default if requested moh class isn't found -->
+  <directory name="default" path="$${sounds_dir}/music/8000">
+    <param name="rate" value="8000"/>
+    <param name="shuffle" value="true"/>
+    <param name="channels" value="1"/>
+    <param name="interval" value="20"/>
+    <param name="timer-name" value="soft"/>
+    <!-- list of short files to break in with every so often -->
+    <!--<param name="chime-list" value="file1.wav,file2.wav"/>-->
+    <!-- frequency of break-in (seconds)-->
+    <!--<param name="chime-freq" value="30"/>-->
+    <!-- limit to how many seconds the file will play -->
+    <!--<param name="chime-max" value="500"/>-->
+  </directory>
+
+  <directory name="moh/8000" path="$${sounds_dir}/music/8000">
+    <param name="rate" value="8000"/>
+    <param name="shuffle" value="true"/>
+    <param name="channels" value="1"/>
+    <param name="interval" value="20"/>
+    <param name="timer-name" value="soft"/>
+  </directory>
+
+  <directory name="moh/16000" path="$${sounds_dir}/music/16000">
+    <param name="rate" value="16000"/>
+    <param name="shuffle" value="true"/>
+    <param name="channels" value="1"/>
+    <param name="interval" value="20"/>
+    <param name="timer-name" value="soft"/>
+  </directory>
+
+  <directory name="moh/32000" path="$${sounds_dir}/music/32000">
+    <param name="rate" value="32000"/>
+    <param name="shuffle" value="true"/>
+    <param name="channels" value="1"/>
+    <param name="interval" value="20"/>
+    <param name="timer-name" value="soft"/>
+  </directory>
+  <!--
+  <directory name="moh/48000" path="$${sounds_dir}/music/48000">
+    <param name="rate" value="48000"/>
+    <param name="shuffle" value="true"/>
+    <param name="channels" value="1"/>
+    <param name="interval" value="10"/>
+    <param name="timer-name" value="soft"/>
+  </directory>
+  -->
+</configuration>
index 57f276c4eaf746ad61d95941197c4342b6dbc836..65bea552bd51d6796a27c525ad6c4ad8b371014f 100644 (file)
@@ -10,6 +10,9 @@
        <!--<param name="logfile" value="/var/log/freeswitch.log"/>-->
         <!-- At this length in bytes rotate the log file (0 for never) -->
         <param name="rollover" value="10485760"/>
+               <!-- Maximum number of log files to keep before wrapping -->
+               <!-- If this parameter is enabled, the log filenames will not include a date stamp -->
+               <!-- <param name="maximum-rotate" value="32"/> -->
                <!-- Uncomment to prefix all log lines by the session's uuid  -->
                <!-- <param name="uuid" value="true" /> -->
       </settings>
diff --git a/net/freeswitch/files/etc.packages/lua/autoload_configs/lua.conf.xml b/net/freeswitch/files/etc.packages/lua/autoload_configs/lua.conf.xml
new file mode 100644 (file)
index 0000000..1eb594f
--- /dev/null
@@ -0,0 +1,30 @@
+<configuration name="lua.conf" description="LUA Configuration">
+  <settings>
+
+    <!-- 
+    Specify local directories that will be searched for LUA modules
+    These entries will be pre-pended to the LUA_CPATH environment variable
+    -->
+    <!-- <param name="module-directory" value="/usr/lib/lua/5.1/?.so"/> -->
+    <!-- <param name="module-directory" value="/usr/local/lib/lua/5.1/?.so"/> -->
+
+    <!-- 
+    Specify local directories that will be searched for LUA scripts
+    These entries will be pre-pended to the LUA_PATH environment variable
+    -->
+    <!-- <param name="script-directory" value="/usr/local/lua/?.lua"/> -->
+    <!-- <param name="script-directory" value="$${base_dir}/scripts/?.lua"/> -->
+
+    <!--<param name="xml-handler-script" value="/dp.lua"/>-->
+    <!--<param name="xml-handler-bindings" value="dialplan"/>-->
+
+    <!--
+       The following options identifies a lua script that is launched
+       at startup and may live forever in the background.
+       You can define multiple lines, one for each script you 
+       need to run.
+    -->
+    <!--<param name="startup-script" value="startup_script_1.lua"/>-->
+    <!--<param name="startup-script" value="startup_script_2.lua"/>-->
+  </settings>
+</configuration>
index 1b44c9a1ddade3a894dc1bd2e06972f777c06975..a7dbab0c0c8859afb5f84a1cef6182f2963c80c3 100644 (file)
@@ -9,3 +9,14 @@
     </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:
+-->
index 61582b2052ba4d9ea1a4bf75251a993db2095ade..fa77948b65c47217c5634be78ee6249665d0b34a 100644 (file)
@@ -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:
+-->
diff --git a/net/freeswitch/files/etc.packages/say-de/lang/de/vm/sounds.xml b/net/freeswitch/files/etc.packages/say-de/lang/de/vm/sounds.xml
new file mode 100644 (file)
index 0000000..657e611
--- /dev/null
@@ -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:
+-->
index 7a8f18cf5042a8af6840736e6281dc493c120a6e..f91cae1b997cfc21520e0fdeffe9a354884bf356 100644 (file)
@@ -1,8 +1,9 @@
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
+<include>
+
   <macro name="voicemail_enter_id">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="Bitte geben Sie Ihren Benutzernamen ein, gefolgt von $1."/>
+        <action function="speak-text" data="Bitte geben Sie Ihren Benutzernamen ein, gefolgt von $1."/>
       </match>
     </input>
   </macro>
@@ -10,7 +11,7 @@
   <macro name="voicemail_enter_pass">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="Bitte geben Sie Ihr Passwort ein, gefolgt von $1."/>
+        <action function="speak-text" data="Bitte geben Sie Ihr Passwort ein, gefolgt von $1."/>
       </match>
     </input>
   </macro>
@@ -18,7 +19,7 @@
   <macro name="voicemail_fail_auth">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="Falsche Benutzerdaten."/>
+        <action function="speak-text" data="Falsche Benutzerdaten."/>
       </match>
     </input>
   </macro>
@@ -26,7 +27,7 @@
   <macro name="voicemail_hello">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="Willkommen in Ihrem Postfach."/>
+        <action function="speak-text" data="Willkommen in Ihrem Postfach."/>
       </match>
     </input>
   </macro>
@@ -34,7 +35,7 @@
   <macro name="voicemail_goodbye">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="Auf Wiedersehen."/>
+        <action function="speak-text" data="Auf Wiedersehen."/>
       </match>
     </input>
   </macro>
@@ -42,7 +43,7 @@
   <macro name="voicemail_abort">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="Zu viele Fehlversuche."/>
+        <action function="speak-text" data="Zu viele Fehlversuche."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_message_count">
     <input pattern="^1:(.*)$">
       <match>
-       <action function="speak-text" data="Sie haben 1 $2 Nachricht im Ordner ${voicemail_current_folder}."/>
+        <action function="speak-text" data="Sie haben 1 $2 Nachricht im Ordner ${voicemail_current_folder}."/>
       </match>
     </input>
     <input pattern="^([0,2-9]+):(.*)$">
       <match>
-       <action function="speak-text" data="Sie haben $1 $2 Nachrichten im Ordner ${voicemail_current_folder}."/>
+        <action function="speak-text" data="Sie haben $1 $2 Nachrichten im Ordner ${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="Um neue Nachrichten zu hören, drücken Sie $1. Um gespeicherte Nachrichten zu hören, drücken Sie $2, Für erweiterte Optionen, drücken Sie $3. Zum beenden drücken Sie $4."/>
+        <action function="speak-text"
+                data="Um neue Nachrichten zu hören, drücken Sie $1. Um gespeicherte Nachrichten zu hören, drücken Sie $2, Für erweiterte Optionen, drücken Sie $3. Zum beenden drücken Sie $4."/>
       </match>
     </input>
   </macro>
 
-
   <macro name="voicemail_config_menu">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-       <action function="speak-text" 
-               data="Um eine Ansage aufzunehmen, drücken Sie $1. Um eine Ansage auszuwählen, drücken Sie $2. Um ihren Namen aufzunehmen, drücken Sie $3. Um zum Hauptmenü zurückzukehren, drücken Sie $4."/>
+        <action function="speak-text"
+                data="Um eine Ansage aufzunehmen, drücken Sie $1. Um eine Ansage auszuwählen, drücken Sie $2. Um ihren Namen aufzunehmen, drücken Sie $3. Um zum Hauptmenü zurückzukehren, drücken Sie $4."/>
       </match>
     </input>
   </macro>
 
-
   <macro name="voicemail_record_name">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="Sprechen Sie Ihren Namen nach dem Ton, drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
+        <action function="speak-text" data="Sprechen Sie Ihren Namen nach dem Ton, drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
       </match>
     </input>
   </macro>
@@ -91,8 +90,8 @@
   <macro name="voicemail_record_file_check">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-       <action function="speak-text" 
-               data="Um die Aufzeichnung anzuhören, drücken Sie $1. Um die Aufzeichnung zu speichern, drücken Sie $2. Für eine erneute Aufnahme drücken Sie $3."/>
+        <action function="speak-text"
+                data="Um die Aufzeichnung anzuhören, drücken Sie $1. Um die Aufzeichnung zu speichern, drücken Sie $2. Für eine erneute Aufnahme drücken Sie $3."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_record_urgent_check">
     <input pattern="^([0-9#*]):([0-9#*])$">
       <match>
-       <action function="speak-text" 
-               data="Drücken Sie $1 um diese Nachricht als wichtig zu markieren. Um fortzufahren drücken Sie $2."/>
+        <action function="speak-text"
+                data="Drücken Sie $1 um diese Nachricht als wichtig zu markieren. Um fortzufahren drücken Sie $2."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_listen_file_check">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-       <action function="speak-text" 
-               data="Drücken Sie $1 um die Nachricht erneut zu hören. Um die Nachricht zu speichern, drücken Sie $2. Zum löschen der Nachricht drücken Sie $3. Für die Weiterleitung als Email, drücken Sie $4."/>
+        <action function="speak-text"
+                data="Drücken Sie $1 um die Nachricht erneut zu hören. Um die Nachricht zu speichern, drücken Sie $2. Zum löschen der Nachricht drücken Sie $3. Für die Weiterleitung als Email, drücken Sie $4."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_choose_greeting">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="Wählen Sie eine Ansage zwischen 1 und 3."/>
+        <action function="speak-text" data="Wählen Sie eine Ansage zwischen 1 und 3."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_choose_greeting_fail">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="Ungültige Eingabe."/>
+        <action function="speak-text" data="Ungültige Eingabe."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_record_greeting">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="Zeichnen Sie Ihre Ansage nach dem Ton auf. Drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
+        <action function="speak-text" data="Zeichnen Sie Ihre Ansage nach dem Ton auf. Drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_record_message">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="Sprechen Sie nach dem Ton. Drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
+        <action function="speak-text" data="Sprechen Sie nach dem Ton. Drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_greeting_selected">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="Ansage $1 ausgewählt."/>
+        <action function="speak-text" data="Ansage $1 ausgewählt."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_play_greeting">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="$1 ist nicht verfügbar."/>
+        <action function="speak-text" data="$1 ist nicht verfügbar."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_say_number">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="$1"/>
+        <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 Nachricht Nummer $2."/>
+        <action function="speak-text" data="$1 Nachricht Nummer $2."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_say_phone_number">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="$1."/>
+        <action function="speak-text" data="$1."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_say_name">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="$1."/>
+        <action function="speak-text" data="$1."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_ack">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="Nachricht $1"/>
+        <action function="speak-text" data="Nachricht $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)"/>
+        <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 -->
+</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:
+-->
index ec7d7bccd21aac77b6bb1bab1b6e37931c0cea7c..98f155a26564081f04e339f2681b0d5799006375 100644 (file)
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
-
+<include>
 
   <macro name="demo_ivr_count">
     <input pattern="^(\d+)$">
@@ -69,7 +67,7 @@
 
   <!-- 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"> 
+  <macro name="demo_ivr_main_menu_short" pause="100">
     <input pattern="(.*)">
       <match>
         <!-- Menu option 1: Call FreeSWITCH conference-->
 
   <!-- 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"> 
+  <macro name="demo_ivr_sub_menu_short">
     <input pattern="(.*)">
       <match>
         <!-- Menu option *: Return to top menu -->
         <action function="play-file" data="ivr/ivr-please.wav"/>
         <action function="play-file" data="voicemail/vm-press.wav"/>
         <action function="play-file" data="digits/star.wav"/>
-
       </match>
     </input>
   </macro>
 
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
+</include>
+<!--
+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:
+-->
index e3e6f0214205ec84274fbec5b77eb0f405f179b2..bcfe6a822760be8c0c5ef31a61783c33489d4d34 100644 (file)
@@ -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="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 -->
+<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:
+-->
diff --git a/net/freeswitch/files/etc.packages/say-en/lang/en/demo/funnies.xml b/net/freeswitch/files/etc.packages/say-en/lang/en/demo/funnies.xml
new file mode 100644 (file)
index 0000000..e901c5a
--- /dev/null
@@ -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>
\ No newline at end of file
index fc288ff6221e1877a6b01dbcd50426edac40ba39..b715a7f825da83983682898fa40f3b0ec0d710d8 100644 (file)
   </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:
+-->
index 84007b7d52dfad266ff1efb085f79aaa9d919d4a..d5f112dcda8a3aafafd5c2e05a53c664503bc8a6 100644 (file)
   </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:
+-->
index 2ccd51382337270fda1f573c5bfc9bb3d144ed82..3d27bce17b49b0c6587c1cf118617f33757f2ae8 100644 (file)
@@ -3,11 +3,23 @@
     <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 -->
+        <!-- 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>
 </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:
+-->
index e436e294a37a46391739ef34d3536223b6844abb..5e8b2a1a058d16a6e2660ad4d8683587435b627b 100644 (file)
-<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>
+<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="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="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="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="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="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="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="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="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-accept_reject_voicemail.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-accept_reject_voicemail.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:
+-->
index 5a090411d74f954ec874e5fec56f2991114606ef..fdef472a5b6e9a4e7a60e0675ea91eeb6d96aa83 100644 (file)
@@ -1,9 +1,10 @@
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
+<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"/>
+        <action function="play-file" data="voicemail/vm-enter_id.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
       </match>
     </input>
   </macro>
@@ -11,8 +12,8 @@
   <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"/>
+        <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"/>
+        <action function="play-file" data="voicemail/vm-fail_auth.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_change_pass_success">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="voicemail/vm-password_has_been_changed.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_change_pass_fail">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="voicemail/vm-password_not_valid.wav"/>
       </match>
     </input>
   </macro>
@@ -28,7 +45,7 @@
   <macro name="voicemail_hello">
     <input pattern="(.*)">
       <match>
-       <!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
+        <!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
       </match>
     </input>
   </macro>
@@ -36,7 +53,7 @@
   <macro name="voicemail_goodbye">
     <input pattern="(.*)">
       <match>
-       <action function="play-file" data="voicemail/vm-goodbye.wav"/>
+        <action function="play-file" data="voicemail/vm-goodbye.wav"/>
       </match>
     </input>
   </macro>
@@ -44,7 +61,7 @@
   <macro name="voicemail_abort">
     <input pattern="(.*)">
       <match>
-       <action function="play-file" data="voicemail/vm-abort.wav"/>
+        <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"/>
+        <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"/>
+        <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 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)"/>
+        <!-- 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)"/>
+        <!-- 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"/>
+        <!-- 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 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 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 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 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"/>
+        <!-- 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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/> 
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
+        <action function="play-file" data="voicemail/vm-message_number.wav"/>
+        <action function="say" data="$2" method="pronounced" type="items"/>
       </match>
     </input>
   </macro>
 
   <macro name="voicemail_say_phone_number">
+    <input pattern="^000|^$|^[Aa]non|^[Pp]rivate" break_on_match="true">
+      <match>
+        <!-- add 'anonymous caller' sound here -->
+      </match>
+    </input>
     <input pattern="^(.*)$">
       <match>
-       <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="ivr/ivr-this_is_a_call_from.wav"/>
+        <action function="execute" data="sleep(100)"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(500)"/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_say_name">
     <input pattern="^(.*)$">
       <match>
-       <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <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"> 
+  <macro name="voicemail_ack">
     <input pattern="^(too-small)$">
       <match>
-       <action function="play-file" data="voicemail/vm-too-small.wav"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <action function="say" data="$1" method="pronounced" type="short_date_time"/>
       </match>
     </input>
   </macro>
 
   <macro name="voicemail_disk_quota_exceeded">
     <input pattern="^(.*)$">
-        <match>
-            <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
-        </match>
+      <match>
+        <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
+      </match>
     </input>
   </macro>
 
       </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:
+-->
index 1fc877d50ea95b040d2b0b0452b4de1cf33f94f3..2de4b3781ea900889c0b7b7ef05693538a1eb017 100644 (file)
@@ -1,8 +1,9 @@
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
+<include>
+
   <macro name="voicemail_enter_id">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="please enter your i d, followed by $1."/>
+        <action function="speak-text" data="please enter your i d, followed by $1."/>
       </match>
     </input>
   </macro>
@@ -10,7 +11,7 @@
   <macro name="voicemail_enter_pass">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="please enter your password, followed by $1."/>
+        <action function="speak-text" data="please enter your password, followed by $1."/>
       </match>
     </input>
   </macro>
@@ -18,7 +19,7 @@
   <macro name="voicemail_fail_auth">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="login incorrect."/>
+        <action function="speak-text" data="login incorrect."/>
       </match>
     </input>
   </macro>
@@ -26,7 +27,7 @@
   <macro name="voicemail_hello">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="welcome to your voicemail."/>
+        <action function="speak-text" data="welcome to your voicemail."/>
       </match>
     </input>
   </macro>
@@ -34,7 +35,7 @@
   <macro name="voicemail_goodbye">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="goodbye."/>
+        <action function="speak-text" data="goodbye."/>
       </match>
     </input>
   </macro>
@@ -42,7 +43,7 @@
   <macro name="voicemail_abort">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="too many failed attempts."/>
+        <action function="speak-text" data="too many failed attempts."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_message_count">
     <input pattern="^1:(.*)$" break_on_match="true">
       <match>
-       <action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/>
+        <action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/>
       </match>
     </input>
     <input pattern="^(\d+):(.*)$">
       <match>
-       <action function="speak-text" data="you have $1 $2 messages in folder ${voicemail_current_folder}."/>
+        <action function="speak-text" data="you have $1 $2 messages in folder ${voicemail_current_folder}."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_menu">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-       <action function="speak-text" 
-               data="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $4."/>
+        <action function="speak-text"
+                data="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $4."/>
       </match>
     </input>
   </macro>
 
-
   <macro name="voicemail_config_menu">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-       <action function="speak-text" 
-               data="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/>
+        <action function="speak-text"
+                data="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/>
       </match>
     </input>
   </macro>
 
-
   <macro name="voicemail_record_name">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/>
+        <action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/>
 
       </match>
     </input>
@@ -92,8 +91,8 @@
   <macro name="voicemail_record_file_check">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-       <action function="speak-text" 
-               data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/>
+        <action function="speak-text"
+                data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_record_urgent_check">
     <input pattern="^([0-9#*]):([0-9#*])$">
       <match>
-       <action function="speak-text" 
-               data="To mark this message urgent, press $1, To continue, press $2."/>
+        <action function="speak-text"
+                data="To mark this message urgent, press $1, To continue, press $2."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_invalid_extension">
     <input pattern="^([0-9#*])$">
       <match>
-       <action function="speak-text" data="$1 is not a valid extension."/>
+        <action function="speak-text" data="$1 is not a valid extension."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_forward_message_enter_extension">
     <input pattern="^([0-9#*])$">
       <match>
-       <action function="speak-text" data="enter the extension you wish to forward to, then press $1"/>
+        <action function="speak-text" data="enter the extension you wish to forward to, then press $1"/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_forward_prepend">
     <input pattern="^([0-9#*])$">
       <match>
-       <action function="speak-text" data="To record an announcement, press $1."/>
+        <action function="speak-text" data="To record an announcement, press $1."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_listen_file_check">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-       <action function="speak-text" 
-               data="To listen to the recording again, press $1, To save the recording, press $2,  To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/>
+        <action function="speak-text"
+                data="To listen to the recording again, press $1, To save the recording, press $2,  To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_choose_greeting">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="choose a greeting between 1 and 3."/>
+        <action function="speak-text" data="choose a greeting between 1 and 3."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_choose_greeting_fail">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="invalid value."/>
+        <action function="speak-text" data="invalid value."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_record_greeting">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/>
+        <action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_record_message">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/>
+        <action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_greeting_selected">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="greeting $1 selected."/>
+        <action function="speak-text" data="greeting $1 selected."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_play_greeting">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="$1 is not available."/>
+        <action function="speak-text" data="$1 is not available."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_say_number">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="$1"/>
+        <action function="speak-text" data="$1"/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_say_message_number">
     <input pattern="^([a-z]+):(.*)$">
       <match>
-       <action function="speak-text" data="$1 message number $2."/>
+        <action function="speak-text" data="$1 message number $2."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_say_phone_number">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="$1."/>
+        <action function="speak-text" data="$1."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_say_name">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="$1."/>
+        <action function="speak-text" data="$1."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_ack">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="message $1"/>
+        <action function="speak-text" data="message $1"/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_say_date">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
+        <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 -->
+</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:
+-->
index 80660203a3b28d3dd9f8850930363f7ee45659bc..0d0de592acc22fcadb9aaead331889e1a80e8c66 100644 (file)
@@ -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:
+-->
index 02d6b3671f98d61b9dd21acb8ea0b7d764ed039b..a0dcb2c0e9a4523f44e730f41d39abac99823bda 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="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:
+-->
index 1f5b0caa63d21836514efb3614ff3fcd7c1f0fa9..7d3e5e309022c86b5bed190410ca0f4baec96d1a 100644 (file)
-<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:
+-->
index 55190a6bac7f393fc4574aebe5115f2ae3291c69..9cd209eab13832df9704b25f3b343f2c87375ae6 100644 (file)
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="utf-8"?>
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
+<include>
+
   <macro name="voicemail_enter_id">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="Entrez votre Identification, suivi par $1."/>
+        <action function="speak-text" data="Entrez votre Identification, suivi par $1."/>
       </match>
     </input>
   </macro>
@@ -11,7 +11,7 @@
   <macro name="voicemail_enter_pass">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="Entrez votre code, suivi par $1."/>
+        <action function="speak-text" data="Entrez votre code, suivi par $1."/>
       </match>
     </input>
   </macro>
@@ -19,7 +19,7 @@
   <macro name="voicemail_fail_auth">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="Identification incorrecte."/>
+        <action function="speak-text" data="Identification incorrecte."/>
       </match>
     </input>
   </macro>
@@ -27,7 +27,7 @@
   <macro name="voicemail_hello">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="Bienvenue sur votre répondeur."/>
+        <action function="speak-text" data="Bienvenue sur votre répondeur."/>
       </match>
     </input>
   </macro>
@@ -35,7 +35,7 @@
   <macro name="voicemail_goodbye">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="Au revoir."/>
+        <action function="speak-text" data="Au revoir."/>
       </match>
     </input>
   </macro>
@@ -43,7 +43,7 @@
   <macro name="voicemail_abort">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="Trop de tentatives ont échouées."/>
+        <action function="speak-text" data="Trop de tentatives ont échouées."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_message_count">
     <input pattern="^([^:]+):urgent-new">
       <match>
-       <action function="speak-text" data="Vous avez $1 nouveaux messages urgents dans le répertoire ${voicemail_current_folder}."/>
+        <action function="speak-text" data="Vous avez $1 nouveaux messages urgents dans le répertoire ${voicemail_current_folder}."/>
       </match>
     </input>
     <input pattern="^([^:]+):new">
       <match>
-       <action function="speak-text" data="Vous avez $1 nouveaux messages dans le répertoire ${voicemail_current_folder}."/>
+        <action function="speak-text" data="Vous avez $1 nouveaux messages dans le répertoire ${voicemail_current_folder}."/>
       </match>
     </input>
     <input pattern="^([^:]+):saved">
       <match>
-       <action function="speak-text" data="Vous avez $1 messages sauvegardés dans le répertoire ${voicemail_current_folder}."/>
+        <action function="speak-text" data="Vous avez $1 messages sauvegardés dans le répertoire ${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="Pour écouter les nouveaux messages, tapez $1, Pour écouter les messages enregistrés, tapez $2, Pour les options avancées, tapez $3, pour sortir, tapez $4."/>
+        <action function="speak-text"
+                data="Pour écouter les nouveaux messages, tapez $1, Pour écouter les messages enregistrés, tapez $2, Pour les options avancées, tapez $3, pour sortir, tapez $4."/>
       </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="pour enregistrer un message d'accueil, tapez $1, Pour choisir votre message d'accueil, tapez $2, Pour enregistrer votre nom, tapez $3, Pour changer votre mot de passe, tapez $4, Pour retourner au menu principal, tapez $5."/>
+        <action function="speak-text"
+                data="pour enregistrer un message d'accueil, tapez $1, Pour choisir votre message d'accueil, tapez $2, Pour enregistrer votre nom, tapez $3, Pour changer votre mot de passe, tapez $4, Pour retourner au menu principal, tapez $5."/>
       </match>
     </input>
   </macro>
 
-
   <macro name="voicemail_record_name">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="enregistrez votre nom après le bip, puis tapez une touche, ou arrêtez de parler pour arrêter l'enregistrement."/>
+        <action function="speak-text" data="enregistrez votre nom après le bip, puis tapez une touche, ou arrêtez de parler pour arrêter l'enregistrement."/>
 
       </match>
     </input>
@@ -98,8 +96,8 @@
   <macro name="voicemail_record_file_check">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-       <action function="speak-text" 
-               data="Pour écouter l'enregistrement, tapez $1, pour sauvegarder l'enregistrement, tapez $2, Pour réenregistrer, tapez $3."/>
+        <action function="speak-text"
+                data="Pour écouter l'enregistrement, tapez $1, pour sauvegarder l'enregistrement, tapez $2, Pour réenregistrer, tapez $3."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_record_urgent_check">
     <input pattern="^([0-9#*]):([0-9#*])$">
       <match>
-       <action function="speak-text" 
-               data="Pour indiquer que ce message est urgent, tapez $1, Pour continuer, tapez $2."/>
+        <action function="speak-text"
+                data="Pour indiquer que ce message est urgent, tapez $1, Pour continuer, tapez $2."/>
       </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="Pour réécouter l'enregistrement à nouveau, tapez $1, Pour sauvegarder l'enregistrement, tapez $2, Pour supprimer l'enregistrement, tapez $3, pour transférer l'enregistrement à votre email $8, tapez $4, Pour appeler l'auteur du message, tapez $5, Pour transférer ce message à un autre numéro, tapez $6."/>
+        <action function="speak-text"
+                data="Pour réécouter l'enregistrement à nouveau, tapez $1, Pour sauvegarder l'enregistrement, tapez $2, Pour supprimer l'enregistrement, tapez $3, pour transférer l'enregistrement à votre email $8, tapez $4, Pour appeler l'auteur du message, tapez $5, Pour transférer ce message à un autre numéro, tapez $6."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_choose_greeting">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="choisissez un message d'accueil entre 1 et 3."/>
+        <action function="speak-text" data="choisissez un message d'accueil entre 1 et 3."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_choose_greeting_fail">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="valeur incorrecte."/>
+        <action function="speak-text" data="valeur incorrecte."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_record_greeting">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="enregistrez votre message d'accueil après le bip, puis tapez une touche ou arrêtez de parler pour arrêter l'enregistrement."/>
+        <action function="speak-text" data="enregistrez votre message d'accueil après le bip, puis tapez une touche ou arrêtez de parler pour arrêter l'enregistrement."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_record_message">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="enregistrez votre message après le bip, puis tapez une touche ou arrêtez de parler pour arrêter l'enregistrement."/>
+        <action function="speak-text" data="enregistrez votre message après le bip, puis tapez une touche ou arrêtez de parler pour arrêter l'enregistrement."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_greeting_selected">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="message d'accueil numéro $1 sélectionné."/>
+        <action function="speak-text" data="message d'accueil numéro $1 sélectionné."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_play_greeting">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="$1 n'est pas disponible."/>
+        <action function="speak-text" data="$1 n'est pas disponible."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_say_number">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="$1"/>
+        <action function="speak-text" data="$1"/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_say_message_number">
     <input pattern="^new:(.*)$">
       <match>
-       <action function="speak-text" data="nouveau message numéro $1."/>
+        <action function="speak-text" data="nouveau message numéro $1."/>
       </match>
     </input>
     <input pattern="^saved:(.*)$">
       <match>
-       <action function="speak-text" data="message sauvegardé numéro $1."/>
+        <action function="speak-text" data="message sauvegardé numéro $1."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_say_phone_number">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="$1."/>
+        <action function="speak-text" data="$1."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_say_name">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="$1."/>
+        <action function="speak-text" data="$1."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_ack">
     <input pattern="^(too-small)$">
       <match>
-       <action function="speak-text" data="message trop court"/>
+        <action function="speak-text" data="message trop court"/>
       </match>
     </input>
     <input pattern="^(deleted)$">
       <match>
-       <action function="speak-text" data="message supprimé"/>
+        <action function="speak-text" data="message supprimé"/>
       </match>
     </input>
     <input pattern="^(saved)$">
       <match>
-       <action function="speak-text" data="message sauvegardé"/>
+        <action function="speak-text" data="message sauvegardé"/>
       </match>
     </input>
     <input pattern="^(emailed)$">
       <match>
-       <action function="speak-text" data="message envoyé"/>
+        <action function="speak-text" data="message envoyé"/>
       </match>
     </input>
     <input pattern="^(marked-urgent)$">
       <match>
-       <action function="speak-text" data="message marqué urgent"/>
+        <action function="speak-text" data="message marqué urgent"/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_say_date">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="${strftime($1|%e/%m/%Y, %H heures %M)}"/>
+        <action function="speak-text" data="${strftime($1|%e/%m/%Y, %H heures %M)}"/>
       </match>
     </input>
   </macro>
 
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
\ No newline at end of file
+</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:
+-->
index ec7d7bccd21aac77b6bb1bab1b6e37931c0cea7c..df8d24b751ece5fc0fc998376de245612f38670d 100644 (file)
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
-
+<include>
 
   <macro name="demo_ivr_count">
     <input pattern="^(\d+)$">
@@ -69,7 +67,7 @@
 
   <!-- 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"> 
+  <macro name="demo_ivr_main_menu_short" pause="100">
     <input pattern="(.*)">
       <match>
         <!-- Menu option 1: Call FreeSWITCH conference-->
 
   <!-- 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"> 
+  <macro name="demo_ivr_sub_menu_short">
     <input pattern="(.*)">
       <match>
         <!-- Menu option *: Return to top menu -->
     </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:
+-->
index e3e6f0214205ec84274fbec5b77eb0f405f179b2..bcfe6a822760be8c0c5ef31a61783c33489d4d34 100644 (file)
@@ -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="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 -->
+<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:
+-->
index 15ecec304ab27843881cf3bec04ad9e484669b60..5fd13fffc57783eed513f7f18a9ae5463b49cd17 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="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>
+<include>
 
-       <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_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_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_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-too_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_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/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-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_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"/>
+  <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:
+-->
index fe7c5d8a01076464ac96e0eaeebe2589a734c900..7cca73c1e80444a385a7cbe3d02c7c260394bbac 100644 (file)
@@ -9,3 +9,14 @@
     </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:
+-->
index 5a090411d74f954ec874e5fec56f2991114606ef..917c84b0386b27ae56406158af0c61e73041ed3a 100644 (file)
@@ -1,9 +1,10 @@
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
+<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"/>
+        <action function="play-file" data="voicemail/vm-enter_id.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
       </match>
     </input>
   </macro>
@@ -11,8 +12,8 @@
   <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"/>
+        <action function="play-file" data="voicemail/vm-enter_pass.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
       </match>
     </input>
   </macro>
@@ -20,7 +21,7 @@
   <macro name="voicemail_fail_auth">
     <input pattern="(.*)">
       <match>
-       <action function="play-file" data="voicemail/vm-fail_auth.wav"/>
+        <action function="play-file" data="voicemail/vm-fail_auth.wav"/>
       </match>
     </input>
   </macro>
@@ -28,7 +29,7 @@
   <macro name="voicemail_hello">
     <input pattern="(.*)">
       <match>
-       <!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
+        <!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
       </match>
     </input>
   </macro>
@@ -36,7 +37,7 @@
   <macro name="voicemail_goodbye">
     <input pattern="(.*)">
       <match>
-       <action function="play-file" data="voicemail/vm-goodbye.wav"/>
+        <action function="play-file" data="voicemail/vm-goodbye.wav"/>
       </match>
     </input>
   </macro>
@@ -44,7 +45,7 @@
   <macro name="voicemail_abort">
     <input pattern="(.*)">
       <match>
-       <action function="play-file" data="voicemail/vm-abort.wav"/>
+        <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"/>
+        <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"/>
+        <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 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)"/>
+        <!-- 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)"/>
+        <!-- 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"/>
+        <!-- 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 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 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 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 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"/>
+        <!-- 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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/> 
+        <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"/>
+        <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"/>
+        <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"> 
+  <macro name="voicemail_ack">
     <input pattern="^(too-small)$">
       <match>
-       <action function="play-file" data="voicemail/vm-too-small.wav"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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>
+      <match>
+        <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
+      </match>
     </input>
   </macro>
 
       </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:
+-->
index 8c6f3f8624617417f39c03435f67e5d6650f9f13..7de0d7fd0d8481546c3c3ebb41a0bc2483d06fcd 100644 (file)
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
-
+<include>
 
   <macro name="demo_ivr_count">
     <input pattern="^(\d+)$">
@@ -66,7 +64,7 @@
 
   <!-- 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="250"> 
+  <macro name="demo_ivr_main_menu_short" pause="250">
     <input pattern="(.*)">
       <match>
         <!-- Menu option 1: Call FreeSWITCH conference-->
 
   <!-- 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"> 
+  <macro name="demo_ivr_sub_menu_short">
     <input pattern="(.*)">
       <match>
         <!-- Menu option *: Return to top menu -->
     </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:
+-->
index 7e450fbc83cf91d26c9c1ab5da90fc4b59aab87d..10c9dbc55212646be0047a9fe166230f369017e1 100644 (file)
-<?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:
+-->
index 02d6b3671f98d61b9dd21acb8ea0b7d764ed039b..a0dcb2c0e9a4523f44e730f41d39abac99823bda 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="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:
+-->
index 67ae5ab2656d1c8d7e25ef6c81a4eae3585984a3..f0aafa267d815f859779c97575d22fa93e7261fb 100644 (file)
-<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:
+-->
index 686e84086000ec2f03db9f7e3db1211f1ea975c0..5f52e768a4bc4b73988426b6c695947c0476559c 100644 (file)
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--тестовые файлы Вы звуковые файлы можно взять тут svn co http://svn.freeswitch.ru/bbv/mod_say_ru/ru/  -->
 <include>
   <language name="ru" sound-prefix="$${sounds_dir}/ru/RU/elena" tts-engine="cepstral" tts-voice="elena">
     </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:
+-->
index ffd9ec5d8c751ebbe3dfda67a5b530c07c7b8ceb..2ee9e6ec5807524187d08b5994385c1c5ec40219 100644 (file)
@@ -1,10 +1,10 @@
-<?xml version="1.0" encoding="utf-8"?>
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
+<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"/>-->
+        <action function="play-file" data="voicemail/vm-enter_id.wav"/>
+        <!--<action function="say" data="$1" method="pronounced" type="name_spelled"/>-->
       </match>
     </input>
   </macro>
@@ -12,8 +12,8 @@
   <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"/>-->
+        <action function="play-file" data="voicemail/vm-enter_pass.wav"/>
+        <!-- лишнее и так долго <action function="say" data="$1" method="pronounced" type="name_spelled"/>-->
       </match>
     </input>
   </macro>
@@ -21,7 +21,7 @@
   <macro name="voicemail_fail_auth">
     <input pattern="(.*)">
       <match>
-       <action function="play-file" data="voicemail/vm-fail_auth.wav"/>
+        <action function="play-file" data="voicemail/vm-fail_auth.wav"/>
       </match>
     </input>
   </macro>
@@ -29,7 +29,7 @@
   <macro name="voicemail_hello">
     <input pattern="(.*)">
       <match>
-       <action function="play-file" data="voicemail/vm-hello.wav"/>
+        <action function="play-file" data="voicemail/vm-hello.wav"/>
       </match>
     </input>
   </macro>
@@ -37,7 +37,7 @@
   <macro name="voicemail_goodbye">
     <input pattern="(.*)">
       <match>
-       <action function="play-file" data="voicemail/vm-goodbye.wav"/>
+        <action function="play-file" data="voicemail/vm-goodbye.wav"/>
       </match>
     </input>
   </macro>
@@ -45,7 +45,7 @@
   <macro name="voicemail_abort">
     <input pattern="(.*)">
       <match>
-       <action function="play-file" data="voicemail/vm-abort.wav"/>
+        <action function="play-file" data="voicemail/vm-abort.wav"/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_message_count">
     <input pattern="^(\d+[0,2-9]1|[2-9]1|1):(.*)$"> <!--1, и всё что больше 20-ти 21,31,41 ..   -->
       <match>
-       <action function="play-file" data="voicemail/vm-you_have.wav"/>
-       <action function="say" data="$1" method="pronounced" type="MESSAGES"/>
-       <action function="play-file" data="voicemail/vm-$2.wav"/> 
-       <action function="play-file" data="voicemail/vm-message.wav"/>
-<!--   <action function="play-file" data="voicemail/vm-in_folder.wav"/>-->
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="MESSAGES"/>
+        <action function="play-file" data="voicemail/vm-$2.wav"/>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+        <!--<action function="play-file" data="voicemail/vm-in_folder.wav"/>-->
       </match>
     </input>
-    <!-- от 10 до 19 и ноль   --> <!-- от 5до 9 и больше 20-ти 25-29   -->
+    <!-- от 10 до 19 и ноль --> <!-- от 5до 9 и больше 20-ти 25-29 -->
     <input pattern="^(\d+1[0-9]|1[0-9]|0|\d+[0-9][0,5-9]|[2-9][0,5-9]|[0,5-9]):(.*)$">
       <match>
-       <action function="play-file" data="voicemail/vm-you_have.wav"/>
-       <action function="say" data="$1" method="pronounced" type="MESSAGES"/>
-       <action function="play-file" data="voicemail/vm-$2x.wav"/> 
-       <action function="play-file" data="voicemail/vm-messagex.wav"/>
-<!--   <action function="play-file" data="voicemail/vm-in_folder.wav"/>-->
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="MESSAGES"/>
+        <action function="play-file" data="voicemail/vm-$2x.wav"/>
+        <action function="play-file" data="voicemail/vm-messagex.wav"/>
+        <!--<action function="play-file" data="voicemail/vm-in_folder.wav"/>-->
       </match>
     </input>
-    <input pattern="^(\d+[0,2-9][2-4]|[2-9][2-4]|[2-4]):(.*)$"> 
+    <input pattern="^(\d+[0,2-9][2-4]|[2-9][2-4]|[2-4]):(.*)$">
       <match>
-       <action function="play-file" data="voicemail/vm-you_have.wav"/>
-       <action function="say" data="$1" method="pronounced" type="MESSAGES"/>
-       <action function="play-file" data="voicemail/vm-$2x.wav"/> 
-       <action function="play-file" data="voicemail/vm-messages.wav"/>
-       <action function="play-file" data="voicemail/vm-in_folder.wav"/>
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="MESSAGES"/>
+        <action function="play-file" data="voicemail/vm-$2x.wav"/>
+        <action function="play-file" data="voicemail/vm-messages.wav"/>
+        <action function="play-file" data="voicemail/vm-in_folder.wav"/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_menu">
     <input pattern="^([0-9#*]):([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_new.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="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="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"/>
+        <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="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="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="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>
-       <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="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="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="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="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"/>
+        <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="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="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="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="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>
 
-
   <macro name="voicemail_record_name">
     <input pattern="^(.*)$">
       <match>
-       <action function="play-file" data="voicemail/vm-record_name1.wav"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_choose_greeting">
     <input pattern="^(.*)$">
       <match>
-       <action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/> 
+        <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"/>
+        <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"/>
+        <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"> 
+  <macro name="voicemail_ack">
     <input pattern="^(too-small)$">
       <match>
-       <action function="play-file" data="voicemail/vm-too-small.wav"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <action function="say" data="$1" method="pronounced" type="current_date_time"/>
       </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:
+-->
index 1fc877d50ea95b040d2b0b0452b4de1cf33f94f3..2de4b3781ea900889c0b7b7ef05693538a1eb017 100644 (file)
@@ -1,8 +1,9 @@
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
+<include>
+
   <macro name="voicemail_enter_id">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="please enter your i d, followed by $1."/>
+        <action function="speak-text" data="please enter your i d, followed by $1."/>
       </match>
     </input>
   </macro>
@@ -10,7 +11,7 @@
   <macro name="voicemail_enter_pass">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="please enter your password, followed by $1."/>
+        <action function="speak-text" data="please enter your password, followed by $1."/>
       </match>
     </input>
   </macro>
@@ -18,7 +19,7 @@
   <macro name="voicemail_fail_auth">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="login incorrect."/>
+        <action function="speak-text" data="login incorrect."/>
       </match>
     </input>
   </macro>
@@ -26,7 +27,7 @@
   <macro name="voicemail_hello">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="welcome to your voicemail."/>
+        <action function="speak-text" data="welcome to your voicemail."/>
       </match>
     </input>
   </macro>
@@ -34,7 +35,7 @@
   <macro name="voicemail_goodbye">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="goodbye."/>
+        <action function="speak-text" data="goodbye."/>
       </match>
     </input>
   </macro>
@@ -42,7 +43,7 @@
   <macro name="voicemail_abort">
     <input pattern="(.*)">
       <match>
-       <action function="speak-text" data="too many failed attempts."/>
+        <action function="speak-text" data="too many failed attempts."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_message_count">
     <input pattern="^1:(.*)$" break_on_match="true">
       <match>
-       <action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/>
+        <action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/>
       </match>
     </input>
     <input pattern="^(\d+):(.*)$">
       <match>
-       <action function="speak-text" data="you have $1 $2 messages in folder ${voicemail_current_folder}."/>
+        <action function="speak-text" data="you have $1 $2 messages in folder ${voicemail_current_folder}."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_menu">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-       <action function="speak-text" 
-               data="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $4."/>
+        <action function="speak-text"
+                data="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $4."/>
       </match>
     </input>
   </macro>
 
-
   <macro name="voicemail_config_menu">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-       <action function="speak-text" 
-               data="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/>
+        <action function="speak-text"
+                data="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/>
       </match>
     </input>
   </macro>
 
-
   <macro name="voicemail_record_name">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/>
+        <action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/>
 
       </match>
     </input>
@@ -92,8 +91,8 @@
   <macro name="voicemail_record_file_check">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-       <action function="speak-text" 
-               data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/>
+        <action function="speak-text"
+                data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_record_urgent_check">
     <input pattern="^([0-9#*]):([0-9#*])$">
       <match>
-       <action function="speak-text" 
-               data="To mark this message urgent, press $1, To continue, press $2."/>
+        <action function="speak-text"
+                data="To mark this message urgent, press $1, To continue, press $2."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_invalid_extension">
     <input pattern="^([0-9#*])$">
       <match>
-       <action function="speak-text" data="$1 is not a valid extension."/>
+        <action function="speak-text" data="$1 is not a valid extension."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_forward_message_enter_extension">
     <input pattern="^([0-9#*])$">
       <match>
-       <action function="speak-text" data="enter the extension you wish to forward to, then press $1"/>
+        <action function="speak-text" data="enter the extension you wish to forward to, then press $1"/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_forward_prepend">
     <input pattern="^([0-9#*])$">
       <match>
-       <action function="speak-text" data="To record an announcement, press $1."/>
+        <action function="speak-text" data="To record an announcement, press $1."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_listen_file_check">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-       <action function="speak-text" 
-               data="To listen to the recording again, press $1, To save the recording, press $2,  To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/>
+        <action function="speak-text"
+                data="To listen to the recording again, press $1, To save the recording, press $2,  To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_choose_greeting">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="choose a greeting between 1 and 3."/>
+        <action function="speak-text" data="choose a greeting between 1 and 3."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_choose_greeting_fail">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="invalid value."/>
+        <action function="speak-text" data="invalid value."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_record_greeting">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/>
+        <action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_record_message">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/>
+        <action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_greeting_selected">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="greeting $1 selected."/>
+        <action function="speak-text" data="greeting $1 selected."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_play_greeting">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="$1 is not available."/>
+        <action function="speak-text" data="$1 is not available."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_say_number">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="$1"/>
+        <action function="speak-text" data="$1"/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_say_message_number">
     <input pattern="^([a-z]+):(.*)$">
       <match>
-       <action function="speak-text" data="$1 message number $2."/>
+        <action function="speak-text" data="$1 message number $2."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_say_phone_number">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="$1."/>
+        <action function="speak-text" data="$1."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_say_name">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="$1."/>
+        <action function="speak-text" data="$1."/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_ack">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="message $1"/>
+        <action function="speak-text" data="message $1"/>
       </match>
     </input>
   </macro>
   <macro name="voicemail_say_date">
     <input pattern="^(.*)$">
       <match>
-       <action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
+        <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 -->
+</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:
+-->
diff --git a/net/freeswitch/files/etc.packages/sofia/autoload_configs/sofia.conf.xml b/net/freeswitch/files/etc.packages/sofia/autoload_configs/sofia.conf.xml
new file mode 100644 (file)
index 0000000..a5e8614
--- /dev/null
@@ -0,0 +1,19 @@
+<configuration name="sofia.conf" description="sofia Endpoint">
+
+  <global_settings>
+    <param name="log-level" value="0"/>
+    <!-- <param name="auto-restart" value="false"/> -->
+    <param name="debug-presence" value="0"/>
+    <!-- <param name="capture-server" value="udp:homer.domain.com:5060"/> -->
+  </global_settings>
+
+  <!--
+      The rabbit hole goes deep.  This includes all the
+      profiles in the sip_profiles directory that is up
+      one level from this directory.
+  -->
+  <profiles>
+    <X-PRE-PROCESS cmd="include" data="../sip_profiles/*.xml"/>
+  </profiles>
+
+</configuration>
diff --git a/net/freeswitch/files/etc.packages/spandsp/autoload_configs/fax.conf.xml b/net/freeswitch/files/etc.packages/spandsp/autoload_configs/fax.conf.xml
new file mode 100644 (file)
index 0000000..c7d8256
--- /dev/null
@@ -0,0 +1,12 @@
+<configuration name="fax.conf" description="FAX application configuration">
+    <settings>
+       <param name="use-ecm"           value="true"/>
+       <param name="verbose"           value="false"/>
+       <param name="disable-v17"       value="false"/>
+       <param name="ident"             value="SpanDSP Fax Ident"/>
+       <param name="header"            value="SpanDSP Fax Header"/>
+
+       <param name="spool-dir"         value="/tmp"/>
+       <param name="file-prefix"       value="faxrx"/>
+    </settings>
+</configuration>
diff --git a/net/freeswitch/files/etc.packages/spandsp/autoload_configs/spandsp.conf.xml b/net/freeswitch/files/etc.packages/spandsp/autoload_configs/spandsp.conf.xml
new file mode 100644 (file)
index 0000000..f70416b
--- /dev/null
@@ -0,0 +1,113 @@
+<configuration name="spandsp.conf" description="SpanDSP config">
+    <modem-settings>
+<!--
+    total-modems set to N will create that many soft-modems.  
+    If you use them with Hylafax you need the following for each one numbered 0..N:
+
+    1) A line like this in /etc/inittab:
+
+      f0:2345:respawn:/usr/lib/fax/faxgetty /dev/FS0
+
+    2) copy conf/config.FS0 to /var/spool/hylafax/etc (or wherver the appropriate dir is on your system)
+
+    Subsequent modem configs would incrment the 0 to 1 and so on.
+
+-->
+      <param name="total-modems" value="0"/>
+
+      <!-- Default context and dialplan to use on inbound calls from the modems -->
+      <param name="context" value="default"/>
+      <param name="dialplan" value="XML"/>
+
+      <!-- Extra tracing for debugging -->
+      <param name="verbose" value="false"/>
+    </modem-settings>
+
+    <fax-settings>
+       <param name="use-ecm"           value="true"/>
+       <param name="verbose"           value="false"/>
+       <param name="disable-v17"       value="false"/>
+       <param name="ident"             value="SpanDSP Fax Ident"/>
+       <param name="header"            value="SpanDSP Fax Header"/>
+
+       <param name="spool-dir"         value="/tmp"/>
+       <param name="file-prefix"       value="faxrx"/>
+    </fax-settings>
+
+    <descriptors>
+
+     <!-- These tones are defined in Annex to ITU Operational Bulletin No. 781 - 1.II.2003 -->
+     <!-- Various Tones Used in National Networks (According to ITU-T Recommendation E.180)(03/1998) -->
+
+     <!-- North America -->
+     <descriptor name="1">
+       <tone name="CED_TONE">
+         <element freq1="2100" freq2="0" min="700" max="0"/>
+       </tone>
+       <tone name="SIT">
+         <element freq1="950" freq2="0" min="256" max="400"/>
+         <element freq1="1400" freq2="0" min="256" max="400"/>
+         <element freq1="1800" freq2="0" min="256" max="400"/>
+       </tone>
+       <tone name="RING_TONE" description="North America ring">
+         <element freq1="440" freq2="480" min="1200" max="0"/>
+       </tone>
+       <tone name="REORDER_TONE">
+         <element freq1="480" freq2="620" min="224" max="316"/>
+         <element freq1="0" freq2="0" min="168" max="352"/>
+         <element freq1="480" freq2="620" min="224" max="316"/>
+       </tone>
+       <tone name="BUSY_TONE">
+         <element freq1="480" freq2="620" min="464" max="536"/>
+         <element freq1="0" freq2="0" min="464" max="572"/>
+         <element freq1="480" freq2="620" min="464" max="536"/>
+       </tone>
+     </descriptor>
+
+     <!-- United Kingdom -->
+     <descriptor name="44">
+       <tone name="CED_TONE">
+         <element freq1="2100" freq2="0" min="500" max="0"/>
+       </tone>
+       <tone name="SIT">
+         <element freq1="950" freq2="0" min="256" max="400"/>
+         <element freq1="1400" freq2="0" min="256" max="400"/>
+         <element freq1="1800" freq2="0" min="256" max="400"/>
+       </tone>
+       <tone name="REORDER_TONE">
+         <element freq1="400" freq2="0" min="368" max="416"/>
+         <element freq1="0" freq2="0" min="336" max="368"/>
+         <element freq1="400" freq2="0" min="256" max="288"/>
+         <element freq1="0" freq2="0" min="512" max="544"/>
+       </tone>
+       <tone name="BUSY_TONE">
+         <element freq1="400" freq2="0" min="352" max="384"/>
+         <element freq1="0" freq2="0" min="352" max="384"/>
+         <element freq1="400" freq2="0" min="352" max="384"/>
+         <element freq1="0" freq2="0" min="352" max="384"/>
+       </tone>
+     </descriptor>
+
+     <!-- Germany -->
+     <descriptor name="49">
+       <tone name="CED_TONE">
+         <element freq1="2100" freq2="0" min="500" max="0"/>
+       </tone>
+       <tone name="SIT">
+         <element freq1="900" freq2="0" min="256" max="400"/>
+         <element freq1="1400" freq2="0" min="256" max="400"/>
+         <element freq1="1800" freq2="0" min="256" max="400"/>
+       </tone>
+       <tone name="REORDER_TONE">
+         <element freq1="425" freq2="0" min="224" max="272"/>
+         <element freq1="0" freq2="0" min="224" max="272"/>
+       </tone>
+       <tone name="BUSY_TONE">
+         <element freq1="425" freq2="0" min="464" max="516"/>
+         <element freq1="0" freq2="0" min="464" max="516"/>
+       </tone>
+     </descriptor>
+   </descriptors>
+
+</configuration>
+
diff --git a/net/freeswitch/files/etc.packages/tts-commandline/autoload_configs/tts_commandline.conf.xml b/net/freeswitch/files/etc.packages/tts-commandline/autoload_configs/tts_commandline.conf.xml
new file mode 100644 (file)
index 0000000..eb81643
--- /dev/null
@@ -0,0 +1,15 @@
+<configuration name="tts_commandline.conf" description="TextToSpeech Commandline configuration">
+    <settings>
+       <!--
+       Some variables will be replaced :
+       ${text}: input text (quoted)
+       ${rate}: sample rate (example: 8000)
+       ${voice}: voice_name passed to TTS(quoted)
+       ${file}: output file (quoted, including .wav extension)
+    
+    Example commands can be found at:
+    http://wiki.freeswitch.org/wiki/Mod_tts_commandline#Example_commands
+       -->
+       <param name="command" value="echo ${text} | text2wave -f ${rate} > ${file}"/>
+    </settings>
+</configuration>
diff --git a/net/freeswitch/files/etc.packages/tts_commandline/autoload_configs/tts_commandline.conf.xml b/net/freeswitch/files/etc.packages/tts_commandline/autoload_configs/tts_commandline.conf.xml
deleted file mode 100644 (file)
index eb81643..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<configuration name="tts_commandline.conf" description="TextToSpeech Commandline configuration">
-    <settings>
-       <!--
-       Some variables will be replaced :
-       ${text}: input text (quoted)
-       ${rate}: sample rate (example: 8000)
-       ${voice}: voice_name passed to TTS(quoted)
-       ${file}: output file (quoted, including .wav extension)
-    
-    Example commands can be found at:
-    http://wiki.freeswitch.org/wiki/Mod_tts_commandline#Example_commands
-       -->
-       <param name="command" value="echo ${text} | text2wave -f ${rate} > ${file}"/>
-    </settings>
-</configuration>
diff --git a/net/freeswitch/files/etc.packages/voicemail-ivr/autoload_configs/voicemail_ivr.conf.xml b/net/freeswitch/files/etc.packages/voicemail-ivr/autoload_configs/voicemail_ivr.conf.xml
new file mode 100644 (file)
index 0000000..529509a
--- /dev/null
@@ -0,0 +1,208 @@
+<configuration name="voicemail_ivr.conf" description="Voicemail IVR">
+<profiles>
+       <profile name="default">
+               <settings>
+                       <param name="IVR-Maximum-Attempts" value="3" />
+                       <param name="IVR-Entry-Timeout" value="3000" />
+                       <param name="Record-Format" value="wav" />
+                       <!--<param name="Record-Sample-Rate" value="8000" />-->
+                       <param name="Record-Silence-Hits" value="4" />
+                       <param name="Record-Silence-Threshold" value="200" />
+                       <param name="Record-Maximum-Length" value="30" />
+                       <!--<param name="Record-Minimum-Length" value="3" />-->
+                       <param name="Exit-Purge" value="true" />
+                       <param name="Password-Mask" value="XXX." />
+                       <param name="User-Mask" value="X." />
+
+               </settings>
+               <apis>
+                       <api name="auth_login" value="vm_fsdb_auth_login" />
+                       <api name="msg_list" value="vm_fsdb_msg_list" />
+                       <api name="msg_count" value="vm_fsdb_msg_count" />
+                       <api name="msg_delete" value="vm_fsdb_msg_delete" />
+                       <api name="msg_undelete" value="vm_fsdb_msg_undelete" />
+                       <api name="msg_save" value="vm_fsdb_msg_save" />
+                       <api name="msg_purge" value="vm_fsdb_msg_purge" />
+                       <api name="msg_get" value="vm_fsdb_msg_get" />
+                       <api name="msg_forward" value="vm_fsdb_msg_forward" />
+                       <api name="pref_greeting_set" value="vm_fsdb_pref_greeting_set" />
+                       <api name="pref_recname_set" value="vm_fsdb_pref_recname_set" />
+                       <api name="pref_password_set" value="vm_fsdb_pref_password_set" />
+               </apis>
+               <menus>
+                       <menu name="std_authenticate">
+                       <phrases>
+                               <phrase name="fail_auth" value="fail_auth@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                       </keys>
+                       </menu>
+
+                       <menu name="std_authenticate_ask_user">
+                       <phrases>
+                               <phrase name="instructions" value="enter_id@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="#" action="ivrengine:terminate_entry" variable="VM-Key-Terminator" />
+                       </keys>
+                       </menu>
+
+                       <menu name="std_authenticate_ask_password">
+                       <phrases>
+                               <phrase name="instructions" value="enter_pass@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="#" action="ivrengine:terminate_entry" variable="VM-Key-Terminator" />
+                       </keys>
+                       </menu>
+
+                       <menu name="std_main_menu">
+                       <phrases>
+                               <phrase name="msg_count" value="message_count@mtvoicemail" />
+                               <phrase name="say_date" value="say_date_event@mtvoicemail" />
+                               <phrase name="say_msg_number" value="say_message_number@mtvoicemail" />
+                               <phrase name="menu_options" value="menu@mtvoicemail" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="1" action="new_msg:std_navigator" variable="VM-Key-Play-New-Messages" />
+                               <key dtmf="2" action="saved_msg:std_navigator" variable="VM-Key-Play-Saved-Messages" />
+                               <key dtmf="5" action="menu:std_preference" variable="VM-Key-Config-Menu"/>
+                               <key dtmf="#" action="return" variable="VM-Key-Terminator" />
+                       </keys>
+                       </menu>
+
+                       <menu name="std_navigator">
+                       <settings>
+                               <!--<param name="Nav-Action-On-Delete" value="next_msg" />-->
+                       </settings>
+                       <phrases>
+                               <phrase name="msg_count" value="message_count@voicemail_ivr" />
+                               <phrase name="say_date" value="say_date_event@voicemail_ivr" />
+                               <phrase name="say_msg_number" value="say_message_number@voicemail_ivr" />
+                               <phrase name="menu_options" value="listen_file_check@voicemail_ivr" />
+                               <phrase name="ack" value="ack@voicemail_ivr" />
+                               <phrase name="play_message" value="play_message@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="1" action="skip_intro" variable="VM-Key-Main-Listen-File" />
+                               <key dtmf="6" action="next_msg" variable="VM-Key-Main-Next-Msg" />
+                               <key dtmf="4" action="prev_msg" />
+                               <key dtmf="7" action="delete_msg" variable="VM-Key-Main-Delete-File" /> <!-- Same key for undelete if it already deleted -->
+                               <key dtmf="8" action="menu:std_forward" variable="VM-Key-Main-Forward" />
+                               <key dtmf="3" action="save_msg" variable="VM-Key-Main-Save-File" />
+                               <key dtmf="2" action="callback" variable="VM-Key-Main-Callback" />
+                               <key dtmf="5" action="menu:std_preference" />
+                               <key dtmf="#" action="return" /> <!-- TODO Might Conflict with future fast-forward -->
+                       </keys>
+                       </menu>
+
+                       <menu name="std_preference">
+                       <phrases>
+                               <phrase name="menu_options" value="config_menu@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="1" action="menu:std_record_greeting_with_slot" variable="VM-Key-Record-Greeting" />
+                               <key dtmf="2" action="menu:std_select_greeting_slot" variable="VM-Key-Choose-Greeting" />
+                               <key dtmf="3" action="menu:std_record_name" variable="VM-Key-Record-Name" />
+                               <key dtmf="6" action="menu:std_set_password" variable="VM-Key-Change-Password" />
+                               <key dtmf="#" action="return" variable="VM-Key-Main-Menu" />
+                       </keys>
+                       </menu>
+
+                       <menu name="std_record_greeting">
+                       <phrases>
+                               <phrase name="instructions" value="record_greeting@voicemail_ivr" />
+                               <phrase name="play_recording" value="play_recording@voicemail_ivr" />
+                               <phrase name="menu_options" value="record_file_check@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="1" action="listen" variable="VM-Key-Listen-File" />
+                               <key dtmf="3" action="save" variable="VM-Key-Save-File" />
+                               <key dtmf="4" action="rerecord" variable="VM-Key-ReRecord-File" />
+                               <key dtmf="#" action="skip_instruction" />
+                       </keys>
+                       </menu>
+
+
+                       <menu name="std_record_name">
+                       <phrases>
+                               <phrase name="instructions" value="record_name@voicemail_ivr" />
+                               <phrase name="play_recording" value="play_recording@voicemail_ivr" />
+                               <phrase name="menu_options" value="record_file_check@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="1" action="listen" variable="VM-Key-Listen-File" />
+                               <key dtmf="3" action="save" variable="VM-Key-Save-File" />
+                               <key dtmf="4" action="rerecord" variable="VM-Key-ReRecord-File" />
+                               <key dtmf="#" action="skip_instruction" />
+                       </keys>
+                       </menu>
+
+                       <menu name="std_record_message">
+                       <phrases>
+                               <phrase name="instructions" value="record_message@voicemail_ivr" />
+                               <phrase name="play_recording" value="play_recording@voicemail_ivr" />
+                               <phrase name="menu_options" value="record_file_check@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="1" action="listen" variable="VM-Key-Listen-File" />
+                               <key dtmf="3" action="save" variable="VM-Key-Save-File" />
+                               <key dtmf="4" action="rerecord" variable="VM-Key-ReRecord-File" />
+                               <key dtmf="#" action="skip_instruction" />
+                       </keys>
+                       </menu>                 
+
+                       <menu name="std_forward_ask_prepend">
+                       <phrases>
+                               <phrase name="menu_options" value="forward_ask_prepend@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="1" action="prepend" variable="VM-Key-Prepend" />
+                               <key dtmf="8" action="forward" variable="VM-Key-Forward" />
+                               <key dtmf="#" action="return" variable="VM-Key-Return" />
+                       </keys>
+                       </menu>
+
+                       <menu name="std_forward_ask_extension">
+                       <phrases>
+                               <phrase name="instructions" value="forward_ask_extension@voicemail_ivr" />
+                               <phrase name="ack" value="ack@voicemail_ivr" />
+                               <phrase name="invalid_extension" value="invalid_extension@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="#" action="ivrengine:terminate_entry" variable="VM-Key-Terminator" />
+                       </keys>
+                       </menu>
+
+                       <menu name="std_select_greeting_slot">
+                       <phrases>
+                               <phrase name="instructions" value="choose_greeting@voicemail_ivr" />
+                               <phrase name="invalid_slot" value="choose_greeting_fail@voicemail_ivr" />
+                               <phrase name="selected_slot" value="greeting_selected@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                       </keys>
+                       </menu>
+
+                       <menu name="std_record_greeting_with_slot">
+                       <phrases>
+                               <phrase name="instructions" value="choose_greeting@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                       </keys>
+                       </menu>
+
+                       <menu name="std_set_password">
+                       <phrases>
+                               <phrase name="instructions" value="enter_pass@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="#" action="ivrengine:terminate_entry" variable="VM-Key-Terminator" />
+                       </keys>
+                       </menu>
+               </menus>
+       </profile>
+</profiles>
+</configuration>
+
+
index 6f8ef0deb50c73820c53ec637dd9e27a9baeb678..ac9b1f94d30fdfebe55c3b32f8c1a89cfcc89562 100644 (file)
@@ -27,7 +27,7 @@
     <!-- true or false if a leg files are prefixed "a_" -->
     <param name="prefix-a-leg" value="true"/>
 
-    <!-- encode the post data may be 'true' for url encoding, 'false' for no encoding or 'base64' for base64 encoding -->
+    <!-- encode the post data may be 'true' for url encoding, 'false' for no encoding, 'base64' for base64 encoding or 'textxml' for text/xml -->
     <param name="encode" value="true"/>
 
     <!-- optional: set to true to disable Expect: 100-continue lighttpd requires this setting --> 
index 838d5a4f8072446ce93e24135d021a7f638632bf..ecfc0a94fb191258b72f1f4686f737efa649adec 100644 (file)
@@ -1,33 +1,57 @@
 --- a/build/modules.conf.in
 +++ b/build/modules.conf.in
-@@ -41,10 +41,14 @@ applications/mod_valet_parking
- #applications/mod_ladspa
- #applications/mod_mongo
- applications/mod_sms
-+#applications/mod_http_cache
+@@ -3,6 +3,9 @@
+ #applications/mod_blacklist
+ #applications/mod_callcenter
+ #applications/mod_cidlookup
++#applications/mod_skel
 +#applications/mod_mp4
 +#applications/mod_protovm
- codecs/mod_g723_1
- codecs/mod_amr
- #codecs/mod_amrwb
+ applications/mod_cluechoo
+ applications/mod_commands
+ applications/mod_conference
+@@ -27,6 +30,7 @@ applications/mod_httapi
+ #applications/mod_memcache
+ #applications/mod_mongo
+ #applications/mod_nibblebill
++#applications/mod_oreka
+ #applications/mod_osp
+ #applications/mod_redis
+ #applications/mod_rss
+@@ -34,6 +38,7 @@ applications/mod_sms
+ #applications/mod_snapshot
+ #applications/mod_snipe_hunt
+ #applications/mod_snom
++#applications/mod_sonar
+ #applications/mod_soundtouch
+ applications/mod_spandsp
+ #applications/mod_spy
+@@ -61,17 +66,20 @@ codecs/mod_h26x
+ codecs/mod_vp8
+ #codecs/mod_ilbc
+ #codecs/mod_isac
++#codecs/mod_mp4v
+ #codecs/mod_opus
+ #codecs/mod_sangoma_codec
  #codecs/mod_silk
+ #codecs/mod_siren
+ codecs/mod_speex
 +#codecs/mod_theora
- #codecs/mod_codec2
- codecs/mod_g729
- #codecs/mod_com_g729
-@@ -62,6 +66,7 @@ dialplans/mod_dialplan_xml
  dialplans/mod_dialplan_asterisk
+ #dialplans/mod_dialplan_directory
+ dialplans/mod_dialplan_xml
  #directories/mod_ldap
+ #endpoints/mod_alsa
  #endpoints/mod_dingaling
 +#endpoints/mod_gsmopen
- #endpoints/mod_portaudio
- endpoints/mod_sofia
- endpoints/mod_loopback
-@@ -82,6 +87,7 @@ endpoints/mod_loopback
+ #endpoints/mod_h323
+ #endpoints/mod_html5
+ #endpoints/mod_khomp
+@@ -88,6 +96,7 @@ event_handlers/mod_cdr_csv
+ event_handlers/mod_cdr_sqlite
+ #event_handlers/mod_erlang_event
  #event_handlers/mod_event_multicast
++#event_handlers/mod_json_cdr
  event_handlers/mod_event_socket
  #event_handlers/mod_event_zmq
-+#event_handlers/mod_json_cdr
- event_handlers/mod_cdr_csv
- event_handlers/mod_cdr_sqlite
- #event_handlers/mod_cdr_mongodb
+ #event_handlers/mod_radius_cdr
diff --git a/net/freeswitch/patches/002-Makefile.am.patch b/net/freeswitch/patches/002-Makefile.am.patch
deleted file mode 100644 (file)
index 0e84f1b..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1,3 +1,7 @@
-+BASE=.
-+
-+include $(BASE)/build/openwrt_rules.mk
-+
- EXTRA_DIST =
- SUBDIRS = . src
- AUTOMAKE_OPTIONS = foreign
-@@ -61,7 +65,7 @@ cd-moh-install: uhd-moh-install sounds-m
- # (1) if the variable is set in `config.status', edit `config.status'
- #     (which will cause the Makefiles to be regenerated when you run `make');
- # (2) otherwise, pass the desired values on the `make' command line.
--all-recursive: libfreeswitch.la
-+all-recursive: spandsp-reconf libfreeswitch.la
- clean-recusive: clean_core
- install-recursive: install-libLTLIBRARIES install-binPROGRAMS
- $(RECURSIVE_TARGETS):
-@@ -586,10 +590,13 @@ speex-reconf:
- tiff-reconf:
-       cd libs/tiff-3.8.2 && autoreconf -fi
--      cd libs/tiff-3.8.2 && sh ./configure.gnu
-+      cd libs/tiff-3.8.2 && sh ./configure.gnu --host=$(GNU_TARGET_NAME)
-       cd libs/spandsp && autoreconf -fi
--      cd libs/spandsp && sh ./configure.gnu
--      make mod_voipcodecs-clean
-+      cd libs/spandsp && sh ./configure.gnu --host=$(GNU_TARGET_NAME) --prefix=$(prefix)
-+      cd libs/tiff-3.8.2 && $(MAKE)
-+
-+spandsp-reconf: tiff-reconf
-+      cd libs/spandsp && $(MAKE)
- python-reconf:
-       rm -f src/mod/languages/mod_python/Makefile
-@@ -612,12 +619,6 @@ iks-reconf:
-       cd libs/iksemel && sh ./configure.gnu --prefix=$(prefix)
-       $(MAKE) mod_dingaling-clean
--spandsp-reconf:
--      cd libs/spandsp && $(MAKE) clean || echo
--      cd libs/spandsp && autoreconf -fi
--      cd libs/spandsp && sh ./configure.gnu --prefix=$(prefix)
--      cd libs/spandsp && $(MAKE)
--
- sofia-reconf:
-       cd libs/sofia-sip && sh ./autogen.sh
-       cd libs/sofia-sip && $(MAKE) clean
diff --git a/net/freeswitch/patches/002-configure_in.patch b/net/freeswitch/patches/002-configure_in.patch
new file mode 100644 (file)
index 0000000..b330981
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/configure.in
++++ b/configure.in
+@@ -581,7 +581,7 @@ AC_CHECK_LIB(pthread, pthread_setschedpa
+ AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket))
+-AC_CHECK_FILE(/dev/ptmx, [AC_DEFINE(HAVE_DEV_PTMX, 1, [Define if you have /dev/ptmx])])
++# AC_CHECK_FILE(/dev/ptmx, [AC_DEFINE(HAVE_DEV_PTMX, 1, [Define if you have /dev/ptmx])])
+ AC_CHECK_LIB(util, openpty, [AC_DEFINE(HAVE_OPENPTY, 1, [Define if you have openpty()])])
+ AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[
diff --git a/net/freeswitch/patches/003-Makefile.am.patch b/net/freeswitch/patches/003-Makefile.am.patch
new file mode 100644 (file)
index 0000000..409bdca
--- /dev/null
@@ -0,0 +1,40 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,3 +1,7 @@
++BASE=.
++
++include $(BASE)/build/openwrt_rules.mk
++
+ EXTRA_DIST =
+ SUBDIRS = . src
+ AUTOMAKE_OPTIONS = foreign
+@@ -69,7 +73,7 @@ cd-moh-install: uhd-moh-install sounds-m
+ # (1) if the variable is set in `config.status', edit `config.status'
+ #     (which will cause the Makefiles to be regenerated when you run `make');
+ # (2) otherwise, pass the desired values on the `make' command line.
+-all-recursive: libfreeswitch.la
++all-recursive: spandsp-reconf libfreeswitch.la
+ clean-recusive: clean_core
+ install-recursive: install-libLTLIBRARIES install-binPROGRAMS
+@@ -612,7 +616,9 @@ sndfile-reconf:
+ tiff-reconf:
+       cd libs/tiff-4.0.2 && autoreconf -fi
+-      cd libs/tiff-4.0.2 && sh ./configure.gnu
++      cd libs/tiff-4.0.2 && sh ./configure.gnu --host="$(GNU_TARGET_NAME)" --prefix="/usr"
++      cd libs/spandsp && autoreconf -fi
++      cd libs/spandsp && sh ./configure.gnu --host="$(GNU_TARGET_NAME)" --prefix="/usr"
+       cd libs/tiff-4.0.2 && make
+ python-reconf:
+@@ -637,9 +643,6 @@ iks-reconf:
+       $(MAKE) mod_dingaling-clean
+ spandsp-reconf: tiff-reconf
+-      cd libs/spandsp && $(MAKE) clean || echo
+-      cd libs/spandsp && autoreconf -fi
+-      cd libs/spandsp && sh ./configure.gnu --prefix=$(prefix)
+       cd libs/spandsp && $(MAKE)
+ sofia-reconf:
diff --git a/net/freeswitch/patches/003-libs-esl-Makefile.patch b/net/freeswitch/patches/003-libs-esl-Makefile.patch
deleted file mode 100644 (file)
index c0034ec..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/libs/esl/Makefile
-+++ b/libs/esl/Makefile
-@@ -7,7 +7,7 @@ PICKY=-O2
- CFLAGS=$(BASE_FLAGS) $(PICKY)
- CXXFLAGS=$(BASE_FLAGS)
- MYLIB=libesl.a
--LIBS=-lncurses -lesl -lpthread -lm
-+LIBS=-L$(STAGING_DIR)/usr/lib -lncurses -lesl -lpthread -lm
- LDFLAGS=-L.
- OBJS=src/esl.o src/esl_event.o src/esl_threadmutex.o src/esl_config.o src/esl_json.o src/esl_buffer.o
- SRC=src/esl.c src/esl_json.c src/esl_event.c src/esl_threadmutex.c src/esl_config.c src/esl_oop.cpp src/esl_json.c src/esl_buffer.c
-@@ -19,8 +19,8 @@ OBJS += src/esl_oop.o
- all: $(MYLIB) fs_cli testclient testserver ivrd
- $(MYLIB): $(OBJS) $(HEADERS) $(SRC)
--      ar rcs $(MYLIB) $(OBJS)
--      ranlib $(MYLIB)
-+      $(AR) rcs $(MYLIB) $(OBJS)
-+      $(RANLIB) $(MYLIB)
- testserver: $(MYLIB) testserver.c
-       $(CC) $(CC_CFLAGS) $(CFLAGS) testserver.c -o testserver $(LDFLAGS) $(LIBS)
diff --git a/net/freeswitch/patches/004-src-mod-applications-mod_mp4-mp4_helper_hpp.patch b/net/freeswitch/patches/004-src-mod-applications-mod_mp4-mp4_helper_hpp.patch
deleted file mode 100644 (file)
index ac81dd0..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/src/mod/applications/mod_mp4/mp4_helper.hpp
-+++ b/src/mod/applications/mod_mp4/mp4_helper.hpp
-@@ -22,8 +22,9 @@ the Initial Developer. All Rights Reserv
- #ifndef MP4_HELPER_HPP_
- #define MP4_HELPER_HPP_
-+#include <string.h>
-+#include <sys/types.h>
- #include <mp4.h>
--#include <string>
- #include <exception>
- #include <string>
diff --git a/net/freeswitch/patches/005-src-mod-codecs-mod_opus-Makefile.patch b/net/freeswitch/patches/005-src-mod-codecs-mod_opus-Makefile.patch
deleted file mode 100644 (file)
index 94ba6f0..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/src/mod/codecs/mod_opus/Makefile
-+++ b/src/mod/codecs/mod_opus/Makefile
-@@ -13,13 +13,14 @@ SILK_LA=$(OPUS_BUILDDIR)/silk/libSKP_SIL
- LOCAL_LIBADD=$(IETF_LA) $(CELT_LA) $(SILK_LA) -lm -lz
- include $(BASE)/build/modmake.rules
-+include $(BASE)/build/openwrt_rules.mk
- $(OPUS_DIR):
-       $(GETLIB) $(OPUS).tar.gz
- $(OPUS_BUILDDIR)/Makefile: $(OPUS_DIR)
-       mkdir -p $(OPUS_BUILDDIR)
--      cd $(OPUS_BUILDDIR) && $(DEFAULT_VARS) $(OPUS_DIR)/configure --disable-shared --with-pic --srcdir=$(OPUS_DIR)
-+      cd $(OPUS_BUILDDIR) && $(DEFAULT_VARS) $(OPUS_DIR)/configure --host=$(GNU_TARGET_NAME) --disable-shared --with-pic --srcdir=$(OPUS_DIR)
-       $(TOUCH_TARGET)
- $(IETF_LA): $(OPUS_BUILDDIR)/Makefile
diff --git a/net/freeswitch/patches/006-src-include-timerfd_wrap_h.patch b/net/freeswitch/patches/006-src-include-timerfd_wrap_h.patch
deleted file mode 100644 (file)
index dbf995e..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
---- a/src/include/timerfd_wrap.h
-+++ b/src/include/timerfd_wrap.h
-@@ -55,20 +55,12 @@ SWITCH_BEGIN_EXTERN_C
- #ifndef __NR_timerfd
--#if defined(__x86_64__)
--#define __NR_timerfd_create 283
--#define __NR_timerfd_settime 286
--#define __NR_timerfd_gettime 287
--#elif defined(__i386__)
--#define __NR_timerfd_create 322
--#define __NR_timerfd_settime 325
--#define __NR_timerfd_gettime 326
--#else
--#error invalid system
--#endif
-+#include <linux/unistd.h>
- #endif
--#define TFD_TIMER_ABSTIME (1 << 0)
-+#ifndef TFD_TIMER_ABSTIME
-+#include <sys/timerfd.h>
-+#endif
- int timerfd_create(int clockid, int flags) 
- {
diff --git a/net/freeswitch/patches/007-src-mod-endpoints-mod_gsmopen-Makefile.patch b/net/freeswitch/patches/007-src-mod-endpoints-mod_gsmopen-Makefile.patch
deleted file mode 100644 (file)
index 18a130d..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/src/mod/endpoints/mod_gsmopen/Makefile
-+++ b/src/mod/endpoints/mod_gsmopen/Makefile
-@@ -1,9 +1,16 @@
-+BASE=../../../..
- MODNAME=mod_gsmopen
- SVNDEF := -D'GSMOPEN_SVN_VERSION="$(shell svnversion -n .)"'
--#LOCAL_CFLAGS += $(SVNDEF) -I/usr/src/gsmlib-1.10
--LOCAL_CFLAGS += $(SVNDEF) -I../../../../libs/spandsp/src -I../../../..//libs/tiff-3.8.2/libtiff
--#LOCAL_LDFLAGS=-lasound -L/usr/src/gsmlib-1.10/gsmlib/.libs -lgsmme
--LOCAL_LDFLAGS=-L../../../../libs/spandsp/src -lasound -lgsmme -lspandsp
--LOCAL_OBJS=gsmopen_protocol.o 
--#OUR_OBJS += /usr/src/gsmlib-1.10/gsmlib/libgsmme.la
--include ../../../../build/modmake.rules
-+LOCAL_CFLAGS += $(SVNDEF) -I$(BASE)/libs/spandsp/src -I$(BASE)/libs/tiff-3.8.2/libtiff -fpermissive
-+LOCAL_LDFLAGS=-L$(BASE)/libs/spandsp/src -lasound -lgsmme -lspandsp
-+LOCAL_OBJS=gsmopen_protocol.o
-+
-+include $(BASE)/build/modmake.rules
-+
-+TIFF_DIR=$(switch_srcdir)/libs/tiff-3.8.2
-+TIFF_BUILDDIR=$(switch_builddir)/libs/tiff-3.8.2
-+TIFF_LA=$(TIFF_BUILDDIR)/libtiff/libtiff.la
-+
-+SPANDSP_DIR=$(switch_srcdir)/libs/spandsp
-+SPANDSP_BUILDDIR=$(switch_builddir)/libs/spandsp
-+SPANDSP_LA=$(SPANDSP_BUILDDIR)/src/libspandsp.la
diff --git a/net/freeswitch/patches/008-src-mod-event_handlers-mod_snmp-Makefile.patch b/net/freeswitch/patches/008-src-mod-event_handlers-mod_snmp-Makefile.patch
deleted file mode 100644 (file)
index c85f62c..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/src/mod/event_handlers/mod_snmp/Makefile
-+++ b/src/mod/event_handlers/mod_snmp/Makefile
-@@ -1,7 +1,10 @@
--include ../../../../build/modmake.rules
-+BASE=../../../..
-+
-+include $(BASE)/build/modmake.rules
-+include $(BASE)/build/openwrt_rules.mk
-+
-+LOCAL_CFLAGS=$(shell $(STAGING_DIR)/host/bin/net-snmp-config --cflags --agent-libs) -DNETSNMP_NO_INLINE
--LOCAL_CFLAGS=`net-snmp-config --cflags`
--LOCAL_LDFLAGS=`net-snmp-config --agent-libs`
- LOCAL_OBJS=subagent.o
- local_depend: $(LOCAL_OBJS)
diff --git a/net/freeswitch/patches/009-src-mod-codecs-mod_silk-Makefile.patch b/net/freeswitch/patches/009-src-mod-codecs-mod_silk-Makefile.patch
deleted file mode 100644 (file)
index 53c9705..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/src/mod/codecs/mod_silk/Makefile
-+++ b/src/mod/codecs/mod_silk/Makefile
-@@ -1,4 +1,5 @@
- BASE=../../../..
-+include $(BASE)/build/openwrt_rules.mk
- SILK_DIR=$(switch_srcdir)/libs/silk
- SILK_BUILDDIR=$(switch_builddir)/libs/silk
- LOCAL_CFLAGS=-I$(SILK_DIR)/src  -I$(SILK_DIR)/interface
-@@ -7,5 +8,5 @@ LOCAL_LIBADD=$(SILK_LA)
- include $(BASE)/build/modmake.rules
- $(SILK_LA): $(SILK_DIR)/.update       
--      cd $(SILK_BUILDDIR) && ./configure --disable-shared && make clean && $(MAKE)
-+      cd $(SILK_BUILDDIR) && ./configure --host=$(GNU_TARGET_NAME) --disable-shared && make clean && $(MAKE)
-       $(TOUCH_TARGET)
diff --git a/net/freeswitch/patches/010-ppc_asm.patch b/net/freeswitch/patches/010-ppc_asm.patch
deleted file mode 100644 (file)
index 05db2d1..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: freeswitch-1.0.7/libs/spandsp/src/spandsp/fast_convert.h
-===================================================================
---- freeswitch-1.0.7.orig/libs/spandsp/src/spandsp/fast_convert.h      2012-08-14 19:52:20.000000000 +0200
-+++ freeswitch-1.0.7/libs/spandsp/src/spandsp/fast_convert.h   2012-08-14 19:53:01.000000000 +0200
-@@ -195,7 +195,7 @@
-     {
-         return (long int) (x);
-     }
--#elif defined(__ppc__)  ||   defined(__powerpc__)
-+#elif 0 /* defined(__ppc__)  ||   defined(__powerpc__) */
-     static __inline__ long int lfastrint(register double x)
-     {
-         int res[2];
diff --git a/net/freeswitch/patches/100-libs-esl-Makefile.patch b/net/freeswitch/patches/100-libs-esl-Makefile.patch
new file mode 100644 (file)
index 0000000..c0034ec
--- /dev/null
@@ -0,0 +1,22 @@
+--- a/libs/esl/Makefile
++++ b/libs/esl/Makefile
+@@ -7,7 +7,7 @@ PICKY=-O2
+ CFLAGS=$(BASE_FLAGS) $(PICKY)
+ CXXFLAGS=$(BASE_FLAGS)
+ MYLIB=libesl.a
+-LIBS=-lncurses -lesl -lpthread -lm
++LIBS=-L$(STAGING_DIR)/usr/lib -lncurses -lesl -lpthread -lm
+ LDFLAGS=-L.
+ OBJS=src/esl.o src/esl_event.o src/esl_threadmutex.o src/esl_config.o src/esl_json.o src/esl_buffer.o
+ SRC=src/esl.c src/esl_json.c src/esl_event.c src/esl_threadmutex.c src/esl_config.c src/esl_oop.cpp src/esl_json.c src/esl_buffer.c
+@@ -19,8 +19,8 @@ OBJS += src/esl_oop.o
+ all: $(MYLIB) fs_cli testclient testserver ivrd
+ $(MYLIB): $(OBJS) $(HEADERS) $(SRC)
+-      ar rcs $(MYLIB) $(OBJS)
+-      ranlib $(MYLIB)
++      $(AR) rcs $(MYLIB) $(OBJS)
++      $(RANLIB) $(MYLIB)
+ testserver: $(MYLIB) testserver.c
+       $(CC) $(CC_CFLAGS) $(CFLAGS) testserver.c -o testserver $(LDFLAGS) $(LIBS)
diff --git a/net/freeswitch/patches/101-libs-spandsp-src-spandsp-fast_convert_h.patch b/net/freeswitch/patches/101-libs-spandsp-src-spandsp-fast_convert_h.patch
new file mode 100644 (file)
index 0000000..e2fb3da
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/libs/spandsp/src/spandsp/fast_convert.h
++++ b/libs/spandsp/src/spandsp/fast_convert.h
+@@ -195,7 +195,7 @@ extern "C"
+     {
+         return (long int) (x);
+     }
+-#elif defined(__ppc__)  ||   defined(__powerpc__)
++#elif 0 /* defined(__ppc__)  ||   defined(__powerpc__) */
+     static __inline__ long int lfastrint(register double x)
+     {
+         int res[2];
diff --git a/net/freeswitch/patches/103-libs-spandsp-src-t4_rx_c.patch b/net/freeswitch/patches/103-libs-spandsp-src-t4_rx_c.patch
new file mode 100644 (file)
index 0000000..b7057ca
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/libs/spandsp/src/t4_rx.c
++++ b/libs/spandsp/src/t4_rx.c
+@@ -45,7 +45,7 @@
+ #include <math.h>
+ #endif
+ #include "floating_fudge.h"
+-#include <tiffio.h>
++#include <tiffiop.h>
+ #include "spandsp/telephony.h"
+ #include "spandsp/logging.h"
diff --git a/net/freeswitch/patches/104-libs-spandsp-src-t4_tx_c.patch b/net/freeswitch/patches/104-libs-spandsp-src-t4_tx_c.patch
new file mode 100644 (file)
index 0000000..31264ae
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/libs/spandsp/src/t4_tx.c
++++ b/libs/spandsp/src/t4_tx.c
+@@ -45,7 +45,7 @@
+ #include <math.h>
+ #endif
+ #include "floating_fudge.h"
+-#include <tiffio.h>
++#include <tiffiop.h>
+ #include "spandsp/telephony.h"
+ #include "spandsp/logging.h"
diff --git a/net/freeswitch/patches/105-libs-xmlrpc-c-config_mk_in.patch b/net/freeswitch/patches/105-libs-xmlrpc-c-config_mk_in.patch
new file mode 100644 (file)
index 0000000..79cb33e
--- /dev/null
@@ -0,0 +1,13 @@
+--- a/libs/xmlrpc-c/config.mk.in
++++ b/libs/xmlrpc-c/config.mk.in
+@@ -335,8 +335,8 @@ endif
+ # The cross compiling user can update config.mk or override
+ # BUILDTOOL_CC on a make command.
+-BUILDTOOL_CC = $(CC)
+-BUILDTOOL_CCLD = $(CCLD)
++BUILDTOOL_CC = $(HOSTCC)
++BUILDTOOL_CCLD = $(HOSTCC)
+ # Here are the commands 'make install' uses to install various kinds of files:
diff --git a/net/freeswitch/patches/106-libs-xmlrpc-c-lib-expat-gennmtab-Makefile.patch b/net/freeswitch/patches/106-libs-xmlrpc-c-lib-expat-gennmtab-Makefile.patch
new file mode 100644 (file)
index 0000000..d50d200
--- /dev/null
@@ -0,0 +1,16 @@
+--- a/libs/xmlrpc-c/lib/expat/gennmtab/Makefile
++++ b/libs/xmlrpc-c/lib/expat/gennmtab/Makefile
+@@ -1,3 +1,5 @@
++TOPDIR=$(shell (cd $(SRCDIR)/../../../../..; pwd))
++
+ ifeq ($(SRCDIR),)
+   updir = $(shell echo $(dir $(1)) | sed 's/.$$//')
+   EXPATDIR := $(call updir,$(CURDIR))
+@@ -7,6 +9,7 @@ ifeq ($(SRCDIR),)
+ endif
+ SUBDIR := lib/expat/gennmtab
++include $(TOPDIR)/rules.mk
+ include $(BLDDIR)/config.mk
+ LDFLAGS = $(LADD)
diff --git a/net/freeswitch/patches/200-src-include-timerfd_wrap_h.patch b/net/freeswitch/patches/200-src-include-timerfd_wrap_h.patch
new file mode 100644 (file)
index 0000000..dbf995e
--- /dev/null
@@ -0,0 +1,27 @@
+--- a/src/include/timerfd_wrap.h
++++ b/src/include/timerfd_wrap.h
+@@ -55,20 +55,12 @@ SWITCH_BEGIN_EXTERN_C
+ #ifndef __NR_timerfd
+-#if defined(__x86_64__)
+-#define __NR_timerfd_create 283
+-#define __NR_timerfd_settime 286
+-#define __NR_timerfd_gettime 287
+-#elif defined(__i386__)
+-#define __NR_timerfd_create 322
+-#define __NR_timerfd_settime 325
+-#define __NR_timerfd_gettime 326
+-#else
+-#error invalid system
+-#endif
++#include <linux/unistd.h>
+ #endif
+-#define TFD_TIMER_ABSTIME (1 << 0)
++#ifndef TFD_TIMER_ABSTIME
++#include <sys/timerfd.h>
++#endif
+ int timerfd_create(int clockid, int flags) 
+ {
diff --git a/net/freeswitch/patches/201-src-mod-applications-mod_mp4-mp4_helper_hpp.patch b/net/freeswitch/patches/201-src-mod-applications-mod_mp4-mp4_helper_hpp.patch
new file mode 100644 (file)
index 0000000..ac81dd0
--- /dev/null
@@ -0,0 +1,13 @@
+--- a/src/mod/applications/mod_mp4/mp4_helper.hpp
++++ b/src/mod/applications/mod_mp4/mp4_helper.hpp
+@@ -22,8 +22,9 @@ the Initial Developer. All Rights Reserv
+ #ifndef MP4_HELPER_HPP_
+ #define MP4_HELPER_HPP_
++#include <string.h>
++#include <sys/types.h>
+ #include <mp4.h>
+-#include <string>
+ #include <exception>
+ #include <string>
diff --git a/net/freeswitch/patches/202-src-mod-codecs-mod_opus-Makefile.patch b/net/freeswitch/patches/202-src-mod-codecs-mod_opus-Makefile.patch
new file mode 100644 (file)
index 0000000..cdf710a
--- /dev/null
@@ -0,0 +1,17 @@
+--- a/src/mod/codecs/mod_opus/Makefile
++++ b/src/mod/codecs/mod_opus/Makefile
+@@ -12,12 +12,13 @@ OPUS_LA=$(OPUS_BUILDDIR)/.libs/libopus.l
+ LOCAL_LIBADD=$(OPUS_LA)
+ include $(BASE)/build/modmake.rules
++include $(BASE)/build/openwrt_rules.mk
+ $(OPUS_DIR):
+       $(GETLIB) $(OPUS).tar.gz
+ $(OPUS_DIR)/Makefile: $(OPUS_DIR)
+-      cd $(OPUS_BUILDDIR) && $(DEFAULT_VARS) $(OPUS_DIR)/configure --disable-shared --with-pic --srcdir=$(OPUS_DIR)
++      cd $(OPUS_BUILDDIR) && $(DEFAULT_VARS) $(OPUS_DIR)/configure --host=$(GNU_TARGET_NAME) --disable-shared --with-pic --srcdir=$(OPUS_DIR)
+       $(TOUCH_TARGET)
+ $(OPUS_LA): $(OPUS_DIR)/Makefile
diff --git a/net/freeswitch/patches/203-src-mod-codecs-mod_silk-Makefile.patch b/net/freeswitch/patches/203-src-mod-codecs-mod_silk-Makefile.patch
new file mode 100644 (file)
index 0000000..1d4341e
--- /dev/null
@@ -0,0 +1,15 @@
+--- a/src/mod/codecs/mod_silk/Makefile
++++ b/src/mod/codecs/mod_silk/Makefile
+@@ -1,4 +1,5 @@
+ BASE=../../../..
++include $(BASE)/build/openwrt_rules.mk
+ SILK_DIR=$(switch_srcdir)/libs/silk
+ SILK_BUILDDIR=$(switch_builddir)/libs/silk
+ LOCAL_CFLAGS=-I$(SILK_DIR)/src  -I$(SILK_DIR)/interface
+@@ -8,5 +9,5 @@ LOCAL_OBJS=$(BASE)/libs/stfu/stfu.o
+ include $(BASE)/build/modmake.rules
+ $(SILK_LA): $(SILK_DIR)/.update       
+-      cd $(SILK_BUILDDIR) && ./configure --disable-shared && make clean && $(MAKE)
++      cd $(SILK_BUILDDIR) && ./configure --host=$(GNU_TARGET_NAME) --disable-shared && make clean && $(MAKE)
+       $(TOUCH_TARGET)
diff --git a/net/freeswitch/patches/204-src-mod-directories-mod_ldap-Makefile.patch b/net/freeswitch/patches/204-src-mod-directories-mod_ldap-Makefile.patch
new file mode 100644 (file)
index 0000000..92741d1
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/src/mod/directories/mod_ldap/Makefile
++++ b/src/mod/directories/mod_ldap/Makefile
+@@ -21,7 +21,7 @@ $(LDAP_DIR):
+ $(LDAP_BUILDDIR)/Makefile: $(LDAP_DIR)
+       mkdir -p $(LDAP_BUILDDIR)
+-      cd $(LDAP_BUILDDIR) && $(DEFAULT_VARS) $(LDAP_DIR)/configure $(DEFAULT_ARGS) --srcdir=$(LDAP_DIR)
++      cd $(LDAP_BUILDDIR) && $(DEFAULT_VARS) $(LDAP_DIR)/configure $(DEFAULT_ARGS) --srcdir=$(LDAP_DIR) --with-yielding_select=yes
+       $(TOUCH_TARGET)
+ $(LDAPLA) $(LIBLBERLA): $(LDAP_BUILDDIR)/Makefile
diff --git a/net/freeswitch/patches/205-src-mod-endpoints-mod_gsmopen-Makefile.patch b/net/freeswitch/patches/205-src-mod-endpoints-mod_gsmopen-Makefile.patch
new file mode 100644 (file)
index 0000000..3b24669
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/src/mod/endpoints/mod_gsmopen/Makefile
++++ b/src/mod/endpoints/mod_gsmopen/Makefile
+@@ -1,5 +1,15 @@
++BASE=../../../..
+ MODNAME=mod_gsmopen
+-LOCAL_CFLAGS += -I../../../../libs/spandsp/src -I../../../..//libs/tiff-4.0.2/libtiff -DGSMOPEN_C_VER=\"`git log -1 --format="%h" gsmopen_protocol.cpp`\" -DMODGSMOPEN_C_VER=\"`git log -1 --format="%h" mod_gsmopen.cpp`\"
+-LOCAL_LDFLAGS=-L../../../../libs/spandsp/src -lspandsp -lctb-0.16 -lgsmme
++SVNDEF := -D'GSMOPEN_SVN_VERSION="$(shell svnversion -n .)"'
++
++TIFF_DIR="$(shell ls -d $(switch_srcdir)/libs/tiff*)"
++TIFF_BUILDDIR=$(TIFF_DIR)
++TIFF_LA=$(TIFF_BUILDDIR)/libtiff/libtiff.la
++
++SPANDSP_DIR=$(switch_srcdir)/libs/spandsp
++SPANDSP_BUILDDIR=$(switch_builddir)/libs/spandsp
++SPANDSP_LA=$(SPANDSP_BUILDDIR)/src/libspandsp.la
++LOCAL_CFLAGS += $(SVNDEF) -I$(BASE)/libs/spandsp/src -I$(TIFF_DIR)/libtiff -I$(BASE)/src/mod/endpoints/mod_gsmopen/libctb-0.16/include -fpermissive
++LOCAL_LDFLAGS=-L$(BASE)/libs/spandsp/src -lspandsp -L$(BASE)/src/mod/endpoints/mod_gsmopen/libctb-0.16/lib -lctb-0.16
+ LOCAL_OBJS=gsmopen_protocol.o
+ include ../../../../build/modmake.rules
diff --git a/net/freeswitch/patches/206-src-mod-event_handlers-mod_snmp-Makefile.patch b/net/freeswitch/patches/206-src-mod-event_handlers-mod_snmp-Makefile.patch
new file mode 100644 (file)
index 0000000..c85f62c
--- /dev/null
@@ -0,0 +1,16 @@
+--- a/src/mod/event_handlers/mod_snmp/Makefile
++++ b/src/mod/event_handlers/mod_snmp/Makefile
+@@ -1,7 +1,10 @@
+-include ../../../../build/modmake.rules
++BASE=../../../..
++
++include $(BASE)/build/modmake.rules
++include $(BASE)/build/openwrt_rules.mk
++
++LOCAL_CFLAGS=$(shell $(STAGING_DIR)/host/bin/net-snmp-config --cflags --agent-libs) -DNETSNMP_NO_INLINE
+-LOCAL_CFLAGS=`net-snmp-config --cflags`
+-LOCAL_LDFLAGS=`net-snmp-config --agent-libs`
+ LOCAL_OBJS=subagent.o
+ local_depend: $(LOCAL_OBJS)
diff --git a/net/freeswitch/patches/207-src-mod-xml_int-mod_xml_ldap-Makefile.patch b/net/freeswitch/patches/207-src-mod-xml_int-mod_xml_ldap-Makefile.patch
new file mode 100644 (file)
index 0000000..0734887
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/src/mod/xml_int/mod_xml_ldap/Makefile
++++ b/src/mod/xml_int/mod_xml_ldap/Makefile
+@@ -14,7 +14,7 @@ LOCAL_LIBADD=$(LDAPLA) $(LIBLBERLA) $(LI
+ include $(BASE)/build/modmake.rules
+-DEFAULT_ARGS+= --disable-slapd --disable-slurpd --disable-relay --disable-bdb --disable-hdb
++DEFAULT_ARGS+= --disable-slapd --disable-slurpd --disable-relay --disable-bdb --disable-hdb --with-yielding_select=yes
+ $(LDAP_DIR):
+       $(GETLIB) $(LDAP).tar.gz
diff --git a/net/freeswitch/patches/208-src-mod-xml_int-mod_xml_rpc-Makefile.patch b/net/freeswitch/patches/208-src-mod-xml_int-mod_xml_rpc-Makefile.patch
new file mode 100644 (file)
index 0000000..7691d3e
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/src/mod/xml_int/mod_xml_rpc/Makefile
++++ b/src/mod/xml_int/mod_xml_rpc/Makefile
+@@ -14,7 +14,6 @@ $(XMLRPC_DIR)/lib/abyss/src/date.o\
+ $(XMLRPC_DIR)/src/double.o\
+ $(XMLRPC_DIR)/lib/libutil/error.o\
+ $(XMLRPC_DIR)/lib/abyss/src/file.o\
+-$(XMLRPC_DIR)/lib/expat/gennmtab/gennmtab.o\
+ $(XMLRPC_DIR)/lib/util/getoptx.o\
+ $(XMLRPC_DIR)/lib/abyss/src/handler.o\
+ $(XMLRPC_DIR)/lib/abyss/src/http.o\