Built motion from commit 936e8062.|2.5.33
[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 _0xd899=['string','type','idField','content','variable','variableName','customVariable','Variable','name','toLowerCase','toString','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.com.cn','/oauth/v2/token','clientId','clientSecret','refresh_token','then','catch','error','Failing\x20creating\x20the\x20access_token','stack','info','Search\x20user','GET','ActiveUsers','Zoho-oauthtoken\x20','users','isArrayLikeObject','findIndex','email','Using\x20the\x20admin\x20account!','profile','Administrator','user','The\x20failing\x20result\x20is','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','enduserType','/crm/v2/','startCase','moduleCreate','role','first_name','last_name','data','code','SUCCESS','Error:\x20','log','CREATE\x20ERROR','moduleSearch','uri','Contacts','/crm/v2/Leads/search?criteria=((Phone:equals:','Leads','nothing','lead','https://www.zohoapis.','Creating\x20new\x20call...','Owner','administrator','Subject','getString','Subjects','Descriptions','Who_Id','Full_Name','First_Name','Last_Name','What_Id','$se_module','talktime','Call_Duration','format','answertime','endtime','diff','starttime','YYYY-MM-DDTHH:mm:ss','mm:ss','lastevent','called','Call_Result','Called','complete','abandoned','Abandoned','Call_Start_Time','outbound','agentcalledAt','Call_Type','Inbound','merge','Fields','POST','/crm/v2/Calls','Call\x20created!','details','err','queue','host','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','/api/voice/recordings/','uniqueid','/downloads?type=uniqueid&token=','zoho.eu','com','The\x20User\x20ID\x20is:','calleridname','The\x20Call\x20ID\x20is:','user:%s','https://crm.','/crm/EntityInfo.do?module=Calls&id=','recordingFormat','[OUTBOUND]','destcalleridname','destcalleridnum','Outbound','trigger:browser:url','toUpperCase','calleridnum','lodash','request-promise','util','moment','bluebird','../../../../config/environment','../../../../config/logger','zoho','localhost','redis','debug','[HTTP]','stringify','length','forEach'];(function(_0x138e75,_0x25ac6c){var _0x3c4c1c=function(_0x4d3a1a){while(--_0x4d3a1a){_0x138e75['push'](_0x138e75['shift']());}};_0x3c4c1c(++_0x25ac6c);}(_0xd899,0x1b3));var _0x9d89=function(_0x3f5859,_0x47789d){_0x3f5859=_0x3f5859-0x0;var _0x35ab27=_0xd899[_0x3f5859];return _0x35ab27;};'use strict';var _=require(_0x9d89('0x0'));var rp=require(_0x9d89('0x1'));var md5=require('md5');var util=require(_0x9d89('0x2'));var intUtil=require('./util');var moment=require(_0x9d89('0x3'));var Redis=require('ioredis');var BPromise=require(_0x9d89('0x4'));var config=require(_0x9d89('0x5'));var logger=require(_0x9d89('0x6'))(_0x9d89('0x7'));config['redis']=_['defaults'](config['redis'],{'host':_0x9d89('0x8'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x9d89('0x9')]));function emit(_0x1ab416,_0x4da048,_0xad2e5a){io['to'](_0x1ab416)['emit'](_0x4da048,_0xad2e5a);}function request(_0x4f74e5){logger[_0x9d89('0xa')](_0x9d89('0xb'),JSON[_0x9d89('0xc')](_0x4f74e5));return rp(_0x4f74e5);}function getCustomFields(_0x98b8ff,_0x397a1f){var _0x156b8c={};if(_0x98b8ff[_0x9d89('0xd')]>0x0){_[_0x9d89('0xe')](_0x98b8ff,function(_0x3f99b4){if(_['includes']([_0x9d89('0xf'),'picklist'],_0x3f99b4[_0x9d89('0x10')])&&_0x3f99b4[_0x9d89('0x11')]){_0x156b8c[_0x3f99b4[_0x9d89('0x11')]]=_0x3f99b4[_0x9d89('0x12')]['toString']();}else if(_0x3f99b4['type']===_0x9d89('0x13')&&_0x3f99b4['variableName']&&_0x3f99b4[_0x9d89('0x11')]&&_0x397a1f[_0x3f99b4[_0x9d89('0x14')]]){_0x156b8c[_0x3f99b4[_0x9d89('0x11')]]=_0x397a1f[_0x3f99b4[_0x9d89('0x14')]]['toString']();}else if(_0x3f99b4[_0x9d89('0x10')]===_0x9d89('0x15')&&_0x3f99b4[_0x9d89('0x16')]&&_0x3f99b4['Variable']['name']&&_0x3f99b4[_0x9d89('0x11')]&&_0x397a1f[_0x3f99b4['Variable']['name']['toLowerCase']()]){_0x156b8c[_0x3f99b4['idField']]=_0x397a1f[_0x3f99b4['Variable'][_0x9d89('0x17')][_0x9d89('0x18')]()][_0x9d89('0x19')]();}});}return _0x156b8c;}function getName(_0x685cfe){if(_0x685cfe[_0x9d89('0x1a')]('\x20')>0x0){var _0x15bf34=_0x685cfe[_0x9d89('0x1b')](/ (.+)/);if(_0x15bf34[0x1]){return _0x15bf34;}}return[_0x685cfe,_0x685cfe];}var accountsTokens={};function getAccessToken(_0xb522b){return new Promise(function(_0x3f37a1,_0x25252e){if(!_[_0x9d89('0x1c')](accountsTokens[_0xb522b['id']])&&!_[_0x9d89('0x1c')](accountsTokens[_0xb522b['id']][_0x9d89('0x1d')])){if(moment()[_0x9d89('0x1e')](accountsTokens[_0xb522b['id']][_0x9d89('0x1f')])){_0x3f37a1(accountsTokens[_0xb522b['id']]['access_token']);}}var _0x4f5358;switch(_0xb522b[_0x9d89('0x20')]){case'US':_0x4f5358=_0x9d89('0x21');break;case'AU':_0x4f5358=_0x9d89('0x22');break;case'EU':_0x4f5358=_0x9d89('0x23');break;case'IN':_0x4f5358='https://accounts.zoho.in';break;case'CN':_0x4f5358=_0x9d89('0x24');break;default:_0x4f5358=_0x9d89('0x23');break;}var _0x4363b4={'method':'POST','uri':_0x4f5358+_0x9d89('0x25'),'qs':{'refresh_token':_0xb522b['refreshToken'],'client_id':_0xb522b[_0x9d89('0x26')],'client_secret':_0xb522b[_0x9d89('0x27')],'grant_type':_0x9d89('0x28')},'json':!![]};return rp(_0x4363b4)[_0x9d89('0x29')](function(_0x479ef7){accountsTokens[_0xb522b['id']]={'access_token':_0x479ef7['access_token'],'expires_in':moment()['add'](_0x479ef7['expires_in'],'seconds')};_0x3f37a1(_0x479ef7[_0x9d89('0x1d')]);})[_0x9d89('0x2a')](function(_0x34fb51){logger[_0x9d89('0x2b')](_0x9d89('0x2c'),_0x34fb51[_0x9d89('0x2d')]);_0x25252e(_0x34fb51);});});}function getUser(_0x14448b,_0x3ecede,_0x296a65,_0x1b7024){logger[_0x9d89('0x2e')](_0x9d89('0x2f'));return request({'method':_0x9d89('0x30'),'uri':util['format']('https://www.zohoapis.%s/crm/v2/users',_0x3ecede),'qs':{'type':_0x9d89('0x31')},'headers':{'Authorization':_0x9d89('0x32')+_0x14448b},'json':!![]})[_0x9d89('0x29')](function(_0x2f39c3){if(_0x2f39c3[_0x9d89('0x33')]){var _0x2c079f=-0x1;if(_[_0x9d89('0x34')](_0x2f39c3['users'])){if(!_[_0x9d89('0x1c')](_0x1b7024)){_0x2c079f=_[_0x9d89('0x35')](_0x2f39c3[_0x9d89('0x33')],function(_0x459f47){return _0x459f47[_0x9d89('0x36')]===_0x1b7024;});}if(_0x2c079f>=0x0){logger['info']('Agent\x20found!');}else{logger['info'](_0x9d89('0x37'));_0x2c079f=_[_0x9d89('0x35')](_0x2f39c3[_0x9d89('0x33')],function(_0x387ad8){return _0x387ad8[_0x9d89('0x38')][_0x9d89('0x17')]===_0x9d89('0x39');});}return _0x2f39c3[_0x9d89('0x33')][_0x2c079f];}else{if(_0x2f39c3['user'][_0x9d89('0x38')]['name']==='Administrator'){logger[_0x9d89('0x2e')]('Using\x20the\x20admin\x20account!');user=_0x2f39c3[_0x9d89('0x3a')];return user;}else{logger[_0x9d89('0x2b')](_0x9d89('0x3b'),JSON[_0x9d89('0xc')](_0x2f39c3));throw new Error(_0x9d89('0x3c')+JSON[_0x9d89('0xc')](_0x2f39c3));}}}else{logger[_0x9d89('0x2b')](_0x9d89('0x3b'),JSON['stringify'](_0x2f39c3));throw new Error(_0x9d89('0x3c')+JSON[_0x9d89('0xc')](_0x2f39c3));}})[_0x9d89('0x2a')](function(_0x12acd2){console[_0x9d89('0x2b')](_0x12acd2);});}function getZohoUser(_0x50ea7d,_0x1f1125){return new BPromise(function(_0x4e2865,_0x3e0c04){request(_0x50ea7d)[_0x9d89('0x29')](function(_0x10aae2){var _0x4a966e=null;if(_0x10aae2){_0x4a966e=_0x10aae2['data'][0x0];_0x4a966e[_0x9d89('0x3d')]=_0x1f1125;}_0x4e2865(_0x4a966e);})[_0x9d89('0x2a')](function(_0x33410e){_0x3e0c04(_0x33410e);});});}function createEndUser(_0x4c8a4f,_0x2d29c8,_0x54b666,_0x2ba2cf,_0x3d79dc,_0x5304a1){var _0x54b666=getName(_0x54b666);return request({'method':'POST','uri':'https://www.zohoapis.'+_0x2d29c8+_0x9d89('0x3e')+_[_0x9d89('0x3f')](_0x5304a1[_0x9d89('0x40')])+'s','body':{'data':[{'Last_Name':_0x54b666[0x1],'First_Name':_0x54b666[0x0],'Phone':_0x2ba2cf,'Owner':{'name':!_[_0x9d89('0x1c')](_0x3d79dc['role'][_0x9d89('0x17')])?_0x3d79dc[_0x9d89('0x41')][_0x9d89('0x17')]:!_['isNil'](_0x3d79dc[_0x9d89('0x42')])?_0x3d79dc[_0x9d89('0x42')]+'\x20'+_0x3d79dc[_0x9d89('0x43')]:_0x3d79dc[_0x9d89('0x43')],'id':_0x3d79dc['id']}}]},'headers':{'Authorization':_0x9d89('0x32')+_0x4c8a4f},'json':!![]})[_0x9d89('0x29')](function(_0x9fba25){if(_0x9fba25&&_0x9fba25[_0x9d89('0x44')][0x0][_0x9d89('0x45')]===_0x9d89('0x46')){var _0x229508=_0x9fba25[_0x9d89('0x44')][0x0]['details'];_0x229508[_0x9d89('0x3d')]=_['startCase'](_0x5304a1[_0x9d89('0x40')])+'s';return _0x229508;}logger[_0x9d89('0x2b')]('The\x20failing\x20result\x20is',JSON[_0x9d89('0xc')](data));throw new Error(_0x9d89('0x47')+JSON[_0x9d89('0xc')](data));})['catch'](function(_0x13c829){console[_0x9d89('0x48')](_0x9d89('0x49'),_0x13c829);});}function getEndUser(_0x1ffe99,_0x152a44,_0x5115a2,_0x2ba321,_0x3a43a6,_0x16191d,_0x5ef109){var _0x4fe36b={'method':_0x9d89('0x30'),'uri':'','headers':{'Authorization':_0x9d89('0x32')+_0x1ffe99},'json':!![]};switch(_0x5ef109[_0x9d89('0x4a')]){case'contact_lead':_0x4fe36b[_0x9d89('0x4b')]='https://www.zohoapis.'+_0x152a44+'/crm/v2/Contacts/search?criteria=((Phone:equals:'+_0x3a43a6+'))';return getZohoUser(_0x4fe36b,_0x9d89('0x4c'))['then'](function(_0x343f4a){if(_0x343f4a)return _0x343f4a;_0x4fe36b[_0x9d89('0x4b')]='https://www.zohoapis.'+_0x152a44+_0x9d89('0x4d')+_0x3a43a6+'))';return getZohoUser(_0x4fe36b,_0x9d89('0x4e'))[_0x9d89('0x29')](function(_0x44229e){if(_0x44229e)return _0x44229e;if(_0x5ef109[_0x9d89('0x40')]!=_0x9d89('0x4f')){return createEndUser(_0x1ffe99,_0x152a44,_0x2ba321,_0x3a43a6,_0x16191d,_0x5ef109);}else{return{};}});});break;case'contact':_0x4fe36b[_0x9d89('0x4b')]='https://www.zohoapis.'+_0x152a44+'/crm/v2/Contacts/search?criteria=((Phone:equals:'+_0x3a43a6+'))';return getZohoUser(_0x4fe36b,_0x9d89('0x4c'))[_0x9d89('0x29')](function(_0x63e051){if(_0x63e051)return _0x63e051;if(_0x5ef109['moduleCreate']!=_0x9d89('0x4f')){return createEndUser(_0x1ffe99,_0x152a44,_0x2ba321,_0x3a43a6,_0x16191d,_0x5ef109);}else{return{};}});break;case _0x9d89('0x50'):_0x4fe36b[_0x9d89('0x4b')]=_0x9d89('0x51')+_0x152a44+_0x9d89('0x4d')+_0x3a43a6+'))';return getZohoUser(_0x4fe36b,_0x9d89('0x4e'))[_0x9d89('0x29')](function(_0x2285c6){if(_0x2285c6)return _0x2285c6;if(_0x5ef109[_0x9d89('0x40')]!='nothing'){return createEndUser(_0x1ffe99,_0x152a44,_0x2ba321,_0x3a43a6,_0x16191d,_0x5ef109);}else{return{};}});break;}}function getCall(_0x3ebba4,_0x1ed287,_0x314789,_0x318d74,_0x7b7944,_0x486086,_0x40de7a,_0x3a7925){logger[_0x9d89('0x2e')](_0x9d89('0x52'));var _0x22261a={};_0x22261a[_0x9d89('0x53')]={'name':!_[_0x9d89('0x1c')](_0x318d74[_0x9d89('0x41')]['name'])&&!_['isNil'](_0x318d74[_0x9d89('0x38')][_0x9d89('0x17')])&&_0x318d74[_0x9d89('0x38')]['name']===_0x9d89('0x54')?_0x318d74['role'][_0x9d89('0x17')]:!_[_0x9d89('0x1c')](_0x318d74[_0x9d89('0x42')])?_0x318d74[_0x9d89('0x42')]+'\x20'+_0x318d74['last_name']:_0x318d74[_0x9d89('0x43')],'id':_0x318d74['id']};_0x22261a[_0x9d89('0x55')]=intUtil[_0x9d89('0x56')](_0x486086[_0x9d89('0x57')],_0x40de7a,'\x20');_0x22261a['Description']=intUtil[_0x9d89('0x56')](_0x486086[_0x9d89('0x58')],_0x40de7a,'\x0a');if(_0x7b7944['enduserType']==='Contacts'){_0x22261a[_0x9d89('0x59')]={'name':!_['isNil'](_0x7b7944[_0x9d89('0x5a')])?_0x7b7944[_0x9d89('0x5a')]:!_[_0x9d89('0x1c')](_0x7b7944[_0x9d89('0x5b')])?_0x7b7944['First_Name']+'\x20'+_0x7b7944[_0x9d89('0x5c')]:_0x7b7944[_0x9d89('0x5c')],'id':_0x7b7944['id']};}if(_0x7b7944[_0x9d89('0x3d')]===_0x9d89('0x4e')){_0x22261a[_0x9d89('0x5d')]={'name':!_['isNil'](_0x7b7944[_0x9d89('0x5a')])?_0x7b7944[_0x9d89('0x5a')]:!_['isNil'](_0x7b7944[_0x9d89('0x5b')])?_0x7b7944[_0x9d89('0x5b')]+'\x20'+_0x7b7944[_0x9d89('0x5c')]:_0x7b7944[_0x9d89('0x5c')],'id':_0x7b7944['id']};_0x22261a[_0x9d89('0x5e')]=_[_0x9d89('0x3f')](_0x7b7944[_0x9d89('0x3d')]);}if(_0x40de7a[_0x9d89('0x5f')]){_0x22261a[_0x9d89('0x60')]=moment['utc'](parseInt(_0x40de7a[_0x9d89('0x5f')])*0x3e8)[_0x9d89('0x61')]('mm:ss');}else if(_0x40de7a[_0x9d89('0x62')]&&_0x40de7a[_0x9d89('0x63')]){_0x22261a[_0x9d89('0x60')]=moment['utc'](moment(_0x40de7a['endtime'],'YYYY-MM-DDTHH:mm:ss')[_0x9d89('0x64')](moment(_0x40de7a[_0x9d89('0x65')],_0x9d89('0x66'))))['format'](_0x9d89('0x67'));}switch(_0x40de7a[_0x9d89('0x68')]){case _0x9d89('0x69'):_0x22261a[_0x9d89('0x6a')]=_0x9d89('0x6b');break;case _0x9d89('0x6c'):case'connect':_0x22261a['Call_Result']='Answered';break;case'rejected':_0x22261a[_0x9d89('0x6a')]='Rejected';break;case _0x9d89('0x6d'):_0x22261a['Call_Result']=_0x9d89('0x6e');break;case'timeout':_0x22261a[_0x9d89('0x6a')]='Timeout';default:}_0x22261a[_0x9d89('0x6f')]=(_0x3a7925===_0x9d89('0x70')?moment(_0x40de7a['starttime'])[_0x9d89('0x61')]('YYYY-MM-DDTHH:mm:ss'):moment(_0x40de7a[_0x9d89('0x71')])[_0x9d89('0x61')]('YYYY-MM-DDTHH:mm:ss'))||moment()['format']('YYYY-MM-DDTHH:mm:ss');_0x22261a[_0x9d89('0x72')]=_0x3a7925||_0x9d89('0x73');_0x22261a=_[_0x9d89('0x74')](_0x22261a,getCustomFields(_0x486086[_0x9d89('0x75')],_0x40de7a));return request({'method':_0x9d89('0x76'),'uri':'https://www.zohoapis.'+_0x1ed287+_0x9d89('0x77'),'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x3ebba4},'body':{'data':[_0x22261a]},'json':!![]})[_0x9d89('0x29')](function(_0x2a46ee){if(_0x2a46ee&&_0x2a46ee[_0x9d89('0x44')][0x0][_0x9d89('0x45')]==='SUCCESS'){logger['info'](_0x9d89('0x78'));return{'id':_0x2a46ee[_0x9d89('0x44')][0x0][_0x9d89('0x79')]['id']};}})[_0x9d89('0x2a')](function(_0x18c6fd){logger[_0x9d89('0x2e')](_0x9d89('0x7a'),_0x18c6fd[_0x9d89('0x2d')]);console[_0x9d89('0x48')]('err',_0x18c6fd);});}exports[_0x9d89('0x7b')]=function(_0x540a48,_0x5b154f,_0x6089ed,_0x4725d0,_0x3f21de,_0x105f8e){var _0x43e4b7,_0x5cb588,_0x5b94ab;_0x105f8e[_0x9d89('0x7c')]=intUtil[_0x9d89('0x7d')](_0x105f8e[_0x9d89('0x7c')]);_0x105f8e[_0x9d89('0x7e')]=intUtil['stripTrailingSlash'](_0x105f8e[_0x9d89('0x7e')]);if(_0x3f21de&&_0x3f21de[_0x9d89('0x7f')]){logger[_0x9d89('0x2e')](_0x9d89('0x80'),_0x9d89('0x81'));_0x5b154f[_0x9d89('0x82')]=_0x105f8e['serverUrl']+_0x9d89('0x83')+_0x5b154f[_0x9d89('0x84')]+_0x9d89('0x85')+md5(_0x5b154f['uniqueid']);}else{_0x5b154f[_0x9d89('0x82')]='';}var _0x417740=_0x105f8e[_0x9d89('0x7c')]===_0x9d89('0x86')?'eu':_0x9d89('0x87');return getAccessToken(_0x105f8e)['then'](function(_0x559374){_0x5b94ab=_0x559374;return getUser(_0x5b94ab,_0x417740,_0x105f8e,_0x4725d0[_0x9d89('0x36')]);})[_0x9d89('0x29')](function(_0x79c5a4){_0x43e4b7=_0x79c5a4;logger['info'](_0x9d89('0x88'),_0x43e4b7['id']);return getEndUser(_0x5b94ab,_0x417740,_0x105f8e,_0x5b154f[_0x9d89('0x89')],_0x5b154f['calleridnum'],_0x43e4b7,_0x6089ed);})[_0x9d89('0x29')](function(_0x35deea){_0x5cb588=_0x35deea;return getCall(_0x5b94ab,_0x417740,_0x105f8e,_0x43e4b7,_0x5cb588,_0x6089ed,_0x5b154f,_0x9d89('0x73'));})['then'](function(_0x5b2884){if(_0x5b2884){logger[_0x9d89('0x2e')](_0x9d89('0x8a'),_0x5b2884['id']);logger[_0x9d89('0x2e')]('[QUEUE]','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0x9d89('0x61')](_0x9d89('0x8b'),_0x4725d0[_0x9d89('0x17')]),'trigger:browser:url',{'uri':_0x9d89('0x8c')+_0x105f8e['host']+_0x9d89('0x8d')+_0x5b2884['id']});}})[_0x9d89('0x2a')](function(_0x30909c){logger[_0x9d89('0x2b')](_0x9d89('0x80'),JSON[_0x9d89('0xc')](_0x30909c));});};exports['outbound']=function(_0x41e4d1,_0x3a5533,_0x13e661,_0x5bda5b,_0x5a93f2,_0x45d128,_0x4149df){var _0x17a799,_0x40989c,_0x21c9eb;_0x45d128[_0x9d89('0x7c')]=intUtil['stripTrailingSlash'](_0x45d128['host']);_0x45d128[_0x9d89('0x7e')]=intUtil['stripTrailingSlash'](_0x45d128[_0x9d89('0x7e')]);if(_0x4149df&&_0x4149df[_0x9d89('0x8e')]&&_0x4149df[_0x9d89('0x8e')]!=='none'){logger['info'](_0x9d89('0x8f'),_0x9d89('0x81'));_0x3a5533[_0x9d89('0x82')]=_0x45d128[_0x9d89('0x7e')]+_0x9d89('0x83')+_0x3a5533[_0x9d89('0x84')]+_0x9d89('0x85')+md5(_0x3a5533[_0x9d89('0x84')]);}var _0x2a42d1=_0x45d128[_0x9d89('0x7c')]===_0x9d89('0x86')?'eu':_0x9d89('0x87');return getAccessToken(_0x45d128)[_0x9d89('0x29')](function(_0x1bdfc1){_0x21c9eb=_0x1bdfc1;return getUser(_0x21c9eb,_0x2a42d1,_0x45d128,_0x5bda5b[_0x9d89('0x36')]);})[_0x9d89('0x29')](function(_0x3dee8b){_0x17a799=_0x3dee8b;logger['info'](_0x9d89('0x88'),_0x17a799['id']);return getEndUser(_0x21c9eb,_0x2a42d1,_0x45d128,_0x3a5533[_0x9d89('0x90')],_0x3a5533[_0x9d89('0x91')],_0x17a799,_0x13e661);})[_0x9d89('0x29')](function(_0x44d5cb){_0x40989c=_0x44d5cb;return getCall(_0x21c9eb,_0x2a42d1,_0x45d128,_0x17a799,_0x40989c,_0x13e661,_0x3a5533,_0x9d89('0x92'));})[_0x9d89('0x29')](function(_0xe1fd2b){if(_0xe1fd2b){logger[_0x9d89('0x2e')](_0x9d89('0x8a'),_0xe1fd2b['id']);logger['info']('[OUTBOUND]','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0x9d89('0x61')]('user:%s',_0x5bda5b[_0x9d89('0x17')]),_0x9d89('0x93'),{'uri':'https://crm.'+_0x45d128[_0x9d89('0x7c')]+'/crm/EntityInfo.do?module=Calls&id='+_0xe1fd2b['id']});}})[_0x9d89('0x2a')](function(_0x2f1765){logger[_0x9d89('0x2b')](_0x9d89('0x8f'),JSON[_0x9d89('0xc')](_0x2f1765));});};exports['unmanaged']=function(_0x443be1,_0x5415ad,_0x3a3592,_0x350348,_0x227a6a,_0x3b8f40){var _0x34da73,_0x43d9c6,_0x20c1ab;_0x3b8f40['host']=intUtil[_0x9d89('0x7d')](_0x3b8f40[_0x9d89('0x7c')]);_0x3b8f40[_0x9d89('0x7e')]=intUtil[_0x9d89('0x7d')](_0x3b8f40[_0x9d89('0x7e')]);if(_0x227a6a&&_0x227a6a[_0x9d89('0x7f')]){logger['info']('['+_0x5415ad[_0x9d89('0x68')][_0x9d89('0x94')]()+']',_0x9d89('0x81'));_0x5415ad[_0x9d89('0x82')]=_0x3b8f40[_0x9d89('0x7e')]+_0x9d89('0x83')+_0x5415ad[_0x9d89('0x84')]+_0x9d89('0x85')+md5(_0x5415ad[_0x9d89('0x84')]);}else{_0x5415ad[_0x9d89('0x82')]='';}var _0x25f863=_0x3b8f40[_0x9d89('0x7c')]===_0x9d89('0x86')?'eu':_0x9d89('0x87');return getAccessToken(_0x3b8f40)[_0x9d89('0x29')](function(_0x446515){_0x20c1ab=_0x446515;return getUser(_0x20c1ab,_0x25f863,_0x3b8f40);})[_0x9d89('0x29')](function(_0x55ae62){_0x34da73=_0x55ae62;logger[_0x9d89('0x2e')](_0x9d89('0x88'),_0x34da73['id']);return getEndUser(_0x20c1ab,_0x25f863,_0x3b8f40,_0x5415ad[_0x9d89('0x89')],_0x5415ad[_0x9d89('0x95')],_0x34da73,_0x3a3592);})[_0x9d89('0x29')](function(_0x273c57){_0x43d9c6=_0x273c57;return getCall(_0x20c1ab,_0x25f863,_0x3b8f40,_0x34da73,_0x43d9c6,_0x3a3592,_0x5415ad,_0x9d89('0x73'));})[_0x9d89('0x29')](function(_0x394ac3){if(_0x394ac3){logger[_0x9d89('0x2e')](_0x9d89('0x8a'),_0x394ac3['id']);}})[_0x9d89('0x2a')](function(_0x585c76){logger[_0x9d89('0x2b')]('['+_0x5415ad[_0x9d89('0x68')][_0x9d89('0x94')]()+']',JSON[_0x9d89('0xc')](_0x585c76));});};