FreeSWITCH小结:关于export的原理介绍及应用
FreeSWITCH小结:关于export的原理介绍及应用
Export原理
普通export用法
在dialplan中经常会用到export,如下所示:
<action application="export" data="myvar=test"/>
上面的xml在执行后,会在本地通道中修改如下:
myvar=test
export_vars=<other_export_vars>,myvar
在本地变量中增加myvar,同时修改export_vars变量,将export指定的变量附加到后面。
这样,在bridge时候,系统会将export_vars指定的变量从a腿导入到b腿上.
带nolocal的export用法
有时候,仅仅需要将变量设置到b腿,而不需要设置到a腿,所以这里就需要参数nolocal.
用法如下:
<action application="export" data="nolocal:myvar=test"/>
上面的命令在执行后,会在本地增加的变量如下:
nolocal:myvar=test
export_vars=<other_export_vars>,nolocal:myvar
也就是说增加的变量名称就是nolocal:myvar, 由于有nolocal前缀,就可以跟本地变量很好的区别开。
同样,在bridge的时候,系统也会将export_vars指定的变量从a腿导出到b腿。
巧妙的是,在导出nolocal:myvar的时候,会自动将nolocal:前缀去掉,从而达到将变量只设置到b腿的目的。
而如果留意就会发现,使用下面的命令还是可以获取到值的:
uuid_getvar <a_leg_uuid> nolocal:myvar
而使用下面的命令是获取不到任何值的:
uuid_getvar <a_leg_uuid> myvar
Export用法
知道了export的原理之后,即使api命令中没有uuid_export,我们也可以模拟出来。
如下:
用法1:只将指定的变量导出到b腿
originate {nolocal:sip_h_X-AutoAccept=true,export_vars='nolocal:sip_h_X-AutoAccept'}user/60400 60401
用法2:只将指定的变量设置到a腿
originate {sip_h_X-AutoAccept=true}user/60400 60401
用法3:同时将变量设置到a腿和b腿
originate {sip_h_X-AutoAccept=true,nolocal:sip_h_X-AutoAccept=true,export_vars='nolocal:sip_h_X-AutoAccept'}user/60400 60401
注意事项
这里所说的设置到b腿,是指bridge之后设置到b腿
Export示例
示例1:在呼叫前,同时设置a腿和b腿的uuid,以便后期跟踪
originate {origination_uuid=xxxxx,nolocal:origination_uuid=yyyyy,export_vars='nolocal:origination_uuid'}user/60401 60402
FreeSWITCH小结:关于export的原理介绍及应用的更多相关文章
- 高性能消息队列 CKafka 核心原理介绍(上)
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:闫燕飞 1.背景 Ckafka是基础架构部开发的高性能.高可用消息中间件,其主要用于消息传输.网站活动追踪.运营监控.日志聚合.流式 ...
- kafka集群原理介绍
目录 kafka集群原理介绍 (一)基础理论 二.配置文件 三.错误处理 kafka集群原理介绍 @(博客文章)[kafka|大数据] 本系统文章共三篇,分别为 1.kafka集群原理介绍了以下几个方 ...
- Spring MVC工作原理及源码解析(一) MVC原理介绍、与IOC容器整合原理
MVC原理介绍 Spring MVC原理图 上图是Spring MVC工作原理图(图片来自网上搜索),根据上图,我们可以得知Spring MVC的工作流程如下: 1.用户(客户端,即浏览器)发送请求至 ...
- 03 Yarn 原理介绍
Yarn 原理介绍 大纲: Hadoop 架构介绍 YARN 产生的背景 YARN 基础架构及原理 Hadoop的1.X架构的介绍 在1.x中的NameNodes只可能有一个,虽然可以通过Se ...
- 04 MapReduce原理介绍
大数据实战(上) # MapReduce原理介绍 大纲: * Mapreduce介绍 * MapReduce2运行原理 * shuffle及排序 定义 * Mapreduce 最早是由googl ...
- Android Animation学习(一) Property Animation原理介绍和API简介
Android Animation学习(一) Property Animation介绍 Android Animation Android framework提供了两种动画系统: property a ...
- [转]MySQL主从复制原理介绍
MySQL主从复制原理介绍 一.复制的原理 MySQL 复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新.删除等等).每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以 ...
- 分布式文件系统FastDFS原理介绍
在生产中我们一般希望文件系统能帮我们解决以下问题,如:1.超大数据存储:2.数据高可用(冗余备份):3.读/写高性能:4.海量数据计算.最好还得支持多平台多语言,支持高并发. 由于单台服务器无法满足以 ...
- 内存分析_.Net内存原理介绍
内存原理介绍 1. .Net应用程序中的内存 1.1.Net内存类型 Windows使用一个系统:虚拟寻址系统.这个系统的作用是将程序可用的内存地址映射到硬件内存中的实际地址上.其实际结果 ...
随机推荐
- Don't know how to define struct flock on this system, set --enable-opcach=no
解决方法一: 最后查看php官方文档解决. 在configure 里面加上 --with-libdir=lib64 解决方法二: 编辑/etc/ld.so.conf 根据系统,加入include ...
- [NHibernate]使用AttributeNHibernate.Mapping.Attributes
系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) [NHibernate ...
- java 从网络Url中下载文件
转自:http://blog.csdn.net/xb12369/article/details/40543649 /** * 从网络Url中下载文件 * @param urlStr * @param ...
- 封装log4cp p
log4cpp 是参考 log4j 所写的 c++ 版本的写 log 的库.可以在这里下载 http://log4cpp.sourceforge.net/ 我的使用方法是: 1,定义了一个 _ ...
- BOOM -- 智能合约编程
译注:原文首发于ConsenSys开发者博客,原作者为Eva以及ConsenSys的开发团队.如果您想要获取更多及时信息,可以访问ConsenSys首页点击左下角Newsletter订阅邮件.本文的翻 ...
- 使用Apache POI导出Excel小结--导出XLS格式文档
使用Apache POI导出Excel小结 关于使用Apache POI导出Excel我大概会分三篇文章去写 使用Apache POI导出Excel小结--导出XLS格式文档 使用Apache POI ...
- glsl水包含倒影的实现(rtt) 【转】
http://blog.sina.com.cn/s/blog_78ea87380101eixi.html 此文实现一个简单地水面倒影效果,通过rtt相机 获取倒影纹理, 水的基本实现方法(参考前一博文 ...
- LeetCode56:Jump Game
Given an array of non-negative integers, you are initially positioned at the first index of the arra ...
- Java小案例-(逃离迷宫)
Java小案例-(逃离迷宫) 一,迷宫需求描述: 1,用户输入迷宫图(限制方形):字母1位墙,0为通,e为出口,m为入口,*为已访问的位置,用外围1围住迷宫 2,运行轨迹右,左,下,上 3,判断该迷宫 ...
- iOS 程序从开发完到上 AppStore 那点事儿
收录待用,修改转载已取得腾讯云授权 一.账号体系 想要进行iOS开发,除了必备一台装有Mac OS X/Xcode的Mac开发机(iMac or MacBook)之外,还必须要有苹果开发者账号,只有拥 ...