87e8b478889cc641b890a6ffa1f26f664bac1e13
[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 _0xa5e4=['membername','UserId','logCustomer','getSeconds','talktime','answertime','isFailure','BOOKED','uniqueid','originate','channelAgent','xcally-motion-preview','from-sip','timeout','countbusyretry','countagentrejectretry','countnosuchnumberretry','cloneAction','Global','active','scheduledat','minutes','ListId','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','IsNotLoggedIn','lastevent','queue','interface','motionChannel','voice','mandatoryDisposition','agentReadyId','push','getDiff','milliseconds','diff','CampaignId','filterKey','campaigntype','dialAnswer','countcongestionretry','countnoanswerretry','countglobal','callback','callbackuniqueid','callbackat','recallme','sipcallid','xmd-phone','xmd-listid','xmd-dialurl','xmd-dialtimeout','xmd-dialoptions','xmd-contactid','xmd-cdrtype','xmd-agiafter','xmd-agi','rtpaudioqosbridged','rtpaudioqosjitterbridged','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqos','rtpaudioqosjitter','rtpaudioqosloss','replace','extractCalleridName','extractCalleridNumber','match','noanswer','variables','keys','forEach','buildNoAnswerEventPayload','moment','env','XCALLY_IP_AGI','127.0.0.1','../../dialer/utils','loggerCatch','error','inspect','info','loggerError','getCallerId','isUndefined','format','\x22%s\x22\x20<%s>','string','isEmpty','\x22\x22\x20<>','isNil','Queue','name','calleridname','calleridnum','ContactId','dialer','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','U(xcally-mixmonitor-context)','dialQueueProject','NONE','\x22agi://%s/square,%s\x22','originatecalleridnum','originatecalleridname','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','statedesc','Blacklist','starttime','endtime','logAgent','state','responsetime','ringtime','logLookAgent'];(function(_0x2e0ffa,_0x451f12){var _0x24d627=function(_0x4d0f09){while(--_0x4d0f09){_0x2e0ffa['push'](_0x2e0ffa['shift']());}};_0x24d627(++_0x451f12);}(_0xa5e4,0x14f));var _0x4a5e=function(_0x2803d1,_0x4c3125){_0x2803d1=_0x2803d1-0x0;var _0x2586a1=_0xa5e4[_0x2803d1];return _0x2586a1;};'use strict';var util=require('util');var _=require('lodash');var moment=require(_0x4a5e('0x0'));var logger=require('../../../../config/logger')('preview');var ipAgi=process[_0x4a5e('0x1')][_0x4a5e('0x2')]||_0x4a5e('0x3');var utils=require(_0x4a5e('0x4'));exports[_0x4a5e('0x5')]=function(_0x4b99c3){return function(_0x5ebc18){logger[_0x4a5e('0x6')](_0x4b99c3,util[_0x4a5e('0x7')](_0x5ebc18,{'showHidden':![],'depth':null}));};};exports['logger']=function(_0x2a3a8b,_0x32fcfb){logger[_0x4a5e('0x8')](_0x2a3a8b,util[_0x4a5e('0x7')](_0x32fcfb,{'showHidden':![],'depth':null}));};exports[_0x4a5e('0x9')]=function(_0x5bf13a,_0x319cea){logger[_0x4a5e('0x6')](_0x5bf13a,util[_0x4a5e('0x7')](_0x319cea,{'showHidden':![],'depth':null}));};exports['logger2']=function(_0x210745){return function(_0x383a19){logger[_0x4a5e('0x8')](_0x210745,util[_0x4a5e('0x7')](_0x383a19,{'showHidden':![],'depth':null}));};};exports['message']=function(_0x429eb5,_0x450bf7,_0x722609){return{'message':_0x429eb5,'unlock':_0x450bf7,'active':_0x722609};};exports[_0x4a5e('0xa')]=function(_0x26096e,_0x58de50,_0x3ce61e){if(!_[_0x4a5e('0xb')](_0x3ce61e)&&'string'===typeof _0x3ce61e&&!_['isEmpty'](_0x3ce61e)){if(!_['isUndefined'](_0x58de50)&&'string'===typeof _0x58de50&&!_['isEmpty'](_0x58de50)){return util[_0x4a5e('0xc')](_0x4a5e('0xd'),_0x58de50,_0x3ce61e);}return util['format'](_0x4a5e('0xd'),_0x3ce61e,_0x3ce61e);}if(!_[_0x4a5e('0xb')](_0x26096e)&&_0x4a5e('0xe')===typeof _0x26096e&&!_[_0x4a5e('0xf')](_0x26096e)){return _0x26096e;}return _0x4a5e('0x10');};exports['isActive']=function(_0x37026e){if(_[_0x4a5e('0x11')](_0x37026e)){return![];}return _0x37026e;};exports['addVariables']=function(_0x31b8d3,_0x11b51e,_0x504fbc,_0x2ef519,_0x1d70ab,_0xb7085c){var _0x2aba59={'XMD-QUEUE':_0x11b51e[_0x4a5e('0x12')]?_0x11b51e[_0x4a5e('0x12')][_0x4a5e('0x13')]:'','XMD-CALLERID':_0x2ef519,'XMD-CALLERID-PREVIEW':_0xb7085c?util[_0x4a5e('0xc')](_0x4a5e('0xd'),_0xb7085c[_0x4a5e('0x14')],_0xb7085c[_0x4a5e('0x15')]):_0x2ef519,'XMD-DIALID':_0x1d70ab,'XMD-CONTACTID':_0x11b51e[_0x4a5e('0x16')],'XMD-CDRTYPE':_0x4a5e('0x17'),'CALLERID(all)':_0x2ef519,'XMD-VOICEQUEUEID':_0x11b51e[_0x4a5e('0x18')],'XMD-DIALCHANNEL':_0x504fbc,'XMD-DIALTIMEOUT':_0x31b8d3[_0x4a5e('0x19')]||0x1e,'XMD-DIALOPTIONS':util['format'](_0x4a5e('0x1a'),_0x31b8d3[_0x4a5e('0x1b')]?'g':'',_[_0x4a5e('0xf')](_0x31b8d3['monitor_format'])?'':_0x4a5e('0x1c')),'XMD-DIALURL':_0x31b8d3['dialPreviewUrl']||'','XMD-AGI':_0x31b8d3['dialQueueProject']?util['format']('\x22agi://%s/square,%s\x22',ipAgi,_0x31b8d3[_0x4a5e('0x1d')]):_0x4a5e('0x1e'),'XMD-AGIAFTER':_0x31b8d3[_0x4a5e('0x1b')]?util[_0x4a5e('0xc')](_0x4a5e('0x1f'),ipAgi,_0x31b8d3['dialQueueProject2']):'NONE','XMD-ORIGINATECALLERIDNUM':_0xb7085c?_0xb7085c[_0x4a5e('0x20')]:'','XMD-ORIGINATECALLERIDNAME':_0xb7085c?_0xb7085c[_0x4a5e('0x21')]:'','XMD-DESTINATION':'xcally-motion-preview','SIPADDHEADER':'Call-Type:\x20PREVIEW'};if(!_[_0x4a5e('0xf')](_0x31b8d3[_0x4a5e('0x22')])){_0x2aba59[util['format']('%s',_0x4a5e('0x23'))]=_0x31b8d3['monitor_format'];_0x2aba59[util[_0x4a5e('0xc')]('%s',_0x4a5e('0x24'))]=_0x1d70ab;}return _0x2aba59;};exports[_0x4a5e('0x25')]=function(_0x2cef81){var _0x439696={};for(var _0x162a73 in _0x2cef81){if(_0x2cef81[_0x4a5e('0x26')](_0x162a73)){_0x439696[util[_0x4a5e('0xc')]('%s',_[_0x4a5e('0x27')](_0x162a73))]=_0x2cef81[_0x162a73];}}return{'variables':_0x439696};};exports[_0x4a5e('0x28')]=function(_0x192f8d,_0x16b86c){if(!_[_0x4a5e('0x11')](_0x192f8d)){if(_0x192f8d[_0x4a5e('0x26')]('originated')){if(_0x192f8d[_0x4a5e('0x29')]>0x0){_0x192f8d['originated']-=0x1;}else{logger['error'](_0x4a5e('0x2a'),_0x16b86c);}}}else{logger[_0x4a5e('0x6')](_0x4a5e('0x2b'),_0x16b86c);}};exports[_0x4a5e('0x2c')]=function(_0x742d7e){var _0x3a43fe=moment()['format'](_0x4a5e('0x2d'));_0x742d7e['state']=0xd;_0x742d7e[_0x4a5e('0x2e')]=_0x4a5e('0x2f');_0x742d7e[_0x4a5e('0x30')]=_0x3a43fe;_0x742d7e['responsetime']=_0x3a43fe;_0x742d7e[_0x4a5e('0x31')]=_0x3a43fe;};exports[_0x4a5e('0x32')]=function(_0x1d8e98,_0x2f5a47,_0x40e0f4){var _0x4ce1c0=moment()[_0x4a5e('0xc')](_0x4a5e('0x2d'));_0x1d8e98[_0x4a5e('0x33')]=_0x2f5a47;_0x1d8e98[_0x4a5e('0x2e')]=_0x40e0f4;_0x1d8e98[_0x4a5e('0x34')]=_0x4ce1c0;_0x1d8e98[_0x4a5e('0x35')]=utils['getSeconds'](_0x1d8e98[_0x4a5e('0x34')],_0x1d8e98[_0x4a5e('0x30')]);};exports[_0x4a5e('0x36')]=function(_0x2111f2,_0x13beec,_0x22617c){_0x2111f2[_0x4a5e('0x37')]=_0x13beec;_0x2111f2[_0x4a5e('0x38')]=_0x22617c;};exports[_0x4a5e('0x39')]=function(_0x239d4e,_0x229b56,_0x4f25b6){var _0x3d2d01=moment()[_0x4a5e('0xc')]('YYYY-MM-DD\x20HH:mm:ss');_0x239d4e['state']=_0x229b56;_0x239d4e[_0x4a5e('0x2e')]=_0x4f25b6;_0x239d4e[_0x4a5e('0x34')]=_0x239d4e['responsetime']?_0x239d4e[_0x4a5e('0x34')]:_0x3d2d01;_0x239d4e[_0x4a5e('0x31')]=_0x239d4e[_0x4a5e('0x31')]?_0x239d4e[_0x4a5e('0x31')]:_0x3d2d01;_0x239d4e['ringtime']=utils[_0x4a5e('0x3a')](_0x239d4e[_0x4a5e('0x34')]||0x0,_0x239d4e[_0x4a5e('0x30')]||0x0);_0x239d4e[_0x4a5e('0x3b')]=_0x239d4e[_0x4a5e('0x3c')]?utils[_0x4a5e('0x3a')](_0x239d4e[_0x4a5e('0x31')],_0x239d4e['answertime']):0x0;};exports[_0x4a5e('0x3d')]=function(_0x53e6e1){return _0x53e6e1==='Failure';};exports['variablesAction']=function(_0x218865,_0x5e5ed4,_0x858ec1,_0x4b6604,_0x2c9bf3){var _0x5c9e2c=_0x4b6604?'RECALL':_0x218865[_0x4a5e('0x14')];_0x5c9e2c=_0x2c9bf3?_0x4a5e('0x3e'):_0x5c9e2c;return{'actionid':_0x218865[_0x4a5e('0x3f')],'action':_0x4a5e('0x40'),'channel':_0x218865[_0x4a5e('0x41')],'callerid':util[_0x4a5e('0xc')](_0x4a5e('0xd'),_0x5c9e2c,_0x218865[_0x4a5e('0x15')]),'Exten':_0x4a5e('0x42'),'Context':_0x4a5e('0x43'),'Priority':'1','variable':_0x858ec1,'timeout':(_0x5e5ed4[_0x4a5e('0x44')]||0x1e)*0x3e8,'async':!![],'channelid':_0x218865[_0x4a5e('0x3f')]};};exports['totalGlobal']=function(_0x95adbf){return _0x95adbf[_0x4a5e('0x45')]+_0x95adbf['countcongestionretry']+_0x95adbf['countnoanswerretry']+_0x95adbf[_0x4a5e('0x46')]+_0x95adbf[_0x4a5e('0x47')];};exports[_0x4a5e('0x48')]=function(_0x574fc2){var _0x51904c=_['clone'](_0x574fc2);_0x51904c[_0x4a5e('0x33')]=0xf;_0x51904c[_0x4a5e('0x2e')]=_0x4a5e('0x49');return _0x51904c;};exports['scheduledAt']=function(_0x347baf,_0x545243,_0x255673){var _0xa19e08={};_0xa19e08[_0x545243]=_0x347baf[_0x545243];_0xa19e08[_0x4a5e('0x4a')]=![];_0xa19e08[_0x4a5e('0x4b')]=moment()['add'](_0x255673,_0x4a5e('0x4c'))[_0x4a5e('0xc')]('YYYY-MM-DD\x20HH:mm:ss');_0xa19e08['ContactId']=_0x347baf[_0x4a5e('0x16')];_0xa19e08['ListId']=_0x347baf[_0x4a5e('0x4d')];_0xa19e08['VoiceQueueId']=_0x347baf[_0x4a5e('0x18')]||undefined;return _0xa19e08;};exports[_0x4a5e('0x4e')]=function(_0x13f467,_0x33a5d8){if(!_['isNil'](_0x13f467)){if(_0x13f467[_0x4a5e('0x4f')]>0x0){_0x13f467['pTalking']-=0x1;}else{logger[_0x4a5e('0x6')](_0x33a5d8,_0x4a5e('0x50'));}}else{logger[_0x4a5e('0x6')](_0x33a5d8,'[decrementTalkink]\x20is\x20null\x20or\x20undefined');}};exports[_0x4a5e('0x51')]=function(_0x23326f){if(_0x23326f<=0x0){return!![];}return![];};function buildObj(_0x1d3c68,_0xedda2,_0x412f22){_0x1d3c68[_0x4a5e('0x52')]=_0xedda2;_0x1d3c68[_0x4a5e('0x13')]=_0x1d3c68[_0x4a5e('0x53')];_0x1d3c68[_0x4a5e('0x54')]=_0x1d3c68[_0x4a5e('0x41')];_0x1d3c68[_0x4a5e('0x55')]=_0x4a5e('0x56');if(_0x412f22){_0x1d3c68[_0x4a5e('0x57')]=_0x412f22[_0x4a5e('0x57')];}return _0x1d3c68;}exports['buildObj']=buildObj;exports[_0x4a5e('0x58')]=function(_0x31dc41){var _0x3e8a19=[];for(var _0x347034 in _0x31dc41){if(_0x31dc41[_0x4a5e('0x26')](_0x347034)){if(!_[_0x4a5e('0x11')](_0x31dc41[_0x347034])&&_0x31dc41[_0x347034][_0x4a5e('0x33')]==='not_inuse'&&_0x31dc41[_0x347034]['status']==='reachable'){_0x3e8a19[_0x4a5e('0x59')](_0x31dc41[_0x347034]['id']);}}}return _0x3e8a19;};exports[_0x4a5e('0x5a')]=function(_0x4cf3d1){var _0x2c53eb=moment()[_0x4a5e('0x5b')](0x0);var _0x322889=moment(_0x4cf3d1)[_0x4a5e('0x5b')](0x0);return _0x2c53eb[_0x4a5e('0x5c')](_0x322889,'seconds');};exports['createBody']=function(_0x55565b){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x55565b[_0x4a5e('0x16')],'ListId':_0x55565b[_0x4a5e('0x4d')],'VoiceQueueId':_0x55565b[_0x4a5e('0x18')]||undefined,'CampaignId':_0x55565b[_0x4a5e('0x5d')]||undefined};};exports[_0x4a5e('0x5e')]=function(_0x19aa4b){if(_0x19aa4b===_0x4a5e('0x3f')||_0x19aa4b==='idContact'||_0x19aa4b===_0x4a5e('0x53')||_0x19aa4b==='type'||_0x19aa4b===_0x4a5e('0x5f')||_0x19aa4b===_0x4a5e('0x60')||_0x19aa4b==='membername'||_0x19aa4b===_0x4a5e('0x41')||_0x19aa4b==='calleridname'||_0x19aa4b===_0x4a5e('0x4a')||_0x19aa4b==='calleridnum'||_0x19aa4b===_0x4a5e('0x4b')||_0x19aa4b===_0x4a5e('0x45')||_0x19aa4b===_0x4a5e('0x61')||_0x19aa4b===_0x4a5e('0x62')||_0x19aa4b===_0x4a5e('0x63')||_0x19aa4b===_0x4a5e('0x64')||_0x19aa4b===_0x4a5e('0x65')||_0x19aa4b===_0x4a5e('0x66')||_0x19aa4b===_0x4a5e('0x67')||_0x19aa4b===_0x4a5e('0x16')||_0x19aa4b===_0x4a5e('0x4d')||_0x19aa4b===_0x4a5e('0x38')||_0x19aa4b===_0x4a5e('0x18')||_0x19aa4b===_0x4a5e('0x68')||_0x19aa4b==='xmd-voicequeueid'||_0x19aa4b==='xmd-queue'||_0x19aa4b===_0x4a5e('0x69')||_0x19aa4b===_0x4a5e('0x6a')||_0x19aa4b===_0x4a5e('0x6b')||_0x19aa4b===_0x4a5e('0x6c')||_0x19aa4b===_0x4a5e('0x6d')||_0x19aa4b==='xmd-dialid'||_0x19aa4b==='xmd-dialchannel'||_0x19aa4b===_0x4a5e('0x6e')||_0x19aa4b===_0x4a5e('0x6f')||_0x19aa4b==='xmd-callerid'||_0x19aa4b===_0x4a5e('0x70')||_0x19aa4b===_0x4a5e('0x71')||_0x19aa4b==='rtpaudioqos'||_0x19aa4b===_0x4a5e('0x72')||_0x19aa4b==='rtpaudioqosjitter'||_0x19aa4b===_0x4a5e('0x73')||_0x19aa4b==='rtpaudioqosloss'||_0x19aa4b===_0x4a5e('0x74')||_0x19aa4b===_0x4a5e('0x75')||_0x19aa4b==='rtpaudioqosrttbridged'||_0x19aa4b===_0x4a5e('0x76')||_0x19aa4b===_0x4a5e('0x72')||_0x19aa4b===_0x4a5e('0x77')||_0x19aa4b===_0x4a5e('0x73')||_0x19aa4b===_0x4a5e('0x78')||_0x19aa4b===_0x4a5e('0x74')||_0x19aa4b===_0x4a5e('0x75')||_0x19aa4b==='rtpaudioqosrttbridged'||_0x19aa4b==='bridgepeer'||_0x19aa4b==='bridgepvtcallid'||_0x19aa4b===_0x4a5e('0x33')||_0x19aa4b===_0x4a5e('0x2e')){return![];}return!![];};exports['getCallerIdRandom']=function(_0x34fb15,_0x16f116){var _0x38dfe5,_0x50a42e,_0x408add;if(_0x16f116<=0x0){_0x16f116=0x1;}_0x38dfe5=new RegExp('\x5cw{0,'+_0x16f116+'}$');_0x50a42e=Math['pow'](0xa,_0x16f116-0x1);_0x408add=Math['pow'](0xa,_0x16f116)-0x1;return util['format']('%s',_[_0x4a5e('0x79')](_0x34fb15,_0x38dfe5,_['random'](_0x50a42e,_0x408add)));};exports[_0x4a5e('0x7a')]=function(_0x218247){var _0x18e817=_0x218247['match'](/"(.*?)"/);return _0x18e817?_0x18e817[0x1]:_0x218247;};exports[_0x4a5e('0x7b')]=function(_0x5c95f4){var _0x4f5d3e=_0x5c95f4[_0x4a5e('0x7c')](/<(.*?)>/);return _0x4f5d3e?_0x4f5d3e[0x1]:_0x5c95f4;};function buildNoAnswerEventPayload(_0x3a4966,_0x394553){var _0x2ba82d=buildObj(_0x3a4966,_0x4a5e('0x7d'));if(!_[_0x4a5e('0xf')](_0x394553[_0x4a5e('0x7e')])){Object[_0x4a5e('0x7f')](_0x394553[_0x4a5e('0x7e')])[_0x4a5e('0x80')](function(_0x1648ff){_0x2ba82d[_0x1648ff['toLowerCase']()]=_0x394553['variables'][_0x1648ff];});}return _0x2ba82d;}exports[_0x4a5e('0x81')]=buildNoAnswerEventPayload;