Понятия, определения

Описание принципа работы

Принцип работы TTS

Подсистема TTS собирает первичную информацию о вызовах (анализирует поток сигнальной информации, проходящий через Core), осуществляет её накопление, обработку и формирование файлов с записями о разговорах (CDR — Call Detail Record) — CDR-файлов. Подсистема TTS работает в рамках кластера Core и состоит из трех приложений:

  1. ct_trike_tts_server — базовый сервис, занимающийся накоплением и обработкой первичной информации, формированием CDR-записей и записью их в БД;
  2. ct_trike_cdr_server — сервис занимается генерацией CDR-файлов на основе сформированных подсистемой ct_trike_tts_server-записей;
  3. tts_ftp_server — FTP-сервер, использующий БД PostgreSQL в качестве файловой системы. Это приложение предоставляет доступ к файлам CDR, сгенерированным приложением "ct_trike_cdr_server" по протоколу FTP.

База данных TTS содержит следующие объекты:

Таблица 1 — Описание параметров приложения "core_trike_tts" сервиса TTS, доступные администратору виртуальной АТС

НазваниеЗначение по умолчаниюОписание
actual_calls_enabledtrueОпределяет, включен (true) или выключен (false) сервисе истории вызовов (будет или нет история вызовов сохраняться в базу).
adaptationundefinedтекущая адаптация
autoclean_enabledtrueОпределяет, активирована ли автоочистка.
autoclean_start_atevery 1 day at 00:00Определяет время и периодичность запуска автоочистки.
Задается в следующих видах:
- every <N> (day/week/month/year) at <HH:MM>, где <N> — автоочистка будет срабатывать каждые <N> дней (недель, месяцев, лет соответственно) в заданное время с небольшой погрешностью, необходимой, чтобы при большом количестве доменов не создать большую нагрузку на сервер PostgreSQL. Например, значение "every 1 day at 00:00" означает, что автоочистка будет запускаться каждый день около полуночи.
- at <DD.MM.YYYY HH:MM:SS> — автоочистка сработает в заданное время, после чего задача автоматически удалится. Например, "at 22.12.2014 15:00:00" означает, что необходимо выполнить очистку 22 декабря 2014 года ровно в 15:00.
cdr_columns_name
Команда позволяет изменить название колонки <column> на новое
cdr_generation_enabledtrueОпределяет, включена (true) или выключена (false) запись CDR в БД и генерации CDR-файлов.
cdr_header"Eltex SSW cdr"Если включена опция generate_cdr_without_fields, сюда добавляется кастомное название устройства.
cdr_field_delimitersemicolon

Разделитель полей CDR:
tab — символ Tab (\t);
space — пробел ( );
comma — запятая (,);
semicolon — точка с запятой (;);

0..255 отображает символ, указанyый в формате десятичного ASCII кода.

cdr_field_delimeter_representationppp_hex_representation

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

ppp_hex_representation отображает символ в стилистике протокола PPP4 (символ  точка с запятой заменится последовательностью 0x3B );
ascii_hex_representation отображает символ в стилистике ASCII escape symbol(символ точка с запятой заменится последовательностью \x3B);
url_hex_representation отображает символ в стилистике протокола URI (символ точка с запятой заменится последовательностью %3B);
0..255 отображает символ, указаный в формате десятичного ASCII кода: *#*(разделитель пробел кодируется 32).

cdr_typenormalОпределяет формат создаваемых CDR-файлов: расширенный (extended), обычный (normal) или задаваемый вручную (manual). Расширенный режим отличается от обычного дополнительными полями:
- CODEC — список кодеков;
- T_DNA — время ожидания ответа абонента при неотвеченном вызове, в секундах.
В manual режиме список колонок создаваемого CDR-файла берется из свойства manual_cdr_columns
cdr_time_roundingdownsideОпределяет режим округления времени при записи CDR-файлов. Доступные значения:
downside — округление в меньшую сторону путем, берется только прошедшее целое количество секунд (2999мс округляется до 2-x секунд);
upside — округление в большую сторону путем. Если количество миллисекунд в последней секунде > 0 — считается эту секунду (1001мс округляется до 2-x секунд);
downside_with_delta — округление в меньшую сторону, если количество миллисекунд в последней секунде <= 850, иначе, округляем в большую сторону. Замечание: если весь вызов длился более 200мс, но меньше 1 секунды — то время вызова будет равно 1 секунде;
upside_with_delta — округление в большую сторону, если количество миллисекунд в последней секунде >= 330, иначе, округляем в меньшую сторону. Замечание: если весь вызов длился более 200мс, но меньше 1 секунды — то время вызова будет равно 1 секунде;
mathematically — математическое округление. Если количество миллисекунд в последней секунде >= 500 — округляем в большую сторону, иначе — в меньшую;
millisecond — записываем время в CDR в миллисекундах.
manual_cdr_columns

type, datetime, okod_a, okod_b, kod_a, kod_b, nai_a, nai_b, n_tr_gr_a, n_tr_gr_b, t_ecd, t_dba, t_dna, cause_isup, cause_int, completind, origin_dig, dialed_dig, actsusb, categ_a, categ_b, place, rec_seq, servuser, servindic, treatment, conn_id, redirected, redirection, orig_called, port_a, port_b, src_ip, dst_ip, src_port, dst_port, media_proxy, codec, diagnostic, domain, cdr_group, signal_src_ip, signal_dst_ip, signal_src_port, signal_dst_port, call_record_a, call_record_b, isup_spc_a, isup_spc_b, isup_dpc_a, isup_dpc_b, isup_ni_a, isup_ni_b, cic_a, cic_b, smg_nai_a, smg_nai_b, date_time, call_duration, type_a, type_b, start_time, end_time, redirect_flag, inf_connection

Задается список колонок, которые будут присутствовать в CDR-файле. При этом колонки будут в том порядке, в каком они заданы.
enabledtrueОпределяет, включен (true) или выключен (false) сервис TTS (история вызовов, запись CDR).
generate_cdr_without_fieldsfalseОпределяет скрывать ли стандартные заголовки полей в первой строке cdr- файла.
partial_cdr_timeout300Период, по истечении которого в базе данных создается запись с информацией о вызове. Также параметр задает периодичность, с которой будут выгружаться "partial CDR", в секундах.
port_sourceiface_name

Формат записи имен интерфейсов:

iface_name — в CDR/tollticket будет записано имя интерфейса;

iface_id — в CDR/tollticket будет записано id интерфейса.

