569ce11d4111f1a768e50fe05ecd19409662ffd2
[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 _0xcce2=['[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','lodash','moment','ioredis','../../../config/environment','../../../config/logger','ami','../ami','redis','localhost','socket.io-emitter','trunks','agents','telephones','bind','registry','devicestatechange','syncDeviceState','resolve','error','[userReport][sipshowregistry]','inspect','actionDeviceStateList','catch','[userReport][devicestatelist]','then','prototype','syncRealtimeShow','isNotNull','isUndefined','syncRegistry','info','state','[userReport][registry]','find','username','stateRegistry','merge','omit','event','actionid','debug','[userReport][registry]\x20sending\x20trunk:save\x20event:','emit','trunk:%s','name','trunk:save','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','local','toLowerCase','stateTime','toNumber','format','updateStatusRealtime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','substring','indexOf','mobile','phone','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','address','peerstatus','[userReport][peerstatus]','registered','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xcce2,0x173));var _0x2cce=function(_0x6b2da4,_0x43f671){_0x6b2da4=_0x6b2da4-0x0;var _0x2d7955=_0xcce2[_0x6b2da4];return _0x2d7955;};'use strict';var _=require(_0x2cce('0x0'));var moment=require(_0x2cce('0x1'));var util=require('util');var Redis=require(_0x2cce('0x2'));var BPromise=require('bluebird');var config=require(_0x2cce('0x3'));var logger=require(_0x2cce('0x4'))(_0x2cce('0x5'));var ami=require(_0x2cce('0x6'));config['redis']=_['defaults'](config[_0x2cce('0x7')],{'host':_0x2cce('0x8'),'port':0x18eb});var io=require(_0x2cce('0x9'))(new Redis(config[_0x2cce('0x7')]));function UserReport(_0x11621e){this[_0x2cce('0xa')]=_0x11621e[_0x2cce('0xa')];this[_0x2cce('0xb')]=_0x11621e[_0x2cce('0xb')];this['telephones']=_0x11621e[_0x2cce('0xc')];ami['on']('registryentry',this['syncRegistry'][_0x2cce('0xd')](this));ami['on'](_0x2cce('0xe'),this['syncRegistry']['bind'](this));ami['on'](_0x2cce('0xf'),this[_0x2cce('0x10')][_0x2cce('0xd')](this));ami['on']('peerstatus',this['syncPeerStatus']['bind'](this));return this['syncRealtimeShow']();}function showSipRegistrations(){Promise[_0x2cce('0x11')]()['then'](ami['actionSipShowRegistry']())['catch'](function(_0x28924a){logger[_0x2cce('0x12')](_0x2cce('0x13'),util[_0x2cce('0x14')](_0x28924a,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise['resolve']()['then'](ami[_0x2cce('0x15')]())[_0x2cce('0x16')](function(_0x3e40de){logger[_0x2cce('0x12')](_0x2cce('0x17'),util[_0x2cce('0x14')](_0x3e40de,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x2cce('0x11')]()[_0x2cce('0x18')](ami['actionSipPeerStatus']())[_0x2cce('0x16')](function(_0x342dd3){logger[_0x2cce('0x12')]('[userReport][sippeerstatus]',util[_0x2cce('0x14')](_0x342dd3,{'showHidden':![],'depth':null}));});}UserReport[_0x2cce('0x19')][_0x2cce('0x1a')]=function(){setInterval(function(){BPromise['resolve']()[_0x2cce('0x18')](showSipRegistrations())[_0x2cce('0x18')](listDeviceStates())[_0x2cce('0x18')](showPeersStatus());},0x32c8);};UserReport['prototype'][_0x2cce('0x1b')]=function(_0x1c0de5){return _0x1c0de5!==null&&!_[_0x2cce('0x1c')](_0x1c0de5);};UserReport[_0x2cce('0x19')]['emit']=function(_0x314830,_0xf2c4ec,_0x311073){io['to'](_0x314830)['emit'](_0xf2c4ec,_0x311073);};UserReport[_0x2cce('0x19')][_0x2cce('0x1d')]=function(_0x909f1e){try{if(this['isNotNull'](_0x909f1e)){logger[_0x2cce('0x1e')]('[userReport][registry]\x20registry:%s\x20state:%s',_0x909f1e['username'],_0x909f1e[_0x2cce('0x1f')]);logger['debug'](_0x2cce('0x20'),util[_0x2cce('0x14')](_0x909f1e,{'showHidden':![],'depth':null}));var _0x4b93e6=_[_0x2cce('0x21')](this[_0x2cce('0xa')],{'registry':_0x909f1e[_0x2cce('0x22')]});if(_0x4b93e6){_0x909f1e[_0x2cce('0x23')]=_0x909f1e[_0x2cce('0x1f')];_[_0x2cce('0x24')](_0x4b93e6,_[_0x2cce('0x25')](_0x909f1e,[_0x2cce('0x26'),_0x2cce('0x27'),_0x2cce('0x22'),_0x2cce('0x1f')]));logger[_0x2cce('0x28')](_0x2cce('0x29'),util[_0x2cce('0x14')](_0x4b93e6,{'showHidden':![],'depth':null}));this[_0x2cce('0x2a')](util['format'](_0x2cce('0x2b'),_0x4b93e6[_0x2cce('0x2c')]),_0x2cce('0x2d'),_0x4b93e6);}}}catch(_0x3ed68f){logger[_0x2cce('0x12')](_0x2cce('0x20'),util[_0x2cce('0x14')](_0x3ed68f,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0x2cce('0x10')]=function(_0xdf6e2f){try{if(this['isNotNull'](_0xdf6e2f)){logger[_0x2cce('0x1e')](_0x2cce('0x2e'),_0xdf6e2f[_0x2cce('0x2f')],_0xdf6e2f[_0x2cce('0x1f')]);logger[_0x2cce('0x28')](_0x2cce('0x30'),util[_0x2cce('0x14')](_0xdf6e2f,{'showHidden':![],'depth':null}));if(this['agents'][_0xdf6e2f[_0x2cce('0x2f')]]){if(!this['agents'][_0xdf6e2f[_0x2cce('0x2f')]][_0x2cce('0x31')]||_0xdf6e2f[_0x2cce('0x1f')][_0x2cce('0x32')]()=='inuse'){this['agents'][_0xdf6e2f[_0x2cce('0x2f')]][_0x2cce('0x31')]=![];if(this[_0x2cce('0xb')][_0xdf6e2f['device']][_0x2cce('0x1f')]!==_0xdf6e2f[_0x2cce('0x1f')][_0x2cce('0x32')]()){this[_0x2cce('0xb')][_0xdf6e2f[_0x2cce('0x2f')]][_0x2cce('0x33')]=_[_0x2cce('0x34')](moment()[_0x2cce('0x35')]('x'));}this[_0x2cce('0xb')][_0xdf6e2f[_0x2cce('0x2f')]][_0x2cce('0x1f')]=_0xdf6e2f[_0x2cce('0x1f')][_0x2cce('0x32')]();this[_0x2cce('0xb')][_0xdf6e2f[_0x2cce('0x2f')]][_0x2cce('0x36')](_0xdf6e2f);}}else if(this[_0x2cce('0xc')][_0xdf6e2f['device']]){if(this['telephones'][_0xdf6e2f['device']][_0x2cce('0x1f')]!==_0xdf6e2f['state'][_0x2cce('0x32')]()){this[_0x2cce('0xc')][_0xdf6e2f['device']][_0x2cce('0x33')]=_[_0x2cce('0x34')](moment()[_0x2cce('0x35')]('x'));}this[_0x2cce('0xc')][_0xdf6e2f['device']]['state']=_0xdf6e2f[_0x2cce('0x1f')]['toLowerCase']();logger['debug'](_0x2cce('0x37'),util['inspect'](this[_0x2cce('0xc')][_0xdf6e2f[_0x2cce('0x2f')]],{'showHidden':![],'depth':null}));this['emit'](util[_0x2cce('0x35')](_0x2cce('0x38'),this[_0x2cce('0xc')][_0xdf6e2f['device']][_0x2cce('0x2c')]),_0x2cce('0x39'),this['telephones'][_0xdf6e2f[_0x2cce('0x2f')]]);}else if(this[_0x2cce('0xa')][_0xdf6e2f['device']]){if(this[_0x2cce('0xa')][_0xdf6e2f['device']]['state']!==_0xdf6e2f[_0x2cce('0x1f')][_0x2cce('0x32')]()){this['trunks'][_0xdf6e2f[_0x2cce('0x2f')]][_0x2cce('0x33')]=_['toNumber'](moment()[_0x2cce('0x35')]('x'));}this[_0x2cce('0xa')][_0xdf6e2f[_0x2cce('0x2f')]][_0x2cce('0x1f')]=_0xdf6e2f[_0x2cce('0x1f')][_0x2cce('0x32')]();logger[_0x2cce('0x28')](_0x2cce('0x3a'),util[_0x2cce('0x14')](this['trunks'][_0xdf6e2f[_0x2cce('0x2f')]],{'showHidden':![],'depth':null}));this[_0x2cce('0x2a')](util[_0x2cce('0x35')](_0x2cce('0x2b'),this['trunks'][_0xdf6e2f[_0x2cce('0x2f')]][_0x2cce('0x2c')]),_0x2cce('0x2d'),this[_0x2cce('0xa')][_0xdf6e2f[_0x2cce('0x2f')]]);}else if(_[_0x2cce('0x3b')](_0xdf6e2f[_0x2cce('0x2f')],_0x2cce('0x3c'))){var _0x49d1ea=_0xdf6e2f[_0x2cce('0x2f')];var _0x431126=_0x49d1ea[_0x2cce('0x3d')](_0x49d1ea[_0x2cce('0x3e')]('/')+0x1,_0x49d1ea[_0x2cce('0x3e')]('@'));var _0xb632ed=_[_0x2cce('0x21')](this[_0x2cce('0xb')],function(_0x19ce7c){return _0x19ce7c[_0x2cce('0x3f')]==_0x431126||_0x19ce7c[_0x2cce('0x40')]==_0x431126||_0x19ce7c['accountcode']==_0x431126;});if(_0xb632ed){if(_0xb632ed[_0x2cce('0x1f')]!==_0xdf6e2f[_0x2cce('0x1f')][_0x2cce('0x32')]()){_0xb632ed[_0x2cce('0x33')]=_[_0x2cce('0x34')](moment()[_0x2cce('0x35')]('x'));}_0xb632ed[_0x2cce('0x1f')]=_0xdf6e2f[_0x2cce('0x1f')][_0x2cce('0x32')]();_0xb632ed[_0x2cce('0x31')]=!![];_0xb632ed['updateStatusRealtime'](_0xdf6e2f);}}}}catch(_0x51b656){logger[_0x2cce('0x12')](_0x2cce('0x30'),util[_0x2cce('0x14')](_0x51b656,{'showHidden':![],'depth':null}));}};UserReport[_0x2cce('0x19')]['syncPeerStatus']=function(_0x5c9e97){try{if(this['isNotNull'](_0x5c9e97)&&this[_0x2cce('0x1b')](_0x5c9e97['peerstatus'])){logger[_0x2cce('0x1e')](_0x2cce('0x41'),_0x5c9e97[_0x2cce('0x42')],_0x5c9e97[_0x2cce('0x43')],_0x5c9e97[_0x2cce('0x44')]);logger['debug'](_0x2cce('0x45'),util['inspect'](_0x5c9e97,{'showHidden':![],'depth':null}));if(this[_0x2cce('0xb')][_0x5c9e97['peer']]){if(!this[_0x2cce('0xb')][_0x5c9e97[_0x2cce('0x42')]][_0x2cce('0x31')]||_0x5c9e97['peerstatus'][_0x2cce('0x32')]()==_0x2cce('0x46')){this[_0x2cce('0xb')][_0x5c9e97[_0x2cce('0x42')]][_0x2cce('0x31')]=![];this[_0x2cce('0xb')][_0x5c9e97[_0x2cce('0x42')]][_0x2cce('0x47')]=_0x5c9e97[_0x2cce('0x44')][_0x2cce('0x32')]();this['agents'][_0x5c9e97[_0x2cce('0x42')]][_0x2cce('0x43')]=_0x5c9e97['address'];this[_0x2cce('0xb')][_0x5c9e97['peer']][_0x2cce('0x36')](_0x5c9e97);}}else if(this['telephones'][_0x5c9e97[_0x2cce('0x42')]]){this[_0x2cce('0xc')][_0x5c9e97[_0x2cce('0x42')]][_0x2cce('0x47')]=_0x5c9e97[_0x2cce('0x44')][_0x2cce('0x32')]();this[_0x2cce('0xc')][_0x5c9e97[_0x2cce('0x42')]][_0x2cce('0x43')]=_0x5c9e97['address'];logger['debug'](_0x2cce('0x48'),util[_0x2cce('0x14')](this[_0x2cce('0xc')][_0x5c9e97[_0x2cce('0x42')]],{'showHidden':![],'depth':null}));this[_0x2cce('0x2a')](util[_0x2cce('0x35')]('telephone:%s',this[_0x2cce('0xc')][_0x5c9e97[_0x2cce('0x42')]][_0x2cce('0x2c')]),_0x2cce('0x39'),this['telephones'][_0x5c9e97[_0x2cce('0x42')]]);}else if(this[_0x2cce('0xa')][_0x5c9e97[_0x2cce('0x42')]]){this[_0x2cce('0xa')][_0x5c9e97['peer']]['status']=_0x5c9e97[_0x2cce('0x44')]['toLowerCase']();this[_0x2cce('0xa')][_0x5c9e97['peer']][_0x2cce('0x43')]=_0x5c9e97['address'];logger[_0x2cce('0x28')](_0x2cce('0x49'),util['inspect'](this[_0x2cce('0xa')][_0x5c9e97['peer']],{'showHidden':![],'depth':null}));this[_0x2cce('0x2a')](util[_0x2cce('0x35')](_0x2cce('0x2b'),this[_0x2cce('0xa')][_0x5c9e97[_0x2cce('0x42')]][_0x2cce('0x2c')]),_0x2cce('0x2d'),this[_0x2cce('0xa')][_0x5c9e97['peer']]);}}}catch(_0x46a7e5){logger[_0x2cce('0x12')](_0x2cce('0x45'),util[_0x2cce('0x14')](_0x46a7e5,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;