FreeSwitch: ESL Inbound内联模式下如何设置单腿变量
outbound外联模式下,可以参考我先前写的文章:freeswitch: ESL中如何自定义事件及自定义事件的监听,使用export导出变量。但是inbound模式下,ESL client并未封装export命令,如果要给某条腿附加一个变量值,可以借助uuid_setvar命令。
一、命令行验证
1.1 启动freeswitch控制台,手动originate发起呼叫
originate {origination_uuid=abd2d52e-6074-4a46-aa0e-c73d04f566f6}user/1000 &park()
注:外呼freeswitch内置的1000账号,同时指定该腿的uuid为abd2d52e-6074-4a46-aa0e-c73d04f566f6 (前提:要先用一个网络电话程序,以1000账号注册到freeswitch上)

点击Answer接通,保持这条腿的通话
1.2 设置变量
uuid_setvar abd2d52e-6074-4a46-aa0e-c73d04f566f6 test-var value-a value-b value-c
正常的话,会回显+OK
1.3 获取变量
uuid_getvar abd2d52e-6074-4a46-aa0e-c73d04f566f6 test-var
输出结果,参考下图:

二、ESL Inbound示例代码
try {
//inbound test
final Client inboundClient = new Client();
inboundClient.connect("localhost", 8021, "ClueCon", 10);
inboundClient.setEventSubscriptions(EventFormat.PLAIN, "ALL");
inboundClient.addEventListener(new IInboundEslEventListener() {
@Override
public void onEslEvent(Context ctx, EslEvent eslEvent) {
String eventName = eslEvent.getEventName();
if (eventName.startsWith("CHANNEL")) {
if (eventName.startsWith("CHANNEL_ANSWER")) {
//接通时,设置test变量
String uuid = eslEvent.getEventHeaders().get(EslEventConstant.UNIQUE_ID);
ctx.sendAsyncApiCommand("uuid_setvar " + uuid + " test 123123123");
}
if (eventName.startsWith("CHANNEL_HANGUP_COMPLETE")) {
//挂断时,获取test变量
String testValue = eslEvent.getEventHeaders().get("variable_test");
System.out.println("test:" + testValue);
}
}
}
@Override
public void onDisconnect(Context ctx, EslMessage eslMsg) {
System.out.println("message:" + eslMsg);
}
});
} catch (Exception e) {
e.printStackTrace();
}
断点调试结果:

