6d128b5e1e17c6b90e8585a3113d79833b874cf7
[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 _0xc9b4=['xmd-callerid','rtpaudioqosbridged','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqos','rtpaudioqosjitter','rtpaudioqosrttbridged','bridgepeer','bridgepvtcallid','getCallerIdRandom','pow','replace','random','match','lodash','moment','../../../../config/logger','env','XCALLY_IP_AGI','milliseconds','diff','loggerCatch','error','inspect','logger','loggerError','logger2','info','message','isUndefined','string','format','\x22%s\x22\x20<%s>','isEmpty','\x22\x22\x20<>','isActive','isNil','addVariables','name','calleridnum','ContactId','dialer','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','NONE','\x22agi://%s/square,%s\x22','originatecalleridnum','originatecalleridname','xcally-motion-preview','monitor_format','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','Contact','hasOwnProperty','tags','createdAt','%s%s','XMD-','toUpper','toLowerVariables','originated','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','Blacklist','starttime','responsetime','endtime','logAgent','statedesc','ringtime','logLookAgent','membername','UserId','logCustomer','talktime','answertime','Failure','variablesAction','calleridname','BOOKED','uniqueid','originate','from-sip','timeout','totalGlobal','countcongestionretry','cloneAction','clone','Global','scheduledAt','active','scheduledat','minutes','ListId','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','buildObj','lastevent','queue','interface','channelAgent','mandatoryDisposition','buildAcw','agentReadyId','not_inuse','status','reachable','getDiff','seconds','createBody','CampaignId','idContact','type','campaigntype','countnoanswerretry','countglobal','callback','callbackuniqueid','recallme','xmd-voicequeueid','xmd-queue','xmd-phone','xmd-listid','xmd-dialoptions','xmd-dialchannel','xmd-cdrtype'];(function(_0x18b405,_0x1ee57b){var _0x2df375=function(_0x5a4034){while(--_0x5a4034){_0x18b405['push'](_0x18b405['shift']());}};_0x2df375(++_0x1ee57b);}(_0xc9b4,0x122));var _0x4c9b=function(_0x1b2422,_0x1e98d4){_0x1b2422=_0x1b2422-0x0;var _0x376573=_0xc9b4[_0x1b2422];return _0x376573;};'use strict';var util=require('util');var _=require(_0x4c9b('0x0'));var moment=require(_0x4c9b('0x1'));var logger=require(_0x4c9b('0x2'))('preview');var ipAgi=process[_0x4c9b('0x3')][_0x4c9b('0x4')]||'127.0.0.1';function getSeconds(_0x5ac644,_0x3e83c2){var _0x4b7b37=moment(_0x5ac644)[_0x4c9b('0x5')](0x0);var _0x51ba6f=moment(_0x3e83c2)[_0x4c9b('0x5')](0x0);return _0x4b7b37[_0x4c9b('0x6')](_0x51ba6f,'seconds');}exports[_0x4c9b('0x7')]=function(_0x8e2c4){return function(_0xd909af){logger[_0x4c9b('0x8')](_0x8e2c4,util[_0x4c9b('0x9')](_0xd909af,{'showHidden':![],'depth':null}));};};exports[_0x4c9b('0xa')]=function(_0x4e7dc3,_0x54b252){logger['info'](_0x4e7dc3,util['inspect'](_0x54b252,{'showHidden':![],'depth':null}));};exports[_0x4c9b('0xb')]=function(_0x3173b9,_0x536400){logger[_0x4c9b('0x8')](_0x3173b9,util[_0x4c9b('0x9')](_0x536400,{'showHidden':![],'depth':null}));};exports[_0x4c9b('0xc')]=function(_0x3ae365){return function(_0x57108a){logger[_0x4c9b('0xd')](_0x3ae365,util[_0x4c9b('0x9')](_0x57108a,{'showHidden':![],'depth':null}));};};exports[_0x4c9b('0xe')]=function(_0x3e1805,_0x13c63f,_0x37f69c){return{'message':_0x3e1805,'unlock':_0x13c63f,'active':_0x37f69c};};exports['getCallerId']=function(_0x3464c1,_0x2aa634,_0x4aaf39){if(!_[_0x4c9b('0xf')](_0x4aaf39)&&'string'===typeof _0x4aaf39&&!_['isEmpty'](_0x4aaf39)){if(!_[_0x4c9b('0xf')](_0x2aa634)&&_0x4c9b('0x10')===typeof _0x2aa634&&!_['isEmpty'](_0x2aa634)){return util[_0x4c9b('0x11')](_0x4c9b('0x12'),_0x2aa634,_0x4aaf39);}return util[_0x4c9b('0x11')](_0x4c9b('0x12'),_0x4aaf39,_0x4aaf39);}if(!_['isUndefined'](_0x3464c1)&&_0x4c9b('0x10')===typeof _0x3464c1&&!_[_0x4c9b('0x13')](_0x3464c1)){return _0x3464c1;}return _0x4c9b('0x14');};exports[_0x4c9b('0x15')]=function(_0x3cdaf3){if(_[_0x4c9b('0x16')](_0x3cdaf3)){return![];}return _0x3cdaf3;};exports[_0x4c9b('0x17')]=function(_0x12cf52,_0x1d4046,_0xf72eb1,_0x3d16c6,_0x27f63c,_0x1e99e7){var _0x3e0cd9={'XMD-QUEUE':_0x1d4046['Queue']?_0x1d4046['Queue'][_0x4c9b('0x18')]:'','XMD-CALLERID':_0x3d16c6,'XMD-CALLERID-PREVIEW':_0x1e99e7?util['format']('\x22%s\x22\x20<%s>',_0x1e99e7['calleridname'],_0x1e99e7[_0x4c9b('0x19')]):_0x3d16c6,'XMD-DIALID':_0x27f63c,'XMD-CONTACTID':_0x1d4046[_0x4c9b('0x1a')],'XMD-CDRTYPE':_0x4c9b('0x1b'),'CALLERID(all)':_0x3d16c6,'XMD-VOICEQUEUEID':_0x1d4046[_0x4c9b('0x1c')],'XMD-DIALCHANNEL':_0xf72eb1,'XMD-DIALTIMEOUT':_0x12cf52[_0x4c9b('0x1d')]||0x1e,'XMD-DIALOPTIONS':util[_0x4c9b('0x11')](_0x4c9b('0x1e'),_0x12cf52[_0x4c9b('0x1f')]?'g':'',_['isEmpty'](_0x12cf52['monitor_format'])?'':_0x4c9b('0x20')),'XMD-DIALURL':_0x12cf52[_0x4c9b('0x21')]||'','XMD-AGI':_0x12cf52[_0x4c9b('0x22')]?util[_0x4c9b('0x11')]('\x22agi://%s/square,%s\x22',ipAgi,_0x12cf52[_0x4c9b('0x22')]):_0x4c9b('0x23'),'XMD-AGIAFTER':_0x12cf52[_0x4c9b('0x1f')]?util[_0x4c9b('0x11')](_0x4c9b('0x24'),ipAgi,_0x12cf52['dialQueueProject2']):_0x4c9b('0x23'),'XMD-ORIGINATECALLERIDNUM':_0x1e99e7?_0x1e99e7[_0x4c9b('0x25')]:'','XMD-ORIGINATECALLERIDNAME':_0x1e99e7?_0x1e99e7[_0x4c9b('0x26')]:'','XMD-DESTINATION':_0x4c9b('0x27')};if(!_[_0x4c9b('0x13')](_0x12cf52[_0x4c9b('0x28')])){_0x3e0cd9[util[_0x4c9b('0x11')]('%s',_0x4c9b('0x29'))]=_0x12cf52[_0x4c9b('0x28')];_0x3e0cd9[util[_0x4c9b('0x11')]('%s',_0x4c9b('0x2a'))]=_0x27f63c;}if(_0x1d4046&&_0x1d4046[_0x4c9b('0x2b')]){for(var _0x4dc148 in _0x1d4046[_0x4c9b('0x2b')]){if(_0x1d4046['Contact'][_0x4c9b('0x2c')](_0x4dc148)){if(!_[_0x4c9b('0x16')](_0x1d4046['Contact'][_0x4dc148])&&_0x4dc148!=='id'&&_0x4dc148!==_0x4c9b('0x2d')&&_0x4dc148!==_0x4c9b('0x2e')&&_0x4dc148!=='updatedAt'){_0x3e0cd9[util[_0x4c9b('0x11')](_0x4c9b('0x2f'),_0x4c9b('0x30'),_[_0x4c9b('0x31')](_0x4dc148))]=_0x1d4046[_0x4c9b('0x2b')][_0x4dc148];}}}}return _0x3e0cd9;};exports[_0x4c9b('0x32')]=function(_0x1f3764){var _0x3188ed={};for(var _0x128e4e in _0x1f3764){if(_0x1f3764[_0x4c9b('0x2c')](_0x128e4e)){_0x3188ed[util[_0x4c9b('0x11')]('%s',_['toLower'](_0x128e4e))]=_0x1f3764[_0x128e4e];}}return{'variables':_0x3188ed};};exports['updateOriginated']=function(_0x1ef9de,_0x5902b5){if(!_[_0x4c9b('0x16')](_0x1ef9de)){if(_0x1ef9de[_0x4c9b('0x2c')](_0x4c9b('0x33'))){if(_0x1ef9de[_0x4c9b('0x33')]>0x0){_0x1ef9de[_0x4c9b('0x33')]-=0x1;}else{logger[_0x4c9b('0x8')]('[updateOriginated]\x20object\x20originated\x20is\x20negative',_0x5902b5);}}}else{logger[_0x4c9b('0x8')]('[updateOriginated]\x20is\x20null\x20or\x20undefined',_0x5902b5);}};exports[_0x4c9b('0x34')]=function(_0x3348d2){var _0x3bebb6=moment()['format'](_0x4c9b('0x35'));_0x3348d2[_0x4c9b('0x36')]=0xd;_0x3348d2['statedesc']=_0x4c9b('0x37');_0x3348d2[_0x4c9b('0x38')]=_0x3bebb6;_0x3348d2[_0x4c9b('0x39')]=_0x3bebb6;_0x3348d2[_0x4c9b('0x3a')]=_0x3bebb6;};exports[_0x4c9b('0x3b')]=function(_0x58e352,_0xf5efc6,_0x1c941b){var _0x3d1b0a=moment()['format'](_0x4c9b('0x35'));_0x58e352[_0x4c9b('0x36')]=_0xf5efc6;_0x58e352[_0x4c9b('0x3c')]=_0x1c941b;_0x58e352['responsetime']=_0x3d1b0a;_0x58e352[_0x4c9b('0x3d')]=getSeconds(_0x58e352[_0x4c9b('0x39')],_0x58e352[_0x4c9b('0x38')]);};exports[_0x4c9b('0x3e')]=function(_0x328e11,_0xa82815,_0x148654){_0x328e11[_0x4c9b('0x3f')]=_0xa82815;_0x328e11[_0x4c9b('0x40')]=_0x148654;};exports[_0x4c9b('0x41')]=function(_0x3b7f3b,_0xcda11,_0x1c0b67){var _0x3a9e69=moment()[_0x4c9b('0x11')]('YYYY-MM-DD\x20HH:mm:ss');_0x3b7f3b[_0x4c9b('0x36')]=_0xcda11;_0x3b7f3b['statedesc']=_0x1c0b67;_0x3b7f3b[_0x4c9b('0x39')]=_0x3b7f3b[_0x4c9b('0x39')]?_0x3b7f3b['responsetime']:_0x3a9e69;_0x3b7f3b[_0x4c9b('0x3a')]=_0x3b7f3b['endtime']?_0x3b7f3b[_0x4c9b('0x3a')]:_0x3a9e69;_0x3b7f3b[_0x4c9b('0x3d')]=getSeconds(_0x3b7f3b[_0x4c9b('0x39')]||0x0,_0x3b7f3b[_0x4c9b('0x38')]||0x0);_0x3b7f3b[_0x4c9b('0x42')]=_0x3b7f3b[_0x4c9b('0x43')]?getSeconds(_0x3b7f3b['endtime'],_0x3b7f3b[_0x4c9b('0x43')]):0x0;};exports['isFailure']=function(_0x371b4a){return _0x371b4a===_0x4c9b('0x44');};exports[_0x4c9b('0x45')]=function(_0x393513,_0x291580,_0x2bde16,_0x31afa4,_0x3f499a){var _0x5aad74=_0x31afa4?'RECALL':_0x393513[_0x4c9b('0x46')];_0x5aad74=_0x3f499a?_0x4c9b('0x47'):_0x5aad74;return{'actionid':_0x393513[_0x4c9b('0x48')],'action':_0x4c9b('0x49'),'channel':_0x393513['channelAgent'],'callerid':util[_0x4c9b('0x11')](_0x4c9b('0x12'),_0x5aad74,_0x393513[_0x4c9b('0x19')]),'Exten':'xcally-motion-preview','Context':_0x4c9b('0x4a'),'Priority':'1','variable':_0x2bde16,'timeout':(_0x291580[_0x4c9b('0x4b')]||0x1e)*0x3e8,'async':!![],'channelid':_0x393513[_0x4c9b('0x48')]};};exports[_0x4c9b('0x4c')]=function(_0x48ee86){return _0x48ee86['countbusyretry']+_0x48ee86[_0x4c9b('0x4d')]+_0x48ee86['countnoanswerretry']+_0x48ee86['countagentrejectretry']+_0x48ee86['countnosuchnumberretry'];};exports[_0x4c9b('0x4e')]=function(_0xdbb27b){var _0xcee4ba=_[_0x4c9b('0x4f')](_0xdbb27b);_0xcee4ba['state']=0xf;_0xcee4ba[_0x4c9b('0x3c')]=_0x4c9b('0x50');return _0xcee4ba;};exports[_0x4c9b('0x51')]=function(_0x372f85,_0x36ab95,_0x2ddc49){var _0x5bdc9a={};_0x5bdc9a[_0x36ab95]=_0x372f85[_0x36ab95];_0x5bdc9a[_0x4c9b('0x52')]=![];_0x5bdc9a[_0x4c9b('0x53')]=moment()['add'](_0x2ddc49,_0x4c9b('0x54'))[_0x4c9b('0x11')](_0x4c9b('0x35'));_0x5bdc9a[_0x4c9b('0x1a')]=_0x372f85[_0x4c9b('0x1a')];_0x5bdc9a[_0x4c9b('0x55')]=_0x372f85[_0x4c9b('0x55')];_0x5bdc9a[_0x4c9b('0x1c')]=_0x372f85[_0x4c9b('0x1c')]||undefined;return _0x5bdc9a;};exports[_0x4c9b('0x56')]=function(_0x5bcd69,_0x45674b){if(!_['isNil'](_0x5bcd69)){if(_0x5bcd69[_0x4c9b('0x57')]>0x0){_0x5bcd69[_0x4c9b('0x57')]-=0x1;}else{logger[_0x4c9b('0x8')](_0x45674b,_0x4c9b('0x58'));}}else{logger[_0x4c9b('0x8')](_0x45674b,_0x4c9b('0x59'));}};exports[_0x4c9b('0x5a')]=function(_0x228762){if(_0x228762<=0x0){return!![];}return![];};exports[_0x4c9b('0x5b')]=function(_0x224814,_0x449b7a,_0x25c751){_0x224814[_0x4c9b('0x5c')]=_0x449b7a;_0x224814[_0x4c9b('0x18')]=_0x224814[_0x4c9b('0x5d')];_0x224814[_0x4c9b('0x5e')]=_0x224814[_0x4c9b('0x5f')];if(_0x25c751){_0x224814['mandatoryDisposition']=_0x25c751[_0x4c9b('0x60')];}return _0x224814;};exports[_0x4c9b('0x61')]=function(_0x2d2daa){var _0x179858={};_0x179858[_0x4c9b('0x5d')]=_0x2d2daa[_0x4c9b('0x5d')];_0x179858[_0x4c9b('0x5e')]=_0x2d2daa[_0x4c9b('0x5f')];_0x179858[_0x4c9b('0x48')]=_0x2d2daa[_0x4c9b('0x48')];return _0x179858;};exports[_0x4c9b('0x62')]=function(_0x54e25c){var _0x30685c=[];for(var _0x38f694 in _0x54e25c){if(_0x54e25c[_0x4c9b('0x2c')](_0x38f694)){if(!_['isNil'](_0x54e25c[_0x38f694])&&_0x54e25c[_0x38f694][_0x4c9b('0x36')]===_0x4c9b('0x63')&&_0x54e25c[_0x38f694][_0x4c9b('0x64')]===_0x4c9b('0x65')){_0x30685c['push'](_0x54e25c[_0x38f694]['id']);}}}return _0x30685c;};exports[_0x4c9b('0x66')]=function(_0x2b5c1f){var _0xea257f=moment()[_0x4c9b('0x5')](0x0);var _0x1d3de1=moment(_0x2b5c1f)[_0x4c9b('0x5')](0x0);return _0xea257f[_0x4c9b('0x6')](_0x1d3de1,_0x4c9b('0x67'));};exports[_0x4c9b('0x68')]=function(_0xfcf07c){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0xfcf07c[_0x4c9b('0x1a')],'ListId':_0xfcf07c[_0x4c9b('0x55')],'VoiceQueueId':_0xfcf07c['VoiceQueueId']||undefined,'CampaignId':_0xfcf07c[_0x4c9b('0x69')]||undefined};};exports['filterKey']=function(_0x146212){if(_0x146212==='uniqueid'||_0x146212===_0x4c9b('0x6a')||_0x146212===_0x4c9b('0x5d')||_0x146212===_0x4c9b('0x6b')||_0x146212===_0x4c9b('0x6c')||_0x146212==='dialAnswer'||_0x146212===_0x4c9b('0x3f')||_0x146212===_0x4c9b('0x5f')||_0x146212===_0x4c9b('0x46')||_0x146212==='active'||_0x146212===_0x4c9b('0x19')||_0x146212==='scheduledat'||_0x146212==='countbusyretry'||_0x146212===_0x4c9b('0x4d')||_0x146212===_0x4c9b('0x6d')||_0x146212===_0x4c9b('0x6e')||_0x146212===_0x4c9b('0x6f')||_0x146212===_0x4c9b('0x70')||_0x146212==='callbackat'||_0x146212===_0x4c9b('0x71')||_0x146212===_0x4c9b('0x1a')||_0x146212==='ListId'||_0x146212===_0x4c9b('0x40')||_0x146212===_0x4c9b('0x1c')||_0x146212==='sipcallid'||_0x146212===_0x4c9b('0x72')||_0x146212===_0x4c9b('0x73')||_0x146212===_0x4c9b('0x74')||_0x146212===_0x4c9b('0x75')||_0x146212==='xmd-dialurl'||_0x146212==='xmd-dialtimeout'||_0x146212===_0x4c9b('0x76')||_0x146212==='xmd-dialid'||_0x146212===_0x4c9b('0x77')||_0x146212==='xmd-contactid'||_0x146212===_0x4c9b('0x78')||_0x146212===_0x4c9b('0x79')||_0x146212==='xmd-agiafter'||_0x146212==='xmd-agi'||_0x146212==='rtpaudioqos'||_0x146212===_0x4c9b('0x7a')||_0x146212==='rtpaudioqosjitter'||_0x146212===_0x4c9b('0x7b')||_0x146212===_0x4c9b('0x7c')||_0x146212===_0x4c9b('0x7d')||_0x146212===_0x4c9b('0x7e')||_0x146212==='rtpaudioqosrttbridged'||_0x146212===_0x4c9b('0x7f')||_0x146212===_0x4c9b('0x7a')||_0x146212===_0x4c9b('0x80')||_0x146212===_0x4c9b('0x7b')||_0x146212===_0x4c9b('0x7c')||_0x146212===_0x4c9b('0x7d')||_0x146212===_0x4c9b('0x7e')||_0x146212===_0x4c9b('0x81')||_0x146212===_0x4c9b('0x82')||_0x146212===_0x4c9b('0x83')||_0x146212===_0x4c9b('0x36')||_0x146212===_0x4c9b('0x3c')){return![];}return!![];};exports[_0x4c9b('0x84')]=function(_0x44a835,_0x35bb0f){var _0x390cdd,_0x4b1817,_0xe4b0cd;if(_0x35bb0f<=0x0){_0x35bb0f=0x1;}_0x390cdd=new RegExp('\x5cw{0,'+_0x35bb0f+'}$');_0x4b1817=Math[_0x4c9b('0x85')](0xa,_0x35bb0f-0x1);_0xe4b0cd=Math['pow'](0xa,_0x35bb0f)-0x1;return util[_0x4c9b('0x11')]('%s',_[_0x4c9b('0x86')](_0x44a835,_0x390cdd,_[_0x4c9b('0x87')](_0x4b1817,_0xe4b0cd)));};exports['extractCalleridName']=function(_0x281454){var _0x32402c=_0x281454['match'](/"(.*?)"/);return _0x32402c?_0x32402c[0x1]:_0x281454;};exports['extractCalleridNumber']=function(_0x1ffcbe){var _0x61c5cb=_0x1ffcbe[_0x4c9b('0x88')](/<(.*?)>/);return _0x61c5cb?_0x61c5cb[0x1]:_0x1ffcbe;};