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

Author: Stefan Sayer <[email protected]>
Committer: Stefan Sayer <[email protected]>
Date:   Mon May  9 17:28:27 2011 +0200

registration: make expires selectable

---

 core/AmSipRegistration.cpp |   14 +++++++++++---
 core/AmSipRegistration.h   |    5 +++++
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/core/AmSipRegistration.cpp b/core/AmSipRegistration.cpp
index 4cad029..20e8ab1 100644
--- a/core/AmSipRegistration.cpp
+++ b/core/AmSipRegistration.cpp
@@ -42,7 +42,8 @@ AmSIPRegistration::AmSIPRegistration(const string& handle,
     sess_link(sess_link),
     reg_send_begin(0),
     waiting_result(false),
-    seh(NULL)
+    seh(NULL),
+    expires_interval(3600)
 {
   req.cmd      = "sems";
   req.user     = info.user;
@@ -75,6 +76,10 @@ void 
AmSIPRegistration::setSessionEventHandler(AmSessionEventHandler* new_seh) {
   seh = new_seh;
 }
  
+void AmSIPRegistration::setExpiresInterval(unsigned int desired_expires) {
+  expires_interval = desired_expires;
+}
+
 void AmSIPRegistration::doRegistration() 
 {
   waiting_result = true;
@@ -95,7 +100,9 @@ void AmSIPRegistration::doRegistration()
       + info.contact + ">" + CRLF;
   }
     
-  if (dlg.sendRequest(req.method, "", "", "Expires: 3600\n") < 0)
+  if (dlg.sendRequest(req.method, "", "",
+                     SIP_HDR_COLSP(SIP_HDR_EXPIRES)+
+                     int2str(expires_interval)+CRLF) < 0)
     ERROR("failed to send registration.\n");
     
   // save TS
@@ -124,7 +131,8 @@ void AmSIPRegistration::doUnregister()
     dlg.contact_uri += info.contact + ">" + CRLF;
   }
     
-  if (dlg.sendRequest(req.method, "", "", "Expires: 0\n") < 0)
+  if (dlg.sendRequest(req.method, "", "",
+                     SIP_HDR_COLSP(SIP_HDR_EXPIRES) "0" CRLF) < 0)
     ERROR("failed to send deregistration.\n");
 
   // save TS
diff --git a/core/AmSipRegistration.h b/core/AmSipRegistration.h
index d4b14c3..db74348 100644
--- a/core/AmSipRegistration.h
+++ b/core/AmSipRegistration.h
@@ -85,6 +85,8 @@ class AmSIPRegistration
   unsigned int reg_expires;
   time_t reg_send_begin; 
 
+  unsigned int expires_interval;
+
  public:
   AmSIPRegistration(const string& handle,
                    const SIPRegistrationInfo& info,
@@ -93,6 +95,8 @@ class AmSIPRegistration
 
   void setSessionEventHandler(AmSessionEventHandler* new_seh);
 
+  void setExpiresInterval(unsigned int desired_expires);
+
   void doRegistration();
   void doUnregister();
        
@@ -152,6 +156,7 @@ class AmSIPRegistration
 
   SIPRegistrationInfo& getInfo() { return info; }
   const string& getEventSink() { return sess_link; }
+  const string& getHandle() { return req.from_tag; }
 };
 
 

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

Reply via email to