Описание возможностей
В Carbon Billing 5 по оператору связи возможно тарифицировать несколько видов взаиморасчетов:
- Услуги входящей связи
- Услуги исходящей связи
- Услуги транзита трафика
- Факт совершения вызова по всем типам трафика(инициирования и завершения вызова), количество звонков
| Для расчёта инициирования и завершения вызова по времени звонков, а не по количеству совершенных вызовов воспользуйтесь конструктором отчётов. |
Настройка услуг операторов
Оператор связи для обсчета звонка выбирается по транкам. В звонке должны быть заполнены поля:
- SRC_CHAN - транк источника
- DST_CHAN - транк назначения
| При пустых полях SRC_CHAN и DST_CHAN звонок не будет посчитан у оператора связи. |
Чтобы начать обсчет звонков на оператора связи, нужно:
- Включить опцию "Взаиморасчеты телефонии: сторона А по DST"
- Создать операторов-партнёров в папке "Операторы связи"

- Создать услуги необходимых типов
- Загрузить в услуги цены на направления
- Подключить услуги вашему оператору и операторам-партнёрам
| Если требуется разделить в акте направления звонков по нескольким услугам (например, междугородний или международный трафик) , это можно сделать по статье "Местная связь, Внутризоновая связь, Междугородняя и международная (дальняя) связь" |
Начисления по агентской схеме, расчет завершения вызова и расчет инициирования вызова
Исходящие вызовы абонентов прошедшие с Вашей номерной ёмкости на транк другого оператора учитываются как исходящие по агентской схеме, а так же для расчета инициирования вызова
Входящие вызовы абонентов прошедшие на Вашу номерную ёмкость с транка другого оператора учитываются как входящие по агентской схеме, а так же для расчета завершения вызова
| Услугу с типом "Входящий" необходимо создать и заполнить в ней направления, даже если вы не тарифицируете завершение вызова. |
- Создайте услуги IP телефонии по инструкции "Услуги. IP Телефония", необходимо создать две услуги: с типом трафика "Исходящий"и "Входящий".
- Исходящий: необходима для расчетов по агентской схеме и расчета инициирования вызова
- Входящий: необходима для расчета завершения вызова
- Загрузите в них цены на направления
- Подключить эти услуги оператору, указав маску транка.

- Набор услуг телефонии будет выглядеть так:
- Ваши услуги телефонии

- Услуги телефонии партнера

- Ваши услуги телефонии
Трафик будет посчитан у оператора-партнёра. В вашем операторе связи расход будет пустым. Настройка услуг телефонии в вашем операторе связи необходима для корректной работы выбора оператора связи для расчёта.
Транзитный трафик
Транзитным считается трафик прошедший через Вашу сеть, но не относящийся к Вашей номерной ёмкости. Прохождение через Вашу сеть определяется по транкам, которые должны быть настроены в услугах телефонии у операторов-партнёров (от кого и кому идет транзитный звонок). Вызовы пришедшие на транки Ваших партнёров, отразятся у них в расходе.
- Настройте оборудование. В настройках NAS включите опцию "Через АТС проходят транзитные звонки"
- Настройте услуги. Для тарификации транзитного трафика абонентов необходимо создать услугу телефонии с типом "Транзит".

- Загрузите в услугу цены на направления.
- Подключите услуги операторам-партнёрам. Заполните поле "Маска trunk", значение соответствует маске оператора из CDR.
Пример cdr:71110000001;72220000002;2018-02-12 10:00:00;2018-02-12 10:04:08;248;248;subscribers;Operator1

Описание опций и параметров
- Опция "Взаиморасчеты телефонии: сторона А по DST" - при расчете звонка у оператора стороны А цена на направление будет найдена по полю DST, то есть по номеру назначения звонка.
Опция добавлена в биллинг для совместимости со старыми интеграциями агентской схемы. Изначально поиск направления на стороне оператора А происходил по номеру источника звонка - SRC. Если вы настраиваете агентскую схему впервые, включите опцию. - Маска trunk - В поле указываются маски для поиска транка. Можно указать несколько масок транка через запятую. Варианты масок транка:
- default - под маску попадут все значения не совпавшие с остальными масками. Это будет оператор по умолчанию для всех остальных транков не отнесенных к кому-либо из операторов.
default - Строка - может содержать любые символы
TestTrunk#
- Строка с регулярным выражением - допускает использовать конструкцию ".*" - любое количество любых символов
TestTrunk.*
- Диапазон чисел - диапазон целых чисел, строка должна включать только цифры и символ "-"
100-110
Если в маске транка есть буквы, то не получится использовать диапазон. Нужно будет перечислить символы через запятую:
TestTrunk1,TestTrunk2,TestTrunk3
- default - под маску попадут все значения не совпавшие с остальными масками. Это будет оператор по умолчанию для всех остальных транков не отнесенных к кому-либо из операторов.
Алгоритм расчёта звонка
Звонок рассчитывается по следующему алгоритму:
- Поиск оператора связи. Ядро биллинга формирует набор из всех маскок транка оператора связи, независимо от типа трафика в услугах. Маска транка может соответствовать только одному оператору.

