Commit b3c9280b8ec23a7f6fea3f4e5dfcfa525308285d

Authored by Adhidarma Hadiwinoto
1 parent cd577b20c2
Exists in master

beta

Showing 2 changed files with 51 additions and 3 deletions Side-by-side Diff

  1 +var request = require('request');
  2 +var http = require('http');
  3 +var url = require('url');
1 4 var fs = require('fs');
2 5 var ini = require('ini');
3 6 var xmpp = require('simple-xmpp');
4 7  
5 8 var config = ini.parse(fs.readFileSync('./config.ini', 'utf-8'));
6 9  
  10 +function createHttpListener() {
  11 +
  12 + var httpServer = http.createServer(function(request,response){
  13 +
  14 + var qs = url.parse(request.url, true).query;
  15 + console.log('Incoming message from SMSIN server:');
  16 + console.log(qs);
  17 + response.end('OK');
  18 +
  19 + sendMessage(qs.PhoneNumber, qs.text);
  20 + });
  21 +
  22 + httpServer.listen(config.globals.listen_port, function(){
  23 + console.log("listening on " + config.globals.listen_port);
  24 + })
  25 +}
  26 +
  27 +function sendMessage(destination, message) {
  28 + xmpp.send(destination, message);
  29 +}
  30 +
  31 +function reportToSMSIN(from, message) {
  32 + var opts = {
  33 + url: config.globals.smsin,
  34 + qs: {
  35 + PhoneNumber: from,
  36 + Text: message,
  37 + Res_Port: config.globals.listen_port,
  38 + SMSCID: config.globals.smscid
  39 + }
  40 + }
  41 +
  42 + request(opts, function(err, response, body) {
  43 + if (err) {
  44 + console.log('Error reporting to SMSIN: ' + err);
  45 + return;
  46 + }
  47 + });
  48 +}
  49 +
7 50 xmpp.on('online', function(data) {
8 51 console.log('Online');
9 52 console.log(data);
10 53 console.log('Connected with JID: ' + data.jid.user);
11   - console.log('Yes, I\'m connected!');
12 54 });
13 55  
14 56 xmpp.on('chat', function(from, message) {
15   - xmpp.send(from, 'echo: ' + message);
  57 + //xmpp.send(from, 'echo: ' + message);
  58 + console.log('Incoming message from ' + from + ': ' + message);
  59 + reportToSMSIN(from, message);
16 60 });
17 61  
18 62 xmpp.on('error', function(err) {
... ... @@ -30,3 +74,5 @@ xmpp.connect({
30 74  
31 75 // check for incoming subscription requests
32 76 xmpp.getRoster();
  77 +
  78 +createHttpListener();
... ... @@ -21,6 +21,8 @@
21 21 "license": "BSD",
22 22 "dependencies": {
23 23 "simple-xmpp": "~1.0.1",
24   - "ini": "~1.3.4"
  24 + "ini": "~1.3.4",
  25 + "request": "~2.64.0",
  26 + "url": "~0.11.0"
25 27 }
26 28 }