Продолжая играть в астериск, столкнулся с желанием звонить через него использую SIP клиенты прямо из телефонной книги. При этом вознкла проблема, что в телефонной книге большинство номеров имеет полный международный формат, т.е. +7-XXX-XXX-XX-XX. Соответственно, через обычную линию такое набирается не всегда хорошо и нужно заменить +7 на 8.
По статье "Как заменить +7 на 8 для Elastix" все сделал и заработало:
Для замены +7 на 8 в Elastix необходимо внести изменения в файл extensions_custom.conf. Для этого входим в панель управления Elastix, закладка PBX -> Tools, меню Asterisk File Editor. Листаем и находим необходимый нам файл extensions_custom.conf, и открываем его, нажав левой кнопкой мыши.
Находим в файле строку [from-internal-custom] и сразу после неё добавляем строку:
exten => _+7XXXXXXXXXX,1,GoTo(outbound-allroutes,8${EXTEN:2},1)
Для чистого Астериска подмену номера делал так же, в файле extensions.conf в необходимом контексте переход на экстеншен текущего контекста с заменой +7 на 8
exten => _+7XXXXXXXXXX,1,GoTo(8${EXTEN:2},1)
Как написано, ниже в комментариях, это очень жесткий способ, действующий на все направления, есть более мягкий и, наверное, правильный:
в Dial Patterns that will use this Route пункта Outbound Routes выставить:
prepend = 8
prefix = +7