CDR → СУО Интеграция
Технология: PostgreSQL LISTEN/NOTIFY
Назначение: Автоматическое создание обращения в СУО при входящем звонке
Архитектура
Asterisk → CDR запись → PostgreSQL (asterisk DB)
↓ NOTIFY
CDR Listener (CallBox Backend)
↓ HTTP POST
СУО API /api/cdr/incoming
↓
Создание обращения
Конфигурация
На web-1:
# В docker-compose.yml
CDR_LISTENER_ENABLED=true
CDR_LISTENER_DB_URL=postgresql://asterisk:***@db-1:5432/asterisk
SUO_API_URL=http://10.10.19.21:8001
На web-2: CDR Listener отключён (работает только на web-1)
Процесс
- Asterisk записывает CDR в
call_detail_records - PostgreSQL триггер отправляет NOTIFY
cdr_new_record - CDR Listener (Python) слушает NOTIFY
- Парсит CDR, проверяет условия (входящий, завершён)
- POST запрос в СУО API
- СУО создаёт обращение с привязкой к CDR
Мониторинг
Логи: docker logs callbox-backend | grep CDR_LISTENER