91c7324cde9bc9daef83d957535f9134de94973b
[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 _0x3313=['Agent\x20found!','Using\x20the\x20admin\x20account!','profile','Administrator','user','error','The\x20failing\x20result\x20is','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','enduserType','catch','https://www.zohoapis.','/crm/v2/','startCase','moduleCreate','role','first_name','last_name','SUCCESS','data','details','Error:\x20','CREATE\x20ERROR','moduleSearch','contact_lead','uri','/crm/v2/Contacts/search?criteria=((Phone:equals:','Contacts','/crm/v2/Leads/search?criteria=((Phone:equals:','Leads','nothing','lead','administrator','Subject','getString','Subjects','Description','Descriptions','Who_Id','First_Name','Last_Name','What_Id','Full_Name','$se_module','talktime','Call_Duration','utc','mm:ss','answertime','endtime','YYYY-MM-DDTHH:mm:ss','diff','starttime','called','Call_Result','Called','complete','connect','Answered','rejected','Rejected','abandoned','Abandoned','Timeout','Call_Start_Time','agentcalledAt','Call_Type','Fields','/crm/v2/Calls','code','err','log','queue','host','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','/api/voice/recordings/','/downloads?type=uniqueid&token=','uniqueid','zoho.eu','com','calleridname','calleridnum','Inbound','The\x20Call\x20ID\x20is:','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','/crm/EntityInfo.do?module=Calls&id=','outbound','recordingFormat','none','[OUTBOUND]','The\x20User\x20ID\x20is:','destcalleridname','destcalleridnum','Outbound','unmanaged','stripTrailingSlash','lastevent','toUpperCase','lodash','request-promise','md5','util','./util','moment','bluebird','../../../../config/environment','../../../../config/logger','zoho','redis','defaults','socket.io-emitter','emit','debug','stringify','forEach','includes','string','picklist','type','idField','toString','variable','variableName','Variable','name','toLowerCase','indexOf','split','isNil','access_token','isBefore','expires_in','zone','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','/oauth/v2/token','clientSecret','add','seconds','stack','info','Search\x20user','GET','format','ActiveUsers','Zoho-oauthtoken\x20','then','isArrayLikeObject','users','findIndex','email'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x3313,0x1a3));var _0x3331=function(_0x128e25,_0x4e9e27){_0x128e25=_0x128e25-0x0;var _0x5eb353=_0x3313[_0x128e25];return _0x5eb353;};'use strict';var _=require(_0x3331('0x0'));var rp=require(_0x3331('0x1'));var md5=require(_0x3331('0x2'));var util=require(_0x3331('0x3'));var intUtil=require(_0x3331('0x4'));var moment=require(_0x3331('0x5'));var Redis=require('ioredis');var BPromise=require(_0x3331('0x6'));var config=require(_0x3331('0x7'));var logger=require(_0x3331('0x8'))(_0x3331('0x9'));config[_0x3331('0xa')]=_[_0x3331('0xb')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0x3331('0xc'))(new Redis(config[_0x3331('0xa')]));function emit(_0x2264e4,_0x1256f0,_0x565cd8){io['to'](_0x2264e4)[_0x3331('0xd')](_0x1256f0,_0x565cd8);}function request(_0x20ac4f){logger[_0x3331('0xe')]('[HTTP]',JSON[_0x3331('0xf')](_0x20ac4f));return rp(_0x20ac4f);}function getCustomFields(_0x2492d4,_0x4f36da){var _0x2674a7={};if(_0x2492d4['length']>0x0){_[_0x3331('0x10')](_0x2492d4,function(_0x31738e){if(_[_0x3331('0x11')]([_0x3331('0x12'),_0x3331('0x13')],_0x31738e[_0x3331('0x14')])&&_0x31738e['idField']){_0x2674a7[_0x31738e[_0x3331('0x15')]]=_0x31738e['content'][_0x3331('0x16')]();}else if(_0x31738e['type']===_0x3331('0x17')&&_0x31738e['variableName']&&_0x31738e[_0x3331('0x15')]&&_0x4f36da[_0x31738e[_0x3331('0x18')]]){_0x2674a7[_0x31738e[_0x3331('0x15')]]=_0x4f36da[_0x31738e[_0x3331('0x18')]][_0x3331('0x16')]();}else if(_0x31738e[_0x3331('0x14')]==='customVariable'&&_0x31738e[_0x3331('0x19')]&&_0x31738e[_0x3331('0x19')][_0x3331('0x1a')]&&_0x31738e[_0x3331('0x15')]&&_0x4f36da[_0x31738e['Variable'][_0x3331('0x1a')][_0x3331('0x1b')]()]){_0x2674a7[_0x31738e[_0x3331('0x15')]]=_0x4f36da[_0x31738e['Variable']['name'][_0x3331('0x1b')]()]['toString']();}});}return _0x2674a7;}function getName(_0x4d89df){if(_0x4d89df[_0x3331('0x1c')]('\x20')>0x0){var _0x13d23a=_0x4d89df[_0x3331('0x1d')](/ (.+)/);if(_0x13d23a[0x1]){return _0x13d23a;}}return[_0x4d89df,_0x4d89df];}var accountsTokens={};function getAccessToken(_0x5ed332){return new Promise(function(_0x23e909,_0x3a7b84){if(!_[_0x3331('0x1e')](accountsTokens[_0x5ed332['id']])&&!_[_0x3331('0x1e')](accountsTokens[_0x5ed332['id']][_0x3331('0x1f')])){if(moment()[_0x3331('0x20')](accountsTokens[_0x5ed332['id']][_0x3331('0x21')])){_0x23e909(accountsTokens[_0x5ed332['id']][_0x3331('0x1f')]);}}var _0x12ce78;switch(_0x5ed332[_0x3331('0x22')]){case'US':_0x12ce78='https://accounts.zoho.com';break;case'AU':_0x12ce78='https://accounts.zoho.com.au';break;case'EU':_0x12ce78=_0x3331('0x23');break;case'IN':_0x12ce78=_0x3331('0x24');break;case'CN':_0x12ce78=_0x3331('0x25');break;default:_0x12ce78=_0x3331('0x23');break;}var _0x4d02b3={'method':_0x3331('0x26'),'uri':_0x12ce78+_0x3331('0x27'),'qs':{'refresh_token':_0x5ed332['refreshToken'],'client_id':_0x5ed332['clientId'],'client_secret':_0x5ed332[_0x3331('0x28')],'grant_type':'refresh_token'},'json':!![]};return rp(_0x4d02b3)['then'](function(_0x14175f){accountsTokens[_0x5ed332['id']]={'access_token':_0x14175f['access_token'],'expires_in':moment()[_0x3331('0x29')](_0x14175f['expires_in'],_0x3331('0x2a'))};_0x23e909(_0x14175f[_0x3331('0x1f')]);})['catch'](function(_0x4e0f23){logger['error']('Failing\x20creating\x20the\x20access_token',_0x4e0f23[_0x3331('0x2b')]);_0x3a7b84(_0x4e0f23);});});}function getUser(_0x5e5bbe,_0x43a31e,_0x51cb0b,_0x4d39d0){logger[_0x3331('0x2c')](_0x3331('0x2d'));return request({'method':_0x3331('0x2e'),'uri':util[_0x3331('0x2f')]('https://www.zohoapis.%s/crm/v2/users',_0x43a31e),'qs':{'type':_0x3331('0x30')},'headers':{'Authorization':_0x3331('0x31')+_0x5e5bbe},'json':!![]})[_0x3331('0x32')](function(_0x3c233e){if(_0x3c233e['users']){var _0x32b529=-0x1;if(_[_0x3331('0x33')](_0x3c233e[_0x3331('0x34')])){if(!_[_0x3331('0x1e')](_0x4d39d0)){_0x32b529=_[_0x3331('0x35')](_0x3c233e['users'],function(_0x9e6c0a){return _0x9e6c0a[_0x3331('0x36')]===_0x4d39d0;});}if(_0x32b529>=0x0){logger[_0x3331('0x2c')](_0x3331('0x37'));}else{logger['info'](_0x3331('0x38'));_0x32b529=_[_0x3331('0x35')](_0x3c233e[_0x3331('0x34')],function(_0x3af2d1){return _0x3af2d1[_0x3331('0x39')][_0x3331('0x1a')]===_0x3331('0x3a');});}return _0x3c233e[_0x3331('0x34')][_0x32b529];}else{if(_0x3c233e[_0x3331('0x3b')][_0x3331('0x39')][_0x3331('0x1a')]===_0x3331('0x3a')){logger[_0x3331('0x2c')](_0x3331('0x38'));user=_0x3c233e['user'];return user;}else{logger[_0x3331('0x3c')](_0x3331('0x3d'),JSON[_0x3331('0xf')](_0x3c233e));throw new Error(_0x3331('0x3e')+JSON[_0x3331('0xf')](_0x3c233e));}}}else{logger[_0x3331('0x3c')](_0x3331('0x3d'),JSON[_0x3331('0xf')](_0x3c233e));throw new Error(_0x3331('0x3e')+JSON[_0x3331('0xf')](_0x3c233e));}})['catch'](function(_0xa79569){console[_0x3331('0x3c')](_0xa79569);});}function getZohoUser(_0x3754a7,_0x4ea29a){return new BPromise(function(_0x4e8fd7,_0x2be874){request(_0x3754a7)[_0x3331('0x32')](function(_0x258eca){var _0x574f34=null;if(_0x258eca){_0x574f34=_0x258eca['data'][0x0];_0x574f34[_0x3331('0x3f')]=_0x4ea29a;}_0x4e8fd7(_0x574f34);})[_0x3331('0x40')](function(_0x9be66f){_0x2be874(_0x9be66f);});});}function createEndUser(_0x2b36b0,_0x151584,_0x2d321e,_0x5b3457,_0x580f84,_0x1e4690){var _0x2d321e=getName(_0x2d321e);return request({'method':_0x3331('0x26'),'uri':_0x3331('0x41')+_0x151584+_0x3331('0x42')+_[_0x3331('0x43')](_0x1e4690[_0x3331('0x44')])+'s','body':{'data':[{'Last_Name':_0x2d321e[0x1],'First_Name':_0x2d321e[0x0],'Phone':_0x5b3457,'Owner':{'name':!_['isNil'](_0x580f84[_0x3331('0x45')]['name'])?_0x580f84[_0x3331('0x45')][_0x3331('0x1a')]:!_[_0x3331('0x1e')](_0x580f84[_0x3331('0x46')])?_0x580f84[_0x3331('0x46')]+'\x20'+_0x580f84[_0x3331('0x47')]:_0x580f84['last_name'],'id':_0x580f84['id']}}]},'headers':{'Authorization':_0x3331('0x31')+_0x2b36b0},'json':!![]})[_0x3331('0x32')](function(_0x50b925){if(_0x50b925&&_0x50b925['data'][0x0]['code']===_0x3331('0x48')){var _0x45383c=_0x50b925[_0x3331('0x49')][0x0][_0x3331('0x4a')];_0x45383c[_0x3331('0x3f')]=_['startCase'](_0x1e4690[_0x3331('0x44')])+'s';return _0x45383c;}logger['error'](_0x3331('0x3d'),JSON[_0x3331('0xf')](data));throw new Error(_0x3331('0x4b')+JSON[_0x3331('0xf')](data));})[_0x3331('0x40')](function(_0x326c3a){console['log'](_0x3331('0x4c'),_0x326c3a);});}function getEndUser(_0x199aae,_0x385e1b,_0x314909,_0x3d3373,_0x2e02ef,_0x3a5164,_0x4fccff){var _0x1a6ddc={'method':_0x3331('0x2e'),'uri':'','headers':{'Authorization':_0x3331('0x31')+_0x199aae},'json':!![]};switch(_0x4fccff[_0x3331('0x4d')]){case _0x3331('0x4e'):_0x1a6ddc[_0x3331('0x4f')]=_0x3331('0x41')+_0x385e1b+_0x3331('0x50')+_0x2e02ef+'))';return getZohoUser(_0x1a6ddc,_0x3331('0x51'))['then'](function(_0x339a27){if(_0x339a27)return _0x339a27;_0x1a6ddc[_0x3331('0x4f')]=_0x3331('0x41')+_0x385e1b+_0x3331('0x52')+_0x2e02ef+'))';return getZohoUser(_0x1a6ddc,_0x3331('0x53'))[_0x3331('0x32')](function(_0x33dfef){if(_0x33dfef)return _0x33dfef;if(_0x4fccff[_0x3331('0x44')]!='nothing'){return createEndUser(_0x199aae,_0x385e1b,_0x3d3373,_0x2e02ef,_0x3a5164,_0x4fccff);}else{return{};}});});break;case'contact':_0x1a6ddc['uri']=_0x3331('0x41')+_0x385e1b+_0x3331('0x50')+_0x2e02ef+'))';return getZohoUser(_0x1a6ddc,_0x3331('0x51'))[_0x3331('0x32')](function(_0x493af9){if(_0x493af9)return _0x493af9;if(_0x4fccff[_0x3331('0x44')]!=_0x3331('0x54')){return createEndUser(_0x199aae,_0x385e1b,_0x3d3373,_0x2e02ef,_0x3a5164,_0x4fccff);}else{return{};}});break;case _0x3331('0x55'):_0x1a6ddc[_0x3331('0x4f')]='https://www.zohoapis.'+_0x385e1b+_0x3331('0x52')+_0x2e02ef+'))';return getZohoUser(_0x1a6ddc,_0x3331('0x53'))[_0x3331('0x32')](function(_0x1ba9b4){if(_0x1ba9b4)return _0x1ba9b4;if(_0x4fccff[_0x3331('0x44')]!=_0x3331('0x54')){return createEndUser(_0x199aae,_0x385e1b,_0x3d3373,_0x2e02ef,_0x3a5164,_0x4fccff);}else{return{};}});break;}}function getCall(_0x905638,_0x5bac9e,_0xd86f77,_0x1e15db,_0x501269,_0x5e46e5,_0x26dfef,_0x1dbe2d){logger[_0x3331('0x2c')]('Creating\x20new\x20call...');var _0x482166={};_0x482166['Owner']={'name':!_[_0x3331('0x1e')](_0x1e15db[_0x3331('0x45')][_0x3331('0x1a')])&&!_['isNil'](_0x1e15db[_0x3331('0x39')]['name'])&&_0x1e15db[_0x3331('0x39')][_0x3331('0x1a')]===_0x3331('0x56')?_0x1e15db[_0x3331('0x45')][_0x3331('0x1a')]:!_[_0x3331('0x1e')](_0x1e15db[_0x3331('0x46')])?_0x1e15db[_0x3331('0x46')]+'\x20'+_0x1e15db[_0x3331('0x47')]:_0x1e15db[_0x3331('0x47')],'id':_0x1e15db['id']};_0x482166[_0x3331('0x57')]=intUtil[_0x3331('0x58')](_0x5e46e5[_0x3331('0x59')],_0x26dfef,'\x20');_0x482166[_0x3331('0x5a')]=intUtil['getString'](_0x5e46e5[_0x3331('0x5b')],_0x26dfef,'\x0a');if(_0x501269[_0x3331('0x3f')]===_0x3331('0x51')){_0x482166[_0x3331('0x5c')]={'name':!_[_0x3331('0x1e')](_0x501269['Full_Name'])?_0x501269['Full_Name']:!_[_0x3331('0x1e')](_0x501269['First_Name'])?_0x501269[_0x3331('0x5d')]+'\x20'+_0x501269[_0x3331('0x5e')]:_0x501269[_0x3331('0x5e')],'id':_0x501269['id']};}if(_0x501269[_0x3331('0x3f')]==='Leads'){_0x482166[_0x3331('0x5f')]={'name':!_[_0x3331('0x1e')](_0x501269[_0x3331('0x60')])?_0x501269[_0x3331('0x60')]:!_[_0x3331('0x1e')](_0x501269[_0x3331('0x5d')])?_0x501269['First_Name']+'\x20'+_0x501269[_0x3331('0x5e')]:_0x501269['Last_Name'],'id':_0x501269['id']};_0x482166[_0x3331('0x61')]=_[_0x3331('0x43')](_0x501269[_0x3331('0x3f')]);}if(_0x26dfef[_0x3331('0x62')]){_0x482166[_0x3331('0x63')]=moment[_0x3331('0x64')](parseInt(_0x26dfef[_0x3331('0x62')])*0x3e8)[_0x3331('0x2f')](_0x3331('0x65'));}else if(_0x26dfef[_0x3331('0x66')]&&_0x26dfef[_0x3331('0x67')]){_0x482166[_0x3331('0x63')]=moment[_0x3331('0x64')](moment(_0x26dfef['endtime'],_0x3331('0x68'))[_0x3331('0x69')](moment(_0x26dfef[_0x3331('0x6a')],_0x3331('0x68'))))['format'](_0x3331('0x65'));}switch(_0x26dfef['lastevent']){case _0x3331('0x6b'):_0x482166[_0x3331('0x6c')]=_0x3331('0x6d');break;case _0x3331('0x6e'):case _0x3331('0x6f'):_0x482166[_0x3331('0x6c')]=_0x3331('0x70');break;case _0x3331('0x71'):_0x482166[_0x3331('0x6c')]=_0x3331('0x72');break;case _0x3331('0x73'):_0x482166[_0x3331('0x6c')]=_0x3331('0x74');break;case'timeout':_0x482166[_0x3331('0x6c')]=_0x3331('0x75');default:}_0x482166[_0x3331('0x76')]=(_0x1dbe2d==='outbound'?moment(_0x26dfef['starttime'])[_0x3331('0x2f')](_0x3331('0x68')):moment(_0x26dfef[_0x3331('0x77')])[_0x3331('0x2f')]('YYYY-MM-DDTHH:mm:ss'))||moment()[_0x3331('0x2f')]('YYYY-MM-DDTHH:mm:ss');_0x482166[_0x3331('0x78')]=_0x1dbe2d||'Inbound';_0x482166=_['merge'](_0x482166,getCustomFields(_0x5e46e5[_0x3331('0x79')],_0x26dfef));return request({'method':'POST','uri':_0x3331('0x41')+_0x5bac9e+_0x3331('0x7a'),'headers':{'Authorization':_0x3331('0x31')+_0x905638},'body':{'data':[_0x482166]},'json':!![]})['then'](function(_0x2a801a){if(_0x2a801a&&_0x2a801a[_0x3331('0x49')][0x0][_0x3331('0x7b')]===_0x3331('0x48')){logger[_0x3331('0x2c')]('Call\x20created!');return{'id':_0x2a801a[_0x3331('0x49')][0x0][_0x3331('0x4a')]['id']};}})[_0x3331('0x40')](function(_0x4ce553){logger['info'](_0x3331('0x7c'),_0x4ce553['stack']);console[_0x3331('0x7d')](_0x3331('0x7c'),_0x4ce553);});}exports[_0x3331('0x7e')]=function(_0x1b54be,_0x1d2540,_0x34006a,_0x3f0131,_0x54bae0,_0x43bbd2){var _0x1a08d6,_0xe6f73f,_0x509bcb;_0x43bbd2[_0x3331('0x7f')]=intUtil['stripTrailingSlash'](_0x43bbd2[_0x3331('0x7f')]);_0x43bbd2[_0x3331('0x80')]=intUtil['stripTrailingSlash'](_0x43bbd2[_0x3331('0x80')]);if(_0x54bae0&&_0x54bae0[_0x3331('0x81')]){logger[_0x3331('0x2c')](_0x3331('0x82'),_0x3331('0x83'));_0x1d2540[_0x3331('0x84')]=_0x43bbd2[_0x3331('0x80')]+_0x3331('0x85')+_0x1d2540['uniqueid']+_0x3331('0x86')+md5(_0x1d2540[_0x3331('0x87')]);}else{_0x1d2540['recordingURL']='';}var _0x43627d=_0x43bbd2[_0x3331('0x7f')]===_0x3331('0x88')?'eu':_0x3331('0x89');return getAccessToken(_0x43bbd2)[_0x3331('0x32')](function(_0x12e722){_0x509bcb=_0x12e722;return getUser(_0x509bcb,_0x43627d,_0x43bbd2,_0x3f0131[_0x3331('0x36')]);})[_0x3331('0x32')](function(_0x165ab8){_0x1a08d6=_0x165ab8;logger[_0x3331('0x2c')]('The\x20User\x20ID\x20is:',_0x1a08d6['id']);return getEndUser(_0x509bcb,_0x43627d,_0x43bbd2,_0x1d2540[_0x3331('0x8a')],_0x1d2540[_0x3331('0x8b')],_0x1a08d6,_0x34006a);})[_0x3331('0x32')](function(_0x730e72){_0xe6f73f=_0x730e72;return getCall(_0x509bcb,_0x43627d,_0x43bbd2,_0x1a08d6,_0xe6f73f,_0x34006a,_0x1d2540,_0x3331('0x8c'));})['then'](function(_0xc2d25e){if(_0xc2d25e){logger[_0x3331('0x2c')](_0x3331('0x8d'),_0xc2d25e['id']);logger[_0x3331('0x2c')](_0x3331('0x82'),_0x3331('0x8e'));emit(util[_0x3331('0x2f')](_0x3331('0x8f'),_0x3f0131[_0x3331('0x1a')]),_0x3331('0x90'),{'uri':'https://crm.'+_0x43bbd2[_0x3331('0x7f')]+_0x3331('0x91')+_0xc2d25e['id']});}})[_0x3331('0x40')](function(_0xe4762a){logger[_0x3331('0x3c')](_0x3331('0x82'),JSON['stringify'](_0xe4762a));});};exports[_0x3331('0x92')]=function(_0x571797,_0x70ff18,_0x319dec,_0x4c3e0e,_0x10a9eb,_0x92654,_0x31ac2f){var _0x378c6b,_0x1b3312,_0x4b3a9e;_0x92654[_0x3331('0x7f')]=intUtil['stripTrailingSlash'](_0x92654[_0x3331('0x7f')]);_0x92654[_0x3331('0x80')]=intUtil['stripTrailingSlash'](_0x92654['serverUrl']);if(_0x31ac2f&&_0x31ac2f[_0x3331('0x93')]&&_0x31ac2f[_0x3331('0x93')]!==_0x3331('0x94')){logger[_0x3331('0x2c')](_0x3331('0x95'),_0x3331('0x83'));_0x70ff18[_0x3331('0x84')]=_0x92654[_0x3331('0x80')]+_0x3331('0x85')+_0x70ff18[_0x3331('0x87')]+_0x3331('0x86')+md5(_0x70ff18[_0x3331('0x87')]);}var _0x400d68=_0x92654['host']==='zoho.eu'?'eu':_0x3331('0x89');return getAccessToken(_0x92654)[_0x3331('0x32')](function(_0x73db5e){_0x4b3a9e=_0x73db5e;return getUser(_0x4b3a9e,_0x400d68,_0x92654,_0x4c3e0e['email']);})[_0x3331('0x32')](function(_0x160d87){_0x378c6b=_0x160d87;logger[_0x3331('0x2c')](_0x3331('0x96'),_0x378c6b['id']);return getEndUser(_0x4b3a9e,_0x400d68,_0x92654,_0x70ff18[_0x3331('0x97')],_0x70ff18[_0x3331('0x98')],_0x378c6b,_0x319dec);})['then'](function(_0x1678b5){_0x1b3312=_0x1678b5;return getCall(_0x4b3a9e,_0x400d68,_0x92654,_0x378c6b,_0x1b3312,_0x319dec,_0x70ff18,_0x3331('0x99'));})[_0x3331('0x32')](function(_0x314a27){if(_0x314a27){logger[_0x3331('0x2c')](_0x3331('0x8d'),_0x314a27['id']);logger['info']('[OUTBOUND]','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util['format'](_0x3331('0x8f'),_0x4c3e0e[_0x3331('0x1a')]),_0x3331('0x90'),{'uri':'https://crm.'+_0x92654['host']+_0x3331('0x91')+_0x314a27['id']});}})[_0x3331('0x40')](function(_0xbfd9c4){logger['error'](_0x3331('0x95'),JSON[_0x3331('0xf')](_0xbfd9c4));});};exports[_0x3331('0x9a')]=function(_0x4fc7f3,_0x1f44fc,_0x25ff2b,_0xa64154,_0x393ddf,_0x173f37){var _0x363c1f,_0x569bc3,_0x3c1289;_0x173f37[_0x3331('0x7f')]=intUtil[_0x3331('0x9b')](_0x173f37['host']);_0x173f37[_0x3331('0x80')]=intUtil['stripTrailingSlash'](_0x173f37[_0x3331('0x80')]);if(_0x393ddf&&_0x393ddf[_0x3331('0x81')]){logger[_0x3331('0x2c')]('['+_0x1f44fc[_0x3331('0x9c')][_0x3331('0x9d')]()+']',_0x3331('0x83'));_0x1f44fc[_0x3331('0x84')]=_0x173f37[_0x3331('0x80')]+_0x3331('0x85')+_0x1f44fc[_0x3331('0x87')]+'/downloads?type=uniqueid&token='+md5(_0x1f44fc[_0x3331('0x87')]);}else{_0x1f44fc[_0x3331('0x84')]='';}var _0x501f91=_0x173f37[_0x3331('0x7f')]===_0x3331('0x88')?'eu':_0x3331('0x89');return getAccessToken(_0x173f37)['then'](function(_0x323d9b){_0x3c1289=_0x323d9b;return getUser(_0x3c1289,_0x501f91,_0x173f37);})[_0x3331('0x32')](function(_0x399c38){_0x363c1f=_0x399c38;logger['info'](_0x3331('0x96'),_0x363c1f['id']);return getEndUser(_0x3c1289,_0x501f91,_0x173f37,_0x1f44fc[_0x3331('0x8a')],_0x1f44fc[_0x3331('0x8b')],_0x363c1f,_0x25ff2b);})['then'](function(_0x561c5b){_0x569bc3=_0x561c5b;return getCall(_0x3c1289,_0x501f91,_0x173f37,_0x363c1f,_0x569bc3,_0x25ff2b,_0x1f44fc,_0x3331('0x8c'));})[_0x3331('0x32')](function(_0x16f50d){if(_0x16f50d){logger['info'](_0x3331('0x8d'),_0x16f50d['id']);}})['catch'](function(_0x56ca52){logger['error']('['+_0x1f44fc['lastevent'][_0x3331('0x9d')]()+']',JSON['stringify'](_0x56ca52));});};