Built motion from commit (unavailable).|2.5.19
[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 _0xb258=['prototype','emit','isNotNull','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','stateRegistry','omit','event','actionid','[userReport][registry]\x20sending\x20trunk:save\x20event:','trunk:%s','name','trunk:save','[userReport][registry]','device','[userReport][devicestatechange]','local','toLowerCase','inuse','toNumber','format','updateStatusRealtime','stateTime','telephone:%s','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','Local','indexOf','find','mobile','phone','peer','address','[userReport][peerstatus]','registered','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','exports','moment','util','bluebird','../../../config/environment','../../../config/logger','../ami','redis','defaults','localhost','trunks','agents','telephones','syncRegistry','registry','devicestatechange','syncDeviceState','bind','peerstatus','syncPeerStatus','syncRealtimeShow','actionSipShowRegistry','error','[userReport][sipshowregistry]','inspect','actionDeviceStateList','catch','[userReport][devicestatelist]','resolve','then','actionSipPeerStatus','[userReport][sippeerstatus]','isUndefined'];(function(_0x482c33,_0x5ac8cd){var _0x59c1fb=function(_0x53f1ba){while(--_0x53f1ba){_0x482c33['push'](_0x482c33['shift']());}};_0x59c1fb(++_0x5ac8cd);}(_0xb258,0x19c));var _0x8b25=function(_0x2a5f65,_0xfb8bba){_0x2a5f65=_0x2a5f65-0x0;var _0x423a6a=_0xb258[_0x2a5f65];return _0x423a6a;};'use strict';var _=require('lodash');var moment=require(_0x8b25('0x0'));var util=require(_0x8b25('0x1'));var Redis=require('ioredis');var BPromise=require(_0x8b25('0x2'));var config=require(_0x8b25('0x3'));var logger=require(_0x8b25('0x4'))('ami');var ami=require(_0x8b25('0x5'));config[_0x8b25('0x6')]=_[_0x8b25('0x7')](config[_0x8b25('0x6')],{'host':_0x8b25('0x8'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x8b25('0x6')]));function UserReport(_0x5dda4f){this[_0x8b25('0x9')]=_0x5dda4f[_0x8b25('0x9')];this['agents']=_0x5dda4f[_0x8b25('0xa')];this[_0x8b25('0xb')]=_0x5dda4f[_0x8b25('0xb')];ami['on']('registryentry',this[_0x8b25('0xc')]['bind'](this));ami['on'](_0x8b25('0xd'),this[_0x8b25('0xc')]['bind'](this));ami['on'](_0x8b25('0xe'),this[_0x8b25('0xf')][_0x8b25('0x10')](this));ami['on'](_0x8b25('0x11'),this[_0x8b25('0x12')][_0x8b25('0x10')](this));return this[_0x8b25('0x13')]();}function showSipRegistrations(){Promise['resolve']()['then'](ami[_0x8b25('0x14')]())['catch'](function(_0x3666ec){logger[_0x8b25('0x15')](_0x8b25('0x16'),util[_0x8b25('0x17')](_0x3666ec,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise['resolve']()['then'](ami[_0x8b25('0x18')]())[_0x8b25('0x19')](function(_0x17f065){logger[_0x8b25('0x15')](_0x8b25('0x1a'),util[_0x8b25('0x17')](_0x17f065,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x8b25('0x1b')]()[_0x8b25('0x1c')](ami[_0x8b25('0x1d')]())[_0x8b25('0x19')](function(_0x1ff8a8){logger[_0x8b25('0x15')](_0x8b25('0x1e'),util['inspect'](_0x1ff8a8,{'showHidden':![],'depth':null}));});}UserReport['prototype'][_0x8b25('0x13')]=function(){setInterval(function(){BPromise[_0x8b25('0x1b')]()[_0x8b25('0x1c')](showSipRegistrations())[_0x8b25('0x1c')](listDeviceStates())[_0x8b25('0x1c')](showPeersStatus());},0x32c8);};UserReport['prototype']['isNotNull']=function(_0x3ef206){return _0x3ef206!==null&&!_[_0x8b25('0x1f')](_0x3ef206);};UserReport[_0x8b25('0x20')]['emit']=function(_0xb91883,_0x49de9d,_0x44b5db){io['to'](_0xb91883)[_0x8b25('0x21')](_0x49de9d,_0x44b5db);};UserReport['prototype'][_0x8b25('0xc')]=function(_0x5115af){try{if(this[_0x8b25('0x22')](_0x5115af)){logger[_0x8b25('0x23')](_0x8b25('0x24'),_0x5115af[_0x8b25('0x25')],_0x5115af[_0x8b25('0x26')]);logger[_0x8b25('0x27')]('[userReport][registry]',util['inspect'](_0x5115af,{'showHidden':![],'depth':null}));var _0x4f6f89=_['find'](this[_0x8b25('0x9')],{'registry':_0x5115af[_0x8b25('0x25')]});if(_0x4f6f89){_0x5115af[_0x8b25('0x28')]=_0x5115af[_0x8b25('0x26')];_['merge'](_0x4f6f89,_[_0x8b25('0x29')](_0x5115af,[_0x8b25('0x2a'),_0x8b25('0x2b'),_0x8b25('0x25'),_0x8b25('0x26')]));logger[_0x8b25('0x27')](_0x8b25('0x2c'),util[_0x8b25('0x17')](_0x4f6f89,{'showHidden':![],'depth':null}));this[_0x8b25('0x21')](util['format'](_0x8b25('0x2d'),_0x4f6f89[_0x8b25('0x2e')]),_0x8b25('0x2f'),_0x4f6f89);}}}catch(_0x58a265){logger[_0x8b25('0x15')](_0x8b25('0x30'),util['inspect'](_0x58a265,{'showHidden':![],'depth':null}));}};UserReport['prototype']['syncDeviceState']=function(_0xdb19cd){try{if(this[_0x8b25('0x22')](_0xdb19cd)){logger[_0x8b25('0x23')]('[userReport][devicestatechange]\x20device:%s\x20state:%s',_0xdb19cd[_0x8b25('0x31')],_0xdb19cd[_0x8b25('0x26')]);logger['debug'](_0x8b25('0x32'),util[_0x8b25('0x17')](_0xdb19cd,{'showHidden':![],'depth':null}));if(this[_0x8b25('0xa')][_0xdb19cd[_0x8b25('0x31')]]){if(!this[_0x8b25('0xa')][_0xdb19cd[_0x8b25('0x31')]][_0x8b25('0x33')]||_0xdb19cd[_0x8b25('0x26')][_0x8b25('0x34')]()==_0x8b25('0x35')){this[_0x8b25('0xa')][_0xdb19cd['device']][_0x8b25('0x33')]=![];if(this[_0x8b25('0xa')][_0xdb19cd[_0x8b25('0x31')]][_0x8b25('0x26')]!==_0xdb19cd['state']['toLowerCase']()){this[_0x8b25('0xa')][_0xdb19cd['device']]['stateTime']=_[_0x8b25('0x36')](moment()[_0x8b25('0x37')]('x'));}this[_0x8b25('0xa')][_0xdb19cd[_0x8b25('0x31')]][_0x8b25('0x26')]=_0xdb19cd['state'][_0x8b25('0x34')]();this[_0x8b25('0xa')][_0xdb19cd['device']][_0x8b25('0x38')](_0xdb19cd);}}else if(this[_0x8b25('0xb')][_0xdb19cd['device']]){if(this[_0x8b25('0xb')][_0xdb19cd[_0x8b25('0x31')]]['state']!==_0xdb19cd[_0x8b25('0x26')]['toLowerCase']()){this[_0x8b25('0xb')][_0xdb19cd[_0x8b25('0x31')]][_0x8b25('0x39')]=_[_0x8b25('0x36')](moment()[_0x8b25('0x37')]('x'));}this[_0x8b25('0xb')][_0xdb19cd[_0x8b25('0x31')]][_0x8b25('0x26')]=_0xdb19cd[_0x8b25('0x26')]['toLowerCase']();logger[_0x8b25('0x27')]('[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:',util[_0x8b25('0x17')](this['telephones'][_0xdb19cd[_0x8b25('0x31')]],{'showHidden':![],'depth':null}));this[_0x8b25('0x21')](util[_0x8b25('0x37')](_0x8b25('0x3a'),this['telephones'][_0xdb19cd[_0x8b25('0x31')]][_0x8b25('0x2e')]),_0x8b25('0x3b'),this[_0x8b25('0xb')][_0xdb19cd['device']]);}else if(this[_0x8b25('0x9')][_0xdb19cd[_0x8b25('0x31')]]){if(this[_0x8b25('0x9')][_0xdb19cd[_0x8b25('0x31')]][_0x8b25('0x26')]!==_0xdb19cd[_0x8b25('0x26')]['toLowerCase']()){this[_0x8b25('0x9')][_0xdb19cd['device']]['stateTime']=_[_0x8b25('0x36')](moment()['format']('x'));}this[_0x8b25('0x9')][_0xdb19cd['device']]['state']=_0xdb19cd[_0x8b25('0x26')][_0x8b25('0x34')]();logger['debug'](_0x8b25('0x3c'),util[_0x8b25('0x17')](this[_0x8b25('0x9')][_0xdb19cd['device']],{'showHidden':![],'depth':null}));this[_0x8b25('0x21')](util[_0x8b25('0x37')]('trunk:%s',this[_0x8b25('0x9')][_0xdb19cd[_0x8b25('0x31')]][_0x8b25('0x2e')]),_0x8b25('0x2f'),this[_0x8b25('0x9')][_0xdb19cd[_0x8b25('0x31')]]);}else if(_['startsWith'](_0xdb19cd[_0x8b25('0x31')],_0x8b25('0x3d'))){var _0x51d012=_0xdb19cd['device'];var _0x314e1f=_0x51d012['substring'](_0x51d012[_0x8b25('0x3e')]('/')+0x1,_0x51d012['indexOf']('@'));var _0x17e2f6=_[_0x8b25('0x3f')](this['agents'],function(_0x21d122){return _0x21d122[_0x8b25('0x40')]==_0x314e1f||_0x21d122[_0x8b25('0x41')]==_0x314e1f||_0x21d122['accountcode']==_0x314e1f;});if(_0x17e2f6){if(_0x17e2f6['state']!==_0xdb19cd[_0x8b25('0x26')][_0x8b25('0x34')]()){_0x17e2f6[_0x8b25('0x39')]=_['toNumber'](moment()[_0x8b25('0x37')]('x'));}_0x17e2f6['state']=_0xdb19cd[_0x8b25('0x26')][_0x8b25('0x34')]();_0x17e2f6[_0x8b25('0x33')]=!![];_0x17e2f6['updateStatusRealtime'](_0xdb19cd);}}}}catch(_0x3e0739){logger[_0x8b25('0x15')](_0x8b25('0x32'),util[_0x8b25('0x17')](_0x3e0739,{'showHidden':![],'depth':null}));}};UserReport[_0x8b25('0x20')][_0x8b25('0x12')]=function(_0x462b5b){try{if(this[_0x8b25('0x22')](_0x462b5b)&&this['isNotNull'](_0x462b5b[_0x8b25('0x11')])){logger[_0x8b25('0x23')]('[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s',_0x462b5b[_0x8b25('0x42')],_0x462b5b[_0x8b25('0x43')],_0x462b5b['peerstatus']);logger['debug'](_0x8b25('0x44'),util[_0x8b25('0x17')](_0x462b5b,{'showHidden':![],'depth':null}));if(this[_0x8b25('0xa')][_0x462b5b[_0x8b25('0x42')]]){if(!this[_0x8b25('0xa')][_0x462b5b[_0x8b25('0x42')]][_0x8b25('0x33')]||_0x462b5b['peerstatus'][_0x8b25('0x34')]()==_0x8b25('0x45')){this[_0x8b25('0xa')][_0x462b5b[_0x8b25('0x42')]]['local']=![];this[_0x8b25('0xa')][_0x462b5b[_0x8b25('0x42')]][_0x8b25('0x46')]=_0x462b5b['peerstatus']['toLowerCase']();this['agents'][_0x462b5b['peer']][_0x8b25('0x43')]=_0x462b5b[_0x8b25('0x43')];this[_0x8b25('0xa')][_0x462b5b[_0x8b25('0x42')]]['updateStatusRealtime'](_0x462b5b);}}else if(this[_0x8b25('0xb')][_0x462b5b[_0x8b25('0x42')]]){this[_0x8b25('0xb')][_0x462b5b['peer']][_0x8b25('0x46')]=_0x462b5b['peerstatus'][_0x8b25('0x34')]();this['telephones'][_0x462b5b['peer']][_0x8b25('0x43')]=_0x462b5b[_0x8b25('0x43')];logger['debug'](_0x8b25('0x47'),util[_0x8b25('0x17')](this[_0x8b25('0xb')][_0x462b5b[_0x8b25('0x42')]],{'showHidden':![],'depth':null}));this[_0x8b25('0x21')](util[_0x8b25('0x37')](_0x8b25('0x3a'),this[_0x8b25('0xb')][_0x462b5b['peer']][_0x8b25('0x2e')]),_0x8b25('0x3b'),this[_0x8b25('0xb')][_0x462b5b[_0x8b25('0x42')]]);}else if(this['trunks'][_0x462b5b[_0x8b25('0x42')]]){this['trunks'][_0x462b5b[_0x8b25('0x42')]][_0x8b25('0x46')]=_0x462b5b[_0x8b25('0x11')][_0x8b25('0x34')]();this[_0x8b25('0x9')][_0x462b5b[_0x8b25('0x42')]][_0x8b25('0x43')]=_0x462b5b[_0x8b25('0x43')];logger[_0x8b25('0x27')](_0x8b25('0x48'),util[_0x8b25('0x17')](this[_0x8b25('0x9')][_0x462b5b[_0x8b25('0x42')]],{'showHidden':![],'depth':null}));this[_0x8b25('0x21')](util[_0x8b25('0x37')]('trunk:%s',this[_0x8b25('0x9')][_0x462b5b[_0x8b25('0x42')]][_0x8b25('0x2e')]),_0x8b25('0x2f'),this[_0x8b25('0x9')][_0x462b5b[_0x8b25('0x42')]]);}}}catch(_0x26d0e4){logger[_0x8b25('0x15')]('[userReport][peerstatus]',util[_0x8b25('0x17')](_0x26d0e4,{'showHidden':![],'depth':null}));}};module[_0x8b25('0x49')]=UserReport;