用FreeSWITCH实现IVR

 
IVR系统默认的配置文件为/usr/local/freeswitch/conf/autoload_configs/ivr.conf.xml
<include>
    <menus>
        <menu name="welcome"
         greet-long="/usr/local/freeswitch/sounds/welcome.wav"
        greet-short="/usr/local/freeswitch/sounds/morning.wav"   #一定要注意录音文件的路径
        invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav"
        exit-sound="voicemail/vm-goodbye.wav"
        timeout="15000"
        max-failures="3"
        max-timeouts="3"
        inter-digit-timeout="2000"
        digit-len="4">
        <entry action="menu-exec-app" digits="0" param="transfer 1000 XML default"/>
        <entry action="menu-exec-app" digits="/^(10[01][0-9])$/" param="transfer $1 XML default"/>
        <menu>
    <menus>
<include>
 
实现拨打4321号码,转到IVR流程
编辑/usr/local/freeswitch/conf/dialplan/default.xml  新增如下代码
<extension name="incoming_ivr">
      <condition field="destination_number" expression="^4321$">
        <action application="answer"/>
        <action application="sleep" data="2000"/>
        <action application="ivr" data="welcome"/>
      </condition>
    </extension>
greet-long:指定最开始的欢迎词,该语音文件默认位置应该是在/usr/local/freeswitch/sounds目录下;
greet-short:该项指定一个简短的提示音,如果用户长时间没有哦按键,则应重新提示拨号;
invalid-sound:如果用户按错了键,则会使用该提示;
exit-sound:该项指定最后菜单退出是(一般是超时没有按键)的声音;
timeout:指定超时时间(毫秒),即多长时间没有收到按键就超时,播放其他提示音;
max-failures:为容忍用户按键错误的次数;
max-timeouts:即最大超时次数;
inter-digit-timeout:为两次按键的最大间隔(毫秒);
digit-len:说明菜单项的长度,即最大收号位数。
按时间进线路由
<extension name="time_based_ivr">
    <condition wday="2-6" hour="8:30-17:30">
        <action application="ivr" data="ivr_day"/>
        <anti-action application="ivr" data="ivr_night"/>
    </condition>
</extension>
wday表示星期(星期日的值为“0“,故周一到五则的值用“2-6”表示)
使用sound_prefix,播放中文语音
修改/usr/local/freeswitch/conf/vars.xml为
<X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/zh/cn/link"/>

猜你喜欢

转载自www.cnblogs.com/myfk5741/p/11320595.html