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

Author: Stefan Sayer <[email protected]>
Committer: Stefan Sayer <[email protected]>
Date:   Fri Jan  3 13:59:18 2014 +0100

core: add Referred-By to AmSipDialog::refer()

---

 core/AmSipDialog.cpp |    6 +++++-
 core/AmSipDialog.h   |    3 ++-
 core/sip/defs.h      |    1 +
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/core/AmSipDialog.cpp b/core/AmSipDialog.cpp
index f932574..5c87792 100644
--- a/core/AmSipDialog.cpp
+++ b/core/AmSipDialog.cpp
@@ -625,12 +625,16 @@ int AmSipDialog::update(const AmMimeBody* body,
 }
 
 int AmSipDialog::refer(const string& refer_to,
-                      int expires)
+                      int expires,
+                      const string& referred_by)
 {
   if(getStatus() == Connected) {
     string hdrs = SIP_HDR_COLSP(SIP_HDR_REFER_TO) + refer_to + CRLF;
     if (expires>=0) 
       hdrs+= SIP_HDR_COLSP(SIP_HDR_EXPIRES) + int2str(expires) + CRLF;
+    if (!referred_by.empty())
+      hdrs+= SIP_HDR_COLSP(SIP_HDR_REFERRED_BY) + referred_by + CRLF;
+
     return sendRequest("REFER", NULL, hdrs);
   }
   else {
diff --git a/core/AmSipDialog.h b/core/AmSipDialog.h
index c5ff4b0..42a9770 100644
--- a/core/AmSipDialog.h
+++ b/core/AmSipDialog.h
@@ -159,7 +159,8 @@ protected:
 
   /** @return 0 on success */
   int refer(const string& refer_to,
-           int expires = -1);
+           int expires = -1,
+           const string& referred_by = "");
 
   /** @return 0 on success */
   int transfer(const string& target);
diff --git a/core/sip/defs.h b/core/sip/defs.h
index 4feb273..31e03c3 100644
--- a/core/sip/defs.h
+++ b/core/sip/defs.h
@@ -36,6 +36,7 @@
 #define SIP_HDR_P_ASSERTED_IDENTITY "P-Asserted-Identity"
 #define SIP_HDR_P_PREFERRED_IDENTITY "P-Preferred-Identity"
 #define SIP_HDR_REFER_TO        "Refer-To"
+#define SIP_HDR_REFERRED_BY     "Referred-By"
 #define SIP_HDR_EXPIRES         "Expires"
 #define SIP_HDR_MIN_EXPIRES     "Min-Expires"
 #define SIP_HDR_SESSION_EXPIRES "Session-Expires"

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

Reply via email to