From 549cc87c8609f3e2128ddb27e65e6a0e4d83ea9f Mon Sep 17 00:00:00 2001 From: Lyubomir Marinov Date: Wed, 6 Oct 2010 12:11:50 +0000 Subject: [PATCH] Commits work in progress on supporting ICE in Jingle. --- lib/installer-exclude/ice4j.jar | Bin 280417 -> 283559 bytes .../impl/neomedia/MediaStreamImpl.java | 119 +++-- .../impl/protocol/jabber/CallJabberImpl.java | 50 +-- .../protocol/jabber/CallPeerJabberImpl.java | 89 ++-- .../CallPeerMediaHandlerJabberImpl.java | 382 ++++++++++++---- .../jabber/IceUdpTransportManager.java | 422 +++++++++++++++--- .../jabber/RawUdpTransportManager.java | 140 ++++-- .../jabber/TransportManagerJabberImpl.java | 60 ++- .../protocol/media/CallPeerMediaHandler.java | 73 ++- .../protocol/media/TransportManager.java | 115 +++-- 10 files changed, 1055 insertions(+), 395 deletions(-) diff --git a/lib/installer-exclude/ice4j.jar b/lib/installer-exclude/ice4j.jar index 6893ed7083bbcf19a7650b65a80803a5daca2cd5..e29fa550a395b2d5a82a418586fa511f1eabb7a1 100644 GIT binary patch delta 146554 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 XJ}_wmV`7LQSWX*ke^$@~PQ3pEs&mqy delta 143534 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

1c5n-DF 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 z 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 to which it is to send and + * from which it is to receive data (e.g. RTP) and control data (e.g. RTCP). + * In contrast to {@link #setTarget(MediaStreamTarget)}, sets the specified + * target on this MediaStreamImpl even if its current + * target is equal to the specified one. + * + * @param target the MediaStreamTarget describing the data + * (e.g. RTP) and the control data (e.g. RTCP) locations to which this + * MediaStream is to send and from which it is to receive + * @see MediaStreamImpl#setTarget(MediaStreamTarget) + */ + private void doSetTarget(MediaStreamTarget target) + { + rtpConnector.removeTargets(); + rtpConnectorTarget = null; + + boolean targetIsSet; + + if (target != null) + { + InetSocketAddress dataAddr = target.getDataAddress(); + InetSocketAddress controlAddr = target.getControlAddress(); + + try + { + rtpConnector + .addTarget( + new SessionAddress( + dataAddr.getAddress(), + dataAddr.getPort(), + controlAddr.getAddress(), + controlAddr.getPort())); + targetIsSet = true; + } + catch (IOException ioe) + { + // TODO + targetIsSet = false; + logger.error("Failed to set target " + target, ioe); + } + } + else + targetIsSet = true; + + if (targetIsSet) + { + rtpConnectorTarget = target; + + if (logger.isTraceEnabled()) + logger + .trace( + "Set target of " + + getClass().getSimpleName() + + " with hashCode " + + hashCode() + + " to " + + target); + } + } /** * Gets the MediaDevice that this stream uses to play back and * capture media. @@ -1091,8 +1151,17 @@ protected void rtpConnectorChanged( { zrtpControl.setConnector(newValue); - // Register the transform engines that we will be using in this stream. - rtpConnector.setEngine(createTransformEngineChain()); + if (newValue != null) + { + /* + * Register the transform engines that we will be using in this + * stream. + */ + newValue.setEngine(createTransformEngineChain()); + + if (rtpConnectorTarget != null) + doSetTarget(rtpConnectorTarget); + } } /** @@ -1354,51 +1423,7 @@ public void setTarget(MediaStreamTarget target) else if (target.equals(rtpConnectorTarget)) return; - rtpConnector.removeTargets(); - rtpConnectorTarget = null; - - boolean targetIsSet; - - if (target != null) - { - InetSocketAddress dataAddr = target.getDataAddress(); - InetSocketAddress controlAddr = target.getControlAddress(); - - try - { - rtpConnector - .addTarget( - new SessionAddress( - dataAddr.getAddress(), - dataAddr.getPort(), - controlAddr.getAddress(), - controlAddr.getPort())); - targetIsSet = true; - } - catch (IOException ioe) - { - // TODO - targetIsSet = false; - logger.error("Failed to set target " + target, ioe); - } - } - else - targetIsSet = true; - - if (targetIsSet) - { - rtpConnectorTarget = target; - - if (logger.isTraceEnabled()) - logger - .trace( - "Set target of " - + getClass().getSimpleName() - + " with hashCode " - + hashCode() - + " to " - + target); - } + doSetTarget(target); } /** diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/CallJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/CallJabberImpl.java index eaf84af36..0c20f135a 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/CallJabberImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/CallJabberImpl.java @@ -15,26 +15,23 @@ import net.java.sip.communicator.util.*; /** - * A Jabber implementation of the Call abstract class encapsulating Jabber - * jingle sessions. + * A Jabber implementation of the Call abstract class encapsulating + * Jabber jingle sessions. * * @author Emil Ivov */ -public class CallJabberImpl extends MediaAwareCall< - CallPeerJabberImpl, - OperationSetBasicTelephonyJabberImpl, - ProtocolProviderServiceJabberImpl> +public class CallJabberImpl + extends MediaAwareCall< + CallPeerJabberImpl, + OperationSetBasicTelephonyJabberImpl, + ProtocolProviderServiceJabberImpl> { /** - * Logger of this class + * The Logger used by the CallJabberImpl class and its + * instances for logging output. */ private static final Logger logger = Logger.getLogger(CallJabberImpl.class); - /** - * The operation set that created us. - */ - private final OperationSetBasicTelephonyJabberImpl parentOpSet; - /** * Indicates if the CallPeer will support inputevt * extension (i.e. will be able to be remote-controlled). @@ -42,11 +39,11 @@ public class CallJabberImpl extends MediaAwareCall< private boolean localInputEvtAware = false; /** - * Crates a CallJabberImpl instance belonging to sourceProvider and - * associated with the jingle session with the specified jingleSID. - * If this call corresponds to an incoming jingle session then the jingleSID - * would come from there. Otherwise one could generate one using {@link - * JingleIQ#generateSID()} + * Initializes a new CallJabberImpl instance belonging to + * sourceProvider and associated with the jingle session with the + * specified jingleSID. If the new instance corresponds to an + * incoming jingle session, then the jingleSID would come from there. + * Otherwise, one could generate one using {@link JingleIQ#generateSID()}. * * @param parentOpSet the {@link OperationSetBasicTelephonyJabberImpl} * instance in the context of which this call has been created. @@ -55,7 +52,6 @@ protected CallJabberImpl( OperationSetBasicTelephonyJabberImpl parentOpSet) { super(parentOpSet); - this.parentOpSet = parentOpSet; //let's add ourselves to the calls repo. we are doing it ourselves just //to make sure that no one ever forgets. @@ -113,9 +109,7 @@ public CallPeerJabberImpl processSessionInitiate(JingleIQ jingleIQ) // if this was the first peer we added in this call then the call is // new and we also need to notify everyone of its creation. if(this.getCallPeerCount() == 1) - { parentOpSet.fireCallEvent( CallEvent.CALL_RECEIVED, this); - } return callPeer; } @@ -142,6 +136,7 @@ public CallPeerJabberImpl initiateSession(String calleeJID, { // create the session-initiate IQ CallPeerJabberImpl callPeer = new CallPeerJabberImpl(calleeJID, this); + callPeer.setDiscoverInfo(discoverInfo); addCallPeer(callPeer); @@ -151,9 +146,7 @@ public CallPeerJabberImpl initiateSession(String calleeJID, // if this was the first peer we added in this call then the call is // new and we also need to notify everyone of its creation. if(this.getCallPeerCount() == 1) - { parentOpSet.fireCallEvent( (CallEvent.CALL_INITIATED), this); - } /* enable video if it is a videocall */ callPeer.getMediaHandler().setLocalVideoTransmissionEnabled( @@ -163,7 +156,7 @@ public CallPeerJabberImpl initiateSession(String calleeJID, //set call state to connecting so that the user interface would start //playing the tones. we do that here because we may be harvesting - //stun/turn addresses in initiateSession() which would take a while.. + //STUN/TURN addresses in initiateSession() which would take a while. callPeer.setState( CallPeerState.CONNECTING); callPeer.initiateSession(); @@ -187,9 +180,7 @@ public void modifyVideoContent(boolean allowed) "Stop local video streaming"); for(CallPeerJabberImpl peer : getCallPeersVector()) - { peer.sendModifyVideoContent(allowed); - } } /** @@ -203,13 +194,7 @@ public void modifyVideoContent(boolean allowed) */ public boolean containsJingleSID(String sid) { - for(CallPeerJabberImpl peer : getCallPeersVector()) - { - if (peer.getJingleSID().equals(sid)) - return true; - } - - return false; + return (getPeer(sid) != null); } /** @@ -228,7 +213,6 @@ public CallPeerJabberImpl getPeer(String sid) if (peer.getJingleSID().equals(sid)) return peer; } - return null; } } diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/CallPeerJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/CallPeerJabberImpl.java index cffe4e3b9..1ce5af63d 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/CallPeerJabberImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/CallPeerJabberImpl.java @@ -19,7 +19,7 @@ import net.java.sip.communicator.util.*; /** - * Our Jabber implementation of the default CallPeer; + * Implements a Jabber CallPeer. * * @author Emil Ivov */ @@ -29,11 +29,11 @@ public class CallPeerJabberImpl ProtocolProviderServiceJabberImpl> { /** - * The Logger used by the CallPeerJabberImpl - * class and its instances for logging output. + * The Logger used by the CallPeerJabberImpl class and its + * instances for logging output. */ - private static final Logger logger = Logger - .getLogger(CallPeerJabberImpl.class.getName()); + private static final Logger logger + = Logger.getLogger(CallPeerJabberImpl.class); /** * The jabber address of this peer @@ -99,7 +99,7 @@ public void setAddress(String address) fireCallPeerChangeEvent( CallPeerChangeEvent.CALL_PEER_ADDRESS_CHANGE, oldAddress, - address.toString()); + address); } /** @@ -111,15 +111,10 @@ public String getDisplayName() { if (getCall() != null) { - ProtocolProviderService pps = getCall().getProtocolProvider(); - OperationSetPresence opSetPresence - = pps.getOperationSet(OperationSetPresence.class); + Contact contact = getContact(); - Contact cont = opSetPresence.findContactByID(getAddress()); - if (cont != null) - { - return cont.getDisplayName(); - } + if (contact != null) + return contact.getDisplayName(); } return peerJID; } @@ -153,26 +148,30 @@ protected synchronized void processSessionInitiate(JingleIQ sessionInitIQ) this.sessionInitIQ = sessionInitIQ; this.isInitiator = true; - // This is the SDP offer that came from the initial session-initiate, - //contrary to sip we we are guaranteed to have content because XEP-0166 - //says: "A session consists of at least one content type at a time." + // This is the SDP offer that came from the initial session-initiate. + // Contrary to SIP, we are guaranteed to have content because XEP-0166 + // says: "A session consists of at least one content type at a time." List offer = sessionInitIQ.getContentList(); try { getMediaHandler().processOffer(offer); } - catch(Exception exc) + catch(Exception ex) { - logger.info("Failed to process an incoming session initiate", exc); + logger.info("Failed to process an incoming session initiate", ex); //send an error response; - JingleIQ errResp = JinglePacketFactory.createSessionTerminate( - sessionInitIQ.getTo(), sessionInitIQ.getFrom(), - sessionInitIQ.getSID(), Reason.INCOMPATIBLE_PARAMETERS, - "Error: " + exc.getMessage()); - - setState(CallPeerState.FAILED, "Error: " + exc.getMessage()); + String reasonText = "Error: " + ex.getMessage(); + JingleIQ errResp + = JinglePacketFactory.createSessionTerminate( + sessionInitIQ.getTo(), + sessionInitIQ.getFrom(), + sessionInitIQ.getSID(), + Reason.INCOMPATIBLE_PARAMETERS, + reasonText); + + setState(CallPeerState.FAILED, reasonText); getProtocolProvider().getConnection().sendPacket(errResp); return; } @@ -196,19 +195,25 @@ protected synchronized void initiateSession() throws OperationFailedException { isInitiator = false; + //Create the media description that we'd like to send to the other side. - List offer = getMediaHandler() - .createContentList(); + List offer + = getMediaHandler().createContentList(); //send a ringing response if (logger.isTraceEnabled()) logger.trace("will send ringing response: "); - this.sessionInitIQ = JinglePacketFactory - .createSessionInitiate( getProtocolProvider().getOurJID(), - this.peerJID, JingleIQ.generateSID(), offer); + ProtocolProviderServiceJabberImpl protocolProvider + = getProtocolProvider(); - getProtocolProvider().getConnection().sendPacket(sessionInitIQ); + this.sessionInitIQ + = JinglePacketFactory.createSessionInitiate( + protocolProvider.getOurJID(), + this.peerJID, + JingleIQ.generateSID(), + offer); + protocolProvider.getConnection().sendPacket(sessionInitIQ); } /** @@ -362,11 +367,11 @@ public void processSessionAccept(JingleIQ sessionInitIQ) { this.sessionInitIQ = sessionInitIQ; - List offer = sessionInitIQ.getContentList(); + List answer = sessionInitIQ.getContentList(); try { - getMediaHandler().processAnswer(offer); + getMediaHandler().processAnswer(answer); } catch(Exception exc) { @@ -495,8 +500,7 @@ private void sendAddVideoContent() try { - contents = getMediaHandler(). - createContentList(MediaType.VIDEO); + contents = getMediaHandler().createContentList(MediaType.VIDEO); } catch(Exception exc) { @@ -504,11 +508,16 @@ private void sendAddVideoContent() return; } - JingleIQ contentIQ = JinglePacketFactory - .createContentAdd(getProtocolProvider().getOurJID(), - this.peerJID, getJingleSID(), contents); + ProtocolProviderServiceJabberImpl protocolProvider + = getProtocolProvider(); + JingleIQ contentIQ + = JinglePacketFactory.createContentAdd( + protocolProvider.getOurJID(), + this.peerJID, + getJingleSID(), + contents); - getProtocolProvider().getConnection().sendPacket(contentIQ); + protocolProvider.getConnection().sendPacket(contentIQ); } /** @@ -730,9 +739,7 @@ public void processContentRemove(JingleIQ content) List contents = content.getContentList(); for(ContentPacketExtension ext : contents) - { getMediaHandler().removeRemoteContent(ext.getName()); - } } /** diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/CallPeerMediaHandlerJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/CallPeerMediaHandlerJabberImpl.java index 1ab2ae38c..f81bc2511 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/CallPeerMediaHandlerJabberImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/CallPeerMediaHandlerJabberImpl.java @@ -6,8 +6,11 @@ */ package net.java.sip.communicator.impl.protocol.jabber; +import java.lang.reflect.*; import java.util.*; +import org.jivesoftware.smackx.packet.*; + import net.java.sip.communicator.impl.protocol.jabber.extensions.jingle.*; import net.java.sip.communicator.impl.protocol.jabber.extensions.jingle.ContentPacketExtension.*; import net.java.sip.communicator.impl.protocol.jabber.jinglesdp.*; @@ -22,6 +25,7 @@ * An XMPP specific extension of the generic media handler. * * @author Emil Ivov + * @author Lyubomir Marinov */ public class CallPeerMediaHandlerJabberImpl extends CallPeerMediaHandler @@ -34,10 +38,10 @@ public class CallPeerMediaHandlerJabberImpl = Logger.getLogger(CallPeerMediaHandlerJabberImpl.class); /** - * A temporarily single transport manager that we use for generating - * addresses until we properly implement both ICE and Raw UDP managers. + * The TransportManager implementation handling our address + * management. */ - private final TransportManagerJabberImpl transportManager; + private TransportManagerJabberImpl transportManager; /** * The current description of the streams that we have going toward the @@ -76,8 +80,6 @@ public class CallPeerMediaHandlerJabberImpl public CallPeerMediaHandlerJabberImpl(CallPeerJabberImpl peer) { super(peer, peer); - - transportManager = new IceUdpTransportManager(peer); } /** @@ -94,12 +96,17 @@ public CallPeerMediaHandlerJabberImpl(CallPeerJabberImpl peer) * @throws OperationFailedException the exception that we wanted this method * to throw. */ - @Override - protected void throwOperationFailedException(String message, int errorCode, - Throwable cause) throws OperationFailedException + protected void throwOperationFailedException( + String message, + int errorCode, + Throwable cause) + throws OperationFailedException { ProtocolProviderServiceJabberImpl.throwOperationFailedException( - message, errorCode, cause, logger); + message, + errorCode, + cause, + logger); } /** @@ -188,8 +195,14 @@ protected MediaStream initStream(String streamName, List rtpExtensions) throws OperationFailedException { - MediaStream stream = super.initStream(connector, device, format, - target, direction, rtpExtensions); + MediaStream stream + = super.initStream( + connector, + device, + format, + target, + direction, + rtpExtensions); if(stream != null) stream.setName(streamName); @@ -218,8 +231,7 @@ public void processOffer(List offer) { // prepare to generate answers to all the incoming descriptions List answerContentList - = new ArrayList(offer.size()); - + = new ArrayList(offer.size()); boolean atLeastOneValidDescription = false; for (ContentPacketExtension content : offer) @@ -227,18 +239,19 @@ public void processOffer(List offer) remoteContentMap.put(content.getName(), content); RtpDescriptionPacketExtension description - = JingleUtils.getRtpDescription(content); + = JingleUtils.getRtpDescription(content); MediaType mediaType - = MediaType.parseString( description.getMedia() ); + = MediaType.parseString( description.getMedia() ); - List remoteFormats = JingleUtils.extractFormats( - description, getDynamicPayloadTypes()); + List remoteFormats + = JingleUtils.extractFormats( + description, + getDynamicPayloadTypes()); MediaDevice dev = getDefaultDevice(mediaType); - MediaDirection devDirection = (dev == null) - ? MediaDirection.INACTIVE - : dev.getDirection(); + MediaDirection devDirection + = (dev == null) ? MediaDirection.INACTIVE : dev.getDirection(); // Take the preference of the user with respect to streaming // mediaType into account. @@ -272,6 +285,22 @@ public void processOffer(List offer) int targetDataPort = target.getDataAddress().getPort(); + // transport + /* + * RawUdpTransportPacketExtension extends + * IceUdpTransportPacketExtension so getting + * IceUdpTransportPacketExtension should suffice. + */ + IceUdpTransportPacketExtension transport + = content.getFirstChildOfType( + IceUdpTransportPacketExtension.class); + + /* + * TODO If the offered transport is not supported, attempt to + * fall back to a supported one using transport-replace. + */ + setTransportManager(transport.getNamespace()); + if (mutuallySupportedFormats.isEmpty() || (devDirection == MediaDirection.INACTIVE) || (targetDataPort == 0)) @@ -331,10 +360,14 @@ public void processOffer(List offer) } if (!atLeastOneValidDescription) - ProtocolProviderServiceJabberImpl - .throwOperationFailedException("Offer contained no media " - + " formats or no valid media descriptions.", - OperationFailedException.ILLEGAL_ARGUMENT, null, logger); + { + ProtocolProviderServiceJabberImpl.throwOperationFailedException( + "Offer contained no media formats" + + " or no valid media descriptions.", + OperationFailedException.ILLEGAL_ARGUMENT, + null, + logger); + } //now, before we go, tell the transport manager to start our candidate //harvest @@ -354,20 +387,22 @@ public void processOffer(List offer) protected List generateSessionAccept() throws OperationFailedException { + TransportManagerJabberImpl transportManager = getTransportManager(); List sessAccept - = getTransportManager().wrapupHarvest(); + = transportManager.wrapupHarvest(); + CallPeerJabberImpl peer = getPeer(); //user answered an incoming call so we go through whatever content //entries we are initializing and init their corresponding streams for(ContentPacketExtension ourContent : sessAccept) { RtpDescriptionPacketExtension description - = JingleUtils.getRtpDescription(ourContent); + = JingleUtils.getRtpDescription(ourContent); MediaType type = MediaType.parseString(description.getMedia()); // StreamConnector connector - = getTransportManager().getStreamConnector(type); + = transportManager.getStreamConnector(type); //the device this stream would be reading from and writing to. MediaDevice dev = getDefaultDevice(type); @@ -382,7 +417,7 @@ protected List generateSessionAccept() //stream direction MediaDirection direction = JingleUtils.getDirection( - ourContent, !getPeer().isInitiator()); + ourContent, !peer.isInitiator()); //let's now see what was the format we announced as first and //configure the stream with it. @@ -425,15 +460,13 @@ protected List generateSessionAccept() if(ourContent.getChildExtensionsOfType( InputEvtPacketExtension.class) != null) { - OperationSetDesktopSharingClientJabberImpl client = - (OperationSetDesktopSharingClientJabberImpl) - this.getPeer().getProtocolProvider().getOperationSet( - OperationSetDesktopSharingClient.class); + OperationSetDesktopSharingClientJabberImpl client + = (OperationSetDesktopSharingClientJabberImpl) + peer.getProtocolProvider().getOperationSet( + OperationSetDesktopSharingClient.class); - if(client != null) - { + if (client != null) client.fireRemoteControlGranted(); - } } } return sessAccept; @@ -447,14 +480,14 @@ protected List generateSessionAccept() * @return the {@link ContentPacketExtension}s of stream that this * handler is prepared to initiate. * @throws OperationFailedException if we fail to create the descriptions - * for reasons like - problems with device interaction, allocating ports, - * etc. + * for reasons like problems with device interaction, allocating ports, etc. */ private ContentPacketExtension createContent(MediaDevice dev) + throws OperationFailedException { - MediaDirection direction = dev.getDirection().and( - getDirectionUserPreference( - dev.getMediaType())); + MediaDirection direction + = dev.getDirection().and( + getDirectionUserPreference(dev.getMediaType())); if(isLocallyOnHold()) direction = direction.and(MediaDirection.SENDONLY); @@ -469,10 +502,11 @@ private ContentPacketExtension createContent(MediaDevice dev) if(getPeer().getCall().isSipZrtpAttribute()) { ZrtpControl control = getZrtpControls().get(dev.getMediaType()); + if(control == null) { - control = JabberActivator.getMediaService() - .createZrtpControl(); + control + = JabberActivator.getMediaService().createZrtpControl(); getZrtpControls().put(dev.getMediaType(), control); } @@ -482,6 +516,7 @@ private ContentPacketExtension createContent(MediaDevice dev) { ZrtpHashPacketExtension hash = new ZrtpHashPacketExtension(); + hash.setVersion(helloHash[0]); hash.setValue(helloHash[1]); @@ -534,10 +569,15 @@ public List createContentList(MediaType mediaType) } //now add the transport elements - getTransportManager().startCandidateHarvest(mediaDescs); + TransportManagerJabberImpl transportManager = getTransportManager(); + + transportManager.startCandidateHarvest(mediaDescs); - //XXX ideally we wouldn't wrapup that quickly. we need to revisit this - return getTransportManager().wrapupHarvest(); + /* + * XXX Ideally, we wouldn't wrap up that quickly. We need to revisit + * this. + */ + return transportManager.wrapupHarvest(); } /** @@ -550,15 +590,14 @@ public List createContentList(MediaType mediaType) * streams that this handler is prepared to initiate. * * @throws OperationFailedException if we fail to create the descriptions - * for reasons like - problems with device interaction, allocating ports, - * etc. + * for reasons like problems with device interaction, allocating ports, etc. */ public List createContentList() throws OperationFailedException { //Audio Media Description List mediaDescs - = new ArrayList(); + = new ArrayList(); for (MediaType mediaType : MediaType.values()) { @@ -574,9 +613,11 @@ public List createContentList() if(direction != MediaDirection.INACTIVE) { - ContentPacketExtension content = createContentForOffer( - dev.getSupportedFormats(), direction, - dev.getSupportedExtensions()); + ContentPacketExtension content + = createContentForOffer( + dev.getSupportedFormats(), + direction, + dev.getSupportedExtensions()); //ZRTP if(getPeer().getCall().isSipZrtpAttribute()) @@ -607,8 +648,8 @@ public List createContentList() */ RtpDescriptionPacketExtension description = JingleUtils.getRtpDescription(content); - if(description.getMedia().equals( - MediaType.VIDEO.toString()) && localInputEvtAware) + if(description.getMedia().equals(MediaType.VIDEO.toString()) + && localInputEvtAware) { content.addChildExtension( new InputEvtPacketExtension()); @@ -622,18 +663,24 @@ public List createContentList() //fail if all devices were inactive if(mediaDescs.isEmpty()) { - ProtocolProviderServiceJabberImpl - .throwOperationFailedException( - "We couldn't find any active Audio/Video devices and " - + "couldn't create a call", - OperationFailedException.GENERAL_ERROR, null, logger); + ProtocolProviderServiceJabberImpl.throwOperationFailedException( + "We couldn't find any active Audio/Video devices" + + " and couldn't create a call", + OperationFailedException.GENERAL_ERROR, + null, + logger); } //now add the transport elements - getTransportManager().startCandidateHarvest(mediaDescs); + TransportManagerJabberImpl transportManager = getTransportManager(); + + transportManager.startCandidateHarvest(mediaDescs); - //XXX ideally we wouldn't wrapup that quickly. we need to revisit this - return getTransportManager().wrapupHarvest(); + /* + * XXX Ideally, we wouldn't wrap up that quickly. We need to revisit + * this. + */ + return transportManager.wrapupHarvest(); } /** @@ -656,14 +703,15 @@ private ContentPacketExtension createContentForOffer( MediaDirection direction, List supportedExtensions) { - ContentPacketExtension content = JingleUtils.createDescription( - CreatorEnum.initiator, - supportedFormats.get(0).getMediaType().toString(), - JingleUtils.getSenders(direction, !getPeer().isInitiator()), - supportedFormats, - supportedExtensions, - getDynamicPayloadTypes(), - getRtpExtensionsRegistry()); + ContentPacketExtension content + = JingleUtils.createDescription( + CreatorEnum.initiator, + supportedFormats.get(0).getMediaType().toString(), + JingleUtils.getSenders(direction, !getPeer().isInitiator()), + supportedFormats, + supportedExtensions, + getDynamicPayloadTypes(), + getRtpExtensionsRegistry()); this.localContentMap.put(content.getName(), content); return content; @@ -708,10 +756,11 @@ public void reinitAllContents() * in this operation can synchronize to the mediaHandler instance to wait * processing to stop (method setState in CallPeer). */ - public void reinitContent(String name, + public void reinitContent( + String name, ContentPacketExtension.SendersEnum senders) - throws OperationFailedException, - IllegalArgumentException + throws OperationFailedException, + IllegalArgumentException { ContentPacketExtension ext = remoteContentMap.get(name); @@ -790,13 +839,13 @@ public void removeRemoteContent(String name) */ private void processContent(ContentPacketExtension content) throws OperationFailedException, - IllegalArgumentException + IllegalArgumentException { RtpDescriptionPacketExtension description - = JingleUtils.getRtpDescription(content); + = JingleUtils.getRtpDescription(content); MediaType mediaType - = MediaType.parseString( description.getMedia() ); + = MediaType.parseString( description.getMedia() ); //stream target MediaStreamTarget target @@ -882,24 +931,130 @@ public void processAnswer(List answer) throws OperationFailedException, IllegalArgumentException { - for ( ContentPacketExtension content : answer) + for (ContentPacketExtension content : answer) { remoteContentMap.put(content.getName(), content); processContent(content); } + + /* + * Since we've received (the) remote candidates from the peer, we can + * start checking them for connectivity. + */ + startConnectivityEstablishment(answer); } /** - * Returns the transport manager that is handling our address management. + * Gets the TransportManager implementation handling our address + * management. * - * @return the transport manager that is handling our address management. + * @return the TransportManager implementation handling our address + * management + * @see CallPeerMediaHandler#getTransportManager() */ public TransportManagerJabberImpl getTransportManager() { + if (transportManager == null) + { + CallPeerJabberImpl peer = getPeer(); + + if (peer.isInitiator()) + { + throw new IllegalStateException( + "The initiator is expected to specify the transport" + + " in their offer."); + } + else + { + ScServiceDiscoveryManager discoveryManager + = peer.getProtocolProvider().getDiscoveryManager(); + DiscoverInfo peerDiscoverInfo = peer.getDiscoverInfo(); + + if (discoveryManager.includesFeature( + ProtocolProviderServiceJabberImpl + .URN_XMPP_JINGLE_ICE_UDP_1) + && ((peerDiscoverInfo == null) + || peerDiscoverInfo.containsFeature( + ProtocolProviderServiceJabberImpl + .URN_XMPP_JINGLE_ICE_UDP_1))) + { + transportManager = new IceUdpTransportManager(peer); + } + else if (discoveryManager.includesFeature( + ProtocolProviderServiceJabberImpl + .URN_XMPP_JINGLE_RAW_UDP_0) + && ((peerDiscoverInfo == null) + || peerDiscoverInfo.containsFeature( + ProtocolProviderServiceJabberImpl + .URN_XMPP_JINGLE_RAW_UDP_0))) + { + transportManager = new RawUdpTransportManager(peer); + } + else if (logger.isDebugEnabled()) + { + logger.debug( + "No known Jingle transport supported" + + " by Jabber call peer " + + peer); + } + } + } return transportManager; } + /** + * Sets the TransportManager implementation to handle our address + * management by Jingle transport XML namespace. + * + * @param xmlns the Jingle transport XML namespace specifying the + * TransportManager implementation type to be set on this instance + * to handle our address management + * @throws IllegalArgumentException if the specified xmlns does not + * specify a (supported) TransportManager implementation type + */ + private void setTransportManager(String xmlns) + throws IllegalArgumentException + { + // Is this really going to be an actual change? + if ((transportManager != null) + && transportManager.getXmlNamespace().equals(xmlns)) + { + return; + } + + CallPeerJabberImpl peer = getPeer(); + + if (!peer + .getProtocolProvider() + .getDiscoveryManager().includesFeature(xmlns)) + { + throw new IllegalArgumentException( + "Unsupported Jingle transport " + xmlns); + } + + /* + * TODO The transportManager is going to be changed so it may need to be + * disposed prior to the change. + */ + + if (xmlns.equals( + ProtocolProviderServiceJabberImpl.URN_XMPP_JINGLE_ICE_UDP_1)) + { + transportManager = new IceUdpTransportManager(peer); + } + else if (xmlns.equals( + ProtocolProviderServiceJabberImpl.URN_XMPP_JINGLE_RAW_UDP_0)) + { + transportManager = new RawUdpTransportManager(peer); + } + else + { + throw new IllegalArgumentException( + "Unsupported Jingle transport " + xmlns); + } + } + /** * Acts upon a notification received from the remote party indicating that * they've put us on/off hold. @@ -910,6 +1065,7 @@ public TransportManagerJabberImpl getTransportManager() public void setRemotelyOnHold(boolean onHold) { this.remotelyOnHold = onHold; + MediaStream audioStream = getStream(MediaType.AUDIO); MediaStream videoStream = getStream(MediaType.VIDEO); @@ -969,8 +1125,9 @@ private MediaDirection calculatePostHoldDirection(MediaStream stream) //2. check the user preference. MediaDevice device = stream.getDevice(); - postHoldDir = postHoldDir - .and(getDirectionUserPreference(device.getMediaType())); + postHoldDir + = postHoldDir.and( + getDirectionUserPreference(device.getMediaType())); //3. check our local hold status. if(isLocallyOnHold()) @@ -983,4 +1140,69 @@ private MediaDirection calculatePostHoldDirection(MediaStream stream) return postHoldDir; } + + /** + * Overrides {@link CallPeerMediaHandler#start()}. Prior to starting this + * CallPeerMediaHandler, makes sure connectivity establishment + * through the associated TransportManager has been started in + * order to determine the StreamConnectors and the + * MediaStreamTargets of the MediaStreams managed by this + * instance. + * + * @throws IllegalStateException if this CallPeerMediaHandler has + * not first seen a media description or has not generated an offer + * @see CallPeerMediaHandler#start() + */ + @Override + public void start() + throws IllegalStateException + { + if (getPeer().isInitiator()) + { + try + { + startConnectivityEstablishment(remoteContentMap.values()); + } + catch (OperationFailedException ofe) + { + throw new UndeclaredThrowableException(ofe); + } + } + + super.start(); + } + + /** + * Starts the connectivity establishment of the associated + * TransportManagerJabberImpl i.e. checks the connectivity between + * the local and the remote peers given the remote counterpart of the + * negotiation between them and sets the respective connectors and + * targets of the associated MediaStreams. + * + * @param remote the collection of ContentPacketExtensions which + * represents the remote counterpart of the negotiation between the local + * and the remote peers + * @throws OperationFailedException if anything goes wrong while starting + * the connectivity establishment or setting the connectors or + * targets of the associated MediaStreams + */ + private void startConnectivityEstablishment( + Collection remote) + throws OperationFailedException + { + TransportManagerJabberImpl transportManager = getTransportManager(); + + transportManager.startConnectivityEstablishment(remote); + for (MediaType mediaType : MediaType.values()) + { + MediaStream stream = getStream(mediaType); + + if (stream != null) + { + stream.setConnector( + transportManager.getStreamConnector(mediaType)); + stream.setTarget(transportManager.getStreamTarget(mediaType)); + } + } + } } diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/IceUdpTransportManager.java b/src/net/java/sip/communicator/impl/protocol/jabber/IceUdpTransportManager.java index e8b357c19..04ca8cebb 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/IceUdpTransportManager.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/IceUdpTransportManager.java @@ -6,10 +6,13 @@ */ package net.java.sip.communicator.impl.protocol.jabber; +import java.beans.*; +import java.net.*; import java.util.*; import net.java.sip.communicator.impl.protocol.jabber.extensions.jingle.*; import net.java.sip.communicator.impl.protocol.jabber.jinglesdp.*; +import net.java.sip.communicator.service.neomedia.*; import net.java.sip.communicator.service.netaddr.*; import net.java.sip.communicator.service.protocol.*; import net.java.sip.communicator.util.*; @@ -24,6 +27,7 @@ * candidate management. * * @author Emil Ivov + * @author Lyubomir Marinov */ public class IceUdpTransportManager extends TransportManagerJabberImpl @@ -32,12 +36,19 @@ public class IceUdpTransportManager * The Logger used by the IceUdpTransportManager * class and its instances for logging output. */ - private static final Logger logger = Logger - .getLogger(IceUdpTransportManager.class.getName()); + private static final Logger logger + = Logger.getLogger(IceUdpTransportManager.class); + + /** + * The ICE Component IDs in their common order used, for example, + * by DefaultStreamConnector, MediaStreamTarget. + */ + private static final int[] COMPONENT_IDS + = new int[] { Component.RTP, Component.RTCP }; /** * This is where we keep our answer between the time we get the offer and - * are ready with the answer; + * are ready with the answer. */ private List cpeList; @@ -54,7 +65,7 @@ public class IceUdpTransportManager * @param callPeer the {@link CallPeer} whose traffic we will be taking * care of. */ - protected IceUdpTransportManager(CallPeerJabberImpl callPeer) + public IceUdpTransportManager(CallPeerJabberImpl callPeer) { super(callPeer); @@ -70,12 +81,18 @@ protected IceUdpTransportManager(CallPeerJabberImpl callPeer) */ private Agent createIceAgent() { - ProtocolProviderServiceJabberImpl provider - = getCallPeer().getProtocolProvider(); + CallPeerJabberImpl peer = getCallPeer(); + ProtocolProviderServiceJabberImpl provider = peer.getProtocolProvider(); NetworkAddressManagerService namSer = getNetAddrMgr(); Agent agent = namSer.createIceAgent(); + /* + * XEP-0176: the initiator MUST include the ICE-CONTROLLING attribute, + * the responder MUST include the ICE-CONTROLLED attribute. + */ + agent.setControlling(!peer.isInitiator()); + //we will now create the harvesters JabberAccountID accID = (JabberAccountID)provider.getAccountID(); @@ -84,15 +101,18 @@ private Agent createIceAgent() //the default server is supposed to use the same user name and //password as the account itself. String username = provider.getOurJID(); - String password = JabberActivator - .getProtocolProviderFactory().loadPassword(accID); + String password + = JabberActivator.getProtocolProviderFactory().loadPassword( + accID); - StunCandidateHarvester autoHarvester = namSer.discoverStunServer( - accID.getService(), - StringUtils.getUTF8Bytes(username), - StringUtils.getUTF8Bytes(password) ); + StunCandidateHarvester autoHarvester + = namSer.discoverStunServer( + accID.getService(), + StringUtils.getUTF8Bytes(username), + StringUtils.getUTF8Bytes(password)); - logger.info("Auto discovered harvester is " + autoHarvester); + if (logger.isInfoEnabled()) + logger.info("Auto discovered harvester is " + autoHarvester); if (autoHarvester != null) agent.addCandidateHarvester(autoHarvester); @@ -110,9 +130,12 @@ private Agent createIceAgent() if(desc.isTurnSupported()) { //Yay! a TURN server - harvester = new TurnCandidateHarvester( - addr, new LongTermCredential( - desc.getUsername(), desc.getPassword())); + harvester + = new TurnCandidateHarvester( + addr, + new LongTermCredential( + desc.getUsername(), + desc.getPassword())); } else { @@ -120,7 +143,8 @@ addr, new LongTermCredential( harvester = new StunCandidateHarvester(addr); } - logger.info("Adding pre-conficugred harvester " + harvester); + if (logger.isInfoEnabled()) + logger.info("Adding pre-configured harvester " + harvester); agent.addCandidateHarvester(harvester); } @@ -128,6 +152,206 @@ addr, new LongTermCredential( return agent; } + /** + * Initializes a new StreamConnector to be used as the + * connector of the MediaStream with a specific + * MediaType. + * + * @param mediaType the MediaType of the MediaStream which + * is to have its connector set to the returned + * StreamConnector + * @return a new StreamConnector to be used as the + * connector of the MediaStream with the specified + * MediaType + * @throws OperationFailedException if anything goes wrong while + * initializing the new StreamConnector + */ + @Override + protected StreamConnector createStreamConnector(MediaType mediaType) + throws OperationFailedException + { + DatagramSocket[] streamConnectorSockets + = getStreamConnectorSockets(mediaType); + + /* + * XXX If the iceAgent has not completed (yet), go with a default + * StreamConnector (until it completes). + */ + return + (streamConnectorSockets == null) + ? super.createStreamConnector(mediaType) + : new DefaultStreamConnector( + streamConnectorSockets[0 /* RTP */], + streamConnectorSockets[1 /* RTCP */]); + } + + /** + * Gets the StreamConnector to be used as the connector of + * the MediaStream with a specific MediaType. + * + * @param mediaType the MediaType of the MediaStream which + * is to have its connector set to the returned + * StreamConnector + * @return the StreamConnector to be used as the connector + * of the MediaStream with the specified MediaType + * @throws OperationFailedException if anything goes wrong while + * initializing the requested StreamConnector + * @see net.java.sip.communicator.service.protocol.media.TransportManager#getStreamConnector(MediaType) + */ + @Override + public StreamConnector getStreamConnector(MediaType mediaType) + throws OperationFailedException + { + StreamConnector streamConnector = super.getStreamConnector(mediaType); + + /* + * Since the super caches the StreamConnectors, make sure that the + * returned one is up-to-date with the iceAgent. + */ + if (streamConnector != null) + { + DatagramSocket[] streamConnectorSockets + = getStreamConnectorSockets(mediaType); + + /* + * XXX If the iceAgent has not completed (yet), go with the default + * StreamConnector (until it completes). + */ + if ((streamConnectorSockets != null) + && ((streamConnector.getDataSocket() + != streamConnectorSockets[0 /* RTP */]) + || (streamConnector.getControlSocket() + != streamConnectorSockets[1 /* RTCP */]))) + { + // Recreate the StreamConnector for the specified mediaType. + closeStreamConnector(mediaType); + streamConnector = super.getStreamConnector(mediaType); + } + } + return streamConnector; + } + + /** + * Gets an array of DatagramSockets which represents the sockets to + * be used by the StreamConnector with the specified + * MediaType in the order of {@link #COMPONENT_IDS} if + * {@link #iceAgent} has completed. + * + * @param mediaType the MediaType of the StreamConnector + * for which the DatagramSockets are to be returned + * @return an array of DatagramSockets which represents the sockets + * to be used by the StreamConnector which the specified + * MediaType in the order of {@link #COMPONENT_IDS} if + * {@link #iceAgent} has completed; otherwise, null + */ + private DatagramSocket[] getStreamConnectorSockets(MediaType mediaType) + { + IceMediaStream stream = iceAgent.getStream(mediaType.toString()); + + if (stream != null) + { + DatagramSocket[] streamConnectorSockets + = new DatagramSocket[COMPONENT_IDS.length]; + int streamConnectorSocketCount = 0; + + for (int i = 0; i < COMPONENT_IDS.length; i++) + { + Component component = stream.getComponent(COMPONENT_IDS[i]); + + if (component != null) + { + CandidatePair selectedPair = component.getSelectedPair(); + + if (selectedPair != null) + { + DatagramSocket streamConnectorSocket + = selectedPair.getLocalCandidate().getSocket(); + + if (streamConnectorSocket != null) + { + streamConnectorSockets[i] = streamConnectorSocket; + streamConnectorSocketCount++; + } + } + } + } + if (streamConnectorSocketCount > 0) + return streamConnectorSockets; + } + return null; + } + + /** + * Implements {@link TransportManagerJabberImpl#getStreamTarget(MediaType)}. + * Gets the MediaStreamTarget to be used as the target of + * the MediaStream with a specific MediaType. + * + * @param mediaType the MediaType of the MediaStream which + * is to have its target set to the returned + * MediaStreamTarget + * @return the MediaStreamTarget to be used as the target + * of the MediaStream with the specified MediaType + * @see TransportManagerJabberImpl#getStreamTarget(MediaType) + */ + public MediaStreamTarget getStreamTarget(MediaType mediaType) + { + IceMediaStream stream = iceAgent.getStream(mediaType.toString()); + MediaStreamTarget streamTarget = null; + + if (stream != null) + { + InetSocketAddress[] streamTargetAddresses + = new InetSocketAddress[COMPONENT_IDS.length]; + int streamTargetAddressCount = 0; + + for (int i = 0; i < COMPONENT_IDS.length; i++) + { + Component component = stream.getComponent(COMPONENT_IDS[i]); + + if (component != null) + { + CandidatePair selectedPair = component.getSelectedPair(); + + if (selectedPair != null) + { + InetSocketAddress streamTargetAddress + = selectedPair + .getRemoteCandidate() + .getTransportAddress(); + + if (streamTargetAddress != null) + { + streamTargetAddresses[i] = streamTargetAddress; + streamTargetAddressCount++; + } + } + } + } + if (streamTargetAddressCount > 0) + { + streamTarget + = new MediaStreamTarget( + streamTargetAddresses[0 /* RTP */], + streamTargetAddresses[1 /* RTCP */]); + } + } + return streamTarget; + } + + /** + * Implements {@link TransportManagerJabberImpl#getXmlNamespace()}. Gets the + * XML namespace of the Jingle transport implemented by this + * TransportManagerJabberImpl. + * + * @return the XML namespace of the Jingle transport implemented by this + * TransportManagerJabberImpl + * @see TransportManagerJabberImpl#getXmlNamespace() + */ + public String getXmlNamespace() + { + return ProtocolProviderServiceJabberImpl.URN_XMPP_JINGLE_ICE_UDP_1; + } + /** * Starts transport candidate harvest. This method should complete rapidly * and, in case of lengthy procedures like STUN/TURN/UPnP candidate harvests @@ -158,15 +382,13 @@ public void startCandidateHarvest(List theirOffer, continue; RtpDescriptionPacketExtension rtpDesc - = (RtpDescriptionPacketExtension)ourContent - .getFirstChildOfType(RtpDescriptionPacketExtension.class); + = ourContent.getFirstChildOfType( + RtpDescriptionPacketExtension.class); IceMediaStream stream = createIceStream(rtpDesc.getMedia()); //we now generate the XMPP code containing the candidates. ourContent.addChildExtension(JingleUtils.createTransport(stream)); - - } this.cpeList = ourAnswer; @@ -191,12 +413,11 @@ public void startCandidateHarvest( for(ContentPacketExtension ourContent : ourOffer) { RtpDescriptionPacketExtension rtpDesc - = (RtpDescriptionPacketExtension)ourContent - .getFirstChildOfType(RtpDescriptionPacketExtension.class); + = ourContent.getFirstChildOfType( + RtpDescriptionPacketExtension.class); IceMediaStream stream = createIceStream(rtpDesc.getMedia()); - //we now generate the XMPP code containing the candidates. ourContent.addChildExtension(JingleUtils.createTransport(stream)); } @@ -225,11 +446,12 @@ private IceMediaStream createIceStream(String media) stream = getNetAddrMgr().createIceStream( nextMediaPortToTry, media, iceAgent); } - catch (Exception exc) + catch (Exception ex) { throw new OperationFailedException( "Failed to initialize stream " + media, - OperationFailedException.INTERNAL_ERROR); + OperationFailedException.INTERNAL_ERROR, + ex); } //let's now update the next port var as best we can: we would assume @@ -252,8 +474,6 @@ private IceMediaStream createIceStream(String media) return stream; } - - /** * Simply returns the list of local candidates that we gathered during the * harvest. This is a raw udp transport manager so there's no real wrapping @@ -267,29 +487,6 @@ public List wrapupHarvest() return cpeList; } - /** - * Looks through the cpExtList and returns the {@link - * ContentPacketExtension} with the specified name. - * - * @param cpExtList the list that we will be searching for a specific - * content. - * @param name the name of the content element we are looking for. - * @return the {@link ContentPacketExtension} with the specified name or - * null if no such content element exists. - */ - private ContentPacketExtension findContentByName( - List cpExtList, - String name) - { - for(ContentPacketExtension cpExt : cpExtList) - { - if(cpExt.getName().equals(name)) - return cpExt; - } - - return null; - } - /** * Returns a reference to the {@link NetworkAddressManagerService}. The only * reason this method exists is that {@link JabberActivator @@ -302,4 +499,127 @@ private static NetworkAddressManagerService getNetAddrMgr() { return JabberActivator.getNetworkAddressManagerService(); } + + /** + * Implements + * {@link TransportManagerJabberImpl#startConnectivityEstablishment(Collection)}. + * Starts the connectivity establishment of the associated ICE + * Agent and waits for it to complete. + * + * @param remote the collection of ContentPacketExtensions which + * represents the remote counterpart of the negotiation between the local + * and the remote peers + * @see TransportManagerJabberImpl#startConnectivityEstablishment(Collection) + */ + public void startConnectivityEstablishment( + Collection remote) + { + int generation = iceAgent.getGeneration(); + + for (ContentPacketExtension content : remote) + { + IceUdpTransportPacketExtension transport + = content.getFirstChildOfType( + IceUdpTransportPacketExtension.class); + + String ufrag = transport.getUfrag(); + + if (ufrag != null) + iceAgent.setRemoteUfrag(ufrag); + + String password = transport.getPassword(); + + if (password != null) + iceAgent.setRemotePassword(password); + + List candidates + = transport.getChildExtensionsOfType( + CandidatePacketExtension.class); + + RtpDescriptionPacketExtension description + = content.getFirstChildOfType( + RtpDescriptionPacketExtension.class); + IceMediaStream stream = iceAgent.getStream(description.getMedia()); + + for (CandidatePacketExtension candidate : candidates) + { + /* + * Is the remote candidate from the current generation of the + * iceAgent? + */ + if (candidate.getGeneration() != generation) + continue; + + Component component + = stream.getComponent(candidate.getComponent()); + + component.addRemoteCandidate( + new RemoteCandidate( + new TransportAddress( + candidate.getIP(), + candidate.getPort(), + Transport.parse( + candidate.getProtocol())), + component, + org.ice4j.ice.CandidateType.parse( + candidate.getType().toString()), + Integer.toString(candidate.getFoundation()), + candidate.getPriority())); + } + } + + final Object[] iceProcessingState = new Object[1]; + PropertyChangeListener stateChangeListener + = new PropertyChangeListener() + { + public void propertyChange(PropertyChangeEvent evt) + { + Object newValue = evt.getNewValue(); + + if (IceProcessingState.COMPLETED.equals(newValue) + || IceProcessingState.FAILED.equals(newValue) + || IceProcessingState.TERMINATED.equals(newValue)) + { + if (logger.isTraceEnabled()) + logger.trace("ICE " + newValue); + + Agent iceAgent = (Agent) evt.getSource(); + + iceAgent.removeStateChangeListener(this); + + if (iceAgent == IceUdpTransportManager.this.iceAgent) + { + synchronized (iceProcessingState) + { + iceProcessingState[0] = newValue; + iceProcessingState.notify(); + } + } + } + } + }; + + iceAgent.addStateChangeListener(stateChangeListener); + iceAgent.startConnectivityEstablishment(); + + // Wait for the connectivity checks to finish. + boolean interrupted = false; + + synchronized (iceProcessingState) + { + while (iceProcessingState[0] == null) + { + try + { + iceProcessingState.wait(); + } + catch (InterruptedException ie) + { + interrupted = true; + } + } + } + if (interrupted) + Thread.currentThread().interrupt(); + } } diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/RawUdpTransportManager.java b/src/net/java/sip/communicator/impl/protocol/jabber/RawUdpTransportManager.java index 1e889f103..a91fc7b74 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/RawUdpTransportManager.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/RawUdpTransportManager.java @@ -9,6 +9,7 @@ import java.util.*; import net.java.sip.communicator.impl.protocol.jabber.extensions.jingle.*; +import net.java.sip.communicator.impl.protocol.jabber.jinglesdp.*; import net.java.sip.communicator.service.neomedia.*; import net.java.sip.communicator.service.protocol.*; @@ -17,15 +18,23 @@ * single candidate pair (i.e. RTP and RTCP). * * @author Emil Ivov + * @author Lyubomir Marinov */ public class RawUdpTransportManager extends TransportManagerJabberImpl { /** - * This is where we keep our answer between the time we get the offer and - * are ready with the answer; + * The list of ContentPacketExtensions which represents the local + * counterpart of the negotiation between the local and the remote peers. */ - private List cpeList; + private List local; + + /** + * The collection of ContentPacketExtensions which represents the + * remote counterpart of the negotiation between the local and the remote + * peers. + */ + private Collection remote; /** * Creates a new instance of this transport manager, binding it to the @@ -34,11 +43,61 @@ public class RawUdpTransportManager * @param callPeer the {@link CallPeer} whose traffic we will be taking * care of. */ - protected RawUdpTransportManager(CallPeerJabberImpl callPeer) + public RawUdpTransportManager(CallPeerJabberImpl callPeer) { super(callPeer); } + /** + * Implements {@link TransportManagerJabberImpl#getStreamTarget(MediaType)}. + * Gets the MediaStreamTarget to be used as the target of + * the MediaStream with a specific MediaType. + * + * @param mediaType the MediaType of the MediaStream which + * is to have its target set to the returned + * MediaStreamTarget + * @return the MediaStreamTarget to be used as the target + * of the MediaStream with the specified MediaType + * @see TransportManagerJabberImpl#getStreamTarget(MediaType) + */ + public MediaStreamTarget getStreamTarget(MediaType mediaType) + { + MediaStreamTarget streamTarget = null; + + if (remote != null) + { + for (ContentPacketExtension content : remote) + { + RtpDescriptionPacketExtension rtpDescription + = content.getFirstChildOfType( + RtpDescriptionPacketExtension.class); + MediaType contentMediaType + = MediaType.parseString(rtpDescription.getMedia()); + + if (mediaType.equals(contentMediaType)) + { + streamTarget = JingleUtils.extractDefaultTarget(content); + break; + } + } + } + return streamTarget; + } + + /** + * Implements {@link TransportManagerJabberImpl#getXmlNamespace()}. Gets the + * XML namespace of the Jingle transport implemented by this + * TransportManagerJabberImpl. + * + * @return the XML namespace of the Jingle transport implemented by this + * TransportManagerJabberImpl + * @see TransportManagerJabberImpl#getXmlNamespace() + */ + public String getXmlNamespace() + { + return ProtocolProviderServiceJabberImpl.URN_XMPP_JINGLE_RAW_UDP_0; + } + /** * Starts transport candidate harvest. This method should complete rapidly * and, in case of lengthy procedures like STUN/TURN/UPnP candidate harvests @@ -61,8 +120,8 @@ public void startCandidateHarvest(List theirOffer, for(ContentPacketExtension content : theirOffer) { RtpDescriptionPacketExtension rtpDesc - = (RtpDescriptionPacketExtension)content - .getFirstChildOfType(RtpDescriptionPacketExtension.class); + = content.getFirstChildOfType( + RtpDescriptionPacketExtension.class); StreamConnector connector = getStreamConnector( MediaType.parseString( rtpDesc.getMedia())); @@ -81,7 +140,7 @@ public void startCandidateHarvest(List theirOffer, cpExt.addChildExtension(ourTransport); } - this.cpeList = ourAnswer; + this.local = ourAnswer; } /** @@ -91,39 +150,40 @@ public void startCandidateHarvest(List theirOffer, * harvest would then need to be concluded in the {@link #wrapupHarvest()} * method which would be called once we absolutely need the candidates. * - * @param ourAnswer the content list that should tell us how many stream + * @param ourOffer the content list that should tell us how many stream * connectors we actually need. * * @throws OperationFailedException in case we fail allocating ports */ - public void startCandidateHarvest( - List ourAnswer) + public void startCandidateHarvest(List ourOffer) throws OperationFailedException { - for(ContentPacketExtension content : ourAnswer) + for(ContentPacketExtension content : ourOffer) { RtpDescriptionPacketExtension rtpDesc - = (RtpDescriptionPacketExtension)content - .getFirstChildOfType(RtpDescriptionPacketExtension.class); + = content.getFirstChildOfType( + RtpDescriptionPacketExtension.class); - StreamConnector connector = getStreamConnector( - MediaType.parseString( rtpDesc.getMedia())); + StreamConnector connector + = getStreamConnector( + MediaType.parseString( rtpDesc.getMedia())); RawUdpTransportPacketExtension ourTransport - = createTransport(connector); + = createTransport(connector); - //now add our transport to our answer + //now add our transport to our offer ContentPacketExtension cpExt - = findContentByName(ourAnswer, content.getName()); + = findContentByName(ourOffer, content.getName()); cpExt.addChildExtension(ourTransport); } - this.cpeList = ourAnswer; + + this.local = ourOffer; } /** - * Creates a raw udp transport element according to the specified stream - * connector + * Creates a raw UDP transport element according to the specified stream + * connector. * * @param connector the connector that we'd like to describe within the * transport element. @@ -138,7 +198,7 @@ private RawUdpTransportPacketExtension createTransport( = new RawUdpTransportPacketExtension(); // create and add candidates that correspond to the stream connector - // rtp + // RTP CandidatePacketExtension rtpCand = new CandidatePacketExtension(); rtpCand.setComponent(CandidatePacketExtension.RTP_COMPONENT_ID); rtpCand.setGeneration(getCurrentGeneration()); @@ -150,7 +210,7 @@ private RawUdpTransportPacketExtension createTransport( ourTransport.addCandidate(rtpCand); - // rtcp + // RTCP CandidatePacketExtension rtcpCand = new CandidatePacketExtension(); rtcpCand.setComponent(CandidatePacketExtension.RTCP_COMPONENT_ID); rtcpCand.setGeneration(getCurrentGeneration()); @@ -167,7 +227,7 @@ private RawUdpTransportPacketExtension createTransport( /** * Simply returns the list of local candidates that we gathered during the - * harvest. This is a raw udp transport manager so there's no real wraping + * harvest. This is a raw UDP transport manager so there's no real wrapping * up to do. * * @return the list of local candidates that we gathered during the @@ -175,29 +235,25 @@ private RawUdpTransportPacketExtension createTransport( */ public List wrapupHarvest() { - return cpeList; + return local; } /** - * Looks through the cpExtList and returns the {@link - * ContentPacketExtension} with the specified name. + * Implements + * {@link TransportManagerJabberImpl#startConnectivityEstablishment(Collection)}. + * Since this represents a raw UDP transport, performs no connectivity + * checks and just remembers the remote counterpart of the negotiation + * between the local and the remote peers in order to be able to report the + * MediaStreamTargets upon request. * - * @param cpExtList the list that we will be searching for a specific - * content. - * @param name the name of the content element we are looking for. - * @return the {@link ContentPacketExtension} with the specified name or - * null if no such content element exists. + * @param remote the collection of ContentPacketExtensions which + * represent the remote counterpart of the negotiation between the local and + * the remote peers + * @see TransportManagerJabberImpl#startConnectivityEstablishment(Collection) */ - private ContentPacketExtension findContentByName( - List cpExtList, - String name) + public void startConnectivityEstablishment( + Collection remote) { - for(ContentPacketExtension cpExt : cpExtList) - { - if(cpExt.getName().equals(name)) - return cpExt; - } - - return null; + this.remote = remote; } } diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/TransportManagerJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/TransportManagerJabberImpl.java index 1fd8f5179..5d7e5c33f 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/TransportManagerJabberImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/TransportManagerJabberImpl.java @@ -10,6 +10,7 @@ import java.util.*; import net.java.sip.communicator.impl.protocol.jabber.extensions.jingle.*; +import net.java.sip.communicator.service.neomedia.*; import net.java.sip.communicator.service.protocol.*; import net.java.sip.communicator.service.protocol.media.*; @@ -21,6 +22,7 @@ * it has not yet completed. * * @author Emil Ivov + * @author Lyubomir Marinov */ public abstract class TransportManagerJabberImpl extends TransportManager @@ -82,6 +84,27 @@ protected String getNextID() return Integer.toString(nextID++); } + /** + * Gets the MediaStreamTarget to be used as the target of + * the MediaStream with a specific MediaType. + * + * @param mediaType the MediaType of the MediaStream which + * is to have its target set to the returned + * MediaStreamTarget + * @return the MediaStreamTarget to be used as the target + * of the MediaStream with the specified MediaType + */ + public abstract MediaStreamTarget getStreamTarget(MediaType mediaType); + + /** + * Gets the XML namespace of the Jingle transport implemented by this + * TransportManagerJabberImpl. + * + * @return the XML namespace of the Jingle transport implemented by this + * TransportManagerJabberImpl + */ + public abstract String getXmlNamespace(); + /** * Returns the generation that our current candidates belong to. * @@ -134,7 +157,7 @@ public abstract void startCandidateHarvest( * @throws OperationFailedException if we fail to allocate a port number. */ public abstract void startCandidateHarvest( - List ourOffer) + List ourOffer) throws OperationFailedException; /** @@ -146,4 +169,39 @@ public abstract void startCandidateHarvest( * a new instance) and that we have updated with transport lists. */ public abstract List wrapupHarvest(); + + /** + * Looks through the cpExtList and returns the {@link + * ContentPacketExtension} with the specified name. + * + * @param cpExtList the list that we will be searching for a specific + * content. + * @param name the name of the content element we are looking for. + * @return the {@link ContentPacketExtension} with the specified name or + * null if no such content element exists. + */ + protected ContentPacketExtension findContentByName( + List cpExtList, + String name) + { + for(ContentPacketExtension cpExt : cpExtList) + { + if(cpExt.getName().equals(name)) + return cpExt; + } + return null; + } + + /** + * Starts the connectivity establishment of this + * TransportManagerJabberImpl i.e. checks the connectivity between + * the local and the remote peers given the remote counterpart of the + * negotiation between them. + * + * @param remote the collection of ContentPacketExtensions which + * represents the remote counterpart of the negotiation between the local + * and the remote peer + */ + public abstract void startConnectivityEstablishment( + Collection remote); } diff --git a/src/net/java/sip/communicator/service/protocol/media/CallPeerMediaHandler.java b/src/net/java/sip/communicator/service/protocol/media/CallPeerMediaHandler.java index b7578309c..8c16603d5 100644 --- a/src/net/java/sip/communicator/service/protocol/media/CallPeerMediaHandler.java +++ b/src/net/java/sip/communicator/service/protocol/media/CallPeerMediaHandler.java @@ -173,7 +173,7 @@ public abstract class CallPeerMediaHandler< * Indicates whether this handler has already started at least one of its * streams, at least once. */ - private boolean isStarted = false; + private boolean started = false; /** * Contains all dynamic payload type mappings that have been made for this @@ -387,19 +387,15 @@ public synchronized void close() protected void closeStream(MediaType type) { if( type == MediaType.AUDIO) - { setAudioStream(null); - - } else - { setVideoStream(null); - } - this.getTransportManager().closeStreamConnector(type); + getTransportManager().closeStreamConnector(type); - // clears the zrtp controls used for current call. + // Clear the ZRTP controls used for the associated Call. ZrtpControl zrtpCtrl = zrtpControls.get(type); + if (zrtpCtrl != null) { zrtpCtrl.cleanup(); @@ -1126,34 +1122,35 @@ protected MediaStream initStream(StreamConnector connector, List rtpExtensions) throws OperationFailedException { - MediaStream stream = null; - - if (device.getMediaType() == MediaType.AUDIO) - stream = this.audioStream; - else - { - stream = this.videoStream; - } + MediaType mediaType = device.getMediaType(); + MediaStream stream = getStream(mediaType); if (stream == null) { + if (logger.isTraceEnabled() && (mediaType != format.getMediaType())) + logger.trace("The media types of device and format differ."); + // check whether a control already exists - ZrtpControl control = zrtpControls.get(format.getMediaType()); + ZrtpControl control = zrtpControls.get(mediaType); MediaService mediaService - = ProtocolMediaActivator.getMediaService(); + = ProtocolMediaActivator.getMediaService(); if(control == null) stream = mediaService.createMediaStream(connector, device); else - stream = mediaService.createMediaStream( - connector, device, control); + { + stream + = mediaService.createMediaStream( + connector, device, control); + } } else { //this is a reinit } - return configureStream( + return + configureStream( device, format, target, direction, rtpExtensions, stream); } @@ -1209,7 +1206,7 @@ protected MediaStream configureStream( MediaDevice device, if(peer.getCall().isDefaultEncrypted()) { // we use the audio stream for master stream - // when using zrtp multistreams + // when using ZRTP multistreams. ZrtpControl zrtpControl = stream.getZrtpControl(); zrtpControl.setZrtpListener(zrtpController); @@ -1220,9 +1217,9 @@ protected MediaStream configureStream( MediaDevice device, } /** - * Send empty UDP packet to target destination data/control ports - * in order to open port on NAT or RTP proxy if any. In order to be really - * efficient, this method should be called after we send our offer or answer + * Sends empty UDP packets to target destination data/control ports in order + * to open port on NAT or RTP proxy if any. In order to be really efficient, + * this method should be called after we send our offer or answer. * * @param target MediaStreamTarget */ @@ -1536,16 +1533,15 @@ protected DynamicRTPExtensionsRegistry getRtpExtensionsRegistry() */ public boolean isStarted() { - return isStarted; + return started; } /** - * Returns true if this handler has already started at least one - * of its streams, at least once, and false otherwise. If the - * handler is already started, this method has no effect. + * Starts this CallPeerMediaHandler. If it has already been + * started, does nothing. * * @throws IllegalStateException if this method is called without this - * handler having first seen a media description or having generate an + * handler having first seen a media description or having generated an * offer. */ public void start() @@ -1555,21 +1551,22 @@ public void start() return; MediaStream stream = getStream(MediaType.AUDIO); - if ( stream != null && !stream.isStarted() - && isLocalAudioTransmissionEnabled()) + if ((stream != null) + && !stream.isStarted() + && isLocalAudioTransmissionEnabled()) { stream.start(); } stream = getStream(MediaType.VIDEO); - if ( stream != null && !stream.isStarted()) + if ((stream != null) && !stream.isStarted()) { stream.start(); // send empty packet to deblock some kind of RTP proxy to let just // one user sends its video - if(stream instanceof VideoMediaStream - && !isLocalVideoTransmissionEnabled()) + if ((stream instanceof VideoMediaStream) + && !isLocalVideoTransmissionEnabled()) { sendHolePunchPacket(stream.getTarget()); } @@ -1606,9 +1603,11 @@ protected abstract void throwOperationFailedException( String message, throws OperationFailedException; /** - * Returns the transport manager that is handling our address management. + * Gets the TransportManager implementation handling our address + * management. * - * @return the transport manager that is handling our address management. + * @return the TransportManager implementation handling our address + * management */ public abstract TransportManager getTransportManager(); } diff --git a/src/net/java/sip/communicator/service/protocol/media/TransportManager.java b/src/net/java/sip/communicator/service/protocol/media/TransportManager.java index c6986a34a..ede43c69b 100644 --- a/src/net/java/sip/communicator/service/protocol/media/TransportManager.java +++ b/src/net/java/sip/communicator/service/protocol/media/TransportManager.java @@ -8,6 +8,7 @@ import java.net.*; +import net.java.sip.communicator.service.configuration.*; import net.java.sip.communicator.service.neomedia.*; import net.java.sip.communicator.service.netaddr.*; import net.java.sip.communicator.service.protocol.*; @@ -21,6 +22,7 @@ * or CallPeerJabberImpl * * @author Emil Ivov + * @author Lyubomir Marinov */ public abstract class TransportManager> { @@ -28,8 +30,8 @@ public abstract class TransportManager> * The Logger used by the TransportManager * class and its instances for logging output. */ - private static final Logger logger = Logger - .getLogger(TransportManager.class.getName()); + private static final Logger logger + = Logger.getLogger(TransportManager.class); /** * The minimum port number that we'd like our RTP sockets to bind upon. @@ -48,21 +50,17 @@ public abstract class TransportManager> protected static int nextMediaPortToTry = minMediaPort; /** - * The RTP/RTCP socket couple that this media handler should use to send - * and receive audio flows through. - */ - private StreamConnector audioStreamConnector = null; - - /** - * The RTP/RTCP socket couple that this media handler should use to send - * and receive video flows through. + * The {@link MediaAwareCallPeer} whose traffic we will be taking care of. */ - private StreamConnector videoStreamConnector = null; + private U callPeer; /** - * The {@link MediaAwareCallPeer} whose traffic we will be taking care of. + * The RTP/RTCP socket couples that this TransportManager uses to + * send and receive media flows through indexed by MediaType + * (ordinal). */ - private U callPeer; + private final StreamConnector[] streamConnectors + = new StreamConnector[MediaType.values().length]; /** * Creates a new instance of this transport manager, binding it to the @@ -83,8 +81,8 @@ protected TransportManager(U callPeer) * been initialized for this mediaType yet or in case one * of its underlying sockets has been closed. * - * @param mediaType the MediaType that we'd like to create a connector for. - * + * @param mediaType the MediaType that we'd like to create a + * connector for. * @return this media handler's StreamConnector for the specified * mediaType. * @@ -94,28 +92,18 @@ protected TransportManager(U callPeer) public StreamConnector getStreamConnector(MediaType mediaType) throws OperationFailedException { - if (mediaType == MediaType.AUDIO) - { - if ( audioStreamConnector == null - || audioStreamConnector.getDataSocket().isClosed() - || audioStreamConnector.getControlSocket().isClosed()) - { - audioStreamConnector = createStreamConnector(); - } + StreamConnector streamConnector = streamConnectors[mediaType.ordinal()]; - return audioStreamConnector; - } - else + if ((streamConnector == null) + || streamConnector.getDataSocket().isClosed() + || streamConnector.getControlSocket().isClosed()) { - if ( videoStreamConnector == null - || videoStreamConnector.getDataSocket().isClosed() - || videoStreamConnector.getControlSocket().isClosed()) - { - videoStreamConnector = createStreamConnector(); - } - - return videoStreamConnector; + streamConnectors[mediaType.ordinal()] + = streamConnector + = createStreamConnector(mediaType); } + + return streamConnector; } /** @@ -127,31 +115,30 @@ public StreamConnector getStreamConnector(MediaType mediaType) public void closeStreamConnector(MediaType mediaType) { StreamConnector connector - = (mediaType == MediaType.VIDEO) - ? videoStreamConnector - : audioStreamConnector; - - if(connector == null) - return; + = streamConnectors[mediaType.ordinal()]; - synchronized(connector) + if(connector != null) { - connector.getDataSocket().close(); - connector.getControlSocket().close(); - connector = null; + synchronized(connector) + { + connector.getDataSocket().close(); + connector.getControlSocket().close(); + streamConnectors[mediaType.ordinal()] = null; + } } - } /** * Creates a media StreamConnector. The method takes into account * the minimum and maximum media port boundaries. * + * @param mediaType the MediaType of the stream for which a new + * StreamConnector is to be created * @return a new StreamConnector. * * @throws OperationFailedException if we fail binding the the sockets. */ - protected StreamConnector createStreamConnector() + protected StreamConnector createStreamConnector(MediaType mediaType) throws OperationFailedException { NetworkAddressManagerService nam @@ -192,7 +179,8 @@ protected StreamConnector createStreamConnector() { throw new OperationFailedException( "Failed to allocate the network ports necessary for the call.", - OperationFailedException.INTERNAL_ERROR, exc); + OperationFailedException.INTERNAL_ERROR, + exc); } //make sure that next time we don't try to bind on occupied ports @@ -201,11 +189,7 @@ protected StreamConnector createStreamConnector() if (nextMediaPortToTry > maxMediaPort -1)// take RTCP into account. nextMediaPortToTry = minMediaPort; - //create the RTCP socket - DefaultStreamConnector connector = new DefaultStreamConnector( - rtpSocket, rtcpSocket); - - return connector; + return new DefaultStreamConnector(rtpSocket, rtcpSocket); } /** @@ -219,10 +203,12 @@ protected void initializePortNumbers() maxMediaPort = 6000; //then set to anything the user might have specified. + ConfigurationService configuration + = ProtocolMediaActivator.getConfigurationService(); String minPortNumberStr - = ProtocolMediaActivator.getConfigurationService() - .getString(OperationSetBasicTelephony - .MIN_MEDIA_PORT_NUMBER_PROPERTY_NAME); + = configuration.getString( + OperationSetBasicTelephony + .MIN_MEDIA_PORT_NUMBER_PROPERTY_NAME); if (minPortNumberStr != null) { @@ -239,8 +225,8 @@ protected void initializePortNumbers() } String maxPortNumberStr - = ProtocolMediaActivator.getConfigurationService() - .getString(OperationSetBasicTelephony + = configuration.getString( + OperationSetBasicTelephony .MAX_MEDIA_PORT_NUMBER_PROPERTY_NAME); if (maxPortNumberStr != null) @@ -270,7 +256,7 @@ protected void initializePortNumbers() * descriptions so we already have a specific local address assigned to them * at the time we get ready to create the c= and o= fields. It is therefore * better to try and return one of these addresses before trying the net - * address manager again ang running the slight risk of getting a different + * address manager again and running the slight risk of getting a different * address. * * @return an InetAddress that we use in one of the @@ -278,14 +264,17 @@ protected void initializePortNumbers() */ public InetAddress getLastUsedLocalHost() { - if (audioStreamConnector != null) - return audioStreamConnector.getDataSocket().getLocalAddress(); + for (MediaType mediaType : MediaType.values()) + { + StreamConnector streamConnector + = streamConnectors[mediaType.ordinal()]; - if (videoStreamConnector != null) - return videoStreamConnector.getDataSocket().getLocalAddress(); + if (streamConnector != null) + return streamConnector.getDataSocket().getLocalAddress(); + } NetworkAddressManagerService nam - = ProtocolMediaActivator.getNetworkAddressManagerService(); + = ProtocolMediaActivator.getNetworkAddressManagerService(); InetAddress intendedDestination = getIntendedDestination(getCallPeer()); return nam.getLocalHost(intendedDestination);