/** The other endpoint has accepted the session. */ public Jingle eventAccept(Jingle jin) throws XMPPException { PayloadType acceptedPayloadType = null; TransportCandidate acceptedLocalCandidate = null; // We process the "accepted" if we have finished the // sub-negotiators. Maybe this is not needed (ie, the other endpoint // can take the first valid transport candidate), but otherwise we // must cancel the negotiators... // if (isFullyEstablished()) { acceptedPayloadType = getAcceptedAudioPayloadType(jin); acceptedLocalCandidate = getAcceptedLocalCandidate(jin); if (acceptedPayloadType != null && acceptedLocalCandidate != null) { if (acceptedPayloadType.equals(getMediaNeg().getBestCommonAudioPt()) && acceptedLocalCandidate.equals(getTransportNeg().getAcceptedLocalCandidate())) { setState(active); } } else { throw new JingleException(JingleError.MALFORMED_STANZA); } } return super.eventAccept(jin); }