103ee133571455eef94172a412bd6041cc7de26e
[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 _0x98e7=['defaults','localhost','socket.io-emitter','trunks','agents','telephones','syncRegistry','bind','registry','devicestatechange','syncDeviceState','peerstatus','syncPeerStatus','syncRealtimeShow','resolve','then','actionSipShowRegistry','catch','error','[userReport][sipshowregistry]','inspect','[userReport][devicestatelist]','[userReport][sippeerstatus]','prototype','isUndefined','emit','isNotNull','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','[userReport][registry]','find','stateRegistry','merge','omit','event','debug','trunk:%s','name','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','local','toLowerCase','inuse','stateTime','toNumber','updateStatusRealtime','format','telephone:%s','startsWith','Local','indexOf','mobile','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','address','registered','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','trunk:save','[userReport][peerstatus]','lodash','util','ioredis','bluebird','../../../config/environment','../../../config/logger','ami','../ami','redis'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x98e7,0xd2));var _0x798e=function(_0x110dbf,_0x16a620){_0x110dbf=_0x110dbf-0x0;var _0x49e064=_0x98e7[_0x110dbf];return _0x49e064;};'use strict';var _=require(_0x798e('0x0'));var moment=require('moment');var util=require(_0x798e('0x1'));var Redis=require(_0x798e('0x2'));var BPromise=require(_0x798e('0x3'));var config=require(_0x798e('0x4'));var logger=require(_0x798e('0x5'))(_0x798e('0x6'));var ami=require(_0x798e('0x7'));config[_0x798e('0x8')]=_[_0x798e('0x9')](config[_0x798e('0x8')],{'host':_0x798e('0xa'),'port':0x18eb});var io=require(_0x798e('0xb'))(new Redis(config[_0x798e('0x8')]));function UserReport(_0x176a43){this[_0x798e('0xc')]=_0x176a43[_0x798e('0xc')];this[_0x798e('0xd')]=_0x176a43[_0x798e('0xd')];this['telephones']=_0x176a43[_0x798e('0xe')];ami['on']('registryentry',this[_0x798e('0xf')][_0x798e('0x10')](this));ami['on'](_0x798e('0x11'),this[_0x798e('0xf')][_0x798e('0x10')](this));ami['on'](_0x798e('0x12'),this[_0x798e('0x13')][_0x798e('0x10')](this));ami['on'](_0x798e('0x14'),this[_0x798e('0x15')][_0x798e('0x10')](this));return this[_0x798e('0x16')]();}function showSipRegistrations(){Promise[_0x798e('0x17')]()[_0x798e('0x18')](ami[_0x798e('0x19')]())[_0x798e('0x1a')](function(_0x49043b){logger[_0x798e('0x1b')](_0x798e('0x1c'),util[_0x798e('0x1d')](_0x49043b,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x798e('0x17')]()[_0x798e('0x18')](ami['actionDeviceStateList']())[_0x798e('0x1a')](function(_0x29ff96){logger[_0x798e('0x1b')](_0x798e('0x1e'),util[_0x798e('0x1d')](_0x29ff96,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise['resolve']()['then'](ami['actionSipPeerStatus']())[_0x798e('0x1a')](function(_0x46a52a){logger[_0x798e('0x1b')](_0x798e('0x1f'),util[_0x798e('0x1d')](_0x46a52a,{'showHidden':![],'depth':null}));});}UserReport[_0x798e('0x20')][_0x798e('0x16')]=function(){setInterval(function(){BPromise[_0x798e('0x17')]()['then'](showSipRegistrations())[_0x798e('0x18')](listDeviceStates())[_0x798e('0x18')](showPeersStatus());},0x32c8);};UserReport[_0x798e('0x20')]['isNotNull']=function(_0x13f13c){return _0x13f13c!==null&&!_[_0x798e('0x21')](_0x13f13c);};UserReport[_0x798e('0x20')]['emit']=function(_0x168b71,_0x351a1f,_0x320d96){io['to'](_0x168b71)[_0x798e('0x22')](_0x351a1f,_0x320d96);};UserReport[_0x798e('0x20')][_0x798e('0xf')]=function(_0x180b84){try{if(this[_0x798e('0x23')](_0x180b84)){logger[_0x798e('0x24')](_0x798e('0x25'),_0x180b84[_0x798e('0x26')],_0x180b84[_0x798e('0x27')]);logger['debug'](_0x798e('0x28'),util[_0x798e('0x1d')](_0x180b84,{'showHidden':![],'depth':null}));var _0x9477cf=_[_0x798e('0x29')](this[_0x798e('0xc')],{'defaultuser':_0x180b84['username']});if(_0x9477cf){_0x180b84[_0x798e('0x2a')]=_0x180b84['state'];_[_0x798e('0x2b')](_0x9477cf,_[_0x798e('0x2c')](_0x180b84,[_0x798e('0x2d'),'actionid',_0x798e('0x26'),_0x798e('0x27')]));logger[_0x798e('0x2e')]('[userReport][registry]\x20sending\x20trunk:save\x20event:',util['inspect'](_0x9477cf,{'showHidden':![],'depth':null}));this[_0x798e('0x22')](util['format'](_0x798e('0x2f'),_0x9477cf[_0x798e('0x30')]),'trunk:save',_0x9477cf);}}}catch(_0x39280e){logger['error'](_0x798e('0x28'),util['inspect'](_0x39280e,{'showHidden':![],'depth':null}));}};UserReport[_0x798e('0x20')][_0x798e('0x13')]=function(_0x535402){try{if(this[_0x798e('0x23')](_0x535402)){logger['info'](_0x798e('0x31'),_0x535402[_0x798e('0x32')],_0x535402[_0x798e('0x27')]);logger[_0x798e('0x2e')](_0x798e('0x33'),util[_0x798e('0x1d')](_0x535402,{'showHidden':![],'depth':null}));if(this[_0x798e('0xd')][_0x535402['device']]){if(!this[_0x798e('0xd')][_0x535402[_0x798e('0x32')]][_0x798e('0x34')]||_0x535402[_0x798e('0x27')][_0x798e('0x35')]()==_0x798e('0x36')){this['agents'][_0x535402['device']][_0x798e('0x34')]=![];if(this['agents'][_0x535402[_0x798e('0x32')]][_0x798e('0x27')]!==_0x535402[_0x798e('0x27')][_0x798e('0x35')]()){this[_0x798e('0xd')][_0x535402[_0x798e('0x32')]][_0x798e('0x37')]=_[_0x798e('0x38')](moment()['format']('x'));}this[_0x798e('0xd')][_0x535402[_0x798e('0x32')]][_0x798e('0x27')]=_0x535402[_0x798e('0x27')][_0x798e('0x35')]();this[_0x798e('0xd')][_0x535402['device']][_0x798e('0x39')](_0x535402);}}else if(this[_0x798e('0xe')][_0x535402[_0x798e('0x32')]]){if(this[_0x798e('0xe')][_0x535402[_0x798e('0x32')]][_0x798e('0x27')]!==_0x535402[_0x798e('0x27')][_0x798e('0x35')]()){this['telephones'][_0x535402[_0x798e('0x32')]][_0x798e('0x37')]=_[_0x798e('0x38')](moment()[_0x798e('0x3a')]('x'));}this['telephones'][_0x535402['device']][_0x798e('0x27')]=_0x535402[_0x798e('0x27')]['toLowerCase']();logger[_0x798e('0x2e')]('[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:',util[_0x798e('0x1d')](this[_0x798e('0xe')][_0x535402['device']],{'showHidden':![],'depth':null}));this[_0x798e('0x22')](util[_0x798e('0x3a')](_0x798e('0x3b'),this[_0x798e('0xe')][_0x535402['device']][_0x798e('0x30')]),'telephone:save',this[_0x798e('0xe')][_0x535402[_0x798e('0x32')]]);}else if(this[_0x798e('0xc')][_0x535402['device']]){if(this[_0x798e('0xc')][_0x535402[_0x798e('0x32')]]['state']!==_0x535402[_0x798e('0x27')][_0x798e('0x35')]()){this['trunks'][_0x535402[_0x798e('0x32')]][_0x798e('0x37')]=_[_0x798e('0x38')](moment()[_0x798e('0x3a')]('x'));}this[_0x798e('0xc')][_0x535402[_0x798e('0x32')]][_0x798e('0x27')]=_0x535402[_0x798e('0x27')][_0x798e('0x35')]();logger[_0x798e('0x2e')]('[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:',util[_0x798e('0x1d')](this['trunks'][_0x535402[_0x798e('0x32')]],{'showHidden':![],'depth':null}));this[_0x798e('0x22')](util['format'](_0x798e('0x2f'),this[_0x798e('0xc')][_0x535402[_0x798e('0x32')]]['name']),'trunk:save',this[_0x798e('0xc')][_0x535402['device']]);}else if(_[_0x798e('0x3c')](_0x535402[_0x798e('0x32')],_0x798e('0x3d'))){var _0xcd573a=_0x535402[_0x798e('0x32')];var _0x3860bd=_0xcd573a['substring'](_0xcd573a[_0x798e('0x3e')]('/')+0x1,_0xcd573a[_0x798e('0x3e')]('@'));var _0x3bd3b7=_[_0x798e('0x29')](this[_0x798e('0xd')],function(_0x16899f){return _0x16899f[_0x798e('0x3f')]==_0x3860bd||_0x16899f['phone']==_0x3860bd||_0x16899f['accountcode']==_0x3860bd;});if(_0x3bd3b7){if(_0x3bd3b7[_0x798e('0x27')]!==_0x535402[_0x798e('0x27')][_0x798e('0x35')]()){_0x3bd3b7[_0x798e('0x37')]=_[_0x798e('0x38')](moment()[_0x798e('0x3a')]('x'));}_0x3bd3b7[_0x798e('0x27')]=_0x535402[_0x798e('0x27')]['toLowerCase']();_0x3bd3b7[_0x798e('0x34')]=!![];_0x3bd3b7[_0x798e('0x39')](_0x535402);}}}}catch(_0x7b2dd5){logger[_0x798e('0x1b')]('[userReport][devicestatechange]',util[_0x798e('0x1d')](_0x7b2dd5,{'showHidden':![],'depth':null}));}};UserReport[_0x798e('0x20')][_0x798e('0x15')]=function(_0x1fc5d2){try{if(this[_0x798e('0x23')](_0x1fc5d2)&&this['isNotNull'](_0x1fc5d2[_0x798e('0x14')])){logger['info'](_0x798e('0x40'),_0x1fc5d2[_0x798e('0x41')],_0x1fc5d2[_0x798e('0x42')],_0x1fc5d2[_0x798e('0x14')]);logger[_0x798e('0x2e')]('[userReport][peerstatus]',util[_0x798e('0x1d')](_0x1fc5d2,{'showHidden':![],'depth':null}));if(this['agents'][_0x1fc5d2[_0x798e('0x41')]]){if(!this['agents'][_0x1fc5d2[_0x798e('0x41')]][_0x798e('0x34')]||_0x1fc5d2[_0x798e('0x14')][_0x798e('0x35')]()==_0x798e('0x43')){this['agents'][_0x1fc5d2[_0x798e('0x41')]][_0x798e('0x34')]=![];this[_0x798e('0xd')][_0x1fc5d2[_0x798e('0x41')]][_0x798e('0x44')]=_0x1fc5d2[_0x798e('0x14')][_0x798e('0x35')]();this['agents'][_0x1fc5d2[_0x798e('0x41')]][_0x798e('0x42')]=_0x1fc5d2[_0x798e('0x42')];this[_0x798e('0xd')][_0x1fc5d2[_0x798e('0x41')]][_0x798e('0x39')](_0x1fc5d2);}}else if(this[_0x798e('0xe')][_0x1fc5d2[_0x798e('0x41')]]){this[_0x798e('0xe')][_0x1fc5d2[_0x798e('0x41')]]['status']=_0x1fc5d2['peerstatus'][_0x798e('0x35')]();this[_0x798e('0xe')][_0x1fc5d2['peer']][_0x798e('0x42')]=_0x1fc5d2[_0x798e('0x42')];logger['debug'](_0x798e('0x45'),util[_0x798e('0x1d')](this[_0x798e('0xe')][_0x1fc5d2[_0x798e('0x41')]],{'showHidden':![],'depth':null}));this[_0x798e('0x22')](util[_0x798e('0x3a')](_0x798e('0x3b'),this[_0x798e('0xe')][_0x1fc5d2[_0x798e('0x41')]][_0x798e('0x30')]),'telephone:save',this[_0x798e('0xe')][_0x1fc5d2[_0x798e('0x41')]]);}else if(this[_0x798e('0xc')][_0x1fc5d2['peer']]){this[_0x798e('0xc')][_0x1fc5d2[_0x798e('0x41')]][_0x798e('0x44')]=_0x1fc5d2[_0x798e('0x14')][_0x798e('0x35')]();this['trunks'][_0x1fc5d2[_0x798e('0x41')]][_0x798e('0x42')]=_0x1fc5d2[_0x798e('0x42')];logger['debug'](_0x798e('0x46'),util[_0x798e('0x1d')](this[_0x798e('0xc')][_0x1fc5d2[_0x798e('0x41')]],{'showHidden':![],'depth':null}));this[_0x798e('0x22')](util[_0x798e('0x3a')](_0x798e('0x2f'),this['trunks'][_0x1fc5d2[_0x798e('0x41')]][_0x798e('0x30')]),_0x798e('0x47'),this[_0x798e('0xc')][_0x1fc5d2[_0x798e('0x41')]]);}}}catch(_0x2e4f4d){logger[_0x798e('0x1b')](_0x798e('0x48'),util['inspect'](_0x2e4f4d,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;