diff --git a/jingle/extension/source/org/jivesoftware/smackx/jingle/JingleSession.java b/jingle/extension/source/org/jivesoftware/smackx/jingle/JingleSession.java index 59ebd8b4c..9b734356f 100644 --- a/jingle/extension/source/org/jivesoftware/smackx/jingle/JingleSession.java +++ b/jingle/extension/source/org/jivesoftware/smackx/jingle/JingleSession.java @@ -1074,7 +1074,7 @@ public abstract class JingleSession extends JingleNegotiator { public void close() { destroyMediaNeg(); destroyTransportNeg(); - removePacketListener(); + removePacketListener(); System.out.println("Negociation Closed"); super.close(); } diff --git a/jingle/extension/source/org/jivesoftware/smackx/jingle/nat/TransportNegotiator.java b/jingle/extension/source/org/jivesoftware/smackx/jingle/nat/TransportNegotiator.java index 9b42adac2..b3df40703 100644 --- a/jingle/extension/source/org/jivesoftware/smackx/jingle/nat/TransportNegotiator.java +++ b/jingle/extension/source/org/jivesoftware/smackx/jingle/nat/TransportNegotiator.java @@ -142,6 +142,15 @@ public abstract class TransportNegotiator extends JingleNegotiator { return acceptedLocalCandidate; } + public void close() { + super.close(); + + for (TransportCandidate candidate : offeredCandidates) + if (candidate.getCandidateEcho() != null) + candidate.getCandidateEcho().cancel(); + + } + /** * Obtain the best common transport candidate obtained in the negotiation. *