Задался вопросом как модифицировать/изменить номер телефона (CallerID) при входящем звонке, устанавливая префикс 7 в любом случае. Мне нужно это для удобства обратного набора, на поступивший внешний звонок.
В моем случае один SIP-провайдер отдает номер телефона с префиксом 8, прим. 8800-800-80-80 (8XXXXXXXXXX), а другой вообще без префикса, прим. 800-800-80-80.
Чтобы исправить это, нам необходимо немного модифицировать dialplan, внеся в файл конфигурации (/etc/asterisk/extensions_custom.conf) следующий код:
[from-pstn-custom]
exten => _X.,1,ExecIF($[${VALID_EXTEN(fix-cid,${CALLERID(num)})}]?Gosub(fix-cid,${CALLERID(num)},1))
[fix-cid]
; Входящий номер с кодом 8
exten => _8XXXXXXXXXX,1,Set(CALLERID(num)=7${CALLERID(num):1})
exten => _8XXXXXXXXXX,n,Return()
; Входящий номер без кода страны
exten => _XXXXXXXXXX,1,Set(CALLERID(num)=7${CALLERID(num)})
exten => _XXXXXXXXXX,n,Return()