freeswitch如何向嵌入式脚本传递参数
Song •
2136 次浏览 •
0个评论 •
2018年09月21日
freeswitch
中我们在开发的时候常常会用到内置脚本,但是如何给内置脚本传值官方文档一直没有介绍,这里我总结了一些方法,给他家参考:
一、通过APP来传值
freeswitch在内连模式内置脚本有一个handler(session, args)
方法来接受参数,但是楼主想要给内置脚本传递参数一直没有方法:在lua
中还可以通过如下方法传递:
参数以空格分隔的值传递:
luarun arg1 arg2 arg3
使用argv
访问参数,如下所示:
my_first_var = argv[1];
my_next_var = argv[2];
但是在python
中使用argv
就不行了,出现Message: 'module' object has no attribute 'argv'
;楼主找遍了各大网站都没有结果,后来在官网文档获得启发:mod_python
1、解决方法
handler(session, args)
中的args
就是接受参数的,我们这样写就可以传递参数了:
<action application="python" data="baidu parma1 parma2"/>
二、通过API方式传值
如果通过ESL
等方式传值,你会发现上面的方法就没有用了,为什么使用api
方式呢?比如你要实现群呼,实现智能客服,如下面这行命令:
originate user/1005 &python(baidu wsonh)
你会发现你的args
不能获取到wsonh
这个值了,如何解决呢?我们使用例外一种方法。
1、解决办法
内置脚本sesson
有一个session.getVariable()
方法可以获取通道变量,但是他的参数和ESL
的参数名称不一样,坑爹呀!而且你不能想ESL
一样使用serialize
来打印所有参数,我弄了一天,终于搞定了,再次强调坑爹:
originate {parma1=1,parma2=2}user/1005 &python(baidu wsonh)
然后如何接收呢?简单:
parma1 = session.getVariable("parma1")
parma2 = session.getVariable("parma2")
传啥取啥,但是你在ESL
中明明是variable_parma1
呀,害我一直以为不能用这种方法,找遍了google
!
用户评论
当前暂无评价,快来发表您的观点吧...
更多相关好文
当前暂无更多相关好文推荐...
-
微信公众号文章/菜单添加小程序时路径如何获取? 2021-12-22
-
如何轻松获取微信小程序路径path? 2021-12-22
-
cannot import name 'CUDA_HOME' from 'mmcv.utils' 2021-12-05
-
vgg的loss一轮达到ln(1/n)阈值,如何解决 2021-11-21
-
如何下载使用utils库 2021-10-27
热门文章
-
微信公众号文章/菜单添加小程序时路径如何获取? 2021-12-22
-
如何轻松获取微信小程序路径path? 2021-12-22
-
python/MySQL分页查询方法与性能优化 2021-06-23
-
mitmproxy & python 忽略所有的https/ssl请求 2021-04-19
-
如何使用邮件/邮箱推广微信公众号/小程序? 2021-01-28
栏目最新文章
公告提示
- pytorch中文文档
- pytorch官方文档
提交评论