مجله ایرانیکاسرورآموزش سرور، هاست، وردپرس و شبکه
آموزشی

رفع مشکل BLF در تلفن یالینک؛ چرا چراغ داخلی‌ها روشن نمی‌شود؟

اگر کلید BLF روی تلفن Yealink روشن نمی‌شود، همیشه قرمز می‌ماند، تماس داخلی را Busy نشان می‌دهد در حالی که داخلی آزاد است یا وضعیت Ringing با چند ثانیه تأخیر نمایش داده می‌شود، قبل…

رفع مشکل BLF در تلفن یالینک؛ چرا چراغ داخلی‌ها روشن نمی‌شود؟
خلاصه سریع این آموزش

اگر کلید BLF روی تلفن Yealink روشن نمی‌شود، همیشه قرمز می‌ماند، تماس داخلی را Busy نشان می‌دهد در حالی که داخلی آزاد است یا وضعیت Ringing با چند ثانیه تأخیر…

۱۹ دقیقه مطالعه ۰ دیدگاه ۲۱ مهر ۱۴۰۵ آخرین به‌روزرسانی
اگر کلید BLF روی تلفن Yealink روشن نمی‌شود، همیشه قرمز می‌ماند، تماس داخلی را Busy نشان می‌دهد در حالی که داخلی آزاد است یا وضعیت Ringing با چند ثانیه تأخیر نمایش داده می‌شود، قبل از تغییر رنگ LED و DSS Key باید خود Subscription را بررسی کنید. BLF فقط یک چراغ روی تلفن نیست؛ پشت آن یک جریان SIP شامل SUBSCRIBE و NOTIFY قرار دارد و PBX باید وضعیت داخلی موردنظر را به‌درستی در اختیار تلفن قرار دهد.

در این آموزش از خود Yealink شروع می‌کنیم و مرحله‌به‌مرحله بررسی می‌کنیم که آیا تلفن SUBSCRIBE را ارسال کرده، PBX آن را پذیرفته، NOTIFY برگشته، Event درست انتخاب شده، داخلی موردنظر به Extension یا Hint صحیح نگاشت شده و Subscription قبل از Expire شدن تمدید می‌شود یا نه. در ادامه BLF List، Event List، Permission، dialog-info، Packet Capture و سناریوهای رایج Asterisk را هم بررسی می‌کنیم.

هدف این است که وقتی BLF یالینک کار نمی‌کند فقط کلید را دوباره نسازید؛ بلکه مشخص کنید خرابی دقیقاً در تلفن، شبکه، SIP Subscription، PBX یا Mapping داخلی قرار دارد.

فهرست مطالب

BLF در Yealink چیست؟

BLF یا Busy Lamp Field قابلیتی است که به یک تلفن اجازه می‌دهد وضعیت داخلی یا کاربر دیگری را مانیتور کند.

برای مثال منشی می‌تواند داخلی 201 را روی یکی از کلیدهای Yealink قرار دهد. تلفن بر اساس اطلاعاتی که PBX ارسال می‌کند نشان می‌دهد داخلی 201 آزاد، در حال زنگ‌خوردن یا مشغول تماس است.

بسته به مدل Yealink و تنظیم LED، وضعیت می‌تواند با رنگ یا حالت چشمک‌زدن متفاوت نمایش داده شود. بنابراین رنگ دقیق چراغ را برای تمام مدل‌ها یکسان فرض نکنید؛ چیزی که اهمیت بیشتری دارد State واقعی داخل NOTIFY است.

BLF چگونه پشت صحنه کار می‌کند؟

وقتی BLF برای یک داخلی ساخته می‌شود، تلفن به PBX اعلام می‌کند که می‌خواهد وضعیت آن داخلی را دنبال کند.

فرآیند معمول به این شکل است:

جریان اصلی BLF در SIP
مرحله پیام کاربرد
۱ SUBSCRIBE Yealink درخواست مانیتورکردن داخلی را می‌فرستد
۲ 200 OK PBX Subscription را می‌پذیرد
۳ NOTIFY PBX وضعیت فعلی داخلی را ارسال می‌کند
۴ 200 OK تلفن دریافت NOTIFY را تأیید می‌کند
۵ NOTIFYهای بعدی با تغییر وضعیت داخلی ارسال می‌شوند

