آخرین ویرایش تیر 7, 1405 حامد کوه فلاح
راهنمای جامع پیامهای SIP و خطاهای رایج در VoIP
آشنایی کامل با SIP Response Codes در ایزابل، استریسک و مراکز تماس
اگر با سیستمهای تلفنی VoIP، ایزابل (Issabel)، استریسک (Asterisk)، FreePBX یا SIP Trunkها کار کرده باشید، احتمالاً بارها با پیامهایی مانند 401 Unauthorized، 403 Forbidden، 404 Not Found یا 503 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
پاسخهایی که توسط سرور یا مقصد ارسال میشوند.
مانند:
- 100 Trying
- 180 Ringing
- 200 OK
- 401 Unauthorized
- 403 Forbidden
- 404 Not Found
- 408 Request Timeout
- 488 Not Acceptable Here
- 503 Service Unavailable
مهمترین پیامهای SIP برای متخصصان VoIP
INVITE
اولین پیام برای برقراری تماس است.
هر تماس SIP با ارسال INVITE آغاز میشود.
زمانی که کاربر شمارهای را شمارهگیری میکند، سیستم تلفنی ابتدا پیام INVITE را ارسال میکند.
REGISTER
برای ثبت داخلی یا SIP Trunk استفاده میشود.
داخلیهای SIP و بسیاری از SIP Trunkها برای فعال شدن نیاز به ارسال REGISTER دارند.
در صورت موفقیت، سرور وضعیت رجیستر شدن را تأیید میکند.
ACK
پس از دریافت پاسخ 200 OK ارسال میشود.
این پیام تأیید میکند که تماس برقرار شده است.
BYE
برای پایان دادن به تماس استفاده میشود.
هر زمان یکی از طرفین تماس را قطع کند، پیام BYE ارسال میشود.
OPTIONS
برای بررسی وضعیت مقصد استفاده میشود.
بسیاری از SIP Trunkها و تجهیزات VoIP از OPTIONS برای مانیتورینگ و بررسی دسترسپذیری استفاده میکنند.
آشنایی با SIP Response Codes
پاسخهای SIP مانند HTTP در گروههای مختلف دستهبندی میشوند.
گروه 1xx – پیامهای اطلاعرسانی
100 Trying
درخواست دریافت شده و در حال پردازش است.
این پیام کاملاً طبیعی است و نیاز به هیچ اقدامی ندارد.
180 Ringing
گوشی مقصد در حال زنگ خوردن است.
183 Session Progress
تماس در حال پردازش است.
معمولاً هنگام پخش پیامهای صوتی، IVR یا Early Media مشاهده میشود.
گروه 2xx – موفقیت
200 OK
مهمترین پیام SIP
به این معنی است که عملیات با موفقیت انجام شده است.
این پیام میتواند نشاندهنده:
- برقراری موفق تماس
- رجیستر موفق داخلی
- رجیستر موفق SIP Trunk
باشد.
گروه 3xx – تغییر مسیر
302 Moved Temporarily
مقصد تماس به مکان دیگری منتقل شده است.
در VoIP کمتر استفاده میشود اما همچنان بخشی از استاندارد SIP است.
گروه 4xx – خطاهای سمت کاربر
این گروه رایجترین خطاهای VoIP را شامل میشود.
400 Bad Request
پیام SIP معتبر نیست.
دلایل رایج:
- فرمت اشتباه SIP Header
- Dialplan اشتباه
- تنظیمات نادرست ترانک
401 Unauthorized
احراز هویت لازم است.
یکی از رایجترین خطاهای SIP Trunk و داخلیها.
موارد قابل بررسی:
- Username
- Password
- Realm
- Authentication
403 Forbidden
سرور درخواست را رد کرده است.
دلایل رایج:
- IP غیرمجاز
- محدودیت اپراتور
- ACL
- محدودیت تماس خروجی
404 Not Found
مقصد پیدا نشد.
دلایل رایج:
- شماره داخلی وجود ندارد
- Route اشتباه است
- شماره مقصد اشتباه است
407 Proxy Authentication Required
پراکسی نیاز به احراز هویت دارد.
در بسیاری از SIP Trunkها مشاهده میشود.
408 Request Timeout
از مقصد پاسخی دریافت نشده است.
دلایل رایج:
- فایروال
- NAT
- قطعی اینترنت
- عدم دسترسی به سرور SIP
480 Temporarily Unavailable
کاربر در حال حاضر در دسترس نیست.
486 Busy Here
کاربر مشغول است.
معادل بوق اشغال در تلفن سنتی.
487 Request Terminated
تماس قبل از پاسخ لغو شده است.
488 Not Acceptable Here
یکی از مهمترین خطاهای VoIP
معمولاً به دلیل ناسازگاری Codec یا SDP رخ میدهد.
برای مثال:
- G711
- G729
- Opus
بین دو طرف تماس مشترک نیست.
گروه 5xx – خطاهای سمت سرور
500 Server Internal Error
خطای داخلی سرور SIP
برای بررسی باید لاگهای Asterisk یا SBC را مشاهده کنید.
503 Service Unavailable
سرویس در دسترس نیست.
یکی از رایجترین خطاهای SIP Trunk
دلایل:
- قطعی اپراتور
- اختلال شبکه
- تکمیل ظرفیت سرور
504 Server Timeout
سرور بالادستی پاسخ نمیدهد.
موارد قابل بررسی:
- DNS
- Routing
- اینترنت
- SIP Provider
گروه 6xx – خطاهای سراسری
600 Busy Everywhere
تمام مقصدها مشغول هستند.
603 Decline
تماس توسط کاربر رد شده است.
رایجترین خطاهای SIP در ایزابل و استریسک
بر اساس تجربه پروژههای VoIP در ایران، بیشترین خطاهای مشاهده شده عبارتاند از:
| کد SIP | علت رایج |
|---|---|
| 401 | اشتباه بودن نام کاربری یا رمز عبور |
| 403 | عدم مجوز یا IP غیرمجاز |
| 404 | شماره یا داخلی اشتباه |
| 408 | NAT یا فایروال |
| 488 | ناسازگاری Codec |
| 503 | اختلال اپراتور |
| 504 | مشکل 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 یکی از مهمترین مهارتهای فنی شما خواهد بود.
در بسیاری از مواقع تنها با مشاهده یک کد مانند 401، 403، 408، 488 یا 503 میتوان علت اصلی مشکل را تشخیص داد و در کمترین زمان آن را برطرف کرد.
هرچه شناخت شما از پیامهای SIP بیشتر باشد، عیبیابی و مدیریت سیستمهای تلفنی نیز سریعتر و حرفهایتر انجام خواهد شد.














