diff --git a/daemon/src/Makefile.am b/daemon/src/Makefile.am
index efa64bd00906f589797d091403ae8323923001ac..77cce13c7a2091a93186c54aac7fd5329bbfb6d0 100644
--- a/daemon/src/Makefile.am
+++ b/daemon/src/Makefile.am
@@ -122,7 +122,7 @@ libring_la_SOURCES = conference.cpp \
 		fileutils.h \
 		noncopyable.h \
 		utf8_utils.h \
-		sfl_types.h \
+		ring_types.h \
 		intrin.h \
 		array_size.h \
 		account_schema.h \
diff --git a/daemon/src/iax/iaxaccount.h b/daemon/src/iax/iaxaccount.h
index 1ca1e208a433632868fbc1cf8745612b35c78aa7..2e524e571b5ae25365c551081ed2268e95d5460c 100644
--- a/daemon/src/iax/iaxaccount.h
+++ b/daemon/src/iax/iaxaccount.h
@@ -35,7 +35,7 @@
 
 #include "account.h"
 #include "iaxvoiplink.h"
-#include "sfl_types.h" // enable_if_base_of
+#include "ring_types.h" // enable_if_base_of
 
 namespace YAML {
     class Emitter;
diff --git a/daemon/src/iax/iaxvoiplink.cpp b/daemon/src/iax/iaxvoiplink.cpp
index 9c5961706c3659a5293e3f1fb47854d17f53edc5..675d865a9945fab07a74182020f1cc8bdaf50546 100644
--- a/daemon/src/iax/iaxvoiplink.cpp
+++ b/daemon/src/iax/iaxvoiplink.cpp
@@ -46,7 +46,7 @@
 #include "array_size.h"
 #include "map_utils.h"
 #include "call_factory.h"
-#include "sfl_types.h"
+#include "ring_types.h"
 
 using namespace ring;
 
diff --git a/daemon/src/iax/iaxvoiplink.h b/daemon/src/iax/iaxvoiplink.h
index 625a232fbd503b4a87d83a283f7aa0eb46017417..152fd38a5cdd773ecae888f79053f35a71431ca6 100644
--- a/daemon/src/iax/iaxvoiplink.h
+++ b/daemon/src/iax/iaxvoiplink.h
@@ -39,7 +39,7 @@
 
 #include "audio/audiobuffer.h"
 #include "audio/codecs/audiocodec.h" // for RAW_BUFFER_SIZE
-#include "sfl_types.h"
+#include "ring_types.h"
 
 #include <iax/iax-client.h>
 
diff --git a/daemon/src/media/audio/alsa/alsalayer.cpp b/daemon/src/media/audio/alsa/alsalayer.cpp
index 4c38bd0bcde0bd7660915f2b9fbc66ce11c74a72..de89cfbf9c18d0830c3d1cbe6132e2b5e3768c98 100644
--- a/daemon/src/media/audio/alsa/alsalayer.cpp
+++ b/daemon/src/media/audio/alsa/alsalayer.cpp
@@ -412,7 +412,7 @@ bool AlsaLayer::alsa_set_params(snd_pcm_t *pcm_handle)
 // TODO first frame causes broken pipe (underrun) because not enough data is sent
 // we should wait until the handle is ready
 void
-AlsaLayer::write(SFLAudioSample* buffer, int frames, snd_pcm_t * handle)
+AlsaLayer::write(ring::AudioSample* buffer, int frames, snd_pcm_t * handle)
 {
     // Skip empty buffers
     if (!frames)
@@ -473,7 +473,7 @@ AlsaLayer::write(SFLAudioSample* buffer, int frames, snd_pcm_t * handle)
 }
 
 int
-AlsaLayer::read(SFLAudioSample* buffer, int frames)
+AlsaLayer::read(ring::AudioSample* buffer, int frames)
 {
     if (snd_pcm_state(captureHandle_) == SND_PCM_STATE_XRUN) {
         prepareCaptureStream();
diff --git a/daemon/src/media/audio/alsa/alsalayer.h b/daemon/src/media/audio/alsa/alsalayer.h
index 0f060f36ffc199656200ab6f45f23e2e3e7c0498..b4fc42d11e08c76ca512cb019811e0d556e94bca 100644
--- a/daemon/src/media/audio/alsa/alsalayer.h
+++ b/daemon/src/media/audio/alsa/alsalayer.h
@@ -205,7 +205,7 @@ class AlsaLayer : public AudioLayer {
          * @param buffer The non-interleaved data to be copied
          * @param frames Frames in the buffer
          */
-        void write(SFLAudioSample* buffer, int frames, snd_pcm_t *handle);
+        void write(ring::AudioSample* buffer, int frames, snd_pcm_t *handle);
 
         /**
          * Read data from the internal ring buffer
@@ -214,7 +214,7 @@ class AlsaLayer : public AudioLayer {
          * @param frames  The number of frames to get
          * @return int The number of frames actually read
          */
-        int read(SFLAudioSample* buffer, int frames);
+        int read(ring::AudioSample* buffer, int frames);
 
         virtual void updatePreference(AudioPreference &pref, int index, DeviceType type);
 
@@ -249,8 +249,8 @@ class AlsaLayer : public AudioLayer {
         AudioBuffer captureBuff_;
 
         /** Interleaved buffer */
-        std::vector<SFLAudioSample> playbackIBuff_;
-        std::vector<SFLAudioSample> captureIBuff_;
+        std::vector<ring::AudioSample> playbackIBuff_;
+        std::vector<ring::AudioSample> captureIBuff_;
 
         bool is_playback_prepared_;
         bool is_capture_prepared_;
diff --git a/daemon/src/media/audio/audiobuffer.cpp b/daemon/src/media/audio/audiobuffer.cpp
index a0cd6799d68240c501bf558ab28a25c99c89e356..40d11e108726cfc83af074516fb4358fd690444d 100644
--- a/daemon/src/media/audio/audiobuffer.cpp
+++ b/daemon/src/media/audio/audiobuffer.cpp
@@ -41,13 +41,13 @@ std::ostream& operator <<(std::ostream& stream, const AudioFormat& f) {
 AudioBuffer::AudioBuffer(size_t sample_num, AudioFormat format)
     :  sampleRate_(format.sample_rate),
        samples_(std::max(1U, format.nb_channels),
-                std::vector<SFLAudioSample>(sample_num, 0))
+                std::vector<ring::AudioSample>(sample_num, 0))
 {
 }
 
-AudioBuffer::AudioBuffer(const SFLAudioSample* in, size_t sample_num, AudioFormat format)
+AudioBuffer::AudioBuffer(const ring::AudioSample* in, size_t sample_num, AudioFormat format)
     :  sampleRate_(format.sample_rate),
-       samples_((std::max(1U, format.nb_channels)), std::vector<SFLAudioSample>(sample_num, 0))
+       samples_((std::max(1U, format.nb_channels)), std::vector<ring::AudioSample>(sample_num, 0))
 {
     deinterleave(in, sample_num, format.nb_channels);
 }
@@ -55,7 +55,7 @@ AudioBuffer::AudioBuffer(const SFLAudioSample* in, size_t sample_num, AudioForma
 AudioBuffer::AudioBuffer(const AudioBuffer& other, bool copy_content /* = false */)
     :  sampleRate_(other.sampleRate_),
        samples_(copy_content ? other.samples_ :
-                std::vector<std::vector<SFLAudioSample> >(other.samples_.size(), std::vector<SFLAudioSample>(other.frames())))
+                std::vector<std::vector<ring::AudioSample> >(other.samples_.size(), std::vector<ring::AudioSample>(other.frames())))
 {}
 
 AudioBuffer& AudioBuffer::operator=(const AudioBuffer& other) {
@@ -92,14 +92,14 @@ void AudioBuffer::setChannelNum(unsigned n, bool mix /* = false */)
         if (n < c)
             samples_.resize(n);
         else
-            samples_.resize(n, std::vector<SFLAudioSample>(frames(), 0));
+            samples_.resize(n, std::vector<ring::AudioSample>(frames(), 0));
         return;
     }
 
     // 2ch->1ch
     if (n == 1) {
-        std::vector<SFLAudioSample>& chan1 = samples_[0];
-        std::vector<SFLAudioSample>& chan2 = samples_[1];
+        std::vector<ring::AudioSample>& chan1 = samples_[0];
+        std::vector<ring::AudioSample>& chan2 = samples_[1];
         for (unsigned i = 0, f = frames(); i < f; i++)
             chan1[i] = chan1[i] / 2 + chan2[i] / 2;
         samples_.resize(1);
@@ -132,7 +132,7 @@ void AudioBuffer::resize(size_t sample_num)
         s.resize(sample_num, 0);
 }
 
-std::vector<SFLAudioSample> * AudioBuffer::getChannel(unsigned chan /* = 0 */)
+std::vector<ring::AudioSample> * AudioBuffer::getChannel(unsigned chan /* = 0 */)
 {
     if (chan < samples_.size())
         return &samples_[chan];
@@ -163,7 +163,7 @@ size_t AudioBuffer::channelToFloat(float* out, const int& channel) const
     return frames() * samples_.size();
 }
 
-size_t AudioBuffer::interleave(SFLAudioSample* out) const
+size_t AudioBuffer::interleave(ring::AudioSample* out) const
 {
     for (unsigned i=0, f=frames(), c=channels(); i < f; ++i)
         for (unsigned j = 0; j < c; ++j)
@@ -172,15 +172,15 @@ size_t AudioBuffer::interleave(SFLAudioSample* out) const
     return frames() * channels();
 }
 
-size_t AudioBuffer::interleave(std::vector<SFLAudioSample>& out) const
+size_t AudioBuffer::interleave(std::vector<ring::AudioSample>& out) const
 {
     out.resize(capacity());
     return interleave(out.data());
 }
 
-std::vector<SFLAudioSample> AudioBuffer::interleave() const
+std::vector<ring::AudioSample> AudioBuffer::interleave() const
 {
-    std::vector<SFLAudioSample> data(capacity());
+    std::vector<ring::AudioSample> data(capacity());
     interleave(data.data());
     return data;
 }
@@ -194,7 +194,7 @@ size_t AudioBuffer::interleaveFloat(float* out) const
     return frames() * samples_.size();
 }
 
-void AudioBuffer::deinterleave(const SFLAudioSample* in, size_t frame_num, unsigned nb_channels)
+void AudioBuffer::deinterleave(const ring::AudioSample* in, size_t frame_num, unsigned nb_channels)
 {
     if (in == nullptr)
         return;
@@ -208,7 +208,7 @@ void AudioBuffer::deinterleave(const SFLAudioSample* in, size_t frame_num, unsig
             samples_[j][i] = *in++;
 }
 
-void AudioBuffer::deinterleave(const std::vector<SFLAudioSample>& in, AudioFormat format)
+void AudioBuffer::deinterleave(const std::vector<ring::AudioSample>& in, AudioFormat format)
 {
     sampleRate_ = format.sample_rate;
     deinterleave(in.data(), in.size()/format.nb_channels, format.nb_channels);
@@ -255,7 +255,7 @@ size_t AudioBuffer::copy(AudioBuffer& in, int sample_num /* = -1 */, size_t pos_
     return to_copy;
 }
 
-size_t AudioBuffer::copy(SFLAudioSample* in, size_t sample_num, size_t pos_out /* = 0 */)
+size_t AudioBuffer::copy(ring::AudioSample* in, size_t sample_num, size_t pos_out /* = 0 */)
 {
     if (in == nullptr || sample_num == 0) return 0;
 
diff --git a/daemon/src/media/audio/audiobuffer.h b/daemon/src/media/audio/audiobuffer.h
index 4ec1a4ce0588d23ea299c586d5c64db5c4ca6eaf..3d22eb9e4778862284fae8e22fc78bfb006571cd 100644
--- a/daemon/src/media/audio/audiobuffer.h
+++ b/daemon/src/media/audio/audiobuffer.h
@@ -36,14 +36,14 @@
 #include <sstream>
 #include <cstddef> // for size_t
 
-#include "sfl_types.h"
+#include "ring_types.h"
 
 namespace ring {
 
 /**
  * Structure to hold sample rate and channel number associated with audio data.
  */
-typedef struct AudioFormat {
+struct AudioFormat {
     unsigned sample_rate;
     unsigned nb_channels;
 
@@ -67,7 +67,7 @@ typedef struct AudioFormat {
      * Returns bytes necessary to hold one frame of audio data.
      */
     inline size_t getBytesPerFrame() const {
-        return sizeof(SFLAudioSample)*nb_channels;
+        return sizeof(ring::AudioSample)*nb_channels;
     }
 
     /**
@@ -82,7 +82,7 @@ typedef struct AudioFormat {
     static const AudioFormat MONO() { return AudioFormat{DEFAULT_SAMPLE_RATE, 1}; }
     static const AudioFormat STEREO() { return AudioFormat{DEFAULT_SAMPLE_RATE, 2}; }
 
-} AudioFormat;
+};
 
 std::ostream& operator <<(std::ostream& stream, const AudioFormat& f);
 
@@ -96,7 +96,7 @@ class AudioBuffer {
         /**
          * Construtor from existing interleaved data (copied into the buffer).
          */
-        AudioBuffer(const SFLAudioSample* in, size_t sample_num, AudioFormat format);
+        AudioBuffer(const ring::AudioSample* in, size_t sample_num, AudioFormat format);
 
         /**
          * Copy constructor that by default only copies the buffer parameters (channel number, sample rate and buffer size).
@@ -129,7 +129,7 @@ class AudioBuffer {
         }
 
         inline size_t size() const {
-            return frames() * channels() * sizeof(SFLAudioSample);
+            return frames() * channels() * sizeof(ring::AudioSample);
         }
 
         /**
@@ -217,12 +217,12 @@ class AudioBuffer {
          * Return the data (audio samples) for a given channel number.
          * Channel data can be modified but size of individual channel vectors should not be changed by the user.
          */
-        std::vector<SFLAudioSample> *getChannel(unsigned chan);
+        std::vector<ring::AudioSample> *getChannel(unsigned chan);
 
         /**
          * Return a pointer to the raw data in this buffer.
          */
-        inline std::vector<std::vector<SFLAudioSample> > &getData() {
+        inline std::vector<std::vector<ring::AudioSample> > &getData() {
             return samples_;
         }
 
@@ -231,9 +231,9 @@ class AudioBuffer {
          * Caller should not store result because pointer validity is
          * limited in time.
          */
-        inline const std::vector<SFLAudioSample*> getDataRaw() {
+        inline const std::vector<ring::AudioSample*> getDataRaw() {
             const unsigned chans = samples_.size();
-            std::vector<SFLAudioSample*> raw_data(chans, nullptr);
+            std::vector<ring::AudioSample*> raw_data(chans, nullptr);
             for(unsigned i=0; i<chans; i++)
                 raw_data[i] = samples_[i].data();
             return raw_data;
@@ -241,7 +241,7 @@ class AudioBuffer {
 
         /**
          * Convert fixed-point channel to float and write in the out buffer (Float 32-bits).
-         * The out buffer must be at least of size capacity()*sizeof(SFLAudioSample) bytes.
+         * The out buffer must be at least of size capacity()*sizeof(float) bytes.
          *
          * @returns Number of samples writen.
          */
@@ -249,11 +249,11 @@ class AudioBuffer {
 
         /**
          * Write interleaved multichannel data to the out buffer (fixed-point 16-bits).
-         * The out buffer must be at least of size capacity()*sizeof(SFLAudioSample) bytes.
+         * The out buffer must be at least of size capacity()*sizeof(ring::AudioSample) bytes.
          *
          * @returns Number of samples writen.
          */
-        size_t interleave(SFLAudioSample* out) const;
+        size_t interleave(ring::AudioSample* out) const;
 
         /**
          * Write interleaved multichannel data to the out buffer (fixed-point 16-bits).
@@ -261,12 +261,12 @@ class AudioBuffer {
          *
          * @returns Number of samples writen.
          */
-        size_t interleave(std::vector<SFLAudioSample>& out) const;
+        size_t interleave(std::vector<ring::AudioSample>& out) const;
 
         /**
          * Returns vector of interleaved data (fixed-point 16-bits).
          */
-        std::vector<SFLAudioSample> interleave() const;
+        std::vector<ring::AudioSample> interleave() const;
 
         /**
          * Write interleaved multichannel data to the out buffer, while samples are converted to float.
@@ -280,13 +280,13 @@ class AudioBuffer {
          * Import interleaved multichannel data. Internal buffer is resized as needed.
          * Function will read sample_num*channel_num elements of the in buffer.
          */
-        void deinterleave(const SFLAudioSample* in, size_t frame_num, unsigned nb_channels = 1);
+        void deinterleave(const ring::AudioSample* in, size_t frame_num, unsigned nb_channels = 1);
 
         /**
          * Import interleaved multichannel data. Internal buffer is resized as needed.
          * Sample rate is set according to format.
          */
-        void deinterleave(const std::vector<SFLAudioSample>& in, AudioFormat format);
+        void deinterleave(const std::vector<ring::AudioSample>& in, AudioFormat format);
 
         /**
          * In-place gain transformation.
@@ -325,13 +325,13 @@ class AudioBuffer {
          *
          * Buffer sample number is increased if required to hold the new requested samples.
          */
-        size_t copy(SFLAudioSample* in, size_t sample_num, size_t pos_out = 0);
+        size_t copy(ring::AudioSample* in, size_t sample_num, size_t pos_out = 0);
 
     private:
         int sampleRate_;
 
         // buffers holding data for each channels
-        std::vector<std::vector<SFLAudioSample> > samples_;
+        std::vector<std::vector<ring::AudioSample> > samples_;
 };
 
 }
diff --git a/daemon/src/media/audio/audioloop.cpp b/daemon/src/media/audio/audioloop.cpp
index 33688ee71cd282bcfd0a239bad8635fc6b34fedf..bbf6ff1f11662c64dfa37e137580ad6077550332 100644
--- a/daemon/src/media/audio/audioloop.cpp
+++ b/daemon/src/media/audio/audioloop.cpp
@@ -37,13 +37,10 @@
 #endif
 
 #include "audioloop.h"
-
-#include <cmath>
-#include <numeric>
-#include <cstring>
-#include <cassert>
 #include "logger.h"
 
+#include <algorithm> // std::min
+
 namespace ring {
 
 AudioLoop::AudioLoop(unsigned int sampleRate) :
diff --git a/daemon/src/media/audio/audioloop.h b/daemon/src/media/audio/audioloop.h
index e257a86658a6df6080a9bfb813d2a8ebcd61fa26..e97c10ba1ba6ec6f24d93d6d3b3b3b6460b59e95 100644
--- a/daemon/src/media/audio/audioloop.h
+++ b/daemon/src/media/audio/audioloop.h
@@ -33,8 +33,7 @@
 #ifndef __AUDIOLOOP_H__
 #define __AUDIOLOOP_H__
 
-#include "sfl_types.h"
-#include <cstring>
+#include "ring_types.h"
 #include "noncopyable.h"
 #include "audiobuffer.h"
 
diff --git a/daemon/src/media/audio/audiorecord.h b/daemon/src/media/audio/audiorecord.h
index b357313a736e74001018b15442fee9ba59bfd7fd..4c08bebbea064fbecc83d89494f823e5f5d02408 100644
--- a/daemon/src/media/audio/audiorecord.h
+++ b/daemon/src/media/audio/audiorecord.h
@@ -32,7 +32,6 @@
 #define _AUDIO_RECORD_H
 
 #include "audiobuffer.h"
-#include "sfl_types.h"
 #include "noncopyable.h"
 
 #include <memory>
diff --git a/daemon/src/media/audio/codecs/alaw.cpp b/daemon/src/media/audio/codecs/alaw.cpp
index eed361f66f295c22d2c3bd3c7aff07b36867f329..5fe627791dd302c37cfebb13906320663b16158d 100644
--- a/daemon/src/media/audio/codecs/alaw.cpp
+++ b/daemon/src/media/audio/codecs/alaw.cpp
@@ -29,7 +29,7 @@
  *  as that of the covered work.
  */
 
-#include "sfl_types.h"
+#include "ring_types.h"
 #include "audiocodec.h"
 #include "ring_plugin.h"
 #include "g711.h"
@@ -50,7 +50,7 @@ class Alaw : public ring::AudioCodec {
             return new Alaw;
         }
 
-        int decode(SFLAudioSample *pcm, unsigned char *data, size_t len)
+        int decode(ring::AudioSample *pcm, unsigned char *data, size_t len)
         {
             for (unsigned char* end = data + len; data < end; ++data, ++pcm)
                 *pcm = ALawDecode(*data);
@@ -58,7 +58,7 @@ class Alaw : public ring::AudioCodec {
             return len;
         }
 
-        int encode(unsigned char *data, SFLAudioSample *pcm, size_t max_data_bytes)
+        int encode(unsigned char *data, ring::AudioSample *pcm, size_t max_data_bytes)
         {
             unsigned char *end = std::min(data + frameSize_, data + max_data_bytes);
             unsigned char *tmp = data;
@@ -69,11 +69,11 @@ class Alaw : public ring::AudioCodec {
             return end - data;
         }
 
-        static SFLAudioSample ALawDecode(unsigned char alaw) {
+        static ring::AudioSample ALawDecode(unsigned char alaw) {
             return alaw_to_linear(alaw);
         }
 
-        static unsigned char ALawEncode(SFLAudioSample pcm16) {
+        static unsigned char ALawEncode(ring::AudioSample pcm16) {
             return linear_to_alaw(pcm16);
         }
 };
diff --git a/daemon/src/media/audio/codecs/audiocodec.cpp b/daemon/src/media/audio/codecs/audiocodec.cpp
index 5b8093ba3a7c06828296c8f29bbee60df4293aa3..f8de110ff397ac859d4f5d92764faa53599a40ab 100644
--- a/daemon/src/media/audio/codecs/audiocodec.cpp
+++ b/daemon/src/media/audio/codecs/audiocodec.cpp
@@ -60,14 +60,14 @@ AudioCodec::AudioCodec(const AudioCodec& c) :
     hasDynamicPayload_(c.hasDynamicPayload_)
 {}
 
-int AudioCodec::decode(SFLAudioSample *, unsigned char *, size_t)
+int AudioCodec::decode(ring::AudioSample *, unsigned char *, size_t)
 {
     // Unimplemented!
     assert(false);
     return 0;
 }
 
-int AudioCodec::encode(unsigned char *, SFLAudioSample *, size_t)
+int AudioCodec::encode(unsigned char *, ring::AudioSample *, size_t)
 {
     // Unimplemented!
     assert(false);
@@ -76,18 +76,18 @@ int AudioCodec::encode(unsigned char *, SFLAudioSample *, size_t)
 
 
 // Mono only, subclasses must implement multichannel support
-int AudioCodec::decode(std::vector<std::vector<SFLAudioSample> > &pcm, const uint8_t* data, size_t len)
+int AudioCodec::decode(std::vector<std::vector<ring::AudioSample> > &pcm, const uint8_t* data, size_t len)
 {
     return decode(pcm[0].data(), const_cast<uint8_t*>(data), len);
 }
 
 // Mono only, subclasses must implement multichannel support
-size_t AudioCodec::encode(const std::vector<std::vector<SFLAudioSample> > &pcm, uint8_t *data, size_t len)
+size_t AudioCodec::encode(const std::vector<std::vector<ring::AudioSample> > &pcm, uint8_t *data, size_t len)
 {
-    return encode(data, const_cast<SFLAudioSample*>(pcm[0].data()), len);
+    return encode(data, const_cast<ring::AudioSample*>(pcm[0].data()), len);
 }
 
-int AudioCodec::decode(std::vector<std::vector<SFLAudioSample> > &pcm)
+int AudioCodec::decode(std::vector<std::vector<ring::AudioSample> > &pcm)
 {
     pcm.clear();
     return frameSize_;
diff --git a/daemon/src/media/audio/codecs/audiocodec.h b/daemon/src/media/audio/codecs/audiocodec.h
index b55d626fd6638df9e63f2c90d975e452f416246a..468aa206cf690518c27c17a78c97e6dbbd5448a3 100644
--- a/daemon/src/media/audio/codecs/audiocodec.h
+++ b/daemon/src/media/audio/codecs/audiocodec.h
@@ -32,7 +32,7 @@
 #ifndef __AUDIO_CODEC_H__
 #define __AUDIO_CODEC_H__
 
-#include "sfl_types.h"
+#include "ring_types.h"
 
 #include <string>
 #include <vector>
@@ -63,20 +63,20 @@ class AudioCodec {
          * Multichannel version of decode().
          * Default implementation calls mono version
          */
-        virtual int decode(std::vector<std::vector<SFLAudioSample> > &pcm, const uint8_t* data, size_t len);
+        virtual int decode(std::vector<std::vector<ring::AudioSample> > &pcm, const uint8_t* data, size_t len);
 
         /**
          * Inform the codec of a lost packet and perform packet loss concealment.
          * Default implementation fills dst with 0.
          */
-        virtual int decode(std::vector<std::vector<SFLAudioSample> > &pcm);
+        virtual int decode(std::vector<std::vector<ring::AudioSample> > &pcm);
 
         /**
          * Multichannel version of encode().
          * Default implementation calls encode() on the first channel (assume 1 channel).
          * @return the number of bytes encoded
          */
-        virtual size_t encode(const std::vector<std::vector<SFLAudioSample> > &pcm, uint8_t *data, size_t len);
+        virtual size_t encode(const std::vector<std::vector<ring::AudioSample> > &pcm, uint8_t *data, size_t len);
 
         uint8_t getPayloadType() const;
 
@@ -157,7 +157,7 @@ class AudioCodec {
          * @param len: length of input buffer
          * @return the number of samples decoded
          */
-        virtual int decode(SFLAudioSample *pcm, unsigned char *data, size_t len);
+        virtual int decode(ring::AudioSample *pcm, unsigned char *data, size_t len);
 
         /**
          * Encode an input buffer and fill the output buffer with the encoded data
@@ -166,7 +166,7 @@ class AudioCodec {
          * @param max_data_bytes: the maximum size of the encoded data buffer (data)
          * @return the number of bytes encoded
          */
-        virtual int encode(unsigned char *data, SFLAudioSample *pcm, size_t max_data_bytes);
+        virtual int encode(unsigned char *data, ring::AudioSample *pcm, size_t max_data_bytes);
 
         /** Holds SDP-compliant codec name */
         std::string codecName_; // what we put inside sdp
diff --git a/daemon/src/media/audio/codecs/g722.cpp b/daemon/src/media/audio/codecs/g722.cpp
index 416127e2edab5e510e6dd2022b8d22c960c4bf65..e3c5597d95272c40411a1230b84117c306ba6643 100644
--- a/daemon/src/media/audio/codecs/g722.cpp
+++ b/daemon/src/media/audio/codecs/g722.cpp
@@ -32,7 +32,7 @@
  */
 
 #include "audiocodec.h"
-#include "sfl_types.h"
+#include "ring_types.h"
 #include "ring_plugin.h"
 #include "g722.h"
 
@@ -59,12 +59,12 @@ class G722 : public ring::AudioCodec {
             return new G722;
         }
 
-        int decode(SFLAudioSample *pcm, unsigned char *data, size_t len)
+        int decode(ring::AudioSample *pcm, unsigned char *data, size_t len)
         {
             return g722_decode(pcm, data, len);
         }
 
-        int encode(unsigned char *data, SFLAudioSample *pcm, size_t max_data_bytes)
+        int encode(unsigned char *data, ring::AudioSample *pcm, size_t max_data_bytes)
         {
             int out = g722_encode(data, pcm, std::min<size_t>(frameSize_, max_data_bytes));
             return out;
@@ -94,12 +94,12 @@ class G722 : public ring::AudioCodec {
             state.out_bits = 0;
         }
 
-        SFLAudioSample saturate(int32_t amp)
+        ring::AudioSample saturate(int32_t amp)
         {
-            SFLAudioSample amp16 = 0;
+            ring::AudioSample amp16 = 0;
 
             /* Hopefully this is optimised for the common case - not clipping */
-            amp16 = (SFLAudioSample) amp;
+            amp16 = (ring::AudioSample) amp;
 
             if (amp == amp16)
                 return amp16;
@@ -319,7 +319,7 @@ class G722 : public ring::AudioCodec {
             decode_state_.band[band].s = saturate(decode_state_.band[band].sp + decode_state_.band[band].sz);
         }
 
-        int g722_decode(SFLAudioSample amp[], const uint8_t g722_data[], int len)
+        int g722_decode(ring::AudioSample amp[], const uint8_t g722_data[], int len)
         {
             static const int wl[8] = {-60, -30, 58, 172, 334, 538, 1198, 3042 };
             static const int rl42[16] = {0, 7, 6, 5, 4, 3, 2, 1, 7, 6, 5, 4, 3,  2, 1, 0 };
@@ -514,11 +514,11 @@ class G722 : public ring::AudioCodec {
                 }
 
                 if (decode_state_.itu_test_mode) {
-                    amp[outlen++] = (SFLAudioSample)(rlow << 1);
-                    amp[outlen++] = (SFLAudioSample)(rhigh << 1);
+                    amp[outlen++] = (ring::AudioSample)(rlow << 1);
+                    amp[outlen++] = (ring::AudioSample)(rhigh << 1);
                 } else {
                     if (decode_state_.eight_k) {
-                        amp[outlen++] = (SFLAudioSample) (rlow << 1);
+                        amp[outlen++] = (ring::AudioSample) (rlow << 1);
                     } else {
                         /* Apply the receive QMF */
                         for (i = 0;  i < 22;  i++)
@@ -537,9 +537,9 @@ class G722 : public ring::AudioCodec {
                             xout1 += decode_state_.x[2*i + 1]*qmf_coeffs[11 - i];
                         }
 
-                        amp[outlen++] = (SFLAudioSample)(xout1 >> 11);
+                        amp[outlen++] = (ring::AudioSample)(xout1 >> 11);
 
-                        amp[outlen++] = (SFLAudioSample)(xout2 >> 11);
+                        amp[outlen++] = (ring::AudioSample)(xout2 >> 11);
                     }
                 }
             }
@@ -547,7 +547,7 @@ class G722 : public ring::AudioCodec {
             return outlen;
         }
 
-        int g722_encode(uint8_t g722_data[], const SFLAudioSample amp[], int len)
+        int g722_encode(uint8_t g722_data[], const ring::AudioSample amp[], int len)
         {
             static const int q6[32] = {
                 0,   35,   72,  110,  150,  190,  233,  276,
diff --git a/daemon/src/media/audio/codecs/g729.cpp b/daemon/src/media/audio/codecs/g729.cpp
index b1efbc05d01926cc9d9e490004082aac1ab3f629..0ed33fe3d669e78269774f682ac96bed09ed19dc 100644
--- a/daemon/src/media/audio/codecs/g729.cpp
+++ b/daemon/src/media/audio/codecs/g729.cpp
@@ -28,15 +28,15 @@
  *  as that of the covered work.
  */
 #include "g729.h"
-#include "sfl_types.h"
+#include "ring_types.h"
 #include "ring_plugin.h"
 
 #include <iostream>
 #include <dlfcn.h>
 #include <stdexcept>
 
-#define G729_TYPE_ENCODER        (void (*)(bcg729EncoderChannelContextStruct*, SFLAudioSample[], uint8_t[]))
-#define G729_TYPE_DECODER        (void (*)(bcg729DecoderChannelContextStruct*, uint8_t[], uint8_t, SFLAudioSample[]))
+#define G729_TYPE_ENCODER        (void (*)(bcg729EncoderChannelContextStruct*, ring::AudioSample[], uint8_t[]))
+#define G729_TYPE_DECODER        (void (*)(bcg729DecoderChannelContextStruct*, uint8_t[], uint8_t, ring::AudioSample[]))
 
 #define G729_TYPE_DECODER_INIT   (bcg729DecoderChannelContextStruct*(*)())
 #define G729_TYPE_ENCODER_INIT   (bcg729EncoderChannelContextStruct*(*)())
@@ -81,14 +81,14 @@ G729::clone()
     return new G729;
 }
 
-int G729::decode(SFLAudioSample *pcm, unsigned char *data, size_t len)
+int G729::decode(ring::AudioSample *pcm, unsigned char *data, size_t len)
 {
     decoder_(decoderContext_, data, false, pcm);
     decoder_(decoderContext_, data + (len / 2), false, pcm + 80);
     return 160;
 }
 
-int G729::encode(unsigned char *data, SFLAudioSample *pcm, size_t)
+int G729::encode(unsigned char *data, ring::AudioSample *pcm, size_t)
 {
     encoder_(encoderContext_, pcm, data);
     encoder_(encoderContext_, pcm + (frameSize_ / 2), data + 10);
diff --git a/daemon/src/media/audio/codecs/g729.h b/daemon/src/media/audio/codecs/g729.h
index 86b7a4075b3029251501ea4e0510aed8d709a174..23042b7e6fd9146282196c01b15668b7d138f527 100644
--- a/daemon/src/media/audio/codecs/g729.h
+++ b/daemon/src/media/audio/codecs/g729.h
@@ -31,7 +31,7 @@
 #define G729_H_
 
 #include <cstdlib>
-#include "sfl_types.h"
+#include "ring_types.h"
 #include "noncopyable.h"
 
 #include "audiocodec.h"
@@ -45,8 +45,8 @@ public:
    ~G729();
 private:
    AudioCodec * clone();
-   virtual int decode(SFLAudioSample *pcm, unsigned char *data, size_t len);
-   virtual int encode(unsigned char *data, SFLAudioSample *pcm, size_t max_data_bytes);
+   virtual int decode(ring::AudioSample *pcm, unsigned char *data, size_t len);
+   virtual int encode(unsigned char *data, ring::AudioSample *pcm, size_t max_data_bytes);
 
    NON_COPYABLE(G729);
    //Attributes
@@ -55,8 +55,8 @@ private:
    void* handler_;
 
    //Extern functions
-   void (*encoder_) (bcg729EncoderChannelContextStruct *encoderChannelContext, SFLAudioSample inputFrame[], uint8_t bitStream[]);
-   void (*decoder_) (bcg729DecoderChannelContextStruct *decoderChannelContext, uint8_t bitStream[], uint8_t frameErasureFlag, SFLAudioSample signal[]);
+   void (*encoder_) (bcg729EncoderChannelContextStruct *encoderChannelContext, ring::AudioSample inputFrame[], uint8_t bitStream[]);
+   void (*decoder_) (bcg729DecoderChannelContextStruct *decoderChannelContext, uint8_t bitStream[], uint8_t frameErasureFlag, ring::AudioSample signal[]);
 
    static void loadError(const char *error);
 };
diff --git a/daemon/src/media/audio/codecs/gsmcodec.cpp b/daemon/src/media/audio/codecs/gsmcodec.cpp
index 4c834a070539082f3914c5ee9b88e4b5cb6ae80d..67c99e87ca85d1c204c626b07f45966cd7409e56 100644
--- a/daemon/src/media/audio/codecs/gsmcodec.cpp
+++ b/daemon/src/media/audio/codecs/gsmcodec.cpp
@@ -31,7 +31,7 @@
 
 
 #include "audiocodec.h"
-#include "sfl_types.h"
+#include "ring_types.h"
 #include "noncopyable.h"
 #include "ring_plugin.h"
 
@@ -73,7 +73,7 @@ private:
             return new Gsm;
         }
 
-        int decode(SFLAudioSample *pcm, unsigned char *data, size_t)
+        int decode(ring::AudioSample *pcm, unsigned char *data, size_t)
         {
             if (gsm_decode(decode_gsmhandle_, (gsm_byte*) data, (gsm_signal*) pcm) < 0)
                 throw std::runtime_error("Error in gsm_decode\n");
@@ -81,7 +81,7 @@ private:
             return frameSize_;
         }
 
-        int encode(unsigned char *data, SFLAudioSample *pcm, size_t)
+        int encode(unsigned char *data, ring::AudioSample *pcm, size_t)
         {
             gsm_encode(encode_gsmhandle_, (gsm_signal*) pcm, (gsm_byte*) data);
             return sizeof(gsm_frame);
diff --git a/daemon/src/media/audio/codecs/ilbc.cpp b/daemon/src/media/audio/codecs/ilbc.cpp
index 8bb64b049d6a5956ba28717f0b1d0b0b46e2fbe3..3f98a38e645e3c2069fed4ef946ad4c85c02d69b 100644
--- a/daemon/src/media/audio/codecs/ilbc.cpp
+++ b/daemon/src/media/audio/codecs/ilbc.cpp
@@ -29,7 +29,7 @@
  */
 
 #include "audiocodec.h"
-#include "sfl_types.h"
+#include "ring_types.h"
 #include <algorithm>
 
 extern "C" {
@@ -56,13 +56,13 @@ class Ilbc: public ring::AudioCodec {
         }
 
         // iLBC expects floating point data, so we have to convert
-        int decode(SFLAudioSample *pcm, unsigned char *data, size_t) {
+        int decode(ring::AudioSample *pcm, unsigned char *data, size_t) {
             const int NORMAL_MODE = 1;
             iLBC_decode(pcm, reinterpret_cast<WebRtc_UWord16*>(data), &ilbc_dec_, NORMAL_MODE);
             return frameSize_;
         }
 
-        int encode(unsigned char *data, SFLAudioSample *pcm, size_t) {
+        int encode(unsigned char *data, ring::AudioSample *pcm, size_t) {
             iLBC_encode(reinterpret_cast<WebRtc_UWord16*>(data), pcm, &ilbc_enc_);
             return frameSize_;
         }
diff --git a/daemon/src/media/audio/codecs/opuscodec.cpp b/daemon/src/media/audio/codecs/opuscodec.cpp
index 0dfe3c9d8891c2aa60649cfa5bb45775995c30db..4c32f85e8dc465935492a53252f5f5b20936cfb6 100644
--- a/daemon/src/media/audio/codecs/opuscodec.cpp
+++ b/daemon/src/media/audio/codecs/opuscodec.cpp
@@ -29,7 +29,7 @@
  *  as that of the covered work.
  */
 #include "opuscodec.h"
-#include "sfl_types.h"
+#include "ring_types.h"
 #include "ring_plugin.h"
 
 #include <stdexcept>
@@ -108,7 +108,7 @@ Opus::getSDPChannels() const
     return "2";
 }
 
-int Opus::decode(std::vector<std::vector<SFLAudioSample> > &pcm, const uint8_t *data, size_t len)
+int Opus::decode(std::vector<std::vector<ring::AudioSample> > &pcm, const uint8_t *data, size_t len)
 {
     if (data == nullptr) return 0;
 
@@ -116,7 +116,7 @@ int Opus::decode(std::vector<std::vector<SFLAudioSample> > &pcm, const uint8_t *
     if (channelsCur_ == 1) {
         ret = opus_decode(decoder_, data, len, pcm[0].data(), MAX_PACKET_SIZE, 0);
     } else {
-        std::array<SFLAudioSample, 2 * MAX_PACKET_SIZE> ibuf; // deinterleave on stack, 11.25KiB used.
+        std::array<ring::AudioSample, 2 * MAX_PACKET_SIZE> ibuf; // deinterleave on stack, 11.25KiB used.
         ret = opus_decode(decoder_, data, len, ibuf.data(), MAX_PACKET_SIZE, 0);
         for (int i = 0; i < ret; i++) {
             pcm[0][i] = ibuf[2 * i];
@@ -129,14 +129,14 @@ int Opus::decode(std::vector<std::vector<SFLAudioSample> > &pcm, const uint8_t *
     return ret;
 }
 
-int Opus::decode(std::vector<std::vector<SFLAudioSample> > &pcm)
+int Opus::decode(std::vector<std::vector<ring::AudioSample> > &pcm)
 {
     if (!lastDecodedFrameSize_) return 0;
     int ret;
     if (channelsCur_ == 1) {
         ret = opus_decode(decoder_, nullptr, 0, pcm[0].data(), lastDecodedFrameSize_, 0);
     } else {
-        std::array<SFLAudioSample, 2 * MAX_PACKET_SIZE> ibuf; // deinterleave on stack, 11.25KiB used.
+        std::array<ring::AudioSample, 2 * MAX_PACKET_SIZE> ibuf; // deinterleave on stack, 11.25KiB used.
         ret = opus_decode(decoder_, nullptr, 0, ibuf.data(), lastDecodedFrameSize_, 0);
         for (int i = 0; i < ret; i++) {
             pcm[0][i] = ibuf[2 * i];
@@ -148,14 +148,14 @@ int Opus::decode(std::vector<std::vector<SFLAudioSample> > &pcm)
     return ret;
 }
 
-size_t Opus::encode(const std::vector<std::vector<SFLAudioSample> > &pcm, uint8_t *data, size_t len)
+size_t Opus::encode(const std::vector<std::vector<ring::AudioSample> > &pcm, uint8_t *data, size_t len)
 {
     if (data == nullptr) return 0;
     int ret;
     if (channelsCur_ == 1) {
         ret = opus_encode(encoder_, pcm[0].data(), FRAME_SIZE, data, len);
     } else {
-        std::array<SFLAudioSample, 2 * FRAME_SIZE> ibuf; // interleave on stack, 1.875KiB used;
+        std::array<ring::AudioSample, 2 * FRAME_SIZE> ibuf; // interleave on stack, 1.875KiB used;
         for (unsigned i = 0; i < FRAME_SIZE; i++) {
             ibuf[2 * i] = pcm[0][i];
             ibuf[2 * i + 1] = pcm[1][i];
diff --git a/daemon/src/media/audio/codecs/opuscodec.h b/daemon/src/media/audio/codecs/opuscodec.h
index 7543d73da8162c26b28cfff7153806143a741964..d2e667c5d275b4c4826368700257b1963015406a 100644
--- a/daemon/src/media/audio/codecs/opuscodec.h
+++ b/daemon/src/media/audio/codecs/opuscodec.h
@@ -34,7 +34,7 @@
 #include "audiocodec.h"
 
 #include "noncopyable.h"
-#include "sfl_types.h"
+#include "ring_types.h"
 
 #include <opus.h>
 
@@ -52,10 +52,10 @@ public:
 private:
    ring::AudioCodec * clone();
 
-   virtual int decode(std::vector<std::vector<SFLAudioSample> > &pcm, const uint8_t *data, size_t len);
-   virtual int decode(std::vector<std::vector<SFLAudioSample> > &pcm);
+   virtual int decode(std::vector<std::vector<ring::AudioSample> > &pcm, const uint8_t *data, size_t len);
+   virtual int decode(std::vector<std::vector<ring::AudioSample> > &pcm);
 
-   virtual size_t encode(const std::vector<std::vector<SFLAudioSample> > &pcm, uint8_t *data, size_t len);
+   virtual size_t encode(const std::vector<std::vector<ring::AudioSample> > &pcm, uint8_t *data, size_t len);
 
    virtual uint32_t getSDPClockRate() const;
    virtual const char *getSDPChannels() const;
diff --git a/daemon/src/media/audio/codecs/speexcodec.h b/daemon/src/media/audio/codecs/speexcodec.h
index 37235c3f59304a0ea4df5bd9b29cd8617b95cc2f..3b70170ea4a9e0428a58de1d2bda4c847d3eb491 100644
--- a/daemon/src/media/audio/codecs/speexcodec.h
+++ b/daemon/src/media/audio/codecs/speexcodec.h
@@ -29,7 +29,7 @@
  *  as that of the covered work.
  */
 
-#include "sfl_types.h"
+#include "ring_types.h"
 #include "audiocodec.h"
 #include "noncopyable.h"
 #include "array_size.h"
@@ -90,13 +90,13 @@ private:
 
         NON_COPYABLE(Speex);
 
-        virtual int decode(SFLAudioSample *pcm, unsigned char *data, size_t len) {
+        virtual int decode(ring::AudioSample *pcm, unsigned char *data, size_t len) {
             speex_bits_read_from(&speex_dec_bits_, (char*) data, len);
             speex_decode_int(speex_dec_state_, &speex_dec_bits_, pcm);
             return frameSize_;
         }
 
-        virtual int encode(unsigned char *data, SFLAudioSample *pcm, size_t max_data_bytes) {
+        virtual int encode(unsigned char *data, ring::AudioSample *pcm, size_t max_data_bytes) {
             speex_bits_reset(&speex_enc_bits_);
             speex_encode_int(speex_enc_state_, pcm, &speex_enc_bits_);
             return speex_bits_write(&speex_enc_bits_, (char*) data,
diff --git a/daemon/src/media/audio/codecs/ulaw.cpp b/daemon/src/media/audio/codecs/ulaw.cpp
index 962cd51a8657f06f2a5043f7fc6c70514e703524..d840a05de6a929c036a30dc8df02829101c5bfdd 100644
--- a/daemon/src/media/audio/codecs/ulaw.cpp
+++ b/daemon/src/media/audio/codecs/ulaw.cpp
@@ -30,7 +30,7 @@
  */
 
 #include "audiocodec.h"
-#include "sfl_types.h"
+#include "ring_types.h"
 #include "ring_plugin.h"
 #include "g711.h"
 
@@ -49,7 +49,7 @@ class Ulaw : public ring::AudioCodec {
             return new Ulaw;
         }
 
-        int decode(SFLAudioSample *pcm, unsigned char *data, size_t len)
+        int decode(ring::AudioSample *pcm, unsigned char *data, size_t len)
         {
             for (const unsigned char *end = data + len; data < end;
                  ++data, ++pcm)
@@ -58,7 +58,7 @@ class Ulaw : public ring::AudioCodec {
             return len;
         }
 
-        int encode(unsigned char *data, SFLAudioSample *pcm, size_t max_data_bytes)
+        int encode(unsigned char *data, ring::AudioSample *pcm, size_t max_data_bytes)
         {
             const unsigned char *end = data +
                 std::min<size_t>(frameSize_, max_data_bytes);
@@ -70,11 +70,11 @@ class Ulaw : public ring::AudioCodec {
             return end - data;
         }
 
-        static SFLAudioSample ULawDecode(uint8_t ulaw) {
+        static ring::AudioSample ULawDecode(uint8_t ulaw) {
             return ulaw_to_linear(ulaw);
         }
 
-        static uint8_t ULawEncode(SFLAudioSample pcm16) {
+        static uint8_t ULawEncode(ring::AudioSample pcm16) {
             return linear_to_ulaw(pcm16);
         }
 };
diff --git a/daemon/src/media/audio/coreaudio/corelayer.cpp b/daemon/src/media/audio/coreaudio/corelayer.cpp
index 47e83b5280c282c63ca838795f14014ae66856f2..3deb9c8823ffe74d483a604de8e0062ff8590517 100644
--- a/daemon/src/media/audio/coreaudio/corelayer.cpp
+++ b/daemon/src/media/audio/coreaudio/corelayer.cpp
@@ -499,7 +499,7 @@ void CoreLayer::read(AudioUnitRenderActionFlags* ioActionFlags,
     for (int i = 0; i < info.mChannelsPerFrame; ++i) {
         Float32* data = (Float32*)captureBuff_->mBuffers[i].mData;
         for (int j = 0; j < inNumberFrames; ++j) {
-            (*inBuff.getChannel(i))[j] = (SFLAudioSample)((data)[j] / .000030517578125f);
+            (*inBuff.getChannel(i))[j] = (ring::AudioSample)((data)[j] / .000030517578125f);
         }
     }
 
diff --git a/daemon/src/media/audio/coreaudio/corelayer.h b/daemon/src/media/audio/coreaudio/corelayer.h
index 0b89b4bc790888a01c0a289aa2a6bcff1097bb7b..51ff8be4db889b0230073e114825dc46ea1d93df 100644
--- a/daemon/src/media/audio/coreaudio/corelayer.h
+++ b/daemon/src/media/audio/coreaudio/corelayer.h
@@ -171,8 +171,8 @@ class CoreLayer : public AudioLayer {
         ::AudioBufferList* captureBuff_; // CoreAudio buffer.
 
         /** Interleaved buffer */
-        std::vector<SFLAudioSample> playbackIBuff_;
-        std::vector<SFLAudioSample> captureIBuff_;
+        std::vector<ring::AudioSample> playbackIBuff_;
+        std::vector<ring::AudioSample> captureIBuff_;
 
         AudioUnit outputUnit_;
         AudioUnit inputUnit_;
diff --git a/daemon/src/media/audio/dcblocker.cpp b/daemon/src/media/audio/dcblocker.cpp
index 4a86273a8ba9fc0ee0d7d7ca51085fc7db980767..24229e08c78b70dd3673285e7c5278f5b870667d 100644
--- a/daemon/src/media/audio/dcblocker.cpp
+++ b/daemon/src/media/audio/dcblocker.cpp
@@ -41,13 +41,13 @@ void DcBlocker::reset()
     states.assign(states.size(), (struct StreamState){0, 0, 0, 0});
 }
 
-void DcBlocker::doProcess(SFLAudioSample *out, SFLAudioSample *in, unsigned samples, struct StreamState * state)
+void DcBlocker::doProcess(ring::AudioSample *out, ring::AudioSample *in, unsigned samples, struct StreamState * state)
 {
     for (unsigned i = 0; i < samples; ++i) {
         state->x_ = in[i];
 
 
-        state->y_ = (SFLAudioSample) ((float) state->x_ - (float) state->xm1_ + 0.9999 * (float) state->y_);
+        state->y_ = (ring::AudioSample) ((float) state->x_ - (float) state->xm1_ + 0.9999 * (float) state->y_);
         state->xm1_ = state->x_;
         state->ym1_ = state->y_;
 
@@ -55,7 +55,7 @@ void DcBlocker::doProcess(SFLAudioSample *out, SFLAudioSample *in, unsigned samp
     }
 }
 
-void DcBlocker::process(SFLAudioSample *out, SFLAudioSample *in, int samples)
+void DcBlocker::process(ring::AudioSample *out, ring::AudioSample *in, int samples)
 {
     if (out == NULL or in == NULL or samples == 0) return;
     doProcess(out, in, samples, &states[0]);
@@ -70,7 +70,7 @@ void DcBlocker::process(AudioBuffer& buf)
 
     unsigned i;
     for(i=0; i<chans; i++) {
-        SFLAudioSample *chan = buf.getChannel(i)->data();
+        ring::AudioSample *chan = buf.getChannel(i)->data();
         doProcess(chan, chan, samples, &states[i]);
     }
 }
diff --git a/daemon/src/media/audio/dcblocker.h b/daemon/src/media/audio/dcblocker.h
index 54c39732f4fd8caa886d7e5fdec101d7ae619dd0..6cc42557986b4a576ddef8aa2cf90a44436343c4 100644
--- a/daemon/src/media/audio/dcblocker.h
+++ b/daemon/src/media/audio/dcblocker.h
@@ -32,7 +32,7 @@
 #ifndef DCBLOCKER_H
 #define DCBLOCKER_H
 
-#include "sfl_types.h"
+#include "ring_types.h"
 #include "audiobuffer.h"
 
 namespace ring {
@@ -42,7 +42,7 @@ class DcBlocker {
         DcBlocker(unsigned channels = 1);
         void reset();
 
-        void process(SFLAudioSample *out, SFLAudioSample *in, int samples);
+        void process(ring::AudioSample *out, ring::AudioSample *in, int samples);
 
         /**
          * In-place processing of all samples in buf (each channel treated independently)
@@ -51,10 +51,10 @@ class DcBlocker {
 
     private:
         struct StreamState {
-            SFLAudioSample y_, x_, xm1_, ym1_;
+            ring::AudioSample y_, x_, xm1_, ym1_;
         };
 
-        void doProcess(SFLAudioSample *out, SFLAudioSample *in, unsigned samples, struct StreamState * state);
+        void doProcess(ring::AudioSample *out, ring::AudioSample *in, unsigned samples, struct StreamState * state);
 
         std::vector<StreamState> states;
 };
diff --git a/daemon/src/media/audio/jack/jacklayer.cpp b/daemon/src/media/audio/jack/jacklayer.cpp
index 3e23abbfb3e3500ea83b28291f0fd5a0c041c4f0..4b796b7dc9922e9b0ede7cc5789bdf725e5104e2 100644
--- a/daemon/src/media/audio/jack/jacklayer.cpp
+++ b/daemon/src/media/audio/jack/jacklayer.cpp
@@ -173,7 +173,7 @@ JackLayer::capture()
 }
 
 static void
-convertToFloat(const std::vector<SFLAudioSample> &src, std::vector<float> &dest)
+convertToFloat(const std::vector<ring::AudioSample> &src, std::vector<float> &dest)
 {
     static const float INV_SHORT_MAX = 1 / (float) SHRT_MAX;
     if (dest.size() != src.size()) {
@@ -185,7 +185,7 @@ convertToFloat(const std::vector<SFLAudioSample> &src, std::vector<float> &dest)
 }
 
 static void
-convertFromFloat(std::vector<float> &src, std::vector<SFLAudioSample> &dest)
+convertFromFloat(std::vector<float> &src, std::vector<ring::AudioSample> &dest)
 {
     if (dest.size() != src.size()) {
         RING_ERR("MISMATCH");
diff --git a/daemon/src/media/audio/opensl/opensllayer.cpp b/daemon/src/media/audio/opensl/opensllayer.cpp
index 39c2ab7fb653e14eb61275cdd1aeaf7a751fa26b..284df53d8d3eafa57d9606fc65ec7743a547e12d 100644
--- a/daemon/src/media/audio/opensl/opensllayer.cpp
+++ b/daemon/src/media/audio/opensl/opensllayer.cpp
@@ -658,7 +658,7 @@ OpenSLLayer::playback(SLAndroidSimpleBufferQueueItf queue)
     }
 
     if (bufferIsFilled_) {
-        SLresult result = (*queue)->Enqueue(queue, buffer.getChannel(0)->data(), buffer.frames()*sizeof(SFLAudioSample));
+        SLresult result = (*queue)->Enqueue(queue, buffer.getChannel(0)->data(), buffer.frames()*sizeof(ring::AudioSample));
         if (SL_RESULT_SUCCESS != result) {
             RING_DBG("Error could not enqueue buffers in playback callback\n");
         }
@@ -687,7 +687,7 @@ OpenSLLayer::capture(SLAndroidSimpleBufferQueueItf queue)
     SLresult result;
     // enqueue an empty buffer to be filled by the recorder
     // (for streaming recording, we enqueue at least 2 empty buffers to start things off)
-    result = (*recorderBufferQueue_)->Enqueue(recorderBufferQueue_, buffer.getChannel(0)->data(), buffer.frames()*sizeof(SFLAudioSample));
+    result = (*recorderBufferQueue_)->Enqueue(recorderBufferQueue_, buffer.getChannel(0)->data(), buffer.frames()*sizeof(ring::AudioSample));
 
     audioCaptureFillBuffer(old_buffer);
 
diff --git a/daemon/src/media/audio/pulseaudio/pulselayer.cpp b/daemon/src/media/audio/pulseaudio/pulselayer.cpp
index 25709ad15a6385f8a98417f257fc47610cb78c3b..4ea5858fbdbca30a8fb42a1e283e798bf412f02e 100644
--- a/daemon/src/media/audio/pulseaudio/pulselayer.cpp
+++ b/daemon/src/media/audio/pulseaudio/pulselayer.cpp
@@ -490,7 +490,7 @@ void PulseLayer::writeToSpeaker()
         urgentBytes = urgentSamples * sample_size;
     }
 
-    SFLAudioSample *data = 0;
+    ring::AudioSample *data = 0;
 
     if (urgentBytes) {
         AudioBuffer linearbuff(urgentSamples, format);
@@ -585,7 +585,7 @@ void PulseLayer::readFromMic()
     const size_t samples = bytes / sample_size / format.nb_channels;
 
     AudioBuffer in(samples, format);
-    in.deinterleave((SFLAudioSample*)data, samples, format.nb_channels);
+    in.deinterleave((ring::AudioSample*)data, samples, format.nb_channels);
 
     unsigned int mainBufferSampleRate = Manager::instance().getRingBufferPool().getInternalSamplingRate();
     bool resample = audioFormat_.sample_rate != mainBufferSampleRate;
@@ -635,7 +635,7 @@ void PulseLayer::ringtoneToSpeaker()
         const unsigned samples = (bytes / sample_size) / ringtone_->channels();
         AudioBuffer tmp(samples, ringtone_->getFormat());
         fileToPlay->getNext(tmp, playbackGain_);
-        tmp.interleave((SFLAudioSample*) data);
+        tmp.interleave((ring::AudioSample*) data);
     } else {
         memset(data, 0, bytes);
     }
diff --git a/daemon/src/media/audio/resampler.cpp b/daemon/src/media/audio/resampler.cpp
index e7a2d745cb5c5b3d7053e7c2cd56e6fd9d791b05..b422c749b5bf791d0580b4ac20234c29c81f6a6f 100644
--- a/daemon/src/media/audio/resampler.cpp
+++ b/daemon/src/media/audio/resampler.cpp
@@ -30,7 +30,7 @@
 
 #include "resampler.h"
 #include "logger.h"
-#include "sfl_types.h"
+#include "ring_types.h"
 
 #include <samplerate.h>
 
diff --git a/daemon/src/media/audio/resampler.h b/daemon/src/media/audio/resampler.h
index 06a74620b500bf49e8926f1d8281b63ea9a8c495..6d90b90c56a268bf0ea261fcaad7a996e07cc12c 100644
--- a/daemon/src/media/audio/resampler.h
+++ b/daemon/src/media/audio/resampler.h
@@ -36,7 +36,7 @@
 #include <memory>
 
 #include "audiobuffer.h"
-#include "sfl_types.h"
+#include "ring_types.h"
 #include "noncopyable.h"
 
 namespace ring {
@@ -77,7 +77,7 @@ class Resampler {
         /* temporary buffers */
         std::vector<float> floatBufferIn_;
         std::vector<float> floatBufferOut_;
-        std::vector<SFLAudioSample> scratchBuffer_;
+        std::vector<ring::AudioSample> scratchBuffer_;
 
         size_t samples_; // size in samples of temporary buffers
         AudioFormat format_; // number of channels and max output frequency
diff --git a/daemon/src/media/audio/ringbufferpool.cpp b/daemon/src/media/audio/ringbufferpool.cpp
index 9460eac29fdc900403a14f6db31d3baee926d635..f94ab7efd5044e1c99a768ce8afd0bbb336966e5 100644
--- a/daemon/src/media/audio/ringbufferpool.cpp
+++ b/daemon/src/media/audio/ringbufferpool.cpp
@@ -31,7 +31,7 @@
 
 #include "ringbufferpool.h"
 #include "ringbuffer.h"
-#include "sfl_types.h" // for SIZEBUF
+#include "ring_types.h" // for SIZEBUF
 #include "logger.h"
 
 #include <limits>
diff --git a/daemon/src/media/audio/sound/audiofile.cpp b/daemon/src/media/audio/sound/audiofile.cpp
index 07a00c8d0bf6a391bf27b00ea3d11d6282b28fe2..cc04c9bf592fa5720bec0b46371fd765ce4e4a8f 100644
--- a/daemon/src/media/audio/sound/audiofile.cpp
+++ b/daemon/src/media/audio/sound/audiofile.cpp
@@ -115,7 +115,7 @@ AudioFile::AudioFile(const std::string &fileName, unsigned int sampleRate) :
 
     const sf_count_t nbFrames = hasHeader ? fileHandle.frames() : fileSize / fileHandle.channels();
 
-    SFLAudioSample * interleaved = new SFLAudioSample[nbFrames * fileHandle.channels()];
+    ring::AudioSample * interleaved = new ring::AudioSample[nbFrames * fileHandle.channels()];
 
     // get n "items", aka samples (not frames)
     fileHandle.read(interleaved, nbFrames * fileHandle.channels());
diff --git a/daemon/src/media/audio/sound/dtmf.cpp b/daemon/src/media/audio/sound/dtmf.cpp
index efba06deb5ac6537b1b2704a2237e0ded7d8410a..4f35d3298b1229d91209b47dc1bd5a2e6fc96255 100644
--- a/daemon/src/media/audio/sound/dtmf.cpp
+++ b/daemon/src/media/audio/sound/dtmf.cpp
@@ -47,7 +47,7 @@ void DTMF::startTone(char code)
 
 using std::vector;
 
-bool DTMF::generateDTMF(vector<SFLAudioSample> &buffer)
+bool DTMF::generateDTMF(vector<ring::AudioSample> &buffer)
 {
     try {
         if (currentTone_ != 0) {
diff --git a/daemon/src/media/audio/sound/dtmf.h b/daemon/src/media/audio/sound/dtmf.h
index 48c8b3adf4db4e45b672da2d8a35496d29805341..a0d64c71157b80df7c120bfa7b99a1609bc0dffe 100644
--- a/daemon/src/media/audio/sound/dtmf.h
+++ b/daemon/src/media/audio/sound/dtmf.h
@@ -59,9 +59,9 @@ class DTMF {
 
         /**
          * Copy the sound inside the sampling* buffer
-         * @param buffer : a vector of SFLAudioSample
+         * @param buffer : a vector of ring::AudioSample
          */
-        bool generateDTMF(std::vector<SFLAudioSample> &buffer);
+        bool generateDTMF(std::vector<ring::AudioSample> &buffer);
 
     private:
         char currentTone_;
diff --git a/daemon/src/media/audio/sound/dtmfgenerator.cpp b/daemon/src/media/audio/sound/dtmfgenerator.cpp
index 837978d2d10268c9035b606ccb5cc7b4fe5be7e2..94bc0ba3614312ba29b07db977f2c750f6a54beb 100644
--- a/daemon/src/media/audio/sound/dtmfgenerator.cpp
+++ b/daemon/src/media/audio/sound/dtmfgenerator.cpp
@@ -87,7 +87,7 @@ using std::vector;
 /*
  * Get n samples of the signal of code code
  */
-void DTMFGenerator::getSamples(vector<SFLAudioSample> &buffer, unsigned char code)
+void DTMFGenerator::getSamples(vector<ring::AudioSample> &buffer, unsigned char code)
 {
     code = toupper(code);
 
@@ -124,7 +124,7 @@ void DTMFGenerator::getSamples(vector<SFLAudioSample> &buffer, unsigned char cod
  * Get next n samples (continues where previous call to
  * genSample or genNextSamples stopped
  */
-void DTMFGenerator::getNextSamples(vector<SFLAudioSample> &buffer)
+void DTMFGenerator::getNextSamples(vector<ring::AudioSample> &buffer)
 {
     if (state.sample == 0)
         throw DTMFException("DTMF generator not initialized");
@@ -138,10 +138,10 @@ void DTMFGenerator::getNextSamples(vector<SFLAudioSample> &buffer)
     state.offset = (state.offset + i) % sampleRate_;
 }
 
-SFLAudioSample* DTMFGenerator::fillToneBuffer(int index)
+ring::AudioSample* DTMFGenerator::fillToneBuffer(int index)
 {
     assert(index >= 0 and index < NUM_TONES);
-    SFLAudioSample* ptr = new SFLAudioSample[sampleRate_];
+    ring::AudioSample* ptr = new ring::AudioSample[sampleRate_];
     tone_.genSin(ptr, tones_[index].higher, tones_[index].lower, sampleRate_);
     return ptr;
 }
diff --git a/daemon/src/media/audio/sound/dtmfgenerator.h b/daemon/src/media/audio/sound/dtmfgenerator.h
index 273b926be095809ebd977d55226500a5594fdc13..cea0bc481c994bba0b7c2731e4f8b98dc9e77085 100644
--- a/daemon/src/media/audio/sound/dtmfgenerator.h
+++ b/daemon/src/media/audio/sound/dtmfgenerator.h
@@ -72,7 +72,7 @@ class DTMFGenerator {
         /** State of the DTMF generator */
         struct DTMFState {
             unsigned int offset;   /** Offset in the sample currently being played */
-            SFLAudioSample* sample;         /** Currently generated code */
+            ring::AudioSample* sample;         /** Currently generated code */
         };
 
         /** State of the DTMF generator */
@@ -82,7 +82,7 @@ class DTMFGenerator {
         static const DTMFTone tones_[NUM_TONES];
 
         /** Generated samples for each tone */
-        SFLAudioSample* toneBuffers_[NUM_TONES];
+        ring::AudioSample* toneBuffers_[NUM_TONES];
 
         /** Sampling rate of generated dtmf */
         int sampleRate_;
@@ -104,26 +104,26 @@ class DTMFGenerator {
 
         /*
          * Get n samples of the signal of code code
-         * @param buffer a SFLAudioSample vector
+         * @param buffer a ring::AudioSample vector
          * @param code   dtmf code to get sound
          */
-        void getSamples(std::vector<SFLAudioSample> &buffer, unsigned char code);
+        void getSamples(std::vector<ring::AudioSample> &buffer, unsigned char code);
 
         /*
          * Get next n samples (continues where previous call to
          * genSample or genNextSamples stopped
-         * @param buffer a SFLAudioSample vector
+         * @param buffer a ring::AudioSample vector
          */
-        void getNextSamples(std::vector<SFLAudioSample> &buffer);
+        void getNextSamples(std::vector<ring::AudioSample> &buffer);
 
     private:
 
         /**
          * Fill tone buffer for a given index of the array of tones.
          * @param index of the tone in the array tones_
-         * @return SFLAudioSample* The generated data
+         * @return ring::AudioSample* The generated data
          */
-        SFLAudioSample* fillToneBuffer(int index);
+        ring::AudioSample* fillToneBuffer(int index);
 };
 
 }
diff --git a/daemon/src/media/audio/sound/tone.cpp b/daemon/src/media/audio/sound/tone.cpp
index c6b9815428310bd2c4172b9327eec227dcad04ee..f35ca63cfac0831729a61de8092d2d2aa54e5421 100644
--- a/daemon/src/media/audio/sound/tone.cpp
+++ b/daemon/src/media/audio/sound/tone.cpp
@@ -36,7 +36,7 @@
  */
 #include "tone.h"
 #include "logger.h"
-#include "sfl_types.h"
+#include "ring_types.h"
 #include <cmath>
 #include <cassert>
 #include <cstdlib>
@@ -61,7 +61,7 @@ Tone::genBuffer(const std::string& definition)
     size_t size = 0;
     const int sampleRate = buffer_->getSampleRate();
 
-    std::vector<SFLAudioSample> buffer(SIZEBUF);
+    std::vector<ring::AudioSample> buffer(SIZEBUF);
     size_t bufferPos(0);
 
     // Number of format sections
@@ -155,7 +155,7 @@ Tone::interpolate(double x) const
 }
 
 void
-Tone::genSin(SFLAudioSample* buffer, int lowFrequency, int highFrequency, int nb)
+Tone::genSin(ring::AudioSample* buffer, int lowFrequency, int highFrequency, int nb)
 {
     xhigher_ = 0.0;
     xlower_ = 0.0;
diff --git a/daemon/src/media/audio/sound/tone.h b/daemon/src/media/audio/sound/tone.h
index cc75cdb4ebec47f3ded94aee780b8adf14990375..decf8f056282a979b4cd9e354533bf06f0b9725b 100644
--- a/daemon/src/media/audio/sound/tone.h
+++ b/daemon/src/media/audio/sound/tone.h
@@ -69,7 +69,7 @@ class Tone : public AudioLoop {
          * @param nb are the number of int16 (mono) to generate
          * by example nb=5 generate 10 int16, 5 for the left, 5 for the right
          */
-        void genSin(SFLAudioSample* buffer, int frequency1, int frequency2, int nb);
+        void genSin(ring::AudioSample* buffer, int frequency1, int frequency2, int nb);
 
         /**
          *
diff --git a/daemon/src/media/video/video_decoder.cpp b/daemon/src/media/video/video_decoder.cpp
index aea85c6cff677120e5f90fb5d6a0a8d21a413c7d..821ced2e2c95cd2cbe831806bd6d0335476ac1a7 100644
--- a/daemon/src/media/video/video_decoder.cpp
+++ b/daemon/src/media/video/video_decoder.cpp
@@ -427,7 +427,7 @@ void VideoDecoder::writeToRingBuffer(AVFrame* decoded_frame,
 
     ring::AudioBuffer out(decoded_frame->nb_samples, decoderFormat);
 
-    out.deinterleave(reinterpret_cast<const SFLAudioSample*>(decoded_frame->data[0]),
+    out.deinterleave(reinterpret_cast<const ring::AudioSample*>(decoded_frame->data[0]),
                      decoded_frame->nb_samples, decoderCtx_->channels);
     if ((unsigned)decoded_frame->sample_rate != outFormat.sample_rate) {
         if (!resampler_) {
diff --git a/daemon/src/media/video/video_encoder.cpp b/daemon/src/media/video/video_encoder.cpp
index 63aa173adc58ff4dec385cbeb80d8ab2e3896e78..4ff26d4eb4b59ae1e998378cfeb76f397ececa49 100644
--- a/daemon/src/media/video/video_encoder.cpp
+++ b/daemon/src/media/video/video_encoder.cpp
@@ -329,11 +329,11 @@ int VideoEncoder::encode_audio(const ring::AudioBuffer &buffer)
         return -1;
     }
 
-    SFLAudioSample *sample_data = reinterpret_cast<SFLAudioSample*>(av_malloc(needed_bytes));
+    ring::AudioSample *sample_data = reinterpret_cast<ring::AudioSample*>(av_malloc(needed_bytes));
     if (!sample_data)
         return -1;
 
-    SFLAudioSample *offset_ptr = sample_data;
+    ring::AudioSample *offset_ptr = sample_data;
     int nb_frames = buffer.frames();
 
     buffer.interleave(sample_data);
diff --git a/daemon/src/sfl_types.h b/daemon/src/ring_types.h
similarity index 93%
rename from daemon/src/sfl_types.h
rename to daemon/src/ring_types.h
index e7fbe829ec0c883011924a11d1877b00abf0af24..04c26d015b4250c97ff85e270942bc7b45e92d91 100644
--- a/daemon/src/sfl_types.h
+++ b/daemon/src/ring_types.h
@@ -31,15 +31,15 @@
 #ifndef RING_TYPES_H_
 #define RING_TYPES_H_
 
-#include <cstddef> // for size_t
-#include <stdint.h>
 #include <type_traits>
 #include <memory>
+#include <cstddef> // for size_t
 
-typedef int16_t SFLAudioSample;
-#define RING_DATA_FORMAT_MAX SHRT_MAX
+namespace ring {
+typedef int16_t AudioSample;
+}
 
-static const size_t SIZEBUF = 32000; /** About 1s of buffering at 48kHz */
+static constexpr size_t SIZEBUF = 32000; /** About 1s of buffering at 48kHz */
 
 /**
  * This meta-function is used to enable a template overload
diff --git a/daemon/src/ringdht/ringaccount.h b/daemon/src/ringdht/ringaccount.h
index 7d8125b377f170d1ab9a55fb3386a7772d835bc8..d60baaf9dbc23c79080358f8d18caa821531e645 100644
--- a/daemon/src/ringdht/ringaccount.h
+++ b/daemon/src/ringdht/ringaccount.h
@@ -39,7 +39,7 @@
 #include "sip/sipaccountbase.h"
 #include "noncopyable.h"
 #include "ip_utils.h"
-#include "sfl_types.h" // enable_if_base_of
+#include "ring_types.h" // enable_if_base_of
 
 #include <opendht/dhtrunner.h>
 
diff --git a/daemon/src/sip/sipaccount.h b/daemon/src/sip/sipaccount.h
index 4d22ed69853dd22e7a2dcc3b162d5bfb25a60457..f1cbda09507344a922877a8b31bc3bf3a0450b31 100644
--- a/daemon/src/sip/sipaccount.h
+++ b/daemon/src/sip/sipaccount.h
@@ -42,7 +42,7 @@
 #include "sipaccountbase.h"
 #include "siptransport.h"
 #include "noncopyable.h"
-#include "sfl_types.h" // enable_if_base_of
+#include "ring_types.h" // enable_if_base_of
 
 #include <pjsip/sip_transport_tls.h>
 #include <pjsip/sip_types.h>
diff --git a/daemon/src/sip/sipvoiplink.cpp b/daemon/src/sip/sipvoiplink.cpp
index 6646d1c809d746af35cabc8de229af00b399458e..5d240ccaf39c21b4d02ae3b9f7bcf25fbbcb88f6 100644
--- a/daemon/src/sip/sipvoiplink.cpp
+++ b/daemon/src/sip/sipvoiplink.cpp
@@ -565,7 +565,7 @@ SIPVoIPLink::SIPVoIPLink()
     TRY(pjsip_replaces_init_module(endpt_)); // See the Replaces specification in RFC 3891
     TRY(pjsip_100rel_init_module(endpt_));
 
-    // Initialize and register sflphone module
+    // Initialize and register ring module
     mod_ua_.name = pj_str((char*) PACKAGE);
     mod_ua_.id = -1;
     mod_ua_.priority = PJSIP_MOD_PRIORITY_APPLICATION;
diff --git a/daemon/src/sip/sipvoiplink.h b/daemon/src/sip/sipvoiplink.h
index 547f9786533ac3dbf71efb95c46a136dc06e21b7..99416d296c253e5540718ef00e95094f65b74095 100644
--- a/daemon/src/sip/sipvoiplink.h
+++ b/daemon/src/sip/sipvoiplink.h
@@ -41,7 +41,7 @@
 #include "config.h"
 #endif
 
-#include "sfl_types.h"
+#include "ring_types.h"
 #include "siptransport.h"
 #include "ip_utils.h"
 
diff --git a/daemon/test/audiobuffertest.cpp b/daemon/test/audiobuffertest.cpp
index bbd99e6420a9b3af97f24a313f753c18346aa167..ca1564cfea29d7a4d174d6af944b3bee5a492d27 100644
--- a/daemon/test/audiobuffertest.cpp
+++ b/daemon/test/audiobuffertest.cpp
@@ -40,7 +40,7 @@ void AudioBufferTest::testAudioBufferConstructors()
 {
     TITLE();
 
-    SFLAudioSample test_samples2[] = {10, 11, 12, 13, 14, 15, 16, 17};
+    ring::AudioSample test_samples2[] = {10, 11, 12, 13, 14, 15, 16, 17};
 
     AudioBuffer empty_buf(0, AudioFormat::MONO());
     CPPUNIT_ASSERT(empty_buf.frames() == 0);
@@ -64,8 +64,8 @@ void AudioBufferTest::testAudioBufferMix()
 {
     TITLE();
 
-    SFLAudioSample test_samples1[] = {18, 19, 20, 21, 22, 23, 24, 25};
-    SFLAudioSample test_samples2[] = {10, 11, 12, 13, 14, 15, 16, 17, 18};
+    ring::AudioSample test_samples1[] = {18, 19, 20, 21, 22, 23, 24, 25};
+    ring::AudioSample test_samples2[] = {10, 11, 12, 13, 14, 15, 16, 17, 18};
 
     AudioBuffer test_buf1(test_samples1, 4, AudioFormat::STEREO());
     CPPUNIT_ASSERT(test_buf1.channels() == 2);
@@ -86,7 +86,7 @@ void AudioBufferTest::testAudioBufferMix()
     CPPUNIT_ASSERT((*test_buf2.getChannel(2))[0] == test_samples2[2]);
     CPPUNIT_ASSERT(test_buf2.capacity() == 9);
 
-    SFLAudioSample *output = new SFLAudioSample[test_buf2.capacity()];
+    ring::AudioSample *output = new ring::AudioSample[test_buf2.capacity()];
     test_buf2.interleave(output);
     CPPUNIT_ASSERT(std::equal(test_samples2, test_samples2 + sizeof test_samples2 / sizeof *test_samples2, output));
     //CPPUNIT_ASSERT(std::equal(std::begin(test_samples2), std::end(test_samples2), std::begin(output))); C++11
diff --git a/daemon/test/audiocodectest.cpp b/daemon/test/audiocodectest.cpp
index 7bc88900ef89cc2b2188622550c2aaa71c3811c9..c9859ce4db3a2240fb13af37b3a6ec695c44aae4 100644
--- a/daemon/test/audiocodectest.cpp
+++ b/daemon/test/audiocodectest.cpp
@@ -37,7 +37,7 @@
 #include "plugin_manager.h"
 
 #include "test_utils.h"
-#include "sfl_types.h" // for SFLAudioSample
+#include "ring_types.h" // for ring::AudioSample
 
 #include <cmath>
 #include <climits>
@@ -48,7 +48,7 @@
  * http://netwerkt.wordpress.com/2011/08/25/goertzel-filter/
  */
 static double
-goertzelFilter(SFLAudioSample *samples, double freq, unsigned N, double sample_rate)
+goertzelFilter(ring::AudioSample *samples, double freq, unsigned N, double sample_rate)
 {
     double s_prev = 0.0;
     double s_prev2 = 0.0;
@@ -76,8 +76,8 @@ void AudioCodecTest::testCodecs()
     for (auto p : payloadTypes)
         codecs.push_back(factory.getCodec(p));
 
-    std::vector<std::vector<SFLAudioSample>> sine = {};
-    std::vector<std::vector<SFLAudioSample>> pcm;
+    std::vector<std::vector<ring::AudioSample>> sine = {};
+    std::vector<std::vector<ring::AudioSample>> pcm;
 
     unsigned sampleRate = 0;
     double referencePower = 0.0;
@@ -88,8 +88,8 @@ void AudioCodecTest::testCodecs()
         if (sampleRate != c->getCurrentClockRate()) {
             sampleRate = c->getCurrentClockRate();
             const unsigned nbSamples = sampleRate * 0.02; // 20 ms worth of samples
-            sine = {std::vector<SFLAudioSample>(nbSamples)};
-            pcm = {std::vector<SFLAudioSample>(nbSamples)};
+            sine = {std::vector<ring::AudioSample>(nbSamples)};
+            pcm = {std::vector<ring::AudioSample>(nbSamples)};
 
             const float theta = M_2_PI * frequency_ / sampleRate;
 
diff --git a/daemon/test/resamplertest.cpp b/daemon/test/resamplertest.cpp
index b541ba4bca0ca19326ac14aa06087dcee1df5ada..41410f8ea553aea7f0b7655db3bf4d86279705af 100644
--- a/daemon/test/resamplertest.cpp
+++ b/daemon/test/resamplertest.cpp
@@ -57,7 +57,7 @@ namespace {
     {
 #ifdef VERBOSE
         std::copy(buffer.begin(), buffer.end(),
-                std::ostream_iterator<SFLAudioSample>(std::cout, ", "));
+                std::ostream_iterator<ring::AudioSample>(std::cout, ", "));
         std::cout << std::endl;
 #endif
     }
@@ -193,23 +193,23 @@ void ResamplerTest::testDownsamplingSine()
 
 void ResamplerTest::generateRamp()
 {
-    std::vector<SFLAudioSample>* buf = inputBuffer.getChannel(0);
+    std::vector<ring::AudioSample>* buf = inputBuffer.getChannel(0);
     for (size_t i = 0; i < buf->size(); ++i)
         (*buf)[i] = i;
 }
 
 void ResamplerTest::generateTriangularSignal()
 {
-    std::vector<SFLAudioSample>* buf = inputBuffer.getChannel(0);
+    std::vector<ring::AudioSample>* buf = inputBuffer.getChannel(0);
     for (size_t i = 0; i < buf->size(); ++i)
         (*buf)[i] = i * 10;
 }
 
 void ResamplerTest::generateSineSignal()
 {
-    std::vector<SFLAudioSample>* buf = inputBuffer.getChannel(0);
+    std::vector<ring::AudioSample>* buf = inputBuffer.getChannel(0);
     for (size_t i = 0; i < buf->size(); ++i)
-        (*buf)[i] = (SFLAudioSample) (1000.0 * sin(i));
+        (*buf)[i] = (ring::AudioSample) (1000.0 * sin(i));
 }
 
 void ResamplerTest::performUpsampling(Resampler &resampler)
diff --git a/daemon/test/ringbufferpooltest.cpp b/daemon/test/ringbufferpooltest.cpp
index 63f2a6884a254ec22b0bb8a8beb7586b6db07088..f50ced92db797f6f90369261b18922a02046b3cc 100644
--- a/daemon/test/ringbufferpooltest.cpp
+++ b/daemon/test/ringbufferpooltest.cpp
@@ -90,8 +90,8 @@ void RingBufferPoolTest::testGetPutData()
 
     rbPool_->bindCallID(test_id, RingBufferPool::DEFAULT_ID);
 
-    SFLAudioSample test_sample1 = 12;
-    SFLAudioSample test_sample2 = 13;
+    ring::AudioSample test_sample1 = 12;
+    ring::AudioSample test_sample2 = 13;
 
     AudioBuffer test_input1(&test_sample1, 1, AudioFormat::MONO());
     AudioBuffer test_input2(&test_sample2, 1, AudioFormat::MONO());
@@ -127,8 +127,8 @@ void RingBufferPoolTest::testGetAvailableData()
 
     rbPool_->bindCallID(test_id, RingBufferPool::DEFAULT_ID);
 
-    SFLAudioSample test_sample1 = 12;
-    SFLAudioSample test_sample2 = 13;
+    ring::AudioSample test_sample1 = 12;
+    ring::AudioSample test_sample2 = 13;
 
     AudioBuffer test_input1(&test_sample1, 1, AudioFormat::MONO());
     AudioBuffer test_input2(&test_sample2, 1, AudioFormat::MONO());
@@ -170,7 +170,7 @@ void RingBufferPoolTest::testDiscardFlush()
 
     rbPool_->bindCallID(test_id, RingBufferPool::DEFAULT_ID);
 
-    SFLAudioSample test_sample1 = 12;
+    ring::AudioSample test_sample1 = 12;
     AudioBuffer test_input1(&test_sample1, 1, AudioFormat::MONO());
 
     testRingBuffer->put(test_input1);
@@ -205,7 +205,7 @@ void RingBufferPoolTest::testConference()
     // test bind Participant A with Participant B
     rbPool_->bindCallID(test_id1, test_id2);
 
-    SFLAudioSample testint = 12;
+    ring::AudioSample testint = 12;
     AudioBuffer testbuf(&testint, 1, AudioFormat::MONO());
 
     // put data test ring buffers