FreeSWITCH小结:关于export的原理介绍及应用

FreeSWITCH小结:关于export的原理介绍及应用

Export原理

普通export用法

在dialplan中经常会用到export,如下所示:

    <action application="export" data="myvar=test"/>

上面的xml在执行后,会在本地通道中修改如下:

myvar=test
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=,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

转载于:https://www.cnblogs.com/jizha/p/export_yuanli_and_yingyong.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值