Как Asterisk выбирает шаблон
Порядок строк в extensions.conf не важен: внутри контекста Asterisk сортирует шаблоны сам. Точное совпадение (112) всегда раньше шаблона. Дальше шаблоны сравниваются символ за символом: на каждой позиции выигрывает тот, у кого меньше вариантов. Цифра — 1 вариант, N — 8 (2–9), Z — 9 (1–9), X — 10, [349] — 3. Точка и «!» в конце проигрывают всему. Поэтому _810X. срабатывает раньше _8XXXXXXXXXX: на второй позиции у него 1, а у соперника 10 вариантов.
Символы шаблонов Asterisk
X— любая цифра 0–9;Z— 1–9;N— 2–9.[1-5],[349]— одна цифра из набора..— один или больше любых символов;!— ноль или больше, срабатывает сразу.${EXTEN:1}— номер без первой цифры,${EXTEN:-4}— последние 4 цифры,${EXTEN:3:4}— 4 цифры начиная с четвёртой.
FreeSWITCH
В FreeSWITCH правила проверяются по порядку в файле, а номер сравнивается с регулярным выражением в condition field="destination_number". Скобки в выражении попадают в $1, $2… в data действия bridge. Ставьте ^ и $, иначе ^1\d{2} совпадёт и с 1001.
Рядом: генератор SIP-транка, конструктор IVR, разбор SIP-лога.