diff --git a/debian/patches/series b/debian/patches/series index 0e8c7b89..438c5c14 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -27,3 +27,4 @@ build-fix-excludes.patch build-system-revamp.patch fix-build-with-newer-openssl.patch sipwise/0020-TT-9521-fix-200OK-without-SPD.patch +sipwise/usage-reporting.patch diff --git a/debian/patches/sipwise/usage-reporting.patch b/debian/patches/sipwise/usage-reporting.patch new file mode 100644 index 00000000..a42a2a2e --- /dev/null +++ b/debian/patches/sipwise/usage-reporting.patch @@ -0,0 +1,45 @@ +--- a/core/AmSession.cpp ++++ b/core/AmSession.cpp +@@ -49,6 +49,9 @@ + #include + #include + #include ++#include ++#include ++#include + + volatile unsigned int AmSession::session_num = 0; + AmMutex AmSession::session_num_mut; +@@ -494,6 +497,14 @@ + return id; + } + /* bookkeeping functions - TODO: move to monitoring */ ++static inline void __update_session_count(unsigned int num) { ++ int fd = open("/proc/ngcp/check", O_RDONLY); ++ if (fd >= 0) { ++ // set calls usage ++ ioctl(fd, TCXONC, (int) num); ++ close(fd); ++ } ++} + void AmSession::session_started() { + struct timeval now, delta; + +@@ -511,6 +522,8 @@ + if(session_num > max_session_num) max_session_num = session_num; + + session_num_mut.unlock(); ++ ++ __update_session_count(getSessionNum()); + } + + void AmSession::session_stopped() { +@@ -524,6 +537,8 @@ + //current session number + session_num--; + session_num_mut.unlock(); ++ ++ __update_session_count(getSessionNum()); + } + + unsigned int AmSession::getSessionNum() {