Built motion from commit (unavailable).|2.5.4
[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 _0xb5bf=['[OUTBOUND]','Recording\x20is\x20enabled!','zoho.eu','destcalleridname','destcalleridnum','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','/crm/EntityInfo.do?module=Calls&id=','toUpperCase','lastevent','lodash','request-promise','md5','./util','ioredis','bluebird','../../../../config/environment','../../../../config/logger','zoho','redis','localhost','socket.io-emitter','debug','stringify','length','forEach','type','string','idField','content','toString','variable','variableName','customVariable','Variable','name','toLowerCase','split','isNil','access_token','isBefore','expires_in','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','/oauth/v2/token','clientId','clientSecret','then','add','catch','error','Failing\x20creating\x20the\x20access_token','stack','Search\x20user','GET','format','https://www.zohoapis.%s/crm/v2/users','ActiveUsers','Zoho-oauthtoken\x20','users','findIndex','email','info','Agent\x20found!','Using\x20the\x20admin\x20account!','profile','Administrator','user','The\x20failing\x20result\x20is','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','data','enduserType','https://www.zohoapis.','/crm/v2/','startCase','moduleCreate','role','first_name','last_name','code','SUCCESS','details','Error:\x20','log','CREATE\x20ERROR','moduleSearch','contact_lead','uri','/crm/v2/Contacts/search?criteria=((Phone:equals:','Contacts','/crm/v2/Leads/search?criteria=((Phone:equals:','Leads','nothing','contact','Creating\x20new\x20call...','Owner','administrator','getString','Subjects','Description','Descriptions','Who_Id','Full_Name','First_Name','Last_Name','What_Id','talktime','Call_Duration','utc','mm:ss','answertime','endtime','YYYY-MM-DDTHH:mm:ss','diff','starttime','called','Call_Result','Called','complete','connect','rejected','Rejected','abandoned','Abandoned','timeout','Timeout','Call_Start_Time','agentcalledAt','Call_Type','Inbound','Fields','/crm/v2/Calls','err','queue','host','serverUrl','monitor_format','recordingURL','/api/voice/recordings/','/downloads?type=uniqueid&token=','uniqueid','com','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Call\x20ID\x20is:','[QUEUE]','user:%s','outbound','stripTrailingSlash','recordingFormat','none'];(function(_0x475be2,_0xf0639){var _0x4ff8b1=function(_0x4bccc9){while(--_0x4bccc9){_0x475be2['push'](_0x475be2['shift']());}};_0x4ff8b1(++_0xf0639);}(_0xb5bf,0x1d7));var _0xfb5b=function(_0x616290,_0x280b7f){_0x616290=_0x616290-0x0;var _0x453879=_0xb5bf[_0x616290];return _0x453879;};'use strict';var _=require(_0xfb5b('0x0'));var rp=require(_0xfb5b('0x1'));var md5=require(_0xfb5b('0x2'));var util=require('util');var intUtil=require(_0xfb5b('0x3'));var moment=require('moment');var Redis=require(_0xfb5b('0x4'));var BPromise=require(_0xfb5b('0x5'));var config=require(_0xfb5b('0x6'));var logger=require(_0xfb5b('0x7'))(_0xfb5b('0x8'));config[_0xfb5b('0x9')]=_['defaults'](config[_0xfb5b('0x9')],{'host':_0xfb5b('0xa'),'port':0x18eb});var io=require(_0xfb5b('0xb'))(new Redis(config[_0xfb5b('0x9')]));function emit(_0x3ac378,_0x5bd4ce,_0x570b34){io['to'](_0x3ac378)['emit'](_0x5bd4ce,_0x570b34);}function request(_0x541c2d){logger[_0xfb5b('0xc')]('[HTTP]',JSON[_0xfb5b('0xd')](_0x541c2d));return rp(_0x541c2d);}function getCustomFields(_0x5a881c,_0x5af168){var _0x9989e8={};if(_0x5a881c[_0xfb5b('0xe')]>0x0){_[_0xfb5b('0xf')](_0x5a881c,function(_0x5cbffd){if(_0x5cbffd[_0xfb5b('0x10')]===_0xfb5b('0x11')&&_0x5cbffd[_0xfb5b('0x12')]){_0x9989e8[_0x5cbffd[_0xfb5b('0x12')]]=_0x5cbffd[_0xfb5b('0x13')][_0xfb5b('0x14')]();}else if(_0x5cbffd[_0xfb5b('0x10')]===_0xfb5b('0x15')&&_0x5cbffd['variableName']&&_0x5cbffd[_0xfb5b('0x12')]&&_0x5af168[_0x5cbffd[_0xfb5b('0x16')]]){_0x9989e8[_0x5cbffd[_0xfb5b('0x12')]]=_0x5af168[_0x5cbffd[_0xfb5b('0x16')]]['toString']();}else if(_0x5cbffd[_0xfb5b('0x10')]===_0xfb5b('0x17')&&_0x5cbffd[_0xfb5b('0x18')]&&_0x5cbffd['Variable'][_0xfb5b('0x19')]&&_0x5cbffd[_0xfb5b('0x12')]&&_0x5af168[_0x5cbffd[_0xfb5b('0x18')][_0xfb5b('0x19')][_0xfb5b('0x1a')]()]){_0x9989e8[_0x5cbffd[_0xfb5b('0x12')]]=_0x5af168[_0x5cbffd['Variable'][_0xfb5b('0x19')]['toLowerCase']()]['toString']();}});}return _0x9989e8;}function getName(_0x14a2fa){if(_0x14a2fa['indexOf']('\x20')>0x0){var _0x2a3fbc=_0x14a2fa[_0xfb5b('0x1b')](/ (.+)/);if(_0x2a3fbc[0x1]){return _0x2a3fbc;}}return[_0x14a2fa,_0x14a2fa];}var accountsTokens={};function getAccessToken(_0x2dd395){return new Promise(function(_0x17d942,_0x1bb368){if(!_[_0xfb5b('0x1c')](accountsTokens[_0x2dd395['id']])&&!_[_0xfb5b('0x1c')](accountsTokens[_0x2dd395['id']][_0xfb5b('0x1d')])){if(moment()[_0xfb5b('0x1e')](accountsTokens[_0x2dd395['id']][_0xfb5b('0x1f')])){_0x17d942(accountsTokens[_0x2dd395['id']]['access_token']);}}var _0x3a6ade;switch(_0x2dd395['zone']){case'US':_0x3a6ade=_0xfb5b('0x20');break;case'AU':_0x3a6ade=_0xfb5b('0x21');break;case'EU':_0x3a6ade='https://accounts.zoho.eu';break;case'IN':_0x3a6ade=_0xfb5b('0x22');break;case'CN':_0x3a6ade=_0xfb5b('0x23');break;default:_0x3a6ade='https://accounts.zoho.eu';break;}var _0x2cd4b9={'method':_0xfb5b('0x24'),'uri':_0x3a6ade+_0xfb5b('0x25'),'qs':{'refresh_token':_0x2dd395['refreshToken'],'client_id':_0x2dd395[_0xfb5b('0x26')],'client_secret':_0x2dd395[_0xfb5b('0x27')],'grant_type':'refresh_token'},'json':!![]};return rp(_0x2cd4b9)[_0xfb5b('0x28')](function(_0x53987a){accountsTokens[_0x2dd395['id']]={'access_token':_0x53987a[_0xfb5b('0x1d')],'expires_in':moment()[_0xfb5b('0x29')](_0x53987a[_0xfb5b('0x1f')],'seconds')};_0x17d942(_0x53987a['access_token']);})[_0xfb5b('0x2a')](function(_0xd0dbbc){logger[_0xfb5b('0x2b')](_0xfb5b('0x2c'),_0xd0dbbc[_0xfb5b('0x2d')]);_0x1bb368(_0xd0dbbc);});});}function getUser(_0x3281b5,_0x1bd64b,_0x57b3c1,_0x36e376){logger['info'](_0xfb5b('0x2e'));return request({'method':_0xfb5b('0x2f'),'uri':util[_0xfb5b('0x30')](_0xfb5b('0x31'),_0x1bd64b),'qs':{'type':_0xfb5b('0x32')},'headers':{'Authorization':_0xfb5b('0x33')+_0x3281b5},'json':!![]})[_0xfb5b('0x28')](function(_0x4d8f3c){if(_0x4d8f3c[_0xfb5b('0x34')]){var _0x5456f0=-0x1;if(_['isArrayLikeObject'](_0x4d8f3c[_0xfb5b('0x34')])){if(!_['isNil'](_0x36e376)){_0x5456f0=_[_0xfb5b('0x35')](_0x4d8f3c[_0xfb5b('0x34')],function(_0x2a95c4){return _0x2a95c4[_0xfb5b('0x36')]===_0x36e376;});}if(_0x5456f0>=0x0){logger[_0xfb5b('0x37')](_0xfb5b('0x38'));}else{logger[_0xfb5b('0x37')](_0xfb5b('0x39'));_0x5456f0=_[_0xfb5b('0x35')](_0x4d8f3c['users'],function(_0x44a309){return _0x44a309[_0xfb5b('0x3a')]['name']===_0xfb5b('0x3b');});}return _0x4d8f3c[_0xfb5b('0x34')][_0x5456f0];}else{if(_0x4d8f3c[_0xfb5b('0x3c')][_0xfb5b('0x3a')][_0xfb5b('0x19')]===_0xfb5b('0x3b')){logger[_0xfb5b('0x37')]('Using\x20the\x20admin\x20account!');user=_0x4d8f3c[_0xfb5b('0x3c')];return user;}else{logger['error'](_0xfb5b('0x3d'),JSON[_0xfb5b('0xd')](_0x4d8f3c));throw new Error('Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20'+JSON[_0xfb5b('0xd')](_0x4d8f3c));}}}else{logger[_0xfb5b('0x2b')](_0xfb5b('0x3d'),JSON[_0xfb5b('0xd')](_0x4d8f3c));throw new Error(_0xfb5b('0x3e')+JSON[_0xfb5b('0xd')](_0x4d8f3c));}})[_0xfb5b('0x2a')](function(_0x234bd4){console[_0xfb5b('0x2b')](_0x234bd4);});}function getZohoUser(_0x2a4a7d,_0x200795){return new BPromise(function(_0x29a5f6,_0x1a70b5){request(_0x2a4a7d)[_0xfb5b('0x28')](function(_0x357c7d){var _0x25b93d=null;if(_0x357c7d){_0x25b93d=_0x357c7d[_0xfb5b('0x3f')][0x0];_0x25b93d[_0xfb5b('0x40')]=_0x200795;}_0x29a5f6(_0x25b93d);})[_0xfb5b('0x2a')](function(_0x5f74a7){_0x1a70b5(_0x5f74a7);});});}function createEndUser(_0x474c2f,_0xe01a76,_0x4959e0,_0x123801,_0x1a7635,_0xb6d303){var _0x4959e0=getName(_0x4959e0);return request({'method':_0xfb5b('0x24'),'uri':_0xfb5b('0x41')+_0xe01a76+_0xfb5b('0x42')+_[_0xfb5b('0x43')](_0xb6d303[_0xfb5b('0x44')])+'s','body':{'data':[{'Last_Name':_0x4959e0[0x1],'First_Name':_0x4959e0[0x0],'Phone':_0x123801,'Owner':{'name':!_['isNil'](_0x1a7635['role'][_0xfb5b('0x19')])?_0x1a7635[_0xfb5b('0x45')]['name']:!_[_0xfb5b('0x1c')](_0x1a7635[_0xfb5b('0x46')])?_0x1a7635[_0xfb5b('0x46')]+'\x20'+_0x1a7635[_0xfb5b('0x47')]:_0x1a7635[_0xfb5b('0x47')],'id':_0x1a7635['id']}}]},'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x474c2f},'json':!![]})[_0xfb5b('0x28')](function(_0x3e1b0b){if(_0x3e1b0b&&_0x3e1b0b['data'][0x0][_0xfb5b('0x48')]===_0xfb5b('0x49')){var _0x77f1b4=_0x3e1b0b['data'][0x0][_0xfb5b('0x4a')];_0x77f1b4[_0xfb5b('0x40')]=_[_0xfb5b('0x43')](_0xb6d303['moduleCreate'])+'s';return _0x77f1b4;}logger[_0xfb5b('0x2b')](_0xfb5b('0x3d'),JSON[_0xfb5b('0xd')](data));throw new Error(_0xfb5b('0x4b')+JSON[_0xfb5b('0xd')](data));})[_0xfb5b('0x2a')](function(_0x58d4a5){console[_0xfb5b('0x4c')](_0xfb5b('0x4d'),_0x58d4a5);});}function getEndUser(_0x405cc1,_0x40e0a3,_0x151295,_0x581df9,_0x26de0d,_0x15249d,_0x462907){var _0x43e2e7={'method':_0xfb5b('0x2f'),'uri':'','headers':{'Authorization':_0xfb5b('0x33')+_0x405cc1},'json':!![]};switch(_0x462907[_0xfb5b('0x4e')]){case _0xfb5b('0x4f'):_0x43e2e7[_0xfb5b('0x50')]=_0xfb5b('0x41')+_0x40e0a3+_0xfb5b('0x51')+_0x26de0d+'))';return getZohoUser(_0x43e2e7,_0xfb5b('0x52'))[_0xfb5b('0x28')](function(_0x3bd16e){if(_0x3bd16e)return _0x3bd16e;_0x43e2e7[_0xfb5b('0x50')]=_0xfb5b('0x41')+_0x40e0a3+_0xfb5b('0x53')+_0x26de0d+'))';return getZohoUser(_0x43e2e7,_0xfb5b('0x54'))[_0xfb5b('0x28')](function(_0x18cf14){if(_0x18cf14)return _0x18cf14;if(_0x462907[_0xfb5b('0x44')]!=_0xfb5b('0x55')){return createEndUser(_0x405cc1,_0x40e0a3,_0x581df9,_0x26de0d,_0x15249d,_0x462907);}else{return{};}});});break;case _0xfb5b('0x56'):_0x43e2e7[_0xfb5b('0x50')]=_0xfb5b('0x41')+_0x40e0a3+'/crm/v2/Contacts/search?criteria=((Phone:equals:'+_0x26de0d+'))';return getZohoUser(_0x43e2e7,_0xfb5b('0x52'))['then'](function(_0x1273d9){if(_0x1273d9)return _0x1273d9;if(_0x462907[_0xfb5b('0x44')]!=_0xfb5b('0x55')){return createEndUser(_0x405cc1,_0x40e0a3,_0x581df9,_0x26de0d,_0x15249d,_0x462907);}else{return{};}});break;case'lead':_0x43e2e7[_0xfb5b('0x50')]=_0xfb5b('0x41')+_0x40e0a3+'/crm/v2/Leads/search?criteria=((Phone:equals:'+_0x26de0d+'))';return getZohoUser(_0x43e2e7,_0xfb5b('0x54'))[_0xfb5b('0x28')](function(_0x5b7973){if(_0x5b7973)return _0x5b7973;if(_0x462907[_0xfb5b('0x44')]!=_0xfb5b('0x55')){return createEndUser(_0x405cc1,_0x40e0a3,_0x581df9,_0x26de0d,_0x15249d,_0x462907);}else{return{};}});break;}}function getCall(_0x52751e,_0x70fc56,_0x52eeda,_0x2e563a,_0x321815,_0x63be51,_0x4ae71c,_0x56b6e7){logger[_0xfb5b('0x37')](_0xfb5b('0x57'));var _0x502699={};_0x502699[_0xfb5b('0x58')]={'name':!_[_0xfb5b('0x1c')](_0x2e563a[_0xfb5b('0x45')][_0xfb5b('0x19')])&&!_[_0xfb5b('0x1c')](_0x2e563a[_0xfb5b('0x3a')][_0xfb5b('0x19')])&&_0x2e563a[_0xfb5b('0x3a')][_0xfb5b('0x19')]===_0xfb5b('0x59')?_0x2e563a[_0xfb5b('0x45')][_0xfb5b('0x19')]:!_[_0xfb5b('0x1c')](_0x2e563a[_0xfb5b('0x46')])?_0x2e563a[_0xfb5b('0x46')]+'\x20'+_0x2e563a[_0xfb5b('0x47')]:_0x2e563a[_0xfb5b('0x47')],'id':_0x2e563a['id']};_0x502699['Subject']=intUtil[_0xfb5b('0x5a')](_0x63be51[_0xfb5b('0x5b')],_0x4ae71c,'\x20');_0x502699[_0xfb5b('0x5c')]=intUtil[_0xfb5b('0x5a')](_0x63be51[_0xfb5b('0x5d')],_0x4ae71c,'\x0a');if(_0x321815[_0xfb5b('0x40')]===_0xfb5b('0x52')){_0x502699[_0xfb5b('0x5e')]={'name':!_[_0xfb5b('0x1c')](_0x321815[_0xfb5b('0x5f')])?_0x321815[_0xfb5b('0x5f')]:!_[_0xfb5b('0x1c')](_0x321815[_0xfb5b('0x60')])?_0x321815['First_Name']+'\x20'+_0x321815['Last_Name']:_0x321815[_0xfb5b('0x61')],'id':_0x321815['id']};}if(_0x321815[_0xfb5b('0x40')]===_0xfb5b('0x54')){_0x502699[_0xfb5b('0x62')]={'name':!_['isNil'](_0x321815[_0xfb5b('0x5f')])?_0x321815[_0xfb5b('0x5f')]:!_[_0xfb5b('0x1c')](_0x321815[_0xfb5b('0x60')])?_0x321815[_0xfb5b('0x60')]+'\x20'+_0x321815[_0xfb5b('0x61')]:_0x321815['Last_Name'],'id':_0x321815['id']};_0x502699['$se_module']=_[_0xfb5b('0x43')](_0x321815['enduserType']);}if(_0x4ae71c[_0xfb5b('0x63')]){_0x502699[_0xfb5b('0x64')]=moment[_0xfb5b('0x65')](parseInt(_0x4ae71c[_0xfb5b('0x63')])*0x3e8)[_0xfb5b('0x30')](_0xfb5b('0x66'));}else if(_0x4ae71c[_0xfb5b('0x67')]&&_0x4ae71c[_0xfb5b('0x68')]){_0x502699[_0xfb5b('0x64')]=moment[_0xfb5b('0x65')](moment(_0x4ae71c[_0xfb5b('0x68')],_0xfb5b('0x69'))[_0xfb5b('0x6a')](moment(_0x4ae71c[_0xfb5b('0x6b')],'YYYY-MM-DDTHH:mm:ss')))[_0xfb5b('0x30')](_0xfb5b('0x66'));}switch(_0x4ae71c['lastevent']){case _0xfb5b('0x6c'):_0x502699[_0xfb5b('0x6d')]=_0xfb5b('0x6e');break;case _0xfb5b('0x6f'):case _0xfb5b('0x70'):_0x502699['Call_Result']='Answered';break;case _0xfb5b('0x71'):_0x502699[_0xfb5b('0x6d')]=_0xfb5b('0x72');break;case _0xfb5b('0x73'):_0x502699[_0xfb5b('0x6d')]=_0xfb5b('0x74');break;case _0xfb5b('0x75'):_0x502699[_0xfb5b('0x6d')]=_0xfb5b('0x76');default:}_0x502699[_0xfb5b('0x77')]=(_0x56b6e7==='outbound'?moment(_0x4ae71c[_0xfb5b('0x6b')])[_0xfb5b('0x30')](_0xfb5b('0x69')):moment(_0x4ae71c[_0xfb5b('0x78')])[_0xfb5b('0x30')](_0xfb5b('0x69')))||moment()[_0xfb5b('0x30')](_0xfb5b('0x69'));_0x502699[_0xfb5b('0x79')]=_0x56b6e7||_0xfb5b('0x7a');_0x502699=_['merge'](_0x502699,getCustomFields(_0x63be51[_0xfb5b('0x7b')],_0x4ae71c));return request({'method':'POST','uri':_0xfb5b('0x41')+_0x70fc56+_0xfb5b('0x7c'),'headers':{'Authorization':_0xfb5b('0x33')+_0x52751e},'body':{'data':[_0x502699]},'json':!![]})[_0xfb5b('0x28')](function(_0x4b052d){if(_0x4b052d&&_0x4b052d['data'][0x0][_0xfb5b('0x48')]===_0xfb5b('0x49')){logger[_0xfb5b('0x37')]('Call\x20created!');return{'id':_0x4b052d[_0xfb5b('0x3f')][0x0][_0xfb5b('0x4a')]['id']};}})['catch'](function(_0x33002c){logger[_0xfb5b('0x37')](_0xfb5b('0x7d'),_0x33002c[_0xfb5b('0x2d')]);console[_0xfb5b('0x4c')](_0xfb5b('0x7d'),_0x33002c);});}exports[_0xfb5b('0x7e')]=function(_0xc09d52,_0x3207b9,_0x3b7a54,_0x2dc0e6,_0x1c5de0,_0x3b78a4){var _0x2b6b33,_0x3b8de1,_0x5d0fa3;_0x3b78a4['host']=intUtil['stripTrailingSlash'](_0x3b78a4[_0xfb5b('0x7f')]);_0x3b78a4[_0xfb5b('0x80')]=intUtil['stripTrailingSlash'](_0x3b78a4[_0xfb5b('0x80')]);if(_0x1c5de0&&_0x1c5de0[_0xfb5b('0x81')]){logger[_0xfb5b('0x37')]('[QUEUE]','Recording\x20is\x20enabled!');_0x3207b9[_0xfb5b('0x82')]=_0x3b78a4[_0xfb5b('0x80')]+_0xfb5b('0x83')+_0x3207b9['uniqueid']+_0xfb5b('0x84')+md5(_0x3207b9[_0xfb5b('0x85')]);}else{_0x3207b9[_0xfb5b('0x82')]='';}var _0x53db4f=_0x3b78a4[_0xfb5b('0x7f')]==='zoho.eu'?'eu':_0xfb5b('0x86');return getAccessToken(_0x3b78a4)[_0xfb5b('0x28')](function(_0x5a0090){_0x5d0fa3=_0x5a0090;return getUser(_0x5d0fa3,_0x53db4f,_0x3b78a4,_0x2dc0e6[_0xfb5b('0x36')]);})[_0xfb5b('0x28')](function(_0x3a8d42){_0x2b6b33=_0x3a8d42;logger[_0xfb5b('0x37')](_0xfb5b('0x87'),_0x2b6b33['id']);return getEndUser(_0x5d0fa3,_0x53db4f,_0x3b78a4,_0x3207b9[_0xfb5b('0x88')],_0x3207b9[_0xfb5b('0x89')],_0x2b6b33,_0x3b7a54);})[_0xfb5b('0x28')](function(_0x3a6aa8){_0x3b8de1=_0x3a6aa8;return getCall(_0x5d0fa3,_0x53db4f,_0x3b78a4,_0x2b6b33,_0x3b8de1,_0x3b7a54,_0x3207b9,'Inbound');})[_0xfb5b('0x28')](function(_0x3367ec){if(_0x3367ec){logger[_0xfb5b('0x37')](_0xfb5b('0x8a'),_0x3367ec['id']);logger[_0xfb5b('0x37')](_0xfb5b('0x8b'),'Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0xfb5b('0x30')](_0xfb5b('0x8c'),_0x2dc0e6[_0xfb5b('0x19')]),'trigger:browser:url',{'uri':'https://crm.'+_0x3b78a4[_0xfb5b('0x7f')]+'/crm/EntityInfo.do?module=Calls&id='+_0x3367ec['id']});}})['catch'](function(_0xaac273){logger[_0xfb5b('0x2b')](_0xfb5b('0x8b'),JSON['stringify'](_0xaac273));});};exports[_0xfb5b('0x8d')]=function(_0x3c5900,_0x33281e,_0x17a8b3,_0x505e0f,_0x135972,_0x384b3b,_0x5aa638){var _0x19f1fb,_0x390fb1,_0x48d4f2;_0x384b3b[_0xfb5b('0x7f')]=intUtil[_0xfb5b('0x8e')](_0x384b3b[_0xfb5b('0x7f')]);_0x384b3b[_0xfb5b('0x80')]=intUtil[_0xfb5b('0x8e')](_0x384b3b[_0xfb5b('0x80')]);if(_0x5aa638&&_0x5aa638[_0xfb5b('0x8f')]&&_0x5aa638[_0xfb5b('0x8f')]!==_0xfb5b('0x90')){logger[_0xfb5b('0x37')](_0xfb5b('0x91'),_0xfb5b('0x92'));_0x33281e[_0xfb5b('0x82')]=_0x384b3b[_0xfb5b('0x80')]+'/api/voice/recordings/'+_0x33281e['uniqueid']+'/downloads?type=uniqueid&token='+md5(_0x33281e['uniqueid']);}var _0x3212ee=_0x384b3b[_0xfb5b('0x7f')]===_0xfb5b('0x93')?'eu':_0xfb5b('0x86');return getAccessToken(_0x384b3b)[_0xfb5b('0x28')](function(_0x1f179e){_0x48d4f2=_0x1f179e;return getUser(_0x48d4f2,_0x3212ee,_0x384b3b,_0x505e0f['email']);})[_0xfb5b('0x28')](function(_0x140798){_0x19f1fb=_0x140798;logger[_0xfb5b('0x37')](_0xfb5b('0x87'),_0x19f1fb['id']);return getEndUser(_0x48d4f2,_0x3212ee,_0x384b3b,_0x33281e[_0xfb5b('0x94')],_0x33281e[_0xfb5b('0x95')],_0x19f1fb,_0x17a8b3);})[_0xfb5b('0x28')](function(_0x31060d){_0x390fb1=_0x31060d;return getCall(_0x48d4f2,_0x3212ee,_0x384b3b,_0x19f1fb,_0x390fb1,_0x17a8b3,_0x33281e,'Outbound');})[_0xfb5b('0x28')](function(_0x20ca59){if(_0x20ca59){logger[_0xfb5b('0x37')](_0xfb5b('0x8a'),_0x20ca59['id']);logger[_0xfb5b('0x37')](_0xfb5b('0x91'),_0xfb5b('0x96'));emit(util[_0xfb5b('0x30')]('user:%s',_0x505e0f[_0xfb5b('0x19')]),'trigger:browser:url',{'uri':'https://crm.'+_0x384b3b[_0xfb5b('0x7f')]+_0xfb5b('0x97')+_0x20ca59['id']});}})['catch'](function(_0x4b2f3b){logger[_0xfb5b('0x2b')](_0xfb5b('0x91'),JSON[_0xfb5b('0xd')](_0x4b2f3b));});};exports['unmanaged']=function(_0x4564de,_0x3a92c9,_0x57e3f3,_0x4f5450,_0x2d18c0,_0xa74865){var _0x369302,_0x5f369d,_0x20f0eb;_0xa74865[_0xfb5b('0x7f')]=intUtil['stripTrailingSlash'](_0xa74865[_0xfb5b('0x7f')]);_0xa74865[_0xfb5b('0x80')]=intUtil[_0xfb5b('0x8e')](_0xa74865[_0xfb5b('0x80')]);if(_0x2d18c0&&_0x2d18c0[_0xfb5b('0x81')]){logger[_0xfb5b('0x37')]('['+_0x3a92c9['lastevent'][_0xfb5b('0x98')]()+']',_0xfb5b('0x92'));_0x3a92c9[_0xfb5b('0x82')]=_0xa74865[_0xfb5b('0x80')]+_0xfb5b('0x83')+_0x3a92c9[_0xfb5b('0x85')]+_0xfb5b('0x84')+md5(_0x3a92c9[_0xfb5b('0x85')]);}else{_0x3a92c9[_0xfb5b('0x82')]='';}var _0x539506=_0xa74865[_0xfb5b('0x7f')]==='zoho.eu'?'eu':_0xfb5b('0x86');return getAccessToken(_0xa74865)[_0xfb5b('0x28')](function(_0x23dbee){_0x20f0eb=_0x23dbee;return getUser(_0x20f0eb,_0x539506,_0xa74865);})[_0xfb5b('0x28')](function(_0x89a7e4){_0x369302=_0x89a7e4;logger[_0xfb5b('0x37')](_0xfb5b('0x87'),_0x369302['id']);return getEndUser(_0x20f0eb,_0x539506,_0xa74865,_0x3a92c9[_0xfb5b('0x88')],_0x3a92c9['calleridnum'],_0x369302,_0x57e3f3);})[_0xfb5b('0x28')](function(_0x4a9779){_0x5f369d=_0x4a9779;return getCall(_0x20f0eb,_0x539506,_0xa74865,_0x369302,_0x5f369d,_0x57e3f3,_0x3a92c9,_0xfb5b('0x7a'));})[_0xfb5b('0x28')](function(_0x3404df){if(_0x3404df){logger['info']('The\x20Call\x20ID\x20is:',_0x3404df['id']);}})[_0xfb5b('0x2a')](function(_0x5659e9){logger['error']('['+_0x3a92c9[_0xfb5b('0x99')][_0xfb5b('0x98')]()+']',JSON[_0xfb5b('0xd')](_0x5659e9));});};