14-FreeSwitch-用FreeSWITCH实现IVR

本文详细介绍了如何使用FreeSwitch实现交互式语音响应(IVR)系统,包括配置文件的位置、菜单创建步骤、关键词解释以及测试方法。通过示例展示了如何设置欢迎语音、错误提示、超时处理,并提供了拨号计划示例。此外,还提及了默认IVR的下级菜单和返回上级菜单的操作,以及根据时间路由IVR选择的概念。
摘要由CSDN通过智能技术生成

一、用FreeSwitch 实现ivr

ivr:交互式语音响应

1.1配置文件位置(作用:/usr/local/freeswitch/conf/ivr_menus下的所有ivr装入)

/usr/local/freesiwtch/conf/autoload_configs/ivr.conf.xml

配置文件是XML格式,菜单放到 中,而每一个即是一个菜单。并且,每个menu应该有一个唯一的名字(name),以便在拨号计划(dialplan)中引用。
在这里插入图片描述

1.2实操: 在/usr/local/freeswitch/conf/ivr_menus下新建welcome

在这里插入图片描述

<include>
	<menus>
		<menu name="welcome"
			greet-long="custom/welcome.wav"
			greet-short="custom/welcom_short.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>

1.2.1 内容说明

我们指定菜单的名字是welcome,greet-long即为最开始播放的语音--“您好,欢迎致电XX公司,请直拨分机号,查号请拨0”,

该语音文件默认的位置应该是/usr/local/freeswitch/sounds/,所以,您应该事先把声音文件录好,放到custom/welcome.wav(当然,你也可以使用其它路径,如/home/your_name/ivr/welcome.wav)。并且,由于PSTN交换机都是使用PCM编码,所以,welcome.wav文件的格式应为单声道,8000HZ。

如果用户长时间没有按键,刚应重新提示拨号,但重新提示应该简短,如“请直拨分机号,查号请拨0”。所以,可以录制这么一个声音文件放到custom/welcome_short.wav。

1.2.2 关键词说明

invalid-sound:如果用户按错了键,则会使用该提示。如果你安装时指定了make sounds-install,则该文件应该用默认存在的,只是它是英文的,如果你需要中文的提示,可以自己录一个放到custom中。
exit-sound:不说也知道,最后菜单退出时(一般时超时),会提示Good Bye。
timeout指定超时时间;
max-failures容忍用户按键错误的次数。
max-timeouts即最大超时次数。
inter-digit-timeout为两次按键的最大间隔(毫秒),如用户拨分机号1001时,如果拨了10,等2秒,然后再按01,这时系统收到的号码为10,则会提示错误 invalid-sound。
digit-len说明菜单项的长度,在本例中,用户分机号为4位。
menu-exec-app:该menu中有两个选项,第一个是在用户按0时, menu-exec-app执行一个命令(参见mod_command)在此处它执行transfer,将来话转到分机1000。如果来电用户知道分机号,则可以直接拨分机号,而不用经过前台转接,节约时间。在该例中,正则表达式"/^(10[01][0-9])$/" 会匹配用户输入1000-1019之间的分机。

1.3 以上菜单设定好后,需要在控制台中执行 reloadxml (或按F6)才可以配置生效。

1.4测试

FS> originate user/1001 &ivr(welcome)

或者

<action application="ivr" data="welcome"/>

外部呼入:进来这样,如果有外部呼叫进来,就可以听到语音菜单了。

<extension name="incoming_call">
  <condition field="destination_number" expression="^你的DID号码$">
<action application="answer" data=""/>
<action application="sleep" data="1000"/>
<action application="ivr" data="welcome"/>
  </condition>
</extension>

二、默认ivr简介

2.1进行下级菜单menu-sub

在这里插入图片描述

2.2返回上级菜单menu-top

在这里插入图片描述

三、按照时间进行路由ivr选择(书本233)

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码浪人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值