Определение стоимости звонка VoiceIp

Материал из BiTel WiKi

Перейти к: навигация, поиск

Для версии 5.1.

Простой случай, в тарифе нет зависимости от объёма наработки.

import java.math.*;
import java.util.*;
 
import ru.bitel.bgbilling.common.*;
import ru.bitel.bgbilling.kernel.base.phone.server.*;
import ru.bitel.bgbilling.server.util.*;
import bitel.billing.common.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.tariff.*;
import bitel.billing.server.tariff.voice.calc.*;
 
Calendar startTime = new GregorianCalendar();
String toNum = "dddd";
int callType = 1;
int serviceId = 1;
int mid = 1;
 
//этот объект производит поиск направления по зонам и нужен при тарификации по зонам
//объект создаётся лишь один раз в контексте приложения при первом обращении
ZoneDestFinder zdf = ZoneDestFinder.getZoneFinder( con, mid );
 
List treeList = new ContractManager( con ).getRealtimeTariffTreeSet( cid, startTime, "voiceip", mid, true ).getTreeList( startTime );
 
for( TariffModuleTree tree : treeList )
{
    TariffRequest req = new TariffRequest();
 
    req.setRequestParam( "time", startTime );
    req.setRequestParam( "phone", toNum );
    req.setRequestParam( "sid", new Integer( getServiceId() ) );
    req.setRequestParam( "call_type", new Integer( getCallType() ) );
    req.setRequestParam( "zdf", zdf );
    req.setRequestParam( "costMapCache", costMapCache );
 
    tree.processRequest( req );
 
    Integer destCode = req.getResponseParam( "dest" );
    Float minCost = req.getResponseParam( "min_cost" );
    VoiceTariffConfig config = req.getResponseParam( "config" );
    Integer zone = req.getResponseParam( "zone" );
 
    if( req.wasAccepted() && destCode != null && minCost != null )
    {
         //ваш код
    }
}
Личные инструменты