mirror of
				https://github.com/Ylianst/MeshCentral.git
				synced 2025-03-09 15:40:18 +00:00 
			
		
		
		
	Added SMS debug.
This commit is contained in:
		
							parent
							
								
									2eb8cbf2d6
								
							
						
					
					
						commit
						2045ebc110
					
				
					 1 changed files with 26 additions and 18 deletions
				
			
		
							
								
								
									
										44
									
								
								meshsms.js
									
										
									
									
									
								
							
							
						
						
									
										44
									
								
								meshsms.js
									
										
									
									
									
								
							|  | @ -80,10 +80,12 @@ module.exports.CreateMeshSMS = function (parent) { | |||
|         } | ||||
|         case 'url': { | ||||
|             // Validate URL configuration values
 | ||||
|             if (typeof parent.config.sms.url != 'string') { console.log('Invalid or missing SMS gateway URL value.'); return null; } | ||||
|             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; } | ||||
|             if (parent.config.sms.url.indexOf('{{message}}') == -1) { console.log('Invalid or missing SMS gateway, URL must include {{message}}.'); return null; } | ||||
|             if (parent.config.sms.url.indexOf('{{phone}}') == -1) { console.log('Invalid or missing SMS gateway, URL must include {{phone}}.'); return null; } | ||||
|             if (parent.config.sms.url != 'console') { | ||||
|                 if (typeof parent.config.sms.url != 'string') { console.log('Invalid or missing SMS gateway URL value.'); return null; } | ||||
|                 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; } | ||||
|                 if (parent.config.sms.url.indexOf('{{message}}') == -1) { console.log('Invalid or missing SMS gateway, URL must include {{message}}.'); return null; } | ||||
|                 if (parent.config.sms.url.indexOf('{{phone}}') == -1) { console.log('Invalid or missing SMS gateway, URL must include {{phone}}.'); return null; } | ||||
|             } | ||||
|             break; | ||||
|         } | ||||
|         default: { | ||||
|  | @ -132,21 +134,27 @@ module.exports.CreateMeshSMS = function (parent) { | |||
|                 if (func != null) { func((err == null), err ? err.type : null, result); } | ||||
|             }); | ||||
|         } else if (parent.config.sms.provider == 'url') { // URL
 | ||||
|             var sms = parent.config.sms.url.split('{{phone}}').join(encodeURIComponent(to)).split('{{message}}').join(encodeURIComponent(msg)); | ||||
|             parent.debug('email', 'SMS URL: ' + sms); | ||||
|             sms = require('url').parse(sms); | ||||
|             if (sms.protocol == 'https:') { | ||||
|                 // HTTPS GET request
 | ||||
|                 const options = { hostname: sms.hostname, port: sms.port ? sms.port : 443, path: sms.path, method: 'GET', rejectUnauthorized: false }; | ||||
|                 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) { }); }); | ||||
|                 request.on('error', function (err) { parent.debug('email', 'SMS error: ' + err); if (func != null) { func(false, err, null); } }); | ||||
|                 request.end(); | ||||
|             if (parent.config.sms.url == 'console') { | ||||
|                 // This is for debugging, just display the SMS to the console
 | ||||
|                 console.log('SMS (' + to + '): ' + msg); | ||||
|                 if (func != null) { func(true, null, null); } | ||||
|             } else { | ||||
|                 // HTTP GET request
 | ||||
|                 const options = { hostname: sms.hostname, port: sms.port ? sms.port : 80, path: sms.path, method: 'GET' }; | ||||
|                 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) { }); }); | ||||
|                 request.on('error', function (err) { parent.debug('email', 'SMS error: ' + err); if (func != null) { func(false, err, null); } }); | ||||
|                 request.end(); | ||||
|                 var sms = parent.config.sms.url.split('{{phone}}').join(encodeURIComponent(to)).split('{{message}}').join(encodeURIComponent(msg)); | ||||
|                 parent.debug('email', 'SMS URL: ' + sms); | ||||
|                 sms = require('url').parse(sms); | ||||
|                 if (sms.protocol == 'https:') { | ||||
|                     // HTTPS GET request
 | ||||
|                     const options = { hostname: sms.hostname, port: sms.port ? sms.port : 443, path: sms.path, method: 'GET', rejectUnauthorized: false }; | ||||
|                     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) { }); }); | ||||
|                     request.on('error', function (err) { parent.debug('email', 'SMS error: ' + err); if (func != null) { func(false, err, null); } }); | ||||
|                     request.end(); | ||||
|                 } else { | ||||
|                     // HTTP GET request
 | ||||
|                     const options = { hostname: sms.hostname, port: sms.port ? sms.port : 80, path: sms.path, method: 'GET' }; | ||||
|                     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) { }); }); | ||||
|                     request.on('error', function (err) { parent.debug('email', 'SMS error: ' + err); if (func != null) { func(false, err, null); } }); | ||||
|                     request.end(); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue