public void onTimerEvent(TimerEvent event, ActivityContextInterface aci) {

		if (getFinalReplySent())
		{
			aci.detach(sbbContext.getSbbLocalObject());
			final DialogActivity dialog = (DialogActivity) aci.getActivity();
			try {
				dialog.sendRequest(dialog.createRequest(Request.BYE));
			} catch (Exception e) {
				getTracer().severe("failure while processing timer event", e);
			}
		}
		else
		{
			// detach from the server tx activity
			aci.detach(sbbContext.getSbbLocalObject());
			
			final ServerTransaction serverTransaction = (ServerTransaction) aci.getActivity();
			try
			{
				// create dialog activity and attach to it
				final DialogActivity dialog = (DialogActivity) sleeSipProvider
					.getNewDialog(serverTransaction);
				final ActivityContextInterfaceExt dialogAci = (ActivityContextInterfaceExt) sipActivityContextInterfaceFactory
					.getActivityContextInterface(dialog);
				
				dialogAci.attach(sbbContext.getSbbLocalObject());
			
				// send 200 ok
				Response response = messageFactory.createResponse(Response.OK,serverTransaction.getRequest());
				response.addHeader(getContactHeader());
				serverTransaction.sendResponse(response);
					
				setFinalReplySent(true);
				// set timer of 30 secs on the dialog aci to send bye
				timerFacility.setTimer(dialogAci, null, System.currentTimeMillis() + 60000L, getTimerOptions());						
			}
			catch (Exception e) {
					getTracer().severe("failure while sending 200 OK response", e);
			}			
		}
	}
public void onTimerEvent ( TimerEvent event , ActivityContextInterface aci ) { if ( getFinalReplySent ( ) ) { aci . detach ( sbbContext . getSbbLocalObject ( ) ) ; final DialogActivity dialog = ( DialogActivity ) aci . getActivity ( ) ; try { dialog . sendRequest ( dialog . createRequest ( Request . BYE ) ) ; } catch ( Exception e ) { getTracer ( ) . severe ( "failure while processing timer event" , e ) ; } } else { aci . detach ( sbbContext . getSbbLocalObject ( ) ) ; final ServerTransaction serverTransaction = ( ServerTransaction ) aci . getActivity ( ) ; try { final DialogActivity dialog = ( DialogActivity ) sleeSipProvider . getNewDialog ( serverTransaction ) ; final ActivityContextInterfaceExt dialogAci = ( ActivityContextInterfaceExt ) sipActivityContextInterfaceFactory . getActivityContextInterface ( dialog ) ; dialogAci . attach ( sbbContext . getSbbLocalObject ( ) ) ; Response response = messageFactory . createResponse ( Response . OK , serverTransaction . getRequest ( ) ) ; response . addHeader ( getContactHeader ( ) ) ; serverTransaction . sendResponse ( response ) ; setFinalReplySent ( true ) ; timerFacility . setTimer ( dialogAci , null , System . currentTimeMillis ( ) + 60000L , getTimerOptions ( ) ) ; } catch ( Exception e ) { getTracer ( ) . severe ( "failure while sending 200 OK response" , e ) ; } } }
Event handler method for the timer event.

@param event
@param aci