-'use strict';
-
-var _ = require('lodash');
-var fs = require('fs');
-var path = require('path');
-var uploadFile = require('upload-file');
-var uuidLib = require('node-uuid');
-var pdf = require('html-pdf');
-var spindrift = require('spindrift');
-var formidable = require('formidable');
-var exec = require('child_process').exec;
-var config = require('../../config/environment');
-
-var FaxMessage = require('../../models').FaxMessage;
-var FaxRoom = require('../../models').FaxRoom;
-var FaxAccount = require('../../models').FaxAccount;
-var Contact = require('../../models').Contact;
-
-// Get list of fax_messages
-exports.index = function(req, res) {
- FaxMessage
- .findAll({
- where: req.query,
- order: 'createdAt DESC',
- include: [{
- model: Contact,
- as: 'From'
- }, {
- model: Contact,
- as: 'To'
- }, {
- model: FaxRoom,
- include: [{
- model: FaxAccount
- }]
- }]
- })
- .then(function(fax_messages) {
- return res.status(200).send(fax_messages);
- })
- .catch(function(err) {
- return handleError(res, err);
- });
-};
-
-// Get a single fax_message
-exports.show = function(req, res) {
- FaxMessage
- .findOne({
- where: {
- id: req.params.id
- },
- include: [{
- model: Contact,
- as: 'From'
- }, {
- model: Contact,
- as: 'To'
- }]
- })
- .then(function(fax_message) {
- if (!fax_message) {
- return res.sendStatus(404);
- }
- return res.send(fax_message);
- })
- .catch(function(err) {
- return handleError(res, err);
- });
-};
-
-// Creates a new fax_message in the DB.
-exports.create = function(req, res, next) {
- // FaxMessage
- // .create(req.body)
- // .then(function(fax_message) {
- // return res.status(201).send(fax_message);
- // })
- // .catch(function(err) {
- // return handleError(res, err);
- // });
-
- var form = new formidable.IncomingForm();
- // form.encoding = 'utf-8';
- form.uploadDir = path.join(config.root, 'server/files/fax/outbound/original');
- form.keepExtensions = true;
- form.multiples = false;
-
- if (req.body.onlyText) {
- //There is not file, only text
- // console.log(req.body);
- if (req.body.html) {
- //There is the html message -> convert
- var uuid = uuidLib.v4()
- var dest = path.join(config.root, 'server/files/fax/outbound/original', uuid + '.pdf');
- pdf.create(req.body.html, {
- "timeout": 30000
- }).toFile(dest, function(err, result) {
- console.log('Fax: HTML Converted');
- convertPdfAndSendFax(req, res, uuid, req.body);
- });
- }
- } else {
- form.parse(req, function(err, fields, files) {
- if (err) {
- return handleError(res, err);
- }
-
- if (fields.html) {
- //There is HTML with PDF
- var uuid = uuidLib.v4();
- var dest = path.join(config.root, 'server/files/fax/outbound/original', uuid + '.pdf');
- pdf.create(fields.html, {
- "timeout": 30000
- }).toFile(dest, function(err, result) {
- console.log('Fax: HTML Converted');
- var pdfHTML = spindrift(result.filename);
- var pdfUploaded = spindrift(files.file.path);
- var uuid = uuidLib.v4();
- spindrift.join(pdfHTML, pdfUploaded).pdfStream().pipe(fs.createWriteStream(path.join(config.root, 'server/files/fax/outbound/original', uuid + '.pdf')));
- console.log('Fax: HTML joined with PDF uploaded');
- convertPdfAndSendFax(req, res, uuid, fields);
- });
- } else {
- //There is only PDF
- var uuid = uuidLib.v4();
- var dest = path.join(config.root, 'server/files/fax/outbound/original', uuid + '.pdf');
- fs.rename(files.file.path, dest, function(err) {
- if (err) {
- console.error(err);
- return handleError(res, req);
- // return next(err);
- }
- console.log('Fax: PDF Rename');
- convertPdfAndSendFax(req, res, uuid, fields);
- });
- }
-
- });
- }
-};
-
-function convertPdfAndSendFax(req, res, filenameInput, fields) {
- var inputPath = path.join(config.root, 'server', 'files', 'fax', 'outbound', 'original', filenameInput + '.pdf');
- var resultPath = path.join(config.root, 'server', 'files', 'fax', 'outbound', 'converted', filenameInput + '.tif');
- var command = 'gs' + ' -q -dNOPAUSE -dBATCH -sDEVICE=tiffg4 ' + '-sPAPERSIZE=letter -sOutputFile=' + resultPath + ' ' + inputPath;
- // console.log(inputPath, resultPath, command);
-
- var uuidFax = uuidLib.v4();
- FaxAccount
- .findById(fields.accountId)
- .then(function(faxAccount) {
- // console.log('FaxAccount', faxAccount);
-
- if (faxAccount) {
- var faxBody = {
- technology: 'SIP',
- to: fields.toNum,
- from: faxAccount.phone,
- fax_file: resultPath,
- fax_header: faxAccount.faxheader,
- fax_localid: faxAccount.localid,
- maxrate: faxAccount.maxrate,
- minrate: faxAccount.minrate,
- ecm: faxAccount.ecm,
- uuid: uuidFax,
- trunk: {
- id: faxAccount.TrunkId
- }
- };
-
- fs.exists(inputPath, function(exists) {
- if (!exists) {
- // console.log('File not exist');
- handleError(res, new Error('File not exists'));
- } else {
- exec(command, function(err) {
- if (err) {
- console.error(err);
- handleError(res, err);
- } else {
- console.log('Fax: PDF converted to TIFF');
- fs.chmod(resultPath, 511, function(err) {
- if (fields.roomId) {
- // Room already exists -> create new message and associate
- FaxRoom
- .findOrCreate({
- where: {
- id: fields.roomId
- },
- defaults: {}
- })
- .spread(function(faxRoom, created) {
- // TODO Verify if we have to manage also the created
- FaxMessage
- .create({
- status: 'NOT SENT',
- read: true,
- filenamePDF: filenameInput + '.pdf',
- filename: filenameInput + '.tif',
- body: JSON.stringify(faxBody),
- uuid: uuidFax,
- FaxRoomId: faxRoom.id
- })
- .then(function(faxMessage) {
- // Fax message created, now association
- Contact
- .findOrCreate({
- where: {
- phone: faxBody.from
- },
- defaults: {
- phone: faxBody.from,
- fullname: faxBody.from
- }
- })
- .spread(function(contact, created) {
- // console.log('Set relationship with from', created);
- faxMessage.setFrom(contact);
- });
-
- Contact
- .findOrCreate({
- where: {
- phone: faxBody.to
- },
- defaults: {
- phone: faxBody.to,
- fullname: faxBody.to
- }
- })
- .spread(function(contact, created) {
- // console.log('Set relationship with to', created);
- faxMessage.setTo(contact);
- });
-
- return res.status(200).send(faxMessage);
- })
- .catch(function(err) {
- handleError(res, err);
- // console.error(err);
- // next(err);
- });
- });
- } else {
- // Room not exists -> create room, message and associate
- FaxRoom
- .create({
- status: 'OPEN',
- from: fields.toNum,
- FaxAccountId: fields.accountId,
- UserId: fields.userId
- })
- .then(function(faxRoom) {
- // Room created, now message
- FaxMessage
- .create({
- status: 'NOT SENT',
- read: true,
- filenamePDF: filenameInput + '.pdf',
- filename: filenameInput + '.tif',
- body: JSON.stringify(faxBody),
- uuid: uuidFax,
- FaxRoomId: faxRoom.id
- })
- .then(function(faxMessage) {
- // Fax message created, now association
-
- Contact
- .findOrCreate({
- where: {
- phone: faxBody.from
- },
- defaults: {
- phone: faxBody.from,
- fullname: faxBody.from
- }
- })
- .spread(function(contact, created) {
- faxMessage.setFrom(contact);
- });
-
- Contact
- .findOrCreate({
- where: {
- phone: faxBody.to
- },
- defaults: {
- phone: faxBody.to,
- fullname: faxBody.to
- }
- })
- .spread(function(contact, created) {
- faxMessage.setTo(contact);
- });
-
- return res.status(200).send(
- faxMessage);
- })
- .catch(function(err) {
- handleError(res, err);
- });
- })
- .catch(function(err) {
- handleError(res, err);
- });
- }
- });
- }
- });
- }
- });
- }
- });
-}
-
-// Updates an existing fax_message in the DB.
-exports.update = function(req, res) {
- if (req.body.id) {
- delete req.body.id;
- }
- FaxMessage
- .findOne({
- where: {
- id: req.params.id
- },
- include: [{
- model: Contact,
- as: 'From'
- }, {
- model: Contact,
- as: 'To'
- }]
- })
- .then(function(fax_message) {
- if (!fax_message) {
- return res.sendStatus(404);
- }
- var updated = _.merge(fax_message, req.body);
- updated.save()
- .then(function() {
- return res.status(200).send(fax_message);
- })
- .catch(function(err) {
- return handleError(res, err);
- });
- })
- .catch(function(err) {
- return handleError(res, err);
- });
-};
-
-// Deletes a fax_message from the DB.
-exports.destroy = function(req, res) {
- FaxMessage
- .find({
- where: {
- id: req.params.id
- }
- })
- .then(function(fax_message) {
- if (!fax_message) {
- return res.sendStatus(404);
- }
- fax_message.destroy()
- .then(function() {
- return res.sendStatus(204);
- })
- .catch(function(err) {
- return handleError(res, err);
- });
- })
- .catch(function(err) {
- return handleError(res, err);
- });
-};
-
-exports.getContentFromMessage = function(req, res) {
-
- FaxMessage
- .findById(req.params.id)
- .then(function(fax_message) {
-
- // console.log(fax_message);
-
- if (!fax_message) {
- return res.sendStatus(404);
- }
-
- if (fax_message.filenamePDF) {
-
- if (fax_message.status === 'RECEIVED') {
- var pdfPath = path.join(config.root, 'server', 'files', 'fax', 'inbound', fax_message.filenamePDF);
- fs.exists(pdfPath, function(exists) {
- if (exists)
- return res.sendFile(pdfPath);
- else
- return res.sendStatus(404);
- });
- } else if (fax_message.status === 'NOT SENT' || fax_message.directory ===
- 'SENT' || fax_message.status === 'FAILED') {
- var pdfPath = path.join(config.root, 'server', 'files', 'fax', 'outbound', 'original', fax_message.filenamePDF);
- fs.exists(pdfPath, function(exists) {
- if (exists)
- return res.sendFile(pdfPath);
- else
- return res.sendStatus(404);
- });
- }
- } else {
- res.sendStatus(404);
- }
-
- })
- .catch(function(err) {
- return handleError(res, err);
- });
-};
-
-function handleError(res, err) {
- return res.status(500).send(err);
-}
+var _0xc4ec=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x66\x73","\x70\x61\x74\x68","\x75\x70\x6C\x6F\x61\x64\x2D\x66\x69\x6C\x65","\x6E\x6F\x64\x65\x2D\x75\x75\x69\x64","\x68\x74\x6D\x6C\x2D\x70\x64\x66","\x73\x70\x69\x6E\x64\x72\x69\x66\x74","\x66\x6F\x72\x6D\x69\x64\x61\x62\x6C\x65","\x65\x78\x65\x63","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x61\x78\x52\x6F\x6F\x6D","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x44\x45\x53\x43","\x46\x72\x6F\x6D","\x54\x6F","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x63\x72\x65\x61\x74\x65","\x75\x70\x6C\x6F\x61\x64\x44\x69\x72","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x66\x61\x78\x2F\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2F\x6F\x72\x69\x67\x69\x6E\x61\x6C","\x6A\x6F\x69\x6E","\x6B\x65\x65\x70\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x6D\x75\x6C\x74\x69\x70\x6C\x65\x73","\x6F\x6E\x6C\x79\x54\x65\x78\x74","\x62\x6F\x64\x79","\x68\x74\x6D\x6C","\x76\x34","\x2E\x70\x64\x66","\x46\x61\x78\x3A\x20\x48\x54\x4D\x4C\x20\x43\x6F\x6E\x76\x65\x72\x74\x65\x64","\x6C\x6F\x67","\x74\x6F\x46\x69\x6C\x65","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x66\x69\x6C\x65","\x63\x72\x65\x61\x74\x65\x57\x72\x69\x74\x65\x53\x74\x72\x65\x61\x6D","\x70\x69\x70\x65","\x70\x64\x66\x53\x74\x72\x65\x61\x6D","\x46\x61\x78\x3A\x20\x48\x54\x4D\x4C\x20\x6A\x6F\x69\x6E\x65\x64\x20\x77\x69\x74\x68\x20\x50\x44\x46\x20\x75\x70\x6C\x6F\x61\x64\x65\x64","\x65\x72\x72\x6F\x72","\x46\x61\x78\x3A\x20\x50\x44\x46\x20\x52\x65\x6E\x61\x6D\x65","\x72\x65\x6E\x61\x6D\x65","\x70\x61\x72\x73\x65","\x73\x65\x72\x76\x65\x72","\x66\x69\x6C\x65\x73","\x66\x61\x78","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x6F\x72\x69\x67\x69\x6E\x61\x6C","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64","\x2E\x74\x69\x66","\x67\x73","\x20\x2D\x71\x20\x2D\x64\x4E\x4F\x50\x41\x55\x53\x45\x20\x2D\x64\x42\x41\x54\x43\x48\x20\x2D\x73\x44\x45\x56\x49\x43\x45\x3D\x74\x69\x66\x66\x67\x34\x20","\x2D\x73\x50\x41\x50\x45\x52\x53\x49\x5A\x45\x3D\x6C\x65\x74\x74\x65\x72\x20\x2D\x73\x4F\x75\x74\x70\x75\x74\x46\x69\x6C\x65\x3D","\x20","\x53\x49\x50","\x74\x6F\x4E\x75\x6D","\x70\x68\x6F\x6E\x65","\x66\x61\x78\x68\x65\x61\x64\x65\x72","\x6C\x6F\x63\x61\x6C\x69\x64","\x6D\x61\x78\x72\x61\x74\x65","\x6D\x69\x6E\x72\x61\x74\x65","\x65\x63\x6D","\x54\x72\x75\x6E\x6B\x49\x64","\x46\x69\x6C\x65\x20\x6E\x6F\x74\x20\x65\x78\x69\x73\x74\x73","\x46\x61\x78\x3A\x20\x50\x44\x46\x20\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x20\x74\x6F\x20\x54\x49\x46\x46","\x72\x6F\x6F\x6D\x49\x64","\x73\x65\x74\x46\x72\x6F\x6D","\x73\x70\x72\x65\x61\x64","\x66\x72\x6F\x6D","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x73\x65\x74\x54\x6F","\x74\x6F","\x4E\x4F\x54\x20\x53\x45\x4E\x54","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x4F\x50\x45\x4E","\x61\x63\x63\x6F\x75\x6E\x74\x49\x64","\x75\x73\x65\x72\x49\x64","\x63\x68\x6D\x6F\x64","\x65\x78\x69\x73\x74\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x66\x69\x6E\x64","\x67\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x46\x72\x6F\x6D\x4D\x65\x73\x73\x61\x67\x65","\x66\x69\x6C\x65\x6E\x61\x6D\x65\x50\x44\x46","\x52\x45\x43\x45\x49\x56\x45\x44","\x69\x6E\x62\x6F\x75\x6E\x64","\x73\x65\x6E\x64\x46\x69\x6C\x65","\x64\x69\x72\x65\x63\x74\x6F\x72\x79","\x53\x45\x4E\x54","\x46\x41\x49\x4C\x45\x44"];_0xc4ec[0];var _=require(_0xc4ec[1]);var fs=require(_0xc4ec[2]);var path=require(_0xc4ec[3]);var uploadFile=require(_0xc4ec[4]);var uuidLib=require(_0xc4ec[5]);var pdf=require(_0xc4ec[6]);var spindrift=require(_0xc4ec[7]);var formidable=require(_0xc4ec[8]);var exec=require(_0xc4ec[10])[_0xc4ec[9]];var config=require(_0xc4ec[11]);var FaxMessage=require(_0xc4ec[13])[_0xc4ec[12]];var FaxRoom=require(_0xc4ec[13])[_0xc4ec[14]];var FaxAccount=require(_0xc4ec[13])[_0xc4ec[15]];var Contact=require(_0xc4ec[13])[_0xc4ec[16]];exports[_0xc4ec[17]]=function(_0xf221xf,_0xf221x10){FaxMessage[_0xc4ec[26]]({where:_0xf221xf[_0xc4ec[22]],order:_0xc4ec[23],include:[{model:Contact,as:_0xc4ec[24]},{model:Contact,as:_0xc4ec[25]},{model:FaxRoom,include:[{model:FaxAccount}]}]})[_0xc4ec[21]](function(_0xf221x12){return _0xf221x10[_0xc4ec[20]](200)[_0xc4ec[19]](_0xf221x12)})[_0xc4ec[18]](function(_0xf221x11){return handleError(_0xf221x10,_0xf221x11)})};exports[_0xc4ec[27]]=function(_0xf221xf,_0xf221x10){FaxMessage[_0xc4ec[31]]({where:{id:_0xf221xf[_0xc4ec[30]][_0xc4ec[29]]},include:[{model:Contact,as:_0xc4ec[24]},{model:Contact,as:_0xc4ec[25]}]})[_0xc4ec[21]](function(_0xf221x13){if(!_0xf221x13){return _0xf221x10[_0xc4ec[28]](404)};return _0xf221x10[_0xc4ec[19]](_0xf221x13);})[_0xc4ec[18]](function(_0xf221x11){return handleError(_0xf221x10,_0xf221x11)})};exports[_0xc4ec[32]]=function(_0xf221xf,_0xf221x10,_0xf221x14){var _0xf221x15= new formidable.IncomingForm();_0xf221x15[_0xc4ec[33]]=path[_0xc4ec[36]](config[_0xc4ec[34]],_0xc4ec[35]);_0xf221x15[_0xc4ec[37]]=true;_0xf221x15[_0xc4ec[38]]=false;if(_0xf221xf[_0xc4ec[40]][_0xc4ec[39]]){if(_0xf221xf[_0xc4ec[40]][_0xc4ec[41]]){var _0xf221x16=uuidLib[_0xc4ec[42]]();var _0xf221x17=path[_0xc4ec[36]](config[_0xc4ec[34]],_0xc4ec[35],_0xf221x16+_0xc4ec[43]);pdf[_0xc4ec[32]](_0xf221xf[_0xc4ec[40]][_0xc4ec[41]],{"\x74\x69\x6D\x65\x6F\x75\x74":30000})[_0xc4ec[46]](_0xf221x17,function(_0xf221x11,_0xf221x18){console[_0xc4ec[45]](_0xc4ec[44]);convertPdfAndSendFax(_0xf221xf,_0xf221x10,_0xf221x16,_0xf221xf[_0xc4ec[40]]);});}}else {_0xf221x15[_0xc4ec[56]](_0xf221xf,function(_0xf221x11,_0xf221x19,_0xf221x1a){if(_0xf221x11){return handleError(_0xf221x10,_0xf221x11)};if(_0xf221x19[_0xc4ec[41]]){var _0xf221x16=uuidLib[_0xc4ec[42]]();var _0xf221x17=path[_0xc4ec[36]](config[_0xc4ec[34]],_0xc4ec[35],_0xf221x16+_0xc4ec[43]);pdf[_0xc4ec[32]](_0xf221x19[_0xc4ec[41]],{"\x74\x69\x6D\x65\x6F\x75\x74":30000})[_0xc4ec[46]](_0xf221x17,function(_0xf221x11,_0xf221x18){console[_0xc4ec[45]](_0xc4ec[44]);var _0xf221x1b=spindrift(_0xf221x18[_0xc4ec[47]]);var _0xf221x1c=spindrift(_0xf221x1a[_0xc4ec[48]][_0xc4ec[3]]);var _0xf221x16=uuidLib[_0xc4ec[42]]();spindrift[_0xc4ec[36]](_0xf221x1b,_0xf221x1c)[_0xc4ec[51]]()[_0xc4ec[50]](fs[_0xc4ec[49]](path[_0xc4ec[36]](config[_0xc4ec[34]],_0xc4ec[35],_0xf221x16+_0xc4ec[43])));console[_0xc4ec[45]](_0xc4ec[52]);convertPdfAndSendFax(_0xf221xf,_0xf221x10,_0xf221x16,_0xf221x19);});}else {var _0xf221x16=uuidLib[_0xc4ec[42]]();var _0xf221x17=path[_0xc4ec[36]](config[_0xc4ec[34]],_0xc4ec[35],_0xf221x16+_0xc4ec[43]);fs[_0xc4ec[55]](_0xf221x1a[_0xc4ec[48]][_0xc4ec[3]],_0xf221x17,function(_0xf221x11){if(_0xf221x11){console[_0xc4ec[53]](_0xf221x11);return handleError(_0xf221x10,_0xf221xf);};console[_0xc4ec[45]](_0xc4ec[54]);convertPdfAndSendFax(_0xf221xf,_0xf221x10,_0xf221x16,_0xf221x19);});};})};};function convertPdfAndSendFax(_0xf221xf,_0xf221x10,_0xf221x1e,_0xf221x19){var _0xf221x1f=path[_0xc4ec[36]](config[_0xc4ec[34]],_0xc4ec[57],_0xc4ec[58],_0xc4ec[59],_0xc4ec[60],_0xc4ec[61],_0xf221x1e+_0xc4ec[43]);var _0xf221x20=path[_0xc4ec[36]](config[_0xc4ec[34]],_0xc4ec[57],_0xc4ec[58],_0xc4ec[59],_0xc4ec[60],_0xc4ec[62],_0xf221x1e+_0xc4ec[63]);var _0xf221x21=_0xc4ec[64]+_0xc4ec[65]+_0xc4ec[66]+_0xf221x20+_0xc4ec[67]+_0xf221x1f;var _0xf221x22=uuidLib[_0xc4ec[42]]();FaxAccount[_0xc4ec[93]](_0xf221x19[_0xc4ec[89]])[_0xc4ec[21]](function(_0xf221x23){if(_0xf221x23){var _0xf221x24={technology:_0xc4ec[68],to:_0xf221x19[_0xc4ec[69]],from:_0xf221x23[_0xc4ec[70]],fax_file:_0xf221x20,fax_header:_0xf221x23[_0xc4ec[71]],fax_localid:_0xf221x23[_0xc4ec[72]],maxrate:_0xf221x23[_0xc4ec[73]],minrate:_0xf221x23[_0xc4ec[74]],ecm:_0xf221x23[_0xc4ec[75]],uuid:_0xf221x22,trunk:{id:_0xf221x23[_0xc4ec[76]]}};fs[_0xc4ec[92]](_0xf221x1f,function(_0xf221x25){if(!_0xf221x25){handleError(_0xf221x10, new Error(_0xc4ec[77]))}else {exec(_0xf221x21,function(_0xf221x11){if(_0xf221x11){console[_0xc4ec[53]](_0xf221x11);handleError(_0xf221x10,_0xf221x11);}else {console[_0xc4ec[45]](_0xc4ec[78]);fs[_0xc4ec[91]](_0xf221x20,511,function(_0xf221x11){if(_0xf221x19[_0xc4ec[79]]){FaxRoom[_0xc4ec[83]]({where:{id:_0xf221x19[_0xc4ec[79]]},defaults:{}})[_0xc4ec[81]](function(_0xf221x26,_0xf221x27){FaxMessage[_0xc4ec[32]]({status:_0xc4ec[86],read:true,filenamePDF:_0xf221x1e+_0xc4ec[43],filename:_0xf221x1e+_0xc4ec[63],body:JSON[_0xc4ec[87]](_0xf221x24),uuid:_0xf221x22,FaxRoomId:_0xf221x26[_0xc4ec[29]]})[_0xc4ec[21]](function(_0xf221x28){Contact[_0xc4ec[83]]({where:{phone:_0xf221x24[_0xc4ec[82]]},defaults:{phone:_0xf221x24[_0xc4ec[82]],fullname:_0xf221x24[_0xc4ec[82]]}})[_0xc4ec[81]](function(_0xf221x29,_0xf221x27){_0xf221x28[_0xc4ec[80]](_0xf221x29)});Contact[_0xc4ec[83]]({where:{phone:_0xf221x24[_0xc4ec[85]]},defaults:{phone:_0xf221x24[_0xc4ec[85]],fullname:_0xf221x24[_0xc4ec[85]]}})[_0xc4ec[81]](function(_0xf221x29,_0xf221x27){_0xf221x28[_0xc4ec[84]](_0xf221x29)});return _0xf221x10[_0xc4ec[20]](200)[_0xc4ec[19]](_0xf221x28);})[_0xc4ec[18]](function(_0xf221x11){handleError(_0xf221x10,_0xf221x11)})})}else {FaxRoom[_0xc4ec[32]]({status:_0xc4ec[88],from:_0xf221x19[_0xc4ec[69]],FaxAccountId:_0xf221x19[_0xc4ec[89]],UserId:_0xf221x19[_0xc4ec[90]]})[_0xc4ec[21]](function(_0xf221x26){FaxMessage[_0xc4ec[32]]({status:_0xc4ec[86],read:true,filenamePDF:_0xf221x1e+_0xc4ec[43],filename:_0xf221x1e+_0xc4ec[63],body:JSON[_0xc4ec[87]](_0xf221x24),uuid:_0xf221x22,FaxRoomId:_0xf221x26[_0xc4ec[29]]})[_0xc4ec[21]](function(_0xf221x28){Contact[_0xc4ec[83]]({where:{phone:_0xf221x24[_0xc4ec[82]]},defaults:{phone:_0xf221x24[_0xc4ec[82]],fullname:_0xf221x24[_0xc4ec[82]]}})[_0xc4ec[81]](function(_0xf221x29,_0xf221x27){_0xf221x28[_0xc4ec[80]](_0xf221x29)});Contact[_0xc4ec[83]]({where:{phone:_0xf221x24[_0xc4ec[85]]},defaults:{phone:_0xf221x24[_0xc4ec[85]],fullname:_0xf221x24[_0xc4ec[85]]}})[_0xc4ec[81]](function(_0xf221x29,_0xf221x27){_0xf221x28[_0xc4ec[84]](_0xf221x29)});return _0xf221x10[_0xc4ec[20]](200)[_0xc4ec[19]](_0xf221x28);})[_0xc4ec[18]](function(_0xf221x11){handleError(_0xf221x10,_0xf221x11)})})[_0xc4ec[18]](function(_0xf221x11){handleError(_0xf221x10,_0xf221x11)})}});}})}});}});}exports[_0xc4ec[94]]=function(_0xf221xf,_0xf221x10){if(_0xf221xf[_0xc4ec[40]][_0xc4ec[29]]){delete _0xf221xf[_0xc4ec[40]][_0xc4ec[29]]};FaxMessage[_0xc4ec[31]]({where:{id:_0xf221xf[_0xc4ec[30]][_0xc4ec[29]]},include:[{model:Contact,as:_0xc4ec[24]},{model:Contact,as:_0xc4ec[25]}]})[_0xc4ec[21]](function(_0xf221x13){if(!_0xf221x13){return _0xf221x10[_0xc4ec[28]](404)};var _0xf221x2a=_[_0xc4ec[95]](_0xf221x13,_0xf221xf[_0xc4ec[40]]);_0xf221x2a[_0xc4ec[96]]()[_0xc4ec[21]](function(){return _0xf221x10[_0xc4ec[20]](200)[_0xc4ec[19]](_0xf221x13)})[_0xc4ec[18]](function(_0xf221x11){return handleError(_0xf221x10,_0xf221x11)});})[_0xc4ec[18]](function(_0xf221x11){return handleError(_0xf221x10,_0xf221x11)});};exports[_0xc4ec[97]]=function(_0xf221xf,_0xf221x10){FaxMessage[_0xc4ec[98]]({where:{id:_0xf221xf[_0xc4ec[30]][_0xc4ec[29]]}})[_0xc4ec[21]](function(_0xf221x13){if(!_0xf221x13){return _0xf221x10[_0xc4ec[28]](404)};_0xf221x13[_0xc4ec[97]]()[_0xc4ec[21]](function(){return _0xf221x10[_0xc4ec[28]](204)})[_0xc4ec[18]](function(_0xf221x11){return handleError(_0xf221x10,_0xf221x11)});})[_0xc4ec[18]](function(_0xf221x11){return handleError(_0xf221x10,_0xf221x11)})};exports[_0xc4ec[99]]=function(_0xf221xf,_0xf221x10){FaxMessage[_0xc4ec[93]](_0xf221xf[_0xc4ec[30]][_0xc4ec[29]])[_0xc4ec[21]](function(_0xf221x13){if(!_0xf221x13){return _0xf221x10[_0xc4ec[28]](404)};if(_0xf221x13[_0xc4ec[100]]){if(_0xf221x13[_0xc4ec[20]]===_0xc4ec[101]){var _0xf221x2b=path[_0xc4ec[36]](config[_0xc4ec[34]],_0xc4ec[57],_0xc4ec[58],_0xc4ec[59],_0xc4ec[102],_0xf221x13[_0xc4ec[100]]);fs[_0xc4ec[92]](_0xf221x2b,function(_0xf221x25){if(_0xf221x25){return _0xf221x10[_0xc4ec[103]](_0xf221x2b)}else {return _0xf221x10[_0xc4ec[28]](404)}});}else {if(_0xf221x13[_0xc4ec[20]]===_0xc4ec[86]||_0xf221x13[_0xc4ec[104]]===_0xc4ec[105]||_0xf221x13[_0xc4ec[20]]===_0xc4ec[106]){var _0xf221x2b=path[_0xc4ec[36]](config[_0xc4ec[34]],_0xc4ec[57],_0xc4ec[58],_0xc4ec[59],_0xc4ec[60],_0xc4ec[61],_0xf221x13[_0xc4ec[100]]);fs[_0xc4ec[92]](_0xf221x2b,function(_0xf221x25){if(_0xf221x25){return _0xf221x10[_0xc4ec[103]](_0xf221x2b)}else {return _0xf221x10[_0xc4ec[28]](404)}});}}}else {_0xf221x10[_0xc4ec[28]](404)};})[_0xc4ec[18]](function(_0xf221x11){return handleError(_0xf221x10,_0xf221x11)})};function handleError(_0xf221x10,_0xf221x11){return _0xf221x10[_0xc4ec[20]](500)[_0xc4ec[19]](_0xf221x11)}
\ No newline at end of file