e413cf342d04161707d80020fff8534000311745
[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 _0x47c5=['mm:ss','answertime','endtime','starttime','YYYY-MM-DDTHH:mm:ss','lastevent','called','Call_Result','Called','Answered','rejected','Rejected','abandoned','timeout','Timeout','Call_Start_Time','outbound','agentcalledAt','merge','Fields','/crm/v2/Calls','Call\x20created!','details','err','log','queue','host','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','uniqueid','/downloads?type=uniqueid&token=','recordingURL','zoho.eu','calleridname','calleridnum','Inbound','The\x20Call\x20ID\x20is:','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','https://crm.','recordingFormat','[OUTBOUND]','/api/voice/recordings/','com','The\x20User\x20ID\x20is:','destcalleridname','destcalleridnum','Outbound','/crm/EntityInfo.do?module=Calls&id=','unmanaged','toUpperCase','lodash','request-promise','md5','util','./util','moment','bluebird','../../../../config/environment','zoho','redis','localhost','socket.io-emitter','emit','debug','[HTTP]','stringify','length','forEach','type','string','idField','content','toString','variable','variableName','customVariable','Variable','name','indexOf','split','isNil','isBefore','expires_in','zone','https://accounts.zoho.com','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','/oauth/v2/token','refreshToken','clientSecret','add','seconds','catch','error','Failing\x20creating\x20the\x20access_token','stack','info','GET','format','https://www.zohoapis.%s/crm/v2/users','ActiveUsers','Zoho-oauthtoken\x20','then','isArrayLikeObject','users','findIndex','email','Agent\x20found!','Using\x20the\x20admin\x20account!','profile','Administrator','user','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','The\x20failing\x20result\x20is','data','enduserType','https://www.zohoapis.','/crm/v2/','startCase','role','first_name','last_name','code','SUCCESS','moduleCreate','Error:\x20','CREATE\x20ERROR','moduleSearch','uri','Contacts','/crm/v2/Leads/search?criteria=((Phone:equals:','nothing','contact','/crm/v2/Contacts/search?criteria=((Phone:equals:','Creating\x20new\x20call...','Owner','administrator','Subject','Subjects','getString','Descriptions','Who_Id','Full_Name','First_Name','Last_Name','$se_module','talktime'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0x47c5,0x165));var _0x547c=function(_0x4d7285,_0x49c65f){_0x4d7285=_0x4d7285-0x0;var _0x2dac6c=_0x47c5[_0x4d7285];return _0x2dac6c;};'use strict';var _=require(_0x547c('0x0'));var rp=require(_0x547c('0x1'));var md5=require(_0x547c('0x2'));var util=require(_0x547c('0x3'));var intUtil=require(_0x547c('0x4'));var moment=require(_0x547c('0x5'));var Redis=require('ioredis');var BPromise=require(_0x547c('0x6'));var config=require(_0x547c('0x7'));var logger=require('../../../../config/logger')(_0x547c('0x8'));config[_0x547c('0x9')]=_['defaults'](config[_0x547c('0x9')],{'host':_0x547c('0xa'),'port':0x18eb});var io=require(_0x547c('0xb'))(new Redis(config[_0x547c('0x9')]));function emit(_0x12fb7d,_0x4ef079,_0x3e2279){io['to'](_0x12fb7d)[_0x547c('0xc')](_0x4ef079,_0x3e2279);}function request(_0x10dec9){logger[_0x547c('0xd')](_0x547c('0xe'),JSON[_0x547c('0xf')](_0x10dec9));return rp(_0x10dec9);}function getCustomFields(_0x111457,_0x2455e9){var _0x386e2c={};if(_0x111457[_0x547c('0x10')]>0x0){_[_0x547c('0x11')](_0x111457,function(_0x549bf0){if(_0x549bf0[_0x547c('0x12')]===_0x547c('0x13')&&_0x549bf0['idField']){_0x386e2c[_0x549bf0[_0x547c('0x14')]]=_0x549bf0[_0x547c('0x15')][_0x547c('0x16')]();}else if(_0x549bf0[_0x547c('0x12')]===_0x547c('0x17')&&_0x549bf0[_0x547c('0x18')]&&_0x549bf0[_0x547c('0x14')]&&_0x2455e9[_0x549bf0[_0x547c('0x18')]]){_0x386e2c[_0x549bf0[_0x547c('0x14')]]=_0x2455e9[_0x549bf0[_0x547c('0x18')]][_0x547c('0x16')]();}else if(_0x549bf0[_0x547c('0x12')]===_0x547c('0x19')&&_0x549bf0[_0x547c('0x1a')]&&_0x549bf0[_0x547c('0x1a')][_0x547c('0x1b')]&&_0x549bf0[_0x547c('0x14')]&&_0x2455e9[_0x549bf0[_0x547c('0x1a')]['name']['toLowerCase']()]){_0x386e2c[_0x549bf0[_0x547c('0x14')]]=_0x2455e9[_0x549bf0[_0x547c('0x1a')][_0x547c('0x1b')]['toLowerCase']()][_0x547c('0x16')]();}});}return _0x386e2c;}function getName(_0x18ef77){if(_0x18ef77[_0x547c('0x1c')]('\x20')>0x0){var _0x58ddc9=_0x18ef77[_0x547c('0x1d')](/ (.+)/);if(_0x58ddc9[0x1]){return _0x58ddc9;}}return[_0x18ef77,_0x18ef77];}var accountsTokens={};function getAccessToken(_0x41149f){return new Promise(function(_0x496c38,_0x5453f9){if(!_[_0x547c('0x1e')](accountsTokens[_0x41149f['id']])&&!_[_0x547c('0x1e')](accountsTokens[_0x41149f['id']]['access_token'])){if(moment()[_0x547c('0x1f')](accountsTokens[_0x41149f['id']][_0x547c('0x20')])){_0x496c38(accountsTokens[_0x41149f['id']]['access_token']);}}var _0x2e317a;switch(_0x41149f[_0x547c('0x21')]){case'US':_0x2e317a=_0x547c('0x22');break;case'AU':_0x2e317a='https://accounts.zoho.com.au';break;case'EU':_0x2e317a=_0x547c('0x23');break;case'IN':_0x2e317a=_0x547c('0x24');break;case'CN':_0x2e317a=_0x547c('0x25');break;default:_0x2e317a=_0x547c('0x23');break;}var _0x1f3581={'method':_0x547c('0x26'),'uri':_0x2e317a+_0x547c('0x27'),'qs':{'refresh_token':_0x41149f[_0x547c('0x28')],'client_id':_0x41149f['clientId'],'client_secret':_0x41149f[_0x547c('0x29')],'grant_type':'refresh_token'},'json':!![]};return rp(_0x1f3581)['then'](function(_0x4855fd){accountsTokens[_0x41149f['id']]={'access_token':_0x4855fd['access_token'],'expires_in':moment()[_0x547c('0x2a')](_0x4855fd['expires_in'],_0x547c('0x2b'))};_0x496c38(_0x4855fd['access_token']);})[_0x547c('0x2c')](function(_0x486216){logger[_0x547c('0x2d')](_0x547c('0x2e'),_0x486216[_0x547c('0x2f')]);_0x5453f9(_0x486216);});});}function getUser(_0x30a96c,_0x198afb,_0x569924,_0x575c74){logger[_0x547c('0x30')]('Search\x20user');return request({'method':_0x547c('0x31'),'uri':util[_0x547c('0x32')](_0x547c('0x33'),_0x198afb),'qs':{'type':_0x547c('0x34')},'headers':{'Authorization':_0x547c('0x35')+_0x30a96c},'json':!![]})[_0x547c('0x36')](function(_0x342c10){if(_0x342c10['users']){var _0x54f6a8=-0x1;if(_[_0x547c('0x37')](_0x342c10[_0x547c('0x38')])){if(!_[_0x547c('0x1e')](_0x575c74)){_0x54f6a8=_[_0x547c('0x39')](_0x342c10[_0x547c('0x38')],function(_0x18d7c1){return _0x18d7c1[_0x547c('0x3a')]===_0x575c74;});}if(_0x54f6a8>=0x0){logger[_0x547c('0x30')](_0x547c('0x3b'));}else{logger[_0x547c('0x30')](_0x547c('0x3c'));_0x54f6a8=_[_0x547c('0x39')](_0x342c10[_0x547c('0x38')],function(_0x385275){return _0x385275['profile'][_0x547c('0x1b')]==='Administrator';});}return _0x342c10['users'][_0x54f6a8];}else{if(_0x342c10['user'][_0x547c('0x3d')][_0x547c('0x1b')]===_0x547c('0x3e')){logger[_0x547c('0x30')](_0x547c('0x3c'));user=_0x342c10[_0x547c('0x3f')];return user;}else{logger['error']('The\x20failing\x20result\x20is',JSON['stringify'](_0x342c10));throw new Error(_0x547c('0x40')+JSON[_0x547c('0xf')](_0x342c10));}}}else{logger[_0x547c('0x2d')](_0x547c('0x41'),JSON[_0x547c('0xf')](_0x342c10));throw new Error(_0x547c('0x40')+JSON['stringify'](_0x342c10));}})[_0x547c('0x2c')](function(_0x4e2e52){console[_0x547c('0x2d')](_0x4e2e52);});}function getZohoUser(_0x18fcc5,_0x5b80f4){return new BPromise(function(_0x380705,_0x5c57ae){request(_0x18fcc5)['then'](function(_0x3137e0){var _0x281d52=null;if(_0x3137e0){_0x281d52=_0x3137e0[_0x547c('0x42')][0x0];_0x281d52[_0x547c('0x43')]=_0x5b80f4;}_0x380705(_0x281d52);})['catch'](function(_0x52b962){_0x5c57ae(_0x52b962);});});}function createEndUser(_0xe5f1b9,_0x1e8dd0,_0x411c6f,_0x5c8ed0,_0x3886ae,_0x21838a){var _0x411c6f=getName(_0x411c6f);return request({'method':'POST','uri':_0x547c('0x44')+_0x1e8dd0+_0x547c('0x45')+_[_0x547c('0x46')](_0x21838a['moduleCreate'])+'s','body':{'data':[{'Last_Name':_0x411c6f[0x1],'First_Name':_0x411c6f[0x0],'Phone':_0x5c8ed0,'Owner':{'name':!_[_0x547c('0x1e')](_0x3886ae[_0x547c('0x47')]['name'])?_0x3886ae[_0x547c('0x47')][_0x547c('0x1b')]:!_[_0x547c('0x1e')](_0x3886ae['first_name'])?_0x3886ae[_0x547c('0x48')]+'\x20'+_0x3886ae['last_name']:_0x3886ae[_0x547c('0x49')],'id':_0x3886ae['id']}}]},'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0xe5f1b9},'json':!![]})[_0x547c('0x36')](function(_0x414b9d){if(_0x414b9d&&_0x414b9d[_0x547c('0x42')][0x0][_0x547c('0x4a')]===_0x547c('0x4b')){var _0x3a2508=_0x414b9d['data'][0x0]['details'];_0x3a2508[_0x547c('0x43')]=_[_0x547c('0x46')](_0x21838a[_0x547c('0x4c')])+'s';return _0x3a2508;}logger['error'](_0x547c('0x41'),JSON[_0x547c('0xf')](data));throw new Error(_0x547c('0x4d')+JSON[_0x547c('0xf')](data));})[_0x547c('0x2c')](function(_0x41ca7f){console['log'](_0x547c('0x4e'),_0x41ca7f);});}function getEndUser(_0x3ae2c2,_0x3d7088,_0x4c4287,_0x291302,_0x478320,_0xebf295,_0x3167d0){var _0x5f40eb={'method':_0x547c('0x31'),'uri':'','headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x3ae2c2},'json':!![]};switch(_0x3167d0[_0x547c('0x4f')]){case'contact_lead':_0x5f40eb[_0x547c('0x50')]=_0x547c('0x44')+_0x3d7088+'/crm/v2/Contacts/search?criteria=((Phone:equals:'+_0x478320+'))';return getZohoUser(_0x5f40eb,_0x547c('0x51'))[_0x547c('0x36')](function(_0xa005cc){if(_0xa005cc)return _0xa005cc;_0x5f40eb[_0x547c('0x50')]='https://www.zohoapis.'+_0x3d7088+_0x547c('0x52')+_0x478320+'))';return getZohoUser(_0x5f40eb,'Leads')['then'](function(_0x4d4a92){if(_0x4d4a92)return _0x4d4a92;if(_0x3167d0[_0x547c('0x4c')]!=_0x547c('0x53')){return createEndUser(_0x3ae2c2,_0x3d7088,_0x291302,_0x478320,_0xebf295,_0x3167d0);}else{return{};}});});break;case _0x547c('0x54'):_0x5f40eb[_0x547c('0x50')]=_0x547c('0x44')+_0x3d7088+_0x547c('0x55')+_0x478320+'))';return getZohoUser(_0x5f40eb,_0x547c('0x51'))[_0x547c('0x36')](function(_0x31a262){if(_0x31a262)return _0x31a262;if(_0x3167d0[_0x547c('0x4c')]!=_0x547c('0x53')){return createEndUser(_0x3ae2c2,_0x3d7088,_0x291302,_0x478320,_0xebf295,_0x3167d0);}else{return{};}});break;case'lead':_0x5f40eb['uri']=_0x547c('0x44')+_0x3d7088+_0x547c('0x52')+_0x478320+'))';return getZohoUser(_0x5f40eb,'Leads')[_0x547c('0x36')](function(_0x3e42a2){if(_0x3e42a2)return _0x3e42a2;if(_0x3167d0[_0x547c('0x4c')]!=_0x547c('0x53')){return createEndUser(_0x3ae2c2,_0x3d7088,_0x291302,_0x478320,_0xebf295,_0x3167d0);}else{return{};}});break;}}function getCall(_0x30680d,_0x2bb808,_0x4d4cf9,_0x152982,_0x5258cf,_0x2e5c9f,_0x1c40e2,_0x1bdaf0){logger['info'](_0x547c('0x56'));var _0x5abce0={};_0x5abce0[_0x547c('0x57')]={'name':!_[_0x547c('0x1e')](_0x152982['role'][_0x547c('0x1b')])&&!_[_0x547c('0x1e')](_0x152982[_0x547c('0x3d')][_0x547c('0x1b')])&&_0x152982[_0x547c('0x3d')][_0x547c('0x1b')]===_0x547c('0x58')?_0x152982['role'][_0x547c('0x1b')]:!_['isNil'](_0x152982[_0x547c('0x48')])?_0x152982[_0x547c('0x48')]+'\x20'+_0x152982[_0x547c('0x49')]:_0x152982[_0x547c('0x49')],'id':_0x152982['id']};_0x5abce0[_0x547c('0x59')]=intUtil['getString'](_0x2e5c9f[_0x547c('0x5a')],_0x1c40e2,'\x20');_0x5abce0['Description']=intUtil[_0x547c('0x5b')](_0x2e5c9f[_0x547c('0x5c')],_0x1c40e2,'\x0a');if(_0x5258cf[_0x547c('0x43')]===_0x547c('0x51')){_0x5abce0[_0x547c('0x5d')]={'name':!_['isNil'](_0x5258cf[_0x547c('0x5e')])?_0x5258cf[_0x547c('0x5e')]:!_['isNil'](_0x5258cf[_0x547c('0x5f')])?_0x5258cf[_0x547c('0x5f')]+'\x20'+_0x5258cf[_0x547c('0x60')]:_0x5258cf[_0x547c('0x60')],'id':_0x5258cf['id']};}if(_0x5258cf['enduserType']==='Leads'){_0x5abce0['What_Id']={'name':!_[_0x547c('0x1e')](_0x5258cf[_0x547c('0x5e')])?_0x5258cf['Full_Name']:!_[_0x547c('0x1e')](_0x5258cf['First_Name'])?_0x5258cf[_0x547c('0x5f')]+'\x20'+_0x5258cf[_0x547c('0x60')]:_0x5258cf[_0x547c('0x60')],'id':_0x5258cf['id']};_0x5abce0[_0x547c('0x61')]=_[_0x547c('0x46')](_0x5258cf[_0x547c('0x43')]);}if(_0x1c40e2[_0x547c('0x62')]){_0x5abce0['Call_Duration']=moment['utc'](parseInt(_0x1c40e2[_0x547c('0x62')])*0x3e8)[_0x547c('0x32')](_0x547c('0x63'));}else if(_0x1c40e2[_0x547c('0x64')]&&_0x1c40e2[_0x547c('0x65')]){_0x5abce0['Call_Duration']=moment['utc'](moment(_0x1c40e2['endtime'],'YYYY-MM-DDTHH:mm:ss')['diff'](moment(_0x1c40e2[_0x547c('0x66')],_0x547c('0x67'))))[_0x547c('0x32')]('mm:ss');}switch(_0x1c40e2[_0x547c('0x68')]){case _0x547c('0x69'):_0x5abce0[_0x547c('0x6a')]=_0x547c('0x6b');break;case'complete':case'connect':_0x5abce0['Call_Result']=_0x547c('0x6c');break;case _0x547c('0x6d'):_0x5abce0[_0x547c('0x6a')]=_0x547c('0x6e');break;case _0x547c('0x6f'):_0x5abce0['Call_Result']='Abandoned';break;case _0x547c('0x70'):_0x5abce0[_0x547c('0x6a')]=_0x547c('0x71');default:}_0x5abce0[_0x547c('0x72')]=(_0x1bdaf0===_0x547c('0x73')?moment(_0x1c40e2['starttime'])['format']('YYYY-MM-DDTHH:mm:ss'):moment(_0x1c40e2[_0x547c('0x74')])['format'](_0x547c('0x67')))||moment()[_0x547c('0x32')](_0x547c('0x67'));_0x5abce0['Call_Type']=_0x1bdaf0||'Inbound';_0x5abce0=_[_0x547c('0x75')](_0x5abce0,getCustomFields(_0x2e5c9f[_0x547c('0x76')],_0x1c40e2));return request({'method':_0x547c('0x26'),'uri':_0x547c('0x44')+_0x2bb808+_0x547c('0x77'),'headers':{'Authorization':_0x547c('0x35')+_0x30680d},'body':{'data':[_0x5abce0]},'json':!![]})[_0x547c('0x36')](function(_0x5e2e8c){if(_0x5e2e8c&&_0x5e2e8c[_0x547c('0x42')][0x0][_0x547c('0x4a')]===_0x547c('0x4b')){logger[_0x547c('0x30')](_0x547c('0x78'));return{'id':_0x5e2e8c[_0x547c('0x42')][0x0][_0x547c('0x79')]['id']};}})[_0x547c('0x2c')](function(_0x49dc3c){logger[_0x547c('0x30')](_0x547c('0x7a'),_0x49dc3c[_0x547c('0x2f')]);console[_0x547c('0x7b')]('err',_0x49dc3c);});}exports[_0x547c('0x7c')]=function(_0x14f39c,_0xf343a9,_0x4e2acc,_0x52cccd,_0x52ea50,_0xd2c027){var _0x42a2a0,_0x2648bc,_0x5d6d46;_0xd2c027[_0x547c('0x7d')]=intUtil[_0x547c('0x7e')](_0xd2c027[_0x547c('0x7d')]);_0xd2c027[_0x547c('0x7f')]=intUtil['stripTrailingSlash'](_0xd2c027['serverUrl']);if(_0x52ea50&&_0x52ea50[_0x547c('0x80')]){logger['info'](_0x547c('0x81'),_0x547c('0x82'));_0xf343a9['recordingURL']=_0xd2c027[_0x547c('0x7f')]+'/api/voice/recordings/'+_0xf343a9[_0x547c('0x83')]+_0x547c('0x84')+md5(_0xf343a9['uniqueid']);}else{_0xf343a9[_0x547c('0x85')]='';}var _0x1b3f94=_0xd2c027[_0x547c('0x7d')]===_0x547c('0x86')?'eu':'com';return getAccessToken(_0xd2c027)['then'](function(_0xa222f4){_0x5d6d46=_0xa222f4;return getUser(_0x5d6d46,_0x1b3f94,_0xd2c027,_0x52cccd[_0x547c('0x3a')]);})[_0x547c('0x36')](function(_0x3378a3){_0x42a2a0=_0x3378a3;logger['info']('The\x20User\x20ID\x20is:',_0x42a2a0['id']);return getEndUser(_0x5d6d46,_0x1b3f94,_0xd2c027,_0xf343a9[_0x547c('0x87')],_0xf343a9[_0x547c('0x88')],_0x42a2a0,_0x4e2acc);})[_0x547c('0x36')](function(_0x43d9a2){_0x2648bc=_0x43d9a2;return getCall(_0x5d6d46,_0x1b3f94,_0xd2c027,_0x42a2a0,_0x2648bc,_0x4e2acc,_0xf343a9,_0x547c('0x89'));})[_0x547c('0x36')](function(_0x1e9026){if(_0x1e9026){logger[_0x547c('0x30')](_0x547c('0x8a'),_0x1e9026['id']);logger[_0x547c('0x30')](_0x547c('0x81'),_0x547c('0x8b'));emit(util[_0x547c('0x32')]('user:%s',_0x52cccd['name']),'trigger:browser:url',{'uri':_0x547c('0x8c')+_0xd2c027['host']+'/crm/EntityInfo.do?module=Calls&id='+_0x1e9026['id']});}})[_0x547c('0x2c')](function(_0x5cbef2){logger['error'](_0x547c('0x81'),JSON[_0x547c('0xf')](_0x5cbef2));});};exports[_0x547c('0x73')]=function(_0x1c8fcd,_0x500ab7,_0x28213b,_0xf9c96,_0x480c8a,_0x5c4907,_0x33262e){var _0x1a5128,_0x2fecce,_0x38a01a;_0x5c4907[_0x547c('0x7d')]=intUtil[_0x547c('0x7e')](_0x5c4907[_0x547c('0x7d')]);_0x5c4907[_0x547c('0x7f')]=intUtil['stripTrailingSlash'](_0x5c4907[_0x547c('0x7f')]);if(_0x33262e&&_0x33262e[_0x547c('0x8d')]&&_0x33262e[_0x547c('0x8d')]!=='none'){logger[_0x547c('0x30')](_0x547c('0x8e'),_0x547c('0x82'));_0x500ab7[_0x547c('0x85')]=_0x5c4907[_0x547c('0x7f')]+_0x547c('0x8f')+_0x500ab7[_0x547c('0x83')]+_0x547c('0x84')+md5(_0x500ab7[_0x547c('0x83')]);}var _0x7a72fd=_0x5c4907[_0x547c('0x7d')]===_0x547c('0x86')?'eu':_0x547c('0x90');return getAccessToken(_0x5c4907)[_0x547c('0x36')](function(_0x5146a6){_0x38a01a=_0x5146a6;return getUser(_0x38a01a,_0x7a72fd,_0x5c4907,_0xf9c96[_0x547c('0x3a')]);})[_0x547c('0x36')](function(_0x133724){_0x1a5128=_0x133724;logger['info'](_0x547c('0x91'),_0x1a5128['id']);return getEndUser(_0x38a01a,_0x7a72fd,_0x5c4907,_0x500ab7[_0x547c('0x92')],_0x500ab7[_0x547c('0x93')],_0x1a5128,_0x28213b);})[_0x547c('0x36')](function(_0x427358){_0x2fecce=_0x427358;return getCall(_0x38a01a,_0x7a72fd,_0x5c4907,_0x1a5128,_0x2fecce,_0x28213b,_0x500ab7,_0x547c('0x94'));})[_0x547c('0x36')](function(_0x8dd0f9){if(_0x8dd0f9){logger[_0x547c('0x30')](_0x547c('0x8a'),_0x8dd0f9['id']);logger[_0x547c('0x30')](_0x547c('0x8e'),_0x547c('0x8b'));emit(util['format']('user:%s',_0xf9c96['name']),'trigger:browser:url',{'uri':'https://crm.'+_0x5c4907['host']+_0x547c('0x95')+_0x8dd0f9['id']});}})[_0x547c('0x2c')](function(_0x813437){logger[_0x547c('0x2d')]('[OUTBOUND]',JSON[_0x547c('0xf')](_0x813437));});};exports[_0x547c('0x96')]=function(_0x27410e,_0x507ecb,_0x4607f4,_0x3ac70e,_0x387fa7,_0x53a0a7){var _0x51f200,_0x571c95,_0x1a5445;_0x53a0a7['host']=intUtil[_0x547c('0x7e')](_0x53a0a7[_0x547c('0x7d')]);_0x53a0a7['serverUrl']=intUtil[_0x547c('0x7e')](_0x53a0a7[_0x547c('0x7f')]);if(_0x387fa7&&_0x387fa7[_0x547c('0x80')]){logger[_0x547c('0x30')]('['+_0x507ecb[_0x547c('0x68')]['toUpperCase']()+']',_0x547c('0x82'));_0x507ecb['recordingURL']=_0x53a0a7[_0x547c('0x7f')]+_0x547c('0x8f')+_0x507ecb[_0x547c('0x83')]+_0x547c('0x84')+md5(_0x507ecb['uniqueid']);}else{_0x507ecb[_0x547c('0x85')]='';}var _0x53d6d9=_0x53a0a7[_0x547c('0x7d')]===_0x547c('0x86')?'eu':'com';return getAccessToken(_0x53a0a7)[_0x547c('0x36')](function(_0x542c3c){_0x1a5445=_0x542c3c;return getUser(_0x1a5445,_0x53d6d9,_0x53a0a7);})[_0x547c('0x36')](function(_0x1057f9){_0x51f200=_0x1057f9;logger[_0x547c('0x30')](_0x547c('0x91'),_0x51f200['id']);return getEndUser(_0x1a5445,_0x53d6d9,_0x53a0a7,_0x507ecb['calleridname'],_0x507ecb[_0x547c('0x88')],_0x51f200,_0x4607f4);})[_0x547c('0x36')](function(_0xea441b){_0x571c95=_0xea441b;return getCall(_0x1a5445,_0x53d6d9,_0x53a0a7,_0x51f200,_0x571c95,_0x4607f4,_0x507ecb,_0x547c('0x89'));})[_0x547c('0x36')](function(_0x4b8286){if(_0x4b8286){logger[_0x547c('0x30')](_0x547c('0x8a'),_0x4b8286['id']);}})[_0x547c('0x2c')](function(_0x5337d5){logger[_0x547c('0x2d')]('['+_0x507ecb[_0x547c('0x68')][_0x547c('0x97')]()+']',JSON[_0x547c('0xf')](_0x5337d5));});};