طبق RFC 6665، Subscription دائمی نیست و باید قبل از پایان اعتبار Refresh شود. بنابراین BLF ممکن است در ابتدا کار کند ولی بعد از مدتی به دلیل تمدید نشدن Subscription از کار بیفتد.

Event مورد استفاده BLF چیست؟

Yealink برای BLF معمولی امکان استفاده از Eventهای مختلف را فراهم می‌کند و در مستندات فعلی، Event پیش‌فرض BLF برابر dialog است.

پارامتر مربوط:

account.X.blf.subscribe_event
Eventهای BLF در Yealink
مقدار Event
0 dialog
1 presence

اگر تلفن SUBSCRIBE را با Event برابر dialog ارسال کند ولی PBX فقط presence را برای آن Resource پشتیبانی کند، Subscription ممکن است Reject شود یا اطلاعات مورد انتظار برگشت داده نشود.

dialog-info چه نقشی در BLF دارد؟

RFC 4235 قالبی برای ارسال وضعیت Dialog تعریف می‌کند. در BLFهای مبتنی بر Dialog Event، PBX معمولاً NOTIFY را با محتوای XML از نوع application/dialog-info+xml ارسال می‌کند.

یک نمونه ساده شبیه این است:

<dialog-info
  xmlns="urn:ietf:params:xml:ns:dialog-info"
  version="1"
  state="full"
  entity="sip:201@pbx.example.local">

  <dialog id="1001">
    <state>confirmed</state>
  </dialog>

</dialog-info>

در این مثال PBX اعلام می‌کند داخلی 201 یک Dialog در وضعیت confirmed دارد.

Stateهای مهم BLF در Yealink

Yealink در راهنمای عیب‌یابی فعلی خود چهار State رایج را برای NOTIFY ذکر می‌کند.

تفسیر Stateهای dialog-info در Yealink
State برداشت معمول Yealink
terminated داخلی Idle یا آزاد
confirmed داخلی در تماس است
early داخلی در حال Ringing است
proceeding در مستند Yealink برای وضعیت Ringing استفاده می‌شود

اگر چراغ اشتباه است، اول XML داخل NOTIFY را ببینید. اگر PBX خودش State اشتباه می‌فرستد، تغییر تنظیم LED تلفن مشکل اصلی را حل نمی‌کند.

مرحله اول: مطمئن شوید BLF Key درست ساخته شده است

برای یک BLF ساده باید Account و شماره داخلی مانیتورشونده درست انتخاب شده باشند.

نمونه Auto Provisioning در Yealink:

linekey.1.type = 16
linekey.1.line = 1
linekey.1.value = 201
linekey.1.label = داخلی 201

در این مثال تلفن با Account شماره 1 وضعیت Resource مربوط به 201 را مانیتور می‌کند.

اگر Value اشتباه، Extension قدیمی یا Account اشتباه انتخاب شده باشد، ممکن است PBX Subscription را به Resource موردنظر شما نگاشت نکند.

Extension Mapping را دقیق بررسی کنید

یکی از رایج‌ترین خطاها این است که شماره‌ای که روی BLF Key نوشته‌اید با Resource واقعی PBX یکی نیست.

برای مثال ممکن است کاربر با داخلی 201 تماس بگیرد، اما Hint یا Subscription Resource در PBX با نام دیگری ساخته شده باشد.

نمونه Mapping اشتباه
بخش مقدار
BLF Value در Yealink 201
Extension واقعی 201
Resource قابل Subscribe روی PBX 201-office

در چنین حالتی تماس به 201 می‌تواند کاملاً سالم باشد ولی BLF به دلیل Mapping اشتباه کار نکند.

مرحله دوم: Packet Capture بگیرید

برای BLF، حدس‌زدن بسیار کمتر از دیدن SIP Trace ارزش دارد.

از Diagnostic تلفن Yealink یک Packet Capture بگیرید، تلفن را Reboot کنید یا BLF Key را دوباره Provision کنید و سپس فایل را در Wireshark باز کنید.

برای دیدن SIP:

sip

یا برای محدودکردن نمایش به پیام‌های BLF:

sip.Method == "SUBSCRIBE" || sip.Method == "NOTIFY"

اول ببینید Yealink اصلاً SUBSCRIBE می‌فرستد یا نه

اگر هیچ SUBSCRIBE از تلفن خارج نمی‌شود، هنوز PBX را مقصر ندانید.

موارد زیر را بررسی کنید:

BLF Key واقعاً Type = BLF است.

