when receiving out-of-order session-init in terminal state do not move to terminal again

Daniel Gultsch created

fixes #4049

Change summary

src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java | 11 
1 file changed, 10 insertions(+), 1 deletion(-)

Detailed changes

src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java 🔗

@@ -320,7 +320,16 @@ public class JingleRtpConnection extends AbstractJingleConnection implements Web
     private void receiveSessionInitiate(final JinglePacket jinglePacket) {
         if (isInitiator()) {
             Log.d(Config.LOGTAG, String.format("%s: received session-initiate even though we were initiating", id.account.getJid().asBareJid()));
-            terminateWithOutOfOrder(jinglePacket);
+            if (isTerminated()) {
+                Log.d(Config.LOGTAG, String.format(
+                        "%s: got a reason to terminate with out-of-order. but already in state %s",
+                        id.account.getJid().asBareJid(),
+                        getState()
+                ));
+                respondWithOutOfOrder(jinglePacket);
+            } else {
+                terminateWithOutOfOrder(jinglePacket);
+            }
             return;
         }
         final RtpContentMap contentMap;