diff --git a/modules/liquidsoap/serverfunctions.liq b/modules/liquidsoap/serverfunctions.liq
index e328e82f5660f1f1183269a6054007b5c16e837e..e618edd8273960d21717091392c1e8404fccefe3 100644
--- a/modules/liquidsoap/serverfunctions.liq
+++ b/modules/liquidsoap/serverfunctions.liq
@@ -272,4 +272,38 @@ server.register(namespace = "mixer",
 )
 
 ignore(fade_in_time)
-ignore(fade_out_time)
\ No newline at end of file
+ignore(fade_out_time)
+
+
+# Activate a source by selecting it and setting the volume to 100 (or vice versa)
+
+def activate(p) =
+    params=string.split(separator=" ", p) 
+    if list.length(params) < 2 then
+        print(p)
+        "Usage: mixer.activate <source nb> <true|false>"
+    else
+        source_number = list.nth(default="0", params, 0)
+        source_enable = list.nth(default="false", params, 1)
+
+        if source_enable == "true" then
+            r = server.execute("mixer.select #{source_number} true")
+            print(r)
+            r = server.execute("mixer.volume #{source_number} 100")
+            print(r)
+        else
+            r = server.execute("mixer.volume #{source_number} 0")
+            print(r)
+            r = server.execute("mixer.select #{source_number} false")
+            print(r)
+        end
+        "Done!"
+    end
+end
+
+server.register(namespace = "mixer",
+    description = "is selecting a source and setting the volume to 100",
+    usage = "activate <source nb> <true|false>",
+    "activate",
+    activate
+)