Asterisk GotoIf 比较变量存在于数组中
Asterisk GotoIf comparison variable exists in Array
目前我正在使用以下条件:
exten => 1237,n,GotoIf($[ $[ "${text}" = "yes" ] | $[ "${text}" = "ok" ]
| $[ "${text}" = "perfect" ] ]?interest:retry)
它是定义此语法的更好方法吗?我想将文本的值与字符串数组进行比较,但我找不到执行此操作的方法。示例:
exten => 1237,n,GotoIf($[ $[ "${text}" in ARRAY("yes","ok","perfect") ] ]?interest:retry)
我不知道 Asterisk 中的 in
运算符,但您可以改用正则表达式匹配:
GotoIf($[ "${text}" =~ "^(yes|no|perfect)$"]?interest:retry)
FIELDNUM几乎就是你所需要的
exten = 1237,n,Set(STRARRAY='yes-ok-perfect')
exten = 1237,n,GotoIF($[ ${FIELDNUM(STRARRAY,-,${text})} > 0 ]?interest:retry)
目前我正在使用以下条件:
exten => 1237,n,GotoIf($[ $[ "${text}" = "yes" ] | $[ "${text}" = "ok" ]
| $[ "${text}" = "perfect" ] ]?interest:retry)
它是定义此语法的更好方法吗?我想将文本的值与字符串数组进行比较,但我找不到执行此操作的方法。示例:
exten => 1237,n,GotoIf($[ $[ "${text}" in ARRAY("yes","ok","perfect") ] ]?interest:retry)
我不知道 Asterisk 中的 in
运算符,但您可以改用正则表达式匹配:
GotoIf($[ "${text}" =~ "^(yes|no|perfect)$"]?interest:retry)
FIELDNUM几乎就是你所需要的
exten = 1237,n,Set(STRARRAY='yes-ok-perfect')
exten = 1237,n,GotoIF($[ ${FIELDNUM(STRARRAY,-,${text})} > 0 ]?interest:retry)