Built motion from commit 44377920.|2.6.11
[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 _0xe563=['[HTTP]','length','forEach','includes','string','picklist','type','idField','toString','variableName','customVariable','Variable','name','toLowerCase','indexOf','split','isNil','access_token','expires_in','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.eu','https://accounts.zoho.com.cn','POST','/oauth/v2/token','refreshToken','clientId','clientSecret','refresh_token','then','add','error','Failing\x20creating\x20the\x20access_token','stack','info','Search\x20user','format','ActiveUsers','Zoho-oauthtoken\x20','users','findIndex','email','Agent\x20found!','Using\x20the\x20admin\x20account!','profile','Administrator','user','stringify','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','The\x20failing\x20result\x20is','data','enduserType','catch','https://www.zohoapis.','moduleCreate','first_name','last_name','SUCCESS','details','startCase','Error:\x20','log','CREATE\x20ERROR','GET','moduleSearch','uri','Contacts','/crm/v2/Leads/search?criteria=((Phone:equals:','/crm/v2/Contacts/search?criteria=((Phone:equals:','nothing','Creating\x20new\x20call...','Owner','role','Subject','getString','Subjects','Description','Descriptions','Who_Id','Full_Name','First_Name','Last_Name','What_Id','$se_module','talktime','utc','mm:ss','answertime','endtime','Call_Duration','diff','starttime','YYYY-MM-DDTHH:mm:ss','lastevent','called','Call_Result','Called','complete','Answered','rejected','Rejected','Abandoned','timeout','outbound','agentcalledAt','Call_Type','Inbound','merge','/crm/v2/Calls','code','Call\x20created!','queue','host','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','/api/voice/recordings/','uniqueid','/downloads?type=uniqueid&token=','zoho.eu','com','The\x20User\x20ID\x20is:','calleridnum','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','/crm/EntityInfo.do?module=Calls&id=','recordingFormat','none','[OUTBOUND]','destcalleridname','The\x20Call\x20ID\x20is:','https://crm.','unmanaged','toUpperCase','lodash','request-promise','md5','util','./util','moment','ioredis','bluebird','../../../../config/environment','../../../../config/logger','redis','localhost','socket.io-emitter','emit','debug'];(function(_0x1ac512,_0x56db90){var _0x51fcca=function(_0x50c3b0){while(--_0x50c3b0){_0x1ac512['push'](_0x1ac512['shift']());}};_0x51fcca(++_0x56db90);}(_0xe563,0x125));var _0x3e56=function(_0x374704,_0x3d1eb9){_0x374704=_0x374704-0x0;var _0x2b2d20=_0xe563[_0x374704];return _0x2b2d20;};'use strict';var _=require(_0x3e56('0x0'));var rp=require(_0x3e56('0x1'));var md5=require(_0x3e56('0x2'));var util=require(_0x3e56('0x3'));var intUtil=require(_0x3e56('0x4'));var moment=require(_0x3e56('0x5'));var Redis=require(_0x3e56('0x6'));var BPromise=require(_0x3e56('0x7'));var config=require(_0x3e56('0x8'));var logger=require(_0x3e56('0x9'))('zoho');config[_0x3e56('0xa')]=_['defaults'](config[_0x3e56('0xa')],{'host':_0x3e56('0xb'),'port':0x18eb});var io=require(_0x3e56('0xc'))(new Redis(config[_0x3e56('0xa')]));function emit(_0x38c87c,_0x125210,_0x48a4af){io['to'](_0x38c87c)[_0x3e56('0xd')](_0x125210,_0x48a4af);}function request(_0x1569e2){logger[_0x3e56('0xe')](_0x3e56('0xf'),JSON['stringify'](_0x1569e2));return rp(_0x1569e2);}function getCustomFields(_0x3d5dfc,_0x43d0c1){var _0x3f3c0c={};if(_0x3d5dfc[_0x3e56('0x10')]>0x0){_[_0x3e56('0x11')](_0x3d5dfc,function(_0x3b7792){if(_[_0x3e56('0x12')]([_0x3e56('0x13'),_0x3e56('0x14')],_0x3b7792[_0x3e56('0x15')])&&_0x3b7792[_0x3e56('0x16')]){_0x3f3c0c[_0x3b7792[_0x3e56('0x16')]]=_0x3b7792['content'][_0x3e56('0x17')]();}else if(_0x3b7792[_0x3e56('0x15')]==='variable'&&_0x3b7792[_0x3e56('0x18')]&&_0x3b7792[_0x3e56('0x16')]&&_0x43d0c1[_0x3b7792[_0x3e56('0x18')]]){_0x3f3c0c[_0x3b7792[_0x3e56('0x16')]]=_0x43d0c1[_0x3b7792[_0x3e56('0x18')]][_0x3e56('0x17')]();}else if(_0x3b7792[_0x3e56('0x15')]===_0x3e56('0x19')&&_0x3b7792['Variable']&&_0x3b7792[_0x3e56('0x1a')][_0x3e56('0x1b')]&&_0x3b7792['idField']&&_0x43d0c1[_0x3b7792[_0x3e56('0x1a')][_0x3e56('0x1b')]['toLowerCase']()]){_0x3f3c0c[_0x3b7792[_0x3e56('0x16')]]=_0x43d0c1[_0x3b7792[_0x3e56('0x1a')]['name'][_0x3e56('0x1c')]()][_0x3e56('0x17')]();}});}return _0x3f3c0c;}function getName(_0x3fefe7){if(_0x3fefe7[_0x3e56('0x1d')]('\x20')>0x0){var _0x15fe0c=_0x3fefe7[_0x3e56('0x1e')](/ (.+)/);if(_0x15fe0c[0x1]){return _0x15fe0c;}}return[_0x3fefe7,_0x3fefe7];}var accountsTokens={};function getAccessToken(_0x1d2ec7){return new Promise(function(_0x5cdf29,_0x59f9f1){if(!_[_0x3e56('0x1f')](accountsTokens[_0x1d2ec7['id']])&&!_[_0x3e56('0x1f')](accountsTokens[_0x1d2ec7['id']][_0x3e56('0x20')])){if(moment()['isBefore'](accountsTokens[_0x1d2ec7['id']][_0x3e56('0x21')])){_0x5cdf29(accountsTokens[_0x1d2ec7['id']]['access_token']);}}var _0x6022ff;switch(_0x1d2ec7[_0x3e56('0x22')]){case'US':_0x6022ff=_0x3e56('0x23');break;case'AU':_0x6022ff=_0x3e56('0x24');break;case'EU':_0x6022ff=_0x3e56('0x25');break;case'IN':_0x6022ff='https://accounts.zoho.in';break;case'CN':_0x6022ff=_0x3e56('0x26');break;default:_0x6022ff=_0x3e56('0x25');break;}var _0x1f99a3={'method':_0x3e56('0x27'),'uri':_0x6022ff+_0x3e56('0x28'),'qs':{'refresh_token':_0x1d2ec7[_0x3e56('0x29')],'client_id':_0x1d2ec7[_0x3e56('0x2a')],'client_secret':_0x1d2ec7[_0x3e56('0x2b')],'grant_type':_0x3e56('0x2c')},'json':!![]};return rp(_0x1f99a3)[_0x3e56('0x2d')](function(_0x51ff4d){accountsTokens[_0x1d2ec7['id']]={'access_token':_0x51ff4d['access_token'],'expires_in':moment()[_0x3e56('0x2e')](_0x51ff4d[_0x3e56('0x21')],'seconds')};_0x5cdf29(_0x51ff4d[_0x3e56('0x20')]);})['catch'](function(_0x1185e1){logger[_0x3e56('0x2f')](_0x3e56('0x30'),_0x1185e1[_0x3e56('0x31')]);_0x59f9f1(_0x1185e1);});});}function getUser(_0xe7781a,_0x1dd9f1,_0x47ec0d,_0x2c7d08){logger[_0x3e56('0x32')](_0x3e56('0x33'));return request({'method':'GET','uri':util[_0x3e56('0x34')]('https://www.zohoapis.%s/crm/v2/users',_0x1dd9f1),'qs':{'type':_0x3e56('0x35')},'headers':{'Authorization':_0x3e56('0x36')+_0xe7781a},'json':!![]})[_0x3e56('0x2d')](function(_0x193787){if(_0x193787[_0x3e56('0x37')]){var _0xc349f1=-0x1;if(_['isArrayLikeObject'](_0x193787['users'])){if(!_['isNil'](_0x2c7d08)){_0xc349f1=_[_0x3e56('0x38')](_0x193787[_0x3e56('0x37')],function(_0x22b1ef){return _0x22b1ef[_0x3e56('0x39')]===_0x2c7d08;});}if(_0xc349f1>=0x0){logger['info'](_0x3e56('0x3a'));}else{logger[_0x3e56('0x32')](_0x3e56('0x3b'));_0xc349f1=_[_0x3e56('0x38')](_0x193787['users'],function(_0x1b25c7){return _0x1b25c7[_0x3e56('0x3c')][_0x3e56('0x1b')]===_0x3e56('0x3d');});}return _0x193787['users'][_0xc349f1];}else{if(_0x193787[_0x3e56('0x3e')][_0x3e56('0x3c')][_0x3e56('0x1b')]===_0x3e56('0x3d')){logger[_0x3e56('0x32')](_0x3e56('0x3b'));user=_0x193787['user'];return user;}else{logger[_0x3e56('0x2f')]('The\x20failing\x20result\x20is',JSON[_0x3e56('0x3f')](_0x193787));throw new Error(_0x3e56('0x40')+JSON[_0x3e56('0x3f')](_0x193787));}}}else{logger[_0x3e56('0x2f')](_0x3e56('0x41'),JSON[_0x3e56('0x3f')](_0x193787));throw new Error('Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20'+JSON[_0x3e56('0x3f')](_0x193787));}})['catch'](function(_0x394905){console[_0x3e56('0x2f')](_0x394905);});}function getZohoUser(_0xed259,_0x1e28b7){return new BPromise(function(_0x2b19e2,_0x22af94){request(_0xed259)[_0x3e56('0x2d')](function(_0x19e7d2){var _0x51d207=null;if(_0x19e7d2){_0x51d207=_0x19e7d2[_0x3e56('0x42')][0x0];_0x51d207[_0x3e56('0x43')]=_0x1e28b7;}_0x2b19e2(_0x51d207);})[_0x3e56('0x44')](function(_0x55ee4e){_0x22af94(_0x55ee4e);});});}function createEndUser(_0x47beff,_0x14ead9,_0x567eb2,_0x470b73,_0x3a7516,_0x21f3dc){var _0x567eb2=getName(_0x567eb2);return request({'method':_0x3e56('0x27'),'uri':_0x3e56('0x45')+_0x14ead9+'/crm/v2/'+_['startCase'](_0x21f3dc[_0x3e56('0x46')])+'s','body':{'data':[{'Last_Name':_0x567eb2[0x1],'First_Name':_0x567eb2[0x0],'Phone':_0x470b73,'Owner':{'name':!_[_0x3e56('0x1f')](_0x3a7516['role'][_0x3e56('0x1b')])?_0x3a7516['role']['name']:!_[_0x3e56('0x1f')](_0x3a7516[_0x3e56('0x47')])?_0x3a7516[_0x3e56('0x47')]+'\x20'+_0x3a7516[_0x3e56('0x48')]:_0x3a7516['last_name'],'id':_0x3a7516['id']}}]},'headers':{'Authorization':_0x3e56('0x36')+_0x47beff},'json':!![]})[_0x3e56('0x2d')](function(_0x50cef1){if(_0x50cef1&&_0x50cef1[_0x3e56('0x42')][0x0]['code']===_0x3e56('0x49')){var _0x3e777b=_0x50cef1['data'][0x0][_0x3e56('0x4a')];_0x3e777b['enduserType']=_[_0x3e56('0x4b')](_0x21f3dc[_0x3e56('0x46')])+'s';return _0x3e777b;}logger['error'](_0x3e56('0x41'),JSON[_0x3e56('0x3f')](data));throw new Error(_0x3e56('0x4c')+JSON[_0x3e56('0x3f')](data));})[_0x3e56('0x44')](function(_0x320711){console[_0x3e56('0x4d')](_0x3e56('0x4e'),_0x320711);});}function getEndUser(_0x5539e1,_0x465bf4,_0x287e00,_0x88e8e6,_0x3d5b3e,_0x3682ca,_0x1b7182){var _0x55e5ae={'method':_0x3e56('0x4f'),'uri':'','headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x5539e1},'json':!![]};switch(_0x1b7182[_0x3e56('0x50')]){case'contact_lead':_0x55e5ae[_0x3e56('0x51')]=_0x3e56('0x45')+_0x465bf4+'/crm/v2/Contacts/search?criteria=((Phone:equals:'+_0x3d5b3e+'))';return getZohoUser(_0x55e5ae,_0x3e56('0x52'))['then'](function(_0x383358){if(_0x383358)return _0x383358;_0x55e5ae[_0x3e56('0x51')]='https://www.zohoapis.'+_0x465bf4+_0x3e56('0x53')+_0x3d5b3e+'))';return getZohoUser(_0x55e5ae,'Leads')[_0x3e56('0x2d')](function(_0x5dafc1){if(_0x5dafc1)return _0x5dafc1;if(_0x1b7182[_0x3e56('0x46')]!='nothing'){return createEndUser(_0x5539e1,_0x465bf4,_0x88e8e6,_0x3d5b3e,_0x3682ca,_0x1b7182);}else{return{};}});});break;case'contact':_0x55e5ae['uri']='https://www.zohoapis.'+_0x465bf4+_0x3e56('0x54')+_0x3d5b3e+'))';return getZohoUser(_0x55e5ae,'Contacts')[_0x3e56('0x2d')](function(_0x4f833b){if(_0x4f833b)return _0x4f833b;if(_0x1b7182[_0x3e56('0x46')]!=_0x3e56('0x55')){return createEndUser(_0x5539e1,_0x465bf4,_0x88e8e6,_0x3d5b3e,_0x3682ca,_0x1b7182);}else{return{};}});break;case'lead':_0x55e5ae[_0x3e56('0x51')]=_0x3e56('0x45')+_0x465bf4+_0x3e56('0x53')+_0x3d5b3e+'))';return getZohoUser(_0x55e5ae,'Leads')[_0x3e56('0x2d')](function(_0x391194){if(_0x391194)return _0x391194;if(_0x1b7182['moduleCreate']!='nothing'){return createEndUser(_0x5539e1,_0x465bf4,_0x88e8e6,_0x3d5b3e,_0x3682ca,_0x1b7182);}else{return{};}});break;}}function getCall(_0x221c79,_0x76a39e,_0xeaa4e8,_0x31e3a1,_0x504fb8,_0x457761,_0x2eb7df,_0x378260){logger[_0x3e56('0x32')](_0x3e56('0x56'));var _0x59fd81={};_0x59fd81[_0x3e56('0x57')]={'name':!_[_0x3e56('0x1f')](_0x31e3a1[_0x3e56('0x58')][_0x3e56('0x1b')])&&!_['isNil'](_0x31e3a1['profile'][_0x3e56('0x1b')])&&_0x31e3a1['profile']['name']==='administrator'?_0x31e3a1['role'][_0x3e56('0x1b')]:!_[_0x3e56('0x1f')](_0x31e3a1[_0x3e56('0x47')])?_0x31e3a1[_0x3e56('0x47')]+'\x20'+_0x31e3a1[_0x3e56('0x48')]:_0x31e3a1[_0x3e56('0x48')],'id':_0x31e3a1['id']};_0x59fd81[_0x3e56('0x59')]=intUtil[_0x3e56('0x5a')](_0x457761[_0x3e56('0x5b')],_0x2eb7df,'\x20');_0x59fd81[_0x3e56('0x5c')]=intUtil[_0x3e56('0x5a')](_0x457761[_0x3e56('0x5d')],_0x2eb7df,'\x0a');if(_0x504fb8['enduserType']===_0x3e56('0x52')){_0x59fd81[_0x3e56('0x5e')]={'name':!_[_0x3e56('0x1f')](_0x504fb8[_0x3e56('0x5f')])?_0x504fb8[_0x3e56('0x5f')]:!_['isNil'](_0x504fb8[_0x3e56('0x60')])?_0x504fb8['First_Name']+'\x20'+_0x504fb8['Last_Name']:_0x504fb8[_0x3e56('0x61')],'id':_0x504fb8['id']};}if(_0x504fb8[_0x3e56('0x43')]==='Leads'){_0x59fd81[_0x3e56('0x62')]={'name':!_[_0x3e56('0x1f')](_0x504fb8[_0x3e56('0x5f')])?_0x504fb8[_0x3e56('0x5f')]:!_['isNil'](_0x504fb8[_0x3e56('0x60')])?_0x504fb8[_0x3e56('0x60')]+'\x20'+_0x504fb8[_0x3e56('0x61')]:_0x504fb8[_0x3e56('0x61')],'id':_0x504fb8['id']};_0x59fd81[_0x3e56('0x63')]=_['startCase'](_0x504fb8[_0x3e56('0x43')]);}if(_0x2eb7df[_0x3e56('0x64')]){_0x59fd81['Call_Duration']=moment[_0x3e56('0x65')](parseInt(_0x2eb7df['talktime'])*0x3e8)[_0x3e56('0x34')](_0x3e56('0x66'));}else if(_0x2eb7df[_0x3e56('0x67')]&&_0x2eb7df[_0x3e56('0x68')]){_0x59fd81[_0x3e56('0x69')]=moment['utc'](moment(_0x2eb7df[_0x3e56('0x68')],'YYYY-MM-DDTHH:mm:ss')[_0x3e56('0x6a')](moment(_0x2eb7df[_0x3e56('0x6b')],_0x3e56('0x6c'))))[_0x3e56('0x34')](_0x3e56('0x66'));}switch(_0x2eb7df[_0x3e56('0x6d')]){case _0x3e56('0x6e'):_0x59fd81[_0x3e56('0x6f')]=_0x3e56('0x70');break;case _0x3e56('0x71'):case'connect':_0x59fd81['Call_Result']=_0x3e56('0x72');break;case _0x3e56('0x73'):_0x59fd81[_0x3e56('0x6f')]=_0x3e56('0x74');break;case'abandoned':_0x59fd81[_0x3e56('0x6f')]=_0x3e56('0x75');break;case _0x3e56('0x76'):_0x59fd81[_0x3e56('0x6f')]='Timeout';default:}_0x59fd81['Call_Start_Time']=(_0x378260===_0x3e56('0x77')?moment(_0x2eb7df[_0x3e56('0x6b')])[_0x3e56('0x34')](_0x3e56('0x6c')):moment(_0x2eb7df[_0x3e56('0x78')])[_0x3e56('0x34')]('YYYY-MM-DDTHH:mm:ss'))||moment()[_0x3e56('0x34')](_0x3e56('0x6c'));_0x59fd81[_0x3e56('0x79')]=_0x378260||_0x3e56('0x7a');_0x59fd81=_[_0x3e56('0x7b')](_0x59fd81,getCustomFields(_0x457761['Fields'],_0x2eb7df));return request({'method':_0x3e56('0x27'),'uri':_0x3e56('0x45')+_0x76a39e+_0x3e56('0x7c'),'headers':{'Authorization':_0x3e56('0x36')+_0x221c79},'body':{'data':[_0x59fd81]},'json':!![]})[_0x3e56('0x2d')](function(_0x2a9755){if(_0x2a9755&&_0x2a9755[_0x3e56('0x42')][0x0][_0x3e56('0x7d')]==='SUCCESS'){logger['info'](_0x3e56('0x7e'));return{'id':_0x2a9755[_0x3e56('0x42')][0x0][_0x3e56('0x4a')]['id']};}})[_0x3e56('0x44')](function(_0x1ed09c){logger[_0x3e56('0x32')]('err',_0x1ed09c['stack']);console[_0x3e56('0x4d')]('err',_0x1ed09c);});}exports[_0x3e56('0x7f')]=function(_0xc6101,_0x43b11a,_0x30d96f,_0x549105,_0x1ab8c7,_0x2e32df){var _0x107727,_0x38426c,_0x425c26;_0x2e32df[_0x3e56('0x80')]=intUtil[_0x3e56('0x81')](_0x2e32df[_0x3e56('0x80')]);_0x2e32df['serverUrl']=intUtil[_0x3e56('0x81')](_0x2e32df[_0x3e56('0x82')]);if(_0x1ab8c7&&_0x1ab8c7[_0x3e56('0x83')]){logger['info'](_0x3e56('0x84'),_0x3e56('0x85'));_0x43b11a[_0x3e56('0x86')]=_0x2e32df['serverUrl']+_0x3e56('0x87')+_0x43b11a[_0x3e56('0x88')]+_0x3e56('0x89')+md5(_0x43b11a[_0x3e56('0x88')]);}else{_0x43b11a[_0x3e56('0x86')]='';}var _0x31d8ee=_0x2e32df[_0x3e56('0x80')]===_0x3e56('0x8a')?'eu':_0x3e56('0x8b');return getAccessToken(_0x2e32df)[_0x3e56('0x2d')](function(_0x478040){_0x425c26=_0x478040;return getUser(_0x425c26,_0x31d8ee,_0x2e32df,_0x549105['email']);})[_0x3e56('0x2d')](function(_0x7657d5){_0x107727=_0x7657d5;logger[_0x3e56('0x32')](_0x3e56('0x8c'),_0x107727['id']);return getEndUser(_0x425c26,_0x31d8ee,_0x2e32df,_0x43b11a['calleridname'],_0x43b11a[_0x3e56('0x8d')],_0x107727,_0x30d96f);})[_0x3e56('0x2d')](function(_0x315135){_0x38426c=_0x315135;return getCall(_0x425c26,_0x31d8ee,_0x2e32df,_0x107727,_0x38426c,_0x30d96f,_0x43b11a,_0x3e56('0x7a'));})['then'](function(_0xd695a7){if(_0xd695a7){logger[_0x3e56('0x32')]('The\x20Call\x20ID\x20is:',_0xd695a7['id']);logger['info'](_0x3e56('0x84'),_0x3e56('0x8e'));emit(util[_0x3e56('0x34')](_0x3e56('0x8f'),_0x549105['name']),_0x3e56('0x90'),{'uri':'https://crm.'+_0x2e32df[_0x3e56('0x80')]+_0x3e56('0x91')+_0xd695a7['id']});}})['catch'](function(_0xc02bdc){logger['error'](_0x3e56('0x84'),JSON[_0x3e56('0x3f')](_0xc02bdc));});};exports[_0x3e56('0x77')]=function(_0x5425a3,_0x2a08c,_0x8008f0,_0x2536ba,_0x95cfe,_0x546f1f,_0x3e0edc){var _0x4ca396,_0x18fdb0,_0x1879a8;_0x546f1f['host']=intUtil['stripTrailingSlash'](_0x546f1f[_0x3e56('0x80')]);_0x546f1f[_0x3e56('0x82')]=intUtil[_0x3e56('0x81')](_0x546f1f[_0x3e56('0x82')]);if(_0x3e0edc&&_0x3e0edc[_0x3e56('0x92')]&&_0x3e0edc['recordingFormat']!==_0x3e56('0x93')){logger['info'](_0x3e56('0x94'),_0x3e56('0x85'));_0x2a08c[_0x3e56('0x86')]=_0x546f1f[_0x3e56('0x82')]+_0x3e56('0x87')+_0x2a08c[_0x3e56('0x88')]+_0x3e56('0x89')+md5(_0x2a08c[_0x3e56('0x88')]);}var _0x348ae2=_0x546f1f[_0x3e56('0x80')]===_0x3e56('0x8a')?'eu':_0x3e56('0x8b');return getAccessToken(_0x546f1f)[_0x3e56('0x2d')](function(_0x4846a9){_0x1879a8=_0x4846a9;return getUser(_0x1879a8,_0x348ae2,_0x546f1f,_0x2536ba[_0x3e56('0x39')]);})[_0x3e56('0x2d')](function(_0x17e920){_0x4ca396=_0x17e920;logger[_0x3e56('0x32')](_0x3e56('0x8c'),_0x4ca396['id']);return getEndUser(_0x1879a8,_0x348ae2,_0x546f1f,_0x2a08c[_0x3e56('0x95')],_0x2a08c['destcalleridnum'],_0x4ca396,_0x8008f0);})['then'](function(_0x3beab4){_0x18fdb0=_0x3beab4;return getCall(_0x1879a8,_0x348ae2,_0x546f1f,_0x4ca396,_0x18fdb0,_0x8008f0,_0x2a08c,'Outbound');})[_0x3e56('0x2d')](function(_0x40c35b){if(_0x40c35b){logger[_0x3e56('0x32')](_0x3e56('0x96'),_0x40c35b['id']);logger[_0x3e56('0x32')](_0x3e56('0x94'),'Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0x3e56('0x34')]('user:%s',_0x2536ba[_0x3e56('0x1b')]),_0x3e56('0x90'),{'uri':_0x3e56('0x97')+_0x546f1f[_0x3e56('0x80')]+_0x3e56('0x91')+_0x40c35b['id']});}})[_0x3e56('0x44')](function(_0x29bfb3){logger[_0x3e56('0x2f')]('[OUTBOUND]',JSON[_0x3e56('0x3f')](_0x29bfb3));});};exports[_0x3e56('0x98')]=function(_0x4d05ea,_0x5834db,_0x87d58d,_0xfc6048,_0x144fdc,_0x5f3817){var _0x1b9c3e,_0x374d71,_0x251b29;_0x5f3817['host']=intUtil[_0x3e56('0x81')](_0x5f3817[_0x3e56('0x80')]);_0x5f3817[_0x3e56('0x82')]=intUtil['stripTrailingSlash'](_0x5f3817[_0x3e56('0x82')]);if(_0x144fdc&&_0x144fdc[_0x3e56('0x83')]){logger[_0x3e56('0x32')]('['+_0x5834db['lastevent'][_0x3e56('0x99')]()+']',_0x3e56('0x85'));_0x5834db[_0x3e56('0x86')]=_0x5f3817[_0x3e56('0x82')]+'/api/voice/recordings/'+_0x5834db['uniqueid']+_0x3e56('0x89')+md5(_0x5834db[_0x3e56('0x88')]);}else{_0x5834db[_0x3e56('0x86')]='';}var _0x45144e=_0x5f3817[_0x3e56('0x80')]==='zoho.eu'?'eu':_0x3e56('0x8b');return getAccessToken(_0x5f3817)[_0x3e56('0x2d')](function(_0x545140){_0x251b29=_0x545140;return getUser(_0x251b29,_0x45144e,_0x5f3817);})[_0x3e56('0x2d')](function(_0x356946){_0x1b9c3e=_0x356946;logger[_0x3e56('0x32')](_0x3e56('0x8c'),_0x1b9c3e['id']);return getEndUser(_0x251b29,_0x45144e,_0x5f3817,_0x5834db['calleridname'],_0x5834db[_0x3e56('0x8d')],_0x1b9c3e,_0x87d58d);})['then'](function(_0x3cdd81){_0x374d71=_0x3cdd81;return getCall(_0x251b29,_0x45144e,_0x5f3817,_0x1b9c3e,_0x374d71,_0x87d58d,_0x5834db,_0x3e56('0x7a'));})['then'](function(_0x4d656e){if(_0x4d656e){logger[_0x3e56('0x32')]('The\x20Call\x20ID\x20is:',_0x4d656e['id']);}})[_0x3e56('0x44')](function(_0x21f301){logger[_0x3e56('0x2f')]('['+_0x5834db['lastevent'][_0x3e56('0x99')]()+']',JSON[_0x3e56('0x3f')](_0x21f301));});};