1. Prerequisites for Establishing an SMPP Bind
To connect to the NAMX Telecom wholesale SMPP gateway, ensure your engineering team has completed the following prerequisites:
- IP Whitelisting: Submit your static public server IPv4 addresses to the NAMX NOC. Unrecognized IPs are rejected at the edge firewall level.
- Credentials: Obtain your designated
System ID,Password, and allocated port (Standard Port 2775 or TLS Port 3550). - Throughput Allocation (TPS): Verify your agreed Transaction Per Second rate limit to avoid triggering carrier rate limit rejects (Status Code 0x00000058 - ESME_RTHROTTLED).
2. Connecting Over TLS 1.3 Encryption
For financial and enterprise applications, plaintext TCP transport is strictly forbidden. Establish a secure TLS socket using mutual certificate validation or strong cipher suites (AES-256-GCM / ChaCha20-Poly1305) to protect customer PDU payloads in transit.
3. Handshake & Authentication Flow
The client initiates the connection by transmitting a bind_transceiver PDU:
Command ID: 0x00000009 (bind_transceiver)
Sequence Number: 0x00000001
System ID: YOUR_ALLOCATED_SYSTEM_ID
Password: YOUR_SECURE_PASSWORD
System Type: SMPP
Interface Version: 0x34 (SMPP v3.4)
Address TON / NPI: 0x00 / 0x00Upon successful authentication, the NAMX gateway replies with bind_transceiver_resp (Command ID 0x80000009) with Command Status 0x00000000 (ESME_ROK).
4. Node.js SMPP Transceiver Implementation Example
const smpp = require('smpp');
const session = smpp.connect({
url: 'smpps://smpp.namxtelecom.site:3550',
auto_enquire_link_period: 30000,
});
session.bind_transceiver({
system_id: 'NAMX_TRX_PROD_01',
password: 'SuperSecretPassword',
interface_version: 0x34,
}, (pdu) => {
if (pdu.command_status === 0) {
console.log('Successfully bound to NAMX SMPP Gateway!');
sendSms('NAMXALERT', '+14155552671', 'Your verification code is 849201.');
} else {
console.error('Bind failed with status:', pdu.command_status);