Account انتخاب‌شده Registered است.

Value داخلی خالی یا اشتباه نیست.

Provisioning تنظیم Key را بازنویسی نکرده است.

Firmware آن مدل از BLF پشتیبانی می‌کند.

Yealink در مستندات خود نیز عیب‌یابی را از همین نقطه شروع می‌کند: اول وجود SUBSCRIBE بررسی می‌شود، سپس پاسخ Server.

SUBSCRIBE سالم چه چیزی باید داشته باشد؟

در SIP Trace مواردی مثل Request-URI، Event و Expires اهمیت دارند.

نمونه مفهومی:

SUBSCRIBE sip:201@pbx.example.local SIP/2.0
Event: dialog
Expires: 1800
Accept: application/dialog-info+xml

این مثال نشان می‌دهد تلفن می‌خواهد Resource شماره 201 را با Event برابر dialog مانیتور کند.

مرحله سوم: پاسخ PBX به SUBSCRIBE را بررسی کنید

بعد از SUBSCRIBE باید پاسخ Server را ببینید.

پاسخ‌های مهم هنگام BLF Subscription
پاسخ برداشت
200 OK Subscription پذیرفته شده است
401 / 407 Authentication لازم است؛ ممکن است در ادامه درخواست Authenticated ارسال شود
403 Permission یا Policy سرور بررسی شود
404 Resource یا Extension پیدا نشده است
489 Bad Event Event درخواست‌شده توسط Server پشتیبانی نمی‌شود

وجود 401 به‌تنهایی خطا نیست. در بعضی سیستم‌ها اولین SUBSCRIBE Challenge می‌شود و تلفن سپس SUBSCRIBE دیگری با Authentication می‌فرستد.

اگر SUBSCRIBE ارسال می‌شود ولی هیچ پاسخ نمی‌آید

در این حالت Network Path را بررسی کنید.

Firewall یا SBC ممکن است REGISTER و INVITE را عبور دهد ولی SUBSCRIBE را Drop کند.

این مسئله توضیح می‌دهد چرا تماس‌ها کاملاً سالم‌اند ولی BLF کار نمی‌کند.

اگر Yealink از اینترنتی کار می‌کند ولی روی شبکه دیگر مشکل دارد، بررسی NAT و Firewall نیز اهمیت پیدا می‌کند. راهنمای عیب‌یابی Yealink روی اینترنت‌های مختلف برای این بخش مرتبط است.

مرحله چهارم: آیا NOTIFY از PBX برمی‌گردد؟

پذیرفته‌شدن SUBSCRIBE پایان کار نیست.

PBX باید NOTIFY وضعیت فعلی را به تلفن بفرستد و با هر تغییر State نیز Notification جدید ارسال کند.

Yealink در راهنمای رسمی BLF توصیه می‌کند بعد از مشاهده SUBSCRIBE مستقیماً بررسی کنید آیا Server NOTIFY ارسال کرده است یا خیر.

اگر NOTIFY وجود ندارد ولی SUBSCRIBE با موفقیت پذیرفته شده، مشکل بیشتر به PBX، Hint، Permission یا Server-side BLF نزدیک می‌شود.

اگر NOTIFY می‌آید ولی چراغ BLF تغییر نمی‌کند

این حالت بسیار مهم است؛ چون نشان می‌دهد Network و Subscription تا حد زیادی کار می‌کنند.

حالا XML داخل NOTIFY را باز کنید و این موارد را بررسی کنید:

Resource درست است.

State درست است.

Version درست جلو می‌رود.

Content-Type با فرمت قابل فهم تلفن سازگار است.

Subscription-State فعال است.

مشکل معروف dialog-info Version در Yealink

Yealink یک سناریوی رسمی برای حالتی دارد که BLF State با وضعیت واقعی Extension هماهنگ نیست.

فرض کنید NOTIFY قبلی چنین Versionی داشته است:

version="3"

اما Notification بعدی به‌جای Version 4 چنین باشد:

version="2"

Yealink توضیح می‌دهد در Firmwareهای V83 و جدیدتر، تلفن می‌تواند Version عقب‌تر را نادیده بگیرد. نتیجه این است که PBX NOTIFY ارسال کرده ولی LED همچنان State قبلی را نشان می‌دهد.

پارامتر Compatibility مربوط به Dialog Version

