在上一个章节中,我们介绍了通过内置的XML IVR引擎创建基本的IVR应用。XML IVR引擎可以创建相对简单,相对静态的IVR应用场景。FreeSWITCH同样支持另外一种搭建IVR场景的方式,这种方式比内置的IVR引擎更加强大,灵活。这种方法就是通过调用各种脚本语言来配合FreeSWITCH 创建灵活的IVR应用模块。FreeSWITCH 支持以下几种脚本语言来创建IVR:
·JavaScript
·Lua
·Perl
我们可以通过以上任何一种语言来进行IVR开发。在这个章节,我们重点技术Lua (www.lua.org),它是一种轻量级的基本语言,可以嵌入到其他的项目中。最着名的例子就是魔兽世界。
【每一种脚本语言都有他们各自的优势和劣势。因为Lua 执行比较快,稳定性好,而且容易学习,所以我们选择Lua 作为重点技术的基本语言。如果一切条件不变,Lua相对来说是比较好的选择用来编写拨号规则脚本。】
在这个章节,我们将讨论以下内容:
·使用Lua语言开发
·创建语音应用
·高级IVR
·脚本使用提示
开发语音应用中使用了Lua脚本语言,在我们的实例中,我们将更多使用自定义的phrase macros。
使用Lua语言开发
当我们使用实例配置文件时,Lua已经被默认加载。为了确认用户已经安装运行了Lua, 打开fs_cli,然后执行命令lua。用户应该看到类似的结果:
freeswitch@internal> lua
-ERR no reply
如果看到错误信息,这个错误信息提示没有发现此命令,那么用户需要安装加载mod_lua 到系统中。就像我们编译加载mod_flite那样安装此模块。参考第二章,编译和安装的详细信息。
从拨号规则中运行Lua脚本
从
<action application="lua"
data="my_script.lua arg1 arg2 arg3"/>
通过空格界定传递到脚本的参数。包含一个带空格的传递参数,请使用单引号来界定参数:
<action application="lua"
data="my_script.lua 'arg 1' 'arg 2' 'arg 3'"/>
在Windows环境下:
<action application="lua"
data="C:\full\path\to\my_script.lua"/>
开始编写脚本之前,让我们简单了解一下Lua语言的语法。
未完待续······