首页 > 解决方案 > Freeswitch - 拨号方案中的“find_user_xml”返回布尔值而不是 XML

问题描述

fs_cli 可以执行 api 函数find_user_xml并且我可以在 XML 中获取用户数据。但是,如果我在拨号计划中运行它,Freeswitch 会记录true而不是真实结果。

这是我的拨号方案扩展:

<extension name="Test">
  <condition field="destination_number" expression="^(\d{1,20})$">
    <action  application="set" data="somevar=${find_user_xml(id 1000 xxx.xxx.xxx.xxx)}"/>
    <action  application="log" data="INFO ${somevar}"/>
  </condition>
</extension>

我得到了这个结果,而不是实际的 XML 表示:

2019-09-02 07:01:58.120071 [信息] mod_dptools.c:1792 真

如果用户不存在,Freeswitch 将返回false。命令xml_locate还返回 XML 格式的数据,它工作得很好。

有谁知道如何从“find_user_xml”命令而不是布尔值获取 XML 结果?

标签: freeswitch

解决方案


我找到了解决此问题的方法 -像系统命令一样执行find_user_xml 。这不是最佳解决方案,但仍会返回所需的结果。

<extension name="Test">
  <condition field="destination_number" expression="^(\d{1,20})$">
    <action  application="set" data="somevar=${system fs_cli -x 'find_user_xml id 1000 xxx.xxx.xxx.xxx'}" />
    <action  application="log" data="INFO ${somevar}" />
  </condition>
</extension>

推荐阅读