Built motion from commit (unavailable).|2.5.10
[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 _0x8825=['address','[userReport][peerstatus]','registered','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','moment','util','ioredis','../../../config/environment','../../../config/logger','ami','../ami','redis','defaults','localhost','socket.io-emitter','trunks','agents','telephones','registryentry','bind','registry','syncRegistry','devicestatechange','syncRealtimeShow','resolve','then','catch','error','[userReport][sipshowregistry]','inspect','actionDeviceStateList','actionSipPeerStatus','[userReport][sippeerstatus]','prototype','isNotNull','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','find','stateRegistry','merge','event','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','trunk:%s','name','trunk:save','syncDeviceState','device','[userReport][devicestatechange]','local','toLowerCase','inuse','stateTime','toNumber','updateStatusRealtime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','substring','indexOf','mobile','accountcode','syncPeerStatus','peerstatus','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer'];(function(_0x3145b9,_0x594246){var _0x547ba8=function(_0x48e006){while(--_0x48e006){_0x3145b9['push'](_0x3145b9['shift']());}};_0x547ba8(++_0x594246);}(_0x8825,0x9e));var _0x5882=function(_0x2a41a9,_0x4b598e){_0x2a41a9=_0x2a41a9-0x0;var _0x19c87d=_0x8825[_0x2a41a9];return _0x19c87d;};'use strict';var _=require('lodash');var moment=require(_0x5882('0x0'));var util=require(_0x5882('0x1'));var Redis=require(_0x5882('0x2'));var BPromise=require('bluebird');var config=require(_0x5882('0x3'));var logger=require(_0x5882('0x4'))(_0x5882('0x5'));var ami=require(_0x5882('0x6'));config[_0x5882('0x7')]=_[_0x5882('0x8')](config[_0x5882('0x7')],{'host':_0x5882('0x9'),'port':0x18eb});var io=require(_0x5882('0xa'))(new Redis(config[_0x5882('0x7')]));function UserReport(_0x11b03c){this[_0x5882('0xb')]=_0x11b03c['trunks'];this[_0x5882('0xc')]=_0x11b03c['agents'];this[_0x5882('0xd')]=_0x11b03c[_0x5882('0xd')];ami['on'](_0x5882('0xe'),this['syncRegistry'][_0x5882('0xf')](this));ami['on'](_0x5882('0x10'),this[_0x5882('0x11')]['bind'](this));ami['on'](_0x5882('0x12'),this['syncDeviceState'][_0x5882('0xf')](this));ami['on']('peerstatus',this['syncPeerStatus'][_0x5882('0xf')](this));return this[_0x5882('0x13')]();}function showSipRegistrations(){Promise[_0x5882('0x14')]()[_0x5882('0x15')](ami['actionSipShowRegistry']())[_0x5882('0x16')](function(_0x35516d){logger[_0x5882('0x17')](_0x5882('0x18'),util[_0x5882('0x19')](_0x35516d,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x5882('0x14')]()['then'](ami[_0x5882('0x1a')]())[_0x5882('0x16')](function(_0x5854a){logger[_0x5882('0x17')]('[userReport][devicestatelist]',util[_0x5882('0x19')](_0x5854a,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x5882('0x14')]()['then'](ami[_0x5882('0x1b')]())[_0x5882('0x16')](function(_0x5444ab){logger[_0x5882('0x17')](_0x5882('0x1c'),util[_0x5882('0x19')](_0x5444ab,{'showHidden':![],'depth':null}));});}UserReport['prototype'][_0x5882('0x13')]=function(){setInterval(function(){BPromise[_0x5882('0x14')]()[_0x5882('0x15')](showSipRegistrations())[_0x5882('0x15')](listDeviceStates())[_0x5882('0x15')](showPeersStatus());},0x32c8);};UserReport[_0x5882('0x1d')][_0x5882('0x1e')]=function(_0x128f75){return _0x128f75!==null&&!_['isUndefined'](_0x128f75);};UserReport[_0x5882('0x1d')][_0x5882('0x1f')]=function(_0x25c0b5,_0x24d504,_0x5283c9){io['to'](_0x25c0b5)[_0x5882('0x1f')](_0x24d504,_0x5283c9);};UserReport[_0x5882('0x1d')]['syncRegistry']=function(_0x54bc1f){try{if(this[_0x5882('0x1e')](_0x54bc1f)){logger[_0x5882('0x20')](_0x5882('0x21'),_0x54bc1f[_0x5882('0x22')],_0x54bc1f[_0x5882('0x23')]);logger[_0x5882('0x24')](_0x5882('0x25'),util['inspect'](_0x54bc1f,{'showHidden':![],'depth':null}));var _0x271003=_[_0x5882('0x26')](this[_0x5882('0xb')],{'registry':_0x54bc1f['username']});if(_0x271003){_0x54bc1f[_0x5882('0x27')]=_0x54bc1f[_0x5882('0x23')];_[_0x5882('0x28')](_0x271003,_['omit'](_0x54bc1f,[_0x5882('0x29'),'actionid',_0x5882('0x22'),_0x5882('0x23')]));logger[_0x5882('0x24')](_0x5882('0x2a'),util['inspect'](_0x271003,{'showHidden':![],'depth':null}));this[_0x5882('0x1f')](util[_0x5882('0x2b')](_0x5882('0x2c'),_0x271003[_0x5882('0x2d')]),_0x5882('0x2e'),_0x271003);}}}catch(_0x27bc10){logger['error'](_0x5882('0x25'),util[_0x5882('0x19')](_0x27bc10,{'showHidden':![],'depth':null}));}};UserReport[_0x5882('0x1d')][_0x5882('0x2f')]=function(_0x5135aa){try{if(this[_0x5882('0x1e')](_0x5135aa)){logger[_0x5882('0x20')]('[userReport][devicestatechange]\x20device:%s\x20state:%s',_0x5135aa[_0x5882('0x30')],_0x5135aa[_0x5882('0x23')]);logger[_0x5882('0x24')](_0x5882('0x31'),util['inspect'](_0x5135aa,{'showHidden':![],'depth':null}));if(this[_0x5882('0xc')][_0x5135aa[_0x5882('0x30')]]){if(!this[_0x5882('0xc')][_0x5135aa['device']][_0x5882('0x32')]||_0x5135aa[_0x5882('0x23')][_0x5882('0x33')]()==_0x5882('0x34')){this[_0x5882('0xc')][_0x5135aa['device']][_0x5882('0x32')]=![];if(this[_0x5882('0xc')][_0x5135aa[_0x5882('0x30')]][_0x5882('0x23')]!==_0x5135aa[_0x5882('0x23')][_0x5882('0x33')]()){this['agents'][_0x5135aa['device']][_0x5882('0x35')]=_[_0x5882('0x36')](moment()[_0x5882('0x2b')]('x'));}this['agents'][_0x5135aa[_0x5882('0x30')]]['state']=_0x5135aa[_0x5882('0x23')][_0x5882('0x33')]();this[_0x5882('0xc')][_0x5135aa[_0x5882('0x30')]][_0x5882('0x37')](_0x5135aa);}}else if(this['telephones'][_0x5135aa[_0x5882('0x30')]]){if(this[_0x5882('0xd')][_0x5135aa['device']][_0x5882('0x23')]!==_0x5135aa[_0x5882('0x23')][_0x5882('0x33')]()){this[_0x5882('0xd')][_0x5135aa['device']][_0x5882('0x35')]=_[_0x5882('0x36')](moment()['format']('x'));}this[_0x5882('0xd')][_0x5135aa[_0x5882('0x30')]][_0x5882('0x23')]=_0x5135aa[_0x5882('0x23')][_0x5882('0x33')]();logger[_0x5882('0x24')](_0x5882('0x38'),util[_0x5882('0x19')](this['telephones'][_0x5135aa['device']],{'showHidden':![],'depth':null}));this[_0x5882('0x1f')](util[_0x5882('0x2b')](_0x5882('0x39'),this[_0x5882('0xd')][_0x5135aa[_0x5882('0x30')]][_0x5882('0x2d')]),_0x5882('0x3a'),this[_0x5882('0xd')][_0x5135aa[_0x5882('0x30')]]);}else if(this['trunks'][_0x5135aa['device']]){if(this[_0x5882('0xb')][_0x5135aa[_0x5882('0x30')]]['state']!==_0x5135aa[_0x5882('0x23')]['toLowerCase']()){this['trunks'][_0x5135aa[_0x5882('0x30')]][_0x5882('0x35')]=_[_0x5882('0x36')](moment()[_0x5882('0x2b')]('x'));}this['trunks'][_0x5135aa['device']][_0x5882('0x23')]=_0x5135aa[_0x5882('0x23')]['toLowerCase']();logger['debug'](_0x5882('0x3b'),util[_0x5882('0x19')](this[_0x5882('0xb')][_0x5135aa['device']],{'showHidden':![],'depth':null}));this[_0x5882('0x1f')](util[_0x5882('0x2b')](_0x5882('0x2c'),this[_0x5882('0xb')][_0x5135aa[_0x5882('0x30')]][_0x5882('0x2d')]),_0x5882('0x2e'),this['trunks'][_0x5135aa[_0x5882('0x30')]]);}else if(_[_0x5882('0x3c')](_0x5135aa[_0x5882('0x30')],_0x5882('0x3d'))){var _0x406f3a=_0x5135aa[_0x5882('0x30')];var _0x4f4253=_0x406f3a[_0x5882('0x3e')](_0x406f3a[_0x5882('0x3f')]('/')+0x1,_0x406f3a[_0x5882('0x3f')]('@'));var _0x566b47=_[_0x5882('0x26')](this[_0x5882('0xc')],function(_0x5e6731){return _0x5e6731[_0x5882('0x40')]==_0x4f4253||_0x5e6731['phone']==_0x4f4253||_0x5e6731[_0x5882('0x41')]==_0x4f4253;});if(_0x566b47){if(_0x566b47[_0x5882('0x23')]!==_0x5135aa[_0x5882('0x23')][_0x5882('0x33')]()){_0x566b47[_0x5882('0x35')]=_[_0x5882('0x36')](moment()[_0x5882('0x2b')]('x'));}_0x566b47['state']=_0x5135aa[_0x5882('0x23')][_0x5882('0x33')]();_0x566b47[_0x5882('0x32')]=!![];_0x566b47[_0x5882('0x37')](_0x5135aa);}}}}catch(_0x333f34){logger[_0x5882('0x17')]('[userReport][devicestatechange]',util[_0x5882('0x19')](_0x333f34,{'showHidden':![],'depth':null}));}};UserReport[_0x5882('0x1d')][_0x5882('0x42')]=function(_0x1a10fb){try{if(this[_0x5882('0x1e')](_0x1a10fb)&&this['isNotNull'](_0x1a10fb[_0x5882('0x43')])){logger[_0x5882('0x20')](_0x5882('0x44'),_0x1a10fb[_0x5882('0x45')],_0x1a10fb[_0x5882('0x46')],_0x1a10fb[_0x5882('0x43')]);logger[_0x5882('0x24')](_0x5882('0x47'),util[_0x5882('0x19')](_0x1a10fb,{'showHidden':![],'depth':null}));if(this[_0x5882('0xc')][_0x1a10fb[_0x5882('0x45')]]){if(!this[_0x5882('0xc')][_0x1a10fb['peer']][_0x5882('0x32')]||_0x1a10fb[_0x5882('0x43')][_0x5882('0x33')]()==_0x5882('0x48')){this[_0x5882('0xc')][_0x1a10fb[_0x5882('0x45')]]['local']=![];this[_0x5882('0xc')][_0x1a10fb[_0x5882('0x45')]]['status']=_0x1a10fb[_0x5882('0x43')][_0x5882('0x33')]();this[_0x5882('0xc')][_0x1a10fb[_0x5882('0x45')]][_0x5882('0x46')]=_0x1a10fb['address'];this[_0x5882('0xc')][_0x1a10fb['peer']][_0x5882('0x37')](_0x1a10fb);}}else if(this[_0x5882('0xd')][_0x1a10fb[_0x5882('0x45')]]){this[_0x5882('0xd')][_0x1a10fb[_0x5882('0x45')]][_0x5882('0x49')]=_0x1a10fb[_0x5882('0x43')][_0x5882('0x33')]();this[_0x5882('0xd')][_0x1a10fb[_0x5882('0x45')]][_0x5882('0x46')]=_0x1a10fb['address'];logger[_0x5882('0x24')](_0x5882('0x4a'),util['inspect'](this[_0x5882('0xd')][_0x1a10fb[_0x5882('0x45')]],{'showHidden':![],'depth':null}));this[_0x5882('0x1f')](util[_0x5882('0x2b')](_0x5882('0x39'),this[_0x5882('0xd')][_0x1a10fb[_0x5882('0x45')]][_0x5882('0x2d')]),'telephone:save',this[_0x5882('0xd')][_0x1a10fb['peer']]);}else if(this[_0x5882('0xb')][_0x1a10fb[_0x5882('0x45')]]){this[_0x5882('0xb')][_0x1a10fb[_0x5882('0x45')]][_0x5882('0x49')]=_0x1a10fb[_0x5882('0x43')][_0x5882('0x33')]();this['trunks'][_0x1a10fb[_0x5882('0x45')]][_0x5882('0x46')]=_0x1a10fb[_0x5882('0x46')];logger[_0x5882('0x24')](_0x5882('0x4b'),util[_0x5882('0x19')](this[_0x5882('0xb')][_0x1a10fb[_0x5882('0x45')]],{'showHidden':![],'depth':null}));this['emit'](util[_0x5882('0x2b')](_0x5882('0x2c'),this[_0x5882('0xb')][_0x1a10fb[_0x5882('0x45')]][_0x5882('0x2d')]),'trunk:save',this[_0x5882('0xb')][_0x1a10fb[_0x5882('0x45')]]);}}}catch(_0x2dc519){logger[_0x5882('0x17')](_0x5882('0x47'),util[_0x5882('0x19')](_0x2dc519,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;