есть ли простой способ сопоставить что-то вроде этого:
exten => _+380XXXXXXXXX,1,NoOp(hint that)
exten => _0XXXXXXXXX,1,NoOp(hint that)
эти два расширения соответствуют одному и тому же номеру с префиксом +38 или без него. есть ли какое-нибудь правило _[(+38)]0XXXXXXXX
который?
AFAIK Asterisk не предлагает синтаксис сопоставления диалплана, который бы уместил это (FreeSWITCH делает).
Вы должны очистить номер, чтобы вы могли сопоставить его в каноническом формате ниже по диалплану. Думаю, что-то вроде этого может сработать для вас:
[dialplan]
exten => _+380XXXXXXXXX,1,Goto(dialplan,${EXTEN:3:10},1)
Таким образом, вы можете преобразовать международные номера + 380XX..XX в национальный (?) Формат 0XX..XX и просто использовать одно совпадение позже. (Я сам не пробовал этот пример, поскольку некоторое время назад переключился на FreeSWITCH, но он должен дать вам подсказку, что вам нужно делать).
Отредактировано для добавления:
Очевидно, вы также можете сделать обратное, если хотите использовать международный формат в качестве канонического числового формата:
[dialplan]
exten => _0XXXXXXXXX,1,Goto(dialplan,+38${EXTEN},1)