8ac34a8ad53a28589ebff57dbc893b615bf099e4
[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 _0x9bb5=['uniqueid','totalGlobal','countbusyretry','countcongestionretry','countnoanswerretry','countagentrejectretry','Global','scheduledAt','active','scheduledat','minutes','ContactId','ListId','decrementTalking','pTalking','[decrementTalking]\x20object\x20talking\x20is\x20negative','queue','motionChannel','mandatoryDisposition','buildObj','agentReadyId','hasOwnProperty','not_inuse','push','milliseconds','CampaignId','type','campaigntype','dialAnswer','countglobal','callback','callbackuniqueid','callbackat','recallme','sipcallid','xmd-voicequeueid','xmd-queue','xmd-phone','xmd-dialurl','xmd-contactid','xmd-cdrtype','xmd-agiafter','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','bridgepeer','getCallerIdRandom','pow','replace','random','extractCalleridName','match','extractCalleridNumber','noanswer','variables','keys','forEach','toLowerCase','buildNoAnswerEventPayload','util','lodash','moment','env','XCALLY_IP_AGI','../../dialer/utils','error','logger','info','loggerError','inspect','message','getCallerId','isUndefined','string','isEmpty','format','\x22%s\x22\x20<%s>','isNil','addVariables','Queue','name','calleridname','calleridnum','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','monitor_format','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','originatecalleridnum','originatecalleridname','Call-Type:\x20PREVIEW','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','toLowerVariables','toLower','YYYY-MM-DD\x20HH:mm:ss','state','statedesc','endtime','responsetime','getSeconds','starttime','logLookAgent','membername','UserId','talktime','answertime','Failure','variablesAction','RECALL','BOOKED','originate','channelAgent','xcally-motion-preview','from-sip','timeout'];(function(_0x29c86a,_0x52ee0e){var _0x6727e=function(_0x10110a){while(--_0x10110a){_0x29c86a['push'](_0x29c86a['shift']());}};_0x6727e(++_0x52ee0e);}(_0x9bb5,0x1ba));var _0x59bb=function(_0x4c14a7,_0x550e7d){_0x4c14a7=_0x4c14a7-0x0;var _0x563a39=_0x9bb5[_0x4c14a7];return _0x563a39;};'use strict';var util=require(_0x59bb('0x0'));var _=require(_0x59bb('0x1'));var moment=require(_0x59bb('0x2'));var logger=require('../../../../config/logger')('preview');var ipAgi=process[_0x59bb('0x3')][_0x59bb('0x4')]||'127.0.0.1';var utils=require(_0x59bb('0x5'));exports['loggerCatch']=function(_0x1ce7c0){return function(_0x26ffb5){logger[_0x59bb('0x6')](_0x1ce7c0,util['inspect'](_0x26ffb5,{'showHidden':![],'depth':null}));};};exports[_0x59bb('0x7')]=function(_0x3ff896,_0x4808f1){logger[_0x59bb('0x8')](_0x3ff896,util['inspect'](_0x4808f1,{'showHidden':![],'depth':null}));};exports[_0x59bb('0x9')]=function(_0x4e854f,_0x3d25a7){logger[_0x59bb('0x6')](_0x4e854f,util[_0x59bb('0xa')](_0x3d25a7,{'showHidden':![],'depth':null}));};exports['logger2']=function(_0x102ce7){return function(_0x3ed9ba){logger[_0x59bb('0x8')](_0x102ce7,util[_0x59bb('0xa')](_0x3ed9ba,{'showHidden':![],'depth':null}));};};exports[_0x59bb('0xb')]=function(_0x1fe341,_0x62eff6,_0x2b79ec){return{'message':_0x1fe341,'unlock':_0x62eff6,'active':_0x2b79ec};};exports[_0x59bb('0xc')]=function(_0x3e4535,_0x55806c,_0x11aa8b){if(!_[_0x59bb('0xd')](_0x11aa8b)&&_0x59bb('0xe')===typeof _0x11aa8b&&!_[_0x59bb('0xf')](_0x11aa8b)){if(!_['isUndefined'](_0x55806c)&&'string'===typeof _0x55806c&&!_[_0x59bb('0xf')](_0x55806c)){return util['format']('\x22%s\x22\x20<%s>',_0x55806c,_0x11aa8b);}return util[_0x59bb('0x10')](_0x59bb('0x11'),_0x11aa8b,_0x11aa8b);}if(!_[_0x59bb('0xd')](_0x3e4535)&&_0x59bb('0xe')===typeof _0x3e4535&&!_[_0x59bb('0xf')](_0x3e4535)){return _0x3e4535;}return'\x22\x22\x20<>';};exports['isActive']=function(_0x130e00){if(_[_0x59bb('0x12')](_0x130e00)){return![];}return _0x130e00;};exports[_0x59bb('0x13')]=function(_0x1054f8,_0x3f3c46,_0x55e769,_0xff489f,_0x5f0165,_0x2c7913){var _0x1cb16f={'XMD-QUEUE':_0x3f3c46['Queue']?_0x3f3c46[_0x59bb('0x14')][_0x59bb('0x15')]:'','XMD-CALLERID':_0xff489f,'XMD-CALLERID-PREVIEW':_0x2c7913?util[_0x59bb('0x10')]('\x22%s\x22\x20<%s>',_0x2c7913[_0x59bb('0x16')],_0x2c7913[_0x59bb('0x17')]):_0xff489f,'XMD-DIALID':_0x5f0165,'XMD-CONTACTID':_0x3f3c46['ContactId'],'XMD-CDRTYPE':'dialer','CALLERID(all)':_0xff489f,'XMD-VOICEQUEUEID':_0x3f3c46[_0x59bb('0x18')],'XMD-DIALCHANNEL':_0x55e769,'XMD-DIALTIMEOUT':_0x1054f8[_0x59bb('0x19')]||0x1e,'XMD-DIALOPTIONS':util['format'](_0x59bb('0x1a'),_0x1054f8[_0x59bb('0x1b')]?'g':'',_[_0x59bb('0xf')](_0x1054f8[_0x59bb('0x1c')])?'':_0x59bb('0x1d')),'XMD-DIALURL':_0x1054f8[_0x59bb('0x1e')]||'','XMD-AGI':_0x1054f8[_0x59bb('0x1f')]?util[_0x59bb('0x10')](_0x59bb('0x20'),ipAgi,_0x1054f8[_0x59bb('0x1f')]):_0x59bb('0x21'),'XMD-AGIAFTER':_0x1054f8[_0x59bb('0x1b')]?util[_0x59bb('0x10')](_0x59bb('0x20'),ipAgi,_0x1054f8[_0x59bb('0x1b')]):_0x59bb('0x21'),'XMD-ORIGINATECALLERIDNUM':_0x2c7913?_0x2c7913[_0x59bb('0x22')]:'','XMD-ORIGINATECALLERIDNAME':_0x2c7913?_0x2c7913[_0x59bb('0x23')]:'','XMD-DESTINATION':'xcally-motion-preview','SIPADDHEADER':_0x59bb('0x24')};if(!_['isEmpty'](_0x1054f8['monitor_format'])){_0x1cb16f[util[_0x59bb('0x10')]('%s',_0x59bb('0x25'))]=_0x1054f8['monitor_format'];_0x1cb16f[util[_0x59bb('0x10')]('%s',_0x59bb('0x26'))]=_0x5f0165;}return _0x1cb16f;};exports[_0x59bb('0x27')]=function(_0x574b68){var _0x301fce={};for(var _0x12edb5 in _0x574b68){if(_0x574b68['hasOwnProperty'](_0x12edb5)){_0x301fce[util[_0x59bb('0x10')]('%s',_[_0x59bb('0x28')](_0x12edb5))]=_0x574b68[_0x12edb5];}}return{'variables':_0x301fce};};exports['logBlacklist']=function(_0x44dc82){var _0x34d5ec=moment()['format'](_0x59bb('0x29'));_0x44dc82[_0x59bb('0x2a')]=0xd;_0x44dc82[_0x59bb('0x2b')]='Blacklist';_0x44dc82['starttime']=_0x34d5ec;_0x44dc82['responsetime']=_0x34d5ec;_0x44dc82[_0x59bb('0x2c')]=_0x34d5ec;};exports['logAgent']=function(_0x376de1,_0x40bb9d,_0x2e64d4){var _0x5c9a0b=moment()[_0x59bb('0x10')](_0x59bb('0x29'));_0x376de1['state']=_0x40bb9d;_0x376de1[_0x59bb('0x2b')]=_0x2e64d4;_0x376de1[_0x59bb('0x2d')]=_0x5c9a0b;_0x376de1['ringtime']=utils[_0x59bb('0x2e')](_0x376de1[_0x59bb('0x2d')],_0x376de1[_0x59bb('0x2f')]);};exports[_0x59bb('0x30')]=function(_0x2e6c07,_0x6ccb45,_0x284c13){_0x2e6c07[_0x59bb('0x31')]=_0x6ccb45;_0x2e6c07[_0x59bb('0x32')]=_0x284c13;};exports['logCustomer']=function(_0x103764,_0x4c26a2,_0x41187e){var _0x265c0b=moment()[_0x59bb('0x10')](_0x59bb('0x29'));_0x103764['state']=_0x4c26a2;_0x103764[_0x59bb('0x2b')]=_0x41187e;_0x103764[_0x59bb('0x2d')]=_0x103764[_0x59bb('0x2d')]?_0x103764['responsetime']:_0x265c0b;_0x103764[_0x59bb('0x2c')]=_0x103764[_0x59bb('0x2c')]?_0x103764[_0x59bb('0x2c')]:_0x265c0b;_0x103764['ringtime']=utils[_0x59bb('0x2e')](_0x103764['responsetime']||0x0,_0x103764['starttime']||0x0);_0x103764[_0x59bb('0x33')]=_0x103764[_0x59bb('0x34')]?utils[_0x59bb('0x2e')](_0x103764['endtime'],_0x103764[_0x59bb('0x34')]):0x0;};exports['isFailure']=function(_0x1dbff0){return _0x1dbff0===_0x59bb('0x35');};exports[_0x59bb('0x36')]=function(_0x50bddc,_0x40564e,_0xb79827,_0x3ae977,_0x266821){var _0x3bf272=_0x3ae977?_0x59bb('0x37'):_0x50bddc['calleridname'];_0x3bf272=_0x266821?_0x59bb('0x38'):_0x3bf272;return{'actionid':_0x50bddc['uniqueid'],'action':_0x59bb('0x39'),'channel':_0x50bddc[_0x59bb('0x3a')],'callerid':util[_0x59bb('0x10')](_0x59bb('0x11'),_0x3bf272,_0x50bddc[_0x59bb('0x17')]),'Exten':_0x59bb('0x3b'),'Context':_0x59bb('0x3c'),'Priority':'1','variable':_0xb79827,'timeout':(_0x40564e[_0x59bb('0x3d')]||0x1e)*0x3e8,'async':!![],'channelid':_0x50bddc[_0x59bb('0x3e')]};};exports[_0x59bb('0x3f')]=function(_0x6ba3c2){return _0x6ba3c2[_0x59bb('0x40')]+_0x6ba3c2[_0x59bb('0x41')]+_0x6ba3c2[_0x59bb('0x42')]+_0x6ba3c2[_0x59bb('0x43')]+_0x6ba3c2['countnosuchnumberretry'];};exports['cloneAction']=function(_0x254a85){var _0x1d20db=_['clone'](_0x254a85);_0x1d20db[_0x59bb('0x2a')]=0xf;_0x1d20db['statedesc']=_0x59bb('0x44');return _0x1d20db;};exports[_0x59bb('0x45')]=function(_0x50a2cd,_0x325d97,_0x574bf1){var _0x1bfd21={};_0x1bfd21[_0x325d97]=_0x50a2cd[_0x325d97];_0x1bfd21[_0x59bb('0x46')]=![];_0x1bfd21[_0x59bb('0x47')]=moment()['add'](_0x574bf1,_0x59bb('0x48'))[_0x59bb('0x10')](_0x59bb('0x29'));_0x1bfd21[_0x59bb('0x49')]=_0x50a2cd[_0x59bb('0x49')];_0x1bfd21[_0x59bb('0x4a')]=_0x50a2cd[_0x59bb('0x4a')];_0x1bfd21[_0x59bb('0x18')]=_0x50a2cd[_0x59bb('0x18')]||undefined;return _0x1bfd21;};exports[_0x59bb('0x4b')]=function(_0xd9f579,_0xd7fc61){if(!_['isNil'](_0xd9f579)){if(_0xd9f579[_0x59bb('0x4c')]>0x0){_0xd9f579[_0x59bb('0x4c')]-=0x1;}else{logger[_0x59bb('0x8')](_0xd7fc61,_0x59bb('0x4d'));}}else{logger[_0x59bb('0x6')](_0xd7fc61,'[decrementTalking]\x20is\x20null\x20or\x20undefined');}};exports['IsNotLoggedIn']=function(_0x5348c6){if(_0x5348c6<=0x0){return!![];}return![];};function buildObj(_0x35e904,_0x104123,_0x2c6efd){_0x35e904['lastevent']=_0x104123;_0x35e904['name']=_0x35e904[_0x59bb('0x4e')];_0x35e904['interface']=_0x35e904[_0x59bb('0x3a')];_0x35e904[_0x59bb('0x4f')]='voice';if(_0x2c6efd){_0x35e904[_0x59bb('0x50')]=_0x2c6efd['mandatoryDisposition'];}return _0x35e904;}exports[_0x59bb('0x51')]=buildObj;exports[_0x59bb('0x52')]=function(_0x23c46d){var _0x5c6797=[];for(var _0x5b1886 in _0x23c46d){if(_0x23c46d[_0x59bb('0x53')](_0x5b1886)){if(!_[_0x59bb('0x12')](_0x23c46d[_0x5b1886])&&_0x23c46d[_0x5b1886]['state']===_0x59bb('0x54')&&_0x23c46d[_0x5b1886]['status']==='reachable'){_0x5c6797[_0x59bb('0x55')](_0x23c46d[_0x5b1886]['id']);}}}return _0x5c6797;};exports['getDiff']=function(_0x4850a4){var _0x495ac7=moment()[_0x59bb('0x56')](0x0);var _0x35c7d6=moment(_0x4850a4)[_0x59bb('0x56')](0x0);return _0x495ac7['diff'](_0x35c7d6,'seconds');};exports['createBody']=function(_0x446259){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x446259[_0x59bb('0x49')],'ListId':_0x446259[_0x59bb('0x4a')],'VoiceQueueId':_0x446259['VoiceQueueId']||undefined,'CampaignId':_0x446259[_0x59bb('0x57')]||undefined};};exports['filterKey']=function(_0x4bcf54){if(_0x4bcf54===_0x59bb('0x3e')||_0x4bcf54==='idContact'||_0x4bcf54===_0x59bb('0x4e')||_0x4bcf54===_0x59bb('0x58')||_0x4bcf54===_0x59bb('0x59')||_0x4bcf54===_0x59bb('0x5a')||_0x4bcf54===_0x59bb('0x31')||_0x4bcf54===_0x59bb('0x3a')||_0x4bcf54==='calleridname'||_0x4bcf54===_0x59bb('0x46')||_0x4bcf54==='calleridnum'||_0x4bcf54===_0x59bb('0x47')||_0x4bcf54===_0x59bb('0x40')||_0x4bcf54===_0x59bb('0x41')||_0x4bcf54===_0x59bb('0x42')||_0x4bcf54===_0x59bb('0x5b')||_0x4bcf54===_0x59bb('0x5c')||_0x4bcf54===_0x59bb('0x5d')||_0x4bcf54===_0x59bb('0x5e')||_0x4bcf54===_0x59bb('0x5f')||_0x4bcf54===_0x59bb('0x49')||_0x4bcf54===_0x59bb('0x4a')||_0x4bcf54===_0x59bb('0x32')||_0x4bcf54===_0x59bb('0x18')||_0x4bcf54===_0x59bb('0x60')||_0x4bcf54===_0x59bb('0x61')||_0x4bcf54===_0x59bb('0x62')||_0x4bcf54===_0x59bb('0x63')||_0x4bcf54==='xmd-listid'||_0x4bcf54===_0x59bb('0x64')||_0x4bcf54==='xmd-dialtimeout'||_0x4bcf54==='xmd-dialoptions'||_0x4bcf54==='xmd-dialid'||_0x4bcf54==='xmd-dialchannel'||_0x4bcf54===_0x59bb('0x65')||_0x4bcf54===_0x59bb('0x66')||_0x4bcf54==='xmd-callerid'||_0x4bcf54===_0x59bb('0x67')||_0x4bcf54==='xmd-agi'||_0x4bcf54===_0x59bb('0x68')||_0x4bcf54===_0x59bb('0x69')||_0x4bcf54===_0x59bb('0x6a')||_0x4bcf54===_0x59bb('0x6b')||_0x4bcf54===_0x59bb('0x6c')||_0x4bcf54===_0x59bb('0x6d')||_0x4bcf54===_0x59bb('0x6e')||_0x4bcf54===_0x59bb('0x6f')||_0x4bcf54===_0x59bb('0x68')||_0x4bcf54==='rtpaudioqosbridged'||_0x4bcf54===_0x59bb('0x6a')||_0x4bcf54===_0x59bb('0x6b')||_0x4bcf54==='rtpaudioqosloss'||_0x4bcf54===_0x59bb('0x6d')||_0x4bcf54===_0x59bb('0x6e')||_0x4bcf54===_0x59bb('0x6f')||_0x4bcf54===_0x59bb('0x70')||_0x4bcf54==='bridgepvtcallid'||_0x4bcf54===_0x59bb('0x2a')||_0x4bcf54==='statedesc'){return![];}return!![];};exports[_0x59bb('0x71')]=function(_0x483d34,_0x1a0268){var _0x4a4b3a,_0x4bb05c,_0x1b9214;if(_0x1a0268<=0x0){_0x1a0268=0x1;}_0x4a4b3a=new RegExp('\x5cw{0,'+_0x1a0268+'}$');_0x4bb05c=Math[_0x59bb('0x72')](0xa,_0x1a0268-0x1);_0x1b9214=Math[_0x59bb('0x72')](0xa,_0x1a0268)-0x1;return util[_0x59bb('0x10')]('%s',_[_0x59bb('0x73')](_0x483d34,_0x4a4b3a,_[_0x59bb('0x74')](_0x4bb05c,_0x1b9214)));};exports[_0x59bb('0x75')]=function(_0x37443f){var _0x4d1487=_0x37443f[_0x59bb('0x76')](/"(.*?)"/);return _0x4d1487?_0x4d1487[0x1]:_0x37443f;};exports[_0x59bb('0x77')]=function(_0x561c53){var _0x15d740=_0x561c53[_0x59bb('0x76')](/<(.*?)>/);return _0x15d740?_0x15d740[0x1]:_0x561c53;};function buildNoAnswerEventPayload(_0x2de748,_0x448b4a){var _0x385f1a=buildObj(_0x2de748,_0x59bb('0x78'));if(!_['isEmpty'](_0x448b4a[_0x59bb('0x79')])){Object[_0x59bb('0x7a')](_0x448b4a[_0x59bb('0x79')])[_0x59bb('0x7b')](function(_0x300854){_0x385f1a[_0x300854[_0x59bb('0x7c')]()]=_0x448b4a[_0x59bb('0x79')][_0x300854];});}return _0x385f1a;}exports[_0x59bb('0x7d')]=buildNoAnswerEventPayload;