Built motion from commit 4e7c323b.|2.5.34
[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 _0x4925=['telephone:%s','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','exports','ioredis','../../../config/environment','../../../config/logger','ami','../ami','redis','localhost','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry','bind','registry','syncDeviceState','peerstatus','syncPeerStatus','syncRealtimeShow','resolve','[userReport][sipshowregistry]','inspect','then','actionDeviceStateList','catch','error','actionSipPeerStatus','prototype','isNotNull','emit','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','stateRegistry','merge','omit','actionid','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','trunk:%s','name','trunk:save','info','[userReport][devicestatechange]\x20device:%s\x20state:%s','[userReport][devicestatechange]','device','local','inuse','toLowerCase','stateTime','updateStatusRealtime','toNumber','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','indexOf','find','mobile','phone','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','address','[userReport][peerstatus]','registered','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:'];(function(_0x2f5ac5,_0x1ee939){var _0x37c9a8=function(_0x15031f){while(--_0x15031f){_0x2f5ac5['push'](_0x2f5ac5['shift']());}};_0x37c9a8(++_0x1ee939);}(_0x4925,0x127));var _0x5492=function(_0x1bd3ab,_0x352c42){_0x1bd3ab=_0x1bd3ab-0x0;var _0x37e394=_0x4925[_0x1bd3ab];return _0x37e394;};'use strict';var _=require('lodash');var moment=require('moment');var util=require('util');var Redis=require(_0x5492('0x0'));var BPromise=require('bluebird');var config=require(_0x5492('0x1'));var logger=require(_0x5492('0x2'))(_0x5492('0x3'));var ami=require(_0x5492('0x4'));config['redis']=_['defaults'](config[_0x5492('0x5')],{'host':_0x5492('0x6'),'port':0x18eb});var io=require(_0x5492('0x7'))(new Redis(config[_0x5492('0x5')]));function UserReport(_0x575211){this[_0x5492('0x8')]=_0x575211[_0x5492('0x8')];this[_0x5492('0x9')]=_0x575211[_0x5492('0x9')];this[_0x5492('0xa')]=_0x575211[_0x5492('0xa')];ami['on'](_0x5492('0xb'),this[_0x5492('0xc')][_0x5492('0xd')](this));ami['on'](_0x5492('0xe'),this[_0x5492('0xc')][_0x5492('0xd')](this));ami['on']('devicestatechange',this[_0x5492('0xf')][_0x5492('0xd')](this));ami['on'](_0x5492('0x10'),this[_0x5492('0x11')][_0x5492('0xd')](this));return this[_0x5492('0x12')]();}function showSipRegistrations(){Promise[_0x5492('0x13')]()['then'](ami['actionSipShowRegistry']())['catch'](function(_0x22158b){logger['error'](_0x5492('0x14'),util[_0x5492('0x15')](_0x22158b,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x5492('0x13')]()[_0x5492('0x16')](ami[_0x5492('0x17')]())[_0x5492('0x18')](function(_0x507a54){logger[_0x5492('0x19')]('[userReport][devicestatelist]',util[_0x5492('0x15')](_0x507a54,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x5492('0x13')]()[_0x5492('0x16')](ami[_0x5492('0x1a')]())[_0x5492('0x18')](function(_0x4b0d67){logger[_0x5492('0x19')]('[userReport][sippeerstatus]',util[_0x5492('0x15')](_0x4b0d67,{'showHidden':![],'depth':null}));});}UserReport[_0x5492('0x1b')][_0x5492('0x12')]=function(){setInterval(function(){BPromise[_0x5492('0x13')]()[_0x5492('0x16')](showSipRegistrations())[_0x5492('0x16')](listDeviceStates())[_0x5492('0x16')](showPeersStatus());},0x32c8);};UserReport['prototype'][_0x5492('0x1c')]=function(_0x4b2db7){return _0x4b2db7!==null&&!_['isUndefined'](_0x4b2db7);};UserReport['prototype']['emit']=function(_0x1b508c,_0x9104e7,_0x346a05){io['to'](_0x1b508c)[_0x5492('0x1d')](_0x9104e7,_0x346a05);};UserReport[_0x5492('0x1b')][_0x5492('0xc')]=function(_0x4e1311){try{if(this[_0x5492('0x1c')](_0x4e1311)){logger['info'](_0x5492('0x1e'),_0x4e1311[_0x5492('0x1f')],_0x4e1311[_0x5492('0x20')]);logger[_0x5492('0x21')](_0x5492('0x22'),util[_0x5492('0x15')](_0x4e1311,{'showHidden':![],'depth':null}));var _0xc79275=_['find'](this['trunks'],{'defaultuser':_0x4e1311[_0x5492('0x1f')]});if(_0xc79275){_0x4e1311[_0x5492('0x23')]=_0x4e1311[_0x5492('0x20')];_[_0x5492('0x24')](_0xc79275,_[_0x5492('0x25')](_0x4e1311,['event',_0x5492('0x26'),_0x5492('0x1f'),'state']));logger[_0x5492('0x21')](_0x5492('0x27'),util[_0x5492('0x15')](_0xc79275,{'showHidden':![],'depth':null}));this['emit'](util[_0x5492('0x28')](_0x5492('0x29'),_0xc79275[_0x5492('0x2a')]),_0x5492('0x2b'),_0xc79275);}}}catch(_0xc2f322){logger[_0x5492('0x19')](_0x5492('0x22'),util['inspect'](_0xc2f322,{'showHidden':![],'depth':null}));}};UserReport[_0x5492('0x1b')][_0x5492('0xf')]=function(_0x49126b){try{if(this[_0x5492('0x1c')](_0x49126b)){logger[_0x5492('0x2c')](_0x5492('0x2d'),_0x49126b['device'],_0x49126b[_0x5492('0x20')]);logger[_0x5492('0x21')](_0x5492('0x2e'),util['inspect'](_0x49126b,{'showHidden':![],'depth':null}));if(this['agents'][_0x49126b['device']]){if(!this[_0x5492('0x9')][_0x49126b[_0x5492('0x2f')]][_0x5492('0x30')]||_0x49126b[_0x5492('0x20')]['toLowerCase']()==_0x5492('0x31')){this[_0x5492('0x9')][_0x49126b[_0x5492('0x2f')]]['local']=![];if(this['agents'][_0x49126b[_0x5492('0x2f')]][_0x5492('0x20')]!==_0x49126b['state'][_0x5492('0x32')]()){this[_0x5492('0x9')][_0x49126b[_0x5492('0x2f')]][_0x5492('0x33')]=_['toNumber'](moment()[_0x5492('0x28')]('x'));}this[_0x5492('0x9')][_0x49126b['device']][_0x5492('0x20')]=_0x49126b[_0x5492('0x20')]['toLowerCase']();this['agents'][_0x49126b[_0x5492('0x2f')]][_0x5492('0x34')](_0x49126b);}}else if(this[_0x5492('0xa')][_0x49126b[_0x5492('0x2f')]]){if(this['telephones'][_0x49126b[_0x5492('0x2f')]][_0x5492('0x20')]!==_0x49126b[_0x5492('0x20')][_0x5492('0x32')]()){this[_0x5492('0xa')][_0x49126b[_0x5492('0x2f')]][_0x5492('0x33')]=_[_0x5492('0x35')](moment()['format']('x'));}this[_0x5492('0xa')][_0x49126b[_0x5492('0x2f')]]['state']=_0x49126b['state'][_0x5492('0x32')]();logger[_0x5492('0x21')](_0x5492('0x36'),util[_0x5492('0x15')](this[_0x5492('0xa')][_0x49126b[_0x5492('0x2f')]],{'showHidden':![],'depth':null}));this[_0x5492('0x1d')](util[_0x5492('0x28')]('telephone:%s',this[_0x5492('0xa')][_0x49126b['device']][_0x5492('0x2a')]),_0x5492('0x37'),this[_0x5492('0xa')][_0x49126b[_0x5492('0x2f')]]);}else if(this['trunks'][_0x49126b[_0x5492('0x2f')]]){if(this['trunks'][_0x49126b['device']][_0x5492('0x20')]!==_0x49126b[_0x5492('0x20')]['toLowerCase']()){this[_0x5492('0x8')][_0x49126b[_0x5492('0x2f')]]['stateTime']=_[_0x5492('0x35')](moment()[_0x5492('0x28')]('x'));}this[_0x5492('0x8')][_0x49126b[_0x5492('0x2f')]]['state']=_0x49126b[_0x5492('0x20')][_0x5492('0x32')]();logger[_0x5492('0x21')](_0x5492('0x38'),util[_0x5492('0x15')](this[_0x5492('0x8')][_0x49126b[_0x5492('0x2f')]],{'showHidden':![],'depth':null}));this[_0x5492('0x1d')](util['format'](_0x5492('0x29'),this['trunks'][_0x49126b[_0x5492('0x2f')]][_0x5492('0x2a')]),_0x5492('0x2b'),this['trunks'][_0x49126b['device']]);}else if(_[_0x5492('0x39')](_0x49126b[_0x5492('0x2f')],_0x5492('0x3a'))){var _0x538485=_0x49126b[_0x5492('0x2f')];var _0x52c8eb=_0x538485['substring'](_0x538485[_0x5492('0x3b')]('/')+0x1,_0x538485[_0x5492('0x3b')]('@'));var _0x488baa=_[_0x5492('0x3c')](this[_0x5492('0x9')],function(_0x1155b0){return _0x1155b0[_0x5492('0x3d')]==_0x52c8eb||_0x1155b0[_0x5492('0x3e')]==_0x52c8eb||_0x1155b0['accountcode']==_0x52c8eb;});if(_0x488baa){if(_0x488baa[_0x5492('0x20')]!==_0x49126b[_0x5492('0x20')][_0x5492('0x32')]()){_0x488baa[_0x5492('0x33')]=_[_0x5492('0x35')](moment()[_0x5492('0x28')]('x'));}_0x488baa[_0x5492('0x20')]=_0x49126b[_0x5492('0x20')][_0x5492('0x32')]();_0x488baa[_0x5492('0x30')]=!![];_0x488baa[_0x5492('0x34')](_0x49126b);}}}}catch(_0x25a82b){logger[_0x5492('0x19')](_0x5492('0x2e'),util[_0x5492('0x15')](_0x25a82b,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0x5492('0x11')]=function(_0x18ad8e){try{if(this['isNotNull'](_0x18ad8e)&&this[_0x5492('0x1c')](_0x18ad8e['peerstatus'])){logger[_0x5492('0x2c')](_0x5492('0x3f'),_0x18ad8e[_0x5492('0x40')],_0x18ad8e[_0x5492('0x41')],_0x18ad8e[_0x5492('0x10')]);logger['debug'](_0x5492('0x42'),util[_0x5492('0x15')](_0x18ad8e,{'showHidden':![],'depth':null}));if(this['agents'][_0x18ad8e[_0x5492('0x40')]]){if(!this[_0x5492('0x9')][_0x18ad8e[_0x5492('0x40')]]['local']||_0x18ad8e[_0x5492('0x10')][_0x5492('0x32')]()==_0x5492('0x43')){this[_0x5492('0x9')][_0x18ad8e[_0x5492('0x40')]][_0x5492('0x30')]=![];this['agents'][_0x18ad8e[_0x5492('0x40')]][_0x5492('0x44')]=_0x18ad8e[_0x5492('0x10')][_0x5492('0x32')]();this[_0x5492('0x9')][_0x18ad8e[_0x5492('0x40')]][_0x5492('0x41')]=_0x18ad8e[_0x5492('0x41')];this[_0x5492('0x9')][_0x18ad8e[_0x5492('0x40')]][_0x5492('0x34')](_0x18ad8e);}}else if(this['telephones'][_0x18ad8e['peer']]){this[_0x5492('0xa')][_0x18ad8e['peer']][_0x5492('0x44')]=_0x18ad8e[_0x5492('0x10')][_0x5492('0x32')]();this[_0x5492('0xa')][_0x18ad8e['peer']][_0x5492('0x41')]=_0x18ad8e['address'];logger[_0x5492('0x21')](_0x5492('0x45'),util[_0x5492('0x15')](this[_0x5492('0xa')][_0x18ad8e[_0x5492('0x40')]],{'showHidden':![],'depth':null}));this[_0x5492('0x1d')](util[_0x5492('0x28')](_0x5492('0x46'),this[_0x5492('0xa')][_0x18ad8e[_0x5492('0x40')]][_0x5492('0x2a')]),'telephone:save',this[_0x5492('0xa')][_0x18ad8e[_0x5492('0x40')]]);}else if(this['trunks'][_0x18ad8e[_0x5492('0x40')]]){this[_0x5492('0x8')][_0x18ad8e['peer']][_0x5492('0x44')]=_0x18ad8e['peerstatus'][_0x5492('0x32')]();this[_0x5492('0x8')][_0x18ad8e[_0x5492('0x40')]]['address']=_0x18ad8e[_0x5492('0x41')];logger[_0x5492('0x21')](_0x5492('0x47'),util[_0x5492('0x15')](this[_0x5492('0x8')][_0x18ad8e[_0x5492('0x40')]],{'showHidden':![],'depth':null}));this[_0x5492('0x1d')](util[_0x5492('0x28')](_0x5492('0x29'),this[_0x5492('0x8')][_0x18ad8e[_0x5492('0x40')]][_0x5492('0x2a')]),_0x5492('0x2b'),this[_0x5492('0x8')][_0x18ad8e[_0x5492('0x40')]]);}}}catch(_0x379f4f){logger[_0x5492('0x19')]('[userReport][peerstatus]',util[_0x5492('0x15')](_0x379f4f,{'showHidden':![],'depth':null}));}};module[_0x5492('0x48')]=UserReport;