VYPR
High severity7.5NVD Advisory· Published Jun 9, 2026· Updated Jun 9, 2026

CVE-2026-49475

CVE-2026-49475

Description

FreeSWITCH versions prior to 1.11.0 are vulnerable to an out-of-bounds memory access in STUN packet parsing, potentially crashing the process.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

FreeSWITCH versions prior to 1.11.0 are vulnerable to an out-of-bounds memory access in STUN packet parsing, potentially crashing the process.

Vulnerability

Versions of FreeSWITCH prior to 1.11.0 contain a vulnerability in the STUN packet parsing logic. A crafted STUN packet with a declared attribute length shorter than the structure the parser expects can lead to reading and writing past the end of the attribute's buffer, resulting in an out-of-bounds memory access on the per-leg media buffer [2].

Exploitation

An attacker needs network reach to the dynamically allocated UDP media port of an active ICE-enabled call leg. Since STUN parsing occurs before the message integrity check, the attacker does not require prior interaction or authentication. A single UDP datagram sent to the correct port, discovered via a UDP scan against the configured RTP port range, is sufficient to trigger the vulnerability [2].

Impact

Successful exploitation can lead to a process crash, terminating the FreeSWITCH instance and dropping all concurrent sessions. While a write primitive exists, it is constrained by byteswap operations, and remote code execution has not been demonstrated [2]. This affects any call leg that negotiates ICE, including WebRTC profiles and Sofia profiles where peers offer ICE.

Mitigation

This vulnerability has been patched in FreeSWITCH version 1.11.0, released on 2026-06-09 [1]. Users are strongly encouraged to upgrade to this version. No workarounds are disclosed in the available references [2].

AI Insight generated on Jun 9, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.

Affected products

1

Patches

1
79e3f643ae0b

Merge branch 'master' into v1.11

https://github.com/signalwire/freeswitchAndrey VolkMay 7, 2026Fixed in 1.11.0via release-tag
300 files changed · +4687 45157
  • acinclude.m4+0 1 modified
    @@ -13,4 +13,3 @@ m4_include([build/config/sac-pkg-config.m4])
     m4_include([build/config/sac-openssl.m4])
     m4_include([build/config/sched_setaffinity.m4])
     m4_include([libs/apr/build/apr_common.m4])
    -m4_include([libs/iksemel/build/libgnutls.m4])
    
  • bootstrap.sh+1 1 modified
    @@ -10,7 +10,7 @@ BGJOB=false
     VERBOSE=false
     BASEDIR=`pwd`;
     LIBDIR=${BASEDIR}/libs;
    -SUBDIRS="apr iksemel srtp fs";
    +SUBDIRS="apr srtp fs";
     
     while getopts 'jhd:v' o; do 
       case "$o" in
    
  • build/Makefile.centos5+6 6 modified
    @@ -13,7 +13,7 @@ DOWNLOAD=http://files.freeswitch.org/downloads/libs
     JPEG=v8d
     OPENSSL=1.0.1l
     SQLITE=autoconf-3080403
    -PCRE=8.35
    +PCRE2=10.42
     CURL=7.40.0
     SPEEX=1.2rc1
     LIBEDIT=20140618-3.1
    @@ -45,7 +45,7 @@ has-git:
     	@git --version || (echo "please install git by running 'make install-git'" && false)
     
     clean:
    -	@rm -rf openssl* ldns* jpeg* pcre* perl* pkg-config* speex* sqlite* libedit* curl* *~
    +	@rm -rf openssl* ldns* jpeg* pcre2* perl* pkg-config* speex* sqlite* libedit* curl* *~
     	(cd freeswitch.git && git clean -fdx && git reset --hard HEAD && git pull)
     
     libjpeg: jpeg-8d/.done
    @@ -66,9 +66,9 @@ sqlite-$(SQLITE):
     	(test -d $@) || (wget -4 -O $@.tar.gz $(DOWNLOAD)/$@.tar.gz && tar zxfv $@.tar.gz)
     	(cd $@ && ./configure --prefix=$(PREFIX) && make && sudo make install && touch .done_sqlite && touch .done)
     
    -pcre: pcre-$(PCRE)/.done
    -pcre-$(PCRE)/.done: pcre-$(PCRE)
    -pcre-$(PCRE):
    +pcre2: pcre2-$(PCRE2)/.done
    +pcre2-$(PCRE2)/.done: pcre2-$(PCRE2)
    +pcre2-$(PCRE2):
     	(test -d $@) || (wget -4 -O $@.tar.gz $(DOWNLOAD)/$@.tar.gz && tar zxfv $@.tar.gz)
     	(cd $@ && ./configure --prefix=$(PREFIX) && make && sudo make install && touch .done)
     
    @@ -96,4 +96,4 @@ ldns-$(LDNS):
     	(test -d $@) || (wget -4 -O $@.tar.gz $(DOWNLOAD)/$@.tar.gz && tar zxfv $@.tar.gz)
     	(cd $@ && ./configure --with-ssl=$(PREFIX) --prefix=$(PREFIX) && make && sudo make install && touch .done)
     
    -deps: libjpeg openssl sqlite pcre curl speex libedit ldns
    +deps: libjpeg openssl sqlite pcre2 curl speex libedit ldns
    
  • build/Makefile.centos6+2 2 modified
    @@ -6,8 +6,8 @@
     # in that same directory.
     #
     #
    -RPMS=git gcc-c++ autoconf automake libtool wget python ncurses-devel zlib-devel libjpeg-devel openssl-devel e2fsprogs-devel sqlite-devel libcurl-devel pcre-devel speex-devel ldns-devel libedit-devel
    -DEBS=git build-essential automake autoconf 'libtool-bin|libtool' wget python uuid-dev zlib1g-dev 'libjpeg8-dev|libjpeg62-turbo-dev' libncurses5-dev libssl-dev libpcre3-dev libcurl4-openssl-dev libldns-dev libedit-dev libspeexdsp-dev  libspeexdsp-dev libsqlite3-dev perl libgdbm-dev libdb-dev bison libvlc-dev pkg-config
    +RPMS=git gcc-c++ autoconf automake libtool wget ncurses-devel zlib-devel libjpeg-devel openssl-devel e2fsprogs-devel sqlite-devel libcurl-devel pcre2-devel speex-devel ldns-devel libedit-devel
    +DEBS=git build-essential automake autoconf 'libtool-bin|libtool' wget uuid-dev zlib1g-dev 'libjpeg8-dev|libjpeg62-turbo-dev' libncurses5-dev libssl-dev libpcre2-dev libcurl4-openssl-dev libldns-dev libedit-dev libspeexdsp-dev  libspeexdsp-dev libsqlite3-dev perl libgdbm-dev libdb-dev bison libvlc-dev pkg-config
     
     freeswitch: deps has-git freeswitch.git/Makefile
     	cd freeswitch.git && make
    
  • build/Makefile.openbsd+1 1 modified
    @@ -7,7 +7,7 @@
     #
     #
     
    -PKG=rsync-3.1.0 git automake-1.14.1 autoconf-2.69p1 libtool gmake bzip2 jpeg wget pcre speex libldns
    +PKG=rsync-3.1.0 git automake-1.14.1 autoconf-2.69p1 libtool gmake bzip2 jpeg wget pcre2 speex libldns
     PREFIX=/usr/local/freeswitch
     DOWNLOAD=http://files.freeswitch.org/downloads/libs
     OPENSSL=1.0.1j
    
  • build/Makefile.solaris11+6 6 modified
    @@ -12,7 +12,7 @@ DOWNLOAD=http://files.freeswitch.org/downloads/libs
     JP=v8d
     SSL=1.0.1j
     SQLITE=autoconf-3080403
    -PCRE=8.35
    +PCRE2=10.42
     CURL=7.35.0
     SPEEX=1.2rc1
     LIBEDIT=20140618-3.1
    @@ -43,7 +43,7 @@ has-git:
     	@git --version || (echo "please install git by running 'gmake install-git'" && false)
     
     clean:
    -	@rm -rf openssl* ldns* jpeg* pcre* perl* pkg-config* speex* sqlite* libedit* curl* *~
    +	@rm -rf openssl* ldns* jpeg* pcre2* perl* pkg-config* speex* sqlite* libedit* curl* *~
     	(cd freeswitch.git && git clean -fdx && git reset --hard HEAD && git pull)
     
     libjpeg: jpeg-8d/.done
    @@ -64,9 +64,9 @@ sqlite-$(SQLITE):
     	(test -d $@) || (wget -4 -O $@.tar.gz $(DOWNLOAD)/$@.tar.gz && tar zxfv $@.tar.gz)
     	(cd $@ && CFLAGS=-m64 LDFLAGS=-m64 ./configure --prefix=$(PREFIX) && gmake && sudo gmake install && touch .done)
     
    -pcre: pcre-$(PCRE)/.done
    -pcre-$(PCRE)/.done: pcre-$(PCRE)
    -pcre-$(PCRE):
    +pcre2: pcre2-$(PCRE2)/.done
    +pcre2-$(PCRE2)/.done: pcre2-$(PCRE2)
    +pcre2-$(PCRE2):
     	(test -d $@) || (wget -4 -O $@.tar.gz $(DOWNLOAD)/$@.tar.gz && tar zxfv $@.tar.gz)
     	(cd $@ && CXXFLAGS=-m64 CFLAGS=-m64 LDFLAGS=-m64 ./configure --prefix=$(PREFIX) && gmake && sudo gmake install && touch .done)
     
    @@ -107,4 +107,4 @@ perl-$(PERL):
     	(test -d $@) || (wget -4 -O $@.tar.gz $(DOWNLOAD)/$@.tar.gz && tar zxfv $@.tar.gz)
     	(cd $@ && CFLAGS=-m64 LDFLAGS=-m64 ./configure.gnu -Dcc=gcc --prefix=$(PREFIX) && gmake && sudo gmake install && touch .done)
     
    -deps: has-git libjpeg openssl sqlite pcre curl speex libedit ldns pkg-config perl
    +deps: has-git libjpeg openssl sqlite pcre2 curl speex libedit ldns pkg-config perl
    
  • build/modmake.rulesam+1 2 modified
    @@ -17,5 +17,4 @@ extraclean-modules: extraclean
     
     print_tests:
     	@set +e; \
    -	test -z "$(TESTS)" || for i in $(TESTS); do echo $(subdir)/$$i; done;
    -	
    \ No newline at end of file
    +	test -z "$(TESTS)" || for i in $(TESTS); do echo $(subdir)/$$i; done; echo;
    
  • build/modules.conf.in+0 33 modified
    @@ -1,4 +1,3 @@
    -#applications/mod_abstraction
     applications/mod_av
     #applications/mod_avmd
     #applications/mod_bert
    @@ -26,80 +25,57 @@ applications/mod_hash
     #applications/mod_hiredis
     applications/mod_httapi
     #applications/mod_http_cache
    -#applications/mod_ladspa
     #applications/mod_lcr
     #applications/mod_memcache
     #applications/mod_mongo
    -#applications/mod_mp4
    -#applications/mod_mp4v2
     #applications/mod_nibblebill
    -#applications/mod_oreka
     #applications/mod_osp
     #applications/mod_prefix
    -#applications/mod_rad_auth
     #applications/mod_redis
    -#applications/mod_rss
     applications/mod_signalwire
     applications/mod_sms
    -#applications/mod_sms_flowroute
     #applications/mod_snapshot
    -#applications/mod_snom
    -#applications/mod_sonar
    -#applications/mod_soundtouch
     applications/mod_spandsp
     #applications/mod_spy
    -#applications/mod_stress
     applications/mod_test
     #applications/mod_translate
     applications/mod_valet_parking
     #applications/mod_video_filter
     #applications/mod_vmd
     applications/mod_voicemail
     #applications/mod_voicemail_ivr
    -#asr_tts/mod_cepstral
     #asr_tts/mod_flite
     #asr_tts/mod_pocketsphinx
     #asr_tts/mod_tts_commandline
     codecs/mod_amr
     #codecs/mod_amrwb
     codecs/mod_b64
     #codecs/mod_bv
    -#codecs/mod_clearmode
     #codecs/mod_codec2
     #codecs/mod_com_g729
    -#codecs/mod_dahdi_codec
     codecs/mod_g723_1
     codecs/mod_g729
    -codecs/mod_h26x
     #codecs/mod_ilbc
    -#codecs/mod_isac
    -#codecs/mod_mp4v
     codecs/mod_opus
    -#codecs/mod_sangoma_codec
     #codecs/mod_silk
     #codecs/mod_siren
    -#codecs/mod_theora
     #databases/mod_mariadb
     databases/mod_pgsql
     dialplans/mod_dialplan_asterisk
     #dialplans/mod_dialplan_directory
     dialplans/mod_dialplan_xml
     #directories/mod_ldap
     #endpoints/mod_alsa
    -#endpoints/mod_gsmopen
     #endpoints/mod_h323
    -#endpoints/mod_khomp
     endpoints/mod_loopback
     #endpoints/mod_opal
    -#endpoints/mod_portaudio
     endpoints/mod_rtc
     #endpoints/mod_rtmp
     endpoints/mod_skinny
     endpoints/mod_sofia
     endpoints/mod_verto
     #event_handlers/mod_amqp
     event_handlers/mod_cdr_csv
    -#event_handlers/mod_cdr_mongodb
     #event_handlers/mod_cdr_pg_csv
     event_handlers/mod_cdr_sqlite
     #event_handlers/mod_erlang_event
    @@ -108,21 +84,16 @@ event_handlers/mod_event_socket
     #event_handlers/mod_fail2ban
     #event_handlers/mod_format_cdr
     #event_handlers/mod_json_cdr
    -#event_handlers/mod_radius_cdr
     #event_handlers/mod_odbc_cdr
    -#event_handlers/mod_rayo
     #event_handlers/mod_smpp
     #event_handlers/mod_snmp
    -#event_handlers/mod_event_zmq
     #formats/mod_imagick
     formats/mod_local_stream
     formats/mod_native_file
     formats/mod_png
    -#formats/mod_portaudio_stream
     #formats/mod_shell_stream
     #formats/mod_shout
     formats/mod_sndfile
    -#formats/mod_ssml
     formats/mod_tone_stream
     #formats/mod_vlc
     #formats/mod_opusfile
    @@ -131,15 +102,12 @@ formats/mod_tone_stream
     languages/mod_lua
     #languages/mod_managed
     #languages/mod_perl
    -#languages/mod_python
     #languages/mod_python3
     #languages/mod_v8
    -#languages/mod_yaml
     loggers/mod_console
     #loggers/mod_graylog2
     loggers/mod_logfile
     loggers/mod_syslog
    -#loggers/mod_raven
     #say/mod_say_de
     say/mod_say_en
     #say/mod_say_es
    @@ -163,7 +131,6 @@ say/mod_say_en
     xml_int/mod_xml_cdr
     #xml_int/mod_xml_curl
     #xml_int/mod_xml_ldap
    -#xml_int/mod_xml_radius
     xml_int/mod_xml_rpc
     xml_int/mod_xml_scgi
     
    
  • build/modules.conf.most+0 28 modified
    @@ -1,4 +1,3 @@
    -applications/mod_abstraction
     applications/mod_av
     applications/mod_avmd
     applications/mod_bert
    @@ -26,35 +25,25 @@ applications/mod_hash
     applications/mod_hiredis
     applications/mod_httapi
     applications/mod_http_cache
    -#applications/mod_ladspa
     applications/mod_lcr
     applications/mod_memcache
     applications/mod_mongo
    -applications/mod_mp4
     applications/mod_nibblebill
    -applications/mod_oreka
     #applications/mod_osp
     applications/mod_prefix
    -#applications/mod_rad_auth
     applications/mod_redis
    -applications/mod_rss
     applications/mod_signalwire
     applications/mod_sms
     applications/mod_snapshot
    -applications/mod_snom
    -applications/mod_sonar
    -applications/mod_soundtouch
     applications/mod_spandsp
     applications/mod_spy
    -applications/mod_stress
     applications/mod_test
     applications/mod_translate
     applications/mod_valet_parking
     applications/mod_video_filter
     applications/mod_vmd
     applications/mod_voicemail
     applications/mod_voicemail_ivr
    -#asr_tts/mod_cepstral
     asr_tts/mod_flite
     asr_tts/mod_pocketsphinx
     asr_tts/mod_tts_commandline
    @@ -64,60 +53,45 @@ codecs/mod_b64
     codecs/mod_bv
     codecs/mod_codec2
     #codecs/mod_com_g729
    -codecs/mod_dahdi_codec
     codecs/mod_g723_1
     codecs/mod_g729
    -codecs/mod_h26x
     codecs/mod_ilbc
    -codecs/mod_isac
    -codecs/mod_mp4v
     codecs/mod_opus
    -codecs/mod_sangoma_codec
     codecs/mod_silk
     codecs/mod_siren
    -codecs/mod_theora
     #databases/mod_mariadb
     databases/mod_pgsql
     dialplans/mod_dialplan_asterisk
     dialplans/mod_dialplan_directory
     dialplans/mod_dialplan_xml
     directories/mod_ldap
     #endpoints/mod_alsa
    -#endpoints/mod_gsmopen
     #endpoints/mod_h323
    -#endpoints/mod_khomp
     endpoints/mod_loopback
     #endpoints/mod_opal
    -endpoints/mod_portaudio
     endpoints/mod_rtc
     endpoints/mod_rtmp
     endpoints/mod_skinny
     endpoints/mod_sofia
     endpoints/mod_verto
     event_handlers/mod_amqp
     event_handlers/mod_cdr_csv
    -event_handlers/mod_cdr_mongodb
     #event_handlers/mod_cdr_pg_csv
     event_handlers/mod_cdr_sqlite
     event_handlers/mod_erlang_event
     event_handlers/mod_event_multicast
     event_handlers/mod_event_socket
     event_handlers/mod_format_cdr
     event_handlers/mod_json_cdr
    -#event_handlers/mod_radius_cdr
     event_handlers/mod_odbc_cdr
    -event_handlers/mod_rayo
     event_handlers/mod_snmp
    -#event_handlers/mod_event_zmq
     formats/mod_imagick
     formats/mod_local_stream
     formats/mod_native_file
     formats/mod_png
    -formats/mod_portaudio_stream
     formats/mod_shell_stream
     formats/mod_shout
     formats/mod_sndfile
    -formats/mod_ssml
     formats/mod_tone_stream
     formats/mod_vlc
     languages/mod_basic
    @@ -127,7 +101,6 @@ languages/mod_managed
     languages/mod_perl
     languages/mod_python3
     #languages/mod_v8
    -languages/mod_yaml
     loggers/mod_console
     loggers/mod_graylog2
     loggers/mod_logfile
    @@ -155,6 +128,5 @@ timers/mod_timerfd
     xml_int/mod_xml_cdr
     xml_int/mod_xml_curl
     xml_int/mod_xml_ldap
    -#xml_int/mod_xml_radius
     xml_int/mod_xml_rpc
     xml_int/mod_xml_scgi
    
  • build/next-release.txt+1 1 modified
    @@ -1 +1 @@
    -1.10.12-release
    +1.11.0-release
    
  • build/swigall.sh+0 5 modified
    @@ -8,11 +8,6 @@ make swigclean
     make mod_perl_wrap.cpp
     cd ../../../..
     
    -cd src/mod/languages/mod_python
    -make swigclean
    -make mod_python_wrap.cpp
    -cd ../../../..
    -
     cd src/mod/languages/mod_python3
     make swigclean
     make mod_python_wrap.cpp
    
  • ci.sh+254 0 added
    @@ -0,0 +1,254 @@
    +#!/usr/bin/env bash
    +
    +### shfmt -w -s -ci -sr -kp -fn ci.sh
    +
    +#------------------------------------------------------------------------------
    +# CI Script
    +# Helper script for running CI jobs
    +#------------------------------------------------------------------------------
    +
    +# Function to display usage information
    +display_usage()
    +{
    +	echo "Usage: $0 -t <type> -a <action> -c <code> -p <path>"
    +	echo "Options:"
    +	echo "  -t  Type (unit-test, scan-build)"
    +	echo "  -a  Action (configure, build, install, validate)"
    +	echo "  -c  Code (sofia-sip, freeswitch)"
    +	echo "  -p  Path to code"
    +	exit 1
    +}
    +
    +# Parse command line arguments
    +while getopts "t:p:a:c:h" opt; do
    +	case $opt in
    +		t) TYPE="$OPTARG" ;;
    +		a) ACTION="$OPTARG" ;;
    +		c) CODE="$OPTARG" ;;
    +		p) PATH_TO_CODE="$OPTARG" ;;
    +		h) display_usage ;;
    +		?) display_usage ;;
    +	esac
    +done
    +
    +# Function to handle sofia-sip configuration
    +configure_sofia_sip()
    +{
    +	./autogen.sh && ./configure.gnu || exit 1
    +}
    +
    +# Function to handle sofia-sip build
    +build_sofia_sip()
    +{
    +	make -j$(nproc) || exit 1
    +}
    +
    +# Function to handle sofia-sip installation
    +install_sofia_sip()
    +{
    +	make install || exit 1
    +}
    +
    +# Function to handle sofia-sip validation
    +validate_sofia_sip()
    +{
    +	exit 0
    +}
    +
    +# Function to handle freeswitch configuration
    +configure_freeswitch()
    +{
    +	local type="$1"
    +
    +	./bootstrap.sh -j || exit 1
    +
    +	case "$type" in
    +		"unit-test")
    +			echo 'codecs/mod_openh264' >> modules.conf
    +			sed -i \
    +				-e '/applications\/mod_http_cache/s/^#//g' \
    +				-e '/formats\/mod_opusfile/s/^#//g' \
    +				-e '/languages\/mod_lua/s/^#//g' \
    +				modules.conf
    +
    +			export ASAN_OPTIONS=log_path=stdout:disable_coredump=0:unmap_shadow_on_exit=1:fast_unwind_on_malloc=0
    +
    +			./configure \
    +				--enable-address-sanitizer \
    +				--enable-fake-dlclose ||
    +				exit 1
    +
    +			;;
    +		"scan-build")
    +			cp build/modules.conf.most modules.conf
    +
    +			# "Enable"/"Uncomment" mods
    +			echo 'codecs/mod_openh264' >> modules.conf
    +			sed -i \
    +				-e '/mod_mariadb/s/^#//g' \
    +				-e '/mod_v8/s/^#//g' \
    +				modules.conf
    +
    +			# "Disable"/"Comment out" mods
    +			sed -i \
    +				-e '/mod_ilbc/s/^/#/g' \
    +				-e '/mod_mongo/s/^/#/g' \
    +				-e '/mod_pocketsphinx/s/^/#/g' \
    +				-e '/mod_siren/s/^/#/g' \
    +				-e '/mod_avmd/s/^/#/g' \
    +				-e '/mod_basic/s/^/#/g' \
    +				-e '/mod_cv/s/^/#/g' \
    +				-e '/mod_erlang_event/s/^/#/g' \
    +				-e '/mod_perl/s/^/#/g' \
    +				-e '/mod_rtmp/s/^/#/g' \
    +				-e '/mod_unimrcp/s/^/#/g' \
    +				-e '/mod_xml_rpc/s/^/#/g' \
    +				modules.conf
    +
    +			./configure || exit 1
    +
    +			;;
    +		*)
    +			exit 1
    +			;;
    +	esac
    +}
    +
    +# Function to handle freeswitch build
    +build_freeswitch()
    +{
    +	local type="$1"
    +
    +	set -o pipefail
    +
    +	case "$type" in
    +		"unit-test")
    +			make --no-keep-going -j$(nproc --all) |& tee ./unit-tests-build-result.txt
    +			build_status=${PIPESTATUS[0]}
    +			if [[ $build_status != "0" ]]; then
    +				exit $build_status
    +			fi
    +
    +			;;
    +		"scan-build")
    +			if ! command -v scan-build-14 > /dev/null 2>&1; then
    +				echo "Error: scan-build-14 command not found. Please ensure clang static analyzer is installed." >&2
    +				exit 1
    +			fi
    +
    +			mkdir -p scan-build
    +
    +			scan-build-14 \
    +				--force-analyze-debug-code \
    +				--status-bugs \
    +				-o ./scan-build/ \
    +				make --no-keep-going -j$(nproc --all) |& tee ./scan-build-result.txt
    +			build_status=${PIPESTATUS[0]}
    +
    +			if ! grep -siq "scan-build: No bugs found" ./scan-build-result.txt; then
    +				echo "scan-build: bugs found!"
    +				exit 1
    +			fi
    +
    +			if [[ $build_status != "0" ]]; then
    +				echo "scan-build: compilation failed!"
    +				exit $build_status
    +			fi
    +
    +			;;
    +		*)
    +			exit 1
    +			;;
    +	esac
    +}
    +
    +# Function to handle freeswitch installation
    +install_freeswitch()
    +{
    +	make install || exit 1
    +}
    +
    +# Function to handle freeswitch validation
    +validate_freeswitch()
    +{
    +	local type="$1"
    +
    +	case "$type" in
    +		"unit-test")
    +			exit 0
    +			;;
    +		"scan-build")
    +			REPORT_PATH=$(find scan-build* -mindepth 1 -type d)
    +			if [ -n "$REPORT_PATH" ]; then
    +				echo "Found analysis report at: $REPORT_PATH"
    +
    +				if command -v html2text > /dev/null 2>&1; then
    +					echo "Report contents:"
    +					html2text "$REPORT_PATH"/*.html || true
    +				fi
    +
    +				echo "Number of issues found:"
    +				grep -c "<!--BUGDESC" "$REPORT_PATH"/*.html || true
    +
    +				exit $([ -d "$REPORT_PATH" ])
    +			else
    +				echo "No analysis report found"
    +				exit 0
    +			fi
    +
    +			;;
    +		*)
    +			exit 1
    +			;;
    +	esac
    +}
    +
    +# Change to the code directory
    +if [ -n "$PATH_TO_CODE" ]; then
    +	cd "$PATH_TO_CODE" || exit 1
    +fi
    +
    +# Execute appropriate flow based on code, type, and action
    +case "$CODE" in
    +	"sofia-sip")
    +		case "$ACTION" in
    +			"configure")
    +				configure_sofia_sip "$TYPE"
    +				;;
    +			"build")
    +				build_sofia_sip "$TYPE"
    +				;;
    +			"install")
    +				install_sofia_sip "$TYPE"
    +				;;
    +			"validate")
    +				validate_sofia_sip "$TYPE"
    +				;;
    +			*)
    +				exit 1
    +				;;
    +		esac
    +		;;
    +	"freeswitch")
    +		case "$ACTION" in
    +			"configure")
    +				configure_freeswitch "$TYPE"
    +				;;
    +			"build")
    +				build_freeswitch "$TYPE"
    +				;;
    +			"install")
    +				install_freeswitch "$TYPE"
    +				;;
    +			"validate")
    +				validate_freeswitch "$TYPE"
    +				;;
    +			*)
    +				exit 1
    +				;;
    +		esac
    +		;;
    +	*)
    +		exit 1
    +		;;
    +esac
    
  • conf/curl/autoload_configs/portaudio.conf.xml+0 33 removed
    @@ -1,33 +0,0 @@
    -<configuration name="portaudio.conf" description="Soundcard Endpoint">
    -  <settings>
    -    <!-- indev, outdev, ringdev: 
    -	 partial case sensitive string match on something in the name 
    -	 or the device number prefixed with # eg "#1" (or blank for default) -->
    -
    -    <!-- device to use for input -->
    -    <param name="indev" value=""/>
    -    <!-- device to use for output -->
    -    <param name="outdev" value=""/>
    -
    -    <!--device to use for inbound ring -->
    -    <!--<param name="ringdev" value=""/>-->
    -    <!--File to play as the ring sound -->
    -    <!--<param name="ring-file" value="/sounds/ring.wav"/>-->
    -    <!--Number of seconds to pause between rings -->
    -    <!--<param name="ring-interval" value="5"/>-->
    -
    -    <!--file to play when calls are on hold-->
    -    <!--<param name="hold-file" value="/sounds/holdmusic.wav"/>-->
    -    <!--Timer to use for hold music (i'd leave this one commented)-->
    -    <!--<param name="timer-name" value="soft"/>-->
    -
    -    <!--Default dialplan and caller-id info -->
    -    <param name="dialplan" value="XML"/>
    -    <param name="cid-name" value="$${outbound_caller_name}"/>
    -    <param name="cid-num" value="$${outbound_caller_id}"/>
    -
    -    <!--audio sample rate and interval -->
    -    <param name="sample-rate" value="8000"/>
    -    <param name="codec-ms" value="20"/>
    -  </settings>
    -</configuration>
    
  • conf/curl/autoload_configs/rss.conf.xml+0 7 removed
    @@ -1,7 +0,0 @@
    -<configuration name="rss.conf" description="RSS Parser">
    -  <feeds>
    -    <!-- Just download the files to wherever and refer to them here -->
    -    <!-- <feed name="Slash Dot">/home/rss/rss.rss</feed> -->
    -    <!-- <feed name="News Forge">/home/rss/newsforge.rss</feed> -->
    -  </feeds>
    -</configuration>
    
  • configure.ac+72 209 modified
    @@ -3,10 +3,10 @@
     
     # Must change all of the below together
     # For a release, set revision for that tagged release as well and uncomment
    -AC_INIT([freeswitch], [1.10.12-release], bugs@freeswitch.org)
    +AC_INIT([freeswitch], [1.11.0-release], bugs@freeswitch.org)
     AC_SUBST(SWITCH_VERSION_MAJOR, [1])
    -AC_SUBST(SWITCH_VERSION_MINOR, [10])
    -AC_SUBST(SWITCH_VERSION_MICRO, [12-release])
    +AC_SUBST(SWITCH_VERSION_MINOR, [11])
    +AC_SUBST(SWITCH_VERSION_MICRO, [0-release])
     AC_SUBST(SWITCH_VERSION_REVISION, [])
     AC_SUBST(SWITCH_VERSION_REVISION_HUMAN, [])
     
    @@ -323,10 +323,6 @@ elif test "x${ax_cv_c_compiler_vendor}" = "xclang" ; then
         esac
     elif test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then
         case "$host" in
    -# older Xcode test for darwin, Xcode 4/5 use clang above
    -        *darwin*)
    -            SOLINK="-dynamic -bundle -force-flat-namespace"
    -        ;;
             *-solaris2*)
                 SOLINK="-shared -Xlinker"
             ;;
    @@ -428,15 +424,6 @@ elif test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then
         fi
         if test "${enable_64}" = "yes"; then
     	case "$host" in
    -             *darwin*)
    -                osxvrm=`sw_vers -productVersion`          # Get version.release.modlevel
    -	        osxrel=`echo $osxvrm | cut -d. -f2`       # Get release only
    -                if test "$osxrel" -ge 4; then             # 10.4 and up are x64
    -		   APR_ADDTO(CFLAGS, -arch x86_64)
    -		   APR_ADDTO(LDFLAGS, -arch x86_64)
    -		   APR_ADDTO(CXXFLAGS, -arch x86_64)
    -                fi
    -		;;
                  *-solaris2*)
     		APR_ADDTO(CFLAGS, -m64)
     		APR_ADDTO(LDFLAGS, -m64)
    @@ -653,8 +640,10 @@ path_push_unique () {
     AC_PATH_PROG([PG_CONFIG], [pg_config], [no])
     AC_PATH_PROG([PKG_CONFIG], [pkg-config], [no])
     
    +# These 2 x86 libraries are not required on macOS 15 Sequoia on x86 as of June 2025. Not needed on aarch64 systems.
    +# They are left here since they are likely required on older macOS systems.
     case $host in
    -     *-darwin*)
    +     x86_64-apple-darwin*)
     	path_push_unique PKG_CONFIG_PATH /usr/local/opt/libpq/lib/pkgconfig
     	path_push_unique PKG_CONFIG_PATH /usr/local/opt/openssl/lib/pkgconfig
          ;;
    @@ -735,31 +724,33 @@ PLATFORM_CORE_LIBS=
     # tweak platform specific flags
     case "$host" in
         *darwin*)
    -        # Common Apple Darwin settings
    +        case "$host" in
    +          aarch64-apple-darwin*)
    +          # Homebrew package required libraries on Apple Silicon
    +            APR_ADDTO(CPPFLAGS, -I/opt/homebrew/include)
    +            APR_ADDTO(LDFLAGS, -L/opt/homebrew/lib)
    +          ;;
    +          *)
    +          # Default package libraries on Apple x86_64
    +          # The following 4 x86_64 libraries are not required on macOS 15 Sequoia as of June 2025.
    +          # They are left here since they are likely required on older macOS systems.
    +            APR_ADDTO(CPPFLAGS, -I/usr/local/include)  # Xcode 6 drops std lib search, add it to clang
    +            APR_ADDTO(LDFLAGS,  -L/usr/local/lib)      # Xcode 6 drops std lib search, add it to clang
    +            APR_ADDTO(CPPFLAGS, -I/usr/local/opt/openssl/include)
    +            APR_ADDTO(LDFLAGS,  -L/usr/local/opt/openssl/lib)
    +          ;;
    +        esac
    +       # Common Apple Clang flags
    +        APR_ADDTO(CFLAGS, -pipe)
    +        APR_ADDTO(LDFLAGS, -pipe)
    +        APR_ADDTO(CXXFLAGS, -pipe)
    +       # Common Apple Darwin settings
             APR_ADDTO(SWITCH_AM_CFLAGS, -DMACOSX)
             APR_REMOVEFROM(SWITCH_AM_CFLAGS, -fPIC)
    -        APR_ADDTO(CPPFLAGS, -I/usr/local/opt/openssl/include)
    -        APR_ADDTO(LDFLAGS, -L/usr/local/opt/openssl/lib)
             if test "x$enable_core_odbc_support" != "xno"; then
     	   APR_ADDTO([PLATFORM_CORE_LDFLAGS], [--framework CoreFoundation])
     	fi
     	APR_ADDTO([PLATFORM_CORE_LIBS], [-ldl])
    -    # Get OSX and clang version
    -        osxvrm=`sw_vers -productVersion`          # Get version.release.modlevel
    -	osxrel=`echo $osxvrm | cut -d. -f2`       # Get release only
    -        clangvers="`clang -v 2>&1  >/dev/null | grep version | sed -e 's/.*version \([[0-9]]*\).*$/\1/'`"
    -        if test "$clangvers" -ge 6; then          # Xcode 6 drops std lib search, add it to clang
    -           APR_ADDTO(LDFLAGS, -L/usr/local/lib)
    -           APR_ADDTO(CPPFLAGS, -I/usr/local/include)
    -        fi
    -        if test "$clangvers" -ge 4; then          # Xcode 4 / 10.7 and up
    -           APR_ADDTO(CFLAGS, -Wno-deprecated-declarations)
    -        fi
    -        if test "$osxrel" -ge 6; then             # 10.6 and up
    -           APR_ADDTO(CFLAGS, -pipe -no-cpp-precomp)
    -           APR_ADDTO(LDFLAGS, -pipe -bind_at_load)
    -           APR_ADDTO(CXXFLAGS, -pipe)
    -        fi
         ;;
         *-solaris2*)
     	if test "${enable_64}" = "yes"; then
    @@ -838,6 +829,8 @@ AM_CONDITIONAL([SYSTEM_APR],[test "${use_system_apr}" = "yes"])
     
     save_LIBS="$LIBS"
     LIBS=
    +
    +AC_CHECK_HEADERS([jpeglib.h])
     AC_CHECK_LIB(jpeg, jpeg_std_error,, AC_MSG_ERROR([no usable libjpeg; please install libjpeg devel package or equivalent]))
     
     AC_CHECK_LIB(jbig, jbg_enc_out, have_libjbig=yes, have_libjbig=no)
    @@ -1079,8 +1072,8 @@ if test "x${ax_cv_c_compiler_vendor}" = "xclang" ; then
     fi
     
     # Tested and fixed lot of modules, but some are untested.  Will be added back when the core team decide it ready
    -# Untested modules : mod_osp mod_soundtouch mod_sangoma_codec mod_opal mod_h323 mod_khomp 
    -#                    mod_cepstral mod_erlang_event mod_snmp mod_perl mod_java mod_managed
    +# Untested modules : mod_osp mod_opal mod_h323
    +#                    mod_erlang_event mod_snmp mod_perl mod_java mod_managed
     #
     #saved_CFLAGS="$CFLAGS"
     #AC_CACHE_CHECK([whether compiler supports -Wunused-but-set-variable], [ac_cv_gcc_unused_but_set_variable], [
    @@ -1257,11 +1250,14 @@ GETSOUNDS="${SHELL} $switch_builddir/build/getsounds.sh"
     AC_SUBST(GETSOUNDS)
     
     case $host in
    +   aarch64-apple-darwin*)
    +        path_push_unique PKG_CONFIG_PATH /opt/homebrew/opt/pkgconf/
    +        path_push_unique PKG_CONFIG_PATH /opt/homebrew/opt/sqlite/lib/pkgconfig/
    +       ;;
        *-darwin*)
             path_push_unique PKG_CONFIG_PATH /usr/local/opt/curl/lib/pkgconfig
             path_push_unique PKG_CONFIG_PATH /usr/local/opt/sqlite/lib/pkgconfig/
             path_push_unique PKG_CONFIG_PATH /usr/local/opt/ldns/lib/pkgconfig/
    -        path_push_unique PKG_CONFIG_PATH /usr/local/opt/portaudio/lib/pkgconfig/
             path_push_unique PKG_CONFIG_PATH /usr/local/opt/ffmpeg/lib/pkgconfig/
            ;;
     esac
    @@ -1323,14 +1319,8 @@ PKG_CHECK_MODULES([TPL], [libtpl >= 1.5],[
     
     PKG_CHECK_MODULES([SQLITE], [sqlite3 >= 3.6.20])
     PKG_CHECK_MODULES([CURL], [libcurl >= 7.19])
    -PKG_CHECK_MODULES([PCRE], [libpcre >= 7.8])
    +PKG_CHECK_MODULES([PCRE2], [libpcre2-8 >=  10.00])
     PKG_CHECK_MODULES([SPEEX], [speex >= 1.2rc1 speexdsp >= 1.2rc1])
    -PKG_CHECK_MODULES([YAML], [yaml-0.1 >= 0.1.4],[
    -  AM_CONDITIONAL([HAVE_YAML],[true])],[
    -  AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_YAML],[false])])
    -PKG_CHECK_MODULES([PORTAUDIO], [portaudio-2.0 >= 19],[
    -  AM_CONDITIONAL([HAVE_PORTAUDIO],[true])],[
    -  AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_PORTAUDIO],[false])])
     PKG_CHECK_MODULES([LDNS], [libldns-fs >= 1.6.6],[
       AM_CONDITIONAL([HAVE_LDNS],[true])],[
     PKG_CHECK_MODULES([LDNS], [libldns >= 1.6.6],[
    @@ -1473,10 +1463,6 @@ PKG_CHECK_MODULES([OPUS], [opus >= 1.1],[
       AM_CONDITIONAL([HAVE_OPUS],[true])],[
       AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_OPUS],[false])])
     
    -PKG_CHECK_MODULES([SOUNDTOUCH], [soundtouch >= 1.7.0],[
    -  AM_CONDITIONAL([HAVE_SOUNDTOUCH],[true])],[
    -  AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_SOUNDTOUCH],[false])])
    -
     flite="true"
     PKG_CHECK_MODULES([FLITE], [flite >= 2],[],[
       AC_CHECK_LIB([flite], [flite_init],[
    @@ -1560,9 +1546,42 @@ PKG_CHECK_MODULES([SIGNALWIRE_CLIENT], [signalwire_client2 >= 2.0.0],[
       ])
     ])
     
    -PKG_CHECK_MODULES([AMQP], [librabbitmq >= 0.5.2],[
    -  AM_CONDITIONAL([HAVE_AMQP],[true])],[
    -  AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_AMQP],[false])])
    +PKG_CHECK_MODULES([AMQP], [librabbitmq >= 0.5.2], [
    +       AM_CONDITIONAL([HAVE_AMQP], [true])
    +       # Extract the version of librabbitmq
    +       AMQP_VERSION=`$PKG_CONFIG --modversion librabbitmq`
    +       AC_DEFINE_UNQUOTED([AMQP_VERSION], ["$AMQP_VERSION"], [Version of librabbitmq])
    +       # Parse major and minor version numbers
    +       AMQP_MAJOR_VERSION=`echo $AMQP_VERSION | cut -d. -f1`
    +       AMQP_MINOR_VERSION=`echo $AMQP_VERSION | cut -d. -f2`
    +       AC_DEFINE_UNQUOTED([AMQP_MAJOR_VERSION], [$AMQP_MAJOR_VERSION], [Major version of librabbitmq])
    +       AC_DEFINE_UNQUOTED([AMQP_MINOR_VERSION], [$AMQP_MINOR_VERSION], [Minor version of librabbitmq])
    +       AC_SUBST(AMQP_MAJOR_VERSION)
    +       AC_SUBST(AMQP_MINOR_VERSION)
    +   ], [
    +       AC_MSG_RESULT([no])
    +       AM_CONDITIONAL([HAVE_AMQP], [false])
    +   ])
    +
    +PKG_CHECK_MODULES([SPHINXBASE], [sphinxbase >= 5],[
    +  AM_CONDITIONAL([HAVE_SPHINXBASE],[true])],[
    +  AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_SPHINXBASE],[false])])
    +
    +PKG_CHECK_MODULES([POCKETSPHINX], [pocketsphinx >= 5],[
    +       AM_CONDITIONAL([HAVE_POCKETSPHINX],[true])
    +       # Extract the version of pocketsphinx
    +       POCKETSPHINX_VERSION=`$PKG_CONFIG --modversion pocketsphinx`
    +       AC_DEFINE_UNQUOTED([POCKETSPHINX_VERSION], ["$POCKETSPHINX_VERSION"], [Version of pocketsphinx])
    +       AC_MSG_NOTICE([POCKETSPHINX_VERSION is $POCKETSPHINX_VERSION])
    +       # Parse major version but take only first digit for now
    +       POCKETSPHINX_MAJOR_VERSION=`echo $POCKETSPHINX_VERSION | cut -c1`
    +       AC_MSG_NOTICE([POCKETSPHINX_MAJOR_VERSION is $POCKETSPHINX_MAJOR_VERSION])
    +       AC_DEFINE_UNQUOTED([POCKETSPHINX_MAJOR_VERSION], [$POCKETSPHINX_MAJOR_VERSION], [Major version of pocketsphinx])
    +       AC_SUBST(POCKETSPHINX_MAJOR_VERSION)
    +   ], [
    +      AC_MSG_RESULT([no])
    +      AM_CONDITIONAL([HAVE_POCKETSPHINX],[false])
    +   ])
     
     PKG_CHECK_MODULES([H2O], [libh2o-evloop >= 0.11.0],[
       AM_CONDITIONAL([HAVE_H2O],[true])],[
    @@ -1737,127 +1756,6 @@ if test "x$ac_cv_have_php" != "xno" -a "x$ac_cv_have_php_config" != "xno"; then
        AC_SUBST(PHP_CFLAGS)
     fi
     
    -#
    -# Python checks for mod_python (scroll down to see python3 checks for mod_python3)
    -#
    -AC_ARG_WITH(
    -	[python],
    -	[AS_HELP_STRING([--with-python], [Use system provided version of python (default: try)])],
    -	[with_python="$withval"],
    -	[with_python="try"]
    -)
    -
    -if test "$with_python" != "no"
    -then
    -	save_CFLAGS="$CFLAGS"
    -	save_LIBS="$LIBS"
    -
    -	if test "$with_python" != "yes" -a "$with_python" != "try" ; then
    -		AC_MSG_CHECKING([for python])
    -		if test ! -x "$with_python" ; then
    -			AC_MSG_ERROR([Specified python does not exist or is not executable: $with_python])
    -		fi
    -		AC_MSG_RESULT([$with_python])
    -		AC_SUBST([PYTHON], ["$with_python"])
    -	else
    -		AC_PATH_PROG([PYTHON], ["python"], ["no"], ["$PATH:/usr/bin:/usr/local/bin"])
    -	fi
    -
    -	if test "$PYTHON" != "no" ; then
    -		AC_MSG_CHECKING([python version])
    -		PYTHON_VER="`$PYTHON -V 2>&1 | cut -d' ' -f2`"
    -
    -		if test -z "$PYTHON_VER" ; then
    -			AC_MSG_ERROR([Unable to detect python version])
    -		fi
    -		AC_MSG_RESULT([$PYTHON_VER])
    -
    -		AC_MSG_CHECKING([for python distutils])
    -		python_result="`$PYTHON -c 'import distutils;' 2>&1`"
    -		if test -z "$python_result" ; then
    -			python_has_distutils="yes"
    -		else
    -			python_has_distutils="no"
    -		fi
    -		AC_MSG_RESULT([$python_has_distutils])
    -
    -		if test "$python_has_distutils" != "no" ; then
    -			AC_MSG_CHECKING([location of site-packages])
    -
    -			PYTHON_SITE_DIR="`$PYTHON -c 'from distutils import sysconfig; print(sysconfig.get_python_lib(0));'`"
    -
    -			if test -z "$PYTHON_SITE_DIR" ; then
    -				AC_MSG_ERROR([Unable to detect python site-packages path])
    -			elif test ! -d "$PYTHON_SITE_DIR" ; then
    -				AC_MSG_ERROR([Path $PYTHON_SITE_DIR returned by python does not exist!])
    -			fi
    -			AC_MSG_RESULT([$PYTHON_SITE_DIR])
    -			AC_SUBST([PYTHON_SITE_DIR], [$PYTHON_SITE_DIR])
    -
    -			#
    -			# python distutils found, get settings from python directly
    -			#
    -			PYTHON_CFLAGS="`$PYTHON -c 'from distutils import sysconfig; flags = [[\"-I\" + sysconfig.get_python_inc(0), \"-I\" + sysconfig.get_python_inc(1), \" \".join(sysconfig.get_config_var(\"CFLAGS\").split())]]; print(\" \".join(flags));' | sed -e 's/-arch i386//g;s/-arch x86_64//g'`"
    -			PYTHON_LDFLAGS="`$PYTHON -c 'from distutils import sysconfig; libs = sysconfig.get_config_var(\"LIBS\").split() + sysconfig.get_config_var(\"SYSLIBS\").split(); libs.append(\"-lpython\"+sysconfig.get_config_var(\"VERSION\")); print(\" \".join(libs));'`"
    -			PYTHON_LIB="`$PYTHON -c 'from distutils import sysconfig; print(\"python\" + sysconfig.get_config_var(\"VERSION\"));'`"
    -			PYTHON_LIBDIR="`$PYTHON -c 'from distutils import sysconfig; print(sysconfig.get_config_var(\"LIBDIR\"));'`"
    -
    -			# handle python being installed into /usr/local
    -			AC_MSG_CHECKING([python libdir])
    -			if test -z "`echo $PYTHON_LIBDIR | grep "/usr/lib"`" ; then
    -				PYTHON_LDFLAGS="-L$PYTHON_LIBDIR $PYTHON_LDFLAGS"
    -				LIBS="-L$PYTHON_LIBDIR $LIBS"
    -			fi
    -			AC_MSG_RESULT([$PYTHON_LIBDIR])
    -
    -			# check libpython
    -			AC_CHECK_LIB([$PYTHON_LIB], [main], [has_libpython="yes"], [has_libpython="no"])
    -
    -			if test "$has_libpython" = "no" ; then
    -				AS_IF([test "$with_python" = "try"],
    -				 	[AC_MSG_WARN([$PYTHON_LIB is unusable])],
    -					[AC_MSG_ERROR([$PYTHON_LIB is unusable])]
    -				)
    -			fi
    -
    -			# check whether system libpython is usable and has threads support
    -			CFLAGS="$PYTHON_CFLAGS"
    -			LIBS="$PYTHON_LDFLAGS"
    -			AC_CHECK_FUNC([PyThread_init_thread], [python_has_threads="yes"], [python_has_threads="no"])
    -
    -			if test "$python_has_threads" = "no"; then
    -				AS_IF([test "$with_python" = "try"],
    -					[AC_MSG_WARN([Your python lacks threads support, can not build mod_python])],
    -					[AC_MSG_ERROR([Your python lacks threads support, can not build mod_python])]
    -				)
    -			else
    -				AC_MSG_NOTICE([Your python seems OK, do not forget to enable mod_python in modules.conf])
    -				AC_SUBST([PYTHON_CFLAGS],  [$PYTHON_CFLAGS])
    -				AC_SUBST([PYTHON_LDFLAGS], [$PYTHON_LDFLAGS])
    -			fi
    -		else
    -			AS_IF([test "$with_python" = "try"],
    -				[AC_MSG_WARN([Could not find or use python distutils module: $python_result])],
    -				[AC_MSG_ERROR([Could not find or use python distutils module: $python_result])]
    -			)
    -		fi
    -
    -		LIBS="$save_LIBS"
    -		CFLAGS="$save_CFLAGS"
    -
    -		unset python_has_threads
    -		unset python_has_distutils
    -		unset python_result
    -	else
    -		AS_IF([test "$with_python" = "try"],
    -			[AC_MSG_WARN([Could not find python, mod_python will not build, use --with-python to specify the location])],
    -			[AC_MSG_ERROR([Could not find python, use --with-python to specify the location])]
    -		)
    -	fi
    -else
    -	AC_MSG_WARN([python support disabled, building mod_python will fail!])
    -fi
    -
     #
     # Python3 checks for mod_python3
     #
    @@ -2092,7 +1990,6 @@ AC_CONFIG_FILES([Makefile
     		tests/unit/Makefile
     		src/Makefile
     		src/mod/Makefile
    -		src/mod/applications/mod_abstraction/Makefile
     		src/mod/applications/mod_avmd/Makefile
     		src/mod/applications/mod_bert/Makefile
     		src/mod/applications/mod_blacklist/Makefile
    @@ -2119,86 +2016,62 @@ AC_CONFIG_FILES([Makefile
     		src/mod/applications/mod_hiredis/Makefile
     		src/mod/applications/mod_httapi/Makefile
     		src/mod/applications/mod_http_cache/Makefile
    -		src/mod/applications/mod_ladspa/Makefile
     		src/mod/applications/mod_lcr/Makefile
     		src/mod/applications/mod_limit/Makefile
     		src/mod/applications/mod_memcache/Makefile
     		src/mod/applications/mod_mongo/Makefile
    -		src/mod/applications/mod_mp4/Makefile
    -		src/mod/applications/mod_mp4v2/Makefile
     		src/mod/applications/mod_nibblebill/Makefile
    -		src/mod/applications/mod_oreka/Makefile
     		src/mod/applications/mod_osp/Makefile
     		src/mod/applications/mod_prefix/Makefile
    -		src/mod/applications/mod_rad_auth/Makefile
     		src/mod/applications/mod_random/Makefile
     		src/mod/applications/mod_redis/Makefile
    -		src/mod/applications/mod_rss/Makefile
     		src/mod/applications/mod_skel/Makefile
     		src/mod/applications/mod_signalwire/Makefile
     		src/mod/applications/mod_sms/Makefile
    -		src/mod/applications/mod_sms_flowroute/Makefile
     		src/mod/applications/mod_snapshot/Makefile
    -		src/mod/applications/mod_snom/Makefile
    -		src/mod/applications/mod_sonar/Makefile
    -		src/mod/applications/mod_soundtouch/Makefile
     		src/mod/applications/mod_spandsp/Makefile
     		src/mod/applications/mod_spy/Makefile
    -		src/mod/applications/mod_stress/Makefile
     		src/mod/applications/mod_test/Makefile
     		src/mod/applications/mod_translate/Makefile
     		src/mod/applications/mod_valet_parking/Makefile
     		src/mod/applications/mod_vmd/Makefile
     		src/mod/applications/mod_voicemail/Makefile
     		src/mod/applications/mod_voicemail_ivr/Makefile
    -		src/mod/asr_tts/mod_cepstral/Makefile
     		src/mod/asr_tts/mod_flite/Makefile
     		src/mod/asr_tts/mod_pocketsphinx/Makefile
     		src/mod/asr_tts/mod_tts_commandline/Makefile
     		src/mod/codecs/mod_amr/Makefile
     		src/mod/codecs/mod_amrwb/Makefile
     		src/mod/codecs/mod_b64/Makefile
     		src/mod/codecs/mod_bv/Makefile
    -		src/mod/codecs/mod_clearmode/Makefile
     		src/mod/codecs/mod_codec2/Makefile
     		src/mod/codecs/mod_com_g729/Makefile
    -		src/mod/codecs/mod_dahdi_codec/Makefile
     		src/mod/codecs/mod_g723_1/Makefile
     		src/mod/codecs/mod_g729/Makefile
    -		src/mod/codecs/mod_h26x/Makefile
     		src/mod/codecs/mod_ilbc/Makefile
    -		src/mod/codecs/mod_isac/Makefile
    -		src/mod/codecs/mod_mp4v/Makefile
     		src/mod/codecs/mod_opus/Makefile
     		src/mod/codecs/mod_openh264/Makefile
    -		src/mod/codecs/mod_sangoma_codec/Makefile
     		src/mod/codecs/mod_silk/Makefile
     		src/mod/codecs/mod_siren/Makefile
     		src/mod/codecs/mod_skel_codec/Makefile
    -		src/mod/codecs/mod_theora/Makefile
     		src/mod/databases/mod_mariadb/Makefile
     		src/mod/databases/mod_pgsql/Makefile
     		src/mod/dialplans/mod_dialplan_asterisk/Makefile
     		src/mod/dialplans/mod_dialplan_directory/Makefile
     		src/mod/dialplans/mod_dialplan_xml/Makefile
     		src/mod/directories/mod_ldap/Makefile
     		src/mod/endpoints/mod_alsa/Makefile
    -		src/mod/endpoints/mod_gsmopen/Makefile
     		src/mod/endpoints/mod_h323/Makefile
    -		src/mod/endpoints/mod_khomp/Makefile
     		src/mod/endpoints/mod_loopback/Makefile
     		src/mod/endpoints/mod_opal/Makefile
    -		src/mod/endpoints/mod_portaudio/Makefile
     		src/mod/endpoints/mod_reference/Makefile
     		src/mod/endpoints/mod_rtmp/Makefile
     		src/mod/endpoints/mod_skinny/Makefile
     		src/mod/endpoints/mod_sofia/Makefile
    -		src/mod/endpoints/mod_unicall/Makefile
     		src/mod/endpoints/mod_rtc/Makefile
     		src/mod/endpoints/mod_verto/Makefile
     		src/mod/event_handlers/mod_amqp/Makefile
     		src/mod/event_handlers/mod_cdr_csv/Makefile
    -		src/mod/event_handlers/mod_cdr_mongodb/Makefile
     		src/mod/event_handlers/mod_cdr_pg_csv/Makefile
     		src/mod/event_handlers/mod_cdr_sqlite/Makefile
     		src/mod/event_handlers/mod_erlang_event/Makefile
    @@ -2208,12 +2081,9 @@ AC_CONFIG_FILES([Makefile
     		src/mod/event_handlers/mod_fail2ban/Makefile
     		src/mod/event_handlers/mod_format_cdr/Makefile
     		src/mod/event_handlers/mod_json_cdr/Makefile
    -		src/mod/event_handlers/mod_radius_cdr/Makefile
     		src/mod/event_handlers/mod_odbc_cdr/Makefile
    -		src/mod/event_handlers/mod_rayo/Makefile
     		src/mod/event_handlers/mod_smpp/Makefile
     		src/mod/event_handlers/mod_snmp/Makefile
    -		src/mod/event_handlers/mod_event_zmq/Makefile
     		src/mod/formats/mod_imagick/Makefile
     		src/mod/formats/mod_local_stream/Makefile
     		src/mod/formats/mod_native_file/Makefile
    @@ -2222,24 +2092,19 @@ AC_CONFIG_FILES([Makefile
     		src/mod/formats/mod_shell_stream/Makefile
     		src/mod/formats/mod_shout/Makefile
     		src/mod/formats/mod_sndfile/Makefile
    -		src/mod/formats/mod_ssml/Makefile
     		src/mod/formats/mod_tone_stream/Makefile
     		src/mod/formats/mod_vlc/Makefile
    -		src/mod/formats/mod_portaudio_stream/Makefile
     		src/mod/languages/mod_java/Makefile
     		src/mod/languages/mod_lua/Makefile
     		src/mod/languages/mod_managed/Makefile
     		src/mod/languages/mod_perl/Makefile
    -		src/mod/languages/mod_python/Makefile
     		src/mod/languages/mod_python3/Makefile
     		src/mod/languages/mod_v8/Makefile
    -		src/mod/languages/mod_yaml/Makefile
     		src/mod/languages/mod_basic/Makefile
     		src/mod/loggers/mod_console/Makefile
     		src/mod/loggers/mod_graylog2/Makefile
     		src/mod/loggers/mod_logfile/Makefile
     		src/mod/loggers/mod_syslog/Makefile
    -		src/mod/loggers/mod_raven/Makefile
     		src/mod/say/mod_say_de/Makefile
     		src/mod/say/mod_say_en/Makefile
     		src/mod/say/mod_say_es/Makefile
    @@ -2263,7 +2128,6 @@ AC_CONFIG_FILES([Makefile
     		src/mod/xml_int/mod_xml_cdr/Makefile
     		src/mod/xml_int/mod_xml_curl/Makefile
     		src/mod/xml_int/mod_xml_ldap/Makefile
    -		src/mod/xml_int/mod_xml_radius/Makefile
     		src/mod/xml_int/mod_xml_rpc/Makefile
     		src/mod/xml_int/mod_xml_scgi/Makefile
     		src/mod/applications/mod_av/Makefile
    @@ -2339,7 +2203,6 @@ AC_CONFIG_SUBDIRS([libs/srtp])
     if test "$use_system_apr" != "yes"; then
        AC_CONFIG_SUBDIRS([libs/apr])
     fi
    -AC_CONFIG_SUBDIRS([libs/iksemel])
     
     case $host in
        *-openbsd*|*-netbsd*)
    
  • conf/insideout/autoload_configs/modules.conf.xml+0 10 modified
    @@ -6,8 +6,6 @@
         <load module="mod_logfile"/>
         <!-- <load module="mod_syslog"/> -->
     
    -    <!--<load module="mod_yaml"/>-->
    -
         <!-- Multi-Faceted -->
         <!-- mod_enum is a dialplan interface, an application interface and an api command interface -->
         <load module="mod_enum"/>
    @@ -29,7 +27,6 @@
         <!-- Endpoints -->
         <!-- <load module="mod_dingaling"/> -->
         <!-- <load module="mod_iax"/> -->
    -    <!-- <load module="mod_portaudio"/> -->
         <!-- <load module="mod_alsa"/> -->
         <load module="mod_sofia"/>
         <load module="mod_loopback"/>
    @@ -49,9 +46,6 @@
         <load module="mod_fsv"/>
         <!--<load module="mod_translate"/>-->
     
    -    <!-- SNOM Module -->
    -    <!--<load module="mod_snom"/>-->
    -
         <!-- Dialplan Interfaces -->
         <!-- <load module="mod_dialplan_directory"/> -->
         <load module="mod_dialplan_xml"/>
    @@ -63,7 +57,6 @@
         <load module="mod_g729"/>
         <load module="mod_amr"/>
         <!--<load module="mod_ilbc"/>-->
    -    <load module="mod_h26x"/>
         <!--<load module="mod_siren"/>-->
     
         <!-- File Format Interfaces -->
    @@ -80,17 +73,14 @@
         <!-- Languages -->
         <load module="mod_v8"/>
         <!-- <load module="mod_perl"/> -->
    -    <!-- <load module="mod_python"/> -->
         <!-- <load module="mod_python3"/> -->
         <!-- <load module="mod_java"/> -->
         <load module="mod_lua"/>
     
         <!-- ASR /TTS -->
         <!-- <load module="mod_flite"/> -->
         <!-- <load module="mod_pocketsphinx"/> -->
    -    <!-- <load module="mod_cepstral"/> -->
         <!-- <load module="mod_openmrcp"/> -->
    -    <!-- <load module="mod_rss"/> -->
         
         <!-- Say -->
         <load module="mod_say_en"/>
    
  • conf/insideout/autoload_configs/portaudio.conf.xml+0 33 removed
    @@ -1,33 +0,0 @@
    -<configuration name="portaudio.conf" description="Soundcard Endpoint">
    -  <settings>
    -    <!-- indev, outdev, ringdev: 
    -	 partial case sensitive string match on something in the name 
    -	 or the device number prefixed with # eg "#1" (or blank for default) -->
    -
    -    <!-- device to use for input -->
    -    <param name="indev" value=""/>
    -    <!-- device to use for output -->
    -    <param name="outdev" value=""/>
    -
    -    <!--device to use for inbound ring -->
    -    <!--<param name="ringdev" value=""/>-->
    -    <!--File to play as the ring sound -->
    -    <!--<param name="ring-file" value="/sounds/ring.wav"/>-->
    -    <!--Number of seconds to pause between rings -->
    -    <!--<param name="ring-interval" value="5"/>-->
    -
    -    <!--file to play when calls are on hold-->
    -    <!--<param name="hold-file" value="/sounds/holdmusic.wav"/>-->
    -    <!--Timer to use for hold music (i'd leave this one commented)-->
    -    <!--<param name="timer-name" value="soft"/>-->
    -
    -    <!--Default dialplan and caller-id info -->
    -    <param name="dialplan" value="XML"/>
    -    <param name="cid-name" value="$${outbound_caller_name}"/>
    -    <param name="cid-num" value="$${outbound_caller_id}"/>
    -
    -    <!--audio sample rate and interval -->
    -    <param name="sample-rate" value="8000"/>
    -    <param name="codec-ms" value="20"/>
    -  </settings>
    -</configuration>
    
  • conf/insideout/autoload_configs/rss.conf.xml+0 7 removed
    @@ -1,7 +0,0 @@
    -<configuration name="rss.conf" description="RSS Parser">
    -  <feeds>
    -    <!-- Just download the files to wherever and refer to them here -->
    -    <!-- <feed name="Slash Dot">/home/rss/rss.rss</feed> -->
    -    <!-- <feed name="News Forge">/home/rss/newsforge.rss</feed> -->
    -  </feeds>
    -</configuration>
    
  • conf/insideout/dialplan/default.xml+0 18 modified
    @@ -116,24 +116,6 @@
           </condition>
         </extension>
         -->
    -    <!--
    -	snom button demo, call 9000 to make button 2 mapped to transfer the current call to a conference
    -    -->
    -
    -    <extension name="snom-demo-2">
    -      <condition field="destination_number" expression="^9001$">
    -	<action application="eval" data="${snom_bind_key(2 off DND ${sip_from_user} ${sip_from_host} ${sofia_profile_name} message notused)}"/>
    -	<action application="transfer" data="3000"/>
    -      </condition>
    -    </extension>
    -    
    -    <extension name="snom-demo-1">
    -      <condition field="destination_number" expression="^9000$">
    -	<!--<key> <light> <label> <user> <host> <profile> <action_name> <action>-->
    -	<action application="eval" data="${snom_bind_key(2 on DND ${sip_from_user} ${sip_from_host} ${sofia_profile_name} message api+uuid_transfer ${uuid} 9001)}"/>
    -	<action application="playback" data="$${hold_music}"/>
    -      </condition>
    -    </extension>
     
         <extension name="eavesdrop">
           <condition field="destination_number" expression="^88(.*)$|^\*0(.*)$">
    
  • conf/insideout/vars.xml+0 8 modified
    @@ -59,14 +59,6 @@
            G729             - G729 in passthru mode. (mod_g729)
            G723             - G723.1 in passthru mode. (mod_g723_1)
            AMR              - AMR in passthru mode. (mod_amr)
    -       
    -       These are the passthru video codecs: (mod_h26x)
    -       
    -       H261             - H.261 Video
    -       H263             - H.263 Video
    -       H263-1998        - H.263-1998 Video
    -       H263-2000        - H.263-2000 Video
    -       H264             - H.264 Video
     
       -->
       <X-PRE-PROCESS cmd="set" data="global_codec_prefs=G722,PCMU,PCMA,GSM"/>
    
  • conf/rayo/autoload_configs/acl.conf.xml+0 41 removed
    @@ -1,41 +0,0 @@
    -<configuration name="acl.conf" description="Network Lists">
    -  <network-lists>
    -    <!--
    -	 These ACL's are automatically created on startup.
    -
    -	 rfc1918.auto  - RFC1918 Space
    -	 nat.auto      - RFC1918 Excluding your local lan.
    -	 localnet.auto - ACL for your local lan.
    -	 loopback.auto - ACL for your local lan.
    -    -->
    -
    -    <list name="lan" default="allow">
    -      <node type="deny" cidr="192.168.42.0/24"/>
    -      <node type="allow" cidr="192.168.42.42/32"/>
    -    </list>
    -
    -    <!--
    -	This will traverse the directory adding all users
    -	with the cidr= tag to this ACL, when this ACL matches
    -	the users variables and params apply as if they
    -	digest authenticated.
    -    -->
    -    <list name="domains" default="deny">
    -      <!-- domain= is special it scans the domain from the directory to build the ACL -->
    -      <node type="allow" domain="$${domain}"/>
    -      <!-- use cidr= if you wish to allow ip ranges to this domains acl. -->
    -      <!-- <node type="allow" cidr="192.168.0.0/24"/> -->
    -    </list>
    -
    -    <list name="rayo-clients" default="deny">
    -      <node type="allow" cidr="192.168.0.39/32"/>
    -      <node type="allow" cidr="192.168.0.59/32"/>
    -    </list>
    -
    -    <list name="rayo-servers" default="deny">
    -      <node type="allow" cidr="192.168.0.39/32"/>
    -    </list>
    -
    -  </network-lists>
    -</configuration>
    -
    
  • conf/rayo/autoload_configs/cdr_csv.conf.xml+0 23 removed
    @@ -1,23 +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>
    -    <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>
    -
    
  • conf/rayo/autoload_configs/conference.conf.xml+0 214 removed
    @@ -1,214 +0,0 @@
    -<!-- http://wiki.freeswitch.org/wiki/Mod_conference --> 
    -<!-- None of these paths are real if you want any of these options you need to really set them up -->
    -<configuration name="conference.conf" description="Audio Conference">
    -  <!-- Advertise certain presence on startup . -->
    -  <advertise>
    -    <room name="3001@$${domain}" status="FreeSWITCH"/>
    -  </advertise>
    -
    -  <!-- These are the default keys that map when you do not specify a caller control group -->	
    -  <!-- Note: none and default are reserved names for group names.  Disabled if dist-dtmf member flag is set. -->	
    -  <caller-controls>
    -    <group name="default">
    -      <control action="mute" digits="0"/>
    -      <control action="deaf mute" digits="*"/>
    -      <control action="energy up" digits="9"/>
    -      <control action="energy equ" digits="8"/>
    -      <control action="energy dn" digits="7"/>
    -      <control action="vol talk up" digits="3"/>
    -      <control action="vol talk zero" digits="2"/>
    -      <control action="vol talk dn" digits="1"/>
    -      <control action="vol listen up" digits="6"/>
    -      <control action="vol listen zero" digits="5"/>
    -      <control action="vol listen dn" digits="4"/>
    -      <control action="hangup" digits="#"/>
    -    </group>
    -  </caller-controls>
    -
    -  <!-- Profiles are collections of settings you can reference by name. -->
    -  <profiles>
    -    <!--If no profile is specified it will default to "default"-->
    -    <profile name="default">
    -      <!-- Directory to drop CDR's 
    -	   'auto' means $PREFIX/logs/conference_cdr/<confernece_uuid>.cdr.xml
    -	   a non-absolute path means $PREFIX/logs/<value>/<confernece_uuid>.cdr.xml
    -	   absolute path means <value>/<confernece_uuid>.cdr.xml
    -      -->
    -      <!-- <param name="cdr-log-dir" value="auto"/> -->
    -      
    -      <!-- Domain (for presence) -->
    -      <param name="domain" value="$${domain}"/>
    -      <!-- Sample Rate-->
    -      <param name="rate" value="8000"/>
    -      <!-- Number of milliseconds per frame -->
    -      <param name="interval" value="20"/>
    -      <!-- Energy level required for audio to be sent to the other users -->
    -      <param name="energy-level" value="300"/>
    -
    -      <!--Can be | delim of waste|mute|deaf|dist-dtmf waste will always transmit data to each channel
    -          even during silence.  dist-dtmf propagates dtmfs to all other members, but channel controls
    -	  via dtmf will be disabled. -->
    -      <!--<param name="member-flags" value="waste"/>-->
    -
    -      <!-- Name of the caller control group to use for this profile -->
    -      <!-- <param name="caller-controls" value="some name"/> -->
    -      <!-- Name of the caller control group to use for the moderator in this profile -->
    -      <!-- <param name="moderator-controls" value="some name"/> -->
    -      <!-- TTS Engine to use -->
    -      <!--<param name="tts-engine" value="cepstral"/>-->
    -      <!-- TTS Voice to use -->
    -      <!--<param name="tts-voice" value="david"/>-->
    -
    -      <!-- If TTS is enabled all audio-file params beginning with -->
    -      <!-- 'say:' will be considered text to say with TTS -->
    -      <!-- Override the default path here, after which you use relative paths in the other sound params -->
    -      <!-- Note: The default path is the conference's first caller's sound_prefix -->
    -      <!--<param name="sound-prefix" value="$${sound_prefix}"/>-->
    -      <!-- File to play to acknowledge success -->
    -      <!--<param name="ack-sound" value="beep.wav"/>-->
    -      <!-- File to play to acknowledge failure -->
    -      <!--<param name="nack-sound" value="beeperr.wav"/>-->
    -      <!-- File to play to acknowledge muted -->
    -      <param name="muted-sound" value="conference/conf-muted.wav"/>
    -      <!-- File to play to acknowledge unmuted -->
    -      <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
    -      <!-- File to play if you are alone in the conference -->
    -      <param name="alone-sound" value="conference/conf-alone.wav"/>
    -      <!-- File to play endlessly (nobody will ever be able to talk) -->
    -      <!--<param name="perpetual-sound" value="perpetual.wav"/>-->
    -      <!-- File to play when you're alone (music on hold)-->
    -      <param name="moh-sound" value="$${hold_music}"/>
    -      <!-- File to play when you join the conference -->
    -      <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
    -      <!-- File to play when you leave the conference -->
    -      <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
    -      <!-- File to play when you ae ejected from the conference -->
    -      <param name="kicked-sound" value="conference/conf-kicked.wav"/>
    -      <!-- File to play when the conference is locked -->
    -      <param name="locked-sound" value="conference/conf-locked.wav"/>
    -      <!-- File to play when the conference is locked during the call-->
    -      <param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
    -      <!-- File to play when the conference is unlocked during the call-->
    -      <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
    -      <!-- File to play to prompt for a pin -->
    -      <param name="pin-sound" value="conference/conf-pin.wav"/>
    -      <!-- File to play to when the pin is invalid -->
    -      <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
    -      <!-- Conference pin -->
    -      <!--<param name="pin" value="12345"/>-->
    -      <!--<param name="moderator-pin" value="54321"/>-->
    -      <!-- Max number of times the user can be prompted for PIN -->
    -      <!--<param name="pin-retries" value="3"/>-->
    -      <!-- Default Caller ID Name for outbound calls -->
    -      <param name="caller-id-name" value="$${outbound_caller_name}"/>
    -      <!-- Default Caller ID Number for outbound calls -->
    -      <param name="caller-id-number" value="$${outbound_caller_id}"/>
    -      <!-- Suppress start and stop talking events -->
    -      <!-- <param name="suppress-events" value="start-talking,stop-talking"/> -->
    -      <!-- enable comfort noise generation -->
    -      <param name="comfort-noise" value="true"/>
    -      <!-- Uncomment auto-record to toggle recording every conference call. -->
    -      <!-- Another valid value is   shout://user:pass@server.com/live.mp3   -->
    -      <!--
    -      <param name="auto-record" value="$${recordings_dir}/${conference_name}_${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
    -      -->
    -
    -      <!-- IVR digit machine timeouts -->
    -      <!-- How much to wait between DTMF digits to match caller-controls -->
    -      <!-- <param name="ivr-dtmf-timeout" value="500"/> -->
    -      <!-- How much to wait for the first DTMF, 0 forever -->
    -      <!-- <param name="ivr-input-timeout" value="0" /> -->
    -      <!-- Delay before a conference is asked to be terminated -->
    -      <!-- <param name="endconf-grace-time" value="120" /> -->
    -      <!-- Can be | delim of wait-mod|audio-always|video-bridge|video-floor-only
    -           wait_mod will wait until the moderator in,
    -           audio-always will always mix audio from all members regardless they are talking or not -->
    -      <!-- <param name="conference-flags" value="audio-always"/> -->
    -    </profile>
    -
    -    <profile name="wideband">
    -      <param name="domain" value="$${domain}"/>
    -      <param name="rate" value="16000"/>
    -      <param name="interval" value="20"/>
    -      <param name="energy-level" value="300"/>
    -      <!--<param name="sound-prefix" value="$${sound_prefix}"/>-->
    -      <param name="muted-sound" value="conference/conf-muted.wav"/>
    -      <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
    -      <param name="alone-sound" value="conference/conf-alone.wav"/>
    -      <param name="moh-sound" value="$${hold_music}"/>
    -      <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
    -      <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
    -      <param name="kicked-sound" value="conference/conf-kicked.wav"/>
    -      <param name="locked-sound" value="conference/conf-locked.wav"/>
    -      <param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
    -      <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
    -      <param name="pin-sound" value="conference/conf-pin.wav"/>
    -      <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
    -      <param name="caller-id-name" value="$${outbound_caller_name}"/>
    -      <param name="caller-id-number" value="$${outbound_caller_id}"/>
    -      <param name="comfort-noise" value="true"/>
    -      <!--<param name="tts-engine" value="flite"/>-->
    -      <!--<param name="tts-voice" value="kal16"/>-->
    -    </profile>
    -
    -    <profile name="ultrawideband">
    -      <param name="domain" value="$${domain}"/>
    -      <param name="rate" value="32000"/>
    -      <param name="interval" value="20"/>
    -      <param name="energy-level" value="300"/>
    -      <!--<param name="sound-prefix" value="$${sound_prefix}"/>-->
    -      <param name="muted-sound" value="conference/conf-muted.wav"/>
    -      <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
    -      <param name="alone-sound" value="conference/conf-alone.wav"/>
    -      <param name="moh-sound" value="$${hold_music}"/>
    -      <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
    -      <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
    -      <param name="kicked-sound" value="conference/conf-kicked.wav"/>
    -      <param name="locked-sound" value="conference/conf-locked.wav"/>
    -      <param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
    -      <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
    -      <param name="pin-sound" value="conference/conf-pin.wav"/>
    -      <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
    -      <param name="caller-id-name" value="$${outbound_caller_name}"/>
    -      <param name="caller-id-number" value="$${outbound_caller_id}"/>
    -      <param name="comfort-noise" value="true"/>
    -      <!--<param name="tts-engine" value="flite"/>-->
    -      <!--<param name="tts-voice" value="kal16"/>-->
    -    </profile>
    -
    -    <profile name="cdquality">
    -      <param name="domain" value="$${domain}"/>
    -      <param name="rate" value="48000"/>
    -      <param name="interval" value="10"/>
    -      <param name="energy-level" value="300"/>
    -      <!--<param name="sound-prefix" value="$${sound_prefix}"/>-->
    -      <param name="muted-sound" value="conference/conf-muted.wav"/>
    -      <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
    -      <param name="alone-sound" value="conference/conf-alone.wav"/>
    -      <param name="moh-sound" value="$${hold_music}"/>
    -      <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
    -      <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
    -      <param name="kicked-sound" value="conference/conf-kicked.wav"/>
    -      <param name="locked-sound" value="conference/conf-locked.wav"/>
    -      <param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
    -      <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
    -      <param name="pin-sound" value="conference/conf-pin.wav"/>
    -      <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
    -      <param name="caller-id-name" value="$${outbound_caller_name}"/>
    -      <param name="caller-id-number" value="$${outbound_caller_id}"/>
    -      <param name="comfort-noise" value="true"/>
    -    </profile>
    -
    -    <profile name="sla">
    -      <param name="domain" value="$${domain}"/>
    -      <param name="rate" value="16000"/>
    -      <param name="interval" value="20"/>
    -      <param name="caller-controls" value="none"/>
    -      <param name="energy-level" value="200"/>
    -      <param name="moh-sound" value="silence"/>
    -      <param name="comfort-noise" value="true"/>
    -      <param name="min-required-recording-participants" value="1"/>
    -    </profile>
    -
    -  </profiles>
    -</configuration>
    
  • conf/rayo/autoload_configs/console.conf.xml+0 56 removed
    @@ -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 Freetdm, 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_freetdm"                 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>
    
  • conf/rayo/autoload_configs/event_socket.conf.xml+0 9 removed
    @@ -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>
    
  • conf/rayo/autoload_configs/http_cache.conf.xml+0 21 removed
    @@ -1,21 +0,0 @@
    -<configuration name="http_cache.conf" description="HTTP GET cache">
    -  <settings>
    -    <!-- set to true if you want to enable http:// and https:// formats.  Do not use if mod_httapi is also loaded -->
    -    <param name="enable-file-formats" value="true"/>
    -    <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"/>
    -    <!-- absolute path to CA bundle file -->
    -    <param name="ssl-cacert" value="$${base_dir}/conf/cacert.pem"/>
    -    <!-- verify certificates -->
    -    <param name="ssl-verifypeer" value="true"/>
    -    <!-- verify host name matches certificate -->
    -    <param name="ssl-verifyhost" value="true"/>
    -    <!-- default is 300 seconds, override here -->
    -    <!--param name="connect-timeout" value="300"/-->
    -    <!-- default is 300 seconds, override here -->
    -    <!--param name="download-timeout" value="300"/-->
    -  </settings>
    -</configuration>
    
  • conf/rayo/autoload_configs/local_stream.conf.xml+0 49 removed
    @@ -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>
    
  • conf/rayo/autoload_configs/logfile.conf.xml+0 29 removed
    @@ -1,29 +0,0 @@
    -<configuration name="logfile.conf" description="File Logging">
    -  <settings>
    -   <!-- true to auto rotate on HUP, false to open/close -->
    -   <param name="rotate-on-hup" value="true"/>
    -  </settings>
    -  <profiles>
    -    <profile name="default">
    -      <settings>
    -        <!-- File to log to -->
    -	<!--<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>
    -      <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
    -	     Please see comments in console.conf.xml for more information
    -	-->
    -	<map name="all" value="debug,info,notice,warning,err,crit,alert"/>
    -      </mappings>
    -    </profile>
    -  </profiles>
    -</configuration>
    
  • conf/rayo/autoload_configs/modules.conf.xml+0 70 removed
    @@ -1,70 +0,0 @@
    -<configuration name="modules.conf" description="Modules">
    -  <modules>
    -    <!-- Loggers -->
    -    <load module="mod_console"/>
    -    <load module="mod_logfile"/>
    -
    -    <!-- Event Handlers -->
    -    <load module="mod_cdr_csv"/>
    -    <load module="mod_event_socket"/>
    -    <load module="mod_rayo"/>
    -
    -    <!-- Endpoints -->
    -    <load module="mod_sofia"/>
    -    <load module="mod_loopback"/>
    -
    -    <!-- Applications -->
    -    <!--load module="mod_signalwire"-->
    -    <load module="mod_commands"/>
    -    <load module="mod_conference"/>
    -    <load module="mod_dptools"/>
    -    <load module="mod_expr"/>
    -    <load module="mod_esf"/>
    -    <load module="mod_fsv"/>
    -    <load module="mod_http_cache"/>
    -
    -    <!-- Dialplan Interfaces -->
    -    <load module="mod_dialplan_xml"/>
    -
    -    <!-- Codec Interfaces -->
    -    <load module="mod_spandsp"/>
    -    <load module="mod_opus"/>
    -    <load module="mod_ilbc"/>
    -    <load module="mod_h26x"/>
    -
    -    <!-- File Format Interfaces -->
    -    <load module="mod_sndfile"/>
    -    <load module="mod_native_file"/>
    -    <load module="mod_shell_stream"/>
    -    <!--For icecast/mp3 streams/files-->
    -    <load module="mod_shout"/>
    -    <!--For local streams (play all the files in a directory)-->
    -    <load module="mod_local_stream"/>
    -    <load module="mod_tone_stream"/>
    -    <load module="mod_ssml"/>
    -
    -    <!-- ASR /TTS -->
    -    <load module="mod_flite"/>
    -    <load module="mod_pocketsphinx"/>
    -    <!-- <load module="mod_tts_commandline"/> -->
    -
    -    <!-- Say -->
    -    <!--load module="mod_say_de"/-->
    -    <!--load module="mod_say_es"/-->
    -    <!--load module="mod_say_fr"/-->
    -    <!--load module="mod_say_hr"/-->
    -    <!--load module="mod_say_it"/-->
    -    <!--load module="mod_say_nl"/-->
    -    <!--load module="mod_say_ru"/-->
    -    <!--load module="mod_say_zh"/-->
    -    <load module="mod_say_en"/>
    -    <!--load module="mod_say_fa"/-->
    -    <!--load module="mod_say_he"/-->
    -    <!--load module="mod_say_hu"/-->
    -    <!--load module="mod_say_ja"/-->
    -    <!--load module="mod_say_pt"/-->
    -    <!--load module="mod_say_th"/-->
    -    <!--load module="mod_say_sv"/-->
    -
    -  </modules>
    -</configuration>
    
  • conf/rayo/autoload_configs/pocketsphinx.conf.xml+0 12 removed
    @@ -1,12 +0,0 @@
    -<configuration name="pocketsphinx.conf" description="PocketSphinx ASR Configuration">
    -  <settings>
    -    <param name="threshold" value="400"/>
    -    <param name="silence-hits" value="25"/>
    -    <param name="listen-hits" value="1"/>
    -    <param name="auto-reload" value="true"/>
    -    <!--<param name="language-weight" value="1"/>-->
    -    <!--<param name="narrowband-model" value="communicator"/>-->
    -    <!--<param name="wideband-model" value="wsj1"/>-->
    -    <!--<param name="dictionary" value="default.dic"/>-->
    -  </settings>
    -</configuration>
    
  • conf/rayo/autoload_configs/post_load_modules.conf.xml+0 4 removed
    @@ -1,4 +0,0 @@
    -<configuration name="post_load_modules.conf" description="Modules">
    -  <modules>
    -  </modules>
    -</configuration>
    
  • conf/rayo/autoload_configs/pre_load_modules.conf.xml+0 7 removed
    @@ -1,7 +0,0 @@
    -<configuration name="pre_load_modules.conf" description="Modules">
    
    -  <modules>
    
    -    <!-- Databases -->
    
    -    <!-- <load module="mod_mariadb"/> -->
    
    -    <load module="mod_pgsql"/>
    
    -  </modules>
    
    -</configuration>
    
    
  • conf/rayo/autoload_configs/presence_map.conf.xml+0 7 removed
    @@ -1,7 +0,0 @@
    -<configuration name="presence_map.conf" description="PRESENCE MAP">
    -  <domains>
    -    <domain name="$${domain}">
    -      <exten regex="3\d+" proto="conf"/>
    -    </domain>
    -  </domains>
    -</configuration>
    
  • conf/rayo/autoload_configs/rayo.conf.xml+0 315 removed
    @@ -1,315 +0,0 @@
    -<configuration name="rayo.conf" description="Rayo server config">
    -
    -	<!-- rayo params -->
    -	<settings>
    -		<!-- ends idle calls : unbridged calls that have not been controlled by client in some time -->
    -		<param name="max-idle-sec" value="300"/>
    -		<!-- conference profile to use for mixers- sla = shared line appearance / conference /w no audio -->
    -		<param name="mixer-conf-profile" value="sla"/>
    -		<!-- if true, to attribute in offer uses URI instead of name/number -->
    -		<param name="offer-uri" value="true"/>
    -		<!-- how offers are distributed to clients (all, first, random). -->
    -		<param name="offer-algorithm" value="all"/>
    -		<!-- If offer is not answered after timeout, next client is offered (based on algorithm picked).
    -		     If no other clients are available, the call is rejected.  Set to 0 to disable -->
    -		<param name="offer-timeout-ms" value="5000"/>
    -		<!-- if true, channel variables are added to rayo client offer -->
    -		<param name="add-variables-to-offer" value="false"/>
    -                <!-- if true, channel variables are added to offer, ringing, answered, and end events sent to rayo clients -->
    -		<param name="add-variables-to-events" value="false"/>
    -	</settings>
    -
    -	<!-- record component params -->
    -	<record>
    -		<param name="record-file-prefix" value="$${recordings_dir}/"/>
    -	</record>
    -
    -	<!-- input component params -->
    -	<input>
    -		<param name="default-recognizer" value="pocketsphinx"/>
    -	</input>
    -
    -	<!-- send/receivefax component params -->
    -	<fax>
    -		<!-- where to store incoming faxes -->
    -		<param name="receivefax-file-prefix" value="/tmp/"/>
    -	</fax>
    -
    -	<!-- Call progress analysis configuration -->
    -	<!-- Define CPA detectors.  These are sources for Rayo CPA signal events -->
    -	<!-- Detectors must fire an event that can be translated by mod_rayo into a CPA signal event -->
    -	<cpa>
    -		<!-- map DTMF events to CPA -->
    -		<detector name="core_dtmf_event">
    -			<event class="DTMF" value-header="DTMF-Digit" duration-header="DTMF-Duration">
    -				<signal-type value="dtmf"/>
    -			</event>
    -		</detector>
    -
    -		<!-- map mod_spandsp fax detector to the Rayo CPA events. Fires DETECTED_FAX_* event once and quits. -->
    -		<detector name="mod_spandsp_fax_ced">
    -			<start application="spandsp_start_fax_detect" data="event 'Event-Name=CUSTOM,Event-Subclass=DETECTED_FAX_CED' 500 ced"/>
    -			<stop application="spandsp_stop_fax_detect" data=""/>
    -			<event class="CUSTOM" subclass="DETECTED_FAX_CED">
    -				<signal-type value="fax-ced"/>
    -			</event>
    -		</detector>
    -
    -		<detector name="mod_spandsp_fax_cng">
    -			<start application="spandsp_start_fax_detect" data="event 'Event-Name=CUSTOM,Event-Subclass=DETECTED_FAX_CNG' 500"/>
    -			<stop application="spandsp_stop_fax_detect" data=""/>
    -			<event class="CUSTOM" subclass="DETECTED_FAX_CNG">
    -				<signal-type value="fax-cng"/>
    -			</event>
    -		</detector>
    -
    -		<!-- map mod_spandsp call progress tone detector to Rayo CPA signal events.  Fires DETECTED_TONE events until stopped. -->
    -		<detector name="mod_spandsp_tone">
    -			<start application="spandsp_start_tone_detect" data="1"/>
    -			<stop application="spandsp_stop_tone_detect" data=""/>
    -			<!-- map tone events to Rayo CPA signal type -->
    -			<event class="DETECTED_TONE" type-header="Detected-Tone">
    -				<signal-type header-value="SIT" value="sit"/>
    -				<signal-type header-value="BUSY_TONE" value="busy"/>
    -				<signal-type header-value="REORDER_TONE" value="congestion"/>
    -				<signal-type header-value="RING_TONE" value="ring"/>
    -			</event>
    -		</detector>
    -
    -		<!-- map mod_avmd detector to Rayo CPA beep event.  Fires avmd::beep event once. -->
    -		<detector name="mod_avmd">
    -			<start application="avmd" data=""/>
    -			<stop application="avmd" data="stop"/>
    -			<event class="CUSTOM" subclass="avmd::beep">
    -				<signal-type value="beep"/>
    -			</event>
    -		</detector>
    -
    -		<!-- Alternative beep detector using mod_vmd.  Fires vmd::beep events until stopped. -->
    -		<!--detector name="mod_vmd">
    -			<start application="vmd" data=""/>
    -			<stop application="vmd" data="stop"/>
    -			<event class="CUSTOM" subclass="vmd::beep">
    -				<signal-type value="beep"/>
    -			</event>
    -		</detector-->
    -	</cpa>
    -
    -	<!-- XMPP server domain -->
    -	<domain name="$${rayo_domain_name}" shared-secret="ClueCon">
    -	<!-- use this instead if you want secure XMPP client to server connections.  Put .crt and .key file in freeswitch/certs -->
    -	<!--domain name="$${rayo_domain_name}" shared-secret="ClueCon" cert="$${base_dir}/certs/$${rayo_domain_name}.crt" key="$${base_dir}/certs/$${rayo_domain_name}.key"-->
    -
    -		<!-- Listeners for new Rayo client connections -->
    -		<!--listen type="c2s" port="5222" address="$${local_ip_v4}" acl="rayo-clients"/-->
    -		<listen type="c2s" port="5222" address="$${rayo_ip}" acl=""/>
    -
    -		<!-- Listeners for new server connections -->
    -		<!--listen type="s2s" port="5269" address="$${local_ip_v4}" acl="rayo-servers"/-->
    -
    -		<!-- servers to connect to -->
    -		<!--connect port="5269" address="node.example.com" domain="example.com"/-->
    -
    -		<!-- Authorized users -->
    -		<users>
    -			<user name="usera" password="1"/>
    -		</users>
    -	</domain>
    -
    -	<!-- URI mapping to endpoint / gateway -->
    -	<dial-gateways>
    -		<dial-gateway uriprefix="default" dialprefix="sofia/gateway/outbound/" strip="0"/>
    -		<dial-gateway uriprefix="sip:" dialprefix="sofia/external/" strip="0"/>
    -		<dial-gateway uriprefix="tel:" dialprefix="sofia/gateway/outbound/" strip="4"/>
    -		<!-- pass through user and sofia unaltered -->
    -		<dial-gateway uriprefix="user/" dialprefix="" strip=""/>
    -		<dial-gateway uriprefix="sofia/" dialprefix="" strip=""/>
    -		<dial-gateway uriprefix="loopback/" dialprefix="" strip=""/>
    -	</dial-gateways>
    -
    -	<!-- IQ request aliases.  Used mainly for testing purposes or for controlling a rayo call via the console -->
    -	<aliases>
    -		<alias name="detect" target="call" args="1"><![CDATA[<input xmlns="urn:xmpp:rayo:input:1" mode="cpa"><grammar url="urn:xmpp:rayo:cpa:$1:1"/></input>]]></alias>
    -		<alias name="detect-once" target="call" args="1"><![CDATA[<input xmlns="urn:xmpp:rayo:input:1" mode="cpa"><grammar url="urn:xmpp:rayo:cpa:$1:1?terminate=true"/></input>]]></alias>
    -		<alias name="detect-tones" target="call"><![CDATA[<input xmlns="urn:xmpp:rayo:input:1" mode="cpa"><grammar url="urn:xmpp:rayo:cpa:busy:1"/><grammar url="urn:xmpp:rayo:cpa:congestion:1"/><grammar url="urn:xmpp:rayo:cpa:sit:1"/></input>]]></alias>
    -		<alias name="ping" target="external"><![CDATA[<iq type="get"><ping xmlns="urn:xmpp:ping"/></iq>]]></alias>
    -		<alias name="dial" target="server" args="2"><![CDATA[<dial xmlns="urn:xmpp:rayo:1" from="$1" to="$2"/>]]></alias>
    -		<alias name="answer" target="call"><![CDATA[<answer xmlns="urn:xmpp:rayo:1"/>]]></alias>
    -		<alias name="hangup" target="call"><![CDATA[<hangup xmlns="urn:xmpp:rayo:1"/>]]></alias>
    -		<alias name="join" target="call" args="1"><![CDATA[<join xmlns="urn:xmpp:rayo:1" call-uri="xmpp:$1"/>]]></alias>
    -		<alias name="join_mixer_duplex" target="call" args="1"><![CDATA[<join xmlns="urn:xmpp:rayo:1" mixer-name="$1" direction="duplex"/>]]></alias>
    -		<alias name="join_mixer_send" target="call" args="1"><![CDATA[<join xmlns="urn:xmpp:rayo:1" mixer-name="$1" direction="send"/>]]></alias>
    -		<alias name="join_mixer_recv" target="call" args="1"><![CDATA[<join xmlns="urn:xmpp:rayo:1" mixer-name="$1" direction="recv"/>]]></alias>
    -		<alias name="unjoin_mixer" target="call" args="1"><![CDATA[<unjoin xmlns="urn:xmpp:rayo:1" mixer-name="$1"/>]]></alias>
    -		<alias name="unjoin" target="call"><![CDATA[<unjoin xmlns="urn:xmpp:rayo:1"/>]]></alias>
    -		<alias name="unjoin_call" target="call" args="1"><![CDATA[<unjoin xmlns="urn:xmpp:rayo:1" call-uri="xmpp:$1"/>]]></alias>
    -		<alias name="stop" target="component"><![CDATA[<stop xmlns="urn:xmpp:rayo:ext:1"/>]]></alias>
    -		<alias name="output_bad" target="call"><![CDATA[<output xmlns="urn:xmpp:rayo:output:1" repeat-time="100"></output>]]></alias>
    -		<alias name="pause" target="output"><![CDATA[<pause xmlns="urn:xmpp:rayo:output:1"/>]]></alias>
    -		<alias name="resume" target="output"><![CDATA[<resume xmlns="urn:xmpp:rayo:output:1"/>]]></alias>
    -		<alias name="speed-up" target="output"><![CDATA[<speed-up xmlns="urn:xmpp:rayo:output:1"/>]]></alias>
    -		<alias name="speed-down" target="output"><![CDATA[<speed-down xmlns="urn:xmpp:rayo:output:1"/>]]></alias>
    -		<alias name="volume-up" target="output"><![CDATA[<volume-up xmlns="urn:xmpp:rayo:output:1"/>]]></alias>
    -		<alias name="volume-down" target="output"><![CDATA[<volume-down xmlns="urn:xmpp:rayo:output:1"/>]]></alias>
    -		<alias name="receivefax" target="call"><![CDATA[<receivefax xmlns="urn:xmpp:rayo:fax:1"/>]]></alias>
    -		<alias name="sendfax" target="call" args="1"><![CDATA[<sendfax xmlns="urn:xmpp:rayo:fax:1"><document xmlns="urn:xmpp:rayo:fax:1" url="$1"/></sendfax>]]></alias>
    -		<alias name="record" target="call"><![CDATA[<record xmlns="urn:xmpp:rayo:record:1"/>]]></alias>
    -		<alias name="record_pause" target="record"><![CDATA[<pause xmlns="urn:xmpp:rayo:record:1"/>]]></alias>
    -		<alias name="record_resume" target="record"><![CDATA[<resume xmlns="urn:xmpp:rayo:record:1"/>]]></alias>
    -		<alias name="prompt_barge" target="call">
    -			<![CDATA[
    -				<prompt xmlns="urn:xmpp:rayo:prompt:1" barge-in="true">
    -					<output xmlns="urn:xmpp:rayo:output:1" repeat-times="5">
    -						<document content-type="application/ssml+xml">
    -							<![CDATA[<speak><p>Please press a digit.</p></speak>]]]]><![CDATA[>
    -						</document>
    -					</output>
    -					<input xmlns="urn:xmpp:rayo:input:1" mode="dtmf" initial-timeout="5000" inter-digit-timeout="3000">
    -						<grammar content-type="application/srgs+xml">
    -							<![CDATA[<grammar mode="dtmf"><rule id="digit" scope="public"><one-of><item>0</item><item>1</item><item>2</item><item>3</item><item>4</item><item>5</item><item>6</item><item>7</item><item>8</item><item>9</item></one-of></rule></grammar>]]]]><![CDATA[>
    -						</grammar>
    -					</input>
    -				</prompt>
    -			]]>
    -		</alias>
    -		<alias name="prompt_no_barge" target="call">
    -			<![CDATA[
    -				<prompt xmlns="urn:xmpp:rayo:prompt:1" barge-in="false">
    -					<output xmlns="urn:xmpp:rayo:output:1" repeat-times="5">
    -						<document content-type="application/ssml+xml">
    -							<![CDATA[<speak><p>Please press a digit.</p></speak>]]]]><![CDATA[>
    -						</document>
    -					</output>
    -					<input xmlns="urn:xmpp:rayo:input:1" mode="dtmf" initial-timeout="5000" inter-digit-timeout="3000">
    -						<grammar content-type="application/srgs+xml">
    -							<![CDATA[<grammar mode="dtmf"><rule id="digit" scope="public"><one-of><item>0</item><item>1</item><item>2</item><item>3</item><item>4</item><item>5</item><item>6</item><item>7</item><item>8</item><item>9</item></one-of></rule></grammar>]]]]><![CDATA[>
    -						</grammar>
    -					</input>
    -				</prompt>
    -			]]>
    -		</alias>
    -		<alias name="prompt_long" target="call">
    -			<![CDATA[
    -				<prompt xmlns="urn:xmpp:rayo:prompt:1" barge-in="true">
    -					<output xmlns="urn:xmpp:rayo:output:1" repeat-times="100">
    -						<document content-type="application/ssml+xml">
    -							<![CDATA[<speak><p>Please press a digit.</p></speak>]]]]><![CDATA[>
    -						</document>
    -					</output>
    -					<input xmlns="urn:xmpp:rayo:input:1" mode="dtmf" initial-timeout="5000" inter-digit-timeout="3000">
    -						<grammar content-type="application/srgs+xml">
    -							<![CDATA[<grammar mode="dtmf"><rule id="digit" scope="public"><one-of><item>0</item><item>1</item><item>2</item><item>3</item><item>4</item><item>5</item><item>6</item><item>7</item><item>8</item><item>9</item></one-of></rule></grammar>]]]]><![CDATA[>
    -						</grammar>
    -					</input>
    -				</prompt>
    -			]]>
    -		</alias>
    -		<alias name="prompt_multi_digit" target="call">
    -			<![CDATA[
    -				<prompt xmlns="urn:xmpp:rayo:prompt:1" barge-in="true">
    -					<output xmlns="urn:xmpp:rayo:output:1" repeat-times="100">
    -						<document content-type="application/ssml+xml">
    -							<![CDATA[<speak><p>Please press a digit.</p></speak>]]]]><![CDATA[>
    -						</document>
    -					</output>
    -					<input xmlns="urn:xmpp:rayo:input:1" mode="dtmf" initial-timeout="5000" inter-digit-timeout="3000">
    -						<grammar content-type="application/srgs+xml">
    -							<![CDATA[<grammar mode="dtmf"><rule id="digit" scope="public"><item repeat="1-4"><one-of><item>0</item><item>1</item><item>2</item><item>3</item><item>4</item><item>5</item><item>6</item><item>7</item><item>8</item><item>9</item></one-of></item></rule></grammar>]]]]><![CDATA[>
    -						</grammar>
    -					</input>
    -				</prompt>
    -			]]>
    -		</alias>
    -		<alias name="prompt_terminator" target="call">
    -			<![CDATA[
    -				<prompt xmlns="urn:xmpp:rayo:prompt:1" barge-in="true">
    -					<output xmlns="urn:xmpp:rayo:output:1" repeat-times="100">
    -						<document content-type="application/ssml+xml">
    -							<![CDATA[<speak><p>Please press a digit.</p></speak>]]]]><![CDATA[>
    -						</document>
    -					</output>
    -					<input xmlns="urn:xmpp:rayo:input:1" mode="dtmf" initial-timeout="5000" inter-digit-timeout="3000" terminator="#">
    -						<grammar content-type="application/srgs+xml">
    -							<![CDATA[<grammar mode="dtmf"><rule id="digit" scope="public"><item repeat="1-4"><one-of><item>0</item><item>1</item><item>2</item><item>3</item><item>4</item><item>5</item><item>6</item><item>7</item><item>8</item><item>9</item></one-of></item></rule></grammar>]]]]><![CDATA[>
    -						</grammar>
    -					</input>
    -				</prompt>
    -			]]>
    -		</alias>
    -		<alias name="prompt_input_bad" target="call">
    -			<![CDATA[
    -				<prompt xmlns="urn:xmpp:rayo:prompt:1" barge-in="true">
    -					<output xmlns="urn:xmpp:rayo:output:1" repeat-times="100">
    -						<document content-type="application/ssml+xml">
    -							<![CDATA[<speak><p>Please press a digit.</p></speak>]]]]><![CDATA[>
    -						</document>
    -					</output>
    -					<input xmlns="urn:xmpp:rayo:input:1" mode="dtf" initial-timeout="5000" inter-digit-timeout="3000" terminator="#">
    -						<grammar content-type="application/srgs+xml">
    -							<![CDATA[<grammar mode="dtmf"><rule id="digit" scope="public"><item repeat="1-4"><one-of><item>0</item><item>1</item><item>2</item><item>3</item><item>4</item><item>5</item><item>6</item><item>7</item><item>8</item><item>9</item></one-of></item></rule></grammar>]]]]><![CDATA[>
    -						</grammar>
    -					</input>
    -				</prompt>
    -			]]>
    -		</alias>
    -		<alias name="prompt_output_bad" target="call">
    -			<![CDATA[
    -				<prompt xmlns="urn:xmpp:rayo:prompt:1" barge-in="true">
    -					<output xmlns="urn:xmpp:rayo:output:1" repeat-time="100">
    -						<document content-type="application/ssml+xml">
    -							<![CDATA[<speak><p>Please press a digit.</p></speak>]]]]><![CDATA[>
    -						</document>
    -					</output>
    -					<input xmlns="urn:xmpp:rayo:input:1" mode="dtmf" initial-timeout="5000" inter-digit-timeout="3000" terminator="#">
    -						<grammar content-type="application/srgs+xml">
    -							<![CDATA[<grammar mode="dtmf"><rule id="digit" scope="public"><item repeat="1-4"><one-of><item>0</item><item>1</item><item>2</item><item>3</item><item>4</item><item>5</item><item>6</item><item>7</item><item>8</item><item>9</item></one-of></item></rule></grammar>]]]]><![CDATA[>
    -						</grammar>
    -					</input>
    -				</prompt>
    -			]]>
    -		</alias>
    -		<alias name="input" target="call">
    -			<![CDATA[
    -				<input xmlns="urn:xmpp:rayo:input:1" mode="dtmf" initial-timeout="5000" inter-digit-timeout="3000">
    -					<grammar content-type="application/srgs+xml">
    -						<![CDATA[<grammar mode="dtmf"><rule id="digit" scope="public"><one-of><item>0</item><item>1</item><item>2</item><item>3</item><item>4</item><item>5</item><item>6</item><item>7</item><item>8</item><item>9</item></one-of></rule></grammar>]]]]><![CDATA[>
    -					</grammar>
    -				</input>
    -			]]>
    -		</alias>
    -
    -		<alias name="input_voice_yesno_pocketsphinx" target="call">
    -			<![CDATA[
    -				<input xmlns="urn:xmpp:rayo:input:1" mode="voice" recognizer="pocketsphinx" max-silence="5000" initial-timeout="5000">
    -					<grammar content-type="application/srgs+xml>
    -					<![CDATA[
    -						<grammar xmlns="http://www.w3.org/2001/06/grammar"
    -							xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    -							xsi:schemaLocation="http://www.w3.org/2001/06/grammar http://www.w3.org/TR/speech-grammar/grammar.xsd"
    -							xml:lang="en-US" version="1.0">
    -								<rule id="yesno"><one-of><item>yes</item><item>no</item></one-of></rule></grammar>
    -					]]]]><![CDATA[>
    -					</grammar>
    -				</input>
    -			]]>
    -		</alias>
    -
    -		<alias name="input_voice_yesno_default" target="call">
    -			<![CDATA[
    -				<input xmlns="urn:xmpp:rayo:input:1" mode="voice" max-silence="5000" initial-timeout="5000">
    -					<grammar content-type="application/srgs+xml>
    -					<![CDATA[
    -						<grammar xmlns="http://www.w3.org/2001/06/grammar"
    -							xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    -							xsi:schemaLocation="http://www.w3.org/2001/06/grammar http://www.w3.org/TR/speech-grammar/grammar.xsd"
    -							xml:lang="en-US" version="1.0">
    -								<rule id="yesno"><one-of><item>yes</item><item>no</item></one-of></rule></grammar>
    -					]]]]><![CDATA[>
    -					</grammar>
    -				</input>
    -			]]>
    -		</alias>
    -
    -	</aliases>
    -
    -</configuration>
    
  • conf/rayo/autoload_configs/shout.conf.xml+0 9 removed
    @@ -1,9 +0,0 @@
    -<configuration name="shout.conf" description="mod shout config">
    -  <settings>
    -    <!-- Don't change these unless you are insane -->
    -    <!--<param name="decoder" value="i586"/>-->
    -    <!--<param name="volume" value=".1"/>-->
    -    <!-- mod_shout sets output amplitude scale to 8192 by default - preserve mpg123 default of 32768 -->
    -    <param name="outscale" value="32768"/>
    -  </settings>
    -</configuration>
    
  • conf/rayo/autoload_configs/sofia.conf.xml+0 19 removed
    @@ -1,19 +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"/>
    -    <!-- <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>
    
  • conf/rayo/autoload_configs/spandsp.conf.xml+0 113 removed
    @@ -1,113 +0,0 @@
    -<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 increment 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>
    -
    
  • conf/rayo/autoload_configs/ssml.conf.xml+0 29 removed
    @@ -1,29 +0,0 @@
    -<configuration name="ssml.conf" description="SSML parser config">
    -
    -	<!-- voices in order of preference -->
    -	<tts-voices>
    -		<voice name="slt" language="en-US" gender="female" prefix="tts://flite|slt|"/>
    -		<voice name="kal" language="en-US" gender="male" prefix="tts://flite|kal|"/>
    -		<voice name="rms" language="en-US" gender="male" prefix="tts://flite|rms|"/>
    -		<voice name="awb" language="en-US" gender="male" prefix="tts://flite|awb|"/>
    -	</tts-voices>
    -
    -	<!-- maps ISO language to say module -->
    -	<language-map>
    -		<language iso="en-US" say-module="en" language="en"/>
    -	</language-map>
    -
    -	<!-- say voices in order of preference -->
    -	<say-voices>
    -		<voice name="callie" language="en-US" gender="female" prefix="$${sound_prefix}/"/>
    -	</say-voices>
    -
    -	<!-- map interpret-as to say macros -->
    -	<macros>
    -		<macro name="ordinal" type="number" method="counted"/>
    -		<macro name="cardinal" type="number" method="pronounced"/>
    -		<macro name="characters" type="name_spelled" method="pronounced"/>
    -		<macro name="telephone" type="telephone_number" method="pronounced"/>
    -	</macros>
    -
    -</configuration>
    
  • conf/rayo/autoload_configs/switch.conf.xml+0 190 removed
    @@ -1,190 +0,0 @@
    -<configuration name="switch.conf" description="Core Configuration">
    -
    -  <cli-keybindings>
    -    <key name="1" value="help"/>
    -    <key name="2" value="status"/>
    -    <key name="3" value="show channels"/>
    -    <key name="4" value="show calls"/>
    -    <key name="5" value="sofia status"/>
    -    <key name="6" value="reloadxml"/>
    -    <key name="7" value="console loglevel 0"/>
    -    <key name="8" value="console loglevel 7"/>
    -    <key name="9" value="sofia status profile internal"/>
    -    <key name="10" value="sofia profile internal siptrace on"/>
    -    <key name="11" value="sofia profile internal siptrace off"/>
    -    <key name="12" value="version"/>
    -  </cli-keybindings> 
    -  
    -  <default-ptimes>
    -    <!-- Set this to override the 20ms assumption of various codecs in the sdp with no ptime defined -->
    -    <!-- <codec name="G729" ptime="40"/> -->
    -  </default-ptimes>
    -  
    -  <settings>
    -    <!-- Colorize the Console -->
    -    <param name="colorize-console" value="true"/>
    -
    -    <!--Include full timestamps in dialplan logs -->
    -    <param name="dialplan-timestamps" value="false"/>
    -
    -    <!-- Run the timer at 20ms by default and drop down as needed unless you set 1m-timer=true which was previous default -->
    -    <!-- <param name="1ms-timer" value="true"/> -->
    -
    -    <!--
    -	Set the Switch Name for HA environments.
    -	When setting the switch name, it will override the system hostname for all DB and CURL requests
    -	allowing cluster environments such as RHCS to have identical FreeSWITCH configurations but run
    -	as different hostnames.
    -    -->
    -    <!-- <param name="switchname" value="freeswitch"/> -->
    -
    -    <!-- Maximum number of simultaneous DB handles open -->
    -    <param name="max-db-handles" value="50"/>
    -    <!-- Maximum number of seconds to wait for a new DB handle before failing -->
    -    <param name="db-handle-timeout" value="10"/>
    -
    -    <!-- Minimum idle CPU before refusing calls -->
    -    <!-- <param name="min-idle-cpu" value="25"/> -->
    -
    -    <!--
    -	Max number of sessions to allow at any given time.
    -	
    -	NOTICE: If you're driving 28 T1's in a single box you should set this to 644*2 or 1288
    -	this will ensure you're able to use the entire DS3 without a problem.  Otherwise you'll
    -	be 144 channels short of always filling that DS3 up which can translate into waste.
    -    -->
    -    <param name="max-sessions" value="1000"/>
    -    <!--Most channels to create per second -->
    -    <param name="sessions-per-second" value="30"/>
    -    <!-- Default Global Log Level - value is one of debug,info,notice,warning,err,crit,alert -->
    -    <param name="loglevel" value="debug"/>
    -
    -    <!-- Set the core DEBUG level (0-10) -->
    -    <!-- <param name="debug-level" value="10"/> -->
    -
    -    <!-- SQL Buffer length within rage of 32k to 10m -->
    -    <!-- <param name="sql-buffer-len" value="1m"/> -->
    -    <!-- Maximum SQL Buffer length must be greater than sql-buffer-len -->
    -    <!-- <param name="max-sql-buffer-len" value="2m"/> -->
    -
    -    <!-- 
    -	 The min-dtmf-duration specifies the minimum DTMF duration to use on 
    -	 outgoing events. Events shorter than this will be increased in duration
    -	 to match min_dtmf_duration. You cannot configure a dtmf duration on a 
    -	 profile that is less than this setting. You may increase this value,
    -	 but cannot set it lower than 400. This value cannot exceed 
    -	 max-dtmf-duration. -->
    -    <!-- <param name="min-dtmf-duration" value="400"/> -->
    -
    -    <!-- 
    -	 The max-dtmf-duration caps the playout of a DTMF event at the specified
    -	 duration. Events exceeding this duration will be truncated to this
    -	 duration. You cannot configure a duration on a profile that exceeds
    -	 this setting. This setting can be lowered, but cannot exceed 192000. 
    -	 This setting cannot be set lower than min_dtmf_duration. -->
    -    <!-- <param name="max-dtmf-duration" value="192000"/> -->
    -
    -    <!-- 
    -	 The default_dtmf_duration specifies the DTMF duration to use on
    -	 originated DTMF events or on events that are received without a
    -	 duration specified. This value can be increased or lowered. This
    -	 value is lower-bounded by min_dtmf_duration and upper-bounded by
    -	 max-dtmf-duration\. -->
    -    <!-- <param name="default-dtmf-duration" value="2000"/> -->
    -
    -    <!--
    -	If you want to send out voicemail notifications via Windows you'll need to change the mailer-app
    -	variable to the setting below:
    -	
    -	<param name="mailer-app" value="msmtp"/>
    -	
    -	Do not change mailer-app-args.
    -	You will also need to download a sendmail clone for Windows (msmtp). This version works without issue:
    -	http://msmtp.sourceforge.net/index.html. Download and copy the .exe to %winddir%\system32.
    -	You'll need to create a small config file for smtp credentials (host name, authentication, tls, etc.) in
    -	%USERPROFILE%\Application Data\ called "msmtprc.txt". Below is a sample copy of this file:
    -	
    -	###################################
    -	# The SMTP server of the provider.
    -	account provider
    -	host smtp.myisp.com
    -	from john@myisp.com
    -	auth login
    -	user johndoe
    -	password mypassword
    -	
    -	# Set a default account
    -	account default : provider
    -	###################################
    -	
    -    -->    
    -
    -    <param name="mailer-app" value="sendmail"/>
    -    <param name="mailer-app-args" value="-t"/>
    -    <param name="dump-cores" value="yes"/>
    -
    -    <!-- Enable verbose channel events to include every detail about a channel on every event  -->
    -    <!-- <param name="verbose-channel-events" value="no"/> -->
    -
    -    <!-- Enable clock nanosleep -->
    -    <!-- <param name="enable-clock-nanosleep" value="true"/> -->
    -
    -    <!-- Enable monotonic timing -->
    -    <!-- <param name="enable-monotonic-timing" value="true"/> -->
    -
    -    <!-- NEEDS DOCUMENTATION -->
    -    <!-- <param name="enable-softtimer-timerfd" value="true"/> -->
    -    <!-- <param name="enable-cond-yield" value="true"/> -->
    -    <!-- <param name="enable-timer-matrix" value="true"/> -->
    -    <!-- <param name="threaded-system-exec" value="true"/> -->
    -    <!-- <param name="tipping-point" value="0"/> -->
    -    <!-- <param name="timer-affinity" value="disabled"/> -->
    -    <!-- NEEDS DOCUMENTATION -->
    -
    -    <!-- RTP port range -->
    -    <!-- <param name="rtp-start-port" value="16384"/> -->
    -    <!-- <param name="rtp-end-port" value="32768"/> -->
    -
    -    <!--
    -	 Native PostgreSQL support was removed from the FreeSWITCH Core!
    -	 =================================
    -	 NOTICE: You MUST enable mod_pgsql        
    -	 =================================
    -	 According to https://www.postgresql.org/docs/9.6/libpq-connect.html#LIBPQ-CONNSTRING
    -	 There are two accepted formats for connection strings supported by the libpq library: 
    -	 * For plain keyword = value strings use pgsql://
    -	   pgsql://hostaddr=127.0.0.1 dbname=freeswitch user=freeswitch password='' options='-c client_min_messages=NOTICE' application_name='freeswitch'
    -	 * For RFC 3986 URIs use postgresql:// or postgres://
    -	   postgresql://
    -	   postgresql://localhost
    -	   postgresql://localhost:5433
    -	   postgresql://localhost/mydb
    -	   postgresql://user@localhost
    -	   postgresql://user:secret@localhost
    -	   postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp
    -	   postgresql:///mydb?host=localhost&port=5433
    -    -->
    -    <!-- <param name="core-db-dsn" value="pgsql://hostaddr=127.0.0.1 dbname=freeswitch user=freeswitch password='' options='-c client_min_messages=NOTICE' application_name='freeswitch'" /> -->
    -    <!-- <param name="core-db-dsn" value="postgresql://freeswitch:@127.0.0.1/freeswitch?options=-c%20client_min_messages%3DNOTICE&application_name=freeswitch" /> -->
    -    <!-- <param name="core-db-dsn" value="mariadb://Server=localhost;Database=freeswitch;Uid=freeswitch;Pwd=pass;" /> -->
    -    <!-- <param name="core-db-dsn" value="dsn:username:password" /> -->
    -    <!-- 
    -	 Allow to specify the sqlite db at a different location (In this example, move it to ramdrive for
    -	 better performance on most linux distro (note, you loose the data if you reboot))
    -    -->
    -    <!-- <param name="core-db-name" value="/dev/shm/core.db" /> -->
    -
    -    <!-- The system will create all the db schemas automatically, set this to false to avoid this behaviour -->
    -    <!-- <param name="auto-create-schemas" value="true"/> -->
    -    <!-- <param name="auto-clear-sql" value="true"/> -->
    -    <!-- <param name="enable-early-hangup" value="true"/> -->
    -
    -    <!-- <param name="core-dbtype" value="MSSQL"/> -->
    -
    -    <!-- Allow multiple registrations to the same account in the central registration table -->
    -    <!-- <param name="multiple-registrations" value="true"/> -->
    -
    -  </settings>
    -
    -</configuration>
    -
    
  • conf/rayo/autoload_configs/timezones.conf.xml+0 661 removed
    @@ -1,661 +0,0 @@
    -<configuration name="timezones.conf" description="Timezones">
    -    <timezones>
    -        <zone name="Africa/Abidjan" value="GMT0" />
    -        <zone name="Africa/Accra" value="GMT0" />
    -        <zone name="Africa/Addis_Ababa" value="EAT-3" />
    -        <zone name="Africa/Algiers" value="CET-1" />
    -        <zone name="Africa/Asmara" value="EAT-3" />
    -        <zone name="Africa/Asmera" value="EAT-3" />
    -        <zone name="Africa/Bamako" value="GMT0" />
    -        <zone name="Africa/Bangui" value="WAT-1" />
    -        <zone name="Africa/Banjul" value="GMT0" />
    -        <zone name="Africa/Bissau" value="GMT0" />
    -        <zone name="Africa/Blantyre" value="CAT-2" />
    -        <zone name="Africa/Brazzaville" value="WAT-1" />
    -        <zone name="Africa/Bujumbura" value="CAT-2" />
    -        <zone name="Africa/Cairo" value="EET-2EEST,M4.5.5/0,M10.5.4/24" />
    -        <zone name="Africa/Casablanca" value="STD-1" />
    -        <zone name="Africa/Ceuta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Africa/Conakry" value="GMT0" />
    -        <zone name="Africa/Dakar" value="GMT0" />
    -        <zone name="Africa/Dar_es_Salaam" value="EAT-3" />
    -        <zone name="Africa/Djibouti" value="EAT-3" />
    -        <zone name="Africa/Douala" value="WAT-1" />
    -        <zone name="Africa/El_Aaiun" value="STD-1" />
    -        <zone name="Africa/Freetown" value="GMT0" />
    -        <zone name="Africa/Gaborone" value="CAT-2" />
    -        <zone name="Africa/Harare" value="CAT-2" />
    -        <zone name="Africa/Johannesburg" value="SAST-2" />
    -        <zone name="Africa/Juba" value="CAT-2" />
    -        <zone name="Africa/Kampala" value="EAT-3" />
    -        <zone name="Africa/Khartoum" value="CAT-2" />
    -        <zone name="Africa/Kigali" value="CAT-2" />
    -        <zone name="Africa/Kinshasa" value="WAT-1" />
    -        <zone name="Africa/Lagos" value="WAT-1" />
    -        <zone name="Africa/Libreville" value="WAT-1" />
    -        <zone name="Africa/Lome" value="GMT0" />
    -        <zone name="Africa/Luanda" value="WAT-1" />
    -        <zone name="Africa/Lubumbashi" value="CAT-2" />
    -        <zone name="Africa/Lusaka" value="CAT-2" />
    -        <zone name="Africa/Malabo" value="WAT-1" />
    -        <zone name="Africa/Maputo" value="CAT-2" />
    -        <zone name="Africa/Maseru" value="SAST-2" />
    -        <zone name="Africa/Mbabane" value="SAST-2" />
    -        <zone name="Africa/Mogadishu" value="EAT-3" />
    -        <zone name="Africa/Monrovia" value="GMT0" />
    -        <zone name="Africa/Nairobi" value="EAT-3" />
    -        <zone name="Africa/Ndjamena" value="WAT-1" />
    -        <zone name="Africa/Niamey" value="WAT-1" />
    -        <zone name="Africa/Nouakchott" value="GMT0" />
    -        <zone name="Africa/Ouagadougou" value="GMT0" />
    -        <zone name="Africa/Porto-Novo" value="WAT-1" />
    -        <zone name="Africa/Sao_Tome" value="GMT0" />
    -        <zone name="Africa/Timbuktu" value="GMT0" />
    -        <zone name="Africa/Tripoli" value="EET-2" />
    -        <zone name="Africa/Tunis" value="CET-1" />
    -        <zone name="Africa/Windhoek" value="CAT-2" />
    -
    -        <zone name="America/Adak" value="HST10HDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Anchorage" value="AKST9AKDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Anguilla" value="AST4" />
    -        <zone name="America/Antigua" value="AST4" />
    -        <zone name="America/Araguaina" value="STD3" />
    -        <zone name="America/Argentina/Buenos_Aires" value="STD3" />
    -        <zone name="America/Argentina/Catamarca" value="STD3" />
    -        <zone name="America/Argentina/ComodRivadavia" value="STD3" />
    -        <zone name="America/Argentina/Cordoba" value="STD3" />
    -        <zone name="America/Argentina/Jujuy" value="STD3" />
    -        <zone name="America/Argentina/La_Rioja" value="STD3" />
    -        <zone name="America/Argentina/Mendoza" value="STD3" />
    -        <zone name="America/Argentina/Rio_Gallegos" value="STD3" />
    -        <zone name="America/Argentina/Salta" value="STD3" />
    -        <zone name="America/Argentina/San_Juan" value="STD3" />
    -        <zone name="America/Argentina/San_Luis" value="STD3" />
    -        <zone name="America/Argentina/Tucuman" value="STD3" />
    -        <zone name="America/Argentina/Ushuaia" value="STD3" />
    -        <zone name="America/Aruba" value="AST4" />
    -        <zone name="America/Asuncion" value="STD4DST,M10.1.0/0,M3.4.0/0" />
    -        <zone name="America/Atikokan" value="EST5" />
    -        <zone name="America/Atka" value="HST10HDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Bahia" value="STD3" />
    -        <zone name="America/Bahia_Banderas" value="CST6" />
    -        <zone name="America/Barbados" value="AST4" />
    -        <zone name="America/Belem" value="STD3" />
    -        <zone name="America/Belize" value="CST6" />
    -        <zone name="America/Blanc-Sablon" value="AST4" />
    -        <zone name="America/Boa_Vista" value="STD4" />
    -        <zone name="America/Bogota" value="STD5" />
    -        <zone name="America/Boise" value="MST7MDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Buenos_Aires" value="STD3" />
    -        <zone name="America/Cambridge_Bay" value="MST7MDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Campo_Grande" value="STD4" />
    -        <zone name="America/Cancun" value="EST5" />
    -        <zone name="America/Caracas" value="STD4" />
    -        <zone name="America/Catamarca" value="STD3" />
    -        <zone name="America/Cayenne" value="STD3" />
    -        <zone name="America/Cayman" value="EST5" />
    -        <zone name="America/Chicago" value="CST6CDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Chihuahua" value="CST6" />
    -        <zone name="America/Ciudad_Juarez" value="MST7MDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Coral_Harbour" value="EST5" />
    -        <zone name="America/Cordoba" value="STD3" />
    -        <zone name="America/Costa_Rica" value="CST6" />
    -        <zone name="America/Creston" value="MST7" />
    -        <zone name="America/Cuiaba" value="STD4" />
    -        <zone name="America/Curacao" value="AST4" />
    -        <zone name="America/Danmarkshavn" value="GMT0" />
    -        <zone name="America/Dawson" value="MST7" />
    -        <zone name="America/Dawson_Creek" value="MST7" />
    -        <zone name="America/Denver" value="MST7MDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Detroit" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Dominica" value="AST4" />
    -        <zone name="America/Edmonton" value="MST7MDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Eirunepe" value="STD5" />
    -        <zone name="America/El_Salvador" value="CST6" />
    -        <zone name="America/Ensenada" value="PST8PDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Fort_Nelson" value="MST7" />
    -        <zone name="America/Fort_Wayne" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Fortaleza" value="STD3" />
    -        <zone name="America/Glace_Bay" value="AST4ADT,M3.2.0,M11.1.0" />
    -        <zone name="America/Godthab" value="STD2DST,M3.5.0/-1,M10.5.0/0" />
    -        <zone name="America/Goose_Bay" value="AST4ADT,M3.2.0,M11.1.0" />
    -        <zone name="America/Grand_Turk" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Grenada" value="AST4" />
    -        <zone name="America/Guadeloupe" value="AST4" />
    -        <zone name="America/Guatemala" value="CST6" />
    -        <zone name="America/Guayaquil" value="STD5" />
    -        <zone name="America/Guyana" value="STD4" />
    -        <zone name="America/Halifax" value="AST4ADT,M3.2.0,M11.1.0" />
    -        <zone name="America/Havana" value="CST5CDT,M3.2.0/0,M11.1.0/1" />
    -        <zone name="America/Hermosillo" value="MST7" />
    -        <zone name="America/Indiana/Indianapolis" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Indiana/Knox" value="CST6CDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Indiana/Marengo" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Indiana/Petersburg" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Indiana/Tell_City" value="CST6CDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Indiana/Vevay" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Indiana/Vincennes" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Indiana/Winamac" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Indianapolis" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Inuvik" value="MST7MDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Iqaluit" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Jamaica" value="EST5" />
    -        <zone name="America/Jujuy" value="STD3" />
    -        <zone name="America/Juneau" value="AKST9AKDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Kentucky/Louisville" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Kentucky/Monticello" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Knox_IN" value="CST6CDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Kralendijk" value="AST4" />
    -        <zone name="America/La_Paz" value="STD4" />
    -        <zone name="America/Lima" value="STD5" />
    -        <zone name="America/Los_Angeles" value="PST8PDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Louisville" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Lower_Princes" value="AST4" />
    -        <zone name="America/Maceio" value="STD3" />
    -        <zone name="America/Managua" value="CST6" />
    -        <zone name="America/Manaus" value="STD4" />
    -        <zone name="America/Marigot" value="AST4" />
    -        <zone name="America/Martinique" value="AST4" />
    -        <zone name="America/Matamoros" value="CST6CDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Mazatlan" value="MST7" />
    -        <zone name="America/Mendoza" value="STD3" />
    -        <zone name="America/Menominee" value="CST6CDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Merida" value="CST6" />
    -        <zone name="America/Metlakatla" value="AKST9AKDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Mexico_City" value="CST6" />
    -        <zone name="America/Miquelon" value="STD3DST,M3.2.0,M11.1.0" />
    -        <zone name="America/Moncton" value="AST4ADT,M3.2.0,M11.1.0" />
    -        <zone name="America/Monterrey" value="CST6" />
    -        <zone name="America/Montevideo" value="STD3" />
    -        <zone name="America/Montreal" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Montserrat" value="AST4" />
    -        <zone name="America/Nassau" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/New_York" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Nipigon" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Nome" value="AKST9AKDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Noronha" value="STD2" />
    -        <zone name="America/North_Dakota/Beulah" value="CST6CDT,M3.2.0,M11.1.0" />
    -        <zone name="America/North_Dakota/Center" value="CST6CDT,M3.2.0,M11.1.0" />
    -        <zone name="America/North_Dakota/New_Salem" value="CST6CDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Nuuk" value="STD2DST,M3.5.0/-1,M10.5.0/0" />
    -        <zone name="America/Ojinaga" value="CST6CDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Panama" value="EST5" />
    -        <zone name="America/Pangnirtung" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Paramaribo" value="STD3" />
    -        <zone name="America/Phoenix" value="MST7" />
    -        <zone name="America/Port-au-Prince" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Port_of_Spain" value="AST4" />
    -        <zone name="America/Porto_Acre" value="STD5" />
    -        <zone name="America/Porto_Velho" value="STD4" />
    -        <zone name="America/Puerto_Rico" value="AST4" />
    -        <zone name="America/Punta_Arenas" value="STD3" />
    -        <zone name="America/Rainy_River" value="CST6CDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Rankin_Inlet" value="CST6CDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Recife" value="STD3" />
    -        <zone name="America/Regina" value="CST6" />
    -        <zone name="America/Resolute" value="CST6CDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Rio_Branco" value="STD5" />
    -        <zone name="America/Rosario" value="STD3" />
    -        <zone name="America/Santa_Isabel" value="PST8PDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Santarem" value="STD3" />
    -        <zone name="America/Santiago" value="STD4DST,M9.1.6/24,M4.1.6/24" />
    -        <zone name="America/Santo_Domingo" value="AST4" />
    -        <zone name="America/Sao_Paulo" value="STD3" />
    -        <zone name="America/Scoresbysund" value="STD1DST,M3.5.0/0,M10.5.0/1" />
    -        <zone name="America/Shiprock" value="MST7MDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Sitka" value="AKST9AKDT,M3.2.0,M11.1.0" />
    -        <zone name="America/St_Barthelemy" value="AST4" />
    -        <zone name="America/St_Johns" value="NST3:30NDT,M3.2.0,M11.1.0" />
    -        <zone name="America/St_Kitts" value="AST4" />
    -        <zone name="America/St_Lucia" value="AST4" />
    -        <zone name="America/St_Thomas" value="AST4" />
    -        <zone name="America/St_Vincent" value="AST4" />
    -        <zone name="America/Swift_Current" value="CST6" />
    -        <zone name="America/Tegucigalpa" value="CST6" />
    -        <zone name="America/Thule" value="AST4ADT,M3.2.0,M11.1.0" />
    -        <zone name="America/Thunder_Bay" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Tijuana" value="PST8PDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Toronto" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Tortola" value="AST4" />
    -        <zone name="America/Vancouver" value="PST8PDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Virgin" value="AST4" />
    -        <zone name="America/Whitehorse" value="MST7" />
    -        <zone name="America/Winnipeg" value="CST6CDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Yakutat" value="AKST9AKDT,M3.2.0,M11.1.0" />
    -        <zone name="America/Yellowknife" value="MST7MDT,M3.2.0,M11.1.0" />
    -
    -        <zone name="Antarctica/Casey" value="STD-11" />
    -        <zone name="Antarctica/Davis" value="STD-7" />
    -        <zone name="Antarctica/DumontDUrville" value="STD-10" />
    -        <zone name="Antarctica/Macquarie" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
    -        <zone name="Antarctica/Mawson" value="STD-5" />
    -        <zone name="Antarctica/McMurdo" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
    -        <zone name="Antarctica/Palmer" value="STD3" />
    -        <zone name="Antarctica/Rothera" value="STD3" />
    -        <zone name="Antarctica/South_Pole" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
    -        <zone name="Antarctica/Syowa" value="STD-3" />
    -        <zone name="Antarctica/Troll" value="STD-0DST-2,M3.5.0/1,M10.5.0/3" />
    -        <zone name="Antarctica/Vostok" value="STD-6" />
    -
    -        <zone name="Arctic/Longyearbyen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -
    -        <zone name="Asia/Aden" value="STD-3" />
    -        <zone name="Asia/Almaty" value="STD-6" />
    -        <zone name="Asia/Amman" value="STD-3" />
    -        <zone name="Asia/Anadyr" value="STD-12" />
    -        <zone name="Asia/Aqtau" value="STD-5" />
    -        <zone name="Asia/Aqtobe" value="STD-5" />
    -        <zone name="Asia/Ashgabat" value="STD-5" />
    -        <zone name="Asia/Ashkhabad" value="STD-5" />
    -        <zone name="Asia/Atyrau" value="STD-5" />
    -        <zone name="Asia/Baghdad" value="STD-3" />
    -        <zone name="Asia/Bahrain" value="STD-3" />
    -        <zone name="Asia/Baku" value="STD-4" />
    -        <zone name="Asia/Bangkok" value="STD-7" />
    -        <zone name="Asia/Barnaul" value="STD-7" />
    -        <zone name="Asia/Beirut" value="EET-2EEST,M3.5.0/0,M10.5.0/0" />
    -        <zone name="Asia/Bishkek" value="STD-6" />
    -        <zone name="Asia/Brunei" value="STD-8" />
    -        <zone name="Asia/Calcutta" value="IST-5:30" />
    -        <zone name="Asia/Chita" value="STD-9" />
    -        <zone name="Asia/Choibalsan" value="STD-8" />
    -        <zone name="Asia/Chongqing" value="CST-8" />
    -        <zone name="Asia/Chungking" value="CST-8" />
    -        <zone name="Asia/Colombo" value="STD-5:30" />
    -        <zone name="Asia/Dacca" value="STD-6" />
    -        <zone name="Asia/Damascus" value="STD-3" />
    -        <zone name="Asia/Dhaka" value="STD-6" />
    -        <zone name="Asia/Dili" value="STD-9" />
    -        <zone name="Asia/Dubai" value="STD-4" />
    -        <zone name="Asia/Dushanbe" value="STD-5" />
    -        <zone name="Asia/Famagusta" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
    -        <zone name="Asia/Gaza" value="EET-2EEST,M3.4.4/50,M10.4.4/50" />
    -        <zone name="Asia/Harbin" value="CST-8" />
    -        <zone name="Asia/Hebron" value="EET-2EEST,M3.4.4/50,M10.4.4/50" />
    -        <zone name="Asia/Ho_Chi_Minh" value="STD-7" />
    -        <zone name="Asia/Hong_Kong" value="HKT-8" />
    -        <zone name="Asia/Hovd" value="STD-7" />
    -        <zone name="Asia/Irkutsk" value="STD-8" />
    -        <zone name="Asia/Istanbul" value="STD-3" />
    -        <zone name="Asia/Jakarta" value="WIB-7" />
    -        <zone name="Asia/Jayapura" value="WIT-9" />
    -        <zone name="Asia/Jerusalem" value="IST-2IDT,M3.4.4/26,M10.5.0" />
    -        <zone name="Asia/Kabul" value="STD-4:30" />
    -        <zone name="Asia/Kamchatka" value="STD-12" />
    -        <zone name="Asia/Karachi" value="PKT-5" />
    -        <zone name="Asia/Kashgar" value="STD-6" />
    -        <zone name="Asia/Kathmandu" value="STD-5:45" />
    -        <zone name="Asia/Katmandu" value="STD-5:45" />
    -        <zone name="Asia/Khandyga" value="STD-9" />
    -        <zone name="Asia/Kolkata" value="IST-5:30" />
    -        <zone name="Asia/Krasnoyarsk" value="STD-7" />
    -        <zone name="Asia/Kuala_Lumpur" value="STD-8" />
    -        <zone name="Asia/Kuching" value="STD-8" />
    -        <zone name="Asia/Kuwait" value="STD-3" />
    -        <zone name="Asia/Macao" value="CST-8" />
    -        <zone name="Asia/Macau" value="CST-8" />
    -        <zone name="Asia/Magadan" value="STD-11" />
    -        <zone name="Asia/Makassar" value="WITA-8" />
    -        <zone name="Asia/Manila" value="PST-8" />
    -        <zone name="Asia/Muscat" value="STD-4" />
    -        <zone name="Asia/Nicosia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
    -        <zone name="Asia/Novokuznetsk" value="STD-7" />
    -        <zone name="Asia/Novosibirsk" value="STD-7" />
    -        <zone name="Asia/Omsk" value="STD-6" />
    -        <zone name="Asia/Oral" value="STD-5" />
    -        <zone name="Asia/Phnom_Penh" value="STD-7" />
    -        <zone name="Asia/Pontianak" value="WIB-7" />
    -        <zone name="Asia/Pyongyang" value="KST-9" />
    -        <zone name="Asia/Qatar" value="STD-3" />
    -        <zone name="Asia/Qostanay" value="STD-6" />
    -        <zone name="Asia/Qyzylorda" value="STD-5" />
    -        <zone name="Asia/Rangoon" value="STD-6:30" />
    -        <zone name="Asia/Riyadh" value="STD-3" />
    -        <zone name="Asia/Saigon" value="STD-7" />
    -        <zone name="Asia/Sakhalin" value="STD-11" />
    -        <zone name="Asia/Samarkand" value="STD-5" />
    -        <zone name="Asia/Seoul" value="KST-9" />
    -        <zone name="Asia/Shanghai" value="CST-8" />
    -        <zone name="Asia/Singapore" value="STD-8" />
    -        <zone name="Asia/Srednekolymsk" value="STD-11" />
    -        <zone name="Asia/Taipei" value="CST-8" />
    -        <zone name="Asia/Tashkent" value="STD-5" />
    -        <zone name="Asia/Tbilisi" value="STD-4" />
    -        <zone name="Asia/Tehran" value="STD-3:30" />
    -        <zone name="Asia/Tel_Aviv" value="IST-2IDT,M3.4.4/26,M10.5.0" />
    -        <zone name="Asia/Thimbu" value="STD-6" />
    -        <zone name="Asia/Thimphu" value="STD-6" />
    -        <zone name="Asia/Tokyo" value="JST-9" />
    -        <zone name="Asia/Tomsk" value="STD-7" />
    -        <zone name="Asia/Ujung_Pandang" value="WITA-8" />
    -        <zone name="Asia/Ulaanbaatar" value="STD-8" />
    -        <zone name="Asia/Ulan_Bator" value="STD-8" />
    -        <zone name="Asia/Urumqi" value="STD-6" />
    -        <zone name="Asia/Ust-Nera" value="STD-10" />
    -        <zone name="Asia/Vientiane" value="STD-7" />
    -        <zone name="Asia/Vladivostok" value="STD-10" />
    -        <zone name="Asia/Yakutsk" value="STD-9" />
    -        <zone name="Asia/Yangon" value="STD-6:30" />
    -        <zone name="Asia/Yekaterinburg" value="STD-5" />
    -        <zone name="Asia/Yerevan" value="STD-4" />
    -
    -        <zone name="Atlantic/Azores" value="STD1DST,M3.5.0/0,M10.5.0/1" />
    -        <zone name="Atlantic/Bermuda" value="AST4ADT,M3.2.0,M11.1.0" />
    -        <zone name="Atlantic/Canary" value="WET0WEST,M3.5.0/1,M10.5.0" />
    -        <zone name="Atlantic/Cape_Verde" value="STD1" />
    -        <zone name="Atlantic/Faeroe" value="WET0WEST,M3.5.0/1,M10.5.0" />
    -        <zone name="Atlantic/Faroe" value="WET0WEST,M3.5.0/1,M10.5.0" />
    -        <zone name="Atlantic/Jan_Mayen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Atlantic/Madeira" value="WET0WEST,M3.5.0/1,M10.5.0" />
    -        <zone name="Atlantic/Reykjavik" value="GMT0" />
    -        <zone name="Atlantic/South_Georgia" value="STD2" />
    -        <zone name="Atlantic/St_Helena" value="GMT0" />
    -        <zone name="Atlantic/Stanley" value="STD3" />
    -
    -        <zone name="Australia/ACT" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
    -        <zone name="Australia/Adelaide" value="ACST-9:30ACDT,M10.1.0,M4.1.0/3" />
    -        <zone name="Australia/Brisbane" value="AEST-10" />
    -        <zone name="Australia/Broken_Hill" value="ACST-9:30ACDT,M10.1.0,M4.1.0/3" />
    -        <zone name="Australia/Canberra" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
    -        <zone name="Australia/Currie" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
    -        <zone name="Australia/Darwin" value="ACST-9:30" />
    -        <zone name="Australia/Eucla" value="STD-8:45" />
    -        <zone name="Australia/Hobart" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
    -        <zone name="Australia/LHI" value="STD-10:30DST-11,M10.1.0,M4.1.0" />
    -        <zone name="Australia/Lindeman" value="AEST-10" />
    -        <zone name="Australia/Lord_Howe" value="STD-10:30DST-11,M10.1.0,M4.1.0" />
    -        <zone name="Australia/Melbourne" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
    -        <zone name="Australia/NSW" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
    -        <zone name="Australia/North" value="ACST-9:30" />
    -        <zone name="Australia/Perth" value="AWST-8" />
    -        <zone name="Australia/Queensland" value="AEST-10" />
    -        <zone name="Australia/South" value="ACST-9:30ACDT,M10.1.0,M4.1.0/3" />
    -        <zone name="Australia/Sydney" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
    -        <zone name="Australia/Tasmania" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
    -        <zone name="Australia/Victoria" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
    -        <zone name="Australia/West" value="AWST-8" />
    -        <zone name="Australia/Yancowinna" value="ACST-9:30ACDT,M10.1.0,M4.1.0/3" />
    -
    -        <zone name="Brazil/Acre" value="STD5" />
    -        <zone name="Brazil/DeNoronha" value="STD2" />
    -        <zone name="Brazil/East" value="STD3" />
    -        <zone name="Brazil/West" value="STD4" />
    -
    -        <zone name="CET" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -
    -        <zone name="CST6CDT" value="CST6CDT,M3.2.0,M11.1.0" />
    -
    -        <zone name="Canada/Atlantic" value="AST4ADT,M3.2.0,M11.1.0" />
    -        <zone name="Canada/Central" value="CST6CDT,M3.2.0,M11.1.0" />
    -        <zone name="Canada/Eastern" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="Canada/Mountain" value="MST7MDT,M3.2.0,M11.1.0" />
    -        <zone name="Canada/Newfoundland" value="NST3:30NDT,M3.2.0,M11.1.0" />
    -        <zone name="Canada/Pacific" value="PST8PDT,M3.2.0,M11.1.0" />
    -        <zone name="Canada/Saskatchewan" value="CST6" />
    -        <zone name="Canada/Yukon" value="MST7" />
    -
    -        <zone name="Chile/Continental" value="STD4DST,M9.1.6/24,M4.1.6/24" />
    -        <zone name="Chile/EasterIsland" value="STD6DST,M9.1.6/22,M4.1.6/22" />
    -
    -        <zone name="Cuba" value="CST5CDT,M3.2.0/0,M11.1.0/1" />
    -
    -        <zone name="EET" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
    -
    -        <zone name="EST" value="EST5" />
    -
    -        <zone name="EST5EDT" value="EST5EDT,M3.2.0,M11.1.0" />
    -
    -        <zone name="Egypt" value="EET-2EEST,M4.5.5/0,M10.5.4/24" />
    -
    -        <zone name="Eire" value="IST-1GMT0,M10.5.0,M3.5.0/1" />
    -
    -        <zone name="Etc/GMT" value="GMT0" />
    -        <zone name="Etc/GMT+0" value="GMT0" />
    -        <zone name="Etc/GMT+1" value="GMT1" />
    -        <zone name="Etc/GMT+10" value="GMT10" />
    -        <zone name="Etc/GMT+11" value="GMT11" />
    -        <zone name="Etc/GMT+12" value="GMT12" />
    -        <zone name="Etc/GMT+2" value="GMT2" />
    -        <zone name="Etc/GMT+3" value="GMT3" />
    -        <zone name="Etc/GMT+4" value="GMT4" />
    -        <zone name="Etc/GMT+5" value="GMT5" />
    -        <zone name="Etc/GMT+6" value="GMT6" />
    -        <zone name="Etc/GMT+7" value="GMT7" />
    -        <zone name="Etc/GMT+8" value="GMT8" />
    -        <zone name="Etc/GMT+9" value="GMT9" />
    -        <zone name="Etc/GMT-0" value="GMT0" />
    -        <zone name="Etc/GMT-1" value="GMT-1" />
    -        <zone name="Etc/GMT-10" value="GMT-10" />
    -        <zone name="Etc/GMT-11" value="GMT-11" />
    -        <zone name="Etc/GMT-12" value="GMT-12" />
    -        <zone name="Etc/GMT-13" value="GMT-13" />
    -        <zone name="Etc/GMT-14" value="GMT-14" />
    -        <zone name="Etc/GMT-2" value="GMT-2" />
    -        <zone name="Etc/GMT-3" value="GMT-3" />
    -        <zone name="Etc/GMT-4" value="GMT-4" />
    -        <zone name="Etc/GMT-5" value="GMT-5" />
    -        <zone name="Etc/GMT-6" value="GMT-6" />
    -        <zone name="Etc/GMT-7" value="GMT-7" />
    -        <zone name="Etc/GMT-8" value="GMT-8" />
    -        <zone name="Etc/GMT-9" value="GMT-9" />
    -        <zone name="Etc/GMT0" value="GMT0" />
    -        <zone name="Etc/Greenwich" value="GMT0" />
    -        <zone name="Etc/UCT" value="UTC0" />
    -        <zone name="Etc/UTC" value="UTC0" />
    -        <zone name="Etc/Universal" value="UTC0" />
    -        <zone name="Etc/Zulu" value="UTC0" />
    -
    -        <zone name="Europe/Amsterdam" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Andorra" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Astrakhan" value="STD-4" />
    -        <zone name="Europe/Athens" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
    -        <zone name="Europe/Belfast" value="GMT0BST,M3.5.0/1,M10.5.0" />
    -        <zone name="Europe/Belgrade" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Berlin" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Bratislava" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Brussels" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Bucharest" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
    -        <zone name="Europe/Budapest" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Busingen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Chisinau" value="EET-2EEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Copenhagen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Dublin" value="IST-1GMT0,M10.5.0,M3.5.0/1" />
    -        <zone name="Europe/Gibraltar" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Guernsey" value="GMT0BST,M3.5.0/1,M10.5.0" />
    -        <zone name="Europe/Helsinki" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
    -        <zone name="Europe/Isle_of_Man" value="GMT0BST,M3.5.0/1,M10.5.0" />
    -        <zone name="Europe/Istanbul" value="STD-3" />
    -        <zone name="Europe/Jersey" value="GMT0BST,M3.5.0/1,M10.5.0" />
    -        <zone name="Europe/Kaliningrad" value="EET-2" />
    -        <zone name="Europe/Kiev" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
    -        <zone name="Europe/Kirov" value="MSK-3" />
    -        <zone name="Europe/Kyiv" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
    -        <zone name="Europe/Lisbon" value="WET0WEST,M3.5.0/1,M10.5.0" />
    -        <zone name="Europe/Ljubljana" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/London" value="GMT0BST,M3.5.0/1,M10.5.0" />
    -        <zone name="Europe/Luxembourg" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Madrid" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Malta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Mariehamn" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
    -        <zone name="Europe/Minsk" value="STD-3" />
    -        <zone name="Europe/Monaco" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Moscow" value="MSK-3" />
    -        <zone name="Europe/Nicosia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
    -        <zone name="Europe/Oslo" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Paris" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Podgorica" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Prague" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Riga" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
    -        <zone name="Europe/Rome" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Samara" value="STD-4" />
    -        <zone name="Europe/San_Marino" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Sarajevo" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Saratov" value="STD-4" />
    -        <zone name="Europe/Simferopol" value="MSK-3" />
    -        <zone name="Europe/Skopje" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Sofia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
    -        <zone name="Europe/Stockholm" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Tallinn" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
    -        <zone name="Europe/Tirane" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Tiraspol" value="EET-2EEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Ulyanovsk" value="STD-4" />
    -        <zone name="Europe/Uzhgorod" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
    -        <zone name="Europe/Vaduz" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Vatican" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Vienna" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Vilnius" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
    -        <zone name="Europe/Volgograd" value="MSK-3" />
    -        <zone name="Europe/Warsaw" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Zagreb" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -        <zone name="Europe/Zaporozhye" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
    -        <zone name="Europe/Zurich" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -
    -        <zone name="Factory" value="STD0" />
    -
    -        <zone name="GB" value="GMT0BST,M3.5.0/1,M10.5.0" />
    -
    -        <zone name="GB-Eire" value="GMT0BST,M3.5.0/1,M10.5.0" />
    -
    -        <zone name="GMT" value="GMT0" />
    -
    -        <zone name="GMT+0" value="GMT0" />
    -
    -        <zone name="GMT-0" value="GMT0" />
    -
    -        <zone name="GMT0" value="GMT0" />
    -
    -        <zone name="Greenwich" value="GMT0" />
    -
    -        <zone name="HST" value="HST10" />
    -
    -        <zone name="Hongkong" value="HKT-8" />
    -
    -        <zone name="Iceland" value="GMT0" />
    -
    -        <zone name="Indian/Antananarivo" value="EAT-3" />
    -        <zone name="Indian/Chagos" value="STD-6" />
    -        <zone name="Indian/Christmas" value="STD-7" />
    -        <zone name="Indian/Cocos" value="STD-6:30" />
    -        <zone name="Indian/Comoro" value="EAT-3" />
    -        <zone name="Indian/Kerguelen" value="STD-5" />
    -        <zone name="Indian/Mahe" value="STD-4" />
    -        <zone name="Indian/Maldives" value="STD-5" />
    -        <zone name="Indian/Mauritius" value="STD-4" />
    -        <zone name="Indian/Mayotte" value="EAT-3" />
    -        <zone name="Indian/Reunion" value="STD-4" />
    -
    -        <zone name="Iran" value="STD-3:30" />
    -
    -        <zone name="Israel" value="IST-2IDT,M3.4.4/26,M10.5.0" />
    -
    -        <zone name="Jamaica" value="EST5" />
    -
    -        <zone name="Japan" value="JST-9" />
    -
    -        <zone name="Kwajalein" value="STD-12" />
    -
    -        <zone name="Libya" value="EET-2" />
    -
    -        <zone name="MET" value="MET-1MEST,M3.5.0,M10.5.0/3" />
    -
    -        <zone name="MST" value="MST7" />
    -
    -        <zone name="MST7MDT" value="MST7MDT,M3.2.0,M11.1.0" />
    -
    -        <zone name="Mexico/BajaNorte" value="PST8PDT,M3.2.0,M11.1.0" />
    -        <zone name="Mexico/BajaSur" value="MST7" />
    -        <zone name="Mexico/General" value="CST6" />
    -
    -        <zone name="NZ" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
    -
    -        <zone name="NZ-CHAT" value="STD-12:45DST,M9.5.0/2:45,M4.1.0/3:45" />
    -
    -        <zone name="Navajo" value="MST7MDT,M3.2.0,M11.1.0" />
    -
    -        <zone name="PRC" value="CST-8" />
    -
    -        <zone name="PST8PDT" value="PST8PDT,M3.2.0,M11.1.0" />
    -
    -        <zone name="Pacific/Apia" value="STD-13" />
    -        <zone name="Pacific/Auckland" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
    -        <zone name="Pacific/Bougainville" value="STD-11" />
    -        <zone name="Pacific/Chatham" value="STD-12:45DST,M9.5.0/2:45,M4.1.0/3:45" />
    -        <zone name="Pacific/Chuuk" value="STD-10" />
    -        <zone name="Pacific/Easter" value="STD6DST,M9.1.6/22,M4.1.6/22" />
    -        <zone name="Pacific/Efate" value="STD-11" />
    -        <zone name="Pacific/Enderbury" value="STD-13" />
    -        <zone name="Pacific/Fakaofo" value="STD-13" />
    -        <zone name="Pacific/Fiji" value="STD-12" />
    -        <zone name="Pacific/Funafuti" value="STD-12" />
    -        <zone name="Pacific/Galapagos" value="STD6" />
    -        <zone name="Pacific/Gambier" value="STD9" />
    -        <zone name="Pacific/Guadalcanal" value="STD-11" />
    -        <zone name="Pacific/Guam" value="ChST-10" />
    -        <zone name="Pacific/Honolulu" value="HST10" />
    -        <zone name="Pacific/Johnston" value="HST10" />
    -        <zone name="Pacific/Kanton" value="STD-13" />
    -        <zone name="Pacific/Kiritimati" value="STD-14" />
    -        <zone name="Pacific/Kosrae" value="STD-11" />
    -        <zone name="Pacific/Kwajalein" value="STD-12" />
    -        <zone name="Pacific/Majuro" value="STD-12" />
    -        <zone name="Pacific/Marquesas" value="STD9:30" />
    -        <zone name="Pacific/Midway" value="SST11" />
    -        <zone name="Pacific/Nauru" value="STD-12" />
    -        <zone name="Pacific/Niue" value="STD11" />
    -        <zone name="Pacific/Norfolk" value="STD-11DST,M10.1.0,M4.1.0/3" />
    -        <zone name="Pacific/Noumea" value="STD-11" />
    -        <zone name="Pacific/Pago_Pago" value="SST11" />
    -        <zone name="Pacific/Palau" value="STD-9" />
    -        <zone name="Pacific/Pitcairn" value="STD8" />
    -        <zone name="Pacific/Pohnpei" value="STD-11" />
    -        <zone name="Pacific/Ponape" value="STD-11" />
    -        <zone name="Pacific/Port_Moresby" value="STD-10" />
    -        <zone name="Pacific/Rarotonga" value="STD10" />
    -        <zone name="Pacific/Saipan" value="ChST-10" />
    -        <zone name="Pacific/Samoa" value="SST11" />
    -        <zone name="Pacific/Tahiti" value="STD10" />
    -        <zone name="Pacific/Tarawa" value="STD-12" />
    -        <zone name="Pacific/Tongatapu" value="STD-13" />
    -        <zone name="Pacific/Truk" value="STD-10" />
    -        <zone name="Pacific/Wake" value="STD-12" />
    -        <zone name="Pacific/Wallis" value="STD-12" />
    -        <zone name="Pacific/Yap" value="STD-10" />
    -
    -        <zone name="Poland" value="CET-1CEST,M3.5.0,M10.5.0/3" />
    -
    -        <zone name="Portugal" value="WET0WEST,M3.5.0/1,M10.5.0" />
    -
    -        <zone name="ROC" value="CST-8" />
    -
    -        <zone name="ROK" value="KST-9" />
    -
    -        <zone name="Singapore" value="STD-8" />
    -
    -        <zone name="Turkey" value="STD-3" />
    -
    -        <zone name="UCT" value="UTC0" />
    -
    -        <zone name="US/Alaska" value="AKST9AKDT,M3.2.0,M11.1.0" />
    -        <zone name="US/Aleutian" value="HST10HDT,M3.2.0,M11.1.0" />
    -        <zone name="US/Arizona" value="MST7" />
    -        <zone name="US/Central" value="CST6CDT,M3.2.0,M11.1.0" />
    -        <zone name="US/East-Indiana" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="US/Eastern" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="US/Hawaii" value="HST10" />
    -        <zone name="US/Indiana-Starke" value="CST6CDT,M3.2.0,M11.1.0" />
    -        <zone name="US/Michigan" value="EST5EDT,M3.2.0,M11.1.0" />
    -        <zone name="US/Mountain" value="MST7MDT,M3.2.0,M11.1.0" />
    -        <zone name="US/Pacific" value="PST8PDT,M3.2.0,M11.1.0" />
    -        <zone name="US/Samoa" value="SST11" />
    -
    -        <zone name="UTC" value="UTC0" />
    -
    -        <zone name="Universal" value="UTC0" />
    -
    -        <zone name="W-SU" value="MSK-3" />
    -
    -        <zone name="WET" value="WET0WEST,M3.5.0/1,M10.5.0" />
    -
    -        <zone name="Zulu" value="UTC0" />
    -    </timezones>
    -</configuration>
    
  • conf/rayo/cacert.pem+0 3366 removed
  • conf/rayo/dialplan/public.xml+0 36 removed
    @@ -1,36 +0,0 @@
    -<include>
    -  <context name="public">
    -
    -    <extension name="unloop">
    -      <condition field="${unroll_loops}" expression="^true$"/>
    -      <condition field="${sip_looped_call}" expression="^true$">
    -	<action application="deflect" data="${destination_number}"/>
    -      </condition>
    -    </extension>
    -    <!--
    -	Tag anything pass thru here as an outside_call so you can make sure not
    -	to create any routing loops based on the conditions that it came from 
    -	the outside of the switch.  
    -    -->
    -    <extension name="outside_call" continue="true">
    -      <condition>
    -	<action application="set" data="outside_call=true"/>
    -	<action application="export" data="RFC2822_DATE=${strftime(%a, %d %b %Y %T %z)}"/>
    -      </condition>
    -    </extension>
    -
    -    <extension name="call_debug" continue="true">
    -      <condition field="${call_debug}" expression="^true$" break="never">
    -	<action application="info"/>
    -      </condition>
    -    </extension>
    -
    -    <extension name="adhearsion">
    -      <condition>
    -	<action application="rayo" data=""/>
    -      </condition>
    -    </extension>
    -    
    -  </context>
    -</include>
    -
    
  • conf/rayo/directory/default/usera.xml+0 21 removed
    @@ -1,21 +0,0 @@
    -<include>
    -  <user id="usera">
    -    <!-- Outbound Registrations Related to this user -->
    -    <gateways>
    -    </gateways>
    -    <params>
    -      <!-- omit password for authless registration -->
    -      <param name="password" value="1"/>
    -    </params>
    -    <variables>
    -      <!--all variables here will be set on all inbound calls that originate from this user -->
    -      <variable name="user_context" value="public"/>
    -      <variable name="effective_caller_id_name" value="User A"/>
    -      <variable name="effective_caller_id_number" value="9009095333"/>
    -    </variables>
    -
    -    <vcard>
    -      <!-- insert optional compliant vcard xml here-->
    -    </vcard>
    -  </user>
    -</include>
    
  • conf/rayo/directory/default/userb.xml+0 21 removed
    @@ -1,21 +0,0 @@
    -<include>
    -  <user id="userb">
    -    <!-- Outbound Registrations Related to this user -->
    -    <gateways>
    -    </gateways>
    -    <params>
    -      <!-- omit password for authless registration -->
    -      <param name="password" value="1"/>
    -    </params>
    -    <variables>
    -      <!--all variables here will be set on all inbound calls that originate from this user -->
    -      <variable name="user_context" value="public"/>
    -      <variable name="effective_caller_id_name" value="User B"/>
    -      <variable name="effective_caller_id_number" value="9009093733"/>
    -    </variables>
    -
    -    <vcard>
    -      <!-- insert optional compliant vcard xml here-->
    -    </vcard>
    -  </user>
    -</include>
    
  • conf/rayo/directory/default/userc.xml+0 21 removed
    @@ -1,21 +0,0 @@
    -<include>
    -  <user id="userc">
    -    <!-- Outbound Registrations Related to this user -->
    -    <gateways>
    -    </gateways>
    -    <params>
    -      <!-- omit password for authless registration -->
    -      <param name="password" value="1"/>
    -    </params>
    -    <variables>
    -      <!--all variables here will be set on all inbound calls that originate from this user -->
    -      <variable name="user_context" value="public"/>
    -      <variable name="effective_caller_id_name" value="User C"/>
    -      <variable name="effective_caller_id_number" value="8006492568"/>
    -    </variables>
    -
    -    <vcard>
    -      <!-- insert optional compliant vcard xml here-->
    -    </vcard>
    -  </user>
    -</include>
    
  • conf/rayo/directory/default/userd.xml+0 21 removed
    @@ -1,21 +0,0 @@
    -<include>
    -  <user id="userd">
    -    <!-- Outbound Registrations Related to this user -->
    -    <gateways>
    -    </gateways>
    -    <params>
    -      <!-- omit password for authless registration -->
    -      <param name="password" value="1"/>
    -    </params>
    -    <variables>
    -      <!--all variables here will be set on all inbound calls that originate from this user -->
    -      <variable name="user_context" value="public"/>
    -      <variable name="effective_caller_id_name" value="Jenny"/>
    -      <variable name="effective_caller_id_number" value="2128675309"/>
    -    </variables>
    -
    -    <vcard>
    -      <!-- insert optional compliant vcard xml here-->
    -    </vcard>
    -  </user>
    -</include>
    
  • conf/rayo/directory/default.xml+0 39 removed
    @@ -1,39 +0,0 @@
    -<!--
    -    NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE 
    -    
    -    FreeSWITCH works off the concept of users and domains just like email.
    -    You have users that are in domains for example 1000@domain.com.
    -    
    -    When freeswitch gets a register packet it looks for the user in the directory
    -    based on the from or to domain in the packet depending on how your sofia profile
    -    is configured.  Out of the box the default domain will be the IP address of the
    -    machine running FreeSWITCH.  This IP can be found by typing "sofia status" at the
    -    CLI.  You will register your phones to the IP and not the hostname by default.
    -    If you wish to register using the domain please open vars.xml in the root conf
    -    directory and set the default domain to the hostname you desire.  Then you would
    -    use the domain name in the client instead of the IP address to register 
    -    with FreeSWITCH.
    -    
    -    NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE 
    --->
    -
    -<include>
    -  <!--the domain or ip (the right hand side of the @ in the addr-->
    -  <domain name="$${domain}">
    -    <params>
    -      <param name="dial-string" value="{^^:sip_invite_domain=${dialed_domain}:presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(*/${dialed_user}@${dialed_domain})}"/>
    -    </params>
    -
    -    <variables>
    -    </variables>
    -
    -    <groups>
    -      <group name="default">
    -	<users>
    -	  <X-PRE-PROCESS cmd="include" data="default/*.xml"/>
    -	</users>
    -      </group>
    -    </groups>
    -
    -  </domain>
    -</include>
    
  • conf/rayo/freeswitch.xml+0 69 removed
    @@ -1,69 +0,0 @@
    -<?xml version="1.0"?>
    -<!--
    -    NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE 
    -    
    -    This is the FreeSWITCH default config.  Everything you see before you now traverses 
    -    down into all the directories including files which include more files.  The default
    -    config comes out of the box already working in most situations as a PBX.  This will
    -    allow you to get started testing and playing with various things in FreeSWITCH.
    -    
    -    Before you start to modify this default please visit this wiki page:
    -    
    -    http://wiki.freeswitch.org/wiki/Getting_Started_Guide#Some_stuff_to_try_out.21
    -    
    -    If all else fails you can read our FAQ located at:
    -    
    -    http://wiki.freeswitch.org/wiki/FreeSwitch_FAQ
    -    
    -    NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE 
    --->
    -<document type="freeswitch/xml">
    -  <!--#comment 
    -      All comments starting with #command will be preprocessed and never sent to the xml parser
    -      Valid instructions:
    -      #include ==> Include another file to this exact point
    -                   (partial xml should be encased in <include></include> tags)
    -      #set     ==> Set a global variable (can be expanded during preprocessing with $$ variables)
    -                   (note the double $$ which denotes preprocessor variables)
    -      #comment ==> A general comment such as this
    -      
    -      The preprocessor will compile the full xml document to ${prefix}/log/freeswitch.xml.fsxml
    -      Don't modify it while freeswitch is running cos it is mem mapped in most cases =D
    -      
    -      The same can be achieved with the <X-PRE-PROCESS> tag where the attrs 'cmd' and 'data' are
    -      parsed in the same way.
    -  -->
    -  <!--#comment
    -      vars.xml contains all the #set directives for the preprocessor.
    -  -->
    -  <X-PRE-PROCESS cmd="include" data="vars.xml"/>
    -
    -  <section name="configuration" description="Various Configuration">
    -    <X-PRE-PROCESS cmd="include" data="autoload_configs/*.xml"/>
    -  </section>
    -  
    -  <section name="dialplan" description="Regex/XML Dialplan">
    -    <X-PRE-PROCESS cmd="include" data="dialplan/*.xml"/>
    -  </section>
    -
    -  <!-- mod_dingaling is reliant on the vcard data in the "directory" section. -->
    -  <!-- mod_sofia is reliant on the user data for authorization -->
    -  <section name="directory" description="User Directory">
    -      <X-PRE-PROCESS cmd="include" data="directory/*.xml"/>
    -  </section>
    -
    -  <!-- languages section (under development still) -->
    -  <section name="languages" description="Language Management">
    -    <X-PRE-PROCESS cmd="include" data="lang/de/*.xml"/>
    -    <X-PRE-PROCESS cmd="include" data="lang/en/*.xml"/>
    -    <X-PRE-PROCESS cmd="include" data="lang/fr/*.xml"/>
    -    <X-PRE-PROCESS cmd="include" data="lang/ru/*.xml"/>
    -    <X-PRE-PROCESS cmd="include" data="lang/he/*.xml"/>
    -    <X-PRE-PROCESS cmd="include" data="lang/es/es_ES.xml"/>
    -    <X-NO-PRE-PROCESS cmd="include" data="lang/es/es_MX.xml"/>
    -    <X-PRE-PROCESS cmd="include" data="lang/pt/pt_BR.xml"/>
    -    <X-NO-PRE-PROCESS cmd="include" data="lang/pt/pt_PT.xml"/>
    -    <X-NO-PRE-PROCESS cmd="include" data="lang/sv/*.xml"/>
    -  </section>
    -
    -</document>
    
  • conf/rayo/lang/de/demo/demo.xml+0 82 removed
    @@ -1,82 +0,0 @@
    -<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:
    --->
    
  • conf/rayo/lang/de/de.xml+0 22 removed
    @@ -1,22 +0,0 @@
    -<include>
    -  <language name="de" sound-prefix="/snds" tts-engine="cepstral" tts-voice="david">
    -    <phrases>
    -      <macros>
    -        <X-PRE-PROCESS cmd="include" data="demo/demo.xml"/>
    -        <!--voicemail_de_tts is purely implemented with tts, we need a files based implementation too -->
    -        <X-PRE-PROCESS cmd="include" data="vm/tts.xml"/>
    -      </macros>
    -    </phrases>
    -  </language>
    -</include>
    -<!--
    -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:
    --->
    
  • conf/rayo/lang/de/vm/sounds.xml+0 413 removed
    @@ -1,413 +0,0 @@
    -<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:
    --->
    
  • conf/rayo/lang/de/vm/tts.xml+0 224 removed
    @@ -1,224 +0,0 @@
    -<include>
    -
    -  <macro name="voicemail_enter_id">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="Bitte geben Sie Ihren Benutzernamen ein, gefolgt von $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_enter_pass">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="Bitte geben Sie Ihr Passwort ein, gefolgt von $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_fail_auth">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="Falsche Benutzerdaten."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_hello">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="Willkommen in Ihrem Postfach."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_goodbye">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="Auf Wiedersehen."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_abort">
    -    <input pattern="(.*)">
    -      <match>
    -        <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}."/>
    -      </match>
    -    </input>
    -    <input pattern="^([0,2-9]+):(.*)$">
    -      <match>
    -        <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."/>
    -      </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."/>
    -      </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."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <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."/>
    -      </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."/>
    -      </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."/>
    -      </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."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting_fail">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <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."/>
    -      </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."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_greeting_selected">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <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."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_message_number">
    -    <input pattern="^([a-z]+):(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1 Nachricht Nummer $2."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_phone_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_ack">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="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)"/>
    -      </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:
    --->
    
  • conf/rayo/lang/en/demo/demo-ivr.xml+0 156 removed
    @@ -1,156 +0,0 @@
    -<include>
    -
    -  <macro name="demo_ivr_count">
    -    <input pattern="^(\d+)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-you_have.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-messages.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="demo_ivr_main_menu" pause="100"> <!-- See conf/autoload_config/ivr.conf.xml for an example on how to use this macro in an IVR -->
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- string together several existing sound files to create one long greeting -->
    -        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
    -        <action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
    -        <action function="play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>
    -        <!-- note that you can do more than just play files, e.g. have pauses and do TTS -->
    -
    -        <!-- Menu option 1: Call FreeSWITCH conference-->
    -        <action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
    -        <action function="play-file" data="silence_stream://1500"/>
    -        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/1.wav"/>
    -
    -        <!-- Menu option 2: Do FreeSWITCH echo test -->
    -        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/2.wav"/>
    -
    -        <!-- Menu option 3: Listen to Music on Hold -->
    -        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/3.wav"/>
    -
    -        <!-- Menu option 4: Register for ClueCon -->
    -        <action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
    -        <action function="play-file" data="digits/4.wav"/>
    -
    -        <!-- Menu option 5: Listen to screaming monkeys -->
    -        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/5.wav"/>
    -
    -        <!-- Menu option 6: Hear a sample submenu -->
    -        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/6.wav"/>
    -
    -        <!-- Menu option 9: Repeat these options -->
    -        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/9.wav"/>
    -        <action function="play-file" data="silence_stream://2000"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
    -  <!-- The short version has all the options but not the initial greeting -->
    -  <macro name="demo_ivr_main_menu_short" pause="100">
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- Menu option 1: Call FreeSWITCH conference-->
    -        <action function="play-file" data="silence_stream://1000"/>
    -        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/1.wav"/>
    -
    -        <!-- Menu option 2: Do FreeSWITCH echo test -->
    -        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/2.wav"/>
    -
    -        <!-- Menu option 3: Listen to Music on Hold -->
    -        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/3.wav"/>
    -
    -        <!-- Menu option 4: Hear a sample submenu -->
    -        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/4.wav"/>
    -
    -        <!-- Menu option 5: Listen to screaming monkeys -->
    -        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/5.wav"/>
    -
    -        <!-- Menu option 9: Repeat these options -->
    -        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/9.wav"/>
    -        <action function="play-file" data="silence_stream://2000"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the "long" greeting for the demo_ivr_sub_menu -->
    -  <macro name="demo_ivr_sub_menu">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
    -        <action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
    -
    -        <!-- Menu option *: Return to top menu -->
    -        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/star.wav"/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
    -  <!-- The short version has all the options but not the initial greeting -->
    -  <macro name="demo_ivr_sub_menu_short">
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- Menu option *: Return to top menu -->
    -        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/star.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include>
    -<!--
    -For Emacs:
    -Local Variables:
    -mode:xml
    -indent-tabs-mode:nil
    -tab-width:2
    -c-basic-offset:2
    -End:
    -For VIM:
    -vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
    --->
    
  • conf/rayo/lang/en/demo/demo.xml+0 82 removed
    @@ -1,82 +0,0 @@
    -<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:
    --->
    
  • conf/rayo/lang/en/demo/funnies.xml+0 35 removed
    @@ -1,35 +0,0 @@
    -<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
    
  • conf/rayo/lang/en/demo/new-demo-ivr.xml+0 171 removed
    @@ -1,171 +0,0 @@
    -<?xml version="1.0" encoding="Windows-1252"?>
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -
    -  <macro name="new_demo_ivr_main_menu" pause="100"> <!-- See conf/ivr_menus/ivr.conf.xml for an example on how to use this macro in an IVR -->
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
    -        <action function="play-file" data="silence_stream://500"/>
    -
    -        <!-- Menu option 1: For information about FreeSWITCH... -->
    -        <action function="play-file" data="misc/misc-information_about_freeswitch.wav"/>
    -        <action function="play-file" data="digits/1.wav"/>
    -
    -        <!-- Menu option 2: To learn more about FreeSWITCH Solutions... -->
    -        <action function="play-file" data="misc/misc-learn_more_about_freeswitch_solutions.wav"/>
    -        <action function="play-file" data="digits/2.wav"/>
    -
    -        <!-- Menu option 3: To hear about ClueCon -->
    -        <action function="play-file" data="misc/misc-to_hear_about_cluecon.wav"/>
    -        <action function="play-file" data="digits/3.wav"/>
    -
    -        <!-- Menu option 4: For other options -->
    -        <action function="play-file" data="ivr/ivr-for_other_options.wav"/>
    -        <action function="play-file" data="digits/4.wav"/>
    -
    -        <!-- Menu option 9: Repeat these options -->
    -        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/9.wav"/>
    -        <action function="play-file" data="silence_stream://2000"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the same as new_demo_ivr_main_menu except it is the "short" version -->
    -  <!-- The short version has all the options but not the initial greeting -->
    -  <macro name="new_demo_ivr_main_menu_short" pause="100"> 
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- Menu option 1: For information about FreeSWITCH... -->
    -        <action function="play-file" data="misc/misc-information_about_freeswitch.wav"/>
    -        <action function="play-file" data="digits/1.wav"/>
    -
    -        <!-- Menu option 2: To learn more about FreeSWITCH Solutions... -->
    -        <action function="play-file" data="misc/misc-learn_more_about_freeswitch_solutions.wav"/>
    -        <action function="play-file" data="digits/2.wav"/>
    -
    -        <!-- Menu option 3: To hear about ClueCon -->
    -        <action function="play-file" data="misc/misc-to_hear_about_cluecon.wav"/>
    -        <action function="play-file" data="digits/3.wav"/>
    -
    -        <!-- Menu option 4: For other options -->
    -        <action function="play-file" data="ivr/ivr-for_other_options.wav"/>
    -        <action function="play-file" data="digits/4.wav"/>
    -
    -        <!-- Menu option 9: Repeat these options -->
    -        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/9.wav"/>
    -        <action function="play-file" data="silence_stream://2000"/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- More information about FreeSWITCH... -->
    -  <macro name="learn_about_freeswitch_sub_menu">
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- Information about FreeSWITCH and OSTAG... -->
    -        <action function="play-file" data="misc-freeswitch_is_state_of_the_art.wav"/>
    -        <action function="play-file" data="silence_stream://50"/>
    -        <action function="play-file" data="misc-it_is_stable_scalable_extensible.wav"/>
    -        <action function="play-file" data="silence_stream://50"/>
    -        <action function="play-file" data="misc-free_to_download.wav"/>
    -        <action function="play-file" data="silence_stream://50"/>
    -        <action function="play-file" data="misc-freeswitch_sponsored_by_ostag.wav"/>
    -        <action function="play-file" data="silence_stream://50"/>
    -        <action function="play-file" data="misc-ostag_learn_more.wav"/>
    -        <action function="play-file" data="silence_stream://50"/>
    -
    -        <!-- Menu option 9: Repeat this information -->
    -        <action function="play-file" data="ivr/ivr-repeat_this_information.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/9.wav"/>
    -        <action function="play-file" data="silence_stream://2000"/>
    -
    -        <!-- Menu option *: Return to top menu -->
    -        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/star.wav"/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- More information about FreeSWITCH Solutions... -->
    -  <macro name="learn_about_freeswitch_solutions_sub_menu">
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- Information about FreeSWITCH Solutions... -->
    -        <action function="play-file" data="[[sounds from tony/brian]]"/>
    -        <action function="play-file" data="silence_stream://50"/>
    -        <action function="play-file" data="[[sounds from tony/brian]]"/>
    -        <action function="play-file" data="silence_stream://50"/>
    -        <action function="play-file" data="[[sounds from tony/brian]]"/>
    -        <action function="play-file" data="silence_stream://50"/>
    -        <action function="play-file" data="[[sounds from tony/brian]]"/>
    -        <action function="play-file" data="silence_stream://50"/>
    -        <action function="play-file" data="[[sounds from tony/brian]]"/>
    -        <action function="play-file" data="silence_stream://50"/>
    -
    -        <!-- Menu option 9: Repeat this information -->
    -        <action function="play-file" data="ivr/ivr-repeat_this_information.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/9.wav"/>
    -        <action function="play-file" data="silence_stream://2000"/>
    -
    -        <!-- Menu option *: Return to top menu -->
    -        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/star.wav"/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- More information about ClueCon -->
    -  <macro name="learn_about_cluecon_sub_menu">
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- Information about ClueCon... -->
    -        <action function="play-file" data="misc-cluecon_is_premier_conference.wav"/>
    -        <action function="play-file" data="silence_stream://50"/>
    -        <action function="play-file" data="misc-chicago_each_summer.wav"/>
    -        <action function="play-file" data="silence_stream://50"/>
    -        <action function="play-file" data="misc-wide_range_of_persons.wav"/>
    -        <action function="play-file" data="silence_stream://50"/>
    -        <action function="play-file" data="misc-support_open_source_by_attending.wav"/>
    -        <action function="play-file" data="silence_stream://500"/>
    -        <action function="play-file" data="ivr-register_for_cluecon.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/1.wav"/>
    -        <action function="play-file" data="silence_stream://500"/>
    -
    -        <!-- Menu option 9: Repeat this information -->
    -        <action function="play-file" data="ivr/ivr-repeat_this_information.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/9.wav"/>
    -        <action function="play-file" data="silence_stream://2000"/>
    -
    -        <!-- Menu option *: Return to top menu -->
    -        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/star.wav"/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/en/dir/sounds.xml+0 130 removed
    @@ -1,130 +0,0 @@
    -<include>
    -
    -  <macro name="directory_intro">
    -    <input pattern="^(last_name)" break_on_match="false">
    -      <match>
    -        <action function="play-file" data="directory/dir-enter_person.wav"/>
    -        <action function="play-file" data="directory/dir-last_name.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(first_name)" break_on_match="false">
    -      <match>
    -        <action function="play-file" data="directory/dir-enter_person.wav"/>
    -        <action function="play-file" data="directory/dir-first_name.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(last_name):([0-9#*])$" break_on_match="false">
    -      <match>
    -        <action function="play-file" data="directory/dir-to_search_by.wav"/>
    -        <action function="play-file" data="directory/dir-first_name.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -    <input pattern="^(first_name):([0-9#*])$" break_on_match="false">
    -      <match>
    -        <action function="play-file" data="directory/dir-to_search_by.wav"/>
    -        <action function="play-file" data="directory/dir-last_name.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_min_search_digits">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="directory/dir-specify_mininum.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -        <action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_count">
    -    <input pattern="^0$" break_on_match="true">
    -      <match>
    -        <action function="play-file" data="directory/dir-no_matching_results.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -        <action function="play-file" data="directory/dir-result_match.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_count_too_large">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="directory/dir-too_many_result.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_last">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="directory/dir-no_more_results.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_item">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="directory/dir-result_number.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_at">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="directory/dir-at_extension.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_menu">
    -    <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
    -      <match>
    -        <action function="play-file" data="directory/dir-to_select_entry.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="directory/dir-for_next.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="directory/dir-for_prev.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="directory/dir-start_new_search.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include>
    -<!--
    -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:
    --->
    
  • conf/rayo/lang/en/dir/tts.xml+0 106 removed
    @@ -1,106 +0,0 @@
    -<include>
    -
    -  <macro name="directory_intro">
    -    <input pattern="^(last_name)" break_on_match="false">
    -      <match>
    -        <action function="speak-text" data="Please enter the first few digit of the person last name"/>
    -      </match>
    -    </input>
    -    <input pattern="^(first_name)" break_on_match="false">
    -      <match>
    -        <action function="speak-text" data="Please enter the first few digit of the person first name"/>
    -      </match>
    -    </input>
    -    <input pattern="^(last_name):([0-9#*])$" break_on_match="false">
    -      <match>
    -        <action function="speak-text" data="to search by first name, press $2"/>
    -      </match>
    -    </input>
    -    <input pattern="^(first_name):([0-9#*])$" break_on_match="false">
    -      <match>
    -        <action function="speak-text" data="to search by last name, press $2"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_min_search_digits">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_count">
    -    <input pattern="^0$" break_on_match="true">
    -      <match>
    -        <action function="speak-text" data="Your search match no user on this system, try again."/>
    -      </match>
    -    </input>
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1 result match your search"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_count_too_large">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="Your search returned too many result, please try again"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_last">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="No more result"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_item">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="Result number $1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_menu">
    -    <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
    -      <match>
    -        <action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_at">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="at extension $1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include>
    -<!--
    -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:
    --->
    
  • conf/rayo/lang/en/en.xml+0 25 removed
    @@ -1,25 +0,0 @@
    -<include>
    -  <language name="en" say-module="en" sound-prefix="$${sound_prefix}" tts-engine="cepstral" tts-voice="callie">
    -    <phrases>
    -      <macros>
    -        <X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
    -        <!-- voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. -->
    -        <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
    -        <X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
    -        <X-PRE-PROCESS cmd="include" data="ivr/*.xml"/>  <!-- IVR and custom phrases go here -->
    -      </macros>
    -      <X-PRE-PROCESS cmd="include" data="vm/voicemail_ivr.xml"/>
    -    </phrases>
    -  </language>
    -</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:
    --->
    
  • conf/rayo/lang/en/ivr/sounds.xml+0 153 removed
    @@ -1,153 +0,0 @@
    -<include>
    -  <macro name="queue_position">
    -    <input pattern="^(\d+)$">
    -      <match>
    -        <action function="play-file" data="ivr/ivr-you_are_number.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -        <action function="play-file" data="ivr/ivr-in_line.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="has_called_conf">
    -    <input pattern="^(\d+)$">
    -      <match>
    -        <action function="play-file" data="$1"/>
    -        <action function="sleep" data="100"/>
    -        <action function="play-file" data="conference/conf-has_joined.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="has_left_conf">
    -    <input pattern="^(\d+)$">
    -      <match>
    -        <action function="play-file" data="$1"/>
    -        <action function="sleep" data="100"/>
    -        <action function="play-file" data="conference/conf-has_left.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="callers_in_conf">
    -    <input pattern="^1$" break_on_match="true">
    -      <match>
    -        <action function="sleep" data="500"/>
    -        <!--<action function="play-file" data="ivr/ivr-there_is.wav"/>-->
    -        <action function="play-file" data="digits/1.wav"/>
    -        <action function="sleep" data="100"/>
    -        <action function="play-file" data="conference/conf-listener_in_conference.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(\d+)$">
    -      <match>
    -        <action function="sleep" data="500"/>
    -        <action function="play-file" data="ivr/ivr-there_are.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -        <action function="sleep" data="100"/>
    -        <action function="play-file" data="conference/conf-members_in_conference.wav"/>
    -      </match>
    -      <nomatch>
    -        <action function="sleep" data="500"/>
    -        <action function="play-file" data="ivr/ivr-there_are.wav"/>
    -        <action function="play-file" data="digits/0.wav"/>
    -        <action function="sleep" data="100"/>
    -        <action function="play-file" data="conference/conf-members_in_conference.wav"/>
    -      </nomatch>
    -    </input>
    -  </macro>
    -
    -  <macro name="enter_dest_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="sleep" data="1000"/>
    -        <action function="play-file" data="ivr/ivr-enter_destination_telephone_number.wav"/>
    -        <action function="sleep" data="1000"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="enter_src_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="sleep" data="1000"/>
    -        <action function="play-file" data="ivr/ivr-enter_source_telephone_number.wav"/>
    -        <action function="sleep" data="1000"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="call_forward_set">
    -    <input pattern="^(\d+):(\d+)$">
    -      <match>
    -        <action function="sleep" data="1000"/>
    -        <action function="play-file" data="ivr/ivr-extension_number.wav"/>
    -        <action function="sleep" data="400"/>
    -        <action function="say" data="$1" method="iterated" type="number"/>
    -        <action function="sleep" data="400"/>
    -        <action function="play-file" data="digits/2.wav"/>
    -        <action function="sleep" data="1000"/>
    -        <action function="play-file" data="ivr/ivr-extension_number.wav"/>
    -        <action function="sleep" data="400"/>
    -        <action function="say" data="$2" method="iterated" type="number"/>
    -        <action function="sleep" data="1000"/>
    -        <action function="play-file" data="ivr/ivr-call_forwarding_has_been_set.wav"/>
    -        <action function="sleep" data="1500"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="call_forward_cancel">
    -    <input pattern="^(\d+)$">
    -      <match>
    -        <action function="sleep" data="1000"/>
    -        <action function="play-file" data="ivr/ivr-extension_number.wav"/>
    -        <action function="sleep" data="400"/>
    -        <action function="say" data="$1" method="iterated" type="number"/>
    -        <action function="play-file" data="ivr/ivr-call_forwarding_has_been_cancelled.wav"/>
    -        <action function="sleep" data="1500"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="screen_confirm">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="sleep" data="500"/>
    -        <action function="play-file" data="ivr/ivr-call_from.wav"/>
    -        <action function="sleep" data="250"/>
    -        <!-- Note, be sure to pass in the full path to the file or else!! -->
    -        <action function="play-file" data="$1"/>
    -        <action function="sleep" data="500"/>
    -        <action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
    -        <action function="sleep" data="500"/>
    -        <action function="play-file" data="ivr/ivr-to_reject.wav"/>
    -        <action function="sleep" data="50"/>
    -        <action function="play-file" data="ivr/ivr-hang_up.wav"/>
    -        <action function="sleep" data="1500"/>
    -        <action function="play-file" data="ivr/ivr-call_from.wav"/>
    -        <action function="sleep" data="250"/>
    -        <action function="play-file" data="$1"/>
    -        <action function="sleep" data="500"/>
    -        <action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
    -        <action function="sleep" data="500"/>
    -        <action function="play-file" data="ivr/ivr-to_reject.wav"/>
    -        <action function="sleep" data="50"/>
    -        <action function="play-file" data="ivr/ivr-hang_up.wav"/>
    -        <action function="sleep" data="1500"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include>
    -<!--
    -For Emacs:
    -Local Variables:
    -mode:xml
    -indent-tabs-mode:nil
    -tab-width:2
    -c-basic-offset:2
    -End:
    -For VIM:
    -vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
    --->
    
  • conf/rayo/lang/en/vm/sounds.xml+0 441 removed
    @@ -1,441 +0,0 @@
    -<include>
    -
    -  <macro name="voicemail_enter_id">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-enter_id.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_enter_pass">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-enter_pass.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_fail_auth">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-fail_auth.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_change_pass_success">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="play-file" data="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>
    -
    -  <macro name="voicemail_hello">
    -    <input pattern="(.*)">
    -      <match>
    -        <!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_goodbye">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-goodbye.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_abort">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-abort.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_message_count">
    -    <input pattern="^(1):(.*)$" break_on_match="true">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-you_have.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -        <action function="play-file" data="voicemail/vm-$2.wav"/>
    -        <action function="play-file" data="voicemail/vm-message.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(\d+):(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-you_have.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -        <action function="play-file" data="voicemail/vm-$2.wav"/>
    -        <action function="play-file" data="voicemail/vm-messages.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -        <!-- To listen to new messages -->
    -        <action function="play-file" data="voicemail/vm-listen_new.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="execute" data="sleep(100)"/>
    -
    -        <!-- To listen to saved messages -->
    -        <action function="play-file" data="voicemail/vm-listen_saved.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -        <action function="execute" data="sleep(100)"/>
    -
    -        <!-- For advanced options -->
    -        <action function="play-file" data="voicemail/vm-advanced.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -        <action function="execute" data="sleep(100)"/>
    -
    -        <!-- To exit -->
    -        <action function="play-file" data="voicemail/vm-to_exit.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$4" method="pronounced" type="name_phonetic"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_config_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -        <!-- To record a greeting -->
    -        <action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="execute" data="sleep(100)"/>
    -
    -        <!-- To choose greeting -->
    -        <action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -        <action function="execute" data="sleep(100)"/>
    -
    -        <!-- To record your name -->
    -        <action function="play-file" data="voicemail/vm-record_name2.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -        <action function="execute" data="sleep(100)"/>
    -
    -        <!-- To change password -->
    -        <action function="play-file" data="voicemail/vm-change_password.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -        <action function="execute" data="sleep(100)"/>
    -
    -        <!-- To return to main menu -->
    -        <action function="play-file" data="voicemail/vm-main_menu.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-record_name1.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-rerecord.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_urgent_check">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-continue.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_prepend">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-send_message_now.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_message_enter_extension">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
    -        <action function="play-file" data="voicemail/vm-followed_by.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_invalid_extension">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_listen_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-return_call.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-to_forward.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$6" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-return_call.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-to_forward.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$6" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting_fail">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-record_greeting.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_message">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-record_message.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_greeting_selected">
    -    <input pattern="^(\d+)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-greeting.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -        <action function="play-file" data="voicemail/vm-selected.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_play_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-person.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-not_available.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_number">
    -    <input pattern="^(\d+)$">
    -      <match>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_message_number">
    -    <input pattern="^([a-z]+):(\d+)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-$1.wav"/>
    -        <action function="play-file" data="voicemail/vm-message_number.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="items"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_phone_number">
    -    <input pattern="^000|^$|^[Aa]non|^[Pp]rivate" break_on_match="true">
    -      <match>
    -        <!-- add 'anonymous caller' sound here -->
    -      </match>
    -    </input>
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="ivr/ivr-this_is_a_call_from.wav"/>
    -        <action function="execute" data="sleep(100)"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="execute" data="sleep(500)"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -  <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
    -  <macro name="voicemail_ack">
    -    <input pattern="^(too-small)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-too-small.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(deleted)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-message.wav"/>
    -        <action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(saved)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-message.wav"/>
    -        <action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(emailed)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-message.wav"/>
    -        <action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(marked-urgent)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-message.wav"/>
    -        <action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_date">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="say" data="$1" method="pronounced" type="short_date_time"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_disk_quota_exceeded">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_announce_ext">
    -    <input pattern="^([^\:]+):(.*)$">
    -      <match>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_lot_full">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_lot_empty">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include>
    -<!--
    -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:
    --->
    
  • conf/rayo/lang/en/vm/tts.xml+0 249 removed
    @@ -1,249 +0,0 @@
    -<include>
    -
    -  <macro name="voicemail_enter_id">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="please enter your i d, followed by $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_enter_pass">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="please enter your password, followed by $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_fail_auth">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="login incorrect."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_hello">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="welcome to your voicemail."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_goodbye">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="goodbye."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_abort">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="too many failed attempts."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_message_count">
    -    <input pattern="^1:(.*)$" break_on_match="true">
    -      <match>
    -        <action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/>
    -      </match>
    -    </input>
    -    <input pattern="^(\d+):(.*)$">
    -      <match>
    -        <action function="speak-text" data="you have $1 $2 messages in folder ${voicemail_current_folder}."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="speak-text"
    -                data="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $4."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_config_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="speak-text"
    -                data="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="speak-text"
    -                data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_urgent_check">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="speak-text"
    -                data="To mark this message urgent, press $1, To continue, press $2."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_invalid_extension">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -        <action function="speak-text" data="$1 is not a valid extension."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_message_enter_extension">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -        <action function="speak-text" data="enter the extension you wish to forward to, then press $1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_prepend">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -        <action function="speak-text" data="To record an announcement, press $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_listen_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="speak-text"
    -                data="To listen to the recording again, press $1, To save the recording, press $2,  To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="choose a greeting between 1 and 3."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting_fail">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="invalid value."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_message">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_greeting_selected">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="greeting $1 selected."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_play_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1 is not available."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_message_number">
    -    <input pattern="^([a-z]+):(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1 message number $2."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_phone_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_ack">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="message $1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_date">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include>
    -<!--
    -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:
    --->
    
  • conf/rayo/lang/en/vm/voicemail_ivr.xml+0 417 removed
    @@ -1,417 +0,0 @@
    -<include>
    -
    -  <macros name="voicemail_ivr">
    -    <macro name="press_key">
    -      <input pattern="^(.*):(.*)$">
    -        <match>
    -          <action function="play-file" data="$2"/>
    -          <action function="play-file" data="voicemail/vm-press.wav"/>
    -          <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="plural_msg">
    -      <input pattern="^[1]:(.*):(.*)$" break_on_match="true">
    -        <match>
    -          <action function="play-file" data="$1"/>
    -        </match>
    -      </input>
    -      <input pattern="^.*:(.*):(.*)$" break_on_match="true">
    -        <match>
    -          <action function="play-file" data="$2"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="enter_id">
    -      <input pattern="(.+)">
    -        <match>
    -          <action function="play-file" data="voicemail/vm-enter_id.wav"/>
    -          <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        </match>
    -        <nomatch>
    -          <action function="play-file" data="voicemail/vm-enter_id.wav"/>
    -          <action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
    -        </nomatch>
    -      </input>
    -    </macro>
    -
    -    <macro name="enter_pass">
    -      <input pattern="(.+)">
    -        <match>
    -          <action function="play-file" data="voicemail/vm-enter_pass.wav"/>
    -          <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        </match>
    -        <nomatch>
    -          <action function="play-file" data="voicemail/vm-enter_pass.wav"/>
    -          <action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
    -        </nomatch>
    -
    -      </input>
    -    </macro>
    -
    -    <macro name="fail_auth">
    -      <input>
    -        <match>
    -          <action function="play-file" data="voicemail/vm-fail_auth.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="hello">
    -      <input>
    -        <match>
    -          <!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="goodbye">
    -      <input>
    -        <match>
    -          <action function="play-file" data="voicemail/vm-goodbye.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="abort">
    -      <input>
    -        <match>
    -          <action function="play-file" data="voicemail/vm-abort.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="message_count">
    -      <input field="${VM-Total-New-Urgent-Messages}" pattern="^(0)$">
    -        <nomatch>
    -          <action function="play-file" data="voicemail/vm-you_have.wav"/>
    -          <action function="say" data="${VM-Total-New-Urgent-Messages}" method="pronounced" type="items"/>
    -          <action function="play-file" data="voicemail/vm-urgent-new.wav"/>
    -          <action function="phrase" phrase="plural_msg@voicemail_ivr" data="${VM-Total-New-Urgent-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
    -        </nomatch>
    -      </input>
    -      <input field="${VM-Total-New-Messages}" pattern="^(\d+)$">
    -        <match>
    -          <action function="play-file" data="voicemail/vm-you_have.wav"/>
    -          <action function="say" data="${VM-Total-New-Messages}" method="pronounced" type="items"/>
    -          <action function="play-file" data="voicemail/vm-new.wav"/>
    -          <action function="phrase" phrase="plural_msg@voicemail_ivr" data="${VM-Total-New-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
    -        </match>
    -      </input>
    -      <input field="${VM-Total-Saved-Messages}" pattern="^(0)$">
    -        <nomatch>
    -          <action function="play-file" data="currency/and.wav"/>
    -          <action function="say" data="${VM-Total-Saved-Messages}" method="pronounced" type="items"/>
    -          <action function="play-file" data="voicemail/vm-saved.wav"/>
    -          <action function="phrase" phrase="plural_msg@voicemail_ivr" data="${VM-Total-Saved-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
    -        </nomatch>
    -      </input>
    -    </macro>
    -
    -    <macro name="menu">
    -      <input field="${VM-Total-New-Messages}" pattern="^(0)$">
    -        <nomatch>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-New-Messages}:voicemail/vm-listen_new.wav"/>
    -	</nomatch>
    -      </input>
    -      <input field="${VM-Total-Saved-Messages}" pattern="^(0)$">
    -	<nomatch>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-Saved-Messages}:voicemail/vm-listen_saved.wav"/>
    -	</nomatch>
    -      </input>
    -      <input>
    -	<match>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Config-Menu}:voicemail/vm-advanced.wav"/>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-to_exit.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="config_menu">
    -      <input>
    -        <match>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Greeting}:voicemail/vm-to_record_greeting.wav"/>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Choose-Greeting}:voicemail/vm-choose_greeting.wav"/>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Name}:voicemail/vm-record_name2.wav"/>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Change-Password}:voicemail/vm-change_password.wav"/>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Menu}:voicemail/vm-main_menu.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="record_name">
    -      <input>
    -        <match>
    -          <action function="play-file" data="voicemail/vm-record_name1.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="forward_ask_prepend">
    -      <input>
    -        <match>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="forward_ask_extension">
    -      <input>
    -        <match>
    -          <action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
    -          <!--<action function="phrase" phrase="play-file" data="voicemail/vm-followed_by.wav"/>-->
    -          <!--<action function="say" data="${VM-Key-Terminate}" method="pronounced" type="name_spelled"/>-->
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="record_file_check">
    -      <input>
    -        <match>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Save-File}:voicemail/vm-save_recording.wav"/>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-File}:voicemail/vm-rerecord.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="record_urgent_check">
    -      <input>
    -        <match>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Urgent}:voicemail/vm-mark-urgent.wav"/>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-continue.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="forward_prepend">
    -      <input>
    -        <match>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="forward_message_enter_extension">
    -      <input pattern="^([0-9#*])$">
    -        <match>
    -          <action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
    -          <action function="play-file" data="voicemail/vm-followed_by.wav"/>
    -          <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="invalid_extension">
    -      <input>
    -        <match>
    -          <action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="listen_file_check">
    -      <input>
    -        <match>
    -          <!--<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Next-Msg}:voicemail/vm-for_next_msg.wav"/>--> <!-- Not existant in callie recordings -->
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Save-File}:voicemail/vm-save_recording.wav"/>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Delete-File}:voicemail/vm-delete_recording.wav"/>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
    -        </match>
    -      </input>
    -      <input field="${VM-Message-Email}" pattern="^$">
    -        <nomatch>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Email}:voicemail/vm-forward_to_email.wav"/>
    -        </nomatch>
    -      </input>
    -      <input>
    -        <match>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Callback}:voicemail/vm-return_call.wav"/>
    -          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="choose_greeting">
    -      <input>
    -        <match>
    -          <action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="choose_greeting_fail">
    -      <input>
    -        <match>
    -          <action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="record_greeting">
    -      <input>
    -        <match>
    -          <action function="play-file" data="voicemail/vm-record_greeting.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="record_message">
    -      <input>
    -        <match>
    -          <action function="play-file" data="voicemail/vm-record_message.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="greeting_selected">
    -      <input pattern="^(\d+)$">
    -        <match>
    -	  <action function="play-file" data="${VM-Preference-Greeting-File-Path}"/>
    -          <action function="play-file" data="voicemail/vm-greeting.wav"/>
    -          <action function="say" data="$1" method="pronounced" type="items"/>
    -          <action function="play-file" data="voicemail/vm-selected.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="play_greeting">
    -      <input pattern="^(.*)$">
    -        <match>
    -          <action function="play-file" data="voicemail/vm-person.wav"/>
    -          <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -          <action function="play-file" data="voicemail/vm-not_available.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="say_number">
    -      <input pattern="^(\d+)$">
    -        <match>
    -          <action function="say" data="$1" method="pronounced" type="items"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="say_message_number">
    -      <input>
    -        <match>
    -          <action function="play-file" data="voicemail/vm-${VM-Message-Type}.wav"/>
    -          <action function="play-file" data="voicemail/vm-message_number.wav"/>
    -          <action function="say" data="${VM-Message-Number}" method="pronounced" type="items"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="say_phone_number">
    -      <input pattern="^(.*)$">
    -        <match>
    -          <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="say_name">
    -      <input pattern="^(.*)$">
    -        <match>
    -          <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        </match>
    -      </input>
    -    </macro>
    -    <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
    -    <macro name="ack">
    -      <input pattern="^(too-small)$">
    -        <match>
    -          <action function="play-file" data="voicemail/vm-too-small.wav"/>
    -        </match>
    -      </input>
    -      <input pattern="^(undeleted)$">
    -        <match>
    -          <action function="play-file" data="voicemail/vm-message.wav"/>
    -          <action function="play-file" data="voicemail/vm-$1.wav"/>
    -        </match>
    -      </input>
    -      <input pattern="^(deleted)$">
    -        <match>
    -          <action function="play-file" data="voicemail/vm-message.wav"/>
    -          <action function="play-file" data="voicemail/vm-$1.wav"/>
    -        </match>
    -      </input>
    -      <input pattern="^(saved)$">
    -        <match>
    -          <action function="play-file" data="voicemail/vm-message.wav"/>
    -          <action function="play-file" data="voicemail/vm-$1.wav"/>
    -        </match>
    -      </input>
    -      <input pattern="^(emailed)$">
    -        <match>
    -          <action function="play-file" data="voicemail/vm-message.wav"/>
    -          <action function="play-file" data="voicemail/vm-$1.wav"/>
    -        </match>
    -      </input>
    -      <input pattern="^(marked-urgent)$">
    -        <match>
    -          <action function="play-file" data="voicemail/vm-message.wav"/>
    -          <action function="play-file" data="voicemail/vm-$1.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="say_date">
    -      <input pattern="^(.*)$">
    -        <match>
    -          <action function="say" data="$1" method="pronounced" type="short_date_time"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="say_date_event">
    -      <input>
    -        <match>
    -          <action function="say" data="${VM-Message-Received-Epoch}" method="pronounced" type="short_date_time"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="play_message">
    -      <input>
    -        <match>
    -          <action function="play-file" data="${VM-Message-File-Path}"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="play_recording">
    -      <input>
    -        <match>
    -          <action function="play-file" data="${VM-Record-File-Path}"/>
    -        </match>
    -      </input>
    -    </macro>
    -
    -    <macro name="disk_quota_exceeded">
    -      <input>
    -        <match>
    -          <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
    -        </match>
    -      </input>
    -    </macro>
    -  </macros>
    -
    -</include>
    -<!--
    -For Emacs:
    -Local Variables:
    -mode:xml
    -indent-tabs-mode:nil
    -tab-width:2
    -c-basic-offset:2
    -End:
    -For VIM:
    -vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
    --->
    
  • conf/rayo/lang/es/demo/demo-es-ES.xml+0 71 removed
    @@ -1,71 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -    <macro name="msgcount">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="execute" data="sleep(1000)"/>
    -	  <action function="play-file" data="voicemail/vm-you_have.wav"/>
    -	  <action function="say" data="$1" method="pronounced" type="items"/>
    -	  <action function="play-file" data="voicemail/vm-messages.wav"/>
    -	  <!-- or -->
    -	  <!--<action function="speak-text" data="Usted tiene $1 mensajes"/>-->
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="saydate">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="pronounced" type="current_date_time"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="timespec">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="pronounced" type="time_measurement"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="ip-addr">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="iterated" type="ip_address"/>
    -	  <action function="say" data="$1" method="pronounced" type="ip_address"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="spell">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="spell-phonetic">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="tts-timeleft">
    -      <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
    -      <!-- If the function "break" is encountered all parsing will cease -->
    -      <input pattern="(\d+):(\d+)">
    -	<match>
    -	  <action function="speak-text" data="Quedan $1 minutos y $2 segundos $strftime(%Y-%m-%d)"/>
    -	  <action function="break"/>
    -	</match>
    -	<nomatch>
    -	  <action function="speak-text" data="Esa fue una entrada inválida."/>
    -	</nomatch>
    -      </input>
    -      <input pattern="(\d+) min (\d+) sec">
    -	<match>
    -	  <action function="speak-text" data="Quedan $1 minutos y $2 segundos $strftime(%Y-%m-%d)"/>
    -	</match>
    -	<nomatch>
    -	  <action function="speak-text" data="Esa fue una entrada inválida."/>
    -	</nomatch>
    -      </input>
    -    </macro>
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/es/demo/demo-es-MX.xml+0 71 removed
    @@ -1,71 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -    <macro name="msgcount">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="execute" data="sleep(1000)"/>
    -	  <action function="play-file" data="voicemail/vm-you_have.wav"/>
    -	  <action function="say" data="$1" method="pronounced" type="items"/>
    -	  <action function="play-file" data="voicemail/vm-messages.wav"/>
    -	  <!-- or -->
    -	  <!--<action function="speak-text" data="Usted tiene $1 mensajes"/>-->
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="saydate">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="pronounced" type="current_date_time"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="timespec">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="pronounced" type="time_measurement"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="ip-addr">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="iterated" type="ip_address"/>
    -	  <action function="say" data="$1" method="pronounced" type="ip_address"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="spell">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="spell-phonetic">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="tts-timeleft">
    -      <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
    -      <!-- If the function "break" is encountered all parsing will cease -->
    -      <input pattern="(\d+):(\d+)">
    -	<match>
    -	  <action function="speak-text" data="Quedan $1 minutos y $2 segundos $strftime(%Y-%m-%d)"/>
    -	  <action function="break"/>
    -	</match>
    -	<nomatch>
    -	  <action function="speak-text" data="Esa fue una entrada inválida."/>
    -	</nomatch>
    -      </input>
    -      <input pattern="(\d+) min (\d+) sec">
    -	<match>
    -	  <action function="speak-text" data="Quedan $1 minutos y $2 segundos $strftime(%Y-%m-%d)"/>
    -	</match>
    -	<nomatch>
    -	  <action function="speak-text" data="Esa fue una entrada inválida."/>
    -	</nomatch>
    -      </input>
    -    </macro>
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/es/demo/demo-ivr-es-ES.xml+0 148 removed
    @@ -1,148 +0,0 @@
    -<?xml version="1.0" encoding="Windows-1252"?>
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -
    -
    -  <macro name="demo_ivr_count">
    -    <input pattern="^(\d+)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-you_have.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-messages.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="demo_ivr_main_menu" pause="100"> <!-- See conf/autoload_config/ivr.conf.xml for an example on how to use this macro in an IVR -->
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- string together several existing sound files to create one long greeting -->
    -        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
    -        <action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
    -        <action function="play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>
    -        <!-- note that you can do more than just play files, e.g. have pauses and do TTS -->
    -
    -        <!-- Menu option 1: Call FreeSWITCH conference-->
    -        <action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
    -        <action function="play-file" data="silence_stream://1500"/>
    -        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/1.wav"/>
    -
    -        <!-- Menu option 2: Do FreeSWITCH echo test -->
    -        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/2.wav"/>
    -
    -        <!-- Menu option 3: Listen to Music on Hold -->
    -        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/3.wav"/>
    -
    -        <!-- Menu option 4: Register for ClueCon -->
    -        <action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
    -        <action function="play-file" data="digits/4.wav"/>
    -
    -        <!-- Menu option 5: Listen to screaming monkeys -->
    -        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/5.wav"/>
    -
    -        <!-- Menu option 6: Hear a sample submenu -->
    -        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/6.wav"/>
    -
    -        <!-- Menu option 9: Repeat these options -->
    -        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/9.wav"/>
    -        <action function="play-file" data="silence_stream://2000"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
    -  <!-- The short version has all the options but not the initial greeting -->
    -  <macro name="demo_ivr_main_menu_short" pause="100"> 
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- Menu option 1: Call FreeSWITCH conference-->
    -        <action function="play-file" data="silence_stream://1000"/>
    -        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/1.wav"/>
    -
    -        <!-- Menu option 2: Do FreeSWITCH echo test -->
    -        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/2.wav"/>
    -
    -        <!-- Menu option 3: Listen to Music on Hold -->
    -        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/3.wav"/>
    -
    -        <!-- Menu option 4: Hear a sample submenu -->
    -        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/4.wav"/>
    -
    -        <!-- Menu option 5: Listen to screaming monkeys -->
    -        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/5.wav"/>
    -
    -        <!-- Menu option 9: Repeat these options -->
    -        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/9.wav"/>
    -        <action function="play-file" data="silence_stream://2000"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the "long" greeting for the demo_ivr_sub_menu -->
    -  <macro name="demo_ivr_sub_menu">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
    -        <action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
    -
    -        <!-- Menu option *: Return to top menu -->
    -        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/star.wav"/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
    -  <!-- The short version has all the options but not the initial greeting -->
    -  <macro name="demo_ivr_sub_menu_short"> 
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- Menu option *: Return to top menu -->
    -        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/star.wav"/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/es/demo/demo-ivr-es-MX.xml+0 148 removed
    @@ -1,148 +0,0 @@
    -<?xml version="1.0" encoding="Windows-1252"?>
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -
    -
    -  <macro name="demo_ivr_count">
    -    <input pattern="^(\d+)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-you_have.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-messages.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="demo_ivr_main_menu" pause="100"> <!-- See conf/autoload_config/ivr.conf.xml for an example on how to use this macro in an IVR -->
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- string together several existing sound files to create one long greeting -->
    -        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
    -        <action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
    -        <action function="play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>
    -        <!-- note that you can do more than just play files, e.g. have pauses and do TTS -->
    -
    -        <!-- Menu option 1: Call FreeSWITCH conference-->
    -        <action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
    -        <action function="play-file" data="silence_stream://1500"/>
    -        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/1.wav"/>
    -
    -        <!-- Menu option 2: Do FreeSWITCH echo test -->
    -        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/2.wav"/>
    -
    -        <!-- Menu option 3: Listen to Music on Hold -->
    -        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/3.wav"/>
    -
    -        <!-- Menu option 4: Register for ClueCon -->
    -        <action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
    -        <action function="play-file" data="digits/4.wav"/>
    -
    -        <!-- Menu option 5: Listen to screaming monkeys -->
    -        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/5.wav"/>
    -
    -        <!-- Menu option 6: Hear a sample submenu -->
    -        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/6.wav"/>
    -
    -        <!-- Menu option 9: Repeat these options -->
    -        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/9.wav"/>
    -        <action function="play-file" data="silence_stream://2000"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
    -  <!-- The short version has all the options but not the initial greeting -->
    -  <macro name="demo_ivr_main_menu_short" pause="100"> 
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- Menu option 1: Call FreeSWITCH conference-->
    -        <action function="play-file" data="silence_stream://1000"/>
    -        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/1.wav"/>
    -
    -        <!-- Menu option 2: Do FreeSWITCH echo test -->
    -        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/2.wav"/>
    -
    -        <!-- Menu option 3: Listen to Music on Hold -->
    -        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/3.wav"/>
    -
    -        <!-- Menu option 4: Hear a sample submenu -->
    -        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/4.wav"/>
    -
    -        <!-- Menu option 5: Listen to screaming monkeys -->
    -        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/5.wav"/>
    -
    -        <!-- Menu option 9: Repeat these options -->
    -        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/9.wav"/>
    -        <action function="play-file" data="silence_stream://2000"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the "long" greeting for the demo_ivr_sub_menu -->
    -  <macro name="demo_ivr_sub_menu">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
    -        <action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
    -
    -        <!-- Menu option *: Return to top menu -->
    -        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/star.wav"/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
    -  <!-- The short version has all the options but not the initial greeting -->
    -  <macro name="demo_ivr_sub_menu_short"> 
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- Menu option *: Return to top menu -->
    -        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/star.wav"/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/es/dir/sounds-es-ES.xml+0 121 removed
    @@ -1,121 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -	<macro name="directory_intro">
    -		<input pattern="^(last_name)" break_on_match="false">
    -			<match>
    -				<action function="play-file" data="directory/dir-enter_person.wav"/>
    -				<action function="play-file" data="directory/dir-last_name.wav"/>
    -			</match>
    -		</input>
    -		<input pattern="^(first_name)" break_on_match="false">
    -			<match>
    -                <action function="play-file" data="directory/dir-enter_person.wav"/>
    -                <action function="play-file" data="directory/dir-first_name.wav"/>
    -			</match>
    -		</input>
    -		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
    -			<match>
    -				<action function="play-file" data="directory/dir-to_search_by.wav"/>
    -				<action function="play-file" data="directory/dir-first_name.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -			</match>
    -		</input>
    -		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
    -			<match>
    -				<action function="play-file" data="directory/dir-to_search_by.wav"/>
    -				<action function="play-file" data="directory/dir-last_name.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_min_search_digits">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-specify_mininum.wav"/>
    -				<action function="say" data="$1" method="pronounced" type="items"/>
    -				<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_count">
    -		<input pattern="^0$" break_on_match="true">
    -			<match>
    -				<action function="play-file" data="directory/dir-no_matching_results.wav"/>
    -			</match>
    -		</input>
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="say" data="$1" method="pronounced" type="items"/>
    -				<action function="play-file" data="directory/dir-result_match.wav"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_count_too_large">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-too_many_result.wav"/>
    -			</match>
    -		</input>
    -
    -	</macro>
    -
    -	<macro name="directory_result_last">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-no_more_results.wav"/>
    -			</match>
    -		</input>
    -
    -	</macro>
    -
    -	<macro name="directory_result_item">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-result_number.wav"/>
    -				<action function="say" data="$1" method="pronounced" type="items"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_at">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-at_extension.wav"/>
    -				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_menu">
    -		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
    -			<match>
    -				<action function="play-file" data="directory/dir-to_select_entry.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -				<action function="play-file" data="directory/dir-for_next.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -				<action function="play-file" data="directory/dir-for_prev.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -				<action function="play-file" data="directory/dir-start_new_search.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_say_name">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/es/dir/sounds-es-MX.xml+0 121 removed
    @@ -1,121 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -	<macro name="directory_intro">
    -		<input pattern="^(last_name)" break_on_match="false">
    -			<match>
    -				<action function="play-file" data="directory/dir-enter_person.wav"/>
    -				<action function="play-file" data="directory/dir-last_name.wav"/>
    -			</match>
    -		</input>
    -		<input pattern="^(first_name)" break_on_match="false">
    -			<match>
    -                <action function="play-file" data="directory/dir-enter_person.wav"/>
    -                <action function="play-file" data="directory/dir-first_name.wav"/>
    -			</match>
    -		</input>
    -		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
    -			<match>
    -				<action function="play-file" data="directory/dir-to_search_by.wav"/>
    -				<action function="play-file" data="directory/dir-first_name.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -			</match>
    -		</input>
    -		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
    -			<match>
    -				<action function="play-file" data="directory/dir-to_search_by.wav"/>
    -				<action function="play-file" data="directory/dir-last_name.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_min_search_digits">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-specify_mininum.wav"/>
    -				<action function="say" data="$1" method="pronounced" type="items"/>
    -				<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_count">
    -		<input pattern="^0$" break_on_match="true">
    -			<match>
    -				<action function="play-file" data="directory/dir-no_matching_results.wav"/>
    -			</match>
    -		</input>
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="say" data="$1" method="pronounced" type="items"/>
    -				<action function="play-file" data="directory/dir-result_match.wav"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_count_too_large">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-too_many_result.wav"/>
    -			</match>
    -		</input>
    -
    -	</macro>
    -
    -	<macro name="directory_result_last">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-no_more_results.wav"/>
    -			</match>
    -		</input>
    -
    -	</macro>
    -
    -	<macro name="directory_result_item">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-result_number.wav"/>
    -				<action function="say" data="$1" method="pronounced" type="items"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_at">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-at_extension.wav"/>
    -				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_menu">
    -		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
    -			<match>
    -				<action function="play-file" data="directory/dir-to_select_entry.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -				<action function="play-file" data="directory/dir-for_next.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -				<action function="play-file" data="directory/dir-for_prev.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -				<action function="play-file" data="directory/dir-start_new_search.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_say_name">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/es/dir/tts-es-ES.xml+0 96 removed
    @@ -1,96 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -
    -	<macro name="directory_intro">
    -		<input pattern="^(last_name)" break_on_match="false">
    -			<match>
    -				<action function="speak-text" data="Introduzca las primeras letras del apellido de la persona."/>
    -			</match>
    -		</input>
    -		<input pattern="^(first_name)" break_on_match="false">
    -			<match>
    -				<action function="speak-text" data="Introduzca las primeras letras del nombre de la persona."/>
    -			</match>
    -		</input>
    -		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
    -			<match>
    -				<action function="speak-text" data="Para buscar por apellido, pulse $2"/>
    -			</match>
    -		</input>
    -		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
    -			<match>
    -				<action function="speak-text" data="Para buscar por nombre, pulse $2"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_min_search_digits">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="Necesita especificar un mínimo de $1 letras del nombre buscado. Por favor intente de nuevo."/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_count">
    -		<input pattern="^0$" break_on_match="true">
    -			<match>
    -				<action function="speak-text" data="No hay resultados que coincidan con su busqueda. Por favor intente de nuevo."/>
    -			</match>
    -		</input>
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="$1 resultados coinciden con su busqueda."/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_count_too_large">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="Su busqueda genera demasiados resultados. Por favor intente de nuevo."/>
    -			</match>
    -		</input>
    -
    -	</macro>
    -
    -	<macro name="directory_result_last">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="No hay más resultados."/>
    -			</match>
    -		</input>
    -
    -	</macro>
    -
    -	<macro name="directory_result_item">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="Resultado número $1"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_menu">
    -		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
    -			<match>
    -				<action function="speak-text" data="Para seleccionar este resultado pulse $1, para el resultado siguiente pulse $2, para el resultado previo pulse $3, para empezar una nueva busqueda pulse $4"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_at">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="en la extensión $1"/>
    -			</match>
    -		</input>
    -	</macro>
    -	<macro name="directory_result_say_name">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="$1"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/es/dir/tts-es-MX.xml+0 96 removed
    @@ -1,96 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -
    -	<macro name="directory_intro">
    -		<input pattern="^(last_name)" break_on_match="false">
    -			<match>
    -				<action function="speak-text" data="Ingrese las primeras letras del apellido de la persona."/>
    -			</match>
    -		</input>
    -		<input pattern="^(first_name)" break_on_match="false">
    -			<match>
    -				<action function="speak-text" data="Ingrese las primeras letras del nombre de la persona."/>
    -			</match>
    -		</input>
    -		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
    -			<match>
    -				<action function="speak-text" data="Para buscar por apellido, pulse $2"/>
    -			</match>
    -		</input>
    -		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
    -			<match>
    -				<action function="speak-text" data="Para buscar por nombre, pulse $2"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_min_search_digits">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="Necesita especificar un mínimo de $1 letras del nombre buscado. Por favor intente de nuevo."/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_count">
    -		<input pattern="^0$" break_on_match="true">
    -			<match>
    -				<action function="speak-text" data="No hay resultados que coincidan con su busqueda. Por favor intente de nuevo."/>
    -			</match>
    -		</input>
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="$1 resultados coinciden con su busqueda."/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_count_too_large">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="Su busqueda genera demasiados resultados. Por favor intente de nuevo."/>
    -			</match>
    -		</input>
    -
    -	</macro>
    -
    -	<macro name="directory_result_last">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="No hay más resultados."/>
    -			</match>
    -		</input>
    -
    -	</macro>
    -
    -	<macro name="directory_result_item">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="Resultado número $1"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_menu">
    -		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
    -			<match>
    -				<action function="speak-text" data="Para seleccionar este resultado pulse $1, para el resultado siguiente pulse $2, para el resultado previo pulse $3, para empezar una nueva busqueda pulse $4"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_at">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="en la extensión $1"/>
    -			</match>
    -		</input>
    -	</macro>
    -	<macro name="directory_result_say_name">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="$1"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/es/es_ES.xml+0 8 removed
    @@ -1,8 +0,0 @@
    -<include>
    -  <language name="es" sound-path="$${sounds_dir}/es/ES/cristina" tts-engine="cepstral" tts-voice="marta">
    -    <X-PRE-PROCESS cmd="include" data="demo/*-es-ES.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
    -    <!--voicemail_es_ES_tts is purely implemented with tts, we have the files based one that is the default. -->
    -    <X-PRE-PROCESS cmd="include" data="vm/sounds-es-ES.xml"/>  <!-- vm/tts.xml if you want to use tts and have cepstral -->
    -    <X-PRE-PROCESS cmd="include" data="dir/sounds-es-ES.xml"/>  <!-- dir/tts.xml if you want to use tts and have cepstral -->
    -  </language>
    -</include>
    
  • conf/rayo/lang/es/es_MX.xml+0 8 removed
    @@ -1,8 +0,0 @@
    -<include>
    -  <language name="es" sound-path="$${sounds_dir}/es/mx/maria" tts-engine="cepstral" tts-voice="marta">
    -    <X-PRE-PROCESS cmd="include" data="demo/*-es-MX.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
    -    <!--voicemail_es_MX_tts is purely implemented with tts, we have the files based one that is the default. -->
    -    <X-PRE-PROCESS cmd="include" data="vm/sounds-es-MX.xml"/>  <!-- vm/tts.xml if you want to use tts and have cepstral -->
    -    <X-PRE-PROCESS cmd="include" data="dir/sounds-es-MX.xml"/>  <!-- dir/tts.xml if you want to use tts and have cepstral -->
    -  </language>
    -</include>
    
  • conf/rayo/lang/es/vm/sounds-es-ES.xml+0 404 removed
    @@ -1,404 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -  <macro name="voicemail_enter_id">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-enter_id.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_enter_pass">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_fail_auth">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_hello">
    -    <input pattern="(.*)">
    -      <match>
    -	<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_goodbye">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-goodbye.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_abort">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-abort.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_message_count">
    -    <input pattern="^(1):(.*)$" break_on_match="true">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-you_have.wav"/>
    -	<action function="play-file" data="digits/un.wav"/>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$2.wav"/> 
    -      </match>
    -    </input>
    -    <input pattern="^(\d+):(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-you_have.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="items"/>
    -	<action function="play-file" data="voicemail/vm-messages.wav"/>
    -	<action function="play-file" data="voicemail/vm-$2_s.wav"/> 
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<!-- To listen to new messages -->
    -	<action function="play-file" data="voicemail/vm-listen_new.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To listen to saved messages -->
    -	<action function="play-file" data="voicemail/vm-listen_saved.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- For advanced options -->
    -	<action function="play-file" data="voicemail/vm-advanced.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To exit -->
    -	<action function="play-file" data="voicemail/vm-to_exit.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_config_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<!-- To record a greeting -->
    -	<action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To choose greeting -->
    -	<action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To record your name -->
    -	<action function="play-file" data="voicemail/vm-record_name2.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To change password -->
    -	<action function="play-file" data="voicemail/vm-change_password.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To return to main menu -->
    -	<action function="play-file" data="voicemail/vm-main_menu.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-record_name1.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-rerecord.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_urgent_check">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-continue.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_prepend">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-send_message_now.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_message_enter_extension">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
    -	<action function="play-file" data="voicemail/vm-followed_by.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_invalid_extension">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_listen_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-return_call.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-to_forward.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-return_call.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-to_forward.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting_fail">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_message">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-record_message.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_greeting_selected">
    -    <input pattern="^(\d+)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-greeting.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="items"/>
    -	<action function="play-file" data="voicemail/vm-selected.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_play_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-person.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-not_available.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_number">
    -    <input pattern="^(\d+)$">
    -      <match>
    -	<action function="say" data="$1" method="pronounced" type="items"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_message_number">
    -    <input pattern="^([a-z]+):(\d+)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/> 
    -	<action function="play-file" data="voicemail/vm-message_number.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="items"/> 
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_phone_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -  <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
    -  <macro name="voicemail_ack"> 
    -    <input pattern="^(too-small)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-too-small.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(deleted)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(saved)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(emailed)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(marked-urgent)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_date">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="say" data="$1" method="pronounced" type="current_date_time"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_disk_quota_exceeded">
    -    <input pattern="^(.*)$">
    -        <match>
    -            <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
    -        </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_announce_ext">
    -    <input pattern="^([^\:]+):(.*)$">
    -      <match>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_lot_full">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_lot_empty">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
    -      </match>
    -    </input>
    -  </macro>
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/es/vm/sounds-es-MX.xml+0 404 removed
    @@ -1,404 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -  <macro name="voicemail_enter_id">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-enter_id.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_enter_pass">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_fail_auth">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_hello">
    -    <input pattern="(.*)">
    -      <match>
    -	<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_goodbye">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-goodbye.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_abort">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-abort.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_message_count">
    -    <input pattern="^(1):(.*)$" break_on_match="true">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-you_have.wav"/>
    -	<action function="play-file" data="digits/un.wav"/>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$2.wav"/> 
    -      </match>
    -    </input>
    -    <input pattern="^(\d+):(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-you_have.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="items"/>
    -	<action function="play-file" data="voicemail/vm-messages.wav"/>
    -	<action function="play-file" data="voicemail/vm-$2.wav"/> 
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<!-- To listen to new messages -->
    -	<action function="play-file" data="voicemail/vm-listen_new.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To listen to saved messages -->
    -	<action function="play-file" data="voicemail/vm-listen_saved.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- For advanced options -->
    -	<action function="play-file" data="voicemail/vm-advanced.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To exit -->
    -	<action function="play-file" data="voicemail/vm-to_exit.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_config_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<!-- To record a greeting -->
    -	<action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To choose greeting -->
    -	<action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To record your name -->
    -	<action function="play-file" data="voicemail/vm-record_name2.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To change password -->
    -	<action function="play-file" data="voicemail/vm-change_password.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To return to main menu -->
    -	<action function="play-file" data="voicemail/vm-main_menu.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-record_name1.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-rerecord.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_urgent_check">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-continue.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_prepend">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-send_message_now.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_message_enter_extension">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
    -	<action function="play-file" data="voicemail/vm-followed_by.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_invalid_extension">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_listen_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-return_call.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-to_forward.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-return_call.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-to_forward.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting_fail">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_message">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-record_message.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_greeting_selected">
    -    <input pattern="^(\d+)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-greeting.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="items"/>
    -	<action function="play-file" data="voicemail/vm-selected.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_play_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-person.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-not_available.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_number">
    -    <input pattern="^(\d+)$">
    -      <match>
    -	<action function="say" data="$1" method="pronounced" type="items"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_message_number">
    -    <input pattern="^([a-z]+):(\d+)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/> 
    -	<action function="play-file" data="voicemail/vm-message_number.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="items"/> 
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_phone_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -  <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
    -  <macro name="voicemail_ack"> 
    -    <input pattern="^(too-small)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-too-small.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(deleted)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(saved)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(emailed)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(marked-urgent)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_date">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="say" data="$1" method="pronounced" type="current_date_time"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_disk_quota_exceeded">
    -    <input pattern="^(.*)$">
    -        <match>
    -            <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
    -        </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_announce_ext">
    -    <input pattern="^([^\:]+):(.*)$">
    -      <match>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_lot_full">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_lot_empty">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
    -      </match>
    -    </input>
    -  </macro>
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/es/vm/tts-es-ES.xml+0 238 removed
    @@ -1,238 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -  <macro name="voicemail_enter_id">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Por favor introduzca su número de usuario, seguido por $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_enter_pass">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Por favor introduzca su contraseña, seguido por $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_fail_auth">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Inicio de sesión incorrecto."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_hello">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Bienvenido a su buzón de voz."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_goodbye">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Adiós."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_abort">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Demasiados intentos fallidos."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_message_count">
    -    <input pattern="^1:(.*)$" break_on_match="true">
    -      <match>
    -	<action function="speak-text" data="Usted tiene 1 $1 mensaje en la bandeja de entrada ${voicemail_current_folder}."/>
    -      </match>
    -    </input>
    -    <input pattern="^(\d+):(.*)$">
    -      <match>
    -	<action function="speak-text" data="Usted tiene $1 $2 mensajes en la bandeja de entrada ${voicemail_current_folder}."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para escuchar mensajes nuevos, pulse $1. Para escuchar mensajes guardados, pulse $2. Para opciones avanzadas, pulse $3. Para salir, pulse $4."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -
    -  <macro name="voicemail_config_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para grabar un saludo, pulse $1. Para elegir un saludo, pulse $2. Para grabar su nombre, pulse $3. Para cambiar su contraseña, pulse $5. Para el menú principal, pulse $5."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -
    -  <macro name="voicemail_record_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Por favor grabe su nombre después de la señal, pulse cualquier tecla o deje de hablar para poner fin a la grabación."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para escuchar la grabación, pulse $1. Para guardar la grabación, pulse $2. Para regrabar, pulse $3."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_urgent_check">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para marcar este mensaje como urgente, pulse $1. Para continuar, pulse $2."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_invalid_extension">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -	<action function="speak-text" data="$1 no es una extensión válida."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_message_enter_extension">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -	<action function="speak-text" data="Introduzca la extensión a la cual quiere enviar este mensaje, seguido de $1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_prepend">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -	<action function="speak-text" data="Para grabar un saludo, pulse $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_listen_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para escuchar la grabación, pulse $1. Para guardar la grabación, pulse $2. Para eliminar la grabación, pulse $3. Para enviar la grabación a su e-mail, pulse $4. Para devolver la llamada, pulse $5. Para enviar este mensaje a otra extensión, pulse $6."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Elija un saludo entre 1 y 9."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting_fail">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Valor inválido."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Grabe su saludo después de la señal, pulse cualquier tecla o deje de hablar para poner fin a la grabación."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_message">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Grabe su mensaje después de la señal, pulse cualquier tecla o deje de hablar para poner fin a la grabación."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_greeting_selected">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Saludo $1 seleccionado."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_play_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1 no está disponible."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_message_number">
    -    <input pattern="^([a-z]+):(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1 mensaje número $2."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_phone_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_ack">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="mensaje $1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_date">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/es/vm/tts-es-MX.xml+0 238 removed
    @@ -1,238 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -  <macro name="voicemail_enter_id">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Por favor ingrese su número de usuario, seguido por $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_enter_pass">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Por favor ingrese su contraseña, seguido por $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_fail_auth">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Inicio de sesión incorrecto."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_hello">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Bienvenido a su buzón de voz."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_goodbye">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Adiós."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_abort">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Demasiados intentos fallidos."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_message_count">
    -    <input pattern="^1:(.*)$" break_on_match="true">
    -      <match>
    -	<action function="speak-text" data="Usted tiene 1 $1 mensaje en la bandeja de entrada ${voicemail_current_folder}."/>
    -      </match>
    -    </input>
    -    <input pattern="^(\d+):(.*)$">
    -      <match>
    -	<action function="speak-text" data="Usted tiene $1 $2 mensajes en la bandeja de entrada ${voicemail_current_folder}."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para escuchar mensajes nuevos, pulse $1. Para escuchar mensajes guardados, pulse $2. Para opciones avanzadas, pulse $3. Para salir, pulse $4."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -
    -  <macro name="voicemail_config_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para grabar un saludo, pulse $1. Para elegir un saludo, pulse $2. Para grabar su nombre, pulse $3. Para cambiar su contraseña, pulse $5. Para el menú principal, pulse $5."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -
    -  <macro name="voicemail_record_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Después del tono, por favor anote su nombre, pulse cualquier tecla o deje de hablar para poner fin a la grabación."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para escuchar la grabación, pulse $1. Para guardar la grabación, pulse $2. Para regrabar, pulse $3."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_urgent_check">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para marcar este mensaje como urgente, pulse $1. Para continuar, pulse $2."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_invalid_extension">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -	<action function="speak-text" data="$1 no es una extensión válida."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_message_enter_extension">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -	<action function="speak-text" data="Introduzca la extensión a la cual quiere enviar este mensaje, seguido de $1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_prepend">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -	<action function="speak-text" data="Para grabar un saludo, pulse $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_listen_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para escuchar la grabación, pulse $1. Para guardar la grabación, pulse $2. Para eliminar la grabación, pulse $3. Para enviar la grabación a su e-mail, pulse $4. Para devolver la llamada, pulse $5. Para enviar este mensaje a otra extensión, pulse $6."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Elija un saludo entre 1 y 9."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting_fail">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Valor inválido."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Grabe su saludo después del tono, pulse cualquier tecla o deje de hablar para poner fin a la grabación."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_message">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Grabe su mensaje después del tono, pulse cualquier tecla o deje de hablar para poner fin a la grabación."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_greeting_selected">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Saludo $1 seleccionado."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_play_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1 no está disponible."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_message_number">
    -    <input pattern="^([a-z]+):(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1 mensaje número $2."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_phone_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_ack">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="mensaje $1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_date">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/fr/demo/demo.xml+0 29 removed
    @@ -1,29 +0,0 @@
    -<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:
    --->
    
  • conf/rayo/lang/fr/dir/sounds.xml+0 130 removed
    @@ -1,130 +0,0 @@
    -<include>
    -
    -  <macro name="directory_intro">
    -    <input pattern="^(last_name)" break_on_match="false">
    -      <match>
    -        <action function="play-file" data="directory/dir-enter-person.wav"/>
    -        <action function="play-file" data="directory/dir-last_name.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(first_name)" break_on_match="false">
    -      <match>
    -        <action function="play-file" data="directory/dir-enter-person.wav"/>
    -        <action function="play-file" data="directory/dir-first_name.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(last_name):([0-9#*])$" break_on_match="false">
    -      <match>
    -        <action function="play-file" data="directory/dir-to_search_by.wav"/>
    -        <action function="play-file" data="directory/dir-first_name.wav"/>
    -        <action function="play-file" data="directory/dir-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -    <input pattern="^(first_name):([0-9#*])$" break_on_match="false">
    -      <match>
    -        <action function="play-file" data="directory/dir-to_search_by.wav"/>
    -        <action function="play-file" data="directory/dir-last_name.wav"/>
    -        <action function="play-file" data="directory/dir-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_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">
    -    <input pattern="^0$" break_on_match="true">
    -      <match>
    -        <action function="play-file" data="directory/dir-no_match_entry.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -        <action function="play-file" data="directory/dir-result_match.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_count_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>
    -
    -  <macro name="directory_result_item">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="directory/dir-result_number.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_at">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="directory/dir-at_extension.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_menu">
    -    <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
    -      <match>
    -        <action function="play-file" data="directory/dir-to_select_entry.wav"/>
    -        <action function="play-file" data="directory/dir-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="directory/dir-for_next.wav"/>
    -        <action function="play-file" data="directory/dir-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="directory/dir-for_prev.wav"/>
    -        <action function="play-file" data="directory/dir-press.wav"/>
    -        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="directory/dir-to_make_new_search.wav"/>
    -        <action function="play-file" data="directory/dir-press.wav"/>
    -        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -</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:
    --->
    
  • conf/rayo/lang/fr/dir/tts.xml+0 110 removed
    @@ -1,110 +0,0 @@
    -<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_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_too_large">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="Votre recherche retourne trop de résultats, essayer encore"/>
    -      </match>
    -    </input>
    -  </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_item">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="Résultat numéro $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>
    -<!--
    -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:
    --->
    
  • conf/rayo/lang/fr/fr.xml+0 23 removed
    @@ -1,23 +0,0 @@
    -<include>
    -  <language name="fr" say-module="fr" sound-prefix="$${sounds_dir}/fr/ca/june" tts-engine="cepstral" tts-voice="david">
    -    <phrases>
    -      <macros>
    -        <X-PRE-PROCESS cmd="include" data="demo/demo.xml"/>
    -        <!-- voicemail_fr_tts is purely implemented with tts, we need a files based implementation too -->
    -        <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>
    -        <X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
    -      </macros>
    -    </phrases>
    -  </language>
    -</include>
    -<!--
    -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:
    --->
    
  • conf/rayo/lang/fr/vm/sounds.xml+0 255 removed
    @@ -1,255 +0,0 @@
    -<include>
    -
    -  <macro name="voicemail_enter_id">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="Entrez votre Identification, suivi par $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_enter_pass">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="Entrez votre code, suivi par $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_fail_auth">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="Identification incorrecte."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_hello">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="Bienvenue sur votre répondeur."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_goodbye">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="Au revoir."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_abort">
    -    <input pattern="(.*)">
    -      <match>
    -        <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}."/>
    -      </match>
    -    </input>
    -    <input pattern="^([^:]+):new">
    -      <match>
    -        <action function="speak-text" data="Vous avez $1 nouveaux messages dans le répertoire ${voicemail_current_folder}."/>
    -      </match>
    -    </input>
    -    <input pattern="^([^:]+):saved">
    -      <match>
    -        <action function="speak-text" data="Vous avez $1 messages sauvegardés dans le répertoire ${voicemail_current_folder}."/>
    -      </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."/>
    -      </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."/>
    -      </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."/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <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."/>
    -      </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."/>
    -      </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."/>
    -      </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."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting_fail">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <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."/>
    -      </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."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_greeting_selected">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <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."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_message_number">
    -    <input pattern="^new:(.*)$">
    -      <match>
    -        <action function="speak-text" data="nouveau message numéro $1."/>
    -      </match>
    -    </input>
    -    <input pattern="^saved:(.*)$">
    -      <match>
    -        <action function="speak-text" data="message sauvegardé numéro $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_phone_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_ack">
    -    <input pattern="^(too-small)$">
    -      <match>
    -        <action function="speak-text" data="message trop court"/>
    -      </match>
    -    </input>
    -    <input pattern="^(deleted)$">
    -      <match>
    -        <action function="speak-text" data="message supprimé"/>
    -      </match>
    -    </input>
    -    <input pattern="^(saved)$">
    -      <match>
    -        <action function="speak-text" data="message sauvegardé"/>
    -      </match>
    -    </input>
    -    <input pattern="^(emailed)$">
    -      <match>
    -        <action function="speak-text" data="message envoyé"/>
    -      </match>
    -    </input>
    -    <input pattern="^(marked-urgent)$">
    -      <match>
    -        <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)}"/>
    -      </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:
    --->
    
  • conf/rayo/lang/he/demo/demo-ivr.xml+0 157 removed
    @@ -1,157 +0,0 @@
    -<include>
    -
    -  <macro name="demo_ivr_count">
    -    <input pattern="^(\d+)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-you_have.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-messages.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="demo_ivr_main_menu" pause="100"> <!-- See conf/autoload_config/ivr.conf.xml for an example on how to use this macro in an IVR -->
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- string together several existing sound files to create one long greeting -->
    -        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
    -        <action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
    -        <action function="play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>
    -        <!-- note that you can do more than just play files, e.g. have pauses and do TTS -->
    -
    -        <!-- Menu option 1: Call FreeSWITCH conference-->
    -        <action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
    -        <action function="play-file" data="silence_stream://1500"/>
    -        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/1.wav"/>
    -
    -        <!-- Menu option 2: Do FreeSWITCH echo test -->
    -        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/2.wav"/>
    -
    -        <!-- Menu option 3: Listen to Music on Hold -->
    -        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/3.wav"/>
    -
    -        <!-- Menu option 4: Register for ClueCon -->
    -        <action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
    -        <action function="play-file" data="digits/4.wav"/>
    -
    -        <!-- Menu option 5: Listen to screaming monkeys -->
    -        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/5.wav"/>
    -
    -        <!-- Menu option 6: Hear a sample submenu -->
    -        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/6.wav"/>
    -
    -        <!-- Menu option 9: Repeat these options -->
    -        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/9.wav"/>
    -        <action function="play-file" data="silence_stream://2000"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
    -  <!-- The short version has all the options but not the initial greeting -->
    -  <macro name="demo_ivr_main_menu_short" pause="100">
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- Menu option 1: Call FreeSWITCH conference-->
    -        <action function="play-file" data="silence_stream://1000"/>
    -        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/1.wav"/>
    -
    -        <!-- Menu option 2: Do FreeSWITCH echo test -->
    -        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/2.wav"/>
    -
    -        <!-- Menu option 3: Listen to Music on Hold -->
    -        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/3.wav"/>
    -
    -        <!-- Menu option 4: Hear a sample submenu -->
    -        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/4.wav"/>
    -
    -        <!-- Menu option 5: Listen to screaming monkeys -->
    -        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/5.wav"/>
    -
    -        <!-- Menu option 9: Repeat these options -->
    -        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/9.wav"/>
    -        <action function="play-file" data="silence_stream://2000"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the "long" greeting for the demo_ivr_sub_menu -->
    -  <macro name="demo_ivr_sub_menu">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
    -        <action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
    -
    -        <!-- Menu option *: Return to top menu -->
    -        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/star.wav"/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
    -  <!-- The short version has all the options but not the initial greeting -->
    -  <macro name="demo_ivr_sub_menu_short">
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- Menu option *: Return to top menu -->
    -        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/star.wav"/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include>
    -<!--
    -For Emacs:
    -Local Variables:
    -mode:xml
    -indent-tabs-mode:nil
    -tab-width:2
    -c-basic-offset:2
    -End:
    -For VIM:
    -vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
    --->
    
  • conf/rayo/lang/he/demo/demo.xml+0 82 removed
    @@ -1,82 +0,0 @@
    -<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:
    --->
    
  • conf/rayo/lang/he/dir/sounds.xml+0 130 removed
    @@ -1,130 +0,0 @@
    -<include>
    -
    -  <macro name="directory_intro">
    -    <input pattern="^(last_name)" break_on_match="false">
    -      <match>
    -        <action function="play-file" data="directory/dir-enter_person.wav"/>
    -        <action function="play-file" data="directory/dir-last_name.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(first_name)" break_on_match="false">
    -      <match>
    -        <action function="play-file" data="directory/dir-enter_person.wav"/>
    -        <action function="play-file" data="directory/dir-first_name.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(last_name):([0-9#*])$" break_on_match="false">
    -      <match>
    -        <action function="play-file" data="directory/dir-to_search_by.wav"/>
    -        <action function="play-file" data="directory/dir-first_name.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -    <input pattern="^(first_name):([0-9#*])$" break_on_match="false">
    -      <match>
    -        <action function="play-file" data="directory/dir-to_search_by.wav"/>
    -        <action function="play-file" data="directory/dir-last_name.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_min_search_digits">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="directory/dir-specify_mininum.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -        <action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_count">
    -    <input pattern="^0$" break_on_match="true">
    -      <match>
    -        <action function="play-file" data="directory/dir-no_matching_results.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -        <action function="play-file" data="directory/dir-result_match.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_count_too_large">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="directory/dir-too_many_result.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_last">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="directory/dir-no_more_results.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_item">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="directory/dir-result_number.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_at">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="directory/dir-at_extension.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_menu">
    -    <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
    -      <match>
    -        <action function="play-file" data="directory/dir-to_select_entry.wav"/>
    -        <action function="play-file" data="directory/dir-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="directory/dir-for_next.wav"/>
    -        <action function="play-file" data="directory/dir-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="directory/dir-for_prev.wav"/>
    -        <action function="play-file" data="directory/dir-press.wav"/>
    -        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="directory/dir-start_new_search.wav"/>
    -        <action function="play-file" data="directory/dir-press.wav"/>
    -        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include>
    -<!--
    -For Emacs:
    -Local Variables:
    -mode:xml
    -indent-tabs-mode:nil
    -tab-width:2
    -c-basic-offset:2
    -End:
    -For VIM:
    -vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
    --->
    
  • conf/rayo/lang/he/he.xml+0 22 removed
    @@ -1,22 +0,0 @@
    -<include>
    -  <language name="he" sound-prefix="$${sounds_dir}/he/daniel" tts-engine="cepstral" tts-voice="daniel">
    -    <phrases>
    -      <macros>
    -        <X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
    -        <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>
    -        <X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/>
    -      </macros>
    -    </phrases>
    -  </language>
    -</include>
    -<!--
    -For Emacs:
    -Local Variables:
    -mode:xml
    -indent-tabs-mode:nil
    -tab-width:2
    -c-basic-offset:2
    -End:
    -For VIM:
    -vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
    --->
    
  • conf/rayo/lang/he/vm/sounds.xml+0 417 removed
    @@ -1,417 +0,0 @@
    -<include>
    -
    -  <macro name="voicemail_enter_id">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-enter_id.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_enter_pass">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-enter_pass.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_fail_auth">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-fail_auth.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_hello">
    -    <input pattern="(.*)">
    -      <match>
    -        <!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_goodbye">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-goodbye.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_abort">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-abort.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_message_count">
    -    <input pattern="^(1):(.*)$" break_on_match="true">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-you_have.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -        <action function="play-file" data="voicemail/vm-$2.wav"/>
    -        <action function="play-file" data="voicemail/vm-message.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(\d+):(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-you_have.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -        <action function="play-file" data="voicemail/vm-$2.wav"/>
    -        <action function="play-file" data="voicemail/vm-messages.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -        <!-- To listen to new messages -->
    -        <action function="play-file" data="voicemail/vm-listen_new.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="execute" data="sleep(100)"/>
    -
    -        <!-- To listen to saved messages -->
    -        <action function="play-file" data="voicemail/vm-listen_saved.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -        <action function="execute" data="sleep(100)"/>
    -
    -        <!-- For advanced options -->
    -        <action function="play-file" data="voicemail/vm-advanced.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -        <action function="execute" data="sleep(100)"/>
    -
    -        <!-- To exit -->
    -        <action function="play-file" data="voicemail/vm-to_exit.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$4" method="pronounced" type="name_phonetic"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_config_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -        <!-- To record a greeting -->
    -        <action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="execute" data="sleep(100)"/>
    -
    -        <!-- To choose greeting -->
    -        <action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -        <action function="execute" data="sleep(100)"/>
    -
    -        <!-- To record your name -->
    -        <action function="play-file" data="voicemail/vm-record_name2.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -        <action function="execute" data="sleep(100)"/>
    -
    -        <!-- To change password -->
    -        <action function="play-file" data="voicemail/vm-change_password.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -        <action function="execute" data="sleep(100)"/>
    -
    -        <!-- To return to main menu -->
    -        <action function="play-file" data="voicemail/vm-main_menu.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-record_name1.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-rerecord.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_urgent_check">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-continue.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_prepend">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-send_message_now.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_message_enter_extension">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
    -        <action function="play-file" data="voicemail/vm-followed_by.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_invalid_extension">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_listen_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-return_call.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-to_forward.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$6" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-return_call.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-to_forward.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$6" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting_fail">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-record_greeting.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_message">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-record_message.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_greeting_selected">
    -    <input pattern="^(\d+)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-greeting.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -        <action function="play-file" data="voicemail/vm-selected.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_play_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-person.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-not_available.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_number">
    -    <input pattern="^(\d+)$">
    -      <match>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_message_number">
    -    <input pattern="^([a-z]+):(\d+)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-$1.wav"/>
    -        <action function="play-file" data="voicemail/vm-message_number.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="items"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_phone_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -  <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
    -  <macro name="voicemail_ack">
    -    <input pattern="^(too-small)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-too-small.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(deleted)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-message.wav"/>
    -        <action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(saved)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-message.wav"/>
    -        <action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(emailed)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-message.wav"/>
    -        <action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(marked-urgent)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-message.wav"/>
    -        <action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_date">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="say" data="$1" method="pronounced" type="current_date_time"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_disk_quota_exceeded">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_announce_ext">
    -    <input pattern="^([^\:]+):(.*)$">
    -      <match>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_lot_full">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_lot_empty">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include>
    -<!--
    -For Emacs:
    -Local Variables:
    -mode:xml
    -indent-tabs-mode:nil
    -tab-width:2
    -c-basic-offset:2
    -End:
    -For VIM:
    -vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
    --->
    
  • conf/rayo/lang/pt/demo/demo-ivr-pt-BR.xml+0 148 removed
    @@ -1,148 +0,0 @@
    -<?xml version="1.0" encoding="Windows-1252"?>
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -
    -
    -  <macro name="demo_ivr_count">
    -    <input pattern="^(\d+)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-you_have.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-messages.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="demo_ivr_main_menu" pause="100"> <!-- See conf/autoload_config/ivr.conf.xml for an example on how to use this macro in an IVR -->
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- string together several existing sound files to create one long greeting -->
    -        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
    -        <action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
    -        <action function="play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>
    -        <!-- note that you can do more than just play files, e.g. have pauses and do TTS -->
    -
    -        <!-- Menu option 1: Call FreeSWITCH conference-->
    -        <action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
    -        <action function="play-file" data="silence_stream://1500"/>
    -        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/1.wav"/>
    -
    -        <!-- Menu option 2: Do FreeSWITCH echo test -->
    -        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/2.wav"/>
    -
    -        <!-- Menu option 3: Listen to Music on Hold -->
    -        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/3.wav"/>
    -
    -        <!-- Menu option 4: Register for ClueCon -->
    -        <action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
    -        <action function="play-file" data="digits/4.wav"/>
    -
    -        <!-- Menu option 5: Listen to screaming monkeys -->
    -        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/5.wav"/>
    -
    -        <!-- Menu option 6: Hear a sample submenu -->
    -        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/6.wav"/>
    -
    -        <!-- Menu option 9: Repeat these options -->
    -        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/9.wav"/>
    -        <action function="play-file" data="silence_stream://2000"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
    -  <!-- The short version has all the options but not the initial greeting -->
    -  <macro name="demo_ivr_main_menu_short" pause="100"> 
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- Menu option 1: Call FreeSWITCH conference-->
    -        <action function="play-file" data="silence_stream://1000"/>
    -        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/1.wav"/>
    -
    -        <!-- Menu option 2: Do FreeSWITCH echo test -->
    -        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/2.wav"/>
    -
    -        <!-- Menu option 3: Listen to Music on Hold -->
    -        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/3.wav"/>
    -
    -        <!-- Menu option 4: Hear a sample submenu -->
    -        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/4.wav"/>
    -
    -        <!-- Menu option 5: Listen to screaming monkeys -->
    -        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/5.wav"/>
    -
    -        <!-- Menu option 9: Repeat these options -->
    -        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/9.wav"/>
    -        <action function="play-file" data="silence_stream://2000"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the "long" greeting for the demo_ivr_sub_menu -->
    -  <macro name="demo_ivr_sub_menu">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
    -        <action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
    -
    -        <!-- Menu option *: Return to top menu -->
    -        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/star.wav"/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
    -  <!-- The short version has all the options but not the initial greeting -->
    -  <macro name="demo_ivr_sub_menu_short"> 
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- Menu option *: Return to top menu -->
    -        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/star.wav"/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/pt/demo/demo-ivr-pt-PT.xml+0 148 removed
    @@ -1,148 +0,0 @@
    -<?xml version="1.0" encoding="Windows-1252"?>
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -
    -
    -  <macro name="demo_ivr_count">
    -    <input pattern="^(\d+)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-you_have.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-messages.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="demo_ivr_main_menu" pause="100"> <!-- See conf/autoload_config/ivr.conf.xml for an example on how to use this macro in an IVR -->
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- string together several existing sound files to create one long greeting -->
    -        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
    -        <action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
    -        <action function="play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>
    -        <!-- note that you can do more than just play files, e.g. have pauses and do TTS -->
    -
    -        <!-- Menu option 1: Call FreeSWITCH conference-->
    -        <action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
    -        <action function="play-file" data="silence_stream://1500"/>
    -        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/1.wav"/>
    -
    -        <!-- Menu option 2: Do FreeSWITCH echo test -->
    -        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/2.wav"/>
    -
    -        <!-- Menu option 3: Listen to Music on Hold -->
    -        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/3.wav"/>
    -
    -        <!-- Menu option 4: Register for ClueCon -->
    -        <action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
    -        <action function="play-file" data="digits/4.wav"/>
    -
    -        <!-- Menu option 5: Listen to screaming monkeys -->
    -        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/5.wav"/>
    -
    -        <!-- Menu option 6: Hear a sample submenu -->
    -        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/6.wav"/>
    -
    -        <!-- Menu option 9: Repeat these options -->
    -        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/9.wav"/>
    -        <action function="play-file" data="silence_stream://2000"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
    -  <!-- The short version has all the options but not the initial greeting -->
    -  <macro name="demo_ivr_main_menu_short" pause="100"> 
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- Menu option 1: Call FreeSWITCH conference-->
    -        <action function="play-file" data="silence_stream://1000"/>
    -        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/1.wav"/>
    -
    -        <!-- Menu option 2: Do FreeSWITCH echo test -->
    -        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/2.wav"/>
    -
    -        <!-- Menu option 3: Listen to Music on Hold -->
    -        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/3.wav"/>
    -
    -        <!-- Menu option 4: Hear a sample submenu -->
    -        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/4.wav"/>
    -
    -        <!-- Menu option 5: Listen to screaming monkeys -->
    -        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/5.wav"/>
    -
    -        <!-- Menu option 9: Repeat these options -->
    -        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/9.wav"/>
    -        <action function="play-file" data="silence_stream://2000"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the "long" greeting for the demo_ivr_sub_menu -->
    -  <macro name="demo_ivr_sub_menu">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
    -        <action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
    -
    -        <!-- Menu option *: Return to top menu -->
    -        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/star.wav"/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
    -  <!-- The short version has all the options but not the initial greeting -->
    -  <macro name="demo_ivr_sub_menu_short"> 
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- Menu option *: Return to top menu -->
    -        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/star.wav"/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/pt/demo/demo-pt-BR.xml+0 71 removed
    @@ -1,71 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -    <macro name="msgcount">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="execute" data="sleep(1000)"/>
    -	  <action function="play-file" data="voicemail/vm-you_have.wav"/>
    -	  <action function="say" data="$1" method="pronounced" type="items"/>
    -	  <action function="play-file" data="voicemail/vm-messages.wav"/>
    -	  <!-- or -->
    -	  <!--<action function="speak-text" data="you have $1 messages"/>-->
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="saydate">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="pronounced" type="current_date_time"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="timespec">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="pronounced" type="time_measurement"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="ip-addr">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="iterated" type="ip_address"/>
    -	  <action function="say" data="$1" method="pronounced" type="ip_address"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="spell">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="spell-phonetic">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="tts-timeleft">
    -      <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
    -      <!-- If the function "break" is encountered all parsing will cease -->
    -      <input pattern="(\d+):(\d+)">
    -	<match>
    -	  <action function="speak-text" data="Faltam $1 minutos, $2 segundos $strftime(%Y-%m-%d)"/>
    -	  <action function="break"/>
    -	</match>
    -	<nomatch>
    -	  <action function="speak-text" data="Essa opção não é valida."/>
    -	</nomatch>
    -      </input>
    -      <input pattern="(\d+) min (\d+) sec">
    -	<match>
    -	  <action function="speak-text" data="Faltam $1 minutos, $2 segundos $strftime(%Y-%m-%d)"/>
    -	</match>
    -	<nomatch>
    -	  <action function="speak-text" data="Essa opção não é valida."/>
    -	</nomatch>
    -      </input>
    -    </macro>
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/pt/demo/demo-pt-PT.xml+0 71 removed
    @@ -1,71 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -    <macro name="msgcount">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="execute" data="sleep(1000)"/>
    -	  <action function="play-file" data="voicemail/vm-you_have.wav"/>
    -	  <action function="say" data="$1" method="pronounced" type="items"/>
    -	  <action function="play-file" data="voicemail/vm-messages.wav"/>
    -	  <!-- or -->
    -	  <!--<action function="speak-text" data="Você tem $1 mensagens"/>-->
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="saydate">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="pronounced" type="current_date_time"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="timespec">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="pronounced" type="time_measurement"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="ip-addr">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="iterated" type="ip_address"/>
    -	  <action function="say" data="$1" method="pronounced" type="ip_address"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="spell">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="spell-phonetic">
    -      <input pattern="(.*)">
    -	<match>
    -	  <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
    -	</match>
    -      </input>
    -    </macro>
    -    <macro name="tts-timeleft">
    -      <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
    -      <!-- If the function "break" is encountered all parsing will cease -->
    -      <input pattern="(\d+):(\d+)">
    -	<match>
    -	  <action function="speak-text" data="Faltam $1 minutos, $2 segundos $strftime(%Y-%m-%d)"/>
    -	  <action function="break"/>
    -	</match>
    -	<nomatch>
    -	  <action function="speak-text" data="Essa era uma entrada inválida."/>
    -	</nomatch>
    -      </input>
    -      <input pattern="(\d+) min (\d+) sec">
    -	<match>
    -	  <action function="speak-text" data="Faltam $1 minutos, $2 segundos $strftime(%Y-%m-%d)"/>
    -	</match>
    -	<nomatch>
    -	  <action function="speak-text" data="Essa era uma entrada inválida."/>
    -	</nomatch>
    -      </input>
    -    </macro>
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/pt/dir/sounds-pt-BR.xml+0 121 removed
    @@ -1,121 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -	<macro name="directory_intro">
    -		<input pattern="^(last_name)" break_on_match="false">
    -			<match>
    -				<action function="play-file" data="directory/dir-enter_person.wav"/>
    -				<action function="play-file" data="directory/dir-last_name.wav"/>
    -			</match>
    -		</input>
    -		<input pattern="^(first_name)" break_on_match="false">
    -			<match>
    -                <action function="play-file" data="directory/dir-enter_person.wav"/>
    -                <action function="play-file" data="directory/dir-first_name.wav"/>
    -			</match>
    -		</input>
    -		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
    -			<match>
    -				<action function="play-file" data="directory/dir-to_search_by.wav"/>
    -				<action function="play-file" data="directory/dir-first_name.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -			</match>
    -		</input>
    -		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
    -			<match>
    -				<action function="play-file" data="directory/dir-to_search_by.wav"/>
    -				<action function="play-file" data="directory/dir-last_name.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_min_search_digits">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-specify_mininum.wav"/>
    -				<action function="say" data="$1" method="pronounced" type="items"/>
    -				<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_count">
    -		<input pattern="^0$" break_on_match="true">
    -			<match>
    -				<action function="play-file" data="directory/dir-no_matching_results.wav"/>
    -			</match>
    -		</input>
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="say" data="$1" method="pronounced" type="items"/>
    -				<action function="play-file" data="directory/dir-result_match.wav"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_count_too_large">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-too_many_result.wav"/>
    -			</match>
    -		</input>
    -
    -	</macro>
    -
    -	<macro name="directory_result_last">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-no_more_results.wav"/>
    -			</match>
    -		</input>
    -
    -	</macro>
    -
    -	<macro name="directory_result_item">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-result_number.wav"/>
    -				<action function="say" data="$1" method="pronounced" type="items"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_at">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-at_extension.wav"/>
    -				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_menu">
    -		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
    -			<match>
    -				<action function="play-file" data="directory/dir-to_select_entry.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -				<action function="play-file" data="directory/dir-for_next.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -				<action function="play-file" data="directory/dir-for_prev.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -				<action function="play-file" data="directory/dir-start_new_search.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_say_name">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/pt/dir/sounds-pt-PT.xml+0 121 removed
    @@ -1,121 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -	<macro name="directory_intro">
    -		<input pattern="^(last_name)" break_on_match="false">
    -			<match>
    -				<action function="play-file" data="directory/dir-enter_person.wav"/>
    -				<action function="play-file" data="directory/dir-last_name.wav"/>
    -			</match>
    -		</input>
    -		<input pattern="^(first_name)" break_on_match="false">
    -			<match>
    -                <action function="play-file" data="directory/dir-enter_person.wav"/>
    -                <action function="play-file" data="directory/dir-first_name.wav"/>
    -			</match>
    -		</input>
    -		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
    -			<match>
    -				<action function="play-file" data="directory/dir-to_search_by.wav"/>
    -				<action function="play-file" data="directory/dir-first_name.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -			</match>
    -		</input>
    -		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
    -			<match>
    -				<action function="play-file" data="directory/dir-to_search_by.wav"/>
    -				<action function="play-file" data="directory/dir-last_name.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_min_search_digits">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-specify_mininum.wav"/>
    -				<action function="say" data="$1" method="pronounced" type="items"/>
    -				<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_count">
    -		<input pattern="^0$" break_on_match="true">
    -			<match>
    -				<action function="play-file" data="directory/dir-no_matching_results.wav"/>
    -			</match>
    -		</input>
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="say" data="$1" method="pronounced" type="items"/>
    -				<action function="play-file" data="directory/dir-result_match.wav"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_count_too_large">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-too_many_result.wav"/>
    -			</match>
    -		</input>
    -
    -	</macro>
    -
    -	<macro name="directory_result_last">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-no_more_results.wav"/>
    -			</match>
    -		</input>
    -
    -	</macro>
    -
    -	<macro name="directory_result_item">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-result_number.wav"/>
    -				<action function="say" data="$1" method="pronounced" type="items"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_at">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="play-file" data="directory/dir-at_extension.wav"/>
    -				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_menu">
    -		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
    -			<match>
    -				<action function="play-file" data="directory/dir-to_select_entry.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -				<action function="play-file" data="directory/dir-for_next.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -				<action function="play-file" data="directory/dir-for_prev.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -				<action function="play-file" data="directory/dir-start_new_search.wav"/>
    -				<action function="play-file" data="directory/dir-press.wav"/>
    -				<action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_say_name">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/pt/dir/tts-pt-BR.xml+0 96 removed
    @@ -1,96 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -
    -	<macro name="directory_intro">
    -		<input pattern="^(last_name)" break_on_match="false">
    -			<match>
    -				<action function="speak-text" data="Por favor marque as primeiras letras do apelido da pessoa"/>
    -			</match>
    -		</input>
    -		<input pattern="^(first_name)" break_on_match="false">
    -			<match>
    -				<action function="speak-text" data="Por favor marque as primeiras letras do nome da pessoa"/>
    -			</match>
    -		</input>
    -		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
    -			<match>
    -				<action function="speak-text" data="Para buscar por primeiro nome, digite $2"/>
    -			</match>
    -		</input>
    -		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
    -			<match>
    -				<action function="speak-text" data="Para buscar por apelido, digite $2"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_min_search_digits">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="Você precisa dizer um mínimo de $1 letras do nome da pessoa, tente novamente."/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_count">
    -		<input pattern="^0$" break_on_match="true">
    -			<match>
    -				<action function="speak-text" data="Não foram encontrados resultados, tente novamente."/>
    -			</match>
    -		</input>
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="$1 resultados encontrados para a sua busca."/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_count_too_large">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="A  sua busca devolveu muitos resultados, por favor tente novamente."/>
    -			</match>
    -		</input>
    -
    -	</macro>
    -
    -	<macro name="directory_result_last">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="Não há mais resultados."/>
    -			</match>
    -		</input>
    -
    -	</macro>
    -
    -	<macro name="directory_result_item">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="Resultado número $1"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_menu">
    -		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
    -			<match>
    -				<action function="speak-text" data="Para escolher este resultado digite $1, Para o resultado seguinte digite $2, Para o resultado anterior digite $3, Para uma nova busca digite $4"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_at">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="No ramal $1"/>
    -			</match>
    -		</input>
    -	</macro>
    -	<macro name="directory_result_say_name">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="$1"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/pt/dir/tts-pt-PT.xml+0 96 removed
    @@ -1,96 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -
    -	<macro name="directory_intro">
    -		<input pattern="^(last_name)" break_on_match="false">
    -			<match>
    -				<action function="speak-text" data="Por favor introduza os primeiras letras do apelido da pessoa"/>
    -			</match>
    -		</input>
    -		<input pattern="^(first_name)" break_on_match="false">
    -			<match>
    -				<action function="speak-text" data="Por favor introduza os primeiros dígitos do primeiro nome da pessoa"/>
    -			</match>
    -		</input>
    -		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
    -			<match>
    -				<action function="speak-text" data="Para pesquisar por primeiro nome, marque $2"/>
    -			</match>
    -		</input>
    -		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
    -			<match>
    -				<action function="speak-text" data="Para pesquisar por apelido, marque $2"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_min_search_digits">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="Você necessita de especificar um mínimo de $1 letras do nome da pessoa, tente novamente."/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_count">
    -		<input pattern="^0$" break_on_match="true">
    -			<match>
    -				<action function="speak-text" data="Não foram encontrados resultados, tente novamente."/>
    -			</match>
    -		</input>
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="$1 resultados encontrados para a sua pesquisa."/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_count_too_large">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="A sua pesquisa devolveu demasiados resultados, por favor tente novamente."/>
    -			</match>
    -		</input>
    -
    -	</macro>
    -
    -	<macro name="directory_result_last">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="Não há mais resultados"/>
    -			</match>
    -		</input>
    -
    -	</macro>
    -
    -	<macro name="directory_result_item">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="Resultado número $1"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_menu">
    -		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
    -			<match>
    -				<action function="speak-text" data="Para seleccionar este resultado marque $1, Para o resultado seguinte marque $2, Para o resultado anterior marque $3, Para iniciar uma nova pesquisa marque $4"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -	<macro name="directory_result_at">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="Na extensão $1"/>
    -			</match>
    -		</input>
    -	</macro>
    -	<macro name="directory_result_say_name">
    -		<input pattern="^(.*)$">
    -			<match>
    -				<action function="speak-text" data="$1"/>
    -			</match>
    -		</input>
    -	</macro>
    -
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/pt/pt_BR.xml+0 8 removed
    @@ -1,8 +0,0 @@
    -<include>
    -  <language name="pt" sound-path="$${sounds_dir}/pt/BR/karina" tts-engine="cepstral" tts-voice="marta">
    -    <X-PRE-PROCESS cmd="include" data="demo/*-pt-BR.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
    -    <!--voicemail_pt_BR_tts is purely implemented with tts, we have the files based one that is the default. -->
    -    <X-PRE-PROCESS cmd="include" data="vm/sounds-pt-BR.xml"/>  <!-- vm/tts.xml if you want to use tts and have cepstral -->
    -    <X-PRE-PROCESS cmd="include" data="dir/sounds-pt-BR.xml"/>  <!-- dir/tts.xml if you want to use tts and have cepstral -->
    -  </language>
    -</include>
    
  • conf/rayo/lang/pt/pt_PT.xml+0 8 removed
    @@ -1,8 +0,0 @@
    -<include>
    -  <language name="pt" sound-path="$${sounds_dir}/pt/PT/karina" tts-engine="cepstral" tts-voice="marta">
    -    <X-PRE-PROCESS cmd="include" data="demo/*-pt-PT.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
    -    <!--voicemail_pt_PT_tts is purely implemented with tts, we have the files based one that is the default. -->
    -    <X-PRE-PROCESS cmd="include" data="vm/sounds-pt-PT.xml"/>  <!-- vm/tts.xml if you want to use tts and have cepstral -->
    -    <X-PRE-PROCESS cmd="include" data="dir/sounds-pt-PT.xml"/>  <!-- dir/tts.xml if you want to use tts and have cepstral -->
    -  </language>
    -</include>
    
  • conf/rayo/lang/pt/vm/sounds-pt-BR.xml+0 404 removed
    @@ -1,404 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -  <macro name="voicemail_enter_id">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-enter_id.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_enter_pass">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_fail_auth">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_hello">
    -    <input pattern="(.*)">
    -      <match>
    -	<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_goodbye">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-goodbye.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_abort">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-abort.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_message_count">
    -    <input pattern="^(1):(.*)$" break_on_match="true">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-you_have.wav"/>
    -	<action function="play-file" data="digits/uma.wav"/>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$2.wav"/> 
    -      </match>
    -    </input>
    -    <input pattern="^(\d+):(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-you_have.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="items"/>
    -	<action function="play-file" data="voicemail/vm-messages.wav"/>
    -	<action function="play-file" data="voicemail/vm-$2_s.wav"/> 
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<!-- To listen to new messages -->
    -	<action function="play-file" data="voicemail/vm-listen_new.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To listen to saved messages -->
    -	<action function="play-file" data="voicemail/vm-listen_saved.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- For advanced options -->
    -	<action function="play-file" data="voicemail/vm-advanced.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To exit -->
    -	<action function="play-file" data="voicemail/vm-to_exit.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_config_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<!-- To record a greeting -->
    -	<action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To choose greeting -->
    -	<action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To record your name -->
    -	<action function="play-file" data="voicemail/vm-record_name2.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To change password -->
    -	<action function="play-file" data="voicemail/vm-change_password.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To return to main menu -->
    -	<action function="play-file" data="voicemail/vm-main_menu.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-record_name1.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-rerecord.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_urgent_check">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-continue.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_prepend">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-send_message_now.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_message_enter_extension">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
    -	<action function="play-file" data="voicemail/vm-followed_by.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_invalid_extension">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_listen_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-return_call.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-to_forward.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-return_call.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-to_forward.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting_fail">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_message">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-record_message.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_greeting_selected">
    -    <input pattern="^(\d+)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-greeting.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="items"/>
    -	<action function="play-file" data="voicemail/vm-selected.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_play_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-person.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-not_available.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_number">
    -    <input pattern="^(\d+)$">
    -      <match>
    -	<action function="say" data="$1" method="pronounced" type="items"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_message_number">
    -    <input pattern="^([a-z]+):(\d+)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/> 
    -	<action function="play-file" data="voicemail/vm-message_number.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="items"/> 
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_phone_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -  <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
    -  <macro name="voicemail_ack"> 
    -    <input pattern="^(too-small)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-too-small.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(deleted)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(saved)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(emailed)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(marked-urgent)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_date">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="say" data="$1" method="pronounced" type="current_date_time"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_disk_quota_exceeded">
    -    <input pattern="^(.*)$">
    -        <match>
    -            <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
    -        </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_announce_ext">
    -    <input pattern="^([^\:]+):(.*)$">
    -      <match>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_lot_full">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_lot_empty">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
    -      </match>
    -    </input>
    -  </macro>
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/pt/vm/sounds-pt-PT.xml+0 404 removed
    @@ -1,404 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -  <macro name="voicemail_enter_id">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-enter_id.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_enter_pass">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_fail_auth">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_hello">
    -    <input pattern="(.*)">
    -      <match>
    -	<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_goodbye">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-goodbye.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_abort">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-abort.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_message_count">
    -    <input pattern="^(1):(.*)$" break_on_match="true">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-you_have.wav"/>
    -	<action function="play-file" data="digits/uma.wav"/>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$2.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(\d+):(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-you_have.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="items"/>
    -	<action function="play-file" data="voicemail/vm-messages.wav"/>
    -	<action function="play-file" data="voicemail/vm-$2_s.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<!-- To listen to new messages -->
    -	<action function="play-file" data="voicemail/vm-listen_new.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To listen to saved messages -->
    -	<action function="play-file" data="voicemail/vm-listen_saved.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- For advanced options -->
    -	<action function="play-file" data="voicemail/vm-advanced.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To exit -->
    -	<action function="play-file" data="voicemail/vm-to_exit.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_config_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<!-- To record a greeting -->
    -	<action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To choose greeting -->
    -	<action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To record your name -->
    -	<action function="play-file" data="voicemail/vm-record_name2.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To change password -->
    -	<action function="play-file" data="voicemail/vm-change_password.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(100)"/>
    -
    -	<!-- To return to main menu -->
    -	<action function="play-file" data="voicemail/vm-main_menu.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-record_name1.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-rerecord.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_urgent_check">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-continue.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_prepend">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-send_message_now.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_message_enter_extension">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
    -	<action function="play-file" data="voicemail/vm-followed_by.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_invalid_extension">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_listen_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-return_call.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-to_forward.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-return_call.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-to_forward.wav"/>
    -	<action function="play-file" data="voicemail/vm-press.wav"/>
    -	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting_fail">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_message">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-record_message.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_greeting_selected">
    -    <input pattern="^(\d+)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-greeting.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="items"/>
    -	<action function="play-file" data="voicemail/vm-selected.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_play_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-person.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-not_available.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_number">
    -    <input pattern="^(\d+)$">
    -      <match>
    -	<action function="say" data="$1" method="pronounced" type="items"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_message_number">
    -    <input pattern="^([a-z]+):(\d+)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/> 
    -	<action function="play-file" data="voicemail/vm-message_number.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="items"/> 
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_phone_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -  <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
    -  <macro name="voicemail_ack"> 
    -    <input pattern="^(too-small)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-too-small.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(deleted)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(saved)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(emailed)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(marked-urgent)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-message.wav"/>
    -	<action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_date">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="say" data="$1" method="pronounced" type="current_date_time"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_disk_quota_exceeded">
    -    <input pattern="^(.*)$">
    -        <match>
    -            <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
    -        </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_announce_ext">
    -    <input pattern="^([^\:]+):(.*)$">
    -      <match>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_lot_full">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_lot_empty">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
    -      </match>
    -    </input>
    -  </macro>
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/pt/vm/tts-pt-BR.xml+0 239 removed
    @@ -1,239 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -  <macro name="voicemail_enter_id">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Por favor digite o seu número de usuario, e depois $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_enter_pass">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Por favor digite a sua contrasenha, e depois $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_fail_auth">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Inicio incorreto da sessão."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_hello">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Bem-vindo ao seu correio de voz."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_goodbye">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Até logo."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_abort">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Muitas tentativas fracassadas."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_message_count">
    -    <input pattern="^1:(.*)$" break_on_match="true">
    -      <match>
    -	<action function="speak-text" data="Você tem 1 $1 mensagem no directório ${voicemail_current_folder}."/>
    -      </match>
    -    </input>
    -    <input pattern="^(\d+):(.*)$">
    -      <match>
    -	<action function="speak-text" data="Você tem  $1 $2 mensagens no directório ${voicemail_current_folder}."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para ouvir as mensagens novas, digite $1, Para ouvir as mensagens armazenadas, digite $2, Para opções avançadas, digite $3, Para sair, digite $4."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -
    -  <macro name="voicemail_config_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para gravar a sua saudação, digite $1, Para escolher a sua saudação, digite $2, Para gravar o seu nome, digite $3, Para mudar a sua senha, digite $5, Para o menu principal, digite $5."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -
    -  <macro name="voicemail_record_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Após o sinal grave o seu nome, digite qualquer tecla ou deixe de falar para finalizar a gravação."/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para ouvir a gravação, digite $1, Para guardar a gravação, digite $2, Para gravar novamente, digite $3."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_urgent_check">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para marcar esta mensagem como urgente, digite $1, Para continuar, digite $2."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_invalid_extension">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -	<action function="speak-text" data="$1 não é um ramal válido."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_message_enter_extension">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -	<action function="speak-text" data="Marque o ramal para o qual pretende encaminhar esta mensagem, e depois $1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_prepend">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -	<action function="speak-text" data="Para gravar um anúncio, digite $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_listen_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para ouvir a gravação novamente, press $1, Para guardar a gravação, press $2,  Para borrar a gravação, press $3, Para enviar a gravação para o seu email, press $4, Para devolver a ligação agora, press $5, Para encaminhar esta mensagem para outro ramal, press $6."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Escolha uma saudação entre as opções 1 e 3."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting_fail">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Valor inválido."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Após o sinal grave a sua saudação, digite qualquer tecla ou deixe de falar para finalizar a gravação."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_message">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Após o sinal grave a sua mensagem, digite qualquer tecla ou deixe de falar para finalizar a gravação."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_greeting_selected">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Saudação $1 selecionada."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_play_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1 não está disponível."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_message_number">
    -    <input pattern="^([a-z]+):(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1 mensagem número $2."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_phone_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_ack">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Mensagem $1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_date">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/pt/vm/tts-pt-PT.xml+0 238 removed
    @@ -1,238 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -  <macro name="voicemail_enter_id">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Por favor introduza o seu número de utilizador, seguido de $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_enter_pass">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Por favor introduza a sua palavra passe, seguida de $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_fail_auth">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Falha na autenticação."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_hello">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Bem-vindo ao seu correio de voz."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_goodbye">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Até breve."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_abort">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="speak-text" data="Demasiadas tentativas falhadas."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_message_count">
    -    <input pattern="^1:(.*)$" break_on_match="true">
    -      <match>
    -	<action function="speak-text" data="Você tem 1 $1 mensagen no directório ${voicemail_current_folder}."/>
    -      </match>
    -    </input>
    -    <input pattern="^(\d+):(.*)$">
    -      <match>
    -	<action function="speak-text" data="Você tem $1 $2 mensagens no directório ${voicemail_current_folder}."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para ouvir as mensagens novas, marque $1, Para ouvir as mensagens guardadas, marque $2, Para opções avançadas, marque $3, Para sair, marque $4."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -
    -  <macro name="voicemail_config_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para gravar a sua saudação, marque $1, Para escolher a sua saudação, marque $2, Para gravar o seu nome, marque $3, Para alterar a sua palavra passe, marque $5, Para o menu principal, marque $5."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -
    -  <macro name="voicemail_record_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Após o sinal grave o seu nome, pressione qualquer tecla ou deixe de falar para parar a gravação."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para ouvir a gravação, marque $1, Para guardar a gravação, marque $2, Para gravar novamente, marque $3."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_urgent_check">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para marcar esta mensagem como urgente, marque $1, Para continuar, marque $2."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_invalid_extension">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -	<action function="speak-text" data="$1 não é uma extensão válida."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_message_enter_extension">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -	<action function="speak-text" data="Introduza a extensão para a qual pretende encaminhar esta mensagem, seguido de $1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_prepend">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -	<action function="speak-text" data="Para gravar um anúncio, marque $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_listen_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="speak-text" 
    -		data="Para ouvir a gravação novamente, marque $1, Para guardar a gravação, marque $2,  Para apagar a gravação, marque $3, Para encaminhar a gravação para o seu email, marque $4, Para devolver a chamada agora, marque $5, Para encaminhar esta mensagem para outra extensão, marque $6."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Seleccione uma saudação entre 1 e 3."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting_fail">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="valor inválido."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Após o sinal grave a sua saudação, pressione qualquer tecla ou deixe de falar para parar a gravação."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_message">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Após o sinal grave a sua mensagem, pressione qualquer tecla ou deixe de falar para parar a gravação."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_greeting_selected">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Saudação $1 seleccionada."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_play_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1 não está disponível."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_message_number">
    -    <input pattern="^([a-z]+):(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1 mensagem número $2."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_phone_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="$1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_ack">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="Mensagem $1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_date">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/lang/ru/demo/demo-ivr.xml+0 154 removed
    @@ -1,154 +0,0 @@
    -<include>
    -
    -  <macro name="demo_ivr_count">
    -    <input pattern="^(\d+)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-you_have.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-messages.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="demo_ivr_main_menu" pause="250"> <!-- See conf/autoload_config/ivr.conf.xml for an example on how to use this macro in an IVR -->
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- string together several existing sound files to create one long greeting -->
    -        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
    -        <action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
    -        <action function="play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>
    -        <!-- note that you can do more than just play files, e.g. have pauses and do TTS -->
    -
    -        <!-- Menu option 1: Call FreeSWITCH conference-->
    -        <action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
    -        <action function="execute" data="sleep(1500)"/>
    -        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/1.wav"/>
    -
    -        <!-- Menu option 2: Do FreeSWITCH echo test -->
    -        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/2.wav"/>
    -
    -        <!-- Menu option 3: Listen to Music on Hold -->
    -        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/3.wav"/>
    -
    -        <!-- Menu option 4: Hear a sample submenu -->
    -        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/4.wav"/>
    -
    -        <!-- Menu option 5: Listen to screaming monkeys -->
    -        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
    -
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/5.wav"/>
    -
    -        <!-- Menu option 9: Repeat these options -->
    -        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/9.wav"/>
    -        <action function="execute" data="sleep(2000)"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
    -  <!-- The short version has all the options but not the initial greeting -->
    -  <macro name="demo_ivr_main_menu_short" pause="250">
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- Menu option 1: Call FreeSWITCH conference-->
    -        <action function="execute" data="sleep(1000)"/>
    -        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/1.wav"/>
    -
    -        <!-- Menu option 2: Do FreeSWITCH echo test -->
    -        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/2.wav"/>
    -
    -        <!-- Menu option 3: Listen to Music on Hold -->
    -        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/3.wav"/>
    -
    -        <!-- Menu option 4: Hear a sample submenu -->
    -        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/4.wav"/>
    -
    -        <!-- Menu option 5: Listen to screaming monkeys -->
    -        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/5.wav"/>
    -
    -        <!-- Menu option 9: Repeat these options -->
    -        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/9.wav"/>
    -        <action function="execute" data="sleep(2000)"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the "long" greeting for the demo_ivr_sub_menu -->
    -  <macro name="demo_ivr_sub_menu">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
    -        <action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
    -
    -        <!-- Menu option *: Return to top menu -->
    -        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/star.wav"/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
    -  <!-- The short version has all the options but not the initial greeting -->
    -  <macro name="demo_ivr_sub_menu_short">
    -    <input pattern="(.*)">
    -      <match>
    -        <!-- Menu option *: Return to top menu -->
    -        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
    -        <action function="play-file" data="ivr/ivr-please.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="play-file" data="digits/star.wav"/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include>
    -<!--
    -For Emacs:
    -Local Variables:
    -mode:xml
    -indent-tabs-mode:nil
    -tab-width:2
    -c-basic-offset:2
    -End:
    -For VIM:
    -vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
    --->
    
  • conf/rayo/lang/ru/demo/demo.xml+0 109 removed
    @@ -1,109 +0,0 @@
    -<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:
    --->
    
  • conf/rayo/lang/ru/dir/sounds.xml+0 130 removed
    @@ -1,130 +0,0 @@
    -<include>
    -
    -  <macro name="directory_intro">
    -    <input pattern="^(last_name)" break_on_match="false">
    -      <match>
    -        <action function="play-file" data="directory/dir-enter-person.wav"/>
    -        <action function="play-file" data="directory/dir-last_name.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(first_name)" break_on_match="false">
    -      <match>
    -        <action function="play-file" data="directory/dir-enter-person.wav"/>
    -        <action function="play-file" data="directory/dir-first_name.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(last_name):([0-9#*])$" break_on_match="false">
    -      <match>
    -        <action function="play-file" data="directory/dir-to_search_by.wav"/>
    -        <action function="play-file" data="directory/dir-first_name.wav"/>
    -        <action function="play-file" data="directory/dir-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -    <input pattern="^(first_name):([0-9#*])$" break_on_match="false">
    -      <match>
    -        <action function="play-file" data="directory/dir-to_search_by.wav"/>
    -        <action function="play-file" data="directory/dir-last_name.wav"/>
    -        <action function="play-file" data="directory/dir-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_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">
    -    <input pattern="^0$" break_on_match="true">
    -      <match>
    -        <action function="play-file" data="directory/dir-no_match_entry.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -        <action function="play-file" data="directory/dir-result_match.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_count_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>
    -
    -  <macro name="directory_result_item">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="directory/dir-result_number.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_at">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="directory/dir-at_extension.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_menu">
    -    <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
    -      <match>
    -        <action function="play-file" data="directory/dir-to_select_entry.wav"/>
    -        <action function="play-file" data="directory/dir-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="directory/dir-for_next.wav"/>
    -        <action function="play-file" data="directory/dir-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="directory/dir-for_prev.wav"/>
    -        <action function="play-file" data="directory/dir-press.wav"/>
    -        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="directory/dir-to_make_new_search.wav"/>
    -        <action function="play-file" data="directory/dir-press.wav"/>
    -        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -</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:
    --->
    
  • conf/rayo/lang/ru/dir/tts.xml+0 105 removed
    @@ -1,105 +0,0 @@
    -<include>
    -
    -  <macro name="directory_intro">
    -    <input pattern="^(last_name)" break_on_match="false">
    -      <match>
    -        <action function="speak-text" data="Please enter the first few digit of the person last name"/>
    -      </match>
    -    </input>
    -    <input pattern="^(first_name)" break_on_match="false">
    -      <match>
    -        <action function="speak-text" data="Please enter the first few digit of the person first name"/>
    -      </match>
    -    </input>
    -    <input pattern="^(last_name):([0-9#*])$" break_on_match="false">
    -      <match>
    -        <action function="speak-text" data="to search by first name, press $2"/>
    -      </match>
    -    </input>
    -    <input pattern="^(first_name):([0-9#*])$" break_on_match="false">
    -      <match>
    -        <action function="speak-text" data="to search by last name, press $2"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_min_search_digits">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_count">
    -    <input pattern="^0$" break_on_match="true">
    -      <match>
    -        <action function="speak-text" data="Your search match no user on this system, try again."/>
    -      </match>
    -    </input>
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1 result match your search"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_count_too_large">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="Your search returned too many result, please try again"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_last">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="No more result"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_item">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="Result number $1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_menu">
    -    <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
    -      <match>
    -        <action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="directory_result_at">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="at extension $1"/>
    -      </match>
    -    </input>
    -  </macro>
    -  <macro name="directory_result_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include>
    -<!--
    -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:
    --->
    
  • conf/rayo/lang/ru/ru.xml+0 23 removed
    @@ -1,23 +0,0 @@
    -<!--тестовые файлы Вы звуковые файлы можно взять тут 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>
    -      <macros>
    -        <X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
    -        <!--voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. -->
    -        <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>  <!-- vm/tts.xml if you want to use tts and have cepstral -->
    -      </macros>
    -    </phrases>
    -  </language>
    -</include>
    -<!--
    -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:
    --->
    
  • conf/rayo/lang/ru/vm/sounds.xml+0 374 removed
    @@ -1,374 +0,0 @@
    -<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="^(\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"/>-->
    -      </match>
    -    </input>
    -    <!-- от 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"/>-->
    -      </match>
    -    </input>
    -    <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"/>
    -      </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"/>
    -      </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"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-record_name1.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-rerecord.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_urgent_check">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-continue.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_prepend">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-send_message_now.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_message_enter_extension">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
    -        <action function="play-file" data="voicemail/vm-followed_by.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_invalid_extension">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_listen_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-return_call.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-to_forward.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$6" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-save_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-return_call.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-to_forward.wav"/>
    -        <action function="play-file" data="voicemail/vm-press.wav"/>
    -        <action function="say" data="$6" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting_fail">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-record_greeting.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_message">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-record_message.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_greeting_selected">
    -    <input pattern="^(\d+)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-greeting.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -        <action function="play-file" data="voicemail/vm-selected.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_play_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-person.wav"/>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -        <action function="play-file" data="voicemail/vm-not_available.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_number">
    -    <input pattern="^(\d+)$">
    -      <match>
    -        <action function="say" data="$1" method="pronounced" type="items"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_message_number">
    -    <input pattern="^([a-z]+):(\d+)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-$1.wav"/>
    -        <action function="play-file" data="voicemail/vm-message_number.wav"/>
    -        <action function="say" data="$2" method="pronounced" type="items"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_phone_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -  <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
    -  <macro name="voicemail_ack">
    -    <input pattern="^(too-small)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-too-small.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(deleted)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-message.wav"/>
    -        <action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(saved)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-message.wav"/>
    -        <action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(emailed)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-message.wav"/>
    -        <action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(marked-urgent)$">
    -      <match>
    -        <action function="play-file" data="voicemail/vm-message.wav"/>
    -        <action function="play-file" data="voicemail/vm-$1.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_date">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="say" data="$1" method="pronounced" type="current_date_time"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -</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:
    --->
    
  • conf/rayo/lang/ru/vm/tts.xml+0 249 removed
    @@ -1,249 +0,0 @@
    -<include>
    -
    -  <macro name="voicemail_enter_id">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="please enter your i d, followed by $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_enter_pass">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="please enter your password, followed by $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_fail_auth">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="login incorrect."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_hello">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="welcome to your voicemail."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_goodbye">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="goodbye."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_abort">
    -    <input pattern="(.*)">
    -      <match>
    -        <action function="speak-text" data="too many failed attempts."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_message_count">
    -    <input pattern="^1:(.*)$" break_on_match="true">
    -      <match>
    -        <action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/>
    -      </match>
    -    </input>
    -    <input pattern="^(\d+):(.*)$">
    -      <match>
    -        <action function="speak-text" data="you have $1 $2 messages in folder ${voicemail_current_folder}."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="speak-text"
    -                data="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $4."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_config_menu">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="speak-text"
    -                data="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/>
    -
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="speak-text"
    -                data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_urgent_check">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="speak-text"
    -                data="To mark this message urgent, press $1, To continue, press $2."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_invalid_extension">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -        <action function="speak-text" data="$1 is not a valid extension."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_message_enter_extension">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -        <action function="speak-text" data="enter the extension you wish to forward to, then press $1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_forward_prepend">
    -    <input pattern="^([0-9#*])$">
    -      <match>
    -        <action function="speak-text" data="To record an announcement, press $1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_listen_file_check">
    -    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
    -      <match>
    -        <action function="speak-text"
    -                data="To listen to the recording again, press $1, To save the recording, press $2,  To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="choose a greeting between 1 and 3."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting_fail">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="invalid value."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_message">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_greeting_selected">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="greeting $1 selected."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_play_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1 is not available."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_message_number">
    -    <input pattern="^([a-z]+):(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1 message number $2."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_phone_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="$1."/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_ack">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="message $1"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_date">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -</include>
    -<!--
    -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:
    --->
    
  • conf/rayo/lang/sv/sv.xml+0 7 removed
    @@ -1,7 +0,0 @@
    -<include>
    -  <language name="sv" sound-path="$${sounds_dir}/sv/se/jakob" tts-engine="" tts-voice="">
    -    <X-PRE-PROCESS cmd="include" data="ivr/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
    -    <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>
    -    <!--voicemail is purely implemented with files based one that is the default. -->
    -  </language>
    -</include>
    
  • conf/rayo/lang/sv/vm/sounds.xml+0 504 removed
    @@ -1,504 +0,0 @@
    -<include><!--This line will be ignored it's here to validate the xml and is optional -->
    -  <macro name="voicemail_enter_id">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-knappa_in_din_anknytning_foljt_av.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-knappa_in_ditt_pinnummer_foljt_av.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-felaktig_inloggning.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_hello">
    -    <input pattern="(.*)">
    -      <match>
    -	<!--<action function="play-file" data="voicemail/vm-hej.wav"/> -->
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_goodbye">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-hejda.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_abort">
    -    <input pattern="(.*)">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-for_manga_felaktiga_forsok.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_message_count">
    -	<!-- 
    -	Pattern matching needed:
    -		0:*
    -		1:new
    -		*:new
    -			:saved
    -			:urgent
    -			:urgent-new
    -			:urgent-saved
    -	-->
    -	<input pattern="^(0):(.*)$" break_on_match="true">
    -		<match>
    -			<action function="play-file" data="voicemail/vm-du_har.wav"/>
    -			<action function="play-file" data="voicemail/vm-inga.wav"/> 
    -			<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
    -		</match>
    -	</input>
    -	<input pattern="^(1):new$" break_on_match="true">
    -		<match>
    -			<action function="play-file" data="voicemail/vm-du_har.wav"/>
    -			<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
    -			<action function="play-file" data="voicemail/vm-nytt.wav"/> 
    -			<action function="play-file" data="voicemail/vm-meddelande..wav"/>
    -		</match>
    -	</input>
    -	<input pattern="^(\d+):new$" break_on_match="true">
    -		<match>
    -			<action function="play-file" data="voicemail/vm-du_har.wav"/>
    -			<action function="say" data="$1" method="pronounced" type="items"/>
    -			<action function="play-file" data="voicemail/vm-nya.wav"/> 
    -			<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
    -		</match>
    -	</input>
    -	<input pattern="^(1):saved$" break_on_match="true">
    -		<match>
    -			<action function="play-file" data="voicemail/vm-du_har.wav"/>
    -			<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
    -			<action function="play-file" data="voicemail/vm-sparat.wav"/> 
    -			<action function="play-file" data="voicemail/vm-meddelande..wav"/>
    -		</match>
    -	</input>
    -	<input pattern="^(\d+):saved$" break_on_match="true">
    -		<match>
    -			<action function="play-file" data="voicemail/vm-du_har.wav"/>
    -			<action function="say" data="$1" method="pronounced" type="items"/>
    -			<action function="play-file" data="voicemail/vm-sparade.wav"/> 
    -			<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
    -		</match>
    -	</input>
    -	<input pattern="^(1):urgent$" break_on_match="true">
    -		<match>
    -			<action function="play-file" data="voicemail/vm-du_har.wav"/>
    -			<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
    -			<action function="play-file" data="voicemail/vm-viktigt.wav"/> 
    -			<action function="play-file" data="voicemail/vm-meddelande..wav"/>
    -		</match>
    -	</input>
    -	<input pattern="^(\d+):urgent$" break_on_match="true">
    -		<match>
    -			<action function="play-file" data="voicemail/vm-du_har.wav"/>
    -			<action function="say" data="$1" method="pronounced" type="items"/>
    -			<action function="play-file" data="voicemail/vm-viktiga.wav"/> 
    -			<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
    -		</match>
    -	</input>
    -	<input pattern="^(1):urgent-new$" break_on_match="true">
    -		<match>
    -			<action function="play-file" data="voicemail/vm-du_har.wav"/>
    -			<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
    -			<action function="play-file" data="voicemail/vm-viktigt_nytt.wav"/> 
    -			<action function="play-file" data="voicemail/vm-meddelande..wav"/>
    -		</match>
    -	</input>
    -	<input pattern="^(\d+):urgent-new$" break_on_match="true">
    -		<match>
    -			<action function="play-file" data="voicemail/vm-du_har.wav"/>
    -			<action function="say" data="$1" method="pronounced" type="items"/>
    -			<action function="play-file" data="voicemail/vm-viktiga_nya.wav"/> 
    -			<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
    -		</match>
    -	</input>
    -	<input pattern="^(1):urgent-saved$" break_on_match="true">
    -		<match>
    -			<action function="play-file" data="voicemail/vm-du_har.wav"/>
    -			<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
    -			<action function="play-file" data="voicemail/vm-viktigt_sparat.wav"/> 
    -			<action function="play-file" data="voicemail/vm-meddelande..wav"/>
    -		</match>
    -	</input>
    -	<input pattern="^(\d+):urgent-saved$" break_on_match="true">
    -		<match>
    -			<action function="play-file" data="voicemail/vm-du_har.wav"/>
    -			<action function="say" data="$1" method="pronounced" type="items"/>
    -			<action function="play-file" data="voicemail/vm-viktiga_sparade.wav"/> 
    -			<action function="play-file" data="voicemail/vm-meddelanden.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-for_att_lyssna_pa_nya_meddelanden.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -
    -	<!-- To listen to saved messages -->
    -	<action function="play-file" data="voicemail/vm-for_att_lyssna_pa_sparade_meddelanden.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -
    -	<!-- For advanced options -->
    -	<action function="play-file" data="voicemail/vm-for_avancerade_installningar.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -
    -	<!-- To exit -->
    -	<action function="play-file" data="voicemail/vm-for_att_avsluta.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.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-for_att_spela_in_en_halsning.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -
    -	<!-- To choose greeting -->
    -	<action function="play-file" data="voicemail/vm-for_att_valja_utgaende_meddelande.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -
    -	<!-- To record your name -->
    -	<action function="play-file" data="voicemail/vm-for_att_spela_in_ditt_namn.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -
    -	<!-- To change password -->
    -	<action function="play-file" data="voicemail/vm-for_att_byta_losenord.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -
    -	<!-- To return to main menu -->
    -	<action function="play-file" data="voicemail/vm-for_att_lyssna_till_huvudmenyn.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.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-efter_tonen_kan_du_spela_in_ditt_namn.wav"/>
    -	<action function="play-file" data="voicemail/vm-for_att_avsluta_inspelningen.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck_valfri_knapp_eller_sluta_prata.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-for_att_lyssna_pa_inspelningen.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -	<action function="play-file" data="voicemail/vm-for_att_spara_inspelningen.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -	<action function="play-file" data="voicemail/vm-for_att_spela_in_igen.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_urgent_check">
    -    <input pattern="^([0-9#*]):([0-9#*])$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-for_att_markera_detta_meddelande_viktigt.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -	<action function="play-file" data="voicemail/vm-for_att_fortsatta.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.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-for_att_infoga_en_introduktion_till_detta_meddelande.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -	<action function="play-file" data="voicemail/vm-for_att_skicka_detta_meddelande_nu.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.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-knappa_in_anknytningen_att_vidarebefordra_detta_meddelande_till.wav"/>
    -	<action function="play-file" data="voicemail/vm-foljt_av.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-det_var_en_felaktig_anknytning.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-for_att_lyssna_pa_inspelningen.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -	<action function="play-file" data="voicemail/vm-for_att_spara_meddelandet.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -	<action function="play-file" data="voicemail/vm-for_att_radera_inspelningen.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -	<action function="play-file" data="voicemail/vm-for_att_vidarebefordra_detta_meddelande_till_din_epost.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -	<action function="play-file" data="voicemail/vm-for_att_ringa_tillbaka_nu.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -	<action function="play-file" data="voicemail/vm-for_att_vidarebefordra_detta_meddelande.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.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-for_att_lyssna_pa_inspelningen.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -	<action function="play-file" data="voicemail/vm-for_att_spara_meddelandet.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -	<action function="play-file" data="voicemail/vm-for_att_radera_inspelningen.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -	<action function="play-file" data="voicemail/vm-for_att_ringa_tillbaka_nu.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.wav"/>
    -	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
    -	<action function="execute" data="sleep(200)"/>
    -	<action function="play-file" data="voicemail/vm-for_att_vidarebefordra_detta_meddelande.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck.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-valj_en_halsning_mellan_1_och_9.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_choose_greeting_fail">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-det_var_ett_felaktigt_val.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-spela_in_din_halsning_efter_tonen.wav"/>
    -	<action function="play-file" data="voicemail/vm-for_att_avsluta_inspelningen.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck_valfri_knapp_eller_sluta_prata.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_record_message">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-spela_in_ditt_meddelande_efter_tonen.wav"/>
    -	<action function="play-file" data="voicemail/vm-for_att_avsluta_inspelningen.wav"/>
    -	<action function="play-file" data="voicemail/vm-tryck_valfri_knapp_eller_sluta_prata.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_greeting_selected">
    -    <input pattern="^(\d+)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-meddelande_nummer.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="items"/>
    -	<action function="play-file" data="voicemail/vm-markerad.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_play_greeting">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-personen_med_anknytning.wav"/>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -	<action function="play-file" data="voicemail/vm-not_ar_inte_tillganglig.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-meddelande_nummer.wav"/>
    -	<action function="say" data="$2" method="pronounced" type="items"/> 
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_phone_number">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_name">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -  <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
    -  <macro name="voicemail_ack"> 
    -    <input pattern="^(too-small)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-din_inspelning_ar_kortare_an_tillaten_langd_vanligen_forsok_igen.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(deleted)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-meddelande.wav"/>
    -	<action function="play-file" data="voicemail/vm-raderat.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(saved)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-meddelande.wav"/>
    -	<action function="play-file" data="voicemail/vm-sparat.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(emailed)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-meddelande.wav"/>
    -	<action function="play-file" data="voicemail/vm-skickat_pa_epost.wav"/>
    -      </match>
    -    </input>
    -    <input pattern="^(marked-urgent)$">
    -      <match>
    -	<action function="play-file" data="voicemail/vm-meddelande.wav"/>
    -	<action function="play-file" data="voicemail/vm-markerat_som_viktigt.wav"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_say_date">
    -    <input pattern="^(.*)$">
    -      <match>
    -	<action function="say" data="$1" method="pronounced" type="current_date_time"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="voicemail_disk_quota_exceeded">
    -    <input pattern="^(.*)$">
    -        <match>
    -            <action function="play-file" data="voicemail/vm-den_rostbrevladan_ar_full_vanligen_forsok_ringa_senare.wav"/>
    -        </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_announce_ext">
    -    <input pattern="^([^\:]+):(.*)$">
    -      <match>
    -        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_lot_full">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
    -      </match>
    -    </input>
    -  </macro>
    -
    -  <macro name="valet_lot_empty">
    -    <input pattern="^(.*)$">
    -      <match>
    -        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
    -      </match>
    -    </input>
    -  </macro>
    -</include><!--This line will be ignored it's here to validate the xml and is optional -->
    
  • conf/rayo/mime.types+0 1609 removed
    @@ -1,1609 +0,0 @@
    -#
    -# MIME type configs overriden by the FreeSWITCH project.
    -#
    -audio/mpeg					mp3 mpga mp2 mp2a m2a m3a
    -image/jpeg					jpg jpeg jpe
    -#
    -# Additional MIME types added by the FreeSWITCH project.  Any duplicate file extensions listed here will only be
    -# used to map from MIME -> extension and not extension -> MIME
    -audio/x-mpeg					mp3
    -audio/mp3					mp3
    -audio/x-mp3					mp3
    -audio/mpeg3					mp3
    -audio/x-mpeg3					mp3
    -audio/mpg					mp3
    -audio/x-mpegaudio				mp3
    -audio/x-wave					wav
    -audio/wave					wav
    -#
    -# The section below was taken from Apache httpd Project at
    -# <https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types>
    -#
    -# This file maps Internet media types to unique file extension(s).
    -# Although created for httpd, this file is used by many software systems
    -# and has been placed in the public domain for unlimited redisribution.
    -#
    -# The table below contains both registered and (common) unregistered types.
    -# A type that has no unique extension can be ignored -- they are listed
    -# here to guide configurations toward known types and to make it easier to
    -# identify "new" types.  File extensions are also commonly used to indicate
    -# content languages and encodings, so choose them carefully.
    -#
    -# Internet media types should be registered as described in RFC 4288.
    -# The registry is at <http://www.iana.org/assignments/media-types/>.
    -#
    -# MIME type (lowercased)			Extensions
    -# ============================================	==========
    -# application/1d-interleaved-parityfec
    -# application/3gpp-ims+xml
    -# application/activemessage
    -application/andrew-inset			ez
    -# application/applefile
    -application/applixware				aw
    -application/atom+xml				atom
    -application/atomcat+xml				atomcat
    -# application/atomicmail
    -application/atomsvc+xml				atomsvc
    -# application/auth-policy+xml
    -# application/batch-smtp
    -# application/beep+xml
    -# application/calendar+xml
    -# application/cals-1840
    -# application/ccmp+xml
    -application/ccxml+xml				ccxml
    -application/cdmi-capability			cdmia
    -application/cdmi-container			cdmic
    -application/cdmi-domain				cdmid
    -application/cdmi-object				cdmio
    -application/cdmi-queue				cdmiq
    -# application/cea-2018+xml
    -# application/cellml+xml
    -# application/cfw
    -# application/cnrp+xml
    -# application/commonground
    -# application/conference-info+xml
    -# application/cpl+xml
    -# application/csta+xml
    -# application/cstadata+xml
    -application/cu-seeme				cu
    -# application/cybercash
    -application/davmount+xml			davmount
    -# application/dca-rft
    -# application/dec-dx
    -# application/dialog-info+xml
    -# application/dicom
    -# application/dns
    -application/docbook+xml				dbk
    -# application/dskpp+xml
    -application/dssc+der				dssc
    -application/dssc+xml				xdssc
    -# application/dvcs
    -application/ecmascript				ecma
    -# application/edi-consent
    -# application/edi-x12
    -# application/edifact
    -application/emma+xml				emma
    -# application/epp+xml
    -application/epub+zip				epub
    -# application/eshop
    -# application/example
    -application/exi					exi
    -# application/fastinfoset
    -# application/fastsoap
    -# application/fits
    -application/font-tdpfr				pfr
    -# application/framework-attributes+xml
    -application/gml+xml				gml
    -application/gpx+xml				gpx
    -application/gxf					gxf
    -# application/h224
    -# application/held+xml
    -# application/http
    -application/hyperstudio				stk
    -# application/ibe-key-request+xml
    -# application/ibe-pkg-reply+xml
    -# application/ibe-pp-data
    -# application/iges
    -# application/im-iscomposing+xml
    -# application/index
    -# application/index.cmd
    -# application/index.obj
    -# application/index.response
    -# application/index.vnd
    -application/inkml+xml				ink inkml
    -# application/iotp
    -application/ipfix				ipfix
    -# application/ipp
    -# application/isup
    -application/java-archive			jar
    -application/java-serialized-object		ser
    -application/java-vm				class
    -application/javascript				js
    -application/json				json
    -application/jsonml+json				jsonml
    -# application/kpml-request+xml
    -# application/kpml-response+xml
    -application/lost+xml				lostxml
    -application/mac-binhex40			hqx
    -application/mac-compactpro			cpt
    -# application/macwriteii
    -application/mads+xml				mads
    -application/marc				mrc
    -application/marcxml+xml				mrcx
    -application/mathematica				ma nb mb
    -# application/mathml-content+xml
    -# application/mathml-presentation+xml
    -application/mathml+xml				mathml
    -# application/mbms-associated-procedure-description+xml
    -# application/mbms-deregister+xml
    -# application/mbms-envelope+xml
    -# application/mbms-msk+xml
    -# application/mbms-msk-response+xml
    -# application/mbms-protection-description+xml
    -# application/mbms-reception-report+xml
    -# application/mbms-register+xml
    -# application/mbms-register-response+xml
    -# application/mbms-user-service-description+xml
    -application/mbox				mbox
    -# application/media_control+xml
    -application/mediaservercontrol+xml		mscml
    -application/metalink+xml			metalink
    -application/metalink4+xml			meta4
    -application/mets+xml				mets
    -# application/mikey
    -application/mods+xml				mods
    -# application/moss-keys
    -# application/moss-signature
    -# application/mosskey-data
    -# application/mosskey-request
    -application/mp21				m21 mp21
    -application/mp4					mp4s
    -# application/mpeg4-generic
    -# application/mpeg4-iod
    -# application/mpeg4-iod-xmt
    -# application/msc-ivr+xml
    -# application/msc-mixer+xml
    -application/msword				doc dot
    -application/mxf					mxf
    -# application/nasdata
    -# application/news-checkgroups
    -# application/news-groupinfo
    -# application/news-transmission
    -# application/nss
    -# application/ocsp-request
    -# application/ocsp-response
    -application/octet-stream	bin dms lrf mar so dist distz pkg bpk dump elc deploy
    -application/oda					oda
    -application/oebps-package+xml			opf
    -application/ogg					ogx
    -application/omdoc+xml				omdoc
    -application/onenote				onetoc onetoc2 onetmp onepkg
    -application/oxps				oxps
    -# application/parityfec
    -application/patch-ops-error+xml			xer
    -application/pdf					pdf
    -application/pgp-encrypted			pgp
    -# application/pgp-keys
    -application/pgp-signature			asc sig
    -application/pics-rules				prf
    -# application/pidf+xml
    -# application/pidf-diff+xml
    -application/pkcs10				p10
    -application/pkcs7-mime				p7m p7c
    -application/pkcs7-signature			p7s
    -application/pkcs8				p8
    -application/pkix-attr-cert			ac
    -application/pkix-cert				cer
    -application/pkix-crl				crl
    -application/pkix-pkipath			pkipath
    -application/pkixcmp				pki
    -application/pls+xml				pls
    -# application/poc-settings+xml
    -application/postscript				ai eps ps
    -# application/prs.alvestrand.titrax-sheet
    -application/prs.cww				cww
    -# application/prs.nprend
    -# application/prs.plucker
    -# application/prs.rdf-xml-crypt
    -# application/prs.xsf+xml
    -application/pskc+xml				pskcxml
    -# application/qsig
    -application/rdf+xml				rdf
    -application/reginfo+xml				rif
    -application/relax-ng-compact-syntax		rnc
    -# application/remote-printing
    -application/resource-lists+xml			rl
    -application/resource-lists-diff+xml		rld
    -# application/riscos
    -# application/rlmi+xml
    -application/rls-services+xml			rs
    -application/rpki-ghostbusters			gbr
    -application/rpki-manifest			mft
    -application/rpki-roa				roa
    -# application/rpki-updown
    -application/rsd+xml				rsd
    -application/rss+xml				rss
    -application/rtf					rtf
    -# application/rtx
    -# application/samlassertion+xml
    -# application/samlmetadata+xml
    -application/sbml+xml				sbml
    -application/scvp-cv-request			scq
    -application/scvp-cv-response			scs
    -application/scvp-vp-request			spq
    -application/scvp-vp-response			spp
    -application/sdp					sdp
    -# application/set-payment
    -application/set-payment-initiation		setpay
    -# application/set-registration
    -application/set-registration-initiation		setreg
    -# application/sgml
    -# application/sgml-open-catalog
    -application/shf+xml				shf
    -# application/sieve
    -# application/simple-filter+xml
    -# application/simple-message-summary
    -# application/simplesymbolcontainer
    -# application/slate
    -# application/smil
    -application/smil+xml				smi smil
    -# application/soap+fastinfoset
    -# application/soap+xml
    -application/sparql-query			rq
    -application/sparql-results+xml			srx
    -# application/spirits-event+xml
    -application/srgs				gram
    -application/srgs+xml				grxml
    -application/sru+xml				sru
    -application/ssdl+xml				ssdl
    -application/ssml+xml				ssml
    -# application/tamp-apex-update
    -# application/tamp-apex-update-confirm
    -# application/tamp-community-update
    -# application/tamp-community-update-confirm
    -# application/tamp-error
    -# application/tamp-sequence-adjust
    -# application/tamp-sequence-adjust-confirm
    -# application/tamp-status-query
    -# application/tamp-status-response
    -# application/tamp-update
    -# application/tamp-update-confirm
    -application/tei+xml				tei teicorpus
    -application/thraud+xml				tfi
    -# application/timestamp-query
    -# application/timestamp-reply
    -application/timestamped-data			tsd
    -# application/tve-trigger
    -# application/ulpfec
    -# application/vcard+xml
    -# application/vemmi
    -# application/vividence.scriptfile
    -# application/vnd.3gpp.bsf+xml
    -application/vnd.3gpp.pic-bw-large		plb
    -application/vnd.3gpp.pic-bw-small		psb
    -application/vnd.3gpp.pic-bw-var			pvb
    -# application/vnd.3gpp.sms
    -# application/vnd.3gpp2.bcmcsinfo+xml
    -# application/vnd.3gpp2.sms
    -application/vnd.3gpp2.tcap			tcap
    -application/vnd.3m.post-it-notes		pwn
    -application/vnd.accpac.simply.aso		aso
    -application/vnd.accpac.simply.imp		imp
    -application/vnd.acucobol			acu
    -application/vnd.acucorp				atc acutc
    -application/vnd.adobe.air-application-installer-package+zip	air
    -application/vnd.adobe.formscentral.fcdt		fcdt
    -application/vnd.adobe.fxp			fxp fxpl
    -# application/vnd.adobe.partial-upload
    -application/vnd.adobe.xdp+xml			xdp
    -application/vnd.adobe.xfdf			xfdf
    -# application/vnd.aether.imp
    -# application/vnd.ah-barcode
    -application/vnd.ahead.space			ahead
    -application/vnd.airzip.filesecure.azf		azf
    -application/vnd.airzip.filesecure.azs		azs
    -application/vnd.amazon.ebook			azw
    -application/vnd.americandynamics.acc		acc
    -application/vnd.amiga.ami			ami
    -# application/vnd.amundsen.maze+xml
    -application/vnd.android.package-archive		apk
    -application/vnd.anser-web-certificate-issue-initiation	cii
    -application/vnd.anser-web-funds-transfer-initiation	fti
    -application/vnd.antix.game-component		atx
    -application/vnd.apple.installer+xml		mpkg
    -application/vnd.apple.mpegurl			m3u8
    -# application/vnd.arastra.swi
    -application/vnd.aristanetworks.swi		swi
    -application/vnd.astraea-software.iota		iota
    -application/vnd.audiograph			aep
    -# application/vnd.autopackage
    -# application/vnd.avistar+xml
    -application/vnd.blueice.multipass		mpm
    -# application/vnd.bluetooth.ep.oob
    -application/vnd.bmi				bmi
    -application/vnd.businessobjects			rep
    -# application/vnd.cab-jscript
    -# application/vnd.canon-cpdl
    -# application/vnd.canon-lips
    -# application/vnd.cendio.thinlinc.clientconf
    -application/vnd.chemdraw+xml			cdxml
    -application/vnd.chipnuts.karaoke-mmd		mmd
    -application/vnd.cinderella			cdy
    -# application/vnd.cirpack.isdn-ext
    -application/vnd.claymore			cla
    -application/vnd.cloanto.rp9			rp9
    -application/vnd.clonk.c4group			c4g c4d c4f c4p c4u
    -application/vnd.cluetrust.cartomobile-config		c11amc
    -application/vnd.cluetrust.cartomobile-config-pkg	c11amz
    -# application/vnd.collection+json
    -# application/vnd.commerce-battelle
    -application/vnd.commonspace			csp
    -application/vnd.contact.cmsg			cdbcmsg
    -application/vnd.cosmocaller			cmc
    -application/vnd.crick.clicker			clkx
    -application/vnd.crick.clicker.keyboard		clkk
    -application/vnd.crick.clicker.palette		clkp
    -application/vnd.crick.clicker.template		clkt
    -application/vnd.crick.clicker.wordbank		clkw
    -application/vnd.criticaltools.wbs+xml		wbs
    -application/vnd.ctc-posml			pml
    -# application/vnd.ctct.ws+xml
    -# application/vnd.cups-pdf
    -# application/vnd.cups-postscript
    -application/vnd.cups-ppd			ppd
    -# application/vnd.cups-raster
    -# application/vnd.cups-raw
    -# application/vnd.curl
    -application/vnd.curl.car			car
    -application/vnd.curl.pcurl			pcurl
    -# application/vnd.cybank
    -application/vnd.dart				dart
    -application/vnd.data-vision.rdz			rdz
    -application/vnd.dece.data			uvf uvvf uvd uvvd
    -application/vnd.dece.ttml+xml			uvt uvvt
    -application/vnd.dece.unspecified		uvx uvvx
    -application/vnd.dece.zip			uvz uvvz
    -application/vnd.denovo.fcselayout-link		fe_launch
    -# application/vnd.dir-bi.plate-dl-nosuffix
    -application/vnd.dna				dna
    -application/vnd.dolby.mlp			mlp
    -# application/vnd.dolby.mobile.1
    -# application/vnd.dolby.mobile.2
    -application/vnd.dpgraph				dpg
    -application/vnd.dreamfactory			dfac
    -application/vnd.ds-keypoint			kpxx
    -application/vnd.dvb.ait				ait
    -# application/vnd.dvb.dvbj
    -# application/vnd.dvb.esgcontainer
    -# application/vnd.dvb.ipdcdftnotifaccess
    -# application/vnd.dvb.ipdcesgaccess
    -# application/vnd.dvb.ipdcesgaccess2
    -# application/vnd.dvb.ipdcesgpdd
    -# application/vnd.dvb.ipdcroaming
    -# application/vnd.dvb.iptv.alfec-base
    -# application/vnd.dvb.iptv.alfec-enhancement
    -# application/vnd.dvb.notif-aggregate-root+xml
    -# application/vnd.dvb.notif-container+xml
    -# application/vnd.dvb.notif-generic+xml
    -# application/vnd.dvb.notif-ia-msglist+xml
    -# application/vnd.dvb.notif-ia-registration-request+xml
    -# application/vnd.dvb.notif-ia-registration-response+xml
    -# application/vnd.dvb.notif-init+xml
    -# application/vnd.dvb.pfr
    -application/vnd.dvb.service			svc
    -# application/vnd.dxr
    -application/vnd.dynageo				geo
    -# application/vnd.easykaraoke.cdgdownload
    -# application/vnd.ecdis-update
    -application/vnd.ecowin.chart			mag
    -# application/vnd.ecowin.filerequest
    -# application/vnd.ecowin.fileupdate
    -# application/vnd.ecowin.series
    -# application/vnd.ecowin.seriesrequest
    -# application/vnd.ecowin.seriesupdate
    -# application/vnd.emclient.accessrequest+xml
    -application/vnd.enliven				nml
    -# application/vnd.eprints.data+xml
    -application/vnd.epson.esf			esf
    -application/vnd.epson.msf			msf
    -application/vnd.epson.quickanime		qam
    -application/vnd.epson.salt			slt
    -application/vnd.epson.ssf			ssf
    -# application/vnd.ericsson.quickcall
    -application/vnd.eszigno3+xml			es3 et3
    -# application/vnd.etsi.aoc+xml
    -# application/vnd.etsi.cug+xml
    -# application/vnd.etsi.iptvcommand+xml
    -# application/vnd.etsi.iptvdiscovery+xml
    -# application/vnd.etsi.iptvprofile+xml
    -# application/vnd.etsi.iptvsad-bc+xml
    -# application/vnd.etsi.iptvsad-cod+xml
    -# application/vnd.etsi.iptvsad-npvr+xml
    -# application/vnd.etsi.iptvservice+xml
    -# application/vnd.etsi.iptvsync+xml
    -# application/vnd.etsi.iptvueprofile+xml
    -# application/vnd.etsi.mcid+xml
    -# application/vnd.etsi.overload-control-policy-dataset+xml
    -# application/vnd.etsi.sci+xml
    -# application/vnd.etsi.simservs+xml
    -# application/vnd.etsi.tsl+xml
    -# application/vnd.etsi.tsl.der
    -# application/vnd.eudora.data
    -application/vnd.ezpix-album			ez2
    -application/vnd.ezpix-package			ez3
    -# application/vnd.f-secure.mobile
    -application/vnd.fdf				fdf
    -application/vnd.fdsn.mseed			mseed
    -application/vnd.fdsn.seed			seed dataless
    -# application/vnd.ffsns
    -# application/vnd.fints
    -application/vnd.flographit			gph
    -application/vnd.fluxtime.clip			ftc
    -# application/vnd.font-fontforge-sfd
    -application/vnd.framemaker			fm frame maker book
    -application/vnd.frogans.fnc			fnc
    -application/vnd.frogans.ltf			ltf
    -application/vnd.fsc.weblaunch			fsc
    -application/vnd.fujitsu.oasys			oas
    -application/vnd.fujitsu.oasys2			oa2
    -application/vnd.fujitsu.oasys3			oa3
    -application/vnd.fujitsu.oasysgp			fg5
    -application/vnd.fujitsu.oasysprs		bh2
    -# application/vnd.fujixerox.art-ex
    -# application/vnd.fujixerox.art4
    -# application/vnd.fujixerox.hbpl
    -application/vnd.fujixerox.ddd			ddd
    -application/vnd.fujixerox.docuworks		xdw
    -application/vnd.fujixerox.docuworks.binder	xbd
    -# application/vnd.fut-misnet
    -application/vnd.fuzzysheet			fzs
    -application/vnd.genomatix.tuxedo		txd
    -# application/vnd.geocube+xml
    -application/vnd.geogebra.file			ggb
    -application/vnd.geogebra.tool			ggt
    -application/vnd.geometry-explorer		gex gre
    -application/vnd.geonext				gxt
    -application/vnd.geoplan				g2w
    -application/vnd.geospace			g3w
    -# application/vnd.globalplatform.card-content-mgt
    -# application/vnd.globalplatform.card-content-mgt-response
    -application/vnd.gmx				gmx
    -application/vnd.google-earth.kml+xml		kml
    -application/vnd.google-earth.kmz		kmz
    -application/vnd.grafeq				gqf gqs
    -# application/vnd.gridmp
    -application/vnd.groove-account			gac
    -application/vnd.groove-help			ghf
    -application/vnd.groove-identity-message		gim
    -application/vnd.groove-injector			grv
    -application/vnd.groove-tool-message		gtm
    -application/vnd.groove-tool-template		tpl
    -application/vnd.groove-vcard			vcg
    -# application/vnd.hal+json
    -application/vnd.hal+xml				hal
    -application/vnd.handheld-entertainment+xml	zmm
    -application/vnd.hbci				hbci
    -# application/vnd.hcl-bireports
    -application/vnd.hhe.lesson-player		les
    -application/vnd.hp-hpgl				hpgl
    -application/vnd.hp-hpid				hpid
    -application/vnd.hp-hps				hps
    -application/vnd.hp-jlyt				jlt
    -application/vnd.hp-pcl				pcl
    -application/vnd.hp-pclxl			pclxl
    -# application/vnd.httphone
    -application/vnd.hydrostatix.sof-data		sfd-hdstx
    -# application/vnd.hzn-3d-crossword
    -# application/vnd.ibm.afplinedata
    -# application/vnd.ibm.electronic-media
    -application/vnd.ibm.minipay			mpy
    -application/vnd.ibm.modcap			afp listafp list3820
    -application/vnd.ibm.rights-management		irm
    -application/vnd.ibm.secure-container		sc
    -application/vnd.iccprofile			icc icm
    -application/vnd.igloader			igl
    -application/vnd.immervision-ivp			ivp
    -application/vnd.immervision-ivu			ivu
    -# application/vnd.informedcontrol.rms+xml
    -# application/vnd.informix-visionary
    -# application/vnd.infotech.project
    -# application/vnd.infotech.project+xml
    -# application/vnd.innopath.wamp.notification
    -application/vnd.insors.igm			igm
    -application/vnd.intercon.formnet		xpw xpx
    -application/vnd.intergeo			i2g
    -# application/vnd.intertrust.digibox
    -# application/vnd.intertrust.nncp
    -application/vnd.intu.qbo			qbo
    -application/vnd.intu.qfx			qfx
    -# application/vnd.iptc.g2.conceptitem+xml
    -# application/vnd.iptc.g2.knowledgeitem+xml
    -# application/vnd.iptc.g2.newsitem+xml
    -# application/vnd.iptc.g2.newsmessage+xml
    -# application/vnd.iptc.g2.packageitem+xml
    -# application/vnd.iptc.g2.planningitem+xml
    -application/vnd.ipunplugged.rcprofile		rcprofile
    -application/vnd.irepository.package+xml		irp
    -application/vnd.is-xpr				xpr
    -application/vnd.isac.fcs			fcs
    -application/vnd.jam				jam
    -# application/vnd.japannet-directory-service
    -# application/vnd.japannet-jpnstore-wakeup
    -# application/vnd.japannet-payment-wakeup
    -# application/vnd.japannet-registration
    -# application/vnd.japannet-registration-wakeup
    -# application/vnd.japannet-setstore-wakeup
    -# application/vnd.japannet-verification
    -# application/vnd.japannet-verification-wakeup
    -application/vnd.jcp.javame.midlet-rms		rms
    -application/vnd.jisp				jisp
    -application/vnd.joost.joda-archive		joda
    -application/vnd.kahootz				ktz ktr
    -application/vnd.kde.karbon			karbon
    -application/vnd.kde.kchart			chrt
    -application/vnd.kde.kformula			kfo
    -application/vnd.kde.kivio			flw
    -application/vnd.kde.kontour			kon
    -application/vnd.kde.kpresenter			kpr kpt
    -application/vnd.kde.kspread			ksp
    -application/vnd.kde.kword			kwd kwt
    -application/vnd.kenameaapp			htke
    -application/vnd.kidspiration			kia
    -application/vnd.kinar				kne knp
    -application/vnd.koan				skp skd skt skm
    -application/vnd.kodak-descriptor		sse
    -application/vnd.las.las+xml			lasxml
    -# application/vnd.liberty-request+xml
    -application/vnd.llamagraphics.life-balance.desktop	lbd
    -application/vnd.llamagraphics.life-balance.exchange+xml	lbe
    -application/vnd.lotus-1-2-3			123
    -application/vnd.lotus-approach			apr
    -application/vnd.lotus-freelance			pre
    -application/vnd.lotus-notes			nsf
    -application/vnd.lotus-organizer			org
    -application/vnd.lotus-screencam			scm
    -application/vnd.lotus-wordpro			lwp
    -application/vnd.macports.portpkg		portpkg
    -# application/vnd.marlin.drm.actiontoken+xml
    -# application/vnd.marlin.drm.conftoken+xml
    -# application/vnd.marlin.drm.license+xml
    -# application/vnd.marlin.drm.mdcf
    -application/vnd.mcd				mcd
    -application/vnd.medcalcdata			mc1
    -application/vnd.mediastation.cdkey		cdkey
    -# application/vnd.meridian-slingshot
    -application/vnd.mfer				mwf
    -application/vnd.mfmp				mfm
    -application/vnd.micrografx.flo			flo
    -application/vnd.micrografx.igx			igx
    -application/vnd.mif				mif
    -# application/vnd.minisoft-hp3000-save
    -# application/vnd.mitsubishi.misty-guard.trustweb
    -application/vnd.mobius.daf			daf
    -application/vnd.mobius.dis			dis
    -application/vnd.mobius.mbk			mbk
    -application/vnd.mobius.mqy			mqy
    -application/vnd.mobius.msl			msl
    -application/vnd.mobius.plc			plc
    -application/vnd.mobius.txf			txf
    -application/vnd.mophun.application		mpn
    -application/vnd.mophun.certificate		mpc
    -# application/vnd.motorola.flexsuite
    -# application/vnd.motorola.flexsuite.adsi
    -# application/vnd.motorola.flexsuite.fis
    -# application/vnd.motorola.flexsuite.gotap
    -# application/vnd.motorola.flexsuite.kmr
    -# application/vnd.motorola.flexsuite.ttc
    -# application/vnd.motorola.flexsuite.wem
    -# application/vnd.motorola.iprm
    -application/vnd.mozilla.xul+xml			xul
    -application/vnd.ms-artgalry			cil
    -# application/vnd.ms-asf
    -application/vnd.ms-cab-compressed		cab
    -# application/vnd.ms-color.iccprofile
    -application/vnd.ms-excel			xls xlm xla xlc xlt xlw
    -application/vnd.ms-excel.addin.macroenabled.12		xlam
    -application/vnd.ms-excel.sheet.binary.macroenabled.12	xlsb
    -application/vnd.ms-excel.sheet.macroenabled.12		xlsm
    -application/vnd.ms-excel.template.macroenabled.12	xltm
    -application/vnd.ms-fontobject			eot
    -application/vnd.ms-htmlhelp			chm
    -application/vnd.ms-ims				ims
    -application/vnd.ms-lrm				lrm
    -# application/vnd.ms-office.activex+xml
    -application/vnd.ms-officetheme			thmx
    -# application/vnd.ms-opentype
    -# application/vnd.ms-package.obfuscated-opentype
    -application/vnd.ms-pki.seccat			cat
    -application/vnd.ms-pki.stl			stl
    -# application/vnd.ms-playready.initiator+xml
    -application/vnd.ms-powerpoint			ppt pps pot
    -application/vnd.ms-powerpoint.addin.macroenabled.12		ppam
    -application/vnd.ms-powerpoint.presentation.macroenabled.12	pptm
    -application/vnd.ms-powerpoint.slide.macroenabled.12		sldm
    -application/vnd.ms-powerpoint.slideshow.macroenabled.12		ppsm
    -application/vnd.ms-powerpoint.template.macroenabled.12		potm
    -# application/vnd.ms-printing.printticket+xml
    -application/vnd.ms-project			mpp mpt
    -# application/vnd.ms-tnef
    -# application/vnd.ms-wmdrm.lic-chlg-req
    -# application/vnd.ms-wmdrm.lic-resp
    -# application/vnd.ms-wmdrm.meter-chlg-req
    -# application/vnd.ms-wmdrm.meter-resp
    -application/vnd.ms-word.document.macroenabled.12	docm
    -application/vnd.ms-word.template.macroenabled.12	dotm
    -application/vnd.ms-works			wps wks wcm wdb
    -application/vnd.ms-wpl				wpl
    -application/vnd.ms-xpsdocument			xps
    -application/vnd.mseq				mseq
    -# application/vnd.msign
    -# application/vnd.multiad.creator
    -# application/vnd.multiad.creator.cif
    -# application/vnd.music-niff
    -application/vnd.musician			mus
    -application/vnd.muvee.style			msty
    -application/vnd.mynfc				taglet
    -# application/vnd.ncd.control
    -# application/vnd.ncd.reference
    -# application/vnd.nervana
    -# application/vnd.netfpx
    -application/vnd.neurolanguage.nlu		nlu
    -application/vnd.nitf				ntf nitf
    -application/vnd.noblenet-directory		nnd
    -application/vnd.noblenet-sealer			nns
    -application/vnd.noblenet-web			nnw
    -# application/vnd.nokia.catalogs
    -# application/vnd.nokia.conml+wbxml
    -# application/vnd.nokia.conml+xml
    -# application/vnd.nokia.isds-radio-presets
    -# application/vnd.nokia.iptv.config+xml
    -# application/vnd.nokia.landmark+wbxml
    -# application/vnd.nokia.landmark+xml
    -# application/vnd.nokia.landmarkcollection+xml
    -# application/vnd.nokia.n-gage.ac+xml
    -application/vnd.nokia.n-gage.data		ngdat
    -application/vnd.nokia.n-gage.symbian.install	n-gage
    -# application/vnd.nokia.ncd
    -# application/vnd.nokia.pcd+wbxml
    -# application/vnd.nokia.pcd+xml
    -application/vnd.nokia.radio-preset		rpst
    -application/vnd.nokia.radio-presets		rpss
    -application/vnd.novadigm.edm			edm
    -application/vnd.novadigm.edx			edx
    -application/vnd.novadigm.ext			ext
    -# application/vnd.ntt-local.file-transfer
    -# application/vnd.ntt-local.sip-ta_remote
    -# application/vnd.ntt-local.sip-ta_tcp_stream
    -application/vnd.oasis.opendocument.chart		odc
    -application/vnd.oasis.opendocument.chart-template	otc
    -application/vnd.oasis.opendocument.database		odb
    -application/vnd.oasis.opendocument.formula		odf
    -application/vnd.oasis.opendocument.formula-template	odft
    -application/vnd.oasis.opendocument.graphics		odg
    -application/vnd.oasis.opendocument.graphics-template	otg
    -application/vnd.oasis.opendocument.image		odi
    -application/vnd.oasis.opendocument.image-template	oti
    -application/vnd.oasis.opendocument.presentation		odp
    -application/vnd.oasis.opendocument.presentation-template	otp
    -application/vnd.oasis.opendocument.spreadsheet		ods
    -application/vnd.oasis.opendocument.spreadsheet-template	ots
    -application/vnd.oasis.opendocument.text			odt
    -application/vnd.oasis.opendocument.text-master		odm
    -application/vnd.oasis.opendocument.text-template	ott
    -application/vnd.oasis.opendocument.text-web		oth
    -# application/vnd.obn
    -# application/vnd.oftn.l10n+json
    -# application/vnd.oipf.contentaccessdownload+xml
    -# application/vnd.oipf.contentaccessstreaming+xml
    -# application/vnd.oipf.cspg-hexbinary
    -# application/vnd.oipf.dae.svg+xml
    -# application/vnd.oipf.dae.xhtml+xml
    -# application/vnd.oipf.mippvcontrolmessage+xml
    -# application/vnd.oipf.pae.gem
    -# application/vnd.oipf.spdiscovery+xml
    -# application/vnd.oipf.spdlist+xml
    -# application/vnd.oipf.ueprofile+xml
    -# application/vnd.oipf.userprofile+xml
    -application/vnd.olpc-sugar			xo
    -# application/vnd.oma-scws-config
    -# application/vnd.oma-scws-http-request
    -# application/vnd.oma-scws-http-response
    -# application/vnd.oma.bcast.associated-procedure-parameter+xml
    -# application/vnd.oma.bcast.drm-trigger+xml
    -# application/vnd.oma.bcast.imd+xml
    -# application/vnd.oma.bcast.ltkm
    -# application/vnd.oma.bcast.notification+xml
    -# application/vnd.oma.bcast.provisioningtrigger
    -# application/vnd.oma.bcast.sgboot
    -# application/vnd.oma.bcast.sgdd+xml
    -# application/vnd.oma.bcast.sgdu
    -# application/vnd.oma.bcast.simple-symbol-container
    -# application/vnd.oma.bcast.smartcard-trigger+xml
    -# application/vnd.oma.bcast.sprov+xml
    -# application/vnd.oma.bcast.stkm
    -# application/vnd.oma.cab-address-book+xml
    -# application/vnd.oma.cab-feature-handler+xml
    -# application/vnd.oma.cab-pcc+xml
    -# application/vnd.oma.cab-user-prefs+xml
    -# application/vnd.oma.dcd
    -# application/vnd.oma.dcdc
    -application/vnd.oma.dd2+xml			dd2
    -# application/vnd.oma.drm.risd+xml
    -# application/vnd.oma.group-usage-list+xml
    -# application/vnd.oma.pal+xml
    -# application/vnd.oma.poc.detailed-progress-report+xml
    -# application/vnd.oma.poc.final-report+xml
    -# application/vnd.oma.poc.groups+xml
    -# application/vnd.oma.poc.invocation-descriptor+xml
    -# application/vnd.oma.poc.optimized-progress-report+xml
    -# application/vnd.oma.push
    -# application/vnd.oma.scidm.messages+xml
    -# application/vnd.oma.xcap-directory+xml
    -# application/vnd.omads-email+xml
    -# application/vnd.omads-file+xml
    -# application/vnd.omads-folder+xml
    -# application/vnd.omaloc-supl-init
    -application/vnd.openofficeorg.extension		oxt
    -# application/vnd.openxmlformats-officedocument.custom-properties+xml
    -# application/vnd.openxmlformats-officedocument.customxmlproperties+xml
    -# application/vnd.openxmlformats-officedocument.drawing+xml
    -# application/vnd.openxmlformats-officedocument.drawingml.chart+xml
    -# application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml
    -# application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml
    -# application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml
    -# application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml
    -# application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml
    -# application/vnd.openxmlformats-officedocument.extended-properties+xml
    -# application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml
    -# application/vnd.openxmlformats-officedocument.presentationml.comments+xml
    -# application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml
    -# application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml
    -# application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml
    -application/vnd.openxmlformats-officedocument.presentationml.presentation	pptx
    -# application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml
    -# application/vnd.openxmlformats-officedocument.presentationml.presprops+xml
    -application/vnd.openxmlformats-officedocument.presentationml.slide	sldx
    -# application/vnd.openxmlformats-officedocument.presentationml.slide+xml
    -# application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml
    -# application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml
    -application/vnd.openxmlformats-officedocument.presentationml.slideshow	ppsx
    -# application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml
    -# application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml
    -# application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml
    -# application/vnd.openxmlformats-officedocument.presentationml.tags+xml
    -application/vnd.openxmlformats-officedocument.presentationml.template	potx
    -# application/vnd.openxmlformats-officedocument.presentationml.template.main+xml
    -# application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml
    -application/vnd.openxmlformats-officedocument.spreadsheetml.sheet	xlsx
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml
    -application/vnd.openxmlformats-officedocument.spreadsheetml.template	xltx
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml
    -# application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml
    -# application/vnd.openxmlformats-officedocument.theme+xml
    -# application/vnd.openxmlformats-officedocument.themeoverride+xml
    -# application/vnd.openxmlformats-officedocument.vmldrawing
    -# application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml
    -application/vnd.openxmlformats-officedocument.wordprocessingml.document	docx
    -# application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml
    -# application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml
    -# application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml
    -# application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml
    -# application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml
    -# application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml
    -# application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml
    -# application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml
    -# application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml
    -application/vnd.openxmlformats-officedocument.wordprocessingml.template	dotx
    -# application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml
    -# application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml
    -# application/vnd.openxmlformats-package.core-properties+xml
    -# application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml
    -# application/vnd.openxmlformats-package.relationships+xml
    -# application/vnd.quobject-quoxdocument
    -# application/vnd.osa.netdeploy
    -application/vnd.osgeo.mapguide.package		mgp
    -# application/vnd.osgi.bundle
    -application/vnd.osgi.dp				dp
    -application/vnd.osgi.subsystem			esa
    -# application/vnd.otps.ct-kip+xml
    -application/vnd.palm				pdb pqa oprc
    -# application/vnd.paos.xml
    -application/vnd.pawaafile			paw
    -application/vnd.pg.format			str
    -application/vnd.pg.osasli			ei6
    -# application/vnd.piaccess.application-licence
    -application/vnd.picsel				efif
    -application/vnd.pmi.widget			wg
    -# application/vnd.poc.group-advertisement+xml
    -application/vnd.pocketlearn			plf
    -application/vnd.powerbuilder6			pbd
    -# application/vnd.powerbuilder6-s
    -# application/vnd.powerbuilder7
    -# application/vnd.powerbuilder7-s
    -# application/vnd.powerbuilder75
    -# application/vnd.powerbuilder75-s
    -# application/vnd.preminet
    -application/vnd.previewsystems.box		box
    -application/vnd.proteus.magazine		mgz
    -application/vnd.publishare-delta-tree		qps
    -application/vnd.pvi.ptid1			ptid
    -# application/vnd.pwg-multiplexed
    -# application/vnd.pwg-xhtml-print+xml
    -# application/vnd.qualcomm.brew-app-res
    -application/vnd.quark.quarkxpress		qxd qxt qwd qwt qxl qxb
    -# application/vnd.radisys.moml+xml
    -# application/vnd.radisys.msml+xml
    -# application/vnd.radisys.msml-audit+xml
    -# application/vnd.radisys.msml-audit-conf+xml
    -# application/vnd.radisys.msml-audit-conn+xml
    -# application/vnd.radisys.msml-audit-dialog+xml
    -# application/vnd.radisys.msml-audit-stream+xml
    -# application/vnd.radisys.msml-conf+xml
    -# application/vnd.radisys.msml-dialog+xml
    -# application/vnd.radisys.msml-dialog-base+xml
    -# application/vnd.radisys.msml-dialog-fax-detect+xml
    -# application/vnd.radisys.msml-dialog-fax-sendrecv+xml
    -# application/vnd.radisys.msml-dialog-group+xml
    -# application/vnd.radisys.msml-dialog-speech+xml
    -# application/vnd.radisys.msml-dialog-transform+xml
    -# application/vnd.rainstor.data
    -# application/vnd.rapid
    -application/vnd.realvnc.bed			bed
    -application/vnd.recordare.musicxml		mxl
    -application/vnd.recordare.musicxml+xml		musicxml
    -# application/vnd.renlearn.rlprint
    -application/vnd.rig.cryptonote			cryptonote
    -application/vnd.rim.cod				cod
    -application/vnd.rn-realmedia			rm
    -application/vnd.rn-realmedia-vbr		rmvb
    -application/vnd.route66.link66+xml		link66
    -# application/vnd.rs-274x
    -# application/vnd.ruckus.download
    -# application/vnd.s3sms
    -application/vnd.sailingtracker.track		st
    -# application/vnd.sbm.cid
    -# application/vnd.sbm.mid2
    -# application/vnd.scribus
    -# application/vnd.sealed.3df
    -# application/vnd.sealed.csf
    -# application/vnd.sealed.doc
    -# application/vnd.sealed.eml
    -# application/vnd.sealed.mht
    -# application/vnd.sealed.net
    -# application/vnd.sealed.ppt
    -# application/vnd.sealed.tiff
    -# application/vnd.sealed.xls
    -# application/vnd.sealedmedia.softseal.html
    -# application/vnd.sealedmedia.softseal.pdf
    -application/vnd.seemail				see
    -application/vnd.sema				sema
    -application/vnd.semd				semd
    -application/vnd.semf				semf
    -application/vnd.shana.informed.formdata		ifm
    -application/vnd.shana.informed.formtemplate	itp
    -application/vnd.shana.informed.interchange	iif
    -application/vnd.shana.informed.package		ipk
    -application/vnd.simtech-mindmapper		twd twds
    -application/vnd.smaf				mmf
    -# application/vnd.smart.notebook
    -application/vnd.smart.teacher			teacher
    -# application/vnd.software602.filler.form+xml
    -# application/vnd.software602.filler.form-xml-zip
    -application/vnd.solent.sdkm+xml			sdkm sdkd
    -application/vnd.spotfire.dxp			dxp
    -application/vnd.spotfire.sfs			sfs
    -# application/vnd.sss-cod
    -# application/vnd.sss-dtf
    -# application/vnd.sss-ntf
    -application/vnd.stardivision.calc		sdc
    -application/vnd.stardivision.draw		sda
    -application/vnd.stardivision.impress		sdd
    -application/vnd.stardivision.math		smf
    -application/vnd.stardivision.writer		sdw vor
    -application/vnd.stardivision.writer-global	sgl
    -application/vnd.stepmania.package		smzip
    -application/vnd.stepmania.stepchart		sm
    -# application/vnd.street-stream
    -application/vnd.sun.xml.calc			sxc
    -application/vnd.sun.xml.calc.template		stc
    -application/vnd.sun.xml.draw			sxd
    -application/vnd.sun.xml.draw.template		std
    -application/vnd.sun.xml.impress			sxi
    -application/vnd.sun.xml.impress.template	sti
    -application/vnd.sun.xml.math			sxm
    -application/vnd.sun.xml.writer			sxw
    -application/vnd.sun.xml.writer.global		sxg
    -application/vnd.sun.xml.writer.template		stw
    -# application/vnd.sun.wadl+xml
    -application/vnd.sus-calendar			sus susp
    -application/vnd.svd				svd
    -# application/vnd.swiftview-ics
    -application/vnd.symbian.install			sis sisx
    -application/vnd.syncml+xml			xsm
    -application/vnd.syncml.dm+wbxml			bdm
    -application/vnd.syncml.dm+xml			xdm
    -# application/vnd.syncml.dm.notification
    -# application/vnd.syncml.ds.notification
    -application/vnd.tao.intent-module-archive	tao
    -application/vnd.tcpdump.pcap			pcap cap dmp
    -application/vnd.tmobile-livetv			tmo
    -application/vnd.trid.tpt			tpt
    -application/vnd.triscape.mxs			mxs
    -application/vnd.trueapp				tra
    -# application/vnd.truedoc
    -# application/vnd.ubisoft.webplayer
    -application/vnd.ufdl				ufd ufdl
    -application/vnd.uiq.theme			utz
    -application/vnd.umajin				umj
    -application/vnd.unity				unityweb
    -application/vnd.uoml+xml			uoml
    -# application/vnd.uplanet.alert
    -# application/vnd.uplanet.alert-wbxml
    -# application/vnd.uplanet.bearer-choice
    -# application/vnd.uplanet.bearer-choice-wbxml
    -# application/vnd.uplanet.cacheop
    -# application/vnd.uplanet.cacheop-wbxml
    -# application/vnd.uplanet.channel
    -# application/vnd.uplanet.channel-wbxml
    -# application/vnd.uplanet.list
    -# application/vnd.uplanet.list-wbxml
    -# application/vnd.uplanet.listcmd
    -# application/vnd.uplanet.listcmd-wbxml
    -# application/vnd.uplanet.signal
    -application/vnd.vcx				vcx
    -# application/vnd.vd-study
    -# application/vnd.vectorworks
    -# application/vnd.verimatrix.vcas
    -# application/vnd.vidsoft.vidconference
    -application/vnd.visio				vsd vst vss vsw
    -application/vnd.visionary			vis
    -# application/vnd.vividence.scriptfile
    -application/vnd.vsf				vsf
    -# application/vnd.wap.sic
    -# application/vnd.wap.slc
    -application/vnd.wap.wbxml			wbxml
    -application/vnd.wap.wmlc			wmlc
    -application/vnd.wap.wmlscriptc			wmlsc
    -application/vnd.webturbo			wtb
    -# application/vnd.wfa.wsc
    -# application/vnd.wmc
    -# application/vnd.wmf.bootstrap
    -# application/vnd.wolfram.mathematica
    -# application/vnd.wolfram.mathematica.package
    -application/vnd.wolfram.player			nbp
    -application/vnd.wordperfect			wpd
    -application/vnd.wqd				wqd
    -# application/vnd.wrq-hp3000-labelled
    -application/vnd.wt.stf				stf
    -# application/vnd.wv.csp+wbxml
    -# application/vnd.wv.csp+xml
    -# application/vnd.wv.ssp+xml
    -application/vnd.xara				xar
    -application/vnd.xfdl				xfdl
    -# application/vnd.xfdl.webform
    -# application/vnd.xmi+xml
    -# application/vnd.xmpie.cpkg
    -# application/vnd.xmpie.dpkg
    -# application/vnd.xmpie.plan
    -# application/vnd.xmpie.ppkg
    -# application/vnd.xmpie.xlim
    -application/vnd.yamaha.hv-dic			hvd
    -application/vnd.yamaha.hv-script		hvs
    -application/vnd.yamaha.hv-voice			hvp
    -application/vnd.yamaha.openscoreformat			osf
    -application/vnd.yamaha.openscoreformat.osfpvg+xml	osfpvg
    -# application/vnd.yamaha.remote-setup
    -application/vnd.yamaha.smaf-audio		saf
    -application/vnd.yamaha.smaf-phrase		spf
    -# application/vnd.yamaha.through-ngn
    -# application/vnd.yamaha.tunnel-udpencap
    -application/vnd.yellowriver-custom-menu		cmp
    -application/vnd.zul				zir zirz
    -application/vnd.zzazz.deck+xml			zaz
    -application/voicexml+xml			vxml
    -# application/vq-rtcpxr
    -# application/watcherinfo+xml
    -# application/whoispp-query
    -# application/whoispp-response
    -application/widget				wgt
    -application/winhlp				hlp
    -# application/wita
    -# application/wordperfect5.1
    -application/wsdl+xml				wsdl
    -application/wspolicy+xml			wspolicy
    -application/x-7z-compressed			7z
    -application/x-abiword				abw
    -application/x-ace-compressed			ace
    -# application/x-amf
    -application/x-apple-diskimage			dmg
    -application/x-authorware-bin			aab x32 u32 vox
    -application/x-authorware-map			aam
    -application/x-authorware-seg			aas
    -application/x-bcpio				bcpio
    -application/x-bittorrent			torrent
    -application/x-blorb				blb blorb
    -application/x-bzip				bz
    -application/x-bzip2				bz2 boz
    -application/x-cbr				cbr cba cbt cbz cb7
    -application/x-cdlink				vcd
    -application/x-cfs-compressed			cfs
    -application/x-chat				chat
    -application/x-chess-pgn				pgn
    -application/x-conference			nsc
    -# application/x-compress
    -application/x-cpio				cpio
    -application/x-csh				csh
    -application/x-debian-package			deb udeb
    -application/x-dgc-compressed			dgc
    -application/x-director			dir dcr dxr cst cct cxt w3d fgd swa
    -application/x-doom				wad
    -application/x-dtbncx+xml			ncx
    -application/x-dtbook+xml			dtb
    -application/x-dtbresource+xml			res
    -application/x-dvi				dvi
    -application/x-envoy				evy
    -application/x-eva				eva
    -application/x-font-bdf				bdf
    -# application/x-font-dos
    -# application/x-font-framemaker
    -application/x-font-ghostscript			gsf
    -# application/x-font-libgrx
    -application/x-font-linux-psf			psf
    -application/x-font-otf				otf
    -application/x-font-pcf				pcf
    -application/x-font-snf				snf
    -# application/x-font-speedo
    -# application/x-font-sunos-news
    -application/x-font-ttf				ttf ttc
    -application/x-font-type1			pfa pfb pfm afm
    -application/font-woff				woff
    -# application/x-font-vfont
    -application/x-freearc				arc
    -application/x-futuresplash			spl
    -application/x-gca-compressed			gca
    -application/x-glulx				ulx
    -application/x-gnumeric				gnumeric
    -application/x-gramps-xml			gramps
    -application/x-gtar				gtar
    -# application/x-gzip
    -application/x-hdf				hdf
    -application/x-install-instructions		install
    -application/x-iso9660-image			iso
    -application/x-java-jnlp-file			jnlp
    -application/x-latex				latex
    -application/x-lzh-compressed			lzh lha
    -application/x-mie				mie
    -application/x-mobipocket-ebook			prc mobi
    -application/x-ms-application			application
    -application/x-ms-shortcut			lnk
    -application/x-ms-wmd				wmd
    -application/x-ms-wmz				wmz
    -application/x-ms-xbap				xbap
    -application/x-msaccess				mdb
    -application/x-msbinder				obd
    -application/x-mscardfile			crd
    -application/x-msclip				clp
    -application/x-msdownload			exe dll com bat msi
    -application/x-msmediaview			mvb m13 m14
    -application/x-msmetafile			wmf wmz emf emz
    -application/x-msmoney				mny
    -application/x-mspublisher			pub
    -application/x-msschedule			scd
    -application/x-msterminal			trm
    -application/x-mswrite				wri
    -application/x-netcdf				nc cdf
    -application/x-nzb				nzb
    -application/x-pkcs12				p12 pfx
    -application/x-pkcs7-certificates		p7b spc
    -application/x-pkcs7-certreqresp			p7r
    -application/x-rar-compressed			rar
    -application/x-research-info-systems		ris
    -application/x-sh				sh
    -application/x-shar				shar
    -application/x-shockwave-flash			swf
    -application/x-silverlight-app			xap
    -application/x-sql				sql
    -application/x-stuffit				sit
    -application/x-stuffitx				sitx
    -application/x-subrip				srt
    -application/x-sv4cpio				sv4cpio
    -application/x-sv4crc				sv4crc
    -application/x-t3vm-image			t3
    -application/x-tads				gam
    -application/x-tar				tar
    -application/x-tcl				tcl
    -application/x-tex				tex
    -application/x-tex-tfm				tfm
    -application/x-texinfo				texinfo texi
    -application/x-tgif				obj
    -application/x-ustar				ustar
    -application/x-wais-source			src
    -application/x-x509-ca-cert			der crt
    -application/x-xfig				fig
    -application/x-xliff+xml				xlf
    -application/x-xpinstall				xpi
    -application/x-xz				xz
    -application/x-zmachine				z1 z2 z3 z4 z5 z6 z7 z8
    -# application/x400-bp
    -application/xaml+xml				xaml
    -# application/xcap-att+xml
    -# application/xcap-caps+xml
    -application/xcap-diff+xml			xdf
    -# application/xcap-el+xml
    -# application/xcap-error+xml
    -# application/xcap-ns+xml
    -# application/xcon-conference-info-diff+xml
    -# application/xcon-conference-info+xml
    -application/xenc+xml				xenc
    -application/xhtml+xml				xhtml xht
    -# application/xhtml-voice+xml
    -application/xml					xml xsl
    -application/xml-dtd				dtd
    -# application/xml-external-parsed-entity
    -# application/xmpp+xml
    -application/xop+xml				xop
    -application/xproc+xml				xpl
    -application/xslt+xml				xslt
    -application/xspf+xml				xspf
    -application/xv+xml				mxml xhvml xvml xvm
    -application/yang				yang
    -application/yin+xml				yin
    -application/zip					zip
    -# audio/1d-interleaved-parityfec
    -# audio/32kadpcm
    -# audio/3gpp
    -# audio/3gpp2
    -# audio/ac3
    -audio/adpcm					adp
    -# audio/amr
    -# audio/amr-wb
    -# audio/amr-wb+
    -# audio/asc
    -# audio/atrac-advanced-lossless
    -# audio/atrac-x
    -# audio/atrac3
    -audio/basic					au snd
    -# audio/bv16
    -# audio/bv32
    -# audio/clearmode
    -# audio/cn
    -# audio/dat12
    -# audio/dls
    -# audio/dsr-es201108
    -# audio/dsr-es202050
    -# audio/dsr-es202211
    -# audio/dsr-es202212
    -# audio/dv
    -# audio/dvi4
    -# audio/eac3
    -# audio/evrc
    -# audio/evrc-qcp
    -# audio/evrc0
    -# audio/evrc1
    -# audio/evrcb
    -# audio/evrcb0
    -# audio/evrcb1
    -# audio/evrcwb
    -# audio/evrcwb0
    -# audio/evrcwb1
    -# audio/example
    -# audio/fwdred
    -# audio/g719
    -# audio/g722
    -# audio/g7221
    -# audio/g723
    -# audio/g726-16
    -# audio/g726-24
    -# audio/g726-32
    -# audio/g726-40
    -# audio/g728
    -# audio/g729
    -# audio/g7291
    -# audio/g729d
    -# audio/g729e
    -# audio/gsm
    -# audio/gsm-efr
    -# audio/gsm-hr-08
    -# audio/ilbc
    -# audio/ip-mr_v2.5
    -# audio/isac
    -# audio/l16
    -# audio/l20
    -# audio/l24
    -# audio/l8
    -# audio/lpc
    -audio/midi					mid midi kar rmi
    -# audio/mobile-xmf
    -audio/mp4					mp4a
    -# audio/mp4a-latm
    -# audio/mpa
    -# audio/mpa-robust
    -audio/mpeg					mpga mp2 mp2a mp3 m2a m3a
    -# audio/mpeg4-generic
    -# audio/musepack
    -audio/ogg					oga ogg spx
    -# audio/opus
    -# audio/parityfec
    -# audio/pcma
    -# audio/pcma-wb
    -# audio/pcmu-wb
    -# audio/pcmu
    -# audio/prs.sid
    -# audio/qcelp
    -# audio/red
    -# audio/rtp-enc-aescm128
    -# audio/rtp-midi
    -# audio/rtx
    -audio/s3m					s3m
    -audio/silk					sil
    -# audio/smv
    -# audio/smv0
    -# audio/smv-qcp
    -# audio/sp-midi
    -# audio/speex
    -# audio/t140c
    -# audio/t38
    -# audio/telephone-event
    -# audio/tone
    -# audio/uemclip
    -# audio/ulpfec
    -# audio/vdvi
    -# audio/vmr-wb
    -# audio/vnd.3gpp.iufp
    -# audio/vnd.4sb
    -# audio/vnd.audiokoz
    -# audio/vnd.celp
    -# audio/vnd.cisco.nse
    -# audio/vnd.cmles.radio-events
    -# audio/vnd.cns.anp1
    -# audio/vnd.cns.inf1
    -audio/vnd.dece.audio				uva uvva
    -audio/vnd.digital-winds				eol
    -# audio/vnd.dlna.adts
    -# audio/vnd.dolby.heaac.1
    -# audio/vnd.dolby.heaac.2
    -# audio/vnd.dolby.mlp
    -# audio/vnd.dolby.mps
    -# audio/vnd.dolby.pl2
    -# audio/vnd.dolby.pl2x
    -# audio/vnd.dolby.pl2z
    -# audio/vnd.dolby.pulse.1
    -audio/vnd.dra					dra
    -audio/vnd.dts					dts
    -audio/vnd.dts.hd				dtshd
    -# audio/vnd.dvb.file
    -# audio/vnd.everad.plj
    -# audio/vnd.hns.audio
    -audio/vnd.lucent.voice				lvp
    -audio/vnd.ms-playready.media.pya		pya
    -# audio/vnd.nokia.mobile-xmf
    -# audio/vnd.nortel.vbk
    -audio/vnd.nuera.ecelp4800			ecelp4800
    -audio/vnd.nuera.ecelp7470			ecelp7470
    -audio/vnd.nuera.ecelp9600			ecelp9600
    -# audio/vnd.octel.sbc
    -# audio/vnd.qcelp
    -# audio/vnd.rhetorex.32kadpcm
    -audio/vnd.rip					rip
    -# audio/vnd.sealedmedia.softseal.mpeg
    -# audio/vnd.vmx.cvsd
    -# audio/vorbis
    -# audio/vorbis-config
    -audio/webm					weba
    -audio/x-aac					aac
    -audio/x-aiff					aif aiff aifc
    -audio/x-caf					caf
    -audio/x-flac					flac
    -audio/x-matroska				mka
    -audio/x-mpegurl					m3u
    -audio/x-ms-wax					wax
    -audio/x-ms-wma					wma
    -audio/x-pn-realaudio				ram ra
    -audio/x-pn-realaudio-plugin			rmp
    -# audio/x-tta
    -audio/x-wav					wav
    -audio/xm					xm
    -chemical/x-cdx					cdx
    -chemical/x-cif					cif
    -chemical/x-cmdf					cmdf
    -chemical/x-cml					cml
    -chemical/x-csml					csml
    -# chemical/x-pdb
    -chemical/x-xyz					xyz
    -image/bmp					bmp
    -image/cgm					cgm
    -# image/example
    -# image/fits
    -image/g3fax					g3
    -image/gif					gif
    -image/ief					ief
    -# image/jp2
    -image/jpeg					jpeg jpg jpe
    -# image/jpm
    -# image/jpx
    -image/ktx					ktx
    -# image/naplps
    -image/png					png
    -image/prs.btif					btif
    -# image/prs.pti
    -image/sgi					sgi
    -image/svg+xml					svg svgz
    -# image/t38
    -image/tiff					tiff tif
    -# image/tiff-fx
    -image/vnd.adobe.photoshop			psd
    -# image/vnd.cns.inf2
    -image/vnd.dece.graphic				uvi uvvi uvg uvvg
    -image/vnd.dvb.subtitle				sub
    -image/vnd.djvu					djvu djv
    -image/vnd.dwg					dwg
    -image/vnd.dxf					dxf
    -image/vnd.fastbidsheet				fbs
    -image/vnd.fpx					fpx
    -image/vnd.fst					fst
    -image/vnd.fujixerox.edmics-mmr			mmr
    -image/vnd.fujixerox.edmics-rlc			rlc
    -# image/vnd.globalgraphics.pgb
    -# image/vnd.microsoft.icon
    -# image/vnd.mix
    -image/vnd.ms-modi				mdi
    -image/vnd.ms-photo				wdp
    -image/vnd.net-fpx				npx
    -# image/vnd.radiance
    -# image/vnd.sealed.png
    -# image/vnd.sealedmedia.softseal.gif
    -# image/vnd.sealedmedia.softseal.jpg
    -# image/vnd.svf
    -image/vnd.wap.wbmp				wbmp
    -image/vnd.xiff					xif
    -image/webp					webp
    -image/x-3ds					3ds
    -image/x-cmu-raster				ras
    -image/x-cmx					cmx
    -image/x-freehand				fh fhc fh4 fh5 fh7
    -image/x-icon					ico
    -image/x-mrsid-image				sid
    -image/x-pcx					pcx
    -image/x-pict					pic pct
    -image/x-portable-anymap				pnm
    -image/x-portable-bitmap				pbm
    -image/x-portable-graymap			pgm
    -image/x-portable-pixmap				ppm
    -image/x-rgb					rgb
    -image/x-tga					tga
    -image/x-xbitmap					xbm
    -image/x-xpixmap					xpm
    -image/x-xwindowdump				xwd
    -# message/cpim
    -# message/delivery-status
    -# message/disposition-notification
    -# message/example
    -# message/external-body
    -# message/feedback-report
    -# message/global
    -# message/global-delivery-status
    -# message/global-disposition-notification
    -# message/global-headers
    -# message/http
    -# message/imdn+xml
    -# message/news
    -# message/partial
    -message/rfc822					eml mime
    -# message/s-http
    -# message/sip
    -# message/sipfrag
    -# message/tracking-status
    -# message/vnd.si.simp
    -# model/example
    -model/iges					igs iges
    -model/mesh					msh mesh silo
    -model/vnd.collada+xml				dae
    -model/vnd.dwf					dwf
    -# model/vnd.flatland.3dml
    -model/vnd.gdl					gdl
    -# model/vnd.gs-gdl
    -# model/vnd.gs.gdl
    -model/vnd.gtw					gtw
    -# model/vnd.moml+xml
    -model/vnd.mts					mts
    -# model/vnd.parasolid.transmit.binary
    -# model/vnd.parasolid.transmit.text
    -model/vnd.vtu					vtu
    -model/vrml					wrl vrml
    -model/x3d+binary				x3db x3dbz
    -model/x3d+vrml					x3dv x3dvz
    -model/x3d+xml					x3d x3dz
    -# multipart/alternative
    -# multipart/appledouble
    -# multipart/byteranges
    -# multipart/digest
    -# multipart/encrypted
    -# multipart/example
    -# multipart/form-data
    -# multipart/header-set
    -# multipart/mixed
    -# multipart/parallel
    -# multipart/related
    -# multipart/report
    -# multipart/signed
    -# multipart/voice-message
    -# text/1d-interleaved-parityfec
    -text/cache-manifest				appcache
    -text/calendar					ics ifb
    -text/css					css
    -text/csv					csv
    -# text/directory
    -# text/dns
    -# text/ecmascript
    -# text/enriched
    -# text/example
    -# text/fwdred
    -text/html					html htm
    -# text/javascript
    -text/n3						n3
    -# text/parityfec
    -text/plain					txt text conf def list log in
    -# text/prs.fallenstein.rst
    -text/prs.lines.tag				dsc
    -# text/vnd.radisys.msml-basic-layout
    -# text/red
    -# text/rfc822-headers
    -text/richtext					rtx
    -# text/rtf
    -# text/rtp-enc-aescm128
    -# text/rtx
    -text/sgml					sgml sgm
    -# text/t140
    -text/tab-separated-values			tsv
    -text/troff					t tr roff man me ms
    -text/turtle					ttl
    -# text/ulpfec
    -text/uri-list					uri uris urls
    -text/vcard					vcard
    -# text/vnd.abc
    -text/vnd.curl					curl
    -text/vnd.curl.dcurl				dcurl
    -text/vnd.curl.scurl				scurl
    -text/vnd.curl.mcurl				mcurl
    -# text/vnd.dmclientscript
    -text/vnd.dvb.subtitle				sub
    -# text/vnd.esmertec.theme-descriptor
    -text/vnd.fly					fly
    -text/vnd.fmi.flexstor				flx
    -text/vnd.graphviz				gv
    -text/vnd.in3d.3dml				3dml
    -text/vnd.in3d.spot				spot
    -# text/vnd.iptc.newsml
    -# text/vnd.iptc.nitf
    -# text/vnd.latex-z
    -# text/vnd.motorola.reflex
    -# text/vnd.ms-mediapackage
    -# text/vnd.net2phone.commcenter.command
    -# text/vnd.si.uricatalogue
    -text/vnd.sun.j2me.app-descriptor		jad
    -# text/vnd.trolltech.linguist
    -# text/vnd.wap.si
    -# text/vnd.wap.sl
    -text/vnd.wap.wml				wml
    -text/vnd.wap.wmlscript				wmls
    -text/x-asm					s asm
    -text/x-c					c cc cxx cpp h hh dic
    -text/x-fortran					f for f77 f90
    -text/x-java-source				java
    -text/x-opml					opml
    -text/x-pascal					p pas
    -text/x-nfo					nfo
    -text/x-setext					etx
    -text/x-sfv					sfv
    -text/x-uuencode					uu
    -text/x-vcalendar				vcs
    -text/x-vcard					vcf
    -# text/xml
    -# text/xml-external-parsed-entity
    -# video/1d-interleaved-parityfec
    -video/3gpp					3gp
    -# video/3gpp-tt
    -video/3gpp2					3g2
    -# video/bmpeg
    -# video/bt656
    -# video/celb
    -# video/dv
    -# video/example
    -video/h261					h261
    -video/h263					h263
    -# video/h263-1998
    -# video/h263-2000
    -video/h264					h264
    -# video/h264-rcdo
    -# video/h264-svc
    -video/jpeg					jpgv
    -# video/jpeg2000
    -video/jpm					jpm jpgm
    -video/mj2					mj2 mjp2
    -# video/mp1s
    -# video/mp2p
    -# video/mp2t
    -video/mp4					mp4 mp4v mpg4
    -# video/mp4v-es
    -video/mpeg					mpeg mpg mpe m1v m2v
    -# video/mpeg4-generic
    -# video/mpv
    -# video/nv
    -video/ogg					ogv
    -# video/parityfec
    -# video/pointer
    -video/quicktime					qt mov
    -# video/raw
    -# video/rtp-enc-aescm128
    -# video/rtx
    -# video/smpte292m
    -# video/ulpfec
    -# video/vc1
    -# video/vnd.cctv
    -video/vnd.dece.hd				uvh uvvh
    -video/vnd.dece.mobile				uvm uvvm
    -# video/vnd.dece.mp4
    -video/vnd.dece.pd				uvp uvvp
    -video/vnd.dece.sd				uvs uvvs
    -video/vnd.dece.video				uvv uvvv
    -# video/vnd.directv.mpeg
    -# video/vnd.directv.mpeg-tts
    -# video/vnd.dlna.mpeg-tts
    -video/vnd.dvb.file				dvb
    -video/vnd.fvt					fvt
    -# video/vnd.hns.video
    -# video/vnd.iptvforum.1dparityfec-1010
    -# video/vnd.iptvforum.1dparityfec-2005
    -# video/vnd.iptvforum.2dparityfec-1010
    -# video/vnd.iptvforum.2dparityfec-2005
    -# video/vnd.iptvforum.ttsavc
    -# video/vnd.iptvforum.ttsmpeg2
    -# video/vnd.motorola.video
    -# video/vnd.motorola.videop
    -video/vnd.mpegurl				mxu m4u
    -video/vnd.ms-playready.media.pyv		pyv
    -# video/vnd.nokia.interleaved-multimedia
    -# video/vnd.nokia.videovoip
    -# video/vnd.objectvideo
    -# video/vnd.sealed.mpeg1
    -# video/vnd.sealed.mpeg4
    -# video/vnd.sealed.swf
    -# video/vnd.sealedmedia.softseal.mov
    -video/vnd.uvvu.mp4				uvu uvvu
    -video/vnd.vivo					viv
    -video/webm					webm
    -video/x-f4v					f4v
    -video/x-fli					fli
    -video/x-flv					flv
    -video/x-m4v					m4v
    -video/x-matroska				mkv mk3d mks
    -video/x-mng					mng
    -video/x-ms-asf					asf asx
    -video/x-ms-vob					vob
    -video/x-ms-wm					wm
    -video/x-ms-wmv					wmv
    -video/x-ms-wmx					wmx
    -video/x-ms-wvx					wvx
    -video/x-msvideo					avi
    -video/x-sgi-movie				movie
    -video/x-smv					smv
    -x-conference/x-cooltalk				ice
    
  • conf/rayo/sip_profiles/external/example.xml+0 38 removed
    @@ -1,38 +0,0 @@
    -<include>
    -  <!--<gateway name="asterlink.com">-->
    -  <!--/// account username *required* ///-->
    -  <!--<param name="username" value="cluecon"/>-->
    -  <!--/// auth realm: *optional* same as gateway name, if blank ///-->
    -  <!--<param name="realm" value="asterlink.com"/>-->
    -  <!--/// username to use in from: *optional* same as  username, if blank ///-->
    -  <!--<param name="from-user" value="cluecon"/>-->
    -  <!--/// domain to use in from: *optional* same as  realm, if blank ///-->
    -  <!--<param name="from-domain" value="asterlink.com"/>-->
    -  <!--/// account password *required* ///-->
    -  <!--<param name="password" value="2007"/>-->
    -  <!--/// extension for inbound calls: *optional* same as username, if blank ///-->
    -  <!--<param name="extension" value="cluecon"/>-->
    -  <!--/// proxy host: *optional* same as realm, if blank ///-->
    -  <!--<param name="proxy" value="asterlink.com"/>-->
    -  <!--/// send register to this proxy: *optional* same as proxy, if blank ///-->
    -  <!--<param name="register-proxy" value="mysbc.com"/>-->
    -  <!--/// expire in seconds: *optional* 3600, if blank ///-->
    -  <!--<param name="expire-seconds" value="60"/>-->
    -  <!--/// do not register ///-->
    -  <!--<param name="register" value="false"/>-->
    -  <!-- which transport to use for register -->
    -  <!--<param name="register-transport" value="udp"/>-->
    -  <!--How many seconds before a retry when a failure or timeout occurs -->
    -  <!--<param name="retry-seconds" value="30"/>-->
    -  <!--Use the callerid of an inbound call in the from field on outbound calls via this gateway -->
    -  <!--<param name="caller-id-in-from" value="false"/>-->
    -  <!--extra sip params to send in the contact-->
    -  <!--<param name="contact-params" value=""/>-->
    -  <!--send an options ping every x seconds, failure will unregister and/or mark it down-->
    -  <!--<param name="ping" value="25"/>-->
    -  <!--</gateway>-->
    -  <!--rfc5626 : Abilitazione rfc5626 ///-->
    -  <!--<param name="rfc-5626" value="true"/>-->
    -  <!--rfc5626 : extra sip params to send in the contact-->
    -  <!--<param name="reg-id" value="1"/>-->
    -</include>
    
  • conf/rayo/sip_profiles/external.xml+0 95 removed
    @@ -1,95 +0,0 @@
    -<profile name="external">
    -  <!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files -->
    -  <!-- This profile is only for outbound registrations to providers -->
    -  <gateways>
    -    <X-PRE-PROCESS cmd="include" data="external/*.xml"/>
    -  </gateways>
    -
    -  <aliases>
    -    <!--
    -        <alias name="outbound"/>
    -        <alias name="nat"/>
    -    -->
    -  </aliases>
    -
    -  <domains>
    -    <domain name="all" alias="false" parse="true"/>
    -  </domains>
    -
    -  <settings>
    -    <param name="debug" value="0"/>
    -    <!-- If you want FreeSWITCH to shutdown if this profile fails to load, uncomment the next line. -->
    -    <!-- <param name="shutdown-on-fail" value="true"/> -->
    -    <param name="sip-trace" value="no"/>
    -    <param name="sip-capture" value="no"/>
    -    <param name="rfc2833-pt" value="101"/>
    -    <!-- RFC 5626 : Send reg-id and sip.instance -->
    -    <!--<param name="enable-rfc-5626" value="true"/> -->
    -    <param name="sip-port" value="$${external_sip_port}"/>
    -    <param name="dialplan" value="XML"/>
    -    <param name="context" value="public"/>
    -    <param name="dtmf-duration" value="2000"/>
    -    <param name="inbound-codec-prefs" value="$${global_codec_prefs}"/>
    -    <param name="outbound-codec-prefs" value="$${outbound_codec_prefs}"/>
    -    <param name="hold-music" value="$${hold_music}"/>
    -    <param name="rtp-timer-name" value="soft"/>
    -    <!--<param name="enable-100rel" value="true"/>-->
    -    <!--<param name="disable-srv503" value="true"/>-->
    -    <!-- This could be set to "passive" -->
    -    <param name="local-network-acl" value="localnet.auto"/>
    -    <param name="manage-presence" value="false"/>
    -
    -    <!-- used to share presence info across sofia profiles
    -         manage-presence needs to be set to passive on this profile
    -         if you want it to behave as if it were the internal profile
    -         for presence.
    -    -->
    -    <!-- Name of the db to use for this profile -->
    -    <!--<param name="dbname" value="share_presence"/>-->
    -    <!--<param name="presence-hosts" value="$${domain}"/>-->
    -    <!--<param name="force-register-domain" value="$${domain}"/>-->
    -    <!--all inbound reg will stored in the db using this domain -->
    -    <!--<param name="force-register-db-domain" value="$${domain}"/>-->
    -    <!-- ************************************************* -->
    -
    -    <!--<param name="aggressive-nat-detection" value="true"/>-->
    -    <param name="inbound-codec-negotiation" value="generous"/>
    -    <param name="nonce-ttl" value="60"/>
    -    <param name="auth-calls" value="$${external_auth_calls}"/>
    -    <param name="inbound-late-negotiation" value="true"/>
    -    <!--
    -        DO NOT USE HOSTNAMES, ONLY IP ADDRESSES IN THESE SETTINGS!
    -    -->
    -    <param name="rtp-ip" value="$${external_rtp_ip}"/>
    -    <param name="sip-ip" value="$${external_sip_ip}"/>
    -    <param name="ext-rtp-ip" value="auto-nat"/>
    -    <param name="ext-sip-ip" value="auto-nat"/>
    -    <param name="rtp-timeout-sec" value="300"/>
    -    <param name="rtp-hold-timeout-sec" value="1800"/>
    -    <!--<param name="enable-3pcc" value="true"/>-->
    -
    -    <!-- TLS: disabled by default, set to "true" to enable -->
    -    <param name="tls" value="$${external_ssl_enable}"/>
    -    <!-- Set to true to not bind on the normal sip-port but only on the TLS port -->
    -    <param name="tls-only" value="false"/>
    -    <!-- additional bind parameters for TLS -->
    -    <param name="tls-bind-params" value="transport=tls"/>
    -    <!-- Port to listen on for TLS requests. (5081 will be used if unspecified) -->
    -    <param name="tls-sip-port" value="$${external_tls_port}"/>
    -    <!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) -->
    -    <param name="tls-cert-dir" value="$${external_ssl_dir}"/>
    -    <!-- Optionally set the passphrase password used by openSSL to encrypt/decrypt TLS private key files -->
    -    <param name="tls-passphrase" value=""/>
    -    <!-- Verify the date on TLS certificates -->
    -    <param name="tls-verify-date" value="true"/>
    -    <!-- TLS verify policy, when registering/inviting gateways with other servers (outbound) or handling inbound registration/invite requests how should we verify their certificate -->
    -    <!-- set to 'in' to only verify incoming connections, 'out' to only verify outgoing connections, 'all' to verify all connections, also 'subjects_in', 'subjects_out' and 'subjects_all' for subject validation. Multiple policies can be split with a '|' pipe -->
    -    <param name="tls-verify-policy" value="none"/>
    -    <!-- Certificate max verify depth to use for validating peer TLS certificates when the verify policy is not none -->
    -    <param name="tls-verify-depth" value="2"/>
    -    <!-- If the tls-verify-policy is set to subjects_all or subjects_in this sets which subjects are allowed, multiple subjects can be split with a '|' pipe -->
    -    <param name="tls-verify-in-subjects" value=""/>
    -    <!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 -->
    -    <param name="tls-version" value="$${sip_tls_version}"/>
    -  </settings>
    -</profile>
    
  • conf/rayo/vars.xml+0 68 removed
    @@ -1,68 +0,0 @@
    -<include>
    -  <X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/en/us/callie"/>
    -  <!--<Z-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/en/us/allison"/>-->
    -
    -  <!--
    -      This setting is what sets the default domain FreeSWITCH will use if all else fails.
    -      
    -      FreeSWICH will default to $${local_ip_v4} unless changed.  Changing this setting does 
    -      affect the sip authentication.  Please review conf/directory/default.xml for more
    -      information on this topic.
    -  -->
    -  <X-PRE-PROCESS cmd="set" data="domain=$${local_ip_v4}"/>
    -  <X-PRE-PROCESS cmd="set" data="domain_name=$${domain}"/>
    -  <X-PRE-PROCESS cmd="set" data="hold_music=local_stream://moh"/>
    -  <X-PRE-PROCESS cmd="set" data="use_profile=external"/>
    -
    -  <X-PRE-PROCESS cmd="set" data="global_codec_prefs=PCMU,PCMA"/>
    -  <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=PCMU,PCMA"/>
    -
    -  <!-- 
    -       THIS IS ONLY USED FOR DINGALING
    -
    -       bind_server_ip
    -
    -       Can be an ip address, a dns name, or "auto". 
    -       This determines an ip address available on this host to bind.
    -       If you are separating RTP and SIP traffic, you will want to have
    -       use different addresses where this variable appears.
    -       Used by: dingaling.conf.xml
    -  -->
    -  <X-PRE-PROCESS cmd="set" data="bind_server_ip=auto"/>
    -
    -  <!-- unroll-loops
    -       Used to turn on sip loopback unrolling.
    -  --> 
    -  <X-PRE-PROCESS cmd="set" data="unroll_loops=true"/>
    -
    -  <X-PRE-PROCESS cmd="set" data="outbound_caller_name=FreeSWITCH"/>
    -  <X-PRE-PROCESS cmd="set" data="outbound_caller_id=0000000000"/>
    -
    -  <!-- various debug and defaults -->
    -  <X-PRE-PROCESS cmd="set" data="call_debug=false"/>
    -  <X-PRE-PROCESS cmd="set" data="console_loglevel=info"/>
    -  <X-PRE-PROCESS cmd="set" data="default_areacode=617"/>
    -  <X-PRE-PROCESS cmd="set" data="default_country=US"/>
    -
    -  <!-- if false or undefined, the destination number is included in presence NOTIFY dm:note.
    -       if true, the destination number is not included -->
    -  <X-PRE-PROCESS cmd="set" data="presence_privacy=false"/>
    -
    -  <!--
    -      SIP and TLS settings. http://wiki.freeswitch.org/wiki/Tls
    -  -->
    -  <X-PRE-PROCESS cmd="set" data="sip_tls_version=tlsv1"/>
    -
    -  <!-- Rayo -->
    -  <X-PRE-PROCESS cmd="set" data="rayo_ip=$${local_ip_v4}"/>
    -  <X-PRE-PROCESS cmd="set" data="rayo_domain_name=$${rayo_ip}"/>
    -
    -  <!-- External SIP Profile -->
    -  <X-PRE-PROCESS cmd="set" data="external_rtp_ip=$${local_ip_v4}"/>
    -  <X-PRE-PROCESS cmd="set" data="external_sip_ip=$${local_ip_v4}"/>
    -  <X-PRE-PROCESS cmd="set" data="external_sip_port=5060"/>
    -  <X-PRE-PROCESS cmd="set" data="external_tls_port=5061"/>
    -  <X-PRE-PROCESS cmd="set" data="external_tls_enable=false"/>
    -  <X-PRE-PROCESS cmd="set" data="external_tls_dir=$${base_dir}/conf/ssl"/>
    -  <X-PRE-PROCESS cmd="set" data="external_auth_calls=false"/>
    -</include>
    
  • conf/sbc/autoload_configs/modules.conf.xml+0 1 modified
    @@ -42,7 +42,6 @@
         <load module="mod_g729"/>
         <load module="mod_amr"/>
         <!--<load module="mod_ilbc"/>-->
    -    <load module="mod_h26x"/>
         <!--<load module="mod_siren"/>-->
     
         <!-- Timers -->
    
  • conf/sbc/dialplan/default.xml+0 18 modified
    @@ -115,24 +115,6 @@
           </condition>
         </extension>
         -->
    -    <!--
    -	snom button demo, call 9000 to make button 2 mapped to transfer the current call to a conference
    -    -->
    -
    -    <extension name="snom-demo-2">
    -      <condition field="destination_number" expression="^9001$">
    -	<action application="eval" data="${snom_bind_key(2 off DND ${sip_from_user} ${sip_from_host} ${sofia_profile_name} message notused)}"/>
    -	<action application="transfer" data="3000"/>
    -      </condition>
    -    </extension>
    -    
    -    <extension name="snom-demo-1">
    -      <condition field="destination_number" expression="^9000$">
    -	<!--<key> <light> <label> <user> <host> <profile> <action_name> <action>-->
    -	<action application="eval" data="${snom_bind_key(2 on DND ${sip_from_user} ${sip_from_host} ${sofia_profile_name} message api+uuid_transfer ${uuid} 9001)}"/>
    -	<action application="playback" data="$${hold_music}"/>
    -      </condition>
    -    </extension>
     
         <extension name="eavesdrop">
           <condition field="destination_number" expression="^88(.*)$|^\*0(.*)$">
    
  • conf/sbc/vars.xml+0 8 modified
    @@ -58,14 +58,6 @@
            G723             - G723.1 in passthru mode. (mod_g723_1)
            AMR              - AMR in passthru mode. (mod_amr)
            
    -       These are the passthru video codecs: (mod_h26x)
    -       
    -       H261             - H.261 Video
    -       H263             - H.263 Video
    -       H263-1998        - H.263-1998 Video
    -       H263-2000        - H.263-2000 Video
    -       H264             - H.264 Video
    -
       -->
       <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"/>
    
  • conf/vanilla/autoload_configs/abstraction.conf.xml+0 5 removed
    @@ -1,5 +0,0 @@
    -<configuration name="abstraction.conf" description="Abstraction">
    -<apis>
    -	<api name="user_name" description="Return Name for extension" syntax="&lt;exten&gt;" parse="(.*)" destination="user_data" argument="$1@default var effective_caller_id_name"/>
    -</apis>
    -</configuration>
    
  • conf/vanilla/autoload_configs/cdr_mongodb.conf.xml+0 13 removed
    @@ -1,13 +0,0 @@
    -<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>
    
  • conf/vanilla/autoload_configs/cepstral.conf.xml+0 12 removed
    @@ -1,12 +0,0 @@
    -<configuration name="cepstral.conf" description="Cepstral TTS configuration">
    
    -  <settings>
    
    -    <!--
    
    -        Possible encodings:
    
    -        * utf-8
    
    -        * us-ascii
    
    -        * iso8859-1 (default)
    
    -        * iso8859-15
    
    -    -->
    
    -    <param name="encoding" value="utf-8"/>
    
    -  </settings>
    
    -</configuration>
    \ No newline at end of file
    
  • conf/vanilla/autoload_configs/modules.conf.xml+0 19 modified
    @@ -6,8 +6,6 @@
         <load module="mod_logfile"/>
         <!-- <load module="mod_syslog"/> -->
     
    -    <!--<load module="mod_yaml"/>-->
    -
         <!-- Multi-Faceted -->
         <!-- mod_enum is a dialplan interface, an application interface and an api command interface -->
         <load module="mod_enum"/>
    @@ -16,7 +14,6 @@
         <!-- <load module="mod_xml_rpc"/> -->
         <!-- <load module="mod_xml_curl"/> -->
         <!-- <load module="mod_xml_cdr"/> -->
    -    <!-- <load module="mod_xml_radius"/> -->
         <!-- <load module="mod_xml_scgi"/> -->
     
         <!-- Event Handlers -->
    @@ -25,7 +22,6 @@
         <!-- <load module="mod_cdr_sqlite"/> -->
         <!-- <load module="mod_event_multicast"/> -->
         <load module="mod_event_socket"/>
    -    <!-- <load module="mod_event_zmq"/> -->
         <!-- <load module="mod_zeroconf"/> -->
         <!-- <load module="mod_erlang_event"/> -->
         <!-- <load module="mod_smpp"/> -->
    @@ -36,15 +32,12 @@
     
         <!-- Endpoints -->
         <!-- <load module="mod_dingaling"/> -->
    -    <!-- <load module="mod_portaudio"/> -->
         <!-- <load module="mod_alsa"/> -->
         <load module="mod_sofia"/>
         <load module="mod_loopback"/>
         <!-- <load module="mod_woomera"/> -->
         <!-- <load module="mod_freetdm"/> -->
    -    <!-- <load module="mod_unicall"/> -->
         <!-- <load module="mod_skinny"/> -->
    -    <!-- <load module="mod_khomp"/>   -->
         <load module="mod_rtc"/>
         <!-- <load module="mod_rtmp"/>   -->
         <load module="mod_verto"/>
    @@ -72,18 +65,11 @@
         <!--<load module="mod_fsk"/>-->
         <!--<load module="mod_spy"/>-->
         <!--<load module="mod_sms"/>-->
    -    <!--<load module="mod_sms_flowroute"/>-->
         <!--<load module="mod_smpp"/>-->
         <!--<load module="mod_random"/>-->
         <load module="mod_httapi"/>
         <!--<load module="mod_translate"/>-->
     
    -    <!-- SNOM Module -->
    -    <!--<load module="mod_snom"/>-->
    -
    -    <!-- This one only works on Linux for now -->
    -    <!--<load module="mod_ladspa"/>-->
    -
         <!-- Dialplan Interfaces -->
         <!-- <load module="mod_dialplan_directory"/> -->
         <load module="mod_dialplan_xml"/>
    @@ -95,10 +81,8 @@
         <load module="mod_g729"/>
         <load module="mod_amr"/>
         <!--<load module="mod_ilbc"/>-->
    -    <!--<load module="mod_h26x"/>-->
         <load module="mod_b64"/>
         <!--<load module="mod_siren"/>-->
    -    <!--<load module="mod_isac"/>-->
         <load module="mod_opus"/>
     
         <!-- File Format Interfaces -->
    @@ -121,17 +105,14 @@
         <!-- Languages -->
         <!-- <load module="mod_v8"/> -->
         <!-- <load module="mod_perl"/> -->
    -    <!-- <load module="mod_python"/> -->
         <!-- <load module="mod_python3"/> -->
         <!-- <load module="mod_java"/> -->
         <load module="mod_lua"/>
     
         <!-- ASR /TTS -->
         <!-- <load module="mod_flite"/> -->
         <!-- <load module="mod_pocketsphinx"/> -->
    -    <!-- <load module="mod_cepstral"/> -->
         <!-- <load module="mod_tts_commandline"/> -->
    -    <!-- <load module="mod_rss"/> -->
     
         <!-- Say -->
         <load module="mod_say_en"/>
    
  • conf/vanilla/autoload_configs/oreka.conf.xml+0 13 removed
    @@ -1,13 +0,0 @@
    -<!--
    -To use this application simply install the open source Oreka recorder server (Orkaudio) and point
    -the sip-server-addr and sip-server-port to the oreka server
    --->
    -<configuration name="oreka.conf" description="Oreka Recorder configuration">
    -  <settings>
    -    <!--  Oreka/Orkaudio recording server address -->
    -    <!-- <param name="sip-server-addr" value="192.168.1.200"/> -->
    -
    -    <!-- Which port to send signaling to in the recording server -->
    -    <!-- <param name="sip-server-port" value="6000"/> -->
    -  </settings>
    -</configuration>
    
  • conf/vanilla/autoload_configs/portaudio.conf.xml+0 221 removed
    @@ -1,221 +0,0 @@
    -<configuration name="portaudio.conf" description="Soundcard Endpoint">
    -  <settings>
    -    <!-- indev, outdev, ringdev: 
    -	 partial case sensitive string match on something in the name 
    -	 or the device number prefixed with # eg "#1" (or blank for default) -->
    -
    -    <!-- device to use for input -->
    -    <param name="indev" value=""/>
    -    <!-- device to use for output -->
    -    <param name="outdev" value=""/>
    -
    -    <!--device to use for inbound ring -->
    -    <!--<param name="ringdev" value=""/>-->
    -    <!--File to play as the ring sound -->
    -    <!--<param name="ring-file" value="/sounds/ring.wav"/>-->
    -    <!--Number of seconds to pause between rings -->
    -    <!--<param name="ring-interval" value="5"/>-->
    -    <!--Enable or Disable dual_streams-->
    -    <!--<param name="dual-streams" value="true"/>-->
    -
    -    <!--file to play when calls are on hold-->
    -    <param name="hold-file" value="$${hold_music}"/>
    -    <!--Timer to use for hold music (i'd leave this one commented)-->
    -    <!--<param name="timer-name" value="soft"/>-->
    -
    -    <!--Default dialplan and caller-id info -->
    -    <param name="dialplan" value="XML"/>
    -    <param name="cid-name" value="$${outbound_caller_name}"/>
    -    <param name="cid-num" value="$${outbound_caller_id}"/>
    -
    -    <!--audio sample rate and interval -->
    -    <param name="sample-rate" value="48000"/>
    -    <param name="codec-ms" value="20"/>
    -
    -    <!--uncomment the following line to make mod_portaudio fail to load if it fails to find a device-->
    -    <!-- <param name="unload-on-device-fail" value="true"/> -->
    -  </settings>
    -
    -  <!-- 
    -	mod_portaudio "streams"
    -
    -	The portaudio streams were introduced to support multiple devices and multiple channels in mod_portaudio.
    -	For example, if you have a sound card that supports multiple channels or have multiple sound cards and you
    -	want to use them at the same time, you can do it configuring streams and endpoints here.
    -
    -	A "stream" is just a logical container for some settings required by portaudio in order to stream audio and
    -	define a friendly name for that configuration. Streams in itself do not do anything else than contain configs. 
    -	Once you have your streams defined you can proceed to define "endpoints". Go to the "<endpoints>" section 
    -	for more information on endpoints.
    -
    -	You can use the command "pa shstreams" (portaudio shared streams) to show the configured streams.
    -  -->
    -  <streams>
    -  	<!--
    -	In this example we define 2 streams, one for a usb audio device and another for the usual Mac defaults
    -	The name="" attribute in the <stream> tag must uniquely identify the stream configuration and can be
    -	later used when creating endpoints in the "instream" and "outstream" parameters of the endpoint.
    -	-->
    -
    -	<!-- This sample "usb1" configuration was tested with a USB Griffin iMic device -->
    -  	<stream name="usb1">
    -		<!-- 
    -			Which device to use for input in this stream 
    -			The value for this parameter must be either in the form '#devno', 
    -			for example '#2' for device number 2, or 'device-name', like 'iMic USB audio system'
    -			The output of command "pa devlist" will show you device names and numbers as enumerated
    -			by portaudio.
    -		-->
    -		<param name="indev" value="#2" />
    -
    -		<!-- 
    -			Same as the indev but for output. In this case the device is capable of input and output
    -			Some devices are capable of input only or output only (see the default example)
    -	       	-->
    -		<param name="outdev" value="#2" />
    -
    -		<!-- The sample rate to use for this stream -->
    -		<param name="sample-rate" value="48000" />
    -
    -		<!-- 
    -			Size of the packets in milliseconds. The smaller the number the less latency you'll have
    -			The minimum value is 10ms 
    -		-->
    -		<param name="codec-ms" value="10" />
    -
    -		<!-- 
    -			How many channels to open for this stream.
    -			If you're device is stereo, you can choose 2 here. However, bear in mind that then
    -			your left and right channels will be separated and when creating endpoints you will have
    -			to either choose the left or right channel. This may or may not be what you want. This separation
    -			means that you can have 2 separate FreeSWITCH calls, listening to one of them in your left channel
    -			and the other in the right chanel.
    -		-->
    -		<param name="channels" value="2" />
    -  	</stream>
    -
    -	<!-- This default stream was tested using the default Macbook Pro input/output devices -->
    -  	<stream name="default">
    -		<!-- The default system input device -->
    -		<param name="indev" value="#0" />
    -		<!-- The default system output device -->
    -		<param name="outdev" value="#1" />
    -		<!-- CD quality sampling rate ftw -->
    -		<param name="sample-rate" value="48000" />
    -		<!-- Low latency -->
    -		<param name="codec-ms" value="10" />
    -		<!-- Choosing 1 channel allows to hear in both left-right channel when using a headset -->
    -		<param name="channels" value="1" />
    -  	</stream>
    -  </streams>
    -
    -  <!-- 
    -	mod_portaudio "endpoints"
    -
    -	Endpoints is a way to define the input and output that a given portaudio channel will use.
    -	There is a lot of flexibility. You can create endpoints which are "send-only", which means
    -	audio will be read from FreeSWITCH and sent down to the provided stream, but no audio will
    -	be read from that stream and only silence provided back to FreeSWITCH.
    -
    -		send-only endpoint:
    -			(FS CORE) ->-> audio ->-> sound-card-x
    -
    -	You can also create a read-only endpoint.
    -
    -		read-only-endpoint:
    -			(FS CORE) <-<- audio <-<- sound-card-x
    -
    -	And of course you can create a bidirectional endpoint:
    -		bidirectional-endpoint:
    -			(FS CORE) <-> audio <-> sound-card-x
    -
    -	You can also define a stream which uses only the left or only the right channel of a given device stream.
    -	This means you can have 2 SIP calls connected to the same device haring one call in your left ear and
    -	the other call to your right ear :-)
    -
    -	The name="parameter" of the endpoint allows you to use it in the FreeSWITCH dial plan to dial, ie:
    -
    -	<action application="bridge" data="portaudio/endpoint/usb1out-left" />
    -
    -	You can use the command "pa endpoints" to show the configured endpoints.
    -  -->
    -  <endpoints>
    -
    -	<!-- 
    -		An endpoint is a handle name to refer to a configuration that determines where to read media from 
    -		and write media to. The endpoint can use any input/output stream combination for that purpose as 
    -		long as the streams match the sampling rate and codec-ms (see <streams> XML tag).
    -		You can also omit the instream or the outstream parameter (but obviously not both).
    -	-->
    -
    -	<!-- 
    -		Configuration for a "default" bidirectional endpoint that uses the default stream defined previously in
    -		the <streams> section.
    -	 -->
    -  	<endpoint name="default">
    -		<!-- 
    -			The instream, outstream is the name of the stream and channel to use. The stream
    -			name is the same you configured in the <streams> section. This parameters follow 
    -			the syntax <stream-name>:<channel index>. You can omit either the outstream
    -			or the instream, but not both! The channel index is zero-based and must be consistent 
    -			with the number of channels available for that stream (as configured in the <stream> section).
    -			You cannot use index 1 if you chose channels=1 in the stream configuration.
    -		-->
    -		<param name="instream" value="default:0" />
    -		<param name="outstream" value="default:0" />
    -	</endpoint>
    -
    -	<!-- 
    -		This endpoint uses the USB stream defined previously in the <streams> section and
    -		is 'send-only' or 'output-only' and uses the channel index 0 (left channel in a stereo device) 
    -	-->
    -  	<endpoint name="usb1out-left">
    -		<param name="outstream" value="usb1:0" />
    -	</endpoint>
    -
    -	<!-- 
    -		This endpoint uses the USB stream defined previously in the <streams> section and
    -		is 'send-only' or 'output-only' and uses the channel index 1 (right channel in a stereo device) 
    -	-->
    -  	<endpoint name="usb1out-right">
    -		<param name="outstream" value="usb1:1" />
    -	</endpoint>
    -
    -	<!-- 
    -		This endpoint uses the USB stream defined previously in the <streams> section and
    -		is 'receive-only' or 'input-only' and uses the channel index 0 (left channel in a stereo device) 
    -	-->
    -  	<endpoint name="usb1in-left">
    -		<param name="instream" value="usb1:0" />
    -	</endpoint>
    -
    -	<!-- 
    -		This endpoint uses the USB stream defined previously in the <streams> section and
    -		is 'receive-only' or 'input-only' and uses the channel index 1 (right channel in a stereo device) 
    -	-->
    -  	<endpoint name="usb1in-right">
    -		<param name="instream" value="usb1:1" />
    -	</endpoint>
    -
    -	<!-- 
    -		This endpoint uses the USB stream defined previously in the <streams> section and
    -		is 'bidirectional' or 'send-receive' and uses the channel index 0 (left channel in a stereo device) 
    -	-->
    -  	<endpoint name="usb1-left">
    -		<param name="instream" value="usb1:0" />
    -		<param name="outstream" value="usb1:0" />
    -	</endpoint>
    -
    -	<!-- 
    -		This endpoint uses the USB stream defined previously in the <streams> section and
    -		is 'bidirectional' or 'send-receive' and uses the channel index 1 (right channel in a stereo device) 
    -	-->
    -  	<endpoint name="usb1-right">
    -		<param name="instream" value="usb1:1" />
    -		<param name="outstream" value="usb1:1" />
    -	</endpoint>
    -
    -  </endpoints>
    -
    -</configuration>
    -
    
  • conf/vanilla/autoload_configs/rss.conf.xml+0 7 removed
    @@ -1,7 +0,0 @@
    -<configuration name="rss.conf" description="RSS Parser">
    -  <feeds>
    -    <!-- Just download the files to wherever and refer to them here -->
    -    <!-- <feed name="Slash Dot">/home/rss/rss.rss</feed> -->
    -    <!-- <feed name="News Forge">/home/rss/newsforge.rss</feed> -->
    -  </feeds>
    -</configuration>
    
  • conf/vanilla/autoload_configs/sangoma_codec.conf.xml+0 37 removed
    @@ -1,37 +0,0 @@
    -<configuration name="sangoma_codec.conf" description="Sangoma Codec Configuration">
    -
    -	<settings>
    -		<!--
    -		Comma separated list of codecs to register with FreeSWITCH, 
    -		by default (if this parameter is not set) all available codecs are registered.
    -		Valid codec values are: PCMU,PCMA,G729,G726-32,G722,GSM,G723,AMR,G7221,iLBC
    -		If this parameter is not specified only G729 will be registered
    -		<param name="register" value="all"/>
    -		-->
    -
    -		<!-- 
    -		List of codecs to not register with FreeSWITCH, by default this is empty,
    -	        but you may want to not load PCMU and PCMA or may be others to not use your 
    -	        resources in codecs that are done well and fast in software.	
    -		<param name="noregister" value="PCMU,PCMA"/>
    -		-->
    -
    -		<!--
    -		Transcoding SOAP server URL. If you are installing the soap server (sngtc_server)
    -		in the same box where FreeSWITCH, do not use this value, the default URL
    -		that is hard-coded will work out of the box for local installations.
    -		If you modify this value, you must configure your SOAP server (/etc/sngtc/sngtc_server.conf.xml)
    -		to listen for HTTP requests on the same IP/port that you specify here.
    -		<param name="soapserver" value="http://192.168.1.100:8080"/>
    -		-->
    -
    -		<!--
    -		RTP IP to use
    -		By default, this module asks FreeSWITCH for the local ip address. However if you want to use a specific
    -		IP address you can set it here.
    -		<param name="rtpip" value="192.168.1.1"/>
    -		-->
    -	</settings>
    -
    -</configuration>
    -
    
  • conf/vanilla/autoload_configs/sms_flowroute.conf.xml+0 13 removed
    @@ -1,13 +0,0 @@
    -<configuration name="sms_flowroute.conf" description="SMS_FLOWROUTE send configs">
    -  <profiles>
    -    <profile name="default">
    -      <params>
    -	<param name="host" value="https://api.flowroute.com/v2/messages"/>
    -	<param name="debug" value="1"/>
    -	<param name="port" value="8090"/>
    -	<param name="access-key" value="ACCESS-KEY"/>
    -	<param name="secret-key" value="SECRET-KEY"/>
    -      </params>
    -    </profile>
    -  </profiles>
    -</configuration>
    
  • conf/vanilla/autoload_configs/switch.conf.xml+3 1 modified
    @@ -64,6 +64,9 @@
         <!-- Default Global Log Level - value is one of debug,info,notice,warning,err,crit,alert -->
         <param name="loglevel" value="debug"/>
     
    +    <!-- UUID version to use, 4 or 7 -->
    +    <!-- <param name="uuid-version" value="7"/> -->
    +
         <!-- Set the core DEBUG level (0-10) -->
         <!-- <param name="debug-level" value="10"/> -->
     
    @@ -206,4 +209,3 @@
       </settings>
     
     </configuration>
    -
    
  • conf/vanilla/autoload_configs/unicall.conf.xml+0 25 removed
    @@ -1,25 +0,0 @@
    -<configuration name="unicall.conf" description="Unicall Configuration">
    -  <settings>
    -    <param name="context" value="default"/>
    -    <param name="dialplan" value="XML"/>
    -    <param name="suppress-dtmf-tone" value="true"/>
    -  </settings>
    -  <spans>
    -    <span id="1">
    -      <param name="protocol-class" value="mfcr2"/>
    -      <param name="protocol-variant" value="ar"/>
    -      <param name="protocol-end" value="peer"/>
    -      <param name="outgoing-allowed" value="true"/>
    -      <param name="dialplan" value="XML"/>
    -      <param name="context" value="default"/>
    -    </span>
    -    <span id="2">
    -      <param name="protocol-class" value="mfcr2"/>
    -      <param name="protocol-variant" value="ar"/>
    -      <param name="protocol-end" value="peer"/>
    -      <param name="outgoing-allowed" value="true"/>
    -      <param name="dialplan" value="XML"/>
    -      <param name="context" value="default"/>
    -    </span>
    -  </spans>
    -</configuration>
    
  • conf/vanilla/dialplan/default/00_ladspa.xml+0 77 removed
    @@ -1,77 +0,0 @@
    -<include>
    -  
    -  <X-PRE-PROCESS cmd="set" data="AT_EPENT1=0 0 0 -1 -1 0 -1 0 -1 -1 0 -1"/>
    -  <X-PRE-PROCESS cmd="set" data="AT_EPENT2=1 1 1 -1 -1 1 -1 1 -1 -1 1 -1"/>
    -  <X-PRE-PROCESS cmd="set" data="AT_CPENT1=0 -1 -1 0 -1 0 0 0 -1 -1 0 -1"/>
    -  <X-PRE-PROCESS cmd="set" data="AT_CPENT2=1 -1 -1 1 -1 1 1 1 -1 -1 1 -1"/>
    -  <X-PRE-PROCESS cmd="set" data="AT_CMAJ1=0 -1 0 0 -1 0 -1 0 0 -1 0 -1"/>
    -  <X-PRE-PROCESS cmd="set" data="AT_CMAJ2=1 -1 1 1 -1 1 -1 1 1 -1 1 -1"/>
    -  <X-PRE-PROCESS cmd="set" data="AT_BBLUES=1 -1 1 -1 -1 1 -1 1 1 1 -1 -1"/>
    -  <X-PRE-PROCESS cmd="set" data="ATGPENT2=-1 1 -1 1 -1 1 -1 -1 1 -1 1 -1"/>
    -  
    -  <extension name="101"> 
    -    <condition field="destination_number" expression="^101$"> 
    -      <!-- AUTOTALENT DEFAULTS -->
    -
    -      <!--
    -      <action application="set" data="AT_TUNE=440"/>
    -      <action application="set" data="AT_FIXED=0"/>
    -      <action application="set" data="AT_PULL=0"/>
    -      <action application="set" data="AT_A=0"/>
    -      <action application="set" data="AT_Bb=-1"/>
    -      <action application="set" data="AT_B=0"/>
    -      <action application="set" data="AT_C=0"/>
    -      <action application="set" data="AT_Db=-1"/>
    -      <action application="set" data="AT_D=0"/>
    -      <action application="set" data="AT_Eb=-1"/>
    -      <action application="set" data="AT_E=0"/>
    -      <action application="set" data="AT_F=0"/>
    -      <action application="set" data="AT_Gb=-1"/>
    -      <action application="set" data="AT_G=0"/>
    -      <action application="set" data="AT_Ab=-1"/>
    -      <action application="set" data="AT_AMOUNT=1"/>
    -      <action application="set" data="AT_SMOOTH=0"/>
    -      <action application="set" data="AT_SHIFT=0"/>
    -      <action application="set" data="AT_OUTSCALE=0"/>
    -      <action application="set" data="AT_LFODEPTH=0"/>
    -      <action application="set" data="AT_LFORATE=5"/>
    -      <action application="set" data="AT_LFOSHAPE=0"/>
    -      <action application="set" data="AT_LFOSYMM=0"/>
    -      <action application="set" data="AT_LFOQUANT=0"/>
    -      <action application="set" data="AT_FCORR=0"/>
    -      <action application="set" data="AT_FWARP=0"/>
    -      <action application="set" data="AT_MIX=1"/>
    -      -->
    -
    -
    -      <action application="set" data="AT_TUNE=440"/>
    -      <action application="set" data="AT_FIXED=0"/>
    -      <action application="set" data="AT_PULL=0"/>
    -
    -      <action application="set" data="AT_AMOUNT=1"/>
    -      <action application="set" data="AT_SMOOTH=0"/>
    -      <action application="set" data="AT_SHIFT=1"/>
    -      <action application="set" data="AT_OUTSCALE=0"/>
    -      <action application="set" data="AT_LFODEPTH=0"/>
    -      <action application="set" data="AT_LFORATE=5"/>
    -      <action application="set" data="AT_LFOSHAPE=0"/>
    -      <action application="set" data="AT_LFOSYMM=0"/>
    -      <action application="set" data="AT_LFOQUANT=0"/>
    -      <action application="set" data="AT_FCORR=0"/>
    -      <action application="set" data="AT_FWARP=0"/>
    -      <action application="set" data="AT_MIX=1"/>
    -
    -      <!-- you have to download the ladspa package and the desired plugins from their desired site -->
    -
    -
    -      <action application="set"><![CDATA[ladspa_params=${AT_TUNE} ${AT_FIXED} ${AT_PULL} ${AT_EPENT2} ${AT_AMOUNT} ${AT_SMOOTH} ${AT_SHIFT} ${AT_OUTSCALE} ${AT_LFODEPTH} ${AT_LFORATE} ${AT_LFOSHAPE} ${AT_LFOSYMM} ${AT_LFOQUANT} ${AT_FCORR} ${AT_FWARP} ${AT_MIX}]]></action>
    -      
    -      <action application="ladspa_run" data="r|autotalent||${ladspa_params}"/>
    -      <action application="ladspa_run" data="r|tap_chorusflanger||"/>
    -      <action application="ladspa_run" data="r|phasers_1217.so|autoPhaser|"/>
    -      <action application="bridge" data="sofia/internal/888@conference.freeswitch.org"/>
    -
    -      </condition> 
    -  </extension> 
    -
    -</include>
    
  • conf/vanilla/dialplan/default.xml+0 28 modified
    @@ -179,24 +179,6 @@
           </condition>
         </extension>
         -->
    -    <!--
    -	Snom button demo, call 9000 to make button 2 mapped to transfer the current call to a conference
    -    -->
    -
    -    <extension name="snom-demo-2">
    -      <condition field="destination_number" expression="^9001$">
    -	<action application="eval" data="${snom_bind_key(2 off DND ${sip_from_user} ${sip_from_host} ${sofia_profile_name} message notused)}"/>
    -	<action application="transfer" data="3000"/>
    -      </condition>
    -    </extension>
    -
    -    <extension name="snom-demo-1">
    -      <condition field="destination_number" expression="^9000$">
    -	<!--<key> <light> <label> <user> <host> <profile> <action_name> <action>-->
    -	<action application="eval" data="${snom_bind_key(2 on DND ${sip_from_user} ${sip_from_host} ${sofia_profile_name} message api+uuid_transfer ${uuid} 9001)}"/>
    -	<action application="playback" data="$${hold_music}"/>
    -      </condition>
    -    </extension>
     
         <extension name="eavesdrop">
           <condition field="destination_number" expression="^88(\d{4})$|^\*0(.*)$">
    @@ -340,16 +322,6 @@
           </condition>
         </extension>
     
    -    <!--
    -	 This extension is used by mod_portaudio so you can pa call sip:someone@example.com
    -	 mod_portaudio will pass the entire string to the dialplan for routing.
    -    -->
    -    <extension name="sip_uri">
    -      <condition field="destination_number" expression="^sip:(.*)$">
    -	<action application="bridge" data="sofia/${use_profile}/$1"/>
    -      </condition>
    -    </extension>
    -
         <!--
     	start a dynamic conference with the settings of the "default" conference profile in conference.conf.xml
         -->
    
  • conf/vanilla/vars.xml+0 8 modified
    @@ -205,14 +205,6 @@
            G723             - G723.1 in passthru mode. (mod_g723_1)
            AMR              - AMR in passthru mode. (mod_amr)
     
    -       These are the passthru video codecs: (mod_h26x)
    -
    -       H261             - H.261 Video
    -       H263             - H.263 Video
    -       H263-1998        - H.263-1998 Video
    -       H263-2000        - H.263-2000 Video
    -       H264             - H.264 Video
    -
            RTP Dynamic Payload Numbers currently used in FreeSWITCH and their purpose.
     
            96  - AMR
    
  • conf/vanilla/yaml/extensions.yaml+0 4 removed
    @@ -1,4 +0,0 @@
    -default:
    -    ${destination_number} =~ (9664):
    -        set: foo=bar
    -        playback: ${hold_music}
    
  • conf/vanilla/yaml/mod_yaml.yaml+0 6 removed
    @@ -1,6 +0,0 @@
    -settings:
    -#look for foo.conf.yaml when foo.conf is looked for in the xml
    -   bind_config: true 
    -
    -
    -
    
  • debian/bootstrap.sh+3 61 modified
    @@ -29,38 +29,26 @@ conf_dir="../conf"
     lang_dir="../conf/vanilla/lang"
     fs_description="FreeSWITCH is a scalable open source cross-platform telephony platform designed to route and interconnect popular communication protocols using audio, video, text or any other form of media."
     mod_build_depends="." mod_depends="." mod_recommends="." mod_suggests="."
    -supported_debian_distros="wheezy jessie stretch buster bullseye bookworm sid"
    +supported_debian_distros="buster bullseye bookworm trixie sid"
     supported_ubuntu_distros="trusty utopic xenial"
     supported_distros="$supported_debian_distros $supported_ubuntu_distros"
     avoid_mods=(
    -  applications/mod_sms_flowroute
       applications/mod_limit
       applications/mod_mongo
    -  applications/mod_mp4
    -  applications/mod_mp4v2
       applications/mod_osp
    -  applications/mod_rad_auth
       applications/mod_skel
       applications/mod_cluechoo
    -  asr_tts/mod_cepstral
       codecs/mod_com_g729
       codecs/mod_openh264
       codecs/mod_siren
    -  codecs/mod_sangoma_codec
       codecs/mod_skel_codec
    -  endpoints/mod_gsmopen
       endpoints/mod_h323
    -  endpoints/mod_khomp
       endpoints/mod_opal
       endpoints/mod_reference
    -  endpoints/mod_skypopen
    -  endpoints/mod_unicall
       event_handlers/mod_smpp
    -  event_handlers/mod_event_zmq
       formats/mod_webm
       sdk/autotools
       xml_int/mod_xml_ldap
    -  xml_int/mod_xml_radius
     )
     avoid_mods_armhf=(
       languages/mod_v8
    @@ -75,7 +63,6 @@ avoid_mods_jessie=(
       directories/mod_ldap
     )
     avoid_mods_bookworm=(
    -  languages/mod_python
     )
     avoid_mods_wheezy=(
       event_handlers/mod_amqp
    @@ -85,23 +72,18 @@ avoid_mods_wheezy=(
       applications/mod_cv
       applications/mod_hiredis
       formats/mod_shout
    -  applications/mod_sonar
    -  applications/mod_soundtouch
       formats/mod_vlc
     )
     avoid_mods_trusty=(
       event_handlers/mod_amqp
    -  loggers/mod_raven
     )
     avoid_mods_utopic=(
       directories/mod_ldap
    -  loggers/mod_raven
     )
     avoid_mods_xenial=(
       event_handlers/mod_ldap
       event_handlers/mod_amqp
       asr_tts/mod_flite
    -  loggers/mod_raven
     )
     manual_pkgs=(
     freeswitch-all
    @@ -320,7 +302,7 @@ Build-Depends:
     # core build
      dpkg-dev (>= 1.15.8.12), gcc (>= 4:4.4.5), g++ (>= 4:4.4.5),
      libc6-dev (>= 2.11.3), make (>= 3.81),
    - libpcre3-dev,
    + libpcre2-dev,
      libedit-dev (>= 2.11),
      libsqlite3-dev,
      libtiff5-dev,
    @@ -331,7 +313,7 @@ Build-Depends:
     # configure options
      libssl1.0-dev | libssl-dev, unixodbc-dev, libpq-dev,
      libncurses5-dev, libjpeg62-turbo-dev | libjpeg-turbo8-dev | libjpeg62-dev | libjpeg8-dev,
    - python-dev | python-dev-is-python2 | python-dev-is-python3, python3-dev, python-all-dev | python3-all-dev, python-support (>= 0.90) | dh-python, erlang-dev, libtpl-dev (>= 1.5),
    + python-dev-is-python3, python3-dev, python3-all-dev, dh-python, erlang-dev, libtpl-dev (>= 1.5),
     # documentation
      doxygen,
     # for APR (not essential for build)
    @@ -494,7 +476,6 @@ Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
      freeswitch-mod-g723-1 (= \${binary:Version}),
      freeswitch-mod-g729 (= \${binary:Version}),
      freeswitch-mod-amr (= \${binary:Version}),
    - freeswitch-mod-h26x (= \${binary:Version}),
      freeswitch-mod-sndfile (= \${binary:Version}),
      freeswitch-mod-native-file (= \${binary:Version}),
      freeswitch-mod-local-stream (= \${binary:Version}),
    @@ -523,7 +504,6 @@ Recommends:
      freeswitch-meta-codecs (= \${binary:Version}),
      freeswitch-music,
      freeswitch-sounds,
    - freeswitch-mod-abstraction (= \${binary:Version}),
      freeswitch-mod-avmd (= \${binary:Version}),
      freeswitch-mod-blacklist (= \${binary:Version}),
      freeswitch-mod-callcenter (= \${binary:Version}),
    @@ -548,18 +528,12 @@ Recommends:
      freeswitch-mod-http-cache (= \${binary:Version}),
      freeswitch-mod-lcr (= \${binary:Version}),
      freeswitch-mod-nibblebill (= \${binary:Version}),
    - freeswitch-mod-oreka (= \${binary:Version}),
      freeswitch-mod-pgsql (= \${binary:Version}),
      freeswitch-mod-redis (= \${binary:Version}),
    - freeswitch-mod-rss (= \${binary:Version}),
      freeswitch-mod-sms (= \${binary:Version}),
      freeswitch-mod-snapshot (= \${binary:Version}),
    - freeswitch-mod-snom (= \${binary:Version}),
    - freeswitch-mod-sonar (= \${binary:Version}),
    - freeswitch-mod-soundtouch (= \${binary:Version}),
      freeswitch-mod-spandsp (= \${binary:Version}),
      freeswitch-mod-spy (= \${binary:Version}),
    - freeswitch-mod-stress (= \${binary:Version}),
      freeswitch-mod-valet-parking (= \${binary:Version}),
      freeswitch-mod-vmd (= \${binary:Version}),
      freeswitch-mod-voicemail (= \${binary:Version}),
    @@ -608,7 +582,6 @@ Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
      freeswitch-meta-mod-say (= \${binary:Version}),
      freeswitch-music,
      freeswitch-sounds,
    - freeswitch-mod-abstraction (= \${binary:Version}),
      freeswitch-mod-avmd (= \${binary:Version}),
      freeswitch-mod-av (= \${binary:Version}),
      freeswitch-mod-blacklist (= \${binary:Version}),
    @@ -635,22 +608,16 @@ Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
      freeswitch-mod-lcr (= \${binary:Version}),
      freeswitch-mod-memcache (= \${binary:Version}),
      freeswitch-mod-nibblebill (= \${binary:Version}),
    - freeswitch-mod-oreka (= \${binary:Version}),
      freeswitch-mod-mariadb (= \${binary:Version}),
      freeswitch-mod-pgsql (= \${binary:Version}),
      freeswitch-mod-png (= \${binary:Version}),
      freeswitch-mod-redis (= \${binary:Version}),
    - freeswitch-mod-rss (= \${binary:Version}),
      freeswitch-mod-signalwire (= \${binary:Version}),
      freeswitch-mod-shout (= \${binary:Version}),
      freeswitch-mod-sms (= \${binary:Version}),
      freeswitch-mod-snapshot (= \${binary:Version}),
    - freeswitch-mod-snom (= \${binary:Version}),
    - freeswitch-mod-sonar (= \${binary:Version}),
    - freeswitch-mod-soundtouch (= \${binary:Version}),
      freeswitch-mod-spandsp (= \${binary:Version}),
      freeswitch-mod-spy (= \${binary:Version}),
    - freeswitch-mod-stress (= \${binary:Version}),
      freeswitch-mod-translate (= \${binary:Version}),
      freeswitch-mod-valet-parking (= \${binary:Version}),
      freeswitch-mod-video-filter (= \${binary:Version}),
    @@ -663,14 +630,12 @@ Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
      freeswitch-mod-dialplan-directory (= \${binary:Version}),
      freeswitch-mod-dialplan-xml (= \${binary:Version}),
      freeswitch-mod-loopback (= \${binary:Version}),
    - freeswitch-mod-portaudio (= \${binary:Version}),
      freeswitch-mod-rtc (= \${binary:Version}),
      freeswitch-mod-rtmp (= \${binary:Version}),
      freeswitch-mod-skinny (= \${binary:Version}),
      freeswitch-mod-sofia (= \${binary:Version}),
      freeswitch-mod-verto (= \${binary:Version}),
      freeswitch-mod-cdr-csv (= \${binary:Version}),
    - freeswitch-mod-cdr-mongodb (= \${binary:Version}),
      freeswitch-mod-cdr-sqlite (= \${binary:Version}),
      freeswitch-mod-erlang-event (= \${binary:Version}),
      freeswitch-mod-event-multicast (= \${binary:Version}),
    @@ -679,15 +644,13 @@ Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
      freeswitch-mod-snmp (= \${binary:Version}),
      freeswitch-mod-local-stream (= \${binary:Version}),
      freeswitch-mod-native-file (= \${binary:Version}),
    - freeswitch-mod-portaudio-stream (= \${binary:Version}),
      freeswitch-mod-shell-stream (= \${binary:Version}),
      freeswitch-mod-sndfile (= \${binary:Version}),
      freeswitch-mod-tone-stream (= \${binary:Version}),
      freeswitch-mod-java (= \${binary:Version}),
      freeswitch-mod-lua (= \${binary:Version}),
      freeswitch-mod-perl (= \${binary:Version}),
      freeswitch-mod-python3 (= \${binary:Version}),
    - freeswitch-mod-yaml (= \${binary:Version}),
      freeswitch-mod-console (= \${binary:Version}),
      freeswitch-mod-logfile (= \${binary:Version}),
      freeswitch-mod-syslog (= \${binary:Version}),
    @@ -715,16 +678,11 @@ Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
      freeswitch-mod-b64 (= \${binary:Version}),
      freeswitch-mod-bv (= \${binary:Version}),
      freeswitch-mod-codec2 (= \${binary:Version}),
    - freeswitch-mod-dahdi-codec (= \${binary:Version}),
      freeswitch-mod-g723-1 (= \${binary:Version}),
      freeswitch-mod-g729 (= \${binary:Version}),
    - freeswitch-mod-h26x (= \${binary:Version}),
    - freeswitch-mod-isac (= \${binary:Version}),
    - freeswitch-mod-mp4v (= \${binary:Version}),
      freeswitch-mod-opus (= \${binary:Version}),
      freeswitch-mod-silk (= \${binary:Version}),
      freeswitch-mod-spandsp (= \${binary:Version}),
    - freeswitch-mod-theora (= \${binary:Version}),
     Suggests:
      freeswitch-mod-ilbc (= \${binary:Version}),
      freeswitch-mod-siren (= \${binary:Version})
    @@ -742,16 +700,11 @@ Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
      freeswitch-mod-b64-dbg (= \${binary:Version}),
      freeswitch-mod-bv-dbg (= \${binary:Version}),
      freeswitch-mod-codec2-dbg (= \${binary:Version}),
    - freeswitch-mod-dahdi-codec-dbg (= \${binary:Version}),
      freeswitch-mod-g723-1-dbg (= \${binary:Version}),
      freeswitch-mod-g729-dbg (= \${binary:Version}),
    - freeswitch-mod-h26x-dbg (= \${binary:Version}),
    - freeswitch-mod-isac-dbg (= \${binary:Version}),
    - freeswitch-mod-mp4v-dbg (= \${binary:Version}),
      freeswitch-mod-opus-dbg (= \${binary:Version}),
      freeswitch-mod-silk-dbg (= \${binary:Version}),
      freeswitch-mod-spandsp-dbg (= \${binary:Version}),
    - freeswitch-mod-theora-dbg (= \${binary:Version}),
     Suggests:
      freeswitch-mod-ilbc-dbg (= \${binary:Version}),
      freeswitch-mod-siren-dbg (= \${binary:Version})
    @@ -846,7 +799,6 @@ Architecture: amd64 armhf arm64
     Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
      freeswitch-meta-codecs-dbg (= \${binary:Version}),
      freeswitch-meta-mod-say (= \${binary:Version}),
    - freeswitch-mod-abstraction-dbg (= \${binary:Version}),
      freeswitch-mod-avmd-dbg (= \${binary:Version}),
      freeswitch-mod-av-dbg (= \${binary:Version}),
      freeswitch-mod-blacklist-dbg (= \${binary:Version}),
    @@ -873,20 +825,14 @@ Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
      freeswitch-mod-lcr-dbg (= \${binary:Version}),
      freeswitch-mod-memcache-dbg (= \${binary:Version}),
      freeswitch-mod-nibblebill-dbg (= \${binary:Version}),
    - freeswitch-mod-oreka-dbg (= \${binary:Version}),
      freeswitch-mod-mariadb-dbg (= \${binary:Version}),
      freeswitch-mod-pgsql-dbg (= \${binary:Version}),
      freeswitch-mod-png-dbg (= \${binary:Version}),
      freeswitch-mod-redis-dbg (= \${binary:Version}),
    - freeswitch-mod-rss-dbg (= \${binary:Version}),
      freeswitch-mod-sms-dbg (= \${binary:Version}),
      freeswitch-mod-snapshot-dbg (= \${binary:Version}),
    - freeswitch-mod-snom-dbg (= \${binary:Version}),
    - freeswitch-mod-sonar-dbg (= \${binary:Version}),
    - freeswitch-mod-soundtouch-dbg (= \${binary:Version}),
      freeswitch-mod-spandsp-dbg (= \${binary:Version}),
      freeswitch-mod-spy-dbg (= \${binary:Version}),
    - freeswitch-mod-stress-dbg (= \${binary:Version}),
      freeswitch-mod-translate-dbg (= \${binary:Version}),
      freeswitch-mod-valet-parking-dbg (= \${binary:Version}),
      freeswitch-mod-video-filter-dbg (= \${binary:Version}),
    @@ -899,14 +845,12 @@ Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
      freeswitch-mod-dialplan-directory-dbg (= \${binary:Version}),
      freeswitch-mod-dialplan-xml-dbg (= \${binary:Version}),
      freeswitch-mod-loopback-dbg (= \${binary:Version}),
    - freeswitch-mod-portaudio-dbg (= \${binary:Version}),
      freeswitch-mod-rtc-dbg (= \${binary:Version}),
      freeswitch-mod-rtmp-dbg (= \${binary:Version}),
      freeswitch-mod-skinny-dbg (= \${binary:Version}),
      freeswitch-mod-sofia-dbg (= \${binary:Version}),
      freeswitch-mod-verto-dbg (= \${binary:Version}),
      freeswitch-mod-cdr-csv-dbg (= \${binary:Version}),
    - freeswitch-mod-cdr-mongodb-dbg (= \${binary:Version}),
      freeswitch-mod-cdr-sqlite-dbg (= \${binary:Version}),
      freeswitch-mod-erlang-event-dbg (= \${binary:Version}),
      freeswitch-mod-event-multicast-dbg (= \${binary:Version}),
    @@ -915,15 +859,13 @@ Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
      freeswitch-mod-snmp-dbg (= \${binary:Version}),
      freeswitch-mod-local-stream-dbg (= \${binary:Version}),
      freeswitch-mod-native-file-dbg (= \${binary:Version}),
    - freeswitch-mod-portaudio-stream-dbg (= \${binary:Version}),
      freeswitch-mod-shell-stream-dbg (= \${binary:Version}),
      freeswitch-mod-sndfile-dbg (= \${binary:Version}),
      freeswitch-mod-tone-stream-dbg (= \${binary:Version}),
      freeswitch-mod-java-dbg (= \${binary:Version}),
      freeswitch-mod-lua-dbg (= \${binary:Version}),
      freeswitch-mod-perl-dbg (= \${binary:Version}),
      freeswitch-mod-python3-dbg (= \${binary:Version}),
    - freeswitch-mod-yaml-dbg (= \${binary:Version}),
      freeswitch-mod-console-dbg (= \${binary:Version}),
      freeswitch-mod-logfile-dbg (= \${binary:Version}),
      freeswitch-mod-syslog-dbg (= \${binary:Version}),
    
  • debian/control-modules+6 147 modified
    @@ -3,16 +3,12 @@
     
     ## mod/applications
     
    -Module: applications/mod_abstraction
    -Description: Abstraction layer for APIs
    - This module provides a way to create new API functions via regex
    - rewriting.
    -
     Module: applications/mod_av
     Description: mod_av
      Adds mod_av.
     Build-Depends: libavformat-dev, libswscale-dev, libavresample-dev
     Build-Depends-Bookworm: libavformat-dev, libswscale-dev, libswresample-dev
    +Build-Depends-Trixie: libavformat-dev, libswscale-dev, libswresample-dev
     
     Module: applications/mod_avmd
     Description: Advanced voicemail detection
    @@ -130,12 +126,6 @@ Description: HTTP GET with caching
      This module provides an API for making HTTP GET requests where the
      result is cached.
     
    -Module: applications/mod_ladspa
    -Description: LADSPA
    - This module provides an API for accessing LADSPA plugins.
    -Build-Depends: ladspa-sdk
    -Suggests: tap-plugins, swh-plugins, autotalent
    -
     Module: applications/mod_lcr
     Description: LCR
      This module adds a facility for least-cost routing.
    @@ -155,26 +145,11 @@ Description: MongoDB
      This module provides an interface to MongoDB.
     Build-Depends: libmongoc-dev
     
    -Module: applications/mod_mp4
    -Section: contrib/comm
    -Description: MP4 video support
    - This module adds support for MP4 video playback.
    -Build-Depends: libmp4v2-dev
    -
    -Module: applications/mod_mp4v2
    -Description: Adds mod_mp4v2
    - Adds mod_mp4v2.
    -
     Module: applications/mod_nibblebill
     Description: Nibblebill
      This module allows for real-time accounting of a cash balance and
      using that information for call routing.
     
    -Module: applications/mod_oreka
    -Description: Media recording with Oreka
    - This module provides media recording with the Oreka cross-platfor
    - audio stream recording and retrieval system.
    -
     Module: applications/mod_osp
     Description: Open Settlement Protocol
      This module adds support for the Open Settlement Protocol (OSP).
    @@ -185,10 +160,6 @@ Description: Longest prefix match search
      This module provides a data store with fast lookups by the longest
      prefix match (LPM) rule.
     
    -Module: applications/mod_rad_auth
    -Description: RADIUS AA
    - This module implements RADIUS Authentication and Authorization.
    -
     Module: applications/mod_random
     Description: Entropy extraction
      This module extracts entropy from FreeSWITCH and feeds it into
    @@ -199,10 +170,6 @@ Description: Redis limit backend
      This module provides a mechanism to use Redis as a backend data
      store.
     
    -Module: applications/mod_rss
    -Description: RSS browser
    - This module provides an RSS browser.
    -
     Module: applications/mod_skel
     Description: Adds mod_skel
      Adds mod_skel.
    @@ -222,20 +189,6 @@ Description: Snapshot
      This module can record a sliding window of audio and take snapshots
      to disk.
     
    -Module: applications/mod_snom
    -Description: SNOM specific features
    - This module implements features specific to SNOM phones.
    -
    -Module: applications/mod_sonar
    -Description: Sonar ping timer
    - This module measures the latency on an audio link by sending audible
    - audio sonar pings.
    -
    -Module: applications/mod_soundtouch
    -Description: Soundtouch
    - This module implements example media bugs.
    -Build-Depends: libsoundtouch-dev
    -
     Module: applications/mod_spandsp
     Description: SpanDSP
      This module implements spandsp fax, dsp, and codec functionality.
    @@ -244,10 +197,6 @@ Module: applications/mod_spy
     Description: UserSpy
      This module adds the ability to monitor the audio of a channel.
     
    -Module: applications/mod_stress
    -Description: Voice stress detection
    - This module attempts to detect voice stress on an audio channel.
    -
     Module: applications/mod_translate
     Description: Number translation
      This module implements number translation.
    @@ -275,10 +224,6 @@ Description: Voicemail IVR
     
     ## mod/asr_tts
     
    -Module: asr_tts/mod_cepstral
    -Description: mod_cepstral
    - Adds mod_cepstral.
    -
     Module: asr_tts/mod_flite
     Description: mod_flite
      Adds mod_flite.
    @@ -287,6 +232,7 @@ Build-Depends: libflite-dev | flite1-dev
     Module: asr_tts/mod_pocketsphinx
     Description: mod_pocketsphinx
      Adds mod_pocketsphinx.
    +Build-Depends: libsphinxbase-dev, libpocketsphinx-dev
     
     Module: asr_tts/mod_tts_commandline
     Description: mod_tts_commandline
    @@ -321,10 +267,6 @@ Module: codecs/mod_com_g729
     Description: mod_com_g729
      Adds mod_com_g729.
     
    -Module: codecs/mod_dahdi_codec
    -Description: mod_dahdi_codec
    - Adds mod_dahdi_codec.
    -
     Module: codecs/mod_g723_1
     Description: mod_g723_1
      Adds mod_g723_1.
    @@ -333,24 +275,12 @@ Module: codecs/mod_g729
     Description: mod_g729
      Adds mod_g729.
     
    -Module: codecs/mod_h26x
    -Description: mod_h26x
    - Adds mod_h26x.
    -
     Module: codecs/mod_ilbc
     Section: non-free/comm
     Description: mod_ilbc
      Adds mod_ilbc.
     Build-Depends: libilbc-dev
     
    -Module: codecs/mod_isac
    -Description: mod_isac
    - Adds mod_isac.
    -
    -Module: codecs/mod_mp4v
    -Description: mod_mp4v
    - Adds mod_mp4v.
    -
     Module: codecs/mod_openh264
     Description: Adds mod_openh264
      Adds mod_openh264.
    @@ -360,11 +290,6 @@ Description: mod_opus
      Adds mod_opus.
     Build-Depends: libopus-dev
     
    -Module: codecs/mod_sangoma_codec
    -Description: mod_sangoma_codec
    - Adds mod_sangoma_codec.
    -Build-Depends: libsngtc-dev
    -
     Module: codecs/mod_silk
     Description: mod_silk
      Adds mod_silk.
    @@ -380,10 +305,6 @@ Module: codecs/mod_skel_codec
     Description: Adds mod_skel_codec
      Adds mod_skel_codec.
     
    -Module: codecs/mod_theora
    -Description: mod_theora
    - Adds mod_theora.
    -
     Module: codecs/mod_yuv
     Description: Adds mod_yuv
      Adds mod_yuv.
    @@ -428,20 +349,11 @@ Description: mod_alsa
      Adds mod_alsa.
     Build-Depends: libasound2-dev
     
    -Module: endpoints/mod_gsmopen
    -Description: mod_gsmopen
    - Adds mod_gsmopen.
    -Build-Depends: libx11-dev
    -
     Module: endpoints/mod_h323
     Description: mod_h323
      Adds mod_h323.
     Build-Depends: libopenh323-dev | libh323plus-dev, libpt-dev
     
    -Module: endpoints/mod_khomp
    -Description: mod_khomp
    - Adds mod_khomp.
    -
     Module: endpoints/mod_loopback
     Description: mod_loopback
      Adds mod_loopback.
    @@ -451,11 +363,6 @@ Description: mod_opal
      Adds mod_opal.
     Build-Depends: libopal-dev
     
    -Module: endpoints/mod_portaudio
    -Description: mod_portaudio
    - Adds mod_portaudio.
    -Build-Depends: portaudio19-dev
    -
     Module: endpoints/mod_reference
     Description: mod_reference
      Adds mod_reference.
    @@ -476,17 +383,10 @@ Module: endpoints/mod_sofia
     Description: mod_sofia
      Adds mod_sofia.
     
    -Module: endpoints/mod_unicall
    -Description: mod_unicall
    - Adds mod_unicall.
    -
     Module: endpoints/mod_verto
     Description: Adds mod_verto.
      Adds mod_verto.
    -Build-Depends: libperl-dev
    -Build-Depends-Buster: libperl-dev, libgdbm-compat-dev
    -Build-Depends-Bullseye: libperl-dev, libgdbm-compat-dev
    -Build-Depends-Bookworm: libperl-dev, libgdbm-compat-dev
    +Build-Depends: libperl-dev, libgdbm-compat-dev
     
     ## mod/event_handlers
     
    @@ -499,10 +399,6 @@ Module: event_handlers/mod_cdr_csv
     Description: mod_cdr_csv
      Adds mod_cdr_csv.
     
    -Module: event_handlers/mod_cdr_mongodb
    -Description: mod_cdr_mongodb
    - Adds mod_cdr_mongodb.
    -
     Module: event_handlers/mod_cdr_pg_csv
     Description: mod_cdr_pg_csv
      Adds mod_cdr_pg_csv.
    @@ -530,10 +426,6 @@ Module: event_handlers/mod_event_test
     Description: mod_event_test
      Adds mod_event_test.
     
    -Module: event_handlers/mod_event_zmq
    -Description: mod_event_zmq
    - Adds mod_event_zmq.
    -
     Module: event_handlers/mod_format_cdr
     Description: mod_format_cdr
      Adds mod_format_cdr.
    @@ -546,15 +438,6 @@ Module: event_handlers/mod_odbc_cdr
     Description: mod_odbc_cdr
      Adds mod_odbc_cdr.
     
    -Module: event_handlers/mod_radius_cdr
    -Description: mod_radius_cdr
    - Adds mod_radius_cdr.
    -
    -Module: event_handlers/mod_rayo
    -Description: mod_rayo
    - Adds mod_rayo.
    -Depends: freeswitch-mod-ssml (= ${binary:Version})
    -
     Module: event_handlers/mod_smpp
     Description: mod_snmp
      Adds mod_snmp.
    @@ -583,11 +466,6 @@ Module: formats/mod_png
     Description: Adds mod_png
      Adds mod_png.
     
    -Module: formats/mod_portaudio_stream
    -Description: mod_portaudio_stream
    - Adds mod_portaudio_stream.
    -Build-Depends: portaudio19-dev
    -
     Module: formats/mod_shell_stream
     Description: mod_shell_stream
      Adds mod_shell_stream.
    @@ -604,10 +482,6 @@ Description: mod_sndfile
     Build-Depends: libsndfile1-dev, libflac-dev, libogg-dev,
      libvorbis-dev
     
    -Module: formats/mod_ssml
    -Description: mod_ssml
    - Adds mod_ssml.
    -
     Module: formats/mod_tone_stream
     Description: mod_tone_stream
      Adds mod_tone_stream.
    @@ -644,6 +518,7 @@ Description: mod_lua
      Adds mod_lua.
     Build-Depends: liblua5.2-dev | liblua5.1-dev
     Build-Depends-Bookworm: liblua5.3-dev | liblua5.2-dev | liblua5.1-dev
    +Build-Depends-Trixie: liblua5.3-dev | liblua5.2-dev | liblua5.1-0-dev
     
     Module: languages/mod_managed
     Description: mod_managed
    @@ -653,32 +528,20 @@ Build-Depends: libmono-2.0-dev, mono-mcs
     Module: languages/mod_perl
     Description: mod_perl
      Adds mod_perl.
    -Build-Depends: libperl-dev
    -Build-Depends-Buster: libperl-dev, libgdbm-compat-dev
    -Build-Depends-Bullseye: libperl-dev, libgdbm-compat-dev
    -Build-Depends-Bookworm: libperl-dev, libgdbm-compat-dev
    -
    -Module: languages/mod_python
    -Description: mod_python
    - Adds mod_python.
    -Build-Depends: python-dev | python-dev-is-python2
    +Build-Depends: libperl-dev, libgdbm-compat-dev
     
     Module: languages/mod_python3
     Description: mod_python3
      Adds mod_python3.
     Build-Depends: python3-dev
     Build-Depends-Bookworm: python3-dev, python3-setuptools
    +Build-Depends-Trixie: python3-dev, python3-setuptools
     
     Module: languages/mod_v8
     Description: mod_v8
      Adds mod_v8.
     Build-Depends: git, libv8-6.1-dev
     
    -Module: languages/mod_yaml
    -Description: mod_yaml
    - Adds mod_yaml.
    -Build-Depends: libyaml-dev, libglib2.0-dev
    -
     ## mod/loggers
     
     Module: loggers/mod_console
    @@ -802,10 +665,6 @@ Description: mod_xml_ldap
      Adds mod_xml_ldap.
     Build-Depends: libldap2-dev, libsasl2-dev
     
    -Module: xml_int/mod_xml_radius
    -Description: mod_xml_radius
    - Adds mod_xml_radius
    -
     Module: xml_int/mod_xml_rpc
     Description: mod_xml_rpc
      Adds mod_xml_rpc.
    
  • debian/copyright+0 0 modified
  • debian/freeswitch-mod-python.install.tmpl+0 1 removed
  • debian/license-reconcile.yml+0 12 modified
  • debian/rules+1 4 modified
  • debian/util.sh+11 12 modified
  • docker/build/base-image-from-repo.Dockerfile+67 0 added
  • docker/build/base-image-from-source.Dockerfile+167 0 added
  • docker/build/debs-from-source.Dockerfile+119 0 added
  • docker/coverity/Dockerfile+49 0 added
  • docker/coverity/README.md+23 0 added
  • docker/examples/Debian11/Dockerfile+1 1 modified
  • docs/Doxygen.conf+1 1 modified
  • .drone.yml+0 184 removed
    @@ -1,184 +0,0 @@
    ----
    -kind: pipeline
    -name: unit-tests
    -
    -steps:
    -    - name: bootstrap
    -      image: signalwire/freeswitch-public-base:bullseye
    -      pull: always
    -      commands:
    -      - cat /proc/sys/kernel/core_pattern
    -      - ./bootstrap.sh -j
    -
    -    - name: configure
    -      image: signalwire/freeswitch-public-base:bullseye
    -      pull: always
    -      environment:
    -        REPOTOKEN:
    -          from_secret: repotoken
    -      commands:
    -      - echo "machine freeswitch.signalwire.com password $REPOTOKEN" > /etc/apt/auth.conf
    -      - apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -yq remove libsofia-sip-ua0 libspandsp-dev
    -      - DEBIAN_FRONTEND=noninteractive apt-get -yq install libspandsp3-dev
    -      - export REPOTOKEN=''
    -      - rm -rf /etc/apt/auth.conf
    -      - git clone https://github.com/freeswitch/sofia-sip.git
    -      - cd sofia-sip && ./autogen.sh && ./configure.gnu && make -j`nproc` && make install && cd ..
    -      - echo 'codecs/mod_openh264' >> modules.conf
    -      - sed -i '/applications\\/mod_http_cache/s/^#//g' modules.conf
    -      - sed -i '/event_handlers\\/mod_rayo/s/^#//g' modules.conf
    -      - sed -i '/formats\\/mod_opusfile/s/^#//g' modules.conf
    -      - sed -i '/languages\\/mod_lua/s/^#//g' modules.conf
    -      - export ASAN_OPTIONS=log_path=stdout:disable_coredump=0:unmap_shadow_on_exit=1:fast_unwind_on_malloc=0
    -      - ./configure --enable-address-sanitizer --enable-fake-dlclose
    -
    -    - name: build
    -      image: signalwire/freeswitch-public-base:bullseye
    -      pull: always
    -      environment:
    -        REPOTOKEN:
    -          from_secret: repotoken
    -      commands:
    -      - echo "machine freeswitch.signalwire.com password $REPOTOKEN" > /etc/apt/auth.conf
    -      - apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -yq remove libsofia-sip-ua0 libspandsp-dev
    -      - DEBIAN_FRONTEND=noninteractive apt-get -yq install libspandsp3-dev
    -      - export REPOTOKEN=''
    -      - rm -rf /etc/apt/auth.conf
    -      - cd sofia-sip && make install && cd ..
    -      - echo '#!/bin/bash\nmake -j`nproc --all` |& tee ./unit-tests-build-result.txt\nexitstatus=$${PIPESTATUS[0]}\necho $$exitstatus > ./build-status.txt\n' > build.sh
    -      - chmod +x build.sh
    -      - ./build.sh
    -
    -    - name: run-tests
    -      image: signalwire/freeswitch-public-base:bullseye
    -      pull: always
    -      environment:
    -        REPOTOKEN:
    -          from_secret: repotoken
    -      commands:
    -      - echo "machine freeswitch.signalwire.com password $REPOTOKEN" > /etc/apt/auth.conf
    -      - apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -yq remove libsofia-sip-ua0 libspandsp-dev
    -      - DEBIAN_FRONTEND=noninteractive apt-get -yq install libspandsp3-dev
    -      - export REPOTOKEN=''
    -      - rm -rf /etc/apt/auth.conf
    -      - cd sofia-sip && make install && cd ..
    -      - make install || true
    -      - cd tests/unit
    -      - export ASAN_OPTIONS=log_path=stdout:disable_coredump=0:unmap_shadow_on_exit=1:fast_unwind_on_malloc=0
    -      - ./run-tests.sh
    -      - ls -la /cores
    -      - mkdir logs && (mv log_run-tests_*.html logs || true) && (mv backtrace_*.txt logs || true)
    -      - echo 0 > run-tests-status.txt
    -      - ./collect-test-logs.sh && exit 0 || echo 'Some tests failed'
    -      - echo 1 > run-tests-status.txt
    -      - cd logs && ls -la
    -
    -    - name: notify
    -      image: signalwire/drone-notify
    -      pull: always
    -      environment:
    -        SLACK_WEBHOOK_URL:
    -          from_secret: slack_webhook_url
    -        ENV_FILE:
    -          from_secret: notify_env
    -      commands:
    -      - /root/unit-tests-notify.sh
    -
    -trigger:
    -  branch:
    -  - master
    -  event:
    -  - pull_request
    -  - push
    -
    ----
    -kind: pipeline
    -name: scan-build
    -
    -steps:
    -    - name: bootstrap
    -      image: signalwire/freeswitch-public-base:bookworm
    -      pull: always
    -      commands:
    -      - apt-get update && apt-get -yq install autoconf
    -      - ./bootstrap.sh -j
    -
    -    - name: configure
    -      image: signalwire/freeswitch-public-base:bookworm
    -      pull: always
    -      environment:
    -        REPOTOKEN:
    -          from_secret: repotoken
    -      commands:
    -      - echo "machine freeswitch.signalwire.com password $REPOTOKEN" > /etc/apt/auth.conf
    -      - apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -yq remove libspandsp-dev
    -      - DEBIAN_FRONTEND=noninteractive apt-get -yq install libsofia-sip-ua-dev libspandsp3-dev
    -      - export REPOTOKEN=''
    -      - rm -rf /etc/apt/auth.conf
    -      - cp build/modules.conf.most modules.conf
    -      #Enable/Uncomment mods
    -      - echo 'codecs/mod_openh264' >> modules.conf
    -      - sed -i "/mod_mariadb/s/^#//g" modules.conf
    -      - sed -i "/mod_v8/s/^#//g" modules.conf
    -      #Disable/Comment out mods
    -      - sed -i '/mod_ilbc/s/^/#/g' modules.conf
    -      - sed -i '/mod_isac/s/^/#/g' modules.conf
    -      - sed -i '/mod_mp4/s/^/#/g' modules.conf
    -      - sed -i '/mod_mongo/s/^/#/g' modules.conf
    -      - sed -i '/mod_pocketsphinx/s/^/#/g' modules.conf
    -      - sed -i '/mod_sangoma_codec/s/^/#/g' modules.conf
    -      - sed -i '/mod_siren/s/^/#/g' modules.conf
    -      #Comment out mods for a while
    -      - sed -i '/mod_avmd/s/^/#/g' modules.conf
    -      - sed -i '/mod_basic/s/^/#/g' modules.conf
    -      - sed -i '/mod_cdr_mongodb/s/^/#/g' modules.conf
    -      - sed -i '/mod_cv/s/^/#/g' modules.conf
    -      - sed -i '/mod_erlang_event/s/^/#/g' modules.conf
    -      - sed -i '/mod_perl/s/^/#/g' modules.conf
    -      - sed -i '/mod_rtmp/s/^/#/g' modules.conf
    -      - sed -i '/mod_unimrcp/s/^/#/g' modules.conf
    -      - sed -i '/mod_xml_rpc/s/^/#/g' modules.conf
    -      - ./configure
    -
    -    - name: scan-build
    -      image: signalwire/freeswitch-public-base:bookworm
    -      pull: always
    -      environment:
    -        REPOTOKEN:
    -          from_secret: repotoken
    -      commands:
    -      - echo "machine freeswitch.signalwire.com password $REPOTOKEN" > /etc/apt/auth.conf
    -      - apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -yq remove libspandsp-dev
    -      - DEBIAN_FRONTEND=noninteractive apt-get -yq install libsofia-sip-ua-dev libspandsp3-dev
    -      - export REPOTOKEN=''
    -      - rm -rf /etc/apt/auth.conf
    -      - mkdir -p scan-build
    -      - echo '#!/bin/bash\nscan-build-14 --force-analyze-debug-code -o ./scan-build/ make -j`nproc --all` |& tee ./scan-build-result.txt\nexitstatus=$${PIPESTATUS[0]}\necho $$exitstatus > ./scan-build-status.txt\n' > scan.sh
    -      - chmod +x scan.sh
    -      - ./scan.sh
    -      - exitstatus=`cat ./scan-build-status.txt`
    -      - echo "*** Exit status is $exitstatus"
    -
    -    - name: notify
    -      image: signalwire/drone-notify
    -      pull: always
    -      environment:
    -        SLACK_WEBHOOK_URL:
    -          from_secret: slack_webhook_url
    -        ENV_FILE:
    -          from_secret: notify_env
    -      commands:
    -      - /root/scan-build-notify.sh
    -
    -trigger:
    -  branch:
    -  - master
    -  event:
    -  - pull_request
    -  - push
    -
    ----
    -kind: signature
    -hmac: 7e5f6cafc88da0be59243daf47a2a5607ff00b45f441ce4c1041d4b690e8a853
    -
    -...
    
  • Freeswitch.2017.sln+45 181 modified
    @@ -79,8 +79,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "autoload_configs", "autoloa
     		conf\vanilla\autoload_configs\logfile.conf.xml = conf\vanilla\autoload_configs\logfile.conf.xml
    
     		conf\vanilla\autoload_configs\modules.conf.xml = conf\vanilla\autoload_configs\modules.conf.xml
    
     		conf\vanilla\autoload_configs\openmrcp.conf.xml = conf\vanilla\autoload_configs\openmrcp.conf.xml
    
    -		conf\vanilla\autoload_configs\portaudio.conf.xml = conf\vanilla\autoload_configs\portaudio.conf.xml
    
    -		conf\vanilla\autoload_configs\rss.conf.xml = conf\vanilla\autoload_configs\rss.conf.xml
    
     		conf\vanilla\autoload_configs\sofia.conf.xml = conf\vanilla\autoload_configs\sofia.conf.xml
    
     		conf\vanilla\autoload_configs\switch.conf.xml = conf\vanilla\autoload_configs\switch.conf.xml
    
     		conf\vanilla\autoload_configs\syslog.conf.xml = conf\vanilla\autoload_configs\syslog.conf.xml
    
    @@ -173,8 +171,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g729", "src\mod\codecs\
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sndfile", "src\mod\formats\mod_sndfile\mod_sndfile.2017.vcxproj", "{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}"
    
     EndProject
    
    -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_PortAudio", "src\mod\endpoints\mod_portaudio\mod_PortAudio.2017.vcxproj", "{5FD31A25-5D83-4794-8BEE-904DAD84CE71}"
    
    -EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "docs", "docs\docs.2017.vcxproj", "{1A1FF289-4FD6-4285-A422-D31DD67A4723}"
    
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_xml", "src\mod\dialplans\mod_dialplan_xml\mod_dialplan_xml.2017.vcxproj", "{07113B25-D3AF-4E04-BA77-4CD1171F022C}"
    
    @@ -191,8 +187,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_v8", "src\mod\languages
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_v8_skel", "src\mod\languages\mod_v8\mod_v8_skel.2017.vcxproj", "{8B754330-A434-4791-97E5-1EE67060BAC0}"
    
     EndProject
    
    -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cepstral", "src\mod\asr_tts\mod_cepstral\mod_cepstral.2017.vcxproj", "{692F6330-4D87-4C82-81DF-40DB5892636E}"
    
    -EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_ilbc", "src\mod\codecs\mod_ilbc\mod_ilbc.2017.vcxproj", "{D3EC0AFF-76FC-4210-A825-9A17410660A3}"
    
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_commands", "src\mod\applications\mod_commands\mod_commands.2017.vcxproj", "{30A5B29C-983E-4580-9FD0-D647CCDCC7EB}"
    
    @@ -204,8 +198,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_rpc", "src\mod\xml_
     		{BED7539C-0099-4A14-AD5D-30828F15A171} = {BED7539C-0099-4A14-AD5D-30828F15A171}
    
     	EndProjectSection
    
     EndProject
    
    -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_rss", "src\mod\applications\mod_rss\mod_rss.2017.vcxproj", "{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}"
    
    -EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_conference", "src\mod\applications\mod_conference\mod_conference.2017.vcxproj", "{C24FB505-05D7-4319-8485-7540B44C8603}"
    
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dptools", "src\mod\applications\mod_dptools\mod_dptools.2017.vcxproj", "{B5881A85-FE70-4F64-8607-2CAAE52669C6}"
    
    @@ -218,16 +210,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsqlite", "libs\win32\sql
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libapr", "libs\win32\apr\libapr.2017.vcxproj", "{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}"
    
     EndProject
    
    -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iksemel", "libs\win32\iksemel\iksemel.2017.vcxproj", "{E727E8F6-935D-46FE-8B0E-37834748A0E3}"
    
    -EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sofia", "src\mod\endpoints\mod_sofia\mod_sofia.2017.vcxproj", "{0DF3ABD0-DDC0-4265-B778-07C66780979B}"
    
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pthread", "libs\win32\pthread\pthread.2017.vcxproj", "{DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}"
    
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g723_1", "src\mod\codecs\mod_g723_1\mod_g723_1.2017.vcxproj", "{FEA1EEF7-876F-48DE-88BF-C0E3E606D758}"
    
     EndProject
    
    -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_iSAC", "src\mod\codecs\mod_isac\mod_iSAC.2017.vcxproj", "{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}"
    
    -EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_native_file", "src\mod\formats\mod_native_file\mod_native_file.2017.vcxproj", "{9254C4B0-6F60-42B6-BB3A-36D63FC001C7}"
    
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libudns", "libs\win32\udns\libudns.2017.vcxproj", "{4043FC6A-9A30-4577-8AD5-9B233C9575D8}"
    
    @@ -238,14 +226,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_curl", "src\mod\xml
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_en", "src\mod\say\mod_say_en\mod_say_en.2017.vcxproj", "{988CACF7-3FCB-4992-BE69-77872AE67DC8}"
    
     EndProject
    
    -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portaudio", "libs\win32\portaudio\portaudio.2017.vcxproj", "{0A18A071-125E-442F-AFF7-A3F68ABECF99}"
    
    -EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_cdr", "src\mod\xml_int\mod_xml_cdr\mod_xml_cdr.2017.vcxproj", "{08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}"
    
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_amr", "src\mod\codecs\mod_amr\mod_amr.2017.vcxproj", "{8DEB383C-4091-4F42-A56F-C9E46D552D79}"
    
     EndProject
    
    -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_h26x", "src\mod\codecs\mod_h26x\mod_h26x.2017.vcxproj", "{2C3C2423-234B-4772-8899-D3B137E5CA35}"
    
    -EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_esf", "src\mod\applications\mod_esf\mod_esf.2017.vcxproj", "{3850D93A-5F24-4922-BC1C-74D08C37C256}"
    
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_local_stream", "src\mod\formats\mod_local_stream\mod_local_stream.2017.vcxproj", "{2CA40887-1622-46A1-A7F9-17FD7E7E545B}"
    
    @@ -302,8 +286,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_shout", "src\mod\format
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libogg", "libs\win32\libogg\libogg.2017.vcxproj", "{0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}"
    
     EndProject
    
    -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_snom", "src\mod\applications\mod_snom\mod_snom.2017.vcxproj", "{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}"
    
    -EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_zh", "src\mod\say\mod_say_zh\mod_say_zh.2017.vcxproj", "{B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}"
    
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_managed", "src\mod\languages\mod_managed\mod_managed.2017.vcxproj", "{7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}"
    
    @@ -407,16 +389,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spy", "src\mod\applicat
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_httapi", "src\mod\applications\mod_httapi\mod_httapi.2017.vcxproj", "{4748FF56-CA85-4809-97D6-A94C0FAC1D77}"
    
     EndProject
    
    -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_abstraction", "src\mod\applications\mod_abstraction\mod_abstraction.2017.vcxproj", "{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}"
    
    -EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sms", "src\mod\applications\mod_sms\mod_sms.2017.vcxproj", "{2469B306-B027-4FF2-8815-C9C1EA2CAE79}"
    
     EndProject
    
     Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "xmlrpc-c", "xmlrpc-c", "{9DE35039-A8F6-4FBF-B1B6-EB527F802411}"
    
     EndProject
    
    -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gsmlib", "src\mod\endpoints\mod_gsmopen\gsmlib\gsmlib-1.10-patched-13ubuntu\win32\gsmlib.2017.vcxproj", "{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}"
    
    -EndProject
    
    -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_gsmopen", "src\mod\endpoints\mod_gsmopen\mod_gsmopen.2017.vcxproj", "{74B120FF-6935-4DFE-A142-CDB6BEA99C90}"
    
    -EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_redis", "src\mod\applications\mod_redis\mod_redis.2017.vcxproj", "{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}"
    
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjpeg", "libs\win32\libjpeg\libjpeg.2017.vcxproj", "{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}"
    
    @@ -450,8 +426,6 @@ Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Setup.2017", "w32\Setup\Set
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_math_fixed_tables", "libs\win32\spandsp\make_math_fixed_tables.2017.vcxproj", "{2386B892-35F5-46CF-A0F0-10394D2FBF9B}"
    
     EndProject
    
    -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcbt", "libs\win32\libcbt\libcbt.2017.vcxproj", "{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}"
    
    -EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_cielab_luts", "libs\win32\spandsp\make_cielab_luts.2017.vcxproj", "{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}"
    
     EndProject
    
     Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "opus", "opus", "{ED2CA8B5-8E91-4296-A120-02BB0B674652}"
    
    @@ -526,8 +500,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cv", "src\mod\applicati
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cidlookup", "src\mod\applications\mod_cidlookup\mod_cidlookup.2017.vcxproj", "{0A130A8B-3076-4619-BADF-9E86F621AEEC}"
    
     EndProject
    
    -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cdr_mongodb", "src\mod\event_handlers\mod_cdr_mongodb\mod_cdr_mongodb.2017.vcxproj", "{4DFF29B4-2976-447D-A8B3-43476451517C}"
    
    -EndProject
    
     Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{9388C266-C3FC-468A-92EF-0CBC35941412}"
    
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_mod_av", "src\mod\applications\mod_av\test\test_mod_av.2017.vcxproj", "{7926CB0D-62CE-4A09-AE94-1DA2BC92D625}"
    
    @@ -556,6 +528,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_switch_ivr_originate",
     EndProject
    
     Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_switch_core_codec", "tests\unit\test_switch_core_codec.2017.vcxproj", "{589A07E7-5DE5-49FD-A62C-27795B806AFB}"
    
     EndProject
    
    +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_tts_format", "tests\unit\test_tts_format.2017.vcxproj", "{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}"
    
    +EndProject
    
    +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_test", "src\mod\applications\mod_test\mod_test.2017.vcxproj", "{E9FF8127-D5F0-2398-59EB-702CE55F7800}"
    
    +EndProject
    
    +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_switch_xml", "tests\unit\test_switch_xml.2017.vcxproj", "{FED39CFF-E6CD-1C09-844D-F1174B8A5C18}"
    
    +EndProject
    
     Global
    
     	GlobalSection(SolutionConfigurationPlatforms) = preSolution
    
     		All|Win32 = All|Win32
    
    @@ -610,17 +588,6 @@ Global
     		{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|Win32.Build.0 = Release|Win32
    
     		{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x64.ActiveCfg = Release|x64
    
     		{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x64.Build.0 = Release|x64
    
    -		{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|Win32.ActiveCfg = Release|x64
    
    -		{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64.ActiveCfg = Release|x64
    
    -		{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64.Build.0 = Release|x64
    
    -		{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|Win32.ActiveCfg = Debug|Win32
    
    -		{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|Win32.Build.0 = Debug|Win32
    
    -		{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x64.ActiveCfg = Debug|x64
    
    -		{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x64.Build.0 = Debug|x64
    
    -		{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|Win32.ActiveCfg = Release|Win32
    
    -		{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|Win32.Build.0 = Release|Win32
    
    -		{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64.ActiveCfg = Release|x64
    
    -		{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64.Build.0 = Release|x64
    
     		{1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|Win32.ActiveCfg = Release|Win32
    
     		{1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|x64.ActiveCfg = Release|Win32
    
     		{1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|Win32.ActiveCfg = Debug|Win32
    
    @@ -700,13 +667,6 @@ Global
     		{8B754330-A434-4791-97E5-1EE67060BAC0}.Debug|x64.ActiveCfg = Debug|x64
    
     		{8B754330-A434-4791-97E5-1EE67060BAC0}.Release|Win32.ActiveCfg = Release|Win32
    
     		{8B754330-A434-4791-97E5-1EE67060BAC0}.Release|x64.ActiveCfg = Release|x64
    
    -		{692F6330-4D87-4C82-81DF-40DB5892636E}.All|Win32.ActiveCfg = Release|x64
    
    -		{692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.ActiveCfg = Release|x64
    
    -		{692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.Build.0 = Release|x64
    
    -		{692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|Win32.ActiveCfg = Debug|Win32
    
    -		{692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|x64.ActiveCfg = Debug|x64
    
    -		{692F6330-4D87-4C82-81DF-40DB5892636E}.Release|Win32.ActiveCfg = Release|Win32
    
    -		{692F6330-4D87-4C82-81DF-40DB5892636E}.Release|x64.ActiveCfg = Release|x64
    
     		{D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|Win32.ActiveCfg = Release|x64
    
     		{D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64.ActiveCfg = Release|x64
    
     		{D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64.Build.0 = Release|x64
    
    @@ -751,17 +711,6 @@ Global
     		{CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|Win32.Build.0 = Release|Win32
    
     		{CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|x64.ActiveCfg = Release|x64
    
     		{CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|x64.Build.0 = Release|x64
    
    -		{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|Win32.ActiveCfg = Release|x64
    
    -		{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64.ActiveCfg = Release|x64
    
    -		{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64.Build.0 = Release|x64
    
    -		{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|Win32.ActiveCfg = Debug|Win32
    
    -		{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|Win32.Build.0 = Debug|Win32
    
    -		{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x64.ActiveCfg = Debug|x64
    
    -		{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x64.Build.0 = Debug|x64
    
    -		{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|Win32.ActiveCfg = Release|Win32
    
    -		{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|Win32.Build.0 = Release|Win32
    
    -		{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|x64.ActiveCfg = Release|x64
    
    -		{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|x64.Build.0 = Release|x64
    
     		{C24FB505-05D7-4319-8485-7540B44C8603}.All|Win32.ActiveCfg = Release|x64
    
     		{C24FB505-05D7-4319-8485-7540B44C8603}.All|x64.ActiveCfg = Release|x64
    
     		{C24FB505-05D7-4319-8485-7540B44C8603}.All|x64.Build.0 = Release|x64
    
    @@ -828,17 +777,6 @@ Global
     		{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|Win32.Build.0 = Release|Win32
    
     		{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x64.ActiveCfg = Release|x64
    
     		{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x64.Build.0 = Release|x64
    
    -		{E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|Win32.ActiveCfg = Release|x64
    
    -		{E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64.ActiveCfg = Release|x64
    
    -		{E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64.Build.0 = Release|x64
    
    -		{E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|Win32.ActiveCfg = Debug|Win32
    
    -		{E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|Win32.Build.0 = Debug|Win32
    
    -		{E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x64.ActiveCfg = Debug|x64
    
    -		{E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x64.Build.0 = Debug|x64
    
    -		{E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|Win32.ActiveCfg = Release|Win32
    
    -		{E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|Win32.Build.0 = Release|Win32
    
    -		{E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|x64.ActiveCfg = Release|x64
    
    -		{E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|x64.Build.0 = Release|x64
    
     		{0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|Win32.ActiveCfg = Release|x64
    
     		{0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64.ActiveCfg = Release|x64
    
     		{0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64.Build.0 = Release|x64
    
    @@ -872,17 +810,6 @@ Global
     		{FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|Win32.Build.0 = Release Passthrough|Win32
    
     		{FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|x64.ActiveCfg = Release Passthrough|x64
    
     		{FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|x64.Build.0 = Release Passthrough|x64
    
    -		{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|Win32.ActiveCfg = Release|x64
    
    -		{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|x64.ActiveCfg = Release|x64
    
    -		{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|x64.Build.0 = Release|x64
    
    -		{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|Win32.ActiveCfg = Debug|Win32
    
    -		{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|Win32.Build.0 = Debug|Win32
    
    -		{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|x64.ActiveCfg = Debug|x64
    
    -		{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|x64.Build.0 = Debug|x64
    
    -		{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|Win32.ActiveCfg = Release|Win32
    
    -		{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|Win32.Build.0 = Release|Win32
    
    -		{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|x64.ActiveCfg = Release|x64
    
    -		{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|x64.Build.0 = Release|x64
    
     		{9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|Win32.ActiveCfg = Release|x64
    
     		{9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64.ActiveCfg = Release|x64
    
     		{9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64.Build.0 = Release|x64
    
    @@ -934,17 +861,6 @@ Global
     		{988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|Win32.Build.0 = Release|Win32
    
     		{988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x64.ActiveCfg = Release|x64
    
     		{988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x64.Build.0 = Release|x64
    
    -		{0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|Win32.ActiveCfg = Release DirectSound|x64
    
    -		{0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64.ActiveCfg = Release DirectSound|x64
    
    -		{0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64.Build.0 = Release DirectSound|x64
    
    -		{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.ActiveCfg = Debug DirectSound|Win32
    
    -		{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.Build.0 = Debug DirectSound|Win32
    
    -		{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64.ActiveCfg = Debug DirectSound|x64
    
    -		{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64.Build.0 = Debug DirectSound|x64
    
    -		{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.ActiveCfg = Release DirectSound|Win32
    
    -		{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.Build.0 = Release DirectSound|Win32
    
    -		{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.ActiveCfg = Release DirectSound|x64
    
    -		{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.Build.0 = Release DirectSound|x64
    
     		{08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|Win32.ActiveCfg = Release|x64
    
     		{08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64.ActiveCfg = Release|x64
    
     		{08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64.Build.0 = Release|x64
    
    @@ -967,17 +883,6 @@ Global
     		{8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|Win32.Build.0 = Release Passthrough|Win32
    
     		{8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|x64.ActiveCfg = Release Passthrough|x64
    
     		{8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|x64.Build.0 = Release Passthrough|x64
    
    -		{2C3C2423-234B-4772-8899-D3B137E5CA35}.All|Win32.ActiveCfg = Release|x64
    
    -		{2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64.ActiveCfg = Release|x64
    
    -		{2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64.Build.0 = Release|x64
    
    -		{2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|Win32.ActiveCfg = Debug|Win32
    
    -		{2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|Win32.Build.0 = Debug|Win32
    
    -		{2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x64.ActiveCfg = Debug|x64
    
    -		{2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x64.Build.0 = Debug|x64
    
    -		{2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|Win32.ActiveCfg = Release|Win32
    
    -		{2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|Win32.Build.0 = Release|Win32
    
    -		{2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|x64.ActiveCfg = Release|x64
    
    -		{2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|x64.Build.0 = Release|x64
    
     		{3850D93A-5F24-4922-BC1C-74D08C37C256}.All|Win32.ActiveCfg = Release|x64
    
     		{3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64.ActiveCfg = Release|x64
    
     		{3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64.Build.0 = Release|x64
    
    @@ -1282,17 +1187,6 @@ Global
     		{0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|Win32.Build.0 = Release|Win32
    
     		{0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|x64.ActiveCfg = Release|x64
    
     		{0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|x64.Build.0 = Release|x64
    
    -		{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|Win32.ActiveCfg = Release|x64
    
    -		{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64.ActiveCfg = Release|x64
    
    -		{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64.Build.0 = Release|x64
    
    -		{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|Win32.ActiveCfg = Debug|Win32
    
    -		{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|Win32.Build.0 = Debug|Win32
    
    -		{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x64.ActiveCfg = Debug|x64
    
    -		{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x64.Build.0 = Debug|x64
    
    -		{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|Win32.ActiveCfg = Release|Win32
    
    -		{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|Win32.Build.0 = Release|Win32
    
    -		{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|x64.ActiveCfg = Release|x64
    
    -		{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|x64.Build.0 = Release|x64
    
     		{B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|Win32.ActiveCfg = Release|x64
    
     		{B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64.ActiveCfg = Release|x64
    
     		{B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64.Build.0 = Release|x64
    
    @@ -1821,17 +1715,6 @@ Global
     		{4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|Win32.Build.0 = Release|Win32
    
     		{4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|x64.ActiveCfg = Release|x64
    
     		{4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|x64.Build.0 = Release|x64
    
    -		{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.All|Win32.ActiveCfg = Release|x64
    
    -		{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.All|x64.ActiveCfg = Release|x64
    
    -		{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.All|x64.Build.0 = Release|x64
    
    -		{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|Win32.ActiveCfg = Debug|Win32
    
    -		{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|Win32.Build.0 = Debug|Win32
    
    -		{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|x64.ActiveCfg = Debug|x64
    
    -		{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|x64.Build.0 = Debug|x64
    
    -		{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|Win32.ActiveCfg = Release|Win32
    
    -		{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|Win32.Build.0 = Release|Win32
    
    -		{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|x64.ActiveCfg = Release|x64
    
    -		{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|x64.Build.0 = Release|x64
    
     		{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|Win32.ActiveCfg = Release|x64
    
     		{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|x64.ActiveCfg = Release|x64
    
     		{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|x64.Build.0 = Release|x64
    
    @@ -1843,28 +1726,6 @@ Global
     		{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|Win32.Build.0 = Release|Win32
    
     		{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|x64.ActiveCfg = Release|x64
    
     		{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|x64.Build.0 = Release|x64
    
    -		{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|Win32.ActiveCfg = Release|x64
    
    -		{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|x64.ActiveCfg = Release|x64
    
    -		{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|x64.Build.0 = Release|x64
    
    -		{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|Win32.ActiveCfg = Debug|Win32
    
    -		{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|Win32.Build.0 = Debug|Win32
    
    -		{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|x64.ActiveCfg = Debug|x64
    
    -		{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|x64.Build.0 = Debug|x64
    
    -		{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|Win32.ActiveCfg = Release|Win32
    
    -		{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|Win32.Build.0 = Release|Win32
    
    -		{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|x64.ActiveCfg = Release|x64
    
    -		{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|x64.Build.0 = Release|x64
    
    -		{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|Win32.ActiveCfg = Release|x64
    
    -		{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|x64.ActiveCfg = Release|x64
    
    -		{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|x64.Build.0 = Release|x64
    
    -		{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|Win32.ActiveCfg = Debug|Win32
    
    -		{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|Win32.Build.0 = Debug|Win32
    
    -		{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|x64.ActiveCfg = Debug|x64
    
    -		{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|x64.Build.0 = Debug|x64
    
    -		{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|Win32.ActiveCfg = Release|Win32
    
    -		{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|Win32.Build.0 = Release|Win32
    
    -		{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|x64.ActiveCfg = Release|x64
    
    -		{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|x64.Build.0 = Release|x64
    
     		{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|Win32.ActiveCfg = Release|x64
    
     		{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|x64.ActiveCfg = Release|x64
    
     		{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|x64.Build.0 = Release|x64
    
    @@ -1965,17 +1826,6 @@ Global
     		{2386B892-35F5-46CF-A0F0-10394D2FBF9B}.Release|Win32.Build.0 = All|Win32
    
     		{2386B892-35F5-46CF-A0F0-10394D2FBF9B}.Release|x64.ActiveCfg = All|Win32
    
     		{2386B892-35F5-46CF-A0F0-10394D2FBF9B}.Release|x64.Build.0 = All|Win32
    
    -		{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.All|Win32.ActiveCfg = Release|Win32
    
    -		{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.All|Win32.Build.0 = Release|Win32
    
    -		{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.All|x64.ActiveCfg = Release|Win32
    
    -		{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Debug|Win32.ActiveCfg = Debug|Win32
    
    -		{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Debug|Win32.Build.0 = Debug|Win32
    
    -		{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Debug|x64.ActiveCfg = Debug|x64
    
    -		{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Debug|x64.Build.0 = Debug|x64
    
    -		{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Release|Win32.ActiveCfg = Release|Win32
    
    -		{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Release|Win32.Build.0 = Release|Win32
    
    -		{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Release|x64.ActiveCfg = Release|x64
    
    -		{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Release|x64.Build.0 = Release|x64
    
     		{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|Win32.ActiveCfg = All|Win32
    
     		{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|Win32.Build.0 = All|Win32
    
     		{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|x64.ActiveCfg = All|Win32
    
    @@ -2388,18 +2238,6 @@ Global
     		{0A130A8B-3076-4619-BADF-9E86F621AEEC}.Release|Win32.Build.0 = Release|Win32
    
     		{0A130A8B-3076-4619-BADF-9E86F621AEEC}.Release|x64.ActiveCfg = Release|x64
    
     		{0A130A8B-3076-4619-BADF-9E86F621AEEC}.Release|x64.Build.0 = Release|x64
    
    -		{4DFF29B4-2976-447D-A8B3-43476451517C}.All|Win32.ActiveCfg = Release|Win32
    
    -		{4DFF29B4-2976-447D-A8B3-43476451517C}.All|Win32.Build.0 = Release|Win32
    
    -		{4DFF29B4-2976-447D-A8B3-43476451517C}.All|x64.ActiveCfg = Release|x64
    
    -		{4DFF29B4-2976-447D-A8B3-43476451517C}.All|x64.Build.0 = Release|x64
    
    -		{4DFF29B4-2976-447D-A8B3-43476451517C}.Debug|Win32.ActiveCfg = Debug|Win32
    
    -		{4DFF29B4-2976-447D-A8B3-43476451517C}.Debug|Win32.Build.0 = Debug|Win32
    
    -		{4DFF29B4-2976-447D-A8B3-43476451517C}.Debug|x64.ActiveCfg = Debug|x64
    
    -		{4DFF29B4-2976-447D-A8B3-43476451517C}.Debug|x64.Build.0 = Debug|x64
    
    -		{4DFF29B4-2976-447D-A8B3-43476451517C}.Release|Win32.ActiveCfg = Release|Win32
    
    -		{4DFF29B4-2976-447D-A8B3-43476451517C}.Release|Win32.Build.0 = Release|Win32
    
    -		{4DFF29B4-2976-447D-A8B3-43476451517C}.Release|x64.ActiveCfg = Release|x64
    
    -		{4DFF29B4-2976-447D-A8B3-43476451517C}.Release|x64.Build.0 = Release|x64
    
     		{7926CB0D-62CE-4A09-AE94-1DA2BC92D625}.All|Win32.ActiveCfg = Release|Win32
    
     		{7926CB0D-62CE-4A09-AE94-1DA2BC92D625}.All|Win32.Build.0 = Release|Win32
    
     		{7926CB0D-62CE-4A09-AE94-1DA2BC92D625}.All|x64.ActiveCfg = Release|x64
    
    @@ -2530,6 +2368,42 @@ Global
     		{589A07E7-5DE5-49FD-A62C-27795B806AFB}.Release|Win32.Build.0 = Release|Win32
    
     		{589A07E7-5DE5-49FD-A62C-27795B806AFB}.Release|x64.ActiveCfg = Release|x64
    
     		{589A07E7-5DE5-49FD-A62C-27795B806AFB}.Release|x64.Build.0 = Release|x64
    
    +		{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.All|Win32.ActiveCfg = Debug|Win32
    
    +		{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.All|Win32.Build.0 = Debug|Win32
    
    +		{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.All|x64.ActiveCfg = Debug|x64
    
    +		{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.All|x64.Build.0 = Debug|x64
    
    +		{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.Debug|Win32.ActiveCfg = Debug|Win32
    
    +		{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.Debug|Win32.Build.0 = Debug|Win32
    
    +		{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.Debug|x64.ActiveCfg = Debug|x64
    
    +		{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.Debug|x64.Build.0 = Debug|x64
    
    +		{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.Release|Win32.ActiveCfg = Release|Win32
    
    +		{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.Release|Win32.Build.0 = Release|Win32
    
    +		{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.Release|x64.ActiveCfg = Release|x64
    
    +		{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.Release|x64.Build.0 = Release|x64
    
    +		{E9FF8127-D5F0-2398-59EB-702CE55F7800}.All|Win32.ActiveCfg = Debug|Win32
    
    +		{E9FF8127-D5F0-2398-59EB-702CE55F7800}.All|Win32.Build.0 = Debug|Win32
    
    +		{E9FF8127-D5F0-2398-59EB-702CE55F7800}.All|x64.ActiveCfg = Debug|x64
    
    +		{E9FF8127-D5F0-2398-59EB-702CE55F7800}.All|x64.Build.0 = Debug|x64
    
    +		{E9FF8127-D5F0-2398-59EB-702CE55F7800}.Debug|Win32.ActiveCfg = Debug|Win32
    
    +		{E9FF8127-D5F0-2398-59EB-702CE55F7800}.Debug|Win32.Build.0 = Debug|Win32
    
    +		{E9FF8127-D5F0-2398-59EB-702CE55F7800}.Debug|x64.ActiveCfg = Debug|x64
    
    +		{E9FF8127-D5F0-2398-59EB-702CE55F7800}.Debug|x64.Build.0 = Debug|x64
    
    +		{E9FF8127-D5F0-2398-59EB-702CE55F7800}.Release|Win32.ActiveCfg = Release|Win32
    
    +		{E9FF8127-D5F0-2398-59EB-702CE55F7800}.Release|Win32.Build.0 = Release|Win32
    
    +		{E9FF8127-D5F0-2398-59EB-702CE55F7800}.Release|x64.ActiveCfg = Release|x64
    
    +		{E9FF8127-D5F0-2398-59EB-702CE55F7800}.Release|x64.Build.0 = Release|x64
    
    +		{FED39CFF-E6CD-1C09-844D-F1174B8A5C18}.All|Win32.ActiveCfg = Debug|Win32
    
    +		{FED39CFF-E6CD-1C09-844D-F1174B8A5C18}.All|Win32.Build.0 = Debug|Win32
    
    +		{FED39CFF-E6CD-1C09-844D-F1174B8A5C18}.All|x64.ActiveCfg = Debug|x64
    
    +		{FED39CFF-E6CD-1C09-844D-F1174B8A5C18}.All|x64.Build.0 = Debug|x64
    
    +		{FED39CFF-E6CD-1C09-844D-F1174B8A5C18}.Debug|Win32.ActiveCfg = Debug|Win32
    
    +		{FED39CFF-E6CD-1C09-844D-F1174B8A5C18}.Debug|Win32.Build.0 = Debug|Win32
    
    +		{FED39CFF-E6CD-1C09-844D-F1174B8A5C18}.Debug|x64.ActiveCfg = Debug|x64
    
    +		{FED39CFF-E6CD-1C09-844D-F1174B8A5C18}.Debug|x64.Build.0 = Debug|x64
    
    +		{FED39CFF-E6CD-1C09-844D-F1174B8A5C18}.Release|Win32.ActiveCfg = Release|Win32
    
    +		{FED39CFF-E6CD-1C09-844D-F1174B8A5C18}.Release|Win32.Build.0 = Release|Win32
    
    +		{FED39CFF-E6CD-1C09-844D-F1174B8A5C18}.Release|x64.ActiveCfg = Release|x64
    
    +		{FED39CFF-E6CD-1C09-844D-F1174B8A5C18}.Release|x64.Build.0 = Release|x64
    
     	EndGlobalSection
    
     	GlobalSection(SolutionProperties) = preSolution
    
     		HideSolutionNode = FALSE
    
    @@ -2554,7 +2428,6 @@ Global
     		{3DAF028C-AB5B-4183-A01B-DCC43F5A87F0} = {D4A12E4C-DBDA-4614-BA26-3425AE9F60F5}
    
     		{1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
    
     		{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
    
    -		{5FD31A25-5D83-4794-8BEE-904DAD84CE71} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
    
     		{1A1FF289-4FD6-4285-A422-D31DD67A4723} = {CBD81696-EFB4-4D2F-8451-1B8DAA86155A}
    
     		{07113B25-D3AF-4E04-BA77-4CD1171F022C} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4}
    
     		{EC3E5C7F-EE09-47E2-80FE-546363D14A98} = {B8F5B47B-8568-46EB-B320-64C17D2A98BC}
    
    @@ -2563,32 +2436,26 @@ Global
     		{89385C74-5860-4174-9CAF-A39E7C48909C} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
    
     		{9B9D2551-D6BD-4F20-8BE5-DE30E154A064} = {0C808854-54D1-4230-BFF5-77B5FD905000}
    
     		{8B754330-A434-4791-97E5-1EE67060BAC0} = {0C808854-54D1-4230-BFF5-77B5FD905000}
    
    -		{692F6330-4D87-4C82-81DF-40DB5892636E} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}
    
     		{D3EC0AFF-76FC-4210-A825-9A17410660A3} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
    
     		{30A5B29C-983E-4580-9FD0-D647CCDCC7EB} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
    
     		{1C453396-D912-4213-89FD-9B489162B7B5} = {A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}
    
     		{CBEC7225-0C21-4DA8-978E-1F158F8AD950} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5}
    
    -		{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
    
     		{C24FB505-05D7-4319-8485-7540B44C8603} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
    
     		{B5881A85-FE70-4F64-8607-2CAAE52669C6} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
    
     		{05515420-16DE-4E63-BE73-85BE85BA5142} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
    
     		{EEF031CB-FED8-451E-A471-91EC8D4F6750} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
    
     		{6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
    
     		{F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
    
    -		{E727E8F6-935D-46FE-8B0E-37834748A0E3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
    
     		{0DF3ABD0-DDC0-4265-B778-07C66780979B} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
    
     		{DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
    
     		{FEA1EEF7-876F-48DE-88BF-C0E3E606D758} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
    
    -		{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
    
     		{9254C4B0-6F60-42B6-BB3A-36D63FC001C7} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
    
     		{4043FC6A-9A30-4577-8AD5-9B233C9575D8} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
    
     		{71A967D5-0E99-4CEF-A587-98836EE6F2EF} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
    
     		{AB91A099-7690-4ECF-8994-E458F4EA1ED4} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5}
    
     		{988CACF7-3FCB-4992-BE69-77872AE67DC8} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
    
    -		{0A18A071-125E-442F-AFF7-A3F68ABECF99} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
    
     		{08DAD348-9E0A-4A2E-97F1-F1E7E24A7836} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5}
    
     		{8DEB383C-4091-4F42-A56F-C9E46D552D79} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
    
    -		{2C3C2423-234B-4772-8899-D3B137E5CA35} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
    
     		{3850D93A-5F24-4922-BC1C-74D08C37C256} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
    
     		{2CA40887-1622-46A1-A7F9-17FD7E7E545B} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
    
     		{D7F1E3F2-A3F4-474C-8555-15122571AF52} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
    
    @@ -2617,7 +2484,6 @@ Global
     		{D3D8B329-20BE-475E-9E83-653CEA0E0EF5} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
    
     		{38FE0559-9910-43A8-9E45-3E5004C27692} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
    
     		{0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
    
    -		{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
    
     		{B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
    
     		{7B42BDA1-72C0-4378-A9B6-5C530F8CD61E} = {0C808854-54D1-4230-BFF5-77B5FD905000}
    
     		{834E2B2F-5483-4B80-8FE3-FE48FF76E5C0} = {0C808854-54D1-4230-BFF5-77B5FD905000}
    
    @@ -2666,11 +2532,8 @@ Global
     		{50AAC2CE-BFC9-4912-87CC-C6381850D735} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
    
     		{A61D7CB4-75A5-4A55-8CA1-BE5AF615D921} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
    
     		{4748FF56-CA85-4809-97D6-A94C0FAC1D77} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
    
    -		{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
    
     		{2469B306-B027-4FF2-8815-C9C1EA2CAE79} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
    
     		{9DE35039-A8F6-4FBF-B1B6-EB527F802411} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
    
    -		{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
    
    -		{74B120FF-6935-4DFE-A142-CDB6BEA99C90} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
    
     		{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
    
     		{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
    
     		{D2396DD7-7D38-473A-ABB7-6F96D65AE1B9} = {9DE35039-A8F6-4FBF-B1B6-EB527F802411}
    
    @@ -2679,7 +2542,6 @@ Global
     		{CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA} = {9DE35039-A8F6-4FBF-B1B6-EB527F802411}
    
     		{B535402E-38D2-4D54-8360-423ACBD17192} = {9DE35039-A8F6-4FBF-B1B6-EB527F802411}
    
     		{2386B892-35F5-46CF-A0F0-10394D2FBF9B} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
    
    -		{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
    
     		{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
    
     		{ED2CA8B5-8E91-4296-A120-02BB0B674652} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
    
     		{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E} = {ED2CA8B5-8E91-4296-A120-02BB0B674652}
    
    @@ -2717,7 +2579,6 @@ Global
     		{2CA661A7-01DD-4532-BF88-B6629DFB544A} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
    
     		{40C4E2A2-B49B-496C-96D6-C04B890F7F88} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
    
     		{0A130A8B-3076-4619-BADF-9E86F621AEEC} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
    
    -		{4DFF29B4-2976-447D-A8B3-43476451517C} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
    
     		{7926CB0D-62CE-4A09-AE94-1DA2BC92D625} = {9388C266-C3FC-468A-92EF-0CBC35941412}
    
     		{EF62B845-A0CE-44FD-B8E6-475FE87D06C3} = {9388C266-C3FC-468A-92EF-0CBC35941412}
    
     		{8154C82D-58EE-4145-9DEC-A445A5AA3D6B} = {4F227C26-768F-46A3-8684-1D08A46FB374}
    
    @@ -2729,6 +2590,9 @@ Global
     		{580675D7-C1C9-4197-AAC5-00F64FAFDE78} = {9388C266-C3FC-468A-92EF-0CBC35941412}
    
     		{69A7464A-9B0D-4804-A108-835229DACF58} = {9388C266-C3FC-468A-92EF-0CBC35941412}
    
     		{589A07E7-5DE5-49FD-A62C-27795B806AFB} = {9388C266-C3FC-468A-92EF-0CBC35941412}
    
    +		{3745B86B-6BE8-3E67-FCB9-BE62A6131D67} = {9388C266-C3FC-468A-92EF-0CBC35941412}
    
    +		{E9FF8127-D5F0-2398-59EB-702CE55F7800} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
    
    +		{FED39CFF-E6CD-1C09-844D-F1174B8A5C18} = {9388C266-C3FC-468A-92EF-0CBC35941412}
    
     	EndGlobalSection
    
     	GlobalSection(ExtensibilityGlobals) = postSolution
    
     		SolutionGuid = {09840DE7-9208-45AA-9667-1A71EE93BD1E}
    
    
  • freeswitch-config-rayo.spec+0 177 removed
  • freeswitch.spec+20 354 modified
  • .github/docker/debian/bookworm/amd64/CI/Dockerfile+24 0 added
    @@ -0,0 +1,24 @@
    +ARG BUILDER_IMAGE=signalwire/freeswitch-public-ci-base:bookworm-amd64
    +
    +FROM ${BUILDER_IMAGE}
    +
    +ARG MAINTAINER_EMAIL="andrey@signalwire.com"
    +
    +LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
    +
    +SHELL ["/bin/bash", "-c"]
    +
    +COPY --from=sofia-sip / /usr/src/sofia-sip
    +COPY --from=freeswitch / /usr/src/freeswitch
    +
    +RUN cd /usr/src/freeswitch && \
    +    ./ci.sh -t unit-test -a configure -c sofia-sip -p "/usr/src/sofia-sip" && \
    +    ./ci.sh -t unit-test -a build -c sofia-sip -p "/usr/src/sofia-sip" && \
    +    ./ci.sh -t unit-test -a install -c sofia-sip -p "/usr/src/sofia-sip" && \
    +    ./ci.sh -t unit-test -a configure -c freeswitch -p "/usr/src/freeswitch" && \
    +    ./ci.sh -t unit-test -a build -c freeswitch -p "/usr/src/freeswitch" && \
    +    ./ci.sh -t unit-test -a install -c freeswitch -p "/usr/src/freeswitch"
    +
    +WORKDIR /usr/src/freeswitch/tests/unit
    +
    +ENTRYPOINT ["/usr/src/freeswitch/tests/unit/run-tests.sh"]
    
  • .github/docker/debian/bookworm/amd64/public.release.Dockerfile+103 0 added
    @@ -0,0 +1,103 @@
    +ARG BUILDER_IMAGE=debian:bookworm-20240513
    +
    +FROM ${BUILDER_IMAGE} AS builder
    +
    +ARG MAINTAINER_NAME="Andrey Volk"
    +ARG MAINTAINER_EMAIL="andrey@signalwire.com"
    +
    +# Credentials
    +ARG REPO_DOMAIN=freeswitch.signalwire.com
    +ARG REPO_USERNAME=user
    +
    +ARG BUILD_NUMBER=42
    +ARG GIT_SHA=0000000000
    +
    +ARG DATA_DIR=/data
    +ARG CODENAME=bookworm
    +ARG GPG_KEY="/usr/share/keyrings/signalwire-freeswitch-repo.gpg"
    +
    +MAINTAINER "${MAINTAINER_NAME} <${MAINTAINER_EMAIL}>"
    +
    +SHELL ["/bin/bash", "-c"]
    +
    +RUN apt-get -q update && \
    +    DEBIAN_FRONTEND=noninteractive apt-get -yq install \
    +        apt-transport-https \
    +        build-essential \
    +        ca-certificates \
    +        cmake \
    +        curl \
    +        debhelper \
    +        devscripts \
    +        dh-autoreconf \
    +        dos2unix \
    +        doxygen \
    +        git \
    +        graphviz \
    +        libglib2.0-dev \
    +        libssl-dev \
    +        lsb-release \
    +        pkg-config \
    +        wget
    +
    +RUN update-ca-certificates --fresh
    +
    +RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
    +    chmod +x ~/.env
    +
    +RUN . ~/.env && cat <<EOF > /etc/apt/sources.list.d/freeswitch.list
    +deb [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-release ${CODENAME} main
    +deb-src [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-release ${CODENAME} main
    +EOF
    +
    +RUN git config --global --add safe.directory '*' \
    +    && git config --global user.name "${MAINTAINER_NAME}" \
    +    && git config --global user.email "${MAINTAINER_EMAIL}"
    +
    +# Bootstrap and Build
    +COPY . ${DATA_DIR}
    +WORKDIR ${DATA_DIR}
    +RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
    +
    +RUN . ~/.env && ./debian/util.sh prep-create-dsc -a amd64 ${CODENAME}
    +
    +RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
    +    printf "machine ${REPO_DOMAIN} "  > /etc/apt/auth.conf && \
    +    printf "login ${REPO_USERNAME} " >> /etc/apt/auth.conf && \
    +    printf "password "               >> /etc/apt/auth.conf && \
    +    cat /run/secrets/REPO_PASSWORD   >> /etc/apt/auth.conf && \
    +    sha512sum /run/secrets/REPO_PASSWORD && \
    +    curl \
    +        --fail \
    +        --netrc-file /etc/apt/auth.conf \
    +        --output ${GPG_KEY} \
    +        https://${REPO_DOMAIN}/repo/deb/debian-release/signalwire-freeswitch-repo.gpg && \
    +    file ${GPG_KEY} && \
    +    apt-get --quiet update && \
    +    mk-build-deps \
    +        --install \
    +        --remove debian/control \
    +        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
    +    apt-get --yes --fix-broken install && \
    +    rm -f /etc/apt/auth.conf
    +
    +ENV DEB_BUILD_OPTIONS="parallel=1"
    +RUN . ~/.env && ./debian/util.sh create-orig -n -v${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    +
    +RUN . ~/.env && ORIGFILE=$(find ../ -name "freeswitch_*.orig.tar.xz" -type f) \
    +    && ./debian/util.sh create-dsc -a amd64 -z9 ${CODENAME} "$ORIGFILE"
    +
    +WORKDIR /
    +RUN dpkg-source -x freeswitch_*.dsc
    +
    +RUN cd freeswitch-*/ && debuild -S -sa -d -us -uc
    +
    +RUN cd freeswitch-*/ && debuild -b -us -uc
    +
    +RUN mkdir OUT && mv -v *.{deb,dsc,changes,tar.*} OUT/.
    +
    +RUN ls -lah /OUT
    +
    +# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
    +FROM scratch
    +COPY --from=builder /OUT/ /
    
  • .github/docker/debian/bookworm/amd64/public.unstable.Dockerfile+16 16 renamed
    @@ -59,8 +59,7 @@ COPY . ${DATA_DIR}
     WORKDIR ${DATA_DIR}
     RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
     
    -RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    -RUN . ~/.env && ./debian/util.sh prep-create-dsc ${CODENAME}
    +RUN . ~/.env && ./debian/util.sh prep-create-dsc -a amd64 ${CODENAME}
     
     RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
         printf "machine ${REPO_DOMAIN} "  > /etc/apt/auth.conf && \
    @@ -78,26 +77,27 @@ RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
         mk-build-deps \
             --install \
             --remove debian/control \
    -        --tool "apt-get --yes --no-install-recommends" && \
    +        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
         apt-get --yes --fix-broken install && \
         rm -f /etc/apt/auth.conf
     
     ENV DEB_BUILD_OPTIONS="parallel=1"
    -RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
    -  --force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
    +RUN . ~/.env && ./debian/util.sh create-orig -n -v${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
     
    -RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    +RUN . ~/.env && ORIGFILE=$(find ../ -name "freeswitch_*.orig.tar.xz" -type f) \
    +    && ./debian/util.sh create-dsc -a amd64 -z9 ${CODENAME} "$ORIGFILE"
     
    -RUN dpkg-source \
    -        --diff-ignore=.* \
    -        --compression=xz \
    -        --compression-level=9 \
    -        --build \
    -    . \
    -    && debuild -b -us -uc \
    -    && mkdir OUT \
    -    && mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
    +WORKDIR /
    +RUN dpkg-source -x freeswitch_*.dsc
    +
    +RUN cd freeswitch-*/ && debuild -S -sa -d -us -uc
    +
    +RUN cd freeswitch-*/ && debuild -b -us -uc
    +
    +RUN mkdir OUT && mv -v *.{deb,dsc,changes,tar.*} OUT/.
    +
    +RUN ls -lah /OUT
     
     # Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
     FROM scratch
    -COPY --from=builder /data/OUT/ /
    +COPY --from=builder /OUT/ /
    
  • .github/docker/debian/bookworm/arm32v7/public.release.Dockerfile+103 0 added
    @@ -0,0 +1,103 @@
    +ARG BUILDER_IMAGE=arm32v7/debian:bookworm-20240513
    +
    +FROM --platform=linux/arm32 ${BUILDER_IMAGE} AS builder
    +
    +ARG MAINTAINER_NAME="Andrey Volk"
    +ARG MAINTAINER_EMAIL="andrey@signalwire.com"
    +
    +# Credentials
    +ARG REPO_DOMAIN=freeswitch.signalwire.com
    +ARG REPO_USERNAME=user
    +
    +ARG BUILD_NUMBER=42
    +ARG GIT_SHA=0000000000
    +
    +ARG DATA_DIR=/data
    +ARG CODENAME=bookworm
    +ARG GPG_KEY="/usr/share/keyrings/signalwire-freeswitch-repo.gpg"
    +
    +MAINTAINER "${MAINTAINER_NAME} <${MAINTAINER_EMAIL}>"
    +
    +SHELL ["/bin/bash", "-c"]
    +
    +RUN apt-get -q update && \
    +    DEBIAN_FRONTEND=noninteractive apt-get -yq install \
    +        apt-transport-https \
    +        build-essential \
    +        ca-certificates \
    +        cmake \
    +        curl \
    +        debhelper \
    +        devscripts \
    +        dh-autoreconf \
    +        dos2unix \
    +        doxygen \
    +        git \
    +        graphviz \
    +        libglib2.0-dev \
    +        libssl-dev \
    +        lsb-release \
    +        pkg-config \
    +        wget
    +
    +RUN update-ca-certificates --fresh
    +
    +RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
    +    chmod +x ~/.env
    +
    +RUN . ~/.env && cat <<EOF > /etc/apt/sources.list.d/freeswitch.list
    +deb [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/rpi/debian-release ${CODENAME} main
    +deb-src [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/rpi/debian-release ${CODENAME} main
    +EOF
    +
    +RUN git config --global --add safe.directory '*' \
    +    && git config --global user.name "${MAINTAINER_NAME}" \
    +    && git config --global user.email "${MAINTAINER_EMAIL}"
    +
    +# Bootstrap and Build
    +COPY . ${DATA_DIR}
    +WORKDIR ${DATA_DIR}
    +RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
    +
    +RUN . ~/.env && ./debian/util.sh prep-create-dsc -a armhf ${CODENAME}
    +
    +RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
    +    printf "machine ${REPO_DOMAIN} "  > /etc/apt/auth.conf && \
    +    printf "login ${REPO_USERNAME} " >> /etc/apt/auth.conf && \
    +    printf "password "               >> /etc/apt/auth.conf && \
    +    cat /run/secrets/REPO_PASSWORD   >> /etc/apt/auth.conf && \
    +    sha512sum /run/secrets/REPO_PASSWORD && \
    +    curl \
    +        --fail \
    +        --netrc-file /etc/apt/auth.conf \
    +        --output ${GPG_KEY} \
    +        https://${REPO_DOMAIN}/repo/deb/rpi/debian-release/signalwire-freeswitch-repo.gpg && \
    +    file ${GPG_KEY} && \
    +    apt-get --quiet update && \
    +    mk-build-deps \
    +        --install \
    +        --remove debian/control \
    +        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
    +    apt-get --yes --fix-broken install && \
    +    rm -f /etc/apt/auth.conf
    +
    +ENV DEB_BUILD_OPTIONS="parallel=1"
    +RUN . ~/.env && ./debian/util.sh create-orig -n -v${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    +
    +RUN . ~/.env && ORIGFILE=$(find ../ -name "freeswitch_*.orig.tar.xz" -type f) \
    +    && ./debian/util.sh create-dsc -a armhf -z9 ${CODENAME} "$ORIGFILE"
    +
    +WORKDIR /
    +RUN dpkg-source -x freeswitch_*.dsc
    +
    +RUN cd freeswitch-*/ && debuild -S -sa -d -us -uc
    +
    +RUN cd freeswitch-*/ && debuild -b -us -uc
    +
    +RUN mkdir OUT && mv -v *.{deb,dsc,changes,tar.*} OUT/.
    +
    +RUN ls -lah /OUT
    +
    +# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
    +FROM scratch
    +COPY --from=builder /OUT/ /
    
  • .github/docker/debian/bookworm/arm32v7/public.unstable.Dockerfile+17 16 renamed
    @@ -59,7 +59,6 @@ COPY . ${DATA_DIR}
     WORKDIR ${DATA_DIR}
     RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
     
    -RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
     RUN . ~/.env && ./debian/util.sh prep-create-dsc -a armhf ${CODENAME}
     
     RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
    @@ -78,25 +77,27 @@ RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
         mk-build-deps \
             --install \
             --remove debian/control \
    -        --tool "apt-get --yes --no-install-recommends" && \
    +        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
         apt-get --yes --fix-broken install && \
         rm -f /etc/apt/auth.conf
     
     ENV DEB_BUILD_OPTIONS="parallel=1"
    -RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
    -  --force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
    -RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    -
    -RUN dpkg-source \
    -        --diff-ignore=.* \
    -        --compression=xz \
    -        --compression-level=9 \
    -        --build \
    -    . \
    -    && debuild -b -us -uc \
    -    && mkdir OUT \
    -    && mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
    +RUN . ~/.env && ./debian/util.sh create-orig -n -v${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    +
    +RUN . ~/.env && ORIGFILE=$(find ../ -name "freeswitch_*.orig.tar.xz" -type f) \
    +    && ./debian/util.sh create-dsc -a armhf -z9 ${CODENAME} "$ORIGFILE"
    +
    +WORKDIR /
    +RUN dpkg-source -x freeswitch_*.dsc
    +
    +RUN cd freeswitch-*/ && debuild -S -sa -d -us -uc
    +
    +RUN cd freeswitch-*/ && debuild -b -us -uc
    +
    +RUN mkdir OUT && mv -v *.{deb,dsc,changes,tar.*} OUT/.
    +
    +RUN ls -lah /OUT
     
     # Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
     FROM scratch
    -COPY --from=builder /data/OUT/ /
    +COPY --from=builder /OUT/ /
    
  • .github/docker/debian/bookworm/arm64v8/public.release.Dockerfile+103 0 added
    @@ -0,0 +1,103 @@
    +ARG BUILDER_IMAGE=arm64v8/debian:bookworm-20240513
    +
    +FROM --platform=linux/arm64 ${BUILDER_IMAGE} AS builder
    +
    +ARG MAINTAINER_NAME="Andrey Volk"
    +ARG MAINTAINER_EMAIL="andrey@signalwire.com"
    +
    +# Credentials
    +ARG REPO_DOMAIN=freeswitch.signalwire.com
    +ARG REPO_USERNAME=user
    +
    +ARG BUILD_NUMBER=42
    +ARG GIT_SHA=0000000000
    +
    +ARG DATA_DIR=/data
    +ARG CODENAME=bookworm
    +ARG GPG_KEY="/usr/share/keyrings/signalwire-freeswitch-repo.gpg"
    +
    +MAINTAINER "${MAINTAINER_NAME} <${MAINTAINER_EMAIL}>"
    +
    +SHELL ["/bin/bash", "-c"]
    +
    +RUN apt-get -q update && \
    +    DEBIAN_FRONTEND=noninteractive apt-get -yq install \
    +        apt-transport-https \
    +        build-essential \
    +        ca-certificates \
    +        cmake \
    +        curl \
    +        debhelper \
    +        devscripts \
    +        dh-autoreconf \
    +        dos2unix \
    +        doxygen \
    +        git \
    +        graphviz \
    +        libglib2.0-dev \
    +        libssl-dev \
    +        lsb-release \
    +        pkg-config \
    +        wget
    +
    +RUN update-ca-certificates --fresh
    +
    +RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
    +    chmod +x ~/.env
    +
    +RUN . ~/.env && cat <<EOF > /etc/apt/sources.list.d/freeswitch.list
    +deb [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-release ${CODENAME} main
    +deb-src [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-release ${CODENAME} main
    +EOF
    +
    +RUN git config --global --add safe.directory '*' \
    +    && git config --global user.name "${MAINTAINER_NAME}" \
    +    && git config --global user.email "${MAINTAINER_EMAIL}"
    +
    +# Bootstrap and Build
    +COPY . ${DATA_DIR}
    +WORKDIR ${DATA_DIR}
    +RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
    +
    +RUN . ~/.env && ./debian/util.sh prep-create-dsc -a arm64 ${CODENAME}
    +
    +RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
    +    printf "machine ${REPO_DOMAIN} "  > /etc/apt/auth.conf && \
    +    printf "login ${REPO_USERNAME} " >> /etc/apt/auth.conf && \
    +    printf "password "               >> /etc/apt/auth.conf && \
    +    cat /run/secrets/REPO_PASSWORD   >> /etc/apt/auth.conf && \
    +    sha512sum /run/secrets/REPO_PASSWORD && \
    +    curl \
    +        --fail \
    +        --netrc-file /etc/apt/auth.conf \
    +        --output ${GPG_KEY} \
    +        https://${REPO_DOMAIN}/repo/deb/debian-release/signalwire-freeswitch-repo.gpg && \
    +    file ${GPG_KEY} && \
    +    apt-get --quiet update && \
    +    mk-build-deps \
    +        --install \
    +        --remove debian/control \
    +        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
    +    apt-get --yes --fix-broken install && \
    +    rm -f /etc/apt/auth.conf
    +
    +ENV DEB_BUILD_OPTIONS="parallel=1"
    +RUN . ~/.env && ./debian/util.sh create-orig -n -v${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    +
    +RUN . ~/.env && ORIGFILE=$(find ../ -name "freeswitch_*.orig.tar.xz" -type f) \
    +    && ./debian/util.sh create-dsc -a arm64 -z9 ${CODENAME} "$ORIGFILE"
    +
    +WORKDIR /
    +RUN dpkg-source -x freeswitch_*.dsc
    +
    +RUN cd freeswitch-*/ && debuild -S -sa -d -us -uc
    +
    +RUN cd freeswitch-*/ && debuild -b -us -uc
    +
    +RUN mkdir OUT && mv -v *.{deb,dsc,changes,tar.*} OUT/.
    +
    +RUN ls -lah /OUT
    +
    +# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
    +FROM scratch
    +COPY --from=builder /OUT/ /
    
  • .github/docker/debian/bookworm/arm64v8/public.unstable.Dockerfile+17 16 renamed
    @@ -59,7 +59,6 @@ COPY . ${DATA_DIR}
     WORKDIR ${DATA_DIR}
     RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
     
    -RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
     RUN . ~/.env && ./debian/util.sh prep-create-dsc -a arm64 ${CODENAME}
     
     RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
    @@ -78,25 +77,27 @@ RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
         mk-build-deps \
             --install \
             --remove debian/control \
    -        --tool "apt-get --yes --no-install-recommends" && \
    +        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
         apt-get --yes --fix-broken install && \
         rm -f /etc/apt/auth.conf
     
     ENV DEB_BUILD_OPTIONS="parallel=1"
    -RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
    -  --force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
    -RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    -
    -RUN dpkg-source \
    -        --diff-ignore=.* \
    -        --compression=xz \
    -        --compression-level=9 \
    -        --build \
    -    . \
    -    && debuild -b -us -uc \
    -    && mkdir OUT \
    -    && mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
    +RUN . ~/.env && ./debian/util.sh create-orig -n -v${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    +
    +RUN . ~/.env && ORIGFILE=$(find ../ -name "freeswitch_*.orig.tar.xz" -type f) \
    +    && ./debian/util.sh create-dsc -a arm64 -z9 ${CODENAME} "$ORIGFILE"
    +
    +WORKDIR /
    +RUN dpkg-source -x freeswitch_*.dsc
    +
    +RUN cd freeswitch-*/ && debuild -S -sa -d -us -uc
    +
    +RUN cd freeswitch-*/ && debuild -b -us -uc
    +
    +RUN mkdir OUT && mv -v *.{deb,dsc,changes,tar.*} OUT/.
    +
    +RUN ls -lah /OUT
     
     # Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
     FROM scratch
    -COPY --from=builder /data/OUT/ /
    +COPY --from=builder /OUT/ /
    
  • .github/docker/debian/bullseye/amd64/public.release.Dockerfile+103 0 added
    @@ -0,0 +1,103 @@
    +ARG BUILDER_IMAGE=debian:bullseye-20240513
    +
    +FROM ${BUILDER_IMAGE} AS builder
    +
    +ARG MAINTAINER_NAME="Andrey Volk"
    +ARG MAINTAINER_EMAIL="andrey@signalwire.com"
    +
    +# Credentials
    +ARG REPO_DOMAIN=freeswitch.signalwire.com
    +ARG REPO_USERNAME=user
    +
    +ARG BUILD_NUMBER=42
    +ARG GIT_SHA=0000000000
    +
    +ARG DATA_DIR=/data
    +ARG CODENAME=bullseye
    +ARG GPG_KEY="/usr/share/keyrings/signalwire-freeswitch-repo.gpg"
    +
    +MAINTAINER "${MAINTAINER_NAME} <${MAINTAINER_EMAIL}>"
    +
    +SHELL ["/bin/bash", "-c"]
    +
    +RUN apt-get -q update && \
    +    DEBIAN_FRONTEND=noninteractive apt-get -yq install \
    +        apt-transport-https \
    +        build-essential \
    +        ca-certificates \
    +        cmake \
    +        curl \
    +        debhelper \
    +        devscripts \
    +        dh-autoreconf \
    +        dos2unix \
    +        doxygen \
    +        git \
    +        graphviz \
    +        libglib2.0-dev \
    +        libssl-dev \
    +        lsb-release \
    +        pkg-config \
    +        wget
    +
    +RUN update-ca-certificates --fresh
    +
    +RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
    +    chmod +x ~/.env
    +
    +RUN . ~/.env && cat <<EOF > /etc/apt/sources.list.d/freeswitch.list
    +deb [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-release ${CODENAME} main
    +deb-src [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-release ${CODENAME} main
    +EOF
    +
    +RUN git config --global --add safe.directory '*' \
    +    && git config --global user.name "${MAINTAINER_NAME}" \
    +    && git config --global user.email "${MAINTAINER_EMAIL}"
    +
    +# Bootstrap and Build
    +COPY . ${DATA_DIR}
    +WORKDIR ${DATA_DIR}
    +RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
    +
    +RUN . ~/.env && ./debian/util.sh prep-create-dsc -a amd64 ${CODENAME}
    +
    +RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
    +    printf "machine ${REPO_DOMAIN} "  > /etc/apt/auth.conf && \
    +    printf "login ${REPO_USERNAME} " >> /etc/apt/auth.conf && \
    +    printf "password "               >> /etc/apt/auth.conf && \
    +    cat /run/secrets/REPO_PASSWORD   >> /etc/apt/auth.conf && \
    +    sha512sum /run/secrets/REPO_PASSWORD && \
    +    curl \
    +        --fail \
    +        --netrc-file /etc/apt/auth.conf \
    +        --output ${GPG_KEY} \
    +        https://${REPO_DOMAIN}/repo/deb/debian-release/signalwire-freeswitch-repo.gpg && \
    +    file ${GPG_KEY} && \
    +    apt-get --quiet update && \
    +    mk-build-deps \
    +        --install \
    +        --remove debian/control \
    +        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
    +    apt-get --yes --fix-broken install && \
    +    rm -f /etc/apt/auth.conf
    +
    +ENV DEB_BUILD_OPTIONS="parallel=1"
    +RUN . ~/.env && ./debian/util.sh create-orig -n -v${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    +
    +RUN . ~/.env && ORIGFILE=$(find ../ -name "freeswitch_*.orig.tar.xz" -type f) \
    +    && ./debian/util.sh create-dsc -a amd64 -z9 ${CODENAME} "$ORIGFILE"
    +
    +WORKDIR /
    +RUN dpkg-source -x freeswitch_*.dsc
    +
    +RUN cd freeswitch-*/ && debuild -S -sa -d -us -uc
    +
    +RUN cd freeswitch-*/ && debuild -b -us -uc
    +
    +RUN mkdir OUT && mv -v *.{deb,dsc,changes,tar.*} OUT/.
    +
    +RUN ls -lah /OUT
    +
    +# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
    +FROM scratch
    +COPY --from=builder /OUT/ /
    
  • .github/docker/debian/bullseye/amd64/public.unstable.Dockerfile+18 17 renamed
    @@ -59,8 +59,7 @@ COPY . ${DATA_DIR}
     WORKDIR ${DATA_DIR}
     RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
     
    -RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    -RUN . ~/.env && ./debian/util.sh prep-create-dsc ${CODENAME}
    +RUN . ~/.env && ./debian/util.sh prep-create-dsc -a amd64 ${CODENAME}
     
     RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
         printf "machine ${REPO_DOMAIN} "  > /etc/apt/auth.conf && \
    @@ -78,25 +77,27 @@ RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
         mk-build-deps \
             --install \
             --remove debian/control \
    -        --tool "apt-get --yes --no-install-recommends" && \
    +        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
         apt-get --yes --fix-broken install && \
         rm -f /etc/apt/auth.conf
     
     ENV DEB_BUILD_OPTIONS="parallel=1"
    -RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
    -  --force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
    -RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    -
    -RUN dpkg-source \
    -        --diff-ignore=.* \
    -        --compression=xz \
    -        --compression-level=9 \
    -        --build \
    -    . \
    -    && debuild -b -us -uc \
    -    && mkdir OUT \
    -    && mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
    +RUN . ~/.env && ./debian/util.sh create-orig -n -v${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    +
    +RUN . ~/.env && ORIGFILE=$(find ../ -name "freeswitch_*.orig.tar.xz" -type f) \
    +    && ./debian/util.sh create-dsc -a amd64 -z9 ${CODENAME} "$ORIGFILE"
    +
    +WORKDIR /
    +RUN dpkg-source -x freeswitch_*.dsc
    +
    +RUN cd freeswitch-*/ && debuild -S -sa -d -us -uc
    +
    +RUN cd freeswitch-*/ && debuild -b -us -uc
    +
    +RUN mkdir OUT && mv -v *.{deb,dsc,changes,tar.*} OUT/.
    +
    +RUN ls -lah /OUT
     
     # Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
     FROM scratch
    -COPY --from=builder /data/OUT/ /
    +COPY --from=builder /OUT/ /
    
  • .github/docker/debian/bullseye/arm32v7/public.release.Dockerfile+103 0 added
    @@ -0,0 +1,103 @@
    +ARG BUILDER_IMAGE=arm32v7/debian:bullseye-20240513
    +
    +FROM --platform=linux/arm32 ${BUILDER_IMAGE} AS builder
    +
    +ARG MAINTAINER_NAME="Andrey Volk"
    +ARG MAINTAINER_EMAIL="andrey@signalwire.com"
    +
    +# Credentials
    +ARG REPO_DOMAIN=freeswitch.signalwire.com
    +ARG REPO_USERNAME=user
    +
    +ARG BUILD_NUMBER=42
    +ARG GIT_SHA=0000000000
    +
    +ARG DATA_DIR=/data
    +ARG CODENAME=bullseye
    +ARG GPG_KEY="/usr/share/keyrings/signalwire-freeswitch-repo.gpg"
    +
    +MAINTAINER "${MAINTAINER_NAME} <${MAINTAINER_EMAIL}>"
    +
    +SHELL ["/bin/bash", "-c"]
    +
    +RUN apt-get -q update && \
    +    DEBIAN_FRONTEND=noninteractive apt-get -yq install \
    +        apt-transport-https \
    +        build-essential \
    +        ca-certificates \
    +        cmake \
    +        curl \
    +        debhelper \
    +        devscripts \
    +        dh-autoreconf \
    +        dos2unix \
    +        doxygen \
    +        git \
    +        graphviz \
    +        libglib2.0-dev \
    +        libssl-dev \
    +        lsb-release \
    +        pkg-config \
    +        wget
    +
    +RUN update-ca-certificates --fresh
    +
    +RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
    +    chmod +x ~/.env
    +
    +RUN . ~/.env && cat <<EOF > /etc/apt/sources.list.d/freeswitch.list
    +deb [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/rpi/debian-release ${CODENAME} main
    +deb-src [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/rpi/debian-release ${CODENAME} main
    +EOF
    +
    +RUN git config --global --add safe.directory '*' \
    +    && git config --global user.name "${MAINTAINER_NAME}" \
    +    && git config --global user.email "${MAINTAINER_EMAIL}"
    +
    +# Bootstrap and Build
    +COPY . ${DATA_DIR}
    +WORKDIR ${DATA_DIR}
    +RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
    +
    +RUN . ~/.env && ./debian/util.sh prep-create-dsc -a armhf ${CODENAME}
    +
    +RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
    +    printf "machine ${REPO_DOMAIN} "  > /etc/apt/auth.conf && \
    +    printf "login ${REPO_USERNAME} " >> /etc/apt/auth.conf && \
    +    printf "password "               >> /etc/apt/auth.conf && \
    +    cat /run/secrets/REPO_PASSWORD   >> /etc/apt/auth.conf && \
    +    sha512sum /run/secrets/REPO_PASSWORD && \
    +    curl \
    +        --fail \
    +        --netrc-file /etc/apt/auth.conf \
    +        --output ${GPG_KEY} \
    +        https://${REPO_DOMAIN}/repo/deb/rpi/debian-release/signalwire-freeswitch-repo.gpg && \
    +    file ${GPG_KEY} && \
    +    apt-get --quiet update && \
    +    mk-build-deps \
    +        --install \
    +        --remove debian/control \
    +        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
    +    apt-get --yes --fix-broken install && \
    +    rm -f /etc/apt/auth.conf
    +
    +ENV DEB_BUILD_OPTIONS="parallel=1"
    +RUN . ~/.env && ./debian/util.sh create-orig -n -v${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    +
    +RUN . ~/.env && ORIGFILE=$(find ../ -name "freeswitch_*.orig.tar.xz" -type f) \
    +    && ./debian/util.sh create-dsc -a armhf -z9 ${CODENAME} "$ORIGFILE"
    +
    +WORKDIR /
    +RUN dpkg-source -x freeswitch_*.dsc
    +
    +RUN cd freeswitch-*/ && debuild -S -sa -d -us -uc
    +
    +RUN cd freeswitch-*/ && debuild -b -us -uc
    +
    +RUN mkdir OUT && mv -v *.{deb,dsc,changes,tar.*} OUT/.
    +
    +RUN ls -lah /OUT
    +
    +# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
    +FROM scratch
    +COPY --from=builder /OUT/ /
    
  • .github/docker/debian/bullseye/arm32v7/public.unstable.Dockerfile+17 16 renamed
    @@ -59,7 +59,6 @@ COPY . ${DATA_DIR}
     WORKDIR ${DATA_DIR}
     RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
     
    -RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
     RUN . ~/.env && ./debian/util.sh prep-create-dsc -a armhf ${CODENAME}
     
     RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
    @@ -78,25 +77,27 @@ RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
         mk-build-deps \
             --install \
             --remove debian/control \
    -        --tool "apt-get --yes --no-install-recommends" && \
    +        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
         apt-get --yes --fix-broken install && \
         rm -f /etc/apt/auth.conf
     
     ENV DEB_BUILD_OPTIONS="parallel=1"
    -RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
    -  --force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
    -RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    -
    -RUN dpkg-source \
    -        --diff-ignore=.* \
    -        --compression=xz \
    -        --compression-level=9 \
    -        --build \
    -    . \
    -    && debuild -b -us -uc \
    -    && mkdir OUT \
    -    && mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
    +RUN . ~/.env && ./debian/util.sh create-orig -n -v${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    +
    +RUN . ~/.env && ORIGFILE=$(find ../ -name "freeswitch_*.orig.tar.xz" -type f) \
    +    && ./debian/util.sh create-dsc -a armhf -z9 ${CODENAME} "$ORIGFILE"
    +
    +WORKDIR /
    +RUN dpkg-source -x freeswitch_*.dsc
    +
    +RUN cd freeswitch-*/ && debuild -S -sa -d -us -uc
    +
    +RUN cd freeswitch-*/ && debuild -b -us -uc
    +
    +RUN mkdir OUT && mv -v *.{deb,dsc,changes,tar.*} OUT/.
    +
    +RUN ls -lah /OUT
     
     # Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
     FROM scratch
    -COPY --from=builder /data/OUT/ /
    +COPY --from=builder /OUT/ /
    
  • .github/docker/debian/bullseye/arm64v8/public.release.Dockerfile+103 0 added
    @@ -0,0 +1,103 @@
    +ARG BUILDER_IMAGE=arm64v8/debian:bullseye-20240513
    +
    +FROM --platform=linux/arm64 ${BUILDER_IMAGE} AS builder
    +
    +ARG MAINTAINER_NAME="Andrey Volk"
    +ARG MAINTAINER_EMAIL="andrey@signalwire.com"
    +
    +# Credentials
    +ARG REPO_DOMAIN=freeswitch.signalwire.com
    +ARG REPO_USERNAME=user
    +
    +ARG BUILD_NUMBER=42
    +ARG GIT_SHA=0000000000
    +
    +ARG DATA_DIR=/data
    +ARG CODENAME=bullseye
    +ARG GPG_KEY="/usr/share/keyrings/signalwire-freeswitch-repo.gpg"
    +
    +MAINTAINER "${MAINTAINER_NAME} <${MAINTAINER_EMAIL}>"
    +
    +SHELL ["/bin/bash", "-c"]
    +
    +RUN apt-get -q update && \
    +    DEBIAN_FRONTEND=noninteractive apt-get -yq install \
    +        apt-transport-https \
    +        build-essential \
    +        ca-certificates \
    +        cmake \
    +        curl \
    +        debhelper \
    +        devscripts \
    +        dh-autoreconf \
    +        dos2unix \
    +        doxygen \
    +        git \
    +        graphviz \
    +        libglib2.0-dev \
    +        libssl-dev \
    +        lsb-release \
    +        pkg-config \
    +        wget
    +
    +RUN update-ca-certificates --fresh
    +
    +RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
    +    chmod +x ~/.env
    +
    +RUN . ~/.env && cat <<EOF > /etc/apt/sources.list.d/freeswitch.list
    +deb [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-release ${CODENAME} main
    +deb-src [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-release ${CODENAME} main
    +EOF
    +
    +RUN git config --global --add safe.directory '*' \
    +    && git config --global user.name "${MAINTAINER_NAME}" \
    +    && git config --global user.email "${MAINTAINER_EMAIL}"
    +
    +# Bootstrap and Build
    +COPY . ${DATA_DIR}
    +WORKDIR ${DATA_DIR}
    +RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
    +
    +RUN . ~/.env && ./debian/util.sh prep-create-dsc -a arm64 ${CODENAME}
    +
    +RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
    +    printf "machine ${REPO_DOMAIN} "  > /etc/apt/auth.conf && \
    +    printf "login ${REPO_USERNAME} " >> /etc/apt/auth.conf && \
    +    printf "password "               >> /etc/apt/auth.conf && \
    +    cat /run/secrets/REPO_PASSWORD   >> /etc/apt/auth.conf && \
    +    sha512sum /run/secrets/REPO_PASSWORD && \
    +    curl \
    +        --fail \
    +        --netrc-file /etc/apt/auth.conf \
    +        --output ${GPG_KEY} \
    +        https://${REPO_DOMAIN}/repo/deb/debian-release/signalwire-freeswitch-repo.gpg && \
    +    file ${GPG_KEY} && \
    +    apt-get --quiet update && \
    +    mk-build-deps \
    +        --install \
    +        --remove debian/control \
    +        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
    +    apt-get --yes --fix-broken install && \
    +    rm -f /etc/apt/auth.conf
    +
    +ENV DEB_BUILD_OPTIONS="parallel=1"
    +RUN . ~/.env && ./debian/util.sh create-orig -n -v${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    +
    +RUN . ~/.env && ORIGFILE=$(find ../ -name "freeswitch_*.orig.tar.xz" -type f) \
    +    && ./debian/util.sh create-dsc -a arm64 -z9 ${CODENAME} "$ORIGFILE"
    +
    +WORKDIR /
    +RUN dpkg-source -x freeswitch_*.dsc
    +
    +RUN cd freeswitch-*/ && debuild -S -sa -d -us -uc
    +
    +RUN cd freeswitch-*/ && debuild -b -us -uc
    +
    +RUN mkdir OUT && mv -v *.{deb,dsc,changes,tar.*} OUT/.
    +
    +RUN ls -lah /OUT
    +
    +# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
    +FROM scratch
    +COPY --from=builder /OUT/ /
    
  • .github/docker/debian/bullseye/arm64v8/public.unstable.Dockerfile+17 16 renamed
    @@ -59,7 +59,6 @@ COPY . ${DATA_DIR}
     WORKDIR ${DATA_DIR}
     RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
     
    -RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
     RUN . ~/.env && ./debian/util.sh prep-create-dsc -a arm64 ${CODENAME}
     
     RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
    @@ -78,25 +77,27 @@ RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
         mk-build-deps \
             --install \
             --remove debian/control \
    -        --tool "apt-get --yes --no-install-recommends" && \
    +        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
         apt-get --yes --fix-broken install && \
         rm -f /etc/apt/auth.conf
     
     ENV DEB_BUILD_OPTIONS="parallel=1"
    -RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
    -  --force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
    -RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    -
    -RUN dpkg-source \
    -        --diff-ignore=.* \
    -        --compression=xz \
    -        --compression-level=9 \
    -        --build \
    -    . \
    -    && debuild -b -us -uc \
    -    && mkdir OUT \
    -    && mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
    +RUN . ~/.env && ./debian/util.sh create-orig -n -v${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    +
    +RUN . ~/.env && ORIGFILE=$(find ../ -name "freeswitch_*.orig.tar.xz" -type f) \
    +    && ./debian/util.sh create-dsc -a arm64 -z9 ${CODENAME} "$ORIGFILE"
    +
    +WORKDIR /
    +RUN dpkg-source -x freeswitch_*.dsc
    +
    +RUN cd freeswitch-*/ && debuild -S -sa -d -us -uc
    +
    +RUN cd freeswitch-*/ && debuild -b -us -uc
    +
    +RUN mkdir OUT && mv -v *.{deb,dsc,changes,tar.*} OUT/.
    +
    +RUN ls -lah /OUT
     
     # Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
     FROM scratch
    -COPY --from=builder /data/OUT/ /
    +COPY --from=builder /OUT/ /
    
  • .github/docker/debian/trixie/amd64/public.release.Dockerfile+85 0 added
    @@ -0,0 +1,85 @@
    +ARG BUILDER_IMAGE=debian:trixie-20250811
    +
    +FROM ${BUILDER_IMAGE} AS builder
    +
    +ARG MAINTAINER_NAME="Andrey Volk"
    +ARG MAINTAINER_EMAIL="andrey@signalwire.com"
    +
    +ARG BUILD_NUMBER=42
    +ARG GIT_SHA=0000000000
    +
    +ARG DATA_DIR=/data
    +ARG CODENAME=trixie
    +
    +LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
    +
    +SHELL ["/bin/bash", "-c"]
    +
    +RUN apt-get -q update && \
    +    DEBIAN_FRONTEND=noninteractive apt-get -yq install \
    +        apt-transport-https \
    +        build-essential \
    +        ca-certificates \
    +        cmake \
    +        curl \
    +        debhelper \
    +        devscripts \
    +        dh-autoreconf \
    +        dos2unix \
    +        doxygen \
    +        git \
    +        graphviz \
    +        libglib2.0-dev \
    +        libssl-dev \
    +        lsb-release \
    +        pkg-config \
    +        wget
    +
    +RUN update-ca-certificates --fresh
    +
    +RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
    +    chmod +x ~/.env
    +
    +RUN git config --global --add safe.directory '*' \
    +    && git config --global user.name "${MAINTAINER_NAME}" \
    +    && git config --global user.email "${MAINTAINER_EMAIL}"
    +
    +# Bootstrap and Build
    +COPY . ${DATA_DIR}
    +WORKDIR ${DATA_DIR}
    +RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
    +
    +RUN . ~/.env && ./debian/util.sh prep-create-dsc -a amd64 ${CODENAME}
    +
    +RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
    +    sha512sum /run/secrets/REPO_PASSWORD && \
    +    curl -sSL https://freeswitch.org/fsget | \
    +        bash -s $(cat /run/secrets/REPO_PASSWORD) prerelease && \
    +    apt-get --quiet update && \
    +    mk-build-deps \
    +        --install \
    +        --remove debian/control \
    +        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
    +    apt-get --yes --fix-broken install && \
    +    rm -f /etc/apt/auth.conf
    +
    +ENV DEB_BUILD_OPTIONS="parallel=1"
    +RUN . ~/.env && ./debian/util.sh create-orig -n -v${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    +
    +RUN . ~/.env && ORIGFILE=$(find ../ -name "freeswitch_*.orig.tar.xz" -type f) \
    +    && ./debian/util.sh create-dsc -a amd64 -z9 ${CODENAME} "$ORIGFILE"
    +
    +WORKDIR /
    +RUN dpkg-source -x freeswitch_*.dsc
    +
    +RUN cd freeswitch-*/ && debuild -S -sa -d -us -uc
    +
    +RUN cd freeswitch-*/ && debuild -b -us -uc
    +
    +RUN mkdir OUT && mv -v *.{deb,dsc,changes,tar.*} OUT/.
    +
    +RUN ls -lah /OUT
    +
    +# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
    +FROM scratch
    +COPY --from=builder /OUT/ /
    
  • .github/docker/debian/trixie/amd64/public.unstable.Dockerfile+85 0 added
    @@ -0,0 +1,85 @@
    +ARG BUILDER_IMAGE=debian:trixie-20250811
    +
    +FROM ${BUILDER_IMAGE} AS builder
    +
    +ARG MAINTAINER_NAME="Andrey Volk"
    +ARG MAINTAINER_EMAIL="andrey@signalwire.com"
    +
    +ARG BUILD_NUMBER=42
    +ARG GIT_SHA=0000000000
    +
    +ARG DATA_DIR=/data
    +ARG CODENAME=trixie
    +
    +LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
    +
    +SHELL ["/bin/bash", "-c"]
    +
    +RUN apt-get -q update && \
    +    DEBIAN_FRONTEND=noninteractive apt-get -yq install \
    +        apt-transport-https \
    +        build-essential \
    +        ca-certificates \
    +        cmake \
    +        curl \
    +        debhelper \
    +        devscripts \
    +        dh-autoreconf \
    +        dos2unix \
    +        doxygen \
    +        git \
    +        graphviz \
    +        libglib2.0-dev \
    +        libssl-dev \
    +        lsb-release \
    +        pkg-config \
    +        wget
    +
    +RUN update-ca-certificates --fresh
    +
    +RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
    +    chmod +x ~/.env
    +
    +RUN git config --global --add safe.directory '*' \
    +    && git config --global user.name "${MAINTAINER_NAME}" \
    +    && git config --global user.email "${MAINTAINER_EMAIL}"
    +
    +# Bootstrap and Build
    +COPY . ${DATA_DIR}
    +WORKDIR ${DATA_DIR}
    +RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
    +
    +RUN . ~/.env && ./debian/util.sh prep-create-dsc -a amd64 ${CODENAME}
    +
    +RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
    +    sha512sum /run/secrets/REPO_PASSWORD && \
    +    curl -sSL https://freeswitch.org/fsget | \
    +        bash -s $(cat /run/secrets/REPO_PASSWORD) prerelease && \
    +    apt-get --quiet update && \
    +    mk-build-deps \
    +        --install \
    +        --remove debian/control \
    +        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
    +    apt-get --yes --fix-broken install && \
    +    rm -f /etc/apt/auth.conf
    +
    +ENV DEB_BUILD_OPTIONS="parallel=1"
    +RUN . ~/.env && ./debian/util.sh create-orig -n -v${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    +
    +RUN . ~/.env && ORIGFILE=$(find ../ -name "freeswitch_*.orig.tar.xz" -type f) \
    +    && ./debian/util.sh create-dsc -a amd64 -z9 ${CODENAME} "$ORIGFILE"
    +
    +WORKDIR /
    +RUN dpkg-source -x freeswitch_*.dsc
    +
    +RUN cd freeswitch-*/ && debuild -S -sa -d -us -uc
    +
    +RUN cd freeswitch-*/ && debuild -b -us -uc
    +
    +RUN mkdir OUT && mv -v *.{deb,dsc,changes,tar.*} OUT/.
    +
    +RUN ls -lah /OUT
    +
    +# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
    +FROM scratch
    +COPY --from=builder /OUT/ /
    
  • .github/docker/debian/trixie/arm32v7/public.release.Dockerfile+85 0 added
    @@ -0,0 +1,85 @@
    +ARG BUILDER_IMAGE=arm32v7/debian:trixie-20250811
    +
    +FROM --platform=linux/arm/v7 ${BUILDER_IMAGE} AS builder
    +
    +ARG MAINTAINER_NAME="Andrey Volk"
    +ARG MAINTAINER_EMAIL="andrey@signalwire.com"
    +
    +ARG BUILD_NUMBER=42
    +ARG GIT_SHA=0000000000
    +
    +ARG DATA_DIR=/data
    +ARG CODENAME=trixie
    +
    +LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
    +
    +SHELL ["/bin/bash", "-c"]
    +
    +RUN apt-get -q update && \
    +    DEBIAN_FRONTEND=noninteractive apt-get -yq install \
    +        apt-transport-https \
    +        build-essential \
    +        ca-certificates \
    +        cmake \
    +        curl \
    +        debhelper \
    +        devscripts \
    +        dh-autoreconf \
    +        dos2unix \
    +        doxygen \
    +        git \
    +        graphviz \
    +        libglib2.0-dev \
    +        libssl-dev \
    +        lsb-release \
    +        pkg-config \
    +        wget
    +
    +RUN update-ca-certificates --fresh
    +
    +RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
    +    chmod +x ~/.env
    +
    +RUN git config --global --add safe.directory '*' \
    +    && git config --global user.name "${MAINTAINER_NAME}" \
    +    && git config --global user.email "${MAINTAINER_EMAIL}"
    +
    +# Bootstrap and Build
    +COPY . ${DATA_DIR}
    +WORKDIR ${DATA_DIR}
    +RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
    +
    +RUN . ~/.env && ./debian/util.sh prep-create-dsc -a armhf ${CODENAME}
    +
    +RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
    +    sha512sum /run/secrets/REPO_PASSWORD && \
    +    curl -sSL https://freeswitch.org/fsget | \
    +        bash -s $(cat /run/secrets/REPO_PASSWORD) prerelease && \
    +    apt-get --quiet update && \
    +    mk-build-deps \
    +        --install \
    +        --remove debian/control \
    +        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
    +    apt-get --yes --fix-broken install && \
    +    rm -f /etc/apt/auth.conf
    +
    +ENV DEB_BUILD_OPTIONS="parallel=1"
    +RUN . ~/.env && ./debian/util.sh create-orig -n -v${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    +
    +RUN . ~/.env && ORIGFILE=$(find ../ -name "freeswitch_*.orig.tar.xz" -type f) \
    +    && ./debian/util.sh create-dsc -a armhf -z9 ${CODENAME} "$ORIGFILE"
    +
    +WORKDIR /
    +RUN dpkg-source -x freeswitch_*.dsc
    +
    +RUN cd freeswitch-*/ && debuild -S -sa -d -us -uc
    +
    +RUN cd freeswitch-*/ && debuild -b -us -uc
    +
    +RUN mkdir OUT && mv -v *.{deb,dsc,changes,tar.*} OUT/.
    +
    +RUN ls -lah /OUT
    +
    +# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
    +FROM scratch
    +COPY --from=builder /OUT/ /
    
  • .github/docker/debian/trixie/arm32v7/public.unstable.Dockerfile+85 0 added
    @@ -0,0 +1,85 @@
    +ARG BUILDER_IMAGE=arm32v7/debian:trixie-20250811
    +
    +FROM --platform=linux/arm/v7 ${BUILDER_IMAGE} AS builder
    +
    +ARG MAINTAINER_NAME="Andrey Volk"
    +ARG MAINTAINER_EMAIL="andrey@signalwire.com"
    +
    +ARG BUILD_NUMBER=42
    +ARG GIT_SHA=0000000000
    +
    +ARG DATA_DIR=/data
    +ARG CODENAME=trixie
    +
    +LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
    +
    +SHELL ["/bin/bash", "-c"]
    +
    +RUN apt-get -q update && \
    +    DEBIAN_FRONTEND=noninteractive apt-get -yq install \
    +        apt-transport-https \
    +        build-essential \
    +        ca-certificates \
    +        cmake \
    +        curl \
    +        debhelper \
    +        devscripts \
    +        dh-autoreconf \
    +        dos2unix \
    +        doxygen \
    +        git \
    +        graphviz \
    +        libglib2.0-dev \
    +        libssl-dev \
    +        lsb-release \
    +        pkg-config \
    +        wget
    +
    +RUN update-ca-certificates --fresh
    +
    +RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
    +    chmod +x ~/.env
    +
    +RUN git config --global --add safe.directory '*' \
    +    && git config --global user.name "${MAINTAINER_NAME}" \
    +    && git config --global user.email "${MAINTAINER_EMAIL}"
    +
    +# Bootstrap and Build
    +COPY . ${DATA_DIR}
    +WORKDIR ${DATA_DIR}
    +RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
    +
    +RUN . ~/.env && ./debian/util.sh prep-create-dsc -a armhf ${CODENAME}
    +
    +RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
    +    sha512sum /run/secrets/REPO_PASSWORD && \
    +    curl -sSL https://freeswitch.org/fsget | \
    +        bash -s $(cat /run/secrets/REPO_PASSWORD) prerelease && \
    +    apt-get --quiet update && \
    +    mk-build-deps \
    +        --install \
    +        --remove debian/control \
    +        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
    +    apt-get --yes --fix-broken install && \
    +    rm -f /etc/apt/auth.conf
    +
    +ENV DEB_BUILD_OPTIONS="parallel=1"
    +RUN . ~/.env && ./debian/util.sh create-orig -n -v${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    +
    +RUN . ~/.env && ORIGFILE=$(find ../ -name "freeswitch_*.orig.tar.xz" -type f) \
    +    && ./debian/util.sh create-dsc -a armhf -z9 ${CODENAME} "$ORIGFILE"
    +
    +WORKDIR /
    +RUN dpkg-source -x freeswitch_*.dsc
    +
    +RUN cd freeswitch-*/ && debuild -S -sa -d -us -uc
    +
    +RUN cd freeswitch-*/ && debuild -b -us -uc
    +
    +RUN mkdir OUT && mv -v *.{deb,dsc,changes,tar.*} OUT/.
    +
    +RUN ls -lah /OUT
    +
    +# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
    +FROM scratch
    +COPY --from=builder /OUT/ /
    
  • .github/docker/debian/trixie/arm64v8/public.release.Dockerfile+85 0 added
    @@ -0,0 +1,85 @@
    +ARG BUILDER_IMAGE=arm64v8/debian:trixie-20250811
    +
    +FROM --platform=linux/arm64 ${BUILDER_IMAGE} AS builder
    +
    +ARG MAINTAINER_NAME="Andrey Volk"
    +ARG MAINTAINER_EMAIL="andrey@signalwire.com"
    +
    +ARG BUILD_NUMBER=42
    +ARG GIT_SHA=0000000000
    +
    +ARG DATA_DIR=/data
    +ARG CODENAME=trixie
    +
    +LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
    +
    +SHELL ["/bin/bash", "-c"]
    +
    +RUN apt-get -q update && \
    +    DEBIAN_FRONTEND=noninteractive apt-get -yq install \
    +        apt-transport-https \
    +        build-essential \
    +        ca-certificates \
    +        cmake \
    +        curl \
    +        debhelper \
    +        devscripts \
    +        dh-autoreconf \
    +        dos2unix \
    +        doxygen \
    +        git \
    +        graphviz \
    +        libglib2.0-dev \
    +        libssl-dev \
    +        lsb-release \
    +        pkg-config \
    +        wget
    +
    +RUN update-ca-certificates --fresh
    +
    +RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
    +    chmod +x ~/.env
    +
    +RUN git config --global --add safe.directory '*' \
    +    && git config --global user.name "${MAINTAINER_NAME}" \
    +    && git config --global user.email "${MAINTAINER_EMAIL}"
    +
    +# Bootstrap and Build
    +COPY . ${DATA_DIR}
    +WORKDIR ${DATA_DIR}
    +RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
    +
    +RUN . ~/.env && ./debian/util.sh prep-create-dsc -a arm64 ${CODENAME}
    +
    +RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
    +    sha512sum /run/secrets/REPO_PASSWORD && \
    +    curl -sSL https://freeswitch.org/fsget | \
    +        bash -s $(cat /run/secrets/REPO_PASSWORD) prerelease && \
    +    apt-get --quiet update && \
    +    mk-build-deps \
    +        --install \
    +        --remove debian/control \
    +        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
    +    apt-get --yes --fix-broken install && \
    +    rm -f /etc/apt/auth.conf
    +
    +ENV DEB_BUILD_OPTIONS="parallel=1"
    +RUN . ~/.env && ./debian/util.sh create-orig -n -v${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    +
    +RUN . ~/.env && ORIGFILE=$(find ../ -name "freeswitch_*.orig.tar.xz" -type f) \
    +    && ./debian/util.sh create-dsc -a arm64 -z9 ${CODENAME} "$ORIGFILE"
    +
    +WORKDIR /
    +RUN dpkg-source -x freeswitch_*.dsc
    +
    +RUN cd freeswitch-*/ && debuild -S -sa -d -us -uc
    +
    +RUN cd freeswitch-*/ && debuild -b -us -uc
    +
    +RUN mkdir OUT && mv -v *.{deb,dsc,changes,tar.*} OUT/.
    +
    +RUN ls -lah /OUT
    +
    +# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
    +FROM scratch
    +COPY --from=builder /OUT/ /
    
  • .github/docker/debian/trixie/arm64v8/public.unstable.Dockerfile+85 0 added
    @@ -0,0 +1,85 @@
    +ARG BUILDER_IMAGE=arm64v8/debian:trixie-20250811
    +
    +FROM --platform=linux/arm64 ${BUILDER_IMAGE} AS builder
    +
    +ARG MAINTAINER_NAME="Andrey Volk"
    +ARG MAINTAINER_EMAIL="andrey@signalwire.com"
    +
    +ARG BUILD_NUMBER=42
    +ARG GIT_SHA=0000000000
    +
    +ARG DATA_DIR=/data
    +ARG CODENAME=trixie
    +
    +LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
    +
    +SHELL ["/bin/bash", "-c"]
    +
    +RUN apt-get -q update && \
    +    DEBIAN_FRONTEND=noninteractive apt-get -yq install \
    +        apt-transport-https \
    +        build-essential \
    +        ca-certificates \
    +        cmake \
    +        curl \
    +        debhelper \
    +        devscripts \
    +        dh-autoreconf \
    +        dos2unix \
    +        doxygen \
    +        git \
    +        graphviz \
    +        libglib2.0-dev \
    +        libssl-dev \
    +        lsb-release \
    +        pkg-config \
    +        wget
    +
    +RUN update-ca-certificates --fresh
    +
    +RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
    +    chmod +x ~/.env
    +
    +RUN git config --global --add safe.directory '*' \
    +    && git config --global user.name "${MAINTAINER_NAME}" \
    +    && git config --global user.email "${MAINTAINER_EMAIL}"
    +
    +# Bootstrap and Build
    +COPY . ${DATA_DIR}
    +WORKDIR ${DATA_DIR}
    +RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
    +
    +RUN . ~/.env && ./debian/util.sh prep-create-dsc -a arm64 ${CODENAME}
    +
    +RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
    +    sha512sum /run/secrets/REPO_PASSWORD && \
    +    curl -sSL https://freeswitch.org/fsget | \
    +        bash -s $(cat /run/secrets/REPO_PASSWORD) prerelease && \
    +    apt-get --quiet update && \
    +    mk-build-deps \
    +        --install \
    +        --remove debian/control \
    +        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
    +    apt-get --yes --fix-broken install && \
    +    rm -f /etc/apt/auth.conf
    +
    +ENV DEB_BUILD_OPTIONS="parallel=1"
    +RUN . ~/.env && ./debian/util.sh create-orig -n -v${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
    +
    +RUN . ~/.env && ORIGFILE=$(find ../ -name "freeswitch_*.orig.tar.xz" -type f) \
    +    && ./debian/util.sh create-dsc -a arm64 -z9 ${CODENAME} "$ORIGFILE"
    +
    +WORKDIR /
    +RUN dpkg-source -x freeswitch_*.dsc
    +
    +RUN cd freeswitch-*/ && debuild -S -sa -d -us -uc
    +
    +RUN cd freeswitch-*/ && debuild -b -us -uc
    +
    +RUN mkdir OUT && mv -v *.{deb,dsc,changes,tar.*} OUT/.
    +
    +RUN ls -lah /OUT
    +
    +# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
    +FROM scratch
    +COPY --from=builder /OUT/ /
    
  • .github/workflows/build.yml+126 30 modified
    @@ -6,23 +6,43 @@ on:
         branches:
           - master
           - v1.10
    +      - v1.11
         paths:
           - "**"
       workflow_dispatch:
    +    inputs:
    +      freeswitch_ref:
    +        description: "FreeSWITCH repository ref"
    +        required: true
    +        default: master
    +        type: string
    +      release:
    +        description: "FreeSWITCH release type"
    +        type: choice
    +        required: true
    +        default: unstable
    +        options:
    +          - release
    +          - unstable
    +      publish:
    +        description: "Publish build data"
    +        required: true
    +        default: false
    +        type: boolean
     
     concurrency:
       group: ${{ github.head_ref || github.ref }}
     
     jobs:
    -  excludes:
    -    name: 'Excludes'
    -    # if: github.event.pull_request.head.repo.full_name == github.repository
    +  preconfig:
    +    name: "Preconfig"
         runs-on: ubuntu-latest
         outputs:
           deb: ${{ steps.deb.outputs.excludes }}
    +      release: ${{ steps.release.outputs.release }}
         steps:
    -      - id: deb
    -        name: Generate Matrix excludes for DEB
    +      - name: Generate Matrix excludes for DEB
    +        id: deb
             run: |
               JSON="[]"
     
    @@ -34,12 +54,6 @@ jobs:
                       "name": "arm64v8"
                     }
                   },
    -              {
    -                "version": "bullseye",
    -                "platform": {
    -                  "name": "amd64"
    -                }
    -              },
                   {
                     "version": "bullseye",
                     "platform": {
    @@ -51,14 +65,63 @@ jobs:
     
               echo "excludes=$(echo $JSON | jq -c .)" | tee -a $GITHUB_OUTPUT
     
    -  deb:
    -    name: 'DEB'
    -    # if: github.event.pull_request.head.repo.full_name == github.repository
    +      - name: Get release type based on branch
    +        id: release
    +        run: |
    +          if [[ '${{ github.event_name }}' == 'pull_request' ]]; then
    +            if [[ '${{ github.base_ref }}' == 'v1.10' || '${{ github.base_ref }}' == 'v1.11' ]]; then
    +              echo 'release=release' | tee -a $GITHUB_OUTPUT
    +            else
    +              echo 'release=unstable' | tee -a $GITHUB_OUTPUT
    +            fi
    +          elif [[ '${{ github.event_name }}' == 'workflow_dispatch' ]]; then
    +            echo 'release=${{ inputs.release }}' | tee -a $GITHUB_OUTPUT
    +          elif [[ '${{ github.ref }}' == 'refs/heads/v1.10' || '${{ github.ref }}' == 'refs/heads/v1.11' ]]; then
    +            echo 'release=release' | tee -a $GITHUB_OUTPUT
    +          else
    +            echo 'release=unstable' | tee -a $GITHUB_OUTPUT
    +          fi
    +
    +  get-nonce:
    +    name: "Get Nonce for token"
    +    runs-on: freeswitch-repo-auth-client
    +    outputs:
    +      nonce: ${{ steps.get-nonce.outputs.nonce }}
    +    steps:
    +      - name: Get Nonce
    +        id: get-nonce
    +        uses: signalwire/actions-template/.github/actions/repo-auth-client@main
    +        with:
    +          mode: nonce
    +
    +  issue-token:
    +    name: "Issue temporary token"
    +    runs-on: ubuntu-latest
    +    needs: get-nonce
    +    env:
    +      NONCE: ${{ needs.get-nonce.outputs.nonce }}
    +    outputs:
    +      token: ${{ steps.issue-token.outputs.token }}
    +    steps:
    +      - name: Mask Token
    +        run: echo "::add-mask::$NONCE"
    +
    +      - name: Issue Token
    +        id: issue-token
    +        uses: signalwire/actions-template/.github/actions/repo-auth-client@main
    +        env:
    +          NONCE: ${{ needs.get-nonce.outputs.nonce }}
    +        with:
    +          mode: issue
    +
    +  deb-public:
    +    name: "DEB-PUBLIC"
         permissions:
           id-token: write
           contents: read
         needs:
    -      - excludes
    +      - preconfig
    +      - issue-token
         uses: signalwire/actions-template/.github/workflows/cicd-docker-build-and-distribute.yml@main
         strategy:
           # max-parallel: 1
    @@ -67,46 +130,79 @@ jobs:
             os:
               - debian
             version:
    +          - trixie
               - bookworm
               - bullseye
             platform:
               - name: amd64
                 runner: ubuntu-latest
               - name: arm32v7
    -            runner: linux-arm64-4-core-public
    +            runner: ubuntu-24.04-arm
               - name: arm64v8
    -            runner: linux-arm64-4-core-public
    -        exclude: ${{ fromJson(needs.excludes.outputs.deb) }}
    +            runner: ubuntu-24.04-arm
    +        release:
    +          - ${{ needs.preconfig.outputs.release }}
    +        exclude: ${{ fromJson(needs.preconfig.outputs.deb) }}
         with:
           RUNNER: ${{ matrix.platform.runner }}
    +      REF: ${{ inputs.freeswitch_ref }}
           ARTIFACTS_PATTERN: '.*\.(deb|dsc|changes|tar.bz2|tar.gz|tar.lzma|tar.xz)$'
    -      DOCKERFILE: .github/docker/${{ matrix.os }}/${{ matrix.version }}/${{ matrix.platform.name }}/Dockerfile
    -      MAINTAINER: 'Andrey Volk <andrey@signalwire.com>'
    -      META_FILE_PATH_PREFIX: /var/www/freeswitch/${{ github.ref_name }}/${{ github.run_id }}-${{ github.run_number }}
    +      DOCKERFILE: .github/docker/${{ matrix.os }}/${{ matrix.version }}/${{ matrix.platform.name }}/public.${{ matrix.release }}.Dockerfile
    +      MAINTAINER: "Andrey Volk <andrey@signalwire.com>"
    +      META_FILE_PATH_PREFIX: /var/www/freeswitch/public/${{ matrix.release }}/${{ github.ref_name }}/${{ github.run_id }}-${{ github.run_number }}
           PLATFORM: ${{ matrix.platform.name }}
    -      REPO_DOMAIN: freeswitch.signalwire.com
    -      TARGET_ARTIFACT_NAME: ${{ matrix.os }}-${{ matrix.version }}-${{ matrix.platform.name }}-artifact
    -      UPLOAD_BUILD_ARTIFACTS: ${{ github.event_name != 'pull_request' || contains(github.event.pull_request.title, ':upload-artifacts') }}
    +      REPO_DOMAIN: "freeswitch.signalwire.com"
    +      TARGET_ARTIFACT_NAME: ${{ matrix.os }}-${{ matrix.version }}-${{ matrix.platform.name }}-public-${{ matrix.release }}-artifact
    +      UPLOAD_BUILD_ARTIFACTS: >-
    +        ${{
    +          (
    +            github.event_name == 'push' &&
    +            github.repository == 'signalwire/freeswitch' &&
    +            contains(fromJSON('["master", "v1.10", "v1.11"]'), github.ref_name)
    +          ) ||
    +          (github.event_name == 'workflow_dispatch' && inputs.publish)
    +        }}
         secrets:
           GH_BOT_DEPLOY_TOKEN: ${{ secrets.PAT }}
           HOSTNAME: ${{ secrets.HOSTNAME }}
           PROXY_URL: ${{ secrets.PROXY_URL }}
           USERNAME: ${{ secrets.USERNAME }}
           TELEPORT_TOKEN: ${{ secrets.TELEPORT_TOKEN }}
    -      REPO_USERNAME: 'SWUSERNAME'
    -      REPO_PASSWORD: ${{ secrets.REPOTOKEN }}
    +      REPO_USERNAME: "SWUSERNAME"
    +      REPO_PASSWORD: ${{ needs.issue-token.outputs.token }}
    +
    +  revoke-token:
    +    name: "Revoke temporary token"
    +    runs-on: ubuntu-latest
    +    # if: always()
    +    needs:
    +      - issue-token
    +      - deb-public
    +    steps:
    +      - name: Revoke Token
    +        id: revoke-token
    +        uses: signalwire/actions-template/.github/actions/repo-auth-client@main
    +        env:
    +          TOKEN: ${{ needs.issue-token.outputs.token }}
    +        with:
    +          mode: revoke
     
       meta:
    -    name: 'Publish build data to meta-repo'
    -    if: ${{ github.event_name != 'pull_request' || contains(github.event.pull_request.title, ':upload-artifacts') }}
    +    name: "Publish build data to meta-repo"
    +    if: >-
    +      ${{
    +        github.event_name == 'push' &&
    +        github.repository == 'signalwire/freeswitch' &&
    +        contains(fromJSON('["master", "v1.10", "v1.11"]'), github.ref_name)
    +      }}
         needs:
    -      - deb
    +      - deb-public
         permissions:
           id-token: write
           contents: read
         uses: signalwire/actions-template/.github/workflows/meta-repo-content.yml@main
         with:
    -      META_CONTENT: '/var/www/freeswitch/${{ github.ref_name }}/${{ github.run_id }}-${{ github.run_number }}'
    +      META_CONTENT: "/var/www/freeswitch/public/{release,unstable}/${{ github.ref_name }}/${{ github.run_id }}-${{ github.run_number }}"
           META_REPO: signalwire/bamboo_gha_trigger
           META_REPO_BRANCH: trigger/freeswitch/${{ github.ref_name }}
         secrets:
    
  • .github/workflows/ci.yml+104 0 added
    @@ -0,0 +1,104 @@
    +name: CI
    +
    +on:
    +  push:
    +    branches:
    +      - master
    +      - v1.10
    +      - v1.11
    +  pull_request:
    +    types:
    +      - opened
    +      - synchronize
    +  workflow_dispatch:
    +    inputs:
    +      freeswitch_ref:
    +        description: 'FreeSWITCH repository ref'
    +        required: false
    +        type: string
    +      sofia-sip_ref:
    +        description: 'Sofia-Sip repository ref'
    +        required: false
    +        type: string
    +      dind:
    +        description: 'Run tests using Docker-in-Docker'
    +        required: false
    +        type: boolean
    +        default: false
    +
    +env:
    +  CI_BASE_STATIC_IMAGE: signalwire/freeswitch-public-ci-base:bookworm-amd64
    +  DOCKER_BUILD_SUMMARY: false
    +  DOCKER_BUILD_CHECKS_ANNOTATIONS: false
    +  DOCKER_BUILD_RECORD_UPLOAD: false
    +
    +jobs:
    +  unit-tests-pre-config:
    +    if: ${{ !inputs.dind }}
    +    name: "Unit-tests pre-config"
    +    runs-on: ubuntu-latest
    +    env:
    +      TOTAL_GROUPS: 2
    +    outputs:
    +      matrix: ${{ steps.set-matrix.outputs.matrix }}
    +      container-image: ${{ steps.set-vars.outputs.container-image }}
    +      working-directory: ${{ steps.set-vars.outputs.working-directory }}
    +      tests-only: ${{ steps.set-vars.outputs.tests-only }}
    +    steps:
    +      - id: set-matrix
    +        shell: bash
    +        run: |
    +          MATRIX=$(jq -c -n --argjson groups "${{ env.TOTAL_GROUPS }}" \
    +            '{
    +              include: [range(1; $groups + 1) | {group: ., total: $groups}]
    +            }')
    +          echo "matrix=$MATRIX" | tee -a $GITHUB_OUTPUT
    +      - id: set-vars
    +        shell: bash
    +        run: |
    +          echo "tests-only=false" >> $GITHUB_OUTPUT
    +          echo "working-directory=freeswitch/tests/unit" >> $GITHUB_OUTPUT
    +          echo "container-image=$CI_BASE_STATIC_IMAGE" >> $GITHUB_OUTPUT
    +
    +  unit-tests:
    +    if: ${{ !inputs.dind }}
    +    name: "Unit-tests (group ${{ matrix.group }})"
    +    needs:
    +      - unit-tests-pre-config
    +    strategy:
    +      fail-fast: false
    +      matrix: ${{ fromJson(needs.unit-tests-pre-config.outputs.matrix) }}
    +    uses: ./.github/workflows/unit-test.yml
    +    with:
    +      total-groups: ${{ matrix.total }}
    +      current-group: ${{ matrix.group }}
    +      container-image: ${{ needs.unit-tests-pre-config.outputs.container-image }}
    +      working-directory: ${{ needs.unit-tests-pre-config.outputs.working-directory }}
    +      tests-only: ${{ fromJson(needs.unit-tests-pre-config.outputs.tests-only) }}
    +    secrets: inherit
    +
    +  validate-unit-tests:
    +    if: ${{ always() && !inputs.dind }}
    +    name: "Validate Unit-tests"
    +    needs: unit-tests
    +    runs-on: ubuntu-latest
    +    steps:
    +      - name: Check unit tests status
    +        run: |
    +          if [ "${{ needs.unit-tests.result }}" != "success" ]; then
    +            exit 1
    +          fi
    +
    +  unit-tests-dind:
    +    if: ${{ inputs.dind }}
    +    name: "Unit-tests D-in-D"
    +    uses: ./.github/workflows/unit-test-dind.yml
    +    with:
    +      freeswitch_ref: ${{ inputs.freeswitch_ref }}
    +      sofia-sip_ref: ${{ inputs.sofia-sip_ref }}
    +    secrets: inherit
    +
    +  scan-build:
    +    name: "Scan Build"
    +    uses: ./.github/workflows/scan-build.yml
    +    secrets: inherit
    
  • .github/workflows/macos.yml+102 0 added
    @@ -0,0 +1,102 @@
    +name: MacOS Build
    +
    +on:
    +  workflow_dispatch:
    +  push:
    +    branches:
    +      - master
    +      - v1.10
    +      - v1.11
    +  pull_request:
    +    branches:
    +      - master
    +      - v1.10
    +      - v1.11
    +
    +jobs:
    +  build:
    +    name: Build MacOS
    +    runs-on: macos-latest
    +
    +    steps:
    +      - name: Checkout code
    +        uses: actions/checkout@v4
    +        with:
    +          fetch-depth: 0
    +
    +      - name: Install dependencies
    +        run: |
    +          brew update
    +          brew upgrade
    +          # Remove pinned cmake version (https://github.com/actions/runner-images/blob/macos-15-arm64/20250825.2246/images/macos/scripts/build/install-common-utils.sh#L19)
    +          brew uninstall --ignore-dependencies cmake || true
    +          # brew install libtiff openssl@3
    +          brew install \
    +            autoconf \
    +            automake \
    +            curl \
    +            ffmpeg@5 \
    +            gnu-sed \
    +            jpeg \
    +            ldns \
    +            libpq@16 \
    +            libsndfile \
    +            libtool \
    +            lua \
    +            opus \
    +            ossp-uuid \
    +            pcre2 \
    +            pkgconf \
    +            sofia-sip \
    +            speex \
    +            speexdsp \
    +            sqlite \
    +            yasm \
    +          && \
    +          brew list --pinned | awk '{system("brew unpin " $1)}' && \
    +          brew install --adopt \
    +            signalwire/homebrew-signalwire/libks2 \
    +            signalwire/homebrew-signalwire/signalwire-c2 \
    +            signalwire/homebrew-signalwire/spandsp \
    +          && \
    +          brew link --force --overwrite \
    +            ffmpeg@5 \
    +            libpq@16
    +
    +      - name: Bootstrap FreeSWITCH
    +        run: ./bootstrap.sh -j
    +
    +      # - name: Disable modules
    +      #   run: |
    +      #     gsed -i \
    +      #       -e '/mod_pgsql/s/^/#/g' \
    +      #       modules.conf
    +
    +      - name: Configure build
    +        run: |
    +          mkdir -p OUT && \
    +          ./configure \
    +            --enable-shared \
    +            --enable-static \
    +            --exec_prefix=${{ github.workspace }}/OUT \
    +            --prefix=${{ github.workspace }}/OUT
    +
    +      - name: Build
    +        run: |
    +          make
    +
    +      - name: Install to local folder
    +        run: |
    +          make install
    +
    +      # - name: Debug - List all files
    +      #   run: |
    +      #     find . -type f | sort
    +
    +      - name: Upload build artifacts
    +        uses: actions/upload-artifact@v4
    +        if: always()
    +        with:
    +          name: freeswitch-macos-build
    +          path: |
    +            OUT/
    
  • .github/workflows/scan-build.yml+100 0 added
    @@ -0,0 +1,100 @@
    +name: Scan build (Static Analysis)
    +
    +on:
    +  workflow_call:
    +    inputs:
    +      freeswitch_ref:
    +        description: 'FreeSWITCH repository ref'
    +        required: false
    +        type: string
    +      sofia-sip_ref:
    +        description: 'Sofia-Sip repository ref'
    +        required: false
    +        type: string
    +
    +jobs:
    +  scan-build:
    +    runs-on: ubuntu-latest
    +    container:
    +      image: signalwire/freeswitch-public-ci-base:bookworm-amd64
    +      options: --privileged
    +    env:
    +      DEBIAN_FRONTEND: noninteractive
    +
    +    steps:
    +      - name: Checkout Sofia-Sip
    +        if: inputs.sofia-sip_ref == ''
    +        uses: actions/checkout@v4
    +        with:
    +          repository: freeswitch/sofia-sip
    +          path: sofia-sip
    +
    +      - name: Checkout Sofia-Sip (via ref)
    +        if: inputs.sofia-sip_ref != ''
    +        uses: actions/checkout@v4
    +        with:
    +          repository: freeswitch/sofia-sip
    +          ref: ${{ inputs.sofia-sip_ref }}
    +          path: sofia-sip
    +
    +      - name: Checkout FreeSWITCH (via ref)
    +        if: inputs.freeswitch_ref != ''
    +        uses: actions/checkout@v4
    +        with:
    +          ref: ${{ inputs.freeswitch_ref }}
    +          path: freeswitch
    +
    +      - name: Checkout FreeSWITCH
    +        if: inputs.freeswitch_ref == ''
    +        uses: actions/checkout@v4
    +        with:
    +          path: freeswitch
    +
    +      - name: Configure, Build and Install Sofia-Sip
    +        shell: bash
    +        working-directory: freeswitch
    +        run: |
    +          DEBIAN_FRONTEND=noninteractive apt-get install -y libpcre2-dev libsphinxbase-dev libpocketsphinx-dev
    +          ./ci.sh -t scan-build -a configure -c sofia-sip -p "$GITHUB_WORKSPACE/sofia-sip"
    +          ./ci.sh -t scan-build -a build -c sofia-sip -p "$GITHUB_WORKSPACE/sofia-sip"
    +          ./ci.sh -t scan-build -a install -c sofia-sip -p "$GITHUB_WORKSPACE/sofia-sip"
    +
    +      - name: Configure FreeSWITCH
    +        shell: bash
    +        working-directory: freeswitch
    +        run: |
    +          ./ci.sh -t scan-build -a configure -c freeswitch -p "$GITHUB_WORKSPACE/freeswitch"
    +
    +      - name: Run scan-build analysis
    +        shell: bash
    +        working-directory: freeswitch
    +        run: |
    +          ./ci.sh -t scan-build -a build -c freeswitch -p "$GITHUB_WORKSPACE/freeswitch"
    +
    +      - name: Check analysis results
    +        if: always()
    +        shell: bash
    +        working-directory: freeswitch
    +        run: |
    +          ./ci.sh -t scan-build -a validate -c freeswitch -p "$GITHUB_WORKSPACE/freeswitch"
    +
    +      - name: Upload Scan-Build logs
    +        if: failure()
    +        uses: actions/upload-artifact@v4
    +        with:
    +          name: scan-build-logs
    +          path: freeswitch/scan-build
    +          if-no-files-found: ignore
    +          compression-level: 9
    +
    +      - name: Notify run tests result to slack
    +        if: |
    +          failure() &&
    +          github.event_name == 'push' &&
    +          (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/v1.10' || github.ref == 'refs/heads/v1.11')
    +        uses: signalwire/actions-template/.github/actions/slack@main
    +        with:
    +          CHANNEL: ${{ secrets.SLACK_DEVOPS_CI_CHANNEL }}
    +          MESSAGE: Scan-Build ${{ github.repository }} > <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|${{ github.run_id }}>. Static analysis failed.
    +        env:
    +          SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
    
  • .github/workflows/unit-test-dind.yml+100 0 added
    @@ -0,0 +1,100 @@
    +name: Unit-tests D-in-D
    +
    +on:
    +  workflow_call:
    +    inputs:
    +      freeswitch_ref:
    +        description: 'FreeSWITCH repository ref'
    +        required: false
    +        type: string
    +      sofia-sip_ref:
    +        description: 'Sofia-Sip repository ref'
    +        required: false
    +        type: string
    +
    +env:
    +  MAX_CONTAINERS: 8
    +  NUM_CPU_PER_CONTAINER: 1
    +  DOCKER_BUILD_SUMMARY: false
    +  DOCKER_BUILD_CHECKS_ANNOTATIONS: false
    +  DOCKER_BUILD_RECORD_UPLOAD: false
    +
    +jobs:
    +  unit-tests:
    +    runs-on: ubuntu-latest
    +    container:
    +      image: signalwire/freeswitch-public-ci-base:bookworm-amd64
    +      options: --privileged
    +    env:
    +      DEBIAN_FRONTEND: noninteractive
    +      ASAN_OPTIONS: log_path=stdout:disable_coredump=0:unmap_shadow_on_exit=1:fast_unwind_on_malloc=0
    +
    +    steps:
    +      - name: Checkout Sofia-Sip (via ref)
    +        if: inputs.sofia-sip_ref != ''
    +        uses: actions/checkout@v4
    +        with:
    +          repository: freeswitch/sofia-sip
    +          ref: ${{ inputs.sofia-sip_ref }}
    +          path: sofia-sip
    +
    +      - name: Checkout Sofia-Sip
    +        if: inputs.sofia-sip_ref == ''
    +        uses: actions/checkout@v4
    +        with:
    +          repository: freeswitch/sofia-sip
    +          path: sofia-sip
    +
    +      - name: Checkout FreeSWITCH (via ref)
    +        if: inputs.freeswitch_ref != ''
    +        uses: actions/checkout@v4
    +        with:
    +          ref: ${{ inputs.freeswitch_ref }}
    +          path: freeswitch
    +
    +      - name: Checkout FreeSWITCH
    +        if: inputs.freeswitch_ref == ''
    +        uses: actions/checkout@v4
    +        with:
    +          path: freeswitch
    +
    +      - name: Run Unit-Test containers and collect artifacts
    +        id: unit_tests
    +        shell: bash
    +        run: |
    +          echo "logs_path=${GITHUB_WORKSPACE}/freeswitch/tests/unit/logs" >> $GITHUB_OUTPUT
    +
    +          "${GITHUB_WORKSPACE}/freeswitch/tests/unit/run-tests-docker.sh" \
    +            --base-image signalwire/freeswitch-public-ci-base:bookworm-amd64 \
    +            --cpus ${{ env.NUM_CPU_PER_CONTAINER }} \
    +            --image-tag ci.local \
    +            --max-containers ${{ env.MAX_CONTAINERS }} \
    +            --output-dir "${GITHUB_WORKSPACE}/freeswitch/tests/unit/logs" \
    +            --sofia-sip-path "${GITHUB_WORKSPACE}/sofia-sip" \
    +            --freeswitch-path "${GITHUB_WORKSPACE}/freeswitch"
    +
    +          test -d "/cores" && ls -lah /cores
    +
    +          cd "${GITHUB_WORKSPACE}/freeswitch/tests/unit/" && \
    +          ./collect-test-logs.sh --dir logs --print
    +
    +      - name: Upload Unit-Test logs
    +        if: failure()
    +        uses: actions/upload-artifact@v4
    +        with:
    +          name: test-results-${{ github.sha }}-${{ github.run_number }}
    +          path: ${{ steps.unit_tests.outputs.logs_path }}
    +          if-no-files-found: ignore
    +          compression-level: 9
    +
    +      - name: Notify run tests result to slack
    +        if: |
    +          failure() &&
    +          github.event_name == 'push' &&
    +          (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/v1.10' || github.ref == 'refs/heads/v1.11')
    +        uses: signalwire/actions-template/.github/actions/slack@main
    +        with:
    +          CHANNEL: ${{ secrets.SLACK_DEVOPS_CI_CHANNEL }}
    +          MESSAGE: Unit-Tests ${{ github.repository }} > <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|${{ github.run_id }}>. Some tests are failing.
    +        env:
    +          SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
    
  • .github/workflows/unit-test.yml+137 0 added
    @@ -0,0 +1,137 @@
    +name: Unit tests
    +
    +on:
    +  workflow_call:
    +    inputs:
    +      total-groups:
    +        description: 'Total number of test groups'
    +        required: true
    +        type: number
    +        default: 1
    +      current-group:
    +        description: 'Current test group number'
    +        required: true
    +        type: number
    +        default: 1
    +      freeswitch_ref:
    +        description: 'FreeSWITCH repository ref'
    +        required: false
    +        type: string
    +      sofia-sip_ref:
    +        description: 'Sofia-Sip repository ref'
    +        required: false
    +        type: string
    +      container-image:
    +        description: 'Container image to use for running tests'
    +        required: false
    +        type: string
    +        default: 'signalwire/freeswitch-public-ci-base:bookworm-amd64'
    +      working-directory:
    +        description: 'Working directory for running tests'
    +        required: false
    +        type: string
    +        default: 'freeswitch/tests/unit'
    +      tests-only:
    +        description: 'Run only tests, skip other tasks'
    +        required: false
    +        type: boolean
    +        default: false
    +
    +jobs:
    +  unit-test:
    +    runs-on: ubuntu-latest
    +    container:
    +      image: ${{ inputs.container-image }}
    +      options: --privileged
    +    env:
    +      DEBIAN_FRONTEND: noninteractive
    +      ASAN_OPTIONS: log_path=stdout:disable_coredump=0:unmap_shadow_on_exit=1:fast_unwind_on_malloc=0
    +
    +    steps:
    +      - name: Override core_pattern
    +        shell: bash
    +        run: |
    +          echo '/cores/core.%s.%E.%e.%p.%t' > /proc/sys/kernel/core_pattern
    +          cat /proc/sys/kernel/core_pattern
    +
    +      - name: Checkout Sofia-Sip (via ref)
    +        if: ${{ !inputs.tests-only && inputs.sofia-sip_ref != '' }}
    +        uses: actions/checkout@v4
    +        with:
    +          repository: freeswitch/sofia-sip
    +          ref: ${{ inputs.sofia-sip_ref }}
    +          path: sofia-sip
    +
    +      - name: Checkout Sofia-Sip
    +        if: ${{ !inputs.tests-only && inputs.sofia-sip_ref == '' }}
    +        uses: actions/checkout@v4
    +        with:
    +          repository: freeswitch/sofia-sip
    +          path: sofia-sip
    +
    +      - name: Checkout FreeSWITCH (via ref)
    +        if: ${{ !inputs.tests-only && inputs.freeswitch_ref != '' }}
    +        uses: actions/checkout@v4
    +        with:
    +          ref: ${{ inputs.freeswitch_ref }}
    +          path: freeswitch
    +
    +      - name: Checkout FreeSWITCH
    +        if: ${{ !inputs.tests-only && inputs.freeswitch_ref == '' }}
    +        uses: actions/checkout@v4
    +        with:
    +          path: freeswitch
    +
    +      - name: Configure, Build and Install Sofia-Sip
    +        if: ${{ !inputs.tests-only }}
    +        shell: bash
    +        working-directory: freeswitch
    +        run: |
    +          DEBIAN_FRONTEND=noninteractive apt-get install -y libpcre2-dev libsphinxbase-dev libpocketsphinx-dev
    +          ./ci.sh -t unit-test -a configure -c sofia-sip -p "$GITHUB_WORKSPACE/sofia-sip"
    +          ./ci.sh -t unit-test -a build -c sofia-sip -p "$GITHUB_WORKSPACE/sofia-sip"
    +          ./ci.sh -t unit-test -a install -c sofia-sip -p "$GITHUB_WORKSPACE/sofia-sip"
    +
    +      - name: Configure, Build and Install FreeSWITCH
    +        if: ${{ !inputs.tests-only }}
    +        shell: bash
    +        working-directory: freeswitch
    +        run: |
    +          ./ci.sh -t unit-test -a configure -c freeswitch -p "$GITHUB_WORKSPACE/freeswitch"
    +          ./ci.sh -t unit-test -a build -c freeswitch -p "$GITHUB_WORKSPACE/freeswitch"
    +          ./ci.sh -t unit-test -a install -c freeswitch -p "$GITHUB_WORKSPACE/freeswitch"
    +
    +      - name: Run unit tests
    +        shell: bash
    +        working-directory: ${{ inputs.working-directory }}
    +        run: |
    +          ./run-tests.sh ${{ inputs.total-groups }} ${{ inputs.current-group }} --output-dir logs || exit 1
    +
    +      - name: Collect unit test logs
    +        if: always()
    +        shell: bash
    +        working-directory: ${{ inputs.working-directory }}
    +        run: |
    +          test -d "/cores" && ls -lah /cores
    +          ./collect-test-logs.sh --dir logs --print
    +
    +      - name: Upload Unit-Test logs
    +        if: failure()
    +        uses: actions/upload-artifact@v4
    +        with:
    +          name: test-results-${{ github.sha }}-${{ github.run_number }}-${{ inputs.current-group }}-of-${{ inputs.total-groups }}
    +          path: ${{ inputs.working-directory }}/logs
    +          if-no-files-found: ignore
    +          compression-level: 9
    +
    +      - name: Notify run tests result to slack
    +        if: |
    +          failure() &&
    +          github.event_name == 'push' &&
    +          (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/v1.10' || github.ref == 'refs/heads/v1.11')
    +        uses: signalwire/actions-template/.github/actions/slack@main
    +        with:
    +          CHANNEL: ${{ secrets.SLACK_DEVOPS_CI_CHANNEL }}
    +          MESSAGE: Unit-Tests ${{ github.repository }} > <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|${{ github.run_id }}>. Some tests are failing.
    +        env:
    +          SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
    
  • .github/workflows/windows.yml+43 0 added
    @@ -0,0 +1,43 @@
    +name: Windows
    +
    +on:
    +  pull_request:
    +    types: [opened, synchronize]
    +  push:
    +    branches: [master, release]
    +jobs:
    +  x64:
    +    runs-on: windows-2022
    +
    +    steps:
    +    - uses: actions/checkout@v4
    +      with:
    +        fetch-depth: 0
    +
    +    - name: Download yasm.exe
    +      run: |
    +        curl -o libs\win32\ffmpeg\yasm.exe https://files.freeswitch.org/downloads/win64/yasm-1.3.0.87.g121a.exe
    +        copy libs\win32\ffmpeg\yasm.exe libs\win32\libvpx\yasm.exe
    +
    +    - name: Verify and Run yasm.exe
    +      run: |
    +        if exist libs\win32\ffmpeg\yasm.exe (
    +          libs\win32\ffmpeg\yasm.exe --version
    +        ) else (
    +          echo ERROR: yasm.exe not found!
    +          exit 1
    +        )
    +      shell: cmd
    +
    +    - name: Add msbuild to PATH
    +      uses: microsoft/setup-msbuild@v2
    +
    +    - name: Build
    +      run: msbuild Freeswitch.2017.sln -t:build -verbosity:minimal -property:Configuration=Release -property:Platform=x64
    +
    +    - name: Upload Artifact
    +      uses: actions/upload-artifact@v4
    +      with:
    +        name: MSI Package
    +        path: D:\a\freeswitch\freeswitch\x64\*.msi
    +      if: contains(github.event.pull_request.title, ':upload-artifacts') || github.ref == 'refs/heads/master' || github.ref == 'refs/heads/v1.10' || github.ref == 'refs/heads/v1.11'
    
  • .gitignore+2 8 modified
    @@ -145,18 +145,15 @@ Release/
     /src/mod/applications/mod_nibblebill/Makefile
     /src/mod/applications/mod_osp/Makefile
     /src/mod/applications/mod_osp/Makefile.in
    -/src/mod/applications/mod_rss/Makefile
     /src/mod/applications/mod_snipe_hunt/Makefile
     /src/mod/applications/mod_test/test/Makefile
     /src/mod/applications/mod_test/test/Makefile.in
     /src/mod/codecs/mod_com_g729/Makefile
     /src/mod/codecs/mod_com_g729/Makefile.in
    -/src/mod/codecs/mod_dahdi_codec/Makefile
     /src/mod/dialplans/mod_dialplan_directory/Makefile
     /src/mod/formats/mod_shell_stream/Makefile
     /src/mod/languages/mod_lua/mod_lua_wrap.cpp.orig
     /src/mod/languages/mod_perl/mod_perl_wrap.cpp.orig
    -/src/mod/languages/mod_python/mod_python_wrap.cpp.orig
     /src/mod/languages/mod_python3/mod_python_wrap.cpp.orig
     /src/mod/say/mod_say_de/Makefile
     /src/mod/say/mod_say_es/Makefile
    @@ -175,7 +172,6 @@ BuildLog.htm
     
     !/libs/win32/
     !/libs/speex/win32/
    -!/src/mod/endpoints/mod_gsmopen/gsmlib/gsmlib-1.10-patched-13ubuntu/win32/
     *.suo
     *.sdf
     x64/
    @@ -255,9 +251,6 @@ libs/sofia-sip*
     
     src/mod/applications/mod_test/test/test_asr
     src/mod/applications/mod_test/test/test_tts
    -src/mod/event_handlers/mod_rayo/test/test_iks
    -src/mod/event_handlers/mod_rayo/test/test_nlsml
    -src/mod/event_handlers/mod_rayo/test/test_srgs
     src/mod/applications/mod_http_cache/test/Makefile
     src/mod/applications/mod_http_cache/test/Makefile.in
     src/mod/applications/mod_http_cache/test/test-suite.log
    @@ -266,7 +259,6 @@ src/mod/applications/mod_http_cache/test/test_aws.log
     src/mod/applications/mod_http_cache/test/test_aws.trs
     src/mod/formats/mod_sndfile/test/test_sndfile
     src/mod/formats/mod_sndfile/test/test_sndfile_conf
    -src/mod/formats/mod_ssml/test/test_tts_format
     src/mod/*/*/test/*.log
     src/mod/*/*/test/*.trs
     src/mod/*/*/test/[0-9]*/*
    @@ -281,3 +273,5 @@ images/test_text.png
     
     src/mod/codecs/mod_amrwb/test/test_amrwb
     src/mod/endpoints/mod_sofia/test/sipp-based-tests
    +
    +.DS_Store
    
  • libs/esl/fs_cli.c+1 1 modified
  • libs/esl/.gitignore+1 1 modified
  • libs/esl/java/Makefile+1 1 modified
  • libs/esl/lua/Makefile+1 1 modified
  • libs/esl/Makefile.am+1 9 modified
  • libs/esl/managed/esl.2017.vcxproj+1 1 modified
  • libs/esl/managed/Makefile+1 1 modified
  • libs/esl/perl/Makefile.am+1 1 modified
  • libs/esl/php/Makefile.am+1 1 modified
  • libs/esl/python3/Makefile+1 1 modified
  • libs/esl/python/ESL.py+0 132 removed
  • libs/esl/python/esl_wrap.cpp+0 6128 removed
  • libs/esl/python/events.py+0 20 removed
  • libs/esl/python/Makefile+0 28 removed
  • libs/esl/python/python-config+0 53 removed
  • libs/esl/python/server.py+0 29 removed
  • libs/esl/python/single_command.py+0 43 removed
  • libs/esl/ruby/Makefile+1 1 modified
  • libs/esl/src/cJSON.c+0 5 modified
  • libs/esl/src/esl_buffer.c+13 8 modified
  • libs/esl/src/esl.c+41 26 modified
  • libs/esl/src/esl_event.c+0 1 modified
  • libs/esl/tcl/Makefile+1 1 modified
  • libs/.gitignore+0 35 modified
  • libs/iksemel/acinclude.m4+0 59 removed
  • libs/iksemel/acsite.m4+0 2 removed
  • libs/iksemel/AUTHORS+0 17 removed
  • libs/iksemel/build/libgnutls.m4+0 168 removed
  • libs/iksemel/ChangeLog+0 648 removed
  • libs/iksemel/configure.ac+0 111 removed
  • libs/iksemel/configure.gnu+0 4 removed
  • libs/iksemel/COPYING+0 515 removed
  • libs/iksemel/doc/iksemel.texi+0 1534 removed
  • libs/iksemel/doc/Makefile.am+0 5 removed
  • libs/iksemel/HACKING+0 71 removed
  • libs/iksemel/iksemel.pc.in+0 10 removed
  • libs/iksemel/include/common.h+0 33 removed
  • libs/iksemel/include/finetune.h+0 29 removed
  • libs/iksemel/include/iksemel.h+0 414 removed
  • libs/iksemel/include/Makefile.am+0 6 removed
  • libs/iksemel/include/stamp-h.in+0 1 removed
  • libs/iksemel/INSTALL+0 365 removed
  • libs/iksemel/ltmain.sh+0 6911 removed
  • libs/iksemel/Makefile.am+0 18 removed
  • libs/iksemel/NEWS+0 53 removed
  • libs/iksemel/openssl.m4+0 49 removed
  • libs/iksemel/README+0 45 removed
  • libs/iksemel/src/base64.c+0 103 removed
  • libs/iksemel/src/dom.c+0 181 removed
  • libs/iksemel/src/filter.c+0 181 removed
  • libs/iksemel/src/iks.c+0 765 removed
  • libs/iksemel/src/ikstack.c+0 214 removed
  • libs/iksemel/src/io-posix.c+0 172 removed
  • libs/iksemel/src/jabber.c+0 330 removed
  • libs/iksemel/src/Makefile.am+0 29 removed
  • libs/iksemel/src/md5.c+0 189 removed
  • libs/iksemel/src/sax.c+0 635 removed
  • libs/iksemel/src/sha.c+0 152 removed
  • libs/iksemel/src/stream.c+0 1054 removed
  • libs/iksemel/src/utility.c+0 180 removed
  • libs/iksemel/test/Makefile.am+0 33 removed
  • libs/iksemel/test/tst-dom.c+0 164 removed
  • libs/iksemel/test/tst-filter.c+0 260 removed
  • libs/iksemel/test/tst-iks.c+0 77 removed
  • libs/iksemel/test/tst-ikstack.c+0 54 removed
  • libs/iksemel/test/tst-jid.c+0 63 removed
  • libs/iksemel/test/tst-md5.c+0 38 removed
  • libs/iksemel/test/tst-sax.c+0 384 removed
  • libs/iksemel/test/tst-sha.c+0 38 removed
  • libs/iksemel/TODO+0 12 removed
  • libs/iksemel/tools/hash.c+0 144 removed
  • libs/iksemel/tools/ikslint.c+0 283 removed
  • libs/iksemel/tools/iksperf.c+0 315 removed
  • libs/iksemel/tools/iksroster.c+0 380 removed
  • libs/iksemel/tools/Makefile.am+0 18 removed
  • libs/iksemel/tools/perf.c+0 84 removed
  • libs/iksemel/tools/perf.h+0 10 removed
  • libs/iksemel/.update+0 1 removed
  • libs/libvpx/build/make/configure.sh+6 2 modified
  • libs/libyuv/tools_libyuv/autoroller/unittests/.DS_Store+0 0 removed
  • libs/win32/civetweb/duktape_lib.vcxproj+1 1 modified
  • libs/win32/civetweb/lua_lib.vcxproj+1 1 modified
  • libs/win32/ffmpeg/ffmpeg.2017.vcxproj+2 2 modified
  • libs/win32/iksemel/cleancount+0 1 removed
  • libs/win32/iksemel/config.h+0 93 removed
  • libs/win32/iksemel/iksemel.2017.vcxproj+0 141 removed
  • libs/win32/libav/libav.2017.vcxproj+1 1 modified
  • libs/win32/libcbt/libcbt.2017.vcxproj+0 168 removed
  • libs/win32/libyuv/libyuv.2017.vcxproj+1 1 modified
  • libs/win32/portaudio/portaudio.2017.vcxproj+0 859 removed
  • libs/win32/speex/libspeexdsp.2017.vcxproj+1 1 modified
  • libs/xmlrpc-c/lib/abyss/src/handler.c+20 24 modified
  • libs/xmlrpc-c/lib/expat/xmlparse/xmlparse.c+3 0 modified
  • libs/xmlrpc-c/lib/expat/xmltok/xmltok_impl.c+6 2 modified
  • libs/xmlrpc-c/lib/libutil/utf8.c+1 1 modified
  • libs/xmlrpc-c/src/system_method.c+6 6 modified
  • libs/xmlrpc-c/src/xmlrpc_datetime.c+3 3 modified
  • libs/xmlrpc-c/src/xmlrpc_decompose.c+13 8 modified
  • libs/xmlrpc-c/src/xmlrpc_server_abyss.c+2 0 modified
  • libs/xmlrpc-c/src/xmlrpc_server_cgi.c+7 4 modified
  • LICENSE+1 77 modified
    @@ -1202,10 +1202,6 @@ Files: src/include/switch_cpp.h
     Copyright: 2007 Yossi Neiman <freeswitch@cartissolutions.com>
     License: MPL-1.1  (well, maybe -- it refers to a COPYING file, so probably docs/COPYING, in which case MPL-1.1)
     
    -Files: libs/iksemel/*
    -Copyright: 2000-2007 Gurer Ozen <madcat@e-kolay.net>
    -License: LGPL-2.1
    -
     Files: libs/apr*/*
     Copyright: 2000-2005 The Apache Software Foundation or its licensors
      1991-1992, RSA Data Security, Inc.
    @@ -1308,32 +1304,10 @@ Files: src/mod/applications/mod_cluechoo/sl.h
     Copyright: 1993 Toyoda Masashi
     License: FIXME
     
    -Files: src/mod/event_handlers/mod_cdr_mongodb/*
    -Copyright: 2009-2012 10gen Inc.
    - 2001 Unicode, Inc.
    -License: Apache-2.0
    -
    -Files: src/mod/applications/mod_stress/FFTReal.h
    - src/mod/applications/mod_stress/FFTReal.cpp
    -Copyright: 1999 Laurent de Soras
    -License: unclear
    -
     Files: src/mod/loggers/mod_syslog/mod_syslog.c
     Copyright: 2005-2010, James Martelletti <james@nerdc0re.com>
     License: MPL-1.1
     
    -Files: src/mod/event_handlers/mod_cdr_mongodb/mod_cdr_mongodb.c
    -Copyright: 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
    -License: MPL-1.1
    -
    -Files: src/mod/event_handlers/mod_cdr_mongodb/driver/src/md5.[ch]
    -Copyright: 1999, 2000, 2002 Aladdin Enterprises.
    -License: zlib/libpng
    -
    -Files: src/mod/event_handlers/mod_radius_cdr/mod_radius_cdr.h
    -Copyright: 2006, Author: Yossi Neiman of Cartis Solutions, Inc. <freeswitch AT cartissolutions.com>
    -License: MPL-1.1
    -
     Files: src/mod/say/mod_say_??/mod_say_??.c
      scripts/c/socket2me/socket2me.c
      src/mod/xml_int/mod_xml_scgi/xml_scgi_server.pl
    @@ -1497,18 +1471,6 @@ Copyright: 2010 Ilnitskiy Mixim (max.h323@gmail.com)
      2010 Georgiewskiy Yuriy (bottleman@icf.org.ru)
     License: MPL-1.1
     
    -Files: src/mod/endpoints/mod_khomp/*
    -Copyright: 2007-2010 Khomp Ind. & Com.
    -License: MPL-1.1 or LGPL-2.1+
    -
    -Files: src/mod/endpoints/mod_khomp/mod_khomp.cpp
    -Copyright: 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
    -License: MPL-1.1
    -
    -Files: src/mod/endpoints/mod_khomp/commons/base/atomic.hpp
    -Copyright: 1998 Doug Rabson
    -License: BSD-2-clause
    -
     Files: src/mod/languages/mod_java/modjava.c
     Copyright: 2007, Damjan Jovanovic <d a m j a n d o t j o v a t g m a i l d o t c o m>
     License: MPL-1.1
    @@ -1517,22 +1479,6 @@ Files: src/mod/languages/mod_managed/*
     Copyright: 2008, Michael Giagnocavo <mgg@giagnocavo.net>
     License: MPL-1.1
     
    -Files: src/mod/endpoints/mod_gsmopen/gsmlib/gsmlib-1.10-patched-13ubuntu/*
    - src/mod/languages/mod_lua/lua-mode.el
    - libs/iksemel/ltmain.sh
    -Copyright: 1995-2007 Free Software Foundation, Inc.
    -License: GPL-2+
    -
    -Files: src/mod/endpoints/mod_gsmopen/libctb-0.16/*
    -Copyright: 2001-2010 Joachim Buermann
    -License: wxWindows
    -
    -Files: src/mod/endpoints/mod_gsmopen/libctb-0.16/src/win32/getopt.cpp
    -Copyright: 2001 ?
    -License: clueless and unacceptable
    - FIXME -- this cannot go in Debian -- the license is stated as:
    -  (I think Open Source)
    -
     Files: src/mod/endpoints/mod_rtmp/libamf/src/types.[ch]
     Copyright: 2007, 2008 Marc Noirot <marc.noirot AT gmail.com>
     License: GPL-2+
    @@ -1544,10 +1490,6 @@ Files: src/mod/endpoints/mod_rtmp/rtmp.c
     Copyright: 2011-2012, Barracuda Networks Inc.
     License: MPL-1.1
     
    -Files: src/mod/endpoints/mod_gsmopen/asterisk/celliax_spandsp.[ch]
    -Copyright: 2001-2006 Steve Underwood
    -License: GPL-2
    -
     Files: src/mod/endpoints/mod_skinny/*
      src/mod/asr_tts/mod_tts_commandline/mod_tts_commandline.c
     Copyright: 2009-2010, Mathieu Parent <math.parent@gmail.com>
    @@ -1557,15 +1499,6 @@ Files: src/mod/endpoints/mod_skinny/*.p[lm]
     Copyright: 2010, Mathieu Parent <math.parent@gmail.com>
     License: Perl
     
    -Files: src/mod/endpoints/mod_portaudio/*
    -Copyright: 1999-2000 Ross Bencina and Phil Burk
    - 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
    -License: MIT/X11 (BSD like)
    -
    -Files: src/mod/endpoints/mod_portaudio/mod_portaudio.c
    -Copyright: 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
    -License: MPL-1.1
    -
     Files: src/mod/endpoints/mod_sofia/sip-dig.c
     Copyright: 2006 Nokia Corporation
     License: LGPL-2.1+
    @@ -1606,20 +1539,11 @@ Files: libs/libcodec2/src/pack.c
     Copyright: 2010 Perens LLC <bruce@perens.com>
     License: GPL-3+
     
    -Files: src/mod/codecs/mod_sangoma_codec/mod_sangoma_codec.c
    - src/include/switch_profile.h
    +Files: src/include/switch_profile.h
      src/switch_profile.c
     Copyright: 2009,2010, Sangoma Technologies
     License: BSD-3-clause
     
    -Files: src/mod/codecs/mod_isac/*
    -Copyright: 2011-2012 The WebRTC project authors
    -License: BSD-3-clause
    -
    -Files: src/mod/codecs/mod_isac/mod_isac.c
    -Copyright: 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
    -License: MPL-1.1
    -
     Files: libs/srtp/*
     Copyright: 2001-2006, Cisco Systems, Inc.
      2005 Ingate Systems AB
    
  • Makefile.am+5 22 modified
    @@ -231,9 +231,9 @@ CORE_LIBS+=libfreeswitch_libyuv.la
     endif
     
     lib_LTLIBRARIES	         = libfreeswitch.la
    -libfreeswitch_la_CFLAGS  = $(CORE_CFLAGS) $(SQLITE_CFLAGS) $(GUMBO_CFLAGS) $(FVAD_CFLAGS) $(FREETYPE_CFLAGS) $(CURL_CFLAGS) $(PCRE_CFLAGS) $(SPEEX_CFLAGS) $(LIBEDIT_CFLAGS) $(openssl_CFLAGS) $(SOFIA_SIP_CFLAGS) $(AM_CFLAGS) $(TPL_CFLAGS)
    +libfreeswitch_la_CFLAGS  = $(CORE_CFLAGS) $(SQLITE_CFLAGS) $(GUMBO_CFLAGS) $(FVAD_CFLAGS) $(FREETYPE_CFLAGS) $(CURL_CFLAGS) $(PCRE2_CFLAGS) $(SPEEX_CFLAGS) $(LIBEDIT_CFLAGS) $(openssl_CFLAGS) $(SOFIA_SIP_CFLAGS) $(AM_CFLAGS) $(TPL_CFLAGS)
     libfreeswitch_la_LDFLAGS = -version-info 1:0:0 $(AM_LDFLAGS) $(PLATFORM_CORE_LDFLAGS) -no-undefined
    -libfreeswitch_la_LIBADD  = $(CORE_LIBS) $(APR_LIBS) $(SQLITE_LIBS) $(GUMBO_LIBS) $(FVAD_LIBS) $(FREETYPE_LIBS) $(CURL_LIBS) $(PCRE_LIBS) $(SPEEX_LIBS) $(LIBEDIT_LIBS) $(SYSTEMD_LIBS) $(openssl_LIBS) $(PLATFORM_CORE_LIBS) $(TPL_LIBS) $(SPANDSP_LIBS) $(SOFIA_SIP_LIBS)
    +libfreeswitch_la_LIBADD  = $(CORE_LIBS) $(APR_LIBS) $(SQLITE_LIBS) $(GUMBO_LIBS) $(FVAD_LIBS) $(FREETYPE_LIBS) $(CURL_LIBS) $(PCRE2_LIBS) $(SPEEX_LIBS) $(LIBEDIT_LIBS) $(SYSTEMD_LIBS) $(openssl_LIBS) $(PLATFORM_CORE_LIBS) $(TPL_LIBS) $(SPANDSP_LIBS) $(SOFIA_SIP_LIBS)
     libfreeswitch_la_DEPENDENCIES = $(BUILT_SOURCES)
     
     if HAVE_PNG
    @@ -394,7 +394,8 @@ libfreeswitch_la_SOURCES = \
     	libs/miniupnpc/minissdpc.c \
     	libs/miniupnpc/upnperrors.c \
     	libs/libnatpmp/natpmp.c \
    -	libs/libnatpmp/getgateway.c
    +	libs/libnatpmp/getgateway.c \
    +	src/switch_uuidv7.c
     
     if ENABLE_CPP
     libfreeswitch_la_SOURCES += src/switch_cpp.cpp
    @@ -588,10 +589,6 @@ libs/srtp/libsrtp.la: libs/srtp libs/srtp/.update $(SRTP_SRC)
     ##
     ## helper targets
     ##
    -yaml-files:
    -	@echo `mkdir $(DESTDIR)$(confdir)/yaml 2>/dev/null`
    -	$(INSTALL) -m 644 $(switch_srcdir)/conf/default/yaml/*.yaml $(DESTDIR)$(confdir)/yaml
    -
     vm-sync:
     	test -d $(DESTDIR)$(confdir) || $(mkinstalldirs) $(DESTDIR)$(confdir)
     	test -d $(DESTDIR)$(confdir)/lang || $(mkinstalldirs) $(DESTDIR)$(confdir)/lang
    @@ -668,9 +665,6 @@ nodepends: .nodepends
     yesdepends:
     	rm .nodepends
     
    -iksemel-dep:
    -	make -C src/mod/formats/mod_ssml deps
    -
     core: $(switch_builddir)/modules.conf src/include/switch_version.h $(CORE_LIBS) 
     	$(MAKE) $(AM_MAKEFLAGS) libfreeswitch.la
     
    @@ -713,7 +707,7 @@ pristine:
     	git clean -fdx
     	git reset --hard
     
    -update-clean: clean python-reconf python3-reconf
    +update-clean: clean python3-reconf
     	cd libs/esl && $(MAKE) clean
     	cd libs/srtp && $(MAKE) clean
     
    @@ -726,10 +720,6 @@ sndfile-reconf:
     	cd libs/libsndfile && ./config.status --recheck
     	cd libs/libsndfile && ./config.status
     
    -python-reconf:
    -	rm -f src/mod/languages/mod_python/Makefile
    -	./config.status
    -
     python3-reconf:
     	rm -f src/mod/languages/mod_python3/Makefile
     	./config.status
    @@ -744,13 +734,6 @@ srtp-reconf:
     	cd libs/srtp && sh ./config.status --recheck
     	cd libs/srtp && sh ./config.status
     
    -
    -iks-reconf:
    -	cd libs/iksemel && $(MAKE) clean
    -	cd libs/iksemel && autoreconf -fi
    -	cd libs/iksemel && sh ./configure.gnu $(MY_DEFAULT_ARGS)
    -	$(MAKE) mod_ssml-clean
    -
     cluecon:
     	@clear
     	@echo Thank you for updating. This is going to take a while so relax.
    
  • README.md+6 1 modified
    @@ -33,7 +33,8 @@ The main index for documentation is available at:
     
     Step by step tutorials to install FreeSWITCH from packages:
     
    -  * [Debian](https://freeswitch.org/confluence/display/FREESWITCH/Debian) [<b>Recommended</b>]
    +  * [Using FSGET](/scripts/packaging) [<b>Recommended</b>]
    +  * [Debian](https://freeswitch.org/confluence/display/FREESWITCH/Debian)
       * [Raspberry Pi](https://freeswitch.org/confluence/display/FREESWITCH/Raspberry+Pi)
       * [CentOS 7](https://freeswitch.org/confluence/display/FREESWITCH/CentOS+7+and+RHEL+7)
     
    @@ -47,6 +48,10 @@ Step by step tutorials to build FreeSWITCH with provided dependency packages:
       * [Raspberry Pi](https://freeswitch.org/confluence/display/FREESWITCH/Raspberry+Pi)
       * [CentOS 7](https://freeswitch.org/confluence/display/FREESWITCH/CentOS+7+and+RHEL+7)
     
    +### How to build Debian packages
    +
    +  * [Using FSDEB](/scripts/packaging/build)
    +
     ## Downloads
     
       * [Tarballs](https://files.freeswitch.org/releases/freeswitch/)
    
  • scripts/ci/common.sh+0 9 modified
  • scripts/ci/config-rayo.sh+0 46 removed
  • scripts/ci/src_tarball.sh+0 1 modified
  • scripts/FreeSWITCH-debian-raspbian-installer.sh+1 1 modified
  • scripts/freeswitch.pkg_deps.sh+0 1 modified
  • scripts/mk_fs_fhs.sh+1 1 modified
  • scripts/packaging/build/dependencies/build-dependencies.sh+465 0 added
  • scripts/packaging/build/dependencies/libbroadvoice/README.md+117 0 added
  • scripts/packaging/build/dependencies/libilbc/README.md+117 0 added
  • scripts/packaging/build/dependencies/libks/README.md+98 0 added
  • scripts/packaging/build/dependencies/libsilk/README.md+117 0 added
  • scripts/packaging/build/dependencies/libv8/README.md+151 0 added
  • scripts/packaging/build/dependencies/README.md+61 0 added
  • scripts/packaging/build/dependencies/signalwire-c/README.md+113 0 added
  • scripts/packaging/build/dependencies/sofia-sip/README.md+117 0 added
  • scripts/packaging/build/dependencies/spandsp/README.md+117 0 added
  • scripts/packaging/build/fsdeb.sh+123 0 added
  • scripts/packaging/build/README.md+69 0 added
  • scripts/packaging/README.md+40 0 added

Vulnerability mechanics

Root cause

"A STUN packet with a declared attribute length shorter than the structure causes an out-of-bounds memory access."

Attack vector

An unauthenticated attacker can send a specially crafted STUN packet to the FreeSWITCH server. The packet's declared attribute length is shorter than the structure the parser expects. This causes the parser to read and write past the end of the attribute, leading to an out-of-bounds memory access on the per-leg media buffer.

Affected code

The vulnerability lies within the STUN packet parsing logic. Specifically, the parser incorrectly handles attribute lengths, leading to out-of-bounds memory access on the per-leg media buffer.

What the fix does

The patch removes the `conf/rayo/mime.types` file, which was likely a cleanup or unrelated change. The core vulnerability is addressed by ensuring the STUN packet parser correctly handles attribute lengths, preventing out-of-bounds reads and writes. This mitigates the risk of memory corruption and potential crashes.

Preconditions

  • inputA STUN packet with a declared attribute length shorter than the structure it is cast to.

Generated on Jun 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

2

News mentions

0

No linked articles in our index yet.