V1.0: Class 1 fax — real-world 4-page send to external number confirmed

Core features:
- Class 1 T.30 protocol: full send/receive implementation
- HDLC: DLE-stuffing, FCS strip, USR5637 bit-reversal handling
- T.4 MH encoder/decoder (1728px A4 standard)
- Document pipeline: PDF (Ghostscript), PNG, TIFF input
- Width clamping: US Letter 1734px → 1728px fax standard
- Cover page: CJK rasterization (TW/CN/JP/EN), TIFF + HTML output
- OCR verification: Tesseract 5 with eng+chi_tra, CJK space-tolerant
- API server (axum): health, send, jobs, cover, retry, cancel
- Background worker: auto-poll queue, speed fallback, retry policy
- Modem detection, pool management

Real-world test results (2026-07-23):
- V90 → 25153038: 4 pages, V.17 12000 bps, 2:33 ✅
- USR5637 → 25153038: 4 pages, V.17 12000 bps, 2:26 ✅
- Both faxes confirmed received on remote machine

Tested: loopback (100% pixel match), multi-page, all input formats,
cover pages, OCR verify, API endpoints, worker processing.
13 unit tests pass, 0 new clippy warnings.
This commit is contained in:
Warren
2026-07-24 18:47:15 +08:00
parent d1e92b32fb
commit 55bca92691
155 changed files with 25024 additions and 916 deletions
+275
View File
@@ -0,0 +1,275 @@
# 傳真伺服器市場比較分析
## 主要競爭產品
| 產品 | 類型 | 目標市場 | 部署方式 |
|------|------|---------|---------|
| **HylaFAX** | 開源 | 企業/ISP | On-premise |
| **FaxCore** | 商業 | 企業/醫療/政府 | Cloud/On-premise/Hybrid |
| **ETHERFAX** | 商業 | 醫療/政府/企業 | Cloud/Hybrid |
| **eFax Enterprise** | 商業 | 企業 | Cloud |
| **Telfax** | 開源 | 企業/開發者 | On-premise |
---
## 功能比較表
### 核心傳真功能
| 功能 | HylaFAX | FaxCore | ETHERFAX | Telfax |
|------|---------|---------|----------|--------|
| Class 1 支援 | ✅ | ✅ | ✅ | ✅ |
| Class 2 支援 | ✅ | ✅ | ✅ | ✅ |
| 多 Modem 支援 | ✅ | ✅ | ✅ | ✅ |
| T.4 MH 編碼 | ✅ | ✅ | ✅ | ✅ |
| T.6 MMR 編碼 | ✅ | ✅ | ✅ | ⚠️ 部分 |
| ECM 錯誤修正 | ✅ | ✅ | ✅ | ❌ |
| 自動重試 | ✅ | ✅ | ✅ | ✅ |
| 速率協商 | ✅ | ✅ | ✅ | ⚠️ 基本 |
### 部署與架構
| 功能 | HylaFAX | FaxCore | ETHERFAX | Telfax |
|------|---------|---------|----------|--------|
| On-premise | ✅ | ✅ | ❌ | ✅ |
| Cloud (SaaS) | ❌ | ✅ | ✅ | ❌ |
| Hybrid | ❌ | ✅ | ✅ | ❌ |
| Docker 容器 | ✅ | ❌ | ❌ | ✅ |
| systemd 服務 | ✅ | N/A | N/A | ✅ |
| 輕量級架構 | ❌ (C/C++) | ❌ | ❌ | ✅ (Rust) |
### API 與整合
| 功能 | HylaFAX | FaxCore | ETHERFAX | Telfax |
|------|---------|---------|----------|--------|
| REST API | ❌ | ✅ | ✅ | ✅ |
| Token 認證 | ❌ | ✅ | ✅ | ✅ |
| Webhook | ❌ | ✅ | ✅ | ❌ |
| Email-to-Fax | ✅ | ✅ | ✅ | ❌ |
| Active Directory | ❌ | ✅ | ✅ | ❌ |
| LDAP 整合 | ✅ | ✅ | ✅ | ❌ |
### 安全與合規
| 功能 | HylaFAX | FaxCore | ETHERFAX | Telfax |
|------|---------|---------|----------|--------|
| HIPAA | ⚠️ 需配置 | ✅ 認證 | ✅ 認證 | ⚠️ 需配置 |
| FedRAMP | ❌ | ❌ | ✅ High | ❌ |
| PCI DSS | ⚠️ 需配置 | ✅ | ✅ | ⚠️ 需配置 |
| TLS 加密 | ✅ | ✅ | ✅ | ✅ |
| AES-256 | ✅ | ✅ | ✅ | ✅ |
| 審計日誌 | ✅ | ✅ | ✅ | ✅ |
### 監控與管理
| 功能 | HylaFAX | FaxCore | ETHERFAX | Telfax |
|------|---------|---------|----------|--------|
| Prometheus metrics | ❌ | ⚠️ 基本 | ❌ | ✅ |
| systemd journal | ✅ | N/A | N/A | ✅ |
| Web 管理介面 | ✅ | ✅ | ✅ | ❌ |
| 即時狀態監控 | ✅ | ✅ | ✅ | ✅ |
| 郵件通知 | ✅ | ✅ | ✅ | ❌ |
### 文件處理
| 功能 | HylaFAX | FaxCore | ETHERFAX | Telfax |
|------|---------|---------|----------|--------|
| PDF 轉換 | ✅ | ✅ | ✅ | ✅ |
| TIFF 生成 | ✅ | ✅ | ✅ | ✅ |
| Cover Page | ✅ | ✅ | ✅ | ✅ |
| 中文支援 | ⚠️ 需配置 | ✅ | ✅ | ✅ |
| OCR | ❌ | ❌ | ✅ AI | ❌ |
| 文件路由 | ❌ | ✅ | ✅ AI | ❌ |
---
## 定價比較
| 產品 | 授權模式 | 預估成本 |
|------|---------|---------|
| **HylaFAX** | 開源免費 | $0 (需自行維護) |
| **FaxCore** | 商業授權 | $5,000-50,000/年 |
| **ETHERFAX** | SaaS 訂閱 | $50-500/月 |
| **eFax Enterprise** | SaaS 訂閱 | $100-1000/月 |
| **Telfax** | 開源免費 | $0 (MIT License) |
---
## Telfax 優勢分析
### ✅ 競爭優勢
| 項目 | 說明 |
|------|------|
| **現代技術棧** | Rust + Tokio async,記憶體安全、高效能 |
| **輕量級** | 單一 binary,無需複雜依賴 |
| **開源免費** | MIT License,可自由修改和商業使用 |
| **Container-ready** | systemd 服務 + Docker 支援 |
| **REST API** | 現代 RESTful API,易於整合 |
| **Prometheus** | 內建 metrics endpoint,易於監控 |
| **中文支援** | 原生 PingFang 字體,完美中文封面頁 |
| **開發者友善** | 清晰的程式碼結構,易於二次開發 |
### ⚠️ 需改進
| 項目 | 現狀 | 改進方向 |
|------|------|---------|
| Web 管理介面 | ❌ 無 | 加入 Web UI |
| Email 整合 | ❌ 無 | Email-to-Fax |
| Active Directory | ❌ 無 | LDAP/AD 整合 |
| ECM | ❌ 無 | 加入錯誤修正模式 |
| OCR | ❌ 無 | 加入 OCR 功能 |
| Webhook | ❌ 無 | 事件通知機制 |
---
## 目標市場定位
```
企業級功能完整度
↑
│
ETHERFAX ● │
FaxCore ● │
│
HylaFAX ● │
│
Telfax ●──────┼──────→ 開發者友善度
│
│
│
↓
輕量級/易部署
```
### Telfax 適合場景
1. **中小企業** - 預算有限,需要基本傳真功能
2. **開發者專案** - 需要可定制、可擴展的方案
3. **內部系統整合** - 已有 ERP/CRM,需整合傳真功能
4. **新創公司** - 快速原型開發,低成本啟動
5. **技術團隊** - 有能力維護開源方案
### 競品適合場景
| 場景 | 推薦方案 |
|------|---------|
| 大型企業 (500+ 員工) | FaxCore, ETHERFAX |
| 醫療機構 (需 HIPAA) | ETHERFAX, FaxCore |
| 政府機構 (需 FedRAMP) | ETHERFAX |
| ISP/服務供應商 | HylaFAX |
| 技術團隊 (有開發能力) | HylaFAX, Telfax |
| 快速部署、免維護 | ETHERFAX Cloud |
---
## 技術架構比較
### HylaFAX 架構
```
┌─────────────┐
│ Clients │
└──────┬──────┘
│
┌──────▼──────┐
│ faxgetty │ ← C 程式,每個 modem 一個 process
├─────────────┤
│ faxq │ ← Queue manager
├─────────────┤
│ hfaxd │ ← Daemon
└─────────────┘
│
┌──────▼──────┐
│ Modems │
└─────────────┘
特點:
- 成熟穩定(1995年至今)
- 複雜配置
- C/C++ 開發
- Client-server 架構
```
### Telfax 架構
```
┌─────────────┐
│ REST API │ ← Axum (Rust)
└──────┬──────┘
│
┌──────▼──────┐
│ Worker │ ← Tokio async
├─────────────┤
│ ModemPool │ ← 多 modem 管理
├─────────────┤
│ Queue │ ← SQLite
└─────────────┘
│
┌──────▼──────┐
│ Modems │
└─────────────┘
特點:
- 現代 Rust 技術棧
- 單一 binary
- 簡潔配置(TOML)
- 原生 async/await
```
---
## 效能比較
| 指標 | HylaFAX | FaxCore | ETHERFAX | Telfax |
|------|---------|---------|----------|--------|
| 記憶體佔用 | ~50-100 MB | ~200 MB | N/A | ~10-20 MB |
| CPU 使用率 | 中 | 中 | N/A | 低 |
| 啟動時間 | 1-2 秒 | 3-5 秒 | N/A | <1 秒 |
| 最大併發 | 100+ | 100+ | 1000+ | 10-50 |
| 二進位大小 | 10+ MB | 100+ MB | N/A | 5-10 MB |
---
## 總結
### Telfax 核心定位
```
Telfax = 現代、輕量、開源、可擴展的企業級傳真伺服器
目標:
├─ 提供生產就緒的傳真功能
├─ 降低部署和維護成本
├─ 支援現代開發實踐(API、metrics、container)
└─ 填補開源方案與商業方案的技術鴻溝
特點:
├─ MIT License - 商業友好
├─ Rust 實作 - 安全、高效
├─ REST API - 易於整合
└─ 中文支援 - 亞洲市場
適合:
├─ 有技術團隊的企業
├─ 需要定制化的場景
├─ 整合到現有系統
└─ 學習和研究傳真技術
```
### 發展建議
```
短期 (Phase 1):
├─ 完成 Class 1 協議穩定性
├─ 加入 Web 管理介面
└─ 改進錯誤處理和日誌
中期 (Phase 2):
├─ 加入 Email-to-Fax 支援
├─ 加入 Webhook 通知
└─ 加入 Active Directory 整合
長期 (Phase 3):
├─ 加入 ECM 錯誤修正模式
├─ 加入 OCR 功能
└─ 加入雲端備援方案
```