A comprehensive web-based toolkit for parsing, encoding, and analyzing SMS Protocol Data Units (PDUs) and related telecom protocols.
SMS PDU Toolkit is designed for telecom professionals, developers, and educators who need to work with SMS PDUs and related protocols. This tool provides an interactive interface for:
- Parsing and encoding SMS PDUs (SMS-DELIVER and SMS-SUBMIT formats)
- Analyzing SIM Application Toolkit (SAT) commands
- Decoding Short Message Peer-to-Peer (SMPP) protocol messages
- Examining SIM card storage format (EF_SMS) records
- Comprehensive visualization and educational resources
The toolkit supports multiple character encodings (GSM 7-bit, 8-bit, UCS2), multipart messages, and provides detailed byte-by-byte breakdowns of all protocol structures.
- Full support for SMS-DELIVER and SMS-SUBMIT message types
- Multiple character encoding support (GSM 7-bit, 8-bit, UCS2)
- Multipart message handling
- Detailed field-by-field breakdown
- Visual byte representation with tooltips
- Comprehensive support for SAT commands as defined in 3GPP TS 31.111 and ETSI TS 102 223
- 20+ example commands for testing and learning
- Detailed tag parsing and visualization
- Support for multiple device identities and command types
- Analysis of SMPP PDUs for SMS center communications
- Command identification and parameter extraction
- Structured visualization of SMPP messages
- Parsing of SMS messages stored on SIM cards
- Status identification (read, unread, sent, empty)
- Combined visualization of storage format and contained PDU
- Comprehensive documentation of SMS formats and encodings
- Interactive learning materials
- Technical references to standards
- Frontend: React with TypeScript
- UI Components: Tailwind CSS with shadcn/ui components
- State Management: React Query
- Backend: Express.js
- Build Tools: Vite
- Node.js (v18+)
- npm (v8+)
-
Clone the repository:
git clone https://github.com/yourusername/sms-pdu-toolkit.git cd sms-pdu-toolkit -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open your browser and navigate to:
http://localhost:5000
- Select the PDU type (SMS-DELIVER or SMS-SUBMIT)
- Enter or paste a hexadecimal PDU string
- Click "Parse PDU"
- View the decoded information, including header details, message content, and byte-by-byte breakdown
- Fill in the required fields (SMSC, recipient/sender, message text)
- Select encoding and options
- Click "Encode PDU"
- View the generated PDU string and its detailed structure
- Choose an example SAT command or enter your own hexadecimal SAT PDU
- Click "Parse SAT Command"
- Explore the command structure, including command type, parameters, and data
- Enter an SMPP PDU string
- Click "Parse SMPP"
- View the decoded command, parameters, and structure
- Enter an EF_SMS record data in hexadecimal
- Specify the record number
- Click "Parse EF_SMS"
- View the status information and contained SMS PDU details
To create a production build:
npm run buildThis will generate optimized files in the dist directory that can be deployed to any web server.
The application can be deployed on any static web server or Node.js hosting environment.
For a simple static deployment (after building):
npm install -g serve
serve -s distContributions are welcome! Please feel free to submit pull requests or open issues to improve the toolkit.
- Fork the repository
- Create your feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add some amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Based on 3GPP TS 23.040 specification for SMS
- References ETSI TS 101 267 and 3GPP TS 31.111 for SIM Application Toolkit
- SMPP protocol based on SMPP v3.4 specification