Очередная заметка для себя, так сказать на память, поэтому она будет короткая и без «воды». Задача такая:

Создать правила набора (dialplan) с возможностью звонков по МГ с префиксом ‘+7′
Создать правила набора (dialplan) с возможностью звонков по МГ с префиксом ’8′
Провайдер принимает звонки только с префиксом ’7′ при МГ связи, поэтому в SIP Trunk провайдера все called number должны приходить с префиксом ’7′

Все правила набора у нас описываются в файле
/etc/asterisk/extensions.conf

[outgoing]
exten => _7XXXXXXXXXX,1,Dial(SIP/Trunk/${EXTEN})
exten => _+7XXXXXXXXXX,1,Dial(SIP/Trunk/${EXTEN:1})
exten => _8XXXXXXXXXX,1,Dial(SIP/Trunk/7${EXTEN:1})

Первый экстеншн у нас описывает набор без всяких реврайтов, то есть провайдеру которому нужно, чтобы called number приходил с префиксом ’7′ так его и получает в свой sip trunk.
Второй экстеншн разрешает вызовы с префиксом ‘+7′ но при передаче called number провайдеру убирает один первый символ набранного номера.
${EXTEN:x}
текущий экстеншн а ‘x’ колличество символов убираемых в начале набираемого номера при передаче его провайдеру SIP.
И собственно третий экстеншн разрешает вызовы начинающиеся префиксом ’8′ и убрав первый символ по аналогии описанной во втором экстешене и подставляет префикс ’7′ за счет
7${EXTEN:1})

Реврайты планов набора Asterisk