e8bc006ad084a285c6fc9fe79045e70120c336ce
[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 _0x8ce3=['outbound','agentcalledAt','Call_Type','Inbound','merge','Fields','/crm/v2/Calls','SUCCESS','Call\x20created!','err','queue','host','serverUrl','stripTrailingSlash','monitor_format','[QUEUE]','/api/voice/recordings/','uniqueid','/downloads?type=uniqueid&token=','recordingURL','com','calleridname','calleridnum','The\x20Call\x20ID\x20is:','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','recordingFormat','[OUTBOUND]','Recording\x20is\x20enabled!','zoho.eu','The\x20User\x20ID\x20is:','destcalleridname','Outbound','https://crm.','/crm/EntityInfo.do?module=Calls&id=','unmanaged','toUpperCase','lodash','request-promise','util','./util','moment','ioredis','bluebird','../../../../config/environment','../../../../config/logger','zoho','defaults','redis','socket.io-emitter','[HTTP]','stringify','length','forEach','includes','string','picklist','type','idField','content','toString','variableName','customVariable','Variable','name','toLowerCase','indexOf','split','isNil','access_token','isBefore','expires_in','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','/oauth/v2/token','clientSecret','refresh_token','then','add','seconds','catch','error','stack','Search\x20user','GET','https://www.zohoapis.%s/crm/v2/users','Zoho-oauthtoken\x20','users','isArrayLikeObject','email','info','Agent\x20found!','findIndex','profile','Administrator','Using\x20the\x20admin\x20account!','user','The\x20failing\x20result\x20is','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','data','https://www.zohoapis.','/crm/v2/','startCase','role','first_name','last_name','code','details','enduserType','moduleCreate','Error:\x20','CREATE\x20ERROR','moduleSearch','uri','Contacts','/crm/v2/Leads/search?criteria=((Phone:equals:','Leads','nothing','contact','/crm/v2/Contacts/search?criteria=((Phone:equals:','Owner','administrator','Subjects','Description','getString','Descriptions','Who_Id','Full_Name','First_Name','Last_Name','What_Id','$se_module','talktime','Call_Duration','utc','format','mm:ss','answertime','endtime','diff','starttime','YYYY-MM-DDTHH:mm:ss','lastevent','called','Call_Result','Called','complete','connect','Answered','Rejected','abandoned','Abandoned','timeout','Timeout'];(function(_0x1c1e1c,_0xd63caa){var _0x30bcb8=function(_0x5d848c){while(--_0x5d848c){_0x1c1e1c['push'](_0x1c1e1c['shift']());}};_0x30bcb8(++_0xd63caa);}(_0x8ce3,0xc3));var _0x38ce=function(_0x557a30,_0x433df5){_0x557a30=_0x557a30-0x0;var _0x2bf5f6=_0x8ce3[_0x557a30];return _0x2bf5f6;};'use strict';var _=require(_0x38ce('0x0'));var rp=require(_0x38ce('0x1'));var md5=require('md5');var util=require(_0x38ce('0x2'));var intUtil=require(_0x38ce('0x3'));var moment=require(_0x38ce('0x4'));var Redis=require(_0x38ce('0x5'));var BPromise=require(_0x38ce('0x6'));var config=require(_0x38ce('0x7'));var logger=require(_0x38ce('0x8'))(_0x38ce('0x9'));config['redis']=_[_0x38ce('0xa')](config[_0x38ce('0xb')],{'host':'localhost','port':0x18eb});var io=require(_0x38ce('0xc'))(new Redis(config[_0x38ce('0xb')]));function emit(_0x3f8011,_0x482955,_0x3c66e5){io['to'](_0x3f8011)['emit'](_0x482955,_0x3c66e5);}function request(_0x725d27){logger['debug'](_0x38ce('0xd'),JSON[_0x38ce('0xe')](_0x725d27));return rp(_0x725d27);}function getCustomFields(_0xa9931b,_0x2c0cab){var _0x564332={};if(_0xa9931b[_0x38ce('0xf')]>0x0){_[_0x38ce('0x10')](_0xa9931b,function(_0x171a02){if(_[_0x38ce('0x11')]([_0x38ce('0x12'),_0x38ce('0x13')],_0x171a02[_0x38ce('0x14')])&&_0x171a02[_0x38ce('0x15')]){_0x564332[_0x171a02[_0x38ce('0x15')]]=_0x171a02[_0x38ce('0x16')][_0x38ce('0x17')]();}else if(_0x171a02['type']==='variable'&&_0x171a02[_0x38ce('0x18')]&&_0x171a02[_0x38ce('0x15')]&&_0x2c0cab[_0x171a02[_0x38ce('0x18')]]){_0x564332[_0x171a02['idField']]=_0x2c0cab[_0x171a02[_0x38ce('0x18')]]['toString']();}else if(_0x171a02[_0x38ce('0x14')]===_0x38ce('0x19')&&_0x171a02['Variable']&&_0x171a02[_0x38ce('0x1a')][_0x38ce('0x1b')]&&_0x171a02[_0x38ce('0x15')]&&_0x2c0cab[_0x171a02['Variable'][_0x38ce('0x1b')][_0x38ce('0x1c')]()]){_0x564332[_0x171a02[_0x38ce('0x15')]]=_0x2c0cab[_0x171a02[_0x38ce('0x1a')][_0x38ce('0x1b')][_0x38ce('0x1c')]()][_0x38ce('0x17')]();}});}return _0x564332;}function getName(_0x518b04){if(_0x518b04[_0x38ce('0x1d')]('\x20')>0x0){var _0x34a8c7=_0x518b04[_0x38ce('0x1e')](/ (.+)/);if(_0x34a8c7[0x1]){return _0x34a8c7;}}return[_0x518b04,_0x518b04];}var accountsTokens={};function getAccessToken(_0x303391){return new Promise(function(_0x30b060,_0x434c31){if(!_[_0x38ce('0x1f')](accountsTokens[_0x303391['id']])&&!_[_0x38ce('0x1f')](accountsTokens[_0x303391['id']][_0x38ce('0x20')])){if(moment()[_0x38ce('0x21')](accountsTokens[_0x303391['id']][_0x38ce('0x22')])){_0x30b060(accountsTokens[_0x303391['id']]['access_token']);}}var _0x1cc10b;switch(_0x303391[_0x38ce('0x23')]){case'US':_0x1cc10b=_0x38ce('0x24');break;case'AU':_0x1cc10b=_0x38ce('0x25');break;case'EU':_0x1cc10b='https://accounts.zoho.eu';break;case'IN':_0x1cc10b=_0x38ce('0x26');break;case'CN':_0x1cc10b=_0x38ce('0x27');break;default:_0x1cc10b='https://accounts.zoho.eu';break;}var _0xe0af00={'method':_0x38ce('0x28'),'uri':_0x1cc10b+_0x38ce('0x29'),'qs':{'refresh_token':_0x303391['refreshToken'],'client_id':_0x303391['clientId'],'client_secret':_0x303391[_0x38ce('0x2a')],'grant_type':_0x38ce('0x2b')},'json':!![]};return rp(_0xe0af00)[_0x38ce('0x2c')](function(_0x21d4e7){accountsTokens[_0x303391['id']]={'access_token':_0x21d4e7[_0x38ce('0x20')],'expires_in':moment()[_0x38ce('0x2d')](_0x21d4e7[_0x38ce('0x22')],_0x38ce('0x2e'))};_0x30b060(_0x21d4e7[_0x38ce('0x20')]);})[_0x38ce('0x2f')](function(_0xfc590a){logger[_0x38ce('0x30')]('Failing\x20creating\x20the\x20access_token',_0xfc590a[_0x38ce('0x31')]);_0x434c31(_0xfc590a);});});}function getUser(_0x1538a0,_0x5b4a7a,_0x229ac2,_0x3cbead){logger['info'](_0x38ce('0x32'));return request({'method':_0x38ce('0x33'),'uri':util['format'](_0x38ce('0x34'),_0x5b4a7a),'qs':{'type':'ActiveUsers'},'headers':{'Authorization':_0x38ce('0x35')+_0x1538a0},'json':!![]})[_0x38ce('0x2c')](function(_0x27a9af){if(_0x27a9af[_0x38ce('0x36')]){var _0x444b93=-0x1;if(_[_0x38ce('0x37')](_0x27a9af[_0x38ce('0x36')])){if(!_[_0x38ce('0x1f')](_0x3cbead)){_0x444b93=_['findIndex'](_0x27a9af['users'],function(_0x469b65){return _0x469b65[_0x38ce('0x38')]===_0x3cbead;});}if(_0x444b93>=0x0){logger[_0x38ce('0x39')](_0x38ce('0x3a'));}else{logger[_0x38ce('0x39')]('Using\x20the\x20admin\x20account!');_0x444b93=_[_0x38ce('0x3b')](_0x27a9af[_0x38ce('0x36')],function(_0x37f696){return _0x37f696[_0x38ce('0x3c')][_0x38ce('0x1b')]===_0x38ce('0x3d');});}return _0x27a9af[_0x38ce('0x36')][_0x444b93];}else{if(_0x27a9af['user'][_0x38ce('0x3c')][_0x38ce('0x1b')]==='Administrator'){logger[_0x38ce('0x39')](_0x38ce('0x3e'));user=_0x27a9af[_0x38ce('0x3f')];return user;}else{logger[_0x38ce('0x30')](_0x38ce('0x40'),JSON[_0x38ce('0xe')](_0x27a9af));throw new Error(_0x38ce('0x41')+JSON[_0x38ce('0xe')](_0x27a9af));}}}else{logger['error'](_0x38ce('0x40'),JSON[_0x38ce('0xe')](_0x27a9af));throw new Error(_0x38ce('0x41')+JSON[_0x38ce('0xe')](_0x27a9af));}})['catch'](function(_0x1537c7){console['error'](_0x1537c7);});}function getZohoUser(_0x18cf70,_0x33bbc8){return new BPromise(function(_0x27ebe0,_0x17a5d7){request(_0x18cf70)[_0x38ce('0x2c')](function(_0x1b9601){var _0x4a6d2b=null;if(_0x1b9601){_0x4a6d2b=_0x1b9601[_0x38ce('0x42')][0x0];_0x4a6d2b['enduserType']=_0x33bbc8;}_0x27ebe0(_0x4a6d2b);})[_0x38ce('0x2f')](function(_0x986a18){_0x17a5d7(_0x986a18);});});}function createEndUser(_0x420367,_0x37b738,_0x277e94,_0x1476e9,_0x5209ee,_0x14fb63){var _0x277e94=getName(_0x277e94);return request({'method':_0x38ce('0x28'),'uri':_0x38ce('0x43')+_0x37b738+_0x38ce('0x44')+_[_0x38ce('0x45')](_0x14fb63['moduleCreate'])+'s','body':{'data':[{'Last_Name':_0x277e94[0x1],'First_Name':_0x277e94[0x0],'Phone':_0x1476e9,'Owner':{'name':!_['isNil'](_0x5209ee[_0x38ce('0x46')][_0x38ce('0x1b')])?_0x5209ee[_0x38ce('0x46')][_0x38ce('0x1b')]:!_[_0x38ce('0x1f')](_0x5209ee[_0x38ce('0x47')])?_0x5209ee[_0x38ce('0x47')]+'\x20'+_0x5209ee['last_name']:_0x5209ee[_0x38ce('0x48')],'id':_0x5209ee['id']}}]},'headers':{'Authorization':_0x38ce('0x35')+_0x420367},'json':!![]})['then'](function(_0x185b8b){if(_0x185b8b&&_0x185b8b[_0x38ce('0x42')][0x0][_0x38ce('0x49')]==='SUCCESS'){var _0xaf99ce=_0x185b8b[_0x38ce('0x42')][0x0][_0x38ce('0x4a')];_0xaf99ce[_0x38ce('0x4b')]=_[_0x38ce('0x45')](_0x14fb63[_0x38ce('0x4c')])+'s';return _0xaf99ce;}logger['error'](_0x38ce('0x40'),JSON[_0x38ce('0xe')](data));throw new Error(_0x38ce('0x4d')+JSON[_0x38ce('0xe')](data));})[_0x38ce('0x2f')](function(_0x6cf4d9){console['log'](_0x38ce('0x4e'),_0x6cf4d9);});}function getEndUser(_0x1847e5,_0x54e524,_0x502430,_0x5833a2,_0x407e3f,_0xdb1812,_0x58e80d){var _0x56b21e={'method':_0x38ce('0x33'),'uri':'','headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x1847e5},'json':!![]};switch(_0x58e80d[_0x38ce('0x4f')]){case'contact_lead':_0x56b21e[_0x38ce('0x50')]=_0x38ce('0x43')+_0x54e524+'/crm/v2/Contacts/search?criteria=((Phone:equals:'+_0x407e3f+'))';return getZohoUser(_0x56b21e,_0x38ce('0x51'))[_0x38ce('0x2c')](function(_0x507d40){if(_0x507d40)return _0x507d40;_0x56b21e[_0x38ce('0x50')]=_0x38ce('0x43')+_0x54e524+_0x38ce('0x52')+_0x407e3f+'))';return getZohoUser(_0x56b21e,_0x38ce('0x53'))[_0x38ce('0x2c')](function(_0x25a299){if(_0x25a299)return _0x25a299;if(_0x58e80d['moduleCreate']!=_0x38ce('0x54')){return createEndUser(_0x1847e5,_0x54e524,_0x5833a2,_0x407e3f,_0xdb1812,_0x58e80d);}else{return{};}});});break;case _0x38ce('0x55'):_0x56b21e['uri']=_0x38ce('0x43')+_0x54e524+_0x38ce('0x56')+_0x407e3f+'))';return getZohoUser(_0x56b21e,_0x38ce('0x51'))[_0x38ce('0x2c')](function(_0x9c0a67){if(_0x9c0a67)return _0x9c0a67;if(_0x58e80d[_0x38ce('0x4c')]!=_0x38ce('0x54')){return createEndUser(_0x1847e5,_0x54e524,_0x5833a2,_0x407e3f,_0xdb1812,_0x58e80d);}else{return{};}});break;case'lead':_0x56b21e[_0x38ce('0x50')]=_0x38ce('0x43')+_0x54e524+_0x38ce('0x52')+_0x407e3f+'))';return getZohoUser(_0x56b21e,_0x38ce('0x53'))[_0x38ce('0x2c')](function(_0x212083){if(_0x212083)return _0x212083;if(_0x58e80d['moduleCreate']!='nothing'){return createEndUser(_0x1847e5,_0x54e524,_0x5833a2,_0x407e3f,_0xdb1812,_0x58e80d);}else{return{};}});break;}}function getCall(_0xc2c9d3,_0x13acb4,_0x2f935f,_0x12f46f,_0x3547b6,_0x1da744,_0x4dc83e,_0x522b38){logger[_0x38ce('0x39')]('Creating\x20new\x20call...');var _0x5a2348={};_0x5a2348[_0x38ce('0x57')]={'name':!_[_0x38ce('0x1f')](_0x12f46f[_0x38ce('0x46')][_0x38ce('0x1b')])&&!_[_0x38ce('0x1f')](_0x12f46f['profile'][_0x38ce('0x1b')])&&_0x12f46f[_0x38ce('0x3c')][_0x38ce('0x1b')]===_0x38ce('0x58')?_0x12f46f[_0x38ce('0x46')][_0x38ce('0x1b')]:!_[_0x38ce('0x1f')](_0x12f46f[_0x38ce('0x47')])?_0x12f46f[_0x38ce('0x47')]+'\x20'+_0x12f46f[_0x38ce('0x48')]:_0x12f46f[_0x38ce('0x48')],'id':_0x12f46f['id']};_0x5a2348['Subject']=intUtil['getString'](_0x1da744[_0x38ce('0x59')],_0x4dc83e,'\x20');_0x5a2348[_0x38ce('0x5a')]=intUtil[_0x38ce('0x5b')](_0x1da744[_0x38ce('0x5c')],_0x4dc83e,'\x0a');if(_0x3547b6['enduserType']===_0x38ce('0x51')){_0x5a2348[_0x38ce('0x5d')]={'name':!_[_0x38ce('0x1f')](_0x3547b6[_0x38ce('0x5e')])?_0x3547b6[_0x38ce('0x5e')]:!_[_0x38ce('0x1f')](_0x3547b6[_0x38ce('0x5f')])?_0x3547b6['First_Name']+'\x20'+_0x3547b6[_0x38ce('0x60')]:_0x3547b6[_0x38ce('0x60')],'id':_0x3547b6['id']};}if(_0x3547b6['enduserType']==='Leads'){_0x5a2348[_0x38ce('0x61')]={'name':!_[_0x38ce('0x1f')](_0x3547b6[_0x38ce('0x5e')])?_0x3547b6['Full_Name']:!_['isNil'](_0x3547b6[_0x38ce('0x5f')])?_0x3547b6['First_Name']+'\x20'+_0x3547b6[_0x38ce('0x60')]:_0x3547b6[_0x38ce('0x60')],'id':_0x3547b6['id']};_0x5a2348[_0x38ce('0x62')]=_[_0x38ce('0x45')](_0x3547b6['enduserType']);}if(_0x4dc83e[_0x38ce('0x63')]){_0x5a2348[_0x38ce('0x64')]=moment[_0x38ce('0x65')](parseInt(_0x4dc83e['talktime'])*0x3e8)[_0x38ce('0x66')](_0x38ce('0x67'));}else if(_0x4dc83e[_0x38ce('0x68')]&&_0x4dc83e['endtime']){_0x5a2348[_0x38ce('0x64')]=moment['utc'](moment(_0x4dc83e[_0x38ce('0x69')],'YYYY-MM-DDTHH:mm:ss')[_0x38ce('0x6a')](moment(_0x4dc83e[_0x38ce('0x6b')],_0x38ce('0x6c'))))[_0x38ce('0x66')]('mm:ss');}switch(_0x4dc83e[_0x38ce('0x6d')]){case _0x38ce('0x6e'):_0x5a2348[_0x38ce('0x6f')]=_0x38ce('0x70');break;case _0x38ce('0x71'):case _0x38ce('0x72'):_0x5a2348['Call_Result']=_0x38ce('0x73');break;case'rejected':_0x5a2348[_0x38ce('0x6f')]=_0x38ce('0x74');break;case _0x38ce('0x75'):_0x5a2348[_0x38ce('0x6f')]=_0x38ce('0x76');break;case _0x38ce('0x77'):_0x5a2348[_0x38ce('0x6f')]=_0x38ce('0x78');default:}_0x5a2348['Call_Start_Time']=(_0x522b38===_0x38ce('0x79')?moment(_0x4dc83e[_0x38ce('0x6b')])[_0x38ce('0x66')](_0x38ce('0x6c')):moment(_0x4dc83e[_0x38ce('0x7a')])[_0x38ce('0x66')](_0x38ce('0x6c')))||moment()[_0x38ce('0x66')](_0x38ce('0x6c'));_0x5a2348[_0x38ce('0x7b')]=_0x522b38||_0x38ce('0x7c');_0x5a2348=_[_0x38ce('0x7d')](_0x5a2348,getCustomFields(_0x1da744[_0x38ce('0x7e')],_0x4dc83e));return request({'method':_0x38ce('0x28'),'uri':_0x38ce('0x43')+_0x13acb4+_0x38ce('0x7f'),'headers':{'Authorization':_0x38ce('0x35')+_0xc2c9d3},'body':{'data':[_0x5a2348]},'json':!![]})[_0x38ce('0x2c')](function(_0x2db3c5){if(_0x2db3c5&&_0x2db3c5[_0x38ce('0x42')][0x0]['code']===_0x38ce('0x80')){logger[_0x38ce('0x39')](_0x38ce('0x81'));return{'id':_0x2db3c5['data'][0x0]['details']['id']};}})[_0x38ce('0x2f')](function(_0x220036){logger['info'](_0x38ce('0x82'),_0x220036[_0x38ce('0x31')]);console['log']('err',_0x220036);});}exports[_0x38ce('0x83')]=function(_0x24ccfe,_0x59741c,_0x157b3b,_0x2732ac,_0x158ba7,_0x182d59){var _0x1e6e90,_0x163d35,_0xbf5f2b;_0x182d59[_0x38ce('0x84')]=intUtil['stripTrailingSlash'](_0x182d59[_0x38ce('0x84')]);_0x182d59[_0x38ce('0x85')]=intUtil[_0x38ce('0x86')](_0x182d59[_0x38ce('0x85')]);if(_0x158ba7&&_0x158ba7[_0x38ce('0x87')]){logger[_0x38ce('0x39')](_0x38ce('0x88'),'Recording\x20is\x20enabled!');_0x59741c['recordingURL']=_0x182d59['serverUrl']+_0x38ce('0x89')+_0x59741c[_0x38ce('0x8a')]+_0x38ce('0x8b')+md5(_0x59741c[_0x38ce('0x8a')]);}else{_0x59741c[_0x38ce('0x8c')]='';}var _0x26ca11=_0x182d59[_0x38ce('0x84')]==='zoho.eu'?'eu':_0x38ce('0x8d');return getAccessToken(_0x182d59)['then'](function(_0x5893c7){_0xbf5f2b=_0x5893c7;return getUser(_0xbf5f2b,_0x26ca11,_0x182d59,_0x2732ac['email']);})[_0x38ce('0x2c')](function(_0x1025c0){_0x1e6e90=_0x1025c0;logger[_0x38ce('0x39')]('The\x20User\x20ID\x20is:',_0x1e6e90['id']);return getEndUser(_0xbf5f2b,_0x26ca11,_0x182d59,_0x59741c[_0x38ce('0x8e')],_0x59741c[_0x38ce('0x8f')],_0x1e6e90,_0x157b3b);})[_0x38ce('0x2c')](function(_0x1b5793){_0x163d35=_0x1b5793;return getCall(_0xbf5f2b,_0x26ca11,_0x182d59,_0x1e6e90,_0x163d35,_0x157b3b,_0x59741c,_0x38ce('0x7c'));})['then'](function(_0x19b414){if(_0x19b414){logger['info'](_0x38ce('0x90'),_0x19b414['id']);logger[_0x38ce('0x39')]('[QUEUE]',_0x38ce('0x91'));emit(util[_0x38ce('0x66')](_0x38ce('0x92'),_0x2732ac[_0x38ce('0x1b')]),'trigger:browser:url',{'uri':'https://crm.'+_0x182d59['host']+'/crm/EntityInfo.do?module=Calls&id='+_0x19b414['id']});}})['catch'](function(_0x50b70d){logger[_0x38ce('0x30')](_0x38ce('0x88'),JSON[_0x38ce('0xe')](_0x50b70d));});};exports[_0x38ce('0x79')]=function(_0x524a4b,_0x5be2e5,_0x42fc72,_0x49584f,_0x2b34b2,_0x2ead23,_0x3f34f2){var _0xe2569e,_0x169fff,_0x387528;_0x2ead23[_0x38ce('0x84')]=intUtil[_0x38ce('0x86')](_0x2ead23[_0x38ce('0x84')]);_0x2ead23['serverUrl']=intUtil[_0x38ce('0x86')](_0x2ead23[_0x38ce('0x85')]);if(_0x3f34f2&&_0x3f34f2[_0x38ce('0x93')]&&_0x3f34f2['recordingFormat']!=='none'){logger['info'](_0x38ce('0x94'),_0x38ce('0x95'));_0x5be2e5[_0x38ce('0x8c')]=_0x2ead23[_0x38ce('0x85')]+_0x38ce('0x89')+_0x5be2e5[_0x38ce('0x8a')]+_0x38ce('0x8b')+md5(_0x5be2e5[_0x38ce('0x8a')]);}var _0x19e0a8=_0x2ead23[_0x38ce('0x84')]===_0x38ce('0x96')?'eu':_0x38ce('0x8d');return getAccessToken(_0x2ead23)[_0x38ce('0x2c')](function(_0x3500e5){_0x387528=_0x3500e5;return getUser(_0x387528,_0x19e0a8,_0x2ead23,_0x49584f[_0x38ce('0x38')]);})[_0x38ce('0x2c')](function(_0x2d7263){_0xe2569e=_0x2d7263;logger[_0x38ce('0x39')](_0x38ce('0x97'),_0xe2569e['id']);return getEndUser(_0x387528,_0x19e0a8,_0x2ead23,_0x5be2e5[_0x38ce('0x98')],_0x5be2e5['destcalleridnum'],_0xe2569e,_0x42fc72);})[_0x38ce('0x2c')](function(_0xe96ede){_0x169fff=_0xe96ede;return getCall(_0x387528,_0x19e0a8,_0x2ead23,_0xe2569e,_0x169fff,_0x42fc72,_0x5be2e5,_0x38ce('0x99'));})['then'](function(_0x385dc8){if(_0x385dc8){logger[_0x38ce('0x39')](_0x38ce('0x90'),_0x385dc8['id']);logger[_0x38ce('0x39')]('[OUTBOUND]',_0x38ce('0x91'));emit(util[_0x38ce('0x66')](_0x38ce('0x92'),_0x49584f[_0x38ce('0x1b')]),'trigger:browser:url',{'uri':_0x38ce('0x9a')+_0x2ead23[_0x38ce('0x84')]+_0x38ce('0x9b')+_0x385dc8['id']});}})[_0x38ce('0x2f')](function(_0xdbd6bc){logger[_0x38ce('0x30')](_0x38ce('0x94'),JSON[_0x38ce('0xe')](_0xdbd6bc));});};exports[_0x38ce('0x9c')]=function(_0x360484,_0x260a14,_0x2dc4e1,_0x4f81fa,_0xcf038b,_0x17081d){var _0x2d2186,_0x2ec653,_0x35d8f0;_0x17081d['host']=intUtil['stripTrailingSlash'](_0x17081d[_0x38ce('0x84')]);_0x17081d['serverUrl']=intUtil[_0x38ce('0x86')](_0x17081d[_0x38ce('0x85')]);if(_0xcf038b&&_0xcf038b['monitor_format']){logger[_0x38ce('0x39')]('['+_0x260a14[_0x38ce('0x6d')]['toUpperCase']()+']',_0x38ce('0x95'));_0x260a14[_0x38ce('0x8c')]=_0x17081d[_0x38ce('0x85')]+_0x38ce('0x89')+_0x260a14[_0x38ce('0x8a')]+_0x38ce('0x8b')+md5(_0x260a14['uniqueid']);}else{_0x260a14[_0x38ce('0x8c')]='';}var _0x2077ca=_0x17081d['host']==='zoho.eu'?'eu':_0x38ce('0x8d');return getAccessToken(_0x17081d)['then'](function(_0x26b55e){_0x35d8f0=_0x26b55e;return getUser(_0x35d8f0,_0x2077ca,_0x17081d);})[_0x38ce('0x2c')](function(_0x384d74){_0x2d2186=_0x384d74;logger[_0x38ce('0x39')](_0x38ce('0x97'),_0x2d2186['id']);return getEndUser(_0x35d8f0,_0x2077ca,_0x17081d,_0x260a14[_0x38ce('0x8e')],_0x260a14[_0x38ce('0x8f')],_0x2d2186,_0x2dc4e1);})['then'](function(_0x43dee2){_0x2ec653=_0x43dee2;return getCall(_0x35d8f0,_0x2077ca,_0x17081d,_0x2d2186,_0x2ec653,_0x2dc4e1,_0x260a14,_0x38ce('0x7c'));})[_0x38ce('0x2c')](function(_0x484561){if(_0x484561){logger[_0x38ce('0x39')]('The\x20Call\x20ID\x20is:',_0x484561['id']);}})[_0x38ce('0x2f')](function(_0x1a60ad){logger['error']('['+_0x260a14['lastevent'][_0x38ce('0x9d')]()+']',JSON['stringify'](_0x1a60ad));});};