Yealink برای چنین محیط‌هایی امکان غیرفعال‌کردن Dialog Version Verification را مستند کرده است:

sip.dialog_version_check.enable = 0

این تنظیم را راه‌حل عمومی تمام مشکلات BLF در نظر نگیرید. ابتدا PCAP را بررسی کنید و مطمئن شوید واقعاً PBX Version نامرتب ارسال می‌کند. در حالت ایده‌آل علت Sequence اشتباه در Server نیز باید اصلاح شود.

مرحله پنجم: Expiry و تمدید Subscription را بررسی کنید

Subscription دائمی نیست.

Yealink پارامتر زیر را برای مدت Subscription مستند کرده است:

account.X.blf.subscribe_period

در مستندات فعلی بسیاری از تلفن‌های Yealink مقدار پیش‌فرض ۱۸۰۰ ثانیه یعنی ۳۰ دقیقه است.

اگر BLF دقیقاً بعد از حدود ۳۰ دقیقه یا در بازه‌ای ثابت از کار می‌افتد، Refresh شدن Subscription را در PCAP بررسی کنید.

نشانه مشکل Subscription Refresh

سناریوی典型:

الگوی مشکل Expiry
زمان رفتار
بعد از Boot BLF کاملاً سالم است
حدود ۳۰ دقیقه بعد چراغ‌ها ثابت یا خاموش می‌شوند
بعد از Reboot تلفن BLF دوباره سالم می‌شود

در این حالت Reboot فقط Subscription را دوباره می‌سازد و علت واقعی را درمان نمی‌کند.

Subscription-State داخل NOTIFY را بررسی کنید

RFC 6665 الزام می‌کند NOTIFY دارای Header مربوط به Subscription State باشد.

برای مثال:

Subscription-State: active;expires=1800

اگر Server Subscription را با State برابر terminated تمام می‌کند، Yealink ممکن است مجبور به Subscribe مجدد شود.

Yealink بعد از NOTIFY با State=terminated چه می‌کند؟

Yealink پارامتری برای تعیین فاصله Re-subscribe بعد از دریافت NOTIFY Terminated دارد:

sip.terminate_notify_sub_delay_time

در مستند فعلی مقدار 0 به معنی Re-subscribe فوری است.

اگر PBX دائماً Subscription را Terminate می‌کند، فقط زمان Re-subscribe را تغییر ندهید؛ علت Termination را روی Server بررسی کنید.

مرحله ششم: Permission سمت PBX را بررسی کنید

BLF در بسیاری از PBXها باید روی Server اجازه داده شود.

ممکن است User بتواند تماس بگیرد ولی اجازه Subscribe کردن به وضعیت داخلی دیگر را نداشته باشد.

این موضوع مخصوصاً در سیستم‌های Multi-tenant، Hosted PBX و Provider-managed مهم است.

اگر SUBSCRIBE با 403 رد می‌شود، Permissions و BLF Policy را بررسی کنید.

BLF Pickup با خود BLF یکی نیست

ممکن است چراغ وضعیت کاملاً درست کار کند اما وقتی داخلی زنگ می‌خورد با فشار BLF نتوانید تماس را Pickup کنید.

در این حالت Subscription سالم است و مشکل بیشتر به Directed Call Pickup مربوط می‌شود.

Yealink نیز تأکید می‌کند قابلیت BLF Pickup به پشتیبانی Server و Feature Code صحیح وابسته است.

Pickup Code را جداگانه بررسی کنید

بسته به PBX ممکن است Directed Pickup Code چیزی شبیه `*8`، `**` یا کد اختصاصی دیگری باشد.

آن را از مستندات PBX بگیرید و فرض نکنید همه سیستم‌ها یک کد دارند.

در Yealink پارامترهای BLF Pickup و BLF List Pickup می‌توانند جداگانه تنظیم شوند.

مرحله هفتم: BLF List با BLF معمولی فرق دارد

در BLF معمولی تلفن برای یک Resource خاص Subscribe می‌کند.

در BLF List تلفن به یک List URI روی Server Subscribe می‌کند و PBX وضعیت چند داخلی را داخل Notificationهای Resource List برمی‌گرداند.

Yealink پارامتر زیر را برای BLF List URI مستند کرده است:

account.1.blf.blf_list_uri = blf-list@pbx.example.local

اما ساخت خود List باید سمت PBX انجام شود.

اگر BLF List خالی است

