一、功能需求:
通过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中进行传输。