purge_older_than2 monthПериод времени, по истечении которого записи в базе данных будут удалены. Значение может быть задано в часах (hour[s]), днях (day[s]), неделях (week[s]), месяцах (month[s]), годах (year[s]).
sign_cdr_enabledfalseОпция, при включении которой (значение "true") будет производиться цифровая подпись CDR-файлов и отдельных записей в рамках CDR-файлов. В CDR-файл будет добавлена колонка с именем SIGN, в которой для каждой записи будет прописана её цифровая подпись. Кроме того, в CDR-файле будет создана CDR-запись типа "final", все поля которой, кроме "SIGN", будут пустыми. В поле "SIGN" у данной записи будет подпись всего CDR-файла.


Команды управления сервисом TTS приведены в разделах:

Принцип работы системы сбора CDR

Как правило, по результату обслуживания вызова системой TTS формируется один пакет информации в CDR-файле с полной информацией о вызове. 

Если вызов находится продолжительное время в фазе разговора, осуществляется формирование промежуточных записей (partial cdr). Формирование промежуточных записей производится согласно спецификации ITU-T Q.825 B.1.2 Partial records. Промежуточная CDR-запись формируется с периодичностью, задаваемой параметром "partial_cdr_timeout", по умолчанию составляет 5 минут и может быть изменена, подробное описание приведено в разделе Команды управления сервисом TTS

В случае формирования Partial CDR в поле "rec_seq" в первой Partial CDR будет записана цифра 1, у второй — цифра 2 и так далее. В тот момент, как вызов завершится, и будет сформирована финальная запись CDR, в поле "rec_seq" будет записан 0 — это служит признаком, что данный вызов завершен. При этом у каждой Partial CDR будет собственная длительность вызова, поле "datetime" у каждой последующей Partial CDR будет равно времени формирования предыдущей Partial CDR (cоответствующие временные метки должны применяться к отдельным частичным записям, а не к вызову в целом, т. е. временная метка "end" (StartTimeStamp + длительность) записи должна совпадать с временной меткой "start" следующей записи).

Например, после ответа абонента через 5 минут происходит формирование промежуточной CDR-записи и повторный запуск таймера. Если по истечении очередного периода разговор между абонентами продолжается, то формируется следующая промежуточная CDR-запись. По завершении разговора формируется финальная CDR-запись, которая закрывает записи о вызове.

Если во время звонка абоненты пользовались услугами, формируется запись, у которой поле "type" соответствует "service", в поле "actsusb" будет записан вид услуг, которое было использовано.

Более подробное описание поля CDR в случае использования услуг приведено в разделе Управление системой CDR.

Группировка CDR, структура папок и файлов

CDR-файлы сохраняются на файловой системе в следующей древовидной структуре:

domain
 ├─ some_domain_1
    ├─ default
    │  └─ csv
    ├─ some_group_1
    │  └─ csv
    │  ...
    └─ some_group_n
       └─ csv

Вызовы в рамках системы группируются в заданные оператором логические группы. Подкаталоги в файловой системе создаются только под существующие группы. При удалении группы папка с группой удаляется автоматически в случае, если для данной группы нет ни одного CDR-файла, иначе папку необходимо удалять вручную.
Вызовы одной группы сохраняются в файлы общей папки, определенной для этой группы на виртуальной файловой системе. Файл формируется только в момент закрытия CDR-файла. Принадлежность вызова к группе определяется принадлежностью к этой группе вызывающего абонента (абонента А) или транка, с которого поступил вызов. Определение, к какой группе относится абонент или транк, является задачей оператора.

Информация о вызове записывается в БД PostgreSQL с именем ecss_calls_db в таблицу cdr
Сформированные CDR-файлы хранятся на виртуальной файловой системе, которая также хранится в БД PostgreSQL, доступ до которой осуществляется по протоколу FTP.

Имя CDR-файла имеет следующую структуру:

Примеры имен файлов:

cdrAts23_20150925_11_15_00_p.csv
cdrAts23_20150925_17_00_00_1_с.csv

Формат CDR-файлов

В системе поддерживается формат сохранения файлов с CDR-записями — csv. Это стандартный формат представления данных в табличной форме.

Первая строка в файле — список с именами колонок, которые разделяются символом разделителем (по умолчанию точка с запятой ";").
Каждая следующая строка соответствует одной CDR. В строке перечислены значения полей, разделенные символом разделителем.
Состав полей и названия колонок можно настраивать.

Файлы в этом формате имеют расширение .csv.

Набор полей при разных cdr_type:

normal

  • type
  • datetime
  • kod_a
  • kod_b
  • n_tr_gr_a
  • n_tr_gr_b
  • t_ecd
  • t_dba
  • cause_isup
  • cause_int
  • completind
  • dialed_dig
  • actsusb
  • categ_a
  • place
  • rec_seq
  • servuser
  • servindic
  • treatment
  • conn_id
  • redirected
  • redirection
  • orig_called
  • src_ip
  • dst_ip
  • port_a
  • port_b
  • diagnostic

extended

  • type
  • datetime
  • kod_a
  • kod_b
  • n_tr_gr_a
  • n_tr_gr_b
  • t_ecd
  • t_dba
  • t_dna
  • cause_isup
  • cause_int
  • completind
  • dialed_dig
  • actsusb
  • categ_a
  • place
  • rec_seq
  • servuser
  • servindic
  • treatment
  • conn_id
  • redirected
  • redirection
  • orig_called
  • src_ip
  • dst_ip
  • port_a
  • port_b
  • media_proxy
  • diagnostic
  • codec

manual

  • type
  • datetime
  • okod_a
  • okod_b
  • kod_a
  • kod_b
  • nai_a
  • nai_b
  • n_tr_gr_a
  • n_tr_gr_b
  • t_ecd
  • t_dba
  • t_dna
  • cause_isup
  • cause_int
  • completind
  • origin_dig
  • dialed_dig
  • actsusb
  • categ_a
  • categ_b
  • place
  • rec_seq
  • servuser
  • servindic
  • treatment
  • conn_id
  • redirected
  • redirection
  • orig_called
  • port_a
  • port_b
  • src_ip
  • dst_ip
  • src_port
  • dst_port
  • media_proxy
  • codec
  • diagnostic
  • domain
  • cdr_group
  • signal_src_ip
  • signal_dst_ip
  • signal_src_port
  • signal_dst_port
  • call_record_a
  • call_record_b
  • isup_spc_a
  • isup_spc_b
  • isup_dpc_a
  • isup_dpc_b
  • isup_ni_a
  • isup_ni_b
  • cic_a
  • cic_b
  • smg_nai_a
  • smg_nai_b
  • date_time
  • call_duration
  • type_a
  • type_b
  • start_time
  • end_time
  • redirect_flag
  • inf_connection

При этом в режиме manual можно менять состав колонок и их порядок

