2 * Main application file
7 // Set default node environment to development
8 process.env.NODE_ENV = process.env.NODE_ENV || 'development';
9 process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0;
11 process.on('uncaughtException', function(err) {
12 // console.log('Caught exception: ' + err);
14 if (typeof err === 'object') {
16 console.log('\nMessage: ' + err.message)
19 console.log('\nStacktrace:')
20 console.log('====================')
21 console.log(err.stack);
24 console.log('dumpError :: argument is not an object');
30 var _ = require('lodash');
31 var os = require('os');
32 var http = require('http');
33 var util = require('util');
34 var crypto = require('crypto');
36 var express = require('express');
37 var models = require('./models');
38 var config = require('./config/environment');
40 var Setting = models.Setting;
44 var server = require('http').createServer(app);
45 var io = require('socket.io')(server, {
46 serveClient: (config.env === 'production') ? false : true,
47 path: '/socket.io-client'
50 var ami = require('asterisk-manager')('5038', '185.43.210.57', 'xcall', 'xcall1234', true);
54 var kue = require('kue');
57 var cronjob = require('cron').CronJob;
59 require('./config/express')(app);
60 require('./routes')(app);
62 // Connect to database
68 // Populate DB with sample data
70 require('./config/seed');
73 // Start Cally Square Projects
74 require('./config/socketio')(io);
75 require('./config/kue.mail')(kue);
76 require('./config/kue.chat')(kue);
77 require('./config/kue.fax')(io, kue);
78 require('./config/automations/mail')();
79 require('./config/automations/fax')();
80 require('./config/triggers/mail')();
81 require('./config/imap')();
82 require('./config/ami')(ami);
83 require('./config/agi')();
84 require('./config/autodialer')(ami);
85 require('./config/integration')(io, ami);
88 server.listen(config.port, config.ip, function() {
89 console.log('Express server listening on %d, in %s mode', config.port, app.get('env'));
91 // var netw0= os.networkInterfaces();
94 // for (var networkInterface in networkInterfaces) {
95 // if (networkInterfaces.hasOwnProperty(networkInterface)) {
97 // var addresses = networkInterfaces[networkInterface];
99 // for (var address in addresses) {
100 // if (addresses.hasOwnProperty(address)) {
101 // if (config.ip === addresses[address].address) {
102 // myConf = addresses[address];
110 // var postData = querystring.stringify(myConf);
113 // hostname: '192.168.2.133',
115 // path: '/api/servers',
118 // 'Content-Type': 'application/x-www-form-urlencoded',
119 // 'Content-Length': postData.length
123 // var req = http.request(options, function(res) {
124 // console.log('STATUS: ' + res.statusCode);
125 // console.log('HEADERS: ' + JSON.stringify(res.headers));
126 // res.setEncoding('utf8');
127 // res.on('data', function(chunk) {
128 // console.log('BODY: ' + chunk);
133 // license: JSON.parse(chunk).license,
134 // address: myConf.address,
135 // netmask: myConf.netmask,
138 // .then(function(setting) {
139 // console.log(setting);
141 // .catch(function(err) {
142 // console.error(err);
146 // res.on('end', function() {
147 // console.log('No more data in response.')
151 // req.on('error', function(e) {
152 // console.log('problem with request: ' + e.message);
155 // // write data to request body
156 // req.write(postData);
160 .catch(function(err) {
164 // Connect to database history
169 require('./config/history')(cronjob);
171 .catch(function(err) {
176 exports = module.exports = app;