freeswitch dialplan中获取通道变量的方法

Song • 438次浏览 • 0个评论 • 2018-12-18 14:11:11

在使用时可以用$${var}的形式来进行引用。这些变量是全局有效的,因而称为全局变量。另外一些变量是在 Dialplan、ApplicationDirectory中设置的,它们会影响呼叫流程且可以被动态改变。这些变量一般与一个呼 叫有关,严格地说是与一个Channel有关,因而又称为Channel Variable,即通道变量。通道变量可以以${var}的 形式引用。全局变量仅在预处理阶段(系统启动时或重新装载-reloadxml时)被求值,一般用于设置一些系统一 旦启动就不会轻易改变的量,如$${domain}$${local_ip_v4}等。而局部变量(即通道变量)仅在Channel的生 命周期中有效。所以,两者最大的区别是,$${var}只在加载时求值一次,而${var}则在每次执行时都求值 (如一个新电话进来时)。 在呼叫过程中,某些变量可以改变Channel的行为。另外,也可以使用自定义的通道变量来存储随路数据等。

一、获取通道变量的方法:

在实际使用中会发现,有些变量在显示时(可以使用dp_tools中的info App显示,后面会讲到)是以 variable_开头的,但在实际引用时要去掉这些开头的variable_。如variable_username,引用时要使用 ${username}:

<extension name="test">
    <condition field="destination_number" expression="^(1330)$">
        <action application="log" data="ERR ${domain} "/>
        <action application="log" data="ERR ${username} "/>
        <action application="log" data="ERR ${dialplan} "/>
        <action application="log" data="ERR ${uuid} "/>
    </condition>
</extension>

二、设置通道变量

<extension name="test">
    <condition field="destination_number" expression="^(1330)$">
        <action application="set" data="new_domain=${domain} "/>
    </condition>
</extension>
提交评论
要回复文章请先登录注册
用户评论
  • 没有评论
    公告
    中国晚上好,随时随地分享前沿科技,好吃好玩,有趣有料的新鲜事;本站可以分享资源,技术,观点,态度;同时希望大家做一个文明的分享者!
    广告
    pytorch中文网