Кроме того, система ECSS-10 поддерживает возможность цифровой подписи СDR файлов. В этом случае в CDR-файл добавляется колонка sign, которая содержит подпись данной CDR-записи/файла. Подробнее про цифровую подпись CDR-файлов написано в главе Цифровая подпись СDR файлов, описание полей файлов см. Описание полей CSV-файла.

Режимы генерации CDR-файлов

В ECSS-10 поддерживаются следующие режимы сохранения CDR-файлов: "count", "period", "time".

Рекомендуется устанавливать большой период закрытия файла (1 раз в сутки).

При малых значениях периода (например, "count" с ограничением 10 вызовов в файле или "period" с ограничением в интервал меньше одного часа) создается очень большое количество файлов, что приводит к деградации производительности файловой подсистемы хоста, снижению производительности кластера CORE, снижению производительности последующей обработки при импорте в биллинг. Такого рода режимы можно использовать только для проверки функциональности. Также нужно производить удаление CDR-файлов после экспорта их в биллинговую систему.

Режим "count"

Режим "count" позволяет сохранять файлы с определенным количеством записей. В этом режиме CDR-файл будет формироваться в момент, когда количество несохраненных в CDR-файл записей типа "count" в базе достигнет заданное значение.

CDR-файлы с типом записей "count" формируются не чаще одного раза в минуту. К имени CDR-файла привязан номер сгенерированного файла. Так, например, если за 1 минуту было сформировано CDR для трех файлов, их имена будут следующие:
cdr_count_20150925_11_15_00_1_c.csv
cdr_count_20150925_11_15_00_2_c.csv
cdr_count_20150925_11_15_00_3_c.csv

"Partial_cdr" запись является отдельной записью. Возможна ситуация, когда разные части длительного вызова (в том числе вызовы по услугам) будут сохранены в разных файлах.

В имени файлов данного режима присутствует суффикс "c", указывающий на режим "count".

Режим "period"

В режиме "period" CDR-файлы формируются каждые <N> секунд. При этом начало интервала выравнено по 01.01.1970 г. Этот режим позволяет сохранять файлы с ограничением по времени.

Для режима "period" актуально замечание о возможности разнесения записей длительных вызовов (вызовов по услугам) в разные файлы. В имени файлов данного режима присутствует суффикс "p", указывающий на режим "period".

Режим "time"

В этом режиме CDR записываются в текущий файл, пока не наступит очередной заданный момент времени в сутках, по которому происходит закрытие текущего файла и открытие нового. Этот режим позволяет делать "нарезку" файлов в определенные моменты времени в течение суток (например, закрывать файл в 00:00).

Можно задать несколько моментов закрытия файла за сутки, они могут указываться с точностью до секунды (если секунды опущены, то они считаются равными нулю). В имени файлов данного режима присутствует суффикс "t", указывающий на режим "time".

Цифровая подпись СDR-файлов

Система ECSS-10 может производить цифровую подпись CDR-файлов и отдельных записей в рамках CDR-файлов. Для этого необходимо включить цифровую подпись CDR-файлов командой:

/domain/<DOMAIN>/tts/properties/set sign_cdr_enabled true

где

Если включена подпись CDR-файла, то в CDR-файл добавляется колонка с именем SIGN, в которую для каждой записи будет записана её цифровая подпись. Кроме того, в CDR-файле будет создана CDR-запись типа "final", все поля которой, кроме "SIGN", будут пустыми. В поле "SIGN" у данной записи будет подпись всего CDR-файла.

Проверка цифровой подписи СDR-файла:

Для проверки подписи CDR-файла используется команда:

/domain/<DOMAIN>/cdr/validate --line <CDR_Line> | --file <CDR_File_Path>

где

Порядок настройки системы CDR

Для управления настройками системы CDR используется интерфейс командой строки и web-интерфейс.

Команды, предназначенные для управления настройками CDR, располагаются на виртуальной файловой системе CLI в директории /domain/<DOMAIN>/cdr/. Описание команд приведено в разделе Справочник команд CLI.

Для управления CDR-файлами через web-конфигуратор используется приложение Менеджер cdr (Cdr manager).

Порядок настройки системы CDR:

  1. Настройки TTS;
  2. Создание и настройка CDR-группы;
  3. Добавление алиаса (абонента) или транка в определенную CDR-группу.

Настройка системы сбора CDR через CLI

Создание CDR-группы

Создание групп производится командой:


Если значения параметров группы при создании не были заданы, то их значения определяются из настроек домена.


Значения параметров для группы устанавливаются в момент создания группы. Изменение общих значений параметров для виртуальной АТС не приводит к изменению индивидуальных значений параметров для группы внутри этой АТС.
  1. Создание CDR-группы cdr_test для виртуальной АТС d.cargo без указания дополнительных параметров:

    /domain/d.cargo/cdr/add_cdr_group cdr_test                               
    ok


  2. Создание CDR-группы cdr_test для виртуальной АТС d.cargo с указанием режима работы группы с разбивкой по времени (в момент времени 00:00:00 создавать новый CDR-файл):

    /domain/d.cargo/cdr/add_cdr_group cdr_test mode time 00:00:00         
    ok


Просмотр параметров групп производится командой: 

Удаление группы производится командой:

Изменение параметров группы производится командой:

Добавление абонента и транка в определенную CDR-группу

Параметр с именем "cdr_group" определяет, к какой группе относится абонент или транк. Его значение должно представлять собой строку, состоящую из символов английского алфавита и/или цифр.

Предварительно эта группа должна быть создана. Если для абонента/транка настроен параметр "cdr_group", но на текущий момент данной группы не существует (например, группа была создана, но её удалили), то вызов, поступивший от такого абонента/транка, будет отнесен к группе по умолчанию (default). Если абоненту/транку, с которого совершается вызов, не назначена группа, то настройки будут присвоены из значений по умолчанию, установленных для виртуальной АТС.

Добавление абонента

Для добавления абонента (алиаса) в определенную CDR-группу необходимо установить параметр "cdr_group" в свойствах алиаса на требуемом уровне (домена, интерфейса или определенного алиаса).

/domain/<DOMAIN>/alias/set <NUMBER> <GROUPNAME> <INTERFACE> cdr_group <CDRGroupName>

где

Пример:

Для виртуальной АТС test.domain добавляем абонента 102 (интерфейс 102@test.domain) в CDR-группу test_cdr на уровне алиаса. Логическая группа, в которую входит абонент с номером 102 — test_group:

admin@[mycelium1@ecss1]:/$ domain/test.domain/alias/set 102 test_group 102@test.domain cdr_group test_cdr
There are aliases within domain test.domain affected by settings property cdr_group:
  102  <->  102@test.domain

