خطای Registration Failed در SIP Trunk چیست؟ دلایل، عیبیابی و روش رفع مشکل
خطای Registration Failed در SIP Trunk چیست؟
بعد از راهاندازی SIP Trunk روی ایزابل، Asterisk یا FreePBX، اگر با پیام Registration Failed مواجه شدید، یعنی مرکز تلفن نتوانسته خودش را با سرور SIP مخابرات یا سرویسدهنده ثبت کند. به این فرآیند Register میگویند. بدون آن، هیچ تماسی برقرار نمیشود - نه ورودی، نه خروجی.
اگر هنوز با مفهوم SIP Trunk آشنا نیستید، ساده بگویم: SIP Trunk خطی است که مرکز تلفن شما را به شبکه عمومی تلفن وصل میکند. Register شدن یعنی مرکز تلفن به سرور اعلام میکند «من آنلاینم و آماده دریافت تماس هستم.» وقتی این فرآیند شکست میخورد، وضعیت Trunk در پنل نمایش میدهد: Registration Failed، Request Timeout، Authentication Failed، یا فقط Unreachable.
خطای رجیستر نشدن SIP Trunk ممکن است یکباره رخ بدهد یا متناوب باشد. Trunk گاهی Register میشود، بعد از چند دقیقه Offline میشود. هر کدام از این رفتارها به علت متفاوتی اشاره دارد.
دلایل اصلی رجیستر نشدن SIP Trunk
اطلاعات احراز هویت اشتباه
رایجترین دلیل این خطا. یک حرف اشتباه در Username، یک فاصله اضافی در Password، یا فرمت غلط Register String کافی است تا سرور درخواست را رد کند. وقتی SIP Trunk را از مخابرات یا سرویسدهندهای میگیرید، معمولاً یک فایل اطلاعات حساب دریافت میکنید. آن را عیناً وارد کنید.
Register String فرمت خاصی دارد. معمولاً این شکل است: username:password@sip-server یا username:password@sip-server/username. اگر یکی از این بخشها جا بیفتد، Asterisk اصلاً REGISTER نمیفرستد.
بعد از تأیید اطلاعات احراز هویت، سؤال بعدی این است: اگر همه چیز درست وارد شده، پس چرا خطا برمیگردد؟
مشکل شبکه و دسترسی به سرور SIP
گاهی تنظیمات SIP کاملاً درست است، ولی سرور اصلاً نمیتواند به آدرس سرور SIP برسد. Gateway اشتباه، DNS قطع، یا مسیر شبکهای که جایی بسته شده - هر کدام باعث میشوند درخواست Register به مقصد نرسد.
یک تست سریع: از خود سرور Asterisk، دستور ping sip-server-address را اجرا کنید. اگر پاسخ نگرفتید، مشکل از لایه شبکه است و باید آنجا را بررسی کنید، نه تنظیمات SIP.
Firewall یا مسدود بودن پورت ۵۰۶۰
پروتکل SIP از پورت UDP 5060 استفاده میکند. اگر Firewall سرور، روتر، یا تنظیمات امنیتی دیتاسنتر این پورت را مسدود کرده باشد، SIP Trunk هرگز Register نخواهد شد. این مشکل در سرورهای ابری خیلی رایج است چون Security Group یا ACL اشتباه پیکربندی میشود.
علاوه بر پورت ۵۰۶۰، بازه پورتهای RTP هم باید باز باشد. بسته شدن پورتهای RTP باعث میشود تماس برقرار شود ولی صدا نیاید - که خودش مشکل جداگانهای است.
مشکل NAT
اگر مرکز تلفن پشت مودم یا روتر قرار دارد و IP داخلی دارد، NAT میتواند کابوس SIP بشود. مشکل اینجاست: مرکز تلفن درخواست REGISTER میفرستد و آدرس پاسخ را IP داخلیاش اعلام میکند، مثلاً 192.168.1.10. سرور SIP پاسخ را به آن IP میفرستد که از اینترنت قابل دسترس نیست. نتیجه: Registration انجام میشود ولی پاسخ برنمیگردد.
علائم کلاسیک مشکل NAT: Trunk چند دقیقه Register میشود و بعد Offline میشود. یا تماس برقرار میشود ولی صدا نمیآید. راهحل: در تنظیمات SIP، مقدار External IP را با IP واقعی اینترنت پر کنید، Local Network را هم وارد کنید، و NAT=yes را فعال نگه دارید.
Transport Protocol اشتباه
SIP میتواند روی UDP، TCP یا TLS کار کند. اگر سرویسدهنده انتظار UDP دارد ولی مرکز تلفن TCP میفرستد، REGISTER رد میشود. اکثر SIP Trunkهای مخابرات ایران روی UDP 5060 کار میکنند. مطمئن شوید Transport در تنظیمات Trunk با چیزی که سرویسدهنده اعلام کرده مطابقت دارد.
آدرس SIP Server اشتباه یا ظرفیت پر
گاهی آدرس Host یا Proxy غلط وارد شده. یا در برخی سرویسها تعداد کانالهای همزمان محدود است و وقتی ظرفیت پر باشد، Registration انجام نمیشود. این حالت را معمولاً سرویسدهنده میتواند تأیید کند.
عیبیابی با Asterisk CLI
برای تشخیص دقیق مشکل، وارد محیط CLI استریسک شوید:
astrisk -rvvv
برای دیدن وضعیت Trunk اگر از SIP legacy استفاده میکنید:
sip show peers
اگر از PJSIP استفاده میکنید:
pjsip show endpoints
وضعیت باید Registered نشان بدهد. اگر Unregistered، Unreachable یا Request Sent بود، مشکل هنوز برطرف نشده.
برای دیدن ترافیک SIP در لحظه، SIP Debug را فعال کنید:
sip set debug on
بعد در خروجی دنبال REGISTER بگردید. دو سؤال مهم: آیا درخواست REGISTER ارسال میشود؟ آیا پاسخ 200 OK دریافت میشود؟ جواب این دو سؤال مشخص میکند مشکل از کجاست.
کدهای خطا و معنی آنها
وقتی SIP Debug فعال است، کدهایی میبینید که هر کدام نشانهای هستند:
401 Unauthorized یعنی سرور میگوید هویتات را ثابت کن. معمولاً Username یا Password اشتباه است. یا Authentication ID با Username تفاوت دارد.
403 Forbidden یعنی سرور هویت را میشناسد ولی اجازه نمیدهد. دو حالت دارد: IP سرور شما در لیست مجاز نیست، یا سرویس به هر دلیلی محدود شده.
408 Request Timeout یعنی درخواست رفته ولی پاسخ نیامده. معمولاً مشکل شبکه، Firewall بسته، یا خود سرور SIP است که پاسخ نمیدهد.
404 Not Found یعنی آدرس SIP Server اشتباه است. Trunk به جای اشتباهی هدایت شده.
رفع خطا در ایزابل (Issabel)
در پنل ایزابل مسیر را طی کنید: PBX → PBX Configuration → Trunks، سپس SIP Trunk مورد نظر را انتخاب کنید.
بخش Peer Details را با دقت بررسی کنید. هر خط اهمیت دارد. مخصوصاً type، host، username، secret و register. بعد از هر تغییر، دکمه Submit را بزنید و بعد Apply Config کنید.
اگر بعد از ذخیره تغییری نکرد، از CLI این دستور را اجرا کنید:
asterisk -rx "sip reload"
نکتهای که خیلیها فراموش میکنند: ایزابل گاهی کش تنظیمات قدیمی را نگه میدارد. اگر از پنل Apply Config زدید و تغییری نشد، حتماً از CLI هم reload کنید.
برای راهاندازی SIP Trunk روی ایزابل از ابتدا یا وقتی مشکل پیچیدهتر از تنظیمات ساده است، میتوانید از خدمات راهاندازی و پشتیبانی SIP Trunk مخابرات ما استفاده کنید.
چکلیست سریع قبل از تماس با پشتیبانی
این موارد را به ترتیب بررسی کنید. اکثر مشکلات Registration Failed با همین لیست حل میشود:
Username را از سرویسدهنده مجدد تأیید بگیرید و عیناً وارد کنید، بدون فاصله اضافه.
Password یا Secret را دوباره چک کنید.
Register String را با فرمت صحیح وارد کنید.
آدرس SIP Server یا Host را تأیید کنید.
پورت ۵۰۶۰ UDP روی Firewall سرور و روتر باز باشد.
اگر پشت مودم هستید، External IP را تنظیم کنید و NAT=yes فعال باشد.
Transport را روی UDP تنظیم کنید.
با ping به آدرس سرور SIP، ارتباط شبکه را تست کنید.
لاگ Asterisk را بررسی کنید و کد خطا را ببینید.
با سرویسدهنده چک کنید که آیا IP سرورتان باید ثبت شود.
اگر همه موارد را بررسی کردید و مشکل ادامه داشت، کمک یک متخصص خیلی سریعتر از ساعتها آزمون و خطا مشکل را حل میکند. بخش خدمات VoIP ما شامل عیبیابی همین نوع مشکلات است.
سوالات متداول
چرا SIP Trunk مخابرات وصل نمیشود حتی با تنظیمات درست؟
چند دلیل رایج دارد که اغلب نادیده گرفته میشوند. اول اینکه برخی سرویسدهندههای SIP در ایران IP سرور را باید از قبل در سیستمشان ثبت کنند. اگر IP ثبت نشده باشد، حتی با اطلاعات کاملاً درست هم 403 Forbidden میگیرید. دوم، SIP Trunkهای تازه گرفتهشده گاهی ۱ تا ۲ روز طول میکشد تا کاملاً فعال شوند. با سرویسدهنده تماس بگیرید و وضعیت فعالسازی را بپرسید.
چرا SIP Trunk بعد از چند دقیقه Offline میشود؟
این رفتار تقریباً همیشه علامت مشکل NAT است. Session برقرار میشود ولی Firewall یا NAT جلسه را پس از مدتی میبندد. گزینه Qualify=yes را فعال کنید تا Asterisk مرتباً وضعیت Trunk را بررسی کند و ارتباط زنده بماند. همچنین Session Timers را بررسی کنید - بعضی Firewallها جلسههای بیتحرک را میبندند.
علت خطای Authentication Failed در SIP Trunk چیست؟
Authentication Failed معمولاً همان کد 401 یا 403 است. دو احتمال دارد: یا Username و Password اشتباه است، یا IP سرورتان در لیست مجاز سرویسدهنده نیست. با سرویسدهنده چک کنید آیا IP باید از قبل ثبت شود. اگر اخیراً IP سرور تغییر کرده، باید IP جدید را ثبت کنید.
آیا ریستارت کردن Asterisk مشکل Registration Failed را حل میکند؟
به صورت موقت شاید. ریستارت state قدیمی را پاک میکند و دوباره تلاش میکند Register شود. ولی اگر مشکل از تنظیمات یا شبکه باشد، بعد از چند ثانیه دوباره همان خطا برمیگردد. بهجای ریستارت مکرر، از SIP Debug استفاده کنید تا ریشه مشکل مشخص شود.
رفع خطای SIP Registration Failed در Asterisk روی FreePBX چه تفاوتی با Issabel دارد؟
تفاوت اصلی در رابط کاربری است. در FreePBX از طریق Connectivity → Trunks به تنظیمات میرسید. اگر PJSIP استفاده میکنید، بخشهای تنظیمات با SIP legacy فرق دارد. ولی منطق عیبیابی یکسان است: CLI → debug → بررسی کد خطا → رفع دلیل.
نیاز به کمک تخصصی دارید؟
اگر بعد از همه این مراحل مشکل هنوز برطرف نشده، احتمالاً یک عامل خاص محیطی وجود دارد که نیاز به بررسی مستقیم دارد. تیم ما در راهاندازی، تنظیم و عیبیابی SIP Trunk مخابرات روی ایزابل، Asterisk و FreePBX تجربه عملی دارد. برای دریافت مشاوره و رفع مشکل، از صفحه راهاندازی و پشتیبانی SIP Trunk مخابرات با ما تماس بگیرید.