Built motion from commit 42801a18.|2.6.28
[motion2.git] / server / services / ami / trigger / integration / zoho.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 _0xa3d4=['/crm/EntityInfo.do?module=Calls&id=','unmanaged','calleridnum','toUpperCase','request-promise','md5','util','moment','ioredis','bluebird','../../../../config/environment','../../../../config/logger','zoho','redis','defaults','localhost','socket.io-emitter','emit','debug','stringify','length','includes','idField','toString','type','variable','variableName','Variable','name','toLowerCase','indexOf','split','isNil','isBefore','expires_in','access_token','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.eu','POST','refreshToken','clientId','clientSecret','refresh_token','add','catch','error','Failing\x20creating\x20the\x20access_token','stack','info','Search\x20user','GET','format','https://www.zohoapis.%s/crm/v2/users','ActiveUsers','then','isArrayLikeObject','users','email','Agent\x20found!','Administrator','user','Using\x20the\x20admin\x20account!','The\x20failing\x20result\x20is','enduserType','https://www.zohoapis.','/crm/v2/','startCase','first_name','last_name','Zoho-oauthtoken\x20','data','code','SUCCESS','details','moduleCreate','Error:\x20','log','CREATE\x20ERROR','contact_lead','uri','/crm/v2/Contacts/search?criteria=((Phone:equals:','Contacts','/crm/v2/Leads/search?criteria=((Phone:equals:','Leads','nothing','contact','lead','role','profile','administrator','Subject','getString','Subjects','Who_Id','Full_Name','First_Name','Last_Name','What_Id','talktime','Call_Duration','utc','endtime','diff','starttime','YYYY-MM-DDTHH:mm:ss','mm:ss','lastevent','called','Call_Result','Called','Answered','rejected','abandoned','Abandoned','timeout','Timeout','agentcalledAt','Inbound','Fields','/crm/v2/Calls','Call\x20created!','err','host','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','recordingURL','uniqueid','/downloads?type=uniqueid&token=','zoho.eu','com','The\x20User\x20ID\x20is:','calleridname','The\x20Call\x20ID\x20is:','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','outbound','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','/api/voice/recordings/','destcalleridname','destcalleridnum','Outbound','user:%s'];(function(_0x144b16,_0x528837){var _0x50369d=function(_0x589ed9){while(--_0x589ed9){_0x144b16['push'](_0x144b16['shift']());}};_0x50369d(++_0x528837);}(_0xa3d4,0x12e));var _0x4a3d=function(_0x1d9aa0,_0x272488){_0x1d9aa0=_0x1d9aa0-0x0;var _0x226868=_0xa3d4[_0x1d9aa0];return _0x226868;};'use strict';var _=require('lodash');var rp=require(_0x4a3d('0x0'));var md5=require(_0x4a3d('0x1'));var util=require(_0x4a3d('0x2'));var intUtil=require('./util');var moment=require(_0x4a3d('0x3'));var Redis=require(_0x4a3d('0x4'));var BPromise=require(_0x4a3d('0x5'));var config=require(_0x4a3d('0x6'));var logger=require(_0x4a3d('0x7'))(_0x4a3d('0x8'));config[_0x4a3d('0x9')]=_[_0x4a3d('0xa')](config['redis'],{'host':_0x4a3d('0xb'),'port':0x18eb});var io=require(_0x4a3d('0xc'))(new Redis(config[_0x4a3d('0x9')]));function emit(_0x3634aa,_0xc981a0,_0x1ebea8){io['to'](_0x3634aa)[_0x4a3d('0xd')](_0xc981a0,_0x1ebea8);}function request(_0x1b6925){logger[_0x4a3d('0xe')]('[HTTP]',JSON[_0x4a3d('0xf')](_0x1b6925));return rp(_0x1b6925);}function getCustomFields(_0x239154,_0xf1b847){var _0x1a6532={};if(_0x239154[_0x4a3d('0x10')]>0x0){_['forEach'](_0x239154,function(_0x19f683){if(_[_0x4a3d('0x11')](['string','picklist'],_0x19f683['type'])&&_0x19f683['idField']){_0x1a6532[_0x19f683[_0x4a3d('0x12')]]=_0x19f683['content'][_0x4a3d('0x13')]();}else if(_0x19f683[_0x4a3d('0x14')]===_0x4a3d('0x15')&&_0x19f683[_0x4a3d('0x16')]&&_0x19f683[_0x4a3d('0x12')]&&_0xf1b847[_0x19f683[_0x4a3d('0x16')]]){_0x1a6532[_0x19f683[_0x4a3d('0x12')]]=_0xf1b847[_0x19f683['variableName']][_0x4a3d('0x13')]();}else if(_0x19f683[_0x4a3d('0x14')]==='customVariable'&&_0x19f683[_0x4a3d('0x17')]&&_0x19f683[_0x4a3d('0x17')][_0x4a3d('0x18')]&&_0x19f683[_0x4a3d('0x12')]&&_0xf1b847[_0x19f683[_0x4a3d('0x17')][_0x4a3d('0x18')]['toLowerCase']()]){_0x1a6532[_0x19f683[_0x4a3d('0x12')]]=_0xf1b847[_0x19f683['Variable'][_0x4a3d('0x18')][_0x4a3d('0x19')]()][_0x4a3d('0x13')]();}});}return _0x1a6532;}function getName(_0x285f7f){if(_0x285f7f[_0x4a3d('0x1a')]('\x20')>0x0){var _0x396560=_0x285f7f[_0x4a3d('0x1b')](/ (.+)/);if(_0x396560[0x1]){return _0x396560;}}return[_0x285f7f,_0x285f7f];}var accountsTokens={};function getAccessToken(_0x581859){return new Promise(function(_0xe8a64a,_0xaff300){if(!_[_0x4a3d('0x1c')](accountsTokens[_0x581859['id']])&&!_[_0x4a3d('0x1c')](accountsTokens[_0x581859['id']]['access_token'])){if(moment()[_0x4a3d('0x1d')](accountsTokens[_0x581859['id']][_0x4a3d('0x1e')])){_0xe8a64a(accountsTokens[_0x581859['id']][_0x4a3d('0x1f')]);}}var _0x285331;switch(_0x581859[_0x4a3d('0x20')]){case'US':_0x285331=_0x4a3d('0x21');break;case'AU':_0x285331=_0x4a3d('0x22');break;case'EU':_0x285331='https://accounts.zoho.eu';break;case'IN':_0x285331='https://accounts.zoho.in';break;case'CN':_0x285331='https://accounts.zoho.com.cn';break;default:_0x285331=_0x4a3d('0x23');break;}var _0x18eebd={'method':_0x4a3d('0x24'),'uri':_0x285331+'/oauth/v2/token','qs':{'refresh_token':_0x581859[_0x4a3d('0x25')],'client_id':_0x581859[_0x4a3d('0x26')],'client_secret':_0x581859[_0x4a3d('0x27')],'grant_type':_0x4a3d('0x28')},'json':!![]};return rp(_0x18eebd)['then'](function(_0x7be114){accountsTokens[_0x581859['id']]={'access_token':_0x7be114[_0x4a3d('0x1f')],'expires_in':moment()[_0x4a3d('0x29')](_0x7be114[_0x4a3d('0x1e')],'seconds')};_0xe8a64a(_0x7be114['access_token']);})[_0x4a3d('0x2a')](function(_0x43977f){logger[_0x4a3d('0x2b')](_0x4a3d('0x2c'),_0x43977f[_0x4a3d('0x2d')]);_0xaff300(_0x43977f);});});}function getUser(_0x41b804,_0x3b9b40,_0x24b821,_0x185ef3){logger[_0x4a3d('0x2e')](_0x4a3d('0x2f'));return request({'method':_0x4a3d('0x30'),'uri':util[_0x4a3d('0x31')](_0x4a3d('0x32'),_0x3b9b40),'qs':{'type':_0x4a3d('0x33')},'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x41b804},'json':!![]})[_0x4a3d('0x34')](function(_0x33ff19){if(_0x33ff19['users']){var _0x38a521=-0x1;if(_[_0x4a3d('0x35')](_0x33ff19[_0x4a3d('0x36')])){if(!_[_0x4a3d('0x1c')](_0x185ef3)){_0x38a521=_['findIndex'](_0x33ff19[_0x4a3d('0x36')],function(_0x445aea){return _0x445aea[_0x4a3d('0x37')]===_0x185ef3;});}if(_0x38a521>=0x0){logger['info'](_0x4a3d('0x38'));}else{logger[_0x4a3d('0x2e')]('Using\x20the\x20admin\x20account!');_0x38a521=_['findIndex'](_0x33ff19['users'],function(_0x33f768){return _0x33f768['profile'][_0x4a3d('0x18')]===_0x4a3d('0x39');});}return _0x33ff19[_0x4a3d('0x36')][_0x38a521];}else{if(_0x33ff19[_0x4a3d('0x3a')]['profile']['name']===_0x4a3d('0x39')){logger[_0x4a3d('0x2e')](_0x4a3d('0x3b'));user=_0x33ff19[_0x4a3d('0x3a')];return user;}else{logger[_0x4a3d('0x2b')](_0x4a3d('0x3c'),JSON['stringify'](_0x33ff19));throw new Error('Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20'+JSON[_0x4a3d('0xf')](_0x33ff19));}}}else{logger[_0x4a3d('0x2b')]('The\x20failing\x20result\x20is',JSON[_0x4a3d('0xf')](_0x33ff19));throw new Error('Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20'+JSON['stringify'](_0x33ff19));}})[_0x4a3d('0x2a')](function(_0x38923e){console['error'](_0x38923e);});}function getZohoUser(_0x238d4d,_0x3b12aa){return new BPromise(function(_0x1c2767,_0x4298be){request(_0x238d4d)[_0x4a3d('0x34')](function(_0x226be2){var _0x4dd86e=null;if(_0x226be2){_0x4dd86e=_0x226be2['data'][0x0];_0x4dd86e[_0x4a3d('0x3d')]=_0x3b12aa;}_0x1c2767(_0x4dd86e);})[_0x4a3d('0x2a')](function(_0x40b453){_0x4298be(_0x40b453);});});}function createEndUser(_0x8d538d,_0x355f08,_0x1711e7,_0x1055f1,_0x16bbf6,_0x169308){var _0x1711e7=getName(_0x1711e7);return request({'method':_0x4a3d('0x24'),'uri':_0x4a3d('0x3e')+_0x355f08+_0x4a3d('0x3f')+_[_0x4a3d('0x40')](_0x169308['moduleCreate'])+'s','body':{'data':[{'Last_Name':_0x1711e7[0x1],'First_Name':_0x1711e7[0x0],'Phone':_0x1055f1,'Owner':{'name':!_[_0x4a3d('0x1c')](_0x16bbf6['role'][_0x4a3d('0x18')])?_0x16bbf6['role'][_0x4a3d('0x18')]:!_[_0x4a3d('0x1c')](_0x16bbf6[_0x4a3d('0x41')])?_0x16bbf6['first_name']+'\x20'+_0x16bbf6[_0x4a3d('0x42')]:_0x16bbf6[_0x4a3d('0x42')],'id':_0x16bbf6['id']}}]},'headers':{'Authorization':_0x4a3d('0x43')+_0x8d538d},'json':!![]})['then'](function(_0x6e90a6){if(_0x6e90a6&&_0x6e90a6[_0x4a3d('0x44')][0x0][_0x4a3d('0x45')]===_0x4a3d('0x46')){var _0x74249=_0x6e90a6[_0x4a3d('0x44')][0x0][_0x4a3d('0x47')];_0x74249['enduserType']=_[_0x4a3d('0x40')](_0x169308[_0x4a3d('0x48')])+'s';return _0x74249;}logger[_0x4a3d('0x2b')]('The\x20failing\x20result\x20is',JSON[_0x4a3d('0xf')](data));throw new Error(_0x4a3d('0x49')+JSON['stringify'](data));})['catch'](function(_0x468141){console[_0x4a3d('0x4a')](_0x4a3d('0x4b'),_0x468141);});}function getEndUser(_0xac45df,_0x871d71,_0x509da1,_0x3027f6,_0x2a4bd3,_0x4e8fec,_0x138f46){var _0x359666={'method':_0x4a3d('0x30'),'uri':'','headers':{'Authorization':_0x4a3d('0x43')+_0xac45df},'json':!![]};switch(_0x138f46['moduleSearch']){case _0x4a3d('0x4c'):_0x359666[_0x4a3d('0x4d')]='https://www.zohoapis.'+_0x871d71+_0x4a3d('0x4e')+_0x2a4bd3+'))';return getZohoUser(_0x359666,_0x4a3d('0x4f'))['then'](function(_0x2592ed){if(_0x2592ed)return _0x2592ed;_0x359666[_0x4a3d('0x4d')]=_0x4a3d('0x3e')+_0x871d71+_0x4a3d('0x50')+_0x2a4bd3+'))';return getZohoUser(_0x359666,_0x4a3d('0x51'))[_0x4a3d('0x34')](function(_0x40c156){if(_0x40c156)return _0x40c156;if(_0x138f46['moduleCreate']!=_0x4a3d('0x52')){return createEndUser(_0xac45df,_0x871d71,_0x3027f6,_0x2a4bd3,_0x4e8fec,_0x138f46);}else{return{};}});});break;case _0x4a3d('0x53'):_0x359666[_0x4a3d('0x4d')]='https://www.zohoapis.'+_0x871d71+_0x4a3d('0x4e')+_0x2a4bd3+'))';return getZohoUser(_0x359666,'Contacts')['then'](function(_0x4b244d){if(_0x4b244d)return _0x4b244d;if(_0x138f46[_0x4a3d('0x48')]!=_0x4a3d('0x52')){return createEndUser(_0xac45df,_0x871d71,_0x3027f6,_0x2a4bd3,_0x4e8fec,_0x138f46);}else{return{};}});break;case _0x4a3d('0x54'):_0x359666['uri']=_0x4a3d('0x3e')+_0x871d71+_0x4a3d('0x50')+_0x2a4bd3+'))';return getZohoUser(_0x359666,'Leads')[_0x4a3d('0x34')](function(_0x4e213a){if(_0x4e213a)return _0x4e213a;if(_0x138f46[_0x4a3d('0x48')]!=_0x4a3d('0x52')){return createEndUser(_0xac45df,_0x871d71,_0x3027f6,_0x2a4bd3,_0x4e8fec,_0x138f46);}else{return{};}});break;}}function getCall(_0xd2062a,_0x16ca5b,_0x8ad5c3,_0x2952a3,_0x7c0eae,_0xa87154,_0x4b0d32,_0x18b1bb){logger[_0x4a3d('0x2e')]('Creating\x20new\x20call...');var _0x5f2ebf={};_0x5f2ebf['Owner']={'name':!_[_0x4a3d('0x1c')](_0x2952a3[_0x4a3d('0x55')][_0x4a3d('0x18')])&&!_[_0x4a3d('0x1c')](_0x2952a3['profile'][_0x4a3d('0x18')])&&_0x2952a3[_0x4a3d('0x56')][_0x4a3d('0x18')]===_0x4a3d('0x57')?_0x2952a3[_0x4a3d('0x55')][_0x4a3d('0x18')]:!_[_0x4a3d('0x1c')](_0x2952a3[_0x4a3d('0x41')])?_0x2952a3[_0x4a3d('0x41')]+'\x20'+_0x2952a3[_0x4a3d('0x42')]:_0x2952a3['last_name'],'id':_0x2952a3['id']};_0x5f2ebf[_0x4a3d('0x58')]=intUtil[_0x4a3d('0x59')](_0xa87154[_0x4a3d('0x5a')],_0x4b0d32,'\x20');_0x5f2ebf['Description']=intUtil[_0x4a3d('0x59')](_0xa87154['Descriptions'],_0x4b0d32,'\x0a');if(_0x7c0eae['enduserType']===_0x4a3d('0x4f')){_0x5f2ebf[_0x4a3d('0x5b')]={'name':!_['isNil'](_0x7c0eae[_0x4a3d('0x5c')])?_0x7c0eae[_0x4a3d('0x5c')]:!_[_0x4a3d('0x1c')](_0x7c0eae[_0x4a3d('0x5d')])?_0x7c0eae[_0x4a3d('0x5d')]+'\x20'+_0x7c0eae[_0x4a3d('0x5e')]:_0x7c0eae[_0x4a3d('0x5e')],'id':_0x7c0eae['id']};}if(_0x7c0eae['enduserType']==='Leads'){_0x5f2ebf[_0x4a3d('0x5f')]={'name':!_[_0x4a3d('0x1c')](_0x7c0eae[_0x4a3d('0x5c')])?_0x7c0eae[_0x4a3d('0x5c')]:!_[_0x4a3d('0x1c')](_0x7c0eae[_0x4a3d('0x5d')])?_0x7c0eae['First_Name']+'\x20'+_0x7c0eae[_0x4a3d('0x5e')]:_0x7c0eae['Last_Name'],'id':_0x7c0eae['id']};_0x5f2ebf['$se_module']=_[_0x4a3d('0x40')](_0x7c0eae[_0x4a3d('0x3d')]);}if(_0x4b0d32[_0x4a3d('0x60')]){_0x5f2ebf[_0x4a3d('0x61')]=moment[_0x4a3d('0x62')](parseInt(_0x4b0d32[_0x4a3d('0x60')])*0x3e8)[_0x4a3d('0x31')]('mm:ss');}else if(_0x4b0d32['answertime']&&_0x4b0d32[_0x4a3d('0x63')]){_0x5f2ebf['Call_Duration']=moment['utc'](moment(_0x4b0d32['endtime'],'YYYY-MM-DDTHH:mm:ss')[_0x4a3d('0x64')](moment(_0x4b0d32[_0x4a3d('0x65')],_0x4a3d('0x66'))))[_0x4a3d('0x31')](_0x4a3d('0x67'));}switch(_0x4b0d32[_0x4a3d('0x68')]){case _0x4a3d('0x69'):_0x5f2ebf[_0x4a3d('0x6a')]=_0x4a3d('0x6b');break;case'complete':case'connect':_0x5f2ebf[_0x4a3d('0x6a')]=_0x4a3d('0x6c');break;case _0x4a3d('0x6d'):_0x5f2ebf[_0x4a3d('0x6a')]='Rejected';break;case _0x4a3d('0x6e'):_0x5f2ebf['Call_Result']=_0x4a3d('0x6f');break;case _0x4a3d('0x70'):_0x5f2ebf[_0x4a3d('0x6a')]=_0x4a3d('0x71');default:}_0x5f2ebf['Call_Start_Time']=(_0x18b1bb==='outbound'?moment(_0x4b0d32['starttime'])[_0x4a3d('0x31')](_0x4a3d('0x66')):moment(_0x4b0d32[_0x4a3d('0x72')])['format'](_0x4a3d('0x66')))||moment()[_0x4a3d('0x31')](_0x4a3d('0x66'));_0x5f2ebf['Call_Type']=_0x18b1bb||_0x4a3d('0x73');_0x5f2ebf=_['merge'](_0x5f2ebf,getCustomFields(_0xa87154[_0x4a3d('0x74')],_0x4b0d32));return request({'method':'POST','uri':_0x4a3d('0x3e')+_0x16ca5b+_0x4a3d('0x75'),'headers':{'Authorization':_0x4a3d('0x43')+_0xd2062a},'body':{'data':[_0x5f2ebf]},'json':!![]})[_0x4a3d('0x34')](function(_0xc628e2){if(_0xc628e2&&_0xc628e2[_0x4a3d('0x44')][0x0][_0x4a3d('0x45')]==='SUCCESS'){logger[_0x4a3d('0x2e')](_0x4a3d('0x76'));return{'id':_0xc628e2['data'][0x0][_0x4a3d('0x47')]['id']};}})[_0x4a3d('0x2a')](function(_0xf08f14){logger[_0x4a3d('0x2e')](_0x4a3d('0x77'),_0xf08f14[_0x4a3d('0x2d')]);console[_0x4a3d('0x4a')]('err',_0xf08f14);});}exports['queue']=function(_0x1acf2c,_0xf2612e,_0xcc87df,_0x3b9f96,_0x3e8476,_0x5490e9){var _0x5b0f4d,_0x384459,_0x41c13c;_0x5490e9[_0x4a3d('0x78')]=intUtil[_0x4a3d('0x79')](_0x5490e9[_0x4a3d('0x78')]);_0x5490e9[_0x4a3d('0x7a')]=intUtil[_0x4a3d('0x79')](_0x5490e9[_0x4a3d('0x7a')]);if(_0x3e8476&&_0x3e8476[_0x4a3d('0x7b')]){logger[_0x4a3d('0x2e')](_0x4a3d('0x7c'),'Recording\x20is\x20enabled!');_0xf2612e[_0x4a3d('0x7d')]=_0x5490e9[_0x4a3d('0x7a')]+'/api/voice/recordings/'+_0xf2612e[_0x4a3d('0x7e')]+_0x4a3d('0x7f')+md5(_0xf2612e[_0x4a3d('0x7e')]);}else{_0xf2612e[_0x4a3d('0x7d')]='';}var _0x330149=_0x5490e9[_0x4a3d('0x78')]===_0x4a3d('0x80')?'eu':_0x4a3d('0x81');return getAccessToken(_0x5490e9)[_0x4a3d('0x34')](function(_0x190a32){_0x41c13c=_0x190a32;return getUser(_0x41c13c,_0x330149,_0x5490e9,_0x3b9f96['email']);})[_0x4a3d('0x34')](function(_0x2f5676){_0x5b0f4d=_0x2f5676;logger[_0x4a3d('0x2e')](_0x4a3d('0x82'),_0x5b0f4d['id']);return getEndUser(_0x41c13c,_0x330149,_0x5490e9,_0xf2612e[_0x4a3d('0x83')],_0xf2612e['calleridnum'],_0x5b0f4d,_0xcc87df);})['then'](function(_0x58321a){_0x384459=_0x58321a;return getCall(_0x41c13c,_0x330149,_0x5490e9,_0x5b0f4d,_0x384459,_0xcc87df,_0xf2612e,'Inbound');})[_0x4a3d('0x34')](function(_0x1c75a9){if(_0x1c75a9){logger[_0x4a3d('0x2e')](_0x4a3d('0x84'),_0x1c75a9['id']);logger[_0x4a3d('0x2e')]('[QUEUE]',_0x4a3d('0x85'));emit(util[_0x4a3d('0x31')]('user:%s',_0x3b9f96[_0x4a3d('0x18')]),_0x4a3d('0x86'),{'uri':'https://crm.'+_0x5490e9[_0x4a3d('0x78')]+'/crm/EntityInfo.do?module=Calls&id='+_0x1c75a9['id']});}})[_0x4a3d('0x2a')](function(_0x531b67){logger[_0x4a3d('0x2b')]('[QUEUE]',JSON[_0x4a3d('0xf')](_0x531b67));});};exports[_0x4a3d('0x87')]=function(_0x449984,_0x5d7f4b,_0x91624c,_0x3a9ee0,_0x396682,_0x3e3e73,_0x2df248){var _0x25cb69,_0xd8facb,_0x26bf1f;_0x3e3e73[_0x4a3d('0x78')]=intUtil[_0x4a3d('0x79')](_0x3e3e73[_0x4a3d('0x78')]);_0x3e3e73[_0x4a3d('0x7a')]=intUtil[_0x4a3d('0x79')](_0x3e3e73['serverUrl']);if(_0x2df248&&_0x2df248[_0x4a3d('0x88')]&&_0x2df248['recordingFormat']!==_0x4a3d('0x89')){logger[_0x4a3d('0x2e')](_0x4a3d('0x8a'),_0x4a3d('0x8b'));_0x5d7f4b[_0x4a3d('0x7d')]=_0x3e3e73[_0x4a3d('0x7a')]+_0x4a3d('0x8c')+_0x5d7f4b['uniqueid']+'/downloads?type=uniqueid&token='+md5(_0x5d7f4b[_0x4a3d('0x7e')]);}var _0x4b2384=_0x3e3e73[_0x4a3d('0x78')]===_0x4a3d('0x80')?'eu':_0x4a3d('0x81');return getAccessToken(_0x3e3e73)[_0x4a3d('0x34')](function(_0x2dd4aa){_0x26bf1f=_0x2dd4aa;return getUser(_0x26bf1f,_0x4b2384,_0x3e3e73,_0x3a9ee0[_0x4a3d('0x37')]);})['then'](function(_0x29468c){_0x25cb69=_0x29468c;logger['info'](_0x4a3d('0x82'),_0x25cb69['id']);return getEndUser(_0x26bf1f,_0x4b2384,_0x3e3e73,_0x5d7f4b[_0x4a3d('0x8d')],_0x5d7f4b[_0x4a3d('0x8e')],_0x25cb69,_0x91624c);})['then'](function(_0x2a1688){_0xd8facb=_0x2a1688;return getCall(_0x26bf1f,_0x4b2384,_0x3e3e73,_0x25cb69,_0xd8facb,_0x91624c,_0x5d7f4b,_0x4a3d('0x8f'));})[_0x4a3d('0x34')](function(_0x1f9869){if(_0x1f9869){logger[_0x4a3d('0x2e')](_0x4a3d('0x84'),_0x1f9869['id']);logger['info']('[OUTBOUND]','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0x4a3d('0x31')](_0x4a3d('0x90'),_0x3a9ee0[_0x4a3d('0x18')]),_0x4a3d('0x86'),{'uri':'https://crm.'+_0x3e3e73['host']+_0x4a3d('0x91')+_0x1f9869['id']});}})['catch'](function(_0x19ee41){logger[_0x4a3d('0x2b')](_0x4a3d('0x8a'),JSON[_0x4a3d('0xf')](_0x19ee41));});};exports[_0x4a3d('0x92')]=function(_0x196809,_0x4d873a,_0x2e070f,_0x1a30c7,_0x5dd8c5,_0x3422f8){var _0x325542,_0x5bc1d2,_0x113ef4;_0x3422f8[_0x4a3d('0x78')]=intUtil[_0x4a3d('0x79')](_0x3422f8[_0x4a3d('0x78')]);_0x3422f8[_0x4a3d('0x7a')]=intUtil[_0x4a3d('0x79')](_0x3422f8[_0x4a3d('0x7a')]);if(_0x5dd8c5&&_0x5dd8c5['monitor_format']){logger[_0x4a3d('0x2e')]('['+_0x4d873a[_0x4a3d('0x68')]['toUpperCase']()+']',_0x4a3d('0x8b'));_0x4d873a[_0x4a3d('0x7d')]=_0x3422f8[_0x4a3d('0x7a')]+'/api/voice/recordings/'+_0x4d873a['uniqueid']+_0x4a3d('0x7f')+md5(_0x4d873a[_0x4a3d('0x7e')]);}else{_0x4d873a[_0x4a3d('0x7d')]='';}var _0x567d75=_0x3422f8[_0x4a3d('0x78')]===_0x4a3d('0x80')?'eu':'com';return getAccessToken(_0x3422f8)[_0x4a3d('0x34')](function(_0x40347f){_0x113ef4=_0x40347f;return getUser(_0x113ef4,_0x567d75,_0x3422f8);})['then'](function(_0x219f31){_0x325542=_0x219f31;logger[_0x4a3d('0x2e')](_0x4a3d('0x82'),_0x325542['id']);return getEndUser(_0x113ef4,_0x567d75,_0x3422f8,_0x4d873a[_0x4a3d('0x83')],_0x4d873a[_0x4a3d('0x93')],_0x325542,_0x2e070f);})[_0x4a3d('0x34')](function(_0x5b51e5){_0x5bc1d2=_0x5b51e5;return getCall(_0x113ef4,_0x567d75,_0x3422f8,_0x325542,_0x5bc1d2,_0x2e070f,_0x4d873a,'Inbound');})['then'](function(_0x45287c){if(_0x45287c){logger[_0x4a3d('0x2e')](_0x4a3d('0x84'),_0x45287c['id']);}})[_0x4a3d('0x2a')](function(_0x2776fd){logger[_0x4a3d('0x2b')]('['+_0x4d873a[_0x4a3d('0x68')][_0x4a3d('0x94')]()+']',JSON['stringify'](_0x2776fd));});};