Совпадение 2 номеров в расширениях на диалплане звездочек

Есть ли простой способ сопоставить что-то вроде этого:

exten => _+380XXXXXXXXX,1,NoOp(hint that)
exten => _0XXXXXXXXX,1,NoOp(hint that)

эти два расширения соответствуют одному и тому же номеру с префиксом +38 или без него. есть ли какое-то правило _[(+38)]0XXXXXXXX тот?

1 ответ

Решение

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)
Другие вопросы по тегам