最新要闻
- 每日短讯:剪映上线团队剪辑“神技”:异地多端一起剪视频成为可能
- 3299元起 vivo S16 Pro手机发布:首发双面柔光人像拍摄
- 环球信息:童年的味道 大白兔奶糖促销:1斤20元到手
- 环球聚焦:自拍绝了!vivo发布新机S16e:2099元起、行业首创“玉质玻璃”工艺
- 雷军宣布小米人事调整:总裁王翔退休 卢伟冰晋升
- 环球热消息:特斯拉北美大降价5.2万 超高折扣只为保住销量?
- vivo S16系列亮相:标准版搭载骁龙870 Pro版搭载天玑8200
- vivo S16系列出厂预装OriginOS 3 虚拟内存提升8G
- vivo S16系列7.36mm机身塞进4600mAh:苹果iPhone都没做到
- 【天天聚看点】男子开宝马专挑外地牌照车碰瓷 套路防不胜防:扔石头制造声响
- 迪士尼神话剧《美生中国人》新剧照:杨紫琼饰演观音 吴彦祖变身孙悟空
- 环球滚动:FIFA年终国家队排名:国足降至第80 美加墨世界杯出线希望增加
- 【报资讯】RTX 40系列移动显卡参数曝光:价格可不低
- 世界通讯!一加首款键盘曝光:全铝机身、自带USB-C/A接口
- 焦点热议:历史总是惊人地相似:复古主机Atari VCS宣告停产 一个时代终结
- 网友称考研民宿房费暴涨近20倍 店家:每年都一样
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
环球速看:FreeSWITCH学习笔记:Lua脚本
本文更新于2022-06-03,使用FreeSWITCH 1.10.7。
(资料图片仅供参考)
目录- argv
- freeswitch.API
- API:execute
- freeswitch.bridge
- freeswitch.consoleLog
- freeswitch.Dbh
- DBH:affected_rows
- DBH:connected
- DBH:test_reactive
- DBH:query
- DBH:release
- freeswitch.email
- freeswitch.Event
- EVENT:addBody
- EVENT:addHeader
- EVENT:delHeadder
- EVENT:fire
- EVENT:getBody
- EVENT:getHeader
- EVENT:getType
- EVENT:serialize
- freeswitch.EventConsumer
- EVENTCONSUMER.pop
- freeswitch.msleep
- freeswitch.Session
- SESSION:answer
- SESSION:execute
- SESSION:get_uuid
- SESSION:getVariable
- SESSION:hangup
- SESSION:hangupCause
- SESSION:playAndGetDigits
- SESSION:preAnswer
- SESSION:read
- SESSION:ready
- SESSION:recordFile
- SESSION:setAutoHangup
- SESSION:setInputCallback
- SESSION:set_tts_params
- SESSION:setVariable
- SESSION:sleep
- SESSION:speak
- SESSION:streamFile
- SESSION:unsetInputCallback
- message
- message:chat_execute
- session
- XML_REQUEST
- XML_STRING
argv
命令行参数。argv[0]
为脚本文件名。
freeswitch.API
API = freeswitch.API()
API:execute
执行API。
REPLY = API:execute(APINAME [, ARG [, ...]])
freeswitch.bridge
会阻塞。
freeswitch.consoleLog
输出日志。
freeswitch.consoleLog(LEVEL, MSG)
freeswitch.Dbh
创建数据库句柄。可连接SQLite或任何支持ODBC的数据库。
DBH = freeswitch.Dbh(SQLITEFILEPATH|"odbc://DSN USERNAME PASSWORD")
DBH:affected_rows
返回上一个DBH:query
影响的行数。
N = DBH:affected_rows()
DBH:connected
测试数据库是否连接成功。
OK = DBH:connected()
DBH:test_reactive
确认数据库表存在。如果SELECTSQL执行不行功,则先试图运行DROPSQL删除数据库表,再运行CREATESQL重新创建数据库表。
DBH:test_reactive(SELECTSQL, DROPSQL, CREATESQL)
DBH:query
执行查询语句。
DBH:query(SQL, [function (row) end])
回调函数中可以row.COLUMN
的形式,用数据库表的列名来引用值。
DBH:release
释放数据库句柄。
DBH:release()
freeswitch.email
freeswitch.Event
初始化一个事件。
EVENT = freeswitch.Event(EVENTTYPE [, SUBCLASS])
事件类型TYPE需要在switch_event_types_t枚举类型中有定义,它是在switch_types.h中定义的。如果使用未定义的类型,则统一为"MESSAGE"。
当TYPE为"CUSTOM"时,SUBCLASS可为任意字符串,它将作为事件中的Event-Subclass。
EVENT:addBody
给事件添加正文。
EVENT:addBody(BODY)
EVENT:addHeader
给事件增加一个事件头。
EVENT:addHeader(HEADER, VALUE)
HEADER为"Content-Type"用于表示正文的类型。
EVENT:delHeadder
从事件中删除一个事件头。
EVENT:delHeader(HEADER)
EVENT:fire
产生事件。
EVENT:fire()
EVENT:getBody
从事件中获取正文。
BODY = EVENT:getBody()
EVENT:getHeader
从事件中获取事件头的值。
VALUE = EVENT:getHeader(HEADER)
EVENT:getType
获取事件的类型(名字),即freeswitch.Event
的TYPE参数的值。等价于EVENT:getHeader("Event-Name")
。
EVENTTYPE = EVENT:getType()
EVENT:serialize
将事件序列化成字符串。
STR = EVENT:serialize([FORMAT])
FORMAT省略时为简单文本格式,"json"为JSON格式,"xml"为XML格式。
freeswitch.EventConsumer
创建事件消费者。
EVENTCONSUMER = freeswitch.EventConsumer(EVENTTYPE)
EVENTCONSUMER.pop
取出事件。
EVENTCONSUMER.pop(N)
N为0是非阻塞的,为1是阻塞的。
freeswitch.msleep
freeswitch.msleep(MS)
freeswitch.Session
发起一个呼叫,并一直等待对方应答。
SESSION = freeswitch.Session(CALLURL)
SESSION:answer
给主叫回送应答消息(200)。相当于answer APP。
SESSION:answer()
SESSION:execute
执行APP。大部分session函数与APP是一一对应的。不会触发SESSION:setInputCallback
的回调。
SESSION:execute(APPNAME [, ARG [, ...]])
SESSION:get_uuid
获取当前Session的UUID。相当于SESSION:getVariable("uuid")
。
UUID = SESSION:get_uuid()
SESSION:getVariable
获取通道变量的值。
VALUE = SESSION:getVariable(VAR)
SESSION:hangup
挂断通话。相当于hangup APP。默认执行完脚本后会自动挂断通话,可不显式调用。
SESSION:hangup([REASON])
SESSION:hangupCause
返回挂机原因。
REASON = SESSION:hangupCause()
SESSION:playAndGetDigits
播放声音并等待接收DTMF按键。相当于play_and_get_digits APP。
DIGITS = SESSION:playAndGetDigits(MINDIGITS, MAXDIGITS, MAXATTEMPTS, TIMEOUTMS, TERMINATORS, MUSIC, INVALIDMUSIC, REGEX [, INTERDIGITTIMEOUTMS [, "FAILEXTENSION [FAILDIALPLAN [FAILCONTEXT]]"]])
SESSION:preAnswer
SESSION:read
播放声音并等待接收DTMF按键。相当于read APP。
DIGITS = SESSION:read(MINDIGITS, MAXDIGITS, MUSIC, INTERDIGITTIMEOUTMS, TERMINATORS)
SESSION:ready
检查Session是否可正常使用,如已挂机则返回false。
OK = SESSION:ready()
在脚本中,如有循环,一定要检测SESSION.ready()
是否返回true,否则Session挂机后脚本仍可能死循环运行。
SESSION:recordFile
录音。相当于record APP。
SESSION:recordFile(FILENAME [, MAXSECONDS, SILENCETHRESHOLD, SILENCESECONDS])
FILENAME为录音文件名。
MAXSECONDS为录音最长秒数。
SILENCETHRESHOLD为静音阈值,低于此值的声音认为是静音。
SILENCESECONDS为静音时长大于此秒数则停止录音。
SESSION:setAutoHangup
设置执行完脚本后是否自动挂断通话。
SESSION:setAutoHangup(BOOL)
SESSION:setInputCallback
设置收到外部输入时的回调函数。
SESSION:setInputCallback(STRFUNCTIONNAME, "")
回调函数共有4个参数:
- s:即session。
- type:如:dtmf,event。
- obj:输入对象。当type为dtmf时,有两个键:digit为按键,duration为时长。
- arg:
回调函数如返回"break"则停止当前正在执行的APP,后面没有其它脚本语句的话Lua APP就会退出;如果返回空值(如空字符串)则什么也不做。
SESSION:set_tts_params
设置TTS参数。
SESSION:set_tts_params(TTSENGINE, TTSVOICE)
SESSION:setVariable
设置通道变量的值。相当于set APP。
SESSION:setVariable(VAR, VALUE)
SESSION:sleep
暂停若干毫秒。相当于sleep APP。
SESSION:sleep(MS)
SESSION:speak
使用TTS播放声音。相当于speak APP。
SESSION:speak(TEXT)
SESSION:streamFile
播放声音。相当于playback APP。
SESSION:streamFile(MUSIC)
SESSION:unsetInputCallback
取消收到外部输入时的回调函数。
message
在Chatplan中自动获得此对象。其与freeswitch.Event
创建的对象是一样的。此外还有以下函数。
message:chat_execute
执行文本消息支持的动作。
message:chat_execute(ACTION)
ACTION可为:
- fire:产生一个MESSAGE事件。
- info:显示信息。
- reply:回复消息。
- send:发送消息。
- set:设置变量。
- stop:停止消息路由。
- system:调用system函数执行系统调用。
session
在Dialplan中会自动获得此对象。其与freeswitch.Session
创建的对象是一样的。
XML_REQUEST
XML绑定请求中,会自动获得此对象。
XML_STRING
XML绑定请求中,脚本执行完成后,FreeSWITCH从此变量得到XML文本,进行解析以执行下一步的动作。
-
环球速看:FreeSWITCH学习笔记:Lua脚本
本文更新于2022-06-03,使用FreeSWITCH1 10 7。argv命令行参数。argv[0]为脚本文件名。freeswitch APIAPI=freeswitch API()
来源: 环球速看:FreeSWITCH学习笔记:Lua脚本
每日短讯:剪映上线团队剪辑“神技”:异地多端一起剪视频成为可能
3299元起 vivo S16 Pro手机发布:首发双面柔光人像拍摄
环球信息:童年的味道 大白兔奶糖促销:1斤20元到手
环球聚焦:自拍绝了!vivo发布新机S16e:2099元起、行业首创“玉质玻璃”工艺
软链接和硬链接
世界热消息:渗透实录-02
雷军宣布小米人事调整:总裁王翔退休 卢伟冰晋升
环球热消息:特斯拉北美大降价5.2万 超高折扣只为保住销量?
vivo S16系列亮相:标准版搭载骁龙870 Pro版搭载天玑8200
vivo S16系列出厂预装OriginOS 3 虚拟内存提升8G
vivo S16系列7.36mm机身塞进4600mAh:苹果iPhone都没做到
快资讯:教你用JavaScript实现鼠标特效
【天天聚看点】男子开宝马专挑外地牌照车碰瓷 套路防不胜防:扔石头制造声响
迪士尼神话剧《美生中国人》新剧照:杨紫琼饰演观音 吴彦祖变身孙悟空
环球滚动:FIFA年终国家队排名:国足降至第80 美加墨世界杯出线希望增加
【报资讯】RTX 40系列移动显卡参数曝光:价格可不低
世界通讯!一加首款键盘曝光:全铝机身、自带USB-C/A接口
当前动态:基于Netty的IM聊天加密技术学习:一文理清常见的加密概念、术语等
JDK源码分析实战系列-PriorityBlockingQueue
资讯:Altium Designer v23.0.1.38图文详解
焦点热议:历史总是惊人地相似:复古主机Atari VCS宣告停产 一个时代终结
网友称考研民宿房费暴涨近20倍 店家:每年都一样
中国企业站稳全球LCD市场!李东生:TCL部分技术领先三星
消息!超可爱!《王者荣耀》梦奇赛年皮肤来了 特效贼棒
环球热讯:《王者荣耀》《合金弹头》联动:联名首发新英雄莱西奥
【世界播资讯】高能吸水 洁丽雅纯棉毛巾:15.9元/3条
今日报丨Intel显卡事业部突然解散!掌门人Raja回归首席架构师
全球新消息丨国内油价要止步“三连跌”!元旦后或迎新一轮价格上调
世界微头条丨比iPhone 14 Pro Max还轻 OPPO Find N2明天首销:7999元
Go 快速入门指南 - 环境安装
环球快看:什么是 HTML?
热讯:基础可视化图表之堆叠条形图
环球新动态:window系统增强优化工具
世界今热点:智创万物,数赢未来——如何助推数智时代的发展浪潮
每日时讯!入口脆甜 林家铺子乌龙茶蜜桃罐头19.9元四罐
今日讯!5年了 网易云音乐终于撕下了“网抑云”标签
全球热资讯!羊被冻死牧羊犬贴身供暖试图唤醒 网友:边牧聪明又有情
每日速读!山东一地120和119到路口秒变绿灯 网友:建议全国推广
天天看点:腾讯智能车技术花样用 数万人疯狂点赞转发
世界消息!(笔记)PID算法讲解
低代码:让企业“活”起来,赋能企业数字转型
今日要闻!大四上 | 计算机综合课设答辩经验帖
一、【Java】多线程与高并发
世界热资讯!小米史上最强!雷军确认小米13 Pro支持Wi-Fi 7:国内认证后开放
全球最资讯丨今天突然发现谷歌翻译用不了,发现是谷歌域名解析问题,现提供以下方法解决
快报:高帧畅玩《巫师3》!满血3060游戏本华硕天选3双旦入手7599 性价比超高
天天热头条丨豆瓣评分跌至6.3!《三体》动画播放量破2亿
东西生锈了是什么原因?东西生锈了怎么去除?
cbz是什么文件格式?cbz文件格式怎么打开?
快讯:创元集团的数智化实践 这次选择了和火山引擎 VeDI 搭档
大喜之日是什么意思?大喜之日祝福语
碳化硅是什么材料?碳化硅的用途有哪些?
越南十二生肖是哪些动物?越南十二生肖和中国的区别
newjeans为什么叫吴晓梅?newjeans女团成员个人资料
省略号的快捷键是什么?省略号的快捷输入方式
皮卡全面解禁再下一城!广西南宁:明年起进城无需办通行证
登陆火星4年电量即将耗尽:探测器洞察号发文告别
【新要闻】中国汽车流通协会:建议全面取消汽车限购 买车可抵税
世界百事通!如何在Word表格中拆分或合并单元格?
当前速讯:Kubernetes监控手册02-宿主监控概述
【全球新要闻】STM32 SPI DMA 源码解析及总结
全球快看点丨MySQL-带你上官网看索引
天天简讯:图算法、图数据库在风控场景的应用
热头条丨Redmi K20 Pro钉子户三年多不换机:就等卢伟冰发K60
最强性能旗舰!一加11配置公布:二代骁龙8、直接12GB+256GB起步
速读:QQ音乐iOS版12.0版发布:新增“臻品母带” 无损音质升级
“灵魂”没了!育碧确认《刺客信条:英灵殿》Steam版将无成就系统
天天观速讯丨美版《西游记》剧照公布:吴彦祖悟空、杨紫琼观音亮相
赛尔号动画片的结局是什么?赛尔号动画片精灵实力排名
流浪地球小说结局是什么?流浪地球小说经典语录
二极管如何判断正负极?二极管工作原理
世界快消息!Visual Studio Code 安装教程
Redis集群的三种方式详解(附优缺点及原理区别)
全球即时:echarts设置单位的偏移
每日速看!网约车司机一路刷抖音吓坏女乘客 司机:投诉去吧 无所谓的
天天快资讯:因收购动视暴雪 微软被美国十名玩家集体诉讼
天天视讯!气场百万 比亚迪仰望高端越野车预告:L形尾灯头次见
【独家】OPPO部分旗舰能升级到Android 17:国产手机独此一家
TCP套接字
全球即时:认证管理(锐捷无线篇)
热资讯!基于 Dubbo-Admin 实现根据请求条件路由
最新快讯!教你用Java实现动态调色板
4090也秒怂!东北网友晒NV RTX 3070显卡温度:这效果我服!
大众ID.Xtreme概念车曝光:旗下最野性的电动车
当前快讯:员工漏打卡11次被辞 法院判决:公司赔大发了
“兔圆圆”!2023年总台春晚标识和吉祥物官宣 附春晚节目单
每日速讯:网易MOBA游戏《无尽战区》宣布复活!曾于两年前停运
世界快看点丨Spring Cloud 2022 正式发布!我的天,OpenFeign 要退出历史舞台了?!
焦点快播:君子不玩物丧志,亦常以借物调心,网站集成二次元网页小组件(widget)石蒜模拟器,聊以赏玩
天天播报:让人诧异!浙江台州天上突然飘落大量羽毛:宛如鹅毛大雪
环球热文:美国动物园将归还大熊猫丫丫和乐乐 结束20年租期:曾被质疑虐待国宝
除了蔚来:大多数车企都给黑客赎金了
全球看热讯:韩国刷新世界最低生育率纪录 上学人减半:日本欧洲更慌了
天天速看:性能超RX7900 XTX!RTX 4070/4070 Ti确定:这售价给老黄买单?
焦点速读:世界最慢的PC诞生 单核跑分不到13900K的百分之一
跟着TDP配电源怎么就蓝屏了?原因揭开
环球新消息丨vue-router
每日速讯:i9-13900K史上第一次超到9GHz!液氦、零下250度
今日快讯:核显笔记本也能跑50帧夜之城!AMD这次干的好啊