Добавление транка

Для добавления вызовов с транка в определенную CDR-группу необходимо установить параметр "cdr_group" в свойствах алиаса на уровне интерфейсов.

/domain/<DOMAIN>/alias/set-for-iface <GROUPNAME> <TRUNK_NAME> cdr_group <CDRGroupName>

где

Пример:

Для виртуальной АТС d.cargo добавляем транк CITY.TRUNK в CDR-группу cdr_test:

/domain/d.cargo/alias/set-for-iface smg.gr CITY.TRUNK cdr_group cdr_test
Affected ifaces in domain: d.cargo
  CITY.TRUNK

Конфигурирование режимов генерации CDR-файла

При создании виртуальной АТС (описание приведено в разделе Создание виртуальной АТС (домена). Порядок настройки) значения параметров "default_format", "default_mode", "default_prefix" устанавливаются в значения по умолчанию:

default_format = csv
default_mode = time, 00:00:00
default_prefix = "" 

Просмотреть значения по умолчанию можно командой:

Изменить префикс для всей АТС можно командой: 

Изменить режим формирования файла для всей АТС можно командой: 

Настройка системы сбора CDR через web-конфигуратор

Для работы с CDR-файлами через web-конфигуратор используется приложение "Cdr Manager" ("Менеджер CDR").
Описание приложения приведено в разделе Менеджер cdr (Cdr manager) или во вкладке ниже.


Менеджер cdr (Cdr manager)


Система переименования колонок CDR

Механизм позволяет переименовывать колонки в выгружаемых файлах CDR.

Установить новое значение имени колонки:

domain/test.ats/tts/properties/set cdr_columns_name <FIXED_COLUMN_NAME> <NEW_COLUMN_NAME>
Пример использования:

domain/test.ats/tts/properties/set cdr_columns_name actsusb test_actsusb
Property "cdr_columns_name" successfully changed from: 
actsusb = call
kod_a = vcd
port_a = cxz
port_b = asd
t_dba = answer
   to
actsusb = test_actsusb
kod_a = vcd
port_a = cxz
port_b = asd
t_dba = answer.

Просмотр выставленных значений:

domain/test.ats/tts/properties/info cdr_columns_name
Пример выполнения команды:

domain/test.ats/tts/properties/info cdr_columns_name
┌────────────────┬────────┬──────────────────────┐
│    Property    │ Domain │        Value         │
├────────────────┼────────┼──────────────────────┤
│cdr_columns_name│test.ats│actsusb = test_actsusb│
│                │        │kod_a = vcd           │
│                │        │port_a = cxz          │
│                │        │port_b = asd          │
│                │        │t_dba = answer        │
└────────────────┴────────┴──────────────────────┘

Установить значение по умолчанию для конкретной колонки:

domain/test.ats/tts/properties/clean cdr_columns_name <FIXED_COLUMN_NAME>
Пример выполнения команды:

domain/test.ats/tts/properties/clean cdr_columns_name actsusb      
Property cdr_columns_name values successfully updated

Установить значение по умолчанию для всех колонок:

domain/test.ats/tts/properties/clean cdr_columns_name
Пример выполнения команды:

domain/test.ats/tts/properties/clean cdr_columns_name
Property cdr_columns_name values successfully restored

Описание полей CSV-файла

Таблица 2 — Список полей CSV-файла

НазваниеОписаниеДоступна в режиме:Формат
TYPEТип записи.

normal
manual
extended

  • -Call — вызов;
  • -Service — запись о срабатывании услуг в рамках вызова.
DATIMEДата и время начала вызова (если учитываются промежуточные записи, то дата и время начала этой промежуточной записи).normal
manual
extended
Формат: YYYY.MM.DD HH:MM:SS.
пример: 2025.07.29 14:06:21
OKOD_AНомер вызывающего (абонента А) на входе (до модификации на входящей ТГ)manualСтрока(63).
OKOD_BНомер вызываемого (абонента B) на входе (до модификации на входящей ТГ)manualСтрока(63).
KOD_AНомер абонента А после маршрутизации. При переадресации (каскадных переадресаций) номер абонента А после маршрутизации в первом плече.normal
manual
extended
Строка(63).
KOD_BНомер абонента B после маршрутизации. При переадресации (каскадных переадресаций) номер абонента B после маршрутизации в последнем плече.normal
manual
extended
Строка(63).
NAI_AТип номера Аmanual
  • subscriberNumber;
  • unknown;
  • nationalNumber;
  • internationNumber;
  • spare.
NAI_BТип номера Bmanual
  • subscriberNumber;
  • unknown;
  • nationalNumber;
  • internationNumber;
  • spare.
N_TR_GR_AНомер транка абонента А.normal
manual
extended
Строка(255).
N_TR_GR_BНомер транка абонента B.normal
manual
extended
Строка(255).
T_ECDДлительность разговора в секундах.normal
manual
extended
Целое(10).
T_DBAДлительность до ответа абонента B.normal
manual
extended
Целое(10).
T_DNAДлительность вызова в случае, когда абонент B не ответил (доступно для расширенного формата CDR).normal
manual
Целое(10).
CAUSE_ISUPПричина завершения вызова по ОКС7.normal
manual
extended
Целое(3), код ошибки ISUP (Cause Number).
CAUSE_INTВнутренняя причина завершения вызова.normal
manual
extended
Строка(63), описание приведено в разделе Приложение В. Описание внутренних причин разъединения.
COMPLETINDВызов с ответом/без ответа.normal
manual
extended
1 — вызов без ответа;
7 — вызов был отвечен.
ORIGIN_DIGРеальный номер абонента А.manualСтрока(63).
DIALED_DIGНабранные абонентом цифры.normal
manual
extended
Строка(63).
ACTSUSBДействия абонента по управлению услугой для записей типа Service.normal
manual
extended
  • test — проверка услуги;
  • activation — активация услуги;
  • deactivation — деактивация услуги;
  • invocation — использование услуги;
  • registration — регистрация услуги;
  • erasure — очистка услуги.
CATEG_AКатегория ОКС-7 абонента А.normal
manual
extended
Целое(3).
CATEG_BКатегория ОКС-7 абонента A после обработки, передача на сторону BmanualЦелое(3).
PLACEСторона инициатор разъединения.normal
manual
extended
  • 0 — система;
  • 1 — вызывающая сторона;
  • 2 — вызываемая сторона.