Yealink در نسخه‌های جدیدتر خانواده‌های مختلف T3X، T4X و T5X منطق نمایش BLF List را تغییر داده است: اگر Server هیچ محتوایی برای BLF List Push نکند، Key می‌تواند خالی نمایش داده شود.

پس خالی‌بودن کلید همیشه به معنی خراب‌شدن LCD یا Provisioning نیست؛ ممکن است Server برای آن Resource محتوایی ارسال نکرده باشد.

Event List و Resource List را روی PBX بررسی کنید

اگر از BLF List استفاده می‌کنید، PBX باید Resource List را بشناسد و اعضای List واقعاً وجود داشته باشند.

اگر List شامل داخلی 201، 202 و 203 است ولی 203 روی PBX حذف شده، رفتار آن Resource ممکن است با بقیه متفاوت باشد.

همچنین PBX باید قالب List Notification مورد انتظار Client را پشتیبانی کند.

مرحله هشتم: Out-of-dialog NOTIFY را بررسی کنید

در بعضی محیط‌ها Server ممکن است NOTIFYی ارسال کند که خارج از BLF Dialog معمول تلفن است.

Yealink برای کنترل این رفتار پارامتر زیر را دارد:

account.X.out_dialog_blf_enable

مقدار پیش‌فرض در مستندات فعلی Yealink غیرفعال است.

این گزینه را بدون Trace فعال نکنید؛ ابتدا مشخص کنید Server واقعاً NOTIFY خارج از Subscription Dialog می‌فرستد.

Host Matching در NOTIFY چه نقشی دارد؟

Yealink امکان محدودکردن پذیرش NOTIFY بر اساس Host را هم دارد:

account.X.blf.match_host.enable

اگر این قابلیت فعال باشد، تلفن فقط NOTIFYهایی را می‌پذیرد که Host آن‌ها با Host مورد انتظار Subscription هماهنگ باشد.

در محیط دارای SBC، Proxy یا Domain Rewrite، این گزینه می‌تواند در عیب‌یابی اهمیت پیدا کند.

مرحله نهم: Asterisk را چگونه برای BLF بررسی کنیم؟

اگر PBX شما Asterisk است، BLF معمولاً به Extension State و Hintها وابسته است.

اول Hintها را ببینید:

core show hints

اگر داخلی مانیتورشونده Hint ندارد یا Hint به Device اشتباه اشاره می‌کند، Asterisk State مورد انتظار را تولید نمی‌کند.

نمونه Hint در Asterisk

در یک Dialplan ساده:

exten => 201,hint,PJSIP/201

در محیط واقعی Context، Endpoint Name و ساختار Dialplan را با PBX خودتان تطبیق دهید.

اگر Hint وجود دارد ولی Subscription رد می‌شود

در Asterisk PJSIP بررسی کنید ماژول‌های Subscription فعال باشند.

module show like res_pjsip_pubsub
module show like res_pjsip_exten_state

Asterisk مستند کرده است که `res_pjsip_pubsub.so` هسته مدیریت Subscriptionهاست و برای Presence/Dialog Info نیز `res_pjsip_exten_state.so` باید در دسترس باشد.

برای دیدن SUBSCRIBE و NOTIFY در Asterisk

pjsip set logger on

مشکل را بازتولید کنید و سپس SUBSCRIBE، Response و NOTIFY را بررسی کنید.

پس از پایان عیب‌یابی Logging اضافی را خاموش کنید تا حجم Log بی‌دلیل بالا نرود.

Context اشتباه در Asterisk می‌تواند BLF را خراب کند

Asterisk در راهنمای PJSIP توضیح می‌دهد اگر Extension مورد Subscribe در Context مرتبط وجود نداشته باشد یا Hint نداشته باشد، Subscription نمی‌تواند State موردنظر را پیدا کند.

بنابراین فقط وجود داخلی 201 کافی نیست؛ Hint باید در Context درست برای Endpoint Subscriber قابل Resolve باشد.

مرحله دهم: چند Device برای یک داخلی را در نظر بگیرید

گاهی داخلی 201 روی تلفن رومیزی و Softphone هم‌زمان Register شده است.

PBX ممکن است State چند Device را Aggregate کند.

در این حالت تعریف Business Logic اهمیت دارد: اگر یکی از Deviceها Busy و دیگری Idle باشد، PBX چه Stateی برای Extension گزارش می‌کند؟

