Revision: d319bf2c8273
Author:   Tom Uijldert <[email protected]>
Date:     Wed Nov 14 03:15:30 2012
Log: Enhancement: generate dialog timeout event (resolves http://code.google.com/p/jain-slee/issues/detail?id=11).

http://code.google.com/p/jain-slee/source/detail?r=d319bf2c8273&repo=sip

Modified:
/resources/sip11/ra/src/main/java/org/mobicents/slee/resource/sip11/SipResourceAdaptor.java

=======================================
--- /resources/sip11/ra/src/main/java/org/mobicents/slee/resource/sip11/SipResourceAdaptor.java Sun Aug 12 06:02:08 2012 +++ /resources/sip11/ra/src/main/java/org/mobicents/slee/resource/sip11/SipResourceAdaptor.java Wed Nov 14 03:15:30 2012
@@ -23,6 +23,7 @@
 package org.mobicents.slee.resource.sip11;

 import gov.nist.javax.sip.ResponseEventExt;
+import gov.nist.javax.sip.SipListenerExt;
 import gov.nist.javax.sip.Utils;
 import gov.nist.javax.sip.message.SIPRequest;
 import gov.nist.javax.sip.message.SIPResponse;
@@ -50,7 +51,6 @@
 import javax.sip.ResponseEvent;
 import javax.sip.ServerTransaction;
 import javax.sip.SipFactory;
-import javax.sip.SipListener;
 import javax.sip.SipProvider;
 import javax.sip.TimeoutEvent;
 import javax.sip.Transaction;
@@ -93,6 +93,7 @@

 import net.java.slee.resource.sip.CancelRequestEvent;
 import net.java.slee.resource.sip.DialogForkedEvent;
+import net.java.slee.resource.sip.DialogTimeoutEvent;

 import org.mobicents.ha.javax.sip.ClusteredSipStack;
 import org.mobicents.ha.javax.sip.LoadBalancerElector;
@@ -114,7 +115,7 @@
import org.mobicents.slee.resource.sip11.wrappers.TransactionWrapperAppData;
 import org.mobicents.slee.resource.sip11.wrappers.Wrapper;

-public class SipResourceAdaptor implements SipListener,FaultTolerantResourceAdaptor<SipActivityHandle, String> { +public class SipResourceAdaptor implements SipListenerExt,FaultTolerantResourceAdaptor<SipActivityHandle, String> {

        // Config Properties Names -------------------------------------------

@@ -1099,7 +1100,41 @@
                }
        }

-       // *************** Event Life cycle
+    /* (non-Javadoc)
+ * @see gov.nist.javax.sip.SipListenerExt#processDialogTimeout(gov.nist.javax.sip.DialogTimeoutEvent)
+     */
+ public void processDialogTimeout(gov.nist.javax.sip.DialogTimeoutEvent timeoutEvent) {
+       final Dialog d = timeoutEvent.getDialog();
+       if (d != null) {
+                       DialogWrapper dw = getDialogWrapper(d);
+                       if (dw != null) {
+                               final FireableEventType eventType = eventIdCache
+                                                               
.getDialogTimeoutEventId(eventLookupFacility);
+                               final DialogTimeoutEvent event = new 
DialogTimeoutEvent(dw);
+                               if (!eventIDFilter.filterEvent(eventType)) {
+                                       try {
+                                               
fireEvent(dw.getActivityHandle(), eventType, event,
+                                                                 
dw.getEventFiringAddress(), DEFAULT_EVENT_FLAGS);
+                                       } catch 
(UnrecognizedActivityHandleException e) {
+                                               tracer.warning("Failed to fire event 
" + eventType +
+                                                               ", the activity " + dw + 
" does not exists in the SLEE");
+                                       } catch (Throwable e) {
+                                               tracer.severe("Failed to fire 
event", e);
+                                       }
+                               } else {
+                                       if (tracer.isFineEnabled()) {
+                                               tracer.fine("Event " + eventType + " 
filtered.");
+                                       }
+                               }
+                       } else {
+                               if (tracer.isFineEnabled()) {
+                                       tracer.fine("DialogTimoutEvent dropped due 
to null app data.");
+                               }
+                       }
+       }
+    }
+
+    // *************** Event Life cycle

        /**
         *

Reply via email to