Built motion from commit (unavailable).|2.5.31
[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 _0xb2cf=['trunks','actions','newchannel','bind','varset','syncVarSet','newstate','syncNewState','newexten','syncNewExten','syncFaxStatus','receivefax','syncReceiveFax','hangup','syncHangup','prototype','syncNewchannel','context','from-voip-provider','hasOwnProperty','exten','localstationid','channels','uniqueid','channel','name','\x20syncNewchannel\x20','info','variable','value','channelstate','channelstatedesc','operation','status','filename','\x20syncFaxStatus\x20','remotestationid','pagestransferred','resolution','transferrate','calleridnum','\x20result\x20conversion\x20file\x20','create','parse','.pdf','notify','catch','error','stringify','\x20receiveFax\x20','syncOriginateResponse','pick','response','reason','AttachmentId','update','then','logger','[Fax][Message][Error][Updated]','[Fax][Message][Error][NoUpdate1]','[Fax][Message][Error][NoUpdate2]','updateStatus','[Fax][Message][NoUpdate1]','\x20hangup\x20sendFile\x20','\x20hangup\x20faxRiceive\x20','faxpages','faxstatus','faxstatusstring','SENDING\x20FAILED','send','execOriginate','FaxAccountId','[Fax][execOriginate][success]','message','Fax\x20received','Fax\x20failed','checkAfterSend','Trunk','isValid','Trunk\x20Reachable','path','format','%s/%s.tif','dir','Convert\x20pdf\x20to\x20tif','Action','variablesAction','ext','isNil','active','SIP/%s','reachable','checkTrunk','[Fax][checkTrunk][Trunk\x20not\x20work]','\x20Trunk\x20is\x20not\x20active','Trunk\x20not\x20working','[Fax][checkTrunk][Empty\x20Fax]','Empty\x20Fax','Empty\x20path','Is\x20Valid','exports','util','lodash','bluebird','moment','tiff2pdf','fax','./channel','./util/util','./action','../rpc/attachment','faxAccounts'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0xb2cf,0xd5));var _0xfb2c=function(_0x479cf4,_0x5f3c81){_0x479cf4=_0x479cf4-0x0;var _0x30814a=_0xb2cf[_0x479cf4];return _0x30814a;};'use strict';var util=require(_0xfb2c('0x0'));var _=require(_0xfb2c('0x1'));var BPromise=require(_0xfb2c('0x2'));var uuid=require('uuid');var moment=require(_0xfb2c('0x3'));var path=require('path');var tiff2pdf=require(_0xfb2c('0x4'));var gs=require('./util/gs');var logger=require('../../../config/logger')(_0xfb2c('0x5'));var ami=require('../ami');var rpcDb=require('./rpcDb');var Channel=require(_0xfb2c('0x6'));var ut=require(_0xfb2c('0x7'));var Action=require(_0xfb2c('0x8'));var faxAccount=require('../rpc/faxAccount');var attachment=require(_0xfb2c('0x9'));var faxMessage=require('../rpc/faxMessage');function Fax(_0x4f7cc3){this['channels']={};this[_0xfb2c('0xa')]=_0x4f7cc3[_0xfb2c('0xa')];this[_0xfb2c('0xb')]=_0x4f7cc3[_0xfb2c('0xb')];this[_0xfb2c('0xc')]={};ami['on'](_0xfb2c('0xd'),this['syncNewchannel'][_0xfb2c('0xe')](this));ami['on'](_0xfb2c('0xf'),this[_0xfb2c('0x10')][_0xfb2c('0xe')](this));ami['on'](_0xfb2c('0x11'),this[_0xfb2c('0x12')][_0xfb2c('0xe')](this));ami['on'](_0xfb2c('0x13'),this[_0xfb2c('0x14')][_0xfb2c('0xe')](this));ami['on']('faxstatus',this[_0xfb2c('0x15')][_0xfb2c('0xe')](this));ami['on'](_0xfb2c('0x16'),this[_0xfb2c('0x17')][_0xfb2c('0xe')](this));ami['on'](_0xfb2c('0x18'),this[_0xfb2c('0x19')][_0xfb2c('0xe')](this));ami['on']('originateresponse',this['syncOriginateResponse']['bind'](this));}Fax[_0xfb2c('0x1a')][_0xfb2c('0x1b')]=function(_0x254821){if(_0x254821[_0xfb2c('0x1c')]===_0xfb2c('0x1d')){for(var _0x20fb96 in this[_0xfb2c('0xa')]){if(this[_0xfb2c('0xa')][_0xfb2c('0x1e')](_0x20fb96)){if(_0x254821[_0xfb2c('0x1f')]===this[_0xfb2c('0xa')][_0x20fb96][_0xfb2c('0x20')]){this[_0xfb2c('0x21')][_0x254821[_0xfb2c('0x22')]]={};this[_0xfb2c('0x21')][_0x254821[_0xfb2c('0x22')]][_0xfb2c('0x23')]=_0x254821[_0xfb2c('0x23')];this[_0xfb2c('0x21')][_0x254821[_0xfb2c('0x22')]]['id']=this[_0xfb2c('0xa')][_0x20fb96]['id'];this[_0xfb2c('0x21')][_0x254821[_0xfb2c('0x22')]][_0xfb2c('0x24')]=this[_0xfb2c('0xa')][_0x20fb96]['name'];logger['info'](_0x254821['uniqueid'],_0xfb2c('0x25'));}}}}if(this[_0xfb2c('0xc')][_0x254821[_0xfb2c('0x22')]]){this['channels'][_0x254821[_0xfb2c('0x22')]]={};this['channels'][_0x254821[_0xfb2c('0x22')]][_0xfb2c('0x23')]=_0x254821[_0xfb2c('0x23')];logger[_0xfb2c('0x26')](_0x254821[_0xfb2c('0x22')],_0xfb2c('0x25'));}};Fax[_0xfb2c('0x1a')]['syncVarSet']=function(_0x528980){if(this[_0xfb2c('0x21')][_0x528980[_0xfb2c('0x22')]]){for(var _0xa57f9d in _0x528980[_0xfb2c('0x27')]){if(_0x528980[_0xfb2c('0x27')][_0xfb2c('0x1e')](_0xa57f9d)){this[_0xfb2c('0x21')][_0x528980['uniqueid']][_0xa57f9d]=_0x528980[_0xfb2c('0x28')];}}}};Fax[_0xfb2c('0x1a')][_0xfb2c('0x12')]=function(_0xa4a18e){if(this[_0xfb2c('0x21')][_0xa4a18e[_0xfb2c('0x22')]]){this[_0xfb2c('0x21')][_0xa4a18e[_0xfb2c('0x22')]][_0xfb2c('0x29')]=_0xa4a18e[_0xfb2c('0x29')];this['channels'][_0xa4a18e[_0xfb2c('0x22')]]['channelstatedesc']=_0xa4a18e[_0xfb2c('0x2a')];}};Fax[_0xfb2c('0x1a')][_0xfb2c('0x14')]=function(_0x3d3eae){if(this[_0xfb2c('0x21')][_0x3d3eae[_0xfb2c('0x22')]]){for(var _0x277204 in _0x3d3eae[_0xfb2c('0x27')]){if(_0x3d3eae[_0xfb2c('0x27')][_0xfb2c('0x1e')](_0x277204)){this['channels'][_0x3d3eae['uniqueid']][_0x277204]=_0x3d3eae[_0xfb2c('0x28')];}}}};Fax[_0xfb2c('0x1a')][_0xfb2c('0x15')]=function(_0x1db312){if(this['channels'][_0x1db312[_0xfb2c('0x22')]]){this[_0xfb2c('0x21')][_0x1db312['uniqueid']][_0xfb2c('0x2b')]=_0x1db312[_0xfb2c('0x2b')];this[_0xfb2c('0x21')][_0x1db312[_0xfb2c('0x22')]][_0xfb2c('0x2c')]=_0x1db312[_0xfb2c('0x2c')];this['channels'][_0x1db312[_0xfb2c('0x22')]][_0xfb2c('0x20')]=_0x1db312['localstationid'];this['channels'][_0x1db312[_0xfb2c('0x22')]][_0xfb2c('0x2d')]=_0x1db312[_0xfb2c('0x2d')];logger[_0xfb2c('0x26')](_0x1db312['uniqueid'],_0xfb2c('0x2e'));}};Fax[_0xfb2c('0x1a')][_0xfb2c('0x17')]=function(_0xc26bf5){var _0x2e9bc6=this;if(this[_0xfb2c('0x21')][_0xc26bf5[_0xfb2c('0x22')]]){var _0x341e1a=this[_0xfb2c('0x21')][_0xc26bf5[_0xfb2c('0x22')]]['id'];this['channels'][_0xc26bf5[_0xfb2c('0x22')]][_0xfb2c('0x2f')]=_0xc26bf5[_0xfb2c('0x2f')];this[_0xfb2c('0x21')][_0xc26bf5['uniqueid']][_0xfb2c('0x30')]=_0xc26bf5[_0xfb2c('0x30')];this[_0xfb2c('0x21')][_0xc26bf5[_0xfb2c('0x22')]][_0xfb2c('0x20')]=_0xc26bf5['localstationid'];this[_0xfb2c('0x21')][_0xc26bf5[_0xfb2c('0x22')]][_0xfb2c('0x31')]=_0xc26bf5[_0xfb2c('0x31')];this[_0xfb2c('0x21')][_0xc26bf5[_0xfb2c('0x22')]][_0xfb2c('0x32')]=_0xc26bf5[_0xfb2c('0x32')];this[_0xfb2c('0x21')][_0xc26bf5['uniqueid']][_0xfb2c('0x2d')]=_0xc26bf5[_0xfb2c('0x2d')];this[_0xfb2c('0x21')][_0xc26bf5[_0xfb2c('0x22')]][_0xfb2c('0x33')]=_0xc26bf5[_0xfb2c('0x33')];if(this[_0xfb2c('0x21')][_0xc26bf5[_0xfb2c('0x22')]][_0xfb2c('0x30')]>0x0){tiff2pdf(_0xc26bf5[_0xfb2c('0x2d')],'/var/opt/motion2/server/files/attachments/',function(_0x5899f5){logger[_0xfb2c('0x26')](_0xc26bf5['uniqueid'],_0xfb2c('0x34'),_0x5899f5['message']);attachment[_0xfb2c('0x35')]({'name':path[_0xfb2c('0x36')](_0xc26bf5[_0xfb2c('0x2d')])['name'],'basename':path[_0xfb2c('0x36')](_0xc26bf5[_0xfb2c('0x2d')])['name']+_0xfb2c('0x37'),'type':'application/pdf'})['then'](function(_0x3d3d48){faxAccount[_0xfb2c('0x38')](_0x341e1a,{'from':_0xc26bf5[_0xfb2c('0x33')],'mapKey':_0xfb2c('0x5'),'body':path['parse'](_0xc26bf5[_0xfb2c('0x2d')])[_0xfb2c('0x24')]+_0xfb2c('0x37'),'AttachmentId':_0x3d3d48['id']})[_0xfb2c('0x39')](function(_0x7cb374){logger[_0xfb2c('0x3a')](_0xc26bf5['uniqueid'],'\x20notify\x20',JSON[_0xfb2c('0x3b')](_0x7cb374));});})[_0xfb2c('0x39')](function(_0x154a21){logger[_0xfb2c('0x3a')](_0xc26bf5[_0xfb2c('0x22')],_0xfb2c('0x3c'),JSON[_0xfb2c('0x3b')](_0x154a21));});});}logger[_0xfb2c('0x26')](_0xc26bf5['uniqueid'],_0xfb2c('0x3c'));}};Fax[_0xfb2c('0x1a')][_0xfb2c('0x3d')]=function(_0xf30d35){if(this[_0xfb2c('0xc')][_0xf30d35[_0xfb2c('0x22')]]){_['merge'](this['channels'][_0xf30d35[_0xfb2c('0x22')]],_[_0xfb2c('0x3e')](_0xf30d35,[_0xfb2c('0x3f'),_0xfb2c('0x40')]));}};function updateStatus(_0x11e981){if(_0x11e981[_0xfb2c('0x41')]){faxMessage[_0xfb2c('0x42')](_0x11e981[_0xfb2c('0x41')],{'failMessage':'SENDING\x20FAILED\x20'})[_0xfb2c('0x43')](function(_0xf03554){ut[_0xfb2c('0x44')](_0xfb2c('0x45'),_0xf03554);})[_0xfb2c('0x39')](function(_0x298644){ut[_0xfb2c('0x44')](_0xfb2c('0x46'),_0x298644);});}else{ut[_0xfb2c('0x44')](_0xfb2c('0x47'));}}Fax[_0xfb2c('0x1a')][_0xfb2c('0x48')]=function(_0x5eebdb,_0x561ce4,_0x19e4e4){var _0x25baaf=this;var _0x321057={};if(_0x561ce4){_0x321057={'read':_0x561ce4};}else{_0x321057={'failMessage':_0x19e4e4};}if(this[_0xfb2c('0xc')][_0x5eebdb][_0xfb2c('0x41')]){faxMessage[_0xfb2c('0x42')](this[_0xfb2c('0xc')][_0x5eebdb][_0xfb2c('0x41')],_0x321057)[_0xfb2c('0x43')](function(_0x4bb669){ut[_0xfb2c('0x44')]('[Fax][Message][Updated]',_0x4bb669);})[_0xfb2c('0x39')](function(_0x3dd146){ut[_0xfb2c('0x44')](_0xfb2c('0x49'),_0x3dd146);})['finally'](function(){delete _0x25baaf[_0xfb2c('0x21')][_0x5eebdb];delete _0x25baaf[_0xfb2c('0xc')][_0x5eebdb];});}else{ut[_0xfb2c('0x44')]('[Fax][Message][NoUpdate2]');delete this[_0xfb2c('0x21')][_0x5eebdb];delete this[_0xfb2c('0xc')][_0x5eebdb];}};Fax[_0xfb2c('0x1a')][_0xfb2c('0x19')]=function(_0x3c7c8b){var _0xd52f64=this;if(this['channels'][_0x3c7c8b[_0xfb2c('0x22')]]){if(this[_0xfb2c('0xc')][_0x3c7c8b[_0xfb2c('0x22')]]){this[_0xfb2c('0x21')][_0x3c7c8b[_0xfb2c('0x22')]]['id']=this[_0xfb2c('0xc')][_0x3c7c8b[_0xfb2c('0x22')]]['id'];this[_0xfb2c('0x21')][_0x3c7c8b[_0xfb2c('0x22')]]['name']=this[_0xfb2c('0xc')][_0x3c7c8b['uniqueid']][_0xfb2c('0x24')];}logger['info'](_0x3c7c8b[_0xfb2c('0x22')],this['actions'][_0x3c7c8b['uniqueid']]?_0xfb2c('0x4a'):_0xfb2c('0x4b'),JSON['stringify'](this['channels'][_0x3c7c8b[_0xfb2c('0x22')]]));if(this[_0xfb2c('0xc')][_0x3c7c8b[_0xfb2c('0x22')]]){if(this[_0xfb2c('0x21')][_0x3c7c8b[_0xfb2c('0x22')]][_0xfb2c('0x4c')]>0x0&&this[_0xfb2c('0x21')][_0x3c7c8b[_0xfb2c('0x22')]][_0xfb2c('0x4d')]==='SUCCESS'){this['updateStatus'](_0x3c7c8b[_0xfb2c('0x22')],!![]);}else{this[_0xfb2c('0x48')](_0x3c7c8b[_0xfb2c('0x22')],![],this[_0xfb2c('0x21')][_0x3c7c8b[_0xfb2c('0x22')]][_0xfb2c('0x4e')]?'SENDING\x20FAILED:\x20'+this['channels'][_0x3c7c8b[_0xfb2c('0x22')]][_0xfb2c('0x4e')]:_0xfb2c('0x4f'));}}}};Fax[_0xfb2c('0x1a')][_0xfb2c('0x50')]=function(_0x4a5260){var _0x247ecd=this;return new BPromise(function(_0x420346,_0x3de897){_0x247ecd[_0xfb2c('0x51')](_0x4a5260,_0x247ecd[_0xfb2c('0xa')][_0x4a5260[_0xfb2c('0x52')]])[_0xfb2c('0x43')](function(_0x1859e5){ut[_0xfb2c('0x44')](_0xfb2c('0x53'),_0x1859e5);_0x420346(ut[_0xfb2c('0x54')](_0xfb2c('0x55')));})[_0xfb2c('0x39')](function(_0x514005){ut[_0xfb2c('0x44')]('[Fax][execOriginate][failure]',_0x514005);updateStatus(_0x4a5260);_0x3de897(ut[_0xfb2c('0x54')](_0xfb2c('0x56')));});});};Fax['prototype'][_0xfb2c('0x57')]=function(_0x60c6ba){var _0x18c49d=this;return new BPromise(function(_0x378ec6,_0x5325ef){var _0x5d1088=_0x18c49d['checkTrunk'](_0x18c49d[_0xfb2c('0xa')][_0x60c6ba['FaxAccountId']][_0xfb2c('0x58')],_0x60c6ba);if(_0x5d1088[_0xfb2c('0x59')]){_0x378ec6(ut[_0xfb2c('0x54')](_0xfb2c('0x5a')));}else{_0x5325ef(ut['message'](_0x5d1088['message']));}});};function originate(_0x26f164,_0x5bd9c6,_0x70cff5){return new BPromise(function(_0x4ff4fb,_0x2bb53d){if(_0x70cff5){var _0x78c89b=util['format']('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',path[_0xfb2c('0x36')](_0x26f164[_0xfb2c('0x5b')])[_0xfb2c('0x24')],_0x26f164[_0xfb2c('0x5b')]);gs['execute'](_0x78c89b)[_0xfb2c('0x43')](function(){_0x26f164[_0xfb2c('0x5b')]=util[_0xfb2c('0x5c')](_0xfb2c('0x5d'),path[_0xfb2c('0x36')](_0x26f164[_0xfb2c('0x5b')])[_0xfb2c('0x5e')],path[_0xfb2c('0x36')](_0x26f164[_0xfb2c('0x5b')])['name']);_0x5bd9c6['XMF-PATH']=_0x26f164[_0xfb2c('0x5b')];ut['logger'](_0xfb2c('0x5f'),'');ami[_0xfb2c('0x60')](ut[_0xfb2c('0x61')](_0x26f164,_0x5bd9c6))[_0xfb2c('0x43')](function(_0x2a798c){_0x4ff4fb(_0x2a798c);})[_0xfb2c('0x39')](function(_0x40a8f8){_0x2bb53d(_0x40a8f8);});})[_0xfb2c('0x39')](function(_0x7fb1a9){_0x2bb53d(_0x7fb1a9);});}else{ami[_0xfb2c('0x60')](ut[_0xfb2c('0x61')](_0x26f164,_0x5bd9c6))[_0xfb2c('0x43')](function(_0x3a9585){_0x4ff4fb(_0x3a9585);})[_0xfb2c('0x39')](function(_0x105e7f){_0x2bb53d(_0x105e7f);});}});}Fax['prototype']['execOriginate']=function(_0x43e31a,_0x480b91){var _0x290efd=this;return new BPromise(function(_0x2d8c27,_0x3c997e){var _0x598d35=uuid['v4']();var _0x4f7879=ut['addVariables'](_0x43e31a,_0x480b91);_0x290efd[_0xfb2c('0xc')][_0x598d35]=new Action(_0x598d35,_0x480b91,_0x43e31a);var _0x11b0bf=_0x290efd[_0xfb2c('0xc')][_0x598d35];if(path[_0xfb2c('0x36')](_0x43e31a['path'])[_0xfb2c('0x62')]==='.pdf'){originate(_0x11b0bf,_0x4f7879,!![])[_0xfb2c('0x43')](function(_0x146494){_0x2d8c27(_0x146494);})[_0xfb2c('0x39')](function(_0x4bdccc){_0x3c997e(_0x4bdccc);});}else{originate(_0x11b0bf,_0x4f7879,![])[_0xfb2c('0x43')](function(_0x86f523){_0x2d8c27(_0x86f523);})['catch'](function(_0x85dc53){_0x3c997e(_0x85dc53);});}});};Fax[_0xfb2c('0x1a')]['isTrunkReachable']=function(_0x21eff2){return!_[_0xfb2c('0x63')](_0x21eff2)&&!_[_0xfb2c('0x63')](_0x21eff2[_0xfb2c('0x24')])&&!_[_0xfb2c('0x63')](_0x21eff2[_0xfb2c('0x64')])&&_0x21eff2[_0xfb2c('0x64')]&&!_['isNil'](this[_0xfb2c('0xb')][util[_0xfb2c('0x5c')](_0xfb2c('0x65'),_0x21eff2['name'])])&&!_['isNil'](this['trunks'][util['format'](_0xfb2c('0x65'),_0x21eff2[_0xfb2c('0x24')])][_0xfb2c('0x2c')])&&(this[_0xfb2c('0xb')][util[_0xfb2c('0x5c')](_0xfb2c('0x65'),_0x21eff2[_0xfb2c('0x24')])]['status']===_0xfb2c('0x66')||this[_0xfb2c('0xb')][util['format']('SIP/%s',_0x21eff2[_0xfb2c('0x24')])][_0xfb2c('0x2c')]==='unmonitored');};Fax[_0xfb2c('0x1a')][_0xfb2c('0x67')]=function(_0x29f476,_0x4a724d){if(!this['isTrunkReachable'](_0x29f476)){ut[_0xfb2c('0x44')](_0xfb2c('0x68'),_[_0xfb2c('0x63')](_0x29f476)?'':_0x29f476[_0xfb2c('0x24')]+_0xfb2c('0x69'));return{'isValid':![],'message':_0xfb2c('0x6a')};}if(_[_0xfb2c('0x63')](_0x4a724d[_0xfb2c('0x5')])){ut[_0xfb2c('0x44')](_0xfb2c('0x6b'),JSON[_0xfb2c('0x3b')](_0x4a724d));return{'isValid':![],'message':_0xfb2c('0x6c')};}if(_[_0xfb2c('0x63')](_0x4a724d['path'])){ut['logger']('[Fax][checkTrunk][Empty\x20path]',JSON[_0xfb2c('0x3b')](_0x4a724d));return{'isValid':![],'message':_0xfb2c('0x6d')};}return{'isValid':!![],'message':_0xfb2c('0x6e')};};module[_0xfb2c('0x6f')]=Fax;