diff --git a/src/media/audio/audiolayer.cpp b/src/media/audio/audiolayer.cpp
index 13cacb4c2b9df583a53d559f0975fc76f4a95b8c..afd9fa625bfabe51f1af6c5bdc1ebded37e53194 100644
--- a/src/media/audio/audiolayer.cpp
+++ b/src/media/audio/audiolayer.cpp
@@ -41,7 +41,7 @@ AudioLayer::AudioLayer(const AudioPreference &pref)
     , urgentRingBuffer_("urgentRingBuffer_id", SIZEBUF, audioFormat_)
     , resampler_(new Resampler{audioFormat_.sample_rate})
     , inputResampler_(new Resampler{audioInputFormat_.sample_rate})
-    , lastNotificationTime_(0)
+    , lastNotificationTime_()
 {
     urgentRingBuffer_.createReadOffset(RingBufferPool::DEFAULT_ID);
 }
@@ -93,10 +93,10 @@ void AudioLayer::notifyIncomingCall()
     if (!Manager::instance().incomingCallsWaiting())
         return;
 
-    time_t now = time(NULL);
+    auto now = std::chrono::system_clock::now();
 
     // Notify maximum once every 5 seconds
-    if (difftime(now, lastNotificationTime_) < 5)
+    if ((now - lastNotificationTime_) < std::chrono::seconds(5))
         return;
 
     lastNotificationTime_ = now;
diff --git a/src/media/audio/audiolayer.h b/src/media/audio/audiolayer.h
index 71bc0c11fc4a2edc8238cc6cfe389d3a2b5816e9..0d9f44aafb0222cd91c19335f920b15eac5ad732 100644
--- a/src/media/audio/audiolayer.h
+++ b/src/media/audio/audiolayer.h
@@ -29,7 +29,7 @@
 #include "dcblocker.h"
 #include "noncopyable.h"
 
-#include <sys/time.h>
+#include <chrono>
 #include <mutex>
 #include <vector>
 #include <atomic>
@@ -311,7 +311,7 @@ class AudioLayer {
         /**
          * Time of the last incoming call notification
          */
-        time_t lastNotificationTime_;
+        std::chrono::system_clock::time_point lastNotificationTime_;
 };
 
 } // namespace ring