Built motion from commit 7a4eb044.|2.5.36
[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 _0x745d=['The\x20User\x20ID\x20is:','calleridname','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','/crm/EntityInfo.do?module=Calls&id=','recordingFormat','[OUTBOUND]','Recording\x20is\x20enabled!','/downloads?type=uniqueid&token=','com','destcalleridname','The\x20Call\x20ID\x20is:','https://crm.','unmanaged','toUpperCase','calleridnum','request-promise','md5','util','moment','bluebird','../../../../config/environment','zoho','redis','defaults','socket.io-emitter','emit','debug','[HTTP]','length','picklist','content','type','variable','variableName','toString','Variable','name','idField','toLowerCase','indexOf','split','isNil','isBefore','expires_in','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','/oauth/v2/token','refreshToken','clientId','clientSecret','then','access_token','add','seconds','catch','error','Failing\x20creating\x20the\x20access_token','stack','info','Search\x20user','https://www.zohoapis.%s/crm/v2/users','ActiveUsers','Zoho-oauthtoken\x20','email','users','profile','user','The\x20failing\x20result\x20is','stringify','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','data','POST','/crm/v2/','role','first_name','code','SUCCESS','details','enduserType','startCase','moduleCreate','log','CREATE\x20ERROR','GET','contact_lead','/crm/v2/Contacts/search?criteria=((Phone:equals:','Contacts','uri','https://www.zohoapis.','/crm/v2/Leads/search?criteria=((Phone:equals:','Leads','contact','nothing','Creating\x20new\x20call...','Owner','Subject','getString','Description','Who_Id','Full_Name','First_Name','Last_Name','What_Id','$se_module','Call_Duration','format','mm:ss','answertime','endtime','utc','diff','starttime','YYYY-MM-DDTHH:mm:ss','lastevent','Call_Result','Called','connect','rejected','Rejected','abandoned','Abandoned','timeout','Call_Start_Time','outbound','agentcalledAt','Call_Type','Inbound','merge','Fields','/crm/v2/Calls','err','queue','host','serverUrl','stripTrailingSlash','monitor_format','[QUEUE]','/api/voice/recordings/','uniqueid','recordingURL','zoho.eu'];(function(_0x523fc7,_0x4d4d69){var _0x11fa3a=function(_0x26fa55){while(--_0x26fa55){_0x523fc7['push'](_0x523fc7['shift']());}};_0x11fa3a(++_0x4d4d69);}(_0x745d,0xa4));var _0xd745=function(_0x4b3232,_0x51d4e7){_0x4b3232=_0x4b3232-0x0;var _0x5aed0a=_0x745d[_0x4b3232];return _0x5aed0a;};'use strict';var _=require('lodash');var rp=require(_0xd745('0x0'));var md5=require(_0xd745('0x1'));var util=require(_0xd745('0x2'));var intUtil=require('./util');var moment=require(_0xd745('0x3'));var Redis=require('ioredis');var BPromise=require(_0xd745('0x4'));var config=require(_0xd745('0x5'));var logger=require('../../../../config/logger')(_0xd745('0x6'));config[_0xd745('0x7')]=_[_0xd745('0x8')](config[_0xd745('0x7')],{'host':'localhost','port':0x18eb});var io=require(_0xd745('0x9'))(new Redis(config[_0xd745('0x7')]));function emit(_0x2fa3ac,_0x3e0efd,_0x41fc2f){io['to'](_0x2fa3ac)[_0xd745('0xa')](_0x3e0efd,_0x41fc2f);}function request(_0x4b1469){logger[_0xd745('0xb')](_0xd745('0xc'),JSON['stringify'](_0x4b1469));return rp(_0x4b1469);}function getCustomFields(_0x34a717,_0x5abc35){var _0x35a53f={};if(_0x34a717[_0xd745('0xd')]>0x0){_['forEach'](_0x34a717,function(_0xbfdd3b){if(_['includes'](['string',_0xd745('0xe')],_0xbfdd3b['type'])&&_0xbfdd3b['idField']){_0x35a53f[_0xbfdd3b['idField']]=_0xbfdd3b[_0xd745('0xf')]['toString']();}else if(_0xbfdd3b[_0xd745('0x10')]===_0xd745('0x11')&&_0xbfdd3b[_0xd745('0x12')]&&_0xbfdd3b['idField']&&_0x5abc35[_0xbfdd3b[_0xd745('0x12')]]){_0x35a53f[_0xbfdd3b['idField']]=_0x5abc35[_0xbfdd3b[_0xd745('0x12')]][_0xd745('0x13')]();}else if(_0xbfdd3b[_0xd745('0x10')]==='customVariable'&&_0xbfdd3b[_0xd745('0x14')]&&_0xbfdd3b[_0xd745('0x14')][_0xd745('0x15')]&&_0xbfdd3b[_0xd745('0x16')]&&_0x5abc35[_0xbfdd3b[_0xd745('0x14')][_0xd745('0x15')][_0xd745('0x17')]()]){_0x35a53f[_0xbfdd3b[_0xd745('0x16')]]=_0x5abc35[_0xbfdd3b[_0xd745('0x14')][_0xd745('0x15')][_0xd745('0x17')]()][_0xd745('0x13')]();}});}return _0x35a53f;}function getName(_0x2229b3){if(_0x2229b3[_0xd745('0x18')]('\x20')>0x0){var _0x358ed4=_0x2229b3[_0xd745('0x19')](/ (.+)/);if(_0x358ed4[0x1]){return _0x358ed4;}}return[_0x2229b3,_0x2229b3];}var accountsTokens={};function getAccessToken(_0x291ef8){return new Promise(function(_0x511ade,_0x44f019){if(!_[_0xd745('0x1a')](accountsTokens[_0x291ef8['id']])&&!_[_0xd745('0x1a')](accountsTokens[_0x291ef8['id']]['access_token'])){if(moment()[_0xd745('0x1b')](accountsTokens[_0x291ef8['id']][_0xd745('0x1c')])){_0x511ade(accountsTokens[_0x291ef8['id']]['access_token']);}}var _0x1a33e9;switch(_0x291ef8[_0xd745('0x1d')]){case'US':_0x1a33e9=_0xd745('0x1e');break;case'AU':_0x1a33e9=_0xd745('0x1f');break;case'EU':_0x1a33e9=_0xd745('0x20');break;case'IN':_0x1a33e9=_0xd745('0x21');break;case'CN':_0x1a33e9=_0xd745('0x22');break;default:_0x1a33e9=_0xd745('0x20');break;}var _0x7d4c6c={'method':'POST','uri':_0x1a33e9+_0xd745('0x23'),'qs':{'refresh_token':_0x291ef8[_0xd745('0x24')],'client_id':_0x291ef8[_0xd745('0x25')],'client_secret':_0x291ef8[_0xd745('0x26')],'grant_type':'refresh_token'},'json':!![]};return rp(_0x7d4c6c)[_0xd745('0x27')](function(_0x42ab92){accountsTokens[_0x291ef8['id']]={'access_token':_0x42ab92[_0xd745('0x28')],'expires_in':moment()[_0xd745('0x29')](_0x42ab92[_0xd745('0x1c')],_0xd745('0x2a'))};_0x511ade(_0x42ab92[_0xd745('0x28')]);})[_0xd745('0x2b')](function(_0x5117a6){logger[_0xd745('0x2c')](_0xd745('0x2d'),_0x5117a6[_0xd745('0x2e')]);_0x44f019(_0x5117a6);});});}function getUser(_0x4fc62e,_0x1b63c9,_0x17844b,_0x5b39a3){logger[_0xd745('0x2f')](_0xd745('0x30'));return request({'method':'GET','uri':util['format'](_0xd745('0x31'),_0x1b63c9),'qs':{'type':_0xd745('0x32')},'headers':{'Authorization':_0xd745('0x33')+_0x4fc62e},'json':!![]})[_0xd745('0x27')](function(_0x493b58){if(_0x493b58['users']){var _0x8ed576=-0x1;if(_['isArrayLikeObject'](_0x493b58['users'])){if(!_[_0xd745('0x1a')](_0x5b39a3)){_0x8ed576=_['findIndex'](_0x493b58['users'],function(_0x665e0b){return _0x665e0b[_0xd745('0x34')]===_0x5b39a3;});}if(_0x8ed576>=0x0){logger['info']('Agent\x20found!');}else{logger[_0xd745('0x2f')]('Using\x20the\x20admin\x20account!');_0x8ed576=_['findIndex'](_0x493b58[_0xd745('0x35')],function(_0x5225ea){return _0x5225ea[_0xd745('0x36')][_0xd745('0x15')]==='Administrator';});}return _0x493b58[_0xd745('0x35')][_0x8ed576];}else{if(_0x493b58[_0xd745('0x37')][_0xd745('0x36')][_0xd745('0x15')]==='Administrator'){logger[_0xd745('0x2f')]('Using\x20the\x20admin\x20account!');user=_0x493b58[_0xd745('0x37')];return user;}else{logger[_0xd745('0x2c')](_0xd745('0x38'),JSON[_0xd745('0x39')](_0x493b58));throw new Error(_0xd745('0x3a')+JSON['stringify'](_0x493b58));}}}else{logger['error']('The\x20failing\x20result\x20is',JSON['stringify'](_0x493b58));throw new Error('Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20'+JSON[_0xd745('0x39')](_0x493b58));}})[_0xd745('0x2b')](function(_0x47fc39){console[_0xd745('0x2c')](_0x47fc39);});}function getZohoUser(_0x4828f6,_0x53a538){return new BPromise(function(_0x1ad5f4,_0x523e98){request(_0x4828f6)[_0xd745('0x27')](function(_0x183244){var _0xae84f3=null;if(_0x183244){_0xae84f3=_0x183244[_0xd745('0x3b')][0x0];_0xae84f3['enduserType']=_0x53a538;}_0x1ad5f4(_0xae84f3);})['catch'](function(_0x100bc0){_0x523e98(_0x100bc0);});});}function createEndUser(_0x547ff8,_0x5edc9c,_0x1c0df1,_0x15e64e,_0x2e12fb,_0x313e1a){var _0x1c0df1=getName(_0x1c0df1);return request({'method':_0xd745('0x3c'),'uri':'https://www.zohoapis.'+_0x5edc9c+_0xd745('0x3d')+_['startCase'](_0x313e1a['moduleCreate'])+'s','body':{'data':[{'Last_Name':_0x1c0df1[0x1],'First_Name':_0x1c0df1[0x0],'Phone':_0x15e64e,'Owner':{'name':!_[_0xd745('0x1a')](_0x2e12fb[_0xd745('0x3e')][_0xd745('0x15')])?_0x2e12fb[_0xd745('0x3e')]['name']:!_['isNil'](_0x2e12fb[_0xd745('0x3f')])?_0x2e12fb[_0xd745('0x3f')]+'\x20'+_0x2e12fb['last_name']:_0x2e12fb['last_name'],'id':_0x2e12fb['id']}}]},'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x547ff8},'json':!![]})[_0xd745('0x27')](function(_0xe688a2){if(_0xe688a2&&_0xe688a2[_0xd745('0x3b')][0x0][_0xd745('0x40')]===_0xd745('0x41')){var _0x1ab9ca=_0xe688a2['data'][0x0][_0xd745('0x42')];_0x1ab9ca[_0xd745('0x43')]=_[_0xd745('0x44')](_0x313e1a[_0xd745('0x45')])+'s';return _0x1ab9ca;}logger[_0xd745('0x2c')](_0xd745('0x38'),JSON[_0xd745('0x39')](data));throw new Error('Error:\x20'+JSON[_0xd745('0x39')](data));})['catch'](function(_0x1555bd){console[_0xd745('0x46')](_0xd745('0x47'),_0x1555bd);});}function getEndUser(_0x4fe7ed,_0x29ee6c,_0x5d1394,_0xc2d2d9,_0x2ac835,_0xaface1,_0x8d7db6){var _0x61c9eb={'method':_0xd745('0x48'),'uri':'','headers':{'Authorization':_0xd745('0x33')+_0x4fe7ed},'json':!![]};switch(_0x8d7db6['moduleSearch']){case _0xd745('0x49'):_0x61c9eb['uri']='https://www.zohoapis.'+_0x29ee6c+_0xd745('0x4a')+_0x2ac835+'))';return getZohoUser(_0x61c9eb,_0xd745('0x4b'))[_0xd745('0x27')](function(_0x494d1a){if(_0x494d1a)return _0x494d1a;_0x61c9eb[_0xd745('0x4c')]=_0xd745('0x4d')+_0x29ee6c+_0xd745('0x4e')+_0x2ac835+'))';return getZohoUser(_0x61c9eb,_0xd745('0x4f'))['then'](function(_0x218be1){if(_0x218be1)return _0x218be1;if(_0x8d7db6['moduleCreate']!='nothing'){return createEndUser(_0x4fe7ed,_0x29ee6c,_0xc2d2d9,_0x2ac835,_0xaface1,_0x8d7db6);}else{return{};}});});break;case _0xd745('0x50'):_0x61c9eb[_0xd745('0x4c')]=_0xd745('0x4d')+_0x29ee6c+_0xd745('0x4a')+_0x2ac835+'))';return getZohoUser(_0x61c9eb,_0xd745('0x4b'))[_0xd745('0x27')](function(_0x5a8b79){if(_0x5a8b79)return _0x5a8b79;if(_0x8d7db6[_0xd745('0x45')]!=_0xd745('0x51')){return createEndUser(_0x4fe7ed,_0x29ee6c,_0xc2d2d9,_0x2ac835,_0xaface1,_0x8d7db6);}else{return{};}});break;case'lead':_0x61c9eb[_0xd745('0x4c')]=_0xd745('0x4d')+_0x29ee6c+'/crm/v2/Leads/search?criteria=((Phone:equals:'+_0x2ac835+'))';return getZohoUser(_0x61c9eb,'Leads')['then'](function(_0x365829){if(_0x365829)return _0x365829;if(_0x8d7db6[_0xd745('0x45')]!=_0xd745('0x51')){return createEndUser(_0x4fe7ed,_0x29ee6c,_0xc2d2d9,_0x2ac835,_0xaface1,_0x8d7db6);}else{return{};}});break;}}function getCall(_0x563400,_0x237bc7,_0x9107e3,_0x167ccf,_0x56b7d3,_0x225f64,_0xc42527,_0x331494){logger[_0xd745('0x2f')](_0xd745('0x52'));var _0x27ef7c={};_0x27ef7c[_0xd745('0x53')]={'name':!_[_0xd745('0x1a')](_0x167ccf[_0xd745('0x3e')]['name'])&&!_['isNil'](_0x167ccf[_0xd745('0x36')][_0xd745('0x15')])&&_0x167ccf[_0xd745('0x36')]['name']==='administrator'?_0x167ccf['role'][_0xd745('0x15')]:!_[_0xd745('0x1a')](_0x167ccf[_0xd745('0x3f')])?_0x167ccf[_0xd745('0x3f')]+'\x20'+_0x167ccf['last_name']:_0x167ccf['last_name'],'id':_0x167ccf['id']};_0x27ef7c[_0xd745('0x54')]=intUtil[_0xd745('0x55')](_0x225f64['Subjects'],_0xc42527,'\x20');_0x27ef7c[_0xd745('0x56')]=intUtil[_0xd745('0x55')](_0x225f64['Descriptions'],_0xc42527,'\x0a');if(_0x56b7d3[_0xd745('0x43')]===_0xd745('0x4b')){_0x27ef7c[_0xd745('0x57')]={'name':!_[_0xd745('0x1a')](_0x56b7d3[_0xd745('0x58')])?_0x56b7d3[_0xd745('0x58')]:!_['isNil'](_0x56b7d3['First_Name'])?_0x56b7d3[_0xd745('0x59')]+'\x20'+_0x56b7d3[_0xd745('0x5a')]:_0x56b7d3[_0xd745('0x5a')],'id':_0x56b7d3['id']};}if(_0x56b7d3[_0xd745('0x43')]===_0xd745('0x4f')){_0x27ef7c[_0xd745('0x5b')]={'name':!_[_0xd745('0x1a')](_0x56b7d3[_0xd745('0x58')])?_0x56b7d3[_0xd745('0x58')]:!_['isNil'](_0x56b7d3[_0xd745('0x59')])?_0x56b7d3[_0xd745('0x59')]+'\x20'+_0x56b7d3[_0xd745('0x5a')]:_0x56b7d3['Last_Name'],'id':_0x56b7d3['id']};_0x27ef7c[_0xd745('0x5c')]=_[_0xd745('0x44')](_0x56b7d3['enduserType']);}if(_0xc42527['talktime']){_0x27ef7c[_0xd745('0x5d')]=moment['utc'](parseInt(_0xc42527['talktime'])*0x3e8)[_0xd745('0x5e')](_0xd745('0x5f'));}else if(_0xc42527[_0xd745('0x60')]&&_0xc42527[_0xd745('0x61')]){_0x27ef7c[_0xd745('0x5d')]=moment[_0xd745('0x62')](moment(_0xc42527[_0xd745('0x61')],'YYYY-MM-DDTHH:mm:ss')[_0xd745('0x63')](moment(_0xc42527[_0xd745('0x64')],_0xd745('0x65'))))[_0xd745('0x5e')]('mm:ss');}switch(_0xc42527[_0xd745('0x66')]){case'called':_0x27ef7c[_0xd745('0x67')]=_0xd745('0x68');break;case'complete':case _0xd745('0x69'):_0x27ef7c[_0xd745('0x67')]='Answered';break;case _0xd745('0x6a'):_0x27ef7c[_0xd745('0x67')]=_0xd745('0x6b');break;case _0xd745('0x6c'):_0x27ef7c[_0xd745('0x67')]=_0xd745('0x6d');break;case _0xd745('0x6e'):_0x27ef7c[_0xd745('0x67')]='Timeout';default:}_0x27ef7c[_0xd745('0x6f')]=(_0x331494===_0xd745('0x70')?moment(_0xc42527[_0xd745('0x64')])[_0xd745('0x5e')](_0xd745('0x65')):moment(_0xc42527[_0xd745('0x71')])[_0xd745('0x5e')]('YYYY-MM-DDTHH:mm:ss'))||moment()[_0xd745('0x5e')](_0xd745('0x65'));_0x27ef7c[_0xd745('0x72')]=_0x331494||_0xd745('0x73');_0x27ef7c=_[_0xd745('0x74')](_0x27ef7c,getCustomFields(_0x225f64[_0xd745('0x75')],_0xc42527));return request({'method':_0xd745('0x3c'),'uri':_0xd745('0x4d')+_0x237bc7+_0xd745('0x76'),'headers':{'Authorization':_0xd745('0x33')+_0x563400},'body':{'data':[_0x27ef7c]},'json':!![]})[_0xd745('0x27')](function(_0x1de807){if(_0x1de807&&_0x1de807[_0xd745('0x3b')][0x0][_0xd745('0x40')]===_0xd745('0x41')){logger['info']('Call\x20created!');return{'id':_0x1de807[_0xd745('0x3b')][0x0][_0xd745('0x42')]['id']};}})['catch'](function(_0x55e262){logger[_0xd745('0x2f')](_0xd745('0x77'),_0x55e262[_0xd745('0x2e')]);console[_0xd745('0x46')](_0xd745('0x77'),_0x55e262);});}exports[_0xd745('0x78')]=function(_0x4602a6,_0x5f9ba9,_0x2cb8f1,_0x51feac,_0x5bbec7,_0x2236cc){var _0x5e8b8a,_0x4c4a35,_0x457d82;_0x2236cc[_0xd745('0x79')]=intUtil['stripTrailingSlash'](_0x2236cc[_0xd745('0x79')]);_0x2236cc[_0xd745('0x7a')]=intUtil[_0xd745('0x7b')](_0x2236cc[_0xd745('0x7a')]);if(_0x5bbec7&&_0x5bbec7[_0xd745('0x7c')]){logger['info'](_0xd745('0x7d'),'Recording\x20is\x20enabled!');_0x5f9ba9['recordingURL']=_0x2236cc[_0xd745('0x7a')]+_0xd745('0x7e')+_0x5f9ba9['uniqueid']+'/downloads?type=uniqueid&token='+md5(_0x5f9ba9[_0xd745('0x7f')]);}else{_0x5f9ba9[_0xd745('0x80')]='';}var _0xc46c61=_0x2236cc[_0xd745('0x79')]===_0xd745('0x81')?'eu':'com';return getAccessToken(_0x2236cc)[_0xd745('0x27')](function(_0x1d7d0c){_0x457d82=_0x1d7d0c;return getUser(_0x457d82,_0xc46c61,_0x2236cc,_0x51feac[_0xd745('0x34')]);})[_0xd745('0x27')](function(_0x23df1a){_0x5e8b8a=_0x23df1a;logger['info'](_0xd745('0x82'),_0x5e8b8a['id']);return getEndUser(_0x457d82,_0xc46c61,_0x2236cc,_0x5f9ba9[_0xd745('0x83')],_0x5f9ba9['calleridnum'],_0x5e8b8a,_0x2cb8f1);})[_0xd745('0x27')](function(_0x17eab7){_0x4c4a35=_0x17eab7;return getCall(_0x457d82,_0xc46c61,_0x2236cc,_0x5e8b8a,_0x4c4a35,_0x2cb8f1,_0x5f9ba9,_0xd745('0x73'));})[_0xd745('0x27')](function(_0x2c5530){if(_0x2c5530){logger[_0xd745('0x2f')]('The\x20Call\x20ID\x20is:',_0x2c5530['id']);logger[_0xd745('0x2f')](_0xd745('0x7d'),_0xd745('0x84'));emit(util[_0xd745('0x5e')](_0xd745('0x85'),_0x51feac['name']),_0xd745('0x86'),{'uri':'https://crm.'+_0x2236cc[_0xd745('0x79')]+_0xd745('0x87')+_0x2c5530['id']});}})['catch'](function(_0x374209){logger['error'](_0xd745('0x7d'),JSON[_0xd745('0x39')](_0x374209));});};exports['outbound']=function(_0x479cf8,_0x4b289d,_0x5fd5e2,_0x3b9400,_0x277e69,_0x48145b,_0x194469){var _0x5e11c9,_0x406776,_0x56383c;_0x48145b['host']=intUtil[_0xd745('0x7b')](_0x48145b[_0xd745('0x79')]);_0x48145b[_0xd745('0x7a')]=intUtil[_0xd745('0x7b')](_0x48145b['serverUrl']);if(_0x194469&&_0x194469[_0xd745('0x88')]&&_0x194469[_0xd745('0x88')]!=='none'){logger['info'](_0xd745('0x89'),_0xd745('0x8a'));_0x4b289d[_0xd745('0x80')]=_0x48145b[_0xd745('0x7a')]+_0xd745('0x7e')+_0x4b289d[_0xd745('0x7f')]+_0xd745('0x8b')+md5(_0x4b289d[_0xd745('0x7f')]);}var _0x38e26f=_0x48145b[_0xd745('0x79')]==='zoho.eu'?'eu':_0xd745('0x8c');return getAccessToken(_0x48145b)[_0xd745('0x27')](function(_0x5b6a22){_0x56383c=_0x5b6a22;return getUser(_0x56383c,_0x38e26f,_0x48145b,_0x3b9400[_0xd745('0x34')]);})['then'](function(_0x535180){_0x5e11c9=_0x535180;logger[_0xd745('0x2f')](_0xd745('0x82'),_0x5e11c9['id']);return getEndUser(_0x56383c,_0x38e26f,_0x48145b,_0x4b289d[_0xd745('0x8d')],_0x4b289d['destcalleridnum'],_0x5e11c9,_0x5fd5e2);})['then'](function(_0x566eea){_0x406776=_0x566eea;return getCall(_0x56383c,_0x38e26f,_0x48145b,_0x5e11c9,_0x406776,_0x5fd5e2,_0x4b289d,'Outbound');})[_0xd745('0x27')](function(_0x31c309){if(_0x31c309){logger[_0xd745('0x2f')](_0xd745('0x8e'),_0x31c309['id']);logger[_0xd745('0x2f')]('[OUTBOUND]','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0xd745('0x5e')](_0xd745('0x85'),_0x3b9400['name']),_0xd745('0x86'),{'uri':_0xd745('0x8f')+_0x48145b[_0xd745('0x79')]+_0xd745('0x87')+_0x31c309['id']});}})[_0xd745('0x2b')](function(_0x2808f8){logger['error']('[OUTBOUND]',JSON[_0xd745('0x39')](_0x2808f8));});};exports[_0xd745('0x90')]=function(_0x3abde0,_0x2623b4,_0x16db3b,_0x378994,_0x46ad5b,_0x578f5e){var _0x55d636,_0x155cab,_0x51cc38;_0x578f5e['host']=intUtil[_0xd745('0x7b')](_0x578f5e[_0xd745('0x79')]);_0x578f5e['serverUrl']=intUtil['stripTrailingSlash'](_0x578f5e[_0xd745('0x7a')]);if(_0x46ad5b&&_0x46ad5b[_0xd745('0x7c')]){logger[_0xd745('0x2f')]('['+_0x2623b4[_0xd745('0x66')][_0xd745('0x91')]()+']',_0xd745('0x8a'));_0x2623b4['recordingURL']=_0x578f5e[_0xd745('0x7a')]+'/api/voice/recordings/'+_0x2623b4[_0xd745('0x7f')]+_0xd745('0x8b')+md5(_0x2623b4['uniqueid']);}else{_0x2623b4[_0xd745('0x80')]='';}var _0x424e19=_0x578f5e[_0xd745('0x79')]==='zoho.eu'?'eu':'com';return getAccessToken(_0x578f5e)[_0xd745('0x27')](function(_0x53e633){_0x51cc38=_0x53e633;return getUser(_0x51cc38,_0x424e19,_0x578f5e);})[_0xd745('0x27')](function(_0x52acc2){_0x55d636=_0x52acc2;logger[_0xd745('0x2f')]('The\x20User\x20ID\x20is:',_0x55d636['id']);return getEndUser(_0x51cc38,_0x424e19,_0x578f5e,_0x2623b4[_0xd745('0x83')],_0x2623b4[_0xd745('0x92')],_0x55d636,_0x16db3b);})[_0xd745('0x27')](function(_0x33d948){_0x155cab=_0x33d948;return getCall(_0x51cc38,_0x424e19,_0x578f5e,_0x55d636,_0x155cab,_0x16db3b,_0x2623b4,_0xd745('0x73'));})[_0xd745('0x27')](function(_0x2efb97){if(_0x2efb97){logger['info']('The\x20Call\x20ID\x20is:',_0x2efb97['id']);}})[_0xd745('0x2b')](function(_0x239d4a){logger[_0xd745('0x2c')]('['+_0x2623b4['lastevent'][_0xd745('0x91')]()+']',JSON[_0xd745('0x39')](_0x239d4a));});};