Хотя маска транка указывается в услуге телефонии, при поиске оператора связи будут учтены маски транка из всех услуг оператора, независимо от направления звонка. Например, вы указали маску транка TestTrunk во входящей услуги трафика, а в исходящей оставили маску транка пустой. Теперь звонки всех направлений с маской транка TestTrunk будут учтены по этому оператору. Звонок одновременно проходит обработку у двух оператор связи. Звонок приходит от источника - "Оператора стороны A" к назначению "Оператору стороны B". Поиск оператора происходит с помощью сопоставления маски транка с полями SRC_CHAN и DST_CHAN соответственно.
При этом начисления входящий и исходящих звонков проходят по опреатору-партнёру, а у транзитных звонков у обоих операторах. - Поиск услуги телефонии внутри оператора связи
Услуга телефонии так же будет найдена по маске транка, только внутри оператора связи. На этом этапе будет учтено направление звонка. - Далее звонок будет рассчитан по алгоритму из статьи по услугам с одинаковой маской транка и направлением.
Отладка
Как понять, что звонок был посчитан по агентской схеме?
Необходимо проверить поля в таблице VOIP_LOG по конкретному звонку.
При агенстской схеме звонок одновременно считается у двух операторов связи. В таблице VOIP_LOG задействованы поля:
- SRC_OPERATOR_ - сторона источника - Оператор стороны A
- OPERATOR_ - сторона назначения - Оператор стороны B
Исходящие вызовы и инициирование вызова
В таблице VOIP_LOG будут заполнены поля тарификации:
- Оператор стороны A
- SRC_OPERATOR_ID: ID вашего оператора
- Оператор стороны B
- OPERATOR_ID: ID оператора-партнёра
- OPERATOR_USLUGA_ID: ID услуги исходящей связи оператора-партёра
- OPERATOR_STEP_PRICE: стоимость шага тарификации услуги оператора-партнёра
- OPERATOR_V: длительность звонка учтённая у оператора-партёра
- VOIP_OPERATOR_COUNTER_ID: ID счётчика телефонного трафика оператора-партёра
- V_TYPE_ID: 2 - ID типа направления - Исходящий
В логе проводок ARCH_ACCOUNT_STACK должна быть запись с ARCH_ACCOUNT_STACK.LOG_ID=VOIP_LOG.ID
- По оператору-партнёру
Входящие звонки и завершение вызова
В таблице VOIP_LOG будут заполнены поля тарификации:
- Оператор стороны A
- SRC_OPERATOR_ID: ID оператора-партнёра
- SRC_OPERATOR_USLUGA_ID: ID услуги исходящей связи оператора-партнёра
- SRC_OPERATOR_STEP_PRICE: стоимость шага тарификации услуги в операторе-партнёре
- SRC_OPERATOR_V: длительность звонка учтённая у оператора-партёра
- SRC_VOIP_OPERATOR_COUNTER_ID: ID счётчика телефонного трафика оператора-партёра
- Оператор стороны B
- OPERATOR_ID: ID вашего оператора
- V_TYPE_ID: 2 - ID типа направления - Входящий
В логе проводок ARCH_ACCOUNT_STACK должна быть запись с ARCH_ACCOUNT_STACK.LOG_ID=VOIP_LOG.ID
- По оператору-партнёру
Транзит
В таблице VOIP_LOG должны быть заполнены поля тарификации оператора:
- Оператор стороны A
- SRC_OPERATOR_ID: ID оператора, из сети которого пришел вызов
- SRC_OPERATOR_USLUGA_ID: ID услуги оператора, из сети которого пришел вызов
- SRC_OPERATOR_STEP_PRICE: стоимость шага тарификации услуги оператора, из сети которого пришел вызов
- SRC_OPERATOR_V: длительность звонка учтённая у оператора, из сети которого пришел вызов
- SRC_VOIP_OPERATOR_COUNTER_ID: ID счётчика телефонного трафика оператора, из сети которого пришел вызов
- Оператор стороны B
- OPERATOR_ID: ID оператора, в сеть которого ушел вызов
- OPERATOR_USLUGA_ID: ID услуги оператора, в сеть которого ушел вызов
- OPERATOR_STEP_PRICE: стоимость шага тарификации услуги оператора, в сеть которого ушел вызов
- OPERATOR_V: длительность звонка учтённая у оператора, в сеть которого ушел вызов
- VOIP_OPERATOR_COUNTER_ID: ID счётчика телефонного трафика оператора, в сеть которого ушел вызов
- V_TYPE_ID: 3 - ID типа направления - Транзит
В логе проводок ARCH_ACCOUNT_STACK должны быть две записи с ARCH_ACCOUNT_STACK.LOG_ID=VOIP_LOG.ID
- По оператору из сети которого пришел вызов
- По оператору в чью сеть ушел вызов
Особенности проводок
Если вы тарифицируете и минуты и факт завершения звонка, то по одному звонку будет две проводки для каждого оператора связи. Типы проводок:
- Стоимость вызова
- Инициирование вызова
