Revision: 5a82e43362d1
Author: Sergey Vetyutnev <[email protected]>
Date: Thu Aug 8 05:31:27 2013
Log: Interfaces for TCAP counters + dialog adding failing log
http://code.google.com/p/jss7/source/detail?r=5a82e43362d1
Added:
/tcap/tcap-api/src/main/java/org/mobicents/protocols/ss7/tcap/api/TCAPCounterProvider.java
/tcap/tcap-impl/src/main/java/org/mobicents/protocols/ss7/tcap/TCAPCounterProviderImpl.java
Modified:
/tcap/tcap-api/src/main/java/org/mobicents/protocols/ss7/tcap/api/TCAPStack.java
/tcap/tcap-impl/src/main/java/org/mobicents/protocols/ss7/tcap/DialogImpl.java
/tcap/tcap-impl/src/main/java/org/mobicents/protocols/ss7/tcap/TCAPProviderImpl.java
/tcap/tcap-impl/src/main/java/org/mobicents/protocols/ss7/tcap/TCAPStackImpl.java
=======================================
--- /dev/null
+++
/tcap/tcap-api/src/main/java/org/mobicents/protocols/ss7/tcap/api/TCAPCounterProvider.java
Thu Aug 8 05:31:27 2013
@@ -0,0 +1,237 @@
+/*
+ * 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.tcap.api;
+
+import java.util.Map;
+import java.util.UUID;
+
+/**
+ *
+ * @author servey vetyutnev
+ *
+ */
+public interface TCAPCounterProvider {
+
+ /**
+ * Return a unique sessionId.
+ * After stack/counters restart this value will be changed,
+ * all counters will be set to zero and all active campaigns will be
removed
+ */
+ UUID getSessionId();
+
+ /**
+ * return a count of received since Stack restart TC-UNI messages
+ */
+ long getTcUniRecievedCount();
+
+ /**
+ * return a count of sent since Stack restart TC-UNI messages
+ */
+ long getTcUniSentCount();
+
+ /**
+ * return a count of received since Stack restart TC-BEGIN messages
+ */
+ long getTcBeginRecievedCount();
+
+ /**
+ * return a count of sent since Stack restart TC-BEGIN messages
+ */
+ long getTcBeginSentCount();
+
+ /**
+ * return a count of received since Stack restart TC-CONTINUE messages
+ */
+ long getTcContinueRecievedCount();
+
+ /**
+ * return a count of sent since Stack restart TC-CONTINUE messages
+ */
+ long getTcContinueSentCount();
+
+ /**
+ * return a count of received since Stack restart TC-END messages
+ */
+ long getTcEndRecievedCount();
+
+ /**
+ * return a count of sent since Stack restart TC-END messages
+ */
+ long getTcEndSentCount();
+
+ /**
+ * return a count of received since Stack restart TC-PROVIDER-ABORT
messages
+ */
+ long getTcPAbortRecievedCount();
+
+ /**
+ * return a count of sent since Stack restart TC-PROVIDER-ABORT
messages
+ */
+ long getTcPAbortSentCount();
+
+ /**
+ * return a count of received since Stack restart TC-USER-ABORT
messages
+ */
+ long getTcUserAbortRecievedCount();
+
+ /**
+ * return a count of sent since Stack restart TC-USER-ABORT messages
+ */
+ long getTcUserAbortSentCount();
+
+ /**
+ * return a count of received since Stack restart Invoke components
+ */
+ long getInvokeRecievedCount();
+
+ /**
+ * return a count of sent since Stack restart Invoke components
+ */
+ long getInvokeSentCount();
+
+ /**
+ * return a count of received since Stack restart ReturtResult
components
+ */
+ long getReturnResultRecievedCount();
+
+ /**
+ * return a count of sent since Stack restart ReturtResult components
+ */
+ long getReturnResultSentCount();
+
+ /**
+ * return a count of received since Stack restart ReturtResultLast
components
+ */
+ long getReturnResultLastRecievedCount();
+
+ /**
+ * return a count of sent since Stack restart ReturtResultLast
components
+ */
+ long getReturnResultLastSentCount();
+
+ /**
+ * return a count of received since Stack restart ReturnError
components
+ */
+ long getReturnErrorRecievedCount();
+
+ /**
+ * return a count of sent since Stack restart ReturnError components
+ */
+ long getReturnErrorSentCount();
+
+ /**
+ * return a count of received since Stack restart Reject components
+ */
+ long getRejectRecievedCount();
+
+ /**
+ * return a count of sent since Stack restart Reject components
+ */
+ long getRejectSentCount();
+
+ /**
+ * return a count of received since Stack restart DialogRequests
+ */
+ long getDialogRequestCount();
+
+ /**
+ * return a count of received since Stack restart DialogTimeouts
+ */
+ long getDialogTimeoutCount();
+
+ /**
+ * return a count of received since Stack restart DialogReleases
+ */
+ long getDialogReleaseCount();
+
+
+ /**
+ * return a current count of established Dialogs
+ */
+ long getCurrentDialogsCount();
+
+ /**
+ * return a count of all established Dialogs since stack start
+ */
+ long getAllDialogsCount();
+
+ /**
+ * return a min count of established Dialogs
+ */
+ Long getMinDialogsCount(String compainName);
+
+ /**
+ * return a max current count of established Dialogs
+ */
+ Long getMaxDialogsCount(String compainName);
+
+ /**
+ * return a total durations of all released Dialogs since stack start
(in seconds)
+ * this value is updated when a dialog is released
+ */
+ double getAllDialogsDuration();
+
+
+ /**
+ * return an outgoing Dialogs count per ApplicationContextNames (in
string form)
+ * all MAP V1 operations will be assigned into empty string group ("")
+ */
+ Map<String,Long> getOutgoingDialogsPerApplicatioContextName();
+
+ /**
+ * return an incoming Dialogs count per ApplicationContextNames (in
string form)
+ */
+ Map<String,Long> getIncomingDialogsPerApplicatioContextName();
+
+ /**
+ * return an outgoing Invokes count per OperationCodes
+ */
+ Map<String,Long> getOutgoingInvokesPerOperationCode();
+
+ /**
+ * return an incoming Invokes count per OperationCodes
+ */
+ Map<String,Long> getIncomingInvokesPerOperationCode();
+
+ /**
+ * return an outgoing ReturtError count per ErrorCodes
+ */
+ Map<String,Long> getOutgoingErrorsPerErrorCode();
+
+ /**
+ * return an incoming ReturtError count per ErrorCodes
+ */
+ Map<String,Long> getIncomingErrorsPerErrorCode();
+
+ /**
+ * return an outgoing Reject count per Problem
+ */
+ Map<String,Long> getOutgoingRejectPerProblem();
+
+ /**
+ * return an incoming Reject count per Problem
+ */
+ Map<String,Long> getIncomingRejectPerProblem();
+
+}
+
=======================================
--- /dev/null
+++
/tcap/tcap-impl/src/main/java/org/mobicents/protocols/ss7/tcap/TCAPCounterProviderImpl.java
Thu Aug 8 05:31:27 2013
@@ -0,0 +1,327 @@
+/*
+ * 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.tcap;
+
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.atomic.AtomicLong;
+
+import org.mobicents.protocols.ss7.tcap.api.TCAPCounterProvider;
+
+public class TCAPCounterProviderImpl implements TCAPCounterProvider {
+
+ private UUID sessionId = UUID.randomUUID();
+
+ private AtomicLong tcUniRecievedCount = new AtomicLong();
+ private AtomicLong tcUniSentCount = new AtomicLong();
+ private AtomicLong tcBeginRecievedCount = new AtomicLong();
+ private AtomicLong tcBeginSentCount = new AtomicLong();
+ private AtomicLong tcContinueRecievedCount = new AtomicLong();
+ private AtomicLong tcContinueSentCount = new AtomicLong();
+ private AtomicLong tcEndRecievedCount = new AtomicLong();
+ private AtomicLong tcEndSentCount = new AtomicLong();
+ private AtomicLong tcPAbortRecievedCount = new AtomicLong();
+ private AtomicLong tcPAbortSentCount = new AtomicLong();
+ private AtomicLong tcUserAbortRecievedCount = new AtomicLong();
+ private AtomicLong tcUserAbortSentCount = new AtomicLong();
+
+
+ public TCAPCounterProviderImpl() {
+ }
+
+
+ @Override
+ public UUID getSessionId() {
+ return sessionId;
+ }
+
+
+ @Override
+ public long getTcUniRecievedCount() {
+ return tcUniRecievedCount.get();
+ }
+
+ public void addTcUniRecievedCount() {
+ tcUniRecievedCount.addAndGet(1);
+ }
+
+ @Override
+ public long getTcUniSentCount() {
+ return tcUniSentCount.get();
+ }
+
+ public void addTcUniSentCount() {
+ tcUniSentCount.addAndGet(1);
+ }
+
+ @Override
+ public long getTcBeginRecievedCount() {
+ return tcBeginRecievedCount.get();
+ }
+
+ public void addTcBeginRecievedCount() {
+ tcBeginRecievedCount.addAndGet(1);
+ }
+
+ @Override
+ public long getTcBeginSentCount() {
+ return tcBeginSentCount.get();
+ }
+
+ public void addTcBeginSentCount() {
+ tcBeginSentCount.addAndGet(1);
+ }
+
+ @Override
+ public long getTcContinueRecievedCount() {
+ return tcContinueRecievedCount.get();
+ }
+
+ public void addTcContinueRecievedCount() {
+ tcContinueRecievedCount.addAndGet(1);
+ }
+
+ @Override
+ public long getTcContinueSentCount() {
+ return tcContinueSentCount.get();
+ }
+
+ public void addTcContinueSentCount() {
+ tcContinueSentCount.addAndGet(1);
+ }
+
+ @Override
+ public long getTcEndRecievedCount() {
+ return tcEndRecievedCount.get();
+ }
+
+ public void addTcEndRecievedCount() {
+ tcEndRecievedCount.addAndGet(1);
+ }
+
+ @Override
+ public long getTcEndSentCount() {
+ return tcEndSentCount.get();
+ }
+
+ public void addTcEndSentCount() {
+ tcEndSentCount.addAndGet(1);
+ }
+
+ @Override
+ public long getTcPAbortRecievedCount() {
+ return tcPAbortRecievedCount.get();
+ }
+
+ public void addTcPAbortRecievedCount() {
+ tcPAbortRecievedCount.addAndGet(1);
+ }
+
+ @Override
+ public long getTcPAbortSentCount() {
+ return tcPAbortSentCount.get();
+ }
+
+ public void addTcPAbortSentCount() {
+ tcPAbortSentCount.addAndGet(1);
+ }
+
+ @Override
+ public long getTcUserAbortRecievedCount() {
+ return tcUserAbortRecievedCount.get();
+ }
+
+ public void addTcUserAbortRecievedCount() {
+ tcUserAbortRecievedCount.addAndGet(1);
+ }
+
+ @Override
+ public long getTcUserAbortSentCount() {
+ return tcUserAbortSentCount.get();
+ }
+
+ public void addTcUserAbortSentCount() {
+ tcUserAbortSentCount.addAndGet(1);
+ }
+
+
+
+ //.............................
+
+ @Override
+ public long getInvokeRecievedCount() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long getInvokeSentCount() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long getReturnResultRecievedCount() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long getReturnResultSentCount() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long getReturnResultLastRecievedCount() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long getReturnResultLastSentCount() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long getReturnErrorRecievedCount() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long getReturnErrorSentCount() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long getRejectRecievedCount() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long getRejectSentCount() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long getDialogRequestCount() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long getDialogTimeoutCount() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long getDialogReleaseCount() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long getCurrentDialogsCount() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long getAllDialogsCount() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public Long getMinDialogsCount(String compainName) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Long getMaxDialogsCount(String compainName) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public double getAllDialogsDuration() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public Map<String, Long> getOutgoingDialogsPerApplicatioContextName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Map<String, Long> getIncomingDialogsPerApplicatioContextName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Map<String, Long> getOutgoingInvokesPerOperationCode() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Map<String, Long> getIncomingInvokesPerOperationCode() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Map<String, Long> getOutgoingErrorsPerErrorCode() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Map<String, Long> getIncomingErrorsPerErrorCode() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Map<String, Long> getOutgoingRejectPerProblem() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Map<String, Long> getIncomingRejectPerProblem() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
=======================================
---
/tcap/tcap-api/src/main/java/org/mobicents/protocols/ss7/tcap/api/TCAPStack.java
Fri Jul 19 09:59:05 2013
+++
/tcap/tcap-api/src/main/java/org/mobicents/protocols/ss7/tcap/api/TCAPStack.java
Thu Aug 8 05:31:27 2013
@@ -35,6 +35,8 @@
*/
TCAPProvider getProvider();
+ TCAPCounterProvider getCounterProvider();
+
/**
* Stops this stack and transport layer(SCCP)
*/
=======================================
---
/tcap/tcap-impl/src/main/java/org/mobicents/protocols/ss7/tcap/DialogImpl.java
Fri Jul 19 09:59:05 2013
+++
/tcap/tcap-impl/src/main/java/org/mobicents/protocols/ss7/tcap/DialogImpl.java
Thu Aug 8 05:31:27 2013
@@ -525,6 +525,7 @@
try {
tcbm.encode(aos);
this.setState(TRPseudoState.InitialSent);
+
this.provider.getStack().getCounterProviderImpl().addTcBeginSentCount();
this.provider.send(aos.toByteArray(),
event.getReturnMessageOnError(), this.remoteAddress, this.localAddress,
this.seqControl);
this.scheduledComponentList.clear();
@@ -602,6 +603,7 @@
AsnOutputStream aos = new AsnOutputStream();
try {
tcbm.encode(aos);
+
this.provider.getStack().getCounterProviderImpl().addTcContinueSentCount();
this.provider.send(aos.toByteArray(),
event.getReturnMessageOnError(), this.remoteAddress,
this.localAddress, this.seqControl);
this.setState(TRPseudoState.Active);
@@ -632,6 +634,7 @@
AsnOutputStream aos = new AsnOutputStream();
try {
tcbm.encode(aos);
+
this.provider.getStack().getCounterProviderImpl().addTcContinueSentCount();
this.provider.send(aos.toByteArray(),
event.getReturnMessageOnError(), this.remoteAddress,
this.localAddress, this.seqControl);
this.scheduledComponentList.clear();
@@ -752,6 +755,7 @@
AsnOutputStream aos = new AsnOutputStream();
try {
tcbm.encode(aos);
+
this.provider.getStack().getCounterProviderImpl().addTcEndSentCount();
this.provider.send(aos.toByteArray(),
event.getReturnMessageOnError(), this.remoteAddress, this.localAddress,
this.seqControl);
@@ -814,6 +818,7 @@
AsnOutputStream aos = new AsnOutputStream();
try {
msg.encode(aos);
+
this.provider.getStack().getCounterProviderImpl().addTcUniSentCount();
this.provider.send(aos.toByteArray(),
event.getReturnMessageOnError(), this.remoteAddress, this.localAddress,
this.seqControl);
this.scheduledComponentList.clear();
@@ -910,6 +915,7 @@
AsnOutputStream aos = new AsnOutputStream();
try {
msg.encode(aos);
+
this.provider.getStack().getCounterProviderImpl().addTcUserAbortSentCount();
this.provider.send(aos.toByteArray(),
event.getReturnMessageOnError(), this.remoteAddress,
this.localAddress, this.seqControl);
@@ -1641,6 +1647,7 @@
AsnOutputStream aos = new AsnOutputStream();
try {
msg.encode(aos);
+
this.provider.getStack().getCounterProviderImpl().addTcPAbortSentCount();
this.provider.send(aos.toByteArray(), false,
this.remoteAddress, this.localAddress, this.seqControl);
} catch (Exception e) {
if (logger.isEnabledFor(Level.ERROR)) {
=======================================
---
/tcap/tcap-impl/src/main/java/org/mobicents/protocols/ss7/tcap/TCAPProviderImpl.java
Fri Jul 19 09:59:05 2013
+++
/tcap/tcap-impl/src/main/java/org/mobicents/protocols/ss7/tcap/TCAPProviderImpl.java
Thu Aug 8 05:31:27 2013
@@ -290,6 +290,7 @@
public void deliver(DialogImpl dialogImpl, TCBeginIndicationImpl msg) {
+ this.stack.getCounterProviderImpl().addTcBeginRecievedCount();
try {
for (TCListener lst : this.tcListeners) {
lst.onTCBegin(msg);
@@ -303,6 +304,8 @@
}
public void deliver(DialogImpl dialogImpl, TCContinueIndicationImpl
tcContinueIndication) {
+
+ this.stack.getCounterProviderImpl().addTcContinueRecievedCount();
try {
for (TCListener lst : this.tcListeners) {
lst.onTCContinue(tcContinueIndication);
@@ -316,6 +319,8 @@
}
public void deliver(DialogImpl dialogImpl, TCEndIndicationImpl
tcEndIndication) {
+
+ this.stack.getCounterProviderImpl().addTcEndRecievedCount();
try {
for (TCListener lst : this.tcListeners) {
lst.onTCEnd(tcEndIndication);
@@ -328,6 +333,8 @@
}
public void deliver(DialogImpl dialogImpl, TCPAbortIndicationImpl
tcAbortIndication) {
+
+ this.stack.getCounterProviderImpl().addTcPAbortRecievedCount();
try {
for (TCListener lst : this.tcListeners) {
lst.onTCPAbort(tcAbortIndication);
@@ -341,6 +348,8 @@
}
public void deliver(DialogImpl dialogImpl, TCUserAbortIndicationImpl
tcAbortIndication) {
+
+ this.stack.getCounterProviderImpl().addTcUserAbortRecievedCount();
try {
for (TCListener lst : this.tcListeners) {
lst.onTCUserAbort(tcAbortIndication);
@@ -354,6 +363,8 @@
}
public void deliver(DialogImpl dialogImpl, TCUniIndicationImpl
tcUniIndication) {
+
+ this.stack.getCounterProviderImpl().addTcUniRecievedCount();
try {
for (TCListener lst : this.tcListeners) {
lst.onTCUni(tcUniIndication);
@@ -468,6 +479,7 @@
AsnOutputStream aos = new AsnOutputStream();
try {
msg.encode(aos);
+ this.stack.getCounterProviderImpl().addTcPAbortSentCount();
this.send(aos.toByteArray(), false, remoteAddress,
localAddress, seqControl);
} catch (Exception e) {
if (logger.isEnabledFor(Level.ERROR)) {
@@ -503,6 +515,7 @@
AsnOutputStream aos = new AsnOutputStream();
try {
msg.encode(aos);
+ this.stack.getCounterProviderImpl().addTcPAbortSentCount();
this.send(aos.toByteArray(), false, remoteAddress,
localAddress, seqControl);
} catch (Exception e) {
if (logger.isEnabledFor(Level.ERROR)) {
@@ -639,7 +652,7 @@
} catch (TCAPException e) {
this.sendProviderAbort(PAbortCauseType.ResourceLimitation,
tcb.getOriginatingTransactionId(), remoteAddress, localAddress,
message.getSls());
- logger.error("Too many registered current dialogs when
receiving TCBeginMessage");
+ logger.error("Too many registered current dialogs when
receiving TCBeginMessage: " + e.getMessage(), e);
return;
}
di.processBegin(tcb, localAddress, remoteAddress);
=======================================
---
/tcap/tcap-impl/src/main/java/org/mobicents/protocols/ss7/tcap/TCAPStackImpl.java
Fri Jul 19 09:59:05 2013
+++
/tcap/tcap-impl/src/main/java/org/mobicents/protocols/ss7/tcap/TCAPStackImpl.java
Thu Aug 8 05:31:27 2013
@@ -25,6 +25,7 @@
import org.apache.log4j.Logger;
import org.mobicents.protocols.ss7.sccp.SccpProvider;
import org.mobicents.protocols.ss7.sccp.parameter.SccpAddress;
+import org.mobicents.protocols.ss7.tcap.api.TCAPCounterProvider;
import org.mobicents.protocols.ss7.tcap.api.TCAPProvider;
import org.mobicents.protocols.ss7.tcap.api.TCAPStack;
@@ -44,6 +45,7 @@
public static final long _EMPTY_INVOKE_TIMEOUT = -1;
// TCAP state data, it is used ONLY on client side
protected TCAPProviderImpl tcapProvider;
+ protected TCAPCounterProviderImpl tcapCounterProvider;
private SccpProvider sccpProvider;
private SccpAddress address;
@@ -68,6 +70,7 @@
public TCAPStackImpl(SccpProvider sccpProvider, int ssn) {
this.sccpProvider = sccpProvider;
this.tcapProvider = new TCAPProviderImpl(sccpProvider, this, ssn);
+ this.tcapCounterProvider = new TCAPCounterProviderImpl();
}
public void start() throws Exception {
@@ -96,6 +99,7 @@
throw new IllegalArgumentException("InvokeTimeout value must
be greater or equal to zero.");
}
+ this.tcapCounterProvider = new TCAPCounterProviderImpl();
tcapProvider.start();
this.started = true;
@@ -122,6 +126,15 @@
return tcapProvider;
}
+
+ @Override
+ public TCAPCounterProvider getCounterProvider() {
+ return tcapCounterProvider;
+ }
+
+ public TCAPCounterProviderImpl getCounterProviderImpl() {
+ return tcapCounterProvider;
+ }
/*
* (non-Javadoc)
--
---
You received this message because you are subscribed to the Google Groups "mobicents-commits" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.