diff --git a/bin/nodejs/index.js b/bin/nodejs/index.js index 94176fc04e00b0dd5bebc3671abbc98a7982a140..4765016bdb612450991640ffc748ca81fd844489 100755 --- a/bin/nodejs/index.js +++ b/bin/nodejs/index.js @@ -17,8 +17,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -"use strict"; + +"use strict"; class JamiDaemon { constructor(callbackMap) { if (callbackMap){ @@ -28,70 +29,83 @@ class JamiDaemon { } boolToStr(bool) { - return bool ? "TRUE" : "FALSE"; + return bool ? JamiDaemon.BOOL_TRUE : JamiDaemon.BOOL_FALSE; } addAccount(account) { const params = new this.dring.StringMap(); params.set("Account.type", "RING"); - if(account.archivePassword){ + if (account.managerUri) + params.set("Account.managerUri", account.managerUri); + if (account.managerUsername) + params.set("Account.managerUsername", account.managerUsername); + if (account.archivePassword) { params.set("Account.archivePassword", account.archivePassword); } else { console.log("archivePassword required"); return; } - if(account.alias) + if (account.alias) params.set("Account.alias", account.alias); - if(account.displayName) + if (account.displayName) params.set("Account.displayName", account.displayName); - if(account.enable) + if (account.enable) params.set("Account.enable", this.boolToStr(account.enable)); - if(account.autoAnswer) + if (account.autoAnswer) params.set("Account.autoAnswer", this.boolToStr(account.autoAnswer)); - if(account.ringtonePath) + if (account.ringtonePath) params.set("Account.ringtonePath", account.ringtonePath); - if(account.ringtoneEnabled) + if (account.ringtoneEnabled) params.set("Account.ringtoneEnabled", this.boolToStr(account.ringtoneEnabled)); - if(account.videoEnabled) + if (account.videoEnabled) params.set("Account.videoEnabled", this.boolToStr(account.videoEnabled)); - if(account.useragent){ + if (account.useragent) { params.set("Account.useragent", account.useragent); - params.set("Account.hasCustomUserAgent","TRUE"); + params.set("Account.hasCustomUserAgent", JamiDaemon.BOOL_TRUE); } else { - params.set("Account.hasCustomUserAgent","FALSE"); + params.set("Account.hasCustomUserAgent", JamiDaemon.BOOL_FALSE); } - if(account.audioPortMin) + if (account.audioPortMin) params.set("Account.audioPortMin", account.audioPortMin); - if(account.audioPortMax) + if (account.audioPortMax) params.set("Account.audioPortMax", account.audioPortMax); - if(account.videoPortMin) + if (account.videoPortMin) params.set("Account.videoPortMin", account.videoPortMin); - if(account.videoPortMax) + if (account.videoPortMax) params.set("Account.videoPortMax", account.videoPortMax); - if(account.localInterface) + if (account.localInterface) params.set("Account.localInterface", account.localInterface); - if(account.publishedSameAsLocal) + if (account.publishedSameAsLocal) params.set("Account.publishedSameAsLocal", this.boolToStr(account.publishedSameAsLocal)); - if(account.localPort) + if (account.localPort) params.set("Account.localPort", account.localPort); - if(account.publishedPort) + if (account.publishedPort) params.set("Account.publishedPort", account.publishedPort); - if(account.publishedAddress) + if (account.publishedAddress) params.set("Account.publishedAddress", account.publishedAddress); - if(account.upnpEnabled) + if (account.upnpEnabled) params.set("Account.upnpEnabled", this.boolToStr(account.upnpEnabled)); this.dring.addAccount(params); } - stringVectToArr(stringvect){ + stringVectToArr(stringvect) { const outputArr = []; - for(var i=0; i<stringvect.size(); i++) + for (let i = 0; i < stringvect.size(); i++) outputArr.push(stringvect.get(i)); return outputArr; } - getAccountList(){ + mapToJs(m) { + const outputObj = {}; + this.stringVectToArr(m.keys()) + .forEach(k => outputObj[k] = m.get(k)); + return outputObj; + } + getAccountList() { return this.stringVectToArr(this.dring.getAccountList()); } + getAccountDetails(accountId) { + return this.mapToJs(this.dring.getAccountDetails(accountId)); + } getAudioOutputDeviceList() { return this.stringVectToArr(this.dring.getAudioOutputDeviceList()); } @@ -100,7 +114,7 @@ class JamiDaemon { } setVolume(deviceName, volume) { - return this.dring.setVolume(deviceName,volume); + return this.dring.setVolume(deviceName, volume); } stop() { @@ -108,4 +122,7 @@ class JamiDaemon { } } +JamiDaemon.BOOL_TRUE = "true" +JamiDaemon.BOOL_FALSE = "false" + module.exports = JamiDaemon; \ No newline at end of file