private synchronized void sendTransportCandidateOffer ( TransportCandidate cand ) throws NotConnectedException , InterruptedException { if ( ! cand . isNull ( ) ) { // Offer our new candidate... addOfferedCandidate ( cand ) ; JingleContent content = parentNegotiator . getJingleContent ( ) ; content . addJingleTransport ( getJingleTransport ( cand ) ) ; Jingle jingle = new Jingle ( JingleActionEnum . TRANSPORT_INFO ) ; jingle . addContent ( content ) ; // We SHOULD NOT be sending packets directly. // This circumvents the state machinery. // TODO - work this into the state machinery. session . sendFormattedJingle ( jingle ) ; } }
Send an offer for a transport candidate