AI context/memory from Claude Code sessions covering all infrastructure: JARVIS, NovaCPX, DO sites, Proxmox, FusionPBX, MediaStack, and project feedback/preferences.
3.3 KiB
name, description, metadata
| name | description | metadata | ||||||
|---|---|---|---|---|---|---|---|---|
| feedback-yealink-provisioning | Yealink T48S + FusionPBX provisioning — complete root causes and fixes for BLF buttons not showing |
|
THE ROOT CAUSE OF BLF BUTTONS NOT SHOWING (confirmed fix 2026-05-29):
Yealink phones ignore DSS key settings in .boot files — they only apply them from .cfg files. FusionPBX's nginx rewrite for {mac}.boot stripped the file= param, so the phone received the full 122KB config as a .boot file and silently ignored all linekey settings.
Fix: Two-part:
- Create
{$mac}.boottemplate in/var/www/fusionpbx/resources/templates/provision/yealink/t48s/containing:#!version:1.0.0.1 include:config "y000000000065.cfg" include:config "{$mac}.cfg" overwrite_mode = 1 - Change nginx rewrite in
/etc/nginx/sites-enabled/fusionpbx:- OLD:
rewrite "^.*/provision/([A-Fa-f0-9]{12})(\.boot)$" /app/provision/index.php?mac=$1; - NEW:
rewrite "^.*/provision/([A-Fa-f0-9]{12})(\.boot)$" /app/provision/index.php?mac=$1&file=%7b%24mac%7d.boot;
- OLD:
This makes {mac}.boot return a 164-byte boot file with includes. Phone then fetches {mac}.cfg as a .cfg file, applies ALL settings including DSS/BLF keys.
After provisioning on firmware 66.86.0.15: Phone requires a physical power cycle to register and show BLF buttons. Update Now downloads the config but doesn't auto-reboot on this firmware.
Other critical lessons:
1. overwrite_mode = 1 is required — default is 0, phone ignores all config changes after first provision.
- Set in
{$mac}.boottemplate (and ally000000000000.boottemplates)
2. Factory reset clears the provisioning URL — must re-enter manually:
- Menu > Settings > Advanced (password: admin) > Auto Provision
- Server URL:
https://fusion.orbishosting.com/app/provision/ - Username:
provision-master, Password:Joker1974!!! - Then: Update Now → power cycle
3. BLF type = 16 in FusionPBX (confirmed). NOT type=2 (Speed Dial), NOT type=3.
- FusionPBX template uses type=16 for BLF (requires
pickup_valuefield) {if type == "1" || type == "16"}→ pickup_value in{$mac}.cfgtemplate confirms this
4. features.auto_linekeys.enable = 0 in y000000000065.cfg template — prevents phone firmware from auto-assigning SIP account over BLF keys.
5. External sofia profile: manage-presence = passive (not true).
- Internal profile: manage-presence = true (already correct in FusionPBX default)
- External profile must be passive so BLF SUBSCRIBEs from phones on port 5080 delegate to internal
- Fix: UPDATE v_sip_profile_settings SET value='passive' WHERE profile=external AND name='manage-presence'
- Then delete
/var/cache/fusionpbx/FusionPBX.configuration.sofia.confand reload sofia
6. git safe.directory for www-data — Fix: git config --system --add safe.directory /var/www/fusionpbx
7. After manual provision (Update Now): phone may not register until power cycled, especially firmware 66.86.0.15.
How to apply: When BLF buttons don't appear despite config downloading correctly, check: (1) is {mac}.boot returning 164 bytes or 122KB? (2) is external sofia profile passive? (3) did the phone power cycle after provisioning?