Перейти к содержимому

Экспорт CDR в плоские файлы (Thrift)

Этот перевод выполнен автоматически и ещё не вычитан. Читать английскую версию

Чтение CDR из базы данных коммутатора нагружает её и привязывает вашу отчётность к сроку хранения данных в ней. С экспортом Thrift коммутатор дополнительно записывает каждый звонок, CDR и изменение баланса в двоичные файлы, которые ротируются по расписанию. Ваша биллинговая система, хранилище данных или система противодействия мошенничеству собирает эти файлы и разбирает их, а база данных может хранить CDR всего несколько дней.

  1. Коммутатор обрабатывает и тарифицирует звонки как обычно.
  2. Когда звонок завершается, коммутатор дописывает его записи в текущий файл каждого типа записей в двоичном формате Apache Thrift.
  3. При каждой ротации текущие файлы закрываются и начинаются новые. Закрытые файлы содержат время ротации в названии.
  4. Ваша система собирает закрытые файлы или получает их на SFTP-сервер и разбирает их с помощью Thrift.
  5. Коммутатор сам удаляет старые файлы, поэтому диск не переполняется.

Файлы среды N находятся в /var/envN/upload/cdrs/thrift/. Каждая запись содержит i_call, который связывает записи одного звонка в разных файлах.

Эти файлы записываются всегда:

Файл Записи
calls-thrift.bin Одна на звонок: Call-ID, CLI, CLD, время установления, группа маршрутизации. Ключ для остальных файлов
cdrs-thrift.bin CDR аккаунтов: результат, длительность, тарифицированная длительность, стоимость, цены, удалённый IP-адрес, user agent
cdrs_connections-thrift.bin CDR вендоров: одна на каждую попытку через подключение вендора, с её стоимостью и результатом
balance_updates-thrift.bin Изменения баланса аккаунтов, клиентов и вендоров, участвующих в звонке

Эти файлы записываются, когда соответствующая функция используется:

Файл Записи
cdrs_customers-thrift.bin CDR клиентов
cdrs_dids-thrift.bin CDR для DID
cdrs_customers_dids-thrift.bin CDR для DID, делегированных клиентам
cdrs_connections_dids-thrift.bin CDR вендоров для DID, когда правило аутентификации DID имеет группу тарификации закупки DID
commissions-thrift.bin Комиссии, выплаченные за звонок
calls_sdp-thrift.bin Тела SDP звонка, когда для среды включена запись SDP
surcharges-thrift.bin Дополнительные сборы, применённые к звонку

Время записывается как метки времени Unix в UTC.

Попросите поддержку FlySIP включить экспорт Thrift для среды и задать:

  • период ротации, например каждые 60 минут;
  • сколько времени закрытые файлы хранятся на коммутаторе;
  • при желании, SFTP-сервер, который получает файлы.

Поддержка включает системный конфигурационный ключ system/cdrs/export/thrift/enabled среды. Вы можете прочитать его с помощью getSystemConfig.

Чтобы проверить, что записывает коммутатор, выведите файл с помощью парсера, который поставляется вместе с ним:

Окно терминала
sudo /home/ssp/scripts/support_tools/thrift_parser.py /var/env1/upload/cdrs/thrift/cdrs-thrift.bin
Cdrs(i_cdr=2554692, i_account=34, result=0, cost=0.3603, duration=2.18, billed_duration=2.0,
connect_time=1672226855, disconnect_time=1672226857, cld_in='12064248284', prefix='1',
price_1=0.0063, price_n=0.0043, remote_ip='192.0.2.34', i_call=935442, ...)

Парсер принимает несколько файлов или шаблон, например …/thrift/*-thrift.bin*. Для собственного парсера запросите у поддержки FlySIP файл определений Thrift для вашего релиза.