af1418e002c920d3c43e634abc96812af5c8f33f
[motion2.git] / server / services / ami / preview / util / util.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 _0x97ce=['starttime','talktime','answertime','isFailure','Failure','variablesAction','RECALL','BOOKED','uniqueid','originate','channelAgent','from-sip','timeout','totalGlobal','countcongestionretry','countnoanswerretry','cloneAction','clone','Global','scheduledAt','active','scheduledat','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','buildObj','lastevent','interface','queue','not_inuse','reachable','seconds','createBody','CampaignId','idContact','type','dialAnswer','countbusyretry','countglobal','callback','callbackat','recallme','ListId','xmd-voicequeueid','xmd-queue','xmd-phone','xmd-listid','xmd-dialurl','xmd-dialtimeout','xmd-dialoptions','xmd-dialid','xmd-dialchannel','xmd-contactid','xmd-cdrtype','xmd-callerid','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqosrttbridged','rtpaudioqos','bridgepeer','bridgepvtcallid','getCallerIdRandom','pow','extractCalleridName','match','util','lodash','moment','../../../../config/logger','env','127.0.0.1','milliseconds','diff','loggerCatch','inspect','info','loggerError','logger2','message','isUndefined','string','isEmpty','format','isActive','isNil','addVariables','Queue','name','\x22%s\x22\x20<%s>','calleridname','calleridnum','ContactId','dialer','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','monitor_format','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','originatecalleridname','xcally-motion-preview','_XCALLY_MIXMONITOR_FORMAT','Contact','tags','createdAt','%s%s','XMD-','toUpper','toLowerVariables','hasOwnProperty','updateOriginated','originated','error','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','state','statedesc','Blacklist','responsetime','endtime','logAgent','YYYY-MM-DD\x20HH:mm:ss','membername','UserId','logCustomer','ringtime'];(function(_0x31705d,_0x4b4040){var _0x79dd49=function(_0x39ebf3){while(--_0x39ebf3){_0x31705d['push'](_0x31705d['shift']());}};_0x79dd49(++_0x4b4040);}(_0x97ce,0x151));var _0xe97c=function(_0xc67528,_0x24e2fb){_0xc67528=_0xc67528-0x0;var _0x38e26d=_0x97ce[_0xc67528];return _0x38e26d;};'use strict';var util=require(_0xe97c('0x0'));var _=require(_0xe97c('0x1'));var moment=require(_0xe97c('0x2'));var logger=require(_0xe97c('0x3'))('preview');var ipAgi=process[_0xe97c('0x4')]['XCALLY_IP_AGI']||_0xe97c('0x5');function getSeconds(_0x49df42,_0x443ea2){var _0x259e69=moment(_0x49df42)[_0xe97c('0x6')](0x0);var _0x447030=moment(_0x443ea2)[_0xe97c('0x6')](0x0);return _0x259e69[_0xe97c('0x7')](_0x447030,'seconds');}exports[_0xe97c('0x8')]=function(_0x9c1b00){return function(_0x9ce6d){logger['error'](_0x9c1b00,util[_0xe97c('0x9')](_0x9ce6d,{'showHidden':![],'depth':null}));};};exports['logger']=function(_0x40ef69,_0x2e732d){logger[_0xe97c('0xa')](_0x40ef69,util[_0xe97c('0x9')](_0x2e732d,{'showHidden':![],'depth':null}));};exports[_0xe97c('0xb')]=function(_0x3aa2a5,_0xcb42d6){logger['error'](_0x3aa2a5,util[_0xe97c('0x9')](_0xcb42d6,{'showHidden':![],'depth':null}));};exports[_0xe97c('0xc')]=function(_0x3f8ad3){return function(_0x15ab00){logger[_0xe97c('0xa')](_0x3f8ad3,util[_0xe97c('0x9')](_0x15ab00,{'showHidden':![],'depth':null}));};};exports[_0xe97c('0xd')]=function(_0x8fb84d,_0x2665c0,_0x578ffc){return{'message':_0x8fb84d,'unlock':_0x2665c0,'active':_0x578ffc};};exports['getCallerId']=function(_0x115559,_0x530351,_0x3d4dd2){if(!_[_0xe97c('0xe')](_0x3d4dd2)&&'string'===typeof _0x3d4dd2&&!_['isEmpty'](_0x3d4dd2)){if(!_[_0xe97c('0xe')](_0x530351)&&_0xe97c('0xf')===typeof _0x530351&&!_[_0xe97c('0x10')](_0x530351)){return util[_0xe97c('0x11')]('\x22%s\x22\x20<%s>',_0x530351,_0x3d4dd2);}return util['format']('\x22%s\x22\x20<%s>',_0x3d4dd2,_0x3d4dd2);}if(!_[_0xe97c('0xe')](_0x115559)&&_0xe97c('0xf')===typeof _0x115559&&!_[_0xe97c('0x10')](_0x115559)){return _0x115559;}return'\x22\x22\x20<>';};exports[_0xe97c('0x12')]=function(_0x1ea420){if(_[_0xe97c('0x13')](_0x1ea420)){return![];}return _0x1ea420;};exports[_0xe97c('0x14')]=function(_0x3ad7c8,_0x5a7c4b,_0x3683ac,_0xdaf874,_0x24a54d,_0x1ce8cb){var _0x32eb7a={'XMD-QUEUE':_0x5a7c4b[_0xe97c('0x15')]?_0x5a7c4b[_0xe97c('0x15')][_0xe97c('0x16')]:'','XMD-CALLERID':_0xdaf874,'XMD-CALLERID-PREVIEW':_0x1ce8cb?util[_0xe97c('0x11')](_0xe97c('0x17'),_0x1ce8cb[_0xe97c('0x18')],_0x1ce8cb[_0xe97c('0x19')]):_0xdaf874,'XMD-DIALID':_0x24a54d,'XMD-CONTACTID':_0x5a7c4b[_0xe97c('0x1a')],'XMD-CDRTYPE':_0xe97c('0x1b'),'CALLERID(all)':_0xdaf874,'XMD-VOICEQUEUEID':_0x5a7c4b[_0xe97c('0x1c')],'XMD-DIALCHANNEL':_0x3683ac,'XMD-DIALTIMEOUT':_0x3ad7c8[_0xe97c('0x1d')]||0x1e,'XMD-DIALOPTIONS':util[_0xe97c('0x11')](_0xe97c('0x1e'),_0x3ad7c8[_0xe97c('0x1f')]?'g':'',_['isEmpty'](_0x3ad7c8[_0xe97c('0x20')])?'':_0xe97c('0x21')),'XMD-DIALURL':_0x3ad7c8[_0xe97c('0x22')]||'','XMD-AGI':_0x3ad7c8[_0xe97c('0x23')]?util[_0xe97c('0x11')](_0xe97c('0x24'),ipAgi,_0x3ad7c8[_0xe97c('0x23')]):_0xe97c('0x25'),'XMD-AGIAFTER':_0x3ad7c8[_0xe97c('0x1f')]?util[_0xe97c('0x11')](_0xe97c('0x24'),ipAgi,_0x3ad7c8[_0xe97c('0x1f')]):'NONE','XMD-ORIGINATECALLERIDNUM':_0x1ce8cb?_0x1ce8cb['originatecalleridnum']:'','XMD-ORIGINATECALLERIDNAME':_0x1ce8cb?_0x1ce8cb[_0xe97c('0x26')]:'','XMD-DESTINATION':_0xe97c('0x27')};if(!_[_0xe97c('0x10')](_0x3ad7c8[_0xe97c('0x20')])){_0x32eb7a[util[_0xe97c('0x11')]('%s',_0xe97c('0x28'))]=_0x3ad7c8[_0xe97c('0x20')];_0x32eb7a[util['format']('%s','_XCALLY_MIXMONITOR_UNIQUEID')]=_0x24a54d;}if(_0x5a7c4b&&_0x5a7c4b[_0xe97c('0x29')]){for(var _0x36536c in _0x5a7c4b[_0xe97c('0x29')]){if(_0x5a7c4b[_0xe97c('0x29')]['hasOwnProperty'](_0x36536c)){if(!_['isNil'](_0x5a7c4b[_0xe97c('0x29')][_0x36536c])&&_0x36536c!=='id'&&_0x36536c!==_0xe97c('0x2a')&&_0x36536c!==_0xe97c('0x2b')&&_0x36536c!=='updatedAt'){_0x32eb7a[util['format'](_0xe97c('0x2c'),_0xe97c('0x2d'),_[_0xe97c('0x2e')](_0x36536c))]=_0x5a7c4b[_0xe97c('0x29')][_0x36536c];}}}}return _0x32eb7a;};exports[_0xe97c('0x2f')]=function(_0x433858){var _0x36e0dc={};for(var _0x5177d3 in _0x433858){if(_0x433858[_0xe97c('0x30')](_0x5177d3)){_0x36e0dc[util[_0xe97c('0x11')]('%s',_['toLower'](_0x5177d3))]=_0x433858[_0x5177d3];}}return{'variables':_0x36e0dc};};exports[_0xe97c('0x31')]=function(_0x1a69c,_0x142e2c){if(!_[_0xe97c('0x13')](_0x1a69c)){if(_0x1a69c[_0xe97c('0x30')](_0xe97c('0x32'))){if(_0x1a69c[_0xe97c('0x32')]>0x0){_0x1a69c[_0xe97c('0x32')]-=0x1;}else{logger['error']('[updateOriginated]\x20object\x20originated\x20is\x20negative',_0x142e2c);}}}else{logger[_0xe97c('0x33')](_0xe97c('0x34'),_0x142e2c);}};exports[_0xe97c('0x35')]=function(_0x34e6f7){var _0x4eb2a0=moment()[_0xe97c('0x11')]('YYYY-MM-DD\x20HH:mm:ss');_0x34e6f7[_0xe97c('0x36')]=0xd;_0x34e6f7[_0xe97c('0x37')]=_0xe97c('0x38');_0x34e6f7['starttime']=_0x4eb2a0;_0x34e6f7[_0xe97c('0x39')]=_0x4eb2a0;_0x34e6f7[_0xe97c('0x3a')]=_0x4eb2a0;};exports[_0xe97c('0x3b')]=function(_0xc206e,_0x2c287c,_0x5e54f5){var _0x2aa954=moment()[_0xe97c('0x11')](_0xe97c('0x3c'));_0xc206e['state']=_0x2c287c;_0xc206e['statedesc']=_0x5e54f5;_0xc206e[_0xe97c('0x39')]=_0x2aa954;_0xc206e['ringtime']=getSeconds(_0xc206e[_0xe97c('0x39')],_0xc206e['starttime']);};exports['logLookAgent']=function(_0x5e2c11,_0x112ae7,_0x463d32){_0x5e2c11[_0xe97c('0x3d')]=_0x112ae7;_0x5e2c11[_0xe97c('0x3e')]=_0x463d32;};exports[_0xe97c('0x3f')]=function(_0x4ff87e,_0x2935dc,_0x5eb5cf){var _0x341fb8=moment()[_0xe97c('0x11')](_0xe97c('0x3c'));_0x4ff87e[_0xe97c('0x36')]=_0x2935dc;_0x4ff87e[_0xe97c('0x37')]=_0x5eb5cf;_0x4ff87e[_0xe97c('0x39')]=_0x4ff87e[_0xe97c('0x39')]?_0x4ff87e[_0xe97c('0x39')]:_0x341fb8;_0x4ff87e['endtime']=_0x4ff87e[_0xe97c('0x3a')]?_0x4ff87e[_0xe97c('0x3a')]:_0x341fb8;_0x4ff87e[_0xe97c('0x40')]=getSeconds(_0x4ff87e[_0xe97c('0x39')]||0x0,_0x4ff87e[_0xe97c('0x41')]||0x0);_0x4ff87e[_0xe97c('0x42')]=_0x4ff87e[_0xe97c('0x43')]?getSeconds(_0x4ff87e[_0xe97c('0x3a')],_0x4ff87e[_0xe97c('0x43')]):0x0;};exports[_0xe97c('0x44')]=function(_0x516605){return _0x516605===_0xe97c('0x45');};exports[_0xe97c('0x46')]=function(_0x4b04b0,_0x367f16,_0xaac554,_0x1bde24,_0x5b2b44){var _0x5bdc93=_0x1bde24?_0xe97c('0x47'):_0x4b04b0['calleridname'];_0x5bdc93=_0x5b2b44?_0xe97c('0x48'):_0x5bdc93;return{'actionid':_0x4b04b0[_0xe97c('0x49')],'action':_0xe97c('0x4a'),'channel':_0x4b04b0[_0xe97c('0x4b')],'callerid':util[_0xe97c('0x11')]('\x22%s\x22\x20<%s>',_0x5bdc93,_0x4b04b0[_0xe97c('0x19')]),'Exten':_0xe97c('0x27'),'Context':_0xe97c('0x4c'),'Priority':'1','variable':_0xaac554,'timeout':(_0x367f16[_0xe97c('0x4d')]||0x1e)*0x3e8,'async':!![],'channelid':_0x4b04b0['uniqueid']};};exports[_0xe97c('0x4e')]=function(_0x3299d2){return _0x3299d2['countbusyretry']+_0x3299d2[_0xe97c('0x4f')]+_0x3299d2[_0xe97c('0x50')]+_0x3299d2['countagentrejectretry']+_0x3299d2['countnosuchnumberretry'];};exports[_0xe97c('0x51')]=function(_0x560fda){var _0x383ec6=_[_0xe97c('0x52')](_0x560fda);_0x383ec6[_0xe97c('0x36')]=0xf;_0x383ec6[_0xe97c('0x37')]=_0xe97c('0x53');return _0x383ec6;};exports[_0xe97c('0x54')]=function(_0x1fefe3,_0x4f7616,_0x44b3b8){var _0x2fd534={};_0x2fd534[_0x4f7616]=_0x1fefe3[_0x4f7616];_0x2fd534[_0xe97c('0x55')]=![];_0x2fd534[_0xe97c('0x56')]=moment()['add'](_0x44b3b8,'minutes')[_0xe97c('0x11')](_0xe97c('0x3c'));_0x2fd534[_0xe97c('0x1a')]=_0x1fefe3[_0xe97c('0x1a')];_0x2fd534['ListId']=_0x1fefe3['ListId'];_0x2fd534['VoiceQueueId']=_0x1fefe3[_0xe97c('0x1c')]||undefined;return _0x2fd534;};exports[_0xe97c('0x57')]=function(_0x6927f0,_0x35fcdf){if(!_[_0xe97c('0x13')](_0x6927f0)){if(_0x6927f0[_0xe97c('0x58')]>0x0){_0x6927f0[_0xe97c('0x58')]-=0x1;}else{logger[_0xe97c('0x33')](_0x35fcdf,_0xe97c('0x59'));}}else{logger[_0xe97c('0x33')](_0x35fcdf,_0xe97c('0x5a'));}};exports[_0xe97c('0x5b')]=function(_0x736858){if(_0x736858<=0x0){return!![];}return![];};exports[_0xe97c('0x5c')]=function(_0x4d8060,_0x7d60f9){_0x4d8060[_0xe97c('0x5d')]=_0x7d60f9;_0x4d8060[_0xe97c('0x16')]=_0x4d8060['queue'];_0x4d8060[_0xe97c('0x5e')]=_0x4d8060['channelAgent'];return _0x4d8060;};exports['buildAcw']=function(_0x3e0332){var _0xe51b3c={};_0xe51b3c[_0xe97c('0x5f')]=_0x3e0332['queue'];_0xe51b3c[_0xe97c('0x5e')]=_0x3e0332[_0xe97c('0x4b')];_0xe51b3c[_0xe97c('0x49')]=_0x3e0332[_0xe97c('0x49')];return _0xe51b3c;};exports['agentReadyId']=function(_0x5b83e8){var _0x476756=[];for(var _0x4e709f in _0x5b83e8){if(_0x5b83e8['hasOwnProperty'](_0x4e709f)){if(!_[_0xe97c('0x13')](_0x5b83e8[_0x4e709f])&&_0x5b83e8[_0x4e709f][_0xe97c('0x36')]===_0xe97c('0x60')&&_0x5b83e8[_0x4e709f]['status']===_0xe97c('0x61')){_0x476756['push'](_0x5b83e8[_0x4e709f]['id']);}}}return _0x476756;};exports['getDiff']=function(_0x57d1fb){var _0x4b7b2b=moment()[_0xe97c('0x6')](0x0);var _0xe1d605=moment(_0x57d1fb)[_0xe97c('0x6')](0x0);return _0x4b7b2b[_0xe97c('0x7')](_0xe1d605,_0xe97c('0x62'));};exports[_0xe97c('0x63')]=function(_0x38c4af){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x38c4af['ContactId'],'ListId':_0x38c4af['ListId'],'VoiceQueueId':_0x38c4af[_0xe97c('0x1c')]||undefined,'CampaignId':_0x38c4af[_0xe97c('0x64')]||undefined};};exports['filterKey']=function(_0x24fa64){if(_0x24fa64==='uniqueid'||_0x24fa64===_0xe97c('0x65')||_0x24fa64==='queue'||_0x24fa64===_0xe97c('0x66')||_0x24fa64==='campaigntype'||_0x24fa64===_0xe97c('0x67')||_0x24fa64===_0xe97c('0x3d')||_0x24fa64==='channelAgent'||_0x24fa64===_0xe97c('0x18')||_0x24fa64===_0xe97c('0x55')||_0x24fa64===_0xe97c('0x19')||_0x24fa64===_0xe97c('0x56')||_0x24fa64===_0xe97c('0x68')||_0x24fa64==='countcongestionretry'||_0x24fa64===_0xe97c('0x50')||_0x24fa64===_0xe97c('0x69')||_0x24fa64===_0xe97c('0x6a')||_0x24fa64==='callbackuniqueid'||_0x24fa64===_0xe97c('0x6b')||_0x24fa64===_0xe97c('0x6c')||_0x24fa64==='ContactId'||_0x24fa64===_0xe97c('0x6d')||_0x24fa64===_0xe97c('0x3e')||_0x24fa64===_0xe97c('0x1c')||_0x24fa64==='sipcallid'||_0x24fa64===_0xe97c('0x6e')||_0x24fa64===_0xe97c('0x6f')||_0x24fa64===_0xe97c('0x70')||_0x24fa64===_0xe97c('0x71')||_0x24fa64===_0xe97c('0x72')||_0x24fa64===_0xe97c('0x73')||_0x24fa64===_0xe97c('0x74')||_0x24fa64===_0xe97c('0x75')||_0x24fa64===_0xe97c('0x76')||_0x24fa64===_0xe97c('0x77')||_0x24fa64===_0xe97c('0x78')||_0x24fa64===_0xe97c('0x79')||_0x24fa64==='xmd-agiafter'||_0x24fa64==='xmd-agi'||_0x24fa64==='rtpaudioqos'||_0x24fa64===_0xe97c('0x7a')||_0x24fa64===_0xe97c('0x7b')||_0x24fa64===_0xe97c('0x7c')||_0x24fa64===_0xe97c('0x7d')||_0x24fa64==='rtpaudioqoslossbridged'||_0x24fa64==='rtpaudioqosrtt'||_0x24fa64===_0xe97c('0x7e')||_0x24fa64===_0xe97c('0x7f')||_0x24fa64===_0xe97c('0x7a')||_0x24fa64==='rtpaudioqosjitter'||_0x24fa64==='rtpaudioqosjitterbridged'||_0x24fa64===_0xe97c('0x7d')||_0x24fa64==='rtpaudioqoslossbridged'||_0x24fa64==='rtpaudioqosrtt'||_0x24fa64===_0xe97c('0x7e')||_0x24fa64===_0xe97c('0x80')||_0x24fa64===_0xe97c('0x81')||_0x24fa64===_0xe97c('0x36')||_0x24fa64===_0xe97c('0x37')){return![];}return!![];};exports[_0xe97c('0x82')]=function(_0x1b5f96,_0x125e57){var _0x489285,_0x565216,_0x4a4655;if(_0x125e57<=0x0){_0x125e57=0x1;}_0x489285=new RegExp('\x5cw{0,'+_0x125e57+'}$');_0x565216=Math[_0xe97c('0x83')](0xa,_0x125e57-0x1);_0x4a4655=Math[_0xe97c('0x83')](0xa,_0x125e57)-0x1;return util[_0xe97c('0x11')]('%s',_['replace'](_0x1b5f96,_0x489285,_['random'](_0x565216,_0x4a4655)));};exports[_0xe97c('0x84')]=function(_0x365b4e){var _0x31f2fa=_0x365b4e[_0xe97c('0x85')](/"(.*?)"/);return _0x31f2fa?_0x31f2fa[0x1]:_0x365b4e;};exports['extractCalleridNumber']=function(_0x226b5c){var _0x5b80a3=_0x226b5c['match'](/<(.*?)>/);return _0x5b80a3?_0x5b80a3[0x1]:_0x226b5c;};