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
