public void fireEvent(String sessionId, Message message) { DiameterMessage event = (DiameterMessage) createEvent(message); FireableEventType eventId = eventIdCache.getEventId(eventLookup, message); this.fireEvent(event, getActivityHandle(sessionId), eventId, null, true, message.isRequest()); }
public void activityUnreferenced(ActivityHandle handle) { if(tracer.isFineEnabled()) { tracer.fine("Diameter Base RA :: activityUnreferenced :: handle[" + handle + "]."); } //this.activityEnded(handle); if(handle instanceof DiameterActivityHandle) { this.endActivity((DiameterActivityHandle) handle); } }
public void stateChanged(AppSession source, Enum oldState, Enum newState) { if(source instanceof ServerAuthSession || source instanceof ClientAuthSession) { AuthSessionActivityImpl activity = (AuthSessionActivityImpl) this.getActivity(this.getActivityHandle(source.getSessionId())); activity.stateChanged(source, oldState, newState); } else if (source instanceof ServerAccSession || source instanceof ClientAccSession) { AccountingSessionActivityImpl activity = (AccountingSessionActivityImpl) this.getActivity(this.getActivityHandle(source.getSessionId())); activity.stateChanged(source, oldState, newState); } else { //error? } }
public AuthClientSessionActivity createAuthenticationClientSessionActivity(DiameterIdentity destinationHost, DiameterIdentity destinationRealm) throws CreateActivityException { try { ClientAuthSession session = ((ISessionFactory) stack.getSessionFactory()).getNewAppSession(null, authApplicationIds.get(0), ClientAuthSession.class); sessionCreated(session); return (AuthClientSessionActivity) activities.get(getActivityHandle(session.getSessions().get(0).getSessionId())); } catch (InternalException e) { throw new CreateActivityException("Internal exception while creating Authentication Activity", e); } catch (IllegalDiameterStateException e) { throw new CreateActivityException("Illegal Diameter State exception while creating Authentication Activity", e); } }
public void sessionCreated(Session session) { DiameterMessageFactoryImpl msgFactory = new DiameterMessageFactoryImpl(session, stack, null, null); DiameterActivityImpl activity = new DiameterActivityImpl(msgFactory, avpFactory, session, this, null, null); // TODO: Do we need to manage session? //session.addStateChangeNotification(activity); activity.setSessionListener(this); // false, since we can't know if it comes from SBB or RA callback addActivity(activity, false); }
public void eventProcessingFailed(ActivityHandle handle, FireableEventType eventType, Object event, Address address, ReceivableService service, int flags, FailureReason reason) { if(tracer.isInfoEnabled()) { tracer.info("Diameter Base RA :: eventProcessingFailed :: handle[" + handle + "], eventType[" + eventType + "], event[" + event + "], address[" + address + "], flags[" + flags + "], reason[" + reason + "]."); } processAfterEventDelivery(handle, eventType, event, address, service, flags); }
public void dataRemoved(String arg0) { this.activities.remove(getActivityHandle(arg0)); }
private void processAfterEventDelivery(ActivityHandle handle, FireableEventType eventType, Object event, Address address, ReceivableService service, int flags) { DiameterActivityImpl activity = (DiameterActivityImpl) getActivity(handle); if (activity != null) { synchronized (activity) { if (activity.isTerminateAfterProcessing()) { activity.endActivity(); } } } }
public void raConfigure(ConfigProperties properties) { if (tracer.isFineEnabled()) { tracer.fine("Diameter Base RA :: raConfigure"); } parseApplicationIds((String) properties.getProperty(AUTH_APPLICATION_IDS).getValue(), true); parseApplicationIds((String) properties.getProperty(ACCT_APPLICATION_IDS).getValue(), false); if(tracer.isInfoEnabled()) { tracer.info("RA supporting " + authApplicationIds + " " + acctApplicationIds); } }
this.fireEvent(activity.getSessionId(), request);
public AuthClientSessionActivity createAuthenticationClientSessionActivity(DiameterIdentity destinationHost, DiameterIdentity destinationRealm) throws CreateActivityException { try { ClientAuthSession session = ((ISessionFactory) stack.getSessionFactory()).getNewAppSession(null, authApplicationIds.get(0), ClientAuthSession.class); sessionCreated(session); return (AuthClientSessionActivity) activities.get(getActivityHandle(session.getSessions().get(0).getSessionId())); } catch (InternalException e) { throw new CreateActivityException("Internal exception while creating Authentication Activity", e); } catch (IllegalDiameterStateException e) { throw new CreateActivityException("Illegal Diameter State exception while creating Authentication Activity", e); } }
public void sessionCreated(ClientAccSession session) { DiameterMessageFactoryImpl msgFactory = new DiameterMessageFactoryImpl(stack); AccountingClientSessionActivityImpl activity = new AccountingClientSessionActivityImpl(msgFactory, avpFactory, session, null, null); activity.setSessionListener(this); // session.addStateChangeNotification(activity); addActivity(activity, false /*true*/); }
initStack(); initActivitiesMgmt();
public void eventProcessingFailed(ActivityHandle handle, FireableEventType eventType, Object event, Address address, ReceivableService service, int flags, FailureReason reason) { if(tracer.isInfoEnabled()) { tracer.info("Diameter Base RA :: eventProcessingFailed :: handle[" + handle + "], eventType[" + eventType + "], event[" + event + "], address[" + address + "], flags[" + flags + "], reason[" + reason + "]."); } processAfterEventDelivery(handle, eventType, event, address, service, flags); }
public void dataRemoved(String arg0) { this.activities.remove(getActivityHandle(arg0)); }
private void processAfterEventDelivery(ActivityHandle handle, FireableEventType eventType, Object event, Address address, ReceivableService service, int flags) { DiameterActivityImpl activity = (DiameterActivityImpl) getActivity(handle); if (activity != null) { synchronized (activity) { if (activity.isTerminateAfterProcessing()) { activity.endActivity(); } } } }
public void raConfigure(ConfigProperties properties) { if (tracer.isFineEnabled()) { tracer.fine("Diameter Base RA :: raConfigure"); } parseApplicationIds((String) properties.getProperty(AUTH_APPLICATION_IDS).getValue(), true); parseApplicationIds((String) properties.getProperty(ACCT_APPLICATION_IDS).getValue(), false); if(tracer.isInfoEnabled()) { tracer.info("RA supporting " + authApplicationIds + " " + acctApplicationIds); } }
this.fireEvent(activity.getSessionId(), request);
public AuthServerSessionActivity createAuthenticationServerActivity(Request request) throws CreateActivityException { ServerAuthSession session = null; try { session = ((ISessionFactory) stack.getSessionFactory()).getNewAppSession(null, authApplicationIds.get(0), ServerAuthSession.class, new Object[]{request}); sessionCreated(session); return (AuthServerSessionActivity) activities.get(getActivityHandle(session.getSessions().get(0).getSessionId())); } catch (InternalException e) { throw new CreateActivityException("Internal exception while creating Server Authentication Activity", e); } catch (IllegalDiameterStateException e) { throw new CreateActivityException("Illegal Diameter State exception while creating Server Authentication Activity", e); } }