Built motion from commit 10af8726.|2.6.34
[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 _0x0736=['xmd-agiafter','xmd-agi','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','rtpaudioqos','bridgepeer','\x5cw{0,','pow','replace','match','extractCalleridNumber','noanswer','variables','keys','forEach','toLowerCase','util','moment','../../../../config/logger','preview','XCALLY_IP_AGI','127.0.0.1','../../dialer/utils','loggerCatch','error','inspect','logger','info','loggerError','logger2','message','getCallerId','isUndefined','string','isEmpty','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','isActive','isNil','addVariables','Queue','name','calleridname','calleridnum','dialer','VoiceQueueId','\x22rtTxX%s%s\x22','dialQueueProject2','monitor_format','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','originatecalleridname','Call-Type:\x20PREVIEW','_XCALLY_MIXMONITOR_FORMAT','toLowerVariables','toLower','logBlacklist','state','Blacklist','starttime','endtime','logAgent','YYYY-MM-DD\x20HH:mm:ss','statedesc','responsetime','ringtime','getSeconds','membername','UserId','logCustomer','talktime','answertime','isFailure','Failure','variablesAction','RECALL','originate','xcally-motion-preview','from-sip','timeout','uniqueid','totalGlobal','countnoanswerretry','countnosuchnumberretry','cloneAction','clone','Global','scheduledAt','active','scheduledat','add','ContactId','ListId','decrementTalking','[decrementTalking]\x20object\x20talking\x20is\x20negative','[decrementTalking]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','lastevent','queue','interface','channelAgent','motionChannel','voice','mandatoryDisposition','buildObj','agentReadyId','hasOwnProperty','not_inuse','status','reachable','push','getDiff','diff','createBody','filterKey','idContact','type','campaigntype','dialAnswer','countbusyretry','countcongestionretry','countglobal','callback','callbackuniqueid','callbackat','recallme','xmd-voicequeueid','xmd-queue','xmd-listid','xmd-dialurl','xmd-dialtimeout','xmd-dialoptions','xmd-dialchannel','xmd-contactid','xmd-cdrtype'];(function(_0x2d1eff,_0x1fd1d2){var _0x40435f=function(_0x423e62){while(--_0x423e62){_0x2d1eff['push'](_0x2d1eff['shift']());}};_0x40435f(++_0x1fd1d2);}(_0x0736,0xa5));var _0x6073=function(_0x2754c3,_0xc1da22){_0x2754c3=_0x2754c3-0x0;var _0x394a0c=_0x0736[_0x2754c3];return _0x394a0c;};'use strict';var util=require(_0x6073('0x0'));var _=require('lodash');var moment=require(_0x6073('0x1'));var logger=require(_0x6073('0x2'))(_0x6073('0x3'));var ipAgi=process['env'][_0x6073('0x4')]||_0x6073('0x5');var utils=require(_0x6073('0x6'));exports[_0x6073('0x7')]=function(_0x433067){return function(_0x1fb45b){logger[_0x6073('0x8')](_0x433067,util[_0x6073('0x9')](_0x1fb45b,{'showHidden':![],'depth':null}));};};exports[_0x6073('0xa')]=function(_0x2ec774,_0x231bab){logger[_0x6073('0xb')](_0x2ec774,util[_0x6073('0x9')](_0x231bab,{'showHidden':![],'depth':null}));};exports[_0x6073('0xc')]=function(_0x3d7e9d,_0x46e4a3){logger[_0x6073('0x8')](_0x3d7e9d,util[_0x6073('0x9')](_0x46e4a3,{'showHidden':![],'depth':null}));};exports[_0x6073('0xd')]=function(_0x597774){return function(_0x40930a){logger[_0x6073('0xb')](_0x597774,util[_0x6073('0x9')](_0x40930a,{'showHidden':![],'depth':null}));};};exports[_0x6073('0xe')]=function(_0x32f7da,_0x27b536,_0x5f419a){return{'message':_0x32f7da,'unlock':_0x27b536,'active':_0x5f419a};};exports[_0x6073('0xf')]=function(_0x18abc8,_0x4c8d10,_0x2df7c3){if(!_[_0x6073('0x10')](_0x2df7c3)&&_0x6073('0x11')===typeof _0x2df7c3&&!_[_0x6073('0x12')](_0x2df7c3)){if(!_[_0x6073('0x10')](_0x4c8d10)&&_0x6073('0x11')===typeof _0x4c8d10&&!_['isEmpty'](_0x4c8d10)){return util[_0x6073('0x13')](_0x6073('0x14'),_0x4c8d10,_0x2df7c3);}return util['format'](_0x6073('0x14'),_0x2df7c3,_0x2df7c3);}if(!_['isUndefined'](_0x18abc8)&&_0x6073('0x11')===typeof _0x18abc8&&!_[_0x6073('0x12')](_0x18abc8)){return _0x18abc8;}return _0x6073('0x15');};exports[_0x6073('0x16')]=function(_0x4f6f3e){if(_[_0x6073('0x17')](_0x4f6f3e)){return![];}return _0x4f6f3e;};exports[_0x6073('0x18')]=function(_0x2c5095,_0x11d1e2,_0x5b22d9,_0x3a850d,_0xed1eed,_0x326848){var _0x479268={'XMD-QUEUE':_0x11d1e2[_0x6073('0x19')]?_0x11d1e2[_0x6073('0x19')][_0x6073('0x1a')]:'','XMD-CALLERID':_0x3a850d,'XMD-CALLERID-PREVIEW':_0x326848?util[_0x6073('0x13')](_0x6073('0x14'),_0x326848[_0x6073('0x1b')],_0x326848[_0x6073('0x1c')]):_0x3a850d,'XMD-DIALID':_0xed1eed,'XMD-CONTACTID':_0x11d1e2['ContactId'],'XMD-CDRTYPE':_0x6073('0x1d'),'CALLERID(all)':_0x3a850d,'XMD-VOICEQUEUEID':_0x11d1e2[_0x6073('0x1e')],'XMD-DIALCHANNEL':_0x5b22d9,'XMD-DIALTIMEOUT':_0x2c5095['dialOriginateTimeout']||0x1e,'XMD-DIALOPTIONS':util['format'](_0x6073('0x1f'),_0x2c5095[_0x6073('0x20')]?'g':'',_[_0x6073('0x12')](_0x2c5095[_0x6073('0x21')])?'':_0x6073('0x22')),'XMD-DIALURL':_0x2c5095[_0x6073('0x23')]||'','XMD-AGI':_0x2c5095[_0x6073('0x24')]?util[_0x6073('0x13')](_0x6073('0x25'),ipAgi,_0x2c5095[_0x6073('0x24')]):_0x6073('0x26'),'XMD-AGIAFTER':_0x2c5095[_0x6073('0x20')]?util[_0x6073('0x13')](_0x6073('0x25'),ipAgi,_0x2c5095[_0x6073('0x20')]):_0x6073('0x26'),'XMD-ORIGINATECALLERIDNUM':_0x326848?_0x326848['originatecalleridnum']:'','XMD-ORIGINATECALLERIDNAME':_0x326848?_0x326848[_0x6073('0x27')]:'','XMD-DESTINATION':'xcally-motion-preview','SIPADDHEADER':_0x6073('0x28')};if(!_[_0x6073('0x12')](_0x2c5095[_0x6073('0x21')])){_0x479268[util['format']('%s',_0x6073('0x29'))]=_0x2c5095[_0x6073('0x21')];_0x479268[util[_0x6073('0x13')]('%s','_XCALLY_MIXMONITOR_UNIQUEID')]=_0xed1eed;}return _0x479268;};exports[_0x6073('0x2a')]=function(_0x4f0533){var _0x2db89c={};for(var _0x42452f in _0x4f0533){if(_0x4f0533['hasOwnProperty'](_0x42452f)){_0x2db89c[util[_0x6073('0x13')]('%s',_[_0x6073('0x2b')](_0x42452f))]=_0x4f0533[_0x42452f];}}return{'variables':_0x2db89c};};exports[_0x6073('0x2c')]=function(_0xf9e92e){var _0x4eb648=moment()[_0x6073('0x13')]('YYYY-MM-DD\x20HH:mm:ss');_0xf9e92e[_0x6073('0x2d')]=0xd;_0xf9e92e['statedesc']=_0x6073('0x2e');_0xf9e92e[_0x6073('0x2f')]=_0x4eb648;_0xf9e92e['responsetime']=_0x4eb648;_0xf9e92e[_0x6073('0x30')]=_0x4eb648;};exports[_0x6073('0x31')]=function(_0x73cd9a,_0x435ced,_0x55c589){var _0x4b8e3b=moment()[_0x6073('0x13')](_0x6073('0x32'));_0x73cd9a['state']=_0x435ced;_0x73cd9a[_0x6073('0x33')]=_0x55c589;_0x73cd9a[_0x6073('0x34')]=_0x4b8e3b;_0x73cd9a[_0x6073('0x35')]=utils[_0x6073('0x36')](_0x73cd9a[_0x6073('0x34')],_0x73cd9a[_0x6073('0x2f')]);};exports['logLookAgent']=function(_0x3f103a,_0x4bdecf,_0x27c8c7){_0x3f103a[_0x6073('0x37')]=_0x4bdecf;_0x3f103a[_0x6073('0x38')]=_0x27c8c7;};exports[_0x6073('0x39')]=function(_0x4ee300,_0x4af3b7,_0x3b0b96){var _0x1b1705=moment()[_0x6073('0x13')]('YYYY-MM-DD\x20HH:mm:ss');_0x4ee300[_0x6073('0x2d')]=_0x4af3b7;_0x4ee300['statedesc']=_0x3b0b96;_0x4ee300['responsetime']=_0x4ee300['responsetime']?_0x4ee300[_0x6073('0x34')]:_0x1b1705;_0x4ee300[_0x6073('0x30')]=_0x4ee300['endtime']?_0x4ee300[_0x6073('0x30')]:_0x1b1705;_0x4ee300[_0x6073('0x35')]=utils['getSeconds'](_0x4ee300['responsetime']||0x0,_0x4ee300[_0x6073('0x2f')]||0x0);_0x4ee300[_0x6073('0x3a')]=_0x4ee300[_0x6073('0x3b')]?utils[_0x6073('0x36')](_0x4ee300[_0x6073('0x30')],_0x4ee300[_0x6073('0x3b')]):0x0;};exports[_0x6073('0x3c')]=function(_0x4c7e26){return _0x4c7e26===_0x6073('0x3d');};exports[_0x6073('0x3e')]=function(_0x3483da,_0x46548c,_0x4861d8,_0x5ace96,_0x433af8){var _0xfd97de=_0x5ace96?_0x6073('0x3f'):_0x3483da[_0x6073('0x1b')];_0xfd97de=_0x433af8?'BOOKED':_0xfd97de;return{'actionid':_0x3483da['uniqueid'],'action':_0x6073('0x40'),'channel':_0x3483da['channelAgent'],'callerid':util[_0x6073('0x13')]('\x22%s\x22\x20<%s>',_0xfd97de,_0x3483da['calleridnum']),'Exten':_0x6073('0x41'),'Context':_0x6073('0x42'),'Priority':'1','variable':_0x4861d8,'timeout':(_0x46548c[_0x6073('0x43')]||0x1e)*0x3e8,'async':!![],'channelid':_0x3483da[_0x6073('0x44')]};};exports[_0x6073('0x45')]=function(_0x4cb1ad){return _0x4cb1ad['countbusyretry']+_0x4cb1ad['countcongestionretry']+_0x4cb1ad[_0x6073('0x46')]+_0x4cb1ad['countagentrejectretry']+_0x4cb1ad[_0x6073('0x47')];};exports[_0x6073('0x48')]=function(_0x3078fb){var _0x43630b=_[_0x6073('0x49')](_0x3078fb);_0x43630b['state']=0xf;_0x43630b[_0x6073('0x33')]=_0x6073('0x4a');return _0x43630b;};exports[_0x6073('0x4b')]=function(_0x422615,_0x28e1be,_0x3aaf9c){var _0x2df100={};_0x2df100[_0x28e1be]=_0x422615[_0x28e1be];_0x2df100[_0x6073('0x4c')]=![];_0x2df100[_0x6073('0x4d')]=moment()[_0x6073('0x4e')](_0x3aaf9c,'minutes')[_0x6073('0x13')]('YYYY-MM-DD\x20HH:mm:ss');_0x2df100[_0x6073('0x4f')]=_0x422615['ContactId'];_0x2df100[_0x6073('0x50')]=_0x422615['ListId'];_0x2df100[_0x6073('0x1e')]=_0x422615[_0x6073('0x1e')]||undefined;return _0x2df100;};exports[_0x6073('0x51')]=function(_0x4ac1ea,_0x1ddaff){if(!_[_0x6073('0x17')](_0x4ac1ea)){if(_0x4ac1ea['pTalking']>0x0){_0x4ac1ea['pTalking']-=0x1;}else{logger[_0x6073('0xb')](_0x1ddaff,_0x6073('0x52'));}}else{logger['error'](_0x1ddaff,_0x6073('0x53'));}};exports[_0x6073('0x54')]=function(_0x143aa5){if(_0x143aa5<=0x0){return!![];}return![];};function buildObj(_0x568cb3,_0x4e2431,_0x3233f5){_0x568cb3[_0x6073('0x55')]=_0x4e2431;_0x568cb3[_0x6073('0x1a')]=_0x568cb3[_0x6073('0x56')];_0x568cb3[_0x6073('0x57')]=_0x568cb3[_0x6073('0x58')];_0x568cb3[_0x6073('0x59')]=_0x6073('0x5a');if(_0x3233f5){_0x568cb3[_0x6073('0x5b')]=_0x3233f5[_0x6073('0x5b')];}return _0x568cb3;}exports[_0x6073('0x5c')]=buildObj;exports[_0x6073('0x5d')]=function(_0x22b642){var _0x29fb5c=[];for(var _0x4e6a1a in _0x22b642){if(_0x22b642[_0x6073('0x5e')](_0x4e6a1a)){if(!_[_0x6073('0x17')](_0x22b642[_0x4e6a1a])&&_0x22b642[_0x4e6a1a][_0x6073('0x2d')]===_0x6073('0x5f')&&_0x22b642[_0x4e6a1a][_0x6073('0x60')]===_0x6073('0x61')){_0x29fb5c[_0x6073('0x62')](_0x22b642[_0x4e6a1a]['id']);}}}return _0x29fb5c;};exports[_0x6073('0x63')]=function(_0x12afa5){var _0xac0ff6=moment()['milliseconds'](0x0);var _0x5ed84a=moment(_0x12afa5)['milliseconds'](0x0);return _0xac0ff6[_0x6073('0x64')](_0x5ed84a,'seconds');};exports[_0x6073('0x65')]=function(_0x5ab237){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x5ab237['ContactId'],'ListId':_0x5ab237[_0x6073('0x50')],'VoiceQueueId':_0x5ab237['VoiceQueueId']||undefined,'CampaignId':_0x5ab237['CampaignId']||undefined};};exports[_0x6073('0x66')]=function(_0x4e402f){if(_0x4e402f===_0x6073('0x44')||_0x4e402f===_0x6073('0x67')||_0x4e402f===_0x6073('0x56')||_0x4e402f===_0x6073('0x68')||_0x4e402f===_0x6073('0x69')||_0x4e402f===_0x6073('0x6a')||_0x4e402f===_0x6073('0x37')||_0x4e402f===_0x6073('0x58')||_0x4e402f===_0x6073('0x1b')||_0x4e402f===_0x6073('0x4c')||_0x4e402f===_0x6073('0x1c')||_0x4e402f===_0x6073('0x4d')||_0x4e402f===_0x6073('0x6b')||_0x4e402f===_0x6073('0x6c')||_0x4e402f===_0x6073('0x46')||_0x4e402f===_0x6073('0x6d')||_0x4e402f===_0x6073('0x6e')||_0x4e402f===_0x6073('0x6f')||_0x4e402f===_0x6073('0x70')||_0x4e402f===_0x6073('0x71')||_0x4e402f===_0x6073('0x4f')||_0x4e402f===_0x6073('0x50')||_0x4e402f===_0x6073('0x38')||_0x4e402f===_0x6073('0x1e')||_0x4e402f==='sipcallid'||_0x4e402f===_0x6073('0x72')||_0x4e402f===_0x6073('0x73')||_0x4e402f==='xmd-phone'||_0x4e402f===_0x6073('0x74')||_0x4e402f===_0x6073('0x75')||_0x4e402f===_0x6073('0x76')||_0x4e402f===_0x6073('0x77')||_0x4e402f==='xmd-dialid'||_0x4e402f===_0x6073('0x78')||_0x4e402f===_0x6073('0x79')||_0x4e402f===_0x6073('0x7a')||_0x4e402f==='xmd-callerid'||_0x4e402f===_0x6073('0x7b')||_0x4e402f===_0x6073('0x7c')||_0x4e402f==='rtpaudioqos'||_0x4e402f===_0x6073('0x7d')||_0x4e402f===_0x6073('0x7e')||_0x4e402f===_0x6073('0x7f')||_0x4e402f===_0x6073('0x80')||_0x4e402f===_0x6073('0x81')||_0x4e402f===_0x6073('0x82')||_0x4e402f===_0x6073('0x83')||_0x4e402f===_0x6073('0x84')||_0x4e402f===_0x6073('0x7d')||_0x4e402f===_0x6073('0x7e')||_0x4e402f==='rtpaudioqosjitterbridged'||_0x4e402f===_0x6073('0x80')||_0x4e402f==='rtpaudioqoslossbridged'||_0x4e402f==='rtpaudioqosrtt'||_0x4e402f===_0x6073('0x83')||_0x4e402f===_0x6073('0x85')||_0x4e402f==='bridgepvtcallid'||_0x4e402f==='state'||_0x4e402f==='statedesc'){return![];}return!![];};exports['getCallerIdRandom']=function(_0x55b504,_0x480082){var _0x25a0ac,_0x3cea7e,_0x395c73;if(_0x480082<=0x0){_0x480082=0x1;}_0x25a0ac=new RegExp(_0x6073('0x86')+_0x480082+'}$');_0x3cea7e=Math[_0x6073('0x87')](0xa,_0x480082-0x1);_0x395c73=Math['pow'](0xa,_0x480082)-0x1;return util[_0x6073('0x13')]('%s',_[_0x6073('0x88')](_0x55b504,_0x25a0ac,_['random'](_0x3cea7e,_0x395c73)));};exports['extractCalleridName']=function(_0x46da0d){var _0x3e633f=_0x46da0d[_0x6073('0x89')](/"(.*?)"/);return _0x3e633f?_0x3e633f[0x1]:_0x46da0d;};exports[_0x6073('0x8a')]=function(_0x3f9df7){var _0x3ccf5c=_0x3f9df7[_0x6073('0x89')](/<(.*?)>/);return _0x3ccf5c?_0x3ccf5c[0x1]:_0x3f9df7;};function buildNoAnswerEventPayload(_0x106fa3,_0x26f35d){var _0x1a971e=buildObj(_0x106fa3,_0x6073('0x8b'));if(!_[_0x6073('0x12')](_0x26f35d[_0x6073('0x8c')])){Object[_0x6073('0x8d')](_0x26f35d[_0x6073('0x8c')])[_0x6073('0x8e')](function(_0x53ba96){_0x1a971e[_0x53ba96[_0x6073('0x8f')]()]=_0x26f35d[_0x6073('0x8c')][_0x53ba96];});}return _0x1a971e;}exports['buildNoAnswerEventPayload']=buildNoAnswerEventPayload;