این رفتار سمت PBX است و Yealink فقط State دریافتی را نمایش می‌دهد.

چرا BLF گاهی Busy می‌ماند؟

چند علت رایج وجود دارد:

PBX هنوز Device State را Busy می‌داند.

NOTIFY پایان تماس ارسال نشده است.

NOTIFY ارسال شده ولی در شبکه Drop شده است.

dialog-info Version عقب رفته و Yealink آن را Ignore کرده است.

Extension به چند Device نگاشت شده و یکی هنوز Busy است.

Subscription منقضی یا Terminate شده است.

چرا BLF خاموش است؟

خاموش بودن LED در همه مدل‌ها دقیقاً یک معنی ندارد، اما در مستندات Yealink یکی از حالت‌های Off می‌تواند زمانی باشد که خط مانیتورشونده Register نیست یا اصلاً وجود ندارد.

اگر BLF همیشه خاموش است، قبل از تغییر LED Pattern بررسی کنید:

Resource درست است.

SUBSCRIBE ارسال شده است.

PBX جواب داده است.

NOTIFY رسیده است.

داخلی موردنظر روی PBX وجود دارد.

چرا BLF با تأخیر تغییر می‌کند؟

اگر وضعیت نهایتاً درست می‌شود ولی چند ثانیه یا بیشتر تأخیر دارد، Timestamp پیام‌ها را در Capture مقایسه کنید.

سه زمان مهم وجود دارد:

تشخیص محل تأخیر BLF
رویداد زمان بررسی
تغییر وضعیت تماس زمان واقعی Answer/Hangup
ارسال NOTIFY از PBX زمان تولید State Update
تغییر LED Yealink زمان اعمال Notification

اگر PBX خود NOTIFY را دیر می‌فرستد، مشکل از تلفن نیست. اگر NOTIFY فوری رسیده ولی LED دیر تغییر کرده، Firmware و Processing تلفن بررسی شود.

NAT و Firewall چگونه BLF را خراب می‌کنند؟

BLF برخلاف تماس معمولی به Subscription طولانی‌مدت و NOTIFYهای دوره‌ای وابسته است.

در شبکه‌های NATشده ممکن است REGISTER و حتی تماس کار کند، اما مسیر برگشت NOTIFY پس از مدتی خراب شود.

اگر BLF روی LAN سالم ولی روی تلفن Remote ناپایدار است، NAT Binding، SIP ALG، Firewall State و Contact/Route را بررسی کنید.

این موضوع با مشکلات رجیستر دوره‌ای هم‌پوشانی دارد؛ راهنمای قطع و وصل شدن رجیستر Yealink در طول روز برای بررسی NAT و Timeout مفید است.

Firewall باید SUBSCRIBE و NOTIFY را هم عبور دهد

فقط Allow کردن INVITE کافی نیست.

اگر Firewall یا SIP-aware Gateway روش‌های SIP را Filter می‌کند، بررسی کنید SUBSCRIBE و NOTIFY نیز مطابق Policy مجاز باشند.

در SBCهای سازمانی نیز ممکن است Event Packageها یا Subscriptionها Policy جداگانه داشته باشند.

مرحله یازدهم: Auto Provisioning را بررسی کنید

گاهی BLF را از Web UI درست می‌کنید اما بعد از Reboot دوباره خراب می‌شود.

در این حالت MAC CFG، Common CFG یا PBX Device Template می‌تواند DSS Key را بازنویسی کند.

مثلاً شما Value را از 202 به 201 تغییر می‌دهید، ولی Provisioning دوباره 202 را Push می‌کند.

اگر تنظیمات BLF بعد از Reboot برمی‌گردد، راهنمای عیب‌یابی Auto Provisioning یالینک نیز مرتبط است.

Firmware را قبل از تغییر بررسی کنید

رفتار BLF بین Firmwareهای مختلف می‌تواند تفاوت داشته باشد؛ نمونه روشن آن Dialog Version Verification در V83 و جدیدتر است.

قبل از Update یا Downgrade:

مدل دقیق را ثبت کنید.

Firmware فعلی را ثبت کنید.

Release Notes را بررسی کنید.

از Configuration Backup بگیرید.

مشکل را با PCAP اثبات کنید.

Update Firmware بدون فهمیدن علت BLF ممکن است فقط متغیر جدیدی وارد عیب‌یابی کند.

یک تست تمیز برای BLF بسازید

