/* * TeleStax, Open Source Cloud Communications * Copyright 2012, Telestax Inc 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.smsc.slee.services.mo; import javax.naming.Context; import javax.naming.InitialContext; import javax.slee.ActivityContextInterface; import javax.slee.Sbb; import javax.slee.SbbContext; import org.mobicents.protocols.ss7.map.api.MAPParameterFactory; import org.mobicents.protocols.ss7.map.api.MAPProvider; import org.mobicents.slee.resource.map.MAPContextInterfaceFactory; import org.mobicents.slee.resource.map.events.DialogAccept; import org.mobicents.slee.resource.map.events.DialogClose; import org.mobicents.slee.resource.map.events.DialogDelimiter; import org.mobicents.slee.resource.map.events.DialogNotice; import org.mobicents.slee.resource.map.events.DialogProviderAbort; import org.mobicents.slee.resource.map.events.DialogReject; import org.mobicents.slee.resource.map.events.DialogRelease; import org.mobicents.slee.resource.map.events.DialogRequest; import org.mobicents.slee.resource.map.events.DialogTimeout; import org.mobicents.slee.resource.map.events.DialogUserAbort; import org.mobicents.slee.resource.map.events.ErrorComponent; import org.mobicents.slee.resource.map.events.InvokeTimeout; import org.mobicents.slee.resource.map.events.RejectComponent; import org.mobicents.smsc.domain.SmscCongestionControl; import org.mobicents.smsc.domain.SmscStatAggregator; import org.mobicents.smsc.slee.services.submitsbb.SubmitCommonSbb; /** * * @author amit bhayani * @author servey vetyutnev * */ public abstract class MoCommonSbb extends SubmitCommonSbb implements Sbb { protected MAPContextInterfaceFactory mapAcif; protected MAPProvider mapProvider; protected MAPParameterFactory mapParameterFactory; protected SmscStatAggregator smscStatAggregator = SmscStatAggregator.getInstance(); protected SmscCongestionControl smscCongestionControl = SmscCongestionControl.getInstance(); public MoCommonSbb(String className) { super(className); } // ********* // SBB staff @Override public void setSbbContext(SbbContext sbbContext) { super.setSbbContext(sbbContext); try { Context ctx = (Context) new InitialContext().lookup("java:comp/env"); this.mapAcif = (MAPContextInterfaceFactory) ctx.lookup("slee/resources/map/2.0/acifactory"); this.mapProvider = (MAPProvider) ctx.lookup("slee/resources/map/2.0/provider"); this.mapParameterFactory = this.mapProvider.getMAPParameterFactory(); } catch (Exception ne) { logger.severe("Could not set SBB context:", ne); } } @Override public void sbbLoad() { super.sbbLoad(); } @Override public void sbbStore() { super.sbbStore(); } // ********* // Sbb ACI public abstract MoActivityContextInterface asSbbActivityContextInterface(ActivityContextInterface aci); // ********* // MAP Components Events public void onInvokeTimeout(InvokeTimeout evt, ActivityContextInterface aci) { this.logger.severe("\nRx : onInvokeTimeout" + evt); } public void onErrorComponent(ErrorComponent event, ActivityContextInterface aci) { this.logger.severe("\nRx : onErrorComponent " + event + " Dialog=" + event.getMAPDialog()); } public void onRejectComponent(RejectComponent event, ActivityContextInterface aci) { this.logger.severe("\nRx : onRejectComponent" + event); } // ********* // MAP Dialog Events public void onDialogDelimiter(DialogDelimiter evt, ActivityContextInterface aci) { if (logger.isFineEnabled()) { this.logger.fine("\nRx : onDialogDelimiter=" + evt); } } public void onDialogAccept(DialogAccept evt, ActivityContextInterface aci) { if (logger.isFineEnabled()) { this.logger.fine("\nRx : onDialogAccept=" + evt); } } public void onDialogReject(DialogReject evt, ActivityContextInterface aci) { this.logger.severe("\nRx : onDialogReject=" + evt); } public void onDialogUserAbort(DialogUserAbort evt, ActivityContextInterface aci) { this.logger.severe("\nRx : onDialogUserAbort=" + evt); } public void onDialogProviderAbort(DialogProviderAbort evt, ActivityContextInterface aci) { this.logger.severe("\nRx : onDialogProviderAbort=" + evt); } public void onDialogClose(DialogClose evt, ActivityContextInterface aci) { if (logger.isFineEnabled()) { this.logger.fine("\nRx : onDialogClose" + evt); } } public void onDialogNotice(DialogNotice evt, ActivityContextInterface aci) { if (logger.isWarningEnabled()) { this.logger.warning("\nRx : onDialogNotice" + evt); } } public void onDialogTimeout(DialogTimeout evt, ActivityContextInterface aci) { if (this.logger.isWarningEnabled()) { this.logger.warning("\nRx : onDialogTimeout" + evt); } } public void onDialogRequest(DialogRequest evt, ActivityContextInterface aci) { if (logger.isFineEnabled()) { this.logger.fine("\nRx : onDialogRequest" + evt); } } public void onDialogRelease(DialogRelease evt, ActivityContextInterface aci) { if (logger.isFineEnabled()) { this.logger.fine("\nRx : DialogRelease" + evt); } } }