Built motion from commit (unavailable).|2.5.8
[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 _0x1542=['registryentry','bind','registry','syncRegistry','syncDeviceState','syncPeerStatus','syncRealtimeShow','actionSipShowRegistry','inspect','[userReport][devicestatelist]','actionSipPeerStatus','error','[userReport][sippeerstatus]','prototype','resolve','then','isNotNull','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','[userReport][registry]','find','stateRegistry','state','event','actionid','debug','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','name','trunk:save','[userReport][devicestatechange]\x20device:%s\x20state:%s','[userReport][devicestatechange]','device','local','toLowerCase','inuse','toNumber','updateStatusRealtime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:save','stateTime','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','trunk:%s','Local','substring','indexOf','mobile','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','address','peerstatus','[userReport][peerstatus]','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','telephone:%s','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','exports','lodash','moment','util','ioredis','bluebird','../../../config/logger','ami','../ami','defaults','redis','socket.io-emitter','trunks','agents','telephones'];(function(_0x14c6ca,_0x48b287){var _0x41ed82=function(_0x206178){while(--_0x206178){_0x14c6ca['push'](_0x14c6ca['shift']());}};_0x41ed82(++_0x48b287);}(_0x1542,0x116));var _0x2154=function(_0x1cca3d,_0x452b9a){_0x1cca3d=_0x1cca3d-0x0;var _0x2a6732=_0x1542[_0x1cca3d];return _0x2a6732;};'use strict';var _=require(_0x2154('0x0'));var moment=require(_0x2154('0x1'));var util=require(_0x2154('0x2'));var Redis=require(_0x2154('0x3'));var BPromise=require(_0x2154('0x4'));var config=require('../../../config/environment');var logger=require(_0x2154('0x5'))(_0x2154('0x6'));var ami=require(_0x2154('0x7'));config['redis']=_[_0x2154('0x8')](config[_0x2154('0x9')],{'host':'localhost','port':0x18eb});var io=require(_0x2154('0xa'))(new Redis(config[_0x2154('0x9')]));function UserReport(_0x257835){this[_0x2154('0xb')]=_0x257835[_0x2154('0xb')];this[_0x2154('0xc')]=_0x257835[_0x2154('0xc')];this[_0x2154('0xd')]=_0x257835[_0x2154('0xd')];ami['on'](_0x2154('0xe'),this['syncRegistry'][_0x2154('0xf')](this));ami['on'](_0x2154('0x10'),this[_0x2154('0x11')][_0x2154('0xf')](this));ami['on']('devicestatechange',this[_0x2154('0x12')][_0x2154('0xf')](this));ami['on']('peerstatus',this[_0x2154('0x13')][_0x2154('0xf')](this));return this[_0x2154('0x14')]();}function showSipRegistrations(){return new Promise(function(_0x2a79eb,_0x9f4e9b){try{return _0x2a79eb(ami[_0x2154('0x15')]());}catch(_0x9bebce){logger['error']('[userReport][sipshowregistry]',util[_0x2154('0x16')](_0x9bebce,{'showHidden':![],'depth':null}));_0x9f4e9b();}});}function listDeviceStates(){return new Promise(function(_0x5e1aee,_0x44c441){try{return _0x5e1aee(ami['actionDeviceStateList']());}catch(_0x48f188){logger['error'](_0x2154('0x17'),util['inspect'](_0x48f188,{'showHidden':![],'depth':null}));_0x44c441();}});}function showPeersStatus(){return new Promise(function(_0x157858,_0x4f9308){try{return _0x157858(ami[_0x2154('0x18')]());}catch(_0x369ab6){logger[_0x2154('0x19')](_0x2154('0x1a'),util[_0x2154('0x16')](_0x369ab6,{'showHidden':![],'depth':null}));_0x4f9308();}});}UserReport[_0x2154('0x1b')][_0x2154('0x14')]=function(){setInterval(function(){BPromise[_0x2154('0x1c')]()[_0x2154('0x1d')](showSipRegistrations())[_0x2154('0x1d')](listDeviceStates())['then'](showPeersStatus());},0x32c8);};UserReport[_0x2154('0x1b')][_0x2154('0x1e')]=function(_0x12832c){return _0x12832c!==null&&!_['isUndefined'](_0x12832c);};UserReport[_0x2154('0x1b')][_0x2154('0x1f')]=function(_0x3b71,_0x31db14,_0x5ee5f9){io['to'](_0x3b71)[_0x2154('0x1f')](_0x31db14,_0x5ee5f9);};UserReport[_0x2154('0x1b')][_0x2154('0x11')]=function(_0x4efdde){try{if(this['isNotNull'](_0x4efdde)){logger[_0x2154('0x20')](_0x2154('0x21'),_0x4efdde[_0x2154('0x22')],_0x4efdde['state']);logger['debug'](_0x2154('0x23'),util[_0x2154('0x16')](_0x4efdde,{'showHidden':![],'depth':null}));var _0x1a275b=_[_0x2154('0x24')](this['trunks'],{'registry':_0x4efdde[_0x2154('0x22')]});if(_0x1a275b){_0x4efdde[_0x2154('0x25')]=_0x4efdde[_0x2154('0x26')];_['merge'](_0x1a275b,_['omit'](_0x4efdde,[_0x2154('0x27'),_0x2154('0x28'),_0x2154('0x22'),'state']));logger[_0x2154('0x29')](_0x2154('0x2a'),util[_0x2154('0x16')](_0x1a275b,{'showHidden':![],'depth':null}));this[_0x2154('0x1f')](util[_0x2154('0x2b')]('trunk:%s',_0x1a275b[_0x2154('0x2c')]),_0x2154('0x2d'),_0x1a275b);}}}catch(_0x661cff){logger[_0x2154('0x19')](_0x2154('0x23'),util[_0x2154('0x16')](_0x661cff,{'showHidden':![],'depth':null}));}};UserReport[_0x2154('0x1b')]['syncDeviceState']=function(_0x327d1f){try{if(this[_0x2154('0x1e')](_0x327d1f)){logger['info'](_0x2154('0x2e'),_0x327d1f['device'],_0x327d1f['state']);logger[_0x2154('0x29')](_0x2154('0x2f'),util[_0x2154('0x16')](_0x327d1f,{'showHidden':![],'depth':null}));if(this['agents'][_0x327d1f[_0x2154('0x30')]]){if(!this[_0x2154('0xc')][_0x327d1f[_0x2154('0x30')]][_0x2154('0x31')]||_0x327d1f[_0x2154('0x26')][_0x2154('0x32')]()==_0x2154('0x33')){this[_0x2154('0xc')][_0x327d1f['device']][_0x2154('0x31')]=![];if(this['agents'][_0x327d1f[_0x2154('0x30')]][_0x2154('0x26')]!==_0x327d1f[_0x2154('0x26')][_0x2154('0x32')]()){this[_0x2154('0xc')][_0x327d1f['device']]['stateTime']=_[_0x2154('0x34')](moment()[_0x2154('0x2b')]('x'));}this[_0x2154('0xc')][_0x327d1f[_0x2154('0x30')]][_0x2154('0x26')]=_0x327d1f[_0x2154('0x26')][_0x2154('0x32')]();this[_0x2154('0xc')][_0x327d1f[_0x2154('0x30')]][_0x2154('0x35')](_0x327d1f);}}else if(this['telephones'][_0x327d1f[_0x2154('0x30')]]){if(this['telephones'][_0x327d1f[_0x2154('0x30')]][_0x2154('0x26')]!==_0x327d1f[_0x2154('0x26')][_0x2154('0x32')]()){this[_0x2154('0xd')][_0x327d1f[_0x2154('0x30')]]['stateTime']=_[_0x2154('0x34')](moment()[_0x2154('0x2b')]('x'));}this[_0x2154('0xd')][_0x327d1f[_0x2154('0x30')]][_0x2154('0x26')]=_0x327d1f[_0x2154('0x26')][_0x2154('0x32')]();logger[_0x2154('0x29')](_0x2154('0x36'),util[_0x2154('0x16')](this['telephones'][_0x327d1f['device']],{'showHidden':![],'depth':null}));this[_0x2154('0x1f')](util[_0x2154('0x2b')]('telephone:%s',this[_0x2154('0xd')][_0x327d1f[_0x2154('0x30')]]['name']),_0x2154('0x37'),this[_0x2154('0xd')][_0x327d1f['device']]);}else if(this['trunks'][_0x327d1f[_0x2154('0x30')]]){if(this[_0x2154('0xb')][_0x327d1f[_0x2154('0x30')]][_0x2154('0x26')]!==_0x327d1f[_0x2154('0x26')][_0x2154('0x32')]()){this[_0x2154('0xb')][_0x327d1f[_0x2154('0x30')]][_0x2154('0x38')]=_[_0x2154('0x34')](moment()[_0x2154('0x2b')]('x'));}this['trunks'][_0x327d1f['device']][_0x2154('0x26')]=_0x327d1f['state'][_0x2154('0x32')]();logger[_0x2154('0x29')](_0x2154('0x39'),util[_0x2154('0x16')](this['trunks'][_0x327d1f[_0x2154('0x30')]],{'showHidden':![],'depth':null}));this[_0x2154('0x1f')](util[_0x2154('0x2b')](_0x2154('0x3a'),this[_0x2154('0xb')][_0x327d1f[_0x2154('0x30')]]['name']),'trunk:save',this['trunks'][_0x327d1f[_0x2154('0x30')]]);}else if(_['startsWith'](_0x327d1f['device'],_0x2154('0x3b'))){var _0x3ff345=_0x327d1f[_0x2154('0x30')];var _0x8c4c7b=_0x3ff345[_0x2154('0x3c')](_0x3ff345[_0x2154('0x3d')]('/')+0x1,_0x3ff345[_0x2154('0x3d')]('@'));var _0x2164db=_['find'](this[_0x2154('0xc')],function(_0xa8fb3b){return _0xa8fb3b[_0x2154('0x3e')]==_0x8c4c7b||_0xa8fb3b['phone']==_0x8c4c7b||_0xa8fb3b['accountcode']==_0x8c4c7b;});if(_0x2164db){if(_0x2164db[_0x2154('0x26')]!==_0x327d1f[_0x2154('0x26')][_0x2154('0x32')]()){_0x2164db['stateTime']=_[_0x2154('0x34')](moment()[_0x2154('0x2b')]('x'));}_0x2164db[_0x2154('0x26')]=_0x327d1f[_0x2154('0x26')][_0x2154('0x32')]();_0x2164db[_0x2154('0x31')]=!![];_0x2164db[_0x2154('0x35')](_0x327d1f);}}}}catch(_0x120e12){logger['error'](_0x2154('0x2f'),util[_0x2154('0x16')](_0x120e12,{'showHidden':![],'depth':null}));}};UserReport[_0x2154('0x1b')][_0x2154('0x13')]=function(_0x496da9){try{if(this[_0x2154('0x1e')](_0x496da9)&&this['isNotNull'](_0x496da9['peerstatus'])){logger[_0x2154('0x20')](_0x2154('0x3f'),_0x496da9[_0x2154('0x40')],_0x496da9[_0x2154('0x41')],_0x496da9[_0x2154('0x42')]);logger[_0x2154('0x29')](_0x2154('0x43'),util[_0x2154('0x16')](_0x496da9,{'showHidden':![],'depth':null}));if(this[_0x2154('0xc')][_0x496da9[_0x2154('0x40')]]){if(!this['agents'][_0x496da9['peer']][_0x2154('0x31')]||_0x496da9['peerstatus'][_0x2154('0x32')]()=='registered'){this[_0x2154('0xc')][_0x496da9[_0x2154('0x40')]][_0x2154('0x31')]=![];this[_0x2154('0xc')][_0x496da9[_0x2154('0x40')]][_0x2154('0x44')]=_0x496da9[_0x2154('0x42')][_0x2154('0x32')]();this[_0x2154('0xc')][_0x496da9[_0x2154('0x40')]][_0x2154('0x41')]=_0x496da9[_0x2154('0x41')];this[_0x2154('0xc')][_0x496da9[_0x2154('0x40')]]['updateStatusRealtime'](_0x496da9);}}else if(this['telephones'][_0x496da9[_0x2154('0x40')]]){this[_0x2154('0xd')][_0x496da9[_0x2154('0x40')]][_0x2154('0x44')]=_0x496da9[_0x2154('0x42')]['toLowerCase']();this['telephones'][_0x496da9[_0x2154('0x40')]][_0x2154('0x41')]=_0x496da9[_0x2154('0x41')];logger[_0x2154('0x29')](_0x2154('0x45'),util['inspect'](this[_0x2154('0xd')][_0x496da9[_0x2154('0x40')]],{'showHidden':![],'depth':null}));this[_0x2154('0x1f')](util[_0x2154('0x2b')](_0x2154('0x46'),this['telephones'][_0x496da9[_0x2154('0x40')]]['name']),_0x2154('0x37'),this[_0x2154('0xd')][_0x496da9[_0x2154('0x40')]]);}else if(this[_0x2154('0xb')][_0x496da9[_0x2154('0x40')]]){this[_0x2154('0xb')][_0x496da9['peer']][_0x2154('0x44')]=_0x496da9[_0x2154('0x42')][_0x2154('0x32')]();this[_0x2154('0xb')][_0x496da9[_0x2154('0x40')]][_0x2154('0x41')]=_0x496da9[_0x2154('0x41')];logger['debug'](_0x2154('0x47'),util[_0x2154('0x16')](this[_0x2154('0xb')][_0x496da9['peer']],{'showHidden':![],'depth':null}));this['emit'](util['format'](_0x2154('0x3a'),this['trunks'][_0x496da9[_0x2154('0x40')]]['name']),'trunk:save',this[_0x2154('0xb')][_0x496da9['peer']]);}}}catch(_0x25a749){logger[_0x2154('0x19')](_0x2154('0x43'),util['inspect'](_0x25a749,{'showHidden':![],'depth':null}));}};module[_0x2154('0x48')]=UserReport;