3b9a349b0850dd3e7059210823fa135d64e41337
[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 _0x92e1=['forEach','toLowerCase','buildNoAnswerEventPayload','util','lodash','moment','../../../../config/logger','preview','env','XCALLY_IP_AGI','127.0.0.1','milliseconds','diff','seconds','loggerCatch','error','inspect','logger','info','message','getCallerId','isUndefined','string','isEmpty','format','\x22%s\x22\x20<%s>','isActive','isNil','addVariables','Queue','name','calleridnum','ContactId','dialer','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','monitor_format','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','originatecalleridnum','originatecalleridname','_XCALLY_MIXMONITOR_UNIQUEID','Contact','hasOwnProperty','tags','createdAt','updatedAt','%s%s','XMD-','toUpper','toLowerVariables','toLower','updateOriginated','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','Blacklist','responsetime','endtime','statedesc','ringtime','starttime','membername','talktime','answertime','variablesAction','RECALL','calleridname','BOOKED','uniqueid','originate','channelAgent','xcally-motion-preview','from-sip','timeout','totalGlobal','countbusyretry','countcongestionretry','countnoanswerretry','countagentrejectretry','countnosuchnumberretry','cloneAction','clone','Global','active','scheduledat','minutes','ListId','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','lastevent','queue','interface','motionChannel','voice','mandatoryDisposition','buildObj','buildAcw','agentReadyId','not_inuse','status','reachable','push','createBody','CampaignId','filterKey','idContact','campaigntype','dialAnswer','countglobal','callbackuniqueid','callbackat','UserId','sipcallid','xmd-voicequeueid','xmd-queue','xmd-listid','xmd-dialurl','xmd-dialtimeout','xmd-dialoptions','xmd-dialchannel','xmd-callerid','xmd-agiafter','xmd-agi','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqos','rtpaudioqosrttbridged','bridgepvtcallid','pow','replace','random','extractCalleridName','extractCalleridNumber','noanswer','variables'];(function(_0x575f10,_0x2da96a){var _0x1aa2fb=function(_0x420d93){while(--_0x420d93){_0x575f10['push'](_0x575f10['shift']());}};_0x1aa2fb(++_0x2da96a);}(_0x92e1,0x1c8));var _0x192e=function(_0x1abb09,_0x18ee91){_0x1abb09=_0x1abb09-0x0;var _0xea1c07=_0x92e1[_0x1abb09];return _0xea1c07;};'use strict';var util=require(_0x192e('0x0'));var _=require(_0x192e('0x1'));var moment=require(_0x192e('0x2'));var logger=require(_0x192e('0x3'))(_0x192e('0x4'));var ipAgi=process[_0x192e('0x5')][_0x192e('0x6')]||_0x192e('0x7');function getSeconds(_0x2b2fa1,_0x263e6e){var _0x351aab=moment(_0x2b2fa1)[_0x192e('0x8')](0x0);var _0x10efd1=moment(_0x263e6e)[_0x192e('0x8')](0x0);return _0x351aab[_0x192e('0x9')](_0x10efd1,_0x192e('0xa'));}exports[_0x192e('0xb')]=function(_0x4cdcb7){return function(_0x99bf41){logger[_0x192e('0xc')](_0x4cdcb7,util[_0x192e('0xd')](_0x99bf41,{'showHidden':![],'depth':null}));};};exports[_0x192e('0xe')]=function(_0x5ee574,_0x4a44a1){logger[_0x192e('0xf')](_0x5ee574,util[_0x192e('0xd')](_0x4a44a1,{'showHidden':![],'depth':null}));};exports['loggerError']=function(_0x21d125,_0x30a7df){logger[_0x192e('0xc')](_0x21d125,util[_0x192e('0xd')](_0x30a7df,{'showHidden':![],'depth':null}));};exports['logger2']=function(_0x59fa48){return function(_0x53330d){logger[_0x192e('0xf')](_0x59fa48,util['inspect'](_0x53330d,{'showHidden':![],'depth':null}));};};exports[_0x192e('0x10')]=function(_0x1704ac,_0x167fca,_0x26ef3e){return{'message':_0x1704ac,'unlock':_0x167fca,'active':_0x26ef3e};};exports[_0x192e('0x11')]=function(_0x1308bf,_0x4c5fdd,_0x3824f1){if(!_[_0x192e('0x12')](_0x3824f1)&&_0x192e('0x13')===typeof _0x3824f1&&!_[_0x192e('0x14')](_0x3824f1)){if(!_[_0x192e('0x12')](_0x4c5fdd)&&_0x192e('0x13')===typeof _0x4c5fdd&&!_['isEmpty'](_0x4c5fdd)){return util[_0x192e('0x15')](_0x192e('0x16'),_0x4c5fdd,_0x3824f1);}return util[_0x192e('0x15')](_0x192e('0x16'),_0x3824f1,_0x3824f1);}if(!_['isUndefined'](_0x1308bf)&&_0x192e('0x13')===typeof _0x1308bf&&!_[_0x192e('0x14')](_0x1308bf)){return _0x1308bf;}return'\x22\x22\x20<>';};exports[_0x192e('0x17')]=function(_0x4977b){if(_[_0x192e('0x18')](_0x4977b)){return![];}return _0x4977b;};exports[_0x192e('0x19')]=function(_0x4436ce,_0x24abcf,_0x5362e0,_0x47bf95,_0x5e7092,_0x5c2b8b){var _0x9480d1={'XMD-QUEUE':_0x24abcf[_0x192e('0x1a')]?_0x24abcf[_0x192e('0x1a')][_0x192e('0x1b')]:'','XMD-CALLERID':_0x47bf95,'XMD-CALLERID-PREVIEW':_0x5c2b8b?util[_0x192e('0x15')](_0x192e('0x16'),_0x5c2b8b['calleridname'],_0x5c2b8b[_0x192e('0x1c')]):_0x47bf95,'XMD-DIALID':_0x5e7092,'XMD-CONTACTID':_0x24abcf[_0x192e('0x1d')],'XMD-CDRTYPE':_0x192e('0x1e'),'CALLERID(all)':_0x47bf95,'XMD-VOICEQUEUEID':_0x24abcf[_0x192e('0x1f')],'XMD-DIALCHANNEL':_0x5362e0,'XMD-DIALTIMEOUT':_0x4436ce[_0x192e('0x20')]||0x1e,'XMD-DIALOPTIONS':util[_0x192e('0x15')](_0x192e('0x21'),_0x4436ce[_0x192e('0x22')]?'g':'',_[_0x192e('0x14')](_0x4436ce[_0x192e('0x23')])?'':_0x192e('0x24')),'XMD-DIALURL':_0x4436ce[_0x192e('0x25')]||'','XMD-AGI':_0x4436ce[_0x192e('0x26')]?util[_0x192e('0x15')](_0x192e('0x27'),ipAgi,_0x4436ce[_0x192e('0x26')]):'NONE','XMD-AGIAFTER':_0x4436ce[_0x192e('0x22')]?util[_0x192e('0x15')](_0x192e('0x27'),ipAgi,_0x4436ce[_0x192e('0x22')]):_0x192e('0x28'),'XMD-ORIGINATECALLERIDNUM':_0x5c2b8b?_0x5c2b8b[_0x192e('0x29')]:'','XMD-ORIGINATECALLERIDNAME':_0x5c2b8b?_0x5c2b8b[_0x192e('0x2a')]:'','XMD-DESTINATION':'xcally-motion-preview','SIPADDHEADER':'Call-Type:\x20PREVIEW'};if(!_[_0x192e('0x14')](_0x4436ce[_0x192e('0x23')])){_0x9480d1[util[_0x192e('0x15')]('%s','_XCALLY_MIXMONITOR_FORMAT')]=_0x4436ce[_0x192e('0x23')];_0x9480d1[util['format']('%s',_0x192e('0x2b'))]=_0x5e7092;}if(_0x24abcf&&_0x24abcf[_0x192e('0x2c')]){for(var _0x14388d in _0x24abcf[_0x192e('0x2c')]){if(_0x24abcf[_0x192e('0x2c')][_0x192e('0x2d')](_0x14388d)){if(!_[_0x192e('0x18')](_0x24abcf[_0x192e('0x2c')][_0x14388d])&&_0x14388d!=='id'&&_0x14388d!==_0x192e('0x2e')&&_0x14388d!==_0x192e('0x2f')&&_0x14388d!==_0x192e('0x30')){_0x9480d1[util[_0x192e('0x15')](_0x192e('0x31'),_0x192e('0x32'),_[_0x192e('0x33')](_0x14388d))]=_0x24abcf[_0x192e('0x2c')][_0x14388d];}}}}return _0x9480d1;};exports[_0x192e('0x34')]=function(_0xbb4103){var _0x47d7a3={};for(var _0x4b9b8e in _0xbb4103){if(_0xbb4103[_0x192e('0x2d')](_0x4b9b8e)){_0x47d7a3[util[_0x192e('0x15')]('%s',_[_0x192e('0x35')](_0x4b9b8e))]=_0xbb4103[_0x4b9b8e];}}return{'variables':_0x47d7a3};};exports[_0x192e('0x36')]=function(_0x2b3b34,_0x5335e8){if(!_[_0x192e('0x18')](_0x2b3b34)){if(_0x2b3b34[_0x192e('0x2d')]('originated')){if(_0x2b3b34[_0x192e('0x37')]>0x0){_0x2b3b34[_0x192e('0x37')]-=0x1;}else{logger[_0x192e('0xc')](_0x192e('0x38'),_0x5335e8);}}}else{logger['error'](_0x192e('0x39'),_0x5335e8);}};exports[_0x192e('0x3a')]=function(_0x41a236){var _0x61f1da=moment()[_0x192e('0x15')](_0x192e('0x3b'));_0x41a236[_0x192e('0x3c')]=0xd;_0x41a236['statedesc']=_0x192e('0x3d');_0x41a236['starttime']=_0x61f1da;_0x41a236[_0x192e('0x3e')]=_0x61f1da;_0x41a236[_0x192e('0x3f')]=_0x61f1da;};exports['logAgent']=function(_0xcedcb8,_0x53c5dd,_0x20cbf8){var _0x19e31c=moment()[_0x192e('0x15')](_0x192e('0x3b'));_0xcedcb8[_0x192e('0x3c')]=_0x53c5dd;_0xcedcb8[_0x192e('0x40')]=_0x20cbf8;_0xcedcb8[_0x192e('0x3e')]=_0x19e31c;_0xcedcb8[_0x192e('0x41')]=getSeconds(_0xcedcb8[_0x192e('0x3e')],_0xcedcb8[_0x192e('0x42')]);};exports['logLookAgent']=function(_0x59881b,_0x22602a,_0x110a93){_0x59881b[_0x192e('0x43')]=_0x22602a;_0x59881b['UserId']=_0x110a93;};exports['logCustomer']=function(_0x11e4e2,_0x4c92c4,_0x35d34f){var _0x1add7c=moment()[_0x192e('0x15')](_0x192e('0x3b'));_0x11e4e2[_0x192e('0x3c')]=_0x4c92c4;_0x11e4e2[_0x192e('0x40')]=_0x35d34f;_0x11e4e2[_0x192e('0x3e')]=_0x11e4e2[_0x192e('0x3e')]?_0x11e4e2[_0x192e('0x3e')]:_0x1add7c;_0x11e4e2[_0x192e('0x3f')]=_0x11e4e2['endtime']?_0x11e4e2[_0x192e('0x3f')]:_0x1add7c;_0x11e4e2[_0x192e('0x41')]=getSeconds(_0x11e4e2[_0x192e('0x3e')]||0x0,_0x11e4e2['starttime']||0x0);_0x11e4e2[_0x192e('0x44')]=_0x11e4e2['answertime']?getSeconds(_0x11e4e2[_0x192e('0x3f')],_0x11e4e2[_0x192e('0x45')]):0x0;};exports['isFailure']=function(_0x708884){return _0x708884==='Failure';};exports[_0x192e('0x46')]=function(_0x120e5d,_0xef1050,_0x22d869,_0x319d56,_0x3c8f36){var _0x4d04b2=_0x319d56?_0x192e('0x47'):_0x120e5d[_0x192e('0x48')];_0x4d04b2=_0x3c8f36?_0x192e('0x49'):_0x4d04b2;return{'actionid':_0x120e5d[_0x192e('0x4a')],'action':_0x192e('0x4b'),'channel':_0x120e5d[_0x192e('0x4c')],'callerid':util[_0x192e('0x15')](_0x192e('0x16'),_0x4d04b2,_0x120e5d[_0x192e('0x1c')]),'Exten':_0x192e('0x4d'),'Context':_0x192e('0x4e'),'Priority':'1','variable':_0x22d869,'timeout':(_0xef1050[_0x192e('0x4f')]||0x1e)*0x3e8,'async':!![],'channelid':_0x120e5d['uniqueid']};};exports[_0x192e('0x50')]=function(_0x4ef64d){return _0x4ef64d[_0x192e('0x51')]+_0x4ef64d[_0x192e('0x52')]+_0x4ef64d[_0x192e('0x53')]+_0x4ef64d[_0x192e('0x54')]+_0x4ef64d[_0x192e('0x55')];};exports[_0x192e('0x56')]=function(_0x1533c9){var _0x24c1d4=_[_0x192e('0x57')](_0x1533c9);_0x24c1d4[_0x192e('0x3c')]=0xf;_0x24c1d4[_0x192e('0x40')]=_0x192e('0x58');return _0x24c1d4;};exports['scheduledAt']=function(_0xd088b9,_0x2c0b52,_0x35f71b){var _0x5c9b29={};_0x5c9b29[_0x2c0b52]=_0xd088b9[_0x2c0b52];_0x5c9b29[_0x192e('0x59')]=![];_0x5c9b29[_0x192e('0x5a')]=moment()['add'](_0x35f71b,_0x192e('0x5b'))['format']('YYYY-MM-DD\x20HH:mm:ss');_0x5c9b29[_0x192e('0x1d')]=_0xd088b9[_0x192e('0x1d')];_0x5c9b29[_0x192e('0x5c')]=_0xd088b9[_0x192e('0x5c')];_0x5c9b29[_0x192e('0x1f')]=_0xd088b9[_0x192e('0x1f')]||undefined;return _0x5c9b29;};exports[_0x192e('0x5d')]=function(_0x4a9883,_0x46ef4c){if(!_['isNil'](_0x4a9883)){if(_0x4a9883['pTalking']>0x0){_0x4a9883[_0x192e('0x5e')]-=0x1;}else{logger[_0x192e('0xc')](_0x46ef4c,_0x192e('0x5f'));}}else{logger[_0x192e('0xc')](_0x46ef4c,_0x192e('0x60'));}};exports[_0x192e('0x61')]=function(_0x4f3f58){if(_0x4f3f58<=0x0){return!![];}return![];};function buildObj(_0x5dbe93,_0x8fe797,_0x9f806c){_0x5dbe93[_0x192e('0x62')]=_0x8fe797;_0x5dbe93[_0x192e('0x1b')]=_0x5dbe93[_0x192e('0x63')];_0x5dbe93[_0x192e('0x64')]=_0x5dbe93['channelAgent'];_0x5dbe93[_0x192e('0x65')]=_0x192e('0x66');if(_0x9f806c){_0x5dbe93['mandatoryDisposition']=_0x9f806c[_0x192e('0x67')];}return _0x5dbe93;}exports[_0x192e('0x68')]=buildObj;exports[_0x192e('0x69')]=function(_0x115f13){var _0xa09c0c={};_0xa09c0c['queue']=_0x115f13['queue'];_0xa09c0c['interface']=_0x115f13[_0x192e('0x4c')];_0xa09c0c[_0x192e('0x4a')]=_0x115f13['uniqueid'];return _0xa09c0c;};exports[_0x192e('0x6a')]=function(_0x56a51b){var _0x2c61b1=[];for(var _0x2ce32d in _0x56a51b){if(_0x56a51b[_0x192e('0x2d')](_0x2ce32d)){if(!_['isNil'](_0x56a51b[_0x2ce32d])&&_0x56a51b[_0x2ce32d]['state']===_0x192e('0x6b')&&_0x56a51b[_0x2ce32d][_0x192e('0x6c')]===_0x192e('0x6d')){_0x2c61b1[_0x192e('0x6e')](_0x56a51b[_0x2ce32d]['id']);}}}return _0x2c61b1;};exports['getDiff']=function(_0x2fd794){var _0x190a21=moment()[_0x192e('0x8')](0x0);var _0x44aeae=moment(_0x2fd794)[_0x192e('0x8')](0x0);return _0x190a21[_0x192e('0x9')](_0x44aeae,_0x192e('0xa'));};exports[_0x192e('0x6f')]=function(_0x129977){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x129977[_0x192e('0x1d')],'ListId':_0x129977[_0x192e('0x5c')],'VoiceQueueId':_0x129977[_0x192e('0x1f')]||undefined,'CampaignId':_0x129977[_0x192e('0x70')]||undefined};};exports[_0x192e('0x71')]=function(_0x4082e7){if(_0x4082e7===_0x192e('0x4a')||_0x4082e7===_0x192e('0x72')||_0x4082e7===_0x192e('0x63')||_0x4082e7==='type'||_0x4082e7===_0x192e('0x73')||_0x4082e7===_0x192e('0x74')||_0x4082e7===_0x192e('0x43')||_0x4082e7==='channelAgent'||_0x4082e7===_0x192e('0x48')||_0x4082e7==='active'||_0x4082e7==='calleridnum'||_0x4082e7===_0x192e('0x5a')||_0x4082e7===_0x192e('0x51')||_0x4082e7===_0x192e('0x52')||_0x4082e7===_0x192e('0x53')||_0x4082e7===_0x192e('0x75')||_0x4082e7==='callback'||_0x4082e7===_0x192e('0x76')||_0x4082e7===_0x192e('0x77')||_0x4082e7==='recallme'||_0x4082e7===_0x192e('0x1d')||_0x4082e7===_0x192e('0x5c')||_0x4082e7===_0x192e('0x78')||_0x4082e7===_0x192e('0x1f')||_0x4082e7===_0x192e('0x79')||_0x4082e7===_0x192e('0x7a')||_0x4082e7===_0x192e('0x7b')||_0x4082e7==='xmd-phone'||_0x4082e7===_0x192e('0x7c')||_0x4082e7===_0x192e('0x7d')||_0x4082e7===_0x192e('0x7e')||_0x4082e7===_0x192e('0x7f')||_0x4082e7==='xmd-dialid'||_0x4082e7===_0x192e('0x80')||_0x4082e7==='xmd-contactid'||_0x4082e7==='xmd-cdrtype'||_0x4082e7===_0x192e('0x81')||_0x4082e7===_0x192e('0x82')||_0x4082e7===_0x192e('0x83')||_0x4082e7==='rtpaudioqos'||_0x4082e7===_0x192e('0x84')||_0x4082e7===_0x192e('0x85')||_0x4082e7===_0x192e('0x86')||_0x4082e7===_0x192e('0x87')||_0x4082e7===_0x192e('0x88')||_0x4082e7===_0x192e('0x89')||_0x4082e7==='rtpaudioqosrttbridged'||_0x4082e7===_0x192e('0x8a')||_0x4082e7===_0x192e('0x84')||_0x4082e7===_0x192e('0x85')||_0x4082e7===_0x192e('0x86')||_0x4082e7===_0x192e('0x87')||_0x4082e7===_0x192e('0x88')||_0x4082e7===_0x192e('0x89')||_0x4082e7===_0x192e('0x8b')||_0x4082e7==='bridgepeer'||_0x4082e7===_0x192e('0x8c')||_0x4082e7===_0x192e('0x3c')||_0x4082e7==='statedesc'){return![];}return!![];};exports['getCallerIdRandom']=function(_0x283158,_0xb7e887){var _0x21f13f,_0x540928,_0x1212e8;if(_0xb7e887<=0x0){_0xb7e887=0x1;}_0x21f13f=new RegExp('\x5cw{0,'+_0xb7e887+'}$');_0x540928=Math[_0x192e('0x8d')](0xa,_0xb7e887-0x1);_0x1212e8=Math[_0x192e('0x8d')](0xa,_0xb7e887)-0x1;return util[_0x192e('0x15')]('%s',_[_0x192e('0x8e')](_0x283158,_0x21f13f,_[_0x192e('0x8f')](_0x540928,_0x1212e8)));};exports[_0x192e('0x90')]=function(_0x9b4df2){var _0x135758=_0x9b4df2['match'](/"(.*?)"/);return _0x135758?_0x135758[0x1]:_0x9b4df2;};exports[_0x192e('0x91')]=function(_0x59435d){var _0x43c710=_0x59435d['match'](/<(.*?)>/);return _0x43c710?_0x43c710[0x1]:_0x59435d;};function buildNoAnswerEventPayload(_0x1bc56c,_0x512ffa){var _0x22959a=buildObj(_0x1bc56c,_0x192e('0x92'));if(!_['isEmpty'](_0x512ffa[_0x192e('0x93')])){Object['keys'](_0x512ffa[_0x192e('0x93')])[_0x192e('0x94')](function(_0x565e8f){_0x22959a[_0x565e8f[_0x192e('0x95')]()]=_0x512ffa[_0x192e('0x93')][_0x565e8f];});}return _0x22959a;}exports[_0x192e('0x96')]=buildNoAnswerEventPayload;