پروتکل SIP چیست؟ راهنمای کامل SIP در ویپ

اســـپان
پروتکل SIP چیست؟ راهنمای کامل SIP در ویپ
پروتکل SIP چیست و تماس ویپ چگونه برقرار می‌شود؟ آشنایی با پیام‌ها، کدهای پاسخ، پورت‌ها، RTP و راه‌حل مشکلات رایج SIP در ایزابل و استریسک.

آنچه در این مقاله می‌خوانید

پروتکل SIP زبان مشترک تقریباً همه تجهیزات ویپ امروزی است؛ از گوشی تلفن تحت شبکه روی میز کارمندان گرفته تا مرکز تلفن ایزابل و خطوطی که از اپراتور تحویل می‌گیرید. اگر قرار است مرکز تلفن سازمان‌تان را راه‌اندازی، عیب‌یابی یا توسعه دهید، فهم درست SIP بیشترین کمک را به شما می‌کند. در این مقاله با زبانی ساده توضیح می‌دهیم SIP چیست، یک تماس SIP چطور برقرار می‌شود و رایج‌ترین مشکلات آن چطور حل می‌شوند.

پروتکل SIP چیست؟

SIP مخفف Session Initiation Protocol به معنی «پروتکل آغاز نشست» است. وظیفه SIP برقراری، مدیریت و پایان دادن به تماس‌ها روی شبکه IP است. نکته مهم این است که SIP خودش صدا را منتقل نمی‌کند؛ فقط درباره تماس «مذاکره» می‌کند: چه کسی با چه کسی تماس می‌گیرد، تماس پذیرفته شد یا نه، از چه کدکی استفاده شود و چه زمانی تماس تمام شود. خود صدا با پروتکل دیگری به نام RTP جابه‌جا می‌شود.

SIP یک استاندارد باز است و ساختاری شبیه پروتکل HTTP دارد؛ پیام‌هایش متنی و خوانا هستند و به همین دلیل عیب‌یابی آن برای کارشناسان شبکه نسبتاً ساده است. همین باز بودن باعث شده تجهیزات برندهای مختلف بتوانند با هم کار کنند؛ مثلاً یک تلفن تحت شبکه گرنداستریم بدون مشکل به مرکز تلفن ایزابل یا هر سانترال SIP دیگری متصل می‌شود.

اجزای اصلی یک شبکه SIP

  • User Agent (UA): هر دستگاهی که تماس می‌گیرد یا جواب می‌دهد؛ مثل گوشی IP، نرم‌افزار تلفن (Softphone) روی موبایل و کامپیوتر، یا گیت‌وی.
  • Registrar: سروری که دستگاه‌ها خود را در آن ثبت (Register) می‌کنند تا مشخص شود هر داخلی در حال حاضر کجای شبکه است.
  • Proxy Server: درخواست‌های تماس را به مقصد درست هدایت می‌کند.
  • مرکز تلفن (IP-PBX): در عمل نقش Registrar و Proxy را با هم دارد و قابلیت‌هایی مثل صف تماس، منشی تلفنی و ضبط مکالمه را هم اضافه می‌کند. ایزابل و استریسک نمونه‌های رایج آن هستند.

اگر هنوز با مفهوم سانترال تحت شبکه آشنا نیستید، پیشنهاد می‌کنیم ابتدا مقاله مرکز تلفن ویپ چیست؟ را بخوانید.

یک تماس SIP چطور برقرار می‌شود؟

فرض کنید داخلی ۱۰۱ با داخلی ۲۰۵ تماس می‌گیرد. مراحل ساده‌شده تماس به این صورت است:

  1. INVITE: گوشی ۱۰۱ یک درخواست INVITE به مرکز تلفن می‌فرستد. داخل این پیام، با فرمتی به نام SDP، کدک‌های صوتی قابل استفاده و آدرس دریافت صدا اعلام می‌شود.
  2. 100 Trying: مرکز تلفن اعلام می‌کند درخواست را دریافت کرده و در حال پیگیری است.
  3. 180 Ringing: گوشی ۲۰۵ زنگ می‌خورد و این وضعیت به تماس‌گیرنده برمی‌گردد.
  4. 200 OK: کاربر ۲۰۵ گوشی را برمی‌دارد و پاسخ مثبت ارسال می‌شود.
  5. ACK: تماس‌گیرنده دریافت پاسخ را تأیید می‌کند و از این لحظه صدا از طریق RTP جریان پیدا می‌کند.
  6. BYE: هر طرف که گوشی را بگذارد، پیام BYE ارسال می‌شود و تماس پایان می‌یابد.

پیام‌ها و کدهای پاسخ مهم SIP

درخواست‌های SIP «متد» نام دارند. مهم‌ترین آن‌ها REGISTER (ثبت دستگاه)، INVITE (شروع تماس)، ACK، BYE (پایان تماس)، CANCEL (لغو تماس پیش از پاسخ) و OPTIONS (بررسی در دسترس بودن طرف مقابل) هستند. پاسخ‌ها هم مثل HTTP کد سه‌رقمی دارند و دانستن چند کد رایج، عیب‌یابی را خیلی سریع‌تر می‌کند:

