FreeSWITCH中的lua简介

FreeSWITCH默认使用使用XML Dialplan配置各种呼叫流程,但是功能相对有限,为此Freeswitch通过嵌入其他语言(如Lua、JavaScript、Python、Perl、Java等)解析器扩展其功能。

Lua模块默认是自动加载(Lua5.2),文档全面且其本身轻量,所以是最佳的选择。

Lua环境中,Freeswitch自动生成一个session对象。默认情况下,Lua执行完成后会自动挂断电话,如果想在执行完成后继续通话,需要在Lua中调用session:setAutoHangup(false)。

session包含的主要函数:

answer:应答

answered:是否已应答

bridged:是否已桥接

consoleLog:日志输出,session:consoleLog(“info”, “show info”)

execute(app, data):执行App,session:execute(“playback”, mySound)

executeString(api_string):执行字符串中的命令,session:executeString("playback "…mySound)

getVariable:获取通道变量,get_uuid(相当于getVariable(“uuid”))

setVariable:设定通道变量

hangup:挂机

streamFile:放音,相当于app中的playback

recordFile:录音

read:相当于app中的read,用于播放一个声音并获取DTMF。

playAndGetDigits:相当于app中的play_and_get_digits。session:playAndGetDigits (min_digits, max_digits, max_attempts, timeout, terminators, prompt_audio_files, input_error_audio_files, digit_regex, variable_name, digit_timeout, transfer_on_failure)

sleep:睡眠,毫秒数

setInputCallback:在放音或录音时,设定用户按下DTMF键后触发的一些功能。

sayPhrase:session:sayPhrase(macro_name [,macro_data] [,language])

speak:使用指定tts朗读文本

say:使用预定义的语法读出日期、时间、数字等。

transfer:转移

其他常用Freeswitch命令:

fsApi=freeswitch.API():获取调用API的接口,fsApi:executeString(…)执行API命令

freeswitch.bridge:桥接两个通道

freeswitch.consoleLog:输出日志

freeswitch.getGlobalVariable:获取全局变量,freeswitch.getGlobalVariable(“script_dir”)获取脚本文件的路径

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI_wx_3307623172

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值