diff --git a/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java index 0704da0a3363dc9b8b3f88db164c40be43cdd225..2187d3143533f23127b8d55c8c6b1160b1face74 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java +++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java @@ -1,6 +1,7 @@ package eu.siacs.conversations.xmpp.jingle; import android.util.Log; +import android.os.Environment; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -26,6 +27,8 @@ import org.webrtc.IceCandidate; import org.webrtc.PeerConnection; import org.webrtc.VideoTrack; +import java.io.File; +import java.io.IOException; import java.util.Arrays; import java.util.Collection; import java.util.Collections; @@ -166,6 +169,7 @@ public class JingleRtpConnection extends AbstractJingleConnection private final Stopwatch sessionDuration = Stopwatch.createUnstarted(); private final Queue stateHistory = new LinkedList<>(); private ScheduledFuture ringingTimeoutFuture; + private final long created = System.currentTimeMillis() / 1000L; JingleRtpConnection(JingleConnectionManager jingleConnectionManager, Id id, Jid initiator) { super(jingleConnectionManager, id, initiator); @@ -2175,6 +2179,11 @@ public class JingleRtpConnection extends AbstractJingleConnection this.webRTCWrapper.verifyClosed(); this.jingleConnectionManager.setTerminalSessionState(id, getEndUserState(), getMedia()); this.jingleConnectionManager.finishConnectionOrThrow(this); + try { + File log = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "Cheogram/calls/" + id.getWith().asBareJid() + "." + id.getSessionId() + "." + created + ".log"); + log.getParentFile().mkdirs(); + Runtime.getRuntime().exec(new String[]{"logcat", "-dT", "" + created + ".0", "-f", log.getAbsolutePath()}); + } catch (final IOException e) { } } else { throw new IllegalStateException( String.format("Unable to call finish from %s", this.state));