84a4f5b1b9d7a3c398bd97a920ba13a51ebd8682
[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 _0x7870=['xmd-dialtimeout','xmd-dialoptions','xmd-dialid','xmd-dialchannel','xmd-contactid','xmd-cdrtype','xmd-callerid','xmd-agiafter','rtpaudioqos','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqosrtt','rtpaudioqosrttbridged','rtpaudioqosbridged','rtpaudioqoslossbridged','bridgepvtcallid','\x5cw{0,','pow','random','extractCalleridName','match','lodash','moment','../../../../config/logger','preview','milliseconds','diff','loggerCatch','inspect','logger','info','error','message','getCallerId','isUndefined','format','\x22%s\x22\x20<%s>','string','Queue','name','calleridname','ContactId','VoiceQueueId','isEmpty','monitor_format','dialPreviewUrl','\x22agi://%s/square,%s\x22','dialQueueProject','NONE','dialQueueProject2','originatecalleridnum','originatecalleridname','_XCALLY_MIXMONITOR_FORMAT','Contact','tags','createdAt','updatedAt','hasOwnProperty','toLower','updateOriginated','isNil','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','statedesc','Blacklist','starttime','responsetime','logLookAgent','membername','UserId','logCustomer','endtime','ringtime','talktime','answertime','isFailure','RECALL','BOOKED','uniqueid','originate','channelAgent','calleridnum','xcally-motion-preview','from-sip','timeout','totalGlobal','countcongestionretry','countnoanswerretry','countnosuchnumberretry','cloneAction','Global','scheduledAt','active','add','minutes','ListId','decrementTalkink','pTalking','[decrementTalkink]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','buildObj','mandatoryDisposition','queue','interface','agentReadyId','status','push','getDiff','seconds','createBody','CampaignId','filterKey','idContact','type','campaigntype','scheduledat','countbusyretry','callback','callbackuniqueid','callbackat','recallme','xmd-voicequeueid','xmd-queue','xmd-phone','xmd-listid','xmd-dialurl'];(function(_0x583c59,_0x4a396b){var _0x3d0b2e=function(_0x5a2b91){while(--_0x5a2b91){_0x583c59['push'](_0x583c59['shift']());}};_0x3d0b2e(++_0x4a396b);}(_0x7870,0x11c));var _0x0787=function(_0x3af700,_0x4b7bf1){_0x3af700=_0x3af700-0x0;var _0x2092f0=_0x7870[_0x3af700];return _0x2092f0;};'use strict';var util=require('util');var _=require(_0x0787('0x0'));var moment=require(_0x0787('0x1'));var logger=require(_0x0787('0x2'))(_0x0787('0x3'));var ipAgi=process['env']['XCALLY_IP_AGI']||'127.0.0.1';function getSeconds(_0x329b6d,_0x23cf45){var _0x201395=moment(_0x329b6d)[_0x0787('0x4')](0x0);var _0x424a3d=moment(_0x23cf45)[_0x0787('0x4')](0x0);return _0x201395[_0x0787('0x5')](_0x424a3d,'seconds');}exports[_0x0787('0x6')]=function(_0x239db4){return function(_0x298baf){logger['error'](_0x239db4,util[_0x0787('0x7')](_0x298baf,{'showHidden':![],'depth':null}));};};exports[_0x0787('0x8')]=function(_0x396b20,_0x37bde5){logger[_0x0787('0x9')](_0x396b20,util[_0x0787('0x7')](_0x37bde5,{'showHidden':![],'depth':null}));};exports['loggerError']=function(_0x28afec,_0x439969){logger[_0x0787('0xa')](_0x28afec,util[_0x0787('0x7')](_0x439969,{'showHidden':![],'depth':null}));};exports['logger2']=function(_0x685be3){return function(_0x1789d1){logger[_0x0787('0x9')](_0x685be3,util['inspect'](_0x1789d1,{'showHidden':![],'depth':null}));};};exports[_0x0787('0xb')]=function(_0x323576,_0x34c295,_0x5c53b2){return{'message':_0x323576,'unlock':_0x34c295,'active':_0x5c53b2};};exports[_0x0787('0xc')]=function(_0xf66fdb,_0x18bd57,_0x9554d3){if(!_[_0x0787('0xd')](_0x9554d3)&&'string'===typeof _0x9554d3&&!_['isEmpty'](_0x9554d3)){if(!_['isUndefined'](_0x18bd57)&&'string'===typeof _0x18bd57&&!_['isEmpty'](_0x18bd57)){return util[_0x0787('0xe')](_0x0787('0xf'),_0x18bd57,_0x9554d3);}return util[_0x0787('0xe')](_0x0787('0xf'),_0x9554d3,_0x9554d3);}if(!_[_0x0787('0xd')](_0xf66fdb)&&_0x0787('0x10')===typeof _0xf66fdb&&!_['isEmpty'](_0xf66fdb)){return _0xf66fdb;}return'\x22\x22\x20<>';};exports['isActive']=function(_0x2c5fd9){if(_['isNil'](_0x2c5fd9)){return![];}return _0x2c5fd9;};exports['addVariables']=function(_0x3f19ad,_0x4b963f,_0x2f8e48,_0x379ecd,_0x3c71cd,_0x25b210){var _0x388fe7={'XMD-QUEUE':_0x4b963f[_0x0787('0x11')]?_0x4b963f[_0x0787('0x11')][_0x0787('0x12')]:'','XMD-CALLERID':_0x379ecd,'XMD-CALLERID-PREVIEW':_0x25b210?util[_0x0787('0xe')](_0x0787('0xf'),_0x25b210[_0x0787('0x13')],_0x25b210['calleridnum']):_0x379ecd,'XMD-DIALID':_0x3c71cd,'XMD-CONTACTID':_0x4b963f[_0x0787('0x14')],'XMD-CDRTYPE':'dialer','CALLERID(all)':_0x379ecd,'XMD-VOICEQUEUEID':_0x4b963f[_0x0787('0x15')],'XMD-DIALCHANNEL':_0x2f8e48,'XMD-DIALTIMEOUT':_0x3f19ad['dialOriginateTimeout']||0x1e,'XMD-DIALOPTIONS':util[_0x0787('0xe')]('\x22rtTxX%s%s\x22',_0x3f19ad['dialQueueProject2']?'g':'',_[_0x0787('0x16')](_0x3f19ad[_0x0787('0x17')])?'':'U(xcally-mixmonitor-context)'),'XMD-DIALURL':_0x3f19ad[_0x0787('0x18')]||'','XMD-AGI':_0x3f19ad['dialQueueProject']?util[_0x0787('0xe')](_0x0787('0x19'),ipAgi,_0x3f19ad[_0x0787('0x1a')]):_0x0787('0x1b'),'XMD-AGIAFTER':_0x3f19ad['dialQueueProject2']?util[_0x0787('0xe')](_0x0787('0x19'),ipAgi,_0x3f19ad[_0x0787('0x1c')]):'NONE','XMD-ORIGINATECALLERIDNUM':_0x25b210?_0x25b210[_0x0787('0x1d')]:'','XMD-ORIGINATECALLERIDNAME':_0x25b210?_0x25b210[_0x0787('0x1e')]:'','XMD-DESTINATION':'xcally-motion-preview'};if(!_[_0x0787('0x16')](_0x3f19ad[_0x0787('0x17')])){_0x388fe7[util[_0x0787('0xe')]('%s',_0x0787('0x1f'))]=_0x3f19ad[_0x0787('0x17')];_0x388fe7[util['format']('%s','_XCALLY_MIXMONITOR_UNIQUEID')]=_0x3c71cd;}if(_0x4b963f&&_0x4b963f['Contact']){for(var _0x3b40f5 in _0x4b963f[_0x0787('0x20')]){if(_0x4b963f['Contact']['hasOwnProperty'](_0x3b40f5)){if(!_['isNil'](_0x4b963f[_0x0787('0x20')][_0x3b40f5])&&_0x3b40f5!=='id'&&_0x3b40f5!==_0x0787('0x21')&&_0x3b40f5!==_0x0787('0x22')&&_0x3b40f5!==_0x0787('0x23')){_0x388fe7[util[_0x0787('0xe')]('%s%s','XMD-',_['toUpper'](_0x3b40f5))]=_0x4b963f[_0x0787('0x20')][_0x3b40f5];}}}}return _0x388fe7;};exports['toLowerVariables']=function(_0x5d07e9){var _0x258eed={};for(var _0x3ebfe1 in _0x5d07e9){if(_0x5d07e9[_0x0787('0x24')](_0x3ebfe1)){_0x258eed[util[_0x0787('0xe')]('%s',_[_0x0787('0x25')](_0x3ebfe1))]=_0x5d07e9[_0x3ebfe1];}}return{'variables':_0x258eed};};exports[_0x0787('0x26')]=function(_0x340a0a,_0x962246){if(!_[_0x0787('0x27')](_0x340a0a)){if(_0x340a0a[_0x0787('0x24')](_0x0787('0x28'))){if(_0x340a0a['originated']>0x0){_0x340a0a[_0x0787('0x28')]-=0x1;}else{logger[_0x0787('0xa')](_0x0787('0x29'),_0x962246);}}}else{logger[_0x0787('0xa')](_0x0787('0x2a'),_0x962246);}};exports[_0x0787('0x2b')]=function(_0x1ba7dd){var _0x9c2727=moment()['format'](_0x0787('0x2c'));_0x1ba7dd[_0x0787('0x2d')]=0xd;_0x1ba7dd[_0x0787('0x2e')]=_0x0787('0x2f');_0x1ba7dd[_0x0787('0x30')]=_0x9c2727;_0x1ba7dd[_0x0787('0x31')]=_0x9c2727;_0x1ba7dd['endtime']=_0x9c2727;};exports['logAgent']=function(_0x2d5c6f,_0x32c98a,_0x51d11e){var _0x23cb2a=moment()['format'](_0x0787('0x2c'));_0x2d5c6f[_0x0787('0x2d')]=_0x32c98a;_0x2d5c6f[_0x0787('0x2e')]=_0x51d11e;_0x2d5c6f[_0x0787('0x31')]=_0x23cb2a;_0x2d5c6f['ringtime']=getSeconds(_0x2d5c6f[_0x0787('0x31')],_0x2d5c6f[_0x0787('0x30')]);};exports[_0x0787('0x32')]=function(_0xf07ea0,_0x2f92d4,_0x560982){_0xf07ea0[_0x0787('0x33')]=_0x2f92d4;_0xf07ea0[_0x0787('0x34')]=_0x560982;};exports[_0x0787('0x35')]=function(_0x483acd,_0x5945eb,_0x57b7e0){var _0x2840a1=moment()['format'](_0x0787('0x2c'));_0x483acd[_0x0787('0x2d')]=_0x5945eb;_0x483acd[_0x0787('0x2e')]=_0x57b7e0;_0x483acd[_0x0787('0x31')]=_0x483acd[_0x0787('0x31')]?_0x483acd[_0x0787('0x31')]:_0x2840a1;_0x483acd[_0x0787('0x36')]=_0x483acd[_0x0787('0x36')]?_0x483acd[_0x0787('0x36')]:_0x2840a1;_0x483acd[_0x0787('0x37')]=getSeconds(_0x483acd[_0x0787('0x31')]||0x0,_0x483acd['starttime']||0x0);_0x483acd[_0x0787('0x38')]=_0x483acd[_0x0787('0x39')]?getSeconds(_0x483acd[_0x0787('0x36')],_0x483acd[_0x0787('0x39')]):0x0;};exports[_0x0787('0x3a')]=function(_0x4ab398){return _0x4ab398==='Failure';};exports['variablesAction']=function(_0x182143,_0x41f13a,_0x16bda9,_0x557547,_0x1dc237){var _0x3becf0=_0x557547?_0x0787('0x3b'):_0x182143[_0x0787('0x13')];_0x3becf0=_0x1dc237?_0x0787('0x3c'):_0x3becf0;return{'actionid':_0x182143[_0x0787('0x3d')],'action':_0x0787('0x3e'),'channel':_0x182143[_0x0787('0x3f')],'callerid':util['format'](_0x0787('0xf'),_0x3becf0,_0x182143[_0x0787('0x40')]),'Exten':_0x0787('0x41'),'Context':_0x0787('0x42'),'Priority':'1','variable':_0x16bda9,'timeout':(_0x41f13a[_0x0787('0x43')]||0x1e)*0x3e8,'async':!![],'channelid':_0x182143[_0x0787('0x3d')]};};exports[_0x0787('0x44')]=function(_0x3f24e6){return _0x3f24e6['countbusyretry']+_0x3f24e6[_0x0787('0x45')]+_0x3f24e6[_0x0787('0x46')]+_0x3f24e6['countagentrejectretry']+_0x3f24e6[_0x0787('0x47')];};exports[_0x0787('0x48')]=function(_0x198cee){var _0x485c46=_['clone'](_0x198cee);_0x485c46['state']=0xf;_0x485c46[_0x0787('0x2e')]=_0x0787('0x49');return _0x485c46;};exports[_0x0787('0x4a')]=function(_0x1c81e7,_0x97d266,_0x46cad6){var _0x4ba219={};_0x4ba219[_0x97d266]=_0x1c81e7[_0x97d266];_0x4ba219[_0x0787('0x4b')]=![];_0x4ba219['scheduledat']=moment()[_0x0787('0x4c')](_0x46cad6,_0x0787('0x4d'))[_0x0787('0xe')](_0x0787('0x2c'));_0x4ba219[_0x0787('0x14')]=_0x1c81e7['ContactId'];_0x4ba219[_0x0787('0x4e')]=_0x1c81e7[_0x0787('0x4e')];_0x4ba219[_0x0787('0x15')]=_0x1c81e7[_0x0787('0x15')]||undefined;return _0x4ba219;};exports[_0x0787('0x4f')]=function(_0x4d4dea,_0x3d4c5e){if(!_[_0x0787('0x27')](_0x4d4dea)){if(_0x4d4dea[_0x0787('0x50')]>0x0){_0x4d4dea['pTalking']-=0x1;}else{logger['error'](_0x3d4c5e,'[decrementTalkink]\x20object\x20talking\x20is\x20negative');}}else{logger['error'](_0x3d4c5e,_0x0787('0x51'));}};exports[_0x0787('0x52')]=function(_0x5e5941){if(_0x5e5941<=0x0){return!![];}return![];};exports[_0x0787('0x53')]=function(_0x20ee3f,_0x24bde2,_0x4ffaa1){_0x20ee3f['lastevent']=_0x24bde2;_0x20ee3f[_0x0787('0x12')]=_0x20ee3f['queue'];_0x20ee3f['interface']=_0x20ee3f[_0x0787('0x3f')];if(_0x4ffaa1){_0x20ee3f['mandatoryDisposition']=_0x4ffaa1[_0x0787('0x54')];}return _0x20ee3f;};exports['buildAcw']=function(_0xf2e83b){var _0x171068={};_0x171068[_0x0787('0x55')]=_0xf2e83b['queue'];_0x171068[_0x0787('0x56')]=_0xf2e83b[_0x0787('0x3f')];_0x171068[_0x0787('0x3d')]=_0xf2e83b[_0x0787('0x3d')];return _0x171068;};exports[_0x0787('0x57')]=function(_0x37ef22){var _0x36abb0=[];for(var _0x5eb5cb in _0x37ef22){if(_0x37ef22[_0x0787('0x24')](_0x5eb5cb)){if(!_[_0x0787('0x27')](_0x37ef22[_0x5eb5cb])&&_0x37ef22[_0x5eb5cb]['state']==='not_inuse'&&_0x37ef22[_0x5eb5cb][_0x0787('0x58')]==='reachable'){_0x36abb0[_0x0787('0x59')](_0x37ef22[_0x5eb5cb]['id']);}}}return _0x36abb0;};exports[_0x0787('0x5a')]=function(_0x53fe8e){var _0x2636a4=moment()['milliseconds'](0x0);var _0x50681e=moment(_0x53fe8e)['milliseconds'](0x0);return _0x2636a4[_0x0787('0x5')](_0x50681e,_0x0787('0x5b'));};exports[_0x0787('0x5c')]=function(_0x528aad){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x528aad['ContactId'],'ListId':_0x528aad[_0x0787('0x4e')],'VoiceQueueId':_0x528aad['VoiceQueueId']||undefined,'CampaignId':_0x528aad[_0x0787('0x5d')]||undefined};};exports[_0x0787('0x5e')]=function(_0x430a3f){if(_0x430a3f===_0x0787('0x3d')||_0x430a3f===_0x0787('0x5f')||_0x430a3f===_0x0787('0x55')||_0x430a3f===_0x0787('0x60')||_0x430a3f===_0x0787('0x61')||_0x430a3f==='dialAnswer'||_0x430a3f===_0x0787('0x33')||_0x430a3f===_0x0787('0x3f')||_0x430a3f===_0x0787('0x13')||_0x430a3f===_0x0787('0x4b')||_0x430a3f===_0x0787('0x40')||_0x430a3f===_0x0787('0x62')||_0x430a3f===_0x0787('0x63')||_0x430a3f===_0x0787('0x45')||_0x430a3f==='countnoanswerretry'||_0x430a3f==='countglobal'||_0x430a3f===_0x0787('0x64')||_0x430a3f===_0x0787('0x65')||_0x430a3f===_0x0787('0x66')||_0x430a3f===_0x0787('0x67')||_0x430a3f===_0x0787('0x14')||_0x430a3f===_0x0787('0x4e')||_0x430a3f===_0x0787('0x34')||_0x430a3f===_0x0787('0x15')||_0x430a3f==='sipcallid'||_0x430a3f===_0x0787('0x68')||_0x430a3f===_0x0787('0x69')||_0x430a3f===_0x0787('0x6a')||_0x430a3f===_0x0787('0x6b')||_0x430a3f===_0x0787('0x6c')||_0x430a3f===_0x0787('0x6d')||_0x430a3f===_0x0787('0x6e')||_0x430a3f===_0x0787('0x6f')||_0x430a3f===_0x0787('0x70')||_0x430a3f===_0x0787('0x71')||_0x430a3f===_0x0787('0x72')||_0x430a3f===_0x0787('0x73')||_0x430a3f===_0x0787('0x74')||_0x430a3f==='xmd-agi'||_0x430a3f===_0x0787('0x75')||_0x430a3f==='rtpaudioqosbridged'||_0x430a3f===_0x0787('0x76')||_0x430a3f===_0x0787('0x77')||_0x430a3f===_0x0787('0x78')||_0x430a3f==='rtpaudioqoslossbridged'||_0x430a3f===_0x0787('0x79')||_0x430a3f===_0x0787('0x7a')||_0x430a3f===_0x0787('0x75')||_0x430a3f===_0x0787('0x7b')||_0x430a3f===_0x0787('0x76')||_0x430a3f===_0x0787('0x77')||_0x430a3f===_0x0787('0x78')||_0x430a3f===_0x0787('0x7c')||_0x430a3f===_0x0787('0x79')||_0x430a3f===_0x0787('0x7a')||_0x430a3f==='bridgepeer'||_0x430a3f===_0x0787('0x7d')||_0x430a3f==='state'||_0x430a3f===_0x0787('0x2e')){return![];}return!![];};exports['getCallerIdRandom']=function(_0x2623bb,_0x8ec6a3){var _0x3c8258,_0x57b7fc,_0x43ec1b;if(_0x8ec6a3<=0x0){_0x8ec6a3=0x1;}_0x3c8258=new RegExp(_0x0787('0x7e')+_0x8ec6a3+'}$');_0x57b7fc=Math[_0x0787('0x7f')](0xa,_0x8ec6a3-0x1);_0x43ec1b=Math[_0x0787('0x7f')](0xa,_0x8ec6a3)-0x1;return util[_0x0787('0xe')]('%s',_['replace'](_0x2623bb,_0x3c8258,_[_0x0787('0x80')](_0x57b7fc,_0x43ec1b)));};exports[_0x0787('0x81')]=function(_0x151ee8){var _0x521d61=_0x151ee8[_0x0787('0x82')](/"(.*?)"/);return _0x521d61?_0x521d61[0x1]:_0x151ee8;};exports['extractCalleridNumber']=function(_0x2b0fd8){var _0x34cc7c=_0x2b0fd8[_0x0787('0x82')](/<(.*?)>/);return _0x34cc7c?_0x34cc7c[0x1]:_0x2b0fd8;};