Built motion from commit (unavailable).|2.5.9
[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 _0xcbba=['campaigntype','countcongestionretry','countglobal','callbackuniqueid','callbackat','recallme','xmd-voicequeueid','xmd-queue','xmd-listid','xmd-dialoptions','xmd-dialid','xmd-dialchannel','xmd-contactid','xmd-cdrtype','xmd-agiafter','rtpaudioqos','rtpaudioqosbridged','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','bridgepeer','\x5cw{0,','pow','replace','random','extractCalleridNumber','match','util','lodash','moment','preview','env','XCALLY_IP_AGI','127.0.0.1','milliseconds','diff','seconds','info','inspect','loggerError','error','message','getCallerId','isUndefined','string','isEmpty','format','\x22%s\x22\x20<%s>','isActive','isNil','addVariables','Queue','name','calleridname','calleridnum','ContactId','dialer','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','monitor_format','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','originatecalleridnum','originatecalleridname','xcally-motion-preview','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','Contact','hasOwnProperty','tags','createdAt','XMD-','toUpper','toLower','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','statedesc','Blacklist','starttime','responsetime','endtime','logAgent','YYYY-MM-DD\x20HH:mm:ss','state','ringtime','logLookAgent','membername','UserId','talktime','answertime','isFailure','Failure','variablesAction','RECALL','BOOKED','uniqueid','channelAgent','totalGlobal','countbusyretry','countnoanswerretry','countagentrejectretry','countnosuchnumberretry','Global','scheduledAt','active','scheduledat','add','minutes','ListId','VoiceQueueId','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','buildObj','interface','mandatoryDisposition','queue','agentReadyId','not_inuse','status','push','createBody','CampaignId','filterKey','idContact','type'];(function(_0x4c07b8,_0xa1cfd9){var _0x30869e=function(_0x48a6f7){while(--_0x48a6f7){_0x4c07b8['push'](_0x4c07b8['shift']());}};_0x30869e(++_0xa1cfd9);}(_0xcbba,0xa1));var _0xacbb=function(_0x4b500f,_0x4a2398){_0x4b500f=_0x4b500f-0x0;var _0x1bd9e9=_0xcbba[_0x4b500f];return _0x1bd9e9;};'use strict';var util=require(_0xacbb('0x0'));var _=require(_0xacbb('0x1'));var moment=require(_0xacbb('0x2'));var logger=require('../../../../config/logger')(_0xacbb('0x3'));var ipAgi=process[_0xacbb('0x4')][_0xacbb('0x5')]||_0xacbb('0x6');function getSeconds(_0x24c99f,_0x1825fc){var _0x1ad1e1=moment(_0x24c99f)[_0xacbb('0x7')](0x0);var _0x34c4dd=moment(_0x1825fc)[_0xacbb('0x7')](0x0);return _0x1ad1e1[_0xacbb('0x8')](_0x34c4dd,_0xacbb('0x9'));}exports['loggerCatch']=function(_0x4fd0b7){return function(_0x210fda){logger['error'](_0x4fd0b7,util['inspect'](_0x210fda,{'showHidden':![],'depth':null}));};};exports['logger']=function(_0x3ac29d,_0x121c30){logger[_0xacbb('0xa')](_0x3ac29d,util[_0xacbb('0xb')](_0x121c30,{'showHidden':![],'depth':null}));};exports[_0xacbb('0xc')]=function(_0x598e4e,_0x27038f){logger[_0xacbb('0xd')](_0x598e4e,util['inspect'](_0x27038f,{'showHidden':![],'depth':null}));};exports['logger2']=function(_0x300e80){return function(_0x1e9de5){logger[_0xacbb('0xa')](_0x300e80,util['inspect'](_0x1e9de5,{'showHidden':![],'depth':null}));};};exports[_0xacbb('0xe')]=function(_0x447480,_0x4ae622,_0xdb06d3){return{'message':_0x447480,'unlock':_0x4ae622,'active':_0xdb06d3};};exports[_0xacbb('0xf')]=function(_0x562449,_0x370819,_0x1fd39f){if(!_[_0xacbb('0x10')](_0x1fd39f)&&_0xacbb('0x11')===typeof _0x1fd39f&&!_[_0xacbb('0x12')](_0x1fd39f)){if(!_['isUndefined'](_0x370819)&&_0xacbb('0x11')===typeof _0x370819&&!_[_0xacbb('0x12')](_0x370819)){return util[_0xacbb('0x13')](_0xacbb('0x14'),_0x370819,_0x1fd39f);}return util[_0xacbb('0x13')]('\x22%s\x22\x20<%s>',_0x1fd39f,_0x1fd39f);}if(!_[_0xacbb('0x10')](_0x562449)&&_0xacbb('0x11')===typeof _0x562449&&!_[_0xacbb('0x12')](_0x562449)){return _0x562449;}return'\x22\x22\x20<>';};exports[_0xacbb('0x15')]=function(_0x55c4ab){if(_[_0xacbb('0x16')](_0x55c4ab)){return![];}return _0x55c4ab;};exports[_0xacbb('0x17')]=function(_0x35353b,_0x56c7cd,_0x14e2af,_0x2d1442,_0x8abe92,_0x1b1e99){var _0x2c7cea={'XMD-QUEUE':_0x56c7cd[_0xacbb('0x18')]?_0x56c7cd[_0xacbb('0x18')][_0xacbb('0x19')]:'','XMD-CALLERID':_0x2d1442,'XMD-CALLERID-PREVIEW':_0x1b1e99?util[_0xacbb('0x13')]('\x22%s\x22\x20<%s>',_0x1b1e99[_0xacbb('0x1a')],_0x1b1e99[_0xacbb('0x1b')]):_0x2d1442,'XMD-DIALID':_0x8abe92,'XMD-CONTACTID':_0x56c7cd[_0xacbb('0x1c')],'XMD-CDRTYPE':_0xacbb('0x1d'),'CALLERID(all)':_0x2d1442,'XMD-VOICEQUEUEID':_0x56c7cd['VoiceQueueId'],'XMD-DIALCHANNEL':_0x14e2af,'XMD-DIALTIMEOUT':_0x35353b[_0xacbb('0x1e')]||0x1e,'XMD-DIALOPTIONS':util[_0xacbb('0x13')](_0xacbb('0x1f'),_0x35353b[_0xacbb('0x20')]?'g':'',_['isEmpty'](_0x35353b[_0xacbb('0x21')])?'':_0xacbb('0x22')),'XMD-DIALURL':_0x35353b[_0xacbb('0x23')]||'','XMD-AGI':_0x35353b[_0xacbb('0x24')]?util[_0xacbb('0x13')](_0xacbb('0x25'),ipAgi,_0x35353b['dialQueueProject']):_0xacbb('0x26'),'XMD-AGIAFTER':_0x35353b[_0xacbb('0x20')]?util[_0xacbb('0x13')](_0xacbb('0x25'),ipAgi,_0x35353b[_0xacbb('0x20')]):'NONE','XMD-ORIGINATECALLERIDNUM':_0x1b1e99?_0x1b1e99[_0xacbb('0x27')]:'','XMD-ORIGINATECALLERIDNAME':_0x1b1e99?_0x1b1e99[_0xacbb('0x28')]:'','XMD-DESTINATION':_0xacbb('0x29')};if(!_['isEmpty'](_0x35353b[_0xacbb('0x21')])){_0x2c7cea[util[_0xacbb('0x13')]('%s',_0xacbb('0x2a'))]=_0x35353b['monitor_format'];_0x2c7cea[util[_0xacbb('0x13')]('%s',_0xacbb('0x2b'))]=_0x8abe92;}if(_0x56c7cd&&_0x56c7cd[_0xacbb('0x2c')]){for(var _0x375cc9 in _0x56c7cd['Contact']){if(_0x56c7cd[_0xacbb('0x2c')][_0xacbb('0x2d')](_0x375cc9)){if(!_[_0xacbb('0x16')](_0x56c7cd['Contact'][_0x375cc9])&&_0x375cc9!=='id'&&_0x375cc9!==_0xacbb('0x2e')&&_0x375cc9!==_0xacbb('0x2f')&&_0x375cc9!=='updatedAt'){_0x2c7cea[util[_0xacbb('0x13')]('%s%s',_0xacbb('0x30'),_[_0xacbb('0x31')](_0x375cc9))]=_0x56c7cd['Contact'][_0x375cc9];}}}}return _0x2c7cea;};exports['toLowerVariables']=function(_0x1965f8){var _0x172715={};for(var _0x2ae5ec in _0x1965f8){if(_0x1965f8['hasOwnProperty'](_0x2ae5ec)){_0x172715[util[_0xacbb('0x13')]('%s',_[_0xacbb('0x32')](_0x2ae5ec))]=_0x1965f8[_0x2ae5ec];}}return{'variables':_0x172715};};exports['updateOriginated']=function(_0x25848f,_0x12dba6){if(!_[_0xacbb('0x16')](_0x25848f)){if(_0x25848f['hasOwnProperty'](_0xacbb('0x33'))){if(_0x25848f['originated']>0x0){_0x25848f['originated']-=0x1;}else{logger[_0xacbb('0xd')](_0xacbb('0x34'),_0x12dba6);}}}else{logger[_0xacbb('0xd')](_0xacbb('0x35'),_0x12dba6);}};exports[_0xacbb('0x36')]=function(_0x116333){var _0x3f428d=moment()[_0xacbb('0x13')]('YYYY-MM-DD\x20HH:mm:ss');_0x116333['state']=0xd;_0x116333[_0xacbb('0x37')]=_0xacbb('0x38');_0x116333[_0xacbb('0x39')]=_0x3f428d;_0x116333[_0xacbb('0x3a')]=_0x3f428d;_0x116333[_0xacbb('0x3b')]=_0x3f428d;};exports[_0xacbb('0x3c')]=function(_0x5434f5,_0x144e36,_0x45d301){var _0x596527=moment()[_0xacbb('0x13')](_0xacbb('0x3d'));_0x5434f5[_0xacbb('0x3e')]=_0x144e36;_0x5434f5[_0xacbb('0x37')]=_0x45d301;_0x5434f5[_0xacbb('0x3a')]=_0x596527;_0x5434f5[_0xacbb('0x3f')]=getSeconds(_0x5434f5['responsetime'],_0x5434f5[_0xacbb('0x39')]);};exports[_0xacbb('0x40')]=function(_0x5b90a1,_0x319bcb,_0x1c7946){_0x5b90a1[_0xacbb('0x41')]=_0x319bcb;_0x5b90a1[_0xacbb('0x42')]=_0x1c7946;};exports['logCustomer']=function(_0x3b6af6,_0x203bfe,_0xf020cb){var _0x36cfae=moment()[_0xacbb('0x13')]('YYYY-MM-DD\x20HH:mm:ss');_0x3b6af6['state']=_0x203bfe;_0x3b6af6[_0xacbb('0x37')]=_0xf020cb;_0x3b6af6[_0xacbb('0x3a')]=_0x3b6af6['responsetime']?_0x3b6af6['responsetime']:_0x36cfae;_0x3b6af6[_0xacbb('0x3b')]=_0x3b6af6[_0xacbb('0x3b')]?_0x3b6af6[_0xacbb('0x3b')]:_0x36cfae;_0x3b6af6[_0xacbb('0x3f')]=getSeconds(_0x3b6af6[_0xacbb('0x3a')]||0x0,_0x3b6af6['starttime']||0x0);_0x3b6af6[_0xacbb('0x43')]=_0x3b6af6[_0xacbb('0x44')]?getSeconds(_0x3b6af6[_0xacbb('0x3b')],_0x3b6af6[_0xacbb('0x44')]):0x0;};exports[_0xacbb('0x45')]=function(_0x395d1c){return _0x395d1c===_0xacbb('0x46');};exports[_0xacbb('0x47')]=function(_0x54b188,_0x2a6a3f,_0x4393e9,_0x3f7a0e,_0x9d5c30){var _0xc0450f=_0x3f7a0e?_0xacbb('0x48'):_0x54b188[_0xacbb('0x1a')];_0xc0450f=_0x9d5c30?_0xacbb('0x49'):_0xc0450f;return{'actionid':_0x54b188[_0xacbb('0x4a')],'action':'originate','channel':_0x54b188[_0xacbb('0x4b')],'callerid':util[_0xacbb('0x13')](_0xacbb('0x14'),_0xc0450f,_0x54b188['calleridnum']),'Exten':'xcally-motion-preview','Context':'from-sip','Priority':'1','variable':_0x4393e9,'timeout':(_0x2a6a3f['timeout']||0x1e)*0x3e8,'async':!![],'channelid':_0x54b188['uniqueid']};};exports[_0xacbb('0x4c')]=function(_0x3790aa){return _0x3790aa[_0xacbb('0x4d')]+_0x3790aa['countcongestionretry']+_0x3790aa[_0xacbb('0x4e')]+_0x3790aa[_0xacbb('0x4f')]+_0x3790aa[_0xacbb('0x50')];};exports['cloneAction']=function(_0x36218d){var _0x25aec6=_['clone'](_0x36218d);_0x25aec6[_0xacbb('0x3e')]=0xf;_0x25aec6[_0xacbb('0x37')]=_0xacbb('0x51');return _0x25aec6;};exports[_0xacbb('0x52')]=function(_0x468691,_0x395415,_0x1116bc){var _0x40bf8e={};_0x40bf8e[_0x395415]=_0x468691[_0x395415];_0x40bf8e[_0xacbb('0x53')]=![];_0x40bf8e[_0xacbb('0x54')]=moment()[_0xacbb('0x55')](_0x1116bc,_0xacbb('0x56'))[_0xacbb('0x13')](_0xacbb('0x3d'));_0x40bf8e[_0xacbb('0x1c')]=_0x468691[_0xacbb('0x1c')];_0x40bf8e[_0xacbb('0x57')]=_0x468691[_0xacbb('0x57')];_0x40bf8e[_0xacbb('0x58')]=_0x468691['VoiceQueueId']||undefined;return _0x40bf8e;};exports[_0xacbb('0x59')]=function(_0x23d9fb,_0x3542f6){if(!_[_0xacbb('0x16')](_0x23d9fb)){if(_0x23d9fb['pTalking']>0x0){_0x23d9fb[_0xacbb('0x5a')]-=0x1;}else{logger[_0xacbb('0xd')](_0x3542f6,_0xacbb('0x5b'));}}else{logger[_0xacbb('0xd')](_0x3542f6,_0xacbb('0x5c'));}};exports[_0xacbb('0x5d')]=function(_0x2b13ee){if(_0x2b13ee<=0x0){return!![];}return![];};exports[_0xacbb('0x5e')]=function(_0x290708,_0x1b616b,_0x59a0e6){_0x290708['lastevent']=_0x1b616b;_0x290708[_0xacbb('0x19')]=_0x290708['queue'];_0x290708[_0xacbb('0x5f')]=_0x290708[_0xacbb('0x4b')];if(_0x59a0e6){_0x290708[_0xacbb('0x60')]=_0x59a0e6['mandatoryDisposition'];}return _0x290708;};exports['buildAcw']=function(_0x274bdc){var _0x2e8d9a={};_0x2e8d9a['queue']=_0x274bdc[_0xacbb('0x61')];_0x2e8d9a[_0xacbb('0x5f')]=_0x274bdc[_0xacbb('0x4b')];_0x2e8d9a[_0xacbb('0x4a')]=_0x274bdc['uniqueid'];return _0x2e8d9a;};exports[_0xacbb('0x62')]=function(_0x4c5965){var _0x11e4d6=[];for(var _0x1bc750 in _0x4c5965){if(_0x4c5965[_0xacbb('0x2d')](_0x1bc750)){if(!_[_0xacbb('0x16')](_0x4c5965[_0x1bc750])&&_0x4c5965[_0x1bc750]['state']===_0xacbb('0x63')&&_0x4c5965[_0x1bc750][_0xacbb('0x64')]==='reachable'){_0x11e4d6[_0xacbb('0x65')](_0x4c5965[_0x1bc750]['id']);}}}return _0x11e4d6;};exports['getDiff']=function(_0x2809fc){var _0x3ac51f=moment()[_0xacbb('0x7')](0x0);var _0x3f98a5=moment(_0x2809fc)[_0xacbb('0x7')](0x0);return _0x3ac51f['diff'](_0x3f98a5,_0xacbb('0x9'));};exports[_0xacbb('0x66')]=function(_0x446809){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x446809['ContactId'],'ListId':_0x446809[_0xacbb('0x57')],'VoiceQueueId':_0x446809[_0xacbb('0x58')]||undefined,'CampaignId':_0x446809[_0xacbb('0x67')]||undefined};};exports[_0xacbb('0x68')]=function(_0x569e70){if(_0x569e70==='uniqueid'||_0x569e70===_0xacbb('0x69')||_0x569e70===_0xacbb('0x61')||_0x569e70===_0xacbb('0x6a')||_0x569e70===_0xacbb('0x6b')||_0x569e70==='dialAnswer'||_0x569e70==='membername'||_0x569e70===_0xacbb('0x4b')||_0x569e70===_0xacbb('0x1a')||_0x569e70===_0xacbb('0x53')||_0x569e70===_0xacbb('0x1b')||_0x569e70===_0xacbb('0x54')||_0x569e70===_0xacbb('0x4d')||_0x569e70===_0xacbb('0x6c')||_0x569e70===_0xacbb('0x4e')||_0x569e70===_0xacbb('0x6d')||_0x569e70==='callback'||_0x569e70===_0xacbb('0x6e')||_0x569e70===_0xacbb('0x6f')||_0x569e70===_0xacbb('0x70')||_0x569e70===_0xacbb('0x1c')||_0x569e70===_0xacbb('0x57')||_0x569e70===_0xacbb('0x42')||_0x569e70==='VoiceQueueId'||_0x569e70==='sipcallid'||_0x569e70===_0xacbb('0x71')||_0x569e70===_0xacbb('0x72')||_0x569e70==='xmd-phone'||_0x569e70===_0xacbb('0x73')||_0x569e70==='xmd-dialurl'||_0x569e70==='xmd-dialtimeout'||_0x569e70===_0xacbb('0x74')||_0x569e70===_0xacbb('0x75')||_0x569e70===_0xacbb('0x76')||_0x569e70===_0xacbb('0x77')||_0x569e70===_0xacbb('0x78')||_0x569e70==='xmd-callerid'||_0x569e70===_0xacbb('0x79')||_0x569e70==='xmd-agi'||_0x569e70===_0xacbb('0x7a')||_0x569e70===_0xacbb('0x7b')||_0x569e70==='rtpaudioqosjitter'||_0x569e70==='rtpaudioqosjitterbridged'||_0x569e70==='rtpaudioqosloss'||_0x569e70===_0xacbb('0x7c')||_0x569e70===_0xacbb('0x7d')||_0x569e70===_0xacbb('0x7e')||_0x569e70===_0xacbb('0x7a')||_0x569e70==='rtpaudioqosbridged'||_0x569e70==='rtpaudioqosjitter'||_0x569e70==='rtpaudioqosjitterbridged'||_0x569e70==='rtpaudioqosloss'||_0x569e70===_0xacbb('0x7c')||_0x569e70===_0xacbb('0x7d')||_0x569e70===_0xacbb('0x7e')||_0x569e70===_0xacbb('0x7f')||_0x569e70==='bridgepvtcallid'||_0x569e70===_0xacbb('0x3e')||_0x569e70===_0xacbb('0x37')){return![];}return!![];};exports['getCallerIdRandom']=function(_0x4d1a11,_0x35dc5a){var _0x2f2c10,_0x3e0b54,_0x575656;if(_0x35dc5a<=0x0){_0x35dc5a=0x1;}_0x2f2c10=new RegExp(_0xacbb('0x80')+_0x35dc5a+'}$');_0x3e0b54=Math['pow'](0xa,_0x35dc5a-0x1);_0x575656=Math[_0xacbb('0x81')](0xa,_0x35dc5a)-0x1;return util[_0xacbb('0x13')]('%s',_[_0xacbb('0x82')](_0x4d1a11,_0x2f2c10,_[_0xacbb('0x83')](_0x3e0b54,_0x575656)));};exports['extractCalleridName']=function(_0x4651ea){var _0x1ca376=_0x4651ea['match'](/"(.*?)"/);return _0x1ca376?_0x1ca376[0x1]:_0x4651ea;};exports[_0xacbb('0x84')]=function(_0x2c1689){var _0x156f91=_0x2c1689[_0xacbb('0x85')](/<(.*?)>/);return _0x156f91?_0x156f91[0x1]:_0x2c1689;};