چرا تماس VoIP یکطرفه است؟ علتها و راهنمای عیبیابی مرحلهبهمرحله
چند روز پیش یک کارشناس شبکه از ما پرسید: «تماس وصل میشود، اما صدا نمیآید.» این جمله برای هر کسی که با ویپ کار کرده کاملاً آشناست. صدای یکطرفه یکی از رایجترین خطاهایی است که در سیستمهای VoIP پیش میآید — و اگر علت را ندانید، ساعتها وقت از دست میدهید.
این راهنما عملی است. نه تئوری اضافه. مستقیم سراغ مشکل میرویم.
مشکل دقیقاً چیست؟
قبل از هر چیز، باید دقیقاً بدانید مشکل کجاست. سه سوال از خودتان بپرسید:
شما صدای طرف مقابل را نمیشنوید؟ یا طرف مقابل صدای شما را؟ یا هیچکدام؟
تماس داخلی است — بین دو داخلی مرکز تلفن — یا بیرونی از طریق سیپ ترانک به خارج از سازمان؟
مشکل روی همه تماسهاست یا فقط با بعضی گوشیها یا مقصدها؟
جواب این سوالها مسیر عیبیابی را کوتاه میکند. مثلاً اگر تماسهای داخلی درست کار میکنند اما خارجیها مشکل دارند، احتمال زیادی هست که مشکل در تنظیمات سیپ ترانک یا NAT باشد. این تفکیک ساده است اما خیلیها از آن رد میشوند.
چرا RTP؟ ریشه اصلی صدای یکطرفه
این بخش را دقیق بخوانید. اینجاست که بیشتر کارشناسها اشتباه میکنند — و ساعتها وقت هدر میدهند.
در یک تماس ویپ، دو پروتکل جداگانه با هم کار میکنند:
SIP — پروتکل کنترل تماس. کارش این است که بگوید «زنگ بزن»، «قطع کن»، «رد کن». وقتی تلفن زنگ میزند و وصل میشود، SIP دارد کار میکند.
RTP — پروتکلی که جریان صوتی واقعی را منتقل میکند. صدایی که میشنوید همین است.
مشکل اینجاست: SIP ممکن است کاملاً درست کار کند و تماس برقرار شود، اما RTP به یک سمت نرسد. نتیجه؟ صدای یکطرفه.
مدل کلی این است: SIP برقرار است → تماس وصل میشود → RTP به یک سمت نمیرسد → صدای یکطرفه.
وقتی بدانید مشکل RTP است، میدانید کجا نگاه کنید. این یک قدم بزرگ است.
بررسی SIP Signaling
اگر تماس اصلاً برقرار نمیشود، مشکل SIP است. اما اگر تماس وصل میشود — حتی بدون صدا — SIP احتمالاً سالم است.
برای اطمینان، لاگهای مرکز تلفن خود را بررسی کنید. در Asterisk یا FreePBX دنبال پیامهای 200 OK و ACK بگردید. اگر اینها را دیدید، SIP درست کار میکند.
حالا سوال بعدی مطرح میشود: اگر SIP خوب است، چرا صدا نمیرسد؟
بررسی RTP و جریان صوتی
داخل پیامهای SIP یک بخش به اسم SDP وجود دارد که هر طرف تماس در آن اعلام میکند: «میخواهم RTP را روی این آدرس IP و این پورت دریافت کنم.»
اگر این آدرس اشتباه باشد — مثلاً آدرس IP خصوصی پشت NAT — بستههای RTP به مقصد اشتباه میروند و یک طرف صدا نمیشنود.
در تنظیمات مرکز تلفن گزینه externip یا external_media_address را پیدا کنید. اگر سرور پشت NAT است و این آدرس درست تنظیم نشده، این احتمالاً علت مشکل است.
سوال بعدی: اگر این آدرس درست است، مشکل از کجاست؟
NAT — متهم اصلی در اکثر موارد
بیشتر موارد صدای یکطرفه در ویپ به NAT برمیگردد. این را از تجربه میگویم. خصوصاً وقتی IP Phone یا Softphone پشت روتر سازمانی یا حتی روتر خانگی قرار دارد.
ماجرا ساده است: گوشی آدرس IP خصوصی خود را در SDP معرفی میکند (مثلاً ۱۹۲.۱۶۸.۱.۱۰۰). طرف مقابل که بیرون از شبکه است نمیتواند به این آدرس دسترسی داشته باشد. RTP از یک سمت میآید اما نمیداند برگردد کجا. یک طرف میشنود، یک طرف نمیشنود.
راهحلهای رایج:
— تنظیم STUN روی گوشی تا آدرس عمومی خود را پیدا کند
— تنظیم externhost در مرکز تلفن
— استفاده از TURN server برای هدایت ترافیک RTP از طریق واسط
— استفاده از sip trunk روی فیبر با IP ثابت که مشکل NAT را بهطور پایهای حل میکند
اگر از sip trunk روی فیبر با IP ثابت استفاده میکنید، بیشتر مشکلهای NAT خودبخود برطرف میشوند چون هر دو طرف آدرسهای عمومی ثابت دارند.
Firewall و پورتهای لازم
بعد از NAT، فایروال دومین مظنون معمول است.
پورتهایی که باید باز باشند: UDP و TCP روی ۵۰۶۰ برای SIP، و UDP روی محدوده ۱۰۰۰۰ تا ۲۰۰۰۰ برای RTP. این محدوده در هر مرکز تلفن قابل تنظیم است؛ اول بررسی کنید که مرکز تلفن شما از چه پورتهایی استفاده میکند.
نکته مهمی که خیلیها نادیده میگیرند: هم ترافیک ورودی و هم خروجی RTP باید مجاز باشد. بعضی فایروالها فقط یک سمت را باز میکنند و همین کافی است که صدا یکطرفه شود.
SIP ALG — روتری که مشکلساز است
SIP ALG یا Application Layer Gateway یک ویژگی است که در خیلی از روترهای خانگی و سازمانی پیشفرض فعال است. قرار بود به عبور SIP از NAT کمک کند — اما در عمل بیشتر اوقات مشکل ایجاد میکند، نه اینکه حل کند.
SIP ALG پیامهای SIP را تغییر میدهد. آدرسهای IP داخل هدرها و SDP را جابجا میکند. این تغییرات اغلب اشتباه است و نتیجه مستقیم آن صدای یکطرفه یا قطع تماس است.
اگر روتر شما SIP ALG دارد، غیرفعالش کنید. در اکثر روترهای سیسکو، میکروتیک و حتی روترهای خانگی این گزینه در تنظیمات فایروال یا NAT پیدا میشود. بعد از غیرفعال کردن، تفاوت را همان لحظه میبینید.
Codec — وقتی زبان طرفین یکی نیست
Codec مشکل کمتر رایجی است اما ارزش بررسی دارد، خصوصاً وقتی سیپ ترانک جدید راهاندازی شده.
اگر دو طرف نتوانند Codec مشترک پیدا کنند، جریان صوتی یا برقرار نمیشود یا ناقص است. در مرکز تلفن بررسی کنید که Codecهای مشترکی بین گوشی، مرکز، و اپراتور سیپ ترانک وجود داشته باشد.
G.711 (ulaw یا alaw) تقریباً همهجا پشتیبانی میشود. اگر مطمئن نیستید، از همین شروع کنید. G.729 فشردهتر است اما نیاز به مجوز دارد و همه جا پشتیبانی نمیشود.
تست با Softphone یا داخلی دیگر
قبل از اینکه وقت بیشتری صرف کنید، یک تست سریع انجام دهید: یک Softphone روی کامپیوتر همان شبکه نصب کنید، وارد مرکز تلفن شوید و تماس بگیرید.
اگر Softphone هم مشکل داشته باشد، مشکل در مرکز تلفن یا تنظیمات سرور است. اگر Softphone درست کار کند اما IP Phone فیزیکی مشکل دارد، مشکل در تنظیمات آن دستگاه خاص است — بهجای مرکز تلفن، آن گوشی را بررسی کنید.
این تست ساده خیلی سریع محدوده مشکل را مشخص میکند.
Packet Capture با Wireshark
اگر همه مراحل بالا را طی کردید و هنوز مشکل دارید، وقت Wireshark است.
Wireshark را روی سرور یا سیستمی که تماس را مدیریت میکند اجرا کنید. یک تماس با مشکل برقرار کنید و ترافیک را ضبط کنید. بعد فیلتر rtp را اعمال کنید.
ببینید RTP از کدام جهتها رد و بدل میشود. اگر فقط یک جهت RTP میبینید، میدانید کدام طرف بستهها را نمیفرستد یا نمیگیرد. Wireshark حتی میتواند Jitter، Packet Loss و جهت جریان را هم نشان دهد. این ابزار دقیقترین راه برای پیدا کردن محل مشکل است.
صدای یکطرفه مشکلی نیست که یک جواب کلی داشته باشد. اما با این مراحل، تقریباً همیشه میتوان علت را پیدا کرد. اگر زیرساخت ویپ سازمان شما نیاز به بررسی حرفهای دارد، تیم پرشینارتباطات آماده کمک است.
سیپ ترانک چیست و چه تفاوتی با شماره تلفن و IP PBX دارد؟ کاربردها، نحوه اتصال به مرکز تلفن و نقش آن در بهبود عملکرد مرکز تماس سازمانی را کامل توضیح میدهیم.
مرکز تلفن (PBX) سیستمی است که تماسهای ورودی و خروجی یک سازمان را مدیریت میکند. انواع، کاربردها و تفاوت مرکز تماس با کال سنتر و سیستم ویپ را بیاموزید.