diff --git a/core/AmB2BSession.cpp b/core/AmB2BSession.cpp index a9be37b4..15ef0451 100644 --- a/core/AmB2BSession.cpp +++ b/core/AmB2BSession.cpp @@ -187,7 +187,9 @@ void AmB2BSession::onOtherReply(const AmSipReply& reply) void AmB2BSession::terminateLeg() { setStopped(); - dlg.bye(); + if ((dlg.getStatus() == AmSipDialog::Pending) + || (dlg.getStatus() == AmSipDialog::Connected)) + dlg.bye(); } void AmB2BSession::terminateOtherLeg() @@ -260,8 +262,9 @@ void AmB2BCallerSession::onB2BEvent(B2BEvent* ev) } } else { - //DBG("received %i from other leg: other_id=%s; reply.local_tag=%s\n", - // reply.code,other_id.c_str(),reply.local_tag.c_str()); +// DBG("received %i from other leg: other_id=%s; reply.local_tag=%s\n", +// reply.code,other_id.c_str(),reply.local_tag.c_str()); + terminateOtherLeg(); } diff --git a/core/AmB2BSession.h b/core/AmB2BSession.h index 37232fae..b4db070b 100644 --- a/core/AmB2BSession.h +++ b/core/AmB2BSession.h @@ -181,8 +181,6 @@ class AmB2BCallerSession: public AmB2BSession private: // Callee Status CalleeStatus callee_status; - - int reinviteCaller(const AmSipReply& callee_reply); @@ -204,7 +202,7 @@ class AmB2BCallerSession: public AmB2BSession const AmSipRequest& getOriginalRequest() { return invite_req; } - // @see AmDialogState + // @see AmSession void onSessionStart(const AmSipRequest& req); // @see AmB2BSession