REC_SEQПоследовательность записи, если вызов представлен несколькими записями.normal
manual
extended
Целое(10). В случае формирования Partial CDR в поле rec_seq в первой Partial CDR будет записана цифра 1, у второй — цифра 2 и т.д. В тот момент, как вызов завершится, и будет сформирована финальная запись CDR, в поле rec_seq будет записан 0. Таким образом, это служит признаком, что данный вызов завершен.
SERVUSERНомер абонента, воспользовавшегося услугой (для вызова номер абонента А).normal
manual
extended
Строка(255).
SERVINDICКод услуги, для записей типа "Service".normal
manual
extended
Строка(32):
- 'ACB' — блокировка анонимных вызовов;
- 'Alarm' — будильник;
- 'AutoRedial' — автодозвон;
- 'AutoRedialWithCB' — автодозвон с обратным вызовом;
- 'SCR' — "черный" список номеров для входящих вызовов;
- 'SCO_black' — "черный" список номеров для исходящих вызовов;
- 'CallBack' — обратный вызов;
- 'CFB' — переадресация по занятости;
- 'CFNR' — переадресация по неответу;
- 'CFOS' — переадресация по недоступности;
- 'CFT' — переадресация по времени;
- 'CFU' — переадресация безусловная;
- 'CFU_Type2' — переадресация безусловная тип 2;
- 'FindMe' — безусловная переадресация по расписанию;
- 'FindMeNR' — переадресация по расписанию по неответу;
- 'CGG' — вызов на группу;
- 'CHOLD' — вызов на удержании;
- 'HOLE' — вызов снят с удержания;
- 'CHUNT' — CHUNT-группа;
- 'CLIP' — выдача номера вызывающего абонента (АОН);
- 'CLIR' — ограничение выдачи номера вызова вызывающего абонента;
- 'CTR' — перевод вызова;
- '3WAY' — трехсторонняя конференция;
- 'Conference' — конференция;
- 'CW' — вторая линия;
- 'DirectCall' — прямой вызов;
- 'DND' — не беспокоить;
- 'FollowMe' — следуй за мной;
- 'MCID' — злонамеренный вызов;
- 'MGM' — управление услугами с ТА абонента;
- 'PICKUP' — перехват вызова;
- 'RBP' — ограничение исходящих вызовов;
- 'Redial' — повторный набор;
- 'RFC' — запрет переадресованных вызовов;
- 'SpeedDial' — быстрый набор;
- 'SCA' — "белый" список номеров для входящих вызовов;
- 'SCO_white' — "белый" список номеров для исходящих вызовов.
TREATMENTДиагностика(текстовое описание) причины завершения вызова. В случае, если пишутся partial CDR ), то поле treatment равно NULLnormal
manual
extended
Строка(511).
CONN_IDИдентификатор вызова.normal
manual
extended
Целое(33).
REDIRECTEDНомер при переадресации, инициатора переадресации. В случае каскадной переадресации — номер инициатора последней переадресации.normal
manual
extended
Строка(63).
REDIRECTIONНемодифицированный номер С при переадресации. В случае каскадной переадресации — первый номер, на который была сделана переадресация (немодифицированный).normal
manual
extended
Строка(63).
ORIG_CALLEDПервоначально набранный номер.normal
manual
extended
Строка(63).
PORT_AИнтерфейс ECSS-10, с которого был сделан вызов.normal
manual
extended
Целое(255).
PORT_BИнтерфейс ECSS-10, на который был сделан вызов.normal
manual
extended
Целое(255).
SRC_IPIP-адрес шлюза абонента А.normal
manual
extended
Строка(39).
DST_IPIP-адрес шлюза абонента Б.normal
manual
extended
Строка(39).
SRC_PORTПорт источника вызова.manualЦелое(10).
DST_PORTПорт назначения вызова.manualЦелое(10).
MEDIA_PROXYИспользование проксирования медиатрафикаnormal
manual
Целое(1) (0 — без проксирования, 1 — проксирование используется)
CODECСписок кодеков, которые были согласованы в рамках разговора (доступно в случае расширенного формата CDR).normal
manual
Текст.
DIAGNOSTICДополнительная диагностическая информация с причиной разъединения.normal
manual
extended
Строка(128).
DOMAINИмя доменаmanualТекст
SIGNЭлектронная подпись CDR-файла/записи в CDR-файле.
Строка(88).
CDR_GROUPИмя CDR группыmanualТекст
SIGNAL_SRC_IPIP абонента А, с которого пришел вызовmanualСтрока(39).
SIGNAL_DST_IPIP абонента B, на который ушел вызовmanualСтрока(39).
SIGNAL_SRC_PORTПорт абонента А, с которого пришел вызовmanualЦелое(10).
SIGNAL_DST_PORTПорт абонента B, на который ушел вызовmanualЦелое(10).
CALL_RECORD_AСсылка на запись разговора абонента АmanualСтрока(511).
CALL_RECORD_BСсылка на запись разговора абонента BmanualСтрока(511).
ISUP_SPC_AISUP Оригинальный сигнальный код станции сторона АmanualСтрока(14).
ISUP_SPC_BISUP Оригинальный сигнальный код станции сторона ВmanualСтрока(14).
ISUP_DPC_AISUP сигнальный код станции назначения сторона АmanualСтрока(14).
ISUP_DPC_BISUP сигнальный код станции назначения сторона ВmanualСтрока(14).
ISUP_NI_AISUP индикатор сигнальной сети сторона АmanualЦелое(4).
ISUP_NI_BISUP индикатор сигнальной сети сторона ВmanualЦелое(4).
CIC_AНомер CIC для входящего вызова. Если вызов производился не через стык SS7, поле будет пустым;manualСтрока(15).
CIC_B

Номер CIC для исходящего вызова. Если вызов производился не через стык SS7, поле будет пустым;


manualСтрока(15).
SMG_NAI_Aиндикатор, указывающие на принадлежность номера Amanual0 – Spare;
1 – Subscriber number;
2 – unknown;
3 – National (significant) number;
4 – International number, где:
Local – Subscriber;
Международняя связь – INTERNATIONAL;
Межгородская связь – NATIONAL;
Спецслужбы, зоновые и ведомственные – unknown.
SMG_NAI_Bиндикатор, указывающие на принадлежность номера Bmanual
  • 0 – Spare;
  • 1 – Subscriber number;
  • 2 – unknown;
  • 3 – National (significant) number;
  • 4 – International number, где:
    • Local – Subscriber;
    • Международняя связь – INTERNATIONAL;
    • Межгородская связь – NATIONAL;
    • Спецслужбы, зоновые и ведомственные – unknown.
