fs默认不加载中文语音。需要在fs的src中首先编译中文模块。
热加载(不重启fs)命令为
make mod_say_zh-install
然后在fs控制台上加载该模块
load mod _say_zh
若想fs在每次启动的时候都加载该模块,就在autoload_configs/modules中<load module="mod_say_zh">的注释去掉即可。
下面举例
1. 将中文语音包存放到/usr/local/freeswitch/sounds/en/us/callie目录下。取名zh。即为/usr/local/freeswitch/sounds/en/us/callie/zh
2. 在/usr/local/freeswitch/conf/ivr_menus中编辑文件welcome.xml
1 <include>
2
3 <menu name="welcome"
4 greet-long="ivr-welcome_to.wav"
5 greet-short="ivr-welcome.wav"
6 invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav"
7 exit-sound="voicemail/vm-goodbye.wav"
8 timeout="15000"
9 max-fialures="3"
10 max-timeouts="3"
11 inter-digit-timeout="2000"
12 digit-len="4"
13 confirm-key=""
14 >
15
16 <entry action="menu-exec-app" digits="0" param="transfer 1000 XML default"/>
17 <entry action="menu-exec-app" digits="^(10[01][09])$" param="transfer $1 XML default"/>
18 </menu>
19 </include>
其中greet-long为进入ivr后首先播放的语音信息,若在timeout 时间内用户未输入信息,系统会播放greet-short信息,若用户一直未输入信息,系统 在播放max-timeouts-1次greet-short语音后关闭该ivr。如果用户在timeout时间内输入了错误信息,系统会播放invalid-sound语音。
3. 在目录/usr/local/freeswitch/conf/dialplan/default/中新建一个新文件00_welcome_test.xml
<include>
<extension name="zh_test">
<condition field="destination_number" expression="^(0920)$">
<action application="set" data="language=zh"/>
<action application="answer"/>
<action application="sleep" data="2000"/>
<action application="set" data="sound_prefix=$${sounds_dir}/en/us/callie/zh/8000/ivr"/>
<action application="ivr" data="welcome"/>
</condition>
</extension>
</include>
其中sound_prefix是该channel中使用的中文语音包的存放路径,sounds_dir是全局变量,在conf/vars.xml中有定义。
以上三步执行完毕后,执行reloadxml即可使用。