Built motion from commit (unavailable).|2.5.9
[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 _0xae41=['format','name','trunk:save','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','local','toLowerCase','inuse','stateTime','toNumber','updateStatusRealtime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save','startsWith','Local','substring','indexOf','mobile','phone','accountcode','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','address','[userReport][peerstatus]','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','trunk:%s','exports','lodash','moment','util','ioredis','ami','redis','defaults','localhost','trunks','agents','telephones','registryentry','bind','syncDeviceState','peerstatus','syncPeerStatus','syncRealtimeShow','resolve','then','actionSipShowRegistry','catch','inspect','actionDeviceStateList','error','actionSipPeerStatus','prototype','isNotNull','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','find','stateRegistry','merge','omit','actionid','[userReport][registry]\x20sending\x20trunk:save\x20event:'];(function(_0x16bf05,_0x4f70da){var _0xbcf546=function(_0x70b01d){while(--_0x70b01d){_0x16bf05['push'](_0x16bf05['shift']());}};_0xbcf546(++_0x4f70da);}(_0xae41,0xaf));var _0x1ae4=function(_0x214cdc,_0x544bfb){_0x214cdc=_0x214cdc-0x0;var _0x4f0575=_0xae41[_0x214cdc];return _0x4f0575;};'use strict';var _=require(_0x1ae4('0x0'));var moment=require(_0x1ae4('0x1'));var util=require(_0x1ae4('0x2'));var Redis=require(_0x1ae4('0x3'));var BPromise=require('bluebird');var config=require('../../../config/environment');var logger=require('../../../config/logger')(_0x1ae4('0x4'));var ami=require('../ami');config[_0x1ae4('0x5')]=_[_0x1ae4('0x6')](config['redis'],{'host':_0x1ae4('0x7'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x1ae4('0x5')]));function UserReport(_0xd7c5){this[_0x1ae4('0x8')]=_0xd7c5['trunks'];this[_0x1ae4('0x9')]=_0xd7c5[_0x1ae4('0x9')];this[_0x1ae4('0xa')]=_0xd7c5[_0x1ae4('0xa')];ami['on'](_0x1ae4('0xb'),this['syncRegistry']['bind'](this));ami['on']('registry',this['syncRegistry'][_0x1ae4('0xc')](this));ami['on']('devicestatechange',this[_0x1ae4('0xd')][_0x1ae4('0xc')](this));ami['on'](_0x1ae4('0xe'),this[_0x1ae4('0xf')]['bind'](this));return this[_0x1ae4('0x10')]();}function showSipRegistrations(){Promise[_0x1ae4('0x11')]()[_0x1ae4('0x12')](ami[_0x1ae4('0x13')]())[_0x1ae4('0x14')](function(_0x358b1a){logger['error']('[userReport][sipshowregistry]',util[_0x1ae4('0x15')](_0x358b1a,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x1ae4('0x11')]()[_0x1ae4('0x12')](ami[_0x1ae4('0x16')]())[_0x1ae4('0x14')](function(_0x3507ca){logger[_0x1ae4('0x17')]('[userReport][devicestatelist]',util[_0x1ae4('0x15')](_0x3507ca,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise['resolve']()[_0x1ae4('0x12')](ami[_0x1ae4('0x18')]())[_0x1ae4('0x14')](function(_0x45c8ee){logger['error']('[userReport][sippeerstatus]',util[_0x1ae4('0x15')](_0x45c8ee,{'showHidden':![],'depth':null}));});}UserReport['prototype'][_0x1ae4('0x10')]=function(){setInterval(function(){BPromise[_0x1ae4('0x11')]()['then'](showSipRegistrations())['then'](listDeviceStates())[_0x1ae4('0x12')](showPeersStatus());},0x32c8);};UserReport[_0x1ae4('0x19')][_0x1ae4('0x1a')]=function(_0x5d7b2a){return _0x5d7b2a!==null&&!_[_0x1ae4('0x1b')](_0x5d7b2a);};UserReport[_0x1ae4('0x19')][_0x1ae4('0x1c')]=function(_0x56a966,_0x104503,_0x3aeca6){io['to'](_0x56a966)[_0x1ae4('0x1c')](_0x104503,_0x3aeca6);};UserReport[_0x1ae4('0x19')]['syncRegistry']=function(_0x17e6de){try{if(this[_0x1ae4('0x1a')](_0x17e6de)){logger[_0x1ae4('0x1d')](_0x1ae4('0x1e'),_0x17e6de[_0x1ae4('0x1f')],_0x17e6de[_0x1ae4('0x20')]);logger[_0x1ae4('0x21')](_0x1ae4('0x22'),util[_0x1ae4('0x15')](_0x17e6de,{'showHidden':![],'depth':null}));var _0x5e192b=_[_0x1ae4('0x23')](this[_0x1ae4('0x8')],{'registry':_0x17e6de[_0x1ae4('0x1f')]});if(_0x5e192b){_0x17e6de[_0x1ae4('0x24')]=_0x17e6de[_0x1ae4('0x20')];_[_0x1ae4('0x25')](_0x5e192b,_[_0x1ae4('0x26')](_0x17e6de,['event',_0x1ae4('0x27'),_0x1ae4('0x1f'),_0x1ae4('0x20')]));logger[_0x1ae4('0x21')](_0x1ae4('0x28'),util[_0x1ae4('0x15')](_0x5e192b,{'showHidden':![],'depth':null}));this[_0x1ae4('0x1c')](util[_0x1ae4('0x29')]('trunk:%s',_0x5e192b[_0x1ae4('0x2a')]),_0x1ae4('0x2b'),_0x5e192b);}}}catch(_0x568002){logger[_0x1ae4('0x17')]('[userReport][registry]',util[_0x1ae4('0x15')](_0x568002,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0x1ae4('0xd')]=function(_0x2c4756){try{if(this[_0x1ae4('0x1a')](_0x2c4756)){logger[_0x1ae4('0x1d')](_0x1ae4('0x2c'),_0x2c4756[_0x1ae4('0x2d')],_0x2c4756[_0x1ae4('0x20')]);logger[_0x1ae4('0x21')](_0x1ae4('0x2e'),util[_0x1ae4('0x15')](_0x2c4756,{'showHidden':![],'depth':null}));if(this[_0x1ae4('0x9')][_0x2c4756[_0x1ae4('0x2d')]]){if(!this[_0x1ae4('0x9')][_0x2c4756['device']][_0x1ae4('0x2f')]||_0x2c4756[_0x1ae4('0x20')][_0x1ae4('0x30')]()==_0x1ae4('0x31')){this[_0x1ae4('0x9')][_0x2c4756['device']][_0x1ae4('0x2f')]=![];if(this[_0x1ae4('0x9')][_0x2c4756[_0x1ae4('0x2d')]]['state']!==_0x2c4756[_0x1ae4('0x20')][_0x1ae4('0x30')]()){this[_0x1ae4('0x9')][_0x2c4756['device']][_0x1ae4('0x32')]=_[_0x1ae4('0x33')](moment()['format']('x'));}this[_0x1ae4('0x9')][_0x2c4756[_0x1ae4('0x2d')]][_0x1ae4('0x20')]=_0x2c4756[_0x1ae4('0x20')][_0x1ae4('0x30')]();this['agents'][_0x2c4756[_0x1ae4('0x2d')]][_0x1ae4('0x34')](_0x2c4756);}}else if(this['telephones'][_0x2c4756['device']]){if(this[_0x1ae4('0xa')][_0x2c4756[_0x1ae4('0x2d')]][_0x1ae4('0x20')]!==_0x2c4756[_0x1ae4('0x20')][_0x1ae4('0x30')]()){this['telephones'][_0x2c4756[_0x1ae4('0x2d')]][_0x1ae4('0x32')]=_[_0x1ae4('0x33')](moment()['format']('x'));}this[_0x1ae4('0xa')][_0x2c4756['device']]['state']=_0x2c4756[_0x1ae4('0x20')][_0x1ae4('0x30')]();logger['debug'](_0x1ae4('0x35'),util[_0x1ae4('0x15')](this['telephones'][_0x2c4756[_0x1ae4('0x2d')]],{'showHidden':![],'depth':null}));this[_0x1ae4('0x1c')](util['format'](_0x1ae4('0x36'),this[_0x1ae4('0xa')][_0x2c4756[_0x1ae4('0x2d')]][_0x1ae4('0x2a')]),_0x1ae4('0x37'),this[_0x1ae4('0xa')][_0x2c4756[_0x1ae4('0x2d')]]);}else if(this[_0x1ae4('0x8')][_0x2c4756[_0x1ae4('0x2d')]]){if(this['trunks'][_0x2c4756[_0x1ae4('0x2d')]][_0x1ae4('0x20')]!==_0x2c4756[_0x1ae4('0x20')][_0x1ae4('0x30')]()){this[_0x1ae4('0x8')][_0x2c4756[_0x1ae4('0x2d')]][_0x1ae4('0x32')]=_[_0x1ae4('0x33')](moment()[_0x1ae4('0x29')]('x'));}this[_0x1ae4('0x8')][_0x2c4756['device']][_0x1ae4('0x20')]=_0x2c4756[_0x1ae4('0x20')][_0x1ae4('0x30')]();logger[_0x1ae4('0x21')]('[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:',util[_0x1ae4('0x15')](this[_0x1ae4('0x8')][_0x2c4756[_0x1ae4('0x2d')]],{'showHidden':![],'depth':null}));this['emit'](util['format']('trunk:%s',this['trunks'][_0x2c4756['device']][_0x1ae4('0x2a')]),_0x1ae4('0x2b'),this['trunks'][_0x2c4756[_0x1ae4('0x2d')]]);}else if(_[_0x1ae4('0x38')](_0x2c4756['device'],_0x1ae4('0x39'))){var _0x39b6b9=_0x2c4756[_0x1ae4('0x2d')];var _0x27b370=_0x39b6b9[_0x1ae4('0x3a')](_0x39b6b9[_0x1ae4('0x3b')]('/')+0x1,_0x39b6b9[_0x1ae4('0x3b')]('@'));var _0x234d86=_[_0x1ae4('0x23')](this['agents'],function(_0x25044d){return _0x25044d[_0x1ae4('0x3c')]==_0x27b370||_0x25044d[_0x1ae4('0x3d')]==_0x27b370||_0x25044d[_0x1ae4('0x3e')]==_0x27b370;});if(_0x234d86){if(_0x234d86[_0x1ae4('0x20')]!==_0x2c4756['state'][_0x1ae4('0x30')]()){_0x234d86[_0x1ae4('0x32')]=_['toNumber'](moment()[_0x1ae4('0x29')]('x'));}_0x234d86[_0x1ae4('0x20')]=_0x2c4756[_0x1ae4('0x20')][_0x1ae4('0x30')]();_0x234d86[_0x1ae4('0x2f')]=!![];_0x234d86['updateStatusRealtime'](_0x2c4756);}}}}catch(_0x381370){logger['error'](_0x1ae4('0x2e'),util[_0x1ae4('0x15')](_0x381370,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0x1ae4('0xf')]=function(_0x15a38d){try{if(this[_0x1ae4('0x1a')](_0x15a38d)&&this['isNotNull'](_0x15a38d[_0x1ae4('0xe')])){logger[_0x1ae4('0x1d')](_0x1ae4('0x3f'),_0x15a38d[_0x1ae4('0x40')],_0x15a38d[_0x1ae4('0x41')],_0x15a38d[_0x1ae4('0xe')]);logger['debug'](_0x1ae4('0x42'),util[_0x1ae4('0x15')](_0x15a38d,{'showHidden':![],'depth':null}));if(this[_0x1ae4('0x9')][_0x15a38d[_0x1ae4('0x40')]]){if(!this[_0x1ae4('0x9')][_0x15a38d[_0x1ae4('0x40')]][_0x1ae4('0x2f')]||_0x15a38d[_0x1ae4('0xe')]['toLowerCase']()=='registered'){this[_0x1ae4('0x9')][_0x15a38d['peer']]['local']=![];this[_0x1ae4('0x9')][_0x15a38d['peer']][_0x1ae4('0x43')]=_0x15a38d[_0x1ae4('0xe')][_0x1ae4('0x30')]();this[_0x1ae4('0x9')][_0x15a38d[_0x1ae4('0x40')]][_0x1ae4('0x41')]=_0x15a38d[_0x1ae4('0x41')];this[_0x1ae4('0x9')][_0x15a38d[_0x1ae4('0x40')]][_0x1ae4('0x34')](_0x15a38d);}}else if(this[_0x1ae4('0xa')][_0x15a38d[_0x1ae4('0x40')]]){this['telephones'][_0x15a38d[_0x1ae4('0x40')]]['status']=_0x15a38d[_0x1ae4('0xe')][_0x1ae4('0x30')]();this['telephones'][_0x15a38d['peer']][_0x1ae4('0x41')]=_0x15a38d[_0x1ae4('0x41')];logger[_0x1ae4('0x21')](_0x1ae4('0x44'),util['inspect'](this[_0x1ae4('0xa')][_0x15a38d[_0x1ae4('0x40')]],{'showHidden':![],'depth':null}));this[_0x1ae4('0x1c')](util[_0x1ae4('0x29')](_0x1ae4('0x36'),this[_0x1ae4('0xa')][_0x15a38d[_0x1ae4('0x40')]][_0x1ae4('0x2a')]),_0x1ae4('0x37'),this['telephones'][_0x15a38d[_0x1ae4('0x40')]]);}else if(this['trunks'][_0x15a38d[_0x1ae4('0x40')]]){this['trunks'][_0x15a38d[_0x1ae4('0x40')]][_0x1ae4('0x43')]=_0x15a38d[_0x1ae4('0xe')][_0x1ae4('0x30')]();this['trunks'][_0x15a38d['peer']][_0x1ae4('0x41')]=_0x15a38d[_0x1ae4('0x41')];logger[_0x1ae4('0x21')](_0x1ae4('0x45'),util['inspect'](this[_0x1ae4('0x8')][_0x15a38d[_0x1ae4('0x40')]],{'showHidden':![],'depth':null}));this[_0x1ae4('0x1c')](util[_0x1ae4('0x29')](_0x1ae4('0x46'),this[_0x1ae4('0x8')][_0x15a38d[_0x1ae4('0x40')]]['name']),_0x1ae4('0x2b'),this[_0x1ae4('0x8')][_0x15a38d[_0x1ae4('0x40')]]);}}}catch(_0x4be5d7){logger[_0x1ae4('0x17')](_0x1ae4('0x42'),util[_0x1ae4('0x15')](_0x4be5d7,{'showHidden':![],'depth':null}));}};module[_0x1ae4('0x47')]=UserReport;