г. Минск, ул. Попова 24а, офис 302, 305

Автоматизация обработки записей звонков Asterisk с Python и Яндекс.Диск API

В современном мире управление записями телефонных разговоров становится всё более важной задачей для многих организаций. Сегодня я хочу поделиться с вами практическим решением для автоматизации обработки и хранения записей звонков с использованием Python и API Яндекс.Диска, разработанным специально для IP-АТС на базе Asterisk и её производных систем

Совместимость с IP-АТС

Скрипт разработан для работы со следующими системами IP-телефонии:

 

  • Asterisk (все актуальные версии)
  • FreePBX
  • Elastix
  • Issabel PBX
  • AsteriskNOW
  • Incredible PBX

 

Решение легко интегрируется с существующей инфраструктурой АТС и автоматически обрабатывает записи звонков из стандартных директорий мониторинга Asterisk

Что умеет наш скрипт?

  • Автоматически конвертирует записи звонков из формата WAV в более компактный MP3
  • Сохраняет структурированную организацию файлов по датам и типам звонков
  • Синхронизирует записи с облачным хранилищем Яндекс.Диск
  • Ведёт подробную статистику и логирование всех операций
  • Поддерживает стандартные форматы именования файлов Asterisk
  • Автоматически определяет тип звонка на основе метаданных Asterisk

Особенности реализации

Скрипт построен с учётом следующих важных аспектов:

  • Использование ffmpeg для качественной конвертации аудио
  • Автоматическая организация файлов по структуре год/месяц/день
  • Разделение звонков на категории: внутренние, внешние, входящие и исходящие
  • Надёжная система логирования для отслеживания всех операций
  • Генерация статистики по каждому сеансу работы
  • Поддержка различных форматов записи Asterisk (WAV/GSM/WAV49)
  • Обработка метаданных CDR (Call Detail Records)

 

Структура хранения данных

Все записи организованы в четкую иерархическую структуру:

Zapisi/
├── external/  # Внешние звонки
├── internal/   # Внутренние звонки
├── in/            # Входящие звонки
└── out/          # Исходящие звонки

Мониторинг и статистика

После каждого запуска скрипт формирует детальный отчёт, включающий:

  • Общее количество обработанных файлов
  • Статистику успешных и неудачных конвертаций
  • Информацию о синхронизации с облаком
  • Временные показатели работы

Преимущества решения

  • Экономия места на диске благодаря конвертации в MP3
  • Автоматическое резервное копирование в облако
  • Простота установки и настройки
  • Возможность работы по расписанию через cron
  • Подробная система логирования для отслеживания проблем

Технические требования

 

Для работы скрипта необходимо:

  • Установленная и настроенная IP-АТС на базе Asterisk
  • Включенная функция записи разговоров в Asterisk
  • Python 3.6 или выше
  • Установленный ffmpeg
  • Токен Яндекс.Диска (для синхронизации)
  • Необходимые Python-пакеты из requirements.txt

 

Заключение

Данное решение значительно упрощает процесс управления записями звонков в системах на базе Asterisk, автоматизируя рутинные операции и обеспечивая надёжное хранение данных. Скрипт может быть легко адаптирован под конкретные нужды организации и интегрирован в существующую инфраструктуру IP-телефонии. Благодаря поддержке различных клонов Asterisk, решение подойдет практически для любой конфигурации IP-АТС