Built motion from commit 0900f080.|2.5.45
[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 _0xe7f8=['idContact','type','campaigntype','dialAnswer','countnoanswerretry','countglobal','callbackuniqueid','callbackat','UserId','sipcallid','xmd-voicequeueid','xmd-queue','xmd-listid','xmd-dialurl','xmd-dialtimeout','xmd-dialoptions','xmd-dialid','xmd-dialchannel','xmd-contactid','xmd-cdrtype','xmd-agi','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','rtpaudioqosjitter','bridgepeer','bridgepvtcallid','getCallerIdRandom','replace','random','extractCalleridNumber','match','util','lodash','../../../../config/logger','preview','env','XCALLY_IP_AGI','milliseconds','diff','seconds','loggerCatch','error','inspect','info','loggerError','logger2','message','getCallerId','isEmpty','isUndefined','string','\x22%s\x22\x20<%s>','format','\x22\x22\x20<>','isActive','addVariables','Queue','name','calleridnum','dialer','VoiceQueueId','dialOriginateTimeout','dialQueueProject2','monitor_format','U(xcally-mixmonitor-context)','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','originatecalleridname','xcally-motion-preview','Call-Type:\x20PREVIEW','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','Contact','hasOwnProperty','isNil','tags','updatedAt','XMD-','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','Blacklist','starttime','responsetime','logAgent','statedesc','logLookAgent','membername','logCustomer','endtime','talktime','answertime','variablesAction','calleridname','uniqueid','originate','channelAgent','from-sip','timeout','totalGlobal','countbusyretry','countcongestionretry','countagentrejectretry','cloneAction','clone','Global','scheduledAt','active','add','minutes','ContactId','ListId','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','buildObj','lastevent','queue','interface','motionChannel','voice','mandatoryDisposition','buildAcw','agentReadyId','reachable','push','createBody','filterKey'];(function(_0x286bfb,_0x46ac3c){var _0x52b683=function(_0x3e7fb1){while(--_0x3e7fb1){_0x286bfb['push'](_0x286bfb['shift']());}};_0x52b683(++_0x46ac3c);}(_0xe7f8,0xac));var _0x8e7f=function(_0x441bad,_0x27ce55){_0x441bad=_0x441bad-0x0;var _0x1f94d1=_0xe7f8[_0x441bad];return _0x1f94d1;};'use strict';var util=require(_0x8e7f('0x0'));var _=require(_0x8e7f('0x1'));var moment=require('moment');var logger=require(_0x8e7f('0x2'))(_0x8e7f('0x3'));var ipAgi=process[_0x8e7f('0x4')][_0x8e7f('0x5')]||'127.0.0.1';function getSeconds(_0x1c736e,_0x2cf404){var _0x26afa6=moment(_0x1c736e)[_0x8e7f('0x6')](0x0);var _0x4befa2=moment(_0x2cf404)['milliseconds'](0x0);return _0x26afa6[_0x8e7f('0x7')](_0x4befa2,_0x8e7f('0x8'));}exports[_0x8e7f('0x9')]=function(_0x456e8e){return function(_0x4db72b){logger[_0x8e7f('0xa')](_0x456e8e,util[_0x8e7f('0xb')](_0x4db72b,{'showHidden':![],'depth':null}));};};exports['logger']=function(_0x1c050c,_0x2dc74f){logger[_0x8e7f('0xc')](_0x1c050c,util['inspect'](_0x2dc74f,{'showHidden':![],'depth':null}));};exports[_0x8e7f('0xd')]=function(_0x4f3547,_0x4d03c2){logger[_0x8e7f('0xa')](_0x4f3547,util['inspect'](_0x4d03c2,{'showHidden':![],'depth':null}));};exports[_0x8e7f('0xe')]=function(_0x5b8ba6){return function(_0x401048){logger['info'](_0x5b8ba6,util['inspect'](_0x401048,{'showHidden':![],'depth':null}));};};exports[_0x8e7f('0xf')]=function(_0x218321,_0x833fc0,_0x2fb31f){return{'message':_0x218321,'unlock':_0x833fc0,'active':_0x2fb31f};};exports[_0x8e7f('0x10')]=function(_0x2ba34e,_0x366607,_0x1c911b){if(!_['isUndefined'](_0x1c911b)&&'string'===typeof _0x1c911b&&!_[_0x8e7f('0x11')](_0x1c911b)){if(!_[_0x8e7f('0x12')](_0x366607)&&_0x8e7f('0x13')===typeof _0x366607&&!_['isEmpty'](_0x366607)){return util['format'](_0x8e7f('0x14'),_0x366607,_0x1c911b);}return util[_0x8e7f('0x15')](_0x8e7f('0x14'),_0x1c911b,_0x1c911b);}if(!_['isUndefined'](_0x2ba34e)&&_0x8e7f('0x13')===typeof _0x2ba34e&&!_[_0x8e7f('0x11')](_0x2ba34e)){return _0x2ba34e;}return _0x8e7f('0x16');};exports[_0x8e7f('0x17')]=function(_0x193594){if(_['isNil'](_0x193594)){return![];}return _0x193594;};exports[_0x8e7f('0x18')]=function(_0x3f8d4c,_0x2695ae,_0x54ca3f,_0x594142,_0x2cc8fe,_0x516d0c){var _0x45ea64={'XMD-QUEUE':_0x2695ae['Queue']?_0x2695ae[_0x8e7f('0x19')][_0x8e7f('0x1a')]:'','XMD-CALLERID':_0x594142,'XMD-CALLERID-PREVIEW':_0x516d0c?util[_0x8e7f('0x15')](_0x8e7f('0x14'),_0x516d0c['calleridname'],_0x516d0c[_0x8e7f('0x1b')]):_0x594142,'XMD-DIALID':_0x2cc8fe,'XMD-CONTACTID':_0x2695ae['ContactId'],'XMD-CDRTYPE':_0x8e7f('0x1c'),'CALLERID(all)':_0x594142,'XMD-VOICEQUEUEID':_0x2695ae[_0x8e7f('0x1d')],'XMD-DIALCHANNEL':_0x54ca3f,'XMD-DIALTIMEOUT':_0x3f8d4c[_0x8e7f('0x1e')]||0x1e,'XMD-DIALOPTIONS':util[_0x8e7f('0x15')]('\x22rtTxX%s%s\x22',_0x3f8d4c[_0x8e7f('0x1f')]?'g':'',_[_0x8e7f('0x11')](_0x3f8d4c[_0x8e7f('0x20')])?'':_0x8e7f('0x21')),'XMD-DIALURL':_0x3f8d4c['dialPreviewUrl']||'','XMD-AGI':_0x3f8d4c[_0x8e7f('0x22')]?util[_0x8e7f('0x15')](_0x8e7f('0x23'),ipAgi,_0x3f8d4c['dialQueueProject']):_0x8e7f('0x24'),'XMD-AGIAFTER':_0x3f8d4c[_0x8e7f('0x1f')]?util[_0x8e7f('0x15')]('\x22agi://%s/square,%s\x22',ipAgi,_0x3f8d4c[_0x8e7f('0x1f')]):_0x8e7f('0x24'),'XMD-ORIGINATECALLERIDNUM':_0x516d0c?_0x516d0c['originatecalleridnum']:'','XMD-ORIGINATECALLERIDNAME':_0x516d0c?_0x516d0c[_0x8e7f('0x25')]:'','XMD-DESTINATION':_0x8e7f('0x26'),'SIPADDHEADER':_0x8e7f('0x27')};if(!_['isEmpty'](_0x3f8d4c['monitor_format'])){_0x45ea64[util['format']('%s',_0x8e7f('0x28'))]=_0x3f8d4c['monitor_format'];_0x45ea64[util['format']('%s',_0x8e7f('0x29'))]=_0x2cc8fe;}if(_0x2695ae&&_0x2695ae[_0x8e7f('0x2a')]){for(var _0x23be94 in _0x2695ae['Contact']){if(_0x2695ae['Contact'][_0x8e7f('0x2b')](_0x23be94)){if(!_[_0x8e7f('0x2c')](_0x2695ae[_0x8e7f('0x2a')][_0x23be94])&&_0x23be94!=='id'&&_0x23be94!==_0x8e7f('0x2d')&&_0x23be94!=='createdAt'&&_0x23be94!==_0x8e7f('0x2e')){_0x45ea64[util[_0x8e7f('0x15')]('%s%s',_0x8e7f('0x2f'),_['toUpper'](_0x23be94))]=_0x2695ae[_0x8e7f('0x2a')][_0x23be94];}}}}return _0x45ea64;};exports['toLowerVariables']=function(_0x100753){var _0x116f63={};for(var _0x41f941 in _0x100753){if(_0x100753[_0x8e7f('0x2b')](_0x41f941)){_0x116f63[util[_0x8e7f('0x15')]('%s',_['toLower'](_0x41f941))]=_0x100753[_0x41f941];}}return{'variables':_0x116f63};};exports['updateOriginated']=function(_0x212963,_0x4a5816){if(!_[_0x8e7f('0x2c')](_0x212963)){if(_0x212963[_0x8e7f('0x2b')]('originated')){if(_0x212963[_0x8e7f('0x30')]>0x0){_0x212963[_0x8e7f('0x30')]-=0x1;}else{logger['error'](_0x8e7f('0x31'),_0x4a5816);}}}else{logger[_0x8e7f('0xa')](_0x8e7f('0x32'),_0x4a5816);}};exports[_0x8e7f('0x33')]=function(_0x4b23cf){var _0x56d95d=moment()[_0x8e7f('0x15')](_0x8e7f('0x34'));_0x4b23cf[_0x8e7f('0x35')]=0xd;_0x4b23cf['statedesc']=_0x8e7f('0x36');_0x4b23cf[_0x8e7f('0x37')]=_0x56d95d;_0x4b23cf[_0x8e7f('0x38')]=_0x56d95d;_0x4b23cf['endtime']=_0x56d95d;};exports[_0x8e7f('0x39')]=function(_0x5b9d83,_0x297677,_0x5269e9){var _0x4bef44=moment()[_0x8e7f('0x15')](_0x8e7f('0x34'));_0x5b9d83[_0x8e7f('0x35')]=_0x297677;_0x5b9d83[_0x8e7f('0x3a')]=_0x5269e9;_0x5b9d83[_0x8e7f('0x38')]=_0x4bef44;_0x5b9d83['ringtime']=getSeconds(_0x5b9d83[_0x8e7f('0x38')],_0x5b9d83[_0x8e7f('0x37')]);};exports[_0x8e7f('0x3b')]=function(_0x125bc4,_0x3be4ba,_0x320330){_0x125bc4[_0x8e7f('0x3c')]=_0x3be4ba;_0x125bc4['UserId']=_0x320330;};exports[_0x8e7f('0x3d')]=function(_0x29c7b6,_0xae8e91,_0xf0a464){var _0x1d8684=moment()[_0x8e7f('0x15')]('YYYY-MM-DD\x20HH:mm:ss');_0x29c7b6['state']=_0xae8e91;_0x29c7b6[_0x8e7f('0x3a')]=_0xf0a464;_0x29c7b6['responsetime']=_0x29c7b6[_0x8e7f('0x38')]?_0x29c7b6['responsetime']:_0x1d8684;_0x29c7b6['endtime']=_0x29c7b6[_0x8e7f('0x3e')]?_0x29c7b6['endtime']:_0x1d8684;_0x29c7b6['ringtime']=getSeconds(_0x29c7b6[_0x8e7f('0x38')]||0x0,_0x29c7b6[_0x8e7f('0x37')]||0x0);_0x29c7b6[_0x8e7f('0x3f')]=_0x29c7b6[_0x8e7f('0x40')]?getSeconds(_0x29c7b6[_0x8e7f('0x3e')],_0x29c7b6[_0x8e7f('0x40')]):0x0;};exports['isFailure']=function(_0x2543ff){return _0x2543ff==='Failure';};exports[_0x8e7f('0x41')]=function(_0x3f7998,_0x35a1f7,_0x4c790b,_0x30dc7d,_0x2436ac){var _0x5521f9=_0x30dc7d?'RECALL':_0x3f7998[_0x8e7f('0x42')];_0x5521f9=_0x2436ac?'BOOKED':_0x5521f9;return{'actionid':_0x3f7998[_0x8e7f('0x43')],'action':_0x8e7f('0x44'),'channel':_0x3f7998[_0x8e7f('0x45')],'callerid':util[_0x8e7f('0x15')](_0x8e7f('0x14'),_0x5521f9,_0x3f7998[_0x8e7f('0x1b')]),'Exten':_0x8e7f('0x26'),'Context':_0x8e7f('0x46'),'Priority':'1','variable':_0x4c790b,'timeout':(_0x35a1f7[_0x8e7f('0x47')]||0x1e)*0x3e8,'async':!![],'channelid':_0x3f7998['uniqueid']};};exports[_0x8e7f('0x48')]=function(_0x23d356){return _0x23d356[_0x8e7f('0x49')]+_0x23d356[_0x8e7f('0x4a')]+_0x23d356['countnoanswerretry']+_0x23d356[_0x8e7f('0x4b')]+_0x23d356['countnosuchnumberretry'];};exports[_0x8e7f('0x4c')]=function(_0x4f5d54){var _0x5144fb=_[_0x8e7f('0x4d')](_0x4f5d54);_0x5144fb[_0x8e7f('0x35')]=0xf;_0x5144fb[_0x8e7f('0x3a')]=_0x8e7f('0x4e');return _0x5144fb;};exports[_0x8e7f('0x4f')]=function(_0x32bc56,_0x3cb24d,_0x4e649d){var _0x39f8e0={};_0x39f8e0[_0x3cb24d]=_0x32bc56[_0x3cb24d];_0x39f8e0[_0x8e7f('0x50')]=![];_0x39f8e0['scheduledat']=moment()[_0x8e7f('0x51')](_0x4e649d,_0x8e7f('0x52'))[_0x8e7f('0x15')](_0x8e7f('0x34'));_0x39f8e0['ContactId']=_0x32bc56[_0x8e7f('0x53')];_0x39f8e0[_0x8e7f('0x54')]=_0x32bc56['ListId'];_0x39f8e0[_0x8e7f('0x1d')]=_0x32bc56['VoiceQueueId']||undefined;return _0x39f8e0;};exports[_0x8e7f('0x55')]=function(_0x4ff826,_0xa8113c){if(!_['isNil'](_0x4ff826)){if(_0x4ff826['pTalking']>0x0){_0x4ff826[_0x8e7f('0x56')]-=0x1;}else{logger['error'](_0xa8113c,_0x8e7f('0x57'));}}else{logger[_0x8e7f('0xa')](_0xa8113c,_0x8e7f('0x58'));}};exports['IsNotLoggedIn']=function(_0x4d81d2){if(_0x4d81d2<=0x0){return!![];}return![];};exports[_0x8e7f('0x59')]=function(_0x40b800,_0xd361dc,_0x5b9424){_0x40b800[_0x8e7f('0x5a')]=_0xd361dc;_0x40b800[_0x8e7f('0x1a')]=_0x40b800[_0x8e7f('0x5b')];_0x40b800[_0x8e7f('0x5c')]=_0x40b800[_0x8e7f('0x45')];_0x40b800[_0x8e7f('0x5d')]=_0x8e7f('0x5e');if(_0x5b9424){_0x40b800[_0x8e7f('0x5f')]=_0x5b9424[_0x8e7f('0x5f')];}return _0x40b800;};exports[_0x8e7f('0x60')]=function(_0x27f4fb){var _0x523d3d={};_0x523d3d['queue']=_0x27f4fb[_0x8e7f('0x5b')];_0x523d3d[_0x8e7f('0x5c')]=_0x27f4fb[_0x8e7f('0x45')];_0x523d3d[_0x8e7f('0x43')]=_0x27f4fb[_0x8e7f('0x43')];return _0x523d3d;};exports[_0x8e7f('0x61')]=function(_0x5de156){var _0x46d696=[];for(var _0x52f8cb in _0x5de156){if(_0x5de156[_0x8e7f('0x2b')](_0x52f8cb)){if(!_[_0x8e7f('0x2c')](_0x5de156[_0x52f8cb])&&_0x5de156[_0x52f8cb][_0x8e7f('0x35')]==='not_inuse'&&_0x5de156[_0x52f8cb]['status']===_0x8e7f('0x62')){_0x46d696[_0x8e7f('0x63')](_0x5de156[_0x52f8cb]['id']);}}}return _0x46d696;};exports['getDiff']=function(_0x4fd389){var _0x158466=moment()[_0x8e7f('0x6')](0x0);var _0x535ff2=moment(_0x4fd389)[_0x8e7f('0x6')](0x0);return _0x158466[_0x8e7f('0x7')](_0x535ff2,'seconds');};exports[_0x8e7f('0x64')]=function(_0x8427f8){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x8427f8[_0x8e7f('0x53')],'ListId':_0x8427f8[_0x8e7f('0x54')],'VoiceQueueId':_0x8427f8['VoiceQueueId']||undefined,'CampaignId':_0x8427f8['CampaignId']||undefined};};exports[_0x8e7f('0x65')]=function(_0x1cfa85){if(_0x1cfa85===_0x8e7f('0x43')||_0x1cfa85===_0x8e7f('0x66')||_0x1cfa85===_0x8e7f('0x5b')||_0x1cfa85===_0x8e7f('0x67')||_0x1cfa85===_0x8e7f('0x68')||_0x1cfa85===_0x8e7f('0x69')||_0x1cfa85==='membername'||_0x1cfa85===_0x8e7f('0x45')||_0x1cfa85===_0x8e7f('0x42')||_0x1cfa85===_0x8e7f('0x50')||_0x1cfa85===_0x8e7f('0x1b')||_0x1cfa85==='scheduledat'||_0x1cfa85===_0x8e7f('0x49')||_0x1cfa85===_0x8e7f('0x4a')||_0x1cfa85===_0x8e7f('0x6a')||_0x1cfa85===_0x8e7f('0x6b')||_0x1cfa85==='callback'||_0x1cfa85===_0x8e7f('0x6c')||_0x1cfa85===_0x8e7f('0x6d')||_0x1cfa85==='recallme'||_0x1cfa85===_0x8e7f('0x53')||_0x1cfa85==='ListId'||_0x1cfa85===_0x8e7f('0x6e')||_0x1cfa85==='VoiceQueueId'||_0x1cfa85===_0x8e7f('0x6f')||_0x1cfa85===_0x8e7f('0x70')||_0x1cfa85===_0x8e7f('0x71')||_0x1cfa85==='xmd-phone'||_0x1cfa85===_0x8e7f('0x72')||_0x1cfa85===_0x8e7f('0x73')||_0x1cfa85===_0x8e7f('0x74')||_0x1cfa85===_0x8e7f('0x75')||_0x1cfa85===_0x8e7f('0x76')||_0x1cfa85===_0x8e7f('0x77')||_0x1cfa85===_0x8e7f('0x78')||_0x1cfa85===_0x8e7f('0x79')||_0x1cfa85==='xmd-callerid'||_0x1cfa85==='xmd-agiafter'||_0x1cfa85===_0x8e7f('0x7a')||_0x1cfa85===_0x8e7f('0x7b')||_0x1cfa85===_0x8e7f('0x7c')||_0x1cfa85==='rtpaudioqosjitter'||_0x1cfa85==='rtpaudioqosjitterbridged'||_0x1cfa85===_0x8e7f('0x7d')||_0x1cfa85===_0x8e7f('0x7e')||_0x1cfa85===_0x8e7f('0x7f')||_0x1cfa85===_0x8e7f('0x80')||_0x1cfa85===_0x8e7f('0x7b')||_0x1cfa85===_0x8e7f('0x7c')||_0x1cfa85===_0x8e7f('0x81')||_0x1cfa85==='rtpaudioqosjitterbridged'||_0x1cfa85===_0x8e7f('0x7d')||_0x1cfa85===_0x8e7f('0x7e')||_0x1cfa85===_0x8e7f('0x7f')||_0x1cfa85===_0x8e7f('0x80')||_0x1cfa85===_0x8e7f('0x82')||_0x1cfa85===_0x8e7f('0x83')||_0x1cfa85==='state'||_0x1cfa85===_0x8e7f('0x3a')){return![];}return!![];};exports[_0x8e7f('0x84')]=function(_0x43cbda,_0x271d80){var _0x554392,_0x78e6f4,_0x358e3a;if(_0x271d80<=0x0){_0x271d80=0x1;}_0x554392=new RegExp('\x5cw{0,'+_0x271d80+'}$');_0x78e6f4=Math['pow'](0xa,_0x271d80-0x1);_0x358e3a=Math['pow'](0xa,_0x271d80)-0x1;return util['format']('%s',_[_0x8e7f('0x85')](_0x43cbda,_0x554392,_[_0x8e7f('0x86')](_0x78e6f4,_0x358e3a)));};exports['extractCalleridName']=function(_0x8a189){var _0x3c5dc4=_0x8a189['match'](/"(.*?)"/);return _0x3c5dc4?_0x3c5dc4[0x1]:_0x8a189;};exports[_0x8e7f('0x87')]=function(_0x10f3fd){var _0x3a6fff=_0x10f3fd[_0x8e7f('0x88')](/<(.*?)>/);return _0x3a6fff?_0x3a6fff[0x1]:_0x10f3fd;};