我正在设置这样的变量
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中执行它,我也面临同样的问题。
任何人都可以帮我解决这个问题 提前致谢
答案 0 :(得分:0)
我会改用mod_perl。然后将Perl解释器永久加载到内存中,加载脚本,解析并执行它只需几毫秒。唯一的问题是,您无法在内联操作中执行perl应用程序。但你可以通过重新组织拨号方案来解决这个问题。
你也可以完全控制你的perl脚本,并调用transfer或bridge或者你从那里做的任何事情。
我有一个perl脚本,它打开一个本地mysql连接,查找来电号码,然后进一步转移到拨号方案。处理时间不到10毫秒。