DATE_TIMEДата начала вызова в формате SMGmanualФормат: YYYY-MM-DD HH:MM:SS.
пример: 2025-07-29 14:06:21
CALL_DURATIONДлительность вызова от момента поступления до релиза в сек.manualпример: 6
TYPE_AТип источника абонента Аmanualuser – абонент
trunk – транк
TYPE_BТип источника абонента Bmanualuser – абонент
trunk – транк
START_TIMEДата ответа в формате SMGmanualФормат: YYYY-MM-DD HH:MM:SS.
пример: 2025-07-29 14:06:23
END_TIMEДата релиза в формате как у SMGmanualФормат: YYYY-MM-DD HH:MM:SS.
пример: 2025-07-29 14:06:28
REDIRECT_FLAGМетка переадресацииmanual

A → B
normal - вызов без переадресации;

A → B → C
             
redirecting – вызывающий абонент (B) переадресовал вызов на вызываемого абонента (C);

A → B → C
   
redirected – вызов вызывающего абонента (A) был перенаправлен на другого абонента (C).

INF_CONNECTIONСтатусы вызова при разъединенииmanualuser answer – успешный вызов;
user called, but unanswer – неуспешный вызов, абонент не ответил;
unassigned number – неуспешный вызов, не назначенный номер;
user busy – неуспешный вызов, абонент занят;
uncomplete number – неуспешный вызов, неполный номер;
out of order – неуспешный вызов, оконечное оборудование не доступно;
unavailable trunk line – неуспешный вызов, транк недоступен;
unavailable voice-chan – неуспешный вызов, нет свободных разговорных каналов;
access denied – неуспешный вызов, доступ запрещен;
RADIUS-response not received – неуспешный вызов, ответ от RADIUS-сервера не получен;
unspecified – неуспешный вызов, другая причина.

Примеры формата записей в случае услуг

CFU

Таблица 3 — Описание полей сервисной записи CDR, которая сохраняется при активации сервиса CFU

Имя колонкиОписаниеЗначения
TYPEТип записи.Service
DATATIMEДата и время активации сервиса.Формат: YYYY.MM.DD HH:MM:SS:UU.
KOD_AНомер абонента, который выполнил переадресацию (Б).Строка.
KOD_BНомер абонента, на который был переадресован вызов (С).Строка.
ORIG_CALLEDНомер вызываемого абонента (Б).Строка
REDIRECTEDНомер, который был переадресован (А).Строка
T_ECDДлительность вызова в секундах.0
CAUSE_ISUPПричина завершения вызова по ОКС7.0
ACTSUSBДействия абонента по управлению услугой для записей типа Service.invocation — вызов услуги.
SERVUSERНомер абонента, который осуществляет переадресацию вызова.Строка.
SERVINDICКод услуги.CFU

Для остальных видов переадресации (CFNR, CFB, CFT, CFOS, CFU_Type2, CFNR_Type2, FollowMe, FollowMeNR, FindMe, FindMeNR) записи аналогичны.

CHOLD/HOLE

Таблица 4 — Описание полей сервисной записи CDR, которая сохраняется при активации сервиса CHOLD

Имя колонкиОписаниеЗначения
TYPEТип записи.Service
DATATIMEДата и время активации сервиса.Формат: YYYY.MM.DD HH:MM:SS:UU.
KOD_AНомер абонента А исходного вызова.Строка.
KOD_BНомер абонента B исходного вызова.Строка.
T_ECDДлительность вызова в секундах.0
CAUSE_ISUPПричина завершения вызова по ОКС7.0
ACTSUSBДействия абонента по управлению услугой для записей типа Service.invocation — вызов услуги.
SERVUSERНомер абонента, который ставит на удержание / снимает с удержания.Строка.
SERVINDICКод услуги.CHOLD — постановка на удержание; HOLE — снятие с удержания

CTR

Таблица 5 — Описание полей сервисной записи CDR, которая сохраняется при активации сервиса CTR

Имя колонкиОписаниеЗначения
TYPEТип записи.Service
DATATIMEДата и время активации сервиса.Формат: YYYY.MM.DD HH:MM:SS:UU.
KOD_AНомер абонента, которого переводят.Строка.
KOD_BНомер абонента, на которого переводят.Строка.
T_ECDДлительность вызова в секундах.0
CAUSE_ISUPПричина завершения вызова по ОКС7.0
ACTSUSBДействия абонента по управлению услугой для записей типа Service.invocation — вызов услуги.
SERVUSERНомер абонента, который осуществляет перевод вызова.Строка.
SERVINDICКод услуги.CTR

В случае сервиса передачи вызова в CDR формируется 2 записи типа call (звонок с А на B, с B на С), одна запись типа Service с SERVINDIC = CTR.

3WAY

Таблица 6 — Описание полей сервисной записи CDR, которая сохраняется при активации сервиса 3WAY

Имя колонкиОписаниеЗначения
TYPEТип записи.Service
DATATIMEДата и время активации сервиса.Формат: YYYY.MM.DD HH:MM:SS:UU.
KOD_AНомер первого участника конференции.Строка.
KOD_BНомер второго участника конференции.Строка.
T_ECDДлительность вызова в секундах.0
CAUSE_ISUPПричина завершения вызова по ОКС7.0
ACTSUSBДействия абонента по управлению услугой для записей типа Service.invocation — вызов услуги.
SERVUSERНомер абонента, вызвавшего сервис конференции.Строка.
SERVINDICКод услуги.3WAY

PICKUP

Таблица 7 — Описание полей сервисной записи CDR, которая сохраняется при активации сервиса PICKUP

Имя колонкиОписаниеЗначения
TYPEТип записи.Service
DATATIMEДата и время активации сервиса.Формат: YYYY.MM.DD HH:MM:SS:UU.
KOD_AНомер вызывающего абонента.Строка.
KOD_BНомер вызываемого абонента.Строка.
T_ECDДлительность вызова в секундах.0
CAUSE_ISUPПричина завершения вызова по ОКС7.0
ACTSUSBДействия абонента по управлению услугой для записей типа Service.invocation — вызов услуги.
SERVUSERНомер абонента, вызвавшего сервис pickup для перехвата вызова на вызываемого абонента.Строка.
SERVINDICКод услуги.PICKUP

CW

Таблица 8 — Описание полей сервисной записи CDR, которая сохраняется при активации сервиса CW

Имя колонкиОписаниеЗначения
TYPEТип записи.Service
DATATIMEДата и время активации сервиса.Формат: YYYY.MM.DD HH:MM:SS:UU.
KOD_AНомер абонента, воспользовавшегося услугой CW.Строка.
KOD_BНомер абонента, который звонит по второй линии абоненту с услугой CW.Строка.
T_ECDДлительность вызова в секундах.0
CAUSE_ISUPПричина завершения вызова по ОКС7.0
ACTSUSBДействия абонента по управлению услугой для записей типа Service.invocation — вызов услуги.
SERVUSERНомер абонента, воспользовавшегося услугой CW для приема второго вызова.Строка.
SERVINDICКод услуги.CW

