Перейти к содержанию

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)

Процесс

  1. Asterisk записывает CDR в call_detail_records
  2. PostgreSQL триггер отправляет NOTIFY cdr_new_record
  3. CDR Listener (Python) слушает NOTIFY
  4. Парсит CDR, проверяет условия (входящий, завершён)
  5. POST запрос в СУО API
  6. СУО создаёт обращение с привязкой к CDR

Мониторинг

Логи: docker logs callbox-backend | grep CDR_LISTENER