Built motion from commit (unavailable).|2.6.0
[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 _0xe92b=['match','util','lodash','moment','../../../../config/logger','preview','XCALLY_IP_AGI','127.0.0.1','milliseconds','diff','error','logger','info','inspect','loggerError','logger2','message','getCallerId','isUndefined','string','isEmpty','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','addVariables','Queue','name','calleridname','calleridnum','ContactId','dialer','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','monitor_format','U(xcally-mixmonitor-context)','dialPreviewUrl','\x22agi://%s/square,%s\x22','dialQueueProject','NONE','originatecalleridnum','originatecalleridname','Contact','hasOwnProperty','isNil','tags','createdAt','updatedAt','%s%s','toUpper','updateOriginated','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','YYYY-MM-DD\x20HH:mm:ss','starttime','responsetime','endtime','logAgent','state','ringtime','logLookAgent','membername','UserId','answertime','isFailure','Failure','variablesAction','RECALL','uniqueid','from-sip','timeout','totalGlobal','countbusyretry','countcongestionretry','countnosuchnumberretry','cloneAction','clone','statedesc','Global','scheduledAt','active','scheduledat','add','minutes','ListId','VoiceQueueId','decrementTalkink','pTalking','[decrementTalkink]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','buildObj','lastevent','queue','interface','channelAgent','mandatoryDisposition','buildAcw','agentReadyId','not_inuse','status','getDiff','seconds','filterKey','idContact','type','campaigntype','countnoanswerretry','callback','callbackat','recallme','sipcallid','xmd-voicequeueid','xmd-queue','xmd-phone','xmd-listid','xmd-dialurl','xmd-dialoptions','xmd-dialchannel','xmd-cdrtype','xmd-callerid','xmd-agiafter','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','rtpaudioqosjitter','bridgepeer','bridgepvtcallid','getCallerIdRandom','\x5cw{0,','pow','replace','random','extractCalleridName'];(function(_0x39096d,_0x51f8a0){var _0x13da4f=function(_0x11e6b2){while(--_0x11e6b2){_0x39096d['push'](_0x39096d['shift']());}};_0x13da4f(++_0x51f8a0);}(_0xe92b,0x89));var _0xbe92=function(_0x12ddb2,_0x5ad61e){_0x12ddb2=_0x12ddb2-0x0;var _0x10b6dd=_0xe92b[_0x12ddb2];return _0x10b6dd;};'use strict';var util=require(_0xbe92('0x0'));var _=require(_0xbe92('0x1'));var moment=require(_0xbe92('0x2'));var logger=require(_0xbe92('0x3'))(_0xbe92('0x4'));var ipAgi=process['env'][_0xbe92('0x5')]||_0xbe92('0x6');function getSeconds(_0x3b8ee4,_0x39efb7){var _0x103bf6=moment(_0x3b8ee4)[_0xbe92('0x7')](0x0);var _0x59e56f=moment(_0x39efb7)[_0xbe92('0x7')](0x0);return _0x103bf6[_0xbe92('0x8')](_0x59e56f,'seconds');}exports['loggerCatch']=function(_0x18d834){return function(_0x333ff2){logger[_0xbe92('0x9')](_0x18d834,util['inspect'](_0x333ff2,{'showHidden':![],'depth':null}));};};exports[_0xbe92('0xa')]=function(_0x1485e7,_0x1edbbb){logger[_0xbe92('0xb')](_0x1485e7,util[_0xbe92('0xc')](_0x1edbbb,{'showHidden':![],'depth':null}));};exports[_0xbe92('0xd')]=function(_0xf6585,_0x130238){logger['error'](_0xf6585,util['inspect'](_0x130238,{'showHidden':![],'depth':null}));};exports[_0xbe92('0xe')]=function(_0x5e81e8){return function(_0x552ecb){logger['info'](_0x5e81e8,util[_0xbe92('0xc')](_0x552ecb,{'showHidden':![],'depth':null}));};};exports[_0xbe92('0xf')]=function(_0xf1eb39,_0x2dbb9b,_0x52e852){return{'message':_0xf1eb39,'unlock':_0x2dbb9b,'active':_0x52e852};};exports[_0xbe92('0x10')]=function(_0x25f2dd,_0x430441,_0x4c7f70){if(!_[_0xbe92('0x11')](_0x4c7f70)&&_0xbe92('0x12')===typeof _0x4c7f70&&!_['isEmpty'](_0x4c7f70)){if(!_[_0xbe92('0x11')](_0x430441)&&_0xbe92('0x12')===typeof _0x430441&&!_[_0xbe92('0x13')](_0x430441)){return util[_0xbe92('0x14')]('\x22%s\x22\x20<%s>',_0x430441,_0x4c7f70);}return util[_0xbe92('0x14')](_0xbe92('0x15'),_0x4c7f70,_0x4c7f70);}if(!_[_0xbe92('0x11')](_0x25f2dd)&&_0xbe92('0x12')===typeof _0x25f2dd&&!_[_0xbe92('0x13')](_0x25f2dd)){return _0x25f2dd;}return _0xbe92('0x16');};exports['isActive']=function(_0xfbc47){if(_['isNil'](_0xfbc47)){return![];}return _0xfbc47;};exports[_0xbe92('0x17')]=function(_0x30038d,_0x11f8fc,_0x5630bf,_0x41cc9f,_0x1324c8,_0x30399a){var _0x204658={'XMD-QUEUE':_0x11f8fc[_0xbe92('0x18')]?_0x11f8fc[_0xbe92('0x18')][_0xbe92('0x19')]:'','XMD-CALLERID':_0x41cc9f,'XMD-CALLERID-PREVIEW':_0x30399a?util[_0xbe92('0x14')]('\x22%s\x22\x20<%s>',_0x30399a[_0xbe92('0x1a')],_0x30399a[_0xbe92('0x1b')]):_0x41cc9f,'XMD-DIALID':_0x1324c8,'XMD-CONTACTID':_0x11f8fc[_0xbe92('0x1c')],'XMD-CDRTYPE':_0xbe92('0x1d'),'CALLERID(all)':_0x41cc9f,'XMD-VOICEQUEUEID':_0x11f8fc['VoiceQueueId'],'XMD-DIALCHANNEL':_0x5630bf,'XMD-DIALTIMEOUT':_0x30038d[_0xbe92('0x1e')]||0x1e,'XMD-DIALOPTIONS':util[_0xbe92('0x14')](_0xbe92('0x1f'),_0x30038d[_0xbe92('0x20')]?'g':'',_['isEmpty'](_0x30038d[_0xbe92('0x21')])?'':_0xbe92('0x22')),'XMD-DIALURL':_0x30038d[_0xbe92('0x23')]||'','XMD-AGI':_0x30038d['dialQueueProject']?util[_0xbe92('0x14')](_0xbe92('0x24'),ipAgi,_0x30038d[_0xbe92('0x25')]):_0xbe92('0x26'),'XMD-AGIAFTER':_0x30038d[_0xbe92('0x20')]?util[_0xbe92('0x14')](_0xbe92('0x24'),ipAgi,_0x30038d[_0xbe92('0x20')]):_0xbe92('0x26'),'XMD-ORIGINATECALLERIDNUM':_0x30399a?_0x30399a[_0xbe92('0x27')]:'','XMD-ORIGINATECALLERIDNAME':_0x30399a?_0x30399a[_0xbe92('0x28')]:'','XMD-DESTINATION':'xcally-motion-preview'};if(!_[_0xbe92('0x13')](_0x30038d[_0xbe92('0x21')])){_0x204658[util[_0xbe92('0x14')]('%s','_XCALLY_MIXMONITOR_FORMAT')]=_0x30038d['monitor_format'];_0x204658[util[_0xbe92('0x14')]('%s','_XCALLY_MIXMONITOR_UNIQUEID')]=_0x1324c8;}if(_0x11f8fc&&_0x11f8fc[_0xbe92('0x29')]){for(var _0x580697 in _0x11f8fc[_0xbe92('0x29')]){if(_0x11f8fc[_0xbe92('0x29')][_0xbe92('0x2a')](_0x580697)){if(!_[_0xbe92('0x2b')](_0x11f8fc[_0xbe92('0x29')][_0x580697])&&_0x580697!=='id'&&_0x580697!==_0xbe92('0x2c')&&_0x580697!==_0xbe92('0x2d')&&_0x580697!==_0xbe92('0x2e')){_0x204658[util[_0xbe92('0x14')](_0xbe92('0x2f'),'XMD-',_[_0xbe92('0x30')](_0x580697))]=_0x11f8fc[_0xbe92('0x29')][_0x580697];}}}}return _0x204658;};exports['toLowerVariables']=function(_0x17b918){var _0x4b3210={};for(var _0x4c7a61 in _0x17b918){if(_0x17b918[_0xbe92('0x2a')](_0x4c7a61)){_0x4b3210[util[_0xbe92('0x14')]('%s',_['toLower'](_0x4c7a61))]=_0x17b918[_0x4c7a61];}}return{'variables':_0x4b3210};};exports[_0xbe92('0x31')]=function(_0x284f1f,_0x38d404){if(!_[_0xbe92('0x2b')](_0x284f1f)){if(_0x284f1f[_0xbe92('0x2a')](_0xbe92('0x32'))){if(_0x284f1f[_0xbe92('0x32')]>0x0){_0x284f1f['originated']-=0x1;}else{logger['error'](_0xbe92('0x33'),_0x38d404);}}}else{logger[_0xbe92('0x9')]('[updateOriginated]\x20is\x20null\x20or\x20undefined',_0x38d404);}};exports['logBlacklist']=function(_0x161e2e){var _0x49a6bb=moment()[_0xbe92('0x14')](_0xbe92('0x34'));_0x161e2e['state']=0xd;_0x161e2e['statedesc']='Blacklist';_0x161e2e[_0xbe92('0x35')]=_0x49a6bb;_0x161e2e[_0xbe92('0x36')]=_0x49a6bb;_0x161e2e[_0xbe92('0x37')]=_0x49a6bb;};exports[_0xbe92('0x38')]=function(_0x134302,_0x17291b,_0xd5555f){var _0x2180a0=moment()['format'](_0xbe92('0x34'));_0x134302[_0xbe92('0x39')]=_0x17291b;_0x134302['statedesc']=_0xd5555f;_0x134302[_0xbe92('0x36')]=_0x2180a0;_0x134302[_0xbe92('0x3a')]=getSeconds(_0x134302[_0xbe92('0x36')],_0x134302[_0xbe92('0x35')]);};exports[_0xbe92('0x3b')]=function(_0xce8ef8,_0x488d32,_0x39eece){_0xce8ef8[_0xbe92('0x3c')]=_0x488d32;_0xce8ef8[_0xbe92('0x3d')]=_0x39eece;};exports['logCustomer']=function(_0x1e00c8,_0xf185db,_0x37948c){var _0x13a36c=moment()[_0xbe92('0x14')](_0xbe92('0x34'));_0x1e00c8[_0xbe92('0x39')]=_0xf185db;_0x1e00c8['statedesc']=_0x37948c;_0x1e00c8['responsetime']=_0x1e00c8[_0xbe92('0x36')]?_0x1e00c8[_0xbe92('0x36')]:_0x13a36c;_0x1e00c8[_0xbe92('0x37')]=_0x1e00c8['endtime']?_0x1e00c8[_0xbe92('0x37')]:_0x13a36c;_0x1e00c8[_0xbe92('0x3a')]=getSeconds(_0x1e00c8['responsetime']||0x0,_0x1e00c8['starttime']||0x0);_0x1e00c8['talktime']=_0x1e00c8[_0xbe92('0x3e')]?getSeconds(_0x1e00c8[_0xbe92('0x37')],_0x1e00c8[_0xbe92('0x3e')]):0x0;};exports[_0xbe92('0x3f')]=function(_0x53fdbc){return _0x53fdbc===_0xbe92('0x40');};exports[_0xbe92('0x41')]=function(_0x27c509,_0x13c1b4,_0x1b58b5,_0x14275d,_0x16dfa7){var _0x11f4b4=_0x14275d?_0xbe92('0x42'):_0x27c509[_0xbe92('0x1a')];_0x11f4b4=_0x16dfa7?'BOOKED':_0x11f4b4;return{'actionid':_0x27c509[_0xbe92('0x43')],'action':'originate','channel':_0x27c509['channelAgent'],'callerid':util[_0xbe92('0x14')](_0xbe92('0x15'),_0x11f4b4,_0x27c509[_0xbe92('0x1b')]),'Exten':'xcally-motion-preview','Context':_0xbe92('0x44'),'Priority':'1','variable':_0x1b58b5,'timeout':(_0x13c1b4[_0xbe92('0x45')]||0x1e)*0x3e8,'async':!![],'channelid':_0x27c509['uniqueid']};};exports[_0xbe92('0x46')]=function(_0x3d8d71){return _0x3d8d71[_0xbe92('0x47')]+_0x3d8d71[_0xbe92('0x48')]+_0x3d8d71['countnoanswerretry']+_0x3d8d71['countagentrejectretry']+_0x3d8d71[_0xbe92('0x49')];};exports[_0xbe92('0x4a')]=function(_0x2e0cd7){var _0x59813e=_[_0xbe92('0x4b')](_0x2e0cd7);_0x59813e[_0xbe92('0x39')]=0xf;_0x59813e[_0xbe92('0x4c')]=_0xbe92('0x4d');return _0x59813e;};exports[_0xbe92('0x4e')]=function(_0x58c152,_0x1132fd,_0x556130){var _0x1d8b72={};_0x1d8b72[_0x1132fd]=_0x58c152[_0x1132fd];_0x1d8b72[_0xbe92('0x4f')]=![];_0x1d8b72[_0xbe92('0x50')]=moment()[_0xbe92('0x51')](_0x556130,_0xbe92('0x52'))[_0xbe92('0x14')]('YYYY-MM-DD\x20HH:mm:ss');_0x1d8b72[_0xbe92('0x1c')]=_0x58c152[_0xbe92('0x1c')];_0x1d8b72[_0xbe92('0x53')]=_0x58c152['ListId'];_0x1d8b72[_0xbe92('0x54')]=_0x58c152[_0xbe92('0x54')]||undefined;return _0x1d8b72;};exports[_0xbe92('0x55')]=function(_0x24d66d,_0x50fe00){if(!_[_0xbe92('0x2b')](_0x24d66d)){if(_0x24d66d[_0xbe92('0x56')]>0x0){_0x24d66d[_0xbe92('0x56')]-=0x1;}else{logger[_0xbe92('0x9')](_0x50fe00,'[decrementTalkink]\x20object\x20talking\x20is\x20negative');}}else{logger['error'](_0x50fe00,_0xbe92('0x57'));}};exports[_0xbe92('0x58')]=function(_0x45e3dd){if(_0x45e3dd<=0x0){return!![];}return![];};exports[_0xbe92('0x59')]=function(_0x3199fb,_0x5c07ce,_0x230672){_0x3199fb[_0xbe92('0x5a')]=_0x5c07ce;_0x3199fb[_0xbe92('0x19')]=_0x3199fb[_0xbe92('0x5b')];_0x3199fb[_0xbe92('0x5c')]=_0x3199fb[_0xbe92('0x5d')];if(_0x230672){_0x3199fb[_0xbe92('0x5e')]=_0x230672['mandatoryDisposition'];}return _0x3199fb;};exports[_0xbe92('0x5f')]=function(_0x509581){var _0x761533={};_0x761533['queue']=_0x509581[_0xbe92('0x5b')];_0x761533[_0xbe92('0x5c')]=_0x509581[_0xbe92('0x5d')];_0x761533['uniqueid']=_0x509581[_0xbe92('0x43')];return _0x761533;};exports[_0xbe92('0x60')]=function(_0x1b1655){var _0x5e0dd4=[];for(var _0x3d3552 in _0x1b1655){if(_0x1b1655['hasOwnProperty'](_0x3d3552)){if(!_[_0xbe92('0x2b')](_0x1b1655[_0x3d3552])&&_0x1b1655[_0x3d3552][_0xbe92('0x39')]===_0xbe92('0x61')&&_0x1b1655[_0x3d3552][_0xbe92('0x62')]==='reachable'){_0x5e0dd4['push'](_0x1b1655[_0x3d3552]['id']);}}}return _0x5e0dd4;};exports[_0xbe92('0x63')]=function(_0x27081b){var _0x4ff7cc=moment()[_0xbe92('0x7')](0x0);var _0x55cb26=moment(_0x27081b)[_0xbe92('0x7')](0x0);return _0x4ff7cc[_0xbe92('0x8')](_0x55cb26,_0xbe92('0x64'));};exports['createBody']=function(_0xba4f93){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0xba4f93['ContactId'],'ListId':_0xba4f93[_0xbe92('0x53')],'VoiceQueueId':_0xba4f93[_0xbe92('0x54')]||undefined,'CampaignId':_0xba4f93['CampaignId']||undefined};};exports[_0xbe92('0x65')]=function(_0x4667c7){if(_0x4667c7==='uniqueid'||_0x4667c7===_0xbe92('0x66')||_0x4667c7===_0xbe92('0x5b')||_0x4667c7===_0xbe92('0x67')||_0x4667c7===_0xbe92('0x68')||_0x4667c7==='dialAnswer'||_0x4667c7===_0xbe92('0x3c')||_0x4667c7===_0xbe92('0x5d')||_0x4667c7===_0xbe92('0x1a')||_0x4667c7===_0xbe92('0x4f')||_0x4667c7===_0xbe92('0x1b')||_0x4667c7===_0xbe92('0x50')||_0x4667c7===_0xbe92('0x47')||_0x4667c7===_0xbe92('0x48')||_0x4667c7===_0xbe92('0x69')||_0x4667c7==='countglobal'||_0x4667c7===_0xbe92('0x6a')||_0x4667c7==='callbackuniqueid'||_0x4667c7===_0xbe92('0x6b')||_0x4667c7===_0xbe92('0x6c')||_0x4667c7===_0xbe92('0x1c')||_0x4667c7===_0xbe92('0x53')||_0x4667c7==='UserId'||_0x4667c7===_0xbe92('0x54')||_0x4667c7===_0xbe92('0x6d')||_0x4667c7===_0xbe92('0x6e')||_0x4667c7===_0xbe92('0x6f')||_0x4667c7===_0xbe92('0x70')||_0x4667c7===_0xbe92('0x71')||_0x4667c7===_0xbe92('0x72')||_0x4667c7==='xmd-dialtimeout'||_0x4667c7===_0xbe92('0x73')||_0x4667c7==='xmd-dialid'||_0x4667c7===_0xbe92('0x74')||_0x4667c7==='xmd-contactid'||_0x4667c7===_0xbe92('0x75')||_0x4667c7===_0xbe92('0x76')||_0x4667c7===_0xbe92('0x77')||_0x4667c7==='xmd-agi'||_0x4667c7===_0xbe92('0x78')||_0x4667c7===_0xbe92('0x79')||_0x4667c7==='rtpaudioqosjitter'||_0x4667c7==='rtpaudioqosjitterbridged'||_0x4667c7===_0xbe92('0x7a')||_0x4667c7===_0xbe92('0x7b')||_0x4667c7===_0xbe92('0x7c')||_0x4667c7===_0xbe92('0x7d')||_0x4667c7==='rtpaudioqos'||_0x4667c7===_0xbe92('0x79')||_0x4667c7===_0xbe92('0x7e')||_0x4667c7==='rtpaudioqosjitterbridged'||_0x4667c7==='rtpaudioqosloss'||_0x4667c7===_0xbe92('0x7b')||_0x4667c7===_0xbe92('0x7c')||_0x4667c7==='rtpaudioqosrttbridged'||_0x4667c7===_0xbe92('0x7f')||_0x4667c7===_0xbe92('0x80')||_0x4667c7===_0xbe92('0x39')||_0x4667c7==='statedesc'){return![];}return!![];};exports[_0xbe92('0x81')]=function(_0x780832,_0x58737d){var _0xeb178a,_0x39dba9,_0x589142;if(_0x58737d<=0x0){_0x58737d=0x1;}_0xeb178a=new RegExp(_0xbe92('0x82')+_0x58737d+'}$');_0x39dba9=Math[_0xbe92('0x83')](0xa,_0x58737d-0x1);_0x589142=Math[_0xbe92('0x83')](0xa,_0x58737d)-0x1;return util[_0xbe92('0x14')]('%s',_[_0xbe92('0x84')](_0x780832,_0xeb178a,_[_0xbe92('0x85')](_0x39dba9,_0x589142)));};exports[_0xbe92('0x86')]=function(_0x27f491){var _0x1f4896=_0x27f491['match'](/"(.*?)"/);return _0x1f4896?_0x1f4896[0x1]:_0x27f491;};exports['extractCalleridNumber']=function(_0x9a37c7){var _0x446d42=_0x9a37c7[_0xbe92('0x87')](/<(.*?)>/);return _0x446d42?_0x446d42[0x1]:_0x9a37c7;};