diff --git a/src/net/java/sip/communicator/impl/protocol/sip/CallSipImpl.java b/src/net/java/sip/communicator/impl/protocol/sip/CallSipImpl.java index 543f21777..e954e7551 100644 --- a/src/net/java/sip/communicator/impl/protocol/sip/CallSipImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/sip/CallSipImpl.java @@ -291,12 +291,12 @@ protected void processExtraHeaders(javax.sip.message.Message message) logger.warn("Error getting media types", t); } - getParentOperationSet().fireCallEvent( - incomingCall - ? CallEvent.CALL_RECEIVED - : CallEvent.CALL_INITIATED, - this, - mediaDirections); + fireCallEvent( + incomingCall + ? CallEvent.CALL_RECEIVED + : CallEvent.CALL_INITIATED, + this, + mediaDirections); if(hasZrtp) { @@ -313,6 +313,24 @@ protected void processExtraHeaders(javax.sip.message.Message message) return callPeer; } + /** + * Creates and dispatches a CallEvent notifying registered + * listeners that an event with id eventID has occurred on + * sourceCall. + * + * @param eventID the ID of the event to dispatch + * @param sourceCall the call on which the event has occurred. + * @param mediaDirections direction map for media types + */ + protected void fireCallEvent( + int eventID, + Call sourceCall, + Map mediaDirections) + { + getParentOperationSet().fireCallEvent( + eventID, sourceCall, mediaDirections); + } + /** * Returns the call peer whose associated jain sip dialog matches * dialog. diff --git a/src/net/java/sip/communicator/service/protocol/media/AbstractOperationSetBasicTelephony.java b/src/net/java/sip/communicator/service/protocol/media/AbstractOperationSetBasicTelephony.java index f41ddaf4c..ceab757d9 100644 --- a/src/net/java/sip/communicator/service/protocol/media/AbstractOperationSetBasicTelephony.java +++ b/src/net/java/sip/communicator/service/protocol/media/AbstractOperationSetBasicTelephony.java @@ -152,7 +152,18 @@ public void fireCallEvent( Call sourceCall, Map mediaDirections) { - CallEvent event = new CallEvent(sourceCall, eventID, mediaDirections); + fireCallEvent(new CallEvent(sourceCall, eventID, mediaDirections)); + } + + /** + * Creates and dispatches a CallEvent notifying registered + * listeners that an event with id eventID has occurred on + * sourceCall. + * + * @param event the event to dispatch + */ + public void fireCallEvent(CallEvent event) + { List listeners; synchronized (callListeners) @@ -176,7 +187,7 @@ public void fireCallEvent( "Dispatching a CallEvent to " + listener.getClass() + " . The event is: "+ event); - switch (eventID) + switch (event.getEventID()) { case CallEvent.CALL_INITIATED: listener.outgoingCallCreated(event);