4ba0a0d3ada755eda665d5fa0552d8e3d96f4d49
[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 _0x05ac=['agents','telephones','registryentry','bind','registry','syncRegistry','devicestatechange','peerstatus','syncPeerStatus','syncRealtimeShow','resolve','then','actionSipShowRegistry','[userReport][sipshowregistry]','actionDeviceStateList','error','[userReport][devicestatelist]','inspect','[userReport][sippeerstatus]','prototype','isNotNull','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','[userReport][registry]','find','stateRegistry','merge','omit','event','actionid','debug','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','trunk:%s','name','trunk:save','syncDeviceState','[userReport][devicestatechange]\x20device:%s\x20state:%s','[userReport][devicestatechange]','device','local','inuse','stateTime','toNumber','toLowerCase','updateStatusRealtime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','Local','indexOf','mobile','phone','accountcode','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','[userReport][peerstatus]','status','address','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','exports','lodash','moment','ioredis','../../../config/environment','../../../config/logger','ami','../ami','defaults','localhost','socket.io-emitter','redis','trunks'];(function(_0x4797fa,_0x31a2fa){var _0x5d6120=function(_0xef47e1){while(--_0xef47e1){_0x4797fa['push'](_0x4797fa['shift']());}};_0x5d6120(++_0x31a2fa);}(_0x05ac,0xdb));var _0xc05a=function(_0x17c9dd,_0x591583){_0x17c9dd=_0x17c9dd-0x0;var _0x310a06=_0x05ac[_0x17c9dd];return _0x310a06;};'use strict';var _=require(_0xc05a('0x0'));var moment=require(_0xc05a('0x1'));var util=require('util');var Redis=require(_0xc05a('0x2'));var BPromise=require('bluebird');var config=require(_0xc05a('0x3'));var logger=require(_0xc05a('0x4'))(_0xc05a('0x5'));var ami=require(_0xc05a('0x6'));config['redis']=_[_0xc05a('0x7')](config['redis'],{'host':_0xc05a('0x8'),'port':0x18eb});var io=require(_0xc05a('0x9'))(new Redis(config[_0xc05a('0xa')]));function UserReport(_0x3d72f2){this[_0xc05a('0xb')]=_0x3d72f2['trunks'];this[_0xc05a('0xc')]=_0x3d72f2[_0xc05a('0xc')];this[_0xc05a('0xd')]=_0x3d72f2[_0xc05a('0xd')];ami['on'](_0xc05a('0xe'),this['syncRegistry'][_0xc05a('0xf')](this));ami['on'](_0xc05a('0x10'),this[_0xc05a('0x11')][_0xc05a('0xf')](this));ami['on'](_0xc05a('0x12'),this['syncDeviceState'][_0xc05a('0xf')](this));ami['on'](_0xc05a('0x13'),this[_0xc05a('0x14')][_0xc05a('0xf')](this));return this[_0xc05a('0x15')]();}function showSipRegistrations(){Promise[_0xc05a('0x16')]()[_0xc05a('0x17')](ami[_0xc05a('0x18')]())['catch'](function(_0x5dec64){logger['error'](_0xc05a('0x19'),util['inspect'](_0x5dec64,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0xc05a('0x16')]()['then'](ami[_0xc05a('0x1a')]())['catch'](function(_0x2627d5){logger[_0xc05a('0x1b')](_0xc05a('0x1c'),util[_0xc05a('0x1d')](_0x2627d5,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0xc05a('0x16')]()[_0xc05a('0x17')](ami['actionSipPeerStatus']())['catch'](function(_0x239bf1){logger['error'](_0xc05a('0x1e'),util[_0xc05a('0x1d')](_0x239bf1,{'showHidden':![],'depth':null}));});}UserReport[_0xc05a('0x1f')][_0xc05a('0x15')]=function(){setInterval(function(){BPromise[_0xc05a('0x16')]()['then'](showSipRegistrations())['then'](listDeviceStates())[_0xc05a('0x17')](showPeersStatus());},0x32c8);};UserReport[_0xc05a('0x1f')][_0xc05a('0x20')]=function(_0x18ab68){return _0x18ab68!==null&&!_[_0xc05a('0x21')](_0x18ab68);};UserReport[_0xc05a('0x1f')][_0xc05a('0x22')]=function(_0xf674e0,_0x116033,_0x5d180a){io['to'](_0xf674e0)['emit'](_0x116033,_0x5d180a);};UserReport[_0xc05a('0x1f')]['syncRegistry']=function(_0x97d67a){try{if(this[_0xc05a('0x20')](_0x97d67a)){logger[_0xc05a('0x23')](_0xc05a('0x24'),_0x97d67a[_0xc05a('0x25')],_0x97d67a[_0xc05a('0x26')]);logger['debug'](_0xc05a('0x27'),util[_0xc05a('0x1d')](_0x97d67a,{'showHidden':![],'depth':null}));var _0x4eb804=_[_0xc05a('0x28')](this[_0xc05a('0xb')],{'defaultuser':_0x97d67a[_0xc05a('0x25')]});if(_0x4eb804){_0x97d67a[_0xc05a('0x29')]=_0x97d67a[_0xc05a('0x26')];_[_0xc05a('0x2a')](_0x4eb804,_[_0xc05a('0x2b')](_0x97d67a,[_0xc05a('0x2c'),_0xc05a('0x2d'),'username',_0xc05a('0x26')]));logger[_0xc05a('0x2e')](_0xc05a('0x2f'),util[_0xc05a('0x1d')](_0x4eb804,{'showHidden':![],'depth':null}));this['emit'](util[_0xc05a('0x30')](_0xc05a('0x31'),_0x4eb804[_0xc05a('0x32')]),_0xc05a('0x33'),_0x4eb804);}}}catch(_0x1ed840){logger[_0xc05a('0x1b')](_0xc05a('0x27'),util[_0xc05a('0x1d')](_0x1ed840,{'showHidden':![],'depth':null}));}};UserReport[_0xc05a('0x1f')][_0xc05a('0x34')]=function(_0x5817a1){try{if(this[_0xc05a('0x20')](_0x5817a1)){logger['info'](_0xc05a('0x35'),_0x5817a1['device'],_0x5817a1[_0xc05a('0x26')]);logger[_0xc05a('0x2e')](_0xc05a('0x36'),util[_0xc05a('0x1d')](_0x5817a1,{'showHidden':![],'depth':null}));if(this[_0xc05a('0xc')][_0x5817a1['device']]){if(!this[_0xc05a('0xc')][_0x5817a1[_0xc05a('0x37')]][_0xc05a('0x38')]||_0x5817a1[_0xc05a('0x26')]['toLowerCase']()==_0xc05a('0x39')){this['agents'][_0x5817a1[_0xc05a('0x37')]]['local']=![];if(this['agents'][_0x5817a1[_0xc05a('0x37')]][_0xc05a('0x26')]!==_0x5817a1[_0xc05a('0x26')]['toLowerCase']()){this[_0xc05a('0xc')][_0x5817a1[_0xc05a('0x37')]][_0xc05a('0x3a')]=_[_0xc05a('0x3b')](moment()[_0xc05a('0x30')]('x'));}this[_0xc05a('0xc')][_0x5817a1[_0xc05a('0x37')]][_0xc05a('0x26')]=_0x5817a1[_0xc05a('0x26')][_0xc05a('0x3c')]();this[_0xc05a('0xc')][_0x5817a1[_0xc05a('0x37')]][_0xc05a('0x3d')](_0x5817a1);}}else if(this[_0xc05a('0xd')][_0x5817a1[_0xc05a('0x37')]]){if(this[_0xc05a('0xd')][_0x5817a1[_0xc05a('0x37')]][_0xc05a('0x26')]!==_0x5817a1[_0xc05a('0x26')][_0xc05a('0x3c')]()){this['telephones'][_0x5817a1[_0xc05a('0x37')]]['stateTime']=_[_0xc05a('0x3b')](moment()[_0xc05a('0x30')]('x'));}this['telephones'][_0x5817a1[_0xc05a('0x37')]][_0xc05a('0x26')]=_0x5817a1['state'][_0xc05a('0x3c')]();logger['debug'](_0xc05a('0x3e'),util[_0xc05a('0x1d')](this[_0xc05a('0xd')][_0x5817a1[_0xc05a('0x37')]],{'showHidden':![],'depth':null}));this[_0xc05a('0x22')](util[_0xc05a('0x30')]('telephone:%s',this[_0xc05a('0xd')][_0x5817a1[_0xc05a('0x37')]][_0xc05a('0x32')]),_0xc05a('0x3f'),this['telephones'][_0x5817a1[_0xc05a('0x37')]]);}else if(this[_0xc05a('0xb')][_0x5817a1[_0xc05a('0x37')]]){if(this[_0xc05a('0xb')][_0x5817a1[_0xc05a('0x37')]][_0xc05a('0x26')]!==_0x5817a1[_0xc05a('0x26')][_0xc05a('0x3c')]()){this[_0xc05a('0xb')][_0x5817a1[_0xc05a('0x37')]][_0xc05a('0x3a')]=_[_0xc05a('0x3b')](moment()[_0xc05a('0x30')]('x'));}this[_0xc05a('0xb')][_0x5817a1[_0xc05a('0x37')]]['state']=_0x5817a1[_0xc05a('0x26')]['toLowerCase']();logger[_0xc05a('0x2e')](_0xc05a('0x40'),util[_0xc05a('0x1d')](this['trunks'][_0x5817a1[_0xc05a('0x37')]],{'showHidden':![],'depth':null}));this['emit'](util[_0xc05a('0x30')](_0xc05a('0x31'),this[_0xc05a('0xb')][_0x5817a1[_0xc05a('0x37')]][_0xc05a('0x32')]),_0xc05a('0x33'),this[_0xc05a('0xb')][_0x5817a1[_0xc05a('0x37')]]);}else if(_['startsWith'](_0x5817a1[_0xc05a('0x37')],_0xc05a('0x41'))){var _0x203e69=_0x5817a1['device'];var _0x56ff9e=_0x203e69['substring'](_0x203e69[_0xc05a('0x42')]('/')+0x1,_0x203e69[_0xc05a('0x42')]('@'));var _0x30d825=_[_0xc05a('0x28')](this[_0xc05a('0xc')],function(_0x1e32b6){return _0x1e32b6[_0xc05a('0x43')]==_0x56ff9e||_0x1e32b6[_0xc05a('0x44')]==_0x56ff9e||_0x1e32b6[_0xc05a('0x45')]==_0x56ff9e;});if(_0x30d825){if(_0x30d825['state']!==_0x5817a1['state'][_0xc05a('0x3c')]()){_0x30d825['stateTime']=_['toNumber'](moment()[_0xc05a('0x30')]('x'));}_0x30d825[_0xc05a('0x26')]=_0x5817a1[_0xc05a('0x26')][_0xc05a('0x3c')]();_0x30d825['local']=!![];_0x30d825[_0xc05a('0x3d')](_0x5817a1);}}}}catch(_0x44d66e){logger[_0xc05a('0x1b')](_0xc05a('0x36'),util[_0xc05a('0x1d')](_0x44d66e,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0xc05a('0x14')]=function(_0x2c3746){try{if(this[_0xc05a('0x20')](_0x2c3746)&&this['isNotNull'](_0x2c3746[_0xc05a('0x13')])){logger['info'](_0xc05a('0x46'),_0x2c3746[_0xc05a('0x47')],_0x2c3746['address'],_0x2c3746[_0xc05a('0x13')]);logger[_0xc05a('0x2e')](_0xc05a('0x48'),util[_0xc05a('0x1d')](_0x2c3746,{'showHidden':![],'depth':null}));if(this['agents'][_0x2c3746[_0xc05a('0x47')]]){if(!this[_0xc05a('0xc')][_0x2c3746[_0xc05a('0x47')]][_0xc05a('0x38')]||_0x2c3746['peerstatus'][_0xc05a('0x3c')]()=='registered'){this[_0xc05a('0xc')][_0x2c3746['peer']][_0xc05a('0x38')]=![];this['agents'][_0x2c3746[_0xc05a('0x47')]][_0xc05a('0x49')]=_0x2c3746[_0xc05a('0x13')][_0xc05a('0x3c')]();this[_0xc05a('0xc')][_0x2c3746['peer']][_0xc05a('0x4a')]=_0x2c3746[_0xc05a('0x4a')];this[_0xc05a('0xc')][_0x2c3746[_0xc05a('0x47')]][_0xc05a('0x3d')](_0x2c3746);}}else if(this[_0xc05a('0xd')][_0x2c3746['peer']]){this['telephones'][_0x2c3746[_0xc05a('0x47')]][_0xc05a('0x49')]=_0x2c3746[_0xc05a('0x13')][_0xc05a('0x3c')]();this[_0xc05a('0xd')][_0x2c3746[_0xc05a('0x47')]]['address']=_0x2c3746['address'];logger[_0xc05a('0x2e')]('[userReport][peerstatus]\x20sending\x20telephone:save\x20event:',util['inspect'](this['telephones'][_0x2c3746[_0xc05a('0x47')]],{'showHidden':![],'depth':null}));this[_0xc05a('0x22')](util[_0xc05a('0x30')]('telephone:%s',this[_0xc05a('0xd')][_0x2c3746['peer']]['name']),'telephone:save',this[_0xc05a('0xd')][_0x2c3746[_0xc05a('0x47')]]);}else if(this['trunks'][_0x2c3746[_0xc05a('0x47')]]){this['trunks'][_0x2c3746[_0xc05a('0x47')]][_0xc05a('0x49')]=_0x2c3746['peerstatus'][_0xc05a('0x3c')]();this[_0xc05a('0xb')][_0x2c3746[_0xc05a('0x47')]][_0xc05a('0x4a')]=_0x2c3746['address'];logger['debug'](_0xc05a('0x4b'),util[_0xc05a('0x1d')](this[_0xc05a('0xb')][_0x2c3746['peer']],{'showHidden':![],'depth':null}));this[_0xc05a('0x22')](util[_0xc05a('0x30')](_0xc05a('0x31'),this[_0xc05a('0xb')][_0x2c3746[_0xc05a('0x47')]][_0xc05a('0x32')]),_0xc05a('0x33'),this[_0xc05a('0xb')][_0x2c3746[_0xc05a('0x47')]]);}}}catch(_0x30d6b1){logger[_0xc05a('0x1b')]('[userReport][peerstatus]',util[_0xc05a('0x1d')](_0x30d6b1,{'showHidden':![],'depth':null}));}};module[_0xc05a('0x4c')]=UserReport;