MCID

Активация сервиса MALICIOUS_CALL осуществляется сразу после отбоя злонамеренного вызова.

Таблица 9 — Описание полей сервисной записи CDR, которая сохраняется при активации сервиса MALICIOUS_CALL

Имя колонкиОписаниеЗначения
TYPEТип записи.Service
DATATIMEДата и время активации сервиса.Формат: YYYY.MM.DD HH:MM:SS:UU.
KOD_AНомер абонента, совершившего злонамеренный вызов.Строка.
KOD_BНомер абонента, на которого поступил злонамеренный вызов.Строка.
T_ECDДлительность вызова в секундах.0
CAUSE_ISUPПричина завершения вызова по ОКС7.0
ACTSUSBДействия абонента по управлению услугой для записей типа Service.invocation — вызов услуги.
SERVUSERНомер абонента, воспользовавшегося услугой.Строка.
SERVINDICКод услуги.MCID
CONN_IDИдентификатор (CONN_ID) злонамеренного вызова.Строка.

MGM (Управление услугами с телефонного аппарата)

Таблица 10 — Описание полей сервисной записи CDR, которая сохраняется при использовании сервиса MGM

Имя колонкиОписаниеЗначения
TYPEТип записи.Service
DATATIMEДата и время активации сервиса.Формат: YYYY.MM.DD HH:MM:SS:UU.
KOD_AНомер абонента, который пользуется сервисом MGM.Строка.
KOD_BУправляющие команды с ТА на активацию/деактивацию сервиса.Строка.
T_ECDДлительность вызова в секундах.0
CAUSE_ISUPПричина завершения вызова по ОКС7.0
ACTSUSBДействия абонента по управлению услугой для записей типа Service.activation — активация сервиса;
test — проверка, активирован ли сервис;
deactivation — деактивация сервиса.
SERVUSERНомер абонента, который используется услугу MGM.Строка.
SERVINDICКод услуги.Имя сервиса, к которому сейчас применяется управляющее воздействие.

Alarm

Таблица 11 — Описание полей сервисной записи CDR, которая сохраняется при использовании сервиса Alarm

Имя колонкиОписаниеЗначения
TYPEТип записи.Service
DATATIMEДата и время срабатывания сервиса.Формат: YYYY.MM.DD HH:MM:SS:UU.
KOD_AНомер абонента, который пользуется сервисом Alarm.Строка.
KOD_BПустая строкаСтрока.
T_ECDДлительность вызова в секундах.0
CAUSE_ISUPПричина завершения вызова по ОКС7.0
ACTSUSBДействия абонента по управлению услугой для записей типа Service.invocation — вызов услуги.
SERVUSERНомер абонента, который используется услугу Alarm.Строка.
SERVINDICКод услуги.Alarm

CallBack

Таблица 12 — Описание полей сервисной записи CDR, которая сохраняется при использовании сервиса CallBack

Имя колонкиОписаниеЗначения
TYPEТип записи.Service
DATATIMEДата и время срабатывания сервиса.Формат: YYYY.MM.DD HH:MM:SS:UU.
KOD_AНомер абонента, который пользуется сервисом CallBack.Строка.
KOD_BНомер абонента, на которого выполняется исходящих вызов в рамках сервиса CallBack.Строка.
T_ECDДлительность вызова в секундах.0
CAUSE_ISUPПричина завершения вызова по ОКС7.0
ACTSUSBДействия абонента по управлению услугой для записей типа Service.invocation — вызов услуги.
SERVUSERНомер абонента, который использует услугу CallBack.Строка.
SERVINDICКод услуги.CallBack

CHUNT

Таблица 13 — Описание полей сервисной записи CDR, которая сохраняется при использовании сервиса CHUNT

Имя колонкиОписаниеЗначения
TYPEТип записи.Service
DATATIMEДата и время срабатывания сервиса.Формат: YYYY.MM.DD HH:MM:SS:UU.
KOD_AНомер абонента, который позвонил на сервис CHUNT.Строка.
KOD_BНомер абонента, который принял вызов в рамках сервиса CHUNT.Строка.
T_ECDДлительность вызова в секундах.0
CAUSE_ISUPПричина завершения вызова по ОКС7.0
ACTSUSBДействия абонента по управлению услугой для записей типа Service.invocation — вызов услуги.
SERVUSERНомер абонента, на котором активирован сервис CHUNT, и на которого изначально был вызов.Строка.
SERVINDICКод услуги.CHUNT

Conference

При работе сервиса Conference при добавлении каждого участника в конференцию формируется Service запись. Запись у которой KOD_A, KOD_B совпадают — относится к добавлению мастера в конференцию.

Таблица 14 — Описание полей сервисной записи CDR, которая сохраняется при добавлении очередного участника в конференцию (сервис Conference)

Имя колонкиОписаниеЗначения
TYPEТип записи.Service
DATATIMEДата и время активации сервиса.Формат: YYYY.MM.DD HH:MM:SS:UU.
KOD_AНомер мастера(владельца) конференции.Строка.
KOD_BНомер добавленного в конференцию участника. В случае, если это поле совпадает с KOD_A — это означает, что в конференцию добавили мастераСтрока.
T_ECDДлительность вызова в секундах.0
CAUSE_ISUPПричина завершения вызова по ОКС7.0
ACTSUSBДействия абонента по управлению услугой для записей типа Service.invocation — вызов услуги.
SERVUSERНомер абонента, вызвавшего сервис конференции.Строка.
SERVINDICКод услуги.Conference

Примеры CDR

Взаимодействие c ACP

В рамках работ по интеграции ECSS-10 с биллинговыми системами оператора могут использоваться разные варианты передачи CDR в автоматизированные системы расчета вызовов (ACP).

В текущем разделе рассмотрены основные варианты передачи CDR в ACP:

  1. ACP самостоятельно вычитывает CDR с FTP-сервера на хосте с ECSS-10.
  2. CDR-файлы передаются с сервера ECSS-10 на FTP-сервер системы ACP согласно расписанию.
В данном подразделе указаны команды, которые выполняются из командной консоли управления операционной системы Linux (shell) непосредственно хоста системы ECSS-10.

Настройка FTP-сервера для доступа к CDR

Типовым решением по передаче CDR-файлов является предоставление к ним доступа по протоколу FTP.
В данном варианте на ECSS-10 поднимается FTP-сервер. АСР выступает в роли FTP-клиента, который загружает и удаляет успешно загруженные файлы.

Настройки системных параметров FTP-сервера описаны в разделе Команды управления конфигурацией доступа до FTP-сервера с CDR-файлами.

