11bc74c8797aac48be0c3a6be6bae1d4f8ebdb65
[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 _0xcc30=['totalGlobal','countbusyretry','countcongestionretry','countnoanswerretry','countagentrejectretry','countnosuchnumberretry','cloneAction','clone','Global','active','scheduledat','add','ListId','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','lastevent','name','interface','mandatoryDisposition','buildObj','queue','agentReadyId','not_inuse','reachable','push','getDiff','milliseconds','diff','seconds','createBody','CampaignId','filterKey','type','dialAnswer','countglobal','callback','callbackuniqueid','recallme','sipcallid','xmd-voicequeueid','xmd-queue','xmd-dialtimeout','xmd-dialoptions','xmd-dialid','xmd-dialchannel','xmd-cdrtype','xmd-agiafter','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','rtpaudioqosloss','bridgepeer','getCallerIdRandom','\x5cw{0,','pow','extractCalleridName','match','extractCalleridNumber','noanswer','variables','keys','forEach','util','lodash','moment','../../../../config/logger','preview','env','XCALLY_IP_AGI','127.0.0.1','../../dialer/utils','loggerCatch','logger','info','inspect','error','message','getCallerId','isUndefined','string','isEmpty','\x22%s\x22\x20<%s>','format','isActive','isNil','Queue','ContactId','dialer','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','monitor_format','U(xcally-mixmonitor-context)','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','originatecalleridnum','xcally-motion-preview','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','toLowerVariables','hasOwnProperty','toLower','originated','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','statedesc','Blacklist','starttime','responsetime','logAgent','getSeconds','logLookAgent','membername','UserId','logCustomer','endtime','ringtime','answertime','Failure','variablesAction','calleridname','uniqueid','originate','channelAgent','calleridnum','from-sip','timeout'];(function(_0x44bd3a,_0x2d3b79){var _0x1ed9d6=function(_0x159880){while(--_0x159880){_0x44bd3a['push'](_0x44bd3a['shift']());}};_0x1ed9d6(++_0x2d3b79);}(_0xcc30,0xcd));var _0x0cc3=function(_0x2cc711,_0x300328){_0x2cc711=_0x2cc711-0x0;var _0x31a52e=_0xcc30[_0x2cc711];return _0x31a52e;};'use strict';var util=require(_0x0cc3('0x0'));var _=require(_0x0cc3('0x1'));var moment=require(_0x0cc3('0x2'));var logger=require(_0x0cc3('0x3'))(_0x0cc3('0x4'));var ipAgi=process[_0x0cc3('0x5')][_0x0cc3('0x6')]||_0x0cc3('0x7');var utils=require(_0x0cc3('0x8'));exports[_0x0cc3('0x9')]=function(_0x34a579){return function(_0x58af23){logger['error'](_0x34a579,util['inspect'](_0x58af23,{'showHidden':![],'depth':null}));};};exports[_0x0cc3('0xa')]=function(_0x225cab,_0x3015de){logger[_0x0cc3('0xb')](_0x225cab,util[_0x0cc3('0xc')](_0x3015de,{'showHidden':![],'depth':null}));};exports['loggerError']=function(_0x377f32,_0x5958aa){logger[_0x0cc3('0xd')](_0x377f32,util[_0x0cc3('0xc')](_0x5958aa,{'showHidden':![],'depth':null}));};exports['logger2']=function(_0x4519fb){return function(_0x398fba){logger['info'](_0x4519fb,util['inspect'](_0x398fba,{'showHidden':![],'depth':null}));};};exports[_0x0cc3('0xe')]=function(_0x19a0cc,_0x9cc817,_0x496174){return{'message':_0x19a0cc,'unlock':_0x9cc817,'active':_0x496174};};exports[_0x0cc3('0xf')]=function(_0x13f0d8,_0xee3ed2,_0x3fd5c6){if(!_[_0x0cc3('0x10')](_0x3fd5c6)&&_0x0cc3('0x11')===typeof _0x3fd5c6&&!_[_0x0cc3('0x12')](_0x3fd5c6)){if(!_[_0x0cc3('0x10')](_0xee3ed2)&&_0x0cc3('0x11')===typeof _0xee3ed2&&!_['isEmpty'](_0xee3ed2)){return util['format'](_0x0cc3('0x13'),_0xee3ed2,_0x3fd5c6);}return util[_0x0cc3('0x14')]('\x22%s\x22\x20<%s>',_0x3fd5c6,_0x3fd5c6);}if(!_[_0x0cc3('0x10')](_0x13f0d8)&&'string'===typeof _0x13f0d8&&!_['isEmpty'](_0x13f0d8)){return _0x13f0d8;}return'\x22\x22\x20<>';};exports[_0x0cc3('0x15')]=function(_0x5c1898){if(_[_0x0cc3('0x16')](_0x5c1898)){return![];}return _0x5c1898;};exports['addVariables']=function(_0x14a8d9,_0x3d004c,_0x17df4a,_0x54ca94,_0x1581fd,_0x526111){var _0x3acefb={'XMD-QUEUE':_0x3d004c[_0x0cc3('0x17')]?_0x3d004c['Queue']['name']:'','XMD-CALLERID':_0x54ca94,'XMD-CALLERID-PREVIEW':_0x526111?util[_0x0cc3('0x14')](_0x0cc3('0x13'),_0x526111['calleridname'],_0x526111['calleridnum']):_0x54ca94,'XMD-DIALID':_0x1581fd,'XMD-CONTACTID':_0x3d004c[_0x0cc3('0x18')],'XMD-CDRTYPE':_0x0cc3('0x19'),'CALLERID(all)':_0x54ca94,'XMD-VOICEQUEUEID':_0x3d004c[_0x0cc3('0x1a')],'XMD-DIALCHANNEL':_0x17df4a,'XMD-DIALTIMEOUT':_0x14a8d9[_0x0cc3('0x1b')]||0x1e,'XMD-DIALOPTIONS':util[_0x0cc3('0x14')](_0x0cc3('0x1c'),_0x14a8d9[_0x0cc3('0x1d')]?'g':'',_[_0x0cc3('0x12')](_0x14a8d9[_0x0cc3('0x1e')])?'':_0x0cc3('0x1f')),'XMD-DIALURL':_0x14a8d9['dialPreviewUrl']||'','XMD-AGI':_0x14a8d9[_0x0cc3('0x20')]?util[_0x0cc3('0x14')](_0x0cc3('0x21'),ipAgi,_0x14a8d9[_0x0cc3('0x20')]):_0x0cc3('0x22'),'XMD-AGIAFTER':_0x14a8d9[_0x0cc3('0x1d')]?util['format']('\x22agi://%s/square,%s\x22',ipAgi,_0x14a8d9['dialQueueProject2']):_0x0cc3('0x22'),'XMD-ORIGINATECALLERIDNUM':_0x526111?_0x526111[_0x0cc3('0x23')]:'','XMD-ORIGINATECALLERIDNAME':_0x526111?_0x526111['originatecalleridname']:'','XMD-DESTINATION':_0x0cc3('0x24'),'SIPADDHEADER':'Call-Type:\x20PREVIEW'};if(!_[_0x0cc3('0x12')](_0x14a8d9['monitor_format'])){_0x3acefb[util[_0x0cc3('0x14')]('%s',_0x0cc3('0x25'))]=_0x14a8d9[_0x0cc3('0x1e')];_0x3acefb[util['format']('%s',_0x0cc3('0x26'))]=_0x1581fd;}return _0x3acefb;};exports[_0x0cc3('0x27')]=function(_0x3004f6){var _0x54e7b0={};for(var _0x2fff67 in _0x3004f6){if(_0x3004f6[_0x0cc3('0x28')](_0x2fff67)){_0x54e7b0[util[_0x0cc3('0x14')]('%s',_[_0x0cc3('0x29')](_0x2fff67))]=_0x3004f6[_0x2fff67];}}return{'variables':_0x54e7b0};};exports['updateOriginated']=function(_0x20ad34,_0x4b1dc8){if(!_[_0x0cc3('0x16')](_0x20ad34)){if(_0x20ad34['hasOwnProperty'](_0x0cc3('0x2a'))){if(_0x20ad34[_0x0cc3('0x2a')]>0x0){_0x20ad34[_0x0cc3('0x2a')]-=0x1;}else{logger['error']('[updateOriginated]\x20object\x20originated\x20is\x20negative',_0x4b1dc8);}}}else{logger[_0x0cc3('0xd')](_0x0cc3('0x2b'),_0x4b1dc8);}};exports[_0x0cc3('0x2c')]=function(_0x292560){var _0x5a07bb=moment()['format'](_0x0cc3('0x2d'));_0x292560[_0x0cc3('0x2e')]=0xd;_0x292560[_0x0cc3('0x2f')]=_0x0cc3('0x30');_0x292560[_0x0cc3('0x31')]=_0x5a07bb;_0x292560[_0x0cc3('0x32')]=_0x5a07bb;_0x292560['endtime']=_0x5a07bb;};exports[_0x0cc3('0x33')]=function(_0x1ec48d,_0x48ec90,_0x453fd5){var _0x20f210=moment()[_0x0cc3('0x14')](_0x0cc3('0x2d'));_0x1ec48d[_0x0cc3('0x2e')]=_0x48ec90;_0x1ec48d['statedesc']=_0x453fd5;_0x1ec48d['responsetime']=_0x20f210;_0x1ec48d['ringtime']=utils[_0x0cc3('0x34')](_0x1ec48d[_0x0cc3('0x32')],_0x1ec48d[_0x0cc3('0x31')]);};exports[_0x0cc3('0x35')]=function(_0x52b00b,_0xedd715,_0x57ca7a){_0x52b00b[_0x0cc3('0x36')]=_0xedd715;_0x52b00b[_0x0cc3('0x37')]=_0x57ca7a;};exports[_0x0cc3('0x38')]=function(_0x3eba9a,_0x3d2e00,_0x530793){var _0x4eea9f=moment()['format'](_0x0cc3('0x2d'));_0x3eba9a[_0x0cc3('0x2e')]=_0x3d2e00;_0x3eba9a[_0x0cc3('0x2f')]=_0x530793;_0x3eba9a[_0x0cc3('0x32')]=_0x3eba9a['responsetime']?_0x3eba9a['responsetime']:_0x4eea9f;_0x3eba9a[_0x0cc3('0x39')]=_0x3eba9a[_0x0cc3('0x39')]?_0x3eba9a[_0x0cc3('0x39')]:_0x4eea9f;_0x3eba9a[_0x0cc3('0x3a')]=utils[_0x0cc3('0x34')](_0x3eba9a[_0x0cc3('0x32')]||0x0,_0x3eba9a['starttime']||0x0);_0x3eba9a['talktime']=_0x3eba9a[_0x0cc3('0x3b')]?utils[_0x0cc3('0x34')](_0x3eba9a[_0x0cc3('0x39')],_0x3eba9a[_0x0cc3('0x3b')]):0x0;};exports['isFailure']=function(_0x2d1768){return _0x2d1768===_0x0cc3('0x3c');};exports[_0x0cc3('0x3d')]=function(_0x3999b1,_0x59db8f,_0x467ed0,_0x4abd35,_0x154ce9){var _0x5db511=_0x4abd35?'RECALL':_0x3999b1[_0x0cc3('0x3e')];_0x5db511=_0x154ce9?'BOOKED':_0x5db511;return{'actionid':_0x3999b1[_0x0cc3('0x3f')],'action':_0x0cc3('0x40'),'channel':_0x3999b1[_0x0cc3('0x41')],'callerid':util['format'](_0x0cc3('0x13'),_0x5db511,_0x3999b1[_0x0cc3('0x42')]),'Exten':'xcally-motion-preview','Context':_0x0cc3('0x43'),'Priority':'1','variable':_0x467ed0,'timeout':(_0x59db8f[_0x0cc3('0x44')]||0x1e)*0x3e8,'async':!![],'channelid':_0x3999b1[_0x0cc3('0x3f')]};};exports[_0x0cc3('0x45')]=function(_0x3aea3e){return _0x3aea3e[_0x0cc3('0x46')]+_0x3aea3e[_0x0cc3('0x47')]+_0x3aea3e[_0x0cc3('0x48')]+_0x3aea3e[_0x0cc3('0x49')]+_0x3aea3e[_0x0cc3('0x4a')];};exports[_0x0cc3('0x4b')]=function(_0x96ba4b){var _0x17f42d=_[_0x0cc3('0x4c')](_0x96ba4b);_0x17f42d[_0x0cc3('0x2e')]=0xf;_0x17f42d['statedesc']=_0x0cc3('0x4d');return _0x17f42d;};exports['scheduledAt']=function(_0x5b3125,_0x160106,_0x142c25){var _0x5eb070={};_0x5eb070[_0x160106]=_0x5b3125[_0x160106];_0x5eb070[_0x0cc3('0x4e')]=![];_0x5eb070[_0x0cc3('0x4f')]=moment()[_0x0cc3('0x50')](_0x142c25,'minutes')[_0x0cc3('0x14')]('YYYY-MM-DD\x20HH:mm:ss');_0x5eb070[_0x0cc3('0x18')]=_0x5b3125['ContactId'];_0x5eb070[_0x0cc3('0x51')]=_0x5b3125['ListId'];_0x5eb070['VoiceQueueId']=_0x5b3125[_0x0cc3('0x1a')]||undefined;return _0x5eb070;};exports['decrementTalkink']=function(_0x35931f,_0x5bcff5){if(!_[_0x0cc3('0x16')](_0x35931f)){if(_0x35931f[_0x0cc3('0x52')]>0x0){_0x35931f[_0x0cc3('0x52')]-=0x1;}else{logger[_0x0cc3('0xd')](_0x5bcff5,_0x0cc3('0x53'));}}else{logger['error'](_0x5bcff5,_0x0cc3('0x54'));}};exports[_0x0cc3('0x55')]=function(_0x111371){if(_0x111371<=0x0){return!![];}return![];};function buildObj(_0x821f2,_0x24b6eb,_0x59d548){_0x821f2[_0x0cc3('0x56')]=_0x24b6eb;_0x821f2[_0x0cc3('0x57')]=_0x821f2['queue'];_0x821f2[_0x0cc3('0x58')]=_0x821f2[_0x0cc3('0x41')];_0x821f2['motionChannel']='voice';if(_0x59d548){_0x821f2[_0x0cc3('0x59')]=_0x59d548['mandatoryDisposition'];}return _0x821f2;}exports[_0x0cc3('0x5a')]=buildObj;exports['buildAcw']=function(_0x6786a1){var _0x2a1b8d={};_0x2a1b8d[_0x0cc3('0x5b')]=_0x6786a1[_0x0cc3('0x5b')];_0x2a1b8d[_0x0cc3('0x58')]=_0x6786a1[_0x0cc3('0x41')];_0x2a1b8d[_0x0cc3('0x3f')]=_0x6786a1['uniqueid'];return _0x2a1b8d;};exports[_0x0cc3('0x5c')]=function(_0x46f4ef){var _0x44a982=[];for(var _0x5624ca in _0x46f4ef){if(_0x46f4ef[_0x0cc3('0x28')](_0x5624ca)){if(!_[_0x0cc3('0x16')](_0x46f4ef[_0x5624ca])&&_0x46f4ef[_0x5624ca][_0x0cc3('0x2e')]===_0x0cc3('0x5d')&&_0x46f4ef[_0x5624ca]['status']===_0x0cc3('0x5e')){_0x44a982[_0x0cc3('0x5f')](_0x46f4ef[_0x5624ca]['id']);}}}return _0x44a982;};exports[_0x0cc3('0x60')]=function(_0x13c266){var _0x4176e3=moment()[_0x0cc3('0x61')](0x0);var _0x5cb08f=moment(_0x13c266)['milliseconds'](0x0);return _0x4176e3[_0x0cc3('0x62')](_0x5cb08f,_0x0cc3('0x63'));};exports[_0x0cc3('0x64')]=function(_0x58ac31){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x58ac31['ContactId'],'ListId':_0x58ac31['ListId'],'VoiceQueueId':_0x58ac31[_0x0cc3('0x1a')]||undefined,'CampaignId':_0x58ac31[_0x0cc3('0x65')]||undefined};};exports[_0x0cc3('0x66')]=function(_0x419202){if(_0x419202===_0x0cc3('0x3f')||_0x419202==='idContact'||_0x419202===_0x0cc3('0x5b')||_0x419202===_0x0cc3('0x67')||_0x419202==='campaigntype'||_0x419202===_0x0cc3('0x68')||_0x419202==='membername'||_0x419202==='channelAgent'||_0x419202===_0x0cc3('0x3e')||_0x419202==='active'||_0x419202==='calleridnum'||_0x419202===_0x0cc3('0x4f')||_0x419202===_0x0cc3('0x46')||_0x419202===_0x0cc3('0x47')||_0x419202===_0x0cc3('0x48')||_0x419202===_0x0cc3('0x69')||_0x419202===_0x0cc3('0x6a')||_0x419202===_0x0cc3('0x6b')||_0x419202==='callbackat'||_0x419202===_0x0cc3('0x6c')||_0x419202==='ContactId'||_0x419202==='ListId'||_0x419202===_0x0cc3('0x37')||_0x419202===_0x0cc3('0x1a')||_0x419202===_0x0cc3('0x6d')||_0x419202===_0x0cc3('0x6e')||_0x419202===_0x0cc3('0x6f')||_0x419202==='xmd-phone'||_0x419202==='xmd-listid'||_0x419202==='xmd-dialurl'||_0x419202===_0x0cc3('0x70')||_0x419202===_0x0cc3('0x71')||_0x419202===_0x0cc3('0x72')||_0x419202===_0x0cc3('0x73')||_0x419202==='xmd-contactid'||_0x419202===_0x0cc3('0x74')||_0x419202==='xmd-callerid'||_0x419202===_0x0cc3('0x75')||_0x419202==='xmd-agi'||_0x419202===_0x0cc3('0x76')||_0x419202===_0x0cc3('0x77')||_0x419202===_0x0cc3('0x78')||_0x419202===_0x0cc3('0x79')||_0x419202==='rtpaudioqosloss'||_0x419202===_0x0cc3('0x7a')||_0x419202===_0x0cc3('0x7b')||_0x419202===_0x0cc3('0x7c')||_0x419202===_0x0cc3('0x76')||_0x419202===_0x0cc3('0x77')||_0x419202===_0x0cc3('0x78')||_0x419202===_0x0cc3('0x79')||_0x419202===_0x0cc3('0x7d')||_0x419202===_0x0cc3('0x7a')||_0x419202===_0x0cc3('0x7b')||_0x419202===_0x0cc3('0x7c')||_0x419202===_0x0cc3('0x7e')||_0x419202==='bridgepvtcallid'||_0x419202===_0x0cc3('0x2e')||_0x419202==='statedesc'){return![];}return!![];};exports[_0x0cc3('0x7f')]=function(_0x27e75c,_0x2c3fce){var _0xc95ae9,_0xe41f82,_0x49cc8f;if(_0x2c3fce<=0x0){_0x2c3fce=0x1;}_0xc95ae9=new RegExp(_0x0cc3('0x80')+_0x2c3fce+'}$');_0xe41f82=Math[_0x0cc3('0x81')](0xa,_0x2c3fce-0x1);_0x49cc8f=Math['pow'](0xa,_0x2c3fce)-0x1;return util[_0x0cc3('0x14')]('%s',_['replace'](_0x27e75c,_0xc95ae9,_['random'](_0xe41f82,_0x49cc8f)));};exports[_0x0cc3('0x82')]=function(_0x411fa6){var _0x595720=_0x411fa6[_0x0cc3('0x83')](/"(.*?)"/);return _0x595720?_0x595720[0x1]:_0x411fa6;};exports[_0x0cc3('0x84')]=function(_0x110382){var _0x5c859d=_0x110382['match'](/<(.*?)>/);return _0x5c859d?_0x5c859d[0x1]:_0x110382;};function buildNoAnswerEventPayload(_0x257977,_0x38e6c7){var _0xab9b3e=buildObj(_0x257977,_0x0cc3('0x85'));if(!_[_0x0cc3('0x12')](_0x38e6c7[_0x0cc3('0x86')])){Object[_0x0cc3('0x87')](_0x38e6c7['variables'])[_0x0cc3('0x88')](function(_0x36de15){_0xab9b3e[_0x36de15['toLowerCase']()]=_0x38e6c7[_0x0cc3('0x86')][_0x36de15];});}return _0xab9b3e;}exports['buildNoAnswerEventPayload']=buildNoAnswerEventPayload;