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)}
相关文章:
FreeSWITCH 分机网关路由
不废话了,直接贴代码: --[[作用:分机网关呼叫第一个参数: 分机号码第二个参数: 被叫号码第三个参数: 主叫号码使用例子:<extension name"usergw"><condition><action applicatio…...
数据交换的金钟罩:合理利用安全数据交换系统,确保信息安全
政府单位为了保护网络不受外部威胁和内部误操作的影响,通常会进行网络隔离,隔离成内网和外网。安全数据交换系统是专门设计用于在不同的网络环境(如内部不同网络,内部网络和外部网络)之间安全传输数据的解决方案。 使用…...
区块链积分系统:重塑支付安全与商业创新的未来
在当今社会,数字化浪潮席卷全球,支付安全与风险管理议题日益凸显。随着交易频次与规模的不断扩大,传统支付体系正面临前所未有的效率、合规性和安全挑战。 区块链技术,凭借其去中心化、高透明度以及数据不可篡改的特性,…...
Django学习笔记十三:优秀案例学习
Django CMS 是一个基于 Django 框架的开源内容管理系统,它允许开发者轻松地创建和管理网站内容。Django CMS 提供了一个易于使用的界面来实现动态网站的快速开发,并且具有丰富的内容管理功能和多种插件扩展。以下是 Django CMS 的一些核心特性和如何开始…...
SSH 公钥认证:从gitlab clone项目repo到本地
这篇文章的分割线以下文字内容由 ChatGPT 生成(我稍微做了一些文字上的调整和截图的补充),我review并实践后觉得内容没有什么问题,由此和大家分享。 假如你想通过 git clone git10.12.5.19:your_project.git 命令将 git 服务器上…...
linux 搭建sentinel
1.下载 linux执行下面的命令下载包 wget https://github.com/alibaba/Sentinel/releases/download/1.8.6/sentinel-dashboard-1.8.6.jar2.启动 nohup java -Dserver.port9090 -Dcsp.sentinel.dashboard.serverlocalhost:9090 -Dproject.namesentinel-dashboard -jar sentin…...
微服务发展历程
服务架构演进 服务架构演进过程:抽取各个模块独立维护,独立部署的过程。 初创公司2 ~ 3个研发人员,ALL IN ONE 的框架开发效率最高。随着队伍的壮大,产品,用户,商品成立独立小组,拆出相应的模块…...
提示词优化、GPTs逆向工程、大语言模型原理、大语言模型优化、开源模型本地私有化部署、从零构建大语言模型、智能体构建以及大语言模型的发展趋势
深入理解和掌握大语言模型的前言技术,涵盖了提示词优化、GPTs逆向工程、大语言模型原理、大语言模型优化、开源模型本地私有化部署、从零构建大语言模型、智能体构建以及大语言模型的发展趋势。通过系统化的学习,不仅掌握理论知识,还能在实际…...
nn.Conv2d(二)
**前置知识: 1、nn.Conv2d和torch.nn.functional.conv2d的对比: nn.Conv2d(能自主学习,更新调整卷积核) 模块:可以看作是一个“卷积层”,用在神经网络里。定义一次,用多次…...
获取鸿蒙设备Udid遇到的问题
参考官方文档:注册调试设备-调试应用(HarmonyOS)-AppGallery Connect帮助中心 - 华为HarmonyOS开发者 (huawei.com) 坑一:The sdk hdc.exe version is too low, please upgrade to the latest version. 升级dev工具和sdk配置为api…...
【华为HCIP实战课程十】OSPF网络DR和BDR实战讲解,网络工程师
一、DR与BDR的基础介绍 点到点同步LSA成本小 多点接入网络同步LSA成本大,需要DR/BDR 由于MA网络中,任意两台路由器都需要传递路由信息,网络中有n台路由器,则需要建立n*(n-1)/2个邻接关系。任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源,DR和BDR应运而生!…...
视频怎么去除杂音保留人声?让人声更动听!视频噪音处理攻略
在视频制作过程中,音质是至关重要的一环。然而,很多时候我们录制的视频会伴随着各种不想要的杂音,比如风声、交通噪音或是其他环境音,这些杂音严重影响了观众的观看体验。那么,如何在保留人声的同时,有效地…...
洗衣店数字化转型:Spring Boot订单管理
3系统分析 3.1可行性分析 通过对本洗衣店订单管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本洗衣店订单管理系统采用JAVA作为开发语言,S…...
Koa学习
Koa 安装与配置 1. 初始化项目 在终端中执行以下命令: # 创建项目文件夹 mkdir koa cd koa# 初始化并安装依赖 npm init -y npm install koa npm install nodemon --save-dev2. 修改 package.json 在 package.json 文件中进行如下修改: {"type…...
linux线程 | 线程的概念
前言:本篇讲述linux里面线程的相关概念。 线程在我们的教材中的定义通常是这样的——线程是进程的一个执行分支。 线程的执行粒度, 要比进程要细。 我们在读完这句话后其实并不能很好的理解什么是线程。 所以, 本节内容博主将会带友友们理解什么是线程&a…...
2024年软件设计师中级(软考中级)详细笔记【3】数据结构(下)(分值5分)
上午题第3章数据结构下部目录 前言第3章 数据结构【下】(5分)3.5 查找3.5.1 查找的基本概念【考点】3.5.2 静态查找表的查找方法3.5.3 动态查找表3.5.4 哈希表3.5.4.1 哈希表的定义3.5.4.2 哈希函数的构造方法3.5.4.3 处理冲突的方法 3.6 排序3.6.1 排序的基本概念3.6.2 简单排…...
WPF|依赖属性SetCurrentValue方法不会使绑定失效, SetValue方法会使绑定失效?是真的吗?
引言 最近因为一个触发器设置的结果总是不起效果的原因,进一步去了解[依赖属性的优先级](Dependency property value precedence - WPF .NET | Microsoft Learn)。在学习这个的过程中发现对SetCurrentValue一直以来的谬误。 在WPF中依赖属性Dependency property的…...
Windows搭建Java开发环境(Building a Java development environment on Windows)
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…...
用FPGA做一个全画幅无反相机
做一个 FPGA 驱动的全画幅无反光镜数码相机是不是觉得很酷? 就是上图这样。 Sitina 一款开源 35 毫米全画幅 (3624 毫米) CCD 无反光镜可换镜头相机 (MILC),这个项目最初的目标是打造一款数码相机,将 SLR [单镜头反光] 相机转换为 DSLR [数码…...
使用 Go 语言与 Redis 构建高效缓存与消息队列系统
什么是 Redis? Redis 是一个开源的内存数据库,支持多种数据结构,包括字符串、列表、集合、哈希和有序集合。由于 Redis 运行在内存中,读写速度极快,常被用于构建缓存系统、实时排行榜、会话存储和消息队列等高并发场景…...
基于springboot的中医院问诊知识科普系统的设计与实现-vue
目录系统架构设计前端技术选型模块划分关键技术实现开发阶段规划部署方案项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作系统架构设计 采用前后端分离架构,前端使用Vue.js框架,后端基于SpringBoot构建R…...
YOLOv11分割模型实战:用C++和ONNXRuntime解析‘output0’和‘output1’双输出,实现像素级颜色分析
YOLOv11分割模型实战:C与ONNXRuntime双输出解析与像素级颜色分析 在计算机视觉领域,目标检测与实例分割技术的结合正成为工业应用的新标准。YOLOv11作为YOLO系列的最新成员,不仅延续了其高效检测的特性,更通过双输出结构实现了精准…...
深入OpenBMC构建系统:Yocto项目与BitBake实战解析(以Romulus平台为例)
深入OpenBMC构建系统:Yocto项目与BitBake实战解析(以Romulus平台为例) 在服务器硬件管理领域,OpenBMC作为开源基板管理控制器固件堆栈,正逐渐成为企业级设备的标准配置。不同于简单的固件烧录,OpenBMC的构建…...
3MF格式与Blender从入门到精通:重塑3D打印工作流
3MF格式与Blender从入门到精通:重塑3D打印工作流 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 概念解析:为什么3MF正在取代STL成为行业新标准 …...
深度学习模型压缩:从原理到实践
深度学习模型压缩:从原理到实践 1. 背景与动机 深度学习模型在各种任务上取得了显著的性能提升,但随之而来的是模型规模的不断增长。大型模型虽然性能优异,但也带来了以下问题: 存储需求大:大型模型需要大量存储空间&a…...
别再手动拆任务了!用CrewAI+DeepSeek打造你的第一个AI小团队(附PDF解析实战)
用CrewAI构建自动化AI团队:从PDF解析到智能协作实战 在传统AI开发中,开发者往往需要手动编写复杂的任务流程,像指挥一个士兵完成所有战斗。而CrewAI带来的革命性变化在于——它让你能够组建一支训练有素的AI特种部队,每个成员各司…...
我花了 3 小时吃透:Spring AI 核心三剑客 ChatModel、Prompt、ChatResponse 到底怎么用?
你在学习 Spring AI 的时候,肯定遇到过这三个类:ChatModel、Prompt、ChatResponse看着眼熟,却总搞不清谁负责干嘛、代码里为啥要这么写?接下来就是我的理解。一、先搞懂:这三个东西是什么关系?在开始写代码…...
Spring AI:Spring生态的AI工程框架全面解析
Spring AI:Spring生态的AI工程框架全面解析 【免费下载链接】spring-ai An Application Framework for AI Engineering 项目地址: https://gitcode.com/GitHub_Trending/spr/spring-ai Spring AI是Spring生态系统中的AI工程框架,为Java开发者提供…...
别再只用交叉熵了!深入对比YOLOv8中Focal Loss与CIoU Loss的改进效果与适用场景
深入解析YOLOv8损失函数优化:Focal Loss与CIoU Loss的实战对比与场景适配 当你在深夜调试YOLOv8模型时,是否遇到过这样的困境:明明增加了训练数据,小目标检测的准确率却始终上不去?或是发现模型对密集排列的物体总是漏…...
网页录制技术革命:为什么rrweb比传统录屏更强大?
网页录制技术革命:为什么rrweb比传统录屏更强大? 【免费下载链接】rrweb record and replay the web 项目地址: https://gitcode.com/gh_mirrors/rr/rrweb 在当今数字化时代,网页录制技术已经成为用户体验分析、产品演示、错误调试和在…...