اگر ده‌ها BLF دارید، عیب‌یابی را روی همه آن‌ها هم‌زمان انجام ندهید.

یک تلفن Subscriber و یک Extension مانیتورشونده انتخاب کنید.

Baseline پیشنهادی BLF
جزء مقدار نمونه
Subscriber داخلی 200
Monitored Extension داخلی 201
BLF Event dialog
BLF Type Single BLF
SIP Transport همان Transport فعال Account

سپس این سه حالت را ایجاد کنید: 201 آزاد، 201 در حال زنگ‌خوردن و 201 در تماس. برای هر حالت NOTIFY را با LED مقایسه کنید.

مسیر سریع تشخیص BLF خراب

از تلفن به سمت PBX حرکت کنید
مرحله بررسی اگر مشکل بود
۱ BLF Key و Extension Mapping Value و Account اصلاح شود
۲ ارسال SUBSCRIBE Phone/Provisioning بررسی شود
۳ پاسخ 200 OK Permission، Event و PBX بررسی شود
۴ دریافت NOTIFY Server و Network بررسی شود
۵ dialog-info State State Server بررسی شود
۶ Version Sequence PBX یا Compatibility Yealink بررسی شود
۷ Subscription Expiry Refresh و NAT بررسی شود
۸ BLF List / Event List Resource List سمت PBX بررسی شود

چک‌لیست کامل BLF Yealink

مواردی که قبل از تغییر LED یا Factory Reset باید بررسی شوند
بررسی هدف
Account Registration اطمینان از فعال بودن Account مرتبط
BLF Value بررسی Extension صحیح
SUBSCRIBE Request-URI بررسی Resource مقصد
Event Header dialog یا presence متناسب با PBX
SUBSCRIBE Response تشخیص Permission و Support
NOTIFY اطمینان از ارسال State
dialog-info بررسی State واقعی
Version تشخیص Notification خارج از ترتیب
Expires تشخیص قطع BLF بعد از مدت مشخص
PBX Hint بررسی Mapping داخلی
Permissions اجازه مانیتورکردن Resource
BLF List URI بررسی Event List
NAT/Firewall عبور SUBSCRIBE و NOTIFY
Provisioning جلوگیری از بازنویسی DSS Key
Firmware بررسی Compatibility و Version Logic

پرسش‌های متداول درباره BLF در Yealink

چرا BLF Yealink اصلاً روشن نمی‌شود؟

ابتدا بررسی کنید تلفن SUBSCRIBE ارسال می‌کند یا خیر. اگر SUBSCRIBE وجود ندارد، تنظیم BLF Key، Account و Provisioning را بررسی کنید. اگر SUBSCRIBE ارسال شده ولی NOTIFY دریافت نمی‌شود، PBX، Permission و Network باید بررسی شوند.

چرا BLF داخلی Busy می‌ماند در حالی که تماس تمام شده است؟

ممکن است PBX State پایان تماس را ارسال نکرده باشد، NOTIFY در شبکه از بین رفته باشد یا dialog-info Version جدید کمتر از Version قبلی باشد و Yealink آن را نادیده بگیرد.

SUBSCRIBE و NOTIFY چه ارتباطی با BLF دارند؟

Yealink برای مانیتورکردن داخلی SUBSCRIBE می‌فرستد و PBX وضعیت داخلی را با NOTIFY اعلام می‌کند. بدون Subscription و Notification صحیح، تلفن اطلاعات قابل اتکایی برای تغییر BLF ندارد.

dialog و presence چه تفاوتی دارند؟

dialog وضعیت Sessionها و تماس‌های SIP را توصیف می‌کند و برای BLF بسیار رایج است. presence مفهوم حضور کاربر را پوشش می‌دهد. Yealink اجازه انتخاب Event را می‌دهد و PBX باید Event انتخاب‌شده را پشتیبانی کند.

چرا BLF هر ۳۰ دقیقه از کار می‌افتد؟

در بسیاری از Yealinkها BLF Subscription Period به‌صورت پیش‌فرض ۱۸۰۰ ثانیه است. اگر Refresh Subscription یا مسیر NAT مشکل داشته باشد، BLF می‌تواند بعد از حدود ۳۰ دقیقه از کار بیفتد و با Reboot دوباره موقتاً سالم شود.

BLF List چیست؟

