linux - 设置命令不适用于变量值

标签 linux freeswitch

我像这样设置变量

action application="set" data="RESULT=${system sed -n 1p /nfs/th/play/${uuid}}" inline="true"

这里我尝试将 wav 文件路径分配给变量,但问题是它被分配为

2014-05-08 13:34:56.659049 [DEBUG] mod_dptools.c:1402 sofia/internal/1002@192.168.0.106 SET [RESULT]=[/usr/local/freeswitch/sounds/en/us/callie/directory/8000/dir-for_prev.wav

]

变量 RESULT 未正确设置。结束方括号将到达新行,因为它应该紧接在路径之后位于同一行。因此,在播放 wav 文件时,它显示错误为

2014-05-08 13:34:56.679046 [ERR] switch_core_file.c:150 Invalid file format [wav

] for [/usr/local/freeswitch/sounds/en/us/callie/directory/8000/dir-for_prev.wav

]!

即使我在 shell 脚本中编写 sed 命令并在 Freeswitch 中执行它,我也面临着同样的问题。

谁能帮我解决这个问题。
提前致谢

最佳答案

我会使用 mod_perl 来代替。然后,Perl 解释器将永久加载到内存中,加载脚本、解析和执行只需要几毫秒。唯一的问题是,您无法在内联操作中执行 Perl 应用程序。但您可以通过重新组织拨号方案来解决这个问题。

您还可以完全控制您的 Perl 脚本和调用转移或桥接或您从那里执行的任何操作。

我有一个 perl 脚本,它打开本地 mysql 连接,查找主叫号码,然后进一步传输到拨号计划。处理时间不到 10 毫秒。

关于linux - 设置命令不适用于变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23539610/

相关文章:

regex - linux递归复制指定的文件不起作用

c++ - 编译程序 linux 32 位 vs 64 位

ubuntu - 将 FreeSWITCH 注册到 X-Lite 时不断收到错误 408

linux - Freeswitch - 听不到 IVR 菜单

node.js - 远程事件套接字的 Freeswitch ACL 配置

c - 编辑库存档中的字符串(filename.a)

linux - Teamcity 启动卡在 jetbrains.buildServer.STARTUP

freeswitch - 自由开关 : what is tls_port?

freeswitch - 如何获取freeswitch注册账户列表

Linux CentOS YUM 错误包需要 - libcrypto.so.10(OPENSSL_1.0.1_EC)(64位)