{toc:maxLevel=3}
h1. Описание возможностей
В *Carbon Billing 5* по оператору связи возможно тарифицировать несколько видов взаиморасчетов:
* Услуги входящей связи
* Услуги исходящей связи
* Услуги транзита трафика
* Факт совершения вызова по всем типам трафика(инициирования и завершения вызова), количество звонков
{info}
Для расчёта инициирования и завершения вызова по времени звонков, а не по количеству совершенных вызовов воспользуйтесь [конструктором отчётов|Конструктор отчетов].
{info}
h1. Настройка услуг операторов
Оператор связи для обсчета звонка выбирается по транкам. В звонке должны быть заполнены поля:
* *SRC_CHAN* \- транк источника
* *DST_CHAN* \- транк назначения
{note}
При пустых полях SRC_CHAN и DST_CHAN звонок не будет посчитан у оператора связи.
{note}
Чтобы начать обсчет звонков на оператора связи, нужно:
# Включить [опцию|Глобальные настройки биллинга и оператора#Телефония] "*Взаиморасчеты телефонии: сторона А по DST*"
# Создать [операторов-партнёров|Агентские схемы и ведение филиалов#Создание оператора связи] в папке "Операторы связи"
!telephony_partner_isp_list.png|border=1!
# Создать [услуги|Услуги. IP Телефония] необходимых [типов|Тип трафика]
# [Загрузить в услуги цены|Использование экспорта и импорта csv и xlsx файлов с тарифами VOIP. Загрузка цен] на направления
# Подключить услуги вашему оператору и операторам-партнёрам
{info}Если требуется разделить в акте направления звонков по нескольким услугам (например, междугородний или международный трафик) , это можно сделать по статье "[Местная связь, Внутризоновая связь, Междугородняя и международная (дальняя) связь|CarbonBilling:Местная связь, Внутризоновая связь, Междугородняя и международная (дальняя) связь]"{info}
h2. Начисления по агентской схеме, расчет завершения вызова и расчет инициирования вызова
+Исходящие вызовы абонентов+ прошедшие с Вашей [номерной ёмкости|Пулы телефонных номеров] на транк другого оператора учитываются как +исходящие по агентской схеме+, а так же для расчета +инициирования вызова+
+Входящие вызовы абонентов+ прошедшие на Вашу [номерную ёмкость|Пулы телефонных номеров] с транка другого оператора учитываются как +входящие по агентской схеме+, а так же для расчета +завершения вызова+
{note}Услугу с типом "*Входящий*" необходимо создать и заполнить в ней встречающиеся в _CDR_ направления даже если вы не тарифицируете завершение вызова{note}
# Создайте услуги IP телефонии по инструкции "[CarbonBilling:Услуги. IP Телефония]", необходимо создать +две услуги+: с [типом трафика|CarbonBilling:Тип трафика] "Исходящий"и "Входящий".
#* *Исходящий*: необходима для расчетов по агентской схеме и расчета инициирования вызова
#* *Входящий*: необходима для расчета завершения вызова
# [Загрузите в них цены на направления|Использование экспорта и импорта csv и xlsx файлов с тарифами VOIP. Загрузка цен]
# Подключить эти услуги оператору, указав маску транка.
!telephony_partner_ist_edit_trunk.png|border=1,width=1000!
# Набор услуг телефонии будет выглядеть так:
#* Ваши услуги телефонии
!telephony_partner_ist_services.png|border=1,width=1000!
#* Услуги телефонии партнера
!telephony_partner_neighbor_services.png|border=1,width=1000!
h2. Транзитный трафик
Транзитным считается трафик прошедший через Вашу сеть, но не относящийся к Вашей [номерной ёмкости|Пулы телефонных номеров]. Прохождение через Вашу сеть определяется по транкам, которые должны быть настроены в услугах телефонии у операторов-партнёров (от кого и кому идет транзитный звонок). Вызовы пришедшие на транки Ваших партнёров, отразятся у них в расходе.
# Настройте оборудование. В настройках NAS [включите опцию|Настройка VOIP NAS#Дополнительно] "*Через АТС проходят транзитные звонки*"
# Настройте услуги. Для тарификации транзитного трафика абонентов необходимо [создать услугу телефонии|Услуги. IP Телефония] с типом "[Транзит|Тип трафика]".
!1.png|border=1,width=400!
# Загрузите в услугу [цены на направления|Использование экспорта и импорта csv и xlsx файлов с тарифами VOIP. Загрузка цен].
# Подключите услуги операторам-партнёрам. Заполните поле *"Маска trunk"*, значение соответствует маске оператора из CDR.
Пример cdr:
{code}
71110000001;72220000002;2018-02-12 10:00:00;2018-02-12 10:04:08;248;248;subscribers;Operator1
{code}
!2.png|border=0,width=600!
h2. Описание опций и параметров
* [Опция|Глобальные настройки биллинга и оператора#Телефония] "*Взаиморасчеты телефонии: сторона А по DST*" - при расчете звонка у оператора стороны *А* цена на направление будет найдена по полю DST, то есть по номеру назначения звонка.
Опция добавлена в биллинг для совместимости со старыми интеграциями агентской схемы. Изначально поиск направления на стороне оператора *А* происходил по номеру источника звонка - SRC. Если вы настраиваете агентскую схему впервые, включите опцию.
* *Маска trunk* \- В поле указываются маски для поиска транка. Можно указать несколько масок транка через запятую. Варианты масок транка:
** *default* \- под маску попадут все значения не совпавшие с остальными масками. Это будет оператор по умолчанию для всех остальных транков не отнесенных к кому-либо из операторов.
{code}
default
{code}
** *Строка* \- может содержать любые символы
{code}
TestTrunk#
{code}
** *Строка с регулярным выражением* \- допускает использовать конструкцию "*.\**" - любое количество любых символов
{code}
TestTrunk.*
{code}
** *Диапазон чисел* \- диапазон целых чисел, строка должна включать только цифры и символ "*\-*"
{code}
100-110
{code}
Если в маске транка есть буквы, то не получится использовать диапазон. Нужно будет перечислить символы через запятую:
{code}
TestTrunk1,TestTrunk2,TestTrunk3
{code}
h2. Алгоритм расчёта звонка
Звонок рассчитывается по следующему алгоритму:
# Поиск оператора связи. Ядро биллинга формирует набор из всех маскок транка оператора связи, независимо от [типа трафика|Тип трафика] в услугах. Маска транка может соответствовать только одному оператору.
{note}
Хотя маска транка указывается в услуге телефонии, при поиске оператора связи будут учтены маски транка из всех услуг оператора, независимо от направления звонка. Например, вы указали маску транка TestTrunk во входящей услуги трафика, а в исходящей оставили маску транка пустой. Теперь звонки всех направлений с маской транка TestTrunk будут учтены по этому оператору.
{note}
Звонок одновременно проходит обработку у двух оператор связи. Звонок приходит от источника - "Оператора стороны *A*" к назначению "Оператору стороны *B*". Поиск оператора происходит с помощью сопоставления маски транка с полями SRC_CHAN и DST_CHAN соответственно.
При этом начисления входящий и исходящих звонков проходят по опреатору-партнёру, а у транзитных звонков у обоих операторах.
# Поиск услуги телефонии внутри оператора связи
Услуга телефонии так же будет найдена по маске транка, только внутри оператора связи. На этом этапе будет учтено направление звонка.
# Далее звонок будет рассчитан по [алгоритму из статьи|CarbonBilling:Формат выгрузки#У абонента несколько услуг телефонии, по какой посчитается звонок?] по услугам с одинаковой маской транка и направлением.
h2. Отладка
h3. Как понять, что звонок был посчитан по агентской схеме?
Необходимо проверить поля в таблице VOIP_LOG по конкретному звонку.
При агенстской схеме звонок одновременно считается у двух операторов связи. В таблице VOIP_LOG задействованы поля:
* SRC_OPERATOR\_ - сторона источника - Оператор стороны A
* OPERATOR\_ - сторона назначения - Оператор стороны B
h4. Исходящие вызовы и инициирование вызова
В таблице 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
# По оператору-партнёру
h4. Входящие звонки и завершение вызова
В таблице 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
# По оператору-партнёру
h4. Транзит
В таблице 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
# По оператору из сети которого пришел вызов
# По оператору в чью сеть ушел вызов
h4. Особенности проводок
Если вы тарифицируете и минуты и факт завершения звонка, то по одному звонку будет две проводки для каждого оператора связи. Типы проводок:
* Стоимость вызова
* Инициирование вызова
h1. Описание возможностей
В *Carbon Billing 5* по оператору связи возможно тарифицировать несколько видов взаиморасчетов:
* Услуги входящей связи
* Услуги исходящей связи
* Услуги транзита трафика
* Факт совершения вызова по всем типам трафика(инициирования и завершения вызова), количество звонков
{info}
Для расчёта инициирования и завершения вызова по времени звонков, а не по количеству совершенных вызовов воспользуйтесь [конструктором отчётов|Конструктор отчетов].
{info}
h1. Настройка услуг операторов
Оператор связи для обсчета звонка выбирается по транкам. В звонке должны быть заполнены поля:
* *SRC_CHAN* \- транк источника
* *DST_CHAN* \- транк назначения
{note}
При пустых полях SRC_CHAN и DST_CHAN звонок не будет посчитан у оператора связи.
{note}
Чтобы начать обсчет звонков на оператора связи, нужно:
# Включить [опцию|Глобальные настройки биллинга и оператора#Телефония] "*Взаиморасчеты телефонии: сторона А по DST*"
# Создать [операторов-партнёров|Агентские схемы и ведение филиалов#Создание оператора связи] в папке "Операторы связи"
!telephony_partner_isp_list.png|border=1!
# Создать [услуги|Услуги. IP Телефония] необходимых [типов|Тип трафика]
# [Загрузить в услуги цены|Использование экспорта и импорта csv и xlsx файлов с тарифами VOIP. Загрузка цен] на направления
# Подключить услуги вашему оператору и операторам-партнёрам
{info}Если требуется разделить в акте направления звонков по нескольким услугам (например, междугородний или международный трафик) , это можно сделать по статье "[Местная связь, Внутризоновая связь, Междугородняя и международная (дальняя) связь|CarbonBilling:Местная связь, Внутризоновая связь, Междугородняя и международная (дальняя) связь]"{info}
h2. Начисления по агентской схеме, расчет завершения вызова и расчет инициирования вызова
+Исходящие вызовы абонентов+ прошедшие с Вашей [номерной ёмкости|Пулы телефонных номеров] на транк другого оператора учитываются как +исходящие по агентской схеме+, а так же для расчета +инициирования вызова+
+Входящие вызовы абонентов+ прошедшие на Вашу [номерную ёмкость|Пулы телефонных номеров] с транка другого оператора учитываются как +входящие по агентской схеме+, а так же для расчета +завершения вызова+
{note}Услугу с типом "*Входящий*" необходимо создать и заполнить в ней встречающиеся в _CDR_ направления даже если вы не тарифицируете завершение вызова{note}
# Создайте услуги IP телефонии по инструкции "[CarbonBilling:Услуги. IP Телефония]", необходимо создать +две услуги+: с [типом трафика|CarbonBilling:Тип трафика] "Исходящий"и "Входящий".
#* *Исходящий*: необходима для расчетов по агентской схеме и расчета инициирования вызова
#* *Входящий*: необходима для расчета завершения вызова
# [Загрузите в них цены на направления|Использование экспорта и импорта csv и xlsx файлов с тарифами VOIP. Загрузка цен]
# Подключить эти услуги оператору, указав маску транка.
!telephony_partner_ist_edit_trunk.png|border=1,width=1000!
# Набор услуг телефонии будет выглядеть так:
#* Ваши услуги телефонии
!telephony_partner_ist_services.png|border=1,width=1000!
#* Услуги телефонии партнера
!telephony_partner_neighbor_services.png|border=1,width=1000!
h2. Транзитный трафик
Транзитным считается трафик прошедший через Вашу сеть, но не относящийся к Вашей [номерной ёмкости|Пулы телефонных номеров]. Прохождение через Вашу сеть определяется по транкам, которые должны быть настроены в услугах телефонии у операторов-партнёров (от кого и кому идет транзитный звонок). Вызовы пришедшие на транки Ваших партнёров, отразятся у них в расходе.
# Настройте оборудование. В настройках NAS [включите опцию|Настройка VOIP NAS#Дополнительно] "*Через АТС проходят транзитные звонки*"
# Настройте услуги. Для тарификации транзитного трафика абонентов необходимо [создать услугу телефонии|Услуги. IP Телефония] с типом "[Транзит|Тип трафика]".
!1.png|border=1,width=400!
# Загрузите в услугу [цены на направления|Использование экспорта и импорта csv и xlsx файлов с тарифами VOIP. Загрузка цен].
# Подключите услуги операторам-партнёрам. Заполните поле *"Маска trunk"*, значение соответствует маске оператора из CDR.
Пример cdr:
{code}
71110000001;72220000002;2018-02-12 10:00:00;2018-02-12 10:04:08;248;248;subscribers;Operator1
{code}
!2.png|border=0,width=600!
h2. Описание опций и параметров
* [Опция|Глобальные настройки биллинга и оператора#Телефония] "*Взаиморасчеты телефонии: сторона А по DST*" - при расчете звонка у оператора стороны *А* цена на направление будет найдена по полю DST, то есть по номеру назначения звонка.
Опция добавлена в биллинг для совместимости со старыми интеграциями агентской схемы. Изначально поиск направления на стороне оператора *А* происходил по номеру источника звонка - SRC. Если вы настраиваете агентскую схему впервые, включите опцию.
* *Маска trunk* \- В поле указываются маски для поиска транка. Можно указать несколько масок транка через запятую. Варианты масок транка:
** *default* \- под маску попадут все значения не совпавшие с остальными масками. Это будет оператор по умолчанию для всех остальных транков не отнесенных к кому-либо из операторов.
{code}
default
{code}
** *Строка* \- может содержать любые символы
{code}
TestTrunk#
{code}
** *Строка с регулярным выражением* \- допускает использовать конструкцию "*.\**" - любое количество любых символов
{code}
TestTrunk.*
{code}
** *Диапазон чисел* \- диапазон целых чисел, строка должна включать только цифры и символ "*\-*"
{code}
100-110
{code}
Если в маске транка есть буквы, то не получится использовать диапазон. Нужно будет перечислить символы через запятую:
{code}
TestTrunk1,TestTrunk2,TestTrunk3
{code}
h2. Алгоритм расчёта звонка
Звонок рассчитывается по следующему алгоритму:
# Поиск оператора связи. Ядро биллинга формирует набор из всех маскок транка оператора связи, независимо от [типа трафика|Тип трафика] в услугах. Маска транка может соответствовать только одному оператору.
{note}
Хотя маска транка указывается в услуге телефонии, при поиске оператора связи будут учтены маски транка из всех услуг оператора, независимо от направления звонка. Например, вы указали маску транка TestTrunk во входящей услуги трафика, а в исходящей оставили маску транка пустой. Теперь звонки всех направлений с маской транка TestTrunk будут учтены по этому оператору.
{note}
Звонок одновременно проходит обработку у двух оператор связи. Звонок приходит от источника - "Оператора стороны *A*" к назначению "Оператору стороны *B*". Поиск оператора происходит с помощью сопоставления маски транка с полями SRC_CHAN и DST_CHAN соответственно.
При этом начисления входящий и исходящих звонков проходят по опреатору-партнёру, а у транзитных звонков у обоих операторах.
# Поиск услуги телефонии внутри оператора связи
Услуга телефонии так же будет найдена по маске транка, только внутри оператора связи. На этом этапе будет учтено направление звонка.
# Далее звонок будет рассчитан по [алгоритму из статьи|CarbonBilling:Формат выгрузки#У абонента несколько услуг телефонии, по какой посчитается звонок?] по услугам с одинаковой маской транка и направлением.
h2. Отладка
h3. Как понять, что звонок был посчитан по агентской схеме?
Необходимо проверить поля в таблице VOIP_LOG по конкретному звонку.
При агенстской схеме звонок одновременно считается у двух операторов связи. В таблице VOIP_LOG задействованы поля:
* SRC_OPERATOR\_ - сторона источника - Оператор стороны A
* OPERATOR\_ - сторона назначения - Оператор стороны B
h4. Исходящие вызовы и инициирование вызова
В таблице 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
# По оператору-партнёру
h4. Входящие звонки и завершение вызова
В таблице 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
# По оператору-партнёру
h4. Транзит
В таблице 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
# По оператору из сети которого пришел вызов
# По оператору в чью сеть ушел вызов
h4. Особенности проводок
Если вы тарифицируете и минуты и факт завершения звонка, то по одному звонку будет две проводки для каждого оператора связи. Типы проводок:
* Стоимость вызова
* Инициирование вызова