کد معنی برداشت در عیب‌یابی
180 / 183 زنگ خوردن / پیش‌نمایش صدا تماس به مقصد رسیده است.
200 OK موفق درخواست پذیرفته شد.
401 / 407 نیاز به احراز هویت طبیعی است؛ اما اگر تکرار شود، نام کاربری یا رمز داخلی اشتباه است.
403 Forbidden غیرمجاز دسترسی به مسیر یا شماره مسدود است.
404 Not Found یافت نشد شماره یا داخلی مقصد وجود ندارد.
486 Busy Here مشغول مقصد در حال مکالمه است.
503 Service Unavailable سرویس در دسترس نیست معمولاً مشکل ترانک یا اپراتور.

پورت‌ها و نقش RTP

SIP به‌طور پیش‌فرض از پورت 5060 (UDP یا TCP) و در حالت رمزنگاری‌شده TLS از پورت 5061 استفاده می‌کند. صدای مکالمه اما روی RTP و در بازه‌ای از پورت‌های UDP جابه‌جا می‌شود؛ در استریسک و ایزابل این بازه به‌طور پیش‌فرض 10000 تا 20000 است. بسیاری از مشکلات «تماس وصل می‌شود اما صدا نمی‌آید» از همین‌جا شروع می‌شود: فایروال یا NAT پورت‌های SIP را باز گذاشته اما پورت‌های RTP را بسته است.

مشکلات رایج SIP و راه‌حل آن‌ها

۱. صدای یک‌طرفه یا قطع صدا

شایع‌ترین علت، NAT و تنظیمات نادرست آدرس عمومی سرور است. در ایزابل باید آدرس IP عمومی (External IP) و شبکه‌های داخلی (Local Networks) را درست وارد کنید و بازه پورت RTP را در فایروال باز بگذارید. قابلیت SIP ALG روی مودم‌ها و روترها هم معمولاً بیش از آنکه کمک کند مشکل می‌سازد و بهتر است غیرفعال شود.

۲. ثبت نشدن داخلی (Registration Failed)

نام کاربری، رمز، آدرس سرور و پورت را بررسی کنید. اگر داخلی پس از چند بار تلاش ناموفق دیگر ثبت نمی‌شود، احتمالاً IP آن توسط ابزار امنیتی مثل Fail2ban مسدود شده است.

۳. قطع شدن تماس بعد از ۳۰ ثانیه

این علامت کلاسیک نرسیدن پیام ACK است؛ معمولاً به دلیل NAT یا فایروالی که پاسخ‌ها را درست برنمی‌گرداند.

برای مشکلات کیفیت صدا مثل تأخیر و قطعی، مطالعه مراحل نصب ویپ و بررسی زیرساخت شبکه پیش از راه‌اندازی کمک زیادی می‌کند.

امنیت SIP را جدی بگیرید

سرورهای SIP که مستقیم روی اینترنت باز هستند، هدف دائمی اسکن و تلاش برای حدس رمز داخلی‌ها قرار می‌گیرند. چند اقدام پایه بسیار مؤثر است: رمزهای طولانی و غیرتکراری برای داخلی‌ها، محدود کردن دسترسی به IPهای مجاز، فعال بودن Fail2ban، بستن تماس‌های بین‌المللی برای داخلی‌هایی که نیاز ندارند و استفاده از VPN برای کاربران دورکار. در صورت امکان، از TLS برای رمزنگاری سیگنالینگ و SRTP برای رمزنگاری صدا استفاده کنید.

جمع‌بندی

پروتکل SIP مسئول برقراری و مدیریت تماس است، RTP صدا را منتقل می‌کند و SDP نوع کدک و مسیر صدا را مشخص می‌کند. با شناخت این سه مفهوم، کدهای پاسخ رایج و نقش NAT و فایروال، بخش بزرگی از مشکلات روزمره مرکز تلفن قابل تشخیص و رفع است. اگر برای طراحی، راه‌اندازی یا عیب‌یابی مرکز تلفن سازمان خود به کمک نیاز دارید، کارشناسان خدمات ویپ اسپان در تهران و یزد کنار شما هستند.

سؤالات متداول

تفاوت SIP و VoIP چیست؟

VoIP نام کلی فناوری انتقال صدا روی شبکه IP است و SIP یکی از پروتکل‌هایی است که برای برقراری تماس در این فناوری استفاده می‌شود؛ امروزه رایج‌ترین آن‌ها.

آیا SIP صدا را رمزنگاری می‌کند؟

خیر، به‌طور پیش‌فرض نه. برای رمزنگاری سیگنالینگ از SIP روی TLS و برای رمزنگاری صدا از SRTP استفاده می‌شود که باید هم در مرکز تلفن و هم در گوشی‌ها فعال شوند.

پورت پیش‌فرض SIP را تغییر دهیم؟

تغییر پورت 5060 تعداد اسکن‌های خودکار را کم می‌کند اما جایگزین رمز قوی، فایروال و Fail2ban نیست؛ آن را یک لایه کمکی در نظر بگیرید.

چرا تماس برقرار می‌شود ولی صدا شنیده نمی‌شود؟

در بیشتر موارد پورت‌های RTP در فایروال بسته‌اند یا تنظیمات NAT مرکز تلفن درست نیست. بررسی External IP، Local Networks و غیرفعال کردن SIP ALG معمولاً مشکل را حل می‌کند.

-

موضوع مرتبط: 

یک پاسخ بنویسید

نشانی ایمیل شما منتشر نخواهد شد.فیلد های مورد نیاز علامت گذاری شده اند *