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的原理介绍及应用的更多相关文章

  1. 高性能消息队列 CKafka 核心原理介绍(上)

    欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:闫燕飞 1.背景 Ckafka是基础架构部开发的高性能.高可用消息中间件,其主要用于消息传输.网站活动追踪.运营监控.日志聚合.流式 ...

  2. kafka集群原理介绍

    目录 kafka集群原理介绍 (一)基础理论 二.配置文件 三.错误处理 kafka集群原理介绍 @(博客文章)[kafka|大数据] 本系统文章共三篇,分别为 1.kafka集群原理介绍了以下几个方 ...

  3. Spring MVC工作原理及源码解析(一) MVC原理介绍、与IOC容器整合原理

    MVC原理介绍 Spring MVC原理图 上图是Spring MVC工作原理图(图片来自网上搜索),根据上图,我们可以得知Spring MVC的工作流程如下: 1.用户(客户端,即浏览器)发送请求至 ...

  4. 03 Yarn 原理介绍

    Yarn 原理介绍 大纲: Hadoop 架构介绍 YARN 产生的背景 YARN 基础架构及原理   Hadoop的1.X架构的介绍   在1.x中的NameNodes只可能有一个,虽然可以通过Se ...

  5. 04 MapReduce原理介绍

    大数据实战(上) # MapReduce原理介绍 大纲: * Mapreduce介绍 * MapReduce2运行原理 * shuffle及排序    定义 * Mapreduce 最早是由googl ...

  6. Android Animation学习(一) Property Animation原理介绍和API简介

    Android Animation学习(一) Property Animation介绍 Android Animation Android framework提供了两种动画系统: property a ...

  7. [转]MySQL主从复制原理介绍

    MySQL主从复制原理介绍 一.复制的原理 MySQL 复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新.删除等等).每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以 ...

  8. 分布式文件系统FastDFS原理介绍

    在生产中我们一般希望文件系统能帮我们解决以下问题,如:1.超大数据存储:2.数据高可用(冗余备份):3.读/写高性能:4.海量数据计算.最好还得支持多平台多语言,支持高并发. 由于单台服务器无法满足以 ...

  9. 内存分析_.Net内存原理介绍

    内存原理介绍 1.       .Net应用程序中的内存 1.1.Net内存类型 Windows使用一个系统:虚拟寻址系统.这个系统的作用是将程序可用的内存地址映射到硬件内存中的实际地址上.其实际结果 ...

随机推荐

  1. Educational Codeforces Round 6 F. Xors on Segments 暴力

    F. Xors on Segments 题目连接: http://www.codeforces.com/contest/620/problem/F Description You are given ...

  2. Nginx + Keeplived双主测试

    Author: JinDate: 20130613Title: Nginx + Keeplived 双主测试 前言:一年多前做过一次测试,时间久了忘记了,现在又重新做一次 一.环境1.基本信息和规划p ...

  3. Visual Studio Code 安装 RUST

    1.下载RUST源码 https://static.rust-lang.org/dist/rustc-1.18.0-src.tar.gz ,解压到C盘   C:\rustc-1.18.0-src 2. ...

  4. java/eclipse/myeclipse建立.properties文件的方法

      相比较来说,Java程序的编写相对简单很多,多数文件都可以通过编写文本文件生成!     对于不用IDE的java程序来讲,只需要右键新建>文本文件,建立好以后写好代码,另存为xx.prop ...

  5. delphi VCL研究之消息分发机制-delphi高手突破读书笔记

    1.VCL 概貌 先看一下VCL类图的主要分支,如图4.1所示.在图中可以看到,TObject是VCL的祖先类,这也是Object Pascal语言所规定的.但实际上,TObject以及TObject ...

  6. 【转载】PHP中require(),include(),require_once()和include_once()区别

    关于这方面的知识,这篇文章讲的较全: http://www.jb51.net/article/22467.htm require 的使用方法如 require("MyRequireFile. ...

  7. 关于RECOVERY清除数据的分析

    [前言] 讨论:双清和清空所有数据的问题 说明:以前写的帖子都写三清,那个是为了保险起见才叫大家三项清除,毕竟人都有刚开始的时候,但看了郭贤普的帖子<系统与数据兼容性测试>之后,我觉得有必 ...

  8. poj3592 Instantaneous Transference tarjan缩点+建图

    //给一个n*m的地图.坦克从(0 , 0)開始走 //#表示墙不能走,*表示传送门能够传送到指定地方,能够选择也能够选择不传送 //数字表示该格的矿石数, //坦克从(0,0)開始走.仅仅能往右和往 ...

  9. Apache2.4 与 php7.1.6的链接

    首先Apache已经安装成功,在浏览器中能够打开再下载php 我的Apache安装版本为Apache2.4.26 x64 vc14 所以我php也应该是vc14编译的 php下载地址为 http:// ...

  10. Spring结合AspectJ的研究

    本文阐述以下内容:1.AspectJ是什么及使用方式2.Spring AOP和AspectJ的区别3.Spring结合AspectJ的使用方法和原理4.Spring注解方式使用AspectJ遇到的问题 ...