در این راهنما BLF، Speed Dial و Call Pickup را از هم جدا میکنیم، Line Key تلفنهای Cisco MPP را درست تنظیم میکنیم و بعد با SIP Capture مشخص میکنیم مشکل در خود تلفن است یا در PBX، SUBSCRIBE، NOTIFY یا Event Package.
تشخیص سریع: اگر با فشردن کلید تماس برقرار میشود ولی رنگ کلید با وضعیت داخلی تغییر نمیکند، بخش Speed Dial سالم است و باید BLF Subscription را بررسی کنید. اگر نه وضعیت خط نمایش داده میشود و نه کلید شمارهگیری میکند، ابتدا Line Key Configuration و User ID را بررسی کنید.
BLF در Cisco MPP چیست و چه کاری انجام میدهد؟
BLF مخفف Busy Lamp Field است؛ یعنی نشانگر وضعیت یک خط دیگر. برای مثال منشی میتواند داخلی ۲۰۱ مدیر را روی یکی از کلیدهای قابل برنامهریزی تلفن قرار دهد و بدون تماسگرفتن بفهمد آن داخلی آزاد، مشغول یا در حال زنگخوردن است.
در راهنماهای فعلی Cisco MPP، وضعیتهای معمول BLF به این شکل نمایش داده میشوند:
| رنگ یا حالت | معنی معمول |
|---|---|
| سبز | خط مانیتورشده آزاد است |
| قرمز | خط مانیتورشده مشغول است |
| قرمز چشمکزن | خط مانیتورشده در حال زنگخوردن است |
| زرد / Amber | خطا در پیکربندی یا مانیتورکردن BLF |
بنابراین اگر کلید همیشه Amber است، بهجای تغییر رنگ LED یا Firmware باید دنبال مشکل Subscription، شناسه کاربر، URI یا PBX Support بگردید.
فرق BLF با Speed Dial چیست؟
این دو قابلیت اغلب روی یک کلید استفاده میشوند اما کارشان یکسان نیست.
Speed Dial فقط باعث میشود با فشار یک کلید، شماره مشخصی گرفته شود. برای این قابلیت PBX لازم نیست وضعیت آن شماره را به تلفن گزارش کند.
BLF وضعیت همان داخلی را بهصورت زنده دنبال میکند و به پشتیبانی سمت PBX نیاز دارد.
Cisco اجازه میدهد چند قابلیت روی یک Line Key ترکیب شوند:
| تنظیم | کاربرد |
|---|---|
| BLF | فقط مشاهده وضعیت داخلی |
| BLF + Speed Dial | مشاهده وضعیت و تماس با داخلی با همان کلید |
| BLF + Call Pickup | مشاهده وضعیت و پاسخدادن به تماس آن داخلی |
| BLF + Speed Dial + Call Pickup | هر سه قابلیت روی یک کلید |
BLF در SIP چگونه کار میکند؟
برای فهمیدن مشکل، باید جریان SIP را بدانیم.
فرض کنیم داخلی ۱۰۰ میخواهد وضعیت داخلی ۲۰۰ را روی یک کلید مشاهده کند.
تلفن داخلی ۱۰۰ یک پیام SUBSCRIBE برای Resource مربوط به داخلی ۲۰۰ به PBX میفرستد.
اگر PBX این Subscription را قبول کند، پاسخ موفق میدهد و سپس یک NOTIFY شامل وضعیت فعلی داخلی ۲۰۰ ارسال میکند.
هر بار داخلی ۲۰۰ از حالت آزاد به Ringing یا Busy برود، PBX یک NOTIFY جدید به تلفن ۱۰۰ میفرستد و تلفن رنگ یا آیکن BLF را تغییر میدهد.
بنابراین برای یک BLF سالم باید این زنجیره برقرار باشد:
Line Key → SUBSCRIBE → PBX Presence/BLF → NOTIFY → تغییر وضعیت LED
اگر SUBSCRIBE ارسال نشود، مشکل معمولاً سمت تلفن است
اولین سؤال در عیبیابی این است که آیا Cisco MPP اصلاً SUBSCRIBE میفرستد یا نه.
اگر هیچ SUBSCRIBE از تلفن دیده نمیشود، این موارد را بررسی کنید:
🔹 Line Key واقعاً بهعنوان BLF تعریف شده باشد.
🔹 User ID یا Extension مانیتورشده درست باشد.
🔹 Extended Function خالی یا اشتباه نباشد.
🔹 Proxy مربوط به همان Extension درست باشد.
🔹 BLF/Programmable Line Key توسط Provisioning دوباره بازنویسی نشده باشد.
تنظیم BLF روی Line Key در Cisco MPP
در رابط مدیریتی تلفن وارد این مسیر شوید:
Admin Login → Advanced → Voice → Phone
Line Key آزاد موردنظر را پیدا کنید.
در راهنمای فعلی مشترک Cisco MPP برای 6800/7800/8800، Extended Function برای BLF تکخطی میتواند با ساختاری مانند نمونه زیر تعریف شود:
fnc=blf;sub=BLF_List_URI@$PROXY;ext=user_ID@$PROXY
در این رشته:
fnc=blf مشخص میکند کلید برای BLF استفاده میشود.
sub مقصد Subscription را مشخص میکند.
ext یا در بعضی سناریوها usr کاربر یا داخلیای است که باید مانیتور شود.
$PROXY به Proxy مربوط به Line اشاره میکند.
BLF همراه شمارهگیری سریع
اگر میخواهید همان کلید هم وضعیت داخلی را نشان دهد و هم با فشردن آن تماس برقرار شود، از ترکیب BLF + Speed Dial استفاده میشود:
fnc=blf+sd;sub=BLF_List_URI@$PROXY;ext=user_ID@$PROXY
و برای BLF، Speed Dial و Call Pickup:
fnc=blf+sd+cp;sub=BLF_List_URI@$PROXY;ext=user_ID@$PROXY
مقادیر نمونه را باید با User ID و ساختار PBX واقعی خودتان جایگزین کنید.
یک تفاوت مهم در Firmwareهای جدیدتر: همیشه لازم نیست Extension را Disabled کنید
بعضی راهنماهای قدیمی Cisco میگفتند قبل از تعریف BLF روی Line Key باید مقدار Extension همان کلید را روی Disabled قرار دهید.
اما در راهنمای فعلی مشترک MPP، اگر قابلیت Direct PLK Configuration فعال باشد، میتوان Extended Function را بدون این الزام روی Line Key قرار داد.
اگر Direct PLK Configuration غیرفعال باشد، آنوقت برای استفاده از Extended Function باید Extension مربوط به آن Line Key را Disabled کنید.
بنابراین اگر آموزشی قدیمی را اجرا کردهاید و رفتار تلفن با آن یکسان نیست، این تفاوت Firmware و تنظیم Direct PLK را بررسی کنید.
Customizable PLK Options را بررسی کنید
اگر کاربر با نگهداشتن Line Key اصلاً گزینه BLF یا BLF + Speed Dial را نمیبیند، ممکن است قابلیت از منوی قابل برنامهریزی حذف شده باشد.
در راهنمای جدید MPP، نمونهای از Customizable PLK Options به این شکل است:
blf;sd;mwi;shortcut;dnd;
وجود blf اجازه نمایش BLF را میدهد و sd Speed Dial را فعال میکند.
Speed Dial کار میکند ولی BLF همیشه سبز یا خاموش است
این یکی از بهترین نشانههای تشخیصی است.
اگر فشردن Line Key داخلی موردنظر را شمارهگیری میکند، پس Extended Function حداقل تا بخش شمارهگیری درست تنظیم شده است.
اما اگر رنگ Line Key با وضعیت داخلی عوض نمیشود، باید SUBSCRIBE/NOTIFY را بررسی کنید.
در چنین شرایطی Reset تلفن یا تغییر Dial Plan معمولاً اولین اقدام درستی نیست.
با Packet Capture ببینید تلفن SUBSCRIBE میفرستد یا نه
در Wireshark میتوانید با فیلتر زیر شروع کنید:
sip.Method == "SUBSCRIBE" || sip.Method == "NOTIFY"
یا سادهتر:
sip
بعد Line Key را دوباره Provision کنید یا تلفن را Reboot کنید و جریان SIP را ببینید.
یک جریان سالم BLF تقریباً چه شکلی دارد؟
یک سناریوی ساده میتواند چنین باشد:
| پیام | معنی |
|---|---|
| SUBSCRIBE | تلفن درخواست مانیتورکردن داخلی را میفرستد |
| 200 OK یا پاسخ پذیرش مناسب | PBX Subscription را قبول کرده است |
| NOTIFY | PBX وضعیت فعلی Resource را میفرستد |
| NOTIFY جدید | هنگام Ringing، Busy یا Idle شدن خط ارسال میشود |
اگر SUBSCRIBE وجود دارد اما هیچ NOTIFY نمیآید، سمت PBX یا Event Subscription را جدیتر بررسی کنید.
اگر SUBSCRIBE با 404 برگردد چه معنی دارد؟
پاسخ 404 Not Found معمولاً نشان میدهد Resource یا User مورد درخواست برای PBX قابل شناسایی نیست.
User ID، Extension، Context یا BLF List URI را با ساختار واقعی PBX مقایسه کنید.
این یکی از دلایلی است که واردکردن صرف شماره داخلی در هر فیلدی همیشه درست نیست؛ Cisco در بعضی سناریوهای BLF صریحاً User ID را از شماره نمایشی یا نام شخص جدا میکند.
اگر SUBSCRIBE با 403 رد شود چه؟
403 Forbidden میتواند نشان دهد PBX Resource را میشناسد اما این Endpoint اجازه Subscribe به آن را ندارد.
در این حالت Permission، Class of Service، ACL، Presence Policy یا تنظیمات PBX را بررسی کنید.
اگر فقط بعضی داخلیها BLF دارند و بعضی دیگر ندارند، Permission و Resource Configuration نسبت به خرابی کلی شبکه محتملتر است.
اگر پاسخ 489 Bad Event دریافت کنیم
489 Bad Event یکی از مهمترین خطاها برای همین مقاله است.
این پاسخ معمولاً یعنی PBX Event Package درخواستشده در SUBSCRIBE را پشتیبانی نمیکند.
در Header پیام SUBSCRIBE فیلد Event را ببینید.
در سامانههای مختلف ممکن است BLF با Event Packageهایی مثل presence یا dialog پیاده شود.
اگر تلفن یک Event را درخواست کند ولی PBX فقط Event دیگری را پشتیبانی کند، BLF درست کار نخواهد کرد.
Event Package چیست؟
Event Package به دو طرف میگوید Subscription مربوط به چه نوع رخدادی است و NOTIFY باید چه نوع اطلاعاتی حمل کند.
مثلاً Asterisk/PJSIP در مستندات فعلی خود برای Extension State از Eventهای presence و dialog پشتیبانی میکند.
اما فقط نام Event کافی نیست. ماژول تولیدکننده Body مناسب نیز باید فعال باشد. برای نمونه، در Asterisk ماژول مخصوص dialog-info برای تولید بدنه Notification مربوط به Event dialog استفاده میشود.
یک اشتباه مهم درباره Share Line Event Package Type
در Cisco MPP پارامتری به نام Share Line Event Package Type وجود دارد که میتواند روی Call-Info یا Dialog قرار بگیرد.
اما این پارامتر در مستندات جدید Cisco برای Shared Line Appearance تعریف شده است.
بنابراین اگر BLF تکخطی شما مشکل Event Package دارد، صرفاً تغییر این گزینه به Dialog را راهحل قطعی BLF فرض نکنید. ابتدا Capture بگیرید و ببینید BLF واقعی چه SUBSCRIBEی ارسال میکند و PBX چه پاسخی میدهد.
BLF روی Asterisk یا FreePBX چرا کار نمیکند؟
در Asterisk، فقط Register شدن داخلی کافی نیست. برای اینکه وضعیت یک Extension در BLF قابل Subscribe باشد باید Extension State برای آن تعریف شده باشد.
در Dialplan معمولاً این کار با Hint انجام میشود.
نمونه ساده:
exten => 200,hint,PJSIP/200
اگر هیچ Hint برای داخلی ۲۰۰ وجود نداشته باشد، Asterisk ممکن است نتواند State موردنیاز BLF را گزارش کند.
چطور Hintهای Asterisk را بررسی کنیم؟
در CLI از این دستور استفاده کنید:
core show hints
دنبال Extension موردنظر بگردید و ببینید State آن با وضعیت واقعی تلفن تغییر میکند یا نه.
اگر Hint همیشه Unavailable یا مقدار اشتباه دارد، مشکل قبل از Cisco MPP و در Device State/PBX است.
ماژولهای PJSIP لازم برای BLF را بررسی کنید
در Asterisk/PJSIP، ماژول Pub/Sub باید فعال باشد.
module show like res_pjsip_pubsub
module show like res_pjsip_exten_state
برای Eventهای Presence و Dialog، ماژولهای مربوط به Extension State و Body Generator نیز باید موجود باشند.
اگر Event شما Dialog است، ماژول تولید dialog-info اهمیت دارد.
SIP Logger را فقط هنگام عیبیابی فعال کنید
برای دیدن SUBSCRIBE و NOTIFY در Asterisk:
pjsip set logger on
بعد BLF را Resync یا تلفن را Reboot کنید.
پس از پایان عیبیابی Logger را خاموش کنید:
pjsip set logger off
سمت PBX دقیقاً چه چیزهایی باید پشتیبانی شوند؟
| نیازمندی | اگر خراب باشد چه میبینیم؟ |
|---|---|
| پشتیبانی SUBSCRIBE/NOTIFY | هیچ State Update دریافت نمیشود |
| Resource یا Hint معتبر | 404 یا Unknown State |
| Event Package سازگار | 489 Bad Event یا NOTIFY غیرقابل استفاده |
| Permission | 403 یا رد Subscription |
| Device State صحیح | چراغ همیشه Idle/Busy/Unknown میماند |
| NOTIFY هنگام تغییر State | چراغ فقط در شروع درست است و بعد بهروز نمیشود |
BroadWorks و BLF List چه تفاوتی با مانیتور تکخطی دارند؟
Cisco MPP برای BroadSoft/BroadWorks قابلیت BLF List نیز دارد. در این حالت Server یک فهرست از کاربران قابل مانیتور را مدیریت میکند و تلفن میتواند Line Keyهای آزاد را به اعضای آن لیست اختصاص دهد.
در این سناریو مقدار List URI باید دقیقاً با چیزی که روی Server تعریف شده تطبیق داشته باشد.
اگر BLF List URI اشتباه باشد، ممکن است تکخطهایی که دستی ساختهاید کار کنند اما BLF List خودکار نمایش داده نشود.
چرا بعد از Provisioning، BLF دوباره خراب میشود؟
اگر BLF را دستی در Web Interface تنظیم میکنید و بعد از چند دقیقه یا Reboot تنظیم ناپدید میشود، Provisioning Server را بررسی کنید.
ممکن است Profile تلفن دوباره Line Keyها را بازنویسی کند.
در این حالت فقط تغییر دستی تلفن راهحل نیست؛ XML یا Config Template سمت Provisioning باید اصلاح شود.
نمونه تنظیم در فایل cfg.xml میتواند ساختاری شبیه این داشته باشد:
<Extended_Function_2_>fnc=blf+sd;sub=BLF_List_URI@$PROXY;ext=user_ID@$PROXY</Extended_Function_2_>
چرا BLF فقط بعد از Reboot مدتی کار میکند؟
Subscription زمان انقضا دارد و باید Renew شود.
اگر BLF بعد از Boot درست است ولی بعد از چند دقیقه یا چند ساعت از کار میافتد، فقط Initial SUBSCRIBE را بررسی نکنید. Renewal و Expires را هم در Capture ببینید.
ممکن است NAT، Firewall یا PBX Subscription State باعث شود Refresh SUBSCRIBE به مقصد نرسد یا NOTIFYهای بعدی مسدود شوند.
چرا BLF وضعیت Ringing را نشان نمیدهد ولی Busy را نشان میدهد؟
این حالت بیشتر به State Mapping و Notification Body مربوط میشود.
ممکن است PBX تغییر In-Use را ارسال کند اما وضعیت Early/Ringing را با قالبی که Endpoint انتظار دارد گزارش نکند.
در Asterisk نیز تنظیمات Device State، Hint و Event Body روی نحوه نمایش Ringing اثر دارند.
در چنین مشکلی Capture یک تماس واقعی به داخلی مانیتورشده بگیرید و NOTIFY قبل، هنگام Ringing و بعد از Answer را با هم مقایسه کنید.
اگر BLF زرد یا Error است از کجا شروع کنیم؟
این ترتیب معمولاً سریعتر به نتیجه میرسد:
مرحله ۱: Extended Function را بررسی کنید.
مرحله ۲: User ID و Proxy را با داخلی واقعی مقایسه کنید.
مرحله ۳: Capture بگیرید و وجود SUBSCRIBE را بررسی کنید.
مرحله ۴: Response به SUBSCRIBE را ببینید.
مرحله ۵: Event Header را بررسی کنید.
مرحله ۶: وجود NOTIFY و محتوای آن را بررسی کنید.
مرحله ۷: PBX Hint/Presence Resource را بررسی کنید.
مرحله ۸: ببینید Provisioning تنظیم Line Key را دوباره تغییر نمیدهد.
جدول تشخیص سریع BLF و Speed Dial در Cisco MPP
| نشانه | احتمال بیشتر | اولین بررسی |
|---|---|---|
| Speed Dial کار میکند ولی BLF نه | SUBSCRIBE/NOTIFY یا PBX Support | SIP Capture |
| کلید Amber است | BLF Config Error | User ID و Extended Function |
| SUBSCRIBE وجود ندارد | Line Key یا Provisioning | Voice → Phone |
| 404 | Resource/Extension پیدا نشده | User ID، Hint، Context |
| 403 | Subscription مجاز نیست | Permission/PBX Policy |
| 489 Bad Event | Event Package ناسازگار | Event Header و PBX Support |
| NOTIFY فقط یک بار میآید | Renewal یا State Update | Expires، SUBSCRIBE Refresh، PBX |
| بعد از Reboot تنظیم BLF پاک میشود | Provisioning Override | cfg.xml / Profile |
برای یک BLF سالم این پنج مورد باید همزمان درست باشند
خود Cisco MPP باید Line Key را درست تعریف کرده باشد.
آدرس Proxy و شناسه داخلی مانیتورشده باید صحیح باشند.
PBX باید SUBSCRIBE را قبول کند.
Event Package و Notification Body دو طرف باید سازگار باشند.
PBX باید با هر تغییر State یک NOTIFY معتبر برای Endpoint بفرستد.
اگر این پنج مرحله را جداگانه بررسی کنید، BLF از یک قابلیت مبهم به یک جریان SIP کاملاً قابل عیبیابی تبدیل میشود.
BLF روی Cisco MPP کار نمیکند اما تماسها سالماند؟
اگر داخلیها Register هستند ولی BLF، Call Pickup یا Line Status کار نمیکند، مشکل معمولاً در مسیر Presence، SUBSCRIBE/NOTIFY یا پیکربندی PBX است. بررسی همزمان SIP Trace تلفن و Server خیلی سریعتر از تغییر تصادفی Firmware و Line Key به علت اصلی میرسد.
پشتیبانی ایرانیکاسرور میتواند تنظیم Line Key، SIP Trace و سمت PBX را در یک مسیر واحد بررسی کند.
پرسشهای رایج
چرا Speed Dial کار میکند ولی BLF کار نمیکند؟
Speed Dial فقط شماره را میگیرد، اما BLF به Subscription سمت SIP نیاز دارد. اگر شمارهگیری سالم است ولی وضعیت خط تغییر نمیکند، SUBSCRIBE، NOTIFY و پشتیبانی PBX را بررسی کنید.
چراغ زرد BLF در Cisco MPP یعنی چه؟
در راهنمای فعلی Cisco MPP، Amber نشاندهنده خطا در پیکربندی BLF است. User ID، Extended Function، BLF URI و پاسخ PBX به SUBSCRIBE را بررسی کنید.
آیا برای BLF باید Line Key را Disabled کنیم؟
همیشه نه. در راهنمای جدید MPP اگر Direct PLK Configuration فعال باشد، الزام قدیمی برای Disabled کردن Extension در همه سناریوها وجود ندارد. اگر Direct PLK غیرفعال باشد، برای Extended Function باید Extension Line Key را Disabled کنید.
SUBSCRIBE ارسال میشود ولی BLF کار نمیکند؛ قدم بعد چیست؟
Response به SUBSCRIBE و سپس NOTIFY را بررسی کنید. 403، 404 و 489 هرکدام مسیر عیبیابی متفاوتی دارند.
489 Bad Event یعنی چه؟
معمولاً یعنی PBX Event Package درخواستشده توسط Endpoint را پشتیبانی نمیکند. Event Header پیام SUBSCRIBE را با قابلیتهای Presence/Dialog سمت PBX مقایسه کنید.
برای Asterisk چه چیزی برای BLF لازم است؟
Extension موردنظر باید Hint معتبر داشته باشد و ماژولهای PJSIP Pub/Sub و Extension State فعال باشند. سپس باید SUBSCRIBE و NOTIFY را با SIP Logger بررسی کنید.
آیا BLF List با BLF تکخطی یکسان است؟
خیر. در BLF تکخطی هر Line Key برای یک User تنظیم میشود. BLF List میتواند فهرستی از کاربران را از Server بگیرد و روی Line Keyهای آزاد قرار دهد؛ Cisco این قابلیت را بهویژه برای BroadWorks مستند کرده است.
چرا BLF بعد از چند ساعت از کار میافتد؟
Subscription باید قبل از پایان Expires تمدید شود. Refresh SUBSCRIBE، Firewall/NAT و وضعیت Subscription سمت PBX را بررسی کنید.
جمعبندی
برای رفع مشکل BLF در Cisco MPP، BLF را از Speed Dial جدا کنید. اگر کلید تماس میگیرد اما وضعیت خط را نشان نمیدهد، تقریباً مطمئن هستیم بخش شمارهگیری سالم است و باید مسیر Presence را بررسی کنیم.
از Line Key شروع کنید، بعد SUBSCRIBE را ببینید، Response PBX را بررسی کنید و در نهایت NOTIFY و Event Package را با قابلیتهای Server تطبیق دهید. روی Asterisk/PJSIP نیز Hint و ماژولهای Pub/Sub بخش مهم این زنجیره هستند.
با این روش، مشکل BLF را میتوان بدون Factory Reset یا تغییر تصادفی Firmware به یکی از چند نقطه مشخص محدود کرد: Line Key، Resource، Permission، Event Package یا State Notification.






دیدگاهها (۰)