آخرین ویرایش تیر ۷, ۱۴۰۵ حامد کوه فلاح
راهنمای جامع پیامهای SIP و خطاهای رایج در VoIP
آشنایی کامل با SIP Response Codes در ایزابل، استریسک و مراکز تماس
اگر با سیستمهای تلفنی VoIP، ایزابل (Issabel)، استریسک (Asterisk)، FreePBX یا SIP Trunkها کار کرده باشید، احتمالاً بارها با پیامهایی مانند ۴۰۱ Unauthorized، ۴۰۳ Forbidden، ۴۰۴ Not Found یا ۵۰۳ Service Unavailable مواجه شدهاید.
این پیامها بخشی از پروتکل SIP هستند و مهمترین ابزار برای عیبیابی تماسها، داخلیها، سیپ ترانکها و مراکز تماس محسوب میشوند.
در بسیاری از موارد، تنها با مشاهده یک کد SIP میتوان علت اصلی مشکل را تشخیص داد و زمان عیبیابی را از چند ساعت به چند دقیقه کاهش داد.
پروتکل SIP چیست؟
SIP یا Session Initiation Protocol پروتکلی است که برای ایجاد، مدیریت و پایان دادن به ارتباطات چندرسانهای طراحی شده است.
امروزه تقریباً تمام سیستمهای تلفنی VoIP از SIP استفاده میکنند.
این پروتکل مسئول موارد زیر است:
- برقراری تماس
- انتقال تماس
- رجیستر کردن داخلیها
- رجیستر کردن SIP Trunk
- مدیریت وضعیت تماس
- پایان تماس
نکته مهم این است که SIP صدا را منتقل نمیکند.
انتقال صدا توسط پروتکل RTP انجام میشود و SIP فقط وظیفه سیگنالینگ را بر عهده دارد.
به زبان ساده:
SIP = مدیریت تماس
RTP = انتقال صدا
تاریخچه SIP
پروتکل SIP توسط IETF توسعه داده شد و اولین نسخه رسمی آن در سال ۱۹۹۹ منتشر گردید.
هدف اصلی SIP جایگزینی روشهای سنتی سیگنالینگ تلفنی و ایجاد یک استاندارد باز برای ارتباطات اینترنتی بود.
امروزه تقریباً تمامی تجهیزات VoIP از جمله:
- Issabel
- Asterisk
- FreePBX
- Cisco
- Grandstream
- Yealink
- Kamailio
- OpenSIPS
از SIP استفاده میکنند.
ساختار پیامهای SIP
پیامهای SIP به دو دسته اصلی تقسیم میشوند:
SIP Request
درخواستهایی که توسط کلاینت ارسال میشوند.
مهمترین آنها عبارتاند از:
- INVITE
- REGISTER
- ACK
- BYE
- CANCEL
- OPTIONS
- REFER
- MESSAGE
SIP Response
پاسخهایی که توسط سرور یا مقصد ارسال میشوند.
مانند:
- ۱۰۰ Trying
- ۱۸۰ Ringing
- ۲۰۰ OK
- ۴۰۱ Unauthorized
- ۴۰۳ Forbidden
- ۴۰۴ Not Found
- ۴۰۸ Request Timeout
- ۴۸۸ Not Acceptable Here
- ۵۰۳ Service Unavailable
مهمترین پیامهای SIP برای متخصصان VoIP
INVITE
اولین پیام برای برقراری تماس است.
هر تماس SIP با ارسال INVITE آغاز میشود.
زمانی که کاربر شمارهای را شمارهگیری میکند، سیستم تلفنی ابتدا پیام INVITE را ارسال میکند.
REGISTER
برای ثبت داخلی یا SIP Trunk استفاده میشود.
داخلیهای SIP و بسیاری از SIP Trunkها برای فعال شدن نیاز به ارسال REGISTER دارند.
در صورت موفقیت، سرور وضعیت رجیستر شدن را تأیید میکند.
ACK
پس از دریافت پاسخ ۲۰۰ OK ارسال میشود.
این پیام تأیید میکند که تماس برقرار شده است.
BYE
برای پایان دادن به تماس استفاده میشود.
هر زمان یکی از طرفین تماس را قطع کند، پیام BYE ارسال میشود.
OPTIONS
برای بررسی وضعیت مقصد استفاده میشود.
بسیاری از SIP Trunkها و تجهیزات VoIP از OPTIONS برای مانیتورینگ و بررسی دسترسپذیری استفاده میکنند.
آشنایی با SIP Response Codes
پاسخهای SIP مانند HTTP در گروههای مختلف دستهبندی میشوند.
گروه 1xx – پیامهای اطلاعرسانی
۱۰۰ Trying
درخواست دریافت شده و در حال پردازش است.
این پیام کاملاً طبیعی است و نیاز به هیچ اقدامی ندارد.
۱۸۰ Ringing
گوشی مقصد در حال زنگ خوردن است.
۱۸۳ Session Progress
تماس در حال پردازش است.
معمولاً هنگام پخش پیامهای صوتی، IVR یا Early Media مشاهده میشود.
گروه 2xx – موفقیت
۲۰۰ OK
مهمترین پیام SIP
به این معنی است که عملیات با موفقیت انجام شده است.
این پیام میتواند نشاندهنده:
- برقراری موفق تماس
- رجیستر موفق داخلی
- رجیستر موفق SIP Trunk
باشد.
گروه 3xx – تغییر مسیر
۳۰۲ Moved Temporarily
مقصد تماس به مکان دیگری منتقل شده است.
در VoIP کمتر استفاده میشود اما همچنان بخشی از استاندارد SIP است.
گروه 4xx – خطاهای سمت کاربر
این گروه رایجترین خطاهای VoIP را شامل میشود.
۴۰۰ Bad Request
پیام SIP معتبر نیست.
دلایل رایج:
- فرمت اشتباه SIP Header
- Dialplan اشتباه
- تنظیمات نادرست ترانک
۴۰۱ Unauthorized
احراز هویت لازم است.
یکی از رایجترین خطاهای SIP Trunk و داخلیها.
موارد قابل بررسی:
- Username
- Password
- Realm
- Authentication
۴۰۳ Forbidden
سرور درخواست را رد کرده است.
دلایل رایج:
- IP غیرمجاز
- محدودیت اپراتور
- ACL
- محدودیت تماس خروجی
۴۰۴ Not Found
مقصد پیدا نشد.
دلایل رایج:
- شماره داخلی وجود ندارد
- Route اشتباه است
- شماره مقصد اشتباه است
۴۰۷ Proxy Authentication Required
پراکسی نیاز به احراز هویت دارد.
در بسیاری از SIP Trunkها مشاهده میشود.
۴۰۸ Request Timeout
از مقصد پاسخی دریافت نشده است.
دلایل رایج:
- فایروال
- NAT
- قطعی اینترنت
- عدم دسترسی به سرور SIP
۴۸۰ Temporarily Unavailable
کاربر در حال حاضر در دسترس نیست.
۴۸۶ Busy Here
کاربر مشغول است.
معادل بوق اشغال در تلفن سنتی.
۴۸۷ Request Terminated
تماس قبل از پاسخ لغو شده است.
۴۸۸ Not Acceptable Here
یکی از مهمترین خطاهای VoIP
معمولاً به دلیل ناسازگاری Codec یا SDP رخ میدهد.
برای مثال:
- G711
- G729
- Opus
بین دو طرف تماس مشترک نیست.
گروه 5xx – خطاهای سمت سرور
۵۰۰ Server Internal Error
خطای داخلی سرور SIP
برای بررسی باید لاگهای Asterisk یا SBC را مشاهده کنید.
۵۰۳ Service Unavailable
سرویس در دسترس نیست.
یکی از رایجترین خطاهای SIP Trunk
دلایل:
- قطعی اپراتور
- اختلال شبکه
- تکمیل ظرفیت سرور
۵۰۴ Server Timeout
سرور بالادستی پاسخ نمیدهد.
موارد قابل بررسی:
- DNS
- Routing
- اینترنت
- SIP Provider
گروه 6xx – خطاهای سراسری
۶۰۰ Busy Everywhere
تمام مقصدها مشغول هستند.
۶۰۳ Decline
تماس توسط کاربر رد شده است.
رایجترین خطاهای SIP در ایزابل و استریسک
بر اساس تجربه پروژههای VoIP در ایران، بیشترین خطاهای مشاهده شده عبارتاند از:
| کد SIP | علت رایج |
|---|---|
| ۴۰۱ | اشتباه بودن نام کاربری یا رمز عبور |
| ۴۰۳ | عدم مجوز یا IP غیرمجاز |
| ۴۰۴ | شماره یا داخلی اشتباه |
| ۴۰۸ | NAT یا فایروال |
| ۴۸۸ | ناسازگاری Codec |
| ۵۰۳ | اختلال اپراتور |
| ۵۰۴ | مشکل DNS یا اینترنت |
چگونه پیامهای SIP را مشاهده کنیم؟
در Asterisk مبتنی بر Chan SIP:
sip set debug on
در PJSIP:
pjsip set logger on
این دستورات تمام پیامهای SIP را نمایش داده و فرآیند عیبیابی را بسیار سادهتر میکنند.
جمعبندی
پیامهای SIP زبان مشترک تمام تجهیزات VoIP هستند.
اگر با Issabel، Asterisk، FreePBX، Kamailio، SBCها یا SIP Trunkها کار میکنید، تسلط بر SIP Response Codes یکی از مهمترین مهارتهای فنی شما خواهد بود.
در بسیاری از مواقع تنها با مشاهده یک کد مانند ۴۰۱، ۴۰۳، ۴۰۸، ۴۸۸ یا ۵۰۳ میتوان علت اصلی مشکل را تشخیص داد و در کمترین زمان آن را برطرف کرد.
هرچه شناخت شما از پیامهای SIP بیشتر باشد، عیبیابی و مدیریت سیستمهای تلفنی نیز سریعتر و حرفهایتر انجام خواهد شد.















