7b5c1adcf99d4b03277e4570ec07ba5da8f2402d
[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 _0x683c=['active','scheduledat','add','ListId','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','lastevent','queue','interface','motionChannel','voice','mandatoryDisposition','buildObj','buildAcw','not_inuse','status','reachable','seconds','createBody','CampaignId','filterKey','idContact','campaigntype','countglobal','callbackuniqueid','recallme','xmd-voicequeueid','xmd-queue','xmd-phone','xmd-dialurl','xmd-dialtimeout','xmd-dialoptions','xmd-dialid','xmd-dialchannel','xmd-cdrtype','xmd-agiafter','xmd-agi','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','rtpaudioqos','bridgepeer','bridgepvtcallid','getCallerIdRandom','\x5cw{0,','replace','random','extractCalleridName','match','extractCalleridNumber','variables','forEach','toLowerCase','buildNoAnswerEventPayload','lodash','moment','../../../../config/logger','env','XCALLY_IP_AGI','127.0.0.1','milliseconds','diff','loggerCatch','error','inspect','logger','info','loggerError','logger2','message','getCallerId','string','isEmpty','format','\x22%s\x22\x20<%s>','isUndefined','\x22\x22\x20<>','isActive','isNil','addVariables','Queue','name','calleridname','calleridnum','ContactId','dialer','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','monitor_format','dialPreviewUrl','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','dialQueueProject2','originatecalleridnum','originatecalleridname','xcally-motion-preview','Call-Type:\x20PREVIEW','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','Contact','hasOwnProperty','tags','createdAt','updatedAt','%s%s','toUpper','toLowerVariables','toLower','updateOriginated','originated','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','statedesc','Blacklist','responsetime','endtime','ringtime','starttime','logLookAgent','membername','UserId','logCustomer','talktime','answertime','isFailure','Failure','variablesAction','RECALL','BOOKED','originate','channelAgent','timeout','uniqueid','countbusyretry','countcongestionretry','countagentrejectretry','countnosuchnumberretry','cloneAction','clone','Global','scheduledAt'];(function(_0x28b621,_0x5c3b86){var _0x227191=function(_0x5d4cf5){while(--_0x5d4cf5){_0x28b621['push'](_0x28b621['shift']());}};_0x227191(++_0x5c3b86);}(_0x683c,0xd2));var _0xc683=function(_0x5123dc,_0x198ac9){_0x5123dc=_0x5123dc-0x0;var _0x4daac8=_0x683c[_0x5123dc];return _0x4daac8;};'use strict';var util=require('util');var _=require(_0xc683('0x0'));var moment=require(_0xc683('0x1'));var logger=require(_0xc683('0x2'))('preview');var ipAgi=process[_0xc683('0x3')][_0xc683('0x4')]||_0xc683('0x5');function getSeconds(_0x5e84b5,_0xc26912){var _0x1470d6=moment(_0x5e84b5)[_0xc683('0x6')](0x0);var _0x4a99aa=moment(_0xc26912)[_0xc683('0x6')](0x0);return _0x1470d6[_0xc683('0x7')](_0x4a99aa,'seconds');}exports[_0xc683('0x8')]=function(_0x40468a){return function(_0x17bade){logger[_0xc683('0x9')](_0x40468a,util[_0xc683('0xa')](_0x17bade,{'showHidden':![],'depth':null}));};};exports[_0xc683('0xb')]=function(_0x3264e5,_0x5453c5){logger[_0xc683('0xc')](_0x3264e5,util[_0xc683('0xa')](_0x5453c5,{'showHidden':![],'depth':null}));};exports[_0xc683('0xd')]=function(_0x5d095b,_0x2a7304){logger[_0xc683('0x9')](_0x5d095b,util[_0xc683('0xa')](_0x2a7304,{'showHidden':![],'depth':null}));};exports[_0xc683('0xe')]=function(_0x5956a5){return function(_0xbb229f){logger['info'](_0x5956a5,util[_0xc683('0xa')](_0xbb229f,{'showHidden':![],'depth':null}));};};exports[_0xc683('0xf')]=function(_0x161eb7,_0x137050,_0x3ba3a1){return{'message':_0x161eb7,'unlock':_0x137050,'active':_0x3ba3a1};};exports[_0xc683('0x10')]=function(_0x537f0d,_0x6fd367,_0x51684d){if(!_['isUndefined'](_0x51684d)&&_0xc683('0x11')===typeof _0x51684d&&!_[_0xc683('0x12')](_0x51684d)){if(!_['isUndefined'](_0x6fd367)&&'string'===typeof _0x6fd367&&!_['isEmpty'](_0x6fd367)){return util['format']('\x22%s\x22\x20<%s>',_0x6fd367,_0x51684d);}return util[_0xc683('0x13')](_0xc683('0x14'),_0x51684d,_0x51684d);}if(!_[_0xc683('0x15')](_0x537f0d)&&_0xc683('0x11')===typeof _0x537f0d&&!_['isEmpty'](_0x537f0d)){return _0x537f0d;}return _0xc683('0x16');};exports[_0xc683('0x17')]=function(_0x2e5617){if(_[_0xc683('0x18')](_0x2e5617)){return![];}return _0x2e5617;};exports[_0xc683('0x19')]=function(_0x2fe370,_0x52673d,_0x2ddfbc,_0x24a5b4,_0x45967d,_0x293cef){var _0x329d01={'XMD-QUEUE':_0x52673d[_0xc683('0x1a')]?_0x52673d[_0xc683('0x1a')][_0xc683('0x1b')]:'','XMD-CALLERID':_0x24a5b4,'XMD-CALLERID-PREVIEW':_0x293cef?util[_0xc683('0x13')](_0xc683('0x14'),_0x293cef[_0xc683('0x1c')],_0x293cef[_0xc683('0x1d')]):_0x24a5b4,'XMD-DIALID':_0x45967d,'XMD-CONTACTID':_0x52673d[_0xc683('0x1e')],'XMD-CDRTYPE':_0xc683('0x1f'),'CALLERID(all)':_0x24a5b4,'XMD-VOICEQUEUEID':_0x52673d[_0xc683('0x20')],'XMD-DIALCHANNEL':_0x2ddfbc,'XMD-DIALTIMEOUT':_0x2fe370[_0xc683('0x21')]||0x1e,'XMD-DIALOPTIONS':util['format'](_0xc683('0x22'),_0x2fe370['dialQueueProject2']?'g':'',_['isEmpty'](_0x2fe370[_0xc683('0x23')])?'':'U(xcally-mixmonitor-context)'),'XMD-DIALURL':_0x2fe370[_0xc683('0x24')]||'','XMD-AGI':_0x2fe370[_0xc683('0x25')]?util[_0xc683('0x13')](_0xc683('0x26'),ipAgi,_0x2fe370[_0xc683('0x25')]):_0xc683('0x27'),'XMD-AGIAFTER':_0x2fe370[_0xc683('0x28')]?util[_0xc683('0x13')](_0xc683('0x26'),ipAgi,_0x2fe370[_0xc683('0x28')]):_0xc683('0x27'),'XMD-ORIGINATECALLERIDNUM':_0x293cef?_0x293cef[_0xc683('0x29')]:'','XMD-ORIGINATECALLERIDNAME':_0x293cef?_0x293cef[_0xc683('0x2a')]:'','XMD-DESTINATION':_0xc683('0x2b'),'SIPADDHEADER':_0xc683('0x2c')};if(!_[_0xc683('0x12')](_0x2fe370['monitor_format'])){_0x329d01[util[_0xc683('0x13')]('%s',_0xc683('0x2d'))]=_0x2fe370[_0xc683('0x23')];_0x329d01[util['format']('%s',_0xc683('0x2e'))]=_0x45967d;}if(_0x52673d&&_0x52673d[_0xc683('0x2f')]){for(var _0x3d50f6 in _0x52673d['Contact']){if(_0x52673d[_0xc683('0x2f')][_0xc683('0x30')](_0x3d50f6)){if(!_['isNil'](_0x52673d['Contact'][_0x3d50f6])&&_0x3d50f6!=='id'&&_0x3d50f6!==_0xc683('0x31')&&_0x3d50f6!==_0xc683('0x32')&&_0x3d50f6!==_0xc683('0x33')){_0x329d01[util[_0xc683('0x13')](_0xc683('0x34'),'XMD-',_[_0xc683('0x35')](_0x3d50f6))]=_0x52673d[_0xc683('0x2f')][_0x3d50f6];}}}}return _0x329d01;};exports[_0xc683('0x36')]=function(_0x3a84c7){var _0x3a31b2={};for(var _0x5b9b06 in _0x3a84c7){if(_0x3a84c7[_0xc683('0x30')](_0x5b9b06)){_0x3a31b2[util[_0xc683('0x13')]('%s',_[_0xc683('0x37')](_0x5b9b06))]=_0x3a84c7[_0x5b9b06];}}return{'variables':_0x3a31b2};};exports[_0xc683('0x38')]=function(_0x26eac8,_0x4f07ad){if(!_[_0xc683('0x18')](_0x26eac8)){if(_0x26eac8[_0xc683('0x30')](_0xc683('0x39'))){if(_0x26eac8[_0xc683('0x39')]>0x0){_0x26eac8['originated']-=0x1;}else{logger[_0xc683('0x9')]('[updateOriginated]\x20object\x20originated\x20is\x20negative',_0x4f07ad);}}}else{logger[_0xc683('0x9')]('[updateOriginated]\x20is\x20null\x20or\x20undefined',_0x4f07ad);}};exports[_0xc683('0x3a')]=function(_0x3f8f01){var _0x152aa6=moment()[_0xc683('0x13')](_0xc683('0x3b'));_0x3f8f01[_0xc683('0x3c')]=0xd;_0x3f8f01[_0xc683('0x3d')]=_0xc683('0x3e');_0x3f8f01['starttime']=_0x152aa6;_0x3f8f01[_0xc683('0x3f')]=_0x152aa6;_0x3f8f01[_0xc683('0x40')]=_0x152aa6;};exports['logAgent']=function(_0x3c83e5,_0x404702,_0x36f059){var _0x206f8e=moment()['format'](_0xc683('0x3b'));_0x3c83e5['state']=_0x404702;_0x3c83e5[_0xc683('0x3d')]=_0x36f059;_0x3c83e5['responsetime']=_0x206f8e;_0x3c83e5[_0xc683('0x41')]=getSeconds(_0x3c83e5[_0xc683('0x3f')],_0x3c83e5[_0xc683('0x42')]);};exports[_0xc683('0x43')]=function(_0x1726df,_0x429b5f,_0x29c899){_0x1726df[_0xc683('0x44')]=_0x429b5f;_0x1726df[_0xc683('0x45')]=_0x29c899;};exports[_0xc683('0x46')]=function(_0x41dfa9,_0x13fe59,_0x322dd6){var _0x541cc2=moment()['format'](_0xc683('0x3b'));_0x41dfa9[_0xc683('0x3c')]=_0x13fe59;_0x41dfa9[_0xc683('0x3d')]=_0x322dd6;_0x41dfa9[_0xc683('0x3f')]=_0x41dfa9[_0xc683('0x3f')]?_0x41dfa9[_0xc683('0x3f')]:_0x541cc2;_0x41dfa9[_0xc683('0x40')]=_0x41dfa9[_0xc683('0x40')]?_0x41dfa9[_0xc683('0x40')]:_0x541cc2;_0x41dfa9['ringtime']=getSeconds(_0x41dfa9['responsetime']||0x0,_0x41dfa9['starttime']||0x0);_0x41dfa9[_0xc683('0x47')]=_0x41dfa9[_0xc683('0x48')]?getSeconds(_0x41dfa9[_0xc683('0x40')],_0x41dfa9[_0xc683('0x48')]):0x0;};exports[_0xc683('0x49')]=function(_0x5bbd0c){return _0x5bbd0c===_0xc683('0x4a');};exports[_0xc683('0x4b')]=function(_0x1b923b,_0x4684d0,_0x1740c3,_0x3123ec,_0x125457){var _0x3888e8=_0x3123ec?_0xc683('0x4c'):_0x1b923b['calleridname'];_0x3888e8=_0x125457?_0xc683('0x4d'):_0x3888e8;return{'actionid':_0x1b923b['uniqueid'],'action':_0xc683('0x4e'),'channel':_0x1b923b[_0xc683('0x4f')],'callerid':util[_0xc683('0x13')](_0xc683('0x14'),_0x3888e8,_0x1b923b['calleridnum']),'Exten':_0xc683('0x2b'),'Context':'from-sip','Priority':'1','variable':_0x1740c3,'timeout':(_0x4684d0[_0xc683('0x50')]||0x1e)*0x3e8,'async':!![],'channelid':_0x1b923b[_0xc683('0x51')]};};exports['totalGlobal']=function(_0x3ca6a7){return _0x3ca6a7[_0xc683('0x52')]+_0x3ca6a7[_0xc683('0x53')]+_0x3ca6a7['countnoanswerretry']+_0x3ca6a7[_0xc683('0x54')]+_0x3ca6a7[_0xc683('0x55')];};exports[_0xc683('0x56')]=function(_0x42015b){var _0x440dfe=_[_0xc683('0x57')](_0x42015b);_0x440dfe[_0xc683('0x3c')]=0xf;_0x440dfe[_0xc683('0x3d')]=_0xc683('0x58');return _0x440dfe;};exports[_0xc683('0x59')]=function(_0x512b07,_0xe1fdb9,_0x5a9844){var _0xaae354={};_0xaae354[_0xe1fdb9]=_0x512b07[_0xe1fdb9];_0xaae354[_0xc683('0x5a')]=![];_0xaae354[_0xc683('0x5b')]=moment()[_0xc683('0x5c')](_0x5a9844,'minutes')[_0xc683('0x13')](_0xc683('0x3b'));_0xaae354[_0xc683('0x1e')]=_0x512b07[_0xc683('0x1e')];_0xaae354[_0xc683('0x5d')]=_0x512b07[_0xc683('0x5d')];_0xaae354[_0xc683('0x20')]=_0x512b07[_0xc683('0x20')]||undefined;return _0xaae354;};exports[_0xc683('0x5e')]=function(_0x197094,_0x47c1e0){if(!_[_0xc683('0x18')](_0x197094)){if(_0x197094['pTalking']>0x0){_0x197094[_0xc683('0x5f')]-=0x1;}else{logger['error'](_0x47c1e0,_0xc683('0x60'));}}else{logger[_0xc683('0x9')](_0x47c1e0,_0xc683('0x61'));}};exports[_0xc683('0x62')]=function(_0x571f96){if(_0x571f96<=0x0){return!![];}return![];};function buildObj(_0x16e914,_0x59ac30,_0x3114c0){_0x16e914[_0xc683('0x63')]=_0x59ac30;_0x16e914[_0xc683('0x1b')]=_0x16e914[_0xc683('0x64')];_0x16e914[_0xc683('0x65')]=_0x16e914[_0xc683('0x4f')];_0x16e914[_0xc683('0x66')]=_0xc683('0x67');if(_0x3114c0){_0x16e914['mandatoryDisposition']=_0x3114c0[_0xc683('0x68')];}return _0x16e914;}exports[_0xc683('0x69')]=buildObj;exports[_0xc683('0x6a')]=function(_0x45fc9e){var _0xb11a9e={};_0xb11a9e[_0xc683('0x64')]=_0x45fc9e[_0xc683('0x64')];_0xb11a9e[_0xc683('0x65')]=_0x45fc9e[_0xc683('0x4f')];_0xb11a9e[_0xc683('0x51')]=_0x45fc9e[_0xc683('0x51')];return _0xb11a9e;};exports['agentReadyId']=function(_0x2d39a8){var _0xd735b0=[];for(var _0x344fca in _0x2d39a8){if(_0x2d39a8[_0xc683('0x30')](_0x344fca)){if(!_[_0xc683('0x18')](_0x2d39a8[_0x344fca])&&_0x2d39a8[_0x344fca]['state']===_0xc683('0x6b')&&_0x2d39a8[_0x344fca][_0xc683('0x6c')]===_0xc683('0x6d')){_0xd735b0['push'](_0x2d39a8[_0x344fca]['id']);}}}return _0xd735b0;};exports['getDiff']=function(_0x253dec){var _0x17dc35=moment()[_0xc683('0x6')](0x0);var _0x3f0a44=moment(_0x253dec)[_0xc683('0x6')](0x0);return _0x17dc35[_0xc683('0x7')](_0x3f0a44,_0xc683('0x6e'));};exports[_0xc683('0x6f')]=function(_0x351dcb){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x351dcb[_0xc683('0x1e')],'ListId':_0x351dcb[_0xc683('0x5d')],'VoiceQueueId':_0x351dcb[_0xc683('0x20')]||undefined,'CampaignId':_0x351dcb[_0xc683('0x70')]||undefined};};exports[_0xc683('0x71')]=function(_0x2f3c12){if(_0x2f3c12==='uniqueid'||_0x2f3c12===_0xc683('0x72')||_0x2f3c12===_0xc683('0x64')||_0x2f3c12==='type'||_0x2f3c12===_0xc683('0x73')||_0x2f3c12==='dialAnswer'||_0x2f3c12===_0xc683('0x44')||_0x2f3c12==='channelAgent'||_0x2f3c12===_0xc683('0x1c')||_0x2f3c12===_0xc683('0x5a')||_0x2f3c12===_0xc683('0x1d')||_0x2f3c12===_0xc683('0x5b')||_0x2f3c12===_0xc683('0x52')||_0x2f3c12===_0xc683('0x53')||_0x2f3c12==='countnoanswerretry'||_0x2f3c12===_0xc683('0x74')||_0x2f3c12==='callback'||_0x2f3c12===_0xc683('0x75')||_0x2f3c12==='callbackat'||_0x2f3c12===_0xc683('0x76')||_0x2f3c12===_0xc683('0x1e')||_0x2f3c12===_0xc683('0x5d')||_0x2f3c12===_0xc683('0x45')||_0x2f3c12===_0xc683('0x20')||_0x2f3c12==='sipcallid'||_0x2f3c12===_0xc683('0x77')||_0x2f3c12===_0xc683('0x78')||_0x2f3c12===_0xc683('0x79')||_0x2f3c12==='xmd-listid'||_0x2f3c12===_0xc683('0x7a')||_0x2f3c12===_0xc683('0x7b')||_0x2f3c12===_0xc683('0x7c')||_0x2f3c12===_0xc683('0x7d')||_0x2f3c12===_0xc683('0x7e')||_0x2f3c12==='xmd-contactid'||_0x2f3c12===_0xc683('0x7f')||_0x2f3c12==='xmd-callerid'||_0x2f3c12===_0xc683('0x80')||_0x2f3c12===_0xc683('0x81')||_0x2f3c12==='rtpaudioqos'||_0x2f3c12===_0xc683('0x82')||_0x2f3c12===_0xc683('0x83')||_0x2f3c12==='rtpaudioqosjitterbridged'||_0x2f3c12===_0xc683('0x84')||_0x2f3c12===_0xc683('0x85')||_0x2f3c12===_0xc683('0x86')||_0x2f3c12===_0xc683('0x87')||_0x2f3c12===_0xc683('0x88')||_0x2f3c12===_0xc683('0x82')||_0x2f3c12===_0xc683('0x83')||_0x2f3c12==='rtpaudioqosjitterbridged'||_0x2f3c12==='rtpaudioqosloss'||_0x2f3c12==='rtpaudioqoslossbridged'||_0x2f3c12===_0xc683('0x86')||_0x2f3c12==='rtpaudioqosrttbridged'||_0x2f3c12===_0xc683('0x89')||_0x2f3c12===_0xc683('0x8a')||_0x2f3c12==='state'||_0x2f3c12===_0xc683('0x3d')){return![];}return!![];};exports[_0xc683('0x8b')]=function(_0xd81e94,_0x36384d){var _0x4a9bec,_0x1aaa3e,_0xe5463e;if(_0x36384d<=0x0){_0x36384d=0x1;}_0x4a9bec=new RegExp(_0xc683('0x8c')+_0x36384d+'}$');_0x1aaa3e=Math['pow'](0xa,_0x36384d-0x1);_0xe5463e=Math['pow'](0xa,_0x36384d)-0x1;return util[_0xc683('0x13')]('%s',_[_0xc683('0x8d')](_0xd81e94,_0x4a9bec,_[_0xc683('0x8e')](_0x1aaa3e,_0xe5463e)));};exports[_0xc683('0x8f')]=function(_0x432ba5){var _0xe2160=_0x432ba5[_0xc683('0x90')](/"(.*?)"/);return _0xe2160?_0xe2160[0x1]:_0x432ba5;};exports[_0xc683('0x91')]=function(_0x23b291){var _0x188ed2=_0x23b291[_0xc683('0x90')](/<(.*?)>/);return _0x188ed2?_0x188ed2[0x1]:_0x23b291;};function buildNoAnswerEventPayload(_0x5c4226,_0x302ddf){var _0x10abc5=buildObj(_0x5c4226,'noanswer');if(!_[_0xc683('0x12')](_0x302ddf[_0xc683('0x92')])){Object['keys'](_0x302ddf['variables'])[_0xc683('0x93')](function(_0x4e2d85){_0x10abc5[_0x4e2d85[_0xc683('0x94')]()]=_0x302ddf['variables'][_0x4e2d85];});}return _0x10abc5;}exports[_0xc683('0x95')]=buildNoAnswerEventPayload;