Замена CallerID кода 8 на 7 при входящем звонке FreePBX

Задался вопросом как модифицировать/изменить номер телефона (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()