Added SMS debug.
Ylian Saint-Hilaire committed
Sep 2, 2022 at 15:06 UTC
2045ebc110e99419ef232bba8409c4d47ec5c29a
1 file changed
+26
-18
meshsms.js
+26
-18
@@ -80,10 +80,12 @@ module.exports.CreateMeshSMS = function (parent) {
80
}
81
case 'url': {
82
// Validate URL configuration values
83
- if (typeof parent.config.sms.url != 'string') { console.log('Invalid or missing SMS gateway URL value.'); return null; }
84
- if (!parent.config.sms.url.toLowerCase().startsWith('http://') && !parent.config.sms.url.toLowerCase().startsWith('https://')) { console.log('Invalid or missing SMS gateway, URL must start with http:// or https://.'); return null; }
85
- if (parent.config.sms.url.indexOf('{{message}}') == -1) { console.log('Invalid or missing SMS gateway, URL must include {{message}}.'); return null; }
86
- if (parent.config.sms.url.indexOf('{{phone}}') == -1) { console.log('Invalid or missing SMS gateway, URL must include {{phone}}.'); return null; }
83
+ if (parent.config.sms.url != 'console') {
84
+ if (typeof parent.config.sms.url != 'string') { console.log('Invalid or missing SMS gateway URL value.'); return null; }
85
+ if (!parent.config.sms.url.toLowerCase().startsWith('http://') && !parent.config.sms.url.toLowerCase().startsWith('https://')) { console.log('Invalid or missing SMS gateway, URL must start with http:// or https://.'); return null; }
86
+ if (parent.config.sms.url.indexOf('{{message}}') == -1) { console.log('Invalid or missing SMS gateway, URL must include {{message}}.'); return null; }
87
+ if (parent.config.sms.url.indexOf('{{phone}}') == -1) { console.log('Invalid or missing SMS gateway, URL must include {{phone}}.'); return null; }
88
+ }
89
break;
90
}
91
default: {
@@ -132,21 +134,27 @@ module.exports.CreateMeshSMS = function (parent) {
134
if (func != null) { func((err == null), err ? err.type : null, result); }
135
});
136
} else if (parent.config.sms.provider == 'url') { // URL
135
- var sms = parent.config.sms.url.split('{{phone}}').join(encodeURIComponent(to)).split('{{message}}').join(encodeURIComponent(msg));
136
- parent.debug('email', 'SMS URL: ' + sms);
137
- sms = require('url').parse(sms);
138
- if (sms.protocol == 'https:') {
139
- // HTTPS GET request
140
- const options = { hostname: sms.hostname, port: sms.port ? sms.port : 443, path: sms.path, method: 'GET', rejectUnauthorized: false };
141
- const request = require('https').request(options, function (res) { parent.debug('email', 'SMS result: ' + res.statusCode); if (func != null) { func(res.statusCode == 200, (res.statusCode == 200) ? null : res.statusCode, null); } res.on('data', function (d) { }); });
142
- request.on('error', function (err) { parent.debug('email', 'SMS error: ' + err); if (func != null) { func(false, err, null); } });
143
- request.end();
137
+ if (parent.config.sms.url == 'console') {
138
+ // This is for debugging, just display the SMS to the console
139
+ console.log('SMS (' + to + '): ' + msg);
140
+ if (func != null) { func(true, null, null); }
141
} else {
145
- // HTTP GET request
146
- const options = { hostname: sms.hostname, port: sms.port ? sms.port : 80, path: sms.path, method: 'GET' };
147
- const request = require('http').request(options, function (res) { parent.debug('email', 'SMS result: ' + res.statusCode); if (func != null) { func(res.statusCode == 200, (res.statusCode == 200) ? null : res.statusCode, null); } res.on('data', function (d) { }); });
148
- request.on('error', function (err) { parent.debug('email', 'SMS error: ' + err); if (func != null) { func(false, err, null); } });
149
- request.end();
142
+ var sms = parent.config.sms.url.split('{{phone}}').join(encodeURIComponent(to)).split('{{message}}').join(encodeURIComponent(msg));
143
+ parent.debug('email', 'SMS URL: ' + sms);
144
+ sms = require('url').parse(sms);
145
+ if (sms.protocol == 'https:') {
146
+ // HTTPS GET request
147
+ const options = { hostname: sms.hostname, port: sms.port ? sms.port : 443, path: sms.path, method: 'GET', rejectUnauthorized: false };
148
+ const request = require('https').request(options, function (res) { parent.debug('email', 'SMS result: ' + res.statusCode); if (func != null) { func(res.statusCode == 200, (res.statusCode == 200) ? null : res.statusCode, null); } res.on('data', function (d) { }); });
149
+ request.on('error', function (err) { parent.debug('email', 'SMS error: ' + err); if (func != null) { func(false, err, null); } });
150
+ request.end();
151
+ } else {
152
+ // HTTP GET request
153
+ const options = { hostname: sms.hostname, port: sms.port ? sms.port : 80, path: sms.path, method: 'GET' };
154
+ const request = require('http').request(options, function (res) { parent.debug('email', 'SMS result: ' + res.statusCode); if (func != null) { func(res.statusCode == 200, (res.statusCode == 200) ? null : res.statusCode, null); } res.on('data', function (d) { }); });
155
+ request.on('error', function (err) { parent.debug('email', 'SMS error: ' + err); if (func != null) { func(false, err, null); } });
156
+ request.end();
157
+ }
158
}
159
}
160
}