ad237101db8b93b48f99f8ba04bc2aced7425ab6
[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 _0xffb0=['xmd-contactid','xmd-callerid','xmd-agiafter','xmd-agi','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosloss','rtpaudioqosrttbridged','bridgepeer','bridgepvtcallid','getCallerIdRandom','\x5cw{0,','pow','replace','random','extractCalleridName','match','util','lodash','moment','../../../../config/logger','preview','env','XCALLY_IP_AGI','milliseconds','diff','seconds','loggerCatch','error','inspect','logger','info','logger2','message','getCallerId','isUndefined','string','isEmpty','format','\x22%s\x22\x20<%s>','isActive','isNil','addVariables','Queue','name','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','monitor_format','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','dialQueueProject2','originatecalleridname','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','Contact','tags','createdAt','updatedAt','%s%s','XMD-','toUpper','hasOwnProperty','toLower','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','YYYY-MM-DD\x20HH:mm:ss','state','statedesc','starttime','logAgent','responsetime','ringtime','logLookAgent','UserId','logCustomer','endtime','talktime','isFailure','Failure','variablesAction','RECALL','calleridname','BOOKED','uniqueid','originate','channelAgent','calleridnum','from-sip','timeout','totalGlobal','countbusyretry','countcongestionretry','countnoanswerretry','countagentrejectretry','countnosuchnumberretry','cloneAction','clone','Global','scheduledAt','scheduledat','add','minutes','ContactId','ListId','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','buildObj','queue','motionChannel','voice','mandatoryDisposition','buildAcw','interface','agentReadyId','not_inuse','status','reachable','createBody','type','dialAnswer','membername','active','callback','callbackuniqueid','callbackat','sipcallid','xmd-voicequeueid','xmd-queue','xmd-phone','xmd-listid','xmd-dialurl','xmd-dialtimeout','xmd-dialid','xmd-dialchannel'];(function(_0x25d4b1,_0x4e896d){var _0x2d51a5=function(_0x9c766){while(--_0x9c766){_0x25d4b1['push'](_0x25d4b1['shift']());}};_0x2d51a5(++_0x4e896d);}(_0xffb0,0xa7));var _0x0ffb=function(_0x18f9b2,_0x1c1db4){_0x18f9b2=_0x18f9b2-0x0;var _0x4996e4=_0xffb0[_0x18f9b2];return _0x4996e4;};'use strict';var util=require(_0x0ffb('0x0'));var _=require(_0x0ffb('0x1'));var moment=require(_0x0ffb('0x2'));var logger=require(_0x0ffb('0x3'))(_0x0ffb('0x4'));var ipAgi=process[_0x0ffb('0x5')][_0x0ffb('0x6')]||'127.0.0.1';function getSeconds(_0x1f3989,_0x22dcae){var _0x125fb0=moment(_0x1f3989)['milliseconds'](0x0);var _0x47c905=moment(_0x22dcae)[_0x0ffb('0x7')](0x0);return _0x125fb0[_0x0ffb('0x8')](_0x47c905,_0x0ffb('0x9'));}exports[_0x0ffb('0xa')]=function(_0x299c45){return function(_0x3928e0){logger[_0x0ffb('0xb')](_0x299c45,util[_0x0ffb('0xc')](_0x3928e0,{'showHidden':![],'depth':null}));};};exports[_0x0ffb('0xd')]=function(_0x4e4367,_0x527ce8){logger[_0x0ffb('0xe')](_0x4e4367,util[_0x0ffb('0xc')](_0x527ce8,{'showHidden':![],'depth':null}));};exports['loggerError']=function(_0x138f52,_0x4c1a6f){logger[_0x0ffb('0xb')](_0x138f52,util['inspect'](_0x4c1a6f,{'showHidden':![],'depth':null}));};exports[_0x0ffb('0xf')]=function(_0x564858){return function(_0x38c40a){logger[_0x0ffb('0xe')](_0x564858,util[_0x0ffb('0xc')](_0x38c40a,{'showHidden':![],'depth':null}));};};exports[_0x0ffb('0x10')]=function(_0x288e8e,_0x43e5d2,_0x591af1){return{'message':_0x288e8e,'unlock':_0x43e5d2,'active':_0x591af1};};exports[_0x0ffb('0x11')]=function(_0x471cd0,_0x5930b1,_0x2c62e7){if(!_[_0x0ffb('0x12')](_0x2c62e7)&&_0x0ffb('0x13')===typeof _0x2c62e7&&!_[_0x0ffb('0x14')](_0x2c62e7)){if(!_[_0x0ffb('0x12')](_0x5930b1)&&_0x0ffb('0x13')===typeof _0x5930b1&&!_['isEmpty'](_0x5930b1)){return util['format']('\x22%s\x22\x20<%s>',_0x5930b1,_0x2c62e7);}return util[_0x0ffb('0x15')](_0x0ffb('0x16'),_0x2c62e7,_0x2c62e7);}if(!_[_0x0ffb('0x12')](_0x471cd0)&&_0x0ffb('0x13')===typeof _0x471cd0&&!_[_0x0ffb('0x14')](_0x471cd0)){return _0x471cd0;}return'\x22\x22\x20<>';};exports[_0x0ffb('0x17')]=function(_0x586444){if(_[_0x0ffb('0x18')](_0x586444)){return![];}return _0x586444;};exports[_0x0ffb('0x19')]=function(_0x2efffa,_0x4bbaea,_0x4e6fb8,_0x128949,_0x44b51a,_0x157942){var _0x59a4e5={'XMD-QUEUE':_0x4bbaea[_0x0ffb('0x1a')]?_0x4bbaea[_0x0ffb('0x1a')][_0x0ffb('0x1b')]:'','XMD-CALLERID':_0x128949,'XMD-CALLERID-PREVIEW':_0x157942?util[_0x0ffb('0x15')]('\x22%s\x22\x20<%s>',_0x157942['calleridname'],_0x157942['calleridnum']):_0x128949,'XMD-DIALID':_0x44b51a,'XMD-CONTACTID':_0x4bbaea['ContactId'],'XMD-CDRTYPE':'dialer','CALLERID(all)':_0x128949,'XMD-VOICEQUEUEID':_0x4bbaea[_0x0ffb('0x1c')],'XMD-DIALCHANNEL':_0x4e6fb8,'XMD-DIALTIMEOUT':_0x2efffa[_0x0ffb('0x1d')]||0x1e,'XMD-DIALOPTIONS':util[_0x0ffb('0x15')](_0x0ffb('0x1e'),_0x2efffa['dialQueueProject2']?'g':'',_[_0x0ffb('0x14')](_0x2efffa[_0x0ffb('0x1f')])?'':_0x0ffb('0x20')),'XMD-DIALURL':_0x2efffa[_0x0ffb('0x21')]||'','XMD-AGI':_0x2efffa[_0x0ffb('0x22')]?util['format'](_0x0ffb('0x23'),ipAgi,_0x2efffa[_0x0ffb('0x22')]):_0x0ffb('0x24'),'XMD-AGIAFTER':_0x2efffa[_0x0ffb('0x25')]?util['format'](_0x0ffb('0x23'),ipAgi,_0x2efffa[_0x0ffb('0x25')]):_0x0ffb('0x24'),'XMD-ORIGINATECALLERIDNUM':_0x157942?_0x157942['originatecalleridnum']:'','XMD-ORIGINATECALLERIDNAME':_0x157942?_0x157942[_0x0ffb('0x26')]:'','XMD-DESTINATION':'xcally-motion-preview'};if(!_['isEmpty'](_0x2efffa[_0x0ffb('0x1f')])){_0x59a4e5[util[_0x0ffb('0x15')]('%s',_0x0ffb('0x27'))]=_0x2efffa[_0x0ffb('0x1f')];_0x59a4e5[util[_0x0ffb('0x15')]('%s',_0x0ffb('0x28'))]=_0x44b51a;}if(_0x4bbaea&&_0x4bbaea[_0x0ffb('0x29')]){for(var _0x13dff3 in _0x4bbaea[_0x0ffb('0x29')]){if(_0x4bbaea[_0x0ffb('0x29')]['hasOwnProperty'](_0x13dff3)){if(!_[_0x0ffb('0x18')](_0x4bbaea[_0x0ffb('0x29')][_0x13dff3])&&_0x13dff3!=='id'&&_0x13dff3!==_0x0ffb('0x2a')&&_0x13dff3!==_0x0ffb('0x2b')&&_0x13dff3!==_0x0ffb('0x2c')){_0x59a4e5[util[_0x0ffb('0x15')](_0x0ffb('0x2d'),_0x0ffb('0x2e'),_[_0x0ffb('0x2f')](_0x13dff3))]=_0x4bbaea[_0x0ffb('0x29')][_0x13dff3];}}}}return _0x59a4e5;};exports['toLowerVariables']=function(_0x13310a){var _0x1596ac={};for(var _0x5137a5 in _0x13310a){if(_0x13310a[_0x0ffb('0x30')](_0x5137a5)){_0x1596ac[util[_0x0ffb('0x15')]('%s',_[_0x0ffb('0x31')](_0x5137a5))]=_0x13310a[_0x5137a5];}}return{'variables':_0x1596ac};};exports['updateOriginated']=function(_0x418cc1,_0x257657){if(!_['isNil'](_0x418cc1)){if(_0x418cc1[_0x0ffb('0x30')]('originated')){if(_0x418cc1[_0x0ffb('0x32')]>0x0){_0x418cc1['originated']-=0x1;}else{logger['error'](_0x0ffb('0x33'),_0x257657);}}}else{logger[_0x0ffb('0xb')](_0x0ffb('0x34'),_0x257657);}};exports['logBlacklist']=function(_0x5d3d94){var _0x2ca8c2=moment()[_0x0ffb('0x15')](_0x0ffb('0x35'));_0x5d3d94[_0x0ffb('0x36')]=0xd;_0x5d3d94[_0x0ffb('0x37')]='Blacklist';_0x5d3d94[_0x0ffb('0x38')]=_0x2ca8c2;_0x5d3d94['responsetime']=_0x2ca8c2;_0x5d3d94['endtime']=_0x2ca8c2;};exports[_0x0ffb('0x39')]=function(_0x5cd707,_0x45d4ba,_0x55dd2a){var _0x2c98f5=moment()[_0x0ffb('0x15')](_0x0ffb('0x35'));_0x5cd707[_0x0ffb('0x36')]=_0x45d4ba;_0x5cd707[_0x0ffb('0x37')]=_0x55dd2a;_0x5cd707[_0x0ffb('0x3a')]=_0x2c98f5;_0x5cd707[_0x0ffb('0x3b')]=getSeconds(_0x5cd707[_0x0ffb('0x3a')],_0x5cd707[_0x0ffb('0x38')]);};exports[_0x0ffb('0x3c')]=function(_0x1e4a44,_0x3d5362,_0x458094){_0x1e4a44['membername']=_0x3d5362;_0x1e4a44[_0x0ffb('0x3d')]=_0x458094;};exports[_0x0ffb('0x3e')]=function(_0x12d3c9,_0x4540fd,_0x21a5e3){var _0x270eeb=moment()[_0x0ffb('0x15')](_0x0ffb('0x35'));_0x12d3c9[_0x0ffb('0x36')]=_0x4540fd;_0x12d3c9[_0x0ffb('0x37')]=_0x21a5e3;_0x12d3c9['responsetime']=_0x12d3c9[_0x0ffb('0x3a')]?_0x12d3c9['responsetime']:_0x270eeb;_0x12d3c9[_0x0ffb('0x3f')]=_0x12d3c9[_0x0ffb('0x3f')]?_0x12d3c9[_0x0ffb('0x3f')]:_0x270eeb;_0x12d3c9['ringtime']=getSeconds(_0x12d3c9[_0x0ffb('0x3a')]||0x0,_0x12d3c9[_0x0ffb('0x38')]||0x0);_0x12d3c9[_0x0ffb('0x40')]=_0x12d3c9['answertime']?getSeconds(_0x12d3c9[_0x0ffb('0x3f')],_0x12d3c9['answertime']):0x0;};exports[_0x0ffb('0x41')]=function(_0xe20d75){return _0xe20d75===_0x0ffb('0x42');};exports[_0x0ffb('0x43')]=function(_0x177b71,_0x1d232b,_0x4c5067,_0x7ba41d,_0x490b19){var _0x393b04=_0x7ba41d?_0x0ffb('0x44'):_0x177b71[_0x0ffb('0x45')];_0x393b04=_0x490b19?_0x0ffb('0x46'):_0x393b04;return{'actionid':_0x177b71[_0x0ffb('0x47')],'action':_0x0ffb('0x48'),'channel':_0x177b71[_0x0ffb('0x49')],'callerid':util[_0x0ffb('0x15')](_0x0ffb('0x16'),_0x393b04,_0x177b71[_0x0ffb('0x4a')]),'Exten':'xcally-motion-preview','Context':_0x0ffb('0x4b'),'Priority':'1','variable':_0x4c5067,'timeout':(_0x1d232b[_0x0ffb('0x4c')]||0x1e)*0x3e8,'async':!![],'channelid':_0x177b71[_0x0ffb('0x47')]};};exports[_0x0ffb('0x4d')]=function(_0xcfb136){return _0xcfb136[_0x0ffb('0x4e')]+_0xcfb136[_0x0ffb('0x4f')]+_0xcfb136[_0x0ffb('0x50')]+_0xcfb136[_0x0ffb('0x51')]+_0xcfb136[_0x0ffb('0x52')];};exports[_0x0ffb('0x53')]=function(_0x4d628f){var _0x123f4c=_[_0x0ffb('0x54')](_0x4d628f);_0x123f4c['state']=0xf;_0x123f4c['statedesc']=_0x0ffb('0x55');return _0x123f4c;};exports[_0x0ffb('0x56')]=function(_0x5c51f2,_0x1d3953,_0x5bac65){var _0x4c03f6={};_0x4c03f6[_0x1d3953]=_0x5c51f2[_0x1d3953];_0x4c03f6['active']=![];_0x4c03f6[_0x0ffb('0x57')]=moment()[_0x0ffb('0x58')](_0x5bac65,_0x0ffb('0x59'))[_0x0ffb('0x15')](_0x0ffb('0x35'));_0x4c03f6['ContactId']=_0x5c51f2[_0x0ffb('0x5a')];_0x4c03f6[_0x0ffb('0x5b')]=_0x5c51f2[_0x0ffb('0x5b')];_0x4c03f6[_0x0ffb('0x1c')]=_0x5c51f2[_0x0ffb('0x1c')]||undefined;return _0x4c03f6;};exports[_0x0ffb('0x5c')]=function(_0x419540,_0xc927d){if(!_[_0x0ffb('0x18')](_0x419540)){if(_0x419540['pTalking']>0x0){_0x419540[_0x0ffb('0x5d')]-=0x1;}else{logger['error'](_0xc927d,_0x0ffb('0x5e'));}}else{logger[_0x0ffb('0xb')](_0xc927d,_0x0ffb('0x5f'));}};exports[_0x0ffb('0x60')]=function(_0x211571){if(_0x211571<=0x0){return!![];}return![];};exports[_0x0ffb('0x61')]=function(_0x5ea7a3,_0x3625e7,_0x367c75){_0x5ea7a3['lastevent']=_0x3625e7;_0x5ea7a3[_0x0ffb('0x1b')]=_0x5ea7a3[_0x0ffb('0x62')];_0x5ea7a3['interface']=_0x5ea7a3['channelAgent'];_0x5ea7a3[_0x0ffb('0x63')]=_0x0ffb('0x64');if(_0x367c75){_0x5ea7a3[_0x0ffb('0x65')]=_0x367c75['mandatoryDisposition'];}return _0x5ea7a3;};exports[_0x0ffb('0x66')]=function(_0x4aa226){var _0xd54a6c={};_0xd54a6c[_0x0ffb('0x62')]=_0x4aa226[_0x0ffb('0x62')];_0xd54a6c[_0x0ffb('0x67')]=_0x4aa226[_0x0ffb('0x49')];_0xd54a6c[_0x0ffb('0x47')]=_0x4aa226[_0x0ffb('0x47')];return _0xd54a6c;};exports[_0x0ffb('0x68')]=function(_0x1221f9){var _0x5de0b1=[];for(var _0x9ff916 in _0x1221f9){if(_0x1221f9['hasOwnProperty'](_0x9ff916)){if(!_[_0x0ffb('0x18')](_0x1221f9[_0x9ff916])&&_0x1221f9[_0x9ff916][_0x0ffb('0x36')]===_0x0ffb('0x69')&&_0x1221f9[_0x9ff916][_0x0ffb('0x6a')]===_0x0ffb('0x6b')){_0x5de0b1['push'](_0x1221f9[_0x9ff916]['id']);}}}return _0x5de0b1;};exports['getDiff']=function(_0xa368a6){var _0x4b603b=moment()[_0x0ffb('0x7')](0x0);var _0x46c460=moment(_0xa368a6)[_0x0ffb('0x7')](0x0);return _0x4b603b[_0x0ffb('0x8')](_0x46c460,_0x0ffb('0x9'));};exports[_0x0ffb('0x6c')]=function(_0x475873){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x475873['ContactId'],'ListId':_0x475873[_0x0ffb('0x5b')],'VoiceQueueId':_0x475873['VoiceQueueId']||undefined,'CampaignId':_0x475873['CampaignId']||undefined};};exports['filterKey']=function(_0x21082b){if(_0x21082b===_0x0ffb('0x47')||_0x21082b==='idContact'||_0x21082b===_0x0ffb('0x62')||_0x21082b===_0x0ffb('0x6d')||_0x21082b==='campaigntype'||_0x21082b===_0x0ffb('0x6e')||_0x21082b===_0x0ffb('0x6f')||_0x21082b===_0x0ffb('0x49')||_0x21082b===_0x0ffb('0x45')||_0x21082b===_0x0ffb('0x70')||_0x21082b===_0x0ffb('0x4a')||_0x21082b===_0x0ffb('0x57')||_0x21082b===_0x0ffb('0x4e')||_0x21082b===_0x0ffb('0x4f')||_0x21082b===_0x0ffb('0x50')||_0x21082b==='countglobal'||_0x21082b===_0x0ffb('0x71')||_0x21082b===_0x0ffb('0x72')||_0x21082b===_0x0ffb('0x73')||_0x21082b==='recallme'||_0x21082b==='ContactId'||_0x21082b===_0x0ffb('0x5b')||_0x21082b===_0x0ffb('0x3d')||_0x21082b===_0x0ffb('0x1c')||_0x21082b===_0x0ffb('0x74')||_0x21082b===_0x0ffb('0x75')||_0x21082b===_0x0ffb('0x76')||_0x21082b===_0x0ffb('0x77')||_0x21082b===_0x0ffb('0x78')||_0x21082b===_0x0ffb('0x79')||_0x21082b===_0x0ffb('0x7a')||_0x21082b==='xmd-dialoptions'||_0x21082b===_0x0ffb('0x7b')||_0x21082b===_0x0ffb('0x7c')||_0x21082b===_0x0ffb('0x7d')||_0x21082b==='xmd-cdrtype'||_0x21082b===_0x0ffb('0x7e')||_0x21082b===_0x0ffb('0x7f')||_0x21082b===_0x0ffb('0x80')||_0x21082b===_0x0ffb('0x81')||_0x21082b===_0x0ffb('0x82')||_0x21082b===_0x0ffb('0x83')||_0x21082b===_0x0ffb('0x84')||_0x21082b==='rtpaudioqosloss'||_0x21082b===_0x0ffb('0x85')||_0x21082b===_0x0ffb('0x86')||_0x21082b==='rtpaudioqosrttbridged'||_0x21082b===_0x0ffb('0x81')||_0x21082b===_0x0ffb('0x82')||_0x21082b===_0x0ffb('0x83')||_0x21082b==='rtpaudioqosjitterbridged'||_0x21082b===_0x0ffb('0x87')||_0x21082b==='rtpaudioqoslossbridged'||_0x21082b===_0x0ffb('0x86')||_0x21082b===_0x0ffb('0x88')||_0x21082b===_0x0ffb('0x89')||_0x21082b===_0x0ffb('0x8a')||_0x21082b===_0x0ffb('0x36')||_0x21082b===_0x0ffb('0x37')){return![];}return!![];};exports[_0x0ffb('0x8b')]=function(_0x2723a2,_0x1c72ab){var _0x3dab78,_0x460b12,_0x188e39;if(_0x1c72ab<=0x0){_0x1c72ab=0x1;}_0x3dab78=new RegExp(_0x0ffb('0x8c')+_0x1c72ab+'}$');_0x460b12=Math[_0x0ffb('0x8d')](0xa,_0x1c72ab-0x1);_0x188e39=Math[_0x0ffb('0x8d')](0xa,_0x1c72ab)-0x1;return util['format']('%s',_[_0x0ffb('0x8e')](_0x2723a2,_0x3dab78,_[_0x0ffb('0x8f')](_0x460b12,_0x188e39)));};exports[_0x0ffb('0x90')]=function(_0x12ad00){var _0x1d5beb=_0x12ad00[_0x0ffb('0x91')](/"(.*?)"/);return _0x1d5beb?_0x1d5beb[0x1]:_0x12ad00;};exports['extractCalleridNumber']=function(_0x5e521a){var _0x1c1b8b=_0x5e521a[_0x0ffb('0x91')](/<(.*?)>/);return _0x1c1b8b?_0x1c1b8b[0x1]:_0x5e521a;};