Bumped upstream versions, minor adjustments to docs and a log message
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user