Built motion from commit 67e5df37.|2.0.66
[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 _0xf043=['pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','IsNotLoggedIn','lastevent','queue','interface','channelAgent','push','getDiff','createBody','filterKey','idContact','type','campaigntype','dialAnswer','calleridname','countglobal','callback','callbackuniqueid','callbackat','recallme','UserId','xmd-voicequeueid','xmd-queue','xmd-phone','xmd-listid','xmd-dialurl','xmd-dialoptions','xmd-dialid','xmd-contactid','xmd-agiafter','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','rtpaudioqosloss','bridgepvtcallid','getCallerIdRandom','pow','util','lodash','moment','../../../../config/logger','env','127.0.0.1','milliseconds','diff','seconds','loggerCatch','error','inspect','logger','info','loggerError','getCallerId','isUndefined','string','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','isNil','addVariables','Queue','ContactId','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','isEmpty','monitor_format','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','dialQueueProject2','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','Contact','hasOwnProperty','createdAt','updatedAt','%s%s','XMD-','toLowerVariables','updateOriginated','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','statedesc','starttime','responsetime','endtime','logAgent','ringtime','logLookAgent','membername','logCustomer','talktime','answertime','isFailure','Failure','variablesAction','RECALL','BOOKED','originate','calleridnum','xcally-motion-preview','timeout','uniqueid','countbusyretry','countcongestionretry','countnoanswerretry','Global','active','scheduledat','add','minutes','ListId','decrementTalkink'];(function(_0x408ab5,_0x56229c){var _0x45307a=function(_0xb6e6a){while(--_0xb6e6a){_0x408ab5['push'](_0x408ab5['shift']());}};_0x45307a(++_0x56229c);}(_0xf043,0x198));var _0x3f04=function(_0x2ef78f,_0x43b5d3){_0x2ef78f=_0x2ef78f-0x0;var _0x9e68ff=_0xf043[_0x2ef78f];return _0x9e68ff;};'use strict';var util=require(_0x3f04('0x0'));var _=require(_0x3f04('0x1'));var moment=require(_0x3f04('0x2'));var logger=require(_0x3f04('0x3'))('preview');var ipAgi=process[_0x3f04('0x4')]['XCALLY_IP_AGI']||_0x3f04('0x5');function getSeconds(_0x781c0a,_0x41ebca){var _0x14b767=moment(_0x781c0a)[_0x3f04('0x6')](0x0);var _0x7e5e84=moment(_0x41ebca)[_0x3f04('0x6')](0x0);return _0x14b767[_0x3f04('0x7')](_0x7e5e84,_0x3f04('0x8'));}exports[_0x3f04('0x9')]=function(_0x54279a){return function(_0x4d89f9){logger[_0x3f04('0xa')](_0x54279a,util[_0x3f04('0xb')](_0x4d89f9,{'showHidden':![],'depth':null}));};};exports[_0x3f04('0xc')]=function(_0x1d0da3,_0xfa299b){logger[_0x3f04('0xd')](_0x1d0da3,util[_0x3f04('0xb')](_0xfa299b,{'showHidden':![],'depth':null}));};exports[_0x3f04('0xe')]=function(_0xefd9ef,_0x4c7e74){logger['error'](_0xefd9ef,util[_0x3f04('0xb')](_0x4c7e74,{'showHidden':![],'depth':null}));};exports['logger2']=function(_0x5a17e4){return function(_0x2c46cd){logger[_0x3f04('0xd')](_0x5a17e4,util['inspect'](_0x2c46cd,{'showHidden':![],'depth':null}));};};exports['message']=function(_0x64b6a6,_0x351e33,_0x46c31c){return{'message':_0x64b6a6,'unlock':_0x351e33,'active':_0x46c31c};};exports[_0x3f04('0xf')]=function(_0x1cd325,_0x2c1416,_0x34b022){if(!_[_0x3f04('0x10')](_0x34b022)&&_0x3f04('0x11')===typeof _0x34b022){if(!_['isUndefined'](_0x2c1416)&&_0x3f04('0x11')===typeof _0x2c1416){return util[_0x3f04('0x12')](_0x3f04('0x13'),_0x2c1416,_0x34b022);}return util[_0x3f04('0x12')](_0x3f04('0x13'),_0x34b022,_0x34b022);}if(!_[_0x3f04('0x10')](_0x1cd325)&&_0x3f04('0x11')===typeof _0x1cd325){return _0x1cd325;}return _0x3f04('0x14');};exports['isActive']=function(_0x17ee28){if(_[_0x3f04('0x15')](_0x17ee28)){return![];}return _0x17ee28;};exports[_0x3f04('0x16')]=function(_0x4b6b61,_0x1eadd0,_0x33ff20,_0x39b606,_0x589826){var _0x52ac59={'XMD-QUEUE':_0x1eadd0['Queue']?_0x1eadd0[_0x3f04('0x17')]['name']:'','XMD-CALLERID':_0x39b606,'XMD-DIALID':_0x589826,'XMD-CONTACTID':_0x1eadd0[_0x3f04('0x18')],'XMD-CDRTYPE':'dialer','CALLERID(all)':_0x39b606,'XMD-VOICEQUEUEID':_0x1eadd0[_0x3f04('0x19')],'XMD-DIALCHANNEL':_0x33ff20,'XMD-DIALTIMEOUT':_0x4b6b61[_0x3f04('0x1a')]||0x1e,'XMD-DIALOPTIONS':util[_0x3f04('0x12')](_0x3f04('0x1b'),_0x4b6b61['dialQueueProject2']?'g':'',_[_0x3f04('0x1c')](_0x4b6b61[_0x3f04('0x1d')])?'':'U(xcally-mixmonitor-context)'),'XMD-DIALURL':_0x4b6b61['dialPreviewUrl']||'','XMD-AGI':_0x4b6b61[_0x3f04('0x1e')]?util['format'](_0x3f04('0x1f'),ipAgi,_0x4b6b61[_0x3f04('0x1e')]):_0x3f04('0x20'),'XMD-AGIAFTER':_0x4b6b61['dialQueueProject2']?util[_0x3f04('0x12')](_0x3f04('0x1f'),ipAgi,_0x4b6b61[_0x3f04('0x21')]):'NONE'};if(!_[_0x3f04('0x1c')](_0x4b6b61[_0x3f04('0x1d')])){_0x52ac59[util['format']('%s',_0x3f04('0x22'))]=_0x4b6b61[_0x3f04('0x1d')];_0x52ac59[util['format']('%s',_0x3f04('0x23'))]=_0x589826;}if(_0x1eadd0&&_0x1eadd0[_0x3f04('0x24')]){for(var _0x5d36bd in _0x1eadd0[_0x3f04('0x24')]){if(_0x1eadd0['Contact'][_0x3f04('0x25')](_0x5d36bd)){if(!_['isNil'](_0x1eadd0['Contact'][_0x5d36bd])&&_0x5d36bd!=='id'&&_0x5d36bd!=='tags'&&_0x5d36bd!==_0x3f04('0x26')&&_0x5d36bd!==_0x3f04('0x27')){_0x52ac59[util[_0x3f04('0x12')](_0x3f04('0x28'),_0x3f04('0x29'),_['toUpper'](_0x5d36bd))]=_0x1eadd0[_0x3f04('0x24')][_0x5d36bd];}}}}return _0x52ac59;};exports[_0x3f04('0x2a')]=function(_0x5f31af){var _0x5825a2={};for(var _0x40f30e in _0x5f31af){if(_0x5f31af['hasOwnProperty'](_0x40f30e)){_0x5825a2[util[_0x3f04('0x12')]('%s',_['toLower'](_0x40f30e))]=_0x5f31af[_0x40f30e];}}return{'variables':_0x5825a2};};exports[_0x3f04('0x2b')]=function(_0x34328e,_0x56fe50){if(!_['isNil'](_0x34328e)){if(_0x34328e[_0x3f04('0x25')]('originated')){if(_0x34328e[_0x3f04('0x2c')]>0x0){_0x34328e[_0x3f04('0x2c')]-=0x1;}else{logger[_0x3f04('0xa')](_0x3f04('0x2d'),_0x56fe50);}}}else{logger[_0x3f04('0xa')]('[updateOriginated]\x20is\x20null\x20or\x20undefined',_0x56fe50);}};exports[_0x3f04('0x2e')]=function(_0x24f0c6){var _0x5615fd=moment()[_0x3f04('0x12')](_0x3f04('0x2f'));_0x24f0c6[_0x3f04('0x30')]=0xd;_0x24f0c6[_0x3f04('0x31')]='Blacklist';_0x24f0c6[_0x3f04('0x32')]=_0x5615fd;_0x24f0c6[_0x3f04('0x33')]=_0x5615fd;_0x24f0c6[_0x3f04('0x34')]=_0x5615fd;};exports[_0x3f04('0x35')]=function(_0x429549,_0x5711f8,_0x14d244){var _0x241236=moment()['format'](_0x3f04('0x2f'));_0x429549['state']=_0x5711f8;_0x429549[_0x3f04('0x31')]=_0x14d244;_0x429549['responsetime']=_0x241236;_0x429549[_0x3f04('0x36')]=getSeconds(_0x429549[_0x3f04('0x33')],_0x429549[_0x3f04('0x32')]);};exports[_0x3f04('0x37')]=function(_0x2e96f9,_0x3d6993,_0x11f1ac){_0x2e96f9[_0x3f04('0x38')]=_0x3d6993;_0x2e96f9['UserId']=_0x11f1ac;};exports[_0x3f04('0x39')]=function(_0x2a9e3a,_0x46ea4c,_0xab74f4){var _0x53c6d1=moment()[_0x3f04('0x12')]('YYYY-MM-DD\x20HH:mm:ss');_0x2a9e3a[_0x3f04('0x30')]=_0x46ea4c;_0x2a9e3a[_0x3f04('0x31')]=_0xab74f4;_0x2a9e3a[_0x3f04('0x33')]=_0x2a9e3a['responsetime']?_0x2a9e3a['responsetime']:_0x53c6d1;_0x2a9e3a['endtime']=_0x2a9e3a[_0x3f04('0x34')]?_0x2a9e3a[_0x3f04('0x34')]:_0x53c6d1;_0x2a9e3a[_0x3f04('0x36')]=getSeconds(_0x2a9e3a['responsetime']||0x0,_0x2a9e3a['starttime']||0x0);_0x2a9e3a[_0x3f04('0x3a')]=_0x2a9e3a[_0x3f04('0x3b')]?getSeconds(_0x2a9e3a[_0x3f04('0x34')],_0x2a9e3a[_0x3f04('0x3b')]):0x0;};exports[_0x3f04('0x3c')]=function(_0x52c327){return _0x52c327===_0x3f04('0x3d');};exports[_0x3f04('0x3e')]=function(_0x5e2eb2,_0x4b322b,_0x114fa4,_0x13fa37,_0x3eff93){var _0x390b69=_0x13fa37?_0x3f04('0x3f'):_0x5e2eb2['calleridname'];_0x390b69=_0x3eff93?_0x3f04('0x40'):_0x390b69;return{'actionid':_0x5e2eb2['uniqueid'],'action':_0x3f04('0x41'),'channel':_0x5e2eb2['channelAgent'],'callerid':util[_0x3f04('0x12')]('\x22%s\x22\x20<%s>',_0x390b69,_0x5e2eb2[_0x3f04('0x42')]),'Exten':_0x3f04('0x43'),'Context':'from-sip','Priority':'1','variable':_0x114fa4,'timeout':(_0x4b322b[_0x3f04('0x44')]||0x1e)*0x3e8,'async':!![],'channelid':_0x5e2eb2[_0x3f04('0x45')]};};exports['totalGlobal']=function(_0x19db2b){return _0x19db2b[_0x3f04('0x46')]+_0x19db2b[_0x3f04('0x47')]+_0x19db2b[_0x3f04('0x48')];};exports['cloneAction']=function(_0x47a344){var _0x218cd1=_['clone'](_0x47a344);_0x218cd1[_0x3f04('0x30')]=0xf;_0x218cd1['statedesc']=_0x3f04('0x49');return _0x218cd1;};exports['scheduledAt']=function(_0x2cfa3f,_0x5a485e,_0x4b64f6){var _0x469c3c={};_0x469c3c[_0x5a485e]=_0x2cfa3f[_0x5a485e];_0x469c3c[_0x3f04('0x4a')]=![];_0x469c3c[_0x3f04('0x4b')]=moment()[_0x3f04('0x4c')](_0x4b64f6,_0x3f04('0x4d'))['format'](_0x3f04('0x2f'));_0x469c3c[_0x3f04('0x18')]=_0x2cfa3f['ContactId'];_0x469c3c[_0x3f04('0x4e')]=_0x2cfa3f['ListId'];_0x469c3c['VoiceQueueId']=_0x2cfa3f[_0x3f04('0x19')]||undefined;return _0x469c3c;};exports[_0x3f04('0x4f')]=function(_0x4322ad,_0x10e0a2){if(!_[_0x3f04('0x15')](_0x4322ad)){if(_0x4322ad['pTalking']>0x0){_0x4322ad[_0x3f04('0x50')]-=0x1;}else{logger[_0x3f04('0xa')](_0x10e0a2,_0x3f04('0x51'));}}else{logger[_0x3f04('0xa')](_0x10e0a2,'[decrementTalkink]\x20is\x20null\x20or\x20undefined');}};exports[_0x3f04('0x52')]=function(_0xab0e50){if(_0xab0e50<=0x0){return!![];}return![];};exports['buildObj']=function(_0x483aca,_0x5d72ee){_0x483aca[_0x3f04('0x53')]=_0x5d72ee;_0x483aca['name']=_0x483aca[_0x3f04('0x54')];_0x483aca[_0x3f04('0x55')]=_0x483aca[_0x3f04('0x56')];return _0x483aca;};exports['buildAcw']=function(_0x483934){var _0x43fb57={};_0x43fb57[_0x3f04('0x54')]=_0x483934['queue'];_0x43fb57[_0x3f04('0x55')]=_0x483934[_0x3f04('0x56')];_0x43fb57[_0x3f04('0x45')]=_0x483934[_0x3f04('0x45')];return _0x43fb57;};exports['agentReadyId']=function(_0x32cd25){var _0x484d86=[];for(var _0x4c5721 in _0x32cd25){if(_0x32cd25[_0x3f04('0x25')](_0x4c5721)){if(!_[_0x3f04('0x15')](_0x32cd25[_0x4c5721])&&_0x32cd25[_0x4c5721][_0x3f04('0x30')]==='not_inuse'&&_0x32cd25[_0x4c5721]['status']==='reachable'){_0x484d86[_0x3f04('0x57')](_0x32cd25[_0x4c5721]['id']);}}}return _0x484d86;};exports[_0x3f04('0x58')]=function(_0x231588){var _0x64d66d=moment()[_0x3f04('0x6')](0x0);var _0x1c1190=moment(_0x231588)[_0x3f04('0x6')](0x0);return _0x64d66d[_0x3f04('0x7')](_0x1c1190,_0x3f04('0x8'));};exports[_0x3f04('0x59')]=function(_0x2f8686){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x2f8686[_0x3f04('0x18')],'ListId':_0x2f8686[_0x3f04('0x4e')],'VoiceQueueId':_0x2f8686[_0x3f04('0x19')]||undefined,'CampaignId':_0x2f8686['CampaignId']||undefined};};exports[_0x3f04('0x5a')]=function(_0x297217){if(_0x297217===_0x3f04('0x45')||_0x297217===_0x3f04('0x5b')||_0x297217===_0x3f04('0x54')||_0x297217===_0x3f04('0x5c')||_0x297217===_0x3f04('0x5d')||_0x297217===_0x3f04('0x5e')||_0x297217==='membername'||_0x297217==='channelAgent'||_0x297217===_0x3f04('0x5f')||_0x297217===_0x3f04('0x4a')||_0x297217==='calleridnum'||_0x297217==='scheduledat'||_0x297217===_0x3f04('0x46')||_0x297217==='countcongestionretry'||_0x297217==='countnoanswerretry'||_0x297217===_0x3f04('0x60')||_0x297217===_0x3f04('0x61')||_0x297217===_0x3f04('0x62')||_0x297217===_0x3f04('0x63')||_0x297217===_0x3f04('0x64')||_0x297217==='ContactId'||_0x297217===_0x3f04('0x4e')||_0x297217===_0x3f04('0x65')||_0x297217===_0x3f04('0x19')||_0x297217==='sipcallid'||_0x297217===_0x3f04('0x66')||_0x297217===_0x3f04('0x67')||_0x297217===_0x3f04('0x68')||_0x297217===_0x3f04('0x69')||_0x297217===_0x3f04('0x6a')||_0x297217==='xmd-dialtimeout'||_0x297217===_0x3f04('0x6b')||_0x297217===_0x3f04('0x6c')||_0x297217==='xmd-dialchannel'||_0x297217===_0x3f04('0x6d')||_0x297217==='xmd-cdrtype'||_0x297217==='xmd-callerid'||_0x297217===_0x3f04('0x6e')||_0x297217==='xmd-agi'||_0x297217===_0x3f04('0x6f')||_0x297217===_0x3f04('0x70')||_0x297217===_0x3f04('0x71')||_0x297217===_0x3f04('0x72')||_0x297217==='rtpaudioqosloss'||_0x297217===_0x3f04('0x73')||_0x297217===_0x3f04('0x74')||_0x297217===_0x3f04('0x75')||_0x297217===_0x3f04('0x6f')||_0x297217===_0x3f04('0x70')||_0x297217==='rtpaudioqosjitter'||_0x297217===_0x3f04('0x72')||_0x297217===_0x3f04('0x76')||_0x297217==='rtpaudioqoslossbridged'||_0x297217===_0x3f04('0x74')||_0x297217===_0x3f04('0x75')||_0x297217==='bridgepeer'||_0x297217===_0x3f04('0x77')||_0x297217===_0x3f04('0x30')||_0x297217==='statedesc'){return![];}return!![];};exports[_0x3f04('0x78')]=function(_0x2ee197,_0x3948ae){var _0x185b87,_0xca9e17,_0x242e1d;if(_0x3948ae<=0x0){_0x3948ae=0x1;}_0x185b87=new RegExp('\x5cw{0,'+_0x3948ae+'}$');_0xca9e17=Math['pow'](0xa,_0x3948ae-0x1);_0x242e1d=Math[_0x3f04('0x79')](0xa,_0x3948ae)-0x1;return util[_0x3f04('0x12')]('%s',_['replace'](_0x2ee197,_0x185b87,_['random'](_0xca9e17,_0x242e1d)));};