Built motion from commit 616d3211.|2.6.4
[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 _0x33c9=['rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','rtpaudioqosjitterbridged','bridgepeer','bridgepvtcallid','getCallerIdRandom','\x5cw{0,','pow','replace','random','match','util','lodash','preview','env','XCALLY_IP_AGI','127.0.0.1','milliseconds','seconds','loggerCatch','error','inspect','logger','info','loggerError','logger2','message','string','isUndefined','isEmpty','\x22%s\x22\x20<%s>','format','\x22\x22\x20<>','Queue','name','calleridname','calleridnum','ContactId','VoiceQueueId','dialOriginateTimeout','monitor_format','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','NONE','\x22agi://%s/square,%s\x22','dialQueueProject2','originatecalleridnum','originatecalleridname','xcally-motion-preview','Call-Type:\x20PREVIEW','_XCALLY_MIXMONITOR_FORMAT','Contact','isNil','tags','updatedAt','%s%s','XMD-','toLowerVariables','hasOwnProperty','toLower','updateOriginated','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','statedesc','Blacklist','starttime','logAgent','responsetime','ringtime','logLookAgent','membername','UserId','logCustomer','endtime','talktime','answertime','Failure','variablesAction','RECALL','BOOKED','uniqueid','originate','channelAgent','from-sip','timeout','totalGlobal','countcongestionretry','countnoanswerretry','countagentrejectretry','clone','Global','scheduledAt','active','scheduledat','minutes','ListId','decrementTalkink','pTalking','IsNotLoggedIn','lastevent','queue','motionChannel','mandatoryDisposition','buildAcw','interface','agentReadyId','not_inuse','status','reachable','getDiff','diff','createBody','CampaignId','idContact','type','dialAnswer','countglobal','callback','callbackuniqueid','recallme','sipcallid','xmd-voicequeueid','xmd-queue','xmd-phone','xmd-listid','xmd-dialtimeout','xmd-dialoptions','xmd-dialchannel','xmd-contactid','xmd-cdrtype','xmd-callerid','xmd-agiafter','rtpaudioqos','rtpaudioqosjitter'];(function(_0x4bccb1,_0xe85b9e){var _0x3c3681=function(_0x5426b4){while(--_0x5426b4){_0x4bccb1['push'](_0x4bccb1['shift']());}};_0x3c3681(++_0xe85b9e);}(_0x33c9,0x9a));var _0x933c=function(_0x2e9db0,_0x1cc92b){_0x2e9db0=_0x2e9db0-0x0;var _0x3f910c=_0x33c9[_0x2e9db0];return _0x3f910c;};'use strict';var util=require(_0x933c('0x0'));var _=require(_0x933c('0x1'));var moment=require('moment');var logger=require('../../../../config/logger')(_0x933c('0x2'));var ipAgi=process[_0x933c('0x3')][_0x933c('0x4')]||_0x933c('0x5');function getSeconds(_0x457e1d,_0x1e7adc){var _0x334dea=moment(_0x457e1d)['milliseconds'](0x0);var _0x3cbc46=moment(_0x1e7adc)[_0x933c('0x6')](0x0);return _0x334dea['diff'](_0x3cbc46,_0x933c('0x7'));}exports[_0x933c('0x8')]=function(_0x13278f){return function(_0x28eb57){logger[_0x933c('0x9')](_0x13278f,util[_0x933c('0xa')](_0x28eb57,{'showHidden':![],'depth':null}));};};exports[_0x933c('0xb')]=function(_0x77d23,_0x14fc91){logger[_0x933c('0xc')](_0x77d23,util[_0x933c('0xa')](_0x14fc91,{'showHidden':![],'depth':null}));};exports[_0x933c('0xd')]=function(_0xbbcc1e,_0x42c1c9){logger[_0x933c('0x9')](_0xbbcc1e,util['inspect'](_0x42c1c9,{'showHidden':![],'depth':null}));};exports[_0x933c('0xe')]=function(_0x42caea){return function(_0x42d653){logger['info'](_0x42caea,util[_0x933c('0xa')](_0x42d653,{'showHidden':![],'depth':null}));};};exports[_0x933c('0xf')]=function(_0x31c0c6,_0x560917,_0x4ef100){return{'message':_0x31c0c6,'unlock':_0x560917,'active':_0x4ef100};};exports['getCallerId']=function(_0x1112ca,_0x4f1424,_0x590696){if(!_['isUndefined'](_0x590696)&&_0x933c('0x10')===typeof _0x590696&&!_['isEmpty'](_0x590696)){if(!_[_0x933c('0x11')](_0x4f1424)&&_0x933c('0x10')===typeof _0x4f1424&&!_[_0x933c('0x12')](_0x4f1424)){return util['format'](_0x933c('0x13'),_0x4f1424,_0x590696);}return util[_0x933c('0x14')](_0x933c('0x13'),_0x590696,_0x590696);}if(!_[_0x933c('0x11')](_0x1112ca)&&_0x933c('0x10')===typeof _0x1112ca&&!_[_0x933c('0x12')](_0x1112ca)){return _0x1112ca;}return _0x933c('0x15');};exports['isActive']=function(_0x95816a){if(_['isNil'](_0x95816a)){return![];}return _0x95816a;};exports['addVariables']=function(_0x4cf1da,_0x2474a0,_0x4ee1bd,_0x1e9583,_0x5c9930,_0x73eacc){var _0x587812={'XMD-QUEUE':_0x2474a0['Queue']?_0x2474a0[_0x933c('0x16')][_0x933c('0x17')]:'','XMD-CALLERID':_0x1e9583,'XMD-CALLERID-PREVIEW':_0x73eacc?util[_0x933c('0x14')]('\x22%s\x22\x20<%s>',_0x73eacc[_0x933c('0x18')],_0x73eacc[_0x933c('0x19')]):_0x1e9583,'XMD-DIALID':_0x5c9930,'XMD-CONTACTID':_0x2474a0[_0x933c('0x1a')],'XMD-CDRTYPE':'dialer','CALLERID(all)':_0x1e9583,'XMD-VOICEQUEUEID':_0x2474a0[_0x933c('0x1b')],'XMD-DIALCHANNEL':_0x4ee1bd,'XMD-DIALTIMEOUT':_0x4cf1da[_0x933c('0x1c')]||0x1e,'XMD-DIALOPTIONS':util['format']('\x22rtTxX%s%s\x22',_0x4cf1da['dialQueueProject2']?'g':'',_['isEmpty'](_0x4cf1da[_0x933c('0x1d')])?'':_0x933c('0x1e')),'XMD-DIALURL':_0x4cf1da[_0x933c('0x1f')]||'','XMD-AGI':_0x4cf1da['dialQueueProject']?util[_0x933c('0x14')]('\x22agi://%s/square,%s\x22',ipAgi,_0x4cf1da[_0x933c('0x20')]):_0x933c('0x21'),'XMD-AGIAFTER':_0x4cf1da['dialQueueProject2']?util[_0x933c('0x14')](_0x933c('0x22'),ipAgi,_0x4cf1da[_0x933c('0x23')]):_0x933c('0x21'),'XMD-ORIGINATECALLERIDNUM':_0x73eacc?_0x73eacc[_0x933c('0x24')]:'','XMD-ORIGINATECALLERIDNAME':_0x73eacc?_0x73eacc[_0x933c('0x25')]:'','XMD-DESTINATION':_0x933c('0x26'),'SIPADDHEADER':_0x933c('0x27')};if(!_[_0x933c('0x12')](_0x4cf1da[_0x933c('0x1d')])){_0x587812[util[_0x933c('0x14')]('%s',_0x933c('0x28'))]=_0x4cf1da[_0x933c('0x1d')];_0x587812[util['format']('%s','_XCALLY_MIXMONITOR_UNIQUEID')]=_0x5c9930;}if(_0x2474a0&&_0x2474a0[_0x933c('0x29')]){for(var _0x77e6a3 in _0x2474a0[_0x933c('0x29')]){if(_0x2474a0[_0x933c('0x29')]['hasOwnProperty'](_0x77e6a3)){if(!_[_0x933c('0x2a')](_0x2474a0['Contact'][_0x77e6a3])&&_0x77e6a3!=='id'&&_0x77e6a3!==_0x933c('0x2b')&&_0x77e6a3!=='createdAt'&&_0x77e6a3!==_0x933c('0x2c')){_0x587812[util['format'](_0x933c('0x2d'),_0x933c('0x2e'),_['toUpper'](_0x77e6a3))]=_0x2474a0['Contact'][_0x77e6a3];}}}}return _0x587812;};exports[_0x933c('0x2f')]=function(_0x90328){var _0xb80c8a={};for(var _0x1fdc16 in _0x90328){if(_0x90328[_0x933c('0x30')](_0x1fdc16)){_0xb80c8a[util['format']('%s',_[_0x933c('0x31')](_0x1fdc16))]=_0x90328[_0x1fdc16];}}return{'variables':_0xb80c8a};};exports[_0x933c('0x32')]=function(_0x40105c,_0x4c0f53){if(!_[_0x933c('0x2a')](_0x40105c)){if(_0x40105c[_0x933c('0x30')]('originated')){if(_0x40105c[_0x933c('0x33')]>0x0){_0x40105c[_0x933c('0x33')]-=0x1;}else{logger['error'](_0x933c('0x34'),_0x4c0f53);}}}else{logger[_0x933c('0x9')](_0x933c('0x35'),_0x4c0f53);}};exports[_0x933c('0x36')]=function(_0x14deac){var _0x2d242d=moment()[_0x933c('0x14')](_0x933c('0x37'));_0x14deac[_0x933c('0x38')]=0xd;_0x14deac[_0x933c('0x39')]=_0x933c('0x3a');_0x14deac[_0x933c('0x3b')]=_0x2d242d;_0x14deac['responsetime']=_0x2d242d;_0x14deac['endtime']=_0x2d242d;};exports[_0x933c('0x3c')]=function(_0x4827b4,_0xae6d8b,_0xc19f17){var _0x50e2ff=moment()[_0x933c('0x14')](_0x933c('0x37'));_0x4827b4[_0x933c('0x38')]=_0xae6d8b;_0x4827b4[_0x933c('0x39')]=_0xc19f17;_0x4827b4[_0x933c('0x3d')]=_0x50e2ff;_0x4827b4[_0x933c('0x3e')]=getSeconds(_0x4827b4[_0x933c('0x3d')],_0x4827b4[_0x933c('0x3b')]);};exports[_0x933c('0x3f')]=function(_0x37faf0,_0x45b70a,_0x51a376){_0x37faf0[_0x933c('0x40')]=_0x45b70a;_0x37faf0[_0x933c('0x41')]=_0x51a376;};exports[_0x933c('0x42')]=function(_0x2b98a2,_0x1985be,_0x443eae){var _0x31b2d1=moment()['format'](_0x933c('0x37'));_0x2b98a2[_0x933c('0x38')]=_0x1985be;_0x2b98a2[_0x933c('0x39')]=_0x443eae;_0x2b98a2['responsetime']=_0x2b98a2[_0x933c('0x3d')]?_0x2b98a2[_0x933c('0x3d')]:_0x31b2d1;_0x2b98a2[_0x933c('0x43')]=_0x2b98a2[_0x933c('0x43')]?_0x2b98a2[_0x933c('0x43')]:_0x31b2d1;_0x2b98a2[_0x933c('0x3e')]=getSeconds(_0x2b98a2[_0x933c('0x3d')]||0x0,_0x2b98a2['starttime']||0x0);_0x2b98a2[_0x933c('0x44')]=_0x2b98a2[_0x933c('0x45')]?getSeconds(_0x2b98a2[_0x933c('0x43')],_0x2b98a2[_0x933c('0x45')]):0x0;};exports['isFailure']=function(_0x632c32){return _0x632c32===_0x933c('0x46');};exports[_0x933c('0x47')]=function(_0x1c2e53,_0xbc493f,_0x2d12a1,_0x3e5f13,_0x51ef4c){var _0x384e46=_0x3e5f13?_0x933c('0x48'):_0x1c2e53[_0x933c('0x18')];_0x384e46=_0x51ef4c?_0x933c('0x49'):_0x384e46;return{'actionid':_0x1c2e53[_0x933c('0x4a')],'action':_0x933c('0x4b'),'channel':_0x1c2e53[_0x933c('0x4c')],'callerid':util[_0x933c('0x14')](_0x933c('0x13'),_0x384e46,_0x1c2e53[_0x933c('0x19')]),'Exten':_0x933c('0x26'),'Context':_0x933c('0x4d'),'Priority':'1','variable':_0x2d12a1,'timeout':(_0xbc493f[_0x933c('0x4e')]||0x1e)*0x3e8,'async':!![],'channelid':_0x1c2e53[_0x933c('0x4a')]};};exports[_0x933c('0x4f')]=function(_0x5b2c48){return _0x5b2c48['countbusyretry']+_0x5b2c48[_0x933c('0x50')]+_0x5b2c48[_0x933c('0x51')]+_0x5b2c48[_0x933c('0x52')]+_0x5b2c48['countnosuchnumberretry'];};exports['cloneAction']=function(_0x50e8f6){var _0x39d524=_[_0x933c('0x53')](_0x50e8f6);_0x39d524['state']=0xf;_0x39d524[_0x933c('0x39')]=_0x933c('0x54');return _0x39d524;};exports[_0x933c('0x55')]=function(_0x23a4f2,_0x51d07c,_0xe690f9){var _0x5ec23a={};_0x5ec23a[_0x51d07c]=_0x23a4f2[_0x51d07c];_0x5ec23a[_0x933c('0x56')]=![];_0x5ec23a[_0x933c('0x57')]=moment()['add'](_0xe690f9,_0x933c('0x58'))[_0x933c('0x14')](_0x933c('0x37'));_0x5ec23a['ContactId']=_0x23a4f2[_0x933c('0x1a')];_0x5ec23a[_0x933c('0x59')]=_0x23a4f2[_0x933c('0x59')];_0x5ec23a[_0x933c('0x1b')]=_0x23a4f2[_0x933c('0x1b')]||undefined;return _0x5ec23a;};exports[_0x933c('0x5a')]=function(_0x5883ad,_0xde20dc){if(!_[_0x933c('0x2a')](_0x5883ad)){if(_0x5883ad[_0x933c('0x5b')]>0x0){_0x5883ad[_0x933c('0x5b')]-=0x1;}else{logger[_0x933c('0x9')](_0xde20dc,'[decrementTalkink]\x20object\x20talking\x20is\x20negative');}}else{logger['error'](_0xde20dc,'[decrementTalkink]\x20is\x20null\x20or\x20undefined');}};exports[_0x933c('0x5c')]=function(_0x59c372){if(_0x59c372<=0x0){return!![];}return![];};exports['buildObj']=function(_0x48432e,_0x24ef3e,_0x1a361a){_0x48432e[_0x933c('0x5d')]=_0x24ef3e;_0x48432e[_0x933c('0x17')]=_0x48432e[_0x933c('0x5e')];_0x48432e['interface']=_0x48432e[_0x933c('0x4c')];_0x48432e[_0x933c('0x5f')]='voice';if(_0x1a361a){_0x48432e[_0x933c('0x60')]=_0x1a361a[_0x933c('0x60')];}return _0x48432e;};exports[_0x933c('0x61')]=function(_0xdd4137){var _0x1f0580={};_0x1f0580['queue']=_0xdd4137[_0x933c('0x5e')];_0x1f0580[_0x933c('0x62')]=_0xdd4137[_0x933c('0x4c')];_0x1f0580[_0x933c('0x4a')]=_0xdd4137[_0x933c('0x4a')];return _0x1f0580;};exports[_0x933c('0x63')]=function(_0x38f619){var _0x4da382=[];for(var _0x3ada88 in _0x38f619){if(_0x38f619[_0x933c('0x30')](_0x3ada88)){if(!_[_0x933c('0x2a')](_0x38f619[_0x3ada88])&&_0x38f619[_0x3ada88][_0x933c('0x38')]===_0x933c('0x64')&&_0x38f619[_0x3ada88][_0x933c('0x65')]===_0x933c('0x66')){_0x4da382['push'](_0x38f619[_0x3ada88]['id']);}}}return _0x4da382;};exports[_0x933c('0x67')]=function(_0x16e3fa){var _0x8a74dd=moment()[_0x933c('0x6')](0x0);var _0x21fdcb=moment(_0x16e3fa)[_0x933c('0x6')](0x0);return _0x8a74dd[_0x933c('0x68')](_0x21fdcb,_0x933c('0x7'));};exports[_0x933c('0x69')]=function(_0x4a7859){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x4a7859['ContactId'],'ListId':_0x4a7859[_0x933c('0x59')],'VoiceQueueId':_0x4a7859[_0x933c('0x1b')]||undefined,'CampaignId':_0x4a7859[_0x933c('0x6a')]||undefined};};exports['filterKey']=function(_0x293f51){if(_0x293f51===_0x933c('0x4a')||_0x293f51===_0x933c('0x6b')||_0x293f51===_0x933c('0x5e')||_0x293f51===_0x933c('0x6c')||_0x293f51==='campaigntype'||_0x293f51===_0x933c('0x6d')||_0x293f51===_0x933c('0x40')||_0x293f51===_0x933c('0x4c')||_0x293f51==='calleridname'||_0x293f51==='active'||_0x293f51===_0x933c('0x19')||_0x293f51==='scheduledat'||_0x293f51==='countbusyretry'||_0x293f51===_0x933c('0x50')||_0x293f51==='countnoanswerretry'||_0x293f51===_0x933c('0x6e')||_0x293f51===_0x933c('0x6f')||_0x293f51===_0x933c('0x70')||_0x293f51==='callbackat'||_0x293f51===_0x933c('0x71')||_0x293f51===_0x933c('0x1a')||_0x293f51==='ListId'||_0x293f51===_0x933c('0x41')||_0x293f51===_0x933c('0x1b')||_0x293f51===_0x933c('0x72')||_0x293f51===_0x933c('0x73')||_0x293f51===_0x933c('0x74')||_0x293f51===_0x933c('0x75')||_0x293f51===_0x933c('0x76')||_0x293f51==='xmd-dialurl'||_0x293f51===_0x933c('0x77')||_0x293f51===_0x933c('0x78')||_0x293f51==='xmd-dialid'||_0x293f51===_0x933c('0x79')||_0x293f51===_0x933c('0x7a')||_0x293f51===_0x933c('0x7b')||_0x293f51===_0x933c('0x7c')||_0x293f51===_0x933c('0x7d')||_0x293f51==='xmd-agi'||_0x293f51===_0x933c('0x7e')||_0x293f51==='rtpaudioqosbridged'||_0x293f51===_0x933c('0x7f')||_0x293f51==='rtpaudioqosjitterbridged'||_0x293f51===_0x933c('0x80')||_0x293f51===_0x933c('0x81')||_0x293f51===_0x933c('0x82')||_0x293f51===_0x933c('0x83')||_0x293f51===_0x933c('0x7e')||_0x293f51==='rtpaudioqosbridged'||_0x293f51==='rtpaudioqosjitter'||_0x293f51===_0x933c('0x84')||_0x293f51===_0x933c('0x80')||_0x293f51===_0x933c('0x81')||_0x293f51===_0x933c('0x82')||_0x293f51===_0x933c('0x83')||_0x293f51===_0x933c('0x85')||_0x293f51===_0x933c('0x86')||_0x293f51===_0x933c('0x38')||_0x293f51==='statedesc'){return![];}return!![];};exports[_0x933c('0x87')]=function(_0x2681d4,_0x591a83){var _0x40607a,_0x2ed108,_0x1de56a;if(_0x591a83<=0x0){_0x591a83=0x1;}_0x40607a=new RegExp(_0x933c('0x88')+_0x591a83+'}$');_0x2ed108=Math[_0x933c('0x89')](0xa,_0x591a83-0x1);_0x1de56a=Math[_0x933c('0x89')](0xa,_0x591a83)-0x1;return util['format']('%s',_[_0x933c('0x8a')](_0x2681d4,_0x40607a,_[_0x933c('0x8b')](_0x2ed108,_0x1de56a)));};exports['extractCalleridName']=function(_0x48c955){var _0x550240=_0x48c955[_0x933c('0x8c')](/"(.*?)"/);return _0x550240?_0x550240[0x1]:_0x48c955;};exports['extractCalleridNumber']=function(_0x5d72bd){var _0x264e7b=_0x5d72bd[_0x933c('0x8c')](/<(.*?)>/);return _0x264e7b?_0x264e7b[0x1]:_0x5d72bd;};