آخرین ویرایش شهریور ۱۹, ۱۴۰۴ حامد کوه فلاح
مقدمه
فکس هنوز در بسیاری از سازمانها (بانکها، ادارات دولتی، پزشکی و بیمه) استفاده میشود. با مهاجرت به VoIP و SIP، ارسال فکس روی خطوط IP به چالش تبدیل شد، چون پروتکل اصلی فکس (T.30) به تأخیر و از دست رفتن پکت حساس است. برای حل این مشکل، استاندارد T.38 معرفی شد تا ارسال فکس روی شبکههای IP با اطمینان بیشتری انجام شود.
چرا T.38؟
-
مشکل فکس روی G.711 (Pass-through): فشردهسازی و jitter باعث میشود فکس fail شود.
-
T.38 راهحل: تبدیل سیگنال آنالوگ فکس به دادهٔ دیجیتال با redundancy و error correction.
-
پشتیبانی بینالمللی: بسیاری از ترانکها و گیتویهای PSTN → SIP از T.38 پشتیبانی میکنند.
معماری و نحوه عملکرد
-
دستگاه فکس یا ATA سیگنال آنالوگ T.30 تولید میکند.
-
Gateway (SIP/VoIP) آن را به T.38 تبدیل میکند.
-
بستههای T.38 روی UDP ارسال میشوند (معمولاً روی پورت ۴۰۰۰ به بعد).
-
سمت مقابل T.38 را دوباره به سیگنال آنالوگ T.30 برمیگرداند و به دستگاه فکس تحویل میدهد.
جدول مقایسه روشها
روش | مزایا | معایب | کاربرد توصیهشده |
---|---|---|---|
G.711 Pass-through | ساده، نیاز به پشتیبانی خاص ندارد | حساس به jitter و packet loss، روی اینترنت پایدار نیست | شبکه LAN پایدار، VPN داخلی |
T.38 Relay | مکانیزم اصلاح خطا، پشتیبانی در گیتویها و ترانکها | نیاز به پشتیبانی همهٔ طرفها (ATA، Gateway، Carrier) | ارتباط بینسایتی، فکسهای رسمی |
Store & Forward (T.37) | ارسال فکس بهصورت ایمیل (غیر Real-time) | زمانبر، نیاز به ایمیل سرور | سناریوهایی که تاخیر اهمیتی ندارد |
نکات فنی و تجربی
-
کدک: همیشه فکس روی G.711 یا T.38 انجام شود؛ استفاده از کدکهای فشرده (G.729, GSM) باعث شکست فکس میشود.
-
Carrier compatibility: همهٔ اپراتورها T.38 را ساپورت نمیکنند؛ قبل از خرید SIP trunk حتماً تست کنید.
-
Asterisk/Issabel:
-
در
sip.conf
:faxdetect=yes t38pt_udptl=yes
-
در
extensions.conf
: مقصد باید قابلیت negotiate فکس را داشته باشد.
-
-
ATA devices: مانند Cisco SPA112 یا Grandstream HT پشتیبانی از T.38 دارند، اما باید firmware بهروز باشد.
-
جایگزین مدرن: در بسیاری پروژهها، به جای فکس IP بهتر است از eFax (فکس به ایمیل / ایمیل به فکس) استفاده شود.
عیبیابی (Troubleshooting)
-
یک طرف negotiation: اگر یکی از سمتها T.38 را advertise نکند، تماس روی G.711 میماند.
-
Packet capture: با
tcpdump
و Wireshark بررسی کنید پکتهای UDPTL ارسال شوند. -
Carrier log: بررسی کنید SIP INVITE پاسخ ۲۰۰ OK با T.38 داشته باشد.
-
Jitter buffer: برای UDP/T.38 نیاز به jitter buffer کوتاه دارید.
ابزارها و منابع خارجی
-
T.38 Overview — ITU (استاندارد رسمی ITU)
تجربه عملی (ویپ ایران)
-
در پروژهای که با بیمه کار کردیم، فکس روی ترانک SIP اپراتور فقط با T.38 پایدار شد.
-
در بانکها معمولاً G.711 pass-through روی MPLS استفاده میشود چون کنترل کامل شبکه دارند.
-
همیشه برای مشتریانی که فکس حیاتی دارند، توصیه میکنیم یک خط PSTN سنتی backup نگه دارند.