我想在星号中的extensions.conf中执行以下操作:
我知道system
命令,但无法找到返回值的方法。
非常欢迎任何帮助,
谢谢,
斯利拉姆。
答案 0 :(得分:1)
对于这些事情,我使用Asterisk AGI。 Idea类似于Web服务器的CGI脚本。您可以使用各种语言,但我将Python与pyst: Python for Asterisk库一起使用。这样的AGI脚本/程序可以读取或设置通道变量,这种方式可以与Asterisk拨号方案进行通信。
pyst agilib
的代码示例:
wav_to_play = 'other.wav'
user_nr = agilib.get_variable('user_entered_number')
if not user_nr:
wav_to_play = 'nothing.wav'
elif user_nr.endswith('0'):
wav_to_play = 'zero.wav'
# ...
agilib.set_variable('wav_selected', wav_to_play)
在wav_selector.agi
中保存此类代码后(您必须添加普通的Python标头,库等),您可以在拨号方案中使用它,如:
exten => s,n,Set(user_entered_number=5)
exten => s,n,AGI(wav_selector.agi)
exten => s,n,Background((${wav_selected})
答案 1 :(得分:0)
可以让程序/脚本将值写入文件,然后使用星号(例如ReadFile
)中的函数来获取值。这可以这样做:
在剧本中:
echo -n ${value} > ${fileName}
从星号内:
exten => 0,n,ReadFile(ValueReadFromFile=${fileName},${MAX_FILE_CHAR})
其中:${MAX_FILE_CHAR}
是最大值。需要从文件${fileName}
中读取的字符。您想要阅读的值将存储在ValueReadFromFile
。