Здравствуйте. Казалось бы, самые азы, но астериск почему то не понимает моих просьб. Пытаюсь разрешить набирать только цифры, если будут какие то символы или буквы, в контекст не попадать. Но классические маски _X! или _[0-9]! почему то не проходят. Символы вида "-" или "!" лезут в набор
CLI> dialplan show 2-2!223333@out-context
[ Context 'out-context' created by 'pbx_config' ]
'_[0-9]!' => 1. NoOp(Out Call) [pbx_config]
2. Agi(call-limit.php) [pbx_config]
4. Set(GROUP()=${CDR(accountcode)}) [pbx_config]
5. Set(CALLS=${GROUP_COUNT(${GROUP()})}) [pbx_config]
6. ExecIf($[${CALLS} > ${MAXCALL} ]?Congestion) [pbx_config]
...
Используйте функцию FILTER()
[out-context]
exten => _.,1,Goto(${FILTER(0-9,${EXTEN})},1)
exten => _X.,1,....
Плюс разнести экстеншен по контекстам и добавить проверку ввода.
потомучто начинатеся с цифры и только цифры это разные фразы.
используйте чтото типа такого
_X
_XX
_XXX
_XXXX
_XXXXX
_XXXXXX
_XXXXXXX
Задан: Dec 20 '15
Просмотрен: 418 раз
Обновлен: Dec 21 '15
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Но классические маски _X! или _[0-9]! почему то не проходят.
Так все верно, ваши маски подразумевают "начинается с цифры, а далее следуют любые символы". Читайте описание: https://wiki.asterisk.org/wiki/display/AST/Pattern+Matching
StuxForce (Dec 21 '15)editдумал, что "." - это маска для любых символов, а "!" - любое количество символов согласно предыдущему символу "_X", т.е. только цифры от 0 до 9. Русскоязычные мануалы ввели в заблуждение.
etskh (Dec 21 '15)edit