Built motion from commit 3c2ce842.|2.6.31
[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 _0xf647=['countagentrejectretry','clone','Global','scheduledAt','active','scheduledat','add','minutes','ContactId','ListId','decrementTalking','pTalking','[decrementTalking]\x20object\x20talking\x20is\x20negative','[decrementTalking]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','lastevent','queue','motionChannel','voice','mandatoryDisposition','agentReadyId','not_inuse','status','reachable','push','milliseconds','diff','CampaignId','filterKey','idContact','type','countbusyretry','countglobal','callbackuniqueid','callbackat','sipcallid','xmd-voicequeueid','xmd-phone','xmd-listid','xmd-dialurl','xmd-dialoptions','xmd-dialid','xmd-dialchannel','xmd-contactid','xmd-cdrtype','xmd-agiafter','xmd-agi','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','bridgepeer','bridgepvtcallid','getCallerIdRandom','replace','random','match','extractCalleridNumber','noanswer','variables','forEach','buildNoAnswerEventPayload','util','lodash','moment','../../../../config/logger','preview','env','XCALLY_IP_AGI','127.0.0.1','loggerCatch','error','inspect','info','loggerError','logger2','message','getCallerId','isUndefined','string','isEmpty','\x22%s\x22\x20<%s>','format','\x22\x22\x20<>','isActive','isNil','Queue','name','calleridname','calleridnum','dialer','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','monitor_format','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','\x22agi://%s/square,%s\x22','dialQueueProject2','NONE','originatecalleridnum','originatecalleridname','xcally-motion-preview','Call-Type:\x20PREVIEW','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','toLowerVariables','hasOwnProperty','toLower','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','Blacklist','starttime','responsetime','endtime','logAgent','state','ringtime','getSeconds','membername','UserId','logCustomer','statedesc','answertime','isFailure','Failure','variablesAction','RECALL','uniqueid','originate','channelAgent','from-sip','timeout','totalGlobal','countcongestionretry','countnoanswerretry'];(function(_0x5018c7,_0x2e7e3f){var _0x477ec2=function(_0x63083d){while(--_0x63083d){_0x5018c7['push'](_0x5018c7['shift']());}};_0x477ec2(++_0x2e7e3f);}(_0xf647,0x159));var _0x7f64=function(_0x1b6f25,_0x48432a){_0x1b6f25=_0x1b6f25-0x0;var _0x3af0d2=_0xf647[_0x1b6f25];return _0x3af0d2;};'use strict';var util=require(_0x7f64('0x0'));var _=require(_0x7f64('0x1'));var moment=require(_0x7f64('0x2'));var logger=require(_0x7f64('0x3'))(_0x7f64('0x4'));var ipAgi=process[_0x7f64('0x5')][_0x7f64('0x6')]||_0x7f64('0x7');var utils=require('../../dialer/utils');exports[_0x7f64('0x8')]=function(_0x4ffda0){return function(_0x295c1a){logger[_0x7f64('0x9')](_0x4ffda0,util[_0x7f64('0xa')](_0x295c1a,{'showHidden':![],'depth':null}));};};exports['logger']=function(_0x56ab76,_0x2e3251){logger[_0x7f64('0xb')](_0x56ab76,util[_0x7f64('0xa')](_0x2e3251,{'showHidden':![],'depth':null}));};exports[_0x7f64('0xc')]=function(_0x55ba3d,_0x5b0d3c){logger[_0x7f64('0x9')](_0x55ba3d,util['inspect'](_0x5b0d3c,{'showHidden':![],'depth':null}));};exports[_0x7f64('0xd')]=function(_0x41e4ac){return function(_0x32f462){logger[_0x7f64('0xb')](_0x41e4ac,util[_0x7f64('0xa')](_0x32f462,{'showHidden':![],'depth':null}));};};exports[_0x7f64('0xe')]=function(_0x57b988,_0x4ff86c,_0x4f41f8){return{'message':_0x57b988,'unlock':_0x4ff86c,'active':_0x4f41f8};};exports[_0x7f64('0xf')]=function(_0x53bc95,_0x1e10fa,_0x323244){if(!_[_0x7f64('0x10')](_0x323244)&&_0x7f64('0x11')===typeof _0x323244&&!_['isEmpty'](_0x323244)){if(!_[_0x7f64('0x10')](_0x1e10fa)&&_0x7f64('0x11')===typeof _0x1e10fa&&!_[_0x7f64('0x12')](_0x1e10fa)){return util['format'](_0x7f64('0x13'),_0x1e10fa,_0x323244);}return util[_0x7f64('0x14')](_0x7f64('0x13'),_0x323244,_0x323244);}if(!_[_0x7f64('0x10')](_0x53bc95)&&'string'===typeof _0x53bc95&&!_['isEmpty'](_0x53bc95)){return _0x53bc95;}return _0x7f64('0x15');};exports[_0x7f64('0x16')]=function(_0x25dbe3){if(_[_0x7f64('0x17')](_0x25dbe3)){return![];}return _0x25dbe3;};exports['addVariables']=function(_0x3f775a,_0x185639,_0x137c82,_0x55fe61,_0x3d2452,_0x53c231){var _0x235622={'XMD-QUEUE':_0x185639['Queue']?_0x185639[_0x7f64('0x18')][_0x7f64('0x19')]:'','XMD-CALLERID':_0x55fe61,'XMD-CALLERID-PREVIEW':_0x53c231?util[_0x7f64('0x14')]('\x22%s\x22\x20<%s>',_0x53c231[_0x7f64('0x1a')],_0x53c231[_0x7f64('0x1b')]):_0x55fe61,'XMD-DIALID':_0x3d2452,'XMD-CONTACTID':_0x185639['ContactId'],'XMD-CDRTYPE':_0x7f64('0x1c'),'CALLERID(all)':_0x55fe61,'XMD-VOICEQUEUEID':_0x185639[_0x7f64('0x1d')],'XMD-DIALCHANNEL':_0x137c82,'XMD-DIALTIMEOUT':_0x3f775a[_0x7f64('0x1e')]||0x1e,'XMD-DIALOPTIONS':util[_0x7f64('0x14')](_0x7f64('0x1f'),_0x3f775a['dialQueueProject2']?'g':'',_[_0x7f64('0x12')](_0x3f775a[_0x7f64('0x20')])?'':_0x7f64('0x21')),'XMD-DIALURL':_0x3f775a[_0x7f64('0x22')]||'','XMD-AGI':_0x3f775a[_0x7f64('0x23')]?util['format'](_0x7f64('0x24'),ipAgi,_0x3f775a[_0x7f64('0x23')]):'NONE','XMD-AGIAFTER':_0x3f775a[_0x7f64('0x25')]?util[_0x7f64('0x14')](_0x7f64('0x24'),ipAgi,_0x3f775a[_0x7f64('0x25')]):_0x7f64('0x26'),'XMD-ORIGINATECALLERIDNUM':_0x53c231?_0x53c231[_0x7f64('0x27')]:'','XMD-ORIGINATECALLERIDNAME':_0x53c231?_0x53c231[_0x7f64('0x28')]:'','XMD-DESTINATION':_0x7f64('0x29'),'SIPADDHEADER':_0x7f64('0x2a')};if(!_[_0x7f64('0x12')](_0x3f775a[_0x7f64('0x20')])){_0x235622[util[_0x7f64('0x14')]('%s',_0x7f64('0x2b'))]=_0x3f775a[_0x7f64('0x20')];_0x235622[util[_0x7f64('0x14')]('%s',_0x7f64('0x2c'))]=_0x3d2452;}return _0x235622;};exports[_0x7f64('0x2d')]=function(_0x10383a){var _0x5b5af3={};for(var _0x394c5e in _0x10383a){if(_0x10383a[_0x7f64('0x2e')](_0x394c5e)){_0x5b5af3[util[_0x7f64('0x14')]('%s',_[_0x7f64('0x2f')](_0x394c5e))]=_0x10383a[_0x394c5e];}}return{'variables':_0x5b5af3};};exports[_0x7f64('0x30')]=function(_0x42fb34){var _0x31e9b8=moment()[_0x7f64('0x14')](_0x7f64('0x31'));_0x42fb34['state']=0xd;_0x42fb34['statedesc']=_0x7f64('0x32');_0x42fb34[_0x7f64('0x33')]=_0x31e9b8;_0x42fb34[_0x7f64('0x34')]=_0x31e9b8;_0x42fb34[_0x7f64('0x35')]=_0x31e9b8;};exports[_0x7f64('0x36')]=function(_0x197183,_0x39f91c,_0x1b857b){var _0x37c246=moment()[_0x7f64('0x14')]('YYYY-MM-DD\x20HH:mm:ss');_0x197183[_0x7f64('0x37')]=_0x39f91c;_0x197183['statedesc']=_0x1b857b;_0x197183[_0x7f64('0x34')]=_0x37c246;_0x197183[_0x7f64('0x38')]=utils[_0x7f64('0x39')](_0x197183[_0x7f64('0x34')],_0x197183[_0x7f64('0x33')]);};exports['logLookAgent']=function(_0x31b757,_0x2ea55b,_0x3ad978){_0x31b757[_0x7f64('0x3a')]=_0x2ea55b;_0x31b757[_0x7f64('0x3b')]=_0x3ad978;};exports[_0x7f64('0x3c')]=function(_0x12e760,_0x2138a4,_0x345bff){var _0x3afde7=moment()[_0x7f64('0x14')](_0x7f64('0x31'));_0x12e760[_0x7f64('0x37')]=_0x2138a4;_0x12e760[_0x7f64('0x3d')]=_0x345bff;_0x12e760[_0x7f64('0x34')]=_0x12e760[_0x7f64('0x34')]?_0x12e760[_0x7f64('0x34')]:_0x3afde7;_0x12e760['endtime']=_0x12e760[_0x7f64('0x35')]?_0x12e760[_0x7f64('0x35')]:_0x3afde7;_0x12e760[_0x7f64('0x38')]=utils[_0x7f64('0x39')](_0x12e760[_0x7f64('0x34')]||0x0,_0x12e760[_0x7f64('0x33')]||0x0);_0x12e760['talktime']=_0x12e760[_0x7f64('0x3e')]?utils[_0x7f64('0x39')](_0x12e760[_0x7f64('0x35')],_0x12e760[_0x7f64('0x3e')]):0x0;};exports[_0x7f64('0x3f')]=function(_0x5f5d56){return _0x5f5d56===_0x7f64('0x40');};exports[_0x7f64('0x41')]=function(_0x246665,_0x2485e0,_0x404a88,_0xa05b1a,_0x15ac30){var _0x1e85b7=_0xa05b1a?_0x7f64('0x42'):_0x246665['calleridname'];_0x1e85b7=_0x15ac30?'BOOKED':_0x1e85b7;return{'actionid':_0x246665[_0x7f64('0x43')],'action':_0x7f64('0x44'),'channel':_0x246665[_0x7f64('0x45')],'callerid':util[_0x7f64('0x14')]('\x22%s\x22\x20<%s>',_0x1e85b7,_0x246665[_0x7f64('0x1b')]),'Exten':_0x7f64('0x29'),'Context':_0x7f64('0x46'),'Priority':'1','variable':_0x404a88,'timeout':(_0x2485e0[_0x7f64('0x47')]||0x1e)*0x3e8,'async':!![],'channelid':_0x246665[_0x7f64('0x43')]};};exports[_0x7f64('0x48')]=function(_0x189c2e){return _0x189c2e['countbusyretry']+_0x189c2e[_0x7f64('0x49')]+_0x189c2e[_0x7f64('0x4a')]+_0x189c2e[_0x7f64('0x4b')]+_0x189c2e['countnosuchnumberretry'];};exports['cloneAction']=function(_0x4409f9){var _0x20a0cc=_[_0x7f64('0x4c')](_0x4409f9);_0x20a0cc[_0x7f64('0x37')]=0xf;_0x20a0cc[_0x7f64('0x3d')]=_0x7f64('0x4d');return _0x20a0cc;};exports[_0x7f64('0x4e')]=function(_0x4067b7,_0x8e4d44,_0x29ca72){var _0x2b098b={};_0x2b098b[_0x8e4d44]=_0x4067b7[_0x8e4d44];_0x2b098b[_0x7f64('0x4f')]=![];_0x2b098b[_0x7f64('0x50')]=moment()[_0x7f64('0x51')](_0x29ca72,_0x7f64('0x52'))['format']('YYYY-MM-DD\x20HH:mm:ss');_0x2b098b[_0x7f64('0x53')]=_0x4067b7['ContactId'];_0x2b098b[_0x7f64('0x54')]=_0x4067b7['ListId'];_0x2b098b[_0x7f64('0x1d')]=_0x4067b7[_0x7f64('0x1d')]||undefined;return _0x2b098b;};exports[_0x7f64('0x55')]=function(_0x331d79,_0x2f61ab){if(!_[_0x7f64('0x17')](_0x331d79)){if(_0x331d79[_0x7f64('0x56')]>0x0){_0x331d79['pTalking']-=0x1;}else{logger['info'](_0x2f61ab,_0x7f64('0x57'));}}else{logger['error'](_0x2f61ab,_0x7f64('0x58'));}};exports[_0x7f64('0x59')]=function(_0x4238c8){if(_0x4238c8<=0x0){return!![];}return![];};function buildObj(_0x220e7a,_0x170444,_0x42d757){_0x220e7a[_0x7f64('0x5a')]=_0x170444;_0x220e7a[_0x7f64('0x19')]=_0x220e7a[_0x7f64('0x5b')];_0x220e7a['interface']=_0x220e7a[_0x7f64('0x45')];_0x220e7a[_0x7f64('0x5c')]=_0x7f64('0x5d');if(_0x42d757){_0x220e7a[_0x7f64('0x5e')]=_0x42d757[_0x7f64('0x5e')];}return _0x220e7a;}exports['buildObj']=buildObj;exports[_0x7f64('0x5f')]=function(_0x30d24b){var _0x2a1848=[];for(var _0x400504 in _0x30d24b){if(_0x30d24b[_0x7f64('0x2e')](_0x400504)){if(!_[_0x7f64('0x17')](_0x30d24b[_0x400504])&&_0x30d24b[_0x400504]['state']===_0x7f64('0x60')&&_0x30d24b[_0x400504][_0x7f64('0x61')]===_0x7f64('0x62')){_0x2a1848[_0x7f64('0x63')](_0x30d24b[_0x400504]['id']);}}}return _0x2a1848;};exports['getDiff']=function(_0x46d60f){var _0x3261bc=moment()['milliseconds'](0x0);var _0x6ca8be=moment(_0x46d60f)[_0x7f64('0x64')](0x0);return _0x3261bc[_0x7f64('0x65')](_0x6ca8be,'seconds');};exports['createBody']=function(_0x16bdee){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x16bdee[_0x7f64('0x53')],'ListId':_0x16bdee[_0x7f64('0x54')],'VoiceQueueId':_0x16bdee[_0x7f64('0x1d')]||undefined,'CampaignId':_0x16bdee[_0x7f64('0x66')]||undefined};};exports[_0x7f64('0x67')]=function(_0x55a075){if(_0x55a075===_0x7f64('0x43')||_0x55a075===_0x7f64('0x68')||_0x55a075===_0x7f64('0x5b')||_0x55a075===_0x7f64('0x69')||_0x55a075==='campaigntype'||_0x55a075==='dialAnswer'||_0x55a075===_0x7f64('0x3a')||_0x55a075===_0x7f64('0x45')||_0x55a075===_0x7f64('0x1a')||_0x55a075===_0x7f64('0x4f')||_0x55a075===_0x7f64('0x1b')||_0x55a075===_0x7f64('0x50')||_0x55a075===_0x7f64('0x6a')||_0x55a075===_0x7f64('0x49')||_0x55a075===_0x7f64('0x4a')||_0x55a075===_0x7f64('0x6b')||_0x55a075==='callback'||_0x55a075===_0x7f64('0x6c')||_0x55a075===_0x7f64('0x6d')||_0x55a075==='recallme'||_0x55a075===_0x7f64('0x53')||_0x55a075===_0x7f64('0x54')||_0x55a075==='UserId'||_0x55a075===_0x7f64('0x1d')||_0x55a075===_0x7f64('0x6e')||_0x55a075===_0x7f64('0x6f')||_0x55a075==='xmd-queue'||_0x55a075===_0x7f64('0x70')||_0x55a075===_0x7f64('0x71')||_0x55a075===_0x7f64('0x72')||_0x55a075==='xmd-dialtimeout'||_0x55a075===_0x7f64('0x73')||_0x55a075===_0x7f64('0x74')||_0x55a075===_0x7f64('0x75')||_0x55a075===_0x7f64('0x76')||_0x55a075===_0x7f64('0x77')||_0x55a075==='xmd-callerid'||_0x55a075===_0x7f64('0x78')||_0x55a075===_0x7f64('0x79')||_0x55a075==='rtpaudioqos'||_0x55a075===_0x7f64('0x7a')||_0x55a075===_0x7f64('0x7b')||_0x55a075===_0x7f64('0x7c')||_0x55a075===_0x7f64('0x7d')||_0x55a075===_0x7f64('0x7e')||_0x55a075===_0x7f64('0x7f')||_0x55a075==='rtpaudioqosrttbridged'||_0x55a075==='rtpaudioqos'||_0x55a075===_0x7f64('0x7a')||_0x55a075===_0x7f64('0x7b')||_0x55a075===_0x7f64('0x7c')||_0x55a075===_0x7f64('0x7d')||_0x55a075===_0x7f64('0x7e')||_0x55a075===_0x7f64('0x7f')||_0x55a075===_0x7f64('0x80')||_0x55a075===_0x7f64('0x81')||_0x55a075===_0x7f64('0x82')||_0x55a075===_0x7f64('0x37')||_0x55a075===_0x7f64('0x3d')){return![];}return!![];};exports[_0x7f64('0x83')]=function(_0x11894a,_0x288460){var _0x53835d,_0x2c3708,_0x3f80ed;if(_0x288460<=0x0){_0x288460=0x1;}_0x53835d=new RegExp('\x5cw{0,'+_0x288460+'}$');_0x2c3708=Math['pow'](0xa,_0x288460-0x1);_0x3f80ed=Math['pow'](0xa,_0x288460)-0x1;return util[_0x7f64('0x14')]('%s',_[_0x7f64('0x84')](_0x11894a,_0x53835d,_[_0x7f64('0x85')](_0x2c3708,_0x3f80ed)));};exports['extractCalleridName']=function(_0x2c2e5d){var _0x493373=_0x2c2e5d[_0x7f64('0x86')](/"(.*?)"/);return _0x493373?_0x493373[0x1]:_0x2c2e5d;};exports[_0x7f64('0x87')]=function(_0x2bdcb1){var _0x24e1c4=_0x2bdcb1[_0x7f64('0x86')](/<(.*?)>/);return _0x24e1c4?_0x24e1c4[0x1]:_0x2bdcb1;};function buildNoAnswerEventPayload(_0x3c243d,_0x5e6312){var _0x2af292=buildObj(_0x3c243d,_0x7f64('0x88'));if(!_[_0x7f64('0x12')](_0x5e6312['variables'])){Object['keys'](_0x5e6312[_0x7f64('0x89')])[_0x7f64('0x8a')](function(_0x1e5bf3){_0x2af292[_0x1e5bf3['toLowerCase']()]=_0x5e6312[_0x7f64('0x89')][_0x1e5bf3];});}return _0x2af292;}exports[_0x7f64('0x8b')]=buildNoAnswerEventPayload;