9cbfc0bda8dbbc5316267fdd97d1069ea5460da7
[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 _0x9116=['rtpaudioqosrtt','bridgepeer','\x5cw{0,','pow','replace','random','extractCalleridName','extractCalleridNumber','match','lodash','moment','../../../../config/logger','preview','XCALLY_IP_AGI','milliseconds','loggerCatch','logger','inspect','error','logger2','info','getCallerId','isUndefined','string','\x22%s\x22\x20<%s>','isEmpty','\x22\x22\x20<>','isActive','addVariables','Queue','name','format','calleridname','calleridnum','ContactId','dialer','VoiceQueueId','dialOriginateTimeout','dialPreviewUrl','\x22agi://%s/square,%s\x22','dialQueueProject','NONE','dialQueueProject2','originatecalleridnum','originatecalleridname','xcally-motion-preview','monitor_format','_XCALLY_MIXMONITOR_UNIQUEID','Contact','hasOwnProperty','isNil','tags','createdAt','%s%s','XMD-','toUpper','toLowerVariables','updateOriginated','originated','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','statedesc','Blacklist','starttime','endtime','state','responsetime','logLookAgent','logCustomer','ringtime','talktime','answertime','Failure','RECALL','BOOKED','uniqueid','originate','channelAgent','from-sip','timeout','totalGlobal','countbusyretry','countcongestionretry','countnoanswerretry','countagentrejectretry','countnosuchnumberretry','cloneAction','scheduledAt','add','minutes','ListId','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','buildObj','lastevent','mandatoryDisposition','queue','interface','agentReadyId','not_inuse','status','getDiff','diff','CampaignId','filterKey','idContact','campaigntype','membername','active','scheduledat','callback','callbackuniqueid','recallme','UserId','xmd-queue','xmd-phone','xmd-listid','xmd-dialurl','xmd-dialoptions','xmd-contactid','xmd-cdrtype','xmd-callerid','xmd-agiafter','xmd-agi','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqoslossbridged','rtpaudioqos','rtpaudioqosjitterbridged'];(function(_0x5622b2,_0x5dc268){var _0x2c441b=function(_0x3a3f73){while(--_0x3a3f73){_0x5622b2['push'](_0x5622b2['shift']());}};_0x2c441b(++_0x5dc268);}(_0x9116,0x111));var _0x6911=function(_0x46275a,_0x157c56){_0x46275a=_0x46275a-0x0;var _0x1b6b39=_0x9116[_0x46275a];return _0x1b6b39;};'use strict';var util=require('util');var _=require(_0x6911('0x0'));var moment=require(_0x6911('0x1'));var logger=require(_0x6911('0x2'))(_0x6911('0x3'));var ipAgi=process['env'][_0x6911('0x4')]||'127.0.0.1';function getSeconds(_0x9832c3,_0x4317ca){var _0x3696d1=moment(_0x9832c3)[_0x6911('0x5')](0x0);var _0x2cdd4d=moment(_0x4317ca)[_0x6911('0x5')](0x0);return _0x3696d1['diff'](_0x2cdd4d,'seconds');}exports[_0x6911('0x6')]=function(_0x4a2b7d){return function(_0x248f37){logger['error'](_0x4a2b7d,util['inspect'](_0x248f37,{'showHidden':![],'depth':null}));};};exports[_0x6911('0x7')]=function(_0x30513b,_0x10d33b){logger['info'](_0x30513b,util[_0x6911('0x8')](_0x10d33b,{'showHidden':![],'depth':null}));};exports['loggerError']=function(_0x26e9b7,_0x57c291){logger[_0x6911('0x9')](_0x26e9b7,util['inspect'](_0x57c291,{'showHidden':![],'depth':null}));};exports[_0x6911('0xa')]=function(_0x3f2074){return function(_0x1e9334){logger[_0x6911('0xb')](_0x3f2074,util[_0x6911('0x8')](_0x1e9334,{'showHidden':![],'depth':null}));};};exports['message']=function(_0x540cfb,_0x1914ee,_0x16d4bc){return{'message':_0x540cfb,'unlock':_0x1914ee,'active':_0x16d4bc};};exports[_0x6911('0xc')]=function(_0xc4dd65,_0x593dde,_0x210800){if(!_[_0x6911('0xd')](_0x210800)&&'string'===typeof _0x210800&&!_['isEmpty'](_0x210800)){if(!_[_0x6911('0xd')](_0x593dde)&&_0x6911('0xe')===typeof _0x593dde&&!_['isEmpty'](_0x593dde)){return util['format'](_0x6911('0xf'),_0x593dde,_0x210800);}return util['format'](_0x6911('0xf'),_0x210800,_0x210800);}if(!_[_0x6911('0xd')](_0xc4dd65)&&_0x6911('0xe')===typeof _0xc4dd65&&!_[_0x6911('0x10')](_0xc4dd65)){return _0xc4dd65;}return _0x6911('0x11');};exports[_0x6911('0x12')]=function(_0x14afc2){if(_['isNil'](_0x14afc2)){return![];}return _0x14afc2;};exports[_0x6911('0x13')]=function(_0xa15811,_0x272ef8,_0x21d6c0,_0x41a9f2,_0x220dd8,_0x4b86fb){var _0x4dd647={'XMD-QUEUE':_0x272ef8[_0x6911('0x14')]?_0x272ef8[_0x6911('0x14')][_0x6911('0x15')]:'','XMD-CALLERID':_0x41a9f2,'XMD-CALLERID-PREVIEW':_0x4b86fb?util[_0x6911('0x16')]('\x22%s\x22\x20<%s>',_0x4b86fb[_0x6911('0x17')],_0x4b86fb[_0x6911('0x18')]):_0x41a9f2,'XMD-DIALID':_0x220dd8,'XMD-CONTACTID':_0x272ef8[_0x6911('0x19')],'XMD-CDRTYPE':_0x6911('0x1a'),'CALLERID(all)':_0x41a9f2,'XMD-VOICEQUEUEID':_0x272ef8[_0x6911('0x1b')],'XMD-DIALCHANNEL':_0x21d6c0,'XMD-DIALTIMEOUT':_0xa15811[_0x6911('0x1c')]||0x1e,'XMD-DIALOPTIONS':util[_0x6911('0x16')]('\x22rtTxX%s%s\x22',_0xa15811['dialQueueProject2']?'g':'',_[_0x6911('0x10')](_0xa15811['monitor_format'])?'':'U(xcally-mixmonitor-context)'),'XMD-DIALURL':_0xa15811[_0x6911('0x1d')]||'','XMD-AGI':_0xa15811['dialQueueProject']?util[_0x6911('0x16')](_0x6911('0x1e'),ipAgi,_0xa15811[_0x6911('0x1f')]):_0x6911('0x20'),'XMD-AGIAFTER':_0xa15811[_0x6911('0x21')]?util[_0x6911('0x16')](_0x6911('0x1e'),ipAgi,_0xa15811[_0x6911('0x21')]):_0x6911('0x20'),'XMD-ORIGINATECALLERIDNUM':_0x4b86fb?_0x4b86fb[_0x6911('0x22')]:'','XMD-ORIGINATECALLERIDNAME':_0x4b86fb?_0x4b86fb[_0x6911('0x23')]:'','XMD-DESTINATION':_0x6911('0x24')};if(!_['isEmpty'](_0xa15811[_0x6911('0x25')])){_0x4dd647[util[_0x6911('0x16')]('%s','_XCALLY_MIXMONITOR_FORMAT')]=_0xa15811[_0x6911('0x25')];_0x4dd647[util[_0x6911('0x16')]('%s',_0x6911('0x26'))]=_0x220dd8;}if(_0x272ef8&&_0x272ef8[_0x6911('0x27')]){for(var _0xea9e21 in _0x272ef8[_0x6911('0x27')]){if(_0x272ef8[_0x6911('0x27')][_0x6911('0x28')](_0xea9e21)){if(!_[_0x6911('0x29')](_0x272ef8[_0x6911('0x27')][_0xea9e21])&&_0xea9e21!=='id'&&_0xea9e21!==_0x6911('0x2a')&&_0xea9e21!==_0x6911('0x2b')&&_0xea9e21!=='updatedAt'){_0x4dd647[util[_0x6911('0x16')](_0x6911('0x2c'),_0x6911('0x2d'),_[_0x6911('0x2e')](_0xea9e21))]=_0x272ef8[_0x6911('0x27')][_0xea9e21];}}}}return _0x4dd647;};exports[_0x6911('0x2f')]=function(_0x87e74e){var _0x55d8a2={};for(var _0x19b9ef in _0x87e74e){if(_0x87e74e[_0x6911('0x28')](_0x19b9ef)){_0x55d8a2[util[_0x6911('0x16')]('%s',_['toLower'](_0x19b9ef))]=_0x87e74e[_0x19b9ef];}}return{'variables':_0x55d8a2};};exports[_0x6911('0x30')]=function(_0x2a80fd,_0x1c031a){if(!_[_0x6911('0x29')](_0x2a80fd)){if(_0x2a80fd[_0x6911('0x28')](_0x6911('0x31'))){if(_0x2a80fd[_0x6911('0x31')]>0x0){_0x2a80fd['originated']-=0x1;}else{logger[_0x6911('0x9')]('[updateOriginated]\x20object\x20originated\x20is\x20negative',_0x1c031a);}}}else{logger[_0x6911('0x9')](_0x6911('0x32'),_0x1c031a);}};exports[_0x6911('0x33')]=function(_0x3be6a2){var _0x33f459=moment()['format'](_0x6911('0x34'));_0x3be6a2['state']=0xd;_0x3be6a2[_0x6911('0x35')]=_0x6911('0x36');_0x3be6a2[_0x6911('0x37')]=_0x33f459;_0x3be6a2['responsetime']=_0x33f459;_0x3be6a2[_0x6911('0x38')]=_0x33f459;};exports['logAgent']=function(_0x5948cf,_0x1c74b1,_0x26f2d6){var _0x2080b7=moment()[_0x6911('0x16')](_0x6911('0x34'));_0x5948cf[_0x6911('0x39')]=_0x1c74b1;_0x5948cf[_0x6911('0x35')]=_0x26f2d6;_0x5948cf[_0x6911('0x3a')]=_0x2080b7;_0x5948cf['ringtime']=getSeconds(_0x5948cf['responsetime'],_0x5948cf[_0x6911('0x37')]);};exports[_0x6911('0x3b')]=function(_0x291cd3,_0x168e11,_0x2b2597){_0x291cd3['membername']=_0x168e11;_0x291cd3['UserId']=_0x2b2597;};exports[_0x6911('0x3c')]=function(_0x210537,_0x312ecf,_0x504bbd){var _0x22ce4f=moment()[_0x6911('0x16')](_0x6911('0x34'));_0x210537['state']=_0x312ecf;_0x210537[_0x6911('0x35')]=_0x504bbd;_0x210537['responsetime']=_0x210537['responsetime']?_0x210537[_0x6911('0x3a')]:_0x22ce4f;_0x210537[_0x6911('0x38')]=_0x210537[_0x6911('0x38')]?_0x210537[_0x6911('0x38')]:_0x22ce4f;_0x210537[_0x6911('0x3d')]=getSeconds(_0x210537[_0x6911('0x3a')]||0x0,_0x210537[_0x6911('0x37')]||0x0);_0x210537[_0x6911('0x3e')]=_0x210537[_0x6911('0x3f')]?getSeconds(_0x210537[_0x6911('0x38')],_0x210537[_0x6911('0x3f')]):0x0;};exports['isFailure']=function(_0x11e237){return _0x11e237===_0x6911('0x40');};exports['variablesAction']=function(_0x255dae,_0x5e3849,_0x14e5fd,_0xe62a0b,_0x1cfe65){var _0x4e2236=_0xe62a0b?_0x6911('0x41'):_0x255dae['calleridname'];_0x4e2236=_0x1cfe65?_0x6911('0x42'):_0x4e2236;return{'actionid':_0x255dae[_0x6911('0x43')],'action':_0x6911('0x44'),'channel':_0x255dae[_0x6911('0x45')],'callerid':util['format'](_0x6911('0xf'),_0x4e2236,_0x255dae[_0x6911('0x18')]),'Exten':_0x6911('0x24'),'Context':_0x6911('0x46'),'Priority':'1','variable':_0x14e5fd,'timeout':(_0x5e3849[_0x6911('0x47')]||0x1e)*0x3e8,'async':!![],'channelid':_0x255dae['uniqueid']};};exports[_0x6911('0x48')]=function(_0xc1b201){return _0xc1b201[_0x6911('0x49')]+_0xc1b201[_0x6911('0x4a')]+_0xc1b201[_0x6911('0x4b')]+_0xc1b201[_0x6911('0x4c')]+_0xc1b201[_0x6911('0x4d')];};exports[_0x6911('0x4e')]=function(_0x27f19d){var _0x41e9b9=_['clone'](_0x27f19d);_0x41e9b9['state']=0xf;_0x41e9b9[_0x6911('0x35')]='Global';return _0x41e9b9;};exports[_0x6911('0x4f')]=function(_0x14d5e7,_0x404a08,_0x30dab7){var _0x478857={};_0x478857[_0x404a08]=_0x14d5e7[_0x404a08];_0x478857['active']=![];_0x478857['scheduledat']=moment()[_0x6911('0x50')](_0x30dab7,_0x6911('0x51'))['format'](_0x6911('0x34'));_0x478857[_0x6911('0x19')]=_0x14d5e7[_0x6911('0x19')];_0x478857[_0x6911('0x52')]=_0x14d5e7['ListId'];_0x478857[_0x6911('0x1b')]=_0x14d5e7[_0x6911('0x1b')]||undefined;return _0x478857;};exports[_0x6911('0x53')]=function(_0x3b96d0,_0x23c281){if(!_[_0x6911('0x29')](_0x3b96d0)){if(_0x3b96d0[_0x6911('0x54')]>0x0){_0x3b96d0[_0x6911('0x54')]-=0x1;}else{logger[_0x6911('0x9')](_0x23c281,_0x6911('0x55'));}}else{logger[_0x6911('0x9')](_0x23c281,_0x6911('0x56'));}};exports['IsNotLoggedIn']=function(_0x11de17){if(_0x11de17<=0x0){return!![];}return![];};exports[_0x6911('0x57')]=function(_0x9b68ad,_0x223aa6,_0x4f5884){_0x9b68ad[_0x6911('0x58')]=_0x223aa6;_0x9b68ad[_0x6911('0x15')]=_0x9b68ad['queue'];_0x9b68ad['interface']=_0x9b68ad[_0x6911('0x45')];if(_0x4f5884){_0x9b68ad[_0x6911('0x59')]=_0x4f5884[_0x6911('0x59')];}return _0x9b68ad;};exports['buildAcw']=function(_0xd5c900){var _0x3b52b8={};_0x3b52b8[_0x6911('0x5a')]=_0xd5c900[_0x6911('0x5a')];_0x3b52b8[_0x6911('0x5b')]=_0xd5c900[_0x6911('0x45')];_0x3b52b8['uniqueid']=_0xd5c900['uniqueid'];return _0x3b52b8;};exports[_0x6911('0x5c')]=function(_0x3860c1){var _0x11aecc=[];for(var _0x45c900 in _0x3860c1){if(_0x3860c1['hasOwnProperty'](_0x45c900)){if(!_[_0x6911('0x29')](_0x3860c1[_0x45c900])&&_0x3860c1[_0x45c900]['state']===_0x6911('0x5d')&&_0x3860c1[_0x45c900][_0x6911('0x5e')]==='reachable'){_0x11aecc['push'](_0x3860c1[_0x45c900]['id']);}}}return _0x11aecc;};exports[_0x6911('0x5f')]=function(_0xe1dc78){var _0x377d7b=moment()['milliseconds'](0x0);var _0x362b81=moment(_0xe1dc78)[_0x6911('0x5')](0x0);return _0x377d7b[_0x6911('0x60')](_0x362b81,'seconds');};exports['createBody']=function(_0x5884fa){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x5884fa[_0x6911('0x19')],'ListId':_0x5884fa['ListId'],'VoiceQueueId':_0x5884fa[_0x6911('0x1b')]||undefined,'CampaignId':_0x5884fa[_0x6911('0x61')]||undefined};};exports[_0x6911('0x62')]=function(_0x3eaa9b){if(_0x3eaa9b===_0x6911('0x43')||_0x3eaa9b===_0x6911('0x63')||_0x3eaa9b===_0x6911('0x5a')||_0x3eaa9b==='type'||_0x3eaa9b===_0x6911('0x64')||_0x3eaa9b==='dialAnswer'||_0x3eaa9b===_0x6911('0x65')||_0x3eaa9b==='channelAgent'||_0x3eaa9b===_0x6911('0x17')||_0x3eaa9b===_0x6911('0x66')||_0x3eaa9b===_0x6911('0x18')||_0x3eaa9b===_0x6911('0x67')||_0x3eaa9b===_0x6911('0x49')||_0x3eaa9b==='countcongestionretry'||_0x3eaa9b===_0x6911('0x4b')||_0x3eaa9b==='countglobal'||_0x3eaa9b===_0x6911('0x68')||_0x3eaa9b===_0x6911('0x69')||_0x3eaa9b==='callbackat'||_0x3eaa9b===_0x6911('0x6a')||_0x3eaa9b===_0x6911('0x19')||_0x3eaa9b===_0x6911('0x52')||_0x3eaa9b===_0x6911('0x6b')||_0x3eaa9b===_0x6911('0x1b')||_0x3eaa9b==='sipcallid'||_0x3eaa9b==='xmd-voicequeueid'||_0x3eaa9b===_0x6911('0x6c')||_0x3eaa9b===_0x6911('0x6d')||_0x3eaa9b===_0x6911('0x6e')||_0x3eaa9b===_0x6911('0x6f')||_0x3eaa9b==='xmd-dialtimeout'||_0x3eaa9b===_0x6911('0x70')||_0x3eaa9b==='xmd-dialid'||_0x3eaa9b==='xmd-dialchannel'||_0x3eaa9b===_0x6911('0x71')||_0x3eaa9b===_0x6911('0x72')||_0x3eaa9b===_0x6911('0x73')||_0x3eaa9b===_0x6911('0x74')||_0x3eaa9b===_0x6911('0x75')||_0x3eaa9b==='rtpaudioqos'||_0x3eaa9b===_0x6911('0x76')||_0x3eaa9b===_0x6911('0x77')||_0x3eaa9b==='rtpaudioqosjitterbridged'||_0x3eaa9b==='rtpaudioqosloss'||_0x3eaa9b===_0x6911('0x78')||_0x3eaa9b==='rtpaudioqosrtt'||_0x3eaa9b==='rtpaudioqosrttbridged'||_0x3eaa9b===_0x6911('0x79')||_0x3eaa9b===_0x6911('0x76')||_0x3eaa9b===_0x6911('0x77')||_0x3eaa9b===_0x6911('0x7a')||_0x3eaa9b==='rtpaudioqosloss'||_0x3eaa9b===_0x6911('0x78')||_0x3eaa9b===_0x6911('0x7b')||_0x3eaa9b==='rtpaudioqosrttbridged'||_0x3eaa9b===_0x6911('0x7c')||_0x3eaa9b==='bridgepvtcallid'||_0x3eaa9b===_0x6911('0x39')||_0x3eaa9b==='statedesc'){return![];}return!![];};exports['getCallerIdRandom']=function(_0x888352,_0x184954){var _0x358eab,_0x1feff8,_0x42e8be;if(_0x184954<=0x0){_0x184954=0x1;}_0x358eab=new RegExp(_0x6911('0x7d')+_0x184954+'}$');_0x1feff8=Math[_0x6911('0x7e')](0xa,_0x184954-0x1);_0x42e8be=Math[_0x6911('0x7e')](0xa,_0x184954)-0x1;return util[_0x6911('0x16')]('%s',_[_0x6911('0x7f')](_0x888352,_0x358eab,_[_0x6911('0x80')](_0x1feff8,_0x42e8be)));};exports[_0x6911('0x81')]=function(_0x503755){var _0x2002c3=_0x503755['match'](/"(.*?)"/);return _0x2002c3?_0x2002c3[0x1]:_0x503755;};exports[_0x6911('0x82')]=function(_0x144927){var _0xe388c6=_0x144927[_0x6911('0x83')](/<(.*?)>/);return _0xe388c6?_0xe388c6[0x1]:_0x144927;};