package org.mobicents.slee.resource.diameter.cca.handlers;
import javax.slee.resource.ActivityHandle;
import org.jdiameter.api.Answer;
import org.jdiameter.api.Request;
import org.jdiameter.api.cca.ClientCCASession;
import org.jdiameter.api.cca.ServerCCASession;
/**
*
* CCASessionCreationListener.java
*
* <br>
* Super project: mobicents <br>
* 11:18:42 AM Dec 30, 2008 <br>
* This should be implemented by RA. It defines some static values equal to
* event name part from event definition. This should be passed as arg to
* {@link #fireEvent(String sessionId, String name, Request request, Answer answer)}
*
* @author <a href="mailto:baranowb@gmail.com"> Bartosz Baranowski </a>
* @author <a href="mailto:brainslog@gmail.com"> Alexandre Mendonca </a>
*/
public interface CCASessionCreationListener {
public static final String _AbortSessionRequest = "net.java.slee.resource.diameter.base.events.AbortSessionRequest";
public static final String _AccountingRequest = "net.java.slee.resource.diameter.base.events.AccountingRequest";
public static final String _CapabilitiesExchangeRequest = "net.java.slee.resource.diameter.base.events.CapabilitiesExchangeRequest";
public static final String _DeviceWatchdogRequest = "net.java.slee.resource.diameter.base.events.DeviceWatchdogRequest";
public static final String _DisconnectPeerRequest = "net.java.slee.resource.diameter.base.events.DisconnectPeerRequest";
public static final String _ReAuthRequest = "net.java.slee.resource.diameter.base.events.ReAuthRequest";
public static final String _SessionTerminationRequest = "net.java.slee.resource.diameter.base.events.SessionTerminationRequest";
public static final String _CreditControlRequest = "net.java.slee.resource.diameter.cca.events.CreditControlRequest";
public static final String _AbortSessionAnswer = "net.java.slee.resource.diameter.base.events.AbortSessionAnswer";
public static final String _AccountingAnswer = "net.java.slee.resource.diameter.base.events.AccountingAnswer";
public static final String _CapabilitiesExchangeAnswer = "net.java.slee.resource.diameter.base.events.CapabilitiesExchangeAnswer";
public static final String _DeviceWatchdogAnswer = "net.java.slee.resource.diameter.base.events.DeviceWatchdogAnswer";
public static final String _DisconnectPeerAnswer = "net.java.slee.resource.diameter.base.events.DisconnectPeerAnswer";
public static final String _ReAuthAnswer = "net.java.slee.resource.diameter.base.events.ReAuthAnswer";
public static final String _SessionTerminationAnswer = "net.java.slee.resource.diameter.base.events.SessionTerminationAnswer";
public static final String _CreditControlAnswer = "net.java.slee.resource.diameter.cca.events.CreditControlAnswer";
public static final String _ExtensionDiameterMessage = "net.java.slee.resource.diameter.base.events.ExtensionDiameterMessage";
public static final String _ErrorAnswer = "net.java.slee.resource.diameter.base.events.ErrorAnswer";
/**
* Listener for Client Session creation.
*
* @param ccClientSession
* the newly created Client Session
*/
public void sessionCreated(ClientCCASession ccClientSession);
/**
* Listener for Server Session creation.
*
* @param ccServerSession
* the newly created Client Session
*/
public void sessionCreated(ServerCCASession ccServerSession);
/**
* Method for verifying if some session (with a given Session-Id) exists.
*
* @param sessionId
* the Id to verify
* @return false if there's no session with the id, true otherwise
*/
public boolean sessionExists(String sessionId);
/**
* Listener for Server Session destruction.
*
* @param sessionId
* the id of the session destroyed
* @param appSession
* the session object itself
*/
public void sessionDestroyed(String sessionId, Object appSession);
/**
* Helper method to fire events to SLEE.
*
* @param sessionId
* the id of the session for this event
* @param name
* the event name (without suffix Request/Answer)
* @param request
* the request object (if it is a request)
* @param answer
* the answer object (if it is a answer)
*/
public void fireEvent(String sessionId, String name, Request request, Answer answer);
/**
* Helper method to fire events to SLEE.
*
* @param handle
* the activity handle where to fire it
* @param name
* the event name (without suffix Request/Answer)
* @param request
* the request object (if it is a request)
* @param answer
* the answer object (if it is a answer)
*/
public void fireEvent(ActivityHandle handle, String name, Request request, Answer answer);
}