From 440ebd98d60ba07e1bc94b1c0a84395f49743022 Mon Sep 17 00:00:00 2001 From: Navrotskyj Date: Fri, 1 Jul 2016 16:15:21 +0300 Subject: [PATCH] add telegram notification, set presence_data = ${domain} --- src/middleware/callRouter.js | 3 ++- src/middleware/defaultContext.js | 3 --- src/middleware/publicContext.js | 1 - src/middleware/telegram/index.js | 36 ++++++++++++++++++++++++++++++++ 4 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 src/middleware/telegram/index.js diff --git a/src/middleware/callRouter.js b/src/middleware/callRouter.js index 57a5191..8e5772d 100644 --- a/src/middleware/callRouter.js +++ b/src/middleware/callRouter.js @@ -221,7 +221,7 @@ var CallRouter = module.exports = function (connection, option) { //this.xData = new Array(1e6).join('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n'); this.__setVar({ - "setVar": "eavesdrop_group=" + this.domain + "setVar": [`eavesdrop_group=${this.domain}`, `presence_data=${this.domain}`] }); this.log = { @@ -241,6 +241,7 @@ var CallRouter = module.exports = function (connection, option) { }; require('./email')(CallRouter, OPERATION.EMAIL); +require('./telegram')(CallRouter, OPERATION.TELEGRAM); require('./disa')(CallRouter); require('./location/number')(CallRouter, OPERATION.LOCATION); diff --git a/src/middleware/defaultContext.js b/src/middleware/defaultContext.js index b447d7b..35fc258 100644 --- a/src/middleware/defaultContext.js +++ b/src/middleware/defaultContext.js @@ -102,9 +102,6 @@ module.exports = function (conn, destinationNumber, globalVariable, notExistsDir _reg = null; }; if (_reg) { - if (!conn.channelData.getHeader('variable_presence_data')) { - conn.execute('set', 'presence_data=' + conn.channelData.getHeader('variable_presence_id')); - }; log.trace('Exec: %s', result[i]['destination_number']); if (result[i]['fs_timezone']) { diff --git a/src/middleware/publicContext.js b/src/middleware/publicContext.js index 26701b9..0de83a9 100644 --- a/src/middleware/publicContext.js +++ b/src/middleware/publicContext.js @@ -34,7 +34,6 @@ module.exports = function (conn, destinationNumber, globalVariable, notExistsDir }; conn.execute('set', 'domain_name=' + result[0]['domain']); - conn.execute('set', 'presence_data=' + result[0]['domain']); conn.execute('set', 'force_transfer_context=default'); conn.execute('hash', 'insert/' + result[0]['domain']+'-last_dial/global/${uuid}'); diff --git a/src/middleware/telegram/index.js b/src/middleware/telegram/index.js new file mode 100644 index 0000000..d97e297 --- /dev/null +++ b/src/middleware/telegram/index.js @@ -0,0 +1,36 @@ +/** + * Created by igor on 28.06.16. + */ + +"use strict"; + +const log = require('../../lib/log')(module), + Event = require('modesl').Event + ; + +module.exports = (CallRouter, appName) => { + CallRouter.prototype['__' + appName] = function (app, cb) { + let prop = app[appName], + to = this._parseVariable(prop.to), + message = this._parseVariable(prop.message) + ; + + if (!to || !message) { + log.warn(`Bad telegram parameters`); + return cb && cb(); + } + + let event = new Event('CUSTOM', 'webitel::telegram'); + + event.addHeader('Channel-Presence-ID', `${to.split('@')[0]}@${this.domain}`); + event.addHeader('domain', this.domain); + event.addHeader('type', 'text/plain'); + event.addHeader('Content-Type', 'text/plain'); + event.addBody(message); + + this.connection.sendEvent(event, (e, r) => { + log.trace(`Send telegram notification: ${r && r["Reply-Text"]}`); + }); + return cb && cb(); + } +}; \ No newline at end of file