/* * TeleStax, Open Source Cloud Communications Copyright 2012. * and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.mobicents.protocols.ss7.tools.simulator.tests.ati; import org.apache.log4j.Level; import org.mobicents.protocols.ss7.map.api.MAPDialog; import org.mobicents.protocols.ss7.map.api.MAPDialogListener; import org.mobicents.protocols.ss7.map.api.MAPException; import org.mobicents.protocols.ss7.map.api.MAPProvider; import org.mobicents.protocols.ss7.map.api.errors.MAPErrorCode; import org.mobicents.protocols.ss7.map.api.errors.MAPErrorMessage; import org.mobicents.protocols.ss7.map.api.errors.UnknownSubscriberDiagnostic; import org.mobicents.protocols.ss7.map.api.primitives.AddressNature; import org.mobicents.protocols.ss7.map.api.primitives.CellGlobalIdOrServiceAreaIdFixedLength; import org.mobicents.protocols.ss7.map.api.primitives.CellGlobalIdOrServiceAreaIdOrLAI; import org.mobicents.protocols.ss7.map.api.primitives.IMEI; import org.mobicents.protocols.ss7.map.api.primitives.IMSI; import org.mobicents.protocols.ss7.map.api.primitives.ISDNAddressString; import org.mobicents.protocols.ss7.map.api.primitives.NetworkResource; import org.mobicents.protocols.ss7.map.api.primitives.NumberingPlan; import org.mobicents.protocols.ss7.map.api.service.mobility.MAPDialogMobility; import org.mobicents.protocols.ss7.map.api.service.mobility.MAPServiceMobilityListener; import org.mobicents.protocols.ss7.map.api.service.mobility.authentication.AuthenticationFailureReportRequest; import org.mobicents.protocols.ss7.map.api.service.mobility.authentication.AuthenticationFailureReportResponse; import org.mobicents.protocols.ss7.map.api.service.mobility.authentication.SendAuthenticationInfoRequest; import org.mobicents.protocols.ss7.map.api.service.mobility.authentication.SendAuthenticationInfoResponse; import org.mobicents.protocols.ss7.map.api.service.mobility.faultRecovery.ForwardCheckSSIndicationRequest; import org.mobicents.protocols.ss7.map.api.service.mobility.faultRecovery.ResetRequest; import org.mobicents.protocols.ss7.map.api.service.mobility.faultRecovery.RestoreDataRequest; import org.mobicents.protocols.ss7.map.api.service.mobility.faultRecovery.RestoreDataResponse; import org.mobicents.protocols.ss7.map.api.service.mobility.imei.CheckImeiRequest; import org.mobicents.protocols.ss7.map.api.service.mobility.imei.CheckImeiResponse; import org.mobicents.protocols.ss7.map.api.service.mobility.locationManagement.CancelLocationRequest; import org.mobicents.protocols.ss7.map.api.service.mobility.locationManagement.CancelLocationResponse; import org.mobicents.protocols.ss7.map.api.service.mobility.locationManagement.PurgeMSRequest; import org.mobicents.protocols.ss7.map.api.service.mobility.locationManagement.PurgeMSResponse; import org.mobicents.protocols.ss7.map.api.service.mobility.locationManagement.SendIdentificationRequest; import org.mobicents.protocols.ss7.map.api.service.mobility.locationManagement.SendIdentificationResponse; import org.mobicents.protocols.ss7.map.api.service.mobility.locationManagement.UpdateGprsLocationRequest; import org.mobicents.protocols.ss7.map.api.service.mobility.locationManagement.UpdateGprsLocationResponse; import org.mobicents.protocols.ss7.map.api.service.mobility.locationManagement.UpdateLocationRequest; import org.mobicents.protocols.ss7.map.api.service.mobility.locationManagement.UpdateLocationResponse; import org.mobicents.protocols.ss7.map.api.service.mobility.oam.ActivateTraceModeRequest_Mobility; import org.mobicents.protocols.ss7.map.api.service.mobility.oam.ActivateTraceModeResponse_Mobility; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.AnyTimeInterrogationRequest; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.AnyTimeInterrogationResponse; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.AnyTimeSubscriptionInterrogationRequest; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.AnyTimeSubscriptionInterrogationResponse; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.DomainType; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.GPRSMSClass; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.GeodeticInformation; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.GeographicalInformation; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.LocationInformation; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.LocationInformationEPS; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.LocationInformationGPRS; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.LocationNumberMap; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.MNPInfoRes; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.MSClassmark2; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.NotReachableReason; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.NumberPortabilityStatus; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.PSSubscriberState; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.PSSubscriberStateChoice; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.ProvideSubscriberInfoRequest; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.ProvideSubscriberInfoResponse; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.RAIdentity; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.RequestedInfo; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.RouteingNumber; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.SubscriberInfo; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.SubscriberState; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.SubscriberStateChoice; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.UserCSGInformation; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.DeleteSubscriberDataRequest; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.DeleteSubscriberDataResponse; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.InsertSubscriberDataRequest; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.InsertSubscriberDataResponse; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.LSAIdentity; import org.mobicents.protocols.ss7.tcap.asn.comp.Problem; import org.mobicents.protocols.ss7.tools.simulator.Stoppable; import org.mobicents.protocols.ss7.tools.simulator.common.TesterBase; import org.mobicents.protocols.ss7.tools.simulator.level3.MapMan; import org.mobicents.protocols.ss7.tools.simulator.management.TesterHost; /** * * @author sergey vetyutnev * */ public class TestAtiServerMan extends TesterBase implements TestAtiServerManMBean, Stoppable, MAPDialogListener, MAPServiceMobilityListener { public static String SOURCE_NAME = "TestAtiServer"; private final String name; private MapMan mapMan; private boolean isStarted = false; private int countAtiReq = 0; private int countAtiResp = 0; private String currentRequestDef = ""; private boolean needSendSend = false; private boolean needSendClose = false; private int countErrSent = 0; public TestAtiServerMan() { super(SOURCE_NAME); this.name = "???"; } public TestAtiServerMan(String name) { super(SOURCE_NAME); this.name = name; } public void setTesterHost(TesterHost testerHost) { this.testerHost = testerHost; } public void setMapMan(MapMan val) { this.mapMan = val; } @Override public String getCurrentRequestDef() { return "LastDialog: " + currentRequestDef; } @Override public ATIReaction getATIReaction() { return this.testerHost.getConfigurationData().getTestAtiServerConfigurationData().getATIReaction(); } @Override public String getATIReaction_Value() { return this.testerHost.getConfigurationData().getTestAtiServerConfigurationData().getATIReaction().toString(); } @Override public void setATIReaction(ATIReaction val) { this.testerHost.getConfigurationData().getTestAtiServerConfigurationData().setATIReaction(val); this.testerHost.markStore(); } @Override public void putATIReaction(String val) { ATIReaction x = ATIReaction.createInstance(val); if (x != null) this.setATIReaction(x); } @Override public String getState() { StringBuilder sb = new StringBuilder(); sb.append("<html>"); sb.append(SOURCE_NAME); sb.append(": "); sb.append("<br>Count: countAtiReq-"); sb.append(countAtiReq); sb.append(", countAtiResp-"); sb.append(countAtiResp); sb.append(", countErrSent-"); sb.append(countErrSent); sb.append("</html>"); return sb.toString(); } public boolean start() { this.countAtiReq = 0; this.countAtiResp = 0; this.countErrSent = 0; MAPProvider mapProvider = this.mapMan.getMAPStack().getMAPProvider(); mapProvider.getMAPServiceMobility().acivate(); mapProvider.getMAPServiceMobility().addMAPServiceListener(this); mapProvider.addMAPDialogListener(this); this.testerHost.sendNotif(SOURCE_NAME, "ATI Server has been started", "", Level.INFO); isStarted = true; return true; } @Override public void stop() { MAPProvider mapProvider = this.mapMan.getMAPStack().getMAPProvider(); isStarted = false; mapProvider.getMAPServiceMobility().deactivate(); mapProvider.getMAPServiceMobility().removeMAPServiceListener(this); mapProvider.removeMAPDialogListener(this); this.testerHost.sendNotif(SOURCE_NAME, "ATI Server has been stopped", "", Level.INFO); } @Override public void execute() { } @Override public void onAnyTimeInterrogationRequest(AnyTimeInterrogationRequest ind) { if (!isStarted) return; this.countAtiReq++; MAPProvider mapProvider = this.mapMan.getMAPStack().getMAPProvider(); MAPDialogMobility curDialog = ind.getMAPDialog(); long invokeId = ind.getInvokeId(); String uData = this.createAtiData(ind); this.testerHost.sendNotif(SOURCE_NAME, "Rcvd: atiReq", uData, Level.DEBUG); RequestedInfo ri = ind.getRequestedInfo(); try { ATIReaction atiReaction = this.testerHost.getConfigurationData().getTestAtiServerConfigurationData() .getATIReaction(); switch (atiReaction.intValue()) { case ATIReaction.VAL_RETURN_SUCCESS: LocationInformation locationInformation = null; LocationInformationGPRS locationInformationGPRS = null; if (ri.getLocationInformation()) { if (ri.getCurrentLocation()) { // TODO: process this if needed } int ageOfLocationInformation = 5; CellGlobalIdOrServiceAreaIdOrLAI cellGlobalIdOrServiceAreaIdOrLAI = null; GeographicalInformation geographicalInformation = mapProvider.getMAPParameterFactory().createGeographicalInformation(55.55, 44.44, 0.01); boolean saiPresent = false; GeodeticInformation geodeticInformation = null; boolean currentLocationRetrieved = false; if (ri.getRequestedDomain() == null || ri.getRequestedDomain() == DomainType.csDomain) { ISDNAddressString vlrNumber = mapProvider.getMAPParameterFactory().createISDNAddressString(AddressNature.international_number, NumberingPlan.ISDN, "5555555666"); LocationNumberMap locationNumber = null; LSAIdentity selectedLSAId = null; ISDNAddressString mscNumber = null; LocationInformationEPS locationInformationEPS = null; UserCSGInformation userCSGInformation = null; int mcc = 250; int mnc = 1; int lac = 32000; int cellId = 221; CellGlobalIdOrServiceAreaIdFixedLength cellGlobalIdOrServiceAreaIdFixedLength = mapProvider.getMAPParameterFactory() .createCellGlobalIdOrServiceAreaIdFixedLength(mcc, mnc, lac, cellId); cellGlobalIdOrServiceAreaIdOrLAI = mapProvider.getMAPParameterFactory().createCellGlobalIdOrServiceAreaIdOrLAI( cellGlobalIdOrServiceAreaIdFixedLength); locationInformation = mapProvider.getMAPParameterFactory().createLocationInformation(ageOfLocationInformation, geographicalInformation, vlrNumber, locationNumber, cellGlobalIdOrServiceAreaIdOrLAI, null, selectedLSAId, mscNumber, geodeticInformation, currentLocationRetrieved, saiPresent, locationInformationEPS, userCSGInformation); } else { RAIdentity routeingAreaIdentity = null; ISDNAddressString sgsnNumber = mapProvider.getMAPParameterFactory().createISDNAddressString(AddressNature.international_number, NumberingPlan.ISDN, "5555555777"); LSAIdentity selectedLSAIdentity = null; locationInformationGPRS = mapProvider.getMAPParameterFactory().createLocationInformationGPRS(cellGlobalIdOrServiceAreaIdOrLAI, routeingAreaIdentity, geographicalInformation, sgsnNumber, selectedLSAIdentity, null, saiPresent, geodeticInformation, currentLocationRetrieved, ageOfLocationInformation); } } SubscriberState subscriberState = null; PSSubscriberState psSubscriberState = null; if (ri.getSubscriberState()) { // if // (this.testerHost.getConfigurationData().getTestAtiServerConfigurationData().getAtiServerType().intValue() // == AtiServerType.VALUE_VLR) { if (ri.getRequestedDomain() == null || ri.getRequestedDomain() == DomainType.csDomain) { subscriberState = mapProvider.getMAPParameterFactory().createSubscriberState(SubscriberStateChoice.assumedIdle, null); } else { psSubscriberState = mapProvider.getMAPParameterFactory().createPSSubscriberState(PSSubscriberStateChoice.psDetached, null, null); } } IMEI imei = null; if (ri.getImei()) { imei = mapProvider.getMAPParameterFactory().createIMEI("123456789012345"); } MSClassmark2 msClassmark2 = null; GPRSMSClass gprsMSClass = null; if (ri.getMsClassmark()) { // TODO: implement classmark for GSM and GPRS if (ri.getRequestedDomain() == null || ri.getRequestedDomain() == DomainType.csDomain) { // msClassmark2 = // mapProvider.getMAPParameterFactory().createMSClassmark2(data); } else { // gprsMSClass = // mapProvider.getMAPParameterFactory().createGPRSMSClass(mSNetworkCapability, // mSRadioAccessCapability); } } MNPInfoRes mnpInfoRes = null; if (ri.getMnpRequestedInfo()) { RouteingNumber routeingNumber = mapProvider.getMAPParameterFactory().createRouteingNumber("5555555888"); IMSI imsi = null; ISDNAddressString msisdn = null; NumberPortabilityStatus numberPortabilityStatus = null; mnpInfoRes = mapProvider.getMAPParameterFactory().createMNPInfoRes(routeingNumber, imsi, msisdn, numberPortabilityStatus, null); } SubscriberInfo subscriberInfo = mapProvider.getMAPParameterFactory().createSubscriberInfo(locationInformation, subscriberState, null, locationInformationGPRS, psSubscriberState, imei, msClassmark2, gprsMSClass, mnpInfoRes); curDialog.addAnyTimeInterrogationResponse(invokeId, subscriberInfo, null); this.countAtiResp++; uData = this.createAtiRespData(curDialog.getLocalDialogId()); this.testerHost.sendNotif(SOURCE_NAME, "Sent: atiResp", uData, Level.DEBUG); break; case ATIReaction.VAL_RETURN_SUCCESS_SUBSCRIBER_STATE: subscriberState = mapProvider.getMAPParameterFactory().createSubscriberState( SubscriberStateChoice.netDetNotReachable, NotReachableReason.notRegistered); subscriberInfo = mapProvider.getMAPParameterFactory().createSubscriberInfo(null, subscriberState, null, null, null, null, null, null, null); curDialog.addAnyTimeInterrogationResponse(invokeId, subscriberInfo, null); this.countAtiResp++; uData = this.createAtiRespData(curDialog.getLocalDialogId()); this.testerHost.sendNotif(SOURCE_NAME, "Sent: atiRespSubscriberState", uData, Level.DEBUG); break; case ATIReaction.VAL_ERROR_UNKNOWN_SUBSCRIBER: MAPErrorMessage mapErrorMessage = null; // MAPUserAbortChoice mapUserAbortChoice = new MAPUserAbortChoiceImpl(); // mapUserAbortChoice.setProcedureCancellationReason(ProcedureCancellationReason.handoverCancellation); // curDialog.abort(mapUserAbortChoice); // return; mapErrorMessage = mapProvider.getMAPErrorMessageFactory().createMAPErrorMessageUnknownSubscriber(null, UnknownSubscriberDiagnostic.imsiUnknown); curDialog.sendErrorComponent(invokeId, mapErrorMessage); this.countErrSent++; uData = this.createErrorData(curDialog.getLocalDialogId(), (int) invokeId, mapErrorMessage); this.testerHost.sendNotif(SOURCE_NAME, "Sent: errUnknSubs", uData, Level.DEBUG); break; case ATIReaction.VAL_DATA_MISSING: mapErrorMessage = mapProvider.getMAPErrorMessageFactory().createMAPErrorMessageExtensionContainer( (long) MAPErrorCode.dataMissing, null); curDialog.sendErrorComponent(invokeId, mapErrorMessage); this.countErrSent++; uData = this.createErrorData(curDialog.getLocalDialogId(), (int) invokeId, mapErrorMessage); this.testerHost.sendNotif(SOURCE_NAME, "Sent: errDataMissing", uData, Level.DEBUG); break; case ATIReaction.VAL_ERROR_SYSTEM_FAILURE: mapErrorMessage = mapProvider.getMAPErrorMessageFactory().createMAPErrorMessageSystemFailure( (long) curDialog.getApplicationContext().getApplicationContextVersion().getVersion(), NetworkResource.hlr, null, null); curDialog.sendErrorComponent(invokeId, mapErrorMessage); this.countErrSent++; uData = this.createErrorData(curDialog.getLocalDialogId(), (int) invokeId, mapErrorMessage); this.testerHost.sendNotif(SOURCE_NAME, "Sent: errSysFail", uData, Level.DEBUG); break; } this.needSendClose = true; } catch (MAPException e) { this.testerHost.sendNotif(SOURCE_NAME, "Exception when invoking addAnyTimeInterrogationResponse() : " + e.getMessage(), e, Level.ERROR); } } private String createAtiData(AnyTimeInterrogationRequest ind) { StringBuilder sb = new StringBuilder(); sb.append("dialogId="); sb.append(ind.getMAPDialog().getLocalDialogId()); sb.append(",\natiReq="); sb.append(ind); sb.append(",\nRemoteAddress="); sb.append(ind.getMAPDialog().getRemoteAddress()); sb.append(",\nLocalAddress="); sb.append(ind.getMAPDialog().getLocalAddress()); return sb.toString(); } private String createAtiRespData(long dialogId) { StringBuilder sb = new StringBuilder(); sb.append("dialogId="); sb.append(dialogId); return sb.toString(); } private String createErrorData(long dialogId, int invokeId, MAPErrorMessage mapErrorMessage) { StringBuilder sb = new StringBuilder(); sb.append("dialogId="); sb.append(dialogId); sb.append(",\n invokeId="); sb.append(invokeId); sb.append(",\n mapErrorMessage="); sb.append(mapErrorMessage); sb.append(",\n"); return sb.toString(); } @Override public void onRejectComponent(MAPDialog mapDialog, Long invokeId, Problem problem, boolean isLocalOriginated) { super.onRejectComponent(mapDialog, invokeId, problem, isLocalOriginated); if (isLocalOriginated) needSendClose = true; } @Override public void onDialogDelimiter(MAPDialog mapDialog) { try { if (needSendSend) { needSendSend = false; mapDialog.send(); return; } } catch (Exception e) { this.testerHost.sendNotif(SOURCE_NAME, "Exception when invoking send() : " + e.getMessage(), e, Level.ERROR); return; } try { if (needSendClose) { needSendClose = false; mapDialog.close(false); return; } } catch (Exception e) { this.testerHost.sendNotif(SOURCE_NAME, "Exception when invoking close() : " + e.getMessage(), e, Level.ERROR); return; } } @Override public void onActivateTraceModeRequest_Mobility(ActivateTraceModeRequest_Mobility arg0) { // TODO Auto-generated method stub } @Override public void onActivateTraceModeResponse_Mobility(ActivateTraceModeResponse_Mobility arg0) { // TODO Auto-generated method stub } @Override public void onAnyTimeInterrogationResponse(AnyTimeInterrogationResponse arg0) { // TODO Auto-generated method stub } public void onAnyTimeSubscriptionInterrogationRequest(AnyTimeSubscriptionInterrogationRequest request) { } public void onAnyTimeSubscriptionInterrogationResponse(AnyTimeSubscriptionInterrogationResponse response) { } @Override public void onCancelLocationRequest(CancelLocationRequest arg0) { // TODO Auto-generated method stub } @Override public void onCancelLocationResponse(CancelLocationResponse arg0) { // TODO Auto-generated method stub } @Override public void onCheckImeiRequest(CheckImeiRequest arg0) { // TODO Auto-generated method stub } @Override public void onCheckImeiResponse(CheckImeiResponse arg0) { // TODO Auto-generated method stub } @Override public void onDeleteSubscriberDataRequest(DeleteSubscriberDataRequest arg0) { // TODO Auto-generated method stub } @Override public void onDeleteSubscriberDataResponse(DeleteSubscriberDataResponse arg0) { // TODO Auto-generated method stub } @Override public void onForwardCheckSSIndicationRequest(ForwardCheckSSIndicationRequest arg0) { // TODO Auto-generated method stub } @Override public void onInsertSubscriberDataRequest(InsertSubscriberDataRequest arg0) { // TODO Auto-generated method stub } @Override public void onInsertSubscriberDataResponse(InsertSubscriberDataResponse arg0) { // TODO Auto-generated method stub } @Override public void onProvideSubscriberInfoRequest(ProvideSubscriberInfoRequest arg0) { // TODO Auto-generated method stub } @Override public void onProvideSubscriberInfoResponse(ProvideSubscriberInfoResponse arg0) { // TODO Auto-generated method stub } @Override public void onPurgeMSRequest(PurgeMSRequest arg0) { // TODO Auto-generated method stub } @Override public void onPurgeMSResponse(PurgeMSResponse arg0) { // TODO Auto-generated method stub } @Override public void onResetRequest(ResetRequest arg0) { // TODO Auto-generated method stub } @Override public void onRestoreDataRequest(RestoreDataRequest arg0) { // TODO Auto-generated method stub } @Override public void onRestoreDataResponse(RestoreDataResponse arg0) { // TODO Auto-generated method stub } @Override public void onSendAuthenticationInfoRequest(SendAuthenticationInfoRequest arg0) { // TODO Auto-generated method stub } @Override public void onSendAuthenticationInfoResponse(SendAuthenticationInfoResponse arg0) { // TODO Auto-generated method stub } @Override public void onSendIdentificationRequest(SendIdentificationRequest arg0) { // TODO Auto-generated method stub } @Override public void onSendIdentificationResponse(SendIdentificationResponse arg0) { // TODO Auto-generated method stub } @Override public void onUpdateGprsLocationRequest(UpdateGprsLocationRequest arg0) { // TODO Auto-generated method stub } @Override public void onUpdateGprsLocationResponse(UpdateGprsLocationResponse arg0) { // TODO Auto-generated method stub } @Override public void onUpdateLocationRequest(UpdateLocationRequest arg0) { // TODO Auto-generated method stub } @Override public void onUpdateLocationResponse(UpdateLocationResponse arg0) { // TODO Auto-generated method stub } @Override public void onAuthenticationFailureReportRequest(AuthenticationFailureReportRequest arg0) { // TODO Auto-generated method stub } @Override public void onAuthenticationFailureReportResponse(AuthenticationFailureReportResponse arg0) { // TODO Auto-generated method stub } }