Как изменить CallerID при входящем звонке FreePBX 14 в связке с Asterisk 16

 В работе имеется связка Asterisk 16.3.0 + FreePBX 14.0.11 и два SIP-провайдера. Задался вопросом как модифицировать/изменить номер телефона (CallerID) при входящем звонке, устанавливая префикс 8 в любом случае. Мне нужно это для удобства обратного набора, на поступивший внешний звонок.

 

В моем случае один SIP-провайдер отдает номер телефона с префиксом 7, прим. 7800-800-80-80 (7XXXXXXXXXX), а другой вообще без префикса, прим. 800-800-80-80.

Чтобы исправить это, нам  необходимо немного модифицировать dialplan, внеся в файл конфигурации (/etc/asterisk/extensions_custom.conf) следующий код:

 

Краткое пояснение по работе контекста from-pstn-custom. Берется весь входящий поток CallerID и проверяем на соответствие заданным маскам 7XXXXXXXXXX (с префиксом 7) и XXXXXXXXXX (без префикса вообще). Если маска совпадает, то в случае с префиксом 7, мы сперва его удаляем его и добавляем 8, а в случае когда префикс отсутствует, мы его дописываем и возвращаемся в сценарий звонка.

 

Не забываем перечитать dialplan, для применения изменений.