به‌جای Subscribe جداگانه برای هر داخلی، تلفن به یک BLF List URI روی Server Subscribe می‌کند و PBX وضعیت مجموعه‌ای از Resourceها را داخل Notification List ارسال می‌کند. خود List باید روی PBX پشتیبانی و تعریف شده باشد.

چرا BLF کار می‌کند ولی Pickup کار نمی‌کند؟

BLF State و Directed Call Pickup دو قابلیت مرتبط اما جدا هستند. برای Pickup باید PBX آن را پشتیبانی کند و Feature Code صحیح روی Yealink تعریف شده باشد.

چرا BLF روی یک تلفن درست و روی تلفن دیگر اشتباه است؟

Firmware، Account، Event، DSS Key، Subscription Period و Provisioning دو دستگاه را مقایسه کنید. PCAP هر دو تلفن نیز نشان می‌دهد آیا NOTIFYهای یکسان دریافت می‌کنند یا خیر.

آیا Factory Reset برای مشکل BLF لازم است؟

معمولاً خیر. BLF بیشتر به Subscription، PBX State، Mapping، Permission و Provisioning مربوط است. Factory Reset بدون PCAP معمولاً اطلاعات مفید عیب‌یابی را از بین می‌برد.

جمع‌بندی

وقتی BLF یالینک کار نمی‌کند، رنگ LED آخرین چیزی است که باید بررسی شود. اول باید مطمئن شوید تلفن SUBSCRIBE را برای Resource صحیح ارسال می‌کند، PBX Subscription را می‌پذیرد و NOTIFYهای حاوی State واقعی به Yealink برمی‌گردند.

اگر NOTIFY وجود دارد ولی وضعیت LED اشتباه است، XML مربوط به dialog-info، State و به‌خصوص Version را بررسی کنید. Yealink در Firmwareهای V83 و جدیدتر می‌تواند Notificationهایی با Version عقب‌تر را Ignore کند؛ بنابراین State قدیمی روی تلفن باقی می‌ماند.

اگر BLF بعد از مدت مشخصی خراب می‌شود، Subscription Period و Refresh را بررسی کنید. در BLF List نیز List URI و Resource List سمت PBX اهمیت دارند. در Asterisk، Hint، Context و ماژول‌های PJSIP Subscription باید درست باشند.

با کنار هم گذاشتن PCAP تلفن، SIP Log سرور و State واقعی Extension معمولاً می‌توان مشخص کرد مشکل از Yealink است یا PBX؛ بدون اینکه به Factory Reset یا تغییر تصادفی Firmware نیاز داشته باشید.

منابع و مستندات
مکانیزم BLF، Stateهای dialog-info، Subscription و روش‌های عیب‌یابی این مقاله با مستندات رسمی Yealink، استانداردهای SIP و مستندات Asterisk تطبیق داده شده‌اند.
Yealink Support
SUBSCRIBE، NOTIFY، Stateهای BLF، Packet Capture و مشکل Dialog Version در Firmwareهای جدید
Yealink Support
BLF Key، BLF List URI، Subscription Period، Event، Out-of-dialog NOTIFY و Host Matching
RFC Editor
استاندارد فعلی SUBSCRIBE، NOTIFY، Subscription State و Refresh؛ جایگزین RFC 3265
RFC Editor
تعریف Event برابر dialog و قالب application/dialog-info+xml برای وضعیت Dialogهای SIP
Asterisk
Inbound Subscription، presence/dialog، Hint، Context و ماژول‌های res_pjsip_pubsub و res_pjsip_exten_state
BLF و وضعیت داخلی‌های VoIP درست نمایش داده نمی‌شود؟

برای بررسی SIP و کانفیگ مرکز تلفن کمک می‌خواهید؟

اگر BLF تلفن‌های Yealink وضعیت اشتباه نشان می‌دهد، SUBSCRIBE و NOTIFY برقرار نمی‌شوند یا BLF List و Pickup درست کار نمی‌کنند، می‌توانید درخواست بررسی کانفیگ ثبت کنید تا تنظیمات تلفن، شبکه و مرکز تلفن متناسب با همان مشکل بررسی شوند.

تماس با پشتیبانی ایرانیکاسرور

021-91302467

اشتراک‌گذاری مقاله
گفت‌وگو درباره آموزش

دیدگاه‌ها (۰)

هنوز دیدگاهی ثبت نشده است.

دیدگاه یا سؤال خود را بنویسید

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