Built motion from commit (unavailable).|2.5.21
[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 _0x6093=['inuse','local','stateTime','toNumber','format','toLowerCase','updateStatusRealtime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','name','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','substring','indexOf','mobile','phone','accountcode','peer','address','[userReport][peerstatus]','registered','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','lodash','moment','util','ioredis','bluebird','../../../config/environment','../../../config/logger','redis','defaults','localhost','trunks','agents','telephones','registryentry','syncRegistry','registry','bind','devicestatechange','peerstatus','syncPeerStatus','syncRealtimeShow','catch','error','[userReport][sipshowregistry]','inspect','resolve','then','actionDeviceStateList','[userReport][devicestatelist]','actionSipPeerStatus','[userReport][sippeerstatus]','prototype','isNotNull','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','debug','find','state','merge','omit','event','actionid','[userReport][registry]\x20sending\x20trunk:save\x20event:','trunk:%s','trunk:save','[userReport][registry]','syncDeviceState','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]'];(function(_0x352e90,_0x441411){var _0x2f5c41=function(_0x98b9e8){while(--_0x98b9e8){_0x352e90['push'](_0x352e90['shift']());}};_0x2f5c41(++_0x441411);}(_0x6093,0x107));var _0x3609=function(_0xc878bd,_0x16fedf){_0xc878bd=_0xc878bd-0x0;var _0x2cdbe3=_0x6093[_0xc878bd];return _0x2cdbe3;};'use strict';var _=require(_0x3609('0x0'));var moment=require(_0x3609('0x1'));var util=require(_0x3609('0x2'));var Redis=require(_0x3609('0x3'));var BPromise=require(_0x3609('0x4'));var config=require(_0x3609('0x5'));var logger=require(_0x3609('0x6'))('ami');var ami=require('../ami');config[_0x3609('0x7')]=_[_0x3609('0x8')](config[_0x3609('0x7')],{'host':_0x3609('0x9'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x3609('0x7')]));function UserReport(_0x269e29){this[_0x3609('0xa')]=_0x269e29['trunks'];this[_0x3609('0xb')]=_0x269e29[_0x3609('0xb')];this[_0x3609('0xc')]=_0x269e29[_0x3609('0xc')];ami['on'](_0x3609('0xd'),this[_0x3609('0xe')]['bind'](this));ami['on'](_0x3609('0xf'),this[_0x3609('0xe')][_0x3609('0x10')](this));ami['on'](_0x3609('0x11'),this['syncDeviceState'][_0x3609('0x10')](this));ami['on'](_0x3609('0x12'),this[_0x3609('0x13')][_0x3609('0x10')](this));return this[_0x3609('0x14')]();}function showSipRegistrations(){Promise['resolve']()['then'](ami['actionSipShowRegistry']())[_0x3609('0x15')](function(_0x68b346){logger[_0x3609('0x16')](_0x3609('0x17'),util[_0x3609('0x18')](_0x68b346,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x3609('0x19')]()[_0x3609('0x1a')](ami[_0x3609('0x1b')]())[_0x3609('0x15')](function(_0x4aae0a){logger[_0x3609('0x16')](_0x3609('0x1c'),util['inspect'](_0x4aae0a,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x3609('0x19')]()[_0x3609('0x1a')](ami[_0x3609('0x1d')]())['catch'](function(_0x2d1cd5){logger[_0x3609('0x16')](_0x3609('0x1e'),util['inspect'](_0x2d1cd5,{'showHidden':![],'depth':null}));});}UserReport[_0x3609('0x1f')][_0x3609('0x14')]=function(){setInterval(function(){BPromise[_0x3609('0x19')]()[_0x3609('0x1a')](showSipRegistrations())[_0x3609('0x1a')](listDeviceStates())[_0x3609('0x1a')](showPeersStatus());},0x32c8);};UserReport[_0x3609('0x1f')][_0x3609('0x20')]=function(_0x3024c5){return _0x3024c5!==null&&!_[_0x3609('0x21')](_0x3024c5);};UserReport[_0x3609('0x1f')][_0x3609('0x22')]=function(_0x323ad4,_0x2a03a0,_0x52d052){io['to'](_0x323ad4)[_0x3609('0x22')](_0x2a03a0,_0x52d052);};UserReport[_0x3609('0x1f')]['syncRegistry']=function(_0x27d5ab){try{if(this[_0x3609('0x20')](_0x27d5ab)){logger[_0x3609('0x23')](_0x3609('0x24'),_0x27d5ab[_0x3609('0x25')],_0x27d5ab['state']);logger[_0x3609('0x26')]('[userReport][registry]',util['inspect'](_0x27d5ab,{'showHidden':![],'depth':null}));var _0xc7978b=_[_0x3609('0x27')](this[_0x3609('0xa')],{'registry':_0x27d5ab['username']});if(_0xc7978b){_0x27d5ab['stateRegistry']=_0x27d5ab[_0x3609('0x28')];_[_0x3609('0x29')](_0xc7978b,_[_0x3609('0x2a')](_0x27d5ab,[_0x3609('0x2b'),_0x3609('0x2c'),_0x3609('0x25'),'state']));logger['debug'](_0x3609('0x2d'),util['inspect'](_0xc7978b,{'showHidden':![],'depth':null}));this['emit'](util['format'](_0x3609('0x2e'),_0xc7978b['name']),_0x3609('0x2f'),_0xc7978b);}}}catch(_0x4a979f){logger[_0x3609('0x16')](_0x3609('0x30'),util[_0x3609('0x18')](_0x4a979f,{'showHidden':![],'depth':null}));}};UserReport[_0x3609('0x1f')][_0x3609('0x31')]=function(_0x3e72f0){try{if(this[_0x3609('0x20')](_0x3e72f0)){logger['info'](_0x3609('0x32'),_0x3e72f0[_0x3609('0x33')],_0x3e72f0[_0x3609('0x28')]);logger['debug'](_0x3609('0x34'),util[_0x3609('0x18')](_0x3e72f0,{'showHidden':![],'depth':null}));if(this[_0x3609('0xb')][_0x3e72f0[_0x3609('0x33')]]){if(!this[_0x3609('0xb')][_0x3e72f0[_0x3609('0x33')]]['local']||_0x3e72f0[_0x3609('0x28')]['toLowerCase']()==_0x3609('0x35')){this[_0x3609('0xb')][_0x3e72f0[_0x3609('0x33')]][_0x3609('0x36')]=![];if(this['agents'][_0x3e72f0[_0x3609('0x33')]][_0x3609('0x28')]!==_0x3e72f0[_0x3609('0x28')]['toLowerCase']()){this[_0x3609('0xb')][_0x3e72f0[_0x3609('0x33')]][_0x3609('0x37')]=_[_0x3609('0x38')](moment()[_0x3609('0x39')]('x'));}this[_0x3609('0xb')][_0x3e72f0[_0x3609('0x33')]]['state']=_0x3e72f0[_0x3609('0x28')][_0x3609('0x3a')]();this[_0x3609('0xb')][_0x3e72f0[_0x3609('0x33')]][_0x3609('0x3b')](_0x3e72f0);}}else if(this[_0x3609('0xc')][_0x3e72f0['device']]){if(this[_0x3609('0xc')][_0x3e72f0['device']][_0x3609('0x28')]!==_0x3e72f0['state']['toLowerCase']()){this['telephones'][_0x3e72f0[_0x3609('0x33')]][_0x3609('0x37')]=_[_0x3609('0x38')](moment()[_0x3609('0x39')]('x'));}this[_0x3609('0xc')][_0x3e72f0[_0x3609('0x33')]]['state']=_0x3e72f0['state'][_0x3609('0x3a')]();logger[_0x3609('0x26')](_0x3609('0x3c'),util[_0x3609('0x18')](this[_0x3609('0xc')][_0x3e72f0[_0x3609('0x33')]],{'showHidden':![],'depth':null}));this[_0x3609('0x22')](util['format'](_0x3609('0x3d'),this['telephones'][_0x3e72f0['device']][_0x3609('0x3e')]),_0x3609('0x3f'),this[_0x3609('0xc')][_0x3e72f0[_0x3609('0x33')]]);}else if(this[_0x3609('0xa')][_0x3e72f0[_0x3609('0x33')]]){if(this[_0x3609('0xa')][_0x3e72f0[_0x3609('0x33')]]['state']!==_0x3e72f0[_0x3609('0x28')][_0x3609('0x3a')]()){this['trunks'][_0x3e72f0[_0x3609('0x33')]][_0x3609('0x37')]=_['toNumber'](moment()[_0x3609('0x39')]('x'));}this[_0x3609('0xa')][_0x3e72f0[_0x3609('0x33')]][_0x3609('0x28')]=_0x3e72f0[_0x3609('0x28')][_0x3609('0x3a')]();logger[_0x3609('0x26')](_0x3609('0x40'),util[_0x3609('0x18')](this['trunks'][_0x3e72f0[_0x3609('0x33')]],{'showHidden':![],'depth':null}));this[_0x3609('0x22')](util[_0x3609('0x39')](_0x3609('0x2e'),this[_0x3609('0xa')][_0x3e72f0[_0x3609('0x33')]][_0x3609('0x3e')]),_0x3609('0x2f'),this['trunks'][_0x3e72f0[_0x3609('0x33')]]);}else if(_[_0x3609('0x41')](_0x3e72f0[_0x3609('0x33')],_0x3609('0x42'))){var _0xf88959=_0x3e72f0[_0x3609('0x33')];var _0x4f4c04=_0xf88959[_0x3609('0x43')](_0xf88959[_0x3609('0x44')]('/')+0x1,_0xf88959[_0x3609('0x44')]('@'));var _0x565970=_['find'](this['agents'],function(_0x31679a){return _0x31679a[_0x3609('0x45')]==_0x4f4c04||_0x31679a[_0x3609('0x46')]==_0x4f4c04||_0x31679a[_0x3609('0x47')]==_0x4f4c04;});if(_0x565970){if(_0x565970[_0x3609('0x28')]!==_0x3e72f0[_0x3609('0x28')]['toLowerCase']()){_0x565970[_0x3609('0x37')]=_['toNumber'](moment()[_0x3609('0x39')]('x'));}_0x565970[_0x3609('0x28')]=_0x3e72f0['state'][_0x3609('0x3a')]();_0x565970[_0x3609('0x36')]=!![];_0x565970['updateStatusRealtime'](_0x3e72f0);}}}}catch(_0x42c9fe){logger['error'](_0x3609('0x34'),util['inspect'](_0x42c9fe,{'showHidden':![],'depth':null}));}};UserReport[_0x3609('0x1f')]['syncPeerStatus']=function(_0x2acaea){try{if(this[_0x3609('0x20')](_0x2acaea)&&this[_0x3609('0x20')](_0x2acaea[_0x3609('0x12')])){logger[_0x3609('0x23')]('[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s',_0x2acaea[_0x3609('0x48')],_0x2acaea[_0x3609('0x49')],_0x2acaea[_0x3609('0x12')]);logger['debug'](_0x3609('0x4a'),util['inspect'](_0x2acaea,{'showHidden':![],'depth':null}));if(this['agents'][_0x2acaea[_0x3609('0x48')]]){if(!this[_0x3609('0xb')][_0x2acaea[_0x3609('0x48')]]['local']||_0x2acaea[_0x3609('0x12')][_0x3609('0x3a')]()==_0x3609('0x4b')){this[_0x3609('0xb')][_0x2acaea['peer']][_0x3609('0x36')]=![];this[_0x3609('0xb')][_0x2acaea[_0x3609('0x48')]]['status']=_0x2acaea[_0x3609('0x12')][_0x3609('0x3a')]();this[_0x3609('0xb')][_0x2acaea[_0x3609('0x48')]]['address']=_0x2acaea[_0x3609('0x49')];this[_0x3609('0xb')][_0x2acaea[_0x3609('0x48')]]['updateStatusRealtime'](_0x2acaea);}}else if(this[_0x3609('0xc')][_0x2acaea[_0x3609('0x48')]]){this['telephones'][_0x2acaea[_0x3609('0x48')]][_0x3609('0x4c')]=_0x2acaea[_0x3609('0x12')][_0x3609('0x3a')]();this[_0x3609('0xc')][_0x2acaea['peer']][_0x3609('0x49')]=_0x2acaea[_0x3609('0x49')];logger['debug'](_0x3609('0x4d'),util['inspect'](this[_0x3609('0xc')][_0x2acaea['peer']],{'showHidden':![],'depth':null}));this['emit'](util[_0x3609('0x39')](_0x3609('0x3d'),this[_0x3609('0xc')][_0x2acaea['peer']][_0x3609('0x3e')]),_0x3609('0x3f'),this[_0x3609('0xc')][_0x2acaea['peer']]);}else if(this[_0x3609('0xa')][_0x2acaea[_0x3609('0x48')]]){this[_0x3609('0xa')][_0x2acaea[_0x3609('0x48')]][_0x3609('0x4c')]=_0x2acaea[_0x3609('0x12')][_0x3609('0x3a')]();this[_0x3609('0xa')][_0x2acaea[_0x3609('0x48')]][_0x3609('0x49')]=_0x2acaea[_0x3609('0x49')];logger['debug'](_0x3609('0x4e'),util['inspect'](this[_0x3609('0xa')][_0x2acaea[_0x3609('0x48')]],{'showHidden':![],'depth':null}));this[_0x3609('0x22')](util['format'](_0x3609('0x2e'),this[_0x3609('0xa')][_0x2acaea[_0x3609('0x48')]][_0x3609('0x3e')]),'trunk:save',this[_0x3609('0xa')][_0x2acaea[_0x3609('0x48')]]);}}}catch(_0xe54ef1){logger[_0x3609('0x16')]('[userReport][peerstatus]',util[_0x3609('0x18')](_0xe54ef1,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;