تجربه یک تماس تلفنی که در آن شما صدای مخاطب را میشنوید اما او صدایی از شما دریافت نمیکند، یکی از کلافهکنندهترین چالشها در دنیای VoIP است. صدای یک طرفه در ایزابل اغلب نه به خاطر خرابی سختافزار، بلکه به دلیل تضاد در پروتکلهای انتقال داده و تنظیمات شبکه رخ میدهد. وقتی تماسهای داخلی بدون مشکل برقرار میشوند اما تماسهای شهری یا بینالمللی دچار اختلال صوتی میشوند، باید به سراغ ساختار شبکه و تنظیمات واسطهگرها رفت. در ادامه، این مشکل را ریشهیابی و گامبهگام بررسی میکنیم.
برای اطلاع از خدمات نصب و راه اندازی ویپ سرور ایزابل شایگان کلیک کنید.
علتهای اصلی صدای یک طرفه در Issabel
وقتی با مشکل صدای ایزابل مواجه میشوید، اولین چیزی که باید در ذهن داشته باشید این است: پروتکل SIP مسئول مدیریت تماس (زنگ زدن و قطع کردن) است، اما پروتکل RTP وظیفه حمل صوت را بر عهده دارد. در اکثر سناریوهای صدای یکطرفه، SIP به درستی کارش را انجام میدهد (تلفن زنگ میخورد)، اما بستههای RTP که حاوی دیتای صوتی هستند، به مقصد نمیرسند یا در مسیر بلاک میشوند. این مشکل معمولاً در تماس VoIP که از بستر اینترنت یا مودم عبور میکند، شایعتر است.
نقش SIP و RTP در صدای یک طرفه
درک این نکته کلیدی است: سیگنالینگ SIP شامل آدرسهای IP داخلی شماست. وقتی این بستهها به روتر میرسند، اگر ترجمه آدرس شبکه (NAT) به درستی انجام نشود، اطلاعات هدر بستهها تغییر نمیکند. در نتیجه، مقصد نمیداند صدا را باید به کدام آدرس IP عمومی یا داخلی برگرداند. این عدم تطابق باعث میشود یکی از طرفین نتواند بسته صوتی را دریافت کند.
بررسی NAT در ایزابل
اصلیترین متهم عیب یابی ایزابل، پیکربندی اشتباه NAT است. در پنل ایزابل به مسیر PBX Configuration و بخش تنظیمات داخلی (Extensions) بروید. حتماً تنظیمات مربوط به NAT را روی yes یا force_rport قرار دهید. همچنین در فایل sip_general_custom.conf یا از طریق تنظیمات کلی SIP، مطمئن شوید که externip و localnet به درستی تعریف شدهاند. این تنظیم به سرور میگوید که باید بستههای صوتی را با IP عمومی شما بستهبندی کند.
بررسی پورتهای RTP در ایزابل
صوت در پروتکل RTP روی رنج خاصی از پورتها منتقل میشود. اگر این پورتها در سرور یا فایروال شبکه باز نباشند، صدا قطع میشود. بهطور پیشفرض این رنج در ایزابل بین ۱۰,۰۰۰ تا ۲۰,۰۰۰ است. در فایل rtp.conf میتوانید این رنج را ببینید. اطمینان حاصل کنید که این پورتها هم در سمت سرور و هم در مودم یا فایروال لبه شبکه (Edge Router) به سمت IP ایزابل Port Forward شدهاند.
بررسی تنظیمات Firewall
گاهی اوقات فایروال خودِ سرور ایزابل (iptables) یا فایروال سختافزاری شبکه، بستههای UDP که مربوط به RTP هستند را به عنوان ترافیک ناخواسته شناسایی و مسدود میکند. در هنگام تست، برای لحظاتی فایروال ایزابل را غیرفعال کنید تا ببینید آیا مشکل حل میشود یا خیر. اگر حل شد، باید قوانین فایروال را دقیقتر تنظیم کنید تا اجازه عبور ترافیک از IPهای مجاز را بدهد.
بررسی SIP ALG در روتر
مشکل صوتی VoIP در بسیاری از مواقع به یک قابلیت مزاحم به نام SIP ALG در مودمها و روترها برمیگردد. این قابلیت ادعا میکند که به پروتکل SIP کمک میکند، اما در واقع با تغییر غیرضروری در بستههای SIP، باعث ایجاد اختلال در ارتباط RTP میشود. اکیداً توصیه میشود وارد تنظیمات مودم خود شوید و گزینه SIP ALG را پیدا کرده و آن را غیرفعال (Disable) کنید. این اقدام به تنهایی بسیاری از مشکلات صدای یکطرفه را برطرف میکند.
بررسی تنظیمات شبکه و IP
آدرسدهی اشتباه یکی دیگر از دلایل است. اگر ایزابل شما در شبکه داخلی است و از طریق NAT به بیرون متصل شده، حتماً باید localnet را بر اساس رنج IP شبکه داخلی (مثلاً 192.168.1.0/255.255.255.0) در تنظیمات SIP تعریف کرده باشید. اگر این رنج درست نباشد، سرور نمیتواند تشخیص دهد که کدام ترافیک داخلی است و کدام خارجی، و در نتیجه در مسیریابی بستههای صوتی دچار سردرگمی میشود.
جمعبندی؛ چرا در ایزابل صدا یک طرفه است؟
به طور خلاصه، صدای یکطرفه در ایزابل اغلب به معنای گم شدن مسیر بازگشت صوت است. با غیرفعال کردن SIP ALG، تنظیم درست NAT در فایلهای کانفیگ، و اطمینان از باز بودن پورتهای RTP در مودم و فایروال، میتوانید این مشکل را ریشهکن کنید. همیشه قبل از تغییرات اساسی، از تنظیمات خود بکآپ بگیرید تا در صورت بروز خطا، به وضعیت قبلی بازگردید.
سوالات متداول
چرا در تماس داخلی صدا دوطرفه است اما در تماس خارجی یکطرفه میشود؟
دلیل این اتفاق تفاوت مسیر است. تماسهای داخلی در شبکه محلی (LAN) میمانند و با NAT یا روتر برخورد نمیکنند. اما تماس خارجی باید از سد مودم و تنظیمات NAT عبور کند؛ بنابراین تنظیمات IP در آنجا حیاتی میشود.
آیا SIP ALG باعث صدای یک طرفه میشود؟
بله، در اکثر مودمهای ADSL یا فیبر نوری، SIP ALG با دستکاری ناقص بستههای SIP باعث میشود طرف مقابل نتواند IP مقصد برای ارسال صدا را پیدا کند و در نتیجه صدا یکطرفه میشود.
چگونه پورتهای RTP را در ایزابل بررسی کنیم؟
شما میتوانید با استفاده از دستور rtp set debug on در محیط CLI استریسک (Asterisk)، مشاهده کنید که آیا بستههای صوتی هنگام تماس در حال تبادل هستند یا خیر. اگر بستهای در یک سمت مشاهده نمیشود، مشکل از مسدود بودن پورت یا مسیر شبکه است.
چرا بعد از تغییر IP عمومی صدای تماس یکطرفه شده است؟
دلیلش این است که IP قدیمی در تنظیمات NAT یا externip ایزابل باقی مانده است. باید در تنظیمات کلی SIP، IP جدید را جایگزین کنید تا ایزابل بداند ترافیک صوتی را باید به مقصد جدید هدایت کند.