В рамках ECSS-10 логины FTP-пользователей являются фиксированными и имеют следующие значения:

Возможные проблемы и пути решения

FTP-сервер не открывает 21 порт. В log-файле errors.log ecss-core в первых строках есть:

Unknown report: {bifrost,init_error,eacces}

Такое может возникнуть, если во время установки ecss-core не удалось выделить права на использование портов < 1024.
Решение:
Дать соответствующие права на запускаемый файл (Тонкая настройка системы) и перезапустить ecss-core.

Утилита ecss-copycdr

В определенных ситуациях будет удобен метод, когда FTP-сервер развернут в системе ACP, хост с ECSS-10 передает CDR на сервер FTP-системы ACP.
В данном варианте хост ECSS-10 выступает в роли FTP-клиента, который передает файлы на удаленный FTP-сервер, при необходимости удаляет успешно переданные файлы.

Для работы в таком режиме на сервере необходимо настроить конфигурационный сервис ecss-copycdr.
При необходимости можно включить автоматическую выгрузку cdr в определенное время, для это нужно настроить утилиту ecss-copycdr.timer.

Настройка утилиты ecss-copycdr описана в разделе Утилита ecss-copycdr.

Взаимодействие с Автоматизированной системой расчетов по протоколу FTP

Возможны два варианта взаимодействия системы ECSS-10 с Автоматизированной системой расчетов (далее ACP), которые отличаются только стороной инициатором взаимодействия.

  1. Если АСР работает как FTP-клиент, то АСР инициирует FTP соединение с необходимой ей периодичностью и выполняет все процессы по подчистке CDR-файлов.
  2. Если АСР работает как FTP-сервер, то система ECSS-10 устанавливает соединение с АСР с заданной в конфигурации периодичностью, выполняет функции копирования и последующего удаления CDR-файлов.

Следует помнить, что в случае схемы с резервированием в системе ECSS-10 файлы CDR хранятся на всех серверах, где работают ноды кластера CORE. Подключение АСР может осуществляться к любому хосту с нодой CORE.

Утилита ecss-copycdr

В определенных ситуациях будет удобен метод, когда FTP-сервер развернут в системе ACP, хост с ECSS-10 передает CDR на сервер FTP-системы ACP.
В данном варианте хост ECSS-10 выступает в роли FTP-клиента, который передает файлы на удаленный FTP-сервер, при необходимости удаляет успешно переданные файлы.

Для работы в таком режиме на сервере необходимо настроить конфигурационный сервис ecss-copycdr.
При необходимости можно включить автоматическую выгрузку cdr в определенное время, для это нужно настроить утилиту ecss-copycdr.timer.

Настройка сервиса ecss-copycdr

Ecss-copycdr — утилита для переноса файлов между FTP-серверами.
Используется для копирования CDR-записей с исходного сервера на сторонний.

При первичной установке ecss-node у пользователя спросит хочет ли он установить сервис ecss-copycdr.

После согласия установки появится очередное окно с предложением ввести IP адрес сервера FTP, с которого будут собираться cdr.

После предложат ввести протокол передачи: FTP или SFTP.

Далее нужно ввести порт FTP-сервера.

Введите директорию на FTP-сервере, из которой будут передаваться cdr-записи.

Введите логин для входа на FTP-сервер.

Введите пароль для входа на FTP-сервер.

Введите IP адрес FTP-сервера, на который нужно передавать cdr-записи.

После чего предложат ввести протокол передачи: FTP или SFTP.

Введите порт для приема cdr-записей.

Введите директорию, в которой будут храниться все переданные cdr-записи.

Введите логин для входа на FTP-сервер приема cdr-записей.

Введите пароль для входа на FTP-сервер приема cdr-записей.

В случае если шаг с настройкой ecss-copycdr при установке ecss-node был пропущен, сервис всегда можно настроить через конфигурационный файл ecss-copycdr.conf, который располагается по пути /etc/ecss/.

Для работы необходимо указать адрес исходного FTP-сервера и каталог, с которого будет производиться копирование файлов, и адрес стороннего FTP-сервера и каталог, в который будут скопированы файлы.
Также для каждого сервера можно указать номер порта и тип используемого протокола: FTP/SFTP.

Эти данные необходимо указывать либо при каждом запуске утилиты, либо в файле конфигурации /etc/ecss/ecss-copycdr, в котором:

Имеется возможность удаления скопированных файлов с исходного сервера (по умолчанию скопированные файлы не удаляются, а к именам файлов добавляется метка "_transfered". Файлы с такой меткой в имени игнорируются при следующих копированиях). Опция -r, --remove указывает необходимость удаления данных.

Имеется возможность копирования пустых файлов, которые по умолчанию игнорируются (пустым файлом считается файл, в котором имеется только одна строка — заголовок csv-таблицы). Опция -e, --empty указывает необходимость переноса пустых файлов.

Опции можно также указывать либо при запуске, либо в файле конфигурации.

Запуск утилиты может осуществляться из консоли:

ecss-copycdr [ОПЦИИ] <src_host> <src_dir> <dest_host> <dest_dir>,

где

Для авторизации на сервере адреса должны быть указаны c логином и паролем в следующем формате: ftp://Login:Password@Host:Port.

Если работа должна осуществляться по другому протоколу, то указать его: sftp://Login:Password@Host:Port.

Опция -r, --remove указывает необходимость удаления данных из источника.
Опция -e, --empty указывает необходимость переноса пустых файлов.

Если заполнен файл конфигурации, то запуск может производиться без указания параметров:

ecss-copycdr [ОПЦИИ]

Запуск может осуществляться через systemd.

/lib/systemd/system/ecss-copycdr.service
/lib/systemd/system/ecss-copycdr.timer

При работе используются данные из файла конфигурации /etc/ecss/ecss-copycdr.

Настройка утилиты ecss-copycdr.timer

Для настройки времени запуска ecss-copycdr необходимо изменить в файле /lib/systemd/system/ecss-copycdr.timer строку с таймером: OnCalendar=*-*-*

Формат таймера: День Недели Год-Месяц-День Часы:Минуты:Секунды

Чтобы указать все значения используется звездочка, для перечисления значения используется запятая, для промежутка используется две точки(..).

Пример запуска каждый день в 00:00:

OnCalendar=*-*-* 

Пример запуска каждый день в 12:30:

 OnCalendar=*-*-* 12:30 

Пример запуска первые 3 дня месяца в 00:00:

 OnCalendar=*-*-1..3 

Пример запуска каждый понедельник и субботу в 12:00:

 OnCalendar=Mon,Sat *-*-* 12:00