В работе имеется связка 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, для применения изменений.