diff --git a/app/sounds/CREDITS b/app/sounds/CREDITS
new file mode 100644
index 00000000..ec1fb556
--- /dev/null
+++ b/app/sounds/CREDITS
@@ -0,0 +1,4 @@
+bell
+ Copyright: Dr. Richard Boulanger et al
+ URL: http://www.archive.org/details/Berklee44v12
+ License: CC-BY Attribution 3.0 Unported
diff --git a/app/sounds/bell.mp3 b/app/sounds/bell.mp3
new file mode 100644
index 00000000..fdbf149a
Binary files /dev/null and b/app/sounds/bell.mp3 differ
diff --git a/app/sounds/bell.oga b/app/sounds/bell.oga
new file mode 100644
index 00000000..144d2b36
Binary files /dev/null and b/app/sounds/bell.oga differ
diff --git a/app/styles/base.css b/app/styles/base.css
index 382234e3..e501057d 100644
--- a/app/styles/base.css
+++ b/app/styles/base.css
@@ -409,6 +409,10 @@ html {
color:green;
}
+#noVNC_bell {
+ display: none;
+}
+
/* ----------------------------------------
* Media sizing
* ----------------------------------------
diff --git a/app/ui.js b/app/ui.js
index 78d397d7..5412e1ca 100644
--- a/app/ui.js
+++ b/app/ui.js
@@ -205,6 +205,7 @@ var UI;
'onUpdateState': UI.updateState,
'onXvpInit': UI.updateXvpButton,
'onClipboard': UI.clipboardReceive,
+ 'onBell': UI.bell,
'onFBUComplete': UI.initialResize,
'onFBResize': UI.updateViewDrag,
'onDesktopName': UI.updateDocumentTitle});
@@ -1280,6 +1281,12 @@ var UI;
document.title = name + " - noVNC";
},
+ bell: function(rfb) {
+ if (WebUtil.getConfigVar('bell', 'on') === 'on') {
+ document.getElementById('noVNC_bell').play();
+ }
+ },
+
//Helper to add options to dropdown.
addOption: function(selectbox, text, value) {
var optn = document.createElement("OPTION");
diff --git a/vnc.html b/vnc.html
index b33b704e..0a22d40b 100644
--- a/vnc.html
+++ b/vnc.html
@@ -218,6 +218,12 @@
+
+
+