Bumped upstream versions, minor adjustments to docs and a log message

This commit is contained in:
2016-05-16 11:22:30 +02:00
parent f4a7c51b85
commit 5da55e0f52
4 changed files with 110 additions and 102 deletions
+93 -85
View File
@@ -11,59 +11,63 @@ This is a simplified implementation of the SMPP protocol.
This will setup a client that connects to localhost, port 2775 without username or password and send a message.
var larvitsmpp = require('larvitsmpp');
```javascript
var larvitsmpp = require('larvitsmpp');
larvitsmpp.client(function(err, clientSession) {
clientSession.sendSms({
'from': '46701113311',
'to': '46709771337',
'message': 'Hello world'
});
larvitsmpp.client(function(err, clientSession) {
clientSession.sendSms({
'from': '46701113311',
'to': '46709771337',
'message': 'Hello world'
});
// Gracefully close connection
clientSession.unbind();
});
// Gracefully close connection
clientSession.unbind();
});
```
### Some connection parameters and DLR
This will setup a client that connects to given host, port with username and password, send a password and retrieve a DLR.
larvitsmpp.client({
'host': 'smpp.somewhere.com',
'port': 2775,
'username': 'foo',
'password': 'bar'
}, function(err, clientSession) {
if (err) {
throw err;
}
```javascript
larvitsmpp.client({
'host': 'smpp.somewhere.com',
'port': 2775,
'username': 'foo',
'password': 'bar'
}, function(err, clientSession) {
if (err) {
throw err;
}
clientSession.sendSms({
'from': '46701113311',
'to': '46709771337',
'message': '«baff»',
'dlr': true
}, function(err, smsId, retPduObj) {
if (err) {
throw err;
}
clientSession.sendSms({
'from': '46701113311',
'to': '46709771337',
'message': '«baff»',
'dlr': true
}, function(err, smsId, retPduObj) {
if (err) {
throw err;
}
console.log('SMS sent, smsId(s): ' + smsId.join(', '));
console.log('Return PDU object:');
console.log(retPduObj);
});
console.log('SMS sent, smsId(s): ' + smsId.join(', '));
console.log('Return PDU object:');
console.log(retPduObj);
});
clientSession.on('dlr', function(dlr, dlrPduObj) {
console.log('DLR received:');
console.log(dlr);
clientSession.on('dlr', function(dlr, dlrPduObj) {
console.log('DLR received:');
console.log(dlr);
console.log('DLR PDU object:');
console.log(dlrPduObj);
console.log('DLR PDU object:');
console.log(dlrPduObj);
// Gracefully close connection
clientSession.unbind();
});
});
// Gracefully close connection
clientSession.unbind();
});
});
```
## Server
@@ -71,64 +75,68 @@ This will setup a client that connects to given host, port with username and pas
This will setup a password less server on localhost, port 2775 and console.log() incomming commands.
var larvitsmpp = require('larvitsmpp');
```javascript
var larvitsmpp = require('larvitsmpp');
larvitsmpp.server(function(err, serverSession) {
if (err) {
throw err;
}
larvitsmpp.server(function(err, serverSession) {
if (err) {
throw err;
}
serverSession.on('data', function(data) {
console.log('command: ' + data.command);
});
});
serverSession.on('data', function(data) {
console.log('command: ' + data.command);
});
});
```
### With auth, returning smsId and DLR
Example code below:
// This should of course be replaced with your preferred auth system
function checkuserpass(username, password, callback) {
if (username === 'foo' && password === 'bar') {
// The last parameter is just user meta data that will be attached to the session as "userData" and is optional
callback(null, true, {'username': 'foo', 'userId': 123});
} else {
callback(null, false);
}
}
```javascript
// This should of course be replaced with your preferred auth system
function checkuserpass(username, password, callback) {
if (username === 'foo' && password === 'bar') {
// The last parameter is just user meta data that will be attached to the session as "userData" and is optional
callback(null, true, {'username': 'foo', 'userId': 123});
} else {
callback(null, false);
}
}
larvitsmpp.server({
'checkuserpass': checkuserpass
}, function(err, serverSession) {
if (err) {
throw err;
}
larvitsmpp.server({
'checkuserpass': checkuserpass
}, function(err, serverSession) {
if (err) {
throw err;
}
// Incoming SMS!
serverSession.on('sms', function(sms) {
// Incoming SMS!
serverSession.on('sms', function(sms) {
// It is important to run the sms.resp() since this is a part of the protocol
sms.resp({
// It is important to run the sms.resp() since this is a part of the protocol
sms.resp({
// Decimal value status code
// Default is 0 == no error
// See SMPP spec for all available status codes
// For example: 11 == 0000000B == ESME_RINVDSTADR == "Invalid destination address".
'status': 0,
// Decimal value status code
// Default is 0 == no error
// See SMPP spec for all available status codes
// For example: 11 == 0000000B == ESME_RINVDSTADR == "Invalid destination address".
'status': 0,
// Set SMS id, this is important if DLR is to be connected with the right SMS but is not mandatory
'smsId': 450
});
// Set SMS id, this is important if DLR is to be connected with the right SMS but is not mandatory
'smsId': 450
});
// Oh, the sms sender wants a dlr (delivery report), send it!
if (sms.dlr === true) {
serverSession.sendDlr(sms);
// Oh, the sms sender wants a dlr (delivery report), send it!
if (sms.dlr === true) {
serverSession.sendDlr(sms);
// To send a negative delivery report do:
//serverSession.sendDlr(sms, false);
}
});
});
// To send a negative delivery report do:
//serverSession.sendDlr(sms, false);
}
});
});
```
## Session Events