当前位置: 首页 > news >正文

FreeSWITCH 发送 sip message 的 lua 程序

-- chat.lualocal from = argv[1]
local to = argv[2]
local body = argv[3]
local profile = "internal" -- 改成自己的 sip_profileif not body thenstream:write("-ERR miss ie")return
endlocal api = freeswitch.API()
local domain = api:executeString("global_getvar domain")
local contact = api:executeString("sofia_contact " .. to)
if contact == "error/user_not_registered" thenstream:write("-ERR user not egistered")return
endlocal to_url = contact:gsub(".+sip:(.+)", "sip:%1")
local event = freeswitch.Event("CUSTOM", "SMS::SEND_MESSAGE")
event:addHeader("proto", "sip")
event:addHeader("dest_proto", "sip")
event:addHeader("from",  from .. "@" .. domain)
event:addHeader("from_full", "sip:" .. from .. "@" .. domain)
event:addHeader("to",  to_url)
event:addHeader("sip_profile", profile)
event:addHeader("type", "text/plain")
event:addBody(body)
-- event:addHeader("contact-uri", contact)
freeswitch.consoleLog("DEBUG", event:serialize())
event:fire()
stream:write("+OK")

51 假期闲着也是闲着,写了一个 chat.lua

上面的 lua 代码写的很清楚了,不再注释

下面是一个使用例子

fs_cli -x 'lua chat.lua 1001 1002  "hello,fs"'

后期的改进有2点:

1. body 用 base64 编码,或者 url 编码,否则不容易传多行

2. 如果 body 内容比较长,建议终端用 tcp 注册上来

此外,记得加载 mod_sms,不然,不好使

相关文章:

  • 【C语言常用字符串解析】
  • 解锁 C++26 的未来:从语言标准演进到实战突破
  • 负载均衡深度实践:基于Nginx+Keepalived的高可用方案与Zabbix监控设计
  • archlinux wine 运行windows程序
  • Python学习笔记(第三部分)
  • 人工智能对未来工作的影响
  • 三生原理的离散生成逻辑如何与复分析结合?
  • Python字典(dict)详解:从创建到操作全掌握
  • 产品设计三板斧与抓住事物本质的关键意义
  • 前端面试每日三题 - Day 21
  • 三元运算符与扩展运算符
  • 正则表达式:精准匹配,高效处理文本
  • (C题|社交媒体平台用户分析问题)2025年第二十二届五一数学建模竞赛(五一杯/五一赛)解题思路|完整代码论文集合
  • jupyterlab建议安装的两个插件
  • 《软件设计师》复习笔记(11.1)——生命周期、CMM、开发模型
  • react学习笔记3——基于React脚手架
  • 数字智慧方案6166丨智慧医养结合大数据平台方案(50页PPT)(文末有下载方式)
  • yum源配置文件CentOS-Base.repo完整内容
  • Python数据分析课程实验-1
  • pycharm安装的插件怎么显示在右侧
  • 五一假期多地政府食堂对外开放:部分机关食堂饭菜“秒没”
  • 保险经纪公司元保在纳斯达克挂牌上市,去年净赚4.36亿元
  • Meta一季度净利增长三成:上调全年资本支出,受关税影响亚洲出口电商广告支出减少
  • 刘国中:毫不松懈巩固拓展脱贫攻坚成果,全力以赴抓好农业防灾减灾工作
  • 水利部将联合最高检开展黄河流域水生态保护专项行动
  • 国台办:提醒相关人员不要假借去第三地名义绕道赴台