cyberwani/trai-sms-header 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

cyberwani/trai-sms-header

最新稳定版本:v1.0.4

Composer 安装命令:

composer require cyberwani/trai-sms-header

包简介

A PHP library for inspecting TRAI-compliant SMS headers (operator, circle, and message type mapping) with DLT sender lookup.

README 文档

README

TRAI SMS Header is a PHP library and CLI tool developed by Cyberwani for inspecting and decoding TRAI-compliant SMS headers under TCCCPR 2025 guidelines.

It helps telecom developers, SMS gateway providers, and compliance teams to easily parse headers such as VM-ABCDEF-S into detailed information like Operator, Circle, Sender Name, and Message Type.

🚀 Features

  • 🔍 Parse and validate TRAI SMS headers (VM-ABCDEF-S, VK-MYCOMP-P, etc.)
  • 🏢 Lookup registered Sender Names via included sender-list.json
  • 🛰️ Identify Operator & Circle based on TRAI prefix mapping
  • 💬 Detect message type suffix (-P, -S, -T, -G)
  • 🧩 Works as a Composer library and a CLI tool
  • ⚡ Lightweight, dependency-free (optional PhpSpreadsheet for data import)

🧰 Installation

Install via Composer:

composer require cyberwani/trai-sms-header

This will install both the PHP library and the CLI binary:

vendor/bin/trai-sms-header

🧑‍💻 PHP Usage Example

<?php
require 'vendor/autoload.php';

use Cyberwani\TRAI_SMS_Header\TRAI_SMS_Header;

// Initialize with default sender-list.json (included in package)
$trai = new TRAI_SMS_Header();

// You can also provide a custom sender JSON file if desired:
// $trai = new TRAI_SMS_Header('/path/to/custom-sender-list.json');

$result = $trai->inspect('VM-ABCDEF-S');

print_r($result);

Output:

Array
(
    [input] => VM-ABCDEF
    [prefix] => VM
    [operator_code] => V
    [operator] => Vodafone Idea Ltd
    [circle_code] => M
    [circle] => Mumbai
    [sender_id] => ABCDEF
    [sender_name] => ABCDEF ENTERPRISES PVT LTD
    [suffix] => -S
    [message_type] => Service
    [valid] => 1
)

💻 CLI Usage

After installing via Composer, run directly from terminal:

vendor/bin/trai-sms-header <HEADER> [--file=/path/to/sender-list.json] [--json]

Examples

1️⃣ Standard CLI output

vendor/bin/trai-sms-header VM-ABCDEF-S

Output:

🔍 TRAI SMS Header Inspection
──────────────────────────────
Header:       VM-ABCDEF-S
Prefix:       VM
Operator:     Vodafone Idea Ltd (V)
Circle:       Mumbai (M)
Sender ID:    ABCDEF
Sender Name:  ABCDEF ENTERPRISES PVT LTD
Message Type: Service
Suffix:       -S
Valid:        Yes
──────────────────────────────

2️⃣ JSON output (for scripts or API integrations)

vendor/bin/trai-sms-header VM-ABCDEF-S --json

Output:

{
  "input": "VM-ABCDEF",
  "prefix": "VM",
  "operator_code": "V",
  "operator": "Vodafone Idea Ltd",
  "circle_code": "M",
  "circle": "Mumbai",
  "sender_id": "ABCDEF",
  "sender_name": "ABCDEF ENTERPRISES PVT LTD",
  "suffix": "-S",
  "message_type": "Service",
  "valid": true
}

3️⃣ Using a custom sender list

vendor/bin/trai-sms-header VM-MYCOMP-T --file=/tmp/custom-sender-list.json

🧮 Build JSON from Excel or CSV (New Feature)

You can now automatically generate or refresh your sender-list.json file using official TRAI data sheets (Excel or CSV) with the build-json subcommand.

This feature reads columns:

Header Description
Sender ID Registered sender code (e.g. ABCDEF)
Principal Entity Name Entity name (e.g. ABCDEF ENTERPRISES PVT LTD)

🔧 Command Syntax

vendor/bin/trai-sms-header build-json <input.xlsx|input.csv> [--output=/path/to/sender-list.json]

💡 Examples

1️⃣ Build default sender list (saved to src/Data/sender-list.json)

vendor/bin/trai-sms-header build-json List_SMS_Headers_16062020_0.xlsx

Output:

🔄 Reading List_SMS_Headers_16062020_0.xlsx ...
✅ Exported 25700 sender records to src/Data/sender-list.json

2️⃣ Build JSON to a custom file location

vendor/bin/trai-sms-header build-json List_SMS_Headers_16062020_0.xlsx --output=/tmp/sender-list.json

3️⃣ Build from CSV file

vendor/bin/trai-sms-header build-json data/List_SMS_Headers_16062020_0.csv

⚙️ File Format Example

If the input file (.xlsx or .csv) has:

Sender ID Principal Entity Name
ABCDEF ABCDEF ENTERPRISES PVT LTD
MYCOMP MyCompany Technologies LLP

It will generate:

{
  "ABCDEF": "ABCDEF ENTERPRISES PVT LTD",
  "MYCOMP": "MyCompany Technologies LLP",
  "TESTIN": "Testing Solutions India"
}

🧩 Supported Formats

Format Support Notes
.xlsx Uses PhpSpreadsheet
.csv UTF-8 encoded CSV supported
.xls ⚠️ Not recommended (use .xlsx)

📦 Dependency Requirement

If you plan to use build-json with .xlsx files, install PhpSpreadsheet:

composer require phpoffice/phpspreadsheet

For .csv imports, no additional dependency is required.

✅ Full Example Workflow

# Step 1: Build JSON
vendor/bin/trai-sms-header build-json data/List_SMS_Headers_16062020_0.xlsx

# Step 2: Validate a header using new data
vendor/bin/trai-sms-header VM-ABCDEF-S --file=src/Data/sender-list.json --json

Result:

{
  "input": "VM-ABCDEF",
  "prefix": "VM",
  "operator_code": "V",
  "operator": "Vodafone Idea Ltd",
  "circle_code": "M",
  "circle": "Mumbai",
  "sender_id": "ABCDEF",
  "sender_name": "ABCDEF ENTERPRISES PVT LTD",
  "suffix": "-S",
  "message_type": "Service",
  "valid": true
}

⚙️ Default Data Source

The package ships with:

src/Data/sender-list.json
src/Data/operator-map.php
src/Data/circle-map.php

If you don’t provide a custom JSON file, the library automatically uses the bundled sender-list.json.

You can regenerate or update this JSON file using TRAI’s official header data (see build-json command above).

🧩 Namespace and Class

Namespace Class Name Example
Cyberwani\TRAI_SMS_Header TRAI_SMS_Header new TRAI_SMS_Header();

🧾 License

Licensed under the MIT License. © 2025 Cyberwani — All rights reserved.

🧑‍💼 Author

Cyberwani 🔗 https://github.com/cyberwani

💡 Coming Soon

  • Web-based UI for header validation
  • Integration testing suite

统计信息

  • 总下载量: 5
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-11-04