8830ae953a658c1d507804c6136b49a387c1b8ee
[motion2.git] / server / services / ami / report / userReport.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x56bc=['exports','moment','ioredis','../../../config/environment','../ami','defaults','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry','bind','registry','devicestatechange','peerstatus','syncPeerStatus','syncRealtimeShow','resolve','then','catch','error','inspect','actionDeviceStateList','[userReport][devicestatelist]','actionSipPeerStatus','prototype','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','find','stateRegistry','merge','omit','event','actionid','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','trunk:%s','name','trunk:save','syncDeviceState','isNotNull','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','toLowerCase','inuse','toNumber','stateTime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','substring','indexOf','mobile','accountcode','local','updateStatusRealtime','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','registered','status','address','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','[userReport][peerstatus]'];(function(_0x4ab80f,_0x5ab227){var _0x4a5699=function(_0x2c6eba){while(--_0x2c6eba){_0x4ab80f['push'](_0x4ab80f['shift']());}};_0x4a5699(++_0x5ab227);}(_0x56bc,0xe2));var _0xc56b=function(_0x1527ab,_0x2b8a6e){_0x1527ab=_0x1527ab-0x0;var _0x1240bc=_0x56bc[_0x1527ab];return _0x1240bc;};'use strict';var _=require('lodash');var moment=require(_0xc56b('0x0'));var util=require('util');var Redis=require(_0xc56b('0x1'));var BPromise=require('bluebird');var config=require(_0xc56b('0x2'));var logger=require('../../../config/logger')('ami');var ami=require(_0xc56b('0x3'));config['redis']=_[_0xc56b('0x4')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xc56b('0x5'))(new Redis(config['redis']));function UserReport(_0x1f4a22){this['trunks']=_0x1f4a22[_0xc56b('0x6')];this['agents']=_0x1f4a22[_0xc56b('0x7')];this[_0xc56b('0x8')]=_0x1f4a22[_0xc56b('0x8')];ami['on'](_0xc56b('0x9'),this[_0xc56b('0xa')][_0xc56b('0xb')](this));ami['on'](_0xc56b('0xc'),this[_0xc56b('0xa')][_0xc56b('0xb')](this));ami['on'](_0xc56b('0xd'),this['syncDeviceState'][_0xc56b('0xb')](this));ami['on'](_0xc56b('0xe'),this[_0xc56b('0xf')]['bind'](this));return this[_0xc56b('0x10')]();}function showSipRegistrations(){Promise[_0xc56b('0x11')]()[_0xc56b('0x12')](ami['actionSipShowRegistry']())[_0xc56b('0x13')](function(_0x2322b7){logger[_0xc56b('0x14')]('[userReport][sipshowregistry]',util[_0xc56b('0x15')](_0x2322b7,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0xc56b('0x11')]()[_0xc56b('0x12')](ami[_0xc56b('0x16')]())[_0xc56b('0x13')](function(_0x23f1ee){logger[_0xc56b('0x14')](_0xc56b('0x17'),util[_0xc56b('0x15')](_0x23f1ee,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise['resolve']()[_0xc56b('0x12')](ami[_0xc56b('0x18')]())[_0xc56b('0x13')](function(_0x37e139){logger['error']('[userReport][sippeerstatus]',util[_0xc56b('0x15')](_0x37e139,{'showHidden':![],'depth':null}));});}UserReport[_0xc56b('0x19')][_0xc56b('0x10')]=function(){setInterval(function(){BPromise[_0xc56b('0x11')]()['then'](showSipRegistrations())[_0xc56b('0x12')](listDeviceStates())[_0xc56b('0x12')](showPeersStatus());},0x32c8);};UserReport['prototype']['isNotNull']=function(_0xb02063){return _0xb02063!==null&&!_[_0xc56b('0x1a')](_0xb02063);};UserReport[_0xc56b('0x19')][_0xc56b('0x1b')]=function(_0x20f8df,_0x2065e5,_0x183528){io['to'](_0x20f8df)[_0xc56b('0x1b')](_0x2065e5,_0x183528);};UserReport['prototype'][_0xc56b('0xa')]=function(_0x4338b1){try{if(this['isNotNull'](_0x4338b1)){logger[_0xc56b('0x1c')](_0xc56b('0x1d'),_0x4338b1[_0xc56b('0x1e')],_0x4338b1[_0xc56b('0x1f')]);logger[_0xc56b('0x20')](_0xc56b('0x21'),util[_0xc56b('0x15')](_0x4338b1,{'showHidden':![],'depth':null}));var _0x13eb6d=_[_0xc56b('0x22')](this[_0xc56b('0x6')],{'defaultuser':_0x4338b1[_0xc56b('0x1e')]});if(_0x13eb6d){_0x4338b1[_0xc56b('0x23')]=_0x4338b1[_0xc56b('0x1f')];_[_0xc56b('0x24')](_0x13eb6d,_[_0xc56b('0x25')](_0x4338b1,[_0xc56b('0x26'),_0xc56b('0x27'),_0xc56b('0x1e'),_0xc56b('0x1f')]));logger[_0xc56b('0x20')](_0xc56b('0x28'),util[_0xc56b('0x15')](_0x13eb6d,{'showHidden':![],'depth':null}));this[_0xc56b('0x1b')](util[_0xc56b('0x29')](_0xc56b('0x2a'),_0x13eb6d[_0xc56b('0x2b')]),_0xc56b('0x2c'),_0x13eb6d);}}}catch(_0x5ef18f){logger[_0xc56b('0x14')](_0xc56b('0x21'),util[_0xc56b('0x15')](_0x5ef18f,{'showHidden':![],'depth':null}));}};UserReport[_0xc56b('0x19')][_0xc56b('0x2d')]=function(_0x2da23b){try{if(this[_0xc56b('0x2e')](_0x2da23b)){logger[_0xc56b('0x1c')](_0xc56b('0x2f'),_0x2da23b[_0xc56b('0x30')],_0x2da23b[_0xc56b('0x1f')]);logger[_0xc56b('0x20')](_0xc56b('0x31'),util[_0xc56b('0x15')](_0x2da23b,{'showHidden':![],'depth':null}));if(this[_0xc56b('0x7')][_0x2da23b[_0xc56b('0x30')]]){if(!this[_0xc56b('0x7')][_0x2da23b['device']]['local']||_0x2da23b[_0xc56b('0x1f')][_0xc56b('0x32')]()==_0xc56b('0x33')){this[_0xc56b('0x7')][_0x2da23b['device']]['local']=![];if(this[_0xc56b('0x7')][_0x2da23b['device']][_0xc56b('0x1f')]!==_0x2da23b[_0xc56b('0x1f')]['toLowerCase']()){this[_0xc56b('0x7')][_0x2da23b[_0xc56b('0x30')]]['stateTime']=_[_0xc56b('0x34')](moment()['format']('x'));}this[_0xc56b('0x7')][_0x2da23b[_0xc56b('0x30')]]['state']=_0x2da23b[_0xc56b('0x1f')]['toLowerCase']();this[_0xc56b('0x7')][_0x2da23b[_0xc56b('0x30')]]['updateStatusRealtime'](_0x2da23b);}}else if(this[_0xc56b('0x8')][_0x2da23b[_0xc56b('0x30')]]){if(this[_0xc56b('0x8')][_0x2da23b[_0xc56b('0x30')]][_0xc56b('0x1f')]!==_0x2da23b['state'][_0xc56b('0x32')]()){this[_0xc56b('0x8')][_0x2da23b['device']][_0xc56b('0x35')]=_[_0xc56b('0x34')](moment()[_0xc56b('0x29')]('x'));}this[_0xc56b('0x8')][_0x2da23b[_0xc56b('0x30')]][_0xc56b('0x1f')]=_0x2da23b['state'][_0xc56b('0x32')]();logger[_0xc56b('0x20')](_0xc56b('0x36'),util[_0xc56b('0x15')](this[_0xc56b('0x8')][_0x2da23b[_0xc56b('0x30')]],{'showHidden':![],'depth':null}));this['emit'](util['format']('telephone:%s',this[_0xc56b('0x8')][_0x2da23b[_0xc56b('0x30')]]['name']),'telephone:save',this[_0xc56b('0x8')][_0x2da23b[_0xc56b('0x30')]]);}else if(this['trunks'][_0x2da23b[_0xc56b('0x30')]]){if(this[_0xc56b('0x6')][_0x2da23b[_0xc56b('0x30')]][_0xc56b('0x1f')]!==_0x2da23b[_0xc56b('0x1f')][_0xc56b('0x32')]()){this['trunks'][_0x2da23b[_0xc56b('0x30')]][_0xc56b('0x35')]=_[_0xc56b('0x34')](moment()[_0xc56b('0x29')]('x'));}this['trunks'][_0x2da23b[_0xc56b('0x30')]][_0xc56b('0x1f')]=_0x2da23b[_0xc56b('0x1f')][_0xc56b('0x32')]();logger[_0xc56b('0x20')](_0xc56b('0x37'),util[_0xc56b('0x15')](this[_0xc56b('0x6')][_0x2da23b[_0xc56b('0x30')]],{'showHidden':![],'depth':null}));this['emit'](util['format']('trunk:%s',this[_0xc56b('0x6')][_0x2da23b[_0xc56b('0x30')]]['name']),_0xc56b('0x2c'),this['trunks'][_0x2da23b[_0xc56b('0x30')]]);}else if(_[_0xc56b('0x38')](_0x2da23b[_0xc56b('0x30')],_0xc56b('0x39'))){var _0x36c26f=_0x2da23b[_0xc56b('0x30')];var _0x15fc31=_0x36c26f[_0xc56b('0x3a')](_0x36c26f[_0xc56b('0x3b')]('/')+0x1,_0x36c26f[_0xc56b('0x3b')]('@'));var _0xbde2d7=_[_0xc56b('0x22')](this[_0xc56b('0x7')],function(_0x584d20){return _0x584d20[_0xc56b('0x3c')]==_0x15fc31||_0x584d20['phone']==_0x15fc31||_0x584d20[_0xc56b('0x3d')]==_0x15fc31;});if(_0xbde2d7){if(_0xbde2d7[_0xc56b('0x1f')]!==_0x2da23b['state'][_0xc56b('0x32')]()){_0xbde2d7[_0xc56b('0x35')]=_[_0xc56b('0x34')](moment()[_0xc56b('0x29')]('x'));}_0xbde2d7[_0xc56b('0x1f')]=_0x2da23b[_0xc56b('0x1f')][_0xc56b('0x32')]();_0xbde2d7[_0xc56b('0x3e')]=!![];_0xbde2d7[_0xc56b('0x3f')](_0x2da23b);}}}}catch(_0x1974f8){logger[_0xc56b('0x14')](_0xc56b('0x31'),util['inspect'](_0x1974f8,{'showHidden':![],'depth':null}));}};UserReport[_0xc56b('0x19')][_0xc56b('0xf')]=function(_0x29b13a){try{if(this['isNotNull'](_0x29b13a)&&this[_0xc56b('0x2e')](_0x29b13a['peerstatus'])){logger[_0xc56b('0x1c')](_0xc56b('0x40'),_0x29b13a[_0xc56b('0x41')],_0x29b13a['address'],_0x29b13a[_0xc56b('0xe')]);logger[_0xc56b('0x20')]('[userReport][peerstatus]',util[_0xc56b('0x15')](_0x29b13a,{'showHidden':![],'depth':null}));if(this[_0xc56b('0x7')][_0x29b13a[_0xc56b('0x41')]]){if(!this['agents'][_0x29b13a['peer']]['local']||_0x29b13a[_0xc56b('0xe')][_0xc56b('0x32')]()==_0xc56b('0x42')){this[_0xc56b('0x7')][_0x29b13a[_0xc56b('0x41')]][_0xc56b('0x3e')]=![];this[_0xc56b('0x7')][_0x29b13a['peer']][_0xc56b('0x43')]=_0x29b13a[_0xc56b('0xe')]['toLowerCase']();this['agents'][_0x29b13a[_0xc56b('0x41')]]['address']=_0x29b13a[_0xc56b('0x44')];this['agents'][_0x29b13a[_0xc56b('0x41')]][_0xc56b('0x3f')](_0x29b13a);}}else if(this[_0xc56b('0x8')][_0x29b13a[_0xc56b('0x41')]]){this[_0xc56b('0x8')][_0x29b13a[_0xc56b('0x41')]][_0xc56b('0x43')]=_0x29b13a['peerstatus']['toLowerCase']();this[_0xc56b('0x8')][_0x29b13a['peer']][_0xc56b('0x44')]=_0x29b13a[_0xc56b('0x44')];logger[_0xc56b('0x20')](_0xc56b('0x45'),util[_0xc56b('0x15')](this[_0xc56b('0x8')][_0x29b13a['peer']],{'showHidden':![],'depth':null}));this[_0xc56b('0x1b')](util[_0xc56b('0x29')](_0xc56b('0x46'),this[_0xc56b('0x8')][_0x29b13a[_0xc56b('0x41')]][_0xc56b('0x2b')]),_0xc56b('0x47'),this['telephones'][_0x29b13a[_0xc56b('0x41')]]);}else if(this[_0xc56b('0x6')][_0x29b13a[_0xc56b('0x41')]]){this[_0xc56b('0x6')][_0x29b13a[_0xc56b('0x41')]][_0xc56b('0x43')]=_0x29b13a[_0xc56b('0xe')][_0xc56b('0x32')]();this[_0xc56b('0x6')][_0x29b13a['peer']][_0xc56b('0x44')]=_0x29b13a[_0xc56b('0x44')];logger['debug'](_0xc56b('0x48'),util[_0xc56b('0x15')](this[_0xc56b('0x6')][_0x29b13a['peer']],{'showHidden':![],'depth':null}));this[_0xc56b('0x1b')](util['format'](_0xc56b('0x2a'),this[_0xc56b('0x6')][_0x29b13a[_0xc56b('0x41')]]['name']),_0xc56b('0x2c'),this['trunks'][_0x29b13a['peer']]);}}}catch(_0x464002){logger['error'](_0xc56b('0x49'),util[_0xc56b('0x15')](_0x464002,{'showHidden':![],'depth':null}));}};module[_0xc56b('0x4a')]=UserReport;