FreeSWITCH 中的lua脚本里使用cjson的办法

本文介绍了如何在FreeSWITCH的Lua脚本中使用cjson。在Mac OS 10.10.x上,如果cmake报错,可以尝试在编译时进行相应调整。而在Centos 6.x上,解决找不到lua.h的问题需修改Makefile。记得检查/usr/local/lib/lua/5.2/目录是否存在。文中还提供了一个测试程序,可在FreeSWITCH console中调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可以直接用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调用测试即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值