Module: sems
Branch: master
Commit: a56276c6f8eafa9ebcf2032835a4540020da6430
URL:    
http://git.sip-router.org/cgi-bin/gitweb.cgi/sems/?a=commit;h=a56276c6f8eafa9ebcf2032835a4540020da6430

Author: Stefan Sayer <[email protected]>
Committer: Stefan Sayer <[email protected]>
Date:   Wed Jun 22 15:49:15 2011 +0200

b/f: more proper fix for terminateLeg / BYE handling in B2BUA

---

 core/AmB2BSession.cpp |   14 +-------------
 core/AmSipDialog.cpp  |   10 +++++++---
 2 files changed, 8 insertions(+), 16 deletions(-)

diff --git a/core/AmB2BSession.cpp b/core/AmB2BSession.cpp
index bfbdfa7..9e48454 100644
--- a/core/AmB2BSession.cpp
+++ b/core/AmB2BSession.cpp
@@ -545,19 +545,7 @@ void AmB2BSession::terminateLeg()
   if (rtp_relay_enabled)
     clearRtpReceiverRelay();
 
-  switch(dlg.getStatus()){
-  case AmSipDialog::Trying:
-  case AmSipDialog::Proceeding:
-  case AmSipDialog::Early:
-  case AmSipDialog::Connected:
-    dlg.bye("", SIP_FLAGS_VERBATIM);
-    break;
-
-  default:
-    DBG("terminateLeg() not sending any BYE or CANCEL (state=%s)\n",
-       dlg.getStatusStr());
-    break;
-  }
+  dlg.bye("", SIP_FLAGS_VERBATIM);
 }
 
 void AmB2BSession::terminateOtherLeg()
diff --git a/core/AmSipDialog.cpp b/core/AmSipDialog.cpp
index 329f07f..49ac842 100644
--- a/core/AmSipDialog.cpp
+++ b/core/AmSipDialog.cpp
@@ -1157,8 +1157,12 @@ int AmSipDialog::bye(const string& hdrs, int flags)
            send_200_ack(it->second.cseq);
          }
        }
-       status = Disconnected;
-       return sendRequest("BYE", "", "", hdrs, flags);
+       if (status != Disconnecting) {
+         status = Disconnected;
+         return sendRequest("BYE", "", "", hdrs, flags);
+       } else {
+         return 0;
+       }
 
     case Trying:
     case Proceeding:
@@ -1187,7 +1191,7 @@ int AmSipDialog::bye(const string& hdrs, int flags)
 
     default:
         DBG("bye(): we are not connected "
-           "(status=%i). do nothing!\n",status);
+           "(status=%s). do nothing!\n",getStatusStr());
        return 0;
     }  
 }

_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev

Reply via email to