当用户调用时,我想拨一个由python脚本从数据库中提取的自定义号码。我需要传递几个参数,比如扩展名或调用python的号码。在Asterisk可以实现吗?
exten => 1001, 1, Dial(cmd("python myScript.py {extension} {didNumber}")
same => n, Hangup()
编辑我看到有几个用于星号的Python库,但这似乎是一种过于复杂的方法,只需获取电话号码(我无法轻松想出使用这些库的简单解决方案),并且需要Python脚本对星号系统有更多的了解。
是的,可能是这样的:
exten => 1001,1,Set(LOCAL(numtodial)=${SHELL(${GETNUM_SCRIPT} ${extension} ${didNumber})})
same => n,Dial(${TECHNOLOGY}/${numtodial})
这里GETNUM_SCRIPT
是一个全局变量,因为我喜欢这样的全局变量(你可以在没有dialplan reload
的情况下动态重新定义它,或者根据每个对等基础定义它)。
我还建议把取号和拨号分为两行——可能你们会想做一些理智的检查。