463a9e6487dd13f08da213d4e535a17da3a927dc
[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 _0x6e7f=['agentcalledAt','Call_Type','Inbound','merge','Fields','/crm/v2/Calls','details','err','host','stripTrailingSlash','serverUrl','recordingURL','/api/voice/recordings/','/downloads?type=uniqueid&token=','uniqueid','zoho.eu','com','email','calleridname','calleridnum','The\x20Call\x20ID\x20is:','[QUEUE]','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','https://crm.','/crm/EntityInfo.do?module=Calls&id=','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','The\x20User\x20ID\x20is:','destcalleridname','unmanaged','monitor_format','toUpperCase','lodash','request-promise','md5','util','./util','moment','ioredis','../../../../config/logger','zoho','defaults','redis','localhost','socket.io-emitter','emit','[HTTP]','stringify','length','forEach','includes','string','picklist','type','idField','toString','variable','variableName','Variable','name','toLowerCase','indexOf','split','isNil','access_token','isBefore','expires_in','zone','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','error','Failing\x20creating\x20the\x20access_token','stack','info','Search\x20user','GET','https://www.zohoapis.%s/crm/v2/users','ActiveUsers','Zoho-oauthtoken\x20','users','Agent\x20found!','Using\x20the\x20admin\x20account!','findIndex','profile','user','Administrator','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','The\x20failing\x20result\x20is','catch','data','enduserType','/crm/v2/','startCase','moduleCreate','role','first_name','last_name','code','SUCCESS','Error:\x20','log','CREATE\x20ERROR','moduleSearch','contact_lead','uri','https://www.zohoapis.','/crm/v2/Contacts/search?criteria=((Phone:equals:','Contacts','/crm/v2/Leads/search?criteria=((Phone:equals:','nothing','lead','Creating\x20new\x20call...','Owner','administrator','Subject','Subjects','Description','getString','Descriptions','Full_Name','Last_Name','Leads','First_Name','$se_module','talktime','utc','format','mm:ss','answertime','endtime','Call_Duration','YYYY-MM-DDTHH:mm:ss','diff','starttime','lastevent','complete','connect','Call_Result','rejected','Rejected','abandoned','timeout','Timeout','Call_Start_Time','outbound'];(function(_0x522c6d,_0x4d250d){var _0x26300d=function(_0x3ab228){while(--_0x3ab228){_0x522c6d['push'](_0x522c6d['shift']());}};_0x26300d(++_0x4d250d);}(_0x6e7f,0xc4));var _0xf6e7=function(_0x28cec4,_0x419b54){_0x28cec4=_0x28cec4-0x0;var _0x15c645=_0x6e7f[_0x28cec4];return _0x15c645;};'use strict';var _=require(_0xf6e7('0x0'));var rp=require(_0xf6e7('0x1'));var md5=require(_0xf6e7('0x2'));var util=require(_0xf6e7('0x3'));var intUtil=require(_0xf6e7('0x4'));var moment=require(_0xf6e7('0x5'));var Redis=require(_0xf6e7('0x6'));var BPromise=require('bluebird');var config=require('../../../../config/environment');var logger=require(_0xf6e7('0x7'))(_0xf6e7('0x8'));config['redis']=_[_0xf6e7('0x9')](config[_0xf6e7('0xa')],{'host':_0xf6e7('0xb'),'port':0x18eb});var io=require(_0xf6e7('0xc'))(new Redis(config[_0xf6e7('0xa')]));function emit(_0x451313,_0x37d8eb,_0x196c96){io['to'](_0x451313)[_0xf6e7('0xd')](_0x37d8eb,_0x196c96);}function request(_0x3a84a5){logger['debug'](_0xf6e7('0xe'),JSON[_0xf6e7('0xf')](_0x3a84a5));return rp(_0x3a84a5);}function getCustomFields(_0x8568a1,_0x2c4ce2){var _0x3be625={};if(_0x8568a1[_0xf6e7('0x10')]>0x0){_[_0xf6e7('0x11')](_0x8568a1,function(_0x40ca48){if(_[_0xf6e7('0x12')]([_0xf6e7('0x13'),_0xf6e7('0x14')],_0x40ca48[_0xf6e7('0x15')])&&_0x40ca48[_0xf6e7('0x16')]){_0x3be625[_0x40ca48[_0xf6e7('0x16')]]=_0x40ca48['content'][_0xf6e7('0x17')]();}else if(_0x40ca48[_0xf6e7('0x15')]===_0xf6e7('0x18')&&_0x40ca48[_0xf6e7('0x19')]&&_0x40ca48['idField']&&_0x2c4ce2[_0x40ca48['variableName']]){_0x3be625[_0x40ca48[_0xf6e7('0x16')]]=_0x2c4ce2[_0x40ca48['variableName']]['toString']();}else if(_0x40ca48[_0xf6e7('0x15')]==='customVariable'&&_0x40ca48[_0xf6e7('0x1a')]&&_0x40ca48[_0xf6e7('0x1a')][_0xf6e7('0x1b')]&&_0x40ca48[_0xf6e7('0x16')]&&_0x2c4ce2[_0x40ca48[_0xf6e7('0x1a')][_0xf6e7('0x1b')][_0xf6e7('0x1c')]()]){_0x3be625[_0x40ca48[_0xf6e7('0x16')]]=_0x2c4ce2[_0x40ca48[_0xf6e7('0x1a')][_0xf6e7('0x1b')][_0xf6e7('0x1c')]()][_0xf6e7('0x17')]();}});}return _0x3be625;}function getName(_0x15b71f){if(_0x15b71f[_0xf6e7('0x1d')]('\x20')>0x0){var _0x26ed17=_0x15b71f[_0xf6e7('0x1e')](/ (.+)/);if(_0x26ed17[0x1]){return _0x26ed17;}}return[_0x15b71f,_0x15b71f];}var accountsTokens={};function getAccessToken(_0xd19368){return new Promise(function(_0x1322d6,_0x1cd96f){if(!_[_0xf6e7('0x1f')](accountsTokens[_0xd19368['id']])&&!_[_0xf6e7('0x1f')](accountsTokens[_0xd19368['id']][_0xf6e7('0x20')])){if(moment()[_0xf6e7('0x21')](accountsTokens[_0xd19368['id']][_0xf6e7('0x22')])){_0x1322d6(accountsTokens[_0xd19368['id']][_0xf6e7('0x20')]);}}var _0x1953ce;switch(_0xd19368[_0xf6e7('0x23')]){case'US':_0x1953ce='https://accounts.zoho.com';break;case'AU':_0x1953ce=_0xf6e7('0x24');break;case'EU':_0x1953ce=_0xf6e7('0x25');break;case'IN':_0x1953ce=_0xf6e7('0x26');break;case'CN':_0x1953ce=_0xf6e7('0x27');break;default:_0x1953ce='https://accounts.zoho.eu';break;}var _0x2356c1={'method':_0xf6e7('0x28'),'uri':_0x1953ce+_0xf6e7('0x29'),'qs':{'refresh_token':_0xd19368[_0xf6e7('0x2a')],'client_id':_0xd19368[_0xf6e7('0x2b')],'client_secret':_0xd19368[_0xf6e7('0x2c')],'grant_type':_0xf6e7('0x2d')},'json':!![]};return rp(_0x2356c1)[_0xf6e7('0x2e')](function(_0x23db2c){accountsTokens[_0xd19368['id']]={'access_token':_0x23db2c[_0xf6e7('0x20')],'expires_in':moment()[_0xf6e7('0x2f')](_0x23db2c[_0xf6e7('0x22')],_0xf6e7('0x30'))};_0x1322d6(_0x23db2c[_0xf6e7('0x20')]);})['catch'](function(_0x1533b0){logger[_0xf6e7('0x31')](_0xf6e7('0x32'),_0x1533b0[_0xf6e7('0x33')]);_0x1cd96f(_0x1533b0);});});}function getUser(_0x1d5e91,_0x3384f2,_0x1b08f5,_0x3b84c2){logger[_0xf6e7('0x34')](_0xf6e7('0x35'));return request({'method':_0xf6e7('0x36'),'uri':util['format'](_0xf6e7('0x37'),_0x3384f2),'qs':{'type':_0xf6e7('0x38')},'headers':{'Authorization':_0xf6e7('0x39')+_0x1d5e91},'json':!![]})[_0xf6e7('0x2e')](function(_0x4551d7){if(_0x4551d7[_0xf6e7('0x3a')]){var _0x17625b=-0x1;if(_['isArrayLikeObject'](_0x4551d7['users'])){if(!_[_0xf6e7('0x1f')](_0x3b84c2)){_0x17625b=_['findIndex'](_0x4551d7[_0xf6e7('0x3a')],function(_0x278838){return _0x278838['email']===_0x3b84c2;});}if(_0x17625b>=0x0){logger[_0xf6e7('0x34')](_0xf6e7('0x3b'));}else{logger[_0xf6e7('0x34')](_0xf6e7('0x3c'));_0x17625b=_[_0xf6e7('0x3d')](_0x4551d7[_0xf6e7('0x3a')],function(_0x560552){return _0x560552[_0xf6e7('0x3e')][_0xf6e7('0x1b')]==='Administrator';});}return _0x4551d7[_0xf6e7('0x3a')][_0x17625b];}else{if(_0x4551d7[_0xf6e7('0x3f')]['profile']['name']===_0xf6e7('0x40')){logger['info']('Using\x20the\x20admin\x20account!');user=_0x4551d7[_0xf6e7('0x3f')];return user;}else{logger[_0xf6e7('0x31')]('The\x20failing\x20result\x20is',JSON[_0xf6e7('0xf')](_0x4551d7));throw new Error(_0xf6e7('0x41')+JSON[_0xf6e7('0xf')](_0x4551d7));}}}else{logger[_0xf6e7('0x31')](_0xf6e7('0x42'),JSON['stringify'](_0x4551d7));throw new Error(_0xf6e7('0x41')+JSON['stringify'](_0x4551d7));}})[_0xf6e7('0x43')](function(_0x2f81c9){console[_0xf6e7('0x31')](_0x2f81c9);});}function getZohoUser(_0x2c0a91,_0x37b8fe){return new BPromise(function(_0x419306,_0x378e0c){request(_0x2c0a91)[_0xf6e7('0x2e')](function(_0x3fad62){var _0x2d32a0=null;if(_0x3fad62){_0x2d32a0=_0x3fad62[_0xf6e7('0x44')][0x0];_0x2d32a0[_0xf6e7('0x45')]=_0x37b8fe;}_0x419306(_0x2d32a0);})[_0xf6e7('0x43')](function(_0x2e1d03){_0x378e0c(_0x2e1d03);});});}function createEndUser(_0x372c5b,_0x36f167,_0x440707,_0x3e41b6,_0x26d048,_0x5cff8e){var _0x440707=getName(_0x440707);return request({'method':_0xf6e7('0x28'),'uri':'https://www.zohoapis.'+_0x36f167+_0xf6e7('0x46')+_[_0xf6e7('0x47')](_0x5cff8e[_0xf6e7('0x48')])+'s','body':{'data':[{'Last_Name':_0x440707[0x1],'First_Name':_0x440707[0x0],'Phone':_0x3e41b6,'Owner':{'name':!_[_0xf6e7('0x1f')](_0x26d048[_0xf6e7('0x49')]['name'])?_0x26d048['role'][_0xf6e7('0x1b')]:!_[_0xf6e7('0x1f')](_0x26d048[_0xf6e7('0x4a')])?_0x26d048[_0xf6e7('0x4a')]+'\x20'+_0x26d048[_0xf6e7('0x4b')]:_0x26d048[_0xf6e7('0x4b')],'id':_0x26d048['id']}}]},'headers':{'Authorization':_0xf6e7('0x39')+_0x372c5b},'json':!![]})[_0xf6e7('0x2e')](function(_0x24cb17){if(_0x24cb17&&_0x24cb17[_0xf6e7('0x44')][0x0][_0xf6e7('0x4c')]===_0xf6e7('0x4d')){var _0x4a80db=_0x24cb17[_0xf6e7('0x44')][0x0]['details'];_0x4a80db[_0xf6e7('0x45')]=_['startCase'](_0x5cff8e[_0xf6e7('0x48')])+'s';return _0x4a80db;}logger['error'](_0xf6e7('0x42'),JSON[_0xf6e7('0xf')](data));throw new Error(_0xf6e7('0x4e')+JSON[_0xf6e7('0xf')](data));})['catch'](function(_0x44f889){console[_0xf6e7('0x4f')](_0xf6e7('0x50'),_0x44f889);});}function getEndUser(_0x59fb8b,_0x15ab34,_0x332f5c,_0x521ff8,_0x3b9384,_0x19272f,_0x4b5050){var _0x27bf3d={'method':'GET','uri':'','headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x59fb8b},'json':!![]};switch(_0x4b5050[_0xf6e7('0x51')]){case _0xf6e7('0x52'):_0x27bf3d[_0xf6e7('0x53')]=_0xf6e7('0x54')+_0x15ab34+_0xf6e7('0x55')+_0x3b9384+'))';return getZohoUser(_0x27bf3d,_0xf6e7('0x56'))['then'](function(_0x12b456){if(_0x12b456)return _0x12b456;_0x27bf3d[_0xf6e7('0x53')]='https://www.zohoapis.'+_0x15ab34+_0xf6e7('0x57')+_0x3b9384+'))';return getZohoUser(_0x27bf3d,'Leads')[_0xf6e7('0x2e')](function(_0x562587){if(_0x562587)return _0x562587;if(_0x4b5050['moduleCreate']!=_0xf6e7('0x58')){return createEndUser(_0x59fb8b,_0x15ab34,_0x521ff8,_0x3b9384,_0x19272f,_0x4b5050);}else{return{};}});});break;case'contact':_0x27bf3d[_0xf6e7('0x53')]=_0xf6e7('0x54')+_0x15ab34+_0xf6e7('0x55')+_0x3b9384+'))';return getZohoUser(_0x27bf3d,_0xf6e7('0x56'))['then'](function(_0x38c34a){if(_0x38c34a)return _0x38c34a;if(_0x4b5050[_0xf6e7('0x48')]!=_0xf6e7('0x58')){return createEndUser(_0x59fb8b,_0x15ab34,_0x521ff8,_0x3b9384,_0x19272f,_0x4b5050);}else{return{};}});break;case _0xf6e7('0x59'):_0x27bf3d[_0xf6e7('0x53')]=_0xf6e7('0x54')+_0x15ab34+_0xf6e7('0x57')+_0x3b9384+'))';return getZohoUser(_0x27bf3d,'Leads')[_0xf6e7('0x2e')](function(_0x35c0ae){if(_0x35c0ae)return _0x35c0ae;if(_0x4b5050[_0xf6e7('0x48')]!=_0xf6e7('0x58')){return createEndUser(_0x59fb8b,_0x15ab34,_0x521ff8,_0x3b9384,_0x19272f,_0x4b5050);}else{return{};}});break;}}function getCall(_0x51a906,_0x4f9014,_0x50e15c,_0x1f20a9,_0xb4d8c5,_0x3ab116,_0x18bee9,_0x2c772b){logger['info'](_0xf6e7('0x5a'));var _0x49741d={};_0x49741d[_0xf6e7('0x5b')]={'name':!_[_0xf6e7('0x1f')](_0x1f20a9['role'][_0xf6e7('0x1b')])&&!_['isNil'](_0x1f20a9[_0xf6e7('0x3e')]['name'])&&_0x1f20a9[_0xf6e7('0x3e')][_0xf6e7('0x1b')]===_0xf6e7('0x5c')?_0x1f20a9[_0xf6e7('0x49')][_0xf6e7('0x1b')]:!_[_0xf6e7('0x1f')](_0x1f20a9[_0xf6e7('0x4a')])?_0x1f20a9['first_name']+'\x20'+_0x1f20a9['last_name']:_0x1f20a9['last_name'],'id':_0x1f20a9['id']};_0x49741d[_0xf6e7('0x5d')]=intUtil['getString'](_0x3ab116[_0xf6e7('0x5e')],_0x18bee9,'\x20');_0x49741d[_0xf6e7('0x5f')]=intUtil[_0xf6e7('0x60')](_0x3ab116[_0xf6e7('0x61')],_0x18bee9,'\x0a');if(_0xb4d8c5[_0xf6e7('0x45')]===_0xf6e7('0x56')){_0x49741d['Who_Id']={'name':!_[_0xf6e7('0x1f')](_0xb4d8c5[_0xf6e7('0x62')])?_0xb4d8c5[_0xf6e7('0x62')]:!_['isNil'](_0xb4d8c5['First_Name'])?_0xb4d8c5['First_Name']+'\x20'+_0xb4d8c5[_0xf6e7('0x63')]:_0xb4d8c5[_0xf6e7('0x63')],'id':_0xb4d8c5['id']};}if(_0xb4d8c5[_0xf6e7('0x45')]===_0xf6e7('0x64')){_0x49741d['What_Id']={'name':!_[_0xf6e7('0x1f')](_0xb4d8c5[_0xf6e7('0x62')])?_0xb4d8c5[_0xf6e7('0x62')]:!_[_0xf6e7('0x1f')](_0xb4d8c5[_0xf6e7('0x65')])?_0xb4d8c5[_0xf6e7('0x65')]+'\x20'+_0xb4d8c5[_0xf6e7('0x63')]:_0xb4d8c5[_0xf6e7('0x63')],'id':_0xb4d8c5['id']};_0x49741d[_0xf6e7('0x66')]=_[_0xf6e7('0x47')](_0xb4d8c5[_0xf6e7('0x45')]);}if(_0x18bee9[_0xf6e7('0x67')]){_0x49741d['Call_Duration']=moment[_0xf6e7('0x68')](parseInt(_0x18bee9['talktime'])*0x3e8)[_0xf6e7('0x69')](_0xf6e7('0x6a'));}else if(_0x18bee9[_0xf6e7('0x6b')]&&_0x18bee9[_0xf6e7('0x6c')]){_0x49741d[_0xf6e7('0x6d')]=moment[_0xf6e7('0x68')](moment(_0x18bee9[_0xf6e7('0x6c')],_0xf6e7('0x6e'))[_0xf6e7('0x6f')](moment(_0x18bee9[_0xf6e7('0x70')],'YYYY-MM-DDTHH:mm:ss')))[_0xf6e7('0x69')](_0xf6e7('0x6a'));}switch(_0x18bee9[_0xf6e7('0x71')]){case'called':_0x49741d['Call_Result']='Called';break;case _0xf6e7('0x72'):case _0xf6e7('0x73'):_0x49741d[_0xf6e7('0x74')]='Answered';break;case _0xf6e7('0x75'):_0x49741d[_0xf6e7('0x74')]=_0xf6e7('0x76');break;case _0xf6e7('0x77'):_0x49741d[_0xf6e7('0x74')]='Abandoned';break;case _0xf6e7('0x78'):_0x49741d[_0xf6e7('0x74')]=_0xf6e7('0x79');default:}_0x49741d[_0xf6e7('0x7a')]=(_0x2c772b===_0xf6e7('0x7b')?moment(_0x18bee9['starttime'])[_0xf6e7('0x69')](_0xf6e7('0x6e')):moment(_0x18bee9[_0xf6e7('0x7c')])[_0xf6e7('0x69')](_0xf6e7('0x6e')))||moment()[_0xf6e7('0x69')](_0xf6e7('0x6e'));_0x49741d[_0xf6e7('0x7d')]=_0x2c772b||_0xf6e7('0x7e');_0x49741d=_[_0xf6e7('0x7f')](_0x49741d,getCustomFields(_0x3ab116[_0xf6e7('0x80')],_0x18bee9));return request({'method':_0xf6e7('0x28'),'uri':_0xf6e7('0x54')+_0x4f9014+_0xf6e7('0x81'),'headers':{'Authorization':_0xf6e7('0x39')+_0x51a906},'body':{'data':[_0x49741d]},'json':!![]})[_0xf6e7('0x2e')](function(_0x59e142){if(_0x59e142&&_0x59e142[_0xf6e7('0x44')][0x0]['code']===_0xf6e7('0x4d')){logger['info']('Call\x20created!');return{'id':_0x59e142[_0xf6e7('0x44')][0x0][_0xf6e7('0x82')]['id']};}})['catch'](function(_0x5e25a8){logger[_0xf6e7('0x34')](_0xf6e7('0x83'),_0x5e25a8[_0xf6e7('0x33')]);console[_0xf6e7('0x4f')](_0xf6e7('0x83'),_0x5e25a8);});}exports['queue']=function(_0x468aac,_0x12bfc6,_0xe44a06,_0x3bc6cc,_0x145aa3,_0x5edc9f){var _0x4e97f5,_0xef17df,_0x48fb71;_0x5edc9f[_0xf6e7('0x84')]=intUtil[_0xf6e7('0x85')](_0x5edc9f['host']);_0x5edc9f['serverUrl']=intUtil[_0xf6e7('0x85')](_0x5edc9f[_0xf6e7('0x86')]);if(_0x145aa3&&_0x145aa3['monitor_format']){logger[_0xf6e7('0x34')]('[QUEUE]','Recording\x20is\x20enabled!');_0x12bfc6[_0xf6e7('0x87')]=_0x5edc9f[_0xf6e7('0x86')]+_0xf6e7('0x88')+_0x12bfc6['uniqueid']+_0xf6e7('0x89')+md5(_0x12bfc6[_0xf6e7('0x8a')]);}else{_0x12bfc6[_0xf6e7('0x87')]='';}var _0x5446f1=_0x5edc9f['host']===_0xf6e7('0x8b')?'eu':_0xf6e7('0x8c');return getAccessToken(_0x5edc9f)[_0xf6e7('0x2e')](function(_0x43f28a){_0x48fb71=_0x43f28a;return getUser(_0x48fb71,_0x5446f1,_0x5edc9f,_0x3bc6cc[_0xf6e7('0x8d')]);})[_0xf6e7('0x2e')](function(_0x208fcb){_0x4e97f5=_0x208fcb;logger[_0xf6e7('0x34')]('The\x20User\x20ID\x20is:',_0x4e97f5['id']);return getEndUser(_0x48fb71,_0x5446f1,_0x5edc9f,_0x12bfc6[_0xf6e7('0x8e')],_0x12bfc6[_0xf6e7('0x8f')],_0x4e97f5,_0xe44a06);})[_0xf6e7('0x2e')](function(_0x26201e){_0xef17df=_0x26201e;return getCall(_0x48fb71,_0x5446f1,_0x5edc9f,_0x4e97f5,_0xef17df,_0xe44a06,_0x12bfc6,'Inbound');})[_0xf6e7('0x2e')](function(_0x2c50f6){if(_0x2c50f6){logger[_0xf6e7('0x34')](_0xf6e7('0x90'),_0x2c50f6['id']);logger[_0xf6e7('0x34')](_0xf6e7('0x91'),_0xf6e7('0x92'));emit(util['format'](_0xf6e7('0x93'),_0x3bc6cc[_0xf6e7('0x1b')]),_0xf6e7('0x94'),{'uri':_0xf6e7('0x95')+_0x5edc9f[_0xf6e7('0x84')]+_0xf6e7('0x96')+_0x2c50f6['id']});}})[_0xf6e7('0x43')](function(_0x23629f){logger['error'](_0xf6e7('0x91'),JSON[_0xf6e7('0xf')](_0x23629f));});};exports['outbound']=function(_0x318c8f,_0x34524b,_0x57547a,_0x3c7502,_0x58d3b1,_0x5dd416,_0x16b7df){var _0x1b2da8,_0x529f77,_0x3dbaed;_0x5dd416[_0xf6e7('0x84')]=intUtil[_0xf6e7('0x85')](_0x5dd416[_0xf6e7('0x84')]);_0x5dd416[_0xf6e7('0x86')]=intUtil[_0xf6e7('0x85')](_0x5dd416[_0xf6e7('0x86')]);if(_0x16b7df&&_0x16b7df[_0xf6e7('0x97')]&&_0x16b7df[_0xf6e7('0x97')]!==_0xf6e7('0x98')){logger[_0xf6e7('0x34')](_0xf6e7('0x99'),_0xf6e7('0x9a'));_0x34524b[_0xf6e7('0x87')]=_0x5dd416[_0xf6e7('0x86')]+_0xf6e7('0x88')+_0x34524b['uniqueid']+_0xf6e7('0x89')+md5(_0x34524b['uniqueid']);}var _0x450fcf=_0x5dd416[_0xf6e7('0x84')]==='zoho.eu'?'eu':_0xf6e7('0x8c');return getAccessToken(_0x5dd416)[_0xf6e7('0x2e')](function(_0xdac7c2){_0x3dbaed=_0xdac7c2;return getUser(_0x3dbaed,_0x450fcf,_0x5dd416,_0x3c7502[_0xf6e7('0x8d')]);})[_0xf6e7('0x2e')](function(_0x3daec7){_0x1b2da8=_0x3daec7;logger[_0xf6e7('0x34')](_0xf6e7('0x9b'),_0x1b2da8['id']);return getEndUser(_0x3dbaed,_0x450fcf,_0x5dd416,_0x34524b[_0xf6e7('0x9c')],_0x34524b['destcalleridnum'],_0x1b2da8,_0x57547a);})['then'](function(_0x18d8f3){_0x529f77=_0x18d8f3;return getCall(_0x3dbaed,_0x450fcf,_0x5dd416,_0x1b2da8,_0x529f77,_0x57547a,_0x34524b,'Outbound');})['then'](function(_0x2b3533){if(_0x2b3533){logger[_0xf6e7('0x34')](_0xf6e7('0x90'),_0x2b3533['id']);logger[_0xf6e7('0x34')]('[OUTBOUND]',_0xf6e7('0x92'));emit(util['format'](_0xf6e7('0x93'),_0x3c7502['name']),_0xf6e7('0x94'),{'uri':_0xf6e7('0x95')+_0x5dd416['host']+_0xf6e7('0x96')+_0x2b3533['id']});}})[_0xf6e7('0x43')](function(_0x4a4600){logger[_0xf6e7('0x31')](_0xf6e7('0x99'),JSON[_0xf6e7('0xf')](_0x4a4600));});};exports[_0xf6e7('0x9d')]=function(_0x48fe65,_0x4849be,_0x2a1fe3,_0x4e05f6,_0x24070c,_0x3bd0fa){var _0x1fa527,_0x39140e,_0x1b9cf0;_0x3bd0fa[_0xf6e7('0x84')]=intUtil[_0xf6e7('0x85')](_0x3bd0fa[_0xf6e7('0x84')]);_0x3bd0fa[_0xf6e7('0x86')]=intUtil[_0xf6e7('0x85')](_0x3bd0fa['serverUrl']);if(_0x24070c&&_0x24070c[_0xf6e7('0x9e')]){logger['info']('['+_0x4849be[_0xf6e7('0x71')][_0xf6e7('0x9f')]()+']',_0xf6e7('0x9a'));_0x4849be[_0xf6e7('0x87')]=_0x3bd0fa[_0xf6e7('0x86')]+_0xf6e7('0x88')+_0x4849be[_0xf6e7('0x8a')]+'/downloads?type=uniqueid&token='+md5(_0x4849be[_0xf6e7('0x8a')]);}else{_0x4849be['recordingURL']='';}var _0xb485f7=_0x3bd0fa['host']===_0xf6e7('0x8b')?'eu':_0xf6e7('0x8c');return getAccessToken(_0x3bd0fa)['then'](function(_0x5b9b21){_0x1b9cf0=_0x5b9b21;return getUser(_0x1b9cf0,_0xb485f7,_0x3bd0fa);})[_0xf6e7('0x2e')](function(_0x2718d0){_0x1fa527=_0x2718d0;logger[_0xf6e7('0x34')]('The\x20User\x20ID\x20is:',_0x1fa527['id']);return getEndUser(_0x1b9cf0,_0xb485f7,_0x3bd0fa,_0x4849be[_0xf6e7('0x8e')],_0x4849be['calleridnum'],_0x1fa527,_0x2a1fe3);})[_0xf6e7('0x2e')](function(_0xd49758){_0x39140e=_0xd49758;return getCall(_0x1b9cf0,_0xb485f7,_0x3bd0fa,_0x1fa527,_0x39140e,_0x2a1fe3,_0x4849be,_0xf6e7('0x7e'));})[_0xf6e7('0x2e')](function(_0x313f70){if(_0x313f70){logger[_0xf6e7('0x34')]('The\x20Call\x20ID\x20is:',_0x313f70['id']);}})[_0xf6e7('0x43')](function(_0x61d4c1){logger[_0xf6e7('0x31')]('['+_0x4849be['lastevent']['toUpperCase']()+']',JSON['stringify'](_0x61d4c1));});};