首页 > 新闻 > 专家观点 >

《FreeSWITCH 1.2》:拨号规则脚本语言

2014-04-23 11:44:20   作者:   来源:CTI论坛   评论:0  点击:


  在上一个章节中,我们介绍了通过内置的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脚本

  从 标签中调用lua拨号应用,可以使用以下类似语法:

  <action application="lua"

  data="my_script.lua arg1 arg2 arg3"/>

  通过空格界定传递到脚本的参数。包含一个带空格的传递参数,请使用单引号来界定参数:

  <action application="lua"

  data="my_script.lua 'arg 1' 'arg 2' 'arg 3'"/>

  如果用户的脚本安装在了默认FreeSWITCH的scripts 子目录,用户没有必要指定脚本的完整路径。如果需要那样设置,用户可以使用绝对路径。例如,在Linux/Unix环境下,可以这样设置:

  <action application="lua" data="/full/path/to/my_script.lua"/>

  在Windows环境下:

  <action application="lua"

  data="C:\full\path\to\my_script.lua"/>

  开始编写脚本之前,让我们简单了解一下Lua语言的语法。

  未完待续······

 

 

 

 

 

 

 

 

 

相关阅读:

分享到: 收藏

专题