Modified to support Dlink 157
============================
Modem.js allows you to use your GSM modems on node. It offers a very simple API. It supports:
- Sending SMS messages
- Receiving SMS messages
- Getting delivery reports
- Deleting messages from memory
- Getting notifications when memory is full
- Getting signal quality
- Making ussd sessions
- 16bit (ucsd messages)
- 7bit (ascii) messages
- Multipart messages
- Getting notifications when someone calls
npm install modem
var modem = require('modem').Modem()
modem.open(device, callback)
- device
String
Path to device, like/dev/ttyUSB0
- callback
Function
called when modem is ready for further action
- callback
modem.sms(message, callback)
After Replacing pdu.generate(message) with pdu.stringify(message) for new PDU.js we will have new object format for message. We don't need encoding here as it will be selected automaticy.
Old message:
- message
Object
- text
String
message body. Longs messages will be splitted and sent in multiple parts transparently. - receiver
String
receiver number. - encoding
String
. '16bit' or '7bit'. Use 7bit in case of English messages.
- text
New message should be:
- message
Object
- userData
String
message body. Longs messages will be splitted and sent in multiple parts transparently. - address
String
receiver number.
- userData
callback Fucntion
(err, references) is called when sending is done.
- references
Array
contains reference ids for each part of sent message. (A message may take up to several parts)
modem.on('delivery', callback)
-
callback
Function
is called with the following arguments: -
details
Object
detailed status report- smsc
String
Msisdn of SMS Sender - reference
String
Reference number of the delivered message - sender
Msisdn of receiver
- status
Delivery status
- smsc
-
index
String
index of this delivery report in storage
modem.on('sms received', callback)
- callback
Function
will be called on each new message with following arguments: - message
Object
- smsc
String
MSISDN of SMS Center - sender
String
MSISDN of sender - time
Date
Send time - text
String
message body
- smsc
modem.getMessages(callback)
- callback
Function
will be called with a single argument messagesArray
, which contains stores messages
modem.deleteMessage(message_index, callback)
- message_index
Int
is the message index to be deleted - callback
Function
called when message is deleted
modem.on('memory full', callback)
- callback
Function
will be called when modem has no more space for further messages
modem.on('ring', callback)
- callback
Function
will be called on each RING with a single argument - msisdn
Number
Modem.js allows you to run AT commands in a queue and manage them without messing the modem. API is still quite simple.
job = modem.execute(at_command, [callback], [priority], [timeout])
- at_command
String
AT command you would like to execute - callback
Function
called when execution is done, in form of(escape_char, [response])
- escape_char
String
could be 'OK', 'ERROR' or '>'. - response
String
modem's response
- escape_char
- prior
Boolean
if set to true, command will be executed immediately - timeout
Integer
timeout, in milliseconds, defaults to 60 seconds. - job
EventEmitter
represents the added job.- it will emit
timeout
if executing job times out
- it will emit
Modem.js allows you to run ussd sessions.
var Session = require('modem').Ussd_Session
var Session = require('modem').Ussd_Session
var CheckBalance = function(c) {
var session = new Session;
session.callback = c;
session.parseResponse = function(response_code, message) {
this.close();
var match = message.match(/([0-9,\,]+)\sRial/);
if(!match) {
if(this.callback)
this.callback(false);
return ;
}
if(this.callback)
this.callback(match[1]);
session.modem.credit = match[1];
}
session.execute = function() {
this.query('*141*#', session.parseResponse);
}
return session;
}
modem.unlockPin(pin,callback)
This function will try to unlock sim pin
- callback
Function
will return(isLocked,error)
- pin
String
modem.checkPinLocked(callback)
This function will check sim pin status
- callback
Function
will return(isLocked,error)
modem.unlockPuk(pin,puk,callback)
This function will try to unlock sim puk locked
- callback
Function
will return(response,error)
- puk
String
- pin
String