/** * This is the starting point for intitiating a new session. * * @throws IllegalStateException */ public void startOutgoing() throws IllegalStateException { updatePacketListener(); setSessionState(JingleSessionStatePending.getInstance()); Jingle jingle = new Jingle(JingleActionEnum.SESSION_INITIATE); // Create a content negotiator for each media manager on the session. for (JingleMediaManager mediaManager : getMediaManagers()) { ContentNegotiator contentNeg = new ContentNegotiator(this, ContentNegotiator.INITIATOR, mediaManager.getName()); // Create the media negotiator for this content description. contentNeg.setMediaNegotiator(new MediaNegotiator(this, mediaManager, mediaManager.getPayloads(), contentNeg)); JingleTransportManager transportManager = mediaManager.getTransportManager(); TransportResolver resolver = null; try { resolver = transportManager.getResolver(this); } catch (XMPPException e) { e.printStackTrace(); } if (resolver.getType().equals(TransportResolver.Type.rawupd)) { contentNeg.setTransportNegotiator(new TransportNegotiator.RawUdp(this, resolver, contentNeg)); } if (resolver.getType().equals(TransportResolver.Type.ice)) { contentNeg.setTransportNegotiator(new TransportNegotiator.Ice(this, resolver, contentNeg)); } addContentNegotiator(contentNeg); } // Give each of the content negotiators a chance to return a portion of the structure to make the Jingle packet. for (ContentNegotiator contentNegotiator : contentNegotiators) { jingle.addContent(contentNegotiator.getJingleContent()); } // Save the session-initiate packet ID, so that we can respond to it. sessionInitPacketID = jingle.getPacketID(); sendPacket(jingle); // Now setup to track the media negotiators, so that we know when (if) to send a session-accept. setupListeners(); // Give each of the content negotiators a chance to start // and return a portion of the structure to make the Jingle packet. // Don't do this anymore. The problem is that the other side might not be ready. // Later when we receive our first jingle packet from the other side we'll fire-up the negotiators // before processing it. (See receivePacketAndRespond() above. // for (ContentNegotiator contentNegotiator : contentNegotiators) { // contentNegotiator.start(); // } }
/** * Creates a Media Manager instance */ public JmfMediaManager(JingleTransportManager transportManager) { super(transportManager); setupPayloads(); }
/** * Creates a Media Manager instance * * @param mediaLocator Media Locator */ public JmfMediaManager(String mediaLocator, JingleTransportManager transportManager) { super(transportManager); this.mediaLocator = mediaLocator; setupPayloads(); }
public ScreenShareMediaManager(JingleTransportManager transportManager) { super(transportManager); setupPayloads(); }
public SpeexMediaManager(JingleTransportManager transportManager) { super(transportManager); setupPayloads(); setupJMF(); }
public TestMediaManager(JingleTransportManager transportManager) { super(transportManager); }
public MultiMediaManager(JingleTransportManager transportManager) { super(transportManager); }
/** * @param jingleTransportManager */ public void setJingleTransportManager(JingleTransportManager jingleTransportManager) { this.jingleTransportManager = jingleTransportManager; }
/** * @return */ public JingleTransportManager getTransportManager() { return jingleTransportManager; }
public JingleMediaManager(JingleTransportManager transportManager) { this.transportManager = transportManager; }
/** * Return The transport manager that goes with this media manager. */ public JingleTransportManager getTransportManager() { return transportManager; }