Built motion from commit 092f8824.|2.5.49
[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 _0xcaa3=['error','[userReport][sipshowregistry]','actionDeviceStateList','catch','[userReport][devicestatelist]','inspect','then','actionSipPeerStatus','[userReport][sippeerstatus]','prototype','isNotNull','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','find','stateRegistry','merge','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','trunk:%s','name','trunk:save','[userReport][devicestatechange]','device','toLowerCase','stateTime','toNumber','updateStatusRealtime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','indexOf','mobile','phone','accountcode','local','peerstatus','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','address','registered','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','telephone:save','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','[userReport][peerstatus]','lodash','moment','util','ioredis','bluebird','../../../config/environment','../ami','redis','defaults','localhost','trunks','agents','telephones','registryentry','syncRegistry','bind','registry','devicestatechange','syncDeviceState','syncPeerStatus','resolve','actionSipShowRegistry'];(function(_0x92713a,_0x68f8b0){var _0x1893e1=function(_0xe49768){while(--_0xe49768){_0x92713a['push'](_0x92713a['shift']());}};_0x1893e1(++_0x68f8b0);}(_0xcaa3,0xcb));var _0x3caa=function(_0x3bcf9e,_0x148a5d){_0x3bcf9e=_0x3bcf9e-0x0;var _0x1bb37c=_0xcaa3[_0x3bcf9e];return _0x1bb37c;};'use strict';var _=require(_0x3caa('0x0'));var moment=require(_0x3caa('0x1'));var util=require(_0x3caa('0x2'));var Redis=require(_0x3caa('0x3'));var BPromise=require(_0x3caa('0x4'));var config=require(_0x3caa('0x5'));var logger=require('../../../config/logger')('ami');var ami=require(_0x3caa('0x6'));config[_0x3caa('0x7')]=_[_0x3caa('0x8')](config[_0x3caa('0x7')],{'host':_0x3caa('0x9'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x3caa('0x7')]));function UserReport(_0x4450cb){this[_0x3caa('0xa')]=_0x4450cb['trunks'];this[_0x3caa('0xb')]=_0x4450cb[_0x3caa('0xb')];this[_0x3caa('0xc')]=_0x4450cb[_0x3caa('0xc')];ami['on'](_0x3caa('0xd'),this[_0x3caa('0xe')][_0x3caa('0xf')](this));ami['on'](_0x3caa('0x10'),this[_0x3caa('0xe')][_0x3caa('0xf')](this));ami['on'](_0x3caa('0x11'),this[_0x3caa('0x12')]['bind'](this));ami['on']('peerstatus',this[_0x3caa('0x13')][_0x3caa('0xf')](this));return this['syncRealtimeShow']();}function showSipRegistrations(){Promise[_0x3caa('0x14')]()['then'](ami[_0x3caa('0x15')]())['catch'](function(_0x185593){logger[_0x3caa('0x16')](_0x3caa('0x17'),util['inspect'](_0x185593,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x3caa('0x14')]()['then'](ami[_0x3caa('0x18')]())[_0x3caa('0x19')](function(_0x563cdd){logger[_0x3caa('0x16')](_0x3caa('0x1a'),util[_0x3caa('0x1b')](_0x563cdd,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise['resolve']()[_0x3caa('0x1c')](ami[_0x3caa('0x1d')]())[_0x3caa('0x19')](function(_0x374baf){logger[_0x3caa('0x16')](_0x3caa('0x1e'),util[_0x3caa('0x1b')](_0x374baf,{'showHidden':![],'depth':null}));});}UserReport['prototype']['syncRealtimeShow']=function(){setInterval(function(){BPromise[_0x3caa('0x14')]()[_0x3caa('0x1c')](showSipRegistrations())[_0x3caa('0x1c')](listDeviceStates())['then'](showPeersStatus());},0x32c8);};UserReport[_0x3caa('0x1f')][_0x3caa('0x20')]=function(_0x44f846){return _0x44f846!==null&&!_[_0x3caa('0x21')](_0x44f846);};UserReport['prototype']['emit']=function(_0x3d7dec,_0x3b04ca,_0x1eff81){io['to'](_0x3d7dec)[_0x3caa('0x22')](_0x3b04ca,_0x1eff81);};UserReport['prototype'][_0x3caa('0xe')]=function(_0x4bfc8e){try{if(this['isNotNull'](_0x4bfc8e)){logger[_0x3caa('0x23')](_0x3caa('0x24'),_0x4bfc8e[_0x3caa('0x25')],_0x4bfc8e[_0x3caa('0x26')]);logger[_0x3caa('0x27')](_0x3caa('0x28'),util[_0x3caa('0x1b')](_0x4bfc8e,{'showHidden':![],'depth':null}));var _0x48c378=_[_0x3caa('0x29')](this[_0x3caa('0xa')],{'defaultuser':_0x4bfc8e[_0x3caa('0x25')]});if(_0x48c378){_0x4bfc8e[_0x3caa('0x2a')]=_0x4bfc8e[_0x3caa('0x26')];_[_0x3caa('0x2b')](_0x48c378,_['omit'](_0x4bfc8e,['event','actionid',_0x3caa('0x25'),_0x3caa('0x26')]));logger['debug'](_0x3caa('0x2c'),util[_0x3caa('0x1b')](_0x48c378,{'showHidden':![],'depth':null}));this['emit'](util[_0x3caa('0x2d')](_0x3caa('0x2e'),_0x48c378[_0x3caa('0x2f')]),_0x3caa('0x30'),_0x48c378);}}}catch(_0x3cd912){logger[_0x3caa('0x16')](_0x3caa('0x28'),util[_0x3caa('0x1b')](_0x3cd912,{'showHidden':![],'depth':null}));}};UserReport[_0x3caa('0x1f')]['syncDeviceState']=function(_0x176cda){try{if(this['isNotNull'](_0x176cda)){logger[_0x3caa('0x23')]('[userReport][devicestatechange]\x20device:%s\x20state:%s',_0x176cda['device'],_0x176cda['state']);logger[_0x3caa('0x27')](_0x3caa('0x31'),util[_0x3caa('0x1b')](_0x176cda,{'showHidden':![],'depth':null}));if(this[_0x3caa('0xb')][_0x176cda[_0x3caa('0x32')]]){if(!this['agents'][_0x176cda['device']]['local']||_0x176cda[_0x3caa('0x26')][_0x3caa('0x33')]()=='inuse'){this['agents'][_0x176cda['device']]['local']=![];if(this['agents'][_0x176cda[_0x3caa('0x32')]][_0x3caa('0x26')]!==_0x176cda['state']['toLowerCase']()){this['agents'][_0x176cda['device']][_0x3caa('0x34')]=_[_0x3caa('0x35')](moment()[_0x3caa('0x2d')]('x'));}this['agents'][_0x176cda['device']]['state']=_0x176cda[_0x3caa('0x26')][_0x3caa('0x33')]();this[_0x3caa('0xb')][_0x176cda[_0x3caa('0x32')]][_0x3caa('0x36')](_0x176cda);}}else if(this[_0x3caa('0xc')][_0x176cda[_0x3caa('0x32')]]){if(this[_0x3caa('0xc')][_0x176cda[_0x3caa('0x32')]]['state']!==_0x176cda[_0x3caa('0x26')]['toLowerCase']()){this[_0x3caa('0xc')][_0x176cda[_0x3caa('0x32')]][_0x3caa('0x34')]=_[_0x3caa('0x35')](moment()[_0x3caa('0x2d')]('x'));}this[_0x3caa('0xc')][_0x176cda[_0x3caa('0x32')]]['state']=_0x176cda['state']['toLowerCase']();logger[_0x3caa('0x27')](_0x3caa('0x37'),util['inspect'](this['telephones'][_0x176cda[_0x3caa('0x32')]],{'showHidden':![],'depth':null}));this[_0x3caa('0x22')](util[_0x3caa('0x2d')](_0x3caa('0x38'),this['telephones'][_0x176cda['device']][_0x3caa('0x2f')]),'telephone:save',this[_0x3caa('0xc')][_0x176cda[_0x3caa('0x32')]]);}else if(this[_0x3caa('0xa')][_0x176cda[_0x3caa('0x32')]]){if(this['trunks'][_0x176cda['device']][_0x3caa('0x26')]!==_0x176cda[_0x3caa('0x26')][_0x3caa('0x33')]()){this[_0x3caa('0xa')][_0x176cda[_0x3caa('0x32')]][_0x3caa('0x34')]=_[_0x3caa('0x35')](moment()[_0x3caa('0x2d')]('x'));}this['trunks'][_0x176cda[_0x3caa('0x32')]]['state']=_0x176cda[_0x3caa('0x26')]['toLowerCase']();logger[_0x3caa('0x27')](_0x3caa('0x39'),util[_0x3caa('0x1b')](this[_0x3caa('0xa')][_0x176cda[_0x3caa('0x32')]],{'showHidden':![],'depth':null}));this[_0x3caa('0x22')](util['format'](_0x3caa('0x2e'),this[_0x3caa('0xa')][_0x176cda['device']][_0x3caa('0x2f')]),_0x3caa('0x30'),this['trunks'][_0x176cda['device']]);}else if(_[_0x3caa('0x3a')](_0x176cda[_0x3caa('0x32')],_0x3caa('0x3b'))){var _0x42ba59=_0x176cda['device'];var _0x7a6c9d=_0x42ba59['substring'](_0x42ba59[_0x3caa('0x3c')]('/')+0x1,_0x42ba59['indexOf']('@'));var _0xac416c=_[_0x3caa('0x29')](this[_0x3caa('0xb')],function(_0x3d73e7){return _0x3d73e7[_0x3caa('0x3d')]==_0x7a6c9d||_0x3d73e7[_0x3caa('0x3e')]==_0x7a6c9d||_0x3d73e7[_0x3caa('0x3f')]==_0x7a6c9d;});if(_0xac416c){if(_0xac416c['state']!==_0x176cda[_0x3caa('0x26')][_0x3caa('0x33')]()){_0xac416c['stateTime']=_[_0x3caa('0x35')](moment()[_0x3caa('0x2d')]('x'));}_0xac416c[_0x3caa('0x26')]=_0x176cda[_0x3caa('0x26')][_0x3caa('0x33')]();_0xac416c[_0x3caa('0x40')]=!![];_0xac416c[_0x3caa('0x36')](_0x176cda);}}}}catch(_0x3c0034){logger[_0x3caa('0x16')](_0x3caa('0x31'),util[_0x3caa('0x1b')](_0x3c0034,{'showHidden':![],'depth':null}));}};UserReport[_0x3caa('0x1f')][_0x3caa('0x13')]=function(_0x2a89eb){try{if(this['isNotNull'](_0x2a89eb)&&this[_0x3caa('0x20')](_0x2a89eb[_0x3caa('0x41')])){logger['info'](_0x3caa('0x42'),_0x2a89eb[_0x3caa('0x43')],_0x2a89eb[_0x3caa('0x44')],_0x2a89eb[_0x3caa('0x41')]);logger['debug']('[userReport][peerstatus]',util[_0x3caa('0x1b')](_0x2a89eb,{'showHidden':![],'depth':null}));if(this[_0x3caa('0xb')][_0x2a89eb[_0x3caa('0x43')]]){if(!this[_0x3caa('0xb')][_0x2a89eb['peer']][_0x3caa('0x40')]||_0x2a89eb[_0x3caa('0x41')][_0x3caa('0x33')]()==_0x3caa('0x45')){this['agents'][_0x2a89eb['peer']]['local']=![];this[_0x3caa('0xb')][_0x2a89eb[_0x3caa('0x43')]]['status']=_0x2a89eb[_0x3caa('0x41')]['toLowerCase']();this[_0x3caa('0xb')][_0x2a89eb['peer']]['address']=_0x2a89eb[_0x3caa('0x44')];this[_0x3caa('0xb')][_0x2a89eb[_0x3caa('0x43')]][_0x3caa('0x36')](_0x2a89eb);}}else if(this[_0x3caa('0xc')][_0x2a89eb[_0x3caa('0x43')]]){this['telephones'][_0x2a89eb[_0x3caa('0x43')]][_0x3caa('0x46')]=_0x2a89eb[_0x3caa('0x41')]['toLowerCase']();this[_0x3caa('0xc')][_0x2a89eb['peer']][_0x3caa('0x44')]=_0x2a89eb['address'];logger[_0x3caa('0x27')](_0x3caa('0x47'),util['inspect'](this[_0x3caa('0xc')][_0x2a89eb[_0x3caa('0x43')]],{'showHidden':![],'depth':null}));this[_0x3caa('0x22')](util[_0x3caa('0x2d')](_0x3caa('0x38'),this['telephones'][_0x2a89eb[_0x3caa('0x43')]][_0x3caa('0x2f')]),_0x3caa('0x48'),this['telephones'][_0x2a89eb['peer']]);}else if(this['trunks'][_0x2a89eb['peer']]){this[_0x3caa('0xa')][_0x2a89eb[_0x3caa('0x43')]]['status']=_0x2a89eb[_0x3caa('0x41')]['toLowerCase']();this['trunks'][_0x2a89eb[_0x3caa('0x43')]][_0x3caa('0x44')]=_0x2a89eb[_0x3caa('0x44')];logger['debug'](_0x3caa('0x49'),util[_0x3caa('0x1b')](this[_0x3caa('0xa')][_0x2a89eb[_0x3caa('0x43')]],{'showHidden':![],'depth':null}));this['emit'](util['format'](_0x3caa('0x2e'),this['trunks'][_0x2a89eb['peer']][_0x3caa('0x2f')]),_0x3caa('0x30'),this[_0x3caa('0xa')][_0x2a89eb[_0x3caa('0x43')]]);}}}catch(_0x14a644){logger[_0x3caa('0x16')](_0x3caa('0x4a'),util['inspect'](_0x14a644,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;