Built motion from commit (unavailable).|2.5.30
[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 _0xb606=['channelAgent','calleridnum','xcally-motion-preview','timeout','totalGlobal','countbusyretry','countcongestionretry','countagentrejectretry','cloneAction','clone','active','scheduledat','ListId','VoiceQueueId','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','buildObj','lastevent','queue','mandatoryDisposition','buildAcw','agentReadyId','not_inuse','reachable','push','createBody','CampaignId','filterKey','type','campaigntype','dialAnswer','countnoanswerretry','countglobal','callback','callbackat','recallme','xmd-voicequeueid','xmd-queue','xmd-phone','xmd-dialoptions','xmd-dialchannel','xmd-contactid','xmd-callerid','xmd-agiafter','rtpaudioqosbridged','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','bridgepeer','getCallerIdRandom','\x5cw{0,','pow','replace','extractCalleridName','match','util','lodash','moment','preview','env','XCALLY_IP_AGI','milliseconds','diff','seconds','loggerCatch','inspect','logger','info','loggerError','error','logger2','message','getCallerId','isUndefined','string','isEmpty','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','isActive','Queue','name','calleridname','ContactId','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','monitor_format','U(xcally-mixmonitor-context)','dialPreviewUrl','\x22agi://%s/square,%s\x22','NONE','originatecalleridnum','_XCALLY_MIXMONITOR_UNIQUEID','Contact','hasOwnProperty','isNil','tags','createdAt','%s%s','XMD-','toUpper','toLower','updateOriginated','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','statedesc','Blacklist','starttime','endtime','logAgent','YYYY-MM-DD\x20HH:mm:ss','state','responsetime','membername','UserId','logCustomer','talktime','answertime','isFailure','Failure','variablesAction','RECALL','BOOKED','uniqueid','originate'];(function(_0x4f2771,_0x2c9069){var _0x126f6d=function(_0x2e97c3){while(--_0x2e97c3){_0x4f2771['push'](_0x4f2771['shift']());}};_0x126f6d(++_0x2c9069);}(_0xb606,0xc1));var _0x6b60=function(_0x591e16,_0x5aefc1){_0x591e16=_0x591e16-0x0;var _0x543b35=_0xb606[_0x591e16];return _0x543b35;};'use strict';var util=require(_0x6b60('0x0'));var _=require(_0x6b60('0x1'));var moment=require(_0x6b60('0x2'));var logger=require('../../../../config/logger')(_0x6b60('0x3'));var ipAgi=process[_0x6b60('0x4')][_0x6b60('0x5')]||'127.0.0.1';function getSeconds(_0x4dba2b,_0x44df44){var _0x4c778f=moment(_0x4dba2b)[_0x6b60('0x6')](0x0);var _0x38da7e=moment(_0x44df44)['milliseconds'](0x0);return _0x4c778f[_0x6b60('0x7')](_0x38da7e,_0x6b60('0x8'));}exports[_0x6b60('0x9')]=function(_0x56446f){return function(_0x3ae6a6){logger['error'](_0x56446f,util[_0x6b60('0xa')](_0x3ae6a6,{'showHidden':![],'depth':null}));};};exports[_0x6b60('0xb')]=function(_0x39f9f7,_0x1b6298){logger[_0x6b60('0xc')](_0x39f9f7,util[_0x6b60('0xa')](_0x1b6298,{'showHidden':![],'depth':null}));};exports[_0x6b60('0xd')]=function(_0x5c3749,_0x266df1){logger[_0x6b60('0xe')](_0x5c3749,util['inspect'](_0x266df1,{'showHidden':![],'depth':null}));};exports[_0x6b60('0xf')]=function(_0x58a34b){return function(_0xf31f56){logger[_0x6b60('0xc')](_0x58a34b,util[_0x6b60('0xa')](_0xf31f56,{'showHidden':![],'depth':null}));};};exports[_0x6b60('0x10')]=function(_0x3bbbe3,_0x130138,_0x3b6893){return{'message':_0x3bbbe3,'unlock':_0x130138,'active':_0x3b6893};};exports[_0x6b60('0x11')]=function(_0x2dccd9,_0x4fc54d,_0x1d5659){if(!_[_0x6b60('0x12')](_0x1d5659)&&_0x6b60('0x13')===typeof _0x1d5659&&!_[_0x6b60('0x14')](_0x1d5659)){if(!_[_0x6b60('0x12')](_0x4fc54d)&&_0x6b60('0x13')===typeof _0x4fc54d&&!_['isEmpty'](_0x4fc54d)){return util[_0x6b60('0x15')](_0x6b60('0x16'),_0x4fc54d,_0x1d5659);}return util['format']('\x22%s\x22\x20<%s>',_0x1d5659,_0x1d5659);}if(!_[_0x6b60('0x12')](_0x2dccd9)&&_0x6b60('0x13')===typeof _0x2dccd9&&!_['isEmpty'](_0x2dccd9)){return _0x2dccd9;}return _0x6b60('0x17');};exports[_0x6b60('0x18')]=function(_0x3e3674){if(_['isNil'](_0x3e3674)){return![];}return _0x3e3674;};exports['addVariables']=function(_0x41d1a,_0x590525,_0x11c502,_0x1d2147,_0x37b828,_0x4d8eb9){var _0x7b177c={'XMD-QUEUE':_0x590525[_0x6b60('0x19')]?_0x590525[_0x6b60('0x19')][_0x6b60('0x1a')]:'','XMD-CALLERID':_0x1d2147,'XMD-CALLERID-PREVIEW':_0x4d8eb9?util[_0x6b60('0x15')](_0x6b60('0x16'),_0x4d8eb9[_0x6b60('0x1b')],_0x4d8eb9['calleridnum']):_0x1d2147,'XMD-DIALID':_0x37b828,'XMD-CONTACTID':_0x590525[_0x6b60('0x1c')],'XMD-CDRTYPE':'dialer','CALLERID(all)':_0x1d2147,'XMD-VOICEQUEUEID':_0x590525['VoiceQueueId'],'XMD-DIALCHANNEL':_0x11c502,'XMD-DIALTIMEOUT':_0x41d1a[_0x6b60('0x1d')]||0x1e,'XMD-DIALOPTIONS':util[_0x6b60('0x15')](_0x6b60('0x1e'),_0x41d1a[_0x6b60('0x1f')]?'g':'',_['isEmpty'](_0x41d1a[_0x6b60('0x20')])?'':_0x6b60('0x21')),'XMD-DIALURL':_0x41d1a[_0x6b60('0x22')]||'','XMD-AGI':_0x41d1a['dialQueueProject']?util[_0x6b60('0x15')](_0x6b60('0x23'),ipAgi,_0x41d1a['dialQueueProject']):_0x6b60('0x24'),'XMD-AGIAFTER':_0x41d1a[_0x6b60('0x1f')]?util[_0x6b60('0x15')](_0x6b60('0x23'),ipAgi,_0x41d1a['dialQueueProject2']):_0x6b60('0x24'),'XMD-ORIGINATECALLERIDNUM':_0x4d8eb9?_0x4d8eb9[_0x6b60('0x25')]:'','XMD-ORIGINATECALLERIDNAME':_0x4d8eb9?_0x4d8eb9['originatecalleridname']:'','XMD-DESTINATION':'xcally-motion-preview'};if(!_[_0x6b60('0x14')](_0x41d1a[_0x6b60('0x20')])){_0x7b177c[util[_0x6b60('0x15')]('%s','_XCALLY_MIXMONITOR_FORMAT')]=_0x41d1a['monitor_format'];_0x7b177c[util[_0x6b60('0x15')]('%s',_0x6b60('0x26'))]=_0x37b828;}if(_0x590525&&_0x590525[_0x6b60('0x27')]){for(var _0x1affdc in _0x590525[_0x6b60('0x27')]){if(_0x590525['Contact'][_0x6b60('0x28')](_0x1affdc)){if(!_[_0x6b60('0x29')](_0x590525[_0x6b60('0x27')][_0x1affdc])&&_0x1affdc!=='id'&&_0x1affdc!==_0x6b60('0x2a')&&_0x1affdc!==_0x6b60('0x2b')&&_0x1affdc!=='updatedAt'){_0x7b177c[util[_0x6b60('0x15')](_0x6b60('0x2c'),_0x6b60('0x2d'),_[_0x6b60('0x2e')](_0x1affdc))]=_0x590525[_0x6b60('0x27')][_0x1affdc];}}}}return _0x7b177c;};exports['toLowerVariables']=function(_0x37c128){var _0x332579={};for(var _0x618740 in _0x37c128){if(_0x37c128[_0x6b60('0x28')](_0x618740)){_0x332579[util['format']('%s',_[_0x6b60('0x2f')](_0x618740))]=_0x37c128[_0x618740];}}return{'variables':_0x332579};};exports[_0x6b60('0x30')]=function(_0x58446a,_0x1c486b){if(!_[_0x6b60('0x29')](_0x58446a)){if(_0x58446a[_0x6b60('0x28')](_0x6b60('0x31'))){if(_0x58446a['originated']>0x0){_0x58446a[_0x6b60('0x31')]-=0x1;}else{logger[_0x6b60('0xe')](_0x6b60('0x32'),_0x1c486b);}}}else{logger[_0x6b60('0xe')](_0x6b60('0x33'),_0x1c486b);}};exports[_0x6b60('0x34')]=function(_0x43fe8c){var _0x4bc6d1=moment()[_0x6b60('0x15')]('YYYY-MM-DD\x20HH:mm:ss');_0x43fe8c['state']=0xd;_0x43fe8c[_0x6b60('0x35')]=_0x6b60('0x36');_0x43fe8c[_0x6b60('0x37')]=_0x4bc6d1;_0x43fe8c['responsetime']=_0x4bc6d1;_0x43fe8c[_0x6b60('0x38')]=_0x4bc6d1;};exports[_0x6b60('0x39')]=function(_0x41314a,_0x11b979,_0x4e7bd9){var _0x16f363=moment()['format'](_0x6b60('0x3a'));_0x41314a[_0x6b60('0x3b')]=_0x11b979;_0x41314a['statedesc']=_0x4e7bd9;_0x41314a['responsetime']=_0x16f363;_0x41314a['ringtime']=getSeconds(_0x41314a[_0x6b60('0x3c')],_0x41314a[_0x6b60('0x37')]);};exports['logLookAgent']=function(_0x4b534a,_0x44fe18,_0x28195e){_0x4b534a[_0x6b60('0x3d')]=_0x44fe18;_0x4b534a[_0x6b60('0x3e')]=_0x28195e;};exports[_0x6b60('0x3f')]=function(_0x500585,_0x565a7f,_0x378318){var _0x5bb927=moment()[_0x6b60('0x15')](_0x6b60('0x3a'));_0x500585[_0x6b60('0x3b')]=_0x565a7f;_0x500585[_0x6b60('0x35')]=_0x378318;_0x500585['responsetime']=_0x500585[_0x6b60('0x3c')]?_0x500585[_0x6b60('0x3c')]:_0x5bb927;_0x500585[_0x6b60('0x38')]=_0x500585['endtime']?_0x500585[_0x6b60('0x38')]:_0x5bb927;_0x500585['ringtime']=getSeconds(_0x500585[_0x6b60('0x3c')]||0x0,_0x500585['starttime']||0x0);_0x500585[_0x6b60('0x40')]=_0x500585[_0x6b60('0x41')]?getSeconds(_0x500585['endtime'],_0x500585['answertime']):0x0;};exports[_0x6b60('0x42')]=function(_0x22e702){return _0x22e702===_0x6b60('0x43');};exports[_0x6b60('0x44')]=function(_0x15748d,_0x3ea018,_0x2cc796,_0x2f0d21,_0x26ad7e){var _0x23afff=_0x2f0d21?_0x6b60('0x45'):_0x15748d['calleridname'];_0x23afff=_0x26ad7e?_0x6b60('0x46'):_0x23afff;return{'actionid':_0x15748d[_0x6b60('0x47')],'action':_0x6b60('0x48'),'channel':_0x15748d[_0x6b60('0x49')],'callerid':util[_0x6b60('0x15')](_0x6b60('0x16'),_0x23afff,_0x15748d[_0x6b60('0x4a')]),'Exten':_0x6b60('0x4b'),'Context':'from-sip','Priority':'1','variable':_0x2cc796,'timeout':(_0x3ea018[_0x6b60('0x4c')]||0x1e)*0x3e8,'async':!![],'channelid':_0x15748d[_0x6b60('0x47')]};};exports[_0x6b60('0x4d')]=function(_0x5bf02b){return _0x5bf02b[_0x6b60('0x4e')]+_0x5bf02b[_0x6b60('0x4f')]+_0x5bf02b['countnoanswerretry']+_0x5bf02b[_0x6b60('0x50')]+_0x5bf02b['countnosuchnumberretry'];};exports[_0x6b60('0x51')]=function(_0x387f74){var _0x4b1ce9=_[_0x6b60('0x52')](_0x387f74);_0x4b1ce9[_0x6b60('0x3b')]=0xf;_0x4b1ce9[_0x6b60('0x35')]='Global';return _0x4b1ce9;};exports['scheduledAt']=function(_0x3f9e54,_0x311f45,_0xe32f90){var _0x1b8b66={};_0x1b8b66[_0x311f45]=_0x3f9e54[_0x311f45];_0x1b8b66[_0x6b60('0x53')]=![];_0x1b8b66[_0x6b60('0x54')]=moment()['add'](_0xe32f90,'minutes')['format'](_0x6b60('0x3a'));_0x1b8b66['ContactId']=_0x3f9e54[_0x6b60('0x1c')];_0x1b8b66[_0x6b60('0x55')]=_0x3f9e54[_0x6b60('0x55')];_0x1b8b66[_0x6b60('0x56')]=_0x3f9e54[_0x6b60('0x56')]||undefined;return _0x1b8b66;};exports[_0x6b60('0x57')]=function(_0x47a812,_0x97ff1e){if(!_['isNil'](_0x47a812)){if(_0x47a812['pTalking']>0x0){_0x47a812[_0x6b60('0x58')]-=0x1;}else{logger['error'](_0x97ff1e,_0x6b60('0x59'));}}else{logger[_0x6b60('0xe')](_0x97ff1e,_0x6b60('0x5a'));}};exports[_0x6b60('0x5b')]=function(_0x3bb96e){if(_0x3bb96e<=0x0){return!![];}return![];};exports[_0x6b60('0x5c')]=function(_0x7f7558,_0x1c9e69,_0x1cc1e1){_0x7f7558[_0x6b60('0x5d')]=_0x1c9e69;_0x7f7558[_0x6b60('0x1a')]=_0x7f7558[_0x6b60('0x5e')];_0x7f7558['interface']=_0x7f7558[_0x6b60('0x49')];if(_0x1cc1e1){_0x7f7558[_0x6b60('0x5f')]=_0x1cc1e1['mandatoryDisposition'];}return _0x7f7558;};exports[_0x6b60('0x60')]=function(_0xe65438){var _0xc062b0={};_0xc062b0[_0x6b60('0x5e')]=_0xe65438['queue'];_0xc062b0['interface']=_0xe65438[_0x6b60('0x49')];_0xc062b0[_0x6b60('0x47')]=_0xe65438['uniqueid'];return _0xc062b0;};exports[_0x6b60('0x61')]=function(_0x309d8f){var _0x5d3931=[];for(var _0x5f3340 in _0x309d8f){if(_0x309d8f[_0x6b60('0x28')](_0x5f3340)){if(!_[_0x6b60('0x29')](_0x309d8f[_0x5f3340])&&_0x309d8f[_0x5f3340]['state']===_0x6b60('0x62')&&_0x309d8f[_0x5f3340]['status']===_0x6b60('0x63')){_0x5d3931[_0x6b60('0x64')](_0x309d8f[_0x5f3340]['id']);}}}return _0x5d3931;};exports['getDiff']=function(_0x1410c3){var _0x14aab7=moment()[_0x6b60('0x6')](0x0);var _0x12a182=moment(_0x1410c3)['milliseconds'](0x0);return _0x14aab7[_0x6b60('0x7')](_0x12a182,_0x6b60('0x8'));};exports[_0x6b60('0x65')]=function(_0x29c24b){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x29c24b[_0x6b60('0x1c')],'ListId':_0x29c24b[_0x6b60('0x55')],'VoiceQueueId':_0x29c24b['VoiceQueueId']||undefined,'CampaignId':_0x29c24b[_0x6b60('0x66')]||undefined};};exports[_0x6b60('0x67')]=function(_0x57b873){if(_0x57b873===_0x6b60('0x47')||_0x57b873==='idContact'||_0x57b873===_0x6b60('0x5e')||_0x57b873===_0x6b60('0x68')||_0x57b873===_0x6b60('0x69')||_0x57b873===_0x6b60('0x6a')||_0x57b873===_0x6b60('0x3d')||_0x57b873===_0x6b60('0x49')||_0x57b873===_0x6b60('0x1b')||_0x57b873==='active'||_0x57b873==='calleridnum'||_0x57b873===_0x6b60('0x54')||_0x57b873==='countbusyretry'||_0x57b873===_0x6b60('0x4f')||_0x57b873===_0x6b60('0x6b')||_0x57b873===_0x6b60('0x6c')||_0x57b873===_0x6b60('0x6d')||_0x57b873==='callbackuniqueid'||_0x57b873===_0x6b60('0x6e')||_0x57b873===_0x6b60('0x6f')||_0x57b873===_0x6b60('0x1c')||_0x57b873===_0x6b60('0x55')||_0x57b873==='UserId'||_0x57b873==='VoiceQueueId'||_0x57b873==='sipcallid'||_0x57b873===_0x6b60('0x70')||_0x57b873===_0x6b60('0x71')||_0x57b873===_0x6b60('0x72')||_0x57b873==='xmd-listid'||_0x57b873==='xmd-dialurl'||_0x57b873==='xmd-dialtimeout'||_0x57b873===_0x6b60('0x73')||_0x57b873==='xmd-dialid'||_0x57b873===_0x6b60('0x74')||_0x57b873===_0x6b60('0x75')||_0x57b873==='xmd-cdrtype'||_0x57b873===_0x6b60('0x76')||_0x57b873===_0x6b60('0x77')||_0x57b873==='xmd-agi'||_0x57b873==='rtpaudioqos'||_0x57b873===_0x6b60('0x78')||_0x57b873==='rtpaudioqosjitter'||_0x57b873===_0x6b60('0x79')||_0x57b873===_0x6b60('0x7a')||_0x57b873===_0x6b60('0x7b')||_0x57b873===_0x6b60('0x7c')||_0x57b873===_0x6b60('0x7d')||_0x57b873==='rtpaudioqos'||_0x57b873===_0x6b60('0x78')||_0x57b873==='rtpaudioqosjitter'||_0x57b873===_0x6b60('0x79')||_0x57b873==='rtpaudioqosloss'||_0x57b873===_0x6b60('0x7b')||_0x57b873===_0x6b60('0x7c')||_0x57b873==='rtpaudioqosrttbridged'||_0x57b873===_0x6b60('0x7e')||_0x57b873==='bridgepvtcallid'||_0x57b873===_0x6b60('0x3b')||_0x57b873===_0x6b60('0x35')){return![];}return!![];};exports[_0x6b60('0x7f')]=function(_0x5140cf,_0x241351){var _0x2b6f87,_0x3d5f3d,_0x476e65;if(_0x241351<=0x0){_0x241351=0x1;}_0x2b6f87=new RegExp(_0x6b60('0x80')+_0x241351+'}$');_0x3d5f3d=Math[_0x6b60('0x81')](0xa,_0x241351-0x1);_0x476e65=Math[_0x6b60('0x81')](0xa,_0x241351)-0x1;return util[_0x6b60('0x15')]('%s',_[_0x6b60('0x82')](_0x5140cf,_0x2b6f87,_['random'](_0x3d5f3d,_0x476e65)));};exports[_0x6b60('0x83')]=function(_0x1cd2d7){var _0x5d114e=_0x1cd2d7[_0x6b60('0x84')](/"(.*?)"/);return _0x5d114e?_0x5d114e[0x1]:_0x1cd2d7;};exports['extractCalleridNumber']=function(_0x4bcdb0){var _0x57f7fe=_0x4bcdb0['match'](/<(.*?)>/);return _0x57f7fe?_0x57f7fe[0x1]:_0x4bcdb0;};