22e922184606b6d6be9d3599f3cd7e484ff75d98
[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 _0xbc13=['message','getCallerId','isUndefined','string','isEmpty','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','isActive','isNil','addVariables','Queue','name','calleridname','calleridnum','ContactId','dialer','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','NONE','\x22agi://%s/square,%s\x22','originatecalleridnum','originatecalleridname','xcally-motion-preview','monitor_format','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','toLowerVariables','hasOwnProperty','toLower','updateOriginated','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','Blacklist','responsetime','endtime','logAgent','statedesc','starttime','logLookAgent','membername','UserId','logCustomer','ringtime','getSeconds','talktime','answertime','isFailure','Failure','variablesAction','RECALL','BOOKED','uniqueid','from-sip','timeout','totalGlobal','countcongestionretry','countnoanswerretry','countagentrejectretry','countnosuchnumberretry','cloneAction','clone','scheduledAt','active','scheduledat','add','minutes','ListId','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','lastevent','queue','interface','motionChannel','voice','mandatoryDisposition','not_inuse','status','reachable','push','getDiff','milliseconds','createBody','filterKey','idContact','type','campaigntype','dialAnswer','channelAgent','countglobal','callbackuniqueid','recallme','sipcallid','xmd-queue','xmd-phone','xmd-listid','xmd-dialtimeout','xmd-dialoptions','xmd-dialid','xmd-dialchannel','xmd-callerid','xmd-agi','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','\x5cw{0,','pow','random','match','extractCalleridNumber','noanswer','keys','variables','toLowerCase','util','lodash','preview','env','XCALLY_IP_AGI','../../dialer/utils','loggerCatch','error','inspect','logger','info','logger2'];(function(_0x3e402f,_0x78f6b4){var _0x4c5607=function(_0xa944e2){while(--_0xa944e2){_0x3e402f['push'](_0x3e402f['shift']());}};_0x4c5607(++_0x78f6b4);}(_0xbc13,0x10e));var _0x3bc1=function(_0x4a7843,_0x24f6d1){_0x4a7843=_0x4a7843-0x0;var _0x2c57fe=_0xbc13[_0x4a7843];return _0x2c57fe;};'use strict';var util=require(_0x3bc1('0x0'));var _=require(_0x3bc1('0x1'));var moment=require('moment');var logger=require('../../../../config/logger')(_0x3bc1('0x2'));var ipAgi=process[_0x3bc1('0x3')][_0x3bc1('0x4')]||'127.0.0.1';var utils=require(_0x3bc1('0x5'));exports[_0x3bc1('0x6')]=function(_0x1c2efb){return function(_0x1fa67a){logger[_0x3bc1('0x7')](_0x1c2efb,util[_0x3bc1('0x8')](_0x1fa67a,{'showHidden':![],'depth':null}));};};exports[_0x3bc1('0x9')]=function(_0x42c747,_0x2db0da){logger[_0x3bc1('0xa')](_0x42c747,util[_0x3bc1('0x8')](_0x2db0da,{'showHidden':![],'depth':null}));};exports['loggerError']=function(_0x580071,_0x5ea4c7){logger[_0x3bc1('0x7')](_0x580071,util['inspect'](_0x5ea4c7,{'showHidden':![],'depth':null}));};exports[_0x3bc1('0xb')]=function(_0xf19ec1){return function(_0x5b27c3){logger[_0x3bc1('0xa')](_0xf19ec1,util['inspect'](_0x5b27c3,{'showHidden':![],'depth':null}));};};exports[_0x3bc1('0xc')]=function(_0x148089,_0x4b97df,_0x438956){return{'message':_0x148089,'unlock':_0x4b97df,'active':_0x438956};};exports[_0x3bc1('0xd')]=function(_0x5b8644,_0x588986,_0xa99cc){if(!_[_0x3bc1('0xe')](_0xa99cc)&&_0x3bc1('0xf')===typeof _0xa99cc&&!_[_0x3bc1('0x10')](_0xa99cc)){if(!_[_0x3bc1('0xe')](_0x588986)&&'string'===typeof _0x588986&&!_[_0x3bc1('0x10')](_0x588986)){return util[_0x3bc1('0x11')]('\x22%s\x22\x20<%s>',_0x588986,_0xa99cc);}return util[_0x3bc1('0x11')](_0x3bc1('0x12'),_0xa99cc,_0xa99cc);}if(!_[_0x3bc1('0xe')](_0x5b8644)&&_0x3bc1('0xf')===typeof _0x5b8644&&!_['isEmpty'](_0x5b8644)){return _0x5b8644;}return _0x3bc1('0x13');};exports[_0x3bc1('0x14')]=function(_0x3fc970){if(_[_0x3bc1('0x15')](_0x3fc970)){return![];}return _0x3fc970;};exports[_0x3bc1('0x16')]=function(_0x3fe35b,_0x5330b6,_0x5a8419,_0x51aad3,_0xa704d4,_0x2b2b67){var _0x2b4bfa={'XMD-QUEUE':_0x5330b6[_0x3bc1('0x17')]?_0x5330b6[_0x3bc1('0x17')][_0x3bc1('0x18')]:'','XMD-CALLERID':_0x51aad3,'XMD-CALLERID-PREVIEW':_0x2b2b67?util[_0x3bc1('0x11')]('\x22%s\x22\x20<%s>',_0x2b2b67[_0x3bc1('0x19')],_0x2b2b67[_0x3bc1('0x1a')]):_0x51aad3,'XMD-DIALID':_0xa704d4,'XMD-CONTACTID':_0x5330b6[_0x3bc1('0x1b')],'XMD-CDRTYPE':_0x3bc1('0x1c'),'CALLERID(all)':_0x51aad3,'XMD-VOICEQUEUEID':_0x5330b6[_0x3bc1('0x1d')],'XMD-DIALCHANNEL':_0x5a8419,'XMD-DIALTIMEOUT':_0x3fe35b[_0x3bc1('0x1e')]||0x1e,'XMD-DIALOPTIONS':util[_0x3bc1('0x11')](_0x3bc1('0x1f'),_0x3fe35b[_0x3bc1('0x20')]?'g':'',_[_0x3bc1('0x10')](_0x3fe35b['monitor_format'])?'':_0x3bc1('0x21')),'XMD-DIALURL':_0x3fe35b[_0x3bc1('0x22')]||'','XMD-AGI':_0x3fe35b[_0x3bc1('0x23')]?util[_0x3bc1('0x11')]('\x22agi://%s/square,%s\x22',ipAgi,_0x3fe35b[_0x3bc1('0x23')]):_0x3bc1('0x24'),'XMD-AGIAFTER':_0x3fe35b[_0x3bc1('0x20')]?util['format'](_0x3bc1('0x25'),ipAgi,_0x3fe35b[_0x3bc1('0x20')]):_0x3bc1('0x24'),'XMD-ORIGINATECALLERIDNUM':_0x2b2b67?_0x2b2b67[_0x3bc1('0x26')]:'','XMD-ORIGINATECALLERIDNAME':_0x2b2b67?_0x2b2b67[_0x3bc1('0x27')]:'','XMD-DESTINATION':_0x3bc1('0x28'),'SIPADDHEADER':'Call-Type:\x20PREVIEW'};if(!_[_0x3bc1('0x10')](_0x3fe35b[_0x3bc1('0x29')])){_0x2b4bfa[util['format']('%s',_0x3bc1('0x2a'))]=_0x3fe35b['monitor_format'];_0x2b4bfa[util['format']('%s',_0x3bc1('0x2b'))]=_0xa704d4;}return _0x2b4bfa;};exports[_0x3bc1('0x2c')]=function(_0x5a7e32){var _0x45b2bf={};for(var _0x1933e8 in _0x5a7e32){if(_0x5a7e32[_0x3bc1('0x2d')](_0x1933e8)){_0x45b2bf[util[_0x3bc1('0x11')]('%s',_[_0x3bc1('0x2e')](_0x1933e8))]=_0x5a7e32[_0x1933e8];}}return{'variables':_0x45b2bf};};exports[_0x3bc1('0x2f')]=function(_0x3603bf,_0xa322d3){if(!_[_0x3bc1('0x15')](_0x3603bf)){if(_0x3603bf[_0x3bc1('0x2d')](_0x3bc1('0x30'))){if(_0x3603bf[_0x3bc1('0x30')]>0x0){_0x3603bf[_0x3bc1('0x30')]-=0x1;}else{logger[_0x3bc1('0x7')](_0x3bc1('0x31'),_0xa322d3);}}}else{logger[_0x3bc1('0x7')](_0x3bc1('0x32'),_0xa322d3);}};exports[_0x3bc1('0x33')]=function(_0x1d6adb){var _0x3d7b66=moment()[_0x3bc1('0x11')](_0x3bc1('0x34'));_0x1d6adb[_0x3bc1('0x35')]=0xd;_0x1d6adb['statedesc']=_0x3bc1('0x36');_0x1d6adb['starttime']=_0x3d7b66;_0x1d6adb[_0x3bc1('0x37')]=_0x3d7b66;_0x1d6adb[_0x3bc1('0x38')]=_0x3d7b66;};exports[_0x3bc1('0x39')]=function(_0x8ddb,_0x58d23b,_0x3111f6){var _0x5a5701=moment()[_0x3bc1('0x11')]('YYYY-MM-DD\x20HH:mm:ss');_0x8ddb['state']=_0x58d23b;_0x8ddb[_0x3bc1('0x3a')]=_0x3111f6;_0x8ddb['responsetime']=_0x5a5701;_0x8ddb['ringtime']=utils['getSeconds'](_0x8ddb[_0x3bc1('0x37')],_0x8ddb[_0x3bc1('0x3b')]);};exports[_0x3bc1('0x3c')]=function(_0x20e9a8,_0x369caf,_0xdef3e8){_0x20e9a8[_0x3bc1('0x3d')]=_0x369caf;_0x20e9a8[_0x3bc1('0x3e')]=_0xdef3e8;};exports[_0x3bc1('0x3f')]=function(_0x1b9dc6,_0x381399,_0x219072){var _0x2336aa=moment()[_0x3bc1('0x11')]('YYYY-MM-DD\x20HH:mm:ss');_0x1b9dc6['state']=_0x381399;_0x1b9dc6['statedesc']=_0x219072;_0x1b9dc6['responsetime']=_0x1b9dc6[_0x3bc1('0x37')]?_0x1b9dc6[_0x3bc1('0x37')]:_0x2336aa;_0x1b9dc6['endtime']=_0x1b9dc6[_0x3bc1('0x38')]?_0x1b9dc6[_0x3bc1('0x38')]:_0x2336aa;_0x1b9dc6[_0x3bc1('0x40')]=utils[_0x3bc1('0x41')](_0x1b9dc6[_0x3bc1('0x37')]||0x0,_0x1b9dc6[_0x3bc1('0x3b')]||0x0);_0x1b9dc6[_0x3bc1('0x42')]=_0x1b9dc6[_0x3bc1('0x43')]?utils[_0x3bc1('0x41')](_0x1b9dc6['endtime'],_0x1b9dc6[_0x3bc1('0x43')]):0x0;};exports[_0x3bc1('0x44')]=function(_0x473e60){return _0x473e60===_0x3bc1('0x45');};exports[_0x3bc1('0x46')]=function(_0x489a79,_0x3eb73d,_0x211b72,_0x2a2176,_0x25c5ca){var _0x4aa579=_0x2a2176?_0x3bc1('0x47'):_0x489a79[_0x3bc1('0x19')];_0x4aa579=_0x25c5ca?_0x3bc1('0x48'):_0x4aa579;return{'actionid':_0x489a79[_0x3bc1('0x49')],'action':'originate','channel':_0x489a79['channelAgent'],'callerid':util['format'](_0x3bc1('0x12'),_0x4aa579,_0x489a79[_0x3bc1('0x1a')]),'Exten':_0x3bc1('0x28'),'Context':_0x3bc1('0x4a'),'Priority':'1','variable':_0x211b72,'timeout':(_0x3eb73d[_0x3bc1('0x4b')]||0x1e)*0x3e8,'async':!![],'channelid':_0x489a79[_0x3bc1('0x49')]};};exports[_0x3bc1('0x4c')]=function(_0x4e584d){return _0x4e584d['countbusyretry']+_0x4e584d[_0x3bc1('0x4d')]+_0x4e584d[_0x3bc1('0x4e')]+_0x4e584d[_0x3bc1('0x4f')]+_0x4e584d[_0x3bc1('0x50')];};exports[_0x3bc1('0x51')]=function(_0x2f997f){var _0x1de12b=_[_0x3bc1('0x52')](_0x2f997f);_0x1de12b[_0x3bc1('0x35')]=0xf;_0x1de12b[_0x3bc1('0x3a')]='Global';return _0x1de12b;};exports[_0x3bc1('0x53')]=function(_0x14f8fb,_0x31947e,_0x46cd30){var _0x5294a8={};_0x5294a8[_0x31947e]=_0x14f8fb[_0x31947e];_0x5294a8[_0x3bc1('0x54')]=![];_0x5294a8[_0x3bc1('0x55')]=moment()[_0x3bc1('0x56')](_0x46cd30,_0x3bc1('0x57'))[_0x3bc1('0x11')](_0x3bc1('0x34'));_0x5294a8['ContactId']=_0x14f8fb[_0x3bc1('0x1b')];_0x5294a8[_0x3bc1('0x58')]=_0x14f8fb['ListId'];_0x5294a8[_0x3bc1('0x1d')]=_0x14f8fb['VoiceQueueId']||undefined;return _0x5294a8;};exports[_0x3bc1('0x59')]=function(_0x201f61,_0x5db5d1){if(!_[_0x3bc1('0x15')](_0x201f61)){if(_0x201f61[_0x3bc1('0x5a')]>0x0){_0x201f61['pTalking']-=0x1;}else{logger['error'](_0x5db5d1,_0x3bc1('0x5b'));}}else{logger[_0x3bc1('0x7')](_0x5db5d1,_0x3bc1('0x5c'));}};exports['IsNotLoggedIn']=function(_0x1a7b7e){if(_0x1a7b7e<=0x0){return!![];}return![];};function buildObj(_0x13ce7e,_0x572d7c,_0x12a6b9){_0x13ce7e[_0x3bc1('0x5d')]=_0x572d7c;_0x13ce7e[_0x3bc1('0x18')]=_0x13ce7e[_0x3bc1('0x5e')];_0x13ce7e[_0x3bc1('0x5f')]=_0x13ce7e['channelAgent'];_0x13ce7e[_0x3bc1('0x60')]=_0x3bc1('0x61');if(_0x12a6b9){_0x13ce7e[_0x3bc1('0x62')]=_0x12a6b9[_0x3bc1('0x62')];}return _0x13ce7e;}exports['buildObj']=buildObj;exports['agentReadyId']=function(_0x578477){var _0x1cd8b9=[];for(var _0x1b2a1e in _0x578477){if(_0x578477[_0x3bc1('0x2d')](_0x1b2a1e)){if(!_[_0x3bc1('0x15')](_0x578477[_0x1b2a1e])&&_0x578477[_0x1b2a1e][_0x3bc1('0x35')]===_0x3bc1('0x63')&&_0x578477[_0x1b2a1e][_0x3bc1('0x64')]===_0x3bc1('0x65')){_0x1cd8b9[_0x3bc1('0x66')](_0x578477[_0x1b2a1e]['id']);}}}return _0x1cd8b9;};exports[_0x3bc1('0x67')]=function(_0x1f3f57){var _0xaec9f9=moment()[_0x3bc1('0x68')](0x0);var _0x40c646=moment(_0x1f3f57)[_0x3bc1('0x68')](0x0);return _0xaec9f9['diff'](_0x40c646,'seconds');};exports[_0x3bc1('0x69')]=function(_0x5e531b){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x5e531b[_0x3bc1('0x1b')],'ListId':_0x5e531b[_0x3bc1('0x58')],'VoiceQueueId':_0x5e531b[_0x3bc1('0x1d')]||undefined,'CampaignId':_0x5e531b['CampaignId']||undefined};};exports[_0x3bc1('0x6a')]=function(_0x36956b){if(_0x36956b===_0x3bc1('0x49')||_0x36956b===_0x3bc1('0x6b')||_0x36956b===_0x3bc1('0x5e')||_0x36956b===_0x3bc1('0x6c')||_0x36956b===_0x3bc1('0x6d')||_0x36956b===_0x3bc1('0x6e')||_0x36956b===_0x3bc1('0x3d')||_0x36956b===_0x3bc1('0x6f')||_0x36956b===_0x3bc1('0x19')||_0x36956b==='active'||_0x36956b===_0x3bc1('0x1a')||_0x36956b==='scheduledat'||_0x36956b==='countbusyretry'||_0x36956b===_0x3bc1('0x4d')||_0x36956b===_0x3bc1('0x4e')||_0x36956b===_0x3bc1('0x70')||_0x36956b==='callback'||_0x36956b===_0x3bc1('0x71')||_0x36956b==='callbackat'||_0x36956b===_0x3bc1('0x72')||_0x36956b===_0x3bc1('0x1b')||_0x36956b===_0x3bc1('0x58')||_0x36956b==='UserId'||_0x36956b===_0x3bc1('0x1d')||_0x36956b===_0x3bc1('0x73')||_0x36956b==='xmd-voicequeueid'||_0x36956b===_0x3bc1('0x74')||_0x36956b===_0x3bc1('0x75')||_0x36956b===_0x3bc1('0x76')||_0x36956b==='xmd-dialurl'||_0x36956b===_0x3bc1('0x77')||_0x36956b===_0x3bc1('0x78')||_0x36956b===_0x3bc1('0x79')||_0x36956b===_0x3bc1('0x7a')||_0x36956b==='xmd-contactid'||_0x36956b==='xmd-cdrtype'||_0x36956b===_0x3bc1('0x7b')||_0x36956b==='xmd-agiafter'||_0x36956b===_0x3bc1('0x7c')||_0x36956b===_0x3bc1('0x7d')||_0x36956b===_0x3bc1('0x7e')||_0x36956b==='rtpaudioqosjitter'||_0x36956b===_0x3bc1('0x7f')||_0x36956b===_0x3bc1('0x80')||_0x36956b===_0x3bc1('0x81')||_0x36956b===_0x3bc1('0x82')||_0x36956b===_0x3bc1('0x83')||_0x36956b===_0x3bc1('0x7d')||_0x36956b===_0x3bc1('0x7e')||_0x36956b==='rtpaudioqosjitter'||_0x36956b===_0x3bc1('0x7f')||_0x36956b===_0x3bc1('0x80')||_0x36956b==='rtpaudioqoslossbridged'||_0x36956b===_0x3bc1('0x82')||_0x36956b==='rtpaudioqosrttbridged'||_0x36956b==='bridgepeer'||_0x36956b==='bridgepvtcallid'||_0x36956b===_0x3bc1('0x35')||_0x36956b==='statedesc'){return![];}return!![];};exports['getCallerIdRandom']=function(_0x1dd6a8,_0x345063){var _0x150650,_0x94f9d3,_0x5dae9b;if(_0x345063<=0x0){_0x345063=0x1;}_0x150650=new RegExp(_0x3bc1('0x84')+_0x345063+'}$');_0x94f9d3=Math[_0x3bc1('0x85')](0xa,_0x345063-0x1);_0x5dae9b=Math[_0x3bc1('0x85')](0xa,_0x345063)-0x1;return util['format']('%s',_['replace'](_0x1dd6a8,_0x150650,_[_0x3bc1('0x86')](_0x94f9d3,_0x5dae9b)));};exports['extractCalleridName']=function(_0x54753c){var _0x1ba479=_0x54753c[_0x3bc1('0x87')](/"(.*?)"/);return _0x1ba479?_0x1ba479[0x1]:_0x54753c;};exports[_0x3bc1('0x88')]=function(_0x2f1f6d){var _0x407cd9=_0x2f1f6d[_0x3bc1('0x87')](/<(.*?)>/);return _0x407cd9?_0x407cd9[0x1]:_0x2f1f6d;};function buildNoAnswerEventPayload(_0x2bbf35,_0x1a2783){var _0x11bac2=buildObj(_0x2bbf35,_0x3bc1('0x89'));if(!_['isEmpty'](_0x1a2783['variables'])){Object[_0x3bc1('0x8a')](_0x1a2783[_0x3bc1('0x8b')])['forEach'](function(_0x567edc){_0x11bac2[_0x567edc[_0x3bc1('0x8c')]()]=_0x1a2783[_0x3bc1('0x8b')][_0x567edc];});}return _0x11bac2;}exports['buildNoAnswerEventPayload']=buildNoAnswerEventPayload;