44bafcc7e8cf481f2654f5548cb6f0556862e2a2
[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 _0xfefa=['actionSipShowRegistry','catch','error','actionDeviceStateList','inspect','actionSipPeerStatus','[userReport][sippeerstatus]','prototype','isNotNull','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','debug','[userReport][registry]','stateRegistry','state','merge','omit','actionid','format','trunk:%s','name','trunk:save','syncDeviceState','[userReport][devicestatechange]','device','local','toLowerCase','inuse','stateTime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save','toNumber','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','substring','indexOf','find','mobile','accountcode','updateStatusRealtime','syncPeerStatus','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','[userReport][peerstatus]','registered','status','address','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','lodash','util','bluebird','../../../config/environment','../../../config/logger','redis','defaults','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry','registry','bind','devicestatechange','peerstatus','syncRealtimeShow','resolve','then'];(function(_0x37531c,_0x83f53a){var _0x29fd32=function(_0x39a359){while(--_0x39a359){_0x37531c['push'](_0x37531c['shift']());}};_0x29fd32(++_0x83f53a);}(_0xfefa,0x1a8));var _0xafef=function(_0x170e2c,_0x16ca56){_0x170e2c=_0x170e2c-0x0;var _0x569b34=_0xfefa[_0x170e2c];return _0x569b34;};'use strict';var _=require(_0xafef('0x0'));var moment=require('moment');var util=require(_0xafef('0x1'));var Redis=require('ioredis');var BPromise=require(_0xafef('0x2'));var config=require(_0xafef('0x3'));var logger=require(_0xafef('0x4'))('ami');var ami=require('../ami');config[_0xafef('0x5')]=_[_0xafef('0x6')](config[_0xafef('0x5')],{'host':'localhost','port':0x18eb});var io=require(_0xafef('0x7'))(new Redis(config['redis']));function UserReport(_0x147024){this[_0xafef('0x8')]=_0x147024['trunks'];this[_0xafef('0x9')]=_0x147024['agents'];this[_0xafef('0xa')]=_0x147024[_0xafef('0xa')];ami['on'](_0xafef('0xb'),this[_0xafef('0xc')]['bind'](this));ami['on'](_0xafef('0xd'),this[_0xafef('0xc')][_0xafef('0xe')](this));ami['on'](_0xafef('0xf'),this['syncDeviceState'][_0xafef('0xe')](this));ami['on'](_0xafef('0x10'),this['syncPeerStatus'][_0xafef('0xe')](this));return this[_0xafef('0x11')]();}function showSipRegistrations(){Promise[_0xafef('0x12')]()[_0xafef('0x13')](ami[_0xafef('0x14')]())[_0xafef('0x15')](function(_0x5b6386){logger[_0xafef('0x16')]('[userReport][sipshowregistry]',util['inspect'](_0x5b6386,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0xafef('0x12')]()[_0xafef('0x13')](ami[_0xafef('0x17')]())[_0xafef('0x15')](function(_0x2270d4){logger['error']('[userReport][devicestatelist]',util[_0xafef('0x18')](_0x2270d4,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0xafef('0x12')]()[_0xafef('0x13')](ami[_0xafef('0x19')]())[_0xafef('0x15')](function(_0x4e36e7){logger[_0xafef('0x16')](_0xafef('0x1a'),util['inspect'](_0x4e36e7,{'showHidden':![],'depth':null}));});}UserReport[_0xafef('0x1b')][_0xafef('0x11')]=function(){setInterval(function(){BPromise[_0xafef('0x12')]()['then'](showSipRegistrations())[_0xafef('0x13')](listDeviceStates())[_0xafef('0x13')](showPeersStatus());},0x32c8);};UserReport['prototype'][_0xafef('0x1c')]=function(_0x2b3c08){return _0x2b3c08!==null&&!_[_0xafef('0x1d')](_0x2b3c08);};UserReport[_0xafef('0x1b')][_0xafef('0x1e')]=function(_0x160150,_0x588418,_0x49845f){io['to'](_0x160150)[_0xafef('0x1e')](_0x588418,_0x49845f);};UserReport[_0xafef('0x1b')][_0xafef('0xc')]=function(_0x552959){try{if(this[_0xafef('0x1c')](_0x552959)){logger[_0xafef('0x1f')](_0xafef('0x20'),_0x552959[_0xafef('0x21')],_0x552959['state']);logger[_0xafef('0x22')](_0xafef('0x23'),util[_0xafef('0x18')](_0x552959,{'showHidden':![],'depth':null}));var _0x1179f2=_['find'](this[_0xafef('0x8')],{'defaultuser':_0x552959[_0xafef('0x21')]});if(_0x1179f2){_0x552959[_0xafef('0x24')]=_0x552959[_0xafef('0x25')];_[_0xafef('0x26')](_0x1179f2,_[_0xafef('0x27')](_0x552959,['event',_0xafef('0x28'),_0xafef('0x21'),_0xafef('0x25')]));logger['debug']('[userReport][registry]\x20sending\x20trunk:save\x20event:',util[_0xafef('0x18')](_0x1179f2,{'showHidden':![],'depth':null}));this[_0xafef('0x1e')](util[_0xafef('0x29')](_0xafef('0x2a'),_0x1179f2[_0xafef('0x2b')]),_0xafef('0x2c'),_0x1179f2);}}}catch(_0x3e005a){logger[_0xafef('0x16')](_0xafef('0x23'),util[_0xafef('0x18')](_0x3e005a,{'showHidden':![],'depth':null}));}};UserReport[_0xafef('0x1b')][_0xafef('0x2d')]=function(_0x30f098){try{if(this[_0xafef('0x1c')](_0x30f098)){logger[_0xafef('0x1f')]('[userReport][devicestatechange]\x20device:%s\x20state:%s',_0x30f098['device'],_0x30f098['state']);logger['debug'](_0xafef('0x2e'),util[_0xafef('0x18')](_0x30f098,{'showHidden':![],'depth':null}));if(this['agents'][_0x30f098[_0xafef('0x2f')]]){if(!this['agents'][_0x30f098[_0xafef('0x2f')]][_0xafef('0x30')]||_0x30f098[_0xafef('0x25')][_0xafef('0x31')]()==_0xafef('0x32')){this[_0xafef('0x9')][_0x30f098[_0xafef('0x2f')]][_0xafef('0x30')]=![];if(this[_0xafef('0x9')][_0x30f098[_0xafef('0x2f')]]['state']!==_0x30f098['state'][_0xafef('0x31')]()){this['agents'][_0x30f098[_0xafef('0x2f')]]['stateTime']=_['toNumber'](moment()[_0xafef('0x29')]('x'));}this[_0xafef('0x9')][_0x30f098[_0xafef('0x2f')]][_0xafef('0x25')]=_0x30f098[_0xafef('0x25')]['toLowerCase']();this[_0xafef('0x9')][_0x30f098[_0xafef('0x2f')]]['updateStatusRealtime'](_0x30f098);}}else if(this[_0xafef('0xa')][_0x30f098[_0xafef('0x2f')]]){if(this[_0xafef('0xa')][_0x30f098[_0xafef('0x2f')]][_0xafef('0x25')]!==_0x30f098[_0xafef('0x25')][_0xafef('0x31')]()){this[_0xafef('0xa')][_0x30f098['device']][_0xafef('0x33')]=_['toNumber'](moment()['format']('x'));}this[_0xafef('0xa')][_0x30f098['device']][_0xafef('0x25')]=_0x30f098[_0xafef('0x25')][_0xafef('0x31')]();logger[_0xafef('0x22')](_0xafef('0x34'),util['inspect'](this[_0xafef('0xa')][_0x30f098['device']],{'showHidden':![],'depth':null}));this['emit'](util[_0xafef('0x29')](_0xafef('0x35'),this['telephones'][_0x30f098['device']][_0xafef('0x2b')]),_0xafef('0x36'),this[_0xafef('0xa')][_0x30f098[_0xafef('0x2f')]]);}else if(this['trunks'][_0x30f098[_0xafef('0x2f')]]){if(this[_0xafef('0x8')][_0x30f098[_0xafef('0x2f')]]['state']!==_0x30f098[_0xafef('0x25')][_0xafef('0x31')]()){this['trunks'][_0x30f098[_0xafef('0x2f')]][_0xafef('0x33')]=_[_0xafef('0x37')](moment()[_0xafef('0x29')]('x'));}this[_0xafef('0x8')][_0x30f098[_0xafef('0x2f')]][_0xafef('0x25')]=_0x30f098[_0xafef('0x25')][_0xafef('0x31')]();logger[_0xafef('0x22')](_0xafef('0x38'),util[_0xafef('0x18')](this[_0xafef('0x8')][_0x30f098[_0xafef('0x2f')]],{'showHidden':![],'depth':null}));this[_0xafef('0x1e')](util[_0xafef('0x29')]('trunk:%s',this['trunks'][_0x30f098[_0xafef('0x2f')]][_0xafef('0x2b')]),_0xafef('0x2c'),this[_0xafef('0x8')][_0x30f098['device']]);}else if(_[_0xafef('0x39')](_0x30f098[_0xafef('0x2f')],_0xafef('0x3a'))){var _0x2016af=_0x30f098[_0xafef('0x2f')];var _0x58c1e5=_0x2016af[_0xafef('0x3b')](_0x2016af[_0xafef('0x3c')]('/')+0x1,_0x2016af['indexOf']('@'));var _0x560d04=_[_0xafef('0x3d')](this[_0xafef('0x9')],function(_0x4753d5){return _0x4753d5[_0xafef('0x3e')]==_0x58c1e5||_0x4753d5['phone']==_0x58c1e5||_0x4753d5[_0xafef('0x3f')]==_0x58c1e5;});if(_0x560d04){if(_0x560d04['state']!==_0x30f098[_0xafef('0x25')][_0xafef('0x31')]()){_0x560d04[_0xafef('0x33')]=_['toNumber'](moment()['format']('x'));}_0x560d04[_0xafef('0x25')]=_0x30f098[_0xafef('0x25')][_0xafef('0x31')]();_0x560d04[_0xafef('0x30')]=!![];_0x560d04[_0xafef('0x40')](_0x30f098);}}}}catch(_0xecd519){logger[_0xafef('0x16')](_0xafef('0x2e'),util[_0xafef('0x18')](_0xecd519,{'showHidden':![],'depth':null}));}};UserReport[_0xafef('0x1b')][_0xafef('0x41')]=function(_0x26664f){try{if(this['isNotNull'](_0x26664f)&&this['isNotNull'](_0x26664f['peerstatus'])){logger[_0xafef('0x1f')](_0xafef('0x42'),_0x26664f[_0xafef('0x43')],_0x26664f['address'],_0x26664f[_0xafef('0x10')]);logger[_0xafef('0x22')](_0xafef('0x44'),util['inspect'](_0x26664f,{'showHidden':![],'depth':null}));if(this[_0xafef('0x9')][_0x26664f[_0xafef('0x43')]]){if(!this[_0xafef('0x9')][_0x26664f[_0xafef('0x43')]]['local']||_0x26664f[_0xafef('0x10')][_0xafef('0x31')]()==_0xafef('0x45')){this['agents'][_0x26664f[_0xafef('0x43')]][_0xafef('0x30')]=![];this['agents'][_0x26664f[_0xafef('0x43')]][_0xafef('0x46')]=_0x26664f[_0xafef('0x10')][_0xafef('0x31')]();this[_0xafef('0x9')][_0x26664f[_0xafef('0x43')]]['address']=_0x26664f[_0xafef('0x47')];this[_0xafef('0x9')][_0x26664f[_0xafef('0x43')]]['updateStatusRealtime'](_0x26664f);}}else if(this[_0xafef('0xa')][_0x26664f[_0xafef('0x43')]]){this[_0xafef('0xa')][_0x26664f[_0xafef('0x43')]]['status']=_0x26664f[_0xafef('0x10')][_0xafef('0x31')]();this[_0xafef('0xa')][_0x26664f[_0xafef('0x43')]][_0xafef('0x47')]=_0x26664f['address'];logger[_0xafef('0x22')](_0xafef('0x48'),util[_0xafef('0x18')](this[_0xafef('0xa')][_0x26664f[_0xafef('0x43')]],{'showHidden':![],'depth':null}));this[_0xafef('0x1e')](util['format']('telephone:%s',this[_0xafef('0xa')][_0x26664f[_0xafef('0x43')]][_0xafef('0x2b')]),_0xafef('0x36'),this['telephones'][_0x26664f[_0xafef('0x43')]]);}else if(this[_0xafef('0x8')][_0x26664f['peer']]){this[_0xafef('0x8')][_0x26664f[_0xafef('0x43')]][_0xafef('0x46')]=_0x26664f['peerstatus'][_0xafef('0x31')]();this[_0xafef('0x8')][_0x26664f['peer']][_0xafef('0x47')]=_0x26664f[_0xafef('0x47')];logger['debug'](_0xafef('0x49'),util['inspect'](this[_0xafef('0x8')][_0x26664f[_0xafef('0x43')]],{'showHidden':![],'depth':null}));this['emit'](util['format'](_0xafef('0x2a'),this[_0xafef('0x8')][_0x26664f['peer']][_0xafef('0x2b')]),_0xafef('0x2c'),this[_0xafef('0x8')][_0x26664f[_0xafef('0x43')]]);}}}catch(_0x13ba42){logger['error'](_0xafef('0x44'),util[_0xafef('0x18')](_0x13ba42,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;