0b17559472958e04b7cc9a744eeb00ecb4a8d29e
[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 _0x36b0=['buildNoAnswerEventPayload','lodash','moment','../../../../config/logger','preview','env','127.0.0.1','../../dialer/utils','loggerCatch','inspect','logger','info','loggerError','error','logger2','message','string','isEmpty','isUndefined','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','isActive','isNil','addVariables','name','calleridnum','dialer','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','monitor_format','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','originatecalleridnum','originatecalleridname','xcally-motion-preview','Call-Type:\x20PREVIEW','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','toLowerVariables','hasOwnProperty','toLower','originated','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','responsetime','endtime','logAgent','statedesc','ringtime','getSeconds','logLookAgent','membername','logCustomer','starttime','talktime','answertime','variablesAction','RECALL','uniqueid','channelAgent','from-sip','timeout','totalGlobal','countcongestionretry','countnoanswerretry','countagentrejectretry','countnosuchnumberretry','cloneAction','clone','Global','active','scheduledat','add','minutes','ContactId','ListId','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','queue','interface','motionChannel','voice','mandatoryDisposition','buildObj','buildAcw','agentReadyId','status','push','getDiff','milliseconds','diff','seconds','createBody','CampaignId','filterKey','idContact','type','campaigntype','dialAnswer','countglobal','callback','callbackat','UserId','sipcallid','xmd-phone','xmd-dialurl','xmd-dialoptions','xmd-dialchannel','xmd-contactid','xmd-callerid','xmd-agiafter','xmd-agi','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosrtt','rtpaudioqosloss','rtpaudioqoslossbridged','bridgepeer','bridgepvtcallid','getCallerIdRandom','\x5cw{0,','pow','replace','random','extractCalleridName','match','extractCalleridNumber','noanswer','variables','keys','forEach','toLowerCase'];(function(_0x2a609e,_0x21a49f){var _0x35589c=function(_0x654ded){while(--_0x654ded){_0x2a609e['push'](_0x2a609e['shift']());}};_0x35589c(++_0x21a49f);}(_0x36b0,0x1b4));var _0x036b=function(_0x16d10f,_0x2ba2d5){_0x16d10f=_0x16d10f-0x0;var _0x50c823=_0x36b0[_0x16d10f];return _0x50c823;};'use strict';var util=require('util');var _=require(_0x036b('0x0'));var moment=require(_0x036b('0x1'));var logger=require(_0x036b('0x2'))(_0x036b('0x3'));var ipAgi=process[_0x036b('0x4')]['XCALLY_IP_AGI']||_0x036b('0x5');var utils=require(_0x036b('0x6'));exports[_0x036b('0x7')]=function(_0x5bd6a8){return function(_0x5385cb){logger['error'](_0x5bd6a8,util[_0x036b('0x8')](_0x5385cb,{'showHidden':![],'depth':null}));};};exports[_0x036b('0x9')]=function(_0x37aae9,_0x16d174){logger[_0x036b('0xa')](_0x37aae9,util[_0x036b('0x8')](_0x16d174,{'showHidden':![],'depth':null}));};exports[_0x036b('0xb')]=function(_0x4da6ed,_0x221ae5){logger[_0x036b('0xc')](_0x4da6ed,util[_0x036b('0x8')](_0x221ae5,{'showHidden':![],'depth':null}));};exports[_0x036b('0xd')]=function(_0x50287f){return function(_0x55bc65){logger[_0x036b('0xa')](_0x50287f,util[_0x036b('0x8')](_0x55bc65,{'showHidden':![],'depth':null}));};};exports[_0x036b('0xe')]=function(_0x48b5b7,_0x37fe26,_0x305bb7){return{'message':_0x48b5b7,'unlock':_0x37fe26,'active':_0x305bb7};};exports['getCallerId']=function(_0x2c5986,_0x172792,_0x138a7e){if(!_['isUndefined'](_0x138a7e)&&_0x036b('0xf')===typeof _0x138a7e&&!_[_0x036b('0x10')](_0x138a7e)){if(!_[_0x036b('0x11')](_0x172792)&&'string'===typeof _0x172792&&!_[_0x036b('0x10')](_0x172792)){return util[_0x036b('0x12')](_0x036b('0x13'),_0x172792,_0x138a7e);}return util['format'](_0x036b('0x13'),_0x138a7e,_0x138a7e);}if(!_[_0x036b('0x11')](_0x2c5986)&&_0x036b('0xf')===typeof _0x2c5986&&!_[_0x036b('0x10')](_0x2c5986)){return _0x2c5986;}return _0x036b('0x14');};exports[_0x036b('0x15')]=function(_0x4c095c){if(_[_0x036b('0x16')](_0x4c095c)){return![];}return _0x4c095c;};exports[_0x036b('0x17')]=function(_0xb692f0,_0x4119e9,_0x1cf6d4,_0x5989a9,_0x221ce8,_0x4fc2be){var _0xc87707={'XMD-QUEUE':_0x4119e9['Queue']?_0x4119e9['Queue'][_0x036b('0x18')]:'','XMD-CALLERID':_0x5989a9,'XMD-CALLERID-PREVIEW':_0x4fc2be?util['format'](_0x036b('0x13'),_0x4fc2be['calleridname'],_0x4fc2be[_0x036b('0x19')]):_0x5989a9,'XMD-DIALID':_0x221ce8,'XMD-CONTACTID':_0x4119e9['ContactId'],'XMD-CDRTYPE':_0x036b('0x1a'),'CALLERID(all)':_0x5989a9,'XMD-VOICEQUEUEID':_0x4119e9[_0x036b('0x1b')],'XMD-DIALCHANNEL':_0x1cf6d4,'XMD-DIALTIMEOUT':_0xb692f0[_0x036b('0x1c')]||0x1e,'XMD-DIALOPTIONS':util['format'](_0x036b('0x1d'),_0xb692f0[_0x036b('0x1e')]?'g':'',_[_0x036b('0x10')](_0xb692f0[_0x036b('0x1f')])?'':_0x036b('0x20')),'XMD-DIALURL':_0xb692f0[_0x036b('0x21')]||'','XMD-AGI':_0xb692f0[_0x036b('0x22')]?util['format'](_0x036b('0x23'),ipAgi,_0xb692f0[_0x036b('0x22')]):_0x036b('0x24'),'XMD-AGIAFTER':_0xb692f0[_0x036b('0x1e')]?util[_0x036b('0x12')](_0x036b('0x23'),ipAgi,_0xb692f0[_0x036b('0x1e')]):'NONE','XMD-ORIGINATECALLERIDNUM':_0x4fc2be?_0x4fc2be[_0x036b('0x25')]:'','XMD-ORIGINATECALLERIDNAME':_0x4fc2be?_0x4fc2be[_0x036b('0x26')]:'','XMD-DESTINATION':_0x036b('0x27'),'SIPADDHEADER':_0x036b('0x28')};if(!_[_0x036b('0x10')](_0xb692f0[_0x036b('0x1f')])){_0xc87707[util[_0x036b('0x12')]('%s',_0x036b('0x29'))]=_0xb692f0[_0x036b('0x1f')];_0xc87707[util[_0x036b('0x12')]('%s',_0x036b('0x2a'))]=_0x221ce8;}return _0xc87707;};exports[_0x036b('0x2b')]=function(_0x4b4c82){var _0x41afa0={};for(var _0x562fe4 in _0x4b4c82){if(_0x4b4c82[_0x036b('0x2c')](_0x562fe4)){_0x41afa0[util[_0x036b('0x12')]('%s',_[_0x036b('0x2d')](_0x562fe4))]=_0x4b4c82[_0x562fe4];}}return{'variables':_0x41afa0};};exports['updateOriginated']=function(_0x25b404,_0x4f19ac){if(!_[_0x036b('0x16')](_0x25b404)){if(_0x25b404[_0x036b('0x2c')](_0x036b('0x2e'))){if(_0x25b404['originated']>0x0){_0x25b404[_0x036b('0x2e')]-=0x1;}else{logger['error']('[updateOriginated]\x20object\x20originated\x20is\x20negative',_0x4f19ac);}}}else{logger[_0x036b('0xc')](_0x036b('0x2f'),_0x4f19ac);}};exports[_0x036b('0x30')]=function(_0x2de7f0){var _0x421c44=moment()[_0x036b('0x12')](_0x036b('0x31'));_0x2de7f0[_0x036b('0x32')]=0xd;_0x2de7f0['statedesc']='Blacklist';_0x2de7f0['starttime']=_0x421c44;_0x2de7f0[_0x036b('0x33')]=_0x421c44;_0x2de7f0[_0x036b('0x34')]=_0x421c44;};exports[_0x036b('0x35')]=function(_0x3706de,_0xafdfa5,_0x18f6b1){var _0x13d158=moment()[_0x036b('0x12')](_0x036b('0x31'));_0x3706de['state']=_0xafdfa5;_0x3706de[_0x036b('0x36')]=_0x18f6b1;_0x3706de[_0x036b('0x33')]=_0x13d158;_0x3706de[_0x036b('0x37')]=utils[_0x036b('0x38')](_0x3706de['responsetime'],_0x3706de['starttime']);};exports[_0x036b('0x39')]=function(_0x133839,_0x2f09ed,_0x5a8e10){_0x133839[_0x036b('0x3a')]=_0x2f09ed;_0x133839['UserId']=_0x5a8e10;};exports[_0x036b('0x3b')]=function(_0x19d72a,_0x2068ca,_0x5d3331){var _0x42ebaf=moment()[_0x036b('0x12')](_0x036b('0x31'));_0x19d72a['state']=_0x2068ca;_0x19d72a[_0x036b('0x36')]=_0x5d3331;_0x19d72a['responsetime']=_0x19d72a[_0x036b('0x33')]?_0x19d72a[_0x036b('0x33')]:_0x42ebaf;_0x19d72a[_0x036b('0x34')]=_0x19d72a[_0x036b('0x34')]?_0x19d72a[_0x036b('0x34')]:_0x42ebaf;_0x19d72a['ringtime']=utils[_0x036b('0x38')](_0x19d72a['responsetime']||0x0,_0x19d72a[_0x036b('0x3c')]||0x0);_0x19d72a[_0x036b('0x3d')]=_0x19d72a[_0x036b('0x3e')]?utils[_0x036b('0x38')](_0x19d72a[_0x036b('0x34')],_0x19d72a['answertime']):0x0;};exports['isFailure']=function(_0x14500d){return _0x14500d==='Failure';};exports[_0x036b('0x3f')]=function(_0x153d57,_0x2500c5,_0x4e922c,_0xcb41b2,_0x467733){var _0x272640=_0xcb41b2?_0x036b('0x40'):_0x153d57['calleridname'];_0x272640=_0x467733?'BOOKED':_0x272640;return{'actionid':_0x153d57[_0x036b('0x41')],'action':'originate','channel':_0x153d57[_0x036b('0x42')],'callerid':util['format']('\x22%s\x22\x20<%s>',_0x272640,_0x153d57[_0x036b('0x19')]),'Exten':_0x036b('0x27'),'Context':_0x036b('0x43'),'Priority':'1','variable':_0x4e922c,'timeout':(_0x2500c5[_0x036b('0x44')]||0x1e)*0x3e8,'async':!![],'channelid':_0x153d57[_0x036b('0x41')]};};exports[_0x036b('0x45')]=function(_0x106957){return _0x106957['countbusyretry']+_0x106957[_0x036b('0x46')]+_0x106957[_0x036b('0x47')]+_0x106957[_0x036b('0x48')]+_0x106957[_0x036b('0x49')];};exports[_0x036b('0x4a')]=function(_0x482629){var _0x32b645=_[_0x036b('0x4b')](_0x482629);_0x32b645['state']=0xf;_0x32b645['statedesc']=_0x036b('0x4c');return _0x32b645;};exports['scheduledAt']=function(_0xd50986,_0x1021b2,_0x39dd24){var _0x54c44e={};_0x54c44e[_0x1021b2]=_0xd50986[_0x1021b2];_0x54c44e[_0x036b('0x4d')]=![];_0x54c44e[_0x036b('0x4e')]=moment()[_0x036b('0x4f')](_0x39dd24,_0x036b('0x50'))['format']('YYYY-MM-DD\x20HH:mm:ss');_0x54c44e['ContactId']=_0xd50986[_0x036b('0x51')];_0x54c44e[_0x036b('0x52')]=_0xd50986['ListId'];_0x54c44e[_0x036b('0x1b')]=_0xd50986[_0x036b('0x1b')]||undefined;return _0x54c44e;};exports[_0x036b('0x53')]=function(_0x250b6a,_0x1039f3){if(!_['isNil'](_0x250b6a)){if(_0x250b6a[_0x036b('0x54')]>0x0){_0x250b6a[_0x036b('0x54')]-=0x1;}else{logger[_0x036b('0xc')](_0x1039f3,_0x036b('0x55'));}}else{logger['error'](_0x1039f3,_0x036b('0x56'));}};exports[_0x036b('0x57')]=function(_0x565be3){if(_0x565be3<=0x0){return!![];}return![];};function buildObj(_0x5723fe,_0xfb43f7,_0xa6e49e){_0x5723fe['lastevent']=_0xfb43f7;_0x5723fe[_0x036b('0x18')]=_0x5723fe[_0x036b('0x58')];_0x5723fe[_0x036b('0x59')]=_0x5723fe[_0x036b('0x42')];_0x5723fe[_0x036b('0x5a')]=_0x036b('0x5b');if(_0xa6e49e){_0x5723fe[_0x036b('0x5c')]=_0xa6e49e[_0x036b('0x5c')];}return _0x5723fe;}exports[_0x036b('0x5d')]=buildObj;exports[_0x036b('0x5e')]=function(_0x282d81){var _0x5e3814={};_0x5e3814['queue']=_0x282d81[_0x036b('0x58')];_0x5e3814[_0x036b('0x59')]=_0x282d81[_0x036b('0x42')];_0x5e3814['uniqueid']=_0x282d81['uniqueid'];return _0x5e3814;};exports[_0x036b('0x5f')]=function(_0x1e3a4d){var _0x4c3a22=[];for(var _0xa2b608 in _0x1e3a4d){if(_0x1e3a4d['hasOwnProperty'](_0xa2b608)){if(!_[_0x036b('0x16')](_0x1e3a4d[_0xa2b608])&&_0x1e3a4d[_0xa2b608][_0x036b('0x32')]==='not_inuse'&&_0x1e3a4d[_0xa2b608][_0x036b('0x60')]==='reachable'){_0x4c3a22[_0x036b('0x61')](_0x1e3a4d[_0xa2b608]['id']);}}}return _0x4c3a22;};exports[_0x036b('0x62')]=function(_0xf881d8){var _0x5a5545=moment()[_0x036b('0x63')](0x0);var _0x5af39a=moment(_0xf881d8)[_0x036b('0x63')](0x0);return _0x5a5545[_0x036b('0x64')](_0x5af39a,_0x036b('0x65'));};exports[_0x036b('0x66')]=function(_0x30224b){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x30224b[_0x036b('0x51')],'ListId':_0x30224b[_0x036b('0x52')],'VoiceQueueId':_0x30224b[_0x036b('0x1b')]||undefined,'CampaignId':_0x30224b[_0x036b('0x67')]||undefined};};exports[_0x036b('0x68')]=function(_0x31bd69){if(_0x31bd69===_0x036b('0x41')||_0x31bd69===_0x036b('0x69')||_0x31bd69==='queue'||_0x31bd69===_0x036b('0x6a')||_0x31bd69===_0x036b('0x6b')||_0x31bd69===_0x036b('0x6c')||_0x31bd69===_0x036b('0x3a')||_0x31bd69==='channelAgent'||_0x31bd69==='calleridname'||_0x31bd69==='active'||_0x31bd69===_0x036b('0x19')||_0x31bd69==='scheduledat'||_0x31bd69==='countbusyretry'||_0x31bd69==='countcongestionretry'||_0x31bd69===_0x036b('0x47')||_0x31bd69===_0x036b('0x6d')||_0x31bd69===_0x036b('0x6e')||_0x31bd69==='callbackuniqueid'||_0x31bd69===_0x036b('0x6f')||_0x31bd69==='recallme'||_0x31bd69===_0x036b('0x51')||_0x31bd69===_0x036b('0x52')||_0x31bd69===_0x036b('0x70')||_0x31bd69==='VoiceQueueId'||_0x31bd69===_0x036b('0x71')||_0x31bd69==='xmd-voicequeueid'||_0x31bd69==='xmd-queue'||_0x31bd69===_0x036b('0x72')||_0x31bd69==='xmd-listid'||_0x31bd69===_0x036b('0x73')||_0x31bd69==='xmd-dialtimeout'||_0x31bd69===_0x036b('0x74')||_0x31bd69==='xmd-dialid'||_0x31bd69===_0x036b('0x75')||_0x31bd69===_0x036b('0x76')||_0x31bd69==='xmd-cdrtype'||_0x31bd69===_0x036b('0x77')||_0x31bd69===_0x036b('0x78')||_0x31bd69===_0x036b('0x79')||_0x31bd69===_0x036b('0x7a')||_0x31bd69===_0x036b('0x7b')||_0x31bd69===_0x036b('0x7c')||_0x31bd69===_0x036b('0x7d')||_0x31bd69==='rtpaudioqosloss'||_0x31bd69==='rtpaudioqoslossbridged'||_0x31bd69===_0x036b('0x7e')||_0x31bd69==='rtpaudioqosrttbridged'||_0x31bd69==='rtpaudioqos'||_0x31bd69===_0x036b('0x7b')||_0x31bd69===_0x036b('0x7c')||_0x31bd69===_0x036b('0x7d')||_0x31bd69===_0x036b('0x7f')||_0x31bd69===_0x036b('0x80')||_0x31bd69==='rtpaudioqosrtt'||_0x31bd69==='rtpaudioqosrttbridged'||_0x31bd69===_0x036b('0x81')||_0x31bd69===_0x036b('0x82')||_0x31bd69===_0x036b('0x32')||_0x31bd69===_0x036b('0x36')){return![];}return!![];};exports[_0x036b('0x83')]=function(_0x370ce0,_0xa8d0d6){var _0x62c7ea,_0x305131,_0x4592cb;if(_0xa8d0d6<=0x0){_0xa8d0d6=0x1;}_0x62c7ea=new RegExp(_0x036b('0x84')+_0xa8d0d6+'}$');_0x305131=Math[_0x036b('0x85')](0xa,_0xa8d0d6-0x1);_0x4592cb=Math[_0x036b('0x85')](0xa,_0xa8d0d6)-0x1;return util['format']('%s',_[_0x036b('0x86')](_0x370ce0,_0x62c7ea,_[_0x036b('0x87')](_0x305131,_0x4592cb)));};exports[_0x036b('0x88')]=function(_0x211aaf){var _0x1e55fe=_0x211aaf[_0x036b('0x89')](/"(.*?)"/);return _0x1e55fe?_0x1e55fe[0x1]:_0x211aaf;};exports[_0x036b('0x8a')]=function(_0x57b5c3){var _0x30bf33=_0x57b5c3['match'](/<(.*?)>/);return _0x30bf33?_0x30bf33[0x1]:_0x57b5c3;};function buildNoAnswerEventPayload(_0x3e1884,_0x373358){var _0x3d8304=buildObj(_0x3e1884,_0x036b('0x8b'));if(!_[_0x036b('0x10')](_0x373358[_0x036b('0x8c')])){Object[_0x036b('0x8d')](_0x373358[_0x036b('0x8c')])[_0x036b('0x8e')](function(_0x595f93){_0x3d8304[_0x595f93[_0x036b('0x8f')]()]=_0x373358[_0x036b('0x8c')][_0x595f93];});}return _0x3d8304;}exports[_0x036b('0x90')]=buildNoAnswerEventPayload;