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
