Freeswitch一些高级功能-配置中文语音提示等

1.批量创建用户

用户配置文件在conf/directory/default/目录下, 每个用户对应一个XML配置文件 Freeswitch默认提供了1000~1019这20个用户, 如果手动创建另一个用户如2000,只需以1000位模板, 将该文件复制到1020.xml 把1020.xml中出现1000的地方都替换成1020即可 sed -e "s/1000/1020" 1000.xml > 1020.xml 如果要创建一批用户怎么办? for i in `seq 1020 1039`; do sed -e "s/1000/$i" 1000.xml > $i.xml ; done seq 产生一个序列, 两个参数分别是序列的起止点, for循环一次取得每个值,并赋给i, Freeswitch源代码目录script/perl目录有个add_user脚本 ./add_user 1020

2.用Freeswitch实现IVR

IVR(交互式语音响应), 电话语音菜单 使用分机, 拨打5000, 欢迎来到Freeswitch, 1 进入Freeswitch会议, 2 进入回音, 3 等待会议, 4 转到开发者... 1)最简单的菜单 一些廉价的小企业交换机通常提供这样的功能, 当电话接入时, 会播放: 欢迎致电某某公司, 请直拨分机号, 查号请拨0 IVR默认的配置文件为 conf/autoload_configs/ivr.conf.xml 它装入conf/ivr_menus/目录下所有的XML文件 系统有个示例的IVR配置, 叫demo_iver, 也就是我们听到的5000 <include> <menus> <menu name="welcome" greet-long="welcome.wav" greet-short="welcome_short.wav" invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav" exi-sound="voicemail/vm-goodbye.wav" timeout="15000" max-failures="3" max-timeouts="3" inter-digit-timeout="2000" digit-len="4"> </menu> </menus> </include>

3.按时间进行路由

上班时间路由到一个IVR, IVR报完欢迎语后,可以引导转入人工总机 下班后, 来电转到另一个IVR, 工作全部电脑自动处理

4.配置中文语音提示

Freeswitch默认提示音都是英文的 中文语音包 http://wiki.freeswitch.org/wiki/Language_Files#Chinese。

1)最简单的实现方案 在Freeswitch中, 默认的声音文件放在Freeswitch安装目录sounds下, 不同语种的文件以不同的目录分类存放 /usr/share/freeswitch/sounds en/us: 美国英语 callie 是人名,这些录音由callie录 ascii: 代表ASCII字符 digits 代表数字 8000Hz 说明这些文件以8000Hz的采样率存放的 最简单的方式,就是将这些文件直接用中文语音包对应的文件替换

2)使用sound_prefix 在Freeswitch配置文件中, 有个sound_prefix变量用于定义声音文件的具体路径,在vars.xml <X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/en/us/callie"/> 改变变量的值也能改变大部分声音文件的参考位子 <X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/zh/cn/link"/> 也可以在Dialplan对每个Channel进行改变 <action application="set" data="sound_prefix=$${sounds_dir}/zh/cn/link"/> 另外该变量可以设置到用户目录中, 当特定的用户拨打电话时,就使用该变量, 修改1002.xml <variable name="sound_prefix" value="$${sounds_dir}/zh/cn/link"/> 拨打1002,就会听到1234, 其他用户,听到one two three

3)使用Phrase 上面的方式只能改变playback使用的声音,而Freeswitch大部分的语音提示,如IVR和Voicemail都使用Phrase实现

1.认识Phrase 为了屏蔽各种不同语言提示的差异性, Freeswitch实现了Phrase(短语)框架 可以将不同语言的日期, 时间, 货币及数字等以相同语法表示, 并在必要时结合TTS实现更强大的语音提示 在默认的IVR配置中, 就使用了Phrase, 如在ivr_menus/demo_ivr.xml中 greet-long="phrase:demo_ivr_main_menu" 该Phrase是在conf/lang/en/demo/demo_ivr.xml中定义的一个宏, 可以拨打9386将播放一些有意思的声音, 这些声音都是在funny_prompts这个Phrase实现的

2.中文配置Phrase 复制整个目录到zh cd conf/lang cp -R en zh cd zh mv en.xml zh.xml 中文框架配置完成, 修改zh.xml 将其中的name和say-module都修改为zh,并把sound-prefix修改为中文录音文件的路径 <language name="zh" sya-module="zh" sound-prefix="$${sounds-dir}/zh/cn/link" tts-engine="mod_tts_commandline" tts-voice="Ting-Ting"> 告诉Freeswitch, 中文配置, conf/freeswitch.xml <X-PRE-PROCESS cmd="include" data="lang/en/*.xml"/> 在该行后面加入如下行 <X-PRE-PROCESS cmd="include" data="lang/zh/*.xml"/>

3.说中文 Freeswitch的Say接口, 可以通过一些预先录制的声音说出一些常用的词语组合, 日期,时间,货币,数字等 如果需要支持中文, 就需要mod_say_zh模块, 该模块默认不被编译也不加载,需要我们先编译,到Freeswitch源代码目录 make mod_say_zh-install load mod_say_zh 为了让Freeswitch启动时自动加载该模块,需要在conf/autoload_configs/modules将下列注释去掉,让Freeswitch自动加载该模块 <load module="mod_say_zh"/>

4.使用中文语音提示 为了能播放中文提示,还需要在Dialplan中指定language或default_language通道变量 修改5000对应的Dialplan <action application="set" data="language=zh"/> <extension name="ivr_demo"> <condition field="destination_number" expression="^5000$"> <action application="set" data="language=zh"/> <aciton application="answer"/> <action application="sleep" data="2000"/> <action application="ivr" data="demo_ivr"/> </condition> </extension> 该变量也可以加到用户目录, 比如,我们可以在1002的用户配置文件1002.xml的variables标签添加如下配置 <variable name="language" value="zh"/> <variable name="default_language" value="zh"/> 也可以将上述文件添加到conf/directory/default.xml中, 对该域的所有用户生效

5.录音

1.单腿录音 呼叫1000, 1000接听后直接录音 originate user/1000 &record(/tmp/welcome.wav) 在Dialplan中录音 <extension name="record"> <condition field="destination_number" expression="^rec(.*)$"> <action application="answer"/> <action application="playback"

9.实现呼叫前转业务

拨打一个特定的功能码(*57*),登记想转移到的电话号码,以后所有呼叫都会转到该号码 分机1002是Alice的电话, 由于临时到另一个办公室工作, 另一个电话时1007, Alice在1002拨打*57*1007#登记呼叫前转,以后有人呼叫1002,就自动转移到1007 回来的时候,在1002上拨打#57#取消呼叫前转,再次拨打1002,就直接振铃

freeswitch是一个功能强大的开源电话交换平台,可以用于构建语音、视频和聊天应用程序。想要将freeswitch移植到ARM架构下进行交叉编译,可以按照以下步骤进行。 首先,确保你有一个可以运行Linux操作系统的ARM开发板或设备。ARM架构有许多不同的变种,所以你需要选择适合你设备的版本。 其次,安装交叉编译工具链。交叉编译工具链包含用于在一种架构上生成另一种架构的二进制文件的工具。你需要为ARM架构下载并安装适当的交叉编译工具链。 然后,获取freeswitch的源代码。你可以从官方网站上下载最新的源代码包或从版本控制系统中获取最新的开发版本。将源代码解压到你的开发环境中。 接下来,配置freeswitch的编译选项。进入freeswitch的源代码目录,执行./configure命令来配置编译选项。在configure命令中,使用--host选项指定目标架构为ARM,指定交叉编译工具链的路径。 然后,进行编译。运行make命令来编译freeswitch。这可能需要一些时间,因为编译freeswitch可能涉及到许多依赖库的编译和链接。 最后,将编译后的二进制文件和依赖库安装到ARM设备中。使用make install命令来安装freeswitch到指定的目录。 完成上述步骤后,你就成功地将freeswitch移植到ARM架构中,并进行了交叉编译。现在,你可以在ARM设备上运行freeswitch,并构建语音、视频和聊天应用程序了。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值