Built motion from commit 5b761a7b.|2.5.36
[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 _0x5d97=['telephones','registryentry','syncRegistry','bind','registry','devicestatechange','syncDeviceState','peerstatus','syncPeerStatus','syncRealtimeShow','resolve','catch','error','[userReport][sipshowregistry]','then','actionDeviceStateList','inspect','prototype','isNotNull','isUndefined','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','[userReport][registry]','find','stateRegistry','merge','omit','[userReport][registry]\x20sending\x20trunk:save\x20event:','emit','format','trunk:%s','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','debug','[userReport][devicestatechange]','local','toLowerCase','inuse','stateTime','toNumber','updateStatusRealtime','telephone:%s','name','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','trunk:save','Local','indexOf','mobile','phone','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','[userReport][peerstatus]','registered','status','address','exports','lodash','ioredis','../../../config/environment','../../../config/logger','ami','../ami','redis','defaults','localhost','socket.io-emitter','trunks','agents'];(function(_0x2c944e,_0x26f659){var _0x2cc529=function(_0x3fbc4b){while(--_0x3fbc4b){_0x2c944e['push'](_0x2c944e['shift']());}};_0x2cc529(++_0x26f659);}(_0x5d97,0x19e));var _0x75d9=function(_0x36884e,_0x48008f){_0x36884e=_0x36884e-0x0;var _0x1cc367=_0x5d97[_0x36884e];return _0x1cc367;};'use strict';var _=require(_0x75d9('0x0'));var moment=require('moment');var util=require('util');var Redis=require(_0x75d9('0x1'));var BPromise=require('bluebird');var config=require(_0x75d9('0x2'));var logger=require(_0x75d9('0x3'))(_0x75d9('0x4'));var ami=require(_0x75d9('0x5'));config[_0x75d9('0x6')]=_[_0x75d9('0x7')](config[_0x75d9('0x6')],{'host':_0x75d9('0x8'),'port':0x18eb});var io=require(_0x75d9('0x9'))(new Redis(config[_0x75d9('0x6')]));function UserReport(_0x39396e){this[_0x75d9('0xa')]=_0x39396e[_0x75d9('0xa')];this['agents']=_0x39396e[_0x75d9('0xb')];this[_0x75d9('0xc')]=_0x39396e['telephones'];ami['on'](_0x75d9('0xd'),this[_0x75d9('0xe')][_0x75d9('0xf')](this));ami['on'](_0x75d9('0x10'),this['syncRegistry'][_0x75d9('0xf')](this));ami['on'](_0x75d9('0x11'),this[_0x75d9('0x12')]['bind'](this));ami['on'](_0x75d9('0x13'),this[_0x75d9('0x14')][_0x75d9('0xf')](this));return this[_0x75d9('0x15')]();}function showSipRegistrations(){Promise[_0x75d9('0x16')]()['then'](ami['actionSipShowRegistry']())[_0x75d9('0x17')](function(_0x150c70){logger[_0x75d9('0x18')](_0x75d9('0x19'),util['inspect'](_0x150c70,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x75d9('0x16')]()[_0x75d9('0x1a')](ami[_0x75d9('0x1b')]())[_0x75d9('0x17')](function(_0x5abd93){logger[_0x75d9('0x18')]('[userReport][devicestatelist]',util[_0x75d9('0x1c')](_0x5abd93,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x75d9('0x16')]()[_0x75d9('0x1a')](ami['actionSipPeerStatus']())[_0x75d9('0x17')](function(_0x19be51){logger[_0x75d9('0x18')]('[userReport][sippeerstatus]',util[_0x75d9('0x1c')](_0x19be51,{'showHidden':![],'depth':null}));});}UserReport['prototype'][_0x75d9('0x15')]=function(){setInterval(function(){BPromise[_0x75d9('0x16')]()[_0x75d9('0x1a')](showSipRegistrations())[_0x75d9('0x1a')](listDeviceStates())[_0x75d9('0x1a')](showPeersStatus());},0x32c8);};UserReport[_0x75d9('0x1d')][_0x75d9('0x1e')]=function(_0x57dfe0){return _0x57dfe0!==null&&!_[_0x75d9('0x1f')](_0x57dfe0);};UserReport[_0x75d9('0x1d')]['emit']=function(_0x5a11d9,_0x3a3d98,_0x8eca41){io['to'](_0x5a11d9)['emit'](_0x3a3d98,_0x8eca41);};UserReport['prototype'][_0x75d9('0xe')]=function(_0x1cb12c){try{if(this[_0x75d9('0x1e')](_0x1cb12c)){logger[_0x75d9('0x20')](_0x75d9('0x21'),_0x1cb12c[_0x75d9('0x22')],_0x1cb12c[_0x75d9('0x23')]);logger['debug'](_0x75d9('0x24'),util[_0x75d9('0x1c')](_0x1cb12c,{'showHidden':![],'depth':null}));var _0x513747=_[_0x75d9('0x25')](this['trunks'],{'defaultuser':_0x1cb12c[_0x75d9('0x22')]});if(_0x513747){_0x1cb12c[_0x75d9('0x26')]=_0x1cb12c[_0x75d9('0x23')];_[_0x75d9('0x27')](_0x513747,_[_0x75d9('0x28')](_0x1cb12c,['event','actionid',_0x75d9('0x22'),'state']));logger['debug'](_0x75d9('0x29'),util['inspect'](_0x513747,{'showHidden':![],'depth':null}));this[_0x75d9('0x2a')](util[_0x75d9('0x2b')](_0x75d9('0x2c'),_0x513747['name']),'trunk:save',_0x513747);}}}catch(_0x5c501c){logger[_0x75d9('0x18')](_0x75d9('0x24'),util[_0x75d9('0x1c')](_0x5c501c,{'showHidden':![],'depth':null}));}};UserReport[_0x75d9('0x1d')][_0x75d9('0x12')]=function(_0x59b9e5){try{if(this[_0x75d9('0x1e')](_0x59b9e5)){logger['info'](_0x75d9('0x2d'),_0x59b9e5[_0x75d9('0x2e')],_0x59b9e5[_0x75d9('0x23')]);logger[_0x75d9('0x2f')](_0x75d9('0x30'),util[_0x75d9('0x1c')](_0x59b9e5,{'showHidden':![],'depth':null}));if(this[_0x75d9('0xb')][_0x59b9e5[_0x75d9('0x2e')]]){if(!this[_0x75d9('0xb')][_0x59b9e5['device']][_0x75d9('0x31')]||_0x59b9e5[_0x75d9('0x23')][_0x75d9('0x32')]()==_0x75d9('0x33')){this[_0x75d9('0xb')][_0x59b9e5[_0x75d9('0x2e')]][_0x75d9('0x31')]=![];if(this['agents'][_0x59b9e5[_0x75d9('0x2e')]][_0x75d9('0x23')]!==_0x59b9e5[_0x75d9('0x23')]['toLowerCase']()){this[_0x75d9('0xb')][_0x59b9e5[_0x75d9('0x2e')]][_0x75d9('0x34')]=_[_0x75d9('0x35')](moment()[_0x75d9('0x2b')]('x'));}this[_0x75d9('0xb')][_0x59b9e5[_0x75d9('0x2e')]][_0x75d9('0x23')]=_0x59b9e5[_0x75d9('0x23')][_0x75d9('0x32')]();this[_0x75d9('0xb')][_0x59b9e5[_0x75d9('0x2e')]][_0x75d9('0x36')](_0x59b9e5);}}else if(this[_0x75d9('0xc')][_0x59b9e5[_0x75d9('0x2e')]]){if(this[_0x75d9('0xc')][_0x59b9e5['device']]['state']!==_0x59b9e5[_0x75d9('0x23')][_0x75d9('0x32')]()){this['telephones'][_0x59b9e5[_0x75d9('0x2e')]][_0x75d9('0x34')]=_[_0x75d9('0x35')](moment()['format']('x'));}this[_0x75d9('0xc')][_0x59b9e5['device']][_0x75d9('0x23')]=_0x59b9e5[_0x75d9('0x23')][_0x75d9('0x32')]();logger[_0x75d9('0x2f')]('[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:',util[_0x75d9('0x1c')](this[_0x75d9('0xc')][_0x59b9e5['device']],{'showHidden':![],'depth':null}));this[_0x75d9('0x2a')](util['format'](_0x75d9('0x37'),this[_0x75d9('0xc')][_0x59b9e5['device']][_0x75d9('0x38')]),_0x75d9('0x39'),this[_0x75d9('0xc')][_0x59b9e5[_0x75d9('0x2e')]]);}else if(this[_0x75d9('0xa')][_0x59b9e5[_0x75d9('0x2e')]]){if(this[_0x75d9('0xa')][_0x59b9e5['device']][_0x75d9('0x23')]!==_0x59b9e5[_0x75d9('0x23')][_0x75d9('0x32')]()){this[_0x75d9('0xa')][_0x59b9e5[_0x75d9('0x2e')]][_0x75d9('0x34')]=_[_0x75d9('0x35')](moment()['format']('x'));}this[_0x75d9('0xa')][_0x59b9e5['device']][_0x75d9('0x23')]=_0x59b9e5[_0x75d9('0x23')][_0x75d9('0x32')]();logger[_0x75d9('0x2f')](_0x75d9('0x3a'),util[_0x75d9('0x1c')](this[_0x75d9('0xa')][_0x59b9e5[_0x75d9('0x2e')]],{'showHidden':![],'depth':null}));this[_0x75d9('0x2a')](util[_0x75d9('0x2b')](_0x75d9('0x2c'),this[_0x75d9('0xa')][_0x59b9e5[_0x75d9('0x2e')]][_0x75d9('0x38')]),_0x75d9('0x3b'),this[_0x75d9('0xa')][_0x59b9e5[_0x75d9('0x2e')]]);}else if(_['startsWith'](_0x59b9e5[_0x75d9('0x2e')],_0x75d9('0x3c'))){var _0x4c0990=_0x59b9e5[_0x75d9('0x2e')];var _0x2f3af7=_0x4c0990['substring'](_0x4c0990[_0x75d9('0x3d')]('/')+0x1,_0x4c0990[_0x75d9('0x3d')]('@'));var _0x162f88=_['find'](this[_0x75d9('0xb')],function(_0x20c2d6){return _0x20c2d6[_0x75d9('0x3e')]==_0x2f3af7||_0x20c2d6[_0x75d9('0x3f')]==_0x2f3af7||_0x20c2d6['accountcode']==_0x2f3af7;});if(_0x162f88){if(_0x162f88[_0x75d9('0x23')]!==_0x59b9e5[_0x75d9('0x23')]['toLowerCase']()){_0x162f88[_0x75d9('0x34')]=_[_0x75d9('0x35')](moment()[_0x75d9('0x2b')]('x'));}_0x162f88['state']=_0x59b9e5[_0x75d9('0x23')]['toLowerCase']();_0x162f88[_0x75d9('0x31')]=!![];_0x162f88['updateStatusRealtime'](_0x59b9e5);}}}}catch(_0x303790){logger[_0x75d9('0x18')](_0x75d9('0x30'),util[_0x75d9('0x1c')](_0x303790,{'showHidden':![],'depth':null}));}};UserReport[_0x75d9('0x1d')][_0x75d9('0x14')]=function(_0x3cd220){try{if(this[_0x75d9('0x1e')](_0x3cd220)&&this[_0x75d9('0x1e')](_0x3cd220[_0x75d9('0x13')])){logger[_0x75d9('0x20')](_0x75d9('0x40'),_0x3cd220[_0x75d9('0x41')],_0x3cd220['address'],_0x3cd220[_0x75d9('0x13')]);logger['debug'](_0x75d9('0x42'),util[_0x75d9('0x1c')](_0x3cd220,{'showHidden':![],'depth':null}));if(this[_0x75d9('0xb')][_0x3cd220[_0x75d9('0x41')]]){if(!this[_0x75d9('0xb')][_0x3cd220['peer']][_0x75d9('0x31')]||_0x3cd220[_0x75d9('0x13')]['toLowerCase']()==_0x75d9('0x43')){this[_0x75d9('0xb')][_0x3cd220['peer']][_0x75d9('0x31')]=![];this[_0x75d9('0xb')][_0x3cd220['peer']][_0x75d9('0x44')]=_0x3cd220[_0x75d9('0x13')]['toLowerCase']();this[_0x75d9('0xb')][_0x3cd220['peer']]['address']=_0x3cd220[_0x75d9('0x45')];this[_0x75d9('0xb')][_0x3cd220[_0x75d9('0x41')]][_0x75d9('0x36')](_0x3cd220);}}else if(this['telephones'][_0x3cd220[_0x75d9('0x41')]]){this[_0x75d9('0xc')][_0x3cd220[_0x75d9('0x41')]][_0x75d9('0x44')]=_0x3cd220['peerstatus']['toLowerCase']();this['telephones'][_0x3cd220[_0x75d9('0x41')]][_0x75d9('0x45')]=_0x3cd220[_0x75d9('0x45')];logger['debug']('[userReport][peerstatus]\x20sending\x20telephone:save\x20event:',util[_0x75d9('0x1c')](this[_0x75d9('0xc')][_0x3cd220[_0x75d9('0x41')]],{'showHidden':![],'depth':null}));this[_0x75d9('0x2a')](util[_0x75d9('0x2b')](_0x75d9('0x37'),this['telephones'][_0x3cd220[_0x75d9('0x41')]][_0x75d9('0x38')]),_0x75d9('0x39'),this['telephones'][_0x3cd220[_0x75d9('0x41')]]);}else if(this[_0x75d9('0xa')][_0x3cd220[_0x75d9('0x41')]]){this[_0x75d9('0xa')][_0x3cd220[_0x75d9('0x41')]][_0x75d9('0x44')]=_0x3cd220['peerstatus']['toLowerCase']();this[_0x75d9('0xa')][_0x3cd220[_0x75d9('0x41')]][_0x75d9('0x45')]=_0x3cd220['address'];logger[_0x75d9('0x2f')]('[userReport][peerstatus]\x20sending\x20trunk:save\x20event:',util[_0x75d9('0x1c')](this['trunks'][_0x3cd220[_0x75d9('0x41')]],{'showHidden':![],'depth':null}));this[_0x75d9('0x2a')](util[_0x75d9('0x2b')](_0x75d9('0x2c'),this[_0x75d9('0xa')][_0x3cd220[_0x75d9('0x41')]][_0x75d9('0x38')]),_0x75d9('0x3b'),this[_0x75d9('0xa')][_0x3cd220[_0x75d9('0x41')]]);}}}catch(_0x25e7cb){logger['error']('[userReport][peerstatus]',util[_0x75d9('0x1c')](_0x25e7cb,{'showHidden':![],'depth':null}));}};module[_0x75d9('0x46')]=UserReport;