b985fcc41ef2141c01cc94d61ab2f8a3ede2702f
[motion-next.git] / server / services / ami / fax / index.js
1 const a1060_0x1a59=['Trunk','name','faxAccounts','lodash','[Fax][Message][Updated]','application/pdf','../rpc/faxMessage','transferrate','resolution','channels','gs\x20-q\x20-dNOPAUSE\x20-dBATCH\x20-sDEVICE=tiffg4\x20-sPAPERSIZE=letter\x20-sOutputFile=/var/opt/motion2/server/files/attachments/%s.tif\x20\x20%s\x20-c\x20quit','addVariables','response','newstate','catch','updateStatus','error','trunks','format','Action','\x20notify\x20','fax','syncVarSet','channel','Fax\x20received','../rpc/faxAccount','syncReceiveFax','originateresponse','reason','isTrunkReachable','prototype','../../../config/logger','[Fax][checkTrunk][Trunk\x20not\x20work]','../rpc/attachment','receivefax','faxstatus','\x20result\x20conversion\x20file\x20','variable','faxpages','variablesAction','[Fax][checkTrunk][Empty\x20path]','pick','SENDING\x20FAILED:\x20','SIP/%s','../ami','info','newchannel','checkTrunk','Convert\x20pdf\x20to\x20tif','bind','Is\x20Valid','Empty\x20path','[Fax][execOriginate][failure]','faxstatusstring','.pdf','tiff2pdf','message','[Fax][Message][Error][NoUpdate2]','syncNewState','actions','\x20syncFaxStatus\x20','varset','FaxAccountId','localstationid','./util/gs','\x20hangup\x20faxRiceive\x20','%s/%s.tif','syncNewchannel','ext','channelstatedesc','[Fax][Message][Error][NoUpdate1]','undefined','\x20syncNewchannel\x20','channelstate','syncNewExten','AttachmentId','from-voip-provider','value','reachable','SENDING\x20FAILED','\x20hangup\x20sendFile\x20','syncFaxStatus','syncOriginateResponse','[Fax][checkTrunk][Empty\x20Fax]','parse','path','dir','execOriginate','stringify','calleridnum','notify','logger','pagestransferred','/var/opt/motion2/server/files/attachments/','[Fax][Message][NoUpdate1]','remotestationid','\x20receiveFax\x20','newexten','operation','syncHangup','status','[Fax][execOriginate][success]','create','./action','finally','filename','uniqueid','active','Empty\x20Fax','then','Trunk\x20Reachable','update','isNil'];(function(_0x503db9,_0x1a5951){const _0xa2ac7b=function(_0x4dd8b1){while(--_0x4dd8b1){_0x503db9['push'](_0x503db9['shift']());}};_0xa2ac7b(++_0x1a5951);}(a1060_0x1a59,0x77));const a1060_0xa2ac=function(_0x503db9,_0x1a5951){_0x503db9=_0x503db9-0x0;let _0xa2ac7b=a1060_0x1a59[_0x503db9];return _0xa2ac7b;};const _0x2b0fe6=a1060_0xa2ac;'use strict';const util=require('util'),_=require(_0x2b0fe6('0x6e')),uuid=require('uuid'),path=require(_0x2b0fe6('0x4f')),tiff2pdf=require(_0x2b0fe6('0x31')),gs=require(_0x2b0fe6('0x3a')),logger=require(_0x2b0fe6('0x19'))('fax'),ami=require(_0x2b0fe6('0x26')),ut=require('./util/util'),Action=require(_0x2b0fe6('0x61')),faxAccount=require(_0x2b0fe6('0x13')),attachment=require(_0x2b0fe6('0x1b')),faxMessage=require(_0x2b0fe6('0x0'));function Fax(_0x4dd8b1){const _0x5be94=_0x2b0fe6;this[_0x5be94('0x3')]={},this['faxAccounts']=_0x4dd8b1['faxAccounts'],this[_0x5be94('0xb')]=_0x4dd8b1[_0x5be94('0xb')],this[_0x5be94('0x35')]={},ami['on'](_0x5be94('0x28'),this[_0x5be94('0x3d')][_0x5be94('0x2b')](this)),ami['on'](_0x5be94('0x37'),this[_0x5be94('0x10')][_0x5be94('0x2b')](this)),ami['on'](_0x5be94('0x7'),this[_0x5be94('0x34')][_0x5be94('0x2b')](this)),ami['on'](_0x5be94('0x5b'),this[_0x5be94('0x44')][_0x5be94('0x2b')](this)),ami['on'](_0x5be94('0x1d'),this[_0x5be94('0x4b')][_0x5be94('0x2b')](this)),ami['on'](_0x5be94('0x1c'),this[_0x5be94('0x14')][_0x5be94('0x2b')](this)),ami['on']('hangup',this['syncHangup'][_0x5be94('0x2b')](this)),ami['on'](_0x5be94('0x15'),this[_0x5be94('0x4c')][_0x5be94('0x2b')](this));}Fax[_0x2b0fe6('0x18')][_0x2b0fe6('0x3d')]=function(_0x344504){const _0x497dea=_0x2b0fe6;if(_0x344504['context']===_0x497dea('0x46'))for(const _0x261ce4 in this['faxAccounts']){typeof this[_0x497dea('0x6d')][_0x261ce4]!==_0x497dea('0x41')&&(_0x344504['exten']===this[_0x497dea('0x6d')][_0x261ce4][_0x497dea('0x39')]&&(this[_0x497dea('0x3')][_0x344504[_0x497dea('0x64')]]={},this['channels'][_0x344504[_0x497dea('0x64')]][_0x497dea('0x11')]=_0x344504[_0x497dea('0x11')],this[_0x497dea('0x3')][_0x344504[_0x497dea('0x64')]]['id']=this[_0x497dea('0x6d')][_0x261ce4]['id'],this[_0x497dea('0x3')][_0x344504['uniqueid']][_0x497dea('0x6c')]=this[_0x497dea('0x6d')][_0x261ce4][_0x497dea('0x6c')],logger[_0x497dea('0x27')](_0x344504[_0x497dea('0x64')],_0x497dea('0x42'))));}this['actions'][_0x344504[_0x497dea('0x64')]]&&(this['channels'][_0x344504[_0x497dea('0x64')]]={},this['channels'][_0x344504[_0x497dea('0x64')]][_0x497dea('0x11')]=_0x344504[_0x497dea('0x11')],logger[_0x497dea('0x27')](_0x344504['uniqueid'],_0x497dea('0x42')));},Fax[_0x2b0fe6('0x18')]['syncVarSet']=function(_0x21edea){const _0x20ef65=_0x2b0fe6;if(this[_0x20ef65('0x3')][_0x21edea[_0x20ef65('0x64')]])for(const _0x14c991 in _0x21edea[_0x20ef65('0x1f')]){typeof _0x21edea[_0x20ef65('0x1f')][_0x14c991]!=='undefined'&&(this['channels'][_0x21edea['uniqueid']][_0x14c991]=_0x21edea[_0x20ef65('0x47')]);}},Fax[_0x2b0fe6('0x18')][_0x2b0fe6('0x34')]=function(_0xa860c9){const _0x1ab226=_0x2b0fe6;this[_0x1ab226('0x3')][_0xa860c9['uniqueid']]&&(this[_0x1ab226('0x3')][_0xa860c9[_0x1ab226('0x64')]][_0x1ab226('0x43')]=_0xa860c9[_0x1ab226('0x43')],this['channels'][_0xa860c9[_0x1ab226('0x64')]][_0x1ab226('0x3f')]=_0xa860c9['channelstatedesc']);},Fax['prototype'][_0x2b0fe6('0x44')]=function(_0x550932){const _0x504b72=_0x2b0fe6;if(this[_0x504b72('0x3')][_0x550932['uniqueid']])for(const _0x558363 in _0x550932[_0x504b72('0x1f')]){typeof _0x550932[_0x504b72('0x1f')][_0x558363]!==_0x504b72('0x41')&&(this[_0x504b72('0x3')][_0x550932[_0x504b72('0x64')]][_0x558363]=_0x550932['value']);}},Fax['prototype'][_0x2b0fe6('0x4b')]=function(_0x453da5){const _0x1d414c=_0x2b0fe6;this[_0x1d414c('0x3')][_0x453da5[_0x1d414c('0x64')]]&&(this['channels'][_0x453da5[_0x1d414c('0x64')]][_0x1d414c('0x5c')]=_0x453da5[_0x1d414c('0x5c')],this['channels'][_0x453da5[_0x1d414c('0x64')]][_0x1d414c('0x5e')]=_0x453da5[_0x1d414c('0x5e')],this[_0x1d414c('0x3')][_0x453da5['uniqueid']]['localstationid']=_0x453da5[_0x1d414c('0x39')],this[_0x1d414c('0x3')][_0x453da5[_0x1d414c('0x64')]][_0x1d414c('0x63')]=_0x453da5[_0x1d414c('0x63')],logger[_0x1d414c('0x27')](_0x453da5[_0x1d414c('0x64')],_0x1d414c('0x36')));},Fax[_0x2b0fe6('0x18')][_0x2b0fe6('0x14')]=function(_0x4c10b2){const _0x5851b9=_0x2b0fe6;if(this[_0x5851b9('0x3')][_0x4c10b2[_0x5851b9('0x64')]]){const _0xb9bb34=this[_0x5851b9('0x3')][_0x4c10b2[_0x5851b9('0x64')]]['id'];this['channels'][_0x4c10b2[_0x5851b9('0x64')]][_0x5851b9('0x59')]=_0x4c10b2[_0x5851b9('0x59')],this[_0x5851b9('0x3')][_0x4c10b2[_0x5851b9('0x64')]][_0x5851b9('0x56')]=_0x4c10b2[_0x5851b9('0x56')],this['channels'][_0x4c10b2[_0x5851b9('0x64')]][_0x5851b9('0x39')]=_0x4c10b2[_0x5851b9('0x39')],this['channels'][_0x4c10b2[_0x5851b9('0x64')]][_0x5851b9('0x2')]=_0x4c10b2[_0x5851b9('0x2')],this['channels'][_0x4c10b2[_0x5851b9('0x64')]][_0x5851b9('0x1')]=_0x4c10b2[_0x5851b9('0x1')],this[_0x5851b9('0x3')][_0x4c10b2['uniqueid']]['filename']=_0x4c10b2['filename'],this[_0x5851b9('0x3')][_0x4c10b2['uniqueid']][_0x5851b9('0x53')]=_0x4c10b2[_0x5851b9('0x53')],this['channels'][_0x4c10b2[_0x5851b9('0x64')]][_0x5851b9('0x56')]>0x0&&tiff2pdf(_0x4c10b2[_0x5851b9('0x63')],_0x5851b9('0x57'),function(_0x5dd4a8){const _0x4f5317=_0x5851b9;logger[_0x4f5317('0x27')](_0x4c10b2[_0x4f5317('0x64')],_0x4f5317('0x1e'),_0x5dd4a8[_0x4f5317('0x32')]),attachment[_0x4f5317('0x60')]({'name':path['parse'](_0x4c10b2['filename'])[_0x4f5317('0x6c')],'basename':path[_0x4f5317('0x4e')](_0x4c10b2['filename'])['name']+'.pdf','type':_0x4f5317('0x70')})[_0x4f5317('0x67')](function(_0x230ba2){const _0x5d8186=_0x4f5317;faxAccount[_0x5d8186('0x54')](_0xb9bb34,{'from':_0x4c10b2[_0x5d8186('0x53')],'mapKey':_0x5d8186('0xf'),'body':path[_0x5d8186('0x4e')](_0x4c10b2['filename'])[_0x5d8186('0x6c')]+_0x5d8186('0x30'),'AttachmentId':_0x230ba2['id']})[_0x5d8186('0x8')](function(_0x5480c5){const _0x553681=_0x5d8186;logger[_0x553681('0xa')](_0x4c10b2[_0x553681('0x64')],_0x553681('0xe'),JSON[_0x553681('0x52')](_0x5480c5));});})[_0x4f5317('0x8')](function(_0x43e6c9){const _0x3e68d0=_0x4f5317;logger[_0x3e68d0('0xa')](_0x4c10b2[_0x3e68d0('0x64')],_0x3e68d0('0x5a'),JSON['stringify'](_0x43e6c9));});}),logger['info'](_0x4c10b2[_0x5851b9('0x64')],'\x20receiveFax\x20');}},Fax[_0x2b0fe6('0x18')]['syncOriginateResponse']=function(_0x1f5202){const _0x4d5c0d=_0x2b0fe6;this[_0x4d5c0d('0x35')][_0x1f5202[_0x4d5c0d('0x64')]]&&_['merge'](this['channels'][_0x1f5202[_0x4d5c0d('0x64')]],_[_0x4d5c0d('0x23')](_0x1f5202,[_0x4d5c0d('0x6'),_0x4d5c0d('0x16')]));};function updateStatus(_0x2d622f){const _0x16f3a2=_0x2b0fe6;_0x2d622f[_0x16f3a2('0x45')]?faxMessage[_0x16f3a2('0x69')](_0x2d622f['AttachmentId'],{'failMessage':'SENDING\x20FAILED\x20'})['then'](function(_0x47a219){const _0x540a87=_0x16f3a2;ut[_0x540a87('0x55')]('[Fax][Message][Error][Updated]',_0x47a219);})['catch'](function(_0x1c084c){const _0x3e02d3=_0x16f3a2;ut[_0x3e02d3('0x55')](_0x3e02d3('0x40'),_0x1c084c);}):ut[_0x16f3a2('0x55')](_0x16f3a2('0x33'));}Fax['prototype']['updateStatus']=function(_0x2519ec,_0x474738,_0x507149){const _0x5e19a5=_0x2b0fe6,_0x1c212f=this;let _0x22b600={};_0x474738?_0x22b600={'read':_0x474738}:_0x22b600={'failMessage':_0x507149},this['actions'][_0x2519ec][_0x5e19a5('0x45')]?faxMessage[_0x5e19a5('0x69')](this['actions'][_0x2519ec][_0x5e19a5('0x45')],_0x22b600)[_0x5e19a5('0x67')](function(_0x3a2f71){const _0x526d98=_0x5e19a5;ut[_0x526d98('0x55')](_0x526d98('0x6f'),_0x3a2f71);})['catch'](function(_0x46a70b){const _0x59dd1f=_0x5e19a5;ut[_0x59dd1f('0x55')](_0x59dd1f('0x58'),_0x46a70b);})[_0x5e19a5('0x62')](function(){delete _0x1c212f['channels'][_0x2519ec],delete _0x1c212f['actions'][_0x2519ec];}):(ut[_0x5e19a5('0x55')]('[Fax][Message][NoUpdate2]'),delete this[_0x5e19a5('0x3')][_0x2519ec],delete this[_0x5e19a5('0x35')][_0x2519ec]);},Fax[_0x2b0fe6('0x18')][_0x2b0fe6('0x5d')]=function(_0x559cea){const _0x5ec1f=_0x2b0fe6;this[_0x5ec1f('0x3')][_0x559cea['uniqueid']]&&(this[_0x5ec1f('0x35')][_0x559cea[_0x5ec1f('0x64')]]&&(this['channels'][_0x559cea['uniqueid']]['id']=this[_0x5ec1f('0x35')][_0x559cea[_0x5ec1f('0x64')]]['id'],this[_0x5ec1f('0x3')][_0x559cea[_0x5ec1f('0x64')]][_0x5ec1f('0x6c')]=this[_0x5ec1f('0x35')][_0x559cea[_0x5ec1f('0x64')]][_0x5ec1f('0x6c')]),logger[_0x5ec1f('0x27')](_0x559cea[_0x5ec1f('0x64')],this[_0x5ec1f('0x35')][_0x559cea[_0x5ec1f('0x64')]]?_0x5ec1f('0x4a'):_0x5ec1f('0x3b'),JSON['stringify'](this[_0x5ec1f('0x3')][_0x559cea[_0x5ec1f('0x64')]])),this[_0x5ec1f('0x35')][_0x559cea[_0x5ec1f('0x64')]]&&(this[_0x5ec1f('0x3')][_0x559cea[_0x5ec1f('0x64')]][_0x5ec1f('0x20')]>0x0&&this[_0x5ec1f('0x3')][_0x559cea[_0x5ec1f('0x64')]]['faxstatus']==='SUCCESS'?this[_0x5ec1f('0x9')](_0x559cea[_0x5ec1f('0x64')],!![]):this[_0x5ec1f('0x9')](_0x559cea['uniqueid'],![],this[_0x5ec1f('0x3')][_0x559cea[_0x5ec1f('0x64')]]['faxstatusstring']?_0x5ec1f('0x24')+this[_0x5ec1f('0x3')][_0x559cea[_0x5ec1f('0x64')]][_0x5ec1f('0x2f')]:_0x5ec1f('0x49'))));},Fax[_0x2b0fe6('0x18')]['send']=function(_0x2d3f4f){const _0x1a10d3=this;return new Promise(function(_0x2925fa,_0x3a1f9e){const _0x28403c=a1060_0xa2ac;_0x1a10d3[_0x28403c('0x51')](_0x2d3f4f,_0x1a10d3[_0x28403c('0x6d')][_0x2d3f4f[_0x28403c('0x38')]])['then'](function(_0x208ce4){const _0x857b83=_0x28403c;ut[_0x857b83('0x55')](_0x857b83('0x5f'),_0x208ce4),_0x2925fa(ut[_0x857b83('0x32')](_0x857b83('0x12')));})[_0x28403c('0x8')](function(_0x51078){const _0x5da3d7=_0x28403c;ut[_0x5da3d7('0x55')](_0x5da3d7('0x2e'),_0x51078),updateStatus(_0x2d3f4f),_0x3a1f9e(ut[_0x5da3d7('0x32')]('Fax\x20failed'));});});},Fax[_0x2b0fe6('0x18')]['checkAfterSend']=function(_0x460d3f){const _0x113f3a=this;return new Promise(function(_0x5b784b,_0x59d21b){const _0x4fe769=a1060_0xa2ac,_0xfd9fea=_0x113f3a[_0x4fe769('0x29')](_0x113f3a['faxAccounts'][_0x460d3f[_0x4fe769('0x38')]][_0x4fe769('0x6b')],_0x460d3f);_0xfd9fea['isValid']?_0x5b784b(ut[_0x4fe769('0x32')](_0x4fe769('0x68'))):_0x59d21b(ut[_0x4fe769('0x32')](_0xfd9fea[_0x4fe769('0x32')]));});};function originate(_0x1d571e,_0x239af7,_0x19a45d){return new Promise(function(_0x1d8aed,_0x3e1124){const _0x828949=a1060_0xa2ac;if(_0x19a45d){const _0x327418=util[_0x828949('0xc')](_0x828949('0x4'),path[_0x828949('0x4e')](_0x1d571e[_0x828949('0x4f')])[_0x828949('0x6c')],_0x1d571e[_0x828949('0x4f')]);gs['execute'](_0x327418)[_0x828949('0x67')](function(){const _0x38a60d=_0x828949;_0x1d571e[_0x38a60d('0x4f')]=util[_0x38a60d('0xc')](_0x38a60d('0x3c'),path[_0x38a60d('0x4e')](_0x1d571e[_0x38a60d('0x4f')])[_0x38a60d('0x50')],path[_0x38a60d('0x4e')](_0x1d571e['path'])[_0x38a60d('0x6c')]),_0x239af7['XMF-PATH']=_0x1d571e[_0x38a60d('0x4f')],ut[_0x38a60d('0x55')](_0x38a60d('0x2a'),''),ami['Action'](ut[_0x38a60d('0x21')](_0x1d571e,_0x239af7))['then'](function(_0x27267c){_0x1d8aed(_0x27267c);})['catch'](function(_0x467fa){_0x3e1124(_0x467fa);});})['catch'](function(_0x20c134){_0x3e1124(_0x20c134);});}else ami[_0x828949('0xd')](ut[_0x828949('0x21')](_0x1d571e,_0x239af7))['then'](function(_0x413c6c){_0x1d8aed(_0x413c6c);})[_0x828949('0x8')](function(_0x2c5a4e){_0x3e1124(_0x2c5a4e);});});}Fax[_0x2b0fe6('0x18')][_0x2b0fe6('0x51')]=function(_0x4cc7a9,_0x3a9fbf){const _0x13e99f=this;return new Promise(function(_0x3b1b80,_0x4caa6e){const _0x5072eb=a1060_0xa2ac,_0xe65d5d=uuid['v4'](),_0x556bd5=ut[_0x5072eb('0x5')](_0x4cc7a9,_0x3a9fbf);_0x13e99f[_0x5072eb('0x35')][_0xe65d5d]=new Action(_0xe65d5d,_0x3a9fbf,_0x4cc7a9);const _0x1b3a43=_0x13e99f[_0x5072eb('0x35')][_0xe65d5d];path[_0x5072eb('0x4e')](_0x4cc7a9[_0x5072eb('0x4f')])[_0x5072eb('0x3e')]===_0x5072eb('0x30')?originate(_0x1b3a43,_0x556bd5,!![])[_0x5072eb('0x67')](function(_0x788bd5){_0x3b1b80(_0x788bd5);})[_0x5072eb('0x8')](function(_0x2c9125){_0x4caa6e(_0x2c9125);}):originate(_0x1b3a43,_0x556bd5,![])[_0x5072eb('0x67')](function(_0x342d36){_0x3b1b80(_0x342d36);})[_0x5072eb('0x8')](function(_0x49fef6){_0x4caa6e(_0x49fef6);});});},Fax[_0x2b0fe6('0x18')][_0x2b0fe6('0x17')]=function(_0xa3b33b){const _0x13bd35=_0x2b0fe6;return!_[_0x13bd35('0x6a')](_0xa3b33b)&&!_[_0x13bd35('0x6a')](_0xa3b33b['name'])&&!_[_0x13bd35('0x6a')](_0xa3b33b[_0x13bd35('0x65')])&&_0xa3b33b[_0x13bd35('0x65')]&&!_[_0x13bd35('0x6a')](this[_0x13bd35('0xb')][util[_0x13bd35('0xc')]('SIP/%s',_0xa3b33b[_0x13bd35('0x6c')])])&&!_[_0x13bd35('0x6a')](this[_0x13bd35('0xb')][util[_0x13bd35('0xc')](_0x13bd35('0x25'),_0xa3b33b[_0x13bd35('0x6c')])]['status'])&&(this['trunks'][util['format'](_0x13bd35('0x25'),_0xa3b33b[_0x13bd35('0x6c')])][_0x13bd35('0x5e')]===_0x13bd35('0x48')||this['trunks'][util[_0x13bd35('0xc')](_0x13bd35('0x25'),_0xa3b33b[_0x13bd35('0x6c')])][_0x13bd35('0x5e')]==='unmonitored');},Fax[_0x2b0fe6('0x18')]['checkTrunk']=function(_0x3de805,_0x498873){const _0x4fdd9b=_0x2b0fe6;if(!this['isTrunkReachable'](_0x3de805))return ut[_0x4fdd9b('0x55')](_0x4fdd9b('0x1a'),_['isNil'](_0x3de805)?'':_0x3de805[_0x4fdd9b('0x6c')]+'\x20Trunk\x20is\x20not\x20active'),{'isValid':![],'message':'Trunk\x20not\x20working'};if(_[_0x4fdd9b('0x6a')](_0x498873[_0x4fdd9b('0xf')]))return ut['logger'](_0x4fdd9b('0x4d'),JSON[_0x4fdd9b('0x52')](_0x498873)),{'isValid':![],'message':_0x4fdd9b('0x66')};if(_[_0x4fdd9b('0x6a')](_0x498873[_0x4fdd9b('0x4f')]))return ut[_0x4fdd9b('0x55')](_0x4fdd9b('0x22'),JSON[_0x4fdd9b('0x52')](_0x498873)),{'isValid':![],'message':_0x4fdd9b('0x2d')};return{'isValid':!![],'message':_0x4fdd9b('0x2c')};},module['exports']=Fax;