package org.mobicents.slee.resource.diameter.base.handlers; import org.jdiameter.api.Answer; import org.jdiameter.api.ApplicationId; import org.jdiameter.api.Request; import org.jdiameter.api.Session; import org.jdiameter.api.acc.ClientAccSession; import org.jdiameter.api.acc.ServerAccSession; import org.jdiameter.api.auth.ClientAuthSession; import org.jdiameter.api.auth.ServerAuthSession; /** * 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 BaseSessionCreationListener { // Some static to improve perf, we have maps with it, but thats only for // setup. 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 _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 _ExtensionDiameterMessage = "net.java.slee.resource.diameter.base.events.ExtensionDiameterMessage"; public static final String _ErrorAnswer = "net.java.slee.resource.diameter.base.events.ErrorAnswer"; /** * * @param sessionId * @param appSession */ public void sessionDestroyed(String sessionId, Object appSession); /** * * @param session */ public void sessionCreated(ServerAccSession session); /** * * @param session */ public void sessionCreated(ServerAuthSession session); /** * * @param session */ public void sessionCreated(ClientAuthSession session); /** * * @param session */ public void sessionCreated(ClientAccSession session); /** * * @param session */ public void sessionCreated(Session session); /** * * @param sessionId * @return */ public boolean sessionExists(String sessionId); /** * Makes RA fire event with certain name. * * @param sessionId * @param name * @param request * @param answer */ public void fireEvent(String sessionId, String name, Request request, Answer answer); /** * * @return */ public ApplicationId[] getSupportedApplications(); }