BLF Hints for Desk Phones

Configuration Asterisk 20+ -- Last reviewed 2026-08-22 configuration blf hints pjsip polycom Found this useful? Upvote it. ×

BLF Hints for Desk Phones

Busy Lamp Field (BLF) lets a phone's line keys light up to show whether other extensions are idle, ringing, or on a call. This requires hint definitions in the dialplanThe core call-routing configuration of Asterisk, written mostly in extensions.conf as contexts, extensions, and priorities that decide how every call is handled. Full definition → that map extensions to their device state.

The Snippet

[hints]
; Extension presence hints - maps extension numbers to PJSIP device state
exten => 100,hint,PJSIP/100
exten => 101,hint,PJSIP/101
exten => 102,hint,PJSIP/102

; Feature code hints (for speed dial buttons with status)
exten => *97,hint,Custom:voicemail
exten => *70,hint,Custom:park

Then include the hints contextA named section of the dialplan that groups extensions. Calls enter a specific context and can only reach extensions visible from it, making contexts the basic unit of call routing and security. in your internal context:

[internal]
include => hints
include => dial-extension
include => outbound
include => features
include => parkedcalls

How It Works

A hint line doesn't handle calls, it tells Asterisk to track the state of a device and publish that state via SIPSession Initiation Protocol, the standard signaling protocol used to set up, manage, and tear down VoIP calls between Asterisk and phones or carriers. SUBSCRIBE/NOTIFY. When phone B subscribes to extensionA dialplan entry that matches a dialed number or pattern within a context and triggers a sequence of prioritized steps. 100's hint, Asterisk sends state updates whenever extension 100's PJSIPThe modern SIP channel driver in Asterisk (chan_pjsip), replacing the older chan_sip. Configured in pjsip.conf using endpoints, AORs, auths, and transports. endpointIn PJSIP configuration, the SIP entity Asterisk communicates with: a phone, trunk, or other user agent. Defined by an endpoint section in pjsip.conf. changes state (idle, ringing, in-use).

Extension hints (PJSIP/100) track the actual device state of that endpoint.

Custom hints (Custom:voicemail) are application-defined states you can set programmatically with:

exten => *78,1,Set(DEVICE_STATE(Custom:dnd-${CALLERID(num)})=BUSY)

PJSIP Endpoint Configuration

For BLF to work, your endpoints need named_call_group and named_pickup_group configured:

[endpoint-internal](!)
type = endpoint
; ... other settings ...
named_call_group = office
named_pickup_group = office

This allows BLF buttons to double as pickup buttons, pressing a lit BLF key while it shows "ringing" will pick up that call.

Verifying Hints

From the Asterisk CLI:

asterisk*CLI> core show hints
    -= Registered Asterisk Dial Plan Hints =-
        100@hints          : PJSIP/100        State:Idle
        101@hints          : PJSIP/101        State:InUse
        102@hints          : PJSIP/102        State:Unavailable
        *97@hints          : Custom:voicemail  State:Idle

States you'll see: Idle, InUse, Busy, Unavailable, Ringing, OnHold.

Phone-Side Configuration

On Polycom VVX phones, BLF buttons are configured as "attendant" entries:

attendant.resourceList.1.address="101"
attendant.resourceList.1.label="Bob"
attendant.resourceList.1.type="normal"

The type="normal" tells the phone to subscribe to the hint. The button will show green (idle), red (in-use), or flashing red (ringing).

User Notes

Know a tip or gotcha for this topic? Share it below and help others.

Contribute a note

Share a tip, gotcha, or practical example. Keep it under 2000 characters. No questions (use the Asterisk community forums for support). Wrap code in backticks.

Moderated before publishing. Email never shown.
Related Snippets