diff --git a/skins/gmetal/dtmf_off.png b/skins/gmetal/dtmf_off.png
new file mode 100644
index 0000000000000000000000000000000000000000..c6d28ea168800a4c5038d271910b65ffb3547492
Binary files /dev/null and b/skins/gmetal/dtmf_off.png differ
diff --git a/skins/metal/dtmf_off.png b/skins/metal/dtmf_off.png
new file mode 100644
index 0000000000000000000000000000000000000000..c6d28ea168800a4c5038d271910b65ffb3547492
Binary files /dev/null and b/skins/metal/dtmf_off.png differ
diff --git a/src/audio/OpenAL/NullSource.cpp b/src/audio/OpenAL/NullSource.cpp
index 7bb88620822ddfa5e53ae8beabe8e8f7bbd61746..6f149b5d892d0f2edc476684bd205e637468e3b8 100644
--- a/src/audio/OpenAL/NullSource.cpp
+++ b/src/audio/OpenAL/NullSource.cpp
@@ -32,6 +32,10 @@ void
 SFLAudio::NullSource::play(void *, int)
 {}
 
+void
+SFLAudio::NullSource::stream(void *, int)
+{}
+
 void
 SFLAudio::NullSource::stop()
 {}
diff --git a/src/audio/OpenAL/NullSource.hpp b/src/audio/OpenAL/NullSource.hpp
index 4b0c24f3b87c8448f88158855228fcffce18f9af..5d6c2ecfcd84e76626d77642b679d868be0c9a63 100644
--- a/src/audio/OpenAL/NullSource.hpp
+++ b/src/audio/OpenAL/NullSource.hpp
@@ -32,6 +32,7 @@ namespace SFLAudio
 
     virtual bool isNull() {return true;};
     virtual bool isPlaying();
+    virtual void stream(void *data, int size);
     virtual void play(void *data, int size);
     virtual void stop();
   };
diff --git a/src/audio/OpenAL/OpenALSource.cpp b/src/audio/OpenAL/OpenALSource.cpp
index dd7fa6b98447be4732f85ce5597113bdf5810b13..eb5c6175d852f4f2d14a48ab9702f79962da6aa8 100644
--- a/src/audio/OpenAL/OpenALSource.cpp
+++ b/src/audio/OpenAL/OpenALSource.cpp
@@ -169,6 +169,11 @@ SFLAudio::OpenALSource::isPlaying()
   return (state == AL_PLAYING);
 }
 
+void
+SFLAudio::OpenALSource::stream(void *data, int size)
+{
+}
+
 void
 SFLAudio::OpenALSource::play(void *data, int size)
 {
diff --git a/src/audio/OpenAL/OpenALSource.hpp b/src/audio/OpenAL/OpenALSource.hpp
index 6c9186fafd2e18859857f2f9c7ca934482f28ae0..09e0b6d04d89da7ed3c3755f24eeef2a5c8b0ef1 100644
--- a/src/audio/OpenAL/OpenALSource.hpp
+++ b/src/audio/OpenAL/OpenALSource.hpp
@@ -43,6 +43,7 @@ namespace SFLAudio
     // Source functions
     virtual bool isPlaying();
     virtual void play(void *data, int size);
+    virtual void stream(void *data, int size);
     virtual void stop();
 
   private:
diff --git a/src/audio/OpenAL/README.txt b/src/audio/OpenAL/README.txt
index 2ff2192797e1eb9e1f67d5d6757bcf2a843d4545..6233b5d8029059b2182ddc77e17004bcc414ef8f 100644
--- a/src/audio/OpenAL/README.txt
+++ b/src/audio/OpenAL/README.txt
@@ -2,4 +2,4 @@ example01.cpp: This is an enumeration of device example.
 example02.cpp: A simple WAV player with a direct handling of sound buffer.
 example03.cpp: A simple WAV player, with 2 files playing at the same time.
 example04.cpp: A simple WAV player. (Uses the simple WavEmitter class)
-example04.cpp: A Capture example.
+example05.cpp: A Capture example.
diff --git a/src/audio/OpenAL/Source.hpp b/src/audio/OpenAL/Source.hpp
index 862bce2e44754a3c14582b3af84f5da47ae19c01..a03215c2d0a51281d6a2bcdaee002315c7604fbd 100644
--- a/src/audio/OpenAL/Source.hpp
+++ b/src/audio/OpenAL/Source.hpp
@@ -33,6 +33,7 @@ namespace SFLAudio
 
     virtual bool isNull() {return false;}
     virtual bool isPlaying() = 0;
+    virtual void stream(void *data, int size) = 0;
     virtual void play(void *data, int size) = 0;
     virtual void stop() = 0;