Написать dialplan для Asterisk

Цена договорная
29 января 2025, 14:47 • 2 отклика • 36 просмотров
В Asterisk есть несколько SIP-транков, через которые совершаются исходящие звонки. Для одного из них (281-sip-79204004580) требуется реализовать подмену CallerID с выбором номера из MySQL-базы.
Требования:

Выбор CallerID из базы должен происходить динамически, каждый раз беря номер с минимальным количеством использований.
После успешного или неуспешного звонка CallerID должен обновляться в базе данных, увеличивая счетчики успешных и неуспешных звонков.
Для всех других SIP-транков вызовы должны проходить без изменения CallerID.

Структура таблицы callerid_pool
CREATE TABLE callerid_pool (
id INT AUTO_INCREMENT PRIMARY KEY,
callerid VARCHAR(20) NOT NULL UNIQUE, -- Сам CallerID (номер)
used_count INT DEFAULT 0, -- Количество использований номера
successful_calls INT DEFAULT 0, -- Количество успешных вызовов
failed_calls INT DEFAULT 0, -- Количество неуспешных вызовов
trunk_id VARCHAR(50) NOT NULL -- Привязка к SIP-транку
);

Необходимо проверить:
✅ Исходящий вызов через [281-sip-79204004580] → CallerID должен подменяться
✅ Исходящий вызов через другие транки → CallerID остается без изменений
✅ После каждого вызова в MySQL увеличивается used_count для использованного номера
✅ После успешного вызова увеличивается successful_calls
✅ После неуспешного вызова увеличивается failed_calls
✅ Лог Asterisk (/var/log/asterisk/full) не содержит ошибок