96da41a892d98576eb23bb7c5d59cd3a0e2b2453
[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 _0x4597=['xmd-callerid','xmd-agiafter','xmd-agi','rtpaudioqos','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','rtpaudioqosbridged','getCallerIdRandom','\x5cw{0,','pow','replace','random','match','util','lodash','moment','../../../../config/logger','preview','env','XCALLY_IP_AGI','127.0.0.1','milliseconds','diff','seconds','loggerCatch','error','inspect','logger','info','loggerError','logger2','message','isUndefined','string','isEmpty','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','isActive','isNil','Queue','calleridnum','ContactId','dialer','VoiceQueueId','dialOriginateTimeout','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','updatedAt','%s%s','XMD-','toUpper','toLowerVariables','toLower','updateOriginated','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','starttime','responsetime','endtime','logAgent','state','statedesc','logLookAgent','membername','UserId','logCustomer','ringtime','talktime','answertime','isFailure','variablesAction','RECALL','calleridname','BOOKED','uniqueid','originate','channelAgent','from-sip','countnosuchnumberretry','cloneAction','Global','scheduledAt','add','minutes','ListId','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','IsNotLoggedIn','lastevent','name','interface','mandatoryDisposition','buildAcw','queue','agentReadyId','not_inuse','reachable','getDiff','createBody','CampaignId','filterKey','idContact','type','dialAnswer','callback','callbackuniqueid','callbackat','sipcallid','xmd-queue','xmd-listid','xmd-dialtimeout','xmd-dialoptions','xmd-dialid','xmd-dialchannel','xmd-contactid','xmd-cdrtype'];(function(_0x21347a,_0x5d81c7){var _0x3d54d9=function(_0x15c6c6){while(--_0x15c6c6){_0x21347a['push'](_0x21347a['shift']());}};_0x3d54d9(++_0x5d81c7);}(_0x4597,0x9c));var _0x7459=function(_0x591867,_0x4dad13){_0x591867=_0x591867-0x0;var _0xe06b74=_0x4597[_0x591867];return _0xe06b74;};'use strict';var util=require(_0x7459('0x0'));var _=require(_0x7459('0x1'));var moment=require(_0x7459('0x2'));var logger=require(_0x7459('0x3'))(_0x7459('0x4'));var ipAgi=process[_0x7459('0x5')][_0x7459('0x6')]||_0x7459('0x7');function getSeconds(_0x1ec2c1,_0x51ba73){var _0x59e45e=moment(_0x1ec2c1)[_0x7459('0x8')](0x0);var _0x13ea31=moment(_0x51ba73)[_0x7459('0x8')](0x0);return _0x59e45e[_0x7459('0x9')](_0x13ea31,_0x7459('0xa'));}exports[_0x7459('0xb')]=function(_0x1a3c9d){return function(_0x3386fb){logger[_0x7459('0xc')](_0x1a3c9d,util[_0x7459('0xd')](_0x3386fb,{'showHidden':![],'depth':null}));};};exports[_0x7459('0xe')]=function(_0x4a4695,_0x40f53c){logger[_0x7459('0xf')](_0x4a4695,util['inspect'](_0x40f53c,{'showHidden':![],'depth':null}));};exports[_0x7459('0x10')]=function(_0x28de31,_0x50de14){logger[_0x7459('0xc')](_0x28de31,util[_0x7459('0xd')](_0x50de14,{'showHidden':![],'depth':null}));};exports[_0x7459('0x11')]=function(_0x2a54c5){return function(_0x21787c){logger['info'](_0x2a54c5,util[_0x7459('0xd')](_0x21787c,{'showHidden':![],'depth':null}));};};exports[_0x7459('0x12')]=function(_0x26c567,_0x7a4903,_0x5dae61){return{'message':_0x26c567,'unlock':_0x7a4903,'active':_0x5dae61};};exports['getCallerId']=function(_0x2f0f09,_0x345a82,_0x926d7e){if(!_[_0x7459('0x13')](_0x926d7e)&&_0x7459('0x14')===typeof _0x926d7e&&!_[_0x7459('0x15')](_0x926d7e)){if(!_[_0x7459('0x13')](_0x345a82)&&'string'===typeof _0x345a82&&!_[_0x7459('0x15')](_0x345a82)){return util[_0x7459('0x16')]('\x22%s\x22\x20<%s>',_0x345a82,_0x926d7e);}return util[_0x7459('0x16')](_0x7459('0x17'),_0x926d7e,_0x926d7e);}if(!_[_0x7459('0x13')](_0x2f0f09)&&_0x7459('0x14')===typeof _0x2f0f09&&!_[_0x7459('0x15')](_0x2f0f09)){return _0x2f0f09;}return _0x7459('0x18');};exports[_0x7459('0x19')]=function(_0x552207){if(_[_0x7459('0x1a')](_0x552207)){return![];}return _0x552207;};exports['addVariables']=function(_0x4bbe89,_0x46501c,_0x593172,_0x1124a6,_0x2f9056,_0x6c4b6f){var _0x440fb9={'XMD-QUEUE':_0x46501c[_0x7459('0x1b')]?_0x46501c[_0x7459('0x1b')]['name']:'','XMD-CALLERID':_0x1124a6,'XMD-CALLERID-PREVIEW':_0x6c4b6f?util[_0x7459('0x16')](_0x7459('0x17'),_0x6c4b6f['calleridname'],_0x6c4b6f[_0x7459('0x1c')]):_0x1124a6,'XMD-DIALID':_0x2f9056,'XMD-CONTACTID':_0x46501c[_0x7459('0x1d')],'XMD-CDRTYPE':_0x7459('0x1e'),'CALLERID(all)':_0x1124a6,'XMD-VOICEQUEUEID':_0x46501c[_0x7459('0x1f')],'XMD-DIALCHANNEL':_0x593172,'XMD-DIALTIMEOUT':_0x4bbe89[_0x7459('0x20')]||0x1e,'XMD-DIALOPTIONS':util['format']('\x22rtTxX%s%s\x22',_0x4bbe89[_0x7459('0x21')]?'g':'',_[_0x7459('0x15')](_0x4bbe89[_0x7459('0x22')])?'':_0x7459('0x23')),'XMD-DIALURL':_0x4bbe89[_0x7459('0x24')]||'','XMD-AGI':_0x4bbe89[_0x7459('0x25')]?util[_0x7459('0x16')](_0x7459('0x26'),ipAgi,_0x4bbe89['dialQueueProject']):'NONE','XMD-AGIAFTER':_0x4bbe89[_0x7459('0x21')]?util[_0x7459('0x16')](_0x7459('0x26'),ipAgi,_0x4bbe89[_0x7459('0x21')]):_0x7459('0x27'),'XMD-ORIGINATECALLERIDNUM':_0x6c4b6f?_0x6c4b6f[_0x7459('0x28')]:'','XMD-ORIGINATECALLERIDNAME':_0x6c4b6f?_0x6c4b6f[_0x7459('0x29')]:'','XMD-DESTINATION':_0x7459('0x2a')};if(!_[_0x7459('0x15')](_0x4bbe89['monitor_format'])){_0x440fb9[util['format']('%s',_0x7459('0x2b'))]=_0x4bbe89['monitor_format'];_0x440fb9[util[_0x7459('0x16')]('%s',_0x7459('0x2c'))]=_0x2f9056;}if(_0x46501c&&_0x46501c[_0x7459('0x2d')]){for(var _0x312ed7 in _0x46501c[_0x7459('0x2d')]){if(_0x46501c[_0x7459('0x2d')][_0x7459('0x2e')](_0x312ed7)){if(!_[_0x7459('0x1a')](_0x46501c[_0x7459('0x2d')][_0x312ed7])&&_0x312ed7!=='id'&&_0x312ed7!==_0x7459('0x2f')&&_0x312ed7!==_0x7459('0x30')&&_0x312ed7!==_0x7459('0x31')){_0x440fb9[util[_0x7459('0x16')](_0x7459('0x32'),_0x7459('0x33'),_[_0x7459('0x34')](_0x312ed7))]=_0x46501c[_0x7459('0x2d')][_0x312ed7];}}}}return _0x440fb9;};exports[_0x7459('0x35')]=function(_0x322cf6){var _0x175e1f={};for(var _0x355438 in _0x322cf6){if(_0x322cf6[_0x7459('0x2e')](_0x355438)){_0x175e1f[util[_0x7459('0x16')]('%s',_[_0x7459('0x36')](_0x355438))]=_0x322cf6[_0x355438];}}return{'variables':_0x175e1f};};exports[_0x7459('0x37')]=function(_0x10e174,_0x5cf99f){if(!_[_0x7459('0x1a')](_0x10e174)){if(_0x10e174[_0x7459('0x2e')](_0x7459('0x38'))){if(_0x10e174[_0x7459('0x38')]>0x0){_0x10e174[_0x7459('0x38')]-=0x1;}else{logger['error'](_0x7459('0x39'),_0x5cf99f);}}}else{logger['error'](_0x7459('0x3a'),_0x5cf99f);}};exports[_0x7459('0x3b')]=function(_0xa6c339){var _0x5488d1=moment()[_0x7459('0x16')](_0x7459('0x3c'));_0xa6c339['state']=0xd;_0xa6c339['statedesc']='Blacklist';_0xa6c339[_0x7459('0x3d')]=_0x5488d1;_0xa6c339[_0x7459('0x3e')]=_0x5488d1;_0xa6c339[_0x7459('0x3f')]=_0x5488d1;};exports[_0x7459('0x40')]=function(_0x1cbed1,_0x2676c1,_0x20cfa0){var _0x1cd826=moment()['format'](_0x7459('0x3c'));_0x1cbed1[_0x7459('0x41')]=_0x2676c1;_0x1cbed1[_0x7459('0x42')]=_0x20cfa0;_0x1cbed1['responsetime']=_0x1cd826;_0x1cbed1['ringtime']=getSeconds(_0x1cbed1['responsetime'],_0x1cbed1[_0x7459('0x3d')]);};exports[_0x7459('0x43')]=function(_0x11be08,_0x5f4be1,_0x3b4005){_0x11be08[_0x7459('0x44')]=_0x5f4be1;_0x11be08[_0x7459('0x45')]=_0x3b4005;};exports[_0x7459('0x46')]=function(_0xf1fc3d,_0x5d8bef,_0x1068b4){var _0x587d8e=moment()[_0x7459('0x16')](_0x7459('0x3c'));_0xf1fc3d[_0x7459('0x41')]=_0x5d8bef;_0xf1fc3d[_0x7459('0x42')]=_0x1068b4;_0xf1fc3d[_0x7459('0x3e')]=_0xf1fc3d['responsetime']?_0xf1fc3d['responsetime']:_0x587d8e;_0xf1fc3d[_0x7459('0x3f')]=_0xf1fc3d[_0x7459('0x3f')]?_0xf1fc3d['endtime']:_0x587d8e;_0xf1fc3d[_0x7459('0x47')]=getSeconds(_0xf1fc3d['responsetime']||0x0,_0xf1fc3d[_0x7459('0x3d')]||0x0);_0xf1fc3d[_0x7459('0x48')]=_0xf1fc3d[_0x7459('0x49')]?getSeconds(_0xf1fc3d['endtime'],_0xf1fc3d[_0x7459('0x49')]):0x0;};exports[_0x7459('0x4a')]=function(_0x279e4b){return _0x279e4b==='Failure';};exports[_0x7459('0x4b')]=function(_0x395658,_0xa3707c,_0x1034e6,_0x3d2b38,_0xf00ce9){var _0x41c30b=_0x3d2b38?_0x7459('0x4c'):_0x395658[_0x7459('0x4d')];_0x41c30b=_0xf00ce9?_0x7459('0x4e'):_0x41c30b;return{'actionid':_0x395658[_0x7459('0x4f')],'action':_0x7459('0x50'),'channel':_0x395658[_0x7459('0x51')],'callerid':util[_0x7459('0x16')](_0x7459('0x17'),_0x41c30b,_0x395658['calleridnum']),'Exten':_0x7459('0x2a'),'Context':_0x7459('0x52'),'Priority':'1','variable':_0x1034e6,'timeout':(_0xa3707c['timeout']||0x1e)*0x3e8,'async':!![],'channelid':_0x395658['uniqueid']};};exports['totalGlobal']=function(_0x133458){return _0x133458['countbusyretry']+_0x133458['countcongestionretry']+_0x133458['countnoanswerretry']+_0x133458['countagentrejectretry']+_0x133458[_0x7459('0x53')];};exports[_0x7459('0x54')]=function(_0x2fe21d){var _0x31a838=_['clone'](_0x2fe21d);_0x31a838[_0x7459('0x41')]=0xf;_0x31a838[_0x7459('0x42')]=_0x7459('0x55');return _0x31a838;};exports[_0x7459('0x56')]=function(_0x46a5dd,_0x243f9b,_0x404360){var _0x23f1cd={};_0x23f1cd[_0x243f9b]=_0x46a5dd[_0x243f9b];_0x23f1cd['active']=![];_0x23f1cd['scheduledat']=moment()[_0x7459('0x57')](_0x404360,_0x7459('0x58'))[_0x7459('0x16')](_0x7459('0x3c'));_0x23f1cd[_0x7459('0x1d')]=_0x46a5dd['ContactId'];_0x23f1cd[_0x7459('0x59')]=_0x46a5dd[_0x7459('0x59')];_0x23f1cd[_0x7459('0x1f')]=_0x46a5dd[_0x7459('0x1f')]||undefined;return _0x23f1cd;};exports[_0x7459('0x5a')]=function(_0x2cde64,_0x59ba8b){if(!_[_0x7459('0x1a')](_0x2cde64)){if(_0x2cde64[_0x7459('0x5b')]>0x0){_0x2cde64[_0x7459('0x5b')]-=0x1;}else{logger[_0x7459('0xc')](_0x59ba8b,_0x7459('0x5c'));}}else{logger[_0x7459('0xc')](_0x59ba8b,'[decrementTalkink]\x20is\x20null\x20or\x20undefined');}};exports[_0x7459('0x5d')]=function(_0x581204){if(_0x581204<=0x0){return!![];}return![];};exports['buildObj']=function(_0x448ec7,_0x1dbed0,_0x2d92f0){_0x448ec7[_0x7459('0x5e')]=_0x1dbed0;_0x448ec7[_0x7459('0x5f')]=_0x448ec7['queue'];_0x448ec7[_0x7459('0x60')]=_0x448ec7['channelAgent'];if(_0x2d92f0){_0x448ec7[_0x7459('0x61')]=_0x2d92f0[_0x7459('0x61')];}return _0x448ec7;};exports[_0x7459('0x62')]=function(_0x586c82){var _0x99f4ce={};_0x99f4ce['queue']=_0x586c82[_0x7459('0x63')];_0x99f4ce[_0x7459('0x60')]=_0x586c82[_0x7459('0x51')];_0x99f4ce[_0x7459('0x4f')]=_0x586c82[_0x7459('0x4f')];return _0x99f4ce;};exports[_0x7459('0x64')]=function(_0x9b6278){var _0x1279e0=[];for(var _0x4d2f9f in _0x9b6278){if(_0x9b6278[_0x7459('0x2e')](_0x4d2f9f)){if(!_['isNil'](_0x9b6278[_0x4d2f9f])&&_0x9b6278[_0x4d2f9f][_0x7459('0x41')]===_0x7459('0x65')&&_0x9b6278[_0x4d2f9f]['status']===_0x7459('0x66')){_0x1279e0['push'](_0x9b6278[_0x4d2f9f]['id']);}}}return _0x1279e0;};exports[_0x7459('0x67')]=function(_0x52033b){var _0x319847=moment()[_0x7459('0x8')](0x0);var _0x1dd34a=moment(_0x52033b)[_0x7459('0x8')](0x0);return _0x319847['diff'](_0x1dd34a,'seconds');};exports[_0x7459('0x68')]=function(_0x46b18e){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x46b18e[_0x7459('0x1d')],'ListId':_0x46b18e[_0x7459('0x59')],'VoiceQueueId':_0x46b18e[_0x7459('0x1f')]||undefined,'CampaignId':_0x46b18e[_0x7459('0x69')]||undefined};};exports[_0x7459('0x6a')]=function(_0x4b73d4){if(_0x4b73d4==='uniqueid'||_0x4b73d4===_0x7459('0x6b')||_0x4b73d4==='queue'||_0x4b73d4===_0x7459('0x6c')||_0x4b73d4==='campaigntype'||_0x4b73d4===_0x7459('0x6d')||_0x4b73d4===_0x7459('0x44')||_0x4b73d4==='channelAgent'||_0x4b73d4===_0x7459('0x4d')||_0x4b73d4==='active'||_0x4b73d4==='calleridnum'||_0x4b73d4==='scheduledat'||_0x4b73d4==='countbusyretry'||_0x4b73d4==='countcongestionretry'||_0x4b73d4==='countnoanswerretry'||_0x4b73d4==='countglobal'||_0x4b73d4===_0x7459('0x6e')||_0x4b73d4===_0x7459('0x6f')||_0x4b73d4===_0x7459('0x70')||_0x4b73d4==='recallme'||_0x4b73d4===_0x7459('0x1d')||_0x4b73d4===_0x7459('0x59')||_0x4b73d4===_0x7459('0x45')||_0x4b73d4===_0x7459('0x1f')||_0x4b73d4===_0x7459('0x71')||_0x4b73d4==='xmd-voicequeueid'||_0x4b73d4===_0x7459('0x72')||_0x4b73d4==='xmd-phone'||_0x4b73d4===_0x7459('0x73')||_0x4b73d4==='xmd-dialurl'||_0x4b73d4===_0x7459('0x74')||_0x4b73d4===_0x7459('0x75')||_0x4b73d4===_0x7459('0x76')||_0x4b73d4===_0x7459('0x77')||_0x4b73d4===_0x7459('0x78')||_0x4b73d4===_0x7459('0x79')||_0x4b73d4===_0x7459('0x7a')||_0x4b73d4===_0x7459('0x7b')||_0x4b73d4===_0x7459('0x7c')||_0x4b73d4===_0x7459('0x7d')||_0x4b73d4==='rtpaudioqosbridged'||_0x4b73d4===_0x7459('0x7e')||_0x4b73d4===_0x7459('0x7f')||_0x4b73d4===_0x7459('0x80')||_0x4b73d4===_0x7459('0x81')||_0x4b73d4===_0x7459('0x82')||_0x4b73d4===_0x7459('0x83')||_0x4b73d4===_0x7459('0x7d')||_0x4b73d4===_0x7459('0x84')||_0x4b73d4===_0x7459('0x7e')||_0x4b73d4===_0x7459('0x7f')||_0x4b73d4===_0x7459('0x80')||_0x4b73d4===_0x7459('0x81')||_0x4b73d4==='rtpaudioqosrtt'||_0x4b73d4===_0x7459('0x83')||_0x4b73d4==='bridgepeer'||_0x4b73d4==='bridgepvtcallid'||_0x4b73d4==='state'||_0x4b73d4===_0x7459('0x42')){return![];}return!![];};exports[_0x7459('0x85')]=function(_0x404709,_0x51d853){var _0x56d814,_0x409d8b,_0x283534;if(_0x51d853<=0x0){_0x51d853=0x1;}_0x56d814=new RegExp(_0x7459('0x86')+_0x51d853+'}$');_0x409d8b=Math['pow'](0xa,_0x51d853-0x1);_0x283534=Math[_0x7459('0x87')](0xa,_0x51d853)-0x1;return util[_0x7459('0x16')]('%s',_[_0x7459('0x88')](_0x404709,_0x56d814,_[_0x7459('0x89')](_0x409d8b,_0x283534)));};exports['extractCalleridName']=function(_0x312f06){var _0x14e5eb=_0x312f06['match'](/"(.*?)"/);return _0x14e5eb?_0x14e5eb[0x1]:_0x312f06;};exports['extractCalleridNumber']=function(_0x42119a){var _0x54e766=_0x42119a[_0x7459('0x8a')](/<(.*?)>/);return _0x54e766?_0x54e766[0x1]:_0x42119a;};