Package Exports
- sms-pdu
- sms-pdu/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (sms-pdu) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
sms-pdu
sms-pdu es una librería ligera para Node.js que permite convertir texto plano en SMS-SUBMIT PDU, lista para enviar a dispositivos GSM mediante comandos AT (AT+CMGS).
Soporta codificación en GSM 7-bit, 8-bit y UCS2 (16-bit), manejo de caracteres extendidos, selección de clase de mensaje, tipos de número (TOA) y período de validez.
Características
- Conversión de texto a PDU listo para
AT+CMGS. - Soporta codificación GSM 7-bit, 8-bit y UCS2.
- Manejo de caracteres extendidos en GSM 7-bit.
- Soporte para SMS Flash y clases específicas (ME, SIM, TE).
- Control de tipo de número internacional/nacional y centro de servicios (SMSC).
- Opcional: solicitud de acuse de recibo y periodo de validez del mensaje.
- Calcula automáticamente la longitud de PDU para enviar por AT commands.
Instalación
npm install sms-pduUso Básico
const { stringToPDU } = require('sms-pdu');
const pduData = stringToPDU("Hola mundo", "+34123456789");
console.log(pduData.PDU);
// PDU codificado en hexadecimal
console.log(pduData.cmgsLen);
// Longitud del mensaje para AT+CMGS
console.log(pduData.command);
// Comando AT completo listo para enviar:
// AT+CMGS=<longitud>
// <PDU en hexadecimal>Opciones de Configuración
const pduData = stringToPDU("Mensaje", "+123456789", {
smscNumber: "0", // Centro de servicios SMS, 0 = usar SMSC de la SIM
alphabetSize: 7, // 7 = GSM7, 8 = 8-bit, 16 = UCS2
messageClass: -1, // -1 = automático, 0=Flash, 1=ME, 2=SIM, 3=TE
toa: -1, // Tipo de número receptor, -1 = automático
validity: 255, // Periodo de validez
useValidity: true, // Aplicar periodo de validez
receipt: false // Solicitar acuse de recibo
});Enumeraciones disponibles
const { ALPHABET_SIZE, MESSAGE_CLASS, TOA } = require('sms-pdu');
// Tamaños de alfabeto para SMS
ALPHABET_SIZE.GSM7 // 7 bits, alfabeto GSM por defecto
ALPHABET_SIZE.BIT8 // 8 bits, para datos binarios
ALPHABET_SIZE.UCS2_16 // 16 bits, Unicode UCS2
// Clases de mensaje SMS
MESSAGE_CLASS.FLASH // Mensaje Flash (aparece directamente en pantalla)
MESSAGE_CLASS.ME_SPECIFIC // Mensaje dirigido al dispositivo (ME)
MESSAGE_CLASS.SIM_SPECIFIC // Mensaje dirigido a la SIM
MESSAGE_CLASS.TE_SPECIFIC // Mensaje dirigido al terminal (TE)
MESSAGE_CLASS.AUTOMATIC // Detecta automáticamente la clase
// Tipos de número (TOA) para el receptor
TOA.INTERNATIONAL // Número internacional (p.ej. +34123456789)
TOA.NATIONAL // Número nacional
TOA.UNKNOWN // Tipo de número desconocido
TOA.AUTOMATIC // Detecta automáticamente si es internacional o nacionalCasos de uso
- Envío de SMS desde aplicaciones Node.js a módems GSM.
- Automatización de mensajes SMS en servidores locales.
- Integración con dispositivos IoT que soporten comandos AT.
Licencia
MIT © Jorge Pacora