Built motion from commit b51cdcb3f2cb46634587ce1d55ea1b8f32dacea6. Version 3.0.0...
[motion-next.git] / server / services / ami / trigger / integration / sugarcrm.js
1 const a1142_0x2730=['The\x20Enduser\x20ID\x20is:','emit','created_by','debug','[OUTBOUND]','JSON','%s/service/v4_1/rest.php','Agent\x20found!','phone_home','%s/#bwc/index.php?module=Calls&action=EditView&record=%s','value','uri','[QUEUE]','Recording\x20is\x20enabled!','toUpperCase','Ticket\x20created!','trigger:browser:url','remoteUri','user_id','stripTrailingSlash','charAt','util','sugarcrm','entry_list','Creating\x20new\x20ticket...','monitor_format','set_entry','date_start','user:%s','Inbound','Outbound','lastevent','set_relationship','The\x20Ticket\x20ID\x20is:','password','version','Employees','The\x20User\x20ID\x20is:','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','calleridnum','duration_minutes','Calls','getString','contacts','destcalleridnum','serverUrl','info','description','users','isNil','Fields','username','login','replace','parent_type','parent_id','none','get_entry_list','Caller\x20-\x20%s','POST','Account\x20%d\x20is\x20not\x20valid','./util','request-promise-native','then','catch','user_name','../../../../rediscache','uniqueid','resolve','stringify','length','Contacts','first_name','xCALLY\x20Motion\x20integration','recordingURL','lodash','recordingFormat','queue','format','md5','name','unmanaged','forEach','[HTTP]','assigned_user_id','calleridname','duration_hours','variableName','name_value_list','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','slice','toISOString','%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','find','error','INSTR\x20(\x20users.user_name,\x20\x22%s\x22)\x20>\x200','PLAIN'];(function(_0x96563f,_0x273075){const _0x5bf912=function(_0x4ac291){while(--_0x4ac291){_0x96563f['push'](_0x96563f['shift']());}};_0x5bf912(++_0x273075);}(a1142_0x2730,0x13c));const a1142_0x5bf9=function(_0x96563f,_0x273075){_0x96563f=_0x96563f-0x0;let _0x5bf912=a1142_0x2730[_0x96563f];return _0x5bf912;};const _0x1d64b6=a1142_0x5bf9;'use strict';const _=require(_0x1d64b6('0x35')),rp=require(_0x1d64b6('0x28')),md5=require(_0x1d64b6('0x39')),util=require(_0x1d64b6('0x61')),intUtil=require(_0x1d64b6('0x27')),logger=require('../../../../config/logger')(_0x1d64b6('0x0')),{getSocket}=require(_0x1d64b6('0x2c')),io=getSocket(),def={'method':_0x1d64b6('0x25'),'json':!![]};function emit(_0x4ac291,_0x43c3af,_0x5a7278){const _0x44a968=_0x1d64b6;io['to'](_0x4ac291)[_0x44a968('0x4d')](_0x43c3af,_0x5a7278);}function getTicket(_0x2556c3,_0x132966,_0x460316,_0x285b2a,_0x46ff70,_0x3d2b74,_0x4f84f7,_0x35c2ef){const _0x6732ca=_0x1d64b6;logger[_0x6732ca('0x18')](_0x6732ca('0x2'));const _0xf8dd46=new Date(),_0x29ddc5=[{'name':'name','value':intUtil['getString'](_0x285b2a['Subjects'],_0x46ff70,'\x20')},{'name':_0x6732ca('0x3e'),'value':_0x132966['id']},{'name':_0x6732ca('0x4e'),'value':_0x132966['id']},{'name':_0x6732ca('0x19'),'value':intUtil[_0x6732ca('0x14')](_0x285b2a['Descriptions'],_0x46ff70,'\x0a')},{'name':_0x6732ca('0x5'),'value':_0xf8dd46[_0x6732ca('0x45')]()[_0x6732ca('0x44')](0x0,0x13)[_0x6732ca('0x1f')]('T','\x20')},{'name':_0x6732ca('0x40'),'value':'0'},{'name':_0x6732ca('0x12'),'value':'15'},{'name':_0x6732ca('0x21'),'value':_0x460316['id']},{'name':_0x6732ca('0x20'),'value':_0x6732ca('0x31')},{'name':'parent_name','value':_0x460316[_0x6732ca('0x3a')]},{'name':'direction','value':_0x35c2ef}];return _0x3d2b74['length']&&_[_0x6732ca('0x3c')](_0x3d2b74,function(_0x5633c6){const _0x5e1b15=_0x6732ca;_0x46ff70[_0x5633c6['variableName']]&&_0x29ddc5['push']({'name':_0x5633c6['idField'],'value':_0x46ff70[_0x5633c6[_0x5e1b15('0x41')]]});}),request({'form':{'method':_0x6732ca('0x4'),'input_type':_0x6732ca('0x51'),'response_type':_0x6732ca('0x51'),'rest_data':JSON[_0x6732ca('0x2f')]({'session':_0x4f84f7['id'],'module_name':'Calls','name_value_list':_0x29ddc5})}});}function getServerInfo(_0x4b6713){const _0x6bce93=_0x1d64b6;return request({'form':{'method':'get_server_info','input_type':_0x6bce93('0x51'),'response_type':_0x6bce93('0x51'),'rest_data':JSON[_0x6bce93('0x2f')]({'session':_0x4b6713['id']})}});}function getUser(_0x44f4a0,_0x34b3c5,_0x2be54f){const _0x199efc=_0x1d64b6;return!_[_0x199efc('0x1b')](_0x34b3c5)?(logger[_0x199efc('0x18')]('Getting\x20agent\x20with\x20name',_0x34b3c5),request({'form':{'method':'get_entry_list','input_type':'JSON','response_type':'JSON','rest_data':JSON[_0x199efc('0x2f')]({'session':_0x2be54f['id'],'module_name':_0x199efc('0xe'),'query':util[_0x199efc('0x38')](_0x199efc('0x4a'),_0x34b3c5),'order_by':'','offset':'0','select_fields':['id',_0x199efc('0x3a'),_0x199efc('0x2b')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0x199efc('0x29')](function(_0x29a1d0){const _0x1c4271=_0x199efc;if(_0x29a1d0[_0x1c4271('0x1')][_0x1c4271('0x30')]){const _0x1a5256=_[_0x1c4271('0x48')](_0x29a1d0[_0x1c4271('0x1')],function(_0x50c0b4){const _0x378b34=_0x1c4271;return _0x50c0b4[_0x378b34('0x42')][_0x378b34('0x2b')]['value']===_0x34b3c5;});if(_0x1a5256)return logger['info'](_0x1c4271('0x53')),Promise[_0x1c4271('0x2e')]({'id':_0x1a5256[_0x1c4271('0x42')]['id'][_0x1c4271('0x56')],'name':_0x1a5256[_0x1c4271('0x42')][_0x1c4271('0x3a')]['value']});}return logger[_0x1c4271('0x18')](_0x1c4271('0x43')),Promise[_0x1c4271('0x2e')]({'id':_0x2be54f[_0x1c4271('0x42')][_0x1c4271('0x5e')][_0x1c4271('0x56')],'name':_0x2be54f[_0x1c4271('0x42')][_0x1c4271('0x2b')][_0x1c4271('0x56')]});})):(logger[_0x199efc('0x18')]('Agent\x20not\x20available,\x20using\x20the\x20admin\x20account!'),Promise['resolve']({'id':_0x2be54f[_0x199efc('0x42')][_0x199efc('0x5e')][_0x199efc('0x56')],'name':_0x2be54f['name_value_list'][_0x199efc('0x2b')][_0x199efc('0x56')]}));}function getEndUser(_0x113cbc,_0x2d5e17,_0x5e8858,_0x3de4a3){const _0x3e6137=_0x1d64b6;return logger['info']('Searching\x20enduser\x20with\x20phone',_0x5e8858),request({'form':{'method':_0x3e6137('0x23'),'input_type':_0x3e6137('0x51'),'response_type':_0x3e6137('0x51'),'rest_data':JSON[_0x3e6137('0x2f')]({'session':_0x3de4a3['id'],'module_name':'Contacts','query':util[_0x3e6137('0x38')]('contacts.phone_home\x20=\x20\x22%s\x22',_0x5e8858),'order_by':'','offset':'0','select_fields':['id',_0x3e6137('0x3a'),_0x3e6137('0x54')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})['then'](function(_0x34d4a2){const _0x58c328=_0x3e6137;if(_0x34d4a2[_0x58c328('0x1')][_0x58c328('0x30')]){const _0x1a1136=_['find'](_0x34d4a2[_0x58c328('0x1')],function(_0x1f60bc){const _0x330582=_0x58c328;return _0x1f60bc[_0x330582('0x42')][_0x330582('0x54')]['value']===_0x5e8858;});if(_0x1a1136)return logger[_0x58c328('0x18')]('Enduser\x20found!'),Promise[_0x58c328('0x2e')]({'id':_0x1a1136[_0x58c328('0x42')]['id']['value'],'name':_0x1a1136['name_value_list'][_0x58c328('0x3a')][_0x58c328('0x56')],'phone':_0x1a1136[_0x58c328('0x42')][_0x58c328('0x54')][_0x58c328('0x56')]});}else return logger[_0x58c328('0x18')]('Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!'),request({'form':{'method':'set_entry','input_type':_0x58c328('0x51'),'response_type':'JSON','rest_data':JSON[_0x58c328('0x2f')]({'session':_0x3de4a3['id'],'module_name':_0x58c328('0x31'),'name_value_list':[{'name':'first_name','value':_0x2d5e17!=='<unknown>'?_0x2d5e17:util[_0x58c328('0x38')](_0x58c328('0x24'),_0x5e8858)},{'name':_0x58c328('0x54'),'value':_0x5e8858}]})}})[_0x58c328('0x29')](function(_0x5367d7){const _0x40e711=_0x58c328;return logger[_0x40e711('0x18')]('Enduser\x20created.'),Promise['resolve']({'id':_0x5367d7['id'],'name':_0x5367d7['entry_list'][_0x40e711('0x32')][_0x40e711('0x56')],'phone':_0x5367d7['entry_list']['phone_home'][_0x40e711('0x56')]});});});}function request(_0x5753e1){const _0x4861aa=_0x1d64b6;return logger[_0x4861aa('0x4f')](_0x4861aa('0x3d'),JSON['stringify'](_0x5753e1)),rp(_['merge'](def,_0x5753e1));}function getConnection(_0x4fb3bf){const _0x5baf95=_0x1d64b6;return request({'method':_0x5baf95('0x25'),'form':{'method':_0x5baf95('0x1e'),'input_type':_0x5baf95('0x51'),'response_type':_0x5baf95('0x51'),'rest_data':JSON[_0x5baf95('0x2f')]({'user_auth':{'user_name':_0x4fb3bf[_0x5baf95('0x1d')],'password':_0x4fb3bf[_0x5baf95('0xc')],'encryption':_0x5baf95('0x4b')},'application':_0x5baf95('0x33')})}})['then'](function(_0x32e113){const _0x39053d=_0x5baf95,_0x4a5786=_0x32e113;if(_0x4a5786['id'])return def['sessionID']=_0x4a5786['id'],Promise[_0x39053d('0x2e')](_0x4a5786);else throw new Error(util['format'](_0x39053d('0x26'),_0x4fb3bf['id']));});}function setRelationship(_0x4346cf,_0x49fa0d,_0x50d119,_0x58c7bc){const _0x4e9124=_0x1d64b6;return request({'form':{'method':_0x4e9124('0xa'),'input_type':_0x4e9124('0x51'),'response_type':_0x4e9124('0x51'),'rest_data':JSON[_0x4e9124('0x2f')]({'session':_0x4346cf['id'],'module_name':_0x4e9124('0x13'),'module_id':_0x50d119['id'],'link_field_name':_0x58c7bc,'related_ids':[_0x49fa0d['id']]})}});}exports[_0x1d64b6('0x37')]=function(_0x44dba9,_0x48dcc2,_0x21c292,_0x5ed8ad,_0x2111b6,_0xccd499){const _0x2df6af=_0x1d64b6;let _0x5ed173,_0x323b62,_0x4e3a3c,_0x480fde;return _0xccd499['remoteUri']=intUtil[_0x2df6af('0x5f')](_0xccd499[_0x2df6af('0x5d')]),_0xccd499['serverUrl']=intUtil[_0x2df6af('0x5f')](_0xccd499[_0x2df6af('0x17')]),def[_0x2df6af('0x57')]=util[_0x2df6af('0x38')](_0x2df6af('0x52'),_0xccd499[_0x2df6af('0x5d')]),_0x2111b6&&_0x2111b6[_0x2df6af('0x3')]?(logger[_0x2df6af('0x18')](_0x2df6af('0x58'),_0x2df6af('0x59')),_0x48dcc2[_0x2df6af('0x34')]=util[_0x2df6af('0x38')](_0x2df6af('0x10'),_0xccd499[_0x2df6af('0x17')],_0x48dcc2['uniqueid'],md5(_0x48dcc2[_0x2df6af('0x2d')]))):_0x48dcc2['recordingURL']='',getConnection(_0xccd499)[_0x2df6af('0x29')](function(_0x298556){return _0x480fde=_0x298556,getUser(_0xccd499,_0x5ed8ad['name'],_0x480fde);})[_0x2df6af('0x29')](function(_0x393a55){const _0x3471d8=_0x2df6af;return _0x5ed173=_0x393a55,logger[_0x3471d8('0x18')](_0x3471d8('0xf'),_0x5ed173['id']),getEndUser(_0xccd499,_0x48dcc2[_0x3471d8('0x3f')],_0x48dcc2['calleridnum'],_0x480fde);})[_0x2df6af('0x29')](function(_0x428733){const _0x1f3e7b=_0x2df6af;return _0x323b62=_0x428733,logger['info'](_0x1f3e7b('0x4c'),_0x323b62['id']),getTicket(_0xccd499,_0x5ed173,_0x323b62,_0x21c292,_0x48dcc2,_0x21c292['Fields'],_0x480fde,_0x1f3e7b('0x7'));})['then'](function(_0x110c78){const _0x56fccf=_0x2df6af;return _0x4e3a3c=_0x110c78,logger['info'](_0x56fccf('0x5b')),logger[_0x56fccf('0x18')](_0x56fccf('0xb'),_0x4e3a3c['id']),setRelationship(_0x480fde,_0x5ed173,_0x4e3a3c,_0x56fccf('0x1a'));})[_0x2df6af('0x29')](function(){const _0x353c45=_0x2df6af;return setRelationship(_0x480fde,_0x323b62,_0x4e3a3c,_0x353c45('0x15'));})['then'](function(){return getServerInfo(_0x480fde);})['then'](function(_0x5b0f4f){const _0x4025b0=_0x2df6af,_0x31ad92=parseInt(_0x5b0f4f[_0x4025b0('0xd')][_0x4025b0('0x60')](0x0));let _0x1e6224=util[_0x4025b0('0x38')](_0x4025b0('0x46'),_0xccd499[_0x4025b0('0x5d')],_0x4e3a3c['id']);_0x31ad92>0x6&&(_0x1e6224=util[_0x4025b0('0x38')](_0x4025b0('0x55'),_0xccd499[_0x4025b0('0x5d')],_0x4e3a3c['id'])),logger[_0x4025b0('0x18')]('[QUEUE]',_0x4025b0('0x47')),emit(util[_0x4025b0('0x38')](_0x4025b0('0x6'),_0x5ed8ad[_0x4025b0('0x3a')]),_0x4025b0('0x5c'),{'uri':_0x1e6224});})[_0x2df6af('0x2a')](function(_0x5e9389){const _0x3647a0=_0x2df6af;logger[_0x3647a0('0x49')](_0x3647a0('0x58'),JSON[_0x3647a0('0x2f')](_0x5e9389));});},exports['outbound']=function(_0x4b2e28,_0x241129,_0x381eb1,_0xc5c2b8,_0x5bbebd,_0x3be072,_0x67781c){const _0x3a88b6=_0x1d64b6;let _0x43b41b,_0x38adb0,_0x58f892,_0x16b55a;return _0x3be072[_0x3a88b6('0x5d')]=intUtil[_0x3a88b6('0x5f')](_0x3be072['remoteUri']),_0x3be072['serverUrl']=intUtil[_0x3a88b6('0x5f')](_0x3be072[_0x3a88b6('0x17')]),def[_0x3a88b6('0x57')]=util[_0x3a88b6('0x38')](_0x3a88b6('0x52'),_0x3be072[_0x3a88b6('0x5d')]),_0x67781c&&_0x67781c[_0x3a88b6('0x36')]&&_0x67781c[_0x3a88b6('0x36')]!==_0x3a88b6('0x22')&&(logger['info']('[OUTBOUND]','Recording\x20is\x20enabled!'),_0x241129['recordingURL']=util[_0x3a88b6('0x38')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x3be072[_0x3a88b6('0x17')],_0x241129['uniqueid'],md5(_0x241129[_0x3a88b6('0x2d')]))),getConnection(_0x3be072)[_0x3a88b6('0x29')](function(_0x2f908f){const _0x446f0c=_0x3a88b6;return _0x16b55a=_0x2f908f,getUser(_0x3be072,_0xc5c2b8[_0x446f0c('0x3a')],_0x16b55a);})[_0x3a88b6('0x29')](function(_0x36fffc){const _0x3471d6=_0x3a88b6;return _0x43b41b=_0x36fffc,logger[_0x3471d6('0x18')]('The\x20User\x20ID\x20is:',_0x43b41b['id']),getEndUser(_0x3be072,_0x241129['destcalleridname'],_0x241129[_0x3471d6('0x16')],_0x16b55a);})[_0x3a88b6('0x29')](function(_0x51d54a){const _0x13fec6=_0x3a88b6;return _0x38adb0=_0x51d54a,logger[_0x13fec6('0x18')](_0x13fec6('0x4c'),_0x38adb0['id']),getTicket(_0x3be072,_0x43b41b,_0x38adb0,_0x381eb1,_0x241129,_0x381eb1[_0x13fec6('0x1c')],_0x16b55a,_0x13fec6('0x8'));})[_0x3a88b6('0x29')](function(_0x931496){const _0x497c59=_0x3a88b6;return _0x58f892=_0x931496,logger[_0x497c59('0x18')](_0x497c59('0x5b')),logger[_0x497c59('0x18')](_0x497c59('0xb'),_0x58f892['id']),setRelationship(_0x16b55a,_0x43b41b,_0x58f892,'users');})[_0x3a88b6('0x29')](function(){const _0x54bb56=_0x3a88b6;return setRelationship(_0x16b55a,_0x38adb0,_0x58f892,_0x54bb56('0x15'));})[_0x3a88b6('0x29')](function(){return getServerInfo(_0x16b55a);})['then'](function(_0xaf0a22){const _0x679ba4=_0x3a88b6,_0x406717=parseInt(_0xaf0a22[_0x679ba4('0xd')][_0x679ba4('0x60')](0x0));let _0x3bf6de=util[_0x679ba4('0x38')]('%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s',_0x3be072[_0x679ba4('0x5d')],_0x58f892['id']);_0x406717>0x6&&(_0x3bf6de=util[_0x679ba4('0x38')](_0x679ba4('0x55'),_0x3be072[_0x679ba4('0x5d')],_0x58f892['id'])),logger[_0x679ba4('0x18')](_0x679ba4('0x50'),_0x679ba4('0x47')),emit(util[_0x679ba4('0x38')](_0x679ba4('0x6'),_0xc5c2b8[_0x679ba4('0x3a')]),_0x679ba4('0x5c'),{'uri':_0x3bf6de});})['catch'](function(_0x1524f9){const _0x114467=_0x3a88b6;logger[_0x114467('0x49')]('[OUTBOUND]',JSON['stringify'](_0x1524f9));});},exports[_0x1d64b6('0x3b')]=function(_0x331bd3,_0x2ee28e,_0x5398a5,_0x7d1491,_0x3f2793,_0x3acd23){const _0x54f7d4=_0x1d64b6;let _0x16d00b,_0x3aa022,_0x369f61,_0x4ce292;return _0x3acd23[_0x54f7d4('0x5d')]=intUtil[_0x54f7d4('0x5f')](_0x3acd23[_0x54f7d4('0x5d')]),_0x3acd23['serverUrl']=intUtil[_0x54f7d4('0x5f')](_0x3acd23[_0x54f7d4('0x17')]),def['uri']=util[_0x54f7d4('0x38')](_0x54f7d4('0x52'),_0x3acd23[_0x54f7d4('0x5d')]),_0x3f2793&&_0x3f2793[_0x54f7d4('0x3')]?(logger[_0x54f7d4('0x18')]('['+_0x2ee28e[_0x54f7d4('0x9')]['toUpperCase']()+']',_0x54f7d4('0x59')),_0x2ee28e[_0x54f7d4('0x34')]=util[_0x54f7d4('0x38')](_0x54f7d4('0x10'),_0x3acd23[_0x54f7d4('0x17')],_0x2ee28e[_0x54f7d4('0x2d')],md5(_0x2ee28e[_0x54f7d4('0x2d')]))):_0x2ee28e[_0x54f7d4('0x34')]='',getConnection(_0x3acd23)['then'](function(_0x490ec7){const _0x3d867c=_0x54f7d4;return _0x4ce292=_0x490ec7,!_[_0x3d867c('0x1b')](_0x7d1491)?getUser(_0x3acd23,_0x7d1491[_0x3d867c('0x3a')],_0x4ce292):getUser(_0x3acd23,null,_0x4ce292);})[_0x54f7d4('0x29')](function(_0x48ca9c){const _0x174908=_0x54f7d4;return _0x16d00b=_0x48ca9c,logger[_0x174908('0x18')](_0x174908('0xf'),_0x16d00b['id']),getEndUser(_0x3acd23,_0x2ee28e['calleridname'],_0x2ee28e[_0x174908('0x11')],_0x4ce292);})[_0x54f7d4('0x29')](function(_0x34fa79){const _0x7e1363=_0x54f7d4;return _0x3aa022=_0x34fa79,logger[_0x7e1363('0x18')](_0x7e1363('0x4c'),_0x3aa022['id']),getTicket(_0x3acd23,_0x16d00b,_0x3aa022,_0x5398a5,_0x2ee28e,_0x5398a5[_0x7e1363('0x1c')],_0x4ce292,'Inbound');})[_0x54f7d4('0x29')](function(_0x34c2ae){const _0x42775e=_0x54f7d4;return _0x369f61=_0x34c2ae,logger[_0x42775e('0x18')](_0x42775e('0x5b')),logger[_0x42775e('0x18')](_0x42775e('0xb'),_0x369f61['id']),setRelationship(_0x4ce292,_0x16d00b,_0x369f61,_0x42775e('0x1a'));})[_0x54f7d4('0x29')](function(){const _0x36ebd3=_0x54f7d4;return setRelationship(_0x4ce292,_0x3aa022,_0x369f61,_0x36ebd3('0x15'));})[_0x54f7d4('0x29')](function(){return getServerInfo(_0x4ce292);})[_0x54f7d4('0x2a')](function(_0x389ed7){const _0x5c8124=_0x54f7d4;logger['error']('['+_0x2ee28e[_0x5c8124('0x9')][_0x5c8124('0x5a')]()+']',JSON[_0x5c8124('0x2f')](_0x389ed7));});};