آخرین ویرایش شهریور ۱۹, ۱۴۰۴ حامد کوه فلاح
مقدمه
وقتی صحبت از سیستمهای VoIP و استریسک میشود، کیفیت تماس یکی از حیاتیترین عوامل موفقیت پروژه است. کاربر نهایی تفاوت بین سرور قوی یا تجهیزات پیچیده را حس نمیکند؛ تنها چیزی که تجربه میکند وضوح صدا و قطع نشدن تماس است.
اینجاست که مفهوم Quality of Service (QoS) اهمیت پیدا میکند: مکانیزمی برای اولویتبندی ترافیک صوتی نسبت به سایر ترافیکهای شبکه.
QoS چیست؟
QoS مجموعهای از تکنیکها و پروتکلهاست که در سطح شبکه استفاده میشود تا مطمئن شویم بستههای صوتی (RTP) سریعتر و با تأخیر کمتر نسبت به ترافیک عادی مثل وبگردی یا دانلود منتقل شوند.
پارامترهای کلیدی QoS:
-
Latency (تأخیر): باید کمتر از 150ms باشد.
-
Jitter (نوسان تأخیر): باید کمتر از 30ms باشد.
-
Packet Loss (از دست رفتن بسته): حداکثر ۱% قابل قبول است.
-
MOS (Mean Opinion Score): شاخص کیفیت شنیداری، از ۱ تا ۵ (بالاتر از ۴ خوب است).
روشهای پیادهسازی QoS
-
DiffServ (DSCP): علامتگذاری بستههای VoIP با اولویت بالا در روتر/سوئیچ.
-
Traffic Shaping: محدود کردن یا زمانبندی سایر ترافیکها.
-
VLAN مجزا برای VoIP: جداسازی ترافیک صوتی از دیتا.
-
Priority Queuing (PQ): قرار دادن RTP در صف سریعتر.
تجربههای پروژهای
-
در پروژههای Call Center با بیش از ۱۰۰ کاربر اگر QoS اعمال نشود، کوچکترین دانلود یا آپلود باعث افت کیفیت تماس میشود.
-
بسیاری از روترهای خانگی SIP ALG دارند که نه تنها مفید نیست بلکه کیفیت تماس را خراب میکند؛ در پروژهها همیشه توصیه میکنم این قابلیت غیرفعال شود.
-
در شبکههای بزرگتر، بهتر است یک SBC یا Router Enterprise مثل Cisco/Juniper برای مدیریت QoS قرار داده شود.
نکات برای Asterisk / Issabel
-
در
rtp.conf
بازه پورت RTP را مشخص کن (rtpstart=10000 rtpend=20000
) و همان بازه را در فایروال NAT forward کن. -
در
sip.conf
یاpjsip.conf
مطمئن شوnat
،external_signaling
/external_media
وrtp_symmetric
برای PJSIP بهدرستی تنظیم شده است (برای NAT traversal). -
در شرایط بار بالا، از
rtpengine
یاrtpproxy
برای offload و handling RTP استفاده کن. -
در Asterisk برای بررسی کیفیت تماس از CLI و لاگها استفاده کن:
sip show peers
,core show channels
, و ابزارهای capture مثلsngrep
.
ابزارهای مانیتورینگ و عیبیابی
-
sngrep — آنالیز SIP و مسیر تماس
-
Wireshark — تحلیل RTP/Jitter/Packet loss
-
iperf3 — بررسی ظرفیت لینک قبل از بارگذاری
-
mtr / ping — تشخیص مسیر و تاخیر
-
VoIPmonitor / HOMER / Grafana — مانیتورینگ مقیاسپذیر و داشبورد KPI
-
rtp set debug (Asterisk) — بررسی ردیف RTP (بسته به نسخه Asterisk)
چکلیست سریع جهت راهاندازی QoS (برای اجرا در پروژه)
-
VLAN برای تلفنها ساخته و تلفنها را در VLAN قرار بده.
-
روی access switch پورت تلفن
trust dscp
(یا QoS را trust کن). -
در روتر لبه مقدار priority یا LLQ برای DSCP EF تعریف کن.
-
پورتهای RTP لبه (۱۰۰۰۰–۲۰۰۰۰) را در فایروال باز و NAT forwarded کن.
-
تمام کدکها و ترتیب negotiation را در PBX چک کن.
-
تست با
iperf
وsngrep
و تماس واقعی انجام بده. -
گزارش و alert برای Packet Loss / jitter بیش از thresholds تنظیم کن.