FreeSwitch: ESL Inbound内联模式下如何设置单腿变量的更多相关文章
- Linux字符模式下如何设置/删除环境变量
Linux字符模式下设置/删除环境变量方法: bash下 设置:export 变量名=变量值 删除:unset 变量名 csh下 设置:setenv 变量名 变量值 删除:unsetenv 变量名 h ...
- KindEditor设置为过滤模式,但在代码模式下提交表单时不过虑HTML标签的解决方法
KindEditor设置filterMode为true,但在代码模式下提交表单的话,发现并没有过虑掉自己不想保留的HTML标签. 这时只需同步内容前加上红色部分内容即可: onClick=" ...
- 交互模式下测试python代码及变量的四则运算
在交互模式下,python代码可以立即执行,所以这很方便我们进行代码测试 1.命令窗口,输入python (如果没配置环境变量则需带python安装目录的绝对路径) >>> 这个就是 ...
- windows下如何设置mysql环境变量
方法一: windows下如何设置mysql环境变量 关键词: mysql, Setting Environment Variables, 环境变量设置 我的电脑->属性->高级-> ...
- 本地虚拟机NAT模式下怎么设置才可以访问外网
记:因为我要在本机虚拟机上安装Docker,结果发现虚拟机环境不能上网,是主机模式.我要调成net模式下才可以访问外网,这就需要怎么设置.下面文章记录一下. 在本机安装VMware软件后,系统中会自动 ...
- VMware下的CentOS7在桥接模式下,设置静态ip联网
之前在虚拟机下联网都用的是NAT模式,但现在做一个项目需要实现在两台笔记本电脑中的VMware虚拟机中的CentOS联网, 从网上查资料显示比较常规的方式是桥接模式.第一次用桥接模式联网,在网上查了很 ...
- 本地虚拟机在NAT网络连接模式下如何设置才可以访问外网以及使用Xshell远程连接
本文演示环境: 笔记本电脑系统:windows 7 虚拟机系统:CentOS 7 虚拟化软件:VMware Workstation 12 远程连接工具:Xshell 5 第一步: 打开虚拟网络编辑器 ...
- JMeter命令模式下动态设置线程组和持续时间等动态传参
背景: 1.当通过JMeter的图像化界面运行性能压测或者场景时候,JMeter界面很容易导致界面卡死或者无响应的情况(20个线程数就会卡死) 现象如下:
- VC内联汇编,引用程序中的变量
int a=5; //变量a _asm { mov eax,a; //将变量a的值放入寄存器eax add eax,eax; //相当于a=a+a mov a,eax; // ...
- Nodejs 实现ESL内联FreeSWITCH设定说明
一.背景说明: SIP Server IP (Centos):192.168.11.61 ,服务器IP(Windows):192.168.11.19 二.目的: 能够从192.168.11.19上通 ...
随机推荐
- 安装MVN出现 Error: JAVA_HOME is set to an invalid directory.的解决方法
出现 Error: JAVA_HOME is set to an invalid directory.的解决方法 解决: 将JAVA_HOME = "D:/Java/jdk1.6.0_12/ ...
- [python] 基于WatchDog库实现文件系统监控
Watchdog库是Python中一个用于监控文件系统变化的第三方库.它能够实时监测文件或目录的创建.修改.删除等操作,并在这些事件发生时触发相应的处理逻辑,因此也被称为文件看门狗. Watchdog ...
- 基于Jetson Nano与PyTorch的无人机实时目标跟踪系统搭建指南
引言:边缘计算赋能智能监控 在AIoT时代,将深度学习模型部署到嵌入式设备已成为行业刚需.本文将手把手指导读者在NVIDIA Jetson Nano(4GB版本)开发板上,构建基于YOLOv5+SOR ...
- Python实验4 列表与字典应用
目的 :熟练操作组合数据类型. 试验任务: 基础:生日悖论分析.如果一个房间有23 人或以上,那么至少有两 个人的生日相同的概率大于50%.编写程序,输出在不同随机样本数 量下,23 个人中至少两个人 ...
- K8stools工具
简介 K8stools 是一个 Kubernetes 日常运维辅助工具集,旨在提升运维效率,辅助平台治理与资源优化.功能涵盖资源分析.趋势评估.异常检测.行为采集.成本估算等常见场景,适用于 DevO ...
- TVM:TensorIR
TensorIR是一种用于深度学习的特定领域语言,主要有两个目的. 在各种硬件后端进行程序变换和优化的实现 用于自动张量化程序优化的抽象 import tvm from tvm.script.pars ...
- C# unsafe 快速复制数组
(1) /// <summary> /// 复制内存 /// </summary> /// <param name="dest">目标指针位置& ...
- 用户空间的系统调用是如何链接到内核空间的系统调用的——MIT6.S081学习记录
用户态的sysinfo(),首先系统会从user/user.h里找到声明,随后由链接到 usys.S 中的汇编代码来实现的.usys.S是通过usys.pl生成的.usys.S 文件定义了所有系统调用 ...
- 雷池WAF磁盘空间告急?手把手教你轻松清理
一.为什么磁盘会满?--了解空间去哪了 雷池WAF在保护你的网站时,会持续记录各种安全数据.主要占用空间的有两大"仓库": 防护日志仓库(数据库) ● 存放内容:攻击记录.人机验证 ...
- ChatMoney让我重新找到创作灵感
本文由 ChatMoney团队出品 今天是 2024 年 6月 19 日,星期三,哈喽大家好,我是一名乡野自媒体创作者小麦,基本上每天都会在自媒体的海洋中创作.重复着创作.创新.写稿.改稿.学习.复盘 ...