38e570865bb6efc9fb72b354e5ae613425922635
[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 _0x4c09=['decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','name','interface','voice','mandatoryDisposition','buildObj','buildAcw','queue','agentReadyId','not_inuse','push','getDiff','milliseconds','seconds','idContact','type','active','countnoanswerretry','callback','callbackuniqueid','recallme','xmd-voicequeueid','xmd-queue','xmd-phone','xmd-listid','xmd-dialurl','xmd-dialtimeout','xmd-dialoptions','xmd-dialchannel','xmd-contactid','xmd-cdrtype','xmd-callerid','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqoslossbridged','rtpaudioqosrttbridged','rtpaudioqosloss','rtpaudioqosrtt','bridgepvtcallid','getCallerIdRandom','\x5cw{0,','pow','replace','match','extractCalleridNumber','noanswer','variables','keys','buildNoAnswerEventPayload','lodash','moment','../../../../config/logger','preview','XCALLY_IP_AGI','127.0.0.1','../../dialer/utils','loggerCatch','error','logger','info','loggerError','logger2','isEmpty','isUndefined','format','\x22%s\x22\x20<%s>','string','\x22\x22\x20<>','isActive','isNil','addVariables','Queue','calleridname','calleridnum','ContactId','dialer','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','monitor_format','dialPreviewUrl','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','originatecalleridname','xcally-motion-preview','_XCALLY_MIXMONITOR_FORMAT','Contact','hasOwnProperty','tags','updatedAt','%s%s','XMD-','toUpper','toLower','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','Blacklist','starttime','endtime','responsetime','ringtime','getSeconds','membername','UserId','logCustomer','statedesc','talktime','answertime','isFailure','variablesAction','RECALL','BOOKED','uniqueid','originate','channelAgent','from-sip','timeout','totalGlobal','countbusyretry','countnosuchnumberretry','cloneAction','clone','Global','scheduledAt','scheduledat','add','minutes','ListId'];(function(_0x5ab81f,_0x3a511d){var _0x2b1765=function(_0x19992b){while(--_0x19992b){_0x5ab81f['push'](_0x5ab81f['shift']());}};_0x2b1765(++_0x3a511d);}(_0x4c09,0xc3));var _0x94c0=function(_0x1040c8,_0x1baa50){_0x1040c8=_0x1040c8-0x0;var _0x5d0df0=_0x4c09[_0x1040c8];return _0x5d0df0;};'use strict';var util=require('util');var _=require(_0x94c0('0x0'));var moment=require(_0x94c0('0x1'));var logger=require(_0x94c0('0x2'))(_0x94c0('0x3'));var ipAgi=process['env'][_0x94c0('0x4')]||_0x94c0('0x5');var utils=require(_0x94c0('0x6'));exports[_0x94c0('0x7')]=function(_0x5ce996){return function(_0x5e16a5){logger[_0x94c0('0x8')](_0x5ce996,util['inspect'](_0x5e16a5,{'showHidden':![],'depth':null}));};};exports[_0x94c0('0x9')]=function(_0x25da3e,_0x3ee4a1){logger[_0x94c0('0xa')](_0x25da3e,util['inspect'](_0x3ee4a1,{'showHidden':![],'depth':null}));};exports[_0x94c0('0xb')]=function(_0x2e3f6f,_0x298694){logger[_0x94c0('0x8')](_0x2e3f6f,util['inspect'](_0x298694,{'showHidden':![],'depth':null}));};exports[_0x94c0('0xc')]=function(_0x14555f){return function(_0x49ef00){logger[_0x94c0('0xa')](_0x14555f,util['inspect'](_0x49ef00,{'showHidden':![],'depth':null}));};};exports['message']=function(_0x11394a,_0x146b2e,_0x14990f){return{'message':_0x11394a,'unlock':_0x146b2e,'active':_0x14990f};};exports['getCallerId']=function(_0x256952,_0x1315c5,_0x325d0c){if(!_['isUndefined'](_0x325d0c)&&'string'===typeof _0x325d0c&&!_[_0x94c0('0xd')](_0x325d0c)){if(!_[_0x94c0('0xe')](_0x1315c5)&&'string'===typeof _0x1315c5&&!_[_0x94c0('0xd')](_0x1315c5)){return util[_0x94c0('0xf')]('\x22%s\x22\x20<%s>',_0x1315c5,_0x325d0c);}return util[_0x94c0('0xf')](_0x94c0('0x10'),_0x325d0c,_0x325d0c);}if(!_[_0x94c0('0xe')](_0x256952)&&_0x94c0('0x11')===typeof _0x256952&&!_[_0x94c0('0xd')](_0x256952)){return _0x256952;}return _0x94c0('0x12');};exports[_0x94c0('0x13')]=function(_0x4c389c){if(_[_0x94c0('0x14')](_0x4c389c)){return![];}return _0x4c389c;};exports[_0x94c0('0x15')]=function(_0x114a20,_0x3d2454,_0x16f846,_0x294663,_0x5057d8,_0x3b5c45){var _0x1d55fb={'XMD-QUEUE':_0x3d2454[_0x94c0('0x16')]?_0x3d2454[_0x94c0('0x16')]['name']:'','XMD-CALLERID':_0x294663,'XMD-CALLERID-PREVIEW':_0x3b5c45?util[_0x94c0('0xf')](_0x94c0('0x10'),_0x3b5c45[_0x94c0('0x17')],_0x3b5c45[_0x94c0('0x18')]):_0x294663,'XMD-DIALID':_0x5057d8,'XMD-CONTACTID':_0x3d2454[_0x94c0('0x19')],'XMD-CDRTYPE':_0x94c0('0x1a'),'CALLERID(all)':_0x294663,'XMD-VOICEQUEUEID':_0x3d2454[_0x94c0('0x1b')],'XMD-DIALCHANNEL':_0x16f846,'XMD-DIALTIMEOUT':_0x114a20[_0x94c0('0x1c')]||0x1e,'XMD-DIALOPTIONS':util[_0x94c0('0xf')](_0x94c0('0x1d'),_0x114a20[_0x94c0('0x1e')]?'g':'',_['isEmpty'](_0x114a20[_0x94c0('0x1f')])?'':'U(xcally-mixmonitor-context)'),'XMD-DIALURL':_0x114a20[_0x94c0('0x20')]||'','XMD-AGI':_0x114a20[_0x94c0('0x21')]?util[_0x94c0('0xf')](_0x94c0('0x22'),ipAgi,_0x114a20[_0x94c0('0x21')]):_0x94c0('0x23'),'XMD-AGIAFTER':_0x114a20[_0x94c0('0x1e')]?util[_0x94c0('0xf')]('\x22agi://%s/square,%s\x22',ipAgi,_0x114a20[_0x94c0('0x1e')]):_0x94c0('0x23'),'XMD-ORIGINATECALLERIDNUM':_0x3b5c45?_0x3b5c45['originatecalleridnum']:'','XMD-ORIGINATECALLERIDNAME':_0x3b5c45?_0x3b5c45[_0x94c0('0x24')]:'','XMD-DESTINATION':_0x94c0('0x25'),'SIPADDHEADER':'Call-Type:\x20PREVIEW'};if(!_['isEmpty'](_0x114a20['monitor_format'])){_0x1d55fb[util['format']('%s',_0x94c0('0x26'))]=_0x114a20[_0x94c0('0x1f')];_0x1d55fb[util[_0x94c0('0xf')]('%s','_XCALLY_MIXMONITOR_UNIQUEID')]=_0x5057d8;}if(_0x3d2454&&_0x3d2454['Contact']){for(var _0x1e51df in _0x3d2454[_0x94c0('0x27')]){if(_0x3d2454['Contact'][_0x94c0('0x28')](_0x1e51df)){if(!_['isNil'](_0x3d2454['Contact'][_0x1e51df])&&_0x1e51df!=='id'&&_0x1e51df!==_0x94c0('0x29')&&_0x1e51df!=='createdAt'&&_0x1e51df!==_0x94c0('0x2a')){_0x1d55fb[util['format'](_0x94c0('0x2b'),_0x94c0('0x2c'),_[_0x94c0('0x2d')](_0x1e51df))]=_0x3d2454[_0x94c0('0x27')][_0x1e51df];}}}}return _0x1d55fb;};exports['toLowerVariables']=function(_0x25881a){var _0x588d12={};for(var _0x4a71a2 in _0x25881a){if(_0x25881a[_0x94c0('0x28')](_0x4a71a2)){_0x588d12[util[_0x94c0('0xf')]('%s',_[_0x94c0('0x2e')](_0x4a71a2))]=_0x25881a[_0x4a71a2];}}return{'variables':_0x588d12};};exports['updateOriginated']=function(_0x4ca07c,_0xf05df){if(!_[_0x94c0('0x14')](_0x4ca07c)){if(_0x4ca07c[_0x94c0('0x28')]('originated')){if(_0x4ca07c[_0x94c0('0x2f')]>0x0){_0x4ca07c[_0x94c0('0x2f')]-=0x1;}else{logger[_0x94c0('0x8')](_0x94c0('0x30'),_0xf05df);}}}else{logger['error'](_0x94c0('0x31'),_0xf05df);}};exports[_0x94c0('0x32')]=function(_0x598936){var _0x448b7e=moment()[_0x94c0('0xf')](_0x94c0('0x33'));_0x598936[_0x94c0('0x34')]=0xd;_0x598936['statedesc']=_0x94c0('0x35');_0x598936[_0x94c0('0x36')]=_0x448b7e;_0x598936['responsetime']=_0x448b7e;_0x598936[_0x94c0('0x37')]=_0x448b7e;};exports['logAgent']=function(_0x24c651,_0x3ccf10,_0x4260df){var _0x35b6d0=moment()[_0x94c0('0xf')](_0x94c0('0x33'));_0x24c651[_0x94c0('0x34')]=_0x3ccf10;_0x24c651['statedesc']=_0x4260df;_0x24c651[_0x94c0('0x38')]=_0x35b6d0;_0x24c651[_0x94c0('0x39')]=utils[_0x94c0('0x3a')](_0x24c651[_0x94c0('0x38')],_0x24c651[_0x94c0('0x36')]);};exports['logLookAgent']=function(_0x234287,_0x239168,_0x488872){_0x234287[_0x94c0('0x3b')]=_0x239168;_0x234287[_0x94c0('0x3c')]=_0x488872;};exports[_0x94c0('0x3d')]=function(_0x28ed3a,_0x4c3e23,_0x54935f){var _0xf07751=moment()[_0x94c0('0xf')]('YYYY-MM-DD\x20HH:mm:ss');_0x28ed3a[_0x94c0('0x34')]=_0x4c3e23;_0x28ed3a[_0x94c0('0x3e')]=_0x54935f;_0x28ed3a[_0x94c0('0x38')]=_0x28ed3a[_0x94c0('0x38')]?_0x28ed3a[_0x94c0('0x38')]:_0xf07751;_0x28ed3a['endtime']=_0x28ed3a['endtime']?_0x28ed3a[_0x94c0('0x37')]:_0xf07751;_0x28ed3a[_0x94c0('0x39')]=utils[_0x94c0('0x3a')](_0x28ed3a[_0x94c0('0x38')]||0x0,_0x28ed3a['starttime']||0x0);_0x28ed3a[_0x94c0('0x3f')]=_0x28ed3a['answertime']?utils['getSeconds'](_0x28ed3a[_0x94c0('0x37')],_0x28ed3a[_0x94c0('0x40')]):0x0;};exports[_0x94c0('0x41')]=function(_0x3e6547){return _0x3e6547==='Failure';};exports[_0x94c0('0x42')]=function(_0xaabcbb,_0xf91759,_0x9b42f8,_0x4ac977,_0x32ad8e){var _0x251d53=_0x4ac977?_0x94c0('0x43'):_0xaabcbb['calleridname'];_0x251d53=_0x32ad8e?_0x94c0('0x44'):_0x251d53;return{'actionid':_0xaabcbb[_0x94c0('0x45')],'action':_0x94c0('0x46'),'channel':_0xaabcbb[_0x94c0('0x47')],'callerid':util['format'](_0x94c0('0x10'),_0x251d53,_0xaabcbb['calleridnum']),'Exten':_0x94c0('0x25'),'Context':_0x94c0('0x48'),'Priority':'1','variable':_0x9b42f8,'timeout':(_0xf91759[_0x94c0('0x49')]||0x1e)*0x3e8,'async':!![],'channelid':_0xaabcbb[_0x94c0('0x45')]};};exports[_0x94c0('0x4a')]=function(_0x474c5b){return _0x474c5b[_0x94c0('0x4b')]+_0x474c5b['countcongestionretry']+_0x474c5b['countnoanswerretry']+_0x474c5b['countagentrejectretry']+_0x474c5b[_0x94c0('0x4c')];};exports[_0x94c0('0x4d')]=function(_0xbe48cd){var _0x31df1c=_[_0x94c0('0x4e')](_0xbe48cd);_0x31df1c['state']=0xf;_0x31df1c[_0x94c0('0x3e')]=_0x94c0('0x4f');return _0x31df1c;};exports[_0x94c0('0x50')]=function(_0xd5712f,_0xd182a8,_0x3397de){var _0x28d56f={};_0x28d56f[_0xd182a8]=_0xd5712f[_0xd182a8];_0x28d56f['active']=![];_0x28d56f[_0x94c0('0x51')]=moment()[_0x94c0('0x52')](_0x3397de,_0x94c0('0x53'))[_0x94c0('0xf')](_0x94c0('0x33'));_0x28d56f[_0x94c0('0x19')]=_0xd5712f[_0x94c0('0x19')];_0x28d56f[_0x94c0('0x54')]=_0xd5712f[_0x94c0('0x54')];_0x28d56f[_0x94c0('0x1b')]=_0xd5712f[_0x94c0('0x1b')]||undefined;return _0x28d56f;};exports[_0x94c0('0x55')]=function(_0x4b6c39,_0x4640e4){if(!_[_0x94c0('0x14')](_0x4b6c39)){if(_0x4b6c39[_0x94c0('0x56')]>0x0){_0x4b6c39[_0x94c0('0x56')]-=0x1;}else{logger[_0x94c0('0x8')](_0x4640e4,_0x94c0('0x57'));}}else{logger[_0x94c0('0x8')](_0x4640e4,_0x94c0('0x58'));}};exports[_0x94c0('0x59')]=function(_0x3900a8){if(_0x3900a8<=0x0){return!![];}return![];};function buildObj(_0x249526,_0x1c9793,_0x4a57bd){_0x249526['lastevent']=_0x1c9793;_0x249526[_0x94c0('0x5a')]=_0x249526['queue'];_0x249526[_0x94c0('0x5b')]=_0x249526[_0x94c0('0x47')];_0x249526['motionChannel']=_0x94c0('0x5c');if(_0x4a57bd){_0x249526[_0x94c0('0x5d')]=_0x4a57bd['mandatoryDisposition'];}return _0x249526;}exports[_0x94c0('0x5e')]=buildObj;exports[_0x94c0('0x5f')]=function(_0x3827de){var _0x3994e8={};_0x3994e8[_0x94c0('0x60')]=_0x3827de[_0x94c0('0x60')];_0x3994e8['interface']=_0x3827de[_0x94c0('0x47')];_0x3994e8['uniqueid']=_0x3827de[_0x94c0('0x45')];return _0x3994e8;};exports[_0x94c0('0x61')]=function(_0x12ad3d){var _0x5f4377=[];for(var _0x81c595 in _0x12ad3d){if(_0x12ad3d[_0x94c0('0x28')](_0x81c595)){if(!_['isNil'](_0x12ad3d[_0x81c595])&&_0x12ad3d[_0x81c595][_0x94c0('0x34')]===_0x94c0('0x62')&&_0x12ad3d[_0x81c595]['status']==='reachable'){_0x5f4377[_0x94c0('0x63')](_0x12ad3d[_0x81c595]['id']);}}}return _0x5f4377;};exports[_0x94c0('0x64')]=function(_0x49d86e){var _0x154d63=moment()[_0x94c0('0x65')](0x0);var _0x3c025c=moment(_0x49d86e)['milliseconds'](0x0);return _0x154d63['diff'](_0x3c025c,_0x94c0('0x66'));};exports['createBody']=function(_0x4fa2fb){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x4fa2fb[_0x94c0('0x19')],'ListId':_0x4fa2fb[_0x94c0('0x54')],'VoiceQueueId':_0x4fa2fb[_0x94c0('0x1b')]||undefined,'CampaignId':_0x4fa2fb['CampaignId']||undefined};};exports['filterKey']=function(_0x4895bc){if(_0x4895bc===_0x94c0('0x45')||_0x4895bc===_0x94c0('0x67')||_0x4895bc===_0x94c0('0x60')||_0x4895bc===_0x94c0('0x68')||_0x4895bc==='campaigntype'||_0x4895bc==='dialAnswer'||_0x4895bc===_0x94c0('0x3b')||_0x4895bc===_0x94c0('0x47')||_0x4895bc===_0x94c0('0x17')||_0x4895bc===_0x94c0('0x69')||_0x4895bc==='calleridnum'||_0x4895bc===_0x94c0('0x51')||_0x4895bc===_0x94c0('0x4b')||_0x4895bc==='countcongestionretry'||_0x4895bc===_0x94c0('0x6a')||_0x4895bc==='countglobal'||_0x4895bc===_0x94c0('0x6b')||_0x4895bc===_0x94c0('0x6c')||_0x4895bc==='callbackat'||_0x4895bc===_0x94c0('0x6d')||_0x4895bc==='ContactId'||_0x4895bc==='ListId'||_0x4895bc===_0x94c0('0x3c')||_0x4895bc===_0x94c0('0x1b')||_0x4895bc==='sipcallid'||_0x4895bc===_0x94c0('0x6e')||_0x4895bc===_0x94c0('0x6f')||_0x4895bc===_0x94c0('0x70')||_0x4895bc===_0x94c0('0x71')||_0x4895bc===_0x94c0('0x72')||_0x4895bc===_0x94c0('0x73')||_0x4895bc===_0x94c0('0x74')||_0x4895bc==='xmd-dialid'||_0x4895bc===_0x94c0('0x75')||_0x4895bc===_0x94c0('0x76')||_0x4895bc===_0x94c0('0x77')||_0x4895bc===_0x94c0('0x78')||_0x4895bc==='xmd-agiafter'||_0x4895bc==='xmd-agi'||_0x4895bc===_0x94c0('0x79')||_0x4895bc===_0x94c0('0x7a')||_0x4895bc===_0x94c0('0x7b')||_0x4895bc===_0x94c0('0x7c')||_0x4895bc==='rtpaudioqosloss'||_0x4895bc===_0x94c0('0x7d')||_0x4895bc==='rtpaudioqosrtt'||_0x4895bc===_0x94c0('0x7e')||_0x4895bc===_0x94c0('0x79')||_0x4895bc===_0x94c0('0x7a')||_0x4895bc===_0x94c0('0x7b')||_0x4895bc===_0x94c0('0x7c')||_0x4895bc===_0x94c0('0x7f')||_0x4895bc===_0x94c0('0x7d')||_0x4895bc===_0x94c0('0x80')||_0x4895bc===_0x94c0('0x7e')||_0x4895bc==='bridgepeer'||_0x4895bc===_0x94c0('0x81')||_0x4895bc===_0x94c0('0x34')||_0x4895bc==='statedesc'){return![];}return!![];};exports[_0x94c0('0x82')]=function(_0x3a03be,_0x472f48){var _0x318254,_0x35a7fe,_0x254654;if(_0x472f48<=0x0){_0x472f48=0x1;}_0x318254=new RegExp(_0x94c0('0x83')+_0x472f48+'}$');_0x35a7fe=Math[_0x94c0('0x84')](0xa,_0x472f48-0x1);_0x254654=Math[_0x94c0('0x84')](0xa,_0x472f48)-0x1;return util[_0x94c0('0xf')]('%s',_[_0x94c0('0x85')](_0x3a03be,_0x318254,_['random'](_0x35a7fe,_0x254654)));};exports['extractCalleridName']=function(_0x2dc786){var _0xf9d60e=_0x2dc786[_0x94c0('0x86')](/"(.*?)"/);return _0xf9d60e?_0xf9d60e[0x1]:_0x2dc786;};exports[_0x94c0('0x87')]=function(_0x1fae7d){var _0x78a17d=_0x1fae7d[_0x94c0('0x86')](/<(.*?)>/);return _0x78a17d?_0x78a17d[0x1]:_0x1fae7d;};function buildNoAnswerEventPayload(_0x42f2a4,_0x548435){var _0x1ba36e=buildObj(_0x42f2a4,_0x94c0('0x88'));if(!_[_0x94c0('0xd')](_0x548435[_0x94c0('0x89')])){Object[_0x94c0('0x8a')](_0x548435['variables'])['forEach'](function(_0x429b80){_0x1ba36e[_0x429b80['toLowerCase']()]=_0x548435[_0x94c0('0x89')][_0x429b80];});}return _0x1ba36e;}exports[_0x94c0('0x8b')]=buildNoAnswerEventPayload;