...
Блок кода | ||||
---|---|---|---|---|
| ||||
package ru.bitel; import java.util.Iterator; import java.util.List; import bitel.billing.server.radius.CiscoVendor; import bitel.billing.server.radius.Vendors; import ru.bitel.bgbilling.kernel.network.radius.RadiusAttribute; import ru.bitel.bgbilling.kernel.network.radius.RadiusAttribute.RadiusAttributeString; import ru.bitel.bgbilling.kernel.network.radius.RadiusPacket; import ru.bitel.bgbilling.modules.voice.access.om.ProtocolHandler; import ru.bitel.bgbilling.modules.voice.api.common.bean.VoiceDevice; import ru.bitel.bgbilling.modules.voice.api.common.bean.VoiceDeviceType; import ru.bitel.bgbilling.modules.voice.radius.VoiceNas; import ru.bitel.bgbilling.server.util.Setup; import ru.bitel.common.ParameterMap; import ru.bitel.common.sql.ConnectionSet; public class Prot3 implements ProtocolHandler { @Override public void preprocessAccessRequest( RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet ) throws Exception { String prefix = "remote-media-address"; List<RadiusAttribute<?>> attributes = request.getAttributes( Vendors.CISCO, CiscoVendor.Cisco_AVPair ); if( attributes != null ) for( Iterator<RadiusAttribute<?>> it = attributes.iterator(); it.hasNext(); ) { RadiusAttributeString ra = (RadiusAttributeString) it.next(); String value = ra.getValue(); if( value.startsWith( prefix ) ) { if( value.endsWith( "77.82.17.33" ) ) { request.setOption( VoiceNas.OPERATOR_ACCOUNT, 1 ); break; } else if( value.endsWith( "172.36.104.61" ) ) { request.setOption( VoiceNas.OPERATOR_ACCOUNT, 2 ); break; } } } } @Override public void init( Setup setup1, int int2, VoiceDevice voiceDevice3, VoiceDeviceType voiceDeviceType4, ParameterMap parameterMap5 ) throws Exception { } @Override public void postprocessAccountingRequest( RadiusPacket radiusPacket1, RadiusPacket radiusPacket2, ConnectionSet connectionSet3 ) throws Exception { } @Override public void postprocessAccessRequest( RadiusPacket radiusPacket1, RadiusPacket radiusPacket2, ConnectionSet connectionSet3 ) throws Exception { } @Override public void preprocessAccountingRequest( RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet ) throws Exception { } } |
Сессии можно смотреть в отчетах на договоре(Ссылка).