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一些高级功能-配置中文语音提示等相关推荐

  1. 用Adobe Reader的“朗读”功能实现“少林修女GPS”语音提示

    Adobe reader (以前叫Adobe Acrobat Reader, 大概是从8.0-9.0版本的时候为了跟收费的Adobe Acrobat区分,把中间的Acrobat去掉,成为现在沿用的名字 ...

  2. FreeSWITCH中文语音包

    一.中文语音资源的获取 1 官方提供的资源:http://files.freeswitch.org/releases/sounds/ 2 自己录音 3 实在不行可以@我给你发一份. 二.中文资源的安装 ...

  3. FreeSWITCH在呼叫失败的情况下如何播放语音提示

    看到好多网友问到这个问题.一般我们在打电话时会听到"您拨的电话正在通话中,请稍后再拨....",或"电话无应答..."之类的提示,我们在 freeswitch ...

  4. 使用js写一个播放语音提示的功能

    利用window自带的speechSynthesis编写一个播放语音提示的功能 之前利用百度的在线语音合成发现改不了其中的per属性,自己装了一下node包,发现cnpm引入的时候会与vue-admi ...

  5. AI中文语音克隆、语音合成——GitHub上babysor/MockingBird 项目源码部分功能实现

    AI中文语音克隆.语音合成--GitHub上babysor/MockingBird 项目源码部分功能实现 第一次独立地从认识一项技术,然后到github上搜索相关代码,跟着ReadMe.md教学文档将 ...

  6. 1、solr包结构介绍,solrCore的安装配置,solr部署到Tomcat,多solrCore配置,配置中文分词器,界面功能介绍,Schema.xml的基本使用,数据导入

    一.下载solr,下载地址是:http://archive.apache.org/dist/lucene/solr/,选择自己想要的solr的版本,本项目使用的版本是4.10.3 二.如果想下载Luc ...

  7. C#使用System.Speech制作语音提示功能

    转载自:C#语音提示 c#实现语音阅读以及文本转语音文件是基于c#的一个类库(SpeechSynthesizer )实现的,使用该类必须要添加引用using System.Speech.Synthes ...

  8. 为自己的软件添加语音提示功能

    公司的项目,要求为软件添加语音提示功能. 主要有两个思路: 1.直接播放语音文件,如*.mp3或*.wav 2.将输入的字符串转为语音文件 上一家公司做过播放语音文件,但将输入的字符串转换为语音文件感 ...

  9. C#中实现简单的预警提示功能(语音提示与弹窗提示)

    场景 在储液罐液位偏低时会进行语音播报提示与弹窗提示. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子 ...

最新文章

  1. 小森林顺序_英桥镇彩虹幼儿园趣味亲子活动—森林运动会
  2. gitzip没有作用以及github如何下载单个文件或目录
  3. 学嵌入式Linux软件开发需要的知识
  4. 使用 rsync / scp 命令下载linux文件,显示网速和进度
  5. 忽略异常_忽略已检查的异常,所有出色的开发人员都在这样做–基于600,000个Java项目...
  6. *【PAT天梯】分而治之(并查集,暴力)
  7. 编写一个猜数字游戏程序:
  8. MyBatis全局配置文件MyBatis-config.xml代码
  9. 图片简单上色,花开花落云卷云舒。
  10. cvScale 深度转换 线性变换
  11. 看拉扎维《模拟CMOS集成电路设计》的一些总结和思考(六)——放大器的频率特性
  12. linux ubuntu vim复制粘贴,关于vim的复制粘贴
  13. iOS UITextField实时监听获取输入内容,中文状态去除预输入拼音
  14. PYTHON处理年月日的英文转换
  15. 微信小程序 —— 在微信小程序里面退出小程序
  16. 基于Spring Security与JWT实现单点登录
  17. linux 下安装mysql相关笔记
  18. 从FPGA到ACAP,“万能芯片”蝶变转型
  19. 【深度学习】平移不变性 (translation invariant)
  20. 【STM32-机智云平台】ESP8266模块,如何烧录机智云固件,参考经验贴

热门文章

  1. 【物联网项目系列】springboot 实现mqtt物联网
  2. vs2015编写基本C
  3. 机械工程师和电气工程师方向哪个前景比较好?
  4. 香港服务器的3c直连网络是什么概念,跟CN2的线路有什么不一样
  5. 微信支付回调地址 http https问题
  6. javaSE_中文转拼音
  7. php电子商务网站案例,基于PHP的B2C电子商务网站开发
  8. vue-router之addRoutes(动态路由/权限路由)使用分析
  9. 必学框架新版SpringBoot教程(下集)
  10. Spring Boot基础入门+内置tomcat+自动配置浅谈分析