Built motion from commit e1760111.|2.6.18
[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 _0xd44b=['accountcode','peer','address','[userReport][peerstatus]','registered','status','moment','util','ioredis','bluebird','../../../config/environment','../../../config/logger','ami','../ami','redis','defaults','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry','bind','devicestatechange','syncDeviceState','peerstatus','syncPeerStatus','syncRealtimeShow','resolve','then','catch','[userReport][sipshowregistry]','inspect','actionDeviceStateList','[userReport][devicestatelist]','error','[userReport][sippeerstatus]','prototype','isUndefined','emit','isNotNull','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','merge','event','actionid','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','trunk:%s','name','trunk:save','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','local','toLowerCase','stateTime','toNumber','updateStatusRealtime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','indexOf','find','mobile','phone'];(function(_0x770f7,_0x3af003){var _0xe797c6=function(_0x47d92a){while(--_0x47d92a){_0x770f7['push'](_0x770f7['shift']());}};_0xe797c6(++_0x3af003);}(_0xd44b,0x98));var _0xbd44=function(_0x13e7ff,_0x17e9f9){_0x13e7ff=_0x13e7ff-0x0;var _0x459c21=_0xd44b[_0x13e7ff];return _0x459c21;};'use strict';var _=require('lodash');var moment=require(_0xbd44('0x0'));var util=require(_0xbd44('0x1'));var Redis=require(_0xbd44('0x2'));var BPromise=require(_0xbd44('0x3'));var config=require(_0xbd44('0x4'));var logger=require(_0xbd44('0x5'))(_0xbd44('0x6'));var ami=require(_0xbd44('0x7'));config[_0xbd44('0x8')]=_[_0xbd44('0x9')](config[_0xbd44('0x8')],{'host':'localhost','port':0x18eb});var io=require(_0xbd44('0xa'))(new Redis(config['redis']));function UserReport(_0x26b508){this[_0xbd44('0xb')]=_0x26b508[_0xbd44('0xb')];this[_0xbd44('0xc')]=_0x26b508[_0xbd44('0xc')];this[_0xbd44('0xd')]=_0x26b508[_0xbd44('0xd')];ami['on'](_0xbd44('0xe'),this[_0xbd44('0xf')][_0xbd44('0x10')](this));ami['on']('registry',this[_0xbd44('0xf')][_0xbd44('0x10')](this));ami['on'](_0xbd44('0x11'),this[_0xbd44('0x12')][_0xbd44('0x10')](this));ami['on'](_0xbd44('0x13'),this[_0xbd44('0x14')][_0xbd44('0x10')](this));return this[_0xbd44('0x15')]();}function showSipRegistrations(){Promise[_0xbd44('0x16')]()[_0xbd44('0x17')](ami['actionSipShowRegistry']())[_0xbd44('0x18')](function(_0x5f0cd0){logger['error'](_0xbd44('0x19'),util[_0xbd44('0x1a')](_0x5f0cd0,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0xbd44('0x16')]()[_0xbd44('0x17')](ami[_0xbd44('0x1b')]())[_0xbd44('0x18')](function(_0x44d808){logger['error'](_0xbd44('0x1c'),util[_0xbd44('0x1a')](_0x44d808,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0xbd44('0x16')]()[_0xbd44('0x17')](ami['actionSipPeerStatus']())[_0xbd44('0x18')](function(_0x392348){logger[_0xbd44('0x1d')](_0xbd44('0x1e'),util['inspect'](_0x392348,{'showHidden':![],'depth':null}));});}UserReport[_0xbd44('0x1f')][_0xbd44('0x15')]=function(){setInterval(function(){BPromise[_0xbd44('0x16')]()[_0xbd44('0x17')](showSipRegistrations())[_0xbd44('0x17')](listDeviceStates())[_0xbd44('0x17')](showPeersStatus());},0x32c8);};UserReport[_0xbd44('0x1f')]['isNotNull']=function(_0x269cab){return _0x269cab!==null&&!_[_0xbd44('0x20')](_0x269cab);};UserReport[_0xbd44('0x1f')][_0xbd44('0x21')]=function(_0x35e3c7,_0x188fbd,_0x19ee43){io['to'](_0x35e3c7)[_0xbd44('0x21')](_0x188fbd,_0x19ee43);};UserReport['prototype'][_0xbd44('0xf')]=function(_0x3c76e7){try{if(this[_0xbd44('0x22')](_0x3c76e7)){logger[_0xbd44('0x23')](_0xbd44('0x24'),_0x3c76e7[_0xbd44('0x25')],_0x3c76e7[_0xbd44('0x26')]);logger[_0xbd44('0x27')](_0xbd44('0x28'),util[_0xbd44('0x1a')](_0x3c76e7,{'showHidden':![],'depth':null}));var _0x274959=_['find'](this[_0xbd44('0xb')],{'defaultuser':_0x3c76e7[_0xbd44('0x25')]});if(_0x274959){_0x3c76e7['stateRegistry']=_0x3c76e7[_0xbd44('0x26')];_[_0xbd44('0x29')](_0x274959,_['omit'](_0x3c76e7,[_0xbd44('0x2a'),_0xbd44('0x2b'),_0xbd44('0x25'),'state']));logger[_0xbd44('0x27')](_0xbd44('0x2c'),util[_0xbd44('0x1a')](_0x274959,{'showHidden':![],'depth':null}));this[_0xbd44('0x21')](util[_0xbd44('0x2d')](_0xbd44('0x2e'),_0x274959[_0xbd44('0x2f')]),_0xbd44('0x30'),_0x274959);}}}catch(_0x4fa387){logger[_0xbd44('0x1d')](_0xbd44('0x28'),util[_0xbd44('0x1a')](_0x4fa387,{'showHidden':![],'depth':null}));}};UserReport[_0xbd44('0x1f')][_0xbd44('0x12')]=function(_0x5360d1){try{if(this[_0xbd44('0x22')](_0x5360d1)){logger[_0xbd44('0x23')](_0xbd44('0x31'),_0x5360d1[_0xbd44('0x32')],_0x5360d1['state']);logger[_0xbd44('0x27')](_0xbd44('0x33'),util[_0xbd44('0x1a')](_0x5360d1,{'showHidden':![],'depth':null}));if(this[_0xbd44('0xc')][_0x5360d1['device']]){if(!this[_0xbd44('0xc')][_0x5360d1[_0xbd44('0x32')]][_0xbd44('0x34')]||_0x5360d1['state'][_0xbd44('0x35')]()=='inuse'){this[_0xbd44('0xc')][_0x5360d1[_0xbd44('0x32')]]['local']=![];if(this[_0xbd44('0xc')][_0x5360d1[_0xbd44('0x32')]][_0xbd44('0x26')]!==_0x5360d1[_0xbd44('0x26')][_0xbd44('0x35')]()){this['agents'][_0x5360d1[_0xbd44('0x32')]][_0xbd44('0x36')]=_[_0xbd44('0x37')](moment()[_0xbd44('0x2d')]('x'));}this[_0xbd44('0xc')][_0x5360d1[_0xbd44('0x32')]][_0xbd44('0x26')]=_0x5360d1[_0xbd44('0x26')]['toLowerCase']();this['agents'][_0x5360d1['device']][_0xbd44('0x38')](_0x5360d1);}}else if(this[_0xbd44('0xd')][_0x5360d1[_0xbd44('0x32')]]){if(this['telephones'][_0x5360d1[_0xbd44('0x32')]][_0xbd44('0x26')]!==_0x5360d1[_0xbd44('0x26')][_0xbd44('0x35')]()){this[_0xbd44('0xd')][_0x5360d1[_0xbd44('0x32')]][_0xbd44('0x36')]=_[_0xbd44('0x37')](moment()[_0xbd44('0x2d')]('x'));}this[_0xbd44('0xd')][_0x5360d1[_0xbd44('0x32')]][_0xbd44('0x26')]=_0x5360d1[_0xbd44('0x26')][_0xbd44('0x35')]();logger['debug'](_0xbd44('0x39'),util[_0xbd44('0x1a')](this[_0xbd44('0xd')][_0x5360d1[_0xbd44('0x32')]],{'showHidden':![],'depth':null}));this['emit'](util[_0xbd44('0x2d')](_0xbd44('0x3a'),this['telephones'][_0x5360d1['device']][_0xbd44('0x2f')]),_0xbd44('0x3b'),this[_0xbd44('0xd')][_0x5360d1[_0xbd44('0x32')]]);}else if(this[_0xbd44('0xb')][_0x5360d1[_0xbd44('0x32')]]){if(this[_0xbd44('0xb')][_0x5360d1['device']]['state']!==_0x5360d1[_0xbd44('0x26')][_0xbd44('0x35')]()){this[_0xbd44('0xb')][_0x5360d1[_0xbd44('0x32')]][_0xbd44('0x36')]=_[_0xbd44('0x37')](moment()[_0xbd44('0x2d')]('x'));}this[_0xbd44('0xb')][_0x5360d1[_0xbd44('0x32')]]['state']=_0x5360d1[_0xbd44('0x26')][_0xbd44('0x35')]();logger[_0xbd44('0x27')](_0xbd44('0x3c'),util[_0xbd44('0x1a')](this[_0xbd44('0xb')][_0x5360d1[_0xbd44('0x32')]],{'showHidden':![],'depth':null}));this['emit'](util['format'](_0xbd44('0x2e'),this[_0xbd44('0xb')][_0x5360d1[_0xbd44('0x32')]][_0xbd44('0x2f')]),_0xbd44('0x30'),this[_0xbd44('0xb')][_0x5360d1[_0xbd44('0x32')]]);}else if(_[_0xbd44('0x3d')](_0x5360d1[_0xbd44('0x32')],_0xbd44('0x3e'))){var _0x538e14=_0x5360d1[_0xbd44('0x32')];var _0x271e75=_0x538e14['substring'](_0x538e14[_0xbd44('0x3f')]('/')+0x1,_0x538e14[_0xbd44('0x3f')]('@'));var _0xc3f390=_[_0xbd44('0x40')](this[_0xbd44('0xc')],function(_0x1d9d9d){return _0x1d9d9d[_0xbd44('0x41')]==_0x271e75||_0x1d9d9d[_0xbd44('0x42')]==_0x271e75||_0x1d9d9d[_0xbd44('0x43')]==_0x271e75;});if(_0xc3f390){if(_0xc3f390[_0xbd44('0x26')]!==_0x5360d1[_0xbd44('0x26')][_0xbd44('0x35')]()){_0xc3f390[_0xbd44('0x36')]=_[_0xbd44('0x37')](moment()[_0xbd44('0x2d')]('x'));}_0xc3f390[_0xbd44('0x26')]=_0x5360d1[_0xbd44('0x26')][_0xbd44('0x35')]();_0xc3f390[_0xbd44('0x34')]=!![];_0xc3f390[_0xbd44('0x38')](_0x5360d1);}}}}catch(_0x5234cc){logger[_0xbd44('0x1d')](_0xbd44('0x33'),util[_0xbd44('0x1a')](_0x5234cc,{'showHidden':![],'depth':null}));}};UserReport[_0xbd44('0x1f')][_0xbd44('0x14')]=function(_0x1db9fc){try{if(this[_0xbd44('0x22')](_0x1db9fc)&&this[_0xbd44('0x22')](_0x1db9fc['peerstatus'])){logger[_0xbd44('0x23')]('[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s',_0x1db9fc[_0xbd44('0x44')],_0x1db9fc[_0xbd44('0x45')],_0x1db9fc[_0xbd44('0x13')]);logger[_0xbd44('0x27')](_0xbd44('0x46'),util[_0xbd44('0x1a')](_0x1db9fc,{'showHidden':![],'depth':null}));if(this[_0xbd44('0xc')][_0x1db9fc[_0xbd44('0x44')]]){if(!this[_0xbd44('0xc')][_0x1db9fc[_0xbd44('0x44')]][_0xbd44('0x34')]||_0x1db9fc['peerstatus'][_0xbd44('0x35')]()==_0xbd44('0x47')){this[_0xbd44('0xc')][_0x1db9fc[_0xbd44('0x44')]][_0xbd44('0x34')]=![];this[_0xbd44('0xc')][_0x1db9fc['peer']]['status']=_0x1db9fc[_0xbd44('0x13')][_0xbd44('0x35')]();this[_0xbd44('0xc')][_0x1db9fc[_0xbd44('0x44')]][_0xbd44('0x45')]=_0x1db9fc[_0xbd44('0x45')];this['agents'][_0x1db9fc[_0xbd44('0x44')]]['updateStatusRealtime'](_0x1db9fc);}}else if(this['telephones'][_0x1db9fc['peer']]){this[_0xbd44('0xd')][_0x1db9fc['peer']][_0xbd44('0x48')]=_0x1db9fc['peerstatus'][_0xbd44('0x35')]();this[_0xbd44('0xd')][_0x1db9fc['peer']][_0xbd44('0x45')]=_0x1db9fc['address'];logger[_0xbd44('0x27')]('[userReport][peerstatus]\x20sending\x20telephone:save\x20event:',util['inspect'](this[_0xbd44('0xd')][_0x1db9fc[_0xbd44('0x44')]],{'showHidden':![],'depth':null}));this[_0xbd44('0x21')](util['format'](_0xbd44('0x3a'),this[_0xbd44('0xd')][_0x1db9fc['peer']][_0xbd44('0x2f')]),_0xbd44('0x3b'),this[_0xbd44('0xd')][_0x1db9fc[_0xbd44('0x44')]]);}else if(this[_0xbd44('0xb')][_0x1db9fc['peer']]){this[_0xbd44('0xb')][_0x1db9fc[_0xbd44('0x44')]][_0xbd44('0x48')]=_0x1db9fc[_0xbd44('0x13')][_0xbd44('0x35')]();this[_0xbd44('0xb')][_0x1db9fc[_0xbd44('0x44')]][_0xbd44('0x45')]=_0x1db9fc[_0xbd44('0x45')];logger['debug']('[userReport][peerstatus]\x20sending\x20trunk:save\x20event:',util['inspect'](this['trunks'][_0x1db9fc[_0xbd44('0x44')]],{'showHidden':![],'depth':null}));this['emit'](util[_0xbd44('0x2d')](_0xbd44('0x2e'),this[_0xbd44('0xb')][_0x1db9fc[_0xbd44('0x44')]][_0xbd44('0x2f')]),_0xbd44('0x30'),this['trunks'][_0x1db9fc[_0xbd44('0x44')]]);}}}catch(_0x5014ae){logger[_0xbd44('0x1d')](_0xbd44('0x46'),util[_0xbd44('0x1a')](_0x5014ae,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;