
Figure 23.8: Initial Event in Call Duration Service
This service is executed only in the originating party (user A) because we use an initial event selector method that determines
that, as we can see in the source code below.
public InitialEventSelector determineIsOriginating(InitialEventSelector ies) {
// Get the Activity from the InitialEventSelector
JccConnection connection = (JccConnection) ies.getActivity();
// Determines if the message correspond to an initial event
boolean isInitialEvent = connection.getAddress(). getName().equals(connection.getOriginatingAddress().getName());
if (isInitialEvent)
trace(Level.FINE, "Event (" + ies.getEventName() + ") on " + connection + " may be an initial event");
// Set if it is InitialEvent in InitialEventSelector
ies.setInitialEvent(isInitialEvent);
return ies;
}
23.7.3 Service Logic: Call Duration SBB
OnCallConnected method
After verification, a new Call Duration SBB entity is created to execute the service logic for this call. The SBB receives a
CallConnected event and executes the onCallConnected method.
As you can see in the Initial Event Selector method, the SBB must defines an event (<event-name> CallConnected </event-
name>) which matches with an event type (<event-type-name> javax.csapi.cc.jcc.JccConnectionEvent.CONNECTION_CONNECTED
</event-type-name>). Then, the
onCallConnected(...)
method (shown below) will be called every time this SBB receives
that event.
Open Cloud Rhino 1.4.3 Administration Manual v1.1 165
Comentarios a estos manuales