提交 d1c60899 authored 作者: Michael Jerris's avatar Michael Jerris

add soundsdir configure var and sounds_dir global freeswitch var

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16241 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 146c7f8d
...@@ -25,7 +25,7 @@ DEFAULT_SOUNDS=en-us-callie-8000 ...@@ -25,7 +25,7 @@ DEFAULT_SOUNDS=en-us-callie-8000
echo $$full_sound_dir | grep music >/dev/null || soundfile=`echo freeswitch-sounds-$$full_sound_dir-$$sounds_version.tar.gz`; \ echo $$full_sound_dir | grep music >/dev/null || soundfile=`echo freeswitch-sounds-$$full_sound_dir-$$sounds_version.tar.gz`; \
if test "$$target" = "install"; then $(MAKE) $(AM_MAKEFLAGS) core_install; else $(MAKE) $(AM_MAKEFLAGS) core ; fi; \ if test "$$target" = "install"; then $(MAKE) $(AM_MAKEFLAGS) core_install; else $(MAKE) $(AM_MAKEFLAGS) core ; fi; \
if test "$$target_prefix" = "sounds"; then \ if test "$$target_prefix" = "sounds"; then \
if test "$$target" = "install"; then $(GETSOUNDS) $$soundfile $(DESTDIR)$(PREFIX)/sounds/; else $(GETSOUNDS) $$soundfile ; fi; \ if test "$$target" = "install"; then $(GETSOUNDS) $$soundfile $(DESTDIR)@soundsdir@/; else $(GETSOUNDS) $$soundfile ; fi; \
else \ else \
cd src/mod && $(MAKE) $(AM_MAKEFLAGS) $@ ;\ cd src/mod && $(MAKE) $(AM_MAKEFLAGS) $@ ;\
fi fi
......
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
<!-- If TTS is enabled all audio-file params beginning with --> <!-- If TTS is enabled all audio-file params beginning with -->
<!-- 'say:' will be considered text to say with TTS --> <!-- 'say:' will be considered text to say with TTS -->
<!-- Set a default path here so you can use relative paths in the other sound params--> <!-- Set a default path here so you can use relative paths in the other sound params-->
<param name="sound-prefix" value="$${base_dir}/sounds/en/us/callie"/> <param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/>
<!-- File to play to acknowledge succees --> <!-- File to play to acknowledge succees -->
<!--<param name="ack-sound" value="beep.wav"/>--> <!--<param name="ack-sound" value="beep.wav"/>-->
<!-- File to play to acknowledge failure --> <!-- File to play to acknowledge failure -->
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
<param name="rate" value="16000"/> <param name="rate" value="16000"/>
<param name="interval" value="20"/> <param name="interval" value="20"/>
<param name="energy-level" value="300"/> <param name="energy-level" value="300"/>
<param name="sound-prefix" value="$${base_dir}/sounds/en/us/callie"/> <param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/>
<param name="muted-sound" value="conference/conf-muted.wav"/> <param name="muted-sound" value="conference/conf-muted.wav"/>
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/> <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
<param name="alone-sound" value="conference/conf-alone.wav"/> <param name="alone-sound" value="conference/conf-alone.wav"/>
...@@ -131,7 +131,7 @@ ...@@ -131,7 +131,7 @@
<param name="rate" value="32000"/> <param name="rate" value="32000"/>
<param name="interval" value="20"/> <param name="interval" value="20"/>
<param name="energy-level" value="300"/> <param name="energy-level" value="300"/>
<param name="sound-prefix" value="$${base_dir}/sounds/en/us/callie"/> <param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/>
<param name="muted-sound" value="conference/conf-muted.wav"/> <param name="muted-sound" value="conference/conf-muted.wav"/>
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/> <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
<param name="alone-sound" value="conference/conf-alone.wav"/> <param name="alone-sound" value="conference/conf-alone.wav"/>
...@@ -156,7 +156,7 @@ ...@@ -156,7 +156,7 @@
<param name="rate" value="48000"/> <param name="rate" value="48000"/>
<param name="interval" value="10"/> <param name="interval" value="10"/>
<param name="energy-level" value="300"/> <param name="energy-level" value="300"/>
<param name="sound-prefix" value="$${base_dir}/sounds/en/us/callie"/> <param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/>
<param name="muted-sound" value="conference/conf-muted.wav"/> <param name="muted-sound" value="conference/conf-muted.wav"/>
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/> <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
<param name="alone-sound" value="conference/conf-alone.wav"/> <param name="alone-sound" value="conference/conf-alone.wav"/>
......
<configuration name="local_stream.conf" description="stream files from local dir"> <configuration name="local_stream.conf" description="stream files from local dir">
<!-- fallback to default if requested moh class isn't found --> <!-- fallback to default if requested moh class isn't found -->
<directory name="default" path="$${base_dir}/sounds/music/8000"> <directory name="default" path="$${sounds_dir}/music/8000">
<param name="rate" value="8000"/> <param name="rate" value="8000"/>
<param name="shuffle" value="true"/> <param name="shuffle" value="true"/>
<param name="channels" value="1"/> <param name="channels" value="1"/>
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<!--<param name="chime-max" value="500"/>--> <!--<param name="chime-max" value="500"/>-->
</directory> </directory>
<directory name="moh/8000" path="$${base_dir}/sounds/music/8000"> <directory name="moh/8000" path="$${sounds_dir}/music/8000">
<param name="rate" value="8000"/> <param name="rate" value="8000"/>
<param name="shuffle" value="true"/> <param name="shuffle" value="true"/>
<param name="channels" value="1"/> <param name="channels" value="1"/>
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<param name="timer-name" value="soft"/> <param name="timer-name" value="soft"/>
</directory> </directory>
<directory name="moh/16000" path="$${base_dir}/sounds/music/16000"> <directory name="moh/16000" path="$${sounds_dir}/music/16000">
<param name="rate" value="16000"/> <param name="rate" value="16000"/>
<param name="shuffle" value="true"/> <param name="shuffle" value="true"/>
<param name="channels" value="1"/> <param name="channels" value="1"/>
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<param name="timer-name" value="soft"/> <param name="timer-name" value="soft"/>
</directory> </directory>
<directory name="moh/32000" path="$${base_dir}/sounds/music/32000"> <directory name="moh/32000" path="$${sounds_dir}/music/32000">
<param name="rate" value="32000"/> <param name="rate" value="32000"/>
<param name="shuffle" value="true"/> <param name="shuffle" value="true"/>
<param name="channels" value="1"/> <param name="channels" value="1"/>
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<param name="timer-name" value="soft"/> <param name="timer-name" value="soft"/>
</directory> </directory>
<!-- <!--
<directory name="moh/48000" path="$${base_dir}/sounds/music/48000"> <directory name="moh/48000" path="$${sounds_dir}/music/48000">
<param name="rate" value="48000"/> <param name="rate" value="48000"/>
<param name="shuffle" value="true"/> <param name="shuffle" value="true"/>
<param name="channels" value="1"/> <param name="channels" value="1"/>
......
<include> <include>
<language name="en" sound-path="$${base_dir}/sounds/en/us/callie" tts-engine="cepstral" tts-voice="callie"> <language name="en" sound-path="$${sounds_dir}/en/us/callie" tts-engine="cepstral" tts-voice="callie">
<X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml --> <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. --> <!--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="vm/sounds.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!--тестовые файлы Вы звуковые файлы можно взять тут svn co http://svn.freeswitch.ru/bbv/mod_say_ru/ru/ --> <!--тестовые файлы Вы звуковые файлы можно взять тут svn co http://svn.freeswitch.ru/bbv/mod_say_ru/ru/ -->
<include> <include>
<language name="ru" sound-path="$${base_dir}/sounds/ru/RU/elena" tts-engine="cepstral" tts-voice="elena"> <language name="ru" sound-path="$${sounds_dir}/ru/RU/elena" tts-engine="cepstral" tts-voice="elena">
<X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml --> <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. --> <!--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="vm/sounds.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
<X-PRE-PROCESS cmd="set" data="default_password=1234"/> <X-PRE-PROCESS cmd="set" data="default_password=1234"/>
<!-- Did you change it yet? --> <!-- Did you change it yet? -->
<X-PRE-PROCESS cmd="set" data="sound_prefix=$${base_dir}/sounds/en/us/callie"/>
<!-- <!--
This setting is what sets the default domain FreeSWITCH will use if all else fails. This setting is what sets the default domain FreeSWITCH will use if all else fails.
......
...@@ -56,6 +56,10 @@ htdocsdir="${prefix}/htdocs" ...@@ -56,6 +56,10 @@ htdocsdir="${prefix}/htdocs"
AC_SUBST(htdocsdir) AC_SUBST(htdocsdir)
AC_DEFINE_UNQUOTED([SWITCH_HTDOCS_DIR],"${htdocsdir}",[where to put htdocs files]) AC_DEFINE_UNQUOTED([SWITCH_HTDOCS_DIR],"${htdocsdir}",[where to put htdocs files])
soundsdir="${prefix}/sounds"
AC_SUBST(soundsdir)
AC_DEFINE_UNQUOTED([SWITCH_SOUNDS_DIR],"${soundsdir}",[where to put sounds files])
grammardir="${prefix}/grammar" grammardir="${prefix}/grammar"
AC_SUBST(grammardir) AC_SUBST(grammardir)
AC_DEFINE_UNQUOTED([SWITCH_GRAMMAR_DIR],"${grammardir}",[where to put grammar files]) AC_DEFINE_UNQUOTED([SWITCH_GRAMMAR_DIR],"${grammardir}",[where to put grammar files])
......
...@@ -377,6 +377,7 @@ struct switch_directories { ...@@ -377,6 +377,7 @@ struct switch_directories {
char *grammar_dir; char *grammar_dir;
char *storage_dir; char *storage_dir;
char *recordings_dir; char *recordings_dir;
char *sounds_dir;
}; };
typedef struct switch_directories switch_directories; typedef struct switch_directories switch_directories;
......
...@@ -159,8 +159,8 @@ static switch_status_t do_snap(switch_core_session_t *session) ...@@ -159,8 +159,8 @@ static switch_status_t do_snap(switch_core_session_t *session)
switch_time_exp_lt(&tm, switch_time_make(switch_epoch_time_now(NULL), 0)); switch_time_exp_lt(&tm, switch_time_make(switch_epoch_time_now(NULL), 0));
switch_strftime(date, &retsize, sizeof(date), "%Y_%m_%d_%H_%M_%S", &tm); switch_strftime(date, &retsize, sizeof(date), "%Y_%m_%d_%H_%M_%S", &tm);
file = switch_core_session_sprintf(session, "%s%ssounds%s%s_%s.wav", SWITCH_GLOBAL_dirs.base_dir, file = switch_core_session_sprintf(session, "%s%s%s_%s.wav", SWITCH_GLOBAL_dirs.sounds_dir,
SWITCH_PATH_SEPARATOR, SWITCH_PATH_SEPARATOR, cb->base, date); SWITCH_PATH_SEPARATOR, cb->base, date);
switch_core_session_get_read_impl(session, &read_impl); switch_core_session_get_read_impl(session, &read_impl);
fh.channels = 0; fh.channels = 0;
......
...@@ -466,6 +466,14 @@ SWITCH_DECLARE(void) switch_core_set_globals(void) ...@@ -466,6 +466,14 @@ SWITCH_DECLARE(void) switch_core_set_globals(void)
#endif #endif
} }
if (!SWITCH_GLOBAL_dirs.sounds_dir && (SWITCH_GLOBAL_dirs.sounds_dir = (char *) malloc(BUFSIZE))) {
#ifdef SWITCH_SOUNDS_DIR
switch_snprintf(SWITCH_GLOBAL_dirs.sounds_dir, BUFSIZE, "%s", SWITCH_SOUNDS_DIR);
#else
switch_snprintf(SWITCH_GLOBAL_dirs.sounds_dir, BUFSIZE, "%s%ssounds", base_dir, SWITCH_PATH_SEPARATOR);
#endif
}
if (!SWITCH_GLOBAL_dirs.storage_dir && (SWITCH_GLOBAL_dirs.storage_dir = (char *) malloc(BUFSIZE))) { if (!SWITCH_GLOBAL_dirs.storage_dir && (SWITCH_GLOBAL_dirs.storage_dir = (char *) malloc(BUFSIZE))) {
#ifdef SWITCH_STORAGE_DIR #ifdef SWITCH_STORAGE_DIR
switch_snprintf(SWITCH_GLOBAL_dirs.storage_dir, BUFSIZE, "%s", SWITCH_STORAGE_DIR); switch_snprintf(SWITCH_GLOBAL_dirs.storage_dir, BUFSIZE, "%s", SWITCH_STORAGE_DIR);
...@@ -529,6 +537,7 @@ SWITCH_DECLARE(void) switch_core_set_globals(void) ...@@ -529,6 +537,7 @@ SWITCH_DECLARE(void) switch_core_set_globals(void)
switch_assert(SWITCH_GLOBAL_dirs.htdocs_dir); switch_assert(SWITCH_GLOBAL_dirs.htdocs_dir);
switch_assert(SWITCH_GLOBAL_dirs.grammar_dir); switch_assert(SWITCH_GLOBAL_dirs.grammar_dir);
switch_assert(SWITCH_GLOBAL_dirs.recordings_dir); switch_assert(SWITCH_GLOBAL_dirs.recordings_dir);
switch_assert(SWITCH_GLOBAL_dirs.sounds_dir);
switch_assert(SWITCH_GLOBAL_dirs.temp_dir); switch_assert(SWITCH_GLOBAL_dirs.temp_dir);
} }
...@@ -1178,7 +1187,6 @@ SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switc ...@@ -1178,7 +1187,6 @@ SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switc
{ {
switch_uuid_t uuid; switch_uuid_t uuid;
char guess_ip[256]; char guess_ip[256];
char *dir_path;
int mask = 0; int mask = 0;
struct in_addr in; struct in_addr in;
char hostname[256] = ""; char hostname[256] = "";
...@@ -1215,10 +1223,6 @@ SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switc ...@@ -1215,10 +1223,6 @@ SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switc
} }
switch_assert(runtime.memory_pool != NULL); switch_assert(runtime.memory_pool != NULL);
dir_path = switch_mprintf("%s%ssounds", SWITCH_GLOBAL_dirs.base_dir, SWITCH_PATH_SEPARATOR);
switch_dir_make_recursive(dir_path, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool);
switch_safe_free(dir_path);
switch_dir_make_recursive(SWITCH_GLOBAL_dirs.base_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool); switch_dir_make_recursive(SWITCH_GLOBAL_dirs.base_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool);
switch_dir_make_recursive(SWITCH_GLOBAL_dirs.mod_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool); switch_dir_make_recursive(SWITCH_GLOBAL_dirs.mod_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool);
switch_dir_make_recursive(SWITCH_GLOBAL_dirs.conf_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool); switch_dir_make_recursive(SWITCH_GLOBAL_dirs.conf_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool);
...@@ -1229,6 +1233,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switc ...@@ -1229,6 +1233,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switc
switch_dir_make_recursive(SWITCH_GLOBAL_dirs.htdocs_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool); switch_dir_make_recursive(SWITCH_GLOBAL_dirs.htdocs_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool);
switch_dir_make_recursive(SWITCH_GLOBAL_dirs.grammar_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool); switch_dir_make_recursive(SWITCH_GLOBAL_dirs.grammar_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool);
switch_dir_make_recursive(SWITCH_GLOBAL_dirs.recordings_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool); switch_dir_make_recursive(SWITCH_GLOBAL_dirs.recordings_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool);
switch_dir_make_recursive(SWITCH_GLOBAL_dirs.sounds_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool);
switch_dir_make_recursive(SWITCH_GLOBAL_dirs.temp_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool); switch_dir_make_recursive(SWITCH_GLOBAL_dirs.temp_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool);
switch_mutex_init(&runtime.uuid_mutex, SWITCH_MUTEX_NESTED, runtime.memory_pool); switch_mutex_init(&runtime.uuid_mutex, SWITCH_MUTEX_NESTED, runtime.memory_pool);
...@@ -1264,6 +1269,8 @@ SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switc ...@@ -1264,6 +1269,8 @@ SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switc
switch_core_set_variable("local_ip_v6", guess_ip); switch_core_set_variable("local_ip_v6", guess_ip);
switch_core_set_variable("base_dir", SWITCH_GLOBAL_dirs.base_dir); switch_core_set_variable("base_dir", SWITCH_GLOBAL_dirs.base_dir);
switch_core_set_variable("recordings_dir", SWITCH_GLOBAL_dirs.recordings_dir); switch_core_set_variable("recordings_dir", SWITCH_GLOBAL_dirs.recordings_dir);
switch_core_set_variable("sound_prefix", SWITCH_GLOBAL_dirs.sounds_dir);
switch_core_set_variable("sounds_dir", SWITCH_GLOBAL_dirs.sounds_dir);
switch_core_set_serial(); switch_core_set_serial();
switch_console_init(runtime.memory_pool); switch_console_init(runtime.memory_pool);
...@@ -1803,6 +1810,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_destroy(void) ...@@ -1803,6 +1810,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_destroy(void)
switch_safe_free(SWITCH_GLOBAL_dirs.htdocs_dir); switch_safe_free(SWITCH_GLOBAL_dirs.htdocs_dir);
switch_safe_free(SWITCH_GLOBAL_dirs.grammar_dir); switch_safe_free(SWITCH_GLOBAL_dirs.grammar_dir);
switch_safe_free(SWITCH_GLOBAL_dirs.recordings_dir); switch_safe_free(SWITCH_GLOBAL_dirs.recordings_dir);
switch_safe_free(SWITCH_GLOBAL_dirs.sounds_dir);
switch_safe_free(SWITCH_GLOBAL_dirs.temp_dir); switch_safe_free(SWITCH_GLOBAL_dirs.temp_dir);
switch_core_hash_destroy(&runtime.global_vars); switch_core_hash_destroy(&runtime.global_vars);
......
...@@ -2136,12 +2136,6 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_say(switch_core_session_t *session, c ...@@ -2136,12 +2136,6 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_say(switch_core_session_t *session, c
if (sound_path) { if (sound_path) {
switch_channel_set_variable(channel, "sound_prefix", sound_path); switch_channel_set_variable(channel, "sound_prefix", sound_path);
} else {
switch_channel_set_variable_printf(channel, "sound_prefix", "%s%ssounds%s%s",
SWITCH_GLOBAL_dirs.base_dir,
SWITCH_PATH_SEPARATOR,
SWITCH_PATH_SEPARATOR,
chan_lang);
} }
if ((si = switch_loadable_module_get_say_interface(module_name))) { if ((si = switch_loadable_module_get_say_interface(module_name))) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论