From 4a409016a05c5975a38cbf19d6bb6fbfc29aaca0 Mon Sep 17 00:00:00 2001 From: Sebastien Vincent Date: Fri, 24 Feb 2012 09:05:38 +0000 Subject: [PATCH] Fixes merge to call feature when the merged call is from different protocol provider. --- .../impl/gui/main/call/CallManager.java | 1 + .../service/protocol/media/MediaAwareCall.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java b/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java index 91da30685..ab70e0e32 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java @@ -1378,6 +1378,7 @@ public void run() ProtocolProviderService pps = call.getProtocolProvider(); Iterator peers = call.getCallPeers(); CallGroup group = null; + if(existingCall != null) { if(existingCall.getCallGroup() == null) diff --git a/src/net/java/sip/communicator/service/protocol/media/MediaAwareCall.java b/src/net/java/sip/communicator/service/protocol/media/MediaAwareCall.java index 20ffff902..4ff37ecd2 100644 --- a/src/net/java/sip/communicator/service/protocol/media/MediaAwareCall.java +++ b/src/net/java/sip/communicator/service/protocol/media/MediaAwareCall.java @@ -1077,9 +1077,23 @@ public void callAdded(CallGroupEvent evt) c.addCallChangeListener(this); Iterator peers = c.getCallPeers(); + while(peers.hasNext()) { CallPeer p = peers.next(); + + if(p instanceof MediaAwareCallPeer) + { + System.out.println("p instanceof MediaAwareCallPeer"); + CallPeerMediaHandler mediaHandler = + ((MediaAwareCallPeer)p).getMediaHandler(); + + MediaStream stream = mediaHandler.getStream(MediaType.AUDIO); + if(stream != null) + stream.setDevice(this.getDefaultDevice(MediaType.AUDIO)); + // TODO video + } + getCrossProtocolCallPeersVector().add(p); fireCallPeerEvent(p, CallPeerEvent.CALL_PEER_ADDED); setConferenceFocus(true);