zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    手动去除桌面快捷方式的小箭头
    免费才是硬道理:简评几款非盈利截屏软件
    策划入门(二)如何写一个项目建议书
    解决Fiddler在IE7下不能拦截的问题
    使用Fiddler轻松下载Flash视频flv流媒体文件
    策划入门(一)什么样的创意是可行的
    EFS加密的一线生机-加密帐户被删的补救方法
    50条重要的C++学习建议
    策划入门(六)如何将模块变成现实
    Windows XP 的任务栏出现重复的工具栏的问题
  • 原文地址:https://www.cnblogs.com/jizha/p/export_yuanli_and_yingyong.html
Copyright © 2011-2022 走看看