Built motion from commit 9e1ec266.|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 _0x5e14=['outbound','agentcalledAt','Inbound','merge','/crm/v2/Calls','code','Call\x20created!','err','queue','host','serverUrl','stripTrailingSlash','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','/api/voice/recordings/','/downloads?type=uniqueid&token=','uniqueid','zoho.eu','com','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Call\x20ID\x20is:','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','/crm/EntityInfo.do?module=Calls&id=','recordingFormat','[OUTBOUND]','destcalleridname','Outbound','user:%s','unmanaged','monitor_format','lastevent','toUpperCase','lodash','request-promise','md5','util','./util','moment','ioredis','bluebird','../../../../config/environment','../../../../config/logger','zoho','redis','defaults','localhost','socket.io-emitter','emit','[HTTP]','stringify','forEach','includes','string','picklist','type','idField','content','toString','variable','variableName','Variable','name','toLowerCase','indexOf','split','isNil','access_token','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','POST','/oauth/v2/token','refreshToken','clientId','clientSecret','refresh_token','then','add','seconds','catch','error','stack','info','Search\x20user','GET','format','https://www.zohoapis.%s/crm/v2/users','Zoho-oauthtoken\x20','users','isArrayLikeObject','findIndex','email','Using\x20the\x20admin\x20account!','Administrator','user','The\x20failing\x20result\x20is','https://www.zohoapis.','startCase','role','first_name','last_name','data','SUCCESS','details','enduserType','moduleCreate','Error:\x20','log','CREATE\x20ERROR','moduleSearch','contact_lead','uri','Contacts','/crm/v2/Leads/search?criteria=((Phone:equals:','nothing','contact','/crm/v2/Contacts/search?criteria=((Phone:equals:','lead','Leads','Creating\x20new\x20call...','Owner','profile','administrator','Subject','getString','Who_Id','Full_Name','First_Name','Last_Name','What_Id','$se_module','talktime','Call_Duration','utc','mm:ss','answertime','endtime','diff','starttime','YYYY-MM-DDTHH:mm:ss','called','Call_Result','Called','complete','Answered','rejected','abandoned','Abandoned','timeout','Timeout','Call_Start_Time'];(function(_0x46f1a6,_0xc7a582){var _0x38429a=function(_0x31adae){while(--_0x31adae){_0x46f1a6['push'](_0x46f1a6['shift']());}};_0x38429a(++_0xc7a582);}(_0x5e14,0x164));var _0x45e1=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x5e14[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x45e1('0x0'));var rp=require(_0x45e1('0x1'));var md5=require(_0x45e1('0x2'));var util=require(_0x45e1('0x3'));var intUtil=require(_0x45e1('0x4'));var moment=require(_0x45e1('0x5'));var Redis=require(_0x45e1('0x6'));var BPromise=require(_0x45e1('0x7'));var config=require(_0x45e1('0x8'));var logger=require(_0x45e1('0x9'))(_0x45e1('0xa'));config[_0x45e1('0xb')]=_[_0x45e1('0xc')](config[_0x45e1('0xb')],{'host':_0x45e1('0xd'),'port':0x18eb});var io=require(_0x45e1('0xe'))(new Redis(config[_0x45e1('0xb')]));function emit(_0x4062de,_0x2296b3,_0x128854){io['to'](_0x4062de)[_0x45e1('0xf')](_0x2296b3,_0x128854);}function request(_0x1c57cf){logger['debug'](_0x45e1('0x10'),JSON[_0x45e1('0x11')](_0x1c57cf));return rp(_0x1c57cf);}function getCustomFields(_0x3f45ac,_0x514726){var _0x2f58a3={};if(_0x3f45ac['length']>0x0){_[_0x45e1('0x12')](_0x3f45ac,function(_0x257ac8){if(_[_0x45e1('0x13')]([_0x45e1('0x14'),_0x45e1('0x15')],_0x257ac8[_0x45e1('0x16')])&&_0x257ac8[_0x45e1('0x17')]){_0x2f58a3[_0x257ac8['idField']]=_0x257ac8[_0x45e1('0x18')][_0x45e1('0x19')]();}else if(_0x257ac8[_0x45e1('0x16')]===_0x45e1('0x1a')&&_0x257ac8[_0x45e1('0x1b')]&&_0x257ac8[_0x45e1('0x17')]&&_0x514726[_0x257ac8[_0x45e1('0x1b')]]){_0x2f58a3[_0x257ac8['idField']]=_0x514726[_0x257ac8['variableName']][_0x45e1('0x19')]();}else if(_0x257ac8['type']==='customVariable'&&_0x257ac8['Variable']&&_0x257ac8[_0x45e1('0x1c')][_0x45e1('0x1d')]&&_0x257ac8[_0x45e1('0x17')]&&_0x514726[_0x257ac8[_0x45e1('0x1c')][_0x45e1('0x1d')][_0x45e1('0x1e')]()]){_0x2f58a3[_0x257ac8[_0x45e1('0x17')]]=_0x514726[_0x257ac8[_0x45e1('0x1c')]['name'][_0x45e1('0x1e')]()]['toString']();}});}return _0x2f58a3;}function getName(_0x3134f4){if(_0x3134f4[_0x45e1('0x1f')]('\x20')>0x0){var _0x1f2c01=_0x3134f4[_0x45e1('0x20')](/ (.+)/);if(_0x1f2c01[0x1]){return _0x1f2c01;}}return[_0x3134f4,_0x3134f4];}var accountsTokens={};function getAccessToken(_0x393fdf){return new Promise(function(_0x4f4884,_0x34d043){if(!_[_0x45e1('0x21')](accountsTokens[_0x393fdf['id']])&&!_[_0x45e1('0x21')](accountsTokens[_0x393fdf['id']][_0x45e1('0x22')])){if(moment()[_0x45e1('0x23')](accountsTokens[_0x393fdf['id']][_0x45e1('0x24')])){_0x4f4884(accountsTokens[_0x393fdf['id']][_0x45e1('0x22')]);}}var _0x2bdd53;switch(_0x393fdf[_0x45e1('0x25')]){case'US':_0x2bdd53=_0x45e1('0x26');break;case'AU':_0x2bdd53=_0x45e1('0x27');break;case'EU':_0x2bdd53=_0x45e1('0x28');break;case'IN':_0x2bdd53=_0x45e1('0x29');break;case'CN':_0x2bdd53=_0x45e1('0x2a');break;default:_0x2bdd53=_0x45e1('0x28');break;}var _0x2d615a={'method':_0x45e1('0x2b'),'uri':_0x2bdd53+_0x45e1('0x2c'),'qs':{'refresh_token':_0x393fdf[_0x45e1('0x2d')],'client_id':_0x393fdf[_0x45e1('0x2e')],'client_secret':_0x393fdf[_0x45e1('0x2f')],'grant_type':_0x45e1('0x30')},'json':!![]};return rp(_0x2d615a)[_0x45e1('0x31')](function(_0x668f14){accountsTokens[_0x393fdf['id']]={'access_token':_0x668f14[_0x45e1('0x22')],'expires_in':moment()[_0x45e1('0x32')](_0x668f14[_0x45e1('0x24')],_0x45e1('0x33'))};_0x4f4884(_0x668f14[_0x45e1('0x22')]);})[_0x45e1('0x34')](function(_0x541a9a){logger[_0x45e1('0x35')]('Failing\x20creating\x20the\x20access_token',_0x541a9a[_0x45e1('0x36')]);_0x34d043(_0x541a9a);});});}function getUser(_0x1b97ff,_0x4fccf0,_0x2f42f2,_0x327b22){logger[_0x45e1('0x37')](_0x45e1('0x38'));return request({'method':_0x45e1('0x39'),'uri':util[_0x45e1('0x3a')](_0x45e1('0x3b'),_0x4fccf0),'qs':{'type':'ActiveUsers'},'headers':{'Authorization':_0x45e1('0x3c')+_0x1b97ff},'json':!![]})['then'](function(_0x2c87e0){if(_0x2c87e0[_0x45e1('0x3d')]){var _0x3df426=-0x1;if(_[_0x45e1('0x3e')](_0x2c87e0['users'])){if(!_['isNil'](_0x327b22)){_0x3df426=_[_0x45e1('0x3f')](_0x2c87e0['users'],function(_0x36e74a){return _0x36e74a[_0x45e1('0x40')]===_0x327b22;});}if(_0x3df426>=0x0){logger[_0x45e1('0x37')]('Agent\x20found!');}else{logger[_0x45e1('0x37')](_0x45e1('0x41'));_0x3df426=_[_0x45e1('0x3f')](_0x2c87e0[_0x45e1('0x3d')],function(_0x2658f8){return _0x2658f8['profile'][_0x45e1('0x1d')]===_0x45e1('0x42');});}return _0x2c87e0[_0x45e1('0x3d')][_0x3df426];}else{if(_0x2c87e0['user']['profile'][_0x45e1('0x1d')]===_0x45e1('0x42')){logger['info']('Using\x20the\x20admin\x20account!');user=_0x2c87e0[_0x45e1('0x43')];return user;}else{logger[_0x45e1('0x35')]('The\x20failing\x20result\x20is',JSON[_0x45e1('0x11')](_0x2c87e0));throw new Error('Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20'+JSON[_0x45e1('0x11')](_0x2c87e0));}}}else{logger[_0x45e1('0x35')](_0x45e1('0x44'),JSON['stringify'](_0x2c87e0));throw new Error('Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20'+JSON[_0x45e1('0x11')](_0x2c87e0));}})[_0x45e1('0x34')](function(_0x2bd459){console[_0x45e1('0x35')](_0x2bd459);});}function getZohoUser(_0x5e0b48,_0x4b3d8f){return new BPromise(function(_0x537556,_0x14b90c){request(_0x5e0b48)[_0x45e1('0x31')](function(_0x2c1500){var _0x534357=null;if(_0x2c1500){_0x534357=_0x2c1500['data'][0x0];_0x534357['enduserType']=_0x4b3d8f;}_0x537556(_0x534357);})[_0x45e1('0x34')](function(_0x114a13){_0x14b90c(_0x114a13);});});}function createEndUser(_0x466cac,_0x134210,_0xf264db,_0x2ef57b,_0x566b6f,_0x14ced3){var _0xf264db=getName(_0xf264db);return request({'method':_0x45e1('0x2b'),'uri':_0x45e1('0x45')+_0x134210+'/crm/v2/'+_[_0x45e1('0x46')](_0x14ced3['moduleCreate'])+'s','body':{'data':[{'Last_Name':_0xf264db[0x1],'First_Name':_0xf264db[0x0],'Phone':_0x2ef57b,'Owner':{'name':!_[_0x45e1('0x21')](_0x566b6f['role'][_0x45e1('0x1d')])?_0x566b6f[_0x45e1('0x47')][_0x45e1('0x1d')]:!_[_0x45e1('0x21')](_0x566b6f[_0x45e1('0x48')])?_0x566b6f['first_name']+'\x20'+_0x566b6f[_0x45e1('0x49')]:_0x566b6f[_0x45e1('0x49')],'id':_0x566b6f['id']}}]},'headers':{'Authorization':_0x45e1('0x3c')+_0x466cac},'json':!![]})[_0x45e1('0x31')](function(_0x1c1a10){if(_0x1c1a10&&_0x1c1a10[_0x45e1('0x4a')][0x0]['code']===_0x45e1('0x4b')){var _0x859bb3=_0x1c1a10['data'][0x0][_0x45e1('0x4c')];_0x859bb3[_0x45e1('0x4d')]=_[_0x45e1('0x46')](_0x14ced3[_0x45e1('0x4e')])+'s';return _0x859bb3;}logger[_0x45e1('0x35')](_0x45e1('0x44'),JSON[_0x45e1('0x11')](data));throw new Error(_0x45e1('0x4f')+JSON[_0x45e1('0x11')](data));})[_0x45e1('0x34')](function(_0x10629e){console[_0x45e1('0x50')](_0x45e1('0x51'),_0x10629e);});}function getEndUser(_0x307c42,_0x20f299,_0x480f13,_0x138f48,_0x24fe84,_0x7362,_0x2f9b98){var _0x112d67={'method':_0x45e1('0x39'),'uri':'','headers':{'Authorization':_0x45e1('0x3c')+_0x307c42},'json':!![]};switch(_0x2f9b98[_0x45e1('0x52')]){case _0x45e1('0x53'):_0x112d67[_0x45e1('0x54')]=_0x45e1('0x45')+_0x20f299+'/crm/v2/Contacts/search?criteria=((Phone:equals:'+_0x24fe84+'))';return getZohoUser(_0x112d67,_0x45e1('0x55'))['then'](function(_0x21f7e9){if(_0x21f7e9)return _0x21f7e9;_0x112d67[_0x45e1('0x54')]=_0x45e1('0x45')+_0x20f299+_0x45e1('0x56')+_0x24fe84+'))';return getZohoUser(_0x112d67,'Leads')[_0x45e1('0x31')](function(_0x38f779){if(_0x38f779)return _0x38f779;if(_0x2f9b98[_0x45e1('0x4e')]!=_0x45e1('0x57')){return createEndUser(_0x307c42,_0x20f299,_0x138f48,_0x24fe84,_0x7362,_0x2f9b98);}else{return{};}});});break;case _0x45e1('0x58'):_0x112d67[_0x45e1('0x54')]='https://www.zohoapis.'+_0x20f299+_0x45e1('0x59')+_0x24fe84+'))';return getZohoUser(_0x112d67,_0x45e1('0x55'))[_0x45e1('0x31')](function(_0x43bba4){if(_0x43bba4)return _0x43bba4;if(_0x2f9b98['moduleCreate']!=_0x45e1('0x57')){return createEndUser(_0x307c42,_0x20f299,_0x138f48,_0x24fe84,_0x7362,_0x2f9b98);}else{return{};}});break;case _0x45e1('0x5a'):_0x112d67[_0x45e1('0x54')]=_0x45e1('0x45')+_0x20f299+_0x45e1('0x56')+_0x24fe84+'))';return getZohoUser(_0x112d67,_0x45e1('0x5b'))[_0x45e1('0x31')](function(_0x36e1e2){if(_0x36e1e2)return _0x36e1e2;if(_0x2f9b98[_0x45e1('0x4e')]!=_0x45e1('0x57')){return createEndUser(_0x307c42,_0x20f299,_0x138f48,_0x24fe84,_0x7362,_0x2f9b98);}else{return{};}});break;}}function getCall(_0x53f2f4,_0x2e9a34,_0x273043,_0x3234f1,_0x2126a9,_0x5f1be7,_0x2a5a99,_0x10d9ff){logger['info'](_0x45e1('0x5c'));var _0x46caae={};_0x46caae[_0x45e1('0x5d')]={'name':!_[_0x45e1('0x21')](_0x3234f1[_0x45e1('0x47')]['name'])&&!_[_0x45e1('0x21')](_0x3234f1[_0x45e1('0x5e')][_0x45e1('0x1d')])&&_0x3234f1[_0x45e1('0x5e')]['name']===_0x45e1('0x5f')?_0x3234f1[_0x45e1('0x47')]['name']:!_[_0x45e1('0x21')](_0x3234f1[_0x45e1('0x48')])?_0x3234f1[_0x45e1('0x48')]+'\x20'+_0x3234f1[_0x45e1('0x49')]:_0x3234f1[_0x45e1('0x49')],'id':_0x3234f1['id']};_0x46caae[_0x45e1('0x60')]=intUtil['getString'](_0x5f1be7['Subjects'],_0x2a5a99,'\x20');_0x46caae['Description']=intUtil[_0x45e1('0x61')](_0x5f1be7['Descriptions'],_0x2a5a99,'\x0a');if(_0x2126a9[_0x45e1('0x4d')]===_0x45e1('0x55')){_0x46caae[_0x45e1('0x62')]={'name':!_['isNil'](_0x2126a9[_0x45e1('0x63')])?_0x2126a9[_0x45e1('0x63')]:!_[_0x45e1('0x21')](_0x2126a9[_0x45e1('0x64')])?_0x2126a9[_0x45e1('0x64')]+'\x20'+_0x2126a9['Last_Name']:_0x2126a9[_0x45e1('0x65')],'id':_0x2126a9['id']};}if(_0x2126a9[_0x45e1('0x4d')]===_0x45e1('0x5b')){_0x46caae[_0x45e1('0x66')]={'name':!_[_0x45e1('0x21')](_0x2126a9[_0x45e1('0x63')])?_0x2126a9[_0x45e1('0x63')]:!_['isNil'](_0x2126a9[_0x45e1('0x64')])?_0x2126a9[_0x45e1('0x64')]+'\x20'+_0x2126a9[_0x45e1('0x65')]:_0x2126a9[_0x45e1('0x65')],'id':_0x2126a9['id']};_0x46caae[_0x45e1('0x67')]=_[_0x45e1('0x46')](_0x2126a9[_0x45e1('0x4d')]);}if(_0x2a5a99[_0x45e1('0x68')]){_0x46caae[_0x45e1('0x69')]=moment[_0x45e1('0x6a')](parseInt(_0x2a5a99['talktime'])*0x3e8)[_0x45e1('0x3a')](_0x45e1('0x6b'));}else if(_0x2a5a99[_0x45e1('0x6c')]&&_0x2a5a99[_0x45e1('0x6d')]){_0x46caae['Call_Duration']=moment[_0x45e1('0x6a')](moment(_0x2a5a99[_0x45e1('0x6d')],'YYYY-MM-DDTHH:mm:ss')[_0x45e1('0x6e')](moment(_0x2a5a99[_0x45e1('0x6f')],_0x45e1('0x70'))))['format'](_0x45e1('0x6b'));}switch(_0x2a5a99['lastevent']){case _0x45e1('0x71'):_0x46caae[_0x45e1('0x72')]=_0x45e1('0x73');break;case _0x45e1('0x74'):case'connect':_0x46caae['Call_Result']=_0x45e1('0x75');break;case _0x45e1('0x76'):_0x46caae[_0x45e1('0x72')]='Rejected';break;case _0x45e1('0x77'):_0x46caae[_0x45e1('0x72')]=_0x45e1('0x78');break;case _0x45e1('0x79'):_0x46caae['Call_Result']=_0x45e1('0x7a');default:}_0x46caae[_0x45e1('0x7b')]=(_0x10d9ff===_0x45e1('0x7c')?moment(_0x2a5a99[_0x45e1('0x6f')])[_0x45e1('0x3a')](_0x45e1('0x70')):moment(_0x2a5a99[_0x45e1('0x7d')])[_0x45e1('0x3a')](_0x45e1('0x70')))||moment()['format'](_0x45e1('0x70'));_0x46caae['Call_Type']=_0x10d9ff||_0x45e1('0x7e');_0x46caae=_[_0x45e1('0x7f')](_0x46caae,getCustomFields(_0x5f1be7['Fields'],_0x2a5a99));return request({'method':_0x45e1('0x2b'),'uri':_0x45e1('0x45')+_0x2e9a34+_0x45e1('0x80'),'headers':{'Authorization':_0x45e1('0x3c')+_0x53f2f4},'body':{'data':[_0x46caae]},'json':!![]})[_0x45e1('0x31')](function(_0x422c9b){if(_0x422c9b&&_0x422c9b[_0x45e1('0x4a')][0x0][_0x45e1('0x81')]===_0x45e1('0x4b')){logger[_0x45e1('0x37')](_0x45e1('0x82'));return{'id':_0x422c9b[_0x45e1('0x4a')][0x0][_0x45e1('0x4c')]['id']};}})[_0x45e1('0x34')](function(_0x3aa63a){logger['info'](_0x45e1('0x83'),_0x3aa63a[_0x45e1('0x36')]);console[_0x45e1('0x50')](_0x45e1('0x83'),_0x3aa63a);});}exports[_0x45e1('0x84')]=function(_0xf29469,_0x14eff9,_0x12afc0,_0x3bf436,_0x4c1afd,_0xb45629){var _0x4661de,_0x116711,_0x4f7bd4;_0xb45629[_0x45e1('0x85')]=intUtil['stripTrailingSlash'](_0xb45629['host']);_0xb45629[_0x45e1('0x86')]=intUtil[_0x45e1('0x87')](_0xb45629['serverUrl']);if(_0x4c1afd&&_0x4c1afd['monitor_format']){logger[_0x45e1('0x37')](_0x45e1('0x88'),_0x45e1('0x89'));_0x14eff9[_0x45e1('0x8a')]=_0xb45629[_0x45e1('0x86')]+_0x45e1('0x8b')+_0x14eff9['uniqueid']+_0x45e1('0x8c')+md5(_0x14eff9[_0x45e1('0x8d')]);}else{_0x14eff9[_0x45e1('0x8a')]='';}var _0x2af5bc=_0xb45629[_0x45e1('0x85')]===_0x45e1('0x8e')?'eu':_0x45e1('0x8f');return getAccessToken(_0xb45629)['then'](function(_0x523b7f){_0x4f7bd4=_0x523b7f;return getUser(_0x4f7bd4,_0x2af5bc,_0xb45629,_0x3bf436[_0x45e1('0x40')]);})['then'](function(_0x518b44){_0x4661de=_0x518b44;logger[_0x45e1('0x37')](_0x45e1('0x90'),_0x4661de['id']);return getEndUser(_0x4f7bd4,_0x2af5bc,_0xb45629,_0x14eff9[_0x45e1('0x91')],_0x14eff9[_0x45e1('0x92')],_0x4661de,_0x12afc0);})[_0x45e1('0x31')](function(_0x295edf){_0x116711=_0x295edf;return getCall(_0x4f7bd4,_0x2af5bc,_0xb45629,_0x4661de,_0x116711,_0x12afc0,_0x14eff9,_0x45e1('0x7e'));})[_0x45e1('0x31')](function(_0x295481){if(_0x295481){logger['info'](_0x45e1('0x93'),_0x295481['id']);logger[_0x45e1('0x37')](_0x45e1('0x88'),_0x45e1('0x94'));emit(util['format']('user:%s',_0x3bf436['name']),_0x45e1('0x95'),{'uri':'https://crm.'+_0xb45629[_0x45e1('0x85')]+_0x45e1('0x96')+_0x295481['id']});}})[_0x45e1('0x34')](function(_0x273709){logger[_0x45e1('0x35')](_0x45e1('0x88'),JSON['stringify'](_0x273709));});};exports[_0x45e1('0x7c')]=function(_0x3e4589,_0x15a96a,_0x1f6753,_0x1242e1,_0x141a3b,_0x2e7374,_0xf12da5){var _0x84481c,_0x315040,_0x577a2b;_0x2e7374[_0x45e1('0x85')]=intUtil['stripTrailingSlash'](_0x2e7374[_0x45e1('0x85')]);_0x2e7374[_0x45e1('0x86')]=intUtil[_0x45e1('0x87')](_0x2e7374[_0x45e1('0x86')]);if(_0xf12da5&&_0xf12da5[_0x45e1('0x97')]&&_0xf12da5[_0x45e1('0x97')]!=='none'){logger[_0x45e1('0x37')](_0x45e1('0x98'),'Recording\x20is\x20enabled!');_0x15a96a[_0x45e1('0x8a')]=_0x2e7374[_0x45e1('0x86')]+'/api/voice/recordings/'+_0x15a96a[_0x45e1('0x8d')]+'/downloads?type=uniqueid&token='+md5(_0x15a96a[_0x45e1('0x8d')]);}var _0x5ed00c=_0x2e7374[_0x45e1('0x85')]===_0x45e1('0x8e')?'eu':_0x45e1('0x8f');return getAccessToken(_0x2e7374)[_0x45e1('0x31')](function(_0x1da8ce){_0x577a2b=_0x1da8ce;return getUser(_0x577a2b,_0x5ed00c,_0x2e7374,_0x1242e1[_0x45e1('0x40')]);})[_0x45e1('0x31')](function(_0x26cab0){_0x84481c=_0x26cab0;logger['info']('The\x20User\x20ID\x20is:',_0x84481c['id']);return getEndUser(_0x577a2b,_0x5ed00c,_0x2e7374,_0x15a96a[_0x45e1('0x99')],_0x15a96a['destcalleridnum'],_0x84481c,_0x1f6753);})['then'](function(_0x72e054){_0x315040=_0x72e054;return getCall(_0x577a2b,_0x5ed00c,_0x2e7374,_0x84481c,_0x315040,_0x1f6753,_0x15a96a,_0x45e1('0x9a'));})[_0x45e1('0x31')](function(_0x42f46e){if(_0x42f46e){logger[_0x45e1('0x37')](_0x45e1('0x93'),_0x42f46e['id']);logger[_0x45e1('0x37')](_0x45e1('0x98'),_0x45e1('0x94'));emit(util[_0x45e1('0x3a')](_0x45e1('0x9b'),_0x1242e1[_0x45e1('0x1d')]),_0x45e1('0x95'),{'uri':'https://crm.'+_0x2e7374[_0x45e1('0x85')]+_0x45e1('0x96')+_0x42f46e['id']});}})[_0x45e1('0x34')](function(_0x190a93){logger[_0x45e1('0x35')]('[OUTBOUND]',JSON['stringify'](_0x190a93));});};exports[_0x45e1('0x9c')]=function(_0x2d9455,_0x1e781e,_0x4ce0e1,_0x279148,_0x115358,_0x31c2e6){var _0x58f309,_0x3fe214,_0x5284bc;_0x31c2e6['host']=intUtil[_0x45e1('0x87')](_0x31c2e6[_0x45e1('0x85')]);_0x31c2e6[_0x45e1('0x86')]=intUtil[_0x45e1('0x87')](_0x31c2e6[_0x45e1('0x86')]);if(_0x115358&&_0x115358[_0x45e1('0x9d')]){logger[_0x45e1('0x37')]('['+_0x1e781e[_0x45e1('0x9e')][_0x45e1('0x9f')]()+']','Recording\x20is\x20enabled!');_0x1e781e[_0x45e1('0x8a')]=_0x31c2e6['serverUrl']+_0x45e1('0x8b')+_0x1e781e['uniqueid']+_0x45e1('0x8c')+md5(_0x1e781e[_0x45e1('0x8d')]);}else{_0x1e781e['recordingURL']='';}var _0x45e8bf=_0x31c2e6[_0x45e1('0x85')]==='zoho.eu'?'eu':_0x45e1('0x8f');return getAccessToken(_0x31c2e6)[_0x45e1('0x31')](function(_0x3f134a){_0x5284bc=_0x3f134a;return getUser(_0x5284bc,_0x45e8bf,_0x31c2e6);})[_0x45e1('0x31')](function(_0x41554c){_0x58f309=_0x41554c;logger[_0x45e1('0x37')](_0x45e1('0x90'),_0x58f309['id']);return getEndUser(_0x5284bc,_0x45e8bf,_0x31c2e6,_0x1e781e[_0x45e1('0x91')],_0x1e781e[_0x45e1('0x92')],_0x58f309,_0x4ce0e1);})[_0x45e1('0x31')](function(_0x14a4b8){_0x3fe214=_0x14a4b8;return getCall(_0x5284bc,_0x45e8bf,_0x31c2e6,_0x58f309,_0x3fe214,_0x4ce0e1,_0x1e781e,_0x45e1('0x7e'));})[_0x45e1('0x31')](function(_0x464dc5){if(_0x464dc5){logger[_0x45e1('0x37')](_0x45e1('0x93'),_0x464dc5['id']);}})['catch'](function(_0x29bb55){logger[_0x45e1('0x35')]('['+_0x1e781e[_0x45e1('0x9e')][_0x45e1('0x9f')]()+']',JSON['stringify'](_0x29bb55));});};