Adds a module for sending DTMF tones.

This commit is contained in:
Boris Grozev 2015-04-07 18:01:19 +02:00
parent ecf9c6fc6b
commit 795ec24246
3 changed files with 46 additions and 0 deletions

1
app.js
View File

@ -15,6 +15,7 @@ var APP =
this.keyboardshortcut = require("./modules/keyboardshortcut/keyboardshortcut");
this.translation = require("./modules/translation/translation");
this.settings = require("./modules/settings/Settings");
this.DTMF = require("./modules/DTMF/DTMF");
}
};

44
modules/DTMF/DTMF.js Normal file
View File

@ -0,0 +1,44 @@
/* global APP */
/**
* A module for sending DTMF tones.
*/
var DTMFSender;
var initDtmfSender = function() {
// TODO: This needs to reset this if the peerconnection changes
// (e.g. the call is re-made)
if (DTMFSender)
return;
var localAudio = APP.RTC.localAudio;
if (localAudio && localAudio.getTracks().length > 0)
{
var peerconnection =
APP.xmpp.getConnection().jingle.activecall.peerconnection.peerconnection;
if (peerconnection) {
DTMFSender =
peerconnection.createDTMFSender(localAudio.getTracks()[0]);
console.log("Initialized DTMFSender");
}
else {
console.log("Failed to initialize DTMFSender: no PeerConnection.");
}
}
else {
console.log("Failed to initialize DTMFSender: no audio track.");
}
};
var DTMF = {
sendTones: function (tones) {
if (!DTMFSender)
initDtmfSender();
if (DTMFSender){
DTMFSender.insertDTMF(tones);
}
}
};
module.exports = DTMF;

View File

@ -142,6 +142,7 @@ function setupEvents() {
}
var XMPP = {
getConnection: function(){ return connection; },
sessionTerminated: false,
/**