aa59940642abbde0a78e6e7169248f69091b54db
[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 _0x5e54=['Failure','RECALL','uniqueid','originate','calleridnum','timeout','totalGlobal','countbusyretry','countnoanswerretry','countnosuchnumberretry','cloneAction','clone','Global','scheduledAt','active','scheduledat','add','ListId','VoiceQueueId','pTalking','[decrementTalking]\x20object\x20talking\x20is\x20negative','lastevent','name','queue','interface','channelAgent','mandatoryDisposition','buildObj','agentReadyId','not_inuse','status','reachable','push','getDiff','milliseconds','diff','seconds','createBody','CampaignId','filterKey','campaigntype','dialAnswer','membername','countcongestionretry','countglobal','callbackuniqueid','callbackat','recallme','UserId','sipcallid','xmd-voicequeueid','xmd-queue','xmd-phone','xmd-listid','xmd-dialoptions','xmd-dialchannel','xmd-contactid','xmd-cdrtype','xmd-callerid','xmd-agi','rtpaudioqos','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','rtpaudioqosbridged','rtpaudioqosjitter','getCallerIdRandom','pow','replace','random','match','extractCalleridNumber','noanswer','forEach','toLowerCase','util','lodash','moment','../../../../config/logger','preview','env','XCALLY_IP_AGI','127.0.0.1','loggerCatch','error','inspect','logger','info','loggerError','logger2','message','getCallerId','isUndefined','string','isEmpty','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','isActive','isNil','Queue','calleridname','ContactId','dialOriginateTimeout','dialQueueProject2','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','originatecalleridnum','originatecalleridname','xcally-motion-preview','Call-Type:\x20PREVIEW','monitor_format','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','toLowerVariables','hasOwnProperty','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','starttime','responsetime','endtime','logAgent','statedesc','getSeconds','logLookAgent','logCustomer','ringtime','answertime'];(function(_0x35da42,_0x5c2610){var _0x370035=function(_0x546db5){while(--_0x546db5){_0x35da42['push'](_0x35da42['shift']());}};_0x370035(++_0x5c2610);}(_0x5e54,0xd3));var _0x45e5=function(_0x212cc9,_0x555b66){_0x212cc9=_0x212cc9-0x0;var _0x4267d7=_0x5e54[_0x212cc9];return _0x4267d7;};'use strict';var util=require(_0x45e5('0x0'));var _=require(_0x45e5('0x1'));var moment=require(_0x45e5('0x2'));var logger=require(_0x45e5('0x3'))(_0x45e5('0x4'));var ipAgi=process[_0x45e5('0x5')][_0x45e5('0x6')]||_0x45e5('0x7');var utils=require('../../dialer/utils');exports[_0x45e5('0x8')]=function(_0x1677c3){return function(_0x4b4e95){logger[_0x45e5('0x9')](_0x1677c3,util[_0x45e5('0xa')](_0x4b4e95,{'showHidden':![],'depth':null}));};};exports[_0x45e5('0xb')]=function(_0x46906a,_0xe87f64){logger[_0x45e5('0xc')](_0x46906a,util[_0x45e5('0xa')](_0xe87f64,{'showHidden':![],'depth':null}));};exports[_0x45e5('0xd')]=function(_0x168ee6,_0x1e4bf1){logger[_0x45e5('0x9')](_0x168ee6,util[_0x45e5('0xa')](_0x1e4bf1,{'showHidden':![],'depth':null}));};exports[_0x45e5('0xe')]=function(_0x2cc31c){return function(_0x43273a){logger[_0x45e5('0xc')](_0x2cc31c,util[_0x45e5('0xa')](_0x43273a,{'showHidden':![],'depth':null}));};};exports[_0x45e5('0xf')]=function(_0x43408f,_0x3b2e81,_0x2a08cf){return{'message':_0x43408f,'unlock':_0x3b2e81,'active':_0x2a08cf};};exports[_0x45e5('0x10')]=function(_0x2fad2b,_0x2839a6,_0x12c9f1){if(!_[_0x45e5('0x11')](_0x12c9f1)&&_0x45e5('0x12')===typeof _0x12c9f1&&!_[_0x45e5('0x13')](_0x12c9f1)){if(!_[_0x45e5('0x11')](_0x2839a6)&&_0x45e5('0x12')===typeof _0x2839a6&&!_[_0x45e5('0x13')](_0x2839a6)){return util[_0x45e5('0x14')](_0x45e5('0x15'),_0x2839a6,_0x12c9f1);}return util[_0x45e5('0x14')](_0x45e5('0x15'),_0x12c9f1,_0x12c9f1);}if(!_['isUndefined'](_0x2fad2b)&&_0x45e5('0x12')===typeof _0x2fad2b&&!_[_0x45e5('0x13')](_0x2fad2b)){return _0x2fad2b;}return _0x45e5('0x16');};exports[_0x45e5('0x17')]=function(_0xbc7178){if(_[_0x45e5('0x18')](_0xbc7178)){return![];}return _0xbc7178;};exports['addVariables']=function(_0xe79494,_0x5edd1d,_0x5f0f28,_0x3c24c7,_0x1c2f26,_0x32770a){var _0x50ba80={'XMD-QUEUE':_0x5edd1d[_0x45e5('0x19')]?_0x5edd1d[_0x45e5('0x19')]['name']:'','XMD-CALLERID':_0x3c24c7,'XMD-CALLERID-PREVIEW':_0x32770a?util[_0x45e5('0x14')]('\x22%s\x22\x20<%s>',_0x32770a[_0x45e5('0x1a')],_0x32770a['calleridnum']):_0x3c24c7,'XMD-DIALID':_0x1c2f26,'XMD-CONTACTID':_0x5edd1d[_0x45e5('0x1b')],'XMD-CDRTYPE':'dialer','CALLERID(all)':_0x3c24c7,'XMD-VOICEQUEUEID':_0x5edd1d['VoiceQueueId'],'XMD-DIALCHANNEL':_0x5f0f28,'XMD-DIALTIMEOUT':_0xe79494[_0x45e5('0x1c')]||0x1e,'XMD-DIALOPTIONS':util[_0x45e5('0x14')]('\x22rtTxX%s%s\x22',_0xe79494[_0x45e5('0x1d')]?'g':'',_['isEmpty'](_0xe79494['monitor_format'])?'':_0x45e5('0x1e')),'XMD-DIALURL':_0xe79494[_0x45e5('0x1f')]||'','XMD-AGI':_0xe79494[_0x45e5('0x20')]?util[_0x45e5('0x14')](_0x45e5('0x21'),ipAgi,_0xe79494[_0x45e5('0x20')]):_0x45e5('0x22'),'XMD-AGIAFTER':_0xe79494[_0x45e5('0x1d')]?util[_0x45e5('0x14')](_0x45e5('0x21'),ipAgi,_0xe79494[_0x45e5('0x1d')]):_0x45e5('0x22'),'XMD-ORIGINATECALLERIDNUM':_0x32770a?_0x32770a[_0x45e5('0x23')]:'','XMD-ORIGINATECALLERIDNAME':_0x32770a?_0x32770a[_0x45e5('0x24')]:'','XMD-DESTINATION':_0x45e5('0x25'),'SIPADDHEADER':_0x45e5('0x26')};if(!_[_0x45e5('0x13')](_0xe79494[_0x45e5('0x27')])){_0x50ba80[util['format']('%s',_0x45e5('0x28'))]=_0xe79494[_0x45e5('0x27')];_0x50ba80[util[_0x45e5('0x14')]('%s',_0x45e5('0x29'))]=_0x1c2f26;}return _0x50ba80;};exports[_0x45e5('0x2a')]=function(_0x50a3f5){var _0x2ee146={};for(var _0x54791f in _0x50a3f5){if(_0x50a3f5[_0x45e5('0x2b')](_0x54791f)){_0x2ee146[util[_0x45e5('0x14')]('%s',_['toLower'](_0x54791f))]=_0x50a3f5[_0x54791f];}}return{'variables':_0x2ee146};};exports[_0x45e5('0x2c')]=function(_0x5d884c){var _0x5a6d45=moment()[_0x45e5('0x14')](_0x45e5('0x2d'));_0x5d884c[_0x45e5('0x2e')]=0xd;_0x5d884c['statedesc']='Blacklist';_0x5d884c[_0x45e5('0x2f')]=_0x5a6d45;_0x5d884c[_0x45e5('0x30')]=_0x5a6d45;_0x5d884c[_0x45e5('0x31')]=_0x5a6d45;};exports[_0x45e5('0x32')]=function(_0x196aa2,_0x1dedd5,_0x12cf58){var _0x17c131=moment()[_0x45e5('0x14')](_0x45e5('0x2d'));_0x196aa2[_0x45e5('0x2e')]=_0x1dedd5;_0x196aa2[_0x45e5('0x33')]=_0x12cf58;_0x196aa2[_0x45e5('0x30')]=_0x17c131;_0x196aa2['ringtime']=utils[_0x45e5('0x34')](_0x196aa2[_0x45e5('0x30')],_0x196aa2[_0x45e5('0x2f')]);};exports[_0x45e5('0x35')]=function(_0x27b333,_0x36e011,_0x194ab5){_0x27b333['membername']=_0x36e011;_0x27b333['UserId']=_0x194ab5;};exports[_0x45e5('0x36')]=function(_0x49ffb2,_0x58dc94,_0x3cab9c){var _0xa3a182=moment()[_0x45e5('0x14')](_0x45e5('0x2d'));_0x49ffb2[_0x45e5('0x2e')]=_0x58dc94;_0x49ffb2[_0x45e5('0x33')]=_0x3cab9c;_0x49ffb2[_0x45e5('0x30')]=_0x49ffb2[_0x45e5('0x30')]?_0x49ffb2[_0x45e5('0x30')]:_0xa3a182;_0x49ffb2[_0x45e5('0x31')]=_0x49ffb2[_0x45e5('0x31')]?_0x49ffb2[_0x45e5('0x31')]:_0xa3a182;_0x49ffb2[_0x45e5('0x37')]=utils[_0x45e5('0x34')](_0x49ffb2[_0x45e5('0x30')]||0x0,_0x49ffb2[_0x45e5('0x2f')]||0x0);_0x49ffb2['talktime']=_0x49ffb2[_0x45e5('0x38')]?utils[_0x45e5('0x34')](_0x49ffb2[_0x45e5('0x31')],_0x49ffb2[_0x45e5('0x38')]):0x0;};exports['isFailure']=function(_0x50bb22){return _0x50bb22===_0x45e5('0x39');};exports['variablesAction']=function(_0x3f3ea1,_0xcc971b,_0x1f56d1,_0x354fda,_0x400db2){var _0x4b6a49=_0x354fda?_0x45e5('0x3a'):_0x3f3ea1[_0x45e5('0x1a')];_0x4b6a49=_0x400db2?'BOOKED':_0x4b6a49;return{'actionid':_0x3f3ea1[_0x45e5('0x3b')],'action':_0x45e5('0x3c'),'channel':_0x3f3ea1['channelAgent'],'callerid':util[_0x45e5('0x14')]('\x22%s\x22\x20<%s>',_0x4b6a49,_0x3f3ea1[_0x45e5('0x3d')]),'Exten':_0x45e5('0x25'),'Context':'from-sip','Priority':'1','variable':_0x1f56d1,'timeout':(_0xcc971b[_0x45e5('0x3e')]||0x1e)*0x3e8,'async':!![],'channelid':_0x3f3ea1[_0x45e5('0x3b')]};};exports[_0x45e5('0x3f')]=function(_0x5c2ad1){return _0x5c2ad1[_0x45e5('0x40')]+_0x5c2ad1['countcongestionretry']+_0x5c2ad1[_0x45e5('0x41')]+_0x5c2ad1['countagentrejectretry']+_0x5c2ad1[_0x45e5('0x42')];};exports[_0x45e5('0x43')]=function(_0x6ecd68){var _0x30759f=_[_0x45e5('0x44')](_0x6ecd68);_0x30759f[_0x45e5('0x2e')]=0xf;_0x30759f[_0x45e5('0x33')]=_0x45e5('0x45');return _0x30759f;};exports[_0x45e5('0x46')]=function(_0x4b82bd,_0x2bc15a,_0x7b85a9){var _0x5b752f={};_0x5b752f[_0x2bc15a]=_0x4b82bd[_0x2bc15a];_0x5b752f[_0x45e5('0x47')]=![];_0x5b752f[_0x45e5('0x48')]=moment()[_0x45e5('0x49')](_0x7b85a9,'minutes')[_0x45e5('0x14')](_0x45e5('0x2d'));_0x5b752f[_0x45e5('0x1b')]=_0x4b82bd[_0x45e5('0x1b')];_0x5b752f[_0x45e5('0x4a')]=_0x4b82bd[_0x45e5('0x4a')];_0x5b752f[_0x45e5('0x4b')]=_0x4b82bd[_0x45e5('0x4b')]||undefined;return _0x5b752f;};exports['decrementTalking']=function(_0x251197,_0x423936){if(!_[_0x45e5('0x18')](_0x251197)){if(_0x251197[_0x45e5('0x4c')]>0x0){_0x251197['pTalking']-=0x1;}else{logger['info'](_0x423936,_0x45e5('0x4d'));}}else{logger[_0x45e5('0x9')](_0x423936,'[decrementTalking]\x20is\x20null\x20or\x20undefined');}};exports['IsNotLoggedIn']=function(_0x14f033){if(_0x14f033<=0x0){return!![];}return![];};function buildObj(_0x4464bc,_0x4002d5,_0x3f8c95){_0x4464bc[_0x45e5('0x4e')]=_0x4002d5;_0x4464bc[_0x45e5('0x4f')]=_0x4464bc[_0x45e5('0x50')];_0x4464bc[_0x45e5('0x51')]=_0x4464bc[_0x45e5('0x52')];_0x4464bc['motionChannel']='voice';if(_0x3f8c95){_0x4464bc[_0x45e5('0x53')]=_0x3f8c95[_0x45e5('0x53')];}return _0x4464bc;}exports[_0x45e5('0x54')]=buildObj;exports[_0x45e5('0x55')]=function(_0xd0aa86){var _0x19d705=[];for(var _0x2ffabb in _0xd0aa86){if(_0xd0aa86['hasOwnProperty'](_0x2ffabb)){if(!_['isNil'](_0xd0aa86[_0x2ffabb])&&_0xd0aa86[_0x2ffabb][_0x45e5('0x2e')]===_0x45e5('0x56')&&_0xd0aa86[_0x2ffabb][_0x45e5('0x57')]===_0x45e5('0x58')){_0x19d705[_0x45e5('0x59')](_0xd0aa86[_0x2ffabb]['id']);}}}return _0x19d705;};exports[_0x45e5('0x5a')]=function(_0x43a7b6){var _0x52441b=moment()[_0x45e5('0x5b')](0x0);var _0x1f4811=moment(_0x43a7b6)['milliseconds'](0x0);return _0x52441b[_0x45e5('0x5c')](_0x1f4811,_0x45e5('0x5d'));};exports[_0x45e5('0x5e')]=function(_0x47a7cf){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x47a7cf[_0x45e5('0x1b')],'ListId':_0x47a7cf[_0x45e5('0x4a')],'VoiceQueueId':_0x47a7cf[_0x45e5('0x4b')]||undefined,'CampaignId':_0x47a7cf[_0x45e5('0x5f')]||undefined};};exports[_0x45e5('0x60')]=function(_0x572cd0){if(_0x572cd0===_0x45e5('0x3b')||_0x572cd0==='idContact'||_0x572cd0==='queue'||_0x572cd0==='type'||_0x572cd0===_0x45e5('0x61')||_0x572cd0===_0x45e5('0x62')||_0x572cd0===_0x45e5('0x63')||_0x572cd0==='channelAgent'||_0x572cd0===_0x45e5('0x1a')||_0x572cd0===_0x45e5('0x47')||_0x572cd0===_0x45e5('0x3d')||_0x572cd0==='scheduledat'||_0x572cd0===_0x45e5('0x40')||_0x572cd0===_0x45e5('0x64')||_0x572cd0==='countnoanswerretry'||_0x572cd0===_0x45e5('0x65')||_0x572cd0==='callback'||_0x572cd0===_0x45e5('0x66')||_0x572cd0===_0x45e5('0x67')||_0x572cd0===_0x45e5('0x68')||_0x572cd0===_0x45e5('0x1b')||_0x572cd0===_0x45e5('0x4a')||_0x572cd0===_0x45e5('0x69')||_0x572cd0===_0x45e5('0x4b')||_0x572cd0===_0x45e5('0x6a')||_0x572cd0===_0x45e5('0x6b')||_0x572cd0===_0x45e5('0x6c')||_0x572cd0===_0x45e5('0x6d')||_0x572cd0===_0x45e5('0x6e')||_0x572cd0==='xmd-dialurl'||_0x572cd0==='xmd-dialtimeout'||_0x572cd0===_0x45e5('0x6f')||_0x572cd0==='xmd-dialid'||_0x572cd0===_0x45e5('0x70')||_0x572cd0===_0x45e5('0x71')||_0x572cd0===_0x45e5('0x72')||_0x572cd0===_0x45e5('0x73')||_0x572cd0==='xmd-agiafter'||_0x572cd0===_0x45e5('0x74')||_0x572cd0===_0x45e5('0x75')||_0x572cd0==='rtpaudioqosbridged'||_0x572cd0==='rtpaudioqosjitter'||_0x572cd0===_0x45e5('0x76')||_0x572cd0===_0x45e5('0x77')||_0x572cd0===_0x45e5('0x78')||_0x572cd0===_0x45e5('0x79')||_0x572cd0===_0x45e5('0x7a')||_0x572cd0===_0x45e5('0x75')||_0x572cd0===_0x45e5('0x7b')||_0x572cd0===_0x45e5('0x7c')||_0x572cd0===_0x45e5('0x76')||_0x572cd0===_0x45e5('0x77')||_0x572cd0===_0x45e5('0x78')||_0x572cd0===_0x45e5('0x79')||_0x572cd0===_0x45e5('0x7a')||_0x572cd0==='bridgepeer'||_0x572cd0==='bridgepvtcallid'||_0x572cd0===_0x45e5('0x2e')||_0x572cd0===_0x45e5('0x33')){return![];}return!![];};exports[_0x45e5('0x7d')]=function(_0x2516fb,_0x2e5eb8){var _0x42544f,_0x39b6f7,_0x59537a;if(_0x2e5eb8<=0x0){_0x2e5eb8=0x1;}_0x42544f=new RegExp('\x5cw{0,'+_0x2e5eb8+'}$');_0x39b6f7=Math['pow'](0xa,_0x2e5eb8-0x1);_0x59537a=Math[_0x45e5('0x7e')](0xa,_0x2e5eb8)-0x1;return util[_0x45e5('0x14')]('%s',_[_0x45e5('0x7f')](_0x2516fb,_0x42544f,_[_0x45e5('0x80')](_0x39b6f7,_0x59537a)));};exports['extractCalleridName']=function(_0x3de26a){var _0x42ddd9=_0x3de26a[_0x45e5('0x81')](/"(.*?)"/);return _0x42ddd9?_0x42ddd9[0x1]:_0x3de26a;};exports[_0x45e5('0x82')]=function(_0x1bef7d){var _0x504307=_0x1bef7d['match'](/<(.*?)>/);return _0x504307?_0x504307[0x1]:_0x1bef7d;};function buildNoAnswerEventPayload(_0x44d6a3,_0x2526fd){var _0x1eb2cd=buildObj(_0x44d6a3,_0x45e5('0x83'));if(!_[_0x45e5('0x13')](_0x2526fd['variables'])){Object['keys'](_0x2526fd['variables'])[_0x45e5('0x84')](function(_0x50b63a){_0x1eb2cd[_0x50b63a[_0x45e5('0x85')]()]=_0x2526fd['variables'][_0x50b63a];});}return _0x1eb2cd;}exports['buildNoAnswerEventPayload']=buildNoAnswerEventPayload;