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

Author: Raphael Coeffic <[email protected]>
Committer: Raphael Coeffic <[email protected]>
Date:   Tue Apr 12 15:03:01 2011 +0200

CANCEL should be treated hop-by-hop.

---

 core/AmB2BSession.cpp |    9 +++++++++
 core/AmB2BSession.h   |    1 +
 2 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/core/AmB2BSession.cpp b/core/AmB2BSession.cpp
index ee2406b..da73415 100644
--- a/core/AmB2BSession.cpp
+++ b/core/AmB2BSession.cpp
@@ -938,6 +938,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 11faa2e..525e4bf 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();

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

Reply via email to