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

FreeSWITCH 分机网关路由

不废话了,直接贴代码:

--[[作用:分机网关呼叫第一个参数: 分机号码第二个参数: 被叫号码第三个参数: 主叫号码使用例子:<extension name="usergw"><condition><action application="lua" data="usergw.lua vos 075512345678 137xxxxxxxx"/></condition></extension>
--]]function bridge_dest(url)session:consoleLog("NOTICE", "bridge => " .. url .. "\n")session:execute("bridge", url)local hcause = session:getVariable("originate_disposition")local sip_invite_failure_status = session:getVariable("sip_invite_failure_status") or ""return hcause, sip_invite_failure_status
endlocal user = argv[1] or "1001"
local called = argv[2] or "8001"
local caller = argv[3] or "2001"local api = freeswitch.API()
local contact = api:executeString("sofia_contact " .. user)session:consoleLog("INFO", "sofia_contact = " .. contact .. "\n")if contact == "error/user_not_registered" then return endsession:execute("set", "transfer_ringback=${cn-ring}")
session:execute("set", "ringback=${cn-ring}")
session:execute("set", "instant_ringback=true")
session:execute("export", "sip_sticky_contact=true")-- replace callee
new_contact = contact:gsub("^(.+)sip:(.+)@(.+)", "%1sip:" .. called .. "@%3")
session:consoleLog("NOTICE", "new_contact = " .. new_contact .. "\n")local url = string.format("{origination_caller_id_name=%s,origination_caller_id_number=%s,ignore_early_media=false,absolute_codec_string=pcma\\,pcmu}%s", caller, caller, new_contact)session:consoleLog("NOTICE", "url " .. url .. "\n")local hcause, status_code = bridge_dest(url)
session:consoleLog("NOTICE", "hcause =  " .. hcause .. "\n")
session:consoleLog("NOTICE", "status_code =  " .. status_code .. "\n")

分机网关路由应该来自 FusionPBX

可以参考下面这个 api

bgapi expand originate ${regex(${sofia_contact(internal/1013@${domain_name})}|^(.+)sip:(.+)@(.+)|%1sip:018612345678@%3)}
 

http://www.lryc.cn/news/457529.html

相关文章:

  • 数据交换的金钟罩:合理利用安全数据交换系统,确保信息安全
  • 区块链积分系统:重塑支付安全与商业创新的未来
  • Django学习笔记十三:优秀案例学习
  • SSH 公钥认证:从gitlab clone项目repo到本地
  • linux 搭建sentinel
  • 微服务发展历程
  • 提示词优化、GPTs逆向工程、大语言模型原理、大语言模型优化、开源模型本地私有化部署、从零构建大语言模型、智能体构建以及大语言模型的发展趋势
  • nn.Conv2d(二)
  • 获取鸿蒙设备Udid遇到的问题
  • 【华为HCIP实战课程十】OSPF网络DR和BDR实战讲解,网络工程师
  • 视频怎么去除杂音保留人声?让人声更动听!视频噪音处理攻略
  • 洗衣店数字化转型:Spring Boot订单管理
  • Koa学习
  • linux线程 | 线程的概念
  • 2024年软件设计师中级(软考中级)详细笔记【3】数据结构(下)(分值5分)
  • WPF|依赖属性SetCurrentValue方法不会使绑定失效, SetValue方法会使绑定失效?是真的吗?
  • Windows搭建Java开发环境(Building a Java development environment on Windows)
  • 用FPGA做一个全画幅无反相机
  • 使用 Go 语言与 Redis 构建高效缓存与消息队列系统
  • springboot 整合spring ai实现 基于知识库的客服问答
  • 云原生(四十九) | WordPress源码部署
  • Spring Boot 集成 LiteFlow 实现业务流程编排
  • 在 Android Studio 中引入android.os.SystemProperties
  • 代码随想录算法训练营总结
  • 【uniapp】使用uniapp实现一个输入英文单词翻译组件
  • 6. 继承、重写、super、final
  • Redis 其他类型 渐进式遍历
  • 科研绘图系列:R语言绘制SCI文章图2
  • ARM知识点三和串口代码的编写流程
  • 【unity踩坑】打开vs2022没有文字联想/杂项文件