FreeSWITCH IVR中lua调用并执行nodejs代码

一、功能需求:

  通过FreeSWITCH的IVR按键调用相应的脚本文件;nodejs提供很多的模组,可以方便的与其它系统或者进行任何形式的通讯,我的应用是通过nodejs发送http post请求;

  由于不太熟悉FreeSWITCH直接调动执行nodejs文件的方法,所以我通过执行Lua脚本,在lua脚本中执行对nodejs文件的调用并执行,具体的设定记录如下:

二、具体设定:

  ①IVR设定:

    <entry action="menu-exec-app" digits="1" param="lua testLighton.lua"/>
  ②testLighton.lua脚本内容:

    os.execute(‘node /usr/local/freeswitch/scripts/lighton.js‘);  //Nodejs文件存放位置:/usr/local/freeswitch/scripts/lighton.js

  ③/usr/local/freeswitch/scripts/lighton.js 脚本内容:  

    var rest = require(‘restler‘);

    rest.post(‘http://192.168.11.17:3021/serviceUp/cmd/sendCMDDispatcher‘, {
      data: {
        cmdContent:[{
          ‘DeviceEntityAID‘: ‘03003c00‘,
          ‘DataID‘: ‘03010000‘,
          "Value":"ff"
        }]
      },
    }).on(‘complete‘, function(data, response) {
      console.log(data);
    }).on(‘error‘,function(er){
      console.log(er);
    });

  到此,就可以根据IVR提示中的 “1” 按钮实现Http post的请求,其中data区在body中进行传输。

    

  

时间: 2024-08-07 12:08:58

FreeSWITCH IVR中lua调用并执行nodejs代码的相关文章

try ,finally都抛出异常如何处理.如果try中抛出了异常,在控制权转移到调用栈上一层代码之前, finally 语句块也会执行,如果finally抛出异常,try语句快抛出的那个异常就

package com.github.jdk7; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * try ,finally都抛出异常如何处理.如果try中抛出了异常,在控制权转移到调用栈上一层代码之前, * finally 语句块也会执行,如果finally抛出异常,try语句快抛出的那个异常就丢失了. * * @author doctor * * @since 2014年

WEB中调用Nutch执行JOB抓取

把nutch的源代码导入到eclipse工程自定义抓取任务. 下载源码: http://svn.apache.org/repos/asf/nutch/ 从svn下载想要的nutch源码,这里选择nutch-1.1 编译源码: 使用ant编译源代码,编译成功,可以看到多了一个build目录,其中有plugins目录及nutch-1.1.job文件 新建WEB工程 新建web工程org.apache.nutch.web,执行以下操作 1.      把nutch源代码的src/java 目录复制到w

nodejs hello world (调用文件执行没反应)

今天学习了node.js ,来看一下hello world 的写法. 1. 首先安装node.js的驱动文件.http://nodejs.org/ 2. a:安装好node之后,在CMD窗口输入node,再输入console.log('hello world.'); 3.调用文本文件. sample: 创建一个文件hello.js,并且把console.log('hello world.');作为文本内容. 在cmd 命令行下直接输入:node "文件路径\hello.js" Note

Coco2dx-3.0中怎样调用LUA

一个用3.0的工具导出类到lua,自己主动生成代码的方法. 曾经要导出c++类到lua.就得手动维护pkg文件,那简直就是噩梦.3.0以后就会感觉生活非常轻松了. 以下我就在说下详细做法. 1.安装必要的库和工具包,以及配置相关环境变量,请依照cocos2d-x-3.0rc0\tools\tolua\README.mdown说得去做,不做赘述. 2.写c++类(我測试用的是cocos2d-x-3.0rc0\tests\lua-empty-test\project\Classes\HelloWor

cocos2d-x 中LUA和平台之间的函数调用理解

先看一张流程图如下: 第一步: 先把NDKHelper中的方法转成LUA中可以调用的,转得方法可参考quick中LUA的用法.这个类主要是中间桥梁的作用,它可以根据是什么平台调用IOSNDKHelper或者AndroidSNDKHelper,这些判断都是用C语言来写的.还有就是对一些回调函数的保存机制和平台要用LUA中一些方法的保存. 第二步: IOS平台需要处理的就是IOSNDKHelper,这个类主要就是接收和发送给NDKHelper数据的方法,还有一个就是加载IOS平台的BasePlatf

Quick-Cocos2d-x 使用tolua工具导出C++的类给Lua调用

记得很久以前,刚开始接触Quick,那时候尝试过一次这样的操作,不过失败了. 因为那时候还年幼,对这里面的一套机制不是太熟悉.现在回头再做这样的事,遇到了问题,但是都很好的根据自己的理解给解决了. 现在记录下,我tolua成功的过程,在写blog的过程中,更熟练其中的原理. PS:网上关于quick tolua的blog都有点过时了(dualface的quick官网文章),具体的过程,还是要自己多注意. 我是基于Quick  2.2.1-rc版本实现的. ————————————————————

Lua学习笔记--Lua调用C初探

上次学习了怎么用C调用Lua的函数,并返回一个结果,这次看看怎么反过来,用Lua调用C的函数. 一.简介 C调用Lua函数比较简单,只需要操作相关的栈就可以了,但是Lua调用C的话,稍微有一点麻烦,虽然还是用栈来进行数据的传递,但是由于Lua中本身没有C中写的函数,所以需要多一步将C函数注册到Lua中的步骤. Lua反过来调用C函数的话,首先,我们要写一个要被调用的函数,这个函数有一个格式的要求 ,返回值为int,但是这个int并不代表Lua函数的返回值,而是函数返回值的个数,Lua支持多重返回

Cocos2d-x下Lua调用自定义C++类和函数的最佳实践

原文地址:http://segmentfault.com/a/1190000000631630 关于cocos2d-x下Lua调用C++的文档看了不少,但没有一篇真正把这事给讲明白了,我自己也是个初学者,摸索了半天,总结如下: cocos2d-x下Lua调用C++这事之所以看起来这么复杂.网上所有的文档都没讲清楚,是因为存在5个层面的知识点: 1.在纯C环境下,把C函数注册进Lua环境,理解Lua和C之间可以互相调用的本质2.在cocos2d-x项目里,把纯C函数注册进Lua环境,理解cocos

【转】Cocos2d-x下Lua调用自定义C++类和函数的最佳实践

转自:http://segmentfault.com/blog/hongliang/1190000000631630 关于cocos2d-x下Lua调用C++的文档看了不少,但没有一篇真正把这事给讲明白了,我自己也是个初学者,摸索了半天,总结如下: cocos2d-x下Lua调用C++这事之所以看起来这么复杂.网上所有的文档都没讲清楚,是因为存在5个层面的知识点: 1.在纯C环境下,把C函数注册进Lua环境,理解Lua和C之间可以互相调用的本质 2.在cocos2d-x项目里,把纯C函数注册进L