Asterisk,获取 number/SIP 从外部 python 应用程序拨号
Asterisk, get number/SIP to dial from external python application
我想在用户呼叫时拨打通过 python 脚本从我的数据库中获取的自定义号码。
我需要传递几个参数,例如分机号或呼叫 python 的号码。
在 Asterisk 中可以实现吗?
exten => 1001, 1, Dial(cmd("python myScript.py {extension} {didNumber}")
same => n, Hangup()
编辑我看到有几个 Python 库用于星号,但它似乎是一种过于复杂的方法来获得 phone 数字(而且我想不出一个简单的方法使用这些库轻松解决),并且需要 python 脚本来了解更多关于星号系统的知识。
是的,可以这样:
exten => 1001,1,Set(LOCAL(numtodial)=${SHELL(${GETNUM_SCRIPT} ${extension} ${didNumber})})
same => n,Dial(${TECHNOLOGY}/${numtodial})
这里 GETNUM_SCRIPT
是一个全局变量,因为我喜欢这样的全局变量(你可以即时重新定义它,不用 dialplan reload
,或者在每个对等基础上定义它).
我还建议将获取号码和拨号分成两行 --- 可能您需要执行一些健全性检查。
我想在用户呼叫时拨打通过 python 脚本从我的数据库中获取的自定义号码。 我需要传递几个参数,例如分机号或呼叫 python 的号码。 在 Asterisk 中可以实现吗?
exten => 1001, 1, Dial(cmd("python myScript.py {extension} {didNumber}")
same => n, Hangup()
编辑我看到有几个 Python 库用于星号,但它似乎是一种过于复杂的方法来获得 phone 数字(而且我想不出一个简单的方法使用这些库轻松解决),并且需要 python 脚本来了解更多关于星号系统的知识。
是的,可以这样:
exten => 1001,1,Set(LOCAL(numtodial)=${SHELL(${GETNUM_SCRIPT} ${extension} ${didNumber})})
same => n,Dial(${TECHNOLOGY}/${numtodial})
这里 GETNUM_SCRIPT
是一个全局变量,因为我喜欢这样的全局变量(你可以即时重新定义它,不用 dialplan reload
,或者在每个对等基础上定义它).
我还建议将获取号码和拨号分成两行 --- 可能您需要执行一些健全性检查。