diff --git a/core/AmB2BSession.cpp b/core/AmB2BSession.cpp index c053fd45..f69ec88e 100644 --- a/core/AmB2BSession.cpp +++ b/core/AmB2BSession.cpp @@ -939,6 +939,15 @@ void AmB2BCallerSession::onSessionStart(const AmSipRequest& req) AmB2BSession::onSessionStart(req); } +void AmB2BCallerSession::onCancel() +{ + if(dlg.getStatus() == AmSipDialog::Pending) { + terminateOtherLeg(); + terminateLeg(); + dlg.reply(invite_req, 487, "Request terminated"); + } +} + void AmB2BCallerSession::connectCallee(const string& remote_party, const string& remote_uri, bool relayed_invite) diff --git a/core/AmB2BSession.h b/core/AmB2BSession.h index 11faa2e8..525e4bfa 100644 --- a/core/AmB2BSession.h +++ b/core/AmB2BSession.h @@ -308,6 +308,7 @@ class AmB2BCallerSession: public AmB2BSession // @see AmSession void onSessionStart(const AmSipRequest& req); + void onCancel(); // @see AmB2BSession void terminateLeg();