تماس خروجی SIP از Yealink چگونه شروع میشود؟
وقتی شمارهای را وارد میکنید، تلفن ابتدا Dial Plan داخلی خود را بررسی میکند. Replace Rule، Area Code، Dial Now و Block Out میتوانند شماره نهایی را قبل از ارسال تغییر دهند یا حتی جلوی ارسال آن را بگیرند.
اگر شماره معتبر باشد، تلفن یک پیام INVITE ایجاد میکند. Request-URI معمولاً شماره مقصد و دامنه یا SIP Server را در خود دارد.
نمونه ساده:
INVITE sip:02112345678@pbx.example.com SIP/2.0
بعد از دریافت INVITE، PBX یا SIP Provider باید تصمیم بگیرد این شماره از کدام Route و Trunk خارج شود. اگر Dial Plan تلفن یا Route سرور شماره را قبول نکند، تماس قبل از Ringing متوقف میشود.
اولین سؤال: آیا Yealink اصلاً INVITE میفرستد؟
این سؤال مهمترین نقطه شروع است.
اگر در PCAP یا Syslog هیچ INVITE نمیبینید، هنوز لازم نیست سراغ Trunk و Carrier بروید. مشکل احتمالاً داخل خود تلفن است؛ مثلاً Dial Plan، Block Out، انتخاب Account یا فرمت شماره.
اگر INVITE ارسال میشود، تلفن وظیفه اولیه خود را انجام داده و باید پاسخ SIP Server را بررسی کنید.
| وضعیت | احتمال اصلی | قدم بعدی |
|---|---|---|
| هیچ INVITE ارسال نمیشود | Dial Plan، Block Out، Account یا شماره | تنظیمات خود تلفن را بررسی کنید |
| INVITE ارسال میشود ولی پاسخ نیست | شبکه، فایروال یا SIP Server | PBX Log و PCAP سمت سرور را بررسی کنید |
| 403 دریافت میشود | مجوز یا سیاست سرور | Route، Caller ID، ACL و Trunk را بررسی کنید |
| 404 دریافت میشود | مقصد یا Route پیدا نشده | شماره و Dial Plan سمت PBX را بررسی کنید |
| 484 دریافت میشود | شماره ناقص است | فرمت و طول شماره را اصلاح کنید |
| 486 دریافت میشود | مقصد Busy است | وضعیت مقصد را بررسی کنید |
| 488 دریافت میشود | SDP یا Codec ناسازگار است | Codec و SRTP را مقایسه کنید |
| 503 دریافت میشود | سرویس یا Trunk در دسترس نیست | Carrier، Trunk و PBX Log را بررسی کنید |
مرحله اول: Dial Plan خود Yealink را بررسی کنید
Yealink برای پردازش شماره قبل از تماس چند قابلیت دارد:
Replace Rule: بخشی از شماره را قبل از ارسال تغییر میدهد.
Dial Now: وقتی شماره با الگوی مشخصی Match شود، تلفن بدون نیاز به فشردن Send تماس را شروع میکند.
Area Code: پیششماره مشخصی را به بعضی شمارهها اضافه میکند.
Block Out: جلوی تماس با شمارههای خاص را میگیرد.
در رابط وب بسیاری از مدلهای Yealink این بخش از مسیر زیر قابل دسترسی است:
Settings → Dial Plan
اگر کاربر شماره 09121234567 را میگیرد ولی Replace Rule آن را به شماره دیگری تبدیل میکند، PBX دقیقاً همان شماره تغییرکرده را میبیند.
یک تست ساده برای پیدا کردن مشکل Dial Plan
یک شمارهای را که قبلاً روی همین سیستم کار میکرده با شمارهای که اکنون تماس نمیگیرد مقایسه کنید.
در PCAP مقدار Request-URI هر دو INVITE را ببینید.
مثلاً:
INVITE sip:9121234567@pbx.example.com
ممکن است PBX شما انتظار داشته باشد شماره با صفر شروع شود:
INVITE sip:09121234567@pbx.example.com
یا برعکس، ممکن است Outbound Route فقط شماره بدون صفر را قبول کند.
Block Out را فراموش نکنید
اگر یک شماره یا الگوی خاص در Block Out قرار گرفته باشد، ممکن است تلفن اصلاً INVITE ارسال نکند.
در این وضعیت روی صفحه تلفن ممکن است پیام Forbidden Number یا رفتار مشابه دیده شود.
قبل از تغییر PBX، بخش Block Out را بررسی کنید.
مرحله دوم: Account درست را برای تماس انتخاب کنید
تلفنهای Yealink معمولاً چند Line یا Account دارند. ممکن است Account 1 رجیستر باشد، اما تماس روی Account 2 ارسال شود.
هنگام شمارهگیری بررسی کنید خط انتخابشده همان حسابی باشد که مجوز تماس خروجی دارد.
این موضوع در تلفنهایی که چند داخلی، چند SIP Server یا چند Trunk استفاده میکنند اهمیت بیشتری دارد.
مرحله سوم: Request-URI را بررسی کنید
طبق راهنمای عیبیابی Yealink، یکی از علل مستقیم تماس خروجی ناموفق، نامعتبر بودن URI درخواست خروجی است.
در Wireshark فیلتر زیر را وارد کنید:
sip.Method == "INVITE"
INVITE را باز کنید و خط اول را ببینید.
مثلاً:
INVITE sip:02112345678@10.10.10.20 SIP/2.0
سه چیز را بررسی کنید:
شماره مقصد همان چیزی است که انتظار دارید؟
Domain یا IP مقصد درست است؟
Transport و Port همان چیزی هستند که Account با آن رجیستر شده است؟
403 Forbidden در تماس خروجی Yealink یعنی چه؟
اگر تلفن Registered است اما پس از INVITE پاسخ 403 Forbidden میگیرد، ارتباط تلفن تا PBX یا Provider برقرار است و درخواست عمداً رد شده است.
در این حالت معمولاً مشکل شبکه نیست.
موارد زیر را بررسی کنید:
داخلی اجازه تماس با این مقصد را دارد یا خیر.
Outbound Route شماره را قبول میکند یا خیر.
Trunk اجازه ارسال Caller ID فعلی را میدهد یا خیر.
Carrier این Prefix یا مقصد را مسدود نکرده باشد.
محدودیت تماس بینالملل یا موبایل فعال نباشد.
From، P-Asserted-Identity یا Caller ID با سیاست Provider ناسازگار نباشد.
Caller ID چگونه میتواند باعث 403 شود؟
بعضی Trunkها اجازه نمیدهند هر شمارهای بهعنوان Caller ID ارسال شود.
اگر PBX در INVITE شمارهای را در Headerهای هویتی قرار دهد که Provider آن را متعلق به حساب شما نمیداند، تماس ممکن است رد شود.
در SIP معمولاً Headerهایی مانند اینها در بحث هویت تماس مهم هستند:
From:
P-Asserted-Identity:
P-Preferred-Identity:
Remote-Party-ID:
Yealink از چند منبع SIP برای نمایش و پردازش هویت تماس پشتیبانی میکند. اما در تماس خروجی، سیاست نهایی Caller ID معمولاً باید در PBX و Trunk نیز درست تنظیم شده باشد.
404 Not Found؛ شماره پیدا نشده یا Route وجود ندارد
طبق راهنمای رسمی Yealink، اگر Server پاسخ 404 Not Found بدهد، یکی از اولین برداشتها این است که مقصد در سمت Server شناخته نشده است.
اما در PBX واقعی 404 میتواند دلایل مختلفی داشته باشد:
شماره اشتباه ارسال شده است.
Outbound Route با الگوی شماره Match نشده است.
داخلی مقصد در PBX وجود ندارد.
Domain یا Context اشتباه است.
Provider آن شماره یا Prefix را نمیشناسد.
484 Address Incomplete؛ شماره کامل نیست
طبق RFC 3261، پاسخ 484 Address Incomplete یعنی Request-URI از نظر سرور ناقص است.
مثلاً PBX انتظار دارد شماره ۱۱ رقمی باشد اما تلفن فقط ۱۰ رقم ارسال کرده است.
در این حالت Dial Plan تلفن و Outbound Route سرور را با هم مقایسه کنید.
نمونه مشکل:
Dialed: 9121234567
Expected: 09121234567
یا در بعضی سیستمها برعکس:
Dialed: 09121234567
Expected: 9121234567
486 Busy Here همیشه مشکل PBX نیست
486 Busy Here معمولاً یعنی مقصد Busy است یا تماس را رد کرده است.
Yealink نیز 486 را در خطاهای رایج تماس بهعنوان Busy Here معرفی میکند.
اگر فقط یک شماره خاص 486 میدهد ولی بقیه تماسها برقرار میشوند، احتمال خرابی تلفن یا Route اصلی کم است.
اما اگر تمام تماسها 486 دریافت میکنند، PBX Log را بررسی کنید؛ ممکن است سرور یا SBC این پاسخ را به دلیل سیاست داخلی ایجاد کند.
503 Service Unavailable؛ مشکل سمت سرویس یا Trunk
503 Service Unavailable یعنی سرور در آن لحظه قادر به پردازش درخواست نیست.
طبق RFC 3261 این وضعیت میتواند با Overload یا Maintenance مرتبط باشد.
در سیستمهای VoIP عملی، 503 ممکن است زمانی هم دیده شود که Trunk Down است، Provider پاسخ نمیدهد یا PBX مسیر قابل استفادهای برای تماس ندارد.
اگر 503 دریافت میکنید، وضعیت Trunk را در PBX بررسی کنید و همان شماره را مستقیماً از Trunk یا Softphone دیگر تست کنید.
Codec؛ وقتی INVITE قبول میشود اما تماس جلو نمیرود
Codec معمولاً در SDP داخل INVITE و پاسخهای SIP مذاکره میشود.
Yealink در مستندات عیبیابی تماس، ناسازگاری Codec و SRTP را از علل شکست Negotiation معرفی میکند.
اگر هیچ Codec مشترکی وجود نداشته باشد، ممکن است پاسخ 488 Not Acceptable Here دریافت کنید.
Codecهای فعال Yealink را با PBX و Trunk مقایسه کنید.
مثلاً اگر تلفن فقط G.722 را پیشنهاد دهد اما Trunk فقط PCMA و PCMU را قبول کند، تماس ممکن است در SDP Negotiation شکست بخورد.
در SDP چه چیزی را بررسی کنیم؟
INVITE را در Wireshark باز کنید و بخش SDP را ببینید.
نمونه:
m=audio 11780 RTP/AVP 0 8 9 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:9 G722/8000
طرف مقابل باید حداقل یکی از Codecهای ارائهشده را قبول کند.
اگر PBX Transcoding انجام میدهد، وضعیت Codecهای Trunk و Endpoint را جداگانه بررسی کنید.
SRTP هم میتواند باعث شکست تماس شود
اگر Yealink برای Media از SRTP استفاده کند اما PBX یا Provider آن را قبول نکند، Negotiation میتواند شکست بخورد.
برعکس آن نیز صادق است؛ اگر سرور SRTP اجباری بخواهد ولی تلفن RTP معمولی پیشنهاد دهد، تماس ممکن است برقرار نشود.
در صورت 488، فقط Codec را بررسی نکنید؛ Encryption و SRTP Policy را نیز ببینید.
مرحله چهارم: Outbound Route سمت PBX را بررسی کنید
Registered بودن Yealink فقط ارتباط Endpoint با PBX را تأیید میکند. PBX هنوز باید بداند شماره گرفتهشده از کدام Trunk خارج شود.
در Outbound Route موارد زیر اهمیت دارند:
Prefix شماره.
طول شماره.
Pattern تماس.
Trunk انتخابشده.
مجوز داخلی.
Caller ID.
Strip یا Prepend کردن رقمها.
اگر Route انتظار شماره با 9 در ابتدای تماس را دارد ولی تلفن آن را حذف کرده، هیچ Routeای Match نمیشود.
قبل و بعد از Route شماره را مقایسه کنید
سه مقدار را کنار هم قرار دهید:
شمارهای که کاربر وارد کرده
شمارهای که Yealink داخل INVITE فرستاده
شمارهای که PBX روی Trunk ارسال کرده
این سه الزاماً یکسان نیستند.
Dial Plan تلفن ممکن است شماره را تغییر دهد و PBX نیز ممکن است قبل از ارسال به Trunk دوباره Prefix را حذف یا اضافه کند.
اگر Asterisk یا FreePBX دارید، لاگ SIP را روشن کنید
در سیستمهای مبتنی بر Asterisk و PJSIP میتوانید از CLI این دستورات را استفاده کنید:
core set verbose 4
core set debug 4
pjsip set logger on
سپس یک تماس آزمایشی بگیرید.
در لاگ باید INVITE ورودی از Yealink، تصمیم Dialplan و INVITE خروجی سمت Trunk را ببینید.
بعد از پایان تست، برای جلوگیری از حجم زیاد لاگ میتوانید Logger را خاموش کنید:
pjsip set logger off
در PBX Log دنبال چه چیزی بگردیم؟
اول ببینید INVITE تلفن واقعاً به PBX رسیده است.
سپس بررسی کنید PBX شماره را در کدام Context یا Route پردازش کرده است.
بعد ببینید آیا تماس به Trunk منتقل شده یا قبل از آن Reject شده است.
اگر INVITE خروجی روی Trunk ایجاد شده، پاسخ Provider را بررسی کنید.
این روش مشخص میکند 403 یا 404 را خود PBX ساخته یا Carrier برگردانده است.
PCAP تلفن Yealink را بگیرید
اگر هنوز علت مشخص نیست، از خود تلفن Packet Capture بگیرید.
در بسیاری از مدلهای Yealink:
Settings → Configuration → Export All Diagnostic Files
Capture را Start کنید، یک تماس ناموفق بگیرید و سپس Stop و Export را بزنید.
در Wireshark از این فیلتر استفاده کنید:
sip
برای فقط INVITE:
sip.Method == "INVITE"
برای دیدن پاسخهای خطا:
sip.Status-Code >= 400
اگر SIP روی TLS است چه کنیم؟
وقتی Signaling با TLS رمزگذاری شده باشد، معمولاً محتوای INVITE در PCAP قابل خواندن نیست.
در این حالت Syslog خود Yealink و Log سمت PBX اهمیت بیشتری پیدا میکنند.
اگر PBX Log INVITE را دریافت میکند، میتوانید پاسخ و Route را از همان سمت بررسی کنید.
مقایسه با Softphone؛ سریعترین تست تفکیکی
همان Account را روی یک Softphone در همان شبکه تنظیم کنید.
اگر Softphone همان شماره را میگیرد ولی Yealink نمیتواند، احتمال مشکل در Dial Plan، Account انتخابشده یا تنظیمات خود Yealink بیشتر است.
اگر Softphone هم همان کد 403 یا 404 را میگیرد، مشکل احتمالاً سمت PBX یا Provider است.
این تست کمک میکند بدون تغییر دهها گزینه بفهمید کدام سمت باید بررسی شود.
سناریو ۱: Yealink Registered است ولی هیچ INVITE نمیفرستد
Dial Plan را بررسی کنید.
Block Out را بررسی کنید.
Account انتخابشده را بررسی کنید.
شماره را با شمارهای که کار میکند مقایسه کنید.
Dial Now و Replace Rule را موقتاً بررسی یا حذف کنید تا مشخص شود Rule باعث مشکل شده یا خیر.
سناریو ۲: INVITE ارسال میشود ولی هیچ Response نیست
IP مقصد INVITE را بررسی کنید.
PBX Log را ببینید.
اگر PBX هیچ بستهای دریافت نمیکند، فایروال و مسیر شبکه را بررسی کنید.
اگر PBX INVITE را میبیند اما پاسخ تلفن نمیرسد، مسیر برگشت را بررسی کنید.
سناریو ۳: فقط تماس شهری کار میکند ولی موبایل نه
این حالت معمولاً Route یا Permission را مشکوک میکند.
Pattern تماس شهری و موبایل را در Outbound Route مقایسه کنید.
بررسی کنید Provider تماس موبایل را برای حساب شما مجاز کرده باشد.
Caller ID و Prefix ارسالی روی Trunk را نیز مقایسه کنید.
سناریو ۴: تماس داخلی برقرار میشود ولی تماس شهری نه
در این حالت Yealink، Registration و ارتباط با PBX تقریباً سالماند.
تمرکز را روی Outbound Route و Trunk قرار دهید.
اگر تماس داخلی موفق است ولی تماس خارجی 503 میدهد، وضعیت Trunk و Provider را بررسی کنید.
سناریو ۵: فقط بعضی شمارهها 404 یا 484 میدهند
فرمت شمارهها را مقایسه کنید.
ممکن است یک Prefix در Dial Plan یا Route برای یک دسته از شمارهها تعریف نشده باشد.
در 484 طول شماره را نیز بررسی کنید.
سناریو ۶: تماس شروع میشود ولی بلافاصله قطع میشود
اگر 180 Ringing یا حتی 200 OK دیده میشود ولی تماس بلافاصله قطع میشود، دیگر فقط Dial Plan مطرح نیست.
ACK، SDP، RTP، Codec و Session Timer را بررسی کنید.
در این مقاله تمرکز روی برقرار نشدن تماس خروجی است؛ اگر تماس برقرار میشود ولی صدا یکطرفه یا بدون صدا است، مسیر RTP باید جداگانه بررسی شود.
جدول معنی کدهای مهم SIP در تماس خروجی
| کد | معنی | بررسی پیشنهادی |
|---|---|---|
| 403 | Forbidden | Permission، Route، Caller ID، ACL و Provider |
| 404 | Not Found | شماره، مقصد، Context و Route |
| 408 | Request Timeout | شبکه، Server و مسیر Signaling |
| 480 | Temporarily Unavailable | وضعیت مقصد یا Registration سمت مقابل |
| 484 | Address Incomplete | طول و فرمت شماره |
| 486 | Busy Here | Busy یا Reject شدن مقصد |
| 488 | Not Acceptable Here | Codec، SDP و SRTP |
| 503 | Service Unavailable | Trunk، Carrier، Overload یا Maintenance |
ترتیب درست عیبیابی بدون آزمونوخطا
اول مطمئن شوید Account واقعاً Registered است.
بعد شماره را بگیرید و بررسی کنید تلفن INVITE میفرستد یا نه.
اگر INVITE ندارد، Dial Plan و Account را بررسی کنید.
اگر INVITE دارد، Request-URI را بخوانید.
بعد کد پاسخ SIP را بررسی کنید.
403 یعنی سیاست یا مجوز.
404 یعنی مقصد یا Route پیدا نشده.
484 یعنی شماره ناقص است.
486 یعنی Busy.
488 یعنی SDP یا Codec.
503 یعنی سرویس یا Trunk در دسترس نیست.
بعد از آن PBX Log را با PCAP تلفن تطبیق دهید.
پرسشهای متداول درباره تماس نگرفتن Yealink
چرا Yealink Registered است ولی تماس خروجی نمیگیرد؟
Registered بودن فقط ثبت حساب SIP را تأیید میکند. Dial Plan، Outbound Route، Trunk، Caller ID، Permission، Codec و وضعیت مقصد باید جداگانه بررسی شوند.
چطور بفهمیم مشکل از Yealink است یا PBX؟
PCAP بگیرید و ببینید تلفن INVITE میفرستد یا نه. اگر INVITE خارج نمیشود، تلفن و Dial Plan محتملترند. اگر INVITE به PBX میرسد، لاگ PBX مسیر بعدی را مشخص میکند.
خطای 403 هنگام تماس خروجی یعنی چه؟
403 یعنی سرور درخواست را دریافت کرده ولی اجازه انجام آن را نداده است. Route، مجوز داخلی، Caller ID، ACL و سیاست Provider را بررسی کنید.
404 در تماس Yealink به چه معناست؟
404 یعنی مقصد یا URI از دید سرور پیدا نشده است. فرمت شماره، Outbound Route، Context و مقصد را بررسی کنید.
خطای 484 چیست؟
484 Address Incomplete یعنی Request-URI برای سرور ناقص است. طول شماره، Prefix و Dial Plan را بررسی کنید.
486 Busy Here یعنی تلفن خراب است؟
خیر. معمولاً مقصد Busy است یا تماس را رد کرده است. اگر فقط یک مقصد 486 میدهد، احتمال خرابی Yealink کم است.
503 Service Unavailable از کجاست؟
503 معمولاً نشان میدهد Server یا Trunk در آن لحظه قادر به پردازش تماس نیست. وضعیت Provider، Trunk و لاگ PBX را بررسی کنید.
Codec چگونه باعث تماس نگرفتن میشود؟
اگر تلفن و طرف مقابل Codec مشترک نداشته باشند یا SRTP Policy متفاوت باشد، SDP Negotiation شکست میخورد و ممکن است 488 دریافت شود.
جمعبندی
وقتی Yealink Registered است ولی تماس نمیگیرد، رجیستر را دوباره از اول دستکاری نکنید. اولین کار این است که مشخص کنید تلفن INVITE میفرستد یا خیر.
اگر INVITE ارسال نمیشود، Dial Plan، Block Out، Account و فرمت شماره را بررسی کنید. اگر INVITE ارسال میشود، کد SIP تقریباً جهت عیبیابی را مشخص میکند: 403 برای Permission و Caller ID، 404 برای مقصد و Route، 484 برای شماره ناقص، 486 برای Busy، 488 برای Codec و 503 برای Trunk یا سرویس.
در مرحله آخر PCAP تلفن و PBX Log را کنار هم قرار دهید. وقتی هر دو سمت را همزمان ببینید، دیگر لازم نیست تنظیمات را تصادفی تغییر دهید.
برای بررسی سرور VoIP یا مسیر تماس کمک میخواهید؟
اگر تماسهای خروجی شما با خطای SIP، Route، Trunk، NAT یا مصرف منابع سرور روبهرو شدهاند، میتوانید زیرساخت VoIP را روی سرور مجازی مناسب اجرا و وضعیت سرویس را بررسی کنید.
تماس با پشتیبانی ایرانیکاسرور






دیدگاهها (۰)