Built motion from commit (unavailable).|2.5.10
[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 _0xdd6a=['Call_Type','Inbound','/crm/v2/Calls','SUCCESS','Call\x20created!','err','log','queue','host','stripTrailingSlash','serverUrl','Recording\x20is\x20enabled!','recordingURL','/api/voice/recordings/','uniqueid','/downloads?type=uniqueid&token=','com','The\x20User\x20ID\x20is:','calleridname','[QUEUE]','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','https://crm.','/crm/EntityInfo.do?module=Calls&id=','recordingFormat','none','[OUTBOUND]','zoho.eu','email','destcalleridnum','Outbound','The\x20Call\x20ID\x20is:','user:%s','unmanaged','monitor_format','toUpperCase','calleridnum','lodash','request-promise','util','./util','moment','ioredis','../../../../config/environment','../../../../config/logger','zoho','redis','defaults','socket.io-emitter','[HTTP]','stringify','length','type','string','variable','variableName','idField','customVariable','Variable','toLowerCase','name','toString','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','clientId','clientSecret','refresh_token','add','seconds','catch','error','Failing\x20creating\x20the\x20access_token','stack','info','Search\x20user','GET','format','https://www.zohoapis.%s/crm/v2/users','ActiveUsers','isArrayLikeObject','users','findIndex','Agent\x20found!','Using\x20the\x20admin\x20account!','profile','Administrator','user','The\x20failing\x20result\x20is','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','then','data','enduserType','https://www.zohoapis.','/crm/v2/','moduleCreate','role','first_name','last_name','Zoho-oauthtoken\x20','code','details','startCase','Error:\x20','moduleSearch','uri','/crm/v2/Contacts/search?criteria=((Phone:equals:','Contacts','/crm/v2/Leads/search?criteria=((Phone:equals:','Leads','nothing','Creating\x20new\x20call...','Owner','administrator','Subject','getString','Subjects','Description','Descriptions','Who_Id','Full_Name','First_Name','Last_Name','What_Id','$se_module','Call_Duration','mm:ss','answertime','endtime','utc','YYYY-MM-DDTHH:mm:ss','diff','starttime','lastevent','called','Call_Result','Called','complete','connect','Answered','rejected','Rejected','abandoned','Abandoned','Call_Start_Time','outbound','agentcalledAt'];(function(_0x453a95,_0x6019fb){var _0x56264e=function(_0x4ba609){while(--_0x4ba609){_0x453a95['push'](_0x453a95['shift']());}};_0x56264e(++_0x6019fb);}(_0xdd6a,0x15d));var _0xadd6=function(_0x232ec0,_0x45fdd0){_0x232ec0=_0x232ec0-0x0;var _0x356705=_0xdd6a[_0x232ec0];return _0x356705;};'use strict';var _=require(_0xadd6('0x0'));var rp=require(_0xadd6('0x1'));var md5=require('md5');var util=require(_0xadd6('0x2'));var intUtil=require(_0xadd6('0x3'));var moment=require(_0xadd6('0x4'));var Redis=require(_0xadd6('0x5'));var BPromise=require('bluebird');var config=require(_0xadd6('0x6'));var logger=require(_0xadd6('0x7'))(_0xadd6('0x8'));config[_0xadd6('0x9')]=_[_0xadd6('0xa')](config[_0xadd6('0x9')],{'host':'localhost','port':0x18eb});var io=require(_0xadd6('0xb'))(new Redis(config['redis']));function emit(_0x27be41,_0x119801,_0x3731f3){io['to'](_0x27be41)['emit'](_0x119801,_0x3731f3);}function request(_0x100341){logger['debug'](_0xadd6('0xc'),JSON[_0xadd6('0xd')](_0x100341));return rp(_0x100341);}function getCustomFields(_0x30c884,_0x1b27be){var _0x307fce={};if(_0x30c884[_0xadd6('0xe')]>0x0){_['forEach'](_0x30c884,function(_0x473124){if(_0x473124[_0xadd6('0xf')]===_0xadd6('0x10')&&_0x473124['idField']){_0x307fce[_0x473124['idField']]=_0x473124['content']['toString']();}else if(_0x473124['type']===_0xadd6('0x11')&&_0x473124[_0xadd6('0x12')]&&_0x473124[_0xadd6('0x13')]&&_0x1b27be[_0x473124[_0xadd6('0x12')]]){_0x307fce[_0x473124['idField']]=_0x1b27be[_0x473124[_0xadd6('0x12')]]['toString']();}else if(_0x473124[_0xadd6('0xf')]===_0xadd6('0x14')&&_0x473124['Variable']&&_0x473124[_0xadd6('0x15')]['name']&&_0x473124[_0xadd6('0x13')]&&_0x1b27be[_0x473124['Variable']['name'][_0xadd6('0x16')]()]){_0x307fce[_0x473124[_0xadd6('0x13')]]=_0x1b27be[_0x473124[_0xadd6('0x15')][_0xadd6('0x17')]['toLowerCase']()][_0xadd6('0x18')]();}});}return _0x307fce;}function getName(_0x107aa0){if(_0x107aa0['indexOf']('\x20')>0x0){var _0x329644=_0x107aa0['split'](/ (.+)/);if(_0x329644[0x1]){return _0x329644;}}return[_0x107aa0,_0x107aa0];}var accountsTokens={};function getAccessToken(_0x12f3cc){return new Promise(function(_0x36d162,_0xc197a1){if(!_[_0xadd6('0x19')](accountsTokens[_0x12f3cc['id']])&&!_['isNil'](accountsTokens[_0x12f3cc['id']][_0xadd6('0x1a')])){if(moment()[_0xadd6('0x1b')](accountsTokens[_0x12f3cc['id']][_0xadd6('0x1c')])){_0x36d162(accountsTokens[_0x12f3cc['id']][_0xadd6('0x1a')]);}}var _0x1d08fc;switch(_0x12f3cc[_0xadd6('0x1d')]){case'US':_0x1d08fc=_0xadd6('0x1e');break;case'AU':_0x1d08fc=_0xadd6('0x1f');break;case'EU':_0x1d08fc=_0xadd6('0x20');break;case'IN':_0x1d08fc=_0xadd6('0x21');break;case'CN':_0x1d08fc=_0xadd6('0x22');break;default:_0x1d08fc=_0xadd6('0x20');break;}var _0x2855ea={'method':_0xadd6('0x23'),'uri':_0x1d08fc+_0xadd6('0x24'),'qs':{'refresh_token':_0x12f3cc['refreshToken'],'client_id':_0x12f3cc[_0xadd6('0x25')],'client_secret':_0x12f3cc[_0xadd6('0x26')],'grant_type':_0xadd6('0x27')},'json':!![]};return rp(_0x2855ea)['then'](function(_0x1fa68a){accountsTokens[_0x12f3cc['id']]={'access_token':_0x1fa68a[_0xadd6('0x1a')],'expires_in':moment()[_0xadd6('0x28')](_0x1fa68a[_0xadd6('0x1c')],_0xadd6('0x29'))};_0x36d162(_0x1fa68a[_0xadd6('0x1a')]);})[_0xadd6('0x2a')](function(_0x4d4ef0){logger[_0xadd6('0x2b')](_0xadd6('0x2c'),_0x4d4ef0[_0xadd6('0x2d')]);_0xc197a1(_0x4d4ef0);});});}function getUser(_0x2b1d19,_0x3f13de,_0x16b610,_0x3135eb){logger[_0xadd6('0x2e')](_0xadd6('0x2f'));return request({'method':_0xadd6('0x30'),'uri':util[_0xadd6('0x31')](_0xadd6('0x32'),_0x3f13de),'qs':{'type':_0xadd6('0x33')},'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x2b1d19},'json':!![]})['then'](function(_0x58a75a){if(_0x58a75a['users']){var _0x5a8d2c=-0x1;if(_[_0xadd6('0x34')](_0x58a75a[_0xadd6('0x35')])){if(!_[_0xadd6('0x19')](_0x3135eb)){_0x5a8d2c=_[_0xadd6('0x36')](_0x58a75a[_0xadd6('0x35')],function(_0x459268){return _0x459268['email']===_0x3135eb;});}if(_0x5a8d2c>=0x0){logger['info'](_0xadd6('0x37'));}else{logger['info'](_0xadd6('0x38'));_0x5a8d2c=_[_0xadd6('0x36')](_0x58a75a[_0xadd6('0x35')],function(_0x58e1bb){return _0x58e1bb[_0xadd6('0x39')][_0xadd6('0x17')]===_0xadd6('0x3a');});}return _0x58a75a[_0xadd6('0x35')][_0x5a8d2c];}else{if(_0x58a75a[_0xadd6('0x3b')]['profile'][_0xadd6('0x17')]===_0xadd6('0x3a')){logger[_0xadd6('0x2e')](_0xadd6('0x38'));user=_0x58a75a[_0xadd6('0x3b')];return user;}else{logger[_0xadd6('0x2b')](_0xadd6('0x3c'),JSON[_0xadd6('0xd')](_0x58a75a));throw new Error(_0xadd6('0x3d')+JSON['stringify'](_0x58a75a));}}}else{logger['error']('The\x20failing\x20result\x20is',JSON['stringify'](_0x58a75a));throw new Error(_0xadd6('0x3d')+JSON[_0xadd6('0xd')](_0x58a75a));}})['catch'](function(_0x3772ac){console[_0xadd6('0x2b')](_0x3772ac);});}function getZohoUser(_0x1f5fb4,_0x58aab3){return new BPromise(function(_0x431037,_0x3614e8){request(_0x1f5fb4)[_0xadd6('0x3e')](function(_0x1659b0){var _0x3e72ae=null;if(_0x1659b0){_0x3e72ae=_0x1659b0[_0xadd6('0x3f')][0x0];_0x3e72ae[_0xadd6('0x40')]=_0x58aab3;}_0x431037(_0x3e72ae);})[_0xadd6('0x2a')](function(_0xe08e4f){_0x3614e8(_0xe08e4f);});});}function createEndUser(_0x142b6e,_0x33a271,_0x3dd8c6,_0x4231a4,_0x5b4568,_0x4ceb95){var _0x3dd8c6=getName(_0x3dd8c6);return request({'method':_0xadd6('0x23'),'uri':_0xadd6('0x41')+_0x33a271+_0xadd6('0x42')+_['startCase'](_0x4ceb95[_0xadd6('0x43')])+'s','body':{'data':[{'Last_Name':_0x3dd8c6[0x1],'First_Name':_0x3dd8c6[0x0],'Phone':_0x4231a4,'Owner':{'name':!_[_0xadd6('0x19')](_0x5b4568[_0xadd6('0x44')][_0xadd6('0x17')])?_0x5b4568[_0xadd6('0x44')][_0xadd6('0x17')]:!_[_0xadd6('0x19')](_0x5b4568['first_name'])?_0x5b4568[_0xadd6('0x45')]+'\x20'+_0x5b4568['last_name']:_0x5b4568[_0xadd6('0x46')],'id':_0x5b4568['id']}}]},'headers':{'Authorization':_0xadd6('0x47')+_0x142b6e},'json':!![]})[_0xadd6('0x3e')](function(_0x4dfc22){if(_0x4dfc22&&_0x4dfc22[_0xadd6('0x3f')][0x0][_0xadd6('0x48')]==='SUCCESS'){var _0x54082b=_0x4dfc22['data'][0x0][_0xadd6('0x49')];_0x54082b[_0xadd6('0x40')]=_[_0xadd6('0x4a')](_0x4ceb95[_0xadd6('0x43')])+'s';return _0x54082b;}logger[_0xadd6('0x2b')]('The\x20failing\x20result\x20is',JSON[_0xadd6('0xd')](data));throw new Error(_0xadd6('0x4b')+JSON[_0xadd6('0xd')](data));})['catch'](function(_0x154c41){console['log']('CREATE\x20ERROR',_0x154c41);});}function getEndUser(_0x3d6136,_0x1873bb,_0x173f35,_0x24d1f1,_0x6e345d,_0x54432c,_0x250475){var _0x52f84a={'method':_0xadd6('0x30'),'uri':'','headers':{'Authorization':_0xadd6('0x47')+_0x3d6136},'json':!![]};switch(_0x250475[_0xadd6('0x4c')]){case'contact_lead':_0x52f84a[_0xadd6('0x4d')]=_0xadd6('0x41')+_0x1873bb+_0xadd6('0x4e')+_0x6e345d+'))';return getZohoUser(_0x52f84a,_0xadd6('0x4f'))[_0xadd6('0x3e')](function(_0x309dfd){if(_0x309dfd)return _0x309dfd;_0x52f84a[_0xadd6('0x4d')]='https://www.zohoapis.'+_0x1873bb+_0xadd6('0x50')+_0x6e345d+'))';return getZohoUser(_0x52f84a,_0xadd6('0x51'))[_0xadd6('0x3e')](function(_0x201344){if(_0x201344)return _0x201344;if(_0x250475[_0xadd6('0x43')]!='nothing'){return createEndUser(_0x3d6136,_0x1873bb,_0x24d1f1,_0x6e345d,_0x54432c,_0x250475);}else{return{};}});});break;case'contact':_0x52f84a[_0xadd6('0x4d')]=_0xadd6('0x41')+_0x1873bb+'/crm/v2/Contacts/search?criteria=((Phone:equals:'+_0x6e345d+'))';return getZohoUser(_0x52f84a,_0xadd6('0x4f'))[_0xadd6('0x3e')](function(_0x14d409){if(_0x14d409)return _0x14d409;if(_0x250475[_0xadd6('0x43')]!='nothing'){return createEndUser(_0x3d6136,_0x1873bb,_0x24d1f1,_0x6e345d,_0x54432c,_0x250475);}else{return{};}});break;case'lead':_0x52f84a[_0xadd6('0x4d')]=_0xadd6('0x41')+_0x1873bb+_0xadd6('0x50')+_0x6e345d+'))';return getZohoUser(_0x52f84a,_0xadd6('0x51'))['then'](function(_0x523750){if(_0x523750)return _0x523750;if(_0x250475[_0xadd6('0x43')]!=_0xadd6('0x52')){return createEndUser(_0x3d6136,_0x1873bb,_0x24d1f1,_0x6e345d,_0x54432c,_0x250475);}else{return{};}});break;}}function getCall(_0x2e4549,_0x5182ed,_0x22d7bd,_0x2a6752,_0x2bc11d,_0x13153f,_0x49e5b8,_0x42a190){logger['info'](_0xadd6('0x53'));var _0x8c38f2={};_0x8c38f2[_0xadd6('0x54')]={'name':!_[_0xadd6('0x19')](_0x2a6752[_0xadd6('0x44')][_0xadd6('0x17')])&&!_[_0xadd6('0x19')](_0x2a6752[_0xadd6('0x39')][_0xadd6('0x17')])&&_0x2a6752[_0xadd6('0x39')]['name']===_0xadd6('0x55')?_0x2a6752[_0xadd6('0x44')]['name']:!_['isNil'](_0x2a6752[_0xadd6('0x45')])?_0x2a6752[_0xadd6('0x45')]+'\x20'+_0x2a6752[_0xadd6('0x46')]:_0x2a6752[_0xadd6('0x46')],'id':_0x2a6752['id']};_0x8c38f2[_0xadd6('0x56')]=intUtil[_0xadd6('0x57')](_0x13153f[_0xadd6('0x58')],_0x49e5b8,'\x20');_0x8c38f2[_0xadd6('0x59')]=intUtil[_0xadd6('0x57')](_0x13153f[_0xadd6('0x5a')],_0x49e5b8,'\x0a');if(_0x2bc11d[_0xadd6('0x40')]===_0xadd6('0x4f')){_0x8c38f2[_0xadd6('0x5b')]={'name':!_[_0xadd6('0x19')](_0x2bc11d[_0xadd6('0x5c')])?_0x2bc11d[_0xadd6('0x5c')]:!_[_0xadd6('0x19')](_0x2bc11d['First_Name'])?_0x2bc11d[_0xadd6('0x5d')]+'\x20'+_0x2bc11d[_0xadd6('0x5e')]:_0x2bc11d[_0xadd6('0x5e')],'id':_0x2bc11d['id']};}if(_0x2bc11d[_0xadd6('0x40')]==='Leads'){_0x8c38f2[_0xadd6('0x5f')]={'name':!_[_0xadd6('0x19')](_0x2bc11d[_0xadd6('0x5c')])?_0x2bc11d[_0xadd6('0x5c')]:!_[_0xadd6('0x19')](_0x2bc11d[_0xadd6('0x5d')])?_0x2bc11d[_0xadd6('0x5d')]+'\x20'+_0x2bc11d[_0xadd6('0x5e')]:_0x2bc11d[_0xadd6('0x5e')],'id':_0x2bc11d['id']};_0x8c38f2[_0xadd6('0x60')]=_[_0xadd6('0x4a')](_0x2bc11d['enduserType']);}if(_0x49e5b8['talktime']){_0x8c38f2[_0xadd6('0x61')]=moment['utc'](parseInt(_0x49e5b8['talktime'])*0x3e8)[_0xadd6('0x31')](_0xadd6('0x62'));}else if(_0x49e5b8[_0xadd6('0x63')]&&_0x49e5b8[_0xadd6('0x64')]){_0x8c38f2[_0xadd6('0x61')]=moment[_0xadd6('0x65')](moment(_0x49e5b8[_0xadd6('0x64')],_0xadd6('0x66'))[_0xadd6('0x67')](moment(_0x49e5b8[_0xadd6('0x68')],_0xadd6('0x66'))))['format'](_0xadd6('0x62'));}switch(_0x49e5b8[_0xadd6('0x69')]){case _0xadd6('0x6a'):_0x8c38f2[_0xadd6('0x6b')]=_0xadd6('0x6c');break;case _0xadd6('0x6d'):case _0xadd6('0x6e'):_0x8c38f2[_0xadd6('0x6b')]=_0xadd6('0x6f');break;case _0xadd6('0x70'):_0x8c38f2[_0xadd6('0x6b')]=_0xadd6('0x71');break;case _0xadd6('0x72'):_0x8c38f2[_0xadd6('0x6b')]=_0xadd6('0x73');break;case'timeout':_0x8c38f2['Call_Result']='Timeout';default:}_0x8c38f2[_0xadd6('0x74')]=(_0x42a190===_0xadd6('0x75')?moment(_0x49e5b8['starttime'])[_0xadd6('0x31')](_0xadd6('0x66')):moment(_0x49e5b8[_0xadd6('0x76')])[_0xadd6('0x31')](_0xadd6('0x66')))||moment()[_0xadd6('0x31')]('YYYY-MM-DDTHH:mm:ss');_0x8c38f2[_0xadd6('0x77')]=_0x42a190||_0xadd6('0x78');_0x8c38f2=_['merge'](_0x8c38f2,getCustomFields(_0x13153f['Fields'],_0x49e5b8));return request({'method':'POST','uri':_0xadd6('0x41')+_0x5182ed+_0xadd6('0x79'),'headers':{'Authorization':_0xadd6('0x47')+_0x2e4549},'body':{'data':[_0x8c38f2]},'json':!![]})[_0xadd6('0x3e')](function(_0x4511e7){if(_0x4511e7&&_0x4511e7['data'][0x0][_0xadd6('0x48')]===_0xadd6('0x7a')){logger[_0xadd6('0x2e')](_0xadd6('0x7b'));return{'id':_0x4511e7['data'][0x0][_0xadd6('0x49')]['id']};}})[_0xadd6('0x2a')](function(_0x243034){logger[_0xadd6('0x2e')](_0xadd6('0x7c'),_0x243034[_0xadd6('0x2d')]);console[_0xadd6('0x7d')](_0xadd6('0x7c'),_0x243034);});}exports[_0xadd6('0x7e')]=function(_0x590dfc,_0x2fb256,_0x14e281,_0x4dff7a,_0x2a58e5,_0x70dfce){var _0x15e833,_0x3c858d,_0x2292cb;_0x70dfce[_0xadd6('0x7f')]=intUtil[_0xadd6('0x80')](_0x70dfce['host']);_0x70dfce[_0xadd6('0x81')]=intUtil[_0xadd6('0x80')](_0x70dfce[_0xadd6('0x81')]);if(_0x2a58e5&&_0x2a58e5['monitor_format']){logger[_0xadd6('0x2e')]('[QUEUE]',_0xadd6('0x82'));_0x2fb256[_0xadd6('0x83')]=_0x70dfce['serverUrl']+_0xadd6('0x84')+_0x2fb256[_0xadd6('0x85')]+_0xadd6('0x86')+md5(_0x2fb256[_0xadd6('0x85')]);}else{_0x2fb256[_0xadd6('0x83')]='';}var _0x347a5e=_0x70dfce['host']==='zoho.eu'?'eu':_0xadd6('0x87');return getAccessToken(_0x70dfce)[_0xadd6('0x3e')](function(_0x990573){_0x2292cb=_0x990573;return getUser(_0x2292cb,_0x347a5e,_0x70dfce,_0x4dff7a['email']);})[_0xadd6('0x3e')](function(_0x22d766){_0x15e833=_0x22d766;logger[_0xadd6('0x2e')](_0xadd6('0x88'),_0x15e833['id']);return getEndUser(_0x2292cb,_0x347a5e,_0x70dfce,_0x2fb256[_0xadd6('0x89')],_0x2fb256['calleridnum'],_0x15e833,_0x14e281);})['then'](function(_0x30f6a0){_0x3c858d=_0x30f6a0;return getCall(_0x2292cb,_0x347a5e,_0x70dfce,_0x15e833,_0x3c858d,_0x14e281,_0x2fb256,'Inbound');})['then'](function(_0x5c17f0){if(_0x5c17f0){logger[_0xadd6('0x2e')]('The\x20Call\x20ID\x20is:',_0x5c17f0['id']);logger['info'](_0xadd6('0x8a'),_0xadd6('0x8b'));emit(util[_0xadd6('0x31')]('user:%s',_0x4dff7a[_0xadd6('0x17')]),_0xadd6('0x8c'),{'uri':_0xadd6('0x8d')+_0x70dfce[_0xadd6('0x7f')]+_0xadd6('0x8e')+_0x5c17f0['id']});}})[_0xadd6('0x2a')](function(_0x5b21b8){logger[_0xadd6('0x2b')](_0xadd6('0x8a'),JSON[_0xadd6('0xd')](_0x5b21b8));});};exports[_0xadd6('0x75')]=function(_0x2b2898,_0x11cfdf,_0x2c2b3e,_0x3a1b4e,_0x2823a4,_0x40c921,_0x486672){var _0x18e99f,_0x2863dd,_0x1294a2;_0x40c921[_0xadd6('0x7f')]=intUtil[_0xadd6('0x80')](_0x40c921[_0xadd6('0x7f')]);_0x40c921['serverUrl']=intUtil[_0xadd6('0x80')](_0x40c921[_0xadd6('0x81')]);if(_0x486672&&_0x486672[_0xadd6('0x8f')]&&_0x486672[_0xadd6('0x8f')]!==_0xadd6('0x90')){logger[_0xadd6('0x2e')](_0xadd6('0x91'),_0xadd6('0x82'));_0x11cfdf[_0xadd6('0x83')]=_0x40c921['serverUrl']+'/api/voice/recordings/'+_0x11cfdf[_0xadd6('0x85')]+_0xadd6('0x86')+md5(_0x11cfdf[_0xadd6('0x85')]);}var _0x52cf8a=_0x40c921[_0xadd6('0x7f')]===_0xadd6('0x92')?'eu':_0xadd6('0x87');return getAccessToken(_0x40c921)['then'](function(_0xfa2d5b){_0x1294a2=_0xfa2d5b;return getUser(_0x1294a2,_0x52cf8a,_0x40c921,_0x3a1b4e[_0xadd6('0x93')]);})[_0xadd6('0x3e')](function(_0x50f0e4){_0x18e99f=_0x50f0e4;logger['info'](_0xadd6('0x88'),_0x18e99f['id']);return getEndUser(_0x1294a2,_0x52cf8a,_0x40c921,_0x11cfdf['destcalleridname'],_0x11cfdf[_0xadd6('0x94')],_0x18e99f,_0x2c2b3e);})[_0xadd6('0x3e')](function(_0x207c02){_0x2863dd=_0x207c02;return getCall(_0x1294a2,_0x52cf8a,_0x40c921,_0x18e99f,_0x2863dd,_0x2c2b3e,_0x11cfdf,_0xadd6('0x95'));})[_0xadd6('0x3e')](function(_0x17be84){if(_0x17be84){logger[_0xadd6('0x2e')](_0xadd6('0x96'),_0x17be84['id']);logger[_0xadd6('0x2e')]('[OUTBOUND]',_0xadd6('0x8b'));emit(util['format'](_0xadd6('0x97'),_0x3a1b4e[_0xadd6('0x17')]),_0xadd6('0x8c'),{'uri':'https://crm.'+_0x40c921[_0xadd6('0x7f')]+_0xadd6('0x8e')+_0x17be84['id']});}})[_0xadd6('0x2a')](function(_0x1d3445){logger[_0xadd6('0x2b')](_0xadd6('0x91'),JSON['stringify'](_0x1d3445));});};exports[_0xadd6('0x98')]=function(_0x3e9dac,_0x2f322a,_0xa659b3,_0x529f4d,_0x261c6c,_0x268a56){var _0x43edc2,_0x3fc119,_0x31fff2;_0x268a56['host']=intUtil[_0xadd6('0x80')](_0x268a56['host']);_0x268a56[_0xadd6('0x81')]=intUtil['stripTrailingSlash'](_0x268a56['serverUrl']);if(_0x261c6c&&_0x261c6c[_0xadd6('0x99')]){logger[_0xadd6('0x2e')]('['+_0x2f322a[_0xadd6('0x69')][_0xadd6('0x9a')]()+']',_0xadd6('0x82'));_0x2f322a[_0xadd6('0x83')]=_0x268a56[_0xadd6('0x81')]+_0xadd6('0x84')+_0x2f322a[_0xadd6('0x85')]+'/downloads?type=uniqueid&token='+md5(_0x2f322a[_0xadd6('0x85')]);}else{_0x2f322a[_0xadd6('0x83')]='';}var _0x5192d6=_0x268a56[_0xadd6('0x7f')]==='zoho.eu'?'eu':_0xadd6('0x87');return getAccessToken(_0x268a56)['then'](function(_0x449f4c){_0x31fff2=_0x449f4c;return getUser(_0x31fff2,_0x5192d6,_0x268a56);})[_0xadd6('0x3e')](function(_0x393650){_0x43edc2=_0x393650;logger[_0xadd6('0x2e')](_0xadd6('0x88'),_0x43edc2['id']);return getEndUser(_0x31fff2,_0x5192d6,_0x268a56,_0x2f322a[_0xadd6('0x89')],_0x2f322a[_0xadd6('0x9b')],_0x43edc2,_0xa659b3);})['then'](function(_0x72d4a7){_0x3fc119=_0x72d4a7;return getCall(_0x31fff2,_0x5192d6,_0x268a56,_0x43edc2,_0x3fc119,_0xa659b3,_0x2f322a,'Inbound');})[_0xadd6('0x3e')](function(_0x4370da){if(_0x4370da){logger[_0xadd6('0x2e')](_0xadd6('0x96'),_0x4370da['id']);}})['catch'](function(_0x103484){logger[_0xadd6('0x2b')]('['+_0x2f322a[_0xadd6('0x69')][_0xadd6('0x9a')]()+']',JSON[_0xadd6('0xd')](_0x103484));});};