af02d895b732d9ee26d12d48d32d637f02457613
[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 _0xb93d=['Global','scheduledAt','active','scheduledat','add','minutes','ListId','VoiceQueueId','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','queue','interface','channelAgent','motionChannel','buildObj','agentReadyId','status','push','milliseconds','diff','seconds','createBody','CampaignId','filterKey','idContact','type','dialAnswer','countglobal','callback','callbackuniqueid','callbackat','recallme','sipcallid','xmd-phone','xmd-dialurl','xmd-dialtimeout','xmd-dialoptions','xmd-dialid','xmd-dialchannel','xmd-contactid','xmd-cdrtype','xmd-agi','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosjitter','bridgepeer','bridgepvtcallid','getCallerIdRandom','\x5cw{0,','pow','replace','random','extractCalleridName','match','extractCalleridNumber','noanswer','variables','keys','toLowerCase','buildNoAnswerEventPayload','util','lodash','../../../../config/logger','XCALLY_IP_AGI','../../dialer/utils','error','inspect','logger','info','message','getCallerId','isUndefined','isEmpty','format','\x22%s\x22\x20<%s>','string','\x22\x22\x20<>','isActive','isNil','Queue','name','calleridname','ContactId','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','dialPreviewUrl','\x22agi://%s/square,%s\x22','NONE','originatecalleridnum','originatecalleridname','Call-Type:\x20PREVIEW','_XCALLY_MIXMONITOR_FORMAT','monitor_format','toLowerVariables','hasOwnProperty','updateOriginated','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','statedesc','Blacklist','starttime','endtime','logAgent','ringtime','getSeconds','responsetime','logLookAgent','membername','UserId','logCustomer','talktime','answertime','isFailure','Failure','variablesAction','BOOKED','originate','calleridnum','xcally-motion-preview','from-sip','timeout','uniqueid','totalGlobal','countcongestionretry','countnoanswerretry','countagentrejectretry','countnosuchnumberretry','clone'];(function(_0x1a5f8f,_0xd5e605){var _0x3b6afa=function(_0x5b304d){while(--_0x5b304d){_0x1a5f8f['push'](_0x1a5f8f['shift']());}};_0x3b6afa(++_0xd5e605);}(_0xb93d,0x15b));var _0xdb93=function(_0x26f702,_0x3919bf){_0x26f702=_0x26f702-0x0;var _0x11417d=_0xb93d[_0x26f702];return _0x11417d;};'use strict';var util=require(_0xdb93('0x0'));var _=require(_0xdb93('0x1'));var moment=require('moment');var logger=require(_0xdb93('0x2'))('preview');var ipAgi=process['env'][_0xdb93('0x3')]||'127.0.0.1';var utils=require(_0xdb93('0x4'));exports['loggerCatch']=function(_0x207a1c){return function(_0x23bfff){logger[_0xdb93('0x5')](_0x207a1c,util[_0xdb93('0x6')](_0x23bfff,{'showHidden':![],'depth':null}));};};exports[_0xdb93('0x7')]=function(_0xc64d89,_0x1c1aac){logger[_0xdb93('0x8')](_0xc64d89,util[_0xdb93('0x6')](_0x1c1aac,{'showHidden':![],'depth':null}));};exports['loggerError']=function(_0x2c648d,_0xb560fd){logger[_0xdb93('0x5')](_0x2c648d,util[_0xdb93('0x6')](_0xb560fd,{'showHidden':![],'depth':null}));};exports['logger2']=function(_0x1ad2a0){return function(_0xfa27dd){logger['info'](_0x1ad2a0,util[_0xdb93('0x6')](_0xfa27dd,{'showHidden':![],'depth':null}));};};exports[_0xdb93('0x9')]=function(_0x6ae6cc,_0x1a2e3e,_0x29d4e9){return{'message':_0x6ae6cc,'unlock':_0x1a2e3e,'active':_0x29d4e9};};exports[_0xdb93('0xa')]=function(_0x2a06ed,_0x64605,_0x22fbfb){if(!_[_0xdb93('0xb')](_0x22fbfb)&&'string'===typeof _0x22fbfb&&!_[_0xdb93('0xc')](_0x22fbfb)){if(!_['isUndefined'](_0x64605)&&'string'===typeof _0x64605&&!_[_0xdb93('0xc')](_0x64605)){return util[_0xdb93('0xd')](_0xdb93('0xe'),_0x64605,_0x22fbfb);}return util[_0xdb93('0xd')](_0xdb93('0xe'),_0x22fbfb,_0x22fbfb);}if(!_['isUndefined'](_0x2a06ed)&&_0xdb93('0xf')===typeof _0x2a06ed&&!_[_0xdb93('0xc')](_0x2a06ed)){return _0x2a06ed;}return _0xdb93('0x10');};exports[_0xdb93('0x11')]=function(_0x11a7a0){if(_[_0xdb93('0x12')](_0x11a7a0)){return![];}return _0x11a7a0;};exports['addVariables']=function(_0x52f7e7,_0x20b1a8,_0x19eeeb,_0x169577,_0x1dad29,_0xae9aab){var _0x1de7d5={'XMD-QUEUE':_0x20b1a8[_0xdb93('0x13')]?_0x20b1a8[_0xdb93('0x13')][_0xdb93('0x14')]:'','XMD-CALLERID':_0x169577,'XMD-CALLERID-PREVIEW':_0xae9aab?util['format'](_0xdb93('0xe'),_0xae9aab[_0xdb93('0x15')],_0xae9aab['calleridnum']):_0x169577,'XMD-DIALID':_0x1dad29,'XMD-CONTACTID':_0x20b1a8[_0xdb93('0x16')],'XMD-CDRTYPE':'dialer','CALLERID(all)':_0x169577,'XMD-VOICEQUEUEID':_0x20b1a8['VoiceQueueId'],'XMD-DIALCHANNEL':_0x19eeeb,'XMD-DIALTIMEOUT':_0x52f7e7[_0xdb93('0x17')]||0x1e,'XMD-DIALOPTIONS':util[_0xdb93('0xd')](_0xdb93('0x18'),_0x52f7e7[_0xdb93('0x19')]?'g':'',_['isEmpty'](_0x52f7e7['monitor_format'])?'':'U(xcally-mixmonitor-context)'),'XMD-DIALURL':_0x52f7e7[_0xdb93('0x1a')]||'','XMD-AGI':_0x52f7e7['dialQueueProject']?util['format'](_0xdb93('0x1b'),ipAgi,_0x52f7e7['dialQueueProject']):_0xdb93('0x1c'),'XMD-AGIAFTER':_0x52f7e7[_0xdb93('0x19')]?util['format']('\x22agi://%s/square,%s\x22',ipAgi,_0x52f7e7[_0xdb93('0x19')]):_0xdb93('0x1c'),'XMD-ORIGINATECALLERIDNUM':_0xae9aab?_0xae9aab[_0xdb93('0x1d')]:'','XMD-ORIGINATECALLERIDNAME':_0xae9aab?_0xae9aab[_0xdb93('0x1e')]:'','XMD-DESTINATION':'xcally-motion-preview','SIPADDHEADER':_0xdb93('0x1f')};if(!_[_0xdb93('0xc')](_0x52f7e7['monitor_format'])){_0x1de7d5[util[_0xdb93('0xd')]('%s',_0xdb93('0x20'))]=_0x52f7e7[_0xdb93('0x21')];_0x1de7d5[util['format']('%s','_XCALLY_MIXMONITOR_UNIQUEID')]=_0x1dad29;}return _0x1de7d5;};exports[_0xdb93('0x22')]=function(_0x2c877a){var _0x287d52={};for(var _0x5741d6 in _0x2c877a){if(_0x2c877a[_0xdb93('0x23')](_0x5741d6)){_0x287d52[util['format']('%s',_['toLower'](_0x5741d6))]=_0x2c877a[_0x5741d6];}}return{'variables':_0x287d52};};exports[_0xdb93('0x24')]=function(_0xb6afa8,_0x3b17f8){if(!_[_0xdb93('0x12')](_0xb6afa8)){if(_0xb6afa8[_0xdb93('0x23')](_0xdb93('0x25'))){if(_0xb6afa8[_0xdb93('0x25')]>0x0){_0xb6afa8[_0xdb93('0x25')]-=0x1;}else{logger[_0xdb93('0x5')](_0xdb93('0x26'),_0x3b17f8);}}}else{logger[_0xdb93('0x5')](_0xdb93('0x27'),_0x3b17f8);}};exports[_0xdb93('0x28')]=function(_0x5d2b45){var _0x5825db=moment()[_0xdb93('0xd')](_0xdb93('0x29'));_0x5d2b45[_0xdb93('0x2a')]=0xd;_0x5d2b45[_0xdb93('0x2b')]=_0xdb93('0x2c');_0x5d2b45[_0xdb93('0x2d')]=_0x5825db;_0x5d2b45['responsetime']=_0x5825db;_0x5d2b45[_0xdb93('0x2e')]=_0x5825db;};exports[_0xdb93('0x2f')]=function(_0x10deea,_0x1110c4,_0x22a0b1){var _0x234efe=moment()[_0xdb93('0xd')](_0xdb93('0x29'));_0x10deea[_0xdb93('0x2a')]=_0x1110c4;_0x10deea['statedesc']=_0x22a0b1;_0x10deea['responsetime']=_0x234efe;_0x10deea[_0xdb93('0x30')]=utils[_0xdb93('0x31')](_0x10deea[_0xdb93('0x32')],_0x10deea[_0xdb93('0x2d')]);};exports[_0xdb93('0x33')]=function(_0x35ff73,_0x42cc0a,_0x21f8e2){_0x35ff73[_0xdb93('0x34')]=_0x42cc0a;_0x35ff73[_0xdb93('0x35')]=_0x21f8e2;};exports[_0xdb93('0x36')]=function(_0x22a40d,_0x398104,_0x2a3ec4){var _0x146af2=moment()[_0xdb93('0xd')]('YYYY-MM-DD\x20HH:mm:ss');_0x22a40d[_0xdb93('0x2a')]=_0x398104;_0x22a40d[_0xdb93('0x2b')]=_0x2a3ec4;_0x22a40d[_0xdb93('0x32')]=_0x22a40d['responsetime']?_0x22a40d[_0xdb93('0x32')]:_0x146af2;_0x22a40d['endtime']=_0x22a40d[_0xdb93('0x2e')]?_0x22a40d[_0xdb93('0x2e')]:_0x146af2;_0x22a40d[_0xdb93('0x30')]=utils[_0xdb93('0x31')](_0x22a40d[_0xdb93('0x32')]||0x0,_0x22a40d['starttime']||0x0);_0x22a40d[_0xdb93('0x37')]=_0x22a40d[_0xdb93('0x38')]?utils[_0xdb93('0x31')](_0x22a40d['endtime'],_0x22a40d[_0xdb93('0x38')]):0x0;};exports[_0xdb93('0x39')]=function(_0x1e8947){return _0x1e8947===_0xdb93('0x3a');};exports[_0xdb93('0x3b')]=function(_0x5b6747,_0xdb8593,_0x3d6ede,_0x3c31e1,_0x2e87b1){var _0xe9ef03=_0x3c31e1?'RECALL':_0x5b6747[_0xdb93('0x15')];_0xe9ef03=_0x2e87b1?_0xdb93('0x3c'):_0xe9ef03;return{'actionid':_0x5b6747['uniqueid'],'action':_0xdb93('0x3d'),'channel':_0x5b6747['channelAgent'],'callerid':util[_0xdb93('0xd')]('\x22%s\x22\x20<%s>',_0xe9ef03,_0x5b6747[_0xdb93('0x3e')]),'Exten':_0xdb93('0x3f'),'Context':_0xdb93('0x40'),'Priority':'1','variable':_0x3d6ede,'timeout':(_0xdb8593[_0xdb93('0x41')]||0x1e)*0x3e8,'async':!![],'channelid':_0x5b6747[_0xdb93('0x42')]};};exports[_0xdb93('0x43')]=function(_0x11c671){return _0x11c671['countbusyretry']+_0x11c671[_0xdb93('0x44')]+_0x11c671[_0xdb93('0x45')]+_0x11c671[_0xdb93('0x46')]+_0x11c671[_0xdb93('0x47')];};exports['cloneAction']=function(_0x29fd0a){var _0x17aaad=_[_0xdb93('0x48')](_0x29fd0a);_0x17aaad['state']=0xf;_0x17aaad['statedesc']=_0xdb93('0x49');return _0x17aaad;};exports[_0xdb93('0x4a')]=function(_0xbf55c6,_0x25180b,_0x9e70ac){var _0x939265={};_0x939265[_0x25180b]=_0xbf55c6[_0x25180b];_0x939265[_0xdb93('0x4b')]=![];_0x939265[_0xdb93('0x4c')]=moment()[_0xdb93('0x4d')](_0x9e70ac,_0xdb93('0x4e'))[_0xdb93('0xd')](_0xdb93('0x29'));_0x939265['ContactId']=_0xbf55c6[_0xdb93('0x16')];_0x939265[_0xdb93('0x4f')]=_0xbf55c6['ListId'];_0x939265[_0xdb93('0x50')]=_0xbf55c6['VoiceQueueId']||undefined;return _0x939265;};exports[_0xdb93('0x51')]=function(_0x5b46de,_0x43c795){if(!_[_0xdb93('0x12')](_0x5b46de)){if(_0x5b46de[_0xdb93('0x52')]>0x0){_0x5b46de[_0xdb93('0x52')]-=0x1;}else{logger[_0xdb93('0x5')](_0x43c795,_0xdb93('0x53'));}}else{logger['error'](_0x43c795,_0xdb93('0x54'));}};exports[_0xdb93('0x55')]=function(_0x291b64){if(_0x291b64<=0x0){return!![];}return![];};function buildObj(_0xeb233b,_0x1b997d,_0x5c371b){_0xeb233b['lastevent']=_0x1b997d;_0xeb233b[_0xdb93('0x14')]=_0xeb233b[_0xdb93('0x56')];_0xeb233b[_0xdb93('0x57')]=_0xeb233b[_0xdb93('0x58')];_0xeb233b[_0xdb93('0x59')]='voice';if(_0x5c371b){_0xeb233b['mandatoryDisposition']=_0x5c371b['mandatoryDisposition'];}return _0xeb233b;}exports[_0xdb93('0x5a')]=buildObj;exports[_0xdb93('0x5b')]=function(_0x1f0f07){var _0x1d4fc4=[];for(var _0x183773 in _0x1f0f07){if(_0x1f0f07[_0xdb93('0x23')](_0x183773)){if(!_[_0xdb93('0x12')](_0x1f0f07[_0x183773])&&_0x1f0f07[_0x183773][_0xdb93('0x2a')]==='not_inuse'&&_0x1f0f07[_0x183773][_0xdb93('0x5c')]==='reachable'){_0x1d4fc4[_0xdb93('0x5d')](_0x1f0f07[_0x183773]['id']);}}}return _0x1d4fc4;};exports['getDiff']=function(_0x55c6bb){var _0xc751d=moment()['milliseconds'](0x0);var _0xc25191=moment(_0x55c6bb)[_0xdb93('0x5e')](0x0);return _0xc751d[_0xdb93('0x5f')](_0xc25191,_0xdb93('0x60'));};exports[_0xdb93('0x61')]=function(_0x385031){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x385031[_0xdb93('0x16')],'ListId':_0x385031['ListId'],'VoiceQueueId':_0x385031[_0xdb93('0x50')]||undefined,'CampaignId':_0x385031[_0xdb93('0x62')]||undefined};};exports[_0xdb93('0x63')]=function(_0x159ef9){if(_0x159ef9==='uniqueid'||_0x159ef9===_0xdb93('0x64')||_0x159ef9===_0xdb93('0x56')||_0x159ef9===_0xdb93('0x65')||_0x159ef9==='campaigntype'||_0x159ef9===_0xdb93('0x66')||_0x159ef9==='membername'||_0x159ef9===_0xdb93('0x58')||_0x159ef9==='calleridname'||_0x159ef9==='active'||_0x159ef9===_0xdb93('0x3e')||_0x159ef9===_0xdb93('0x4c')||_0x159ef9==='countbusyretry'||_0x159ef9==='countcongestionretry'||_0x159ef9===_0xdb93('0x45')||_0x159ef9===_0xdb93('0x67')||_0x159ef9===_0xdb93('0x68')||_0x159ef9===_0xdb93('0x69')||_0x159ef9===_0xdb93('0x6a')||_0x159ef9===_0xdb93('0x6b')||_0x159ef9===_0xdb93('0x16')||_0x159ef9===_0xdb93('0x4f')||_0x159ef9===_0xdb93('0x35')||_0x159ef9===_0xdb93('0x50')||_0x159ef9===_0xdb93('0x6c')||_0x159ef9==='xmd-voicequeueid'||_0x159ef9==='xmd-queue'||_0x159ef9===_0xdb93('0x6d')||_0x159ef9==='xmd-listid'||_0x159ef9===_0xdb93('0x6e')||_0x159ef9===_0xdb93('0x6f')||_0x159ef9===_0xdb93('0x70')||_0x159ef9===_0xdb93('0x71')||_0x159ef9===_0xdb93('0x72')||_0x159ef9===_0xdb93('0x73')||_0x159ef9===_0xdb93('0x74')||_0x159ef9==='xmd-callerid'||_0x159ef9==='xmd-agiafter'||_0x159ef9===_0xdb93('0x75')||_0x159ef9===_0xdb93('0x76')||_0x159ef9===_0xdb93('0x77')||_0x159ef9==='rtpaudioqosjitter'||_0x159ef9===_0xdb93('0x78')||_0x159ef9===_0xdb93('0x79')||_0x159ef9===_0xdb93('0x7a')||_0x159ef9===_0xdb93('0x7b')||_0x159ef9==='rtpaudioqosrttbridged'||_0x159ef9==='rtpaudioqos'||_0x159ef9===_0xdb93('0x77')||_0x159ef9===_0xdb93('0x7c')||_0x159ef9===_0xdb93('0x78')||_0x159ef9==='rtpaudioqosloss'||_0x159ef9===_0xdb93('0x7a')||_0x159ef9===_0xdb93('0x7b')||_0x159ef9==='rtpaudioqosrttbridged'||_0x159ef9===_0xdb93('0x7d')||_0x159ef9===_0xdb93('0x7e')||_0x159ef9===_0xdb93('0x2a')||_0x159ef9===_0xdb93('0x2b')){return![];}return!![];};exports[_0xdb93('0x7f')]=function(_0x498271,_0x5533ed){var _0x3a08b2,_0x2b1f86,_0x38a336;if(_0x5533ed<=0x0){_0x5533ed=0x1;}_0x3a08b2=new RegExp(_0xdb93('0x80')+_0x5533ed+'}$');_0x2b1f86=Math[_0xdb93('0x81')](0xa,_0x5533ed-0x1);_0x38a336=Math['pow'](0xa,_0x5533ed)-0x1;return util[_0xdb93('0xd')]('%s',_[_0xdb93('0x82')](_0x498271,_0x3a08b2,_[_0xdb93('0x83')](_0x2b1f86,_0x38a336)));};exports[_0xdb93('0x84')]=function(_0xec1c2f){var _0x1e271e=_0xec1c2f[_0xdb93('0x85')](/"(.*?)"/);return _0x1e271e?_0x1e271e[0x1]:_0xec1c2f;};exports[_0xdb93('0x86')]=function(_0x1a8ba6){var _0x56449a=_0x1a8ba6[_0xdb93('0x85')](/<(.*?)>/);return _0x56449a?_0x56449a[0x1]:_0x1a8ba6;};function buildNoAnswerEventPayload(_0x250edf,_0x4e8be0){var _0x1ea250=buildObj(_0x250edf,_0xdb93('0x87'));if(!_[_0xdb93('0xc')](_0x4e8be0[_0xdb93('0x88')])){Object[_0xdb93('0x89')](_0x4e8be0[_0xdb93('0x88')])['forEach'](function(_0x4dfed7){_0x1ea250[_0x4dfed7[_0xdb93('0x8a')]()]=_0x4e8be0['variables'][_0x4dfed7];});}return _0x1ea250;}exports[_0xdb93('0x8b')]=buildNoAnswerEventPayload;