Новая схема
Тарификация стоимости звонка для оператора осуществляется во время тарификации звонка клиента. Для этого используется узел тарифа Тарифицировать оператора, в котором указывается ссылка на тариф оператора. Из него извлекается подходящая цена и правила округления.
Чтобы разделить тарификацию на разных операторов используется узел Оператор. Операторы задаются в конфигурации модуля:
#Названиеoperator.1.title=VTK#Код(id) договора-оператораoperator.1.cid=135121#Наработку по оператору c кодом услуги 813 класть в наработку договора с кодом услуги 813operator.1.account.813=813operator.2.title=Совинтелoperator.2.cid=135122#Всю наработку по оператору класть в наработку договора с кодом услуги 4operator.1.account.4=allДля привязки звонка к оператору необходимо устанавливать его код в скрипте предобработки запроса наса:
import bitel.billing.server.radius.*;prefix = "remote-media-address";length = prefix.length();attributes = request.getVendorAttributes( Vendors.CISCO, CiscoVendor.Cisco_AVPair );if( attributes != null )for( it = attributes.iterator(); it.hasNext(); ){ ra = it.next(); value = ra.getStringValue(); if( value.startsWith( prefix ) ) { if( value.endsWith( "77.82.17.33" ) ) { request.setOption( "operator", 1 ); break; } else if( value.endsWith( "172.36.104.61" ) ) { request.setOption( "operator", 2 ); break; } }}Т.е. в зависимости от содержимого пакета нужно установить request.setOption( "operator", <код оператора> ).
Также следует учитывать, что скрипт предобработки запроса отрабатывает на каждом запросе, при этом установка кода оператора отрабатывает на запросе аутентификации и на Stop-пакете. Если установка произойдет оба раза, то запомнится значение обработки Stop-пакета.
Код оператора сохраняется в звонке, так что при переобсчете ветка Оператор также будет учитываться.
Построение тарифа для оператора почти не отличается от построения тарифа для абонента, за тем исключением, что в тарифе оператора необязательно указывать направление.
Для создания наработки на операторских договорах необходимо в конфигурации модуля указать привязку: код договора - услуги, которые принадлежат этому оператору и указать код услуги модуля, на который будет ложиться наработка в договоре оператора.
#Пример конфигурации для договора оператора с кодом (id договора) 455#Код договора, на который будет ложиться наработкаoperator.1.cid=455#Коды абонетских услуг, наработка по которым будет суммироваться и ложится в наработку с кодом 4operator.1.account.4=10,11#Или же можно указать звонки оператора с любым кодом услуги#operator.1.account.4=allДля того чтобы наработка на договоре оператора обсчитывалась нужно настроить задачу планировщика Установка балансов VoiceIP. При выполнении задача берет месяц предыдущего от текущего часа и производит установку балансов на этот месяц.