Built motion from commit 4d4d9a88.|2.6.26
[motion2.git] / server / services / ami / fax / index.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 _0x5dab=['Fax\x20received','[Fax][execOriginate][failure]','Fax\x20failed','checkAfterSend','checkTrunk','Trunk','isValid','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','execute','format','%s/%s.tif','XMF-PATH','Convert\x20pdf\x20to\x20tif','variablesAction','Action','addVariables','ext','isTrunkReachable','isNil','active','SIP/%s','reachable','unmonitored','\x20Trunk\x20is\x20not\x20active','Trunk\x20not\x20working\x20correctly','[Fax][checkTrunk][Empty\x20Fax]','Empty\x20Fax','[Fax][checkTrunk][Empty\x20path]','Empty\x20path','exports','util','lodash','bluebird','uuid','moment','path','tiff2pdf','../../../config/logger','./channel','./action','../rpc/faxAccount','../rpc/attachment','../rpc/faxMessage','channels','faxAccounts','trunks','actions','newchannel','syncNewchannel','bind','newstate','syncNewState','newexten','faxstatus','syncFaxStatus','receivefax','syncReceiveFax','originateresponse','prototype','context','hasOwnProperty','exten','channel','uniqueid','name','info','\x20syncNewchannel\x20','channelstate','channelstatedesc','syncNewExten','variable','value','operation','status','localstationid','filename','\x20syncFaxStatus\x20','remotestationid','resolution','transferrate','calleridnum','pagestransferred','/var/opt/motion2/server/files/attachments/','message','create','parse','.pdf','application/pdf','then','fax','catch','\x20notify\x20','error','\x20receiveFax\x20','syncOriginateResponse','merge','response','reason','SENDING\x20FAILED\x20','logger','[Fax][Message][Error][NoUpdate1]','[Fax][Message][Error][NoUpdate2]','updateStatus','AttachmentId','update','[Fax][Message][Updated]','[Fax][Message][NoUpdate1]','finally','[Fax][Message][NoUpdate2]','syncHangup','\x20hangup\x20sendFile\x20','\x20hangup\x20faxRiceive\x20','stringify','faxpages','SUCCESS','faxstatusstring','execOriginate','FaxAccountId','[Fax][execOriginate][success]'];(function(_0xe706ae,_0x52e822){var _0x19e176=function(_0x23d680){while(--_0x23d680){_0xe706ae['push'](_0xe706ae['shift']());}};_0x19e176(++_0x52e822);}(_0x5dab,0x183));var _0xb5da=function(_0x30ae5e,_0x391fc4){_0x30ae5e=_0x30ae5e-0x0;var _0x1f2e93=_0x5dab[_0x30ae5e];return _0x1f2e93;};'use strict';var util=require(_0xb5da('0x0'));var _=require(_0xb5da('0x1'));var BPromise=require(_0xb5da('0x2'));var uuid=require(_0xb5da('0x3'));var moment=require(_0xb5da('0x4'));var path=require(_0xb5da('0x5'));var tiff2pdf=require(_0xb5da('0x6'));var gs=require('./util/gs');var logger=require(_0xb5da('0x7'))('fax');var ami=require('../ami');var rpcDb=require('./rpcDb');var Channel=require(_0xb5da('0x8'));var ut=require('./util/util');var Action=require(_0xb5da('0x9'));var faxAccount=require(_0xb5da('0xa'));var attachment=require(_0xb5da('0xb'));var faxMessage=require(_0xb5da('0xc'));function Fax(_0xfd27f4){this[_0xb5da('0xd')]={};this[_0xb5da('0xe')]=_0xfd27f4[_0xb5da('0xe')];this[_0xb5da('0xf')]=_0xfd27f4[_0xb5da('0xf')];this[_0xb5da('0x10')]={};ami['on'](_0xb5da('0x11'),this[_0xb5da('0x12')][_0xb5da('0x13')](this));ami['on']('varset',this['syncVarSet'][_0xb5da('0x13')](this));ami['on'](_0xb5da('0x14'),this[_0xb5da('0x15')][_0xb5da('0x13')](this));ami['on'](_0xb5da('0x16'),this['syncNewExten'][_0xb5da('0x13')](this));ami['on'](_0xb5da('0x17'),this[_0xb5da('0x18')][_0xb5da('0x13')](this));ami['on'](_0xb5da('0x19'),this[_0xb5da('0x1a')]['bind'](this));ami['on']('hangup',this['syncHangup']['bind'](this));ami['on'](_0xb5da('0x1b'),this['syncOriginateResponse']['bind'](this));}Fax[_0xb5da('0x1c')][_0xb5da('0x12')]=function(_0x45378a){if(_0x45378a[_0xb5da('0x1d')]==='from-voip-provider'){for(var _0x28dcdf in this['faxAccounts']){if(this[_0xb5da('0xe')][_0xb5da('0x1e')](_0x28dcdf)){if(_0x45378a[_0xb5da('0x1f')]===this[_0xb5da('0xe')][_0x28dcdf]['localstationid']){this[_0xb5da('0xd')][_0x45378a['uniqueid']]={};this[_0xb5da('0xd')][_0x45378a['uniqueid']][_0xb5da('0x20')]=_0x45378a[_0xb5da('0x20')];this[_0xb5da('0xd')][_0x45378a[_0xb5da('0x21')]]['id']=this[_0xb5da('0xe')][_0x28dcdf]['id'];this[_0xb5da('0xd')][_0x45378a[_0xb5da('0x21')]][_0xb5da('0x22')]=this['faxAccounts'][_0x28dcdf][_0xb5da('0x22')];logger[_0xb5da('0x23')](_0x45378a[_0xb5da('0x21')],_0xb5da('0x24'));}}}}if(this[_0xb5da('0x10')][_0x45378a[_0xb5da('0x21')]]){this['channels'][_0x45378a['uniqueid']]={};this[_0xb5da('0xd')][_0x45378a[_0xb5da('0x21')]][_0xb5da('0x20')]=_0x45378a['channel'];logger['info'](_0x45378a[_0xb5da('0x21')],_0xb5da('0x24'));}};Fax[_0xb5da('0x1c')]['syncVarSet']=function(_0xe0051a){if(this[_0xb5da('0xd')][_0xe0051a[_0xb5da('0x21')]]){for(var _0x13ee39 in _0xe0051a['variable']){if(_0xe0051a['variable']['hasOwnProperty'](_0x13ee39)){this[_0xb5da('0xd')][_0xe0051a['uniqueid']][_0x13ee39]=_0xe0051a['value'];}}}};Fax[_0xb5da('0x1c')]['syncNewState']=function(_0x4c2cee){if(this[_0xb5da('0xd')][_0x4c2cee[_0xb5da('0x21')]]){this[_0xb5da('0xd')][_0x4c2cee[_0xb5da('0x21')]][_0xb5da('0x25')]=_0x4c2cee[_0xb5da('0x25')];this['channels'][_0x4c2cee[_0xb5da('0x21')]][_0xb5da('0x26')]=_0x4c2cee['channelstatedesc'];}};Fax[_0xb5da('0x1c')][_0xb5da('0x27')]=function(_0xaa8b7a){if(this[_0xb5da('0xd')][_0xaa8b7a['uniqueid']]){for(var _0x3cbfef in _0xaa8b7a[_0xb5da('0x28')]){if(_0xaa8b7a[_0xb5da('0x28')][_0xb5da('0x1e')](_0x3cbfef)){this['channels'][_0xaa8b7a[_0xb5da('0x21')]][_0x3cbfef]=_0xaa8b7a[_0xb5da('0x29')];}}}};Fax[_0xb5da('0x1c')][_0xb5da('0x18')]=function(_0x15e685){if(this[_0xb5da('0xd')][_0x15e685[_0xb5da('0x21')]]){this[_0xb5da('0xd')][_0x15e685[_0xb5da('0x21')]][_0xb5da('0x2a')]=_0x15e685[_0xb5da('0x2a')];this['channels'][_0x15e685[_0xb5da('0x21')]][_0xb5da('0x2b')]=_0x15e685['status'];this[_0xb5da('0xd')][_0x15e685[_0xb5da('0x21')]]['localstationid']=_0x15e685[_0xb5da('0x2c')];this[_0xb5da('0xd')][_0x15e685[_0xb5da('0x21')]][_0xb5da('0x2d')]=_0x15e685[_0xb5da('0x2d')];logger['info'](_0x15e685[_0xb5da('0x21')],_0xb5da('0x2e'));}};Fax[_0xb5da('0x1c')][_0xb5da('0x1a')]=function(_0x29f371){var _0x3d6e4f=this;if(this[_0xb5da('0xd')][_0x29f371[_0xb5da('0x21')]]){var _0x9d5758=this[_0xb5da('0xd')][_0x29f371[_0xb5da('0x21')]]['id'];this[_0xb5da('0xd')][_0x29f371[_0xb5da('0x21')]][_0xb5da('0x2f')]=_0x29f371['remotestationid'];this[_0xb5da('0xd')][_0x29f371[_0xb5da('0x21')]]['pagestransferred']=_0x29f371['pagestransferred'];this[_0xb5da('0xd')][_0x29f371['uniqueid']][_0xb5da('0x2c')]=_0x29f371[_0xb5da('0x2c')];this['channels'][_0x29f371[_0xb5da('0x21')]][_0xb5da('0x30')]=_0x29f371['resolution'];this[_0xb5da('0xd')][_0x29f371[_0xb5da('0x21')]][_0xb5da('0x31')]=_0x29f371['transferrate'];this[_0xb5da('0xd')][_0x29f371['uniqueid']][_0xb5da('0x2d')]=_0x29f371[_0xb5da('0x2d')];this[_0xb5da('0xd')][_0x29f371[_0xb5da('0x21')]][_0xb5da('0x32')]=_0x29f371['calleridnum'];if(this[_0xb5da('0xd')][_0x29f371[_0xb5da('0x21')]][_0xb5da('0x33')]>0x0){tiff2pdf(_0x29f371[_0xb5da('0x2d')],_0xb5da('0x34'),function(_0x5dbab2){logger[_0xb5da('0x23')](_0x29f371[_0xb5da('0x21')],'\x20result\x20conversion\x20file\x20',_0x5dbab2[_0xb5da('0x35')]);attachment[_0xb5da('0x36')]({'name':path[_0xb5da('0x37')](_0x29f371[_0xb5da('0x2d')])[_0xb5da('0x22')],'basename':path['parse'](_0x29f371[_0xb5da('0x2d')])[_0xb5da('0x22')]+_0xb5da('0x38'),'type':_0xb5da('0x39')})[_0xb5da('0x3a')](function(_0x20f7c6){faxAccount['notify'](_0x9d5758,{'from':_0x29f371['calleridnum'],'mapKey':_0xb5da('0x3b'),'body':path[_0xb5da('0x37')](_0x29f371[_0xb5da('0x2d')])[_0xb5da('0x22')]+_0xb5da('0x38'),'AttachmentId':_0x20f7c6['id']})[_0xb5da('0x3c')](function(_0x46ed49){logger['error'](_0x29f371['uniqueid'],_0xb5da('0x3d'),JSON['stringify'](_0x46ed49));});})['catch'](function(_0xea5954){logger[_0xb5da('0x3e')](_0x29f371['uniqueid'],_0xb5da('0x3f'),JSON['stringify'](_0xea5954));});});}logger['info'](_0x29f371[_0xb5da('0x21')],_0xb5da('0x3f'));}};Fax[_0xb5da('0x1c')][_0xb5da('0x40')]=function(_0x40eb16){if(this['actions'][_0x40eb16[_0xb5da('0x21')]]){_[_0xb5da('0x41')](this['channels'][_0x40eb16[_0xb5da('0x21')]],_['pick'](_0x40eb16,[_0xb5da('0x42'),_0xb5da('0x43')]));}};function updateStatus(_0x5a4496){if(_0x5a4496['AttachmentId']){faxMessage['update'](_0x5a4496['AttachmentId'],{'failMessage':_0xb5da('0x44')})[_0xb5da('0x3a')](function(_0x8aca71){ut[_0xb5da('0x45')]('[Fax][Message][Error][Updated]',_0x8aca71);})[_0xb5da('0x3c')](function(_0x493f5b){ut[_0xb5da('0x45')](_0xb5da('0x46'),_0x493f5b);});}else{ut[_0xb5da('0x45')](_0xb5da('0x47'));}}Fax[_0xb5da('0x1c')][_0xb5da('0x48')]=function(_0x249571,_0x2c82c6,_0x357449){var _0x27fe34=this;var _0x1d9e86={};if(_0x2c82c6){_0x1d9e86={'read':_0x2c82c6};}else{_0x1d9e86={'failMessage':_0x357449};}if(this['actions'][_0x249571][_0xb5da('0x49')]){faxMessage[_0xb5da('0x4a')](this[_0xb5da('0x10')][_0x249571][_0xb5da('0x49')],_0x1d9e86)[_0xb5da('0x3a')](function(_0x423354){ut[_0xb5da('0x45')](_0xb5da('0x4b'),_0x423354);})['catch'](function(_0x1ebd78){ut['logger'](_0xb5da('0x4c'),_0x1ebd78);})[_0xb5da('0x4d')](function(){delete _0x27fe34[_0xb5da('0xd')][_0x249571];delete _0x27fe34[_0xb5da('0x10')][_0x249571];});}else{ut[_0xb5da('0x45')](_0xb5da('0x4e'));delete this[_0xb5da('0xd')][_0x249571];delete this[_0xb5da('0x10')][_0x249571];}};Fax[_0xb5da('0x1c')][_0xb5da('0x4f')]=function(_0x2b70aa){var _0x377604=this;if(this[_0xb5da('0xd')][_0x2b70aa[_0xb5da('0x21')]]){if(this[_0xb5da('0x10')][_0x2b70aa['uniqueid']]){this['channels'][_0x2b70aa[_0xb5da('0x21')]]['id']=this[_0xb5da('0x10')][_0x2b70aa['uniqueid']]['id'];this[_0xb5da('0xd')][_0x2b70aa[_0xb5da('0x21')]][_0xb5da('0x22')]=this[_0xb5da('0x10')][_0x2b70aa['uniqueid']][_0xb5da('0x22')];}logger[_0xb5da('0x23')](_0x2b70aa[_0xb5da('0x21')],this[_0xb5da('0x10')][_0x2b70aa[_0xb5da('0x21')]]?_0xb5da('0x50'):_0xb5da('0x51'),JSON[_0xb5da('0x52')](this[_0xb5da('0xd')][_0x2b70aa['uniqueid']]));if(this[_0xb5da('0x10')][_0x2b70aa[_0xb5da('0x21')]]){if(this['channels'][_0x2b70aa[_0xb5da('0x21')]][_0xb5da('0x53')]>0x0&&this[_0xb5da('0xd')][_0x2b70aa[_0xb5da('0x21')]][_0xb5da('0x17')]===_0xb5da('0x54')){this[_0xb5da('0x48')](_0x2b70aa[_0xb5da('0x21')],!![]);}else{this[_0xb5da('0x48')](_0x2b70aa[_0xb5da('0x21')],![],this[_0xb5da('0xd')][_0x2b70aa[_0xb5da('0x21')]][_0xb5da('0x55')]?'SENDING\x20FAILED:\x20'+this[_0xb5da('0xd')][_0x2b70aa[_0xb5da('0x21')]][_0xb5da('0x55')]:'SENDING\x20FAILED');}}}};Fax[_0xb5da('0x1c')]['send']=function(_0x452c87){var _0x2c2172=this;return new BPromise(function(_0x2efb51,_0x1cf401){_0x2c2172[_0xb5da('0x56')](_0x452c87,_0x2c2172[_0xb5da('0xe')][_0x452c87[_0xb5da('0x57')]])[_0xb5da('0x3a')](function(_0x10ced4){ut['logger'](_0xb5da('0x58'),_0x10ced4);_0x2efb51(ut[_0xb5da('0x35')](_0xb5da('0x59')));})[_0xb5da('0x3c')](function(_0x4e3cda){ut['logger'](_0xb5da('0x5a'),_0x4e3cda);updateStatus(_0x452c87);_0x1cf401(ut['message'](_0xb5da('0x5b')));});});};Fax[_0xb5da('0x1c')][_0xb5da('0x5c')]=function(_0x176fa3){var _0x19accf=this;return new BPromise(function(_0x45be6a,_0x4e9636){var _0x1c72cc=_0x19accf[_0xb5da('0x5d')](_0x19accf[_0xb5da('0xe')][_0x176fa3[_0xb5da('0x57')]][_0xb5da('0x5e')],_0x176fa3);if(_0x1c72cc[_0xb5da('0x5f')]){_0x45be6a(ut['message']('Trunk\x20Reachable'));}else{_0x4e9636(ut[_0xb5da('0x35')](_0x1c72cc[_0xb5da('0x35')]));}});};function originate(_0xb4505,_0xdc6d7a,_0xcbb6ae){return new BPromise(function(_0x120497,_0xc4c22a){if(_0xcbb6ae){var _0xdbc777=util['format'](_0xb5da('0x60'),path['parse'](_0xb4505['path'])[_0xb5da('0x22')],_0xb4505[_0xb5da('0x5')]);gs[_0xb5da('0x61')](_0xdbc777)[_0xb5da('0x3a')](function(){_0xb4505[_0xb5da('0x5')]=util[_0xb5da('0x62')](_0xb5da('0x63'),path[_0xb5da('0x37')](_0xb4505[_0xb5da('0x5')])['dir'],path[_0xb5da('0x37')](_0xb4505['path'])[_0xb5da('0x22')]);_0xdc6d7a[_0xb5da('0x64')]=_0xb4505[_0xb5da('0x5')];ut[_0xb5da('0x45')](_0xb5da('0x65'),'');ami['Action'](ut[_0xb5da('0x66')](_0xb4505,_0xdc6d7a))[_0xb5da('0x3a')](function(_0x51dd41){_0x120497(_0x51dd41);})['catch'](function(_0x12c068){_0xc4c22a(_0x12c068);});})[_0xb5da('0x3c')](function(_0x556a2c){_0xc4c22a(_0x556a2c);});}else{ami[_0xb5da('0x67')](ut[_0xb5da('0x66')](_0xb4505,_0xdc6d7a))['then'](function(_0x214391){_0x120497(_0x214391);})[_0xb5da('0x3c')](function(_0x67e62c){_0xc4c22a(_0x67e62c);});}});}Fax[_0xb5da('0x1c')][_0xb5da('0x56')]=function(_0x3243ee,_0x542e24){var _0x1a7311=this;return new BPromise(function(_0x4039d1,_0x223eeb){var _0x2fdb9d=uuid['v4']();var _0x2d95d0=ut[_0xb5da('0x68')](_0x3243ee,_0x542e24);_0x1a7311['actions'][_0x2fdb9d]=new Action(_0x2fdb9d,_0x542e24,_0x3243ee);var _0x4d9fb5=_0x1a7311[_0xb5da('0x10')][_0x2fdb9d];if(path['parse'](_0x3243ee[_0xb5da('0x5')])[_0xb5da('0x69')]==='.pdf'){originate(_0x4d9fb5,_0x2d95d0,!![])[_0xb5da('0x3a')](function(_0x23ccbf){_0x4039d1(_0x23ccbf);})[_0xb5da('0x3c')](function(_0x1c0dfa){_0x223eeb(_0x1c0dfa);});}else{originate(_0x4d9fb5,_0x2d95d0,![])[_0xb5da('0x3a')](function(_0x1db86b){_0x4039d1(_0x1db86b);})[_0xb5da('0x3c')](function(_0x434e25){_0x223eeb(_0x434e25);});}});};Fax['prototype'][_0xb5da('0x6a')]=function(_0x1b0fd8){return!_[_0xb5da('0x6b')](_0x1b0fd8)&&!_['isNil'](_0x1b0fd8[_0xb5da('0x22')])&&!_[_0xb5da('0x6b')](_0x1b0fd8[_0xb5da('0x6c')])&&_0x1b0fd8[_0xb5da('0x6c')]&&!_[_0xb5da('0x6b')](this[_0xb5da('0xf')][util[_0xb5da('0x62')]('SIP/%s',_0x1b0fd8['name'])])&&!_['isNil'](this[_0xb5da('0xf')][util['format'](_0xb5da('0x6d'),_0x1b0fd8['name'])][_0xb5da('0x2b')])&&(this[_0xb5da('0xf')][util[_0xb5da('0x62')](_0xb5da('0x6d'),_0x1b0fd8[_0xb5da('0x22')])]['status']===_0xb5da('0x6e')||this['trunks'][util[_0xb5da('0x62')](_0xb5da('0x6d'),_0x1b0fd8[_0xb5da('0x22')])][_0xb5da('0x2b')]===_0xb5da('0x6f'));};Fax[_0xb5da('0x1c')][_0xb5da('0x5d')]=function(_0x52ab58,_0xcabb56){if(!this[_0xb5da('0x6a')](_0x52ab58)){ut[_0xb5da('0x45')]('[Fax][checkTrunk][Trunk\x20not\x20working\x20correctly]',_[_0xb5da('0x6b')](_0x52ab58)?'':_0x52ab58[_0xb5da('0x22')]+_0xb5da('0x70'));return{'isValid':![],'message':_0xb5da('0x71')};}if(_[_0xb5da('0x6b')](_0xcabb56[_0xb5da('0x3b')])){ut[_0xb5da('0x45')](_0xb5da('0x72'),JSON[_0xb5da('0x52')](_0xcabb56));return{'isValid':![],'message':_0xb5da('0x73')};}if(_[_0xb5da('0x6b')](_0xcabb56[_0xb5da('0x5')])){ut[_0xb5da('0x45')](_0xb5da('0x74'),JSON[_0xb5da('0x52')](_0xcabb56));return{'isValid':![],'message':_0xb5da('0x75')};}return{'isValid':!![],'message':'Is\x20Valid'};};module[_0xb5da('0x76')]=Fax;