Экспорт CDR в плоские файлы (Thrift)
Этот перевод выполнен автоматически и ещё не вычитан. Читать английскую версию
Чтение CDR из базы данных коммутатора нагружает её и привязывает вашу отчётность к сроку хранения данных в ней. С экспортом Thrift коммутатор дополнительно записывает каждый звонок, CDR и изменение баланса в двоичные файлы, которые ротируются по расписанию. Ваша биллинговая система, хранилище данных или система противодействия мошенничеству собирает эти файлы и разбирает их, а база данных может хранить CDR всего несколько дней.
Как это работает
Заголовок раздела «Как это работает»- Коммутатор обрабатывает и тарифицирует звонки как обычно.
- Когда звонок завершается, коммутатор дописывает его записи в текущий файл каждого типа записей в двоичном формате Apache Thrift.
- При каждой ротации текущие файлы закрываются и начинаются новые. Закрытые файлы содержат время ротации в названии.
- Ваша система собирает закрытые файлы или получает их на SFTP-сервер и разбирает их с помощью Thrift.
- Коммутатор сам удаляет старые файлы, поэтому диск не переполняется.
Файлы среды 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.binCdrs(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 для вашего релиза.