Built motion from commit b0a9a629.|2.6.33
[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 _0x5c75=['countbusyretry','countcongestionretry','countnoanswerretry','countagentrejectretry','countnosuchnumberretry','cloneAction','clone','Global','scheduledAt','active','scheduledat','minutes','ListId','[decrementTalking]\x20object\x20talking\x20is\x20negative','IsNotLoggedIn','name','queue','interface','voice','agentReadyId','hasOwnProperty','not_inuse','status','milliseconds','diff','createBody','CampaignId','filterKey','idContact','campaigntype','dialAnswer','membername','countglobal','callback','callbackuniqueid','callbackat','recallme','sipcallid','xmd-voicequeueid','xmd-queue','xmd-phone','xmd-dialtimeout','xmd-dialid','xmd-dialchannel','xmd-contactid','xmd-callerid','xmd-agiafter','xmd-agi','rtpaudioqos','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqoslossbridged','rtpaudioqosrttbridged','rtpaudioqosbridged','rtpaudioqosloss','rtpaudioqosrtt','bridgepeer','bridgepvtcallid','getCallerIdRandom','pow','replace','random','extractCalleridName','match','extractCalleridNumber','variables','keys','forEach','util','lodash','moment','preview','env','XCALLY_IP_AGI','127.0.0.1','../../dialer/utils','error','logger','inspect','info','message','getCallerId','isUndefined','string','isEmpty','\x22%s\x22\x20<%s>','isActive','isNil','addVariables','Queue','format','calleridname','calleridnum','ContactId','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','monitor_format','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','NONE','\x22agi://%s/square,%s\x22','originatecalleridnum','originatecalleridname','xcally-motion-preview','Call-Type:\x20PREVIEW','_XCALLY_MIXMONITOR_UNIQUEID','toLowerVariables','toLower','logBlacklist','statedesc','responsetime','logAgent','YYYY-MM-DD\x20HH:mm:ss','state','ringtime','getSeconds','starttime','UserId','logCustomer','endtime','talktime','answertime','variablesAction','RECALL','BOOKED','uniqueid','originate','channelAgent','from-sip','timeout','totalGlobal'];(function(_0x103a69,_0x501d27){var _0x226215=function(_0x121b67){while(--_0x121b67){_0x103a69['push'](_0x103a69['shift']());}};_0x226215(++_0x501d27);}(_0x5c75,0xca));var _0x55c7=function(_0x221d0f,_0x37c51d){_0x221d0f=_0x221d0f-0x0;var _0x178f23=_0x5c75[_0x221d0f];return _0x178f23;};'use strict';var util=require(_0x55c7('0x0'));var _=require(_0x55c7('0x1'));var moment=require(_0x55c7('0x2'));var logger=require('../../../../config/logger')(_0x55c7('0x3'));var ipAgi=process[_0x55c7('0x4')][_0x55c7('0x5')]||_0x55c7('0x6');var utils=require(_0x55c7('0x7'));exports['loggerCatch']=function(_0x4e9c63){return function(_0xac4bb3){logger[_0x55c7('0x8')](_0x4e9c63,util['inspect'](_0xac4bb3,{'showHidden':![],'depth':null}));};};exports[_0x55c7('0x9')]=function(_0x33bed7,_0x477df4){logger['info'](_0x33bed7,util[_0x55c7('0xa')](_0x477df4,{'showHidden':![],'depth':null}));};exports['loggerError']=function(_0x3d8d08,_0x34100f){logger[_0x55c7('0x8')](_0x3d8d08,util['inspect'](_0x34100f,{'showHidden':![],'depth':null}));};exports['logger2']=function(_0x11530d){return function(_0x43ec9e){logger[_0x55c7('0xb')](_0x11530d,util['inspect'](_0x43ec9e,{'showHidden':![],'depth':null}));};};exports[_0x55c7('0xc')]=function(_0x4b83bb,_0x335cad,_0x48ff04){return{'message':_0x4b83bb,'unlock':_0x335cad,'active':_0x48ff04};};exports[_0x55c7('0xd')]=function(_0x1711c2,_0x5f56fe,_0x491eb5){if(!_[_0x55c7('0xe')](_0x491eb5)&&_0x55c7('0xf')===typeof _0x491eb5&&!_[_0x55c7('0x10')](_0x491eb5)){if(!_[_0x55c7('0xe')](_0x5f56fe)&&'string'===typeof _0x5f56fe&&!_['isEmpty'](_0x5f56fe)){return util['format']('\x22%s\x22\x20<%s>',_0x5f56fe,_0x491eb5);}return util['format'](_0x55c7('0x11'),_0x491eb5,_0x491eb5);}if(!_['isUndefined'](_0x1711c2)&&_0x55c7('0xf')===typeof _0x1711c2&&!_[_0x55c7('0x10')](_0x1711c2)){return _0x1711c2;}return'\x22\x22\x20<>';};exports[_0x55c7('0x12')]=function(_0x37d9f8){if(_[_0x55c7('0x13')](_0x37d9f8)){return![];}return _0x37d9f8;};exports[_0x55c7('0x14')]=function(_0x49a844,_0x427c86,_0x280f52,_0x42ee3d,_0x2abb73,_0x16068a){var _0x226f5b={'XMD-QUEUE':_0x427c86[_0x55c7('0x15')]?_0x427c86['Queue']['name']:'','XMD-CALLERID':_0x42ee3d,'XMD-CALLERID-PREVIEW':_0x16068a?util[_0x55c7('0x16')](_0x55c7('0x11'),_0x16068a[_0x55c7('0x17')],_0x16068a[_0x55c7('0x18')]):_0x42ee3d,'XMD-DIALID':_0x2abb73,'XMD-CONTACTID':_0x427c86[_0x55c7('0x19')],'XMD-CDRTYPE':'dialer','CALLERID(all)':_0x42ee3d,'XMD-VOICEQUEUEID':_0x427c86[_0x55c7('0x1a')],'XMD-DIALCHANNEL':_0x280f52,'XMD-DIALTIMEOUT':_0x49a844[_0x55c7('0x1b')]||0x1e,'XMD-DIALOPTIONS':util[_0x55c7('0x16')](_0x55c7('0x1c'),_0x49a844[_0x55c7('0x1d')]?'g':'',_[_0x55c7('0x10')](_0x49a844[_0x55c7('0x1e')])?'':_0x55c7('0x1f')),'XMD-DIALURL':_0x49a844[_0x55c7('0x20')]||'','XMD-AGI':_0x49a844[_0x55c7('0x21')]?util[_0x55c7('0x16')]('\x22agi://%s/square,%s\x22',ipAgi,_0x49a844[_0x55c7('0x21')]):_0x55c7('0x22'),'XMD-AGIAFTER':_0x49a844[_0x55c7('0x1d')]?util['format'](_0x55c7('0x23'),ipAgi,_0x49a844[_0x55c7('0x1d')]):'NONE','XMD-ORIGINATECALLERIDNUM':_0x16068a?_0x16068a[_0x55c7('0x24')]:'','XMD-ORIGINATECALLERIDNAME':_0x16068a?_0x16068a[_0x55c7('0x25')]:'','XMD-DESTINATION':_0x55c7('0x26'),'SIPADDHEADER':_0x55c7('0x27')};if(!_[_0x55c7('0x10')](_0x49a844[_0x55c7('0x1e')])){_0x226f5b[util[_0x55c7('0x16')]('%s','_XCALLY_MIXMONITOR_FORMAT')]=_0x49a844['monitor_format'];_0x226f5b[util[_0x55c7('0x16')]('%s',_0x55c7('0x28'))]=_0x2abb73;}return _0x226f5b;};exports[_0x55c7('0x29')]=function(_0x406a1b){var _0x30ed5c={};for(var _0x2c2404 in _0x406a1b){if(_0x406a1b['hasOwnProperty'](_0x2c2404)){_0x30ed5c[util[_0x55c7('0x16')]('%s',_[_0x55c7('0x2a')](_0x2c2404))]=_0x406a1b[_0x2c2404];}}return{'variables':_0x30ed5c};};exports[_0x55c7('0x2b')]=function(_0x21b5f1){var _0x32f14a=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x21b5f1['state']=0xd;_0x21b5f1[_0x55c7('0x2c')]='Blacklist';_0x21b5f1['starttime']=_0x32f14a;_0x21b5f1[_0x55c7('0x2d')]=_0x32f14a;_0x21b5f1['endtime']=_0x32f14a;};exports[_0x55c7('0x2e')]=function(_0x2d1e26,_0x2f7ce6,_0x27189e){var _0x186d0c=moment()['format'](_0x55c7('0x2f'));_0x2d1e26[_0x55c7('0x30')]=_0x2f7ce6;_0x2d1e26[_0x55c7('0x2c')]=_0x27189e;_0x2d1e26[_0x55c7('0x2d')]=_0x186d0c;_0x2d1e26[_0x55c7('0x31')]=utils[_0x55c7('0x32')](_0x2d1e26[_0x55c7('0x2d')],_0x2d1e26[_0x55c7('0x33')]);};exports['logLookAgent']=function(_0x4f3502,_0x1af083,_0x46539b){_0x4f3502['membername']=_0x1af083;_0x4f3502[_0x55c7('0x34')]=_0x46539b;};exports[_0x55c7('0x35')]=function(_0x31db03,_0x3f593b,_0x126aab){var _0x3d2f9d=moment()['format'](_0x55c7('0x2f'));_0x31db03[_0x55c7('0x30')]=_0x3f593b;_0x31db03[_0x55c7('0x2c')]=_0x126aab;_0x31db03[_0x55c7('0x2d')]=_0x31db03[_0x55c7('0x2d')]?_0x31db03[_0x55c7('0x2d')]:_0x3d2f9d;_0x31db03['endtime']=_0x31db03['endtime']?_0x31db03[_0x55c7('0x36')]:_0x3d2f9d;_0x31db03[_0x55c7('0x31')]=utils[_0x55c7('0x32')](_0x31db03['responsetime']||0x0,_0x31db03[_0x55c7('0x33')]||0x0);_0x31db03[_0x55c7('0x37')]=_0x31db03[_0x55c7('0x38')]?utils['getSeconds'](_0x31db03[_0x55c7('0x36')],_0x31db03['answertime']):0x0;};exports['isFailure']=function(_0x269654){return _0x269654==='Failure';};exports[_0x55c7('0x39')]=function(_0x4a4f34,_0x5674fd,_0x1383d4,_0x28bb90,_0x406d72){var _0x14b8ad=_0x28bb90?_0x55c7('0x3a'):_0x4a4f34['calleridname'];_0x14b8ad=_0x406d72?_0x55c7('0x3b'):_0x14b8ad;return{'actionid':_0x4a4f34[_0x55c7('0x3c')],'action':_0x55c7('0x3d'),'channel':_0x4a4f34[_0x55c7('0x3e')],'callerid':util[_0x55c7('0x16')](_0x55c7('0x11'),_0x14b8ad,_0x4a4f34[_0x55c7('0x18')]),'Exten':'xcally-motion-preview','Context':_0x55c7('0x3f'),'Priority':'1','variable':_0x1383d4,'timeout':(_0x5674fd[_0x55c7('0x40')]||0x1e)*0x3e8,'async':!![],'channelid':_0x4a4f34[_0x55c7('0x3c')]};};exports[_0x55c7('0x41')]=function(_0x23e7c5){return _0x23e7c5[_0x55c7('0x42')]+_0x23e7c5[_0x55c7('0x43')]+_0x23e7c5[_0x55c7('0x44')]+_0x23e7c5[_0x55c7('0x45')]+_0x23e7c5[_0x55c7('0x46')];};exports[_0x55c7('0x47')]=function(_0x31d0b7){var _0x56f474=_[_0x55c7('0x48')](_0x31d0b7);_0x56f474['state']=0xf;_0x56f474[_0x55c7('0x2c')]=_0x55c7('0x49');return _0x56f474;};exports[_0x55c7('0x4a')]=function(_0x3e4cc5,_0x68d1f7,_0x5bb6e2){var _0x40f3f7={};_0x40f3f7[_0x68d1f7]=_0x3e4cc5[_0x68d1f7];_0x40f3f7[_0x55c7('0x4b')]=![];_0x40f3f7[_0x55c7('0x4c')]=moment()['add'](_0x5bb6e2,_0x55c7('0x4d'))[_0x55c7('0x16')](_0x55c7('0x2f'));_0x40f3f7[_0x55c7('0x19')]=_0x3e4cc5[_0x55c7('0x19')];_0x40f3f7[_0x55c7('0x4e')]=_0x3e4cc5[_0x55c7('0x4e')];_0x40f3f7[_0x55c7('0x1a')]=_0x3e4cc5[_0x55c7('0x1a')]||undefined;return _0x40f3f7;};exports['decrementTalking']=function(_0x54f14e,_0x135900){if(!_[_0x55c7('0x13')](_0x54f14e)){if(_0x54f14e['pTalking']>0x0){_0x54f14e['pTalking']-=0x1;}else{logger[_0x55c7('0xb')](_0x135900,_0x55c7('0x4f'));}}else{logger[_0x55c7('0x8')](_0x135900,'[decrementTalking]\x20is\x20null\x20or\x20undefined');}};exports[_0x55c7('0x50')]=function(_0x348a0c){if(_0x348a0c<=0x0){return!![];}return![];};function buildObj(_0x4e92d6,_0x453f21,_0x243dd2){_0x4e92d6['lastevent']=_0x453f21;_0x4e92d6[_0x55c7('0x51')]=_0x4e92d6[_0x55c7('0x52')];_0x4e92d6[_0x55c7('0x53')]=_0x4e92d6[_0x55c7('0x3e')];_0x4e92d6['motionChannel']=_0x55c7('0x54');if(_0x243dd2){_0x4e92d6['mandatoryDisposition']=_0x243dd2['mandatoryDisposition'];}return _0x4e92d6;}exports['buildObj']=buildObj;exports[_0x55c7('0x55')]=function(_0x1f5d7c){var _0x4deab2=[];for(var _0x19388b in _0x1f5d7c){if(_0x1f5d7c[_0x55c7('0x56')](_0x19388b)){if(!_[_0x55c7('0x13')](_0x1f5d7c[_0x19388b])&&_0x1f5d7c[_0x19388b][_0x55c7('0x30')]===_0x55c7('0x57')&&_0x1f5d7c[_0x19388b][_0x55c7('0x58')]==='reachable'){_0x4deab2['push'](_0x1f5d7c[_0x19388b]['id']);}}}return _0x4deab2;};exports['getDiff']=function(_0x56b14e){var _0x547095=moment()[_0x55c7('0x59')](0x0);var _0x2121d0=moment(_0x56b14e)[_0x55c7('0x59')](0x0);return _0x547095[_0x55c7('0x5a')](_0x2121d0,'seconds');};exports[_0x55c7('0x5b')]=function(_0x353ef8){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x353ef8[_0x55c7('0x19')],'ListId':_0x353ef8['ListId'],'VoiceQueueId':_0x353ef8[_0x55c7('0x1a')]||undefined,'CampaignId':_0x353ef8[_0x55c7('0x5c')]||undefined};};exports[_0x55c7('0x5d')]=function(_0x4a48f4){if(_0x4a48f4===_0x55c7('0x3c')||_0x4a48f4===_0x55c7('0x5e')||_0x4a48f4===_0x55c7('0x52')||_0x4a48f4==='type'||_0x4a48f4===_0x55c7('0x5f')||_0x4a48f4===_0x55c7('0x60')||_0x4a48f4===_0x55c7('0x61')||_0x4a48f4===_0x55c7('0x3e')||_0x4a48f4===_0x55c7('0x17')||_0x4a48f4===_0x55c7('0x4b')||_0x4a48f4===_0x55c7('0x18')||_0x4a48f4===_0x55c7('0x4c')||_0x4a48f4===_0x55c7('0x42')||_0x4a48f4===_0x55c7('0x43')||_0x4a48f4===_0x55c7('0x44')||_0x4a48f4===_0x55c7('0x62')||_0x4a48f4===_0x55c7('0x63')||_0x4a48f4===_0x55c7('0x64')||_0x4a48f4===_0x55c7('0x65')||_0x4a48f4===_0x55c7('0x66')||_0x4a48f4===_0x55c7('0x19')||_0x4a48f4===_0x55c7('0x4e')||_0x4a48f4===_0x55c7('0x34')||_0x4a48f4===_0x55c7('0x1a')||_0x4a48f4===_0x55c7('0x67')||_0x4a48f4===_0x55c7('0x68')||_0x4a48f4===_0x55c7('0x69')||_0x4a48f4===_0x55c7('0x6a')||_0x4a48f4==='xmd-listid'||_0x4a48f4==='xmd-dialurl'||_0x4a48f4===_0x55c7('0x6b')||_0x4a48f4==='xmd-dialoptions'||_0x4a48f4===_0x55c7('0x6c')||_0x4a48f4===_0x55c7('0x6d')||_0x4a48f4===_0x55c7('0x6e')||_0x4a48f4==='xmd-cdrtype'||_0x4a48f4===_0x55c7('0x6f')||_0x4a48f4===_0x55c7('0x70')||_0x4a48f4===_0x55c7('0x71')||_0x4a48f4===_0x55c7('0x72')||_0x4a48f4==='rtpaudioqosbridged'||_0x4a48f4===_0x55c7('0x73')||_0x4a48f4===_0x55c7('0x74')||_0x4a48f4==='rtpaudioqosloss'||_0x4a48f4===_0x55c7('0x75')||_0x4a48f4==='rtpaudioqosrtt'||_0x4a48f4===_0x55c7('0x76')||_0x4a48f4===_0x55c7('0x72')||_0x4a48f4===_0x55c7('0x77')||_0x4a48f4===_0x55c7('0x73')||_0x4a48f4==='rtpaudioqosjitterbridged'||_0x4a48f4===_0x55c7('0x78')||_0x4a48f4===_0x55c7('0x75')||_0x4a48f4===_0x55c7('0x79')||_0x4a48f4===_0x55c7('0x76')||_0x4a48f4===_0x55c7('0x7a')||_0x4a48f4===_0x55c7('0x7b')||_0x4a48f4===_0x55c7('0x30')||_0x4a48f4===_0x55c7('0x2c')){return![];}return!![];};exports[_0x55c7('0x7c')]=function(_0x18be43,_0x57bd98){var _0x4d7d9e,_0x51eb8f,_0x1e4fba;if(_0x57bd98<=0x0){_0x57bd98=0x1;}_0x4d7d9e=new RegExp('\x5cw{0,'+_0x57bd98+'}$');_0x51eb8f=Math[_0x55c7('0x7d')](0xa,_0x57bd98-0x1);_0x1e4fba=Math['pow'](0xa,_0x57bd98)-0x1;return util[_0x55c7('0x16')]('%s',_[_0x55c7('0x7e')](_0x18be43,_0x4d7d9e,_[_0x55c7('0x7f')](_0x51eb8f,_0x1e4fba)));};exports[_0x55c7('0x80')]=function(_0x69ea01){var _0x3a1c79=_0x69ea01[_0x55c7('0x81')](/"(.*?)"/);return _0x3a1c79?_0x3a1c79[0x1]:_0x69ea01;};exports[_0x55c7('0x82')]=function(_0x5be467){var _0x9b83e7=_0x5be467[_0x55c7('0x81')](/<(.*?)>/);return _0x9b83e7?_0x9b83e7[0x1]:_0x5be467;};function buildNoAnswerEventPayload(_0x3d255f,_0xc0ec1c){var _0x32c38e=buildObj(_0x3d255f,'noanswer');if(!_[_0x55c7('0x10')](_0xc0ec1c[_0x55c7('0x83')])){Object[_0x55c7('0x84')](_0xc0ec1c['variables'])[_0x55c7('0x85')](function(_0x34ac50){_0x32c38e[_0x34ac50['toLowerCase']()]=_0xc0ec1c['variables'][_0x34ac50];});}return _0x32c38e;}exports['buildNoAnswerEventPayload']=buildNoAnswerEventPayload;