Очередная заметка для себя, так сказать на память, поэтому она будет короткая и без "воды". Задача такая:
Первый экстеншн у нас описывает набор без всяких реврайтов, то есть провайдеру которому нужно, чтобы called number приходил с префиксом '7' так его и получает в свой sip trunk.
Второй экстеншн разрешает вызовы с префиксом '+7' но при передаче called number провайдеру убирает один первый символ набранного номера.
И собственно третий экстеншн разрешает вызовы начинающиеся префиксом '8' и убрав первый символ по аналогии описанной во втором экстешене и подставляет префикс '7' за счет
- Создать правила набора (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})
Возникаю случаи необходимости смены номера для корректной обработки провайдером.
подстановка CallerID 123456789
exten => _XXX.,1,Set(CALLERID(num)=123456789)
same => n,Dial(SIP/trunk/${EXTEN})