2015-04-07 16:01:19 +00:00
|
|
|
/* 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)
|
|
|
|
{
|
2015-04-12 12:23:50 +00:00
|
|
|
var peerconnection
|
|
|
|
= APP.xmpp.getConnection().jingle.activecall.peerconnection;
|
2015-04-07 16:01:19 +00:00
|
|
|
if (peerconnection) {
|
|
|
|
DTMFSender =
|
2015-04-12 12:23:50 +00:00
|
|
|
peerconnection.peerconnection
|
|
|
|
.createDTMFSender(localAudio.getTracks()[0]);
|
2015-04-07 16:01:19 +00:00
|
|
|
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 = {
|
2015-04-12 12:23:50 +00:00
|
|
|
sendTones: function (tones, duration, pause) {
|
2015-04-07 16:01:19 +00:00
|
|
|
if (!DTMFSender)
|
|
|
|
initDtmfSender();
|
|
|
|
|
|
|
|
if (DTMFSender){
|
2015-04-12 12:23:50 +00:00
|
|
|
DTMFSender.insertDTMF(tones,
|
|
|
|
(duration || 200),
|
|
|
|
(pause || 200));
|
2015-04-07 16:01:19 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
module.exports = DTMF;
|
|
|
|
|