Built motion from commit (unavailable).|2.5.11
[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 _0x8acc=['[userReport][peerstatus]','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','telephone:%s','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','exports','moment','util','ioredis','../../../config/environment','../../../config/logger','../ami','redis','localhost','socket.io-emitter','trunks','agents','telephones','syncRegistry','bind','devicestatechange','peerstatus','resolve','then','actionSipShowRegistry','catch','error','[userReport][sipshowregistry]','inspect','actionDeviceStateList','[userReport][devicestatelist]','actionSipPeerStatus','[userReport][sippeerstatus]','prototype','syncRealtimeShow','isNotNull','emit','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','find','stateRegistry','merge','omit','event','format','trunk:%s','name','info','[userReport][devicestatechange]\x20device:%s\x20state:%s','[userReport][devicestatechange]','device','local','inuse','toLowerCase','stateTime','toNumber','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','trunk:save','startsWith','substring','indexOf','phone','syncPeerStatus','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','address'];(function(_0x514277,_0x507443){var _0x6e681c=function(_0x53dbfc){while(--_0x53dbfc){_0x514277['push'](_0x514277['shift']());}};_0x6e681c(++_0x507443);}(_0x8acc,0xdb));var _0xc8ac=function(_0x477f82,_0x57e90a){_0x477f82=_0x477f82-0x0;var _0x429f00=_0x8acc[_0x477f82];return _0x429f00;};'use strict';var _=require('lodash');var moment=require(_0xc8ac('0x0'));var util=require(_0xc8ac('0x1'));var Redis=require(_0xc8ac('0x2'));var BPromise=require('bluebird');var config=require(_0xc8ac('0x3'));var logger=require(_0xc8ac('0x4'))('ami');var ami=require(_0xc8ac('0x5'));config[_0xc8ac('0x6')]=_['defaults'](config[_0xc8ac('0x6')],{'host':_0xc8ac('0x7'),'port':0x18eb});var io=require(_0xc8ac('0x8'))(new Redis(config[_0xc8ac('0x6')]));function UserReport(_0x201f12){this[_0xc8ac('0x9')]=_0x201f12['trunks'];this[_0xc8ac('0xa')]=_0x201f12[_0xc8ac('0xa')];this[_0xc8ac('0xb')]=_0x201f12['telephones'];ami['on']('registryentry',this[_0xc8ac('0xc')][_0xc8ac('0xd')](this));ami['on']('registry',this['syncRegistry']['bind'](this));ami['on'](_0xc8ac('0xe'),this['syncDeviceState']['bind'](this));ami['on'](_0xc8ac('0xf'),this['syncPeerStatus'][_0xc8ac('0xd')](this));return this['syncRealtimeShow']();}function showSipRegistrations(){Promise[_0xc8ac('0x10')]()[_0xc8ac('0x11')](ami[_0xc8ac('0x12')]())[_0xc8ac('0x13')](function(_0x2a9ddf){logger[_0xc8ac('0x14')](_0xc8ac('0x15'),util[_0xc8ac('0x16')](_0x2a9ddf,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0xc8ac('0x10')]()[_0xc8ac('0x11')](ami[_0xc8ac('0x17')]())[_0xc8ac('0x13')](function(_0x22db0a){logger[_0xc8ac('0x14')](_0xc8ac('0x18'),util[_0xc8ac('0x16')](_0x22db0a,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0xc8ac('0x10')]()[_0xc8ac('0x11')](ami[_0xc8ac('0x19')]())[_0xc8ac('0x13')](function(_0xae037){logger[_0xc8ac('0x14')](_0xc8ac('0x1a'),util[_0xc8ac('0x16')](_0xae037,{'showHidden':![],'depth':null}));});}UserReport[_0xc8ac('0x1b')][_0xc8ac('0x1c')]=function(){setInterval(function(){BPromise['resolve']()[_0xc8ac('0x11')](showSipRegistrations())[_0xc8ac('0x11')](listDeviceStates())[_0xc8ac('0x11')](showPeersStatus());},0x32c8);};UserReport['prototype'][_0xc8ac('0x1d')]=function(_0x488da2){return _0x488da2!==null&&!_['isUndefined'](_0x488da2);};UserReport[_0xc8ac('0x1b')][_0xc8ac('0x1e')]=function(_0x276047,_0xbd7ae3,_0x3d19e4){io['to'](_0x276047)[_0xc8ac('0x1e')](_0xbd7ae3,_0x3d19e4);};UserReport['prototype'][_0xc8ac('0xc')]=function(_0x2032e9){try{if(this[_0xc8ac('0x1d')](_0x2032e9)){logger['info'](_0xc8ac('0x1f'),_0x2032e9[_0xc8ac('0x20')],_0x2032e9[_0xc8ac('0x21')]);logger[_0xc8ac('0x22')](_0xc8ac('0x23'),util[_0xc8ac('0x16')](_0x2032e9,{'showHidden':![],'depth':null}));var _0x469221=_[_0xc8ac('0x24')](this['trunks'],{'registry':_0x2032e9['username']});if(_0x469221){_0x2032e9[_0xc8ac('0x25')]=_0x2032e9[_0xc8ac('0x21')];_[_0xc8ac('0x26')](_0x469221,_[_0xc8ac('0x27')](_0x2032e9,[_0xc8ac('0x28'),'actionid',_0xc8ac('0x20'),_0xc8ac('0x21')]));logger[_0xc8ac('0x22')]('[userReport][registry]\x20sending\x20trunk:save\x20event:',util['inspect'](_0x469221,{'showHidden':![],'depth':null}));this[_0xc8ac('0x1e')](util[_0xc8ac('0x29')](_0xc8ac('0x2a'),_0x469221[_0xc8ac('0x2b')]),'trunk:save',_0x469221);}}}catch(_0x33b53a){logger[_0xc8ac('0x14')](_0xc8ac('0x23'),util[_0xc8ac('0x16')](_0x33b53a,{'showHidden':![],'depth':null}));}};UserReport[_0xc8ac('0x1b')]['syncDeviceState']=function(_0x3d6405){try{if(this[_0xc8ac('0x1d')](_0x3d6405)){logger[_0xc8ac('0x2c')](_0xc8ac('0x2d'),_0x3d6405['device'],_0x3d6405['state']);logger[_0xc8ac('0x22')](_0xc8ac('0x2e'),util[_0xc8ac('0x16')](_0x3d6405,{'showHidden':![],'depth':null}));if(this[_0xc8ac('0xa')][_0x3d6405[_0xc8ac('0x2f')]]){if(!this[_0xc8ac('0xa')][_0x3d6405[_0xc8ac('0x2f')]][_0xc8ac('0x30')]||_0x3d6405[_0xc8ac('0x21')]['toLowerCase']()==_0xc8ac('0x31')){this[_0xc8ac('0xa')][_0x3d6405[_0xc8ac('0x2f')]][_0xc8ac('0x30')]=![];if(this[_0xc8ac('0xa')][_0x3d6405[_0xc8ac('0x2f')]]['state']!==_0x3d6405[_0xc8ac('0x21')][_0xc8ac('0x32')]()){this[_0xc8ac('0xa')][_0x3d6405[_0xc8ac('0x2f')]][_0xc8ac('0x33')]=_[_0xc8ac('0x34')](moment()[_0xc8ac('0x29')]('x'));}this[_0xc8ac('0xa')][_0x3d6405[_0xc8ac('0x2f')]]['state']=_0x3d6405[_0xc8ac('0x21')][_0xc8ac('0x32')]();this['agents'][_0x3d6405[_0xc8ac('0x2f')]]['updateStatusRealtime'](_0x3d6405);}}else if(this[_0xc8ac('0xb')][_0x3d6405[_0xc8ac('0x2f')]]){if(this['telephones'][_0x3d6405[_0xc8ac('0x2f')]]['state']!==_0x3d6405[_0xc8ac('0x21')][_0xc8ac('0x32')]()){this['telephones'][_0x3d6405[_0xc8ac('0x2f')]][_0xc8ac('0x33')]=_['toNumber'](moment()[_0xc8ac('0x29')]('x'));}this[_0xc8ac('0xb')][_0x3d6405[_0xc8ac('0x2f')]]['state']=_0x3d6405['state'][_0xc8ac('0x32')]();logger[_0xc8ac('0x22')](_0xc8ac('0x35'),util[_0xc8ac('0x16')](this[_0xc8ac('0xb')][_0x3d6405[_0xc8ac('0x2f')]],{'showHidden':![],'depth':null}));this[_0xc8ac('0x1e')](util['format']('telephone:%s',this[_0xc8ac('0xb')][_0x3d6405[_0xc8ac('0x2f')]][_0xc8ac('0x2b')]),_0xc8ac('0x36'),this[_0xc8ac('0xb')][_0x3d6405['device']]);}else if(this[_0xc8ac('0x9')][_0x3d6405['device']]){if(this[_0xc8ac('0x9')][_0x3d6405[_0xc8ac('0x2f')]][_0xc8ac('0x21')]!==_0x3d6405[_0xc8ac('0x21')][_0xc8ac('0x32')]()){this['trunks'][_0x3d6405[_0xc8ac('0x2f')]]['stateTime']=_[_0xc8ac('0x34')](moment()[_0xc8ac('0x29')]('x'));}this[_0xc8ac('0x9')][_0x3d6405[_0xc8ac('0x2f')]][_0xc8ac('0x21')]=_0x3d6405[_0xc8ac('0x21')][_0xc8ac('0x32')]();logger[_0xc8ac('0x22')](_0xc8ac('0x37'),util['inspect'](this[_0xc8ac('0x9')][_0x3d6405[_0xc8ac('0x2f')]],{'showHidden':![],'depth':null}));this[_0xc8ac('0x1e')](util[_0xc8ac('0x29')](_0xc8ac('0x2a'),this[_0xc8ac('0x9')][_0x3d6405[_0xc8ac('0x2f')]][_0xc8ac('0x2b')]),_0xc8ac('0x38'),this[_0xc8ac('0x9')][_0x3d6405['device']]);}else if(_[_0xc8ac('0x39')](_0x3d6405[_0xc8ac('0x2f')],'Local')){var _0x11c226=_0x3d6405[_0xc8ac('0x2f')];var _0x3567f2=_0x11c226[_0xc8ac('0x3a')](_0x11c226[_0xc8ac('0x3b')]('/')+0x1,_0x11c226[_0xc8ac('0x3b')]('@'));var _0x32d839=_[_0xc8ac('0x24')](this[_0xc8ac('0xa')],function(_0x523862){return _0x523862['mobile']==_0x3567f2||_0x523862[_0xc8ac('0x3c')]==_0x3567f2||_0x523862['accountcode']==_0x3567f2;});if(_0x32d839){if(_0x32d839[_0xc8ac('0x21')]!==_0x3d6405[_0xc8ac('0x21')][_0xc8ac('0x32')]()){_0x32d839[_0xc8ac('0x33')]=_[_0xc8ac('0x34')](moment()[_0xc8ac('0x29')]('x'));}_0x32d839[_0xc8ac('0x21')]=_0x3d6405[_0xc8ac('0x21')][_0xc8ac('0x32')]();_0x32d839[_0xc8ac('0x30')]=!![];_0x32d839['updateStatusRealtime'](_0x3d6405);}}}}catch(_0x150c98){logger['error'](_0xc8ac('0x2e'),util[_0xc8ac('0x16')](_0x150c98,{'showHidden':![],'depth':null}));}};UserReport[_0xc8ac('0x1b')][_0xc8ac('0x3d')]=function(_0xc5b268){try{if(this[_0xc8ac('0x1d')](_0xc5b268)&&this[_0xc8ac('0x1d')](_0xc5b268[_0xc8ac('0xf')])){logger['info'](_0xc8ac('0x3e'),_0xc5b268[_0xc8ac('0x3f')],_0xc5b268[_0xc8ac('0x40')],_0xc5b268['peerstatus']);logger[_0xc8ac('0x22')](_0xc8ac('0x41'),util[_0xc8ac('0x16')](_0xc5b268,{'showHidden':![],'depth':null}));if(this['agents'][_0xc5b268[_0xc8ac('0x3f')]]){if(!this['agents'][_0xc5b268[_0xc8ac('0x3f')]][_0xc8ac('0x30')]||_0xc5b268[_0xc8ac('0xf')]['toLowerCase']()=='registered'){this['agents'][_0xc5b268[_0xc8ac('0x3f')]][_0xc8ac('0x30')]=![];this[_0xc8ac('0xa')][_0xc5b268['peer']][_0xc8ac('0x42')]=_0xc5b268['peerstatus']['toLowerCase']();this[_0xc8ac('0xa')][_0xc5b268['peer']][_0xc8ac('0x40')]=_0xc5b268[_0xc8ac('0x40')];this[_0xc8ac('0xa')][_0xc5b268[_0xc8ac('0x3f')]]['updateStatusRealtime'](_0xc5b268);}}else if(this['telephones'][_0xc5b268[_0xc8ac('0x3f')]]){this['telephones'][_0xc5b268['peer']][_0xc8ac('0x42')]=_0xc5b268[_0xc8ac('0xf')]['toLowerCase']();this['telephones'][_0xc5b268['peer']]['address']=_0xc5b268[_0xc8ac('0x40')];logger[_0xc8ac('0x22')](_0xc8ac('0x43'),util[_0xc8ac('0x16')](this[_0xc8ac('0xb')][_0xc5b268[_0xc8ac('0x3f')]],{'showHidden':![],'depth':null}));this[_0xc8ac('0x1e')](util[_0xc8ac('0x29')](_0xc8ac('0x44'),this['telephones'][_0xc5b268['peer']]['name']),_0xc8ac('0x36'),this[_0xc8ac('0xb')][_0xc5b268[_0xc8ac('0x3f')]]);}else if(this[_0xc8ac('0x9')][_0xc5b268[_0xc8ac('0x3f')]]){this['trunks'][_0xc5b268[_0xc8ac('0x3f')]][_0xc8ac('0x42')]=_0xc5b268[_0xc8ac('0xf')]['toLowerCase']();this['trunks'][_0xc5b268['peer']][_0xc8ac('0x40')]=_0xc5b268[_0xc8ac('0x40')];logger[_0xc8ac('0x22')](_0xc8ac('0x45'),util[_0xc8ac('0x16')](this[_0xc8ac('0x9')][_0xc5b268[_0xc8ac('0x3f')]],{'showHidden':![],'depth':null}));this[_0xc8ac('0x1e')](util[_0xc8ac('0x29')]('trunk:%s',this[_0xc8ac('0x9')][_0xc5b268[_0xc8ac('0x3f')]][_0xc8ac('0x2b')]),_0xc8ac('0x38'),this[_0xc8ac('0x9')][_0xc5b268[_0xc8ac('0x3f')]]);}}}catch(_0x3cf100){logger[_0xc8ac('0x14')](_0xc8ac('0x41'),util['inspect'](_0x3cf100,{'showHidden':![],'depth':null}));}};module[_0xc8ac('0x46')]=UserReport;