可以直接用FreeSWITCH自带的lua 5.2版本,其源码目录是
freeswitch/src/mod/languages/mod_lua/lua
下面是我的使用过程
Mac OS 10.10.x
wget http://www.kyne.com.au/~mark/software/download/lua-cjson-2.1.0.tar.gz
tar xvzf lua-cjson-2.1.0.tar.gz
cd lua-cjson-2.1.0
mkdir build
export LUA_DIR=~/freeswitch/src/mod/languages/mod_lua/lua
cd build
cmake ..
这里cmake 如果出错则
cd $LUA_DIR
make macosx
在编译
cd bulid
cmake ..
cd ..
make
cp cjson.so /usr/local/lib/lua/5.2/
注:FreeSWITCH自带了lua5.2版本,但只是编译到mod_lua,/usr/local/lib/lua/5.2/这个目录可能不存在,可以手动创建一个
Centos 6.x
wget http://www.kyne.com.au/~mark/software/download/lua-cjson-2.1.0.tar.gz
yum install -y readline-devel
export LUA_DIR=/root/work/src/freeswitch/src/mod/languages/mod_lua/lua
cd $LUA_DIR && make linux
tar xvzf lua-cjson-2.1.0.tar.gz
cd lua-cjson-2.1.0 && make
cp cjson.so /usr/local/lib/lua/5.2/
注:make中可能会出现找不到lua.h的问题,修改Makefile,将其头文件目录包含$LUA_DIR即可。 /usr/local/lib/lua/5.2/目录问题同上
例子
附上测试程序:
local cjson = require "cjson"
--json_text = '[ true, { "foo": "bar" } ]'
json_text = { foo = "bar" };
value = cjson.encode(json_text)
freeswitch.consoleLog("info", value)
从FreeSWITCH的console调用测试即可