# FusionPBX Custom Configs (134.209.72.226) ## Yealink T48S Provisioning — Critical Fixes ### Problem: BLF buttons never applied from provisioning Root cause: nginx rewrite for `{mac}.boot` stripped the `file=` param, so FusionPBX served the full 122KB config as a boot file. Yealink ignores DSS keys in .boot files — they only apply from .cfg files. ### Fix 1: 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; ### Fix 2: {$mac}.boot template Created: /var/www/fusionpbx/resources/templates/provision/yealink/t48s/{$mac}.boot Content: boot file with includes pointing to y000000000065.cfg and {$mac}.cfg Phone flow: {mac}.boot (164 bytes) → y000000000065.cfg → {mac}.cfg (full config applied) ### Fix 3: y000000000065.cfg template changes - features.auto_linekeys.enable = 0 (prevents phone overriding BLF keys) ### Fix 4: All y000000000000.boot templates - overwrite_mode = 1 (forces re-provision on every reboot, default was 0) ### Fix 5: External sofia profile - manage-presence = passive (not true — BLF SUBSCRIBEs delegate to internal profile) - Fix: UPDATE v_sip_profile_settings SET value='passive' WHERE profile=external AND name='manage-presence' - Then delete /var/cache/fusionpbx/FusionPBX.configuration.sofia.conf and reload sofia ## Device Profile "yealink" (UUID 2c68fe07-b29a-4429-a3c2-7ce9010c69ff) | Key | Type | Value | Label | Notes | |-----|------|-------|-------|-------| | 1 | 16 (BLF) | 1000 | Myron 1000 | | | 2 | 16 (BLF) | 1001 | Tommy 1001 | | | 3 | 16 (BLF) | 1002 | Myron Vanguard | | | 4 | 12 | 1003 | PC Slingshot | | | 5 | 12 | 1004 | Epic Travel | | | 6 | 12 | 1005 | Toms Java | | | 7 | 13 (Speed Dial) | *5901 | Park 5901 | Press during call=park, idle=retrieve | | 8 | 13 (Speed Dial) | *5902 | Park 5902 | | | 9 | 13 (Speed Dial) | *5903 | Park 5903 | | | 11 | 16 (BLF) | *724 | Page All | | Park buttons use Speed Dial (type=13) not BLF — BLF for park requires mod_presence which is not installed. Speed Dial works: press during call parks it, press idle retrieves. ## BLF Type Reference (Yealink T48S firmware 66.86.x, FusionPBX) - type=16 = BLF (requires pickup_value field in template) - type=13 = Speed Dial - type=12 = (user-defined) - type=1 = Line ## Provisioning URL - Server: https://fusion.orbishosting.com/app/provision/ - Auth: provision-master / Joker1974!!! (Digest) - After factory reset: must re-enter manually via Menu > Settings > Advanced > Auto Provision - Firmware 66.86.0.15: requires power cycle after "Update Now" to register ## fail2ban Whitelist (/etc/fail2ban/jail.local) - 107.178.2.130 (office) - 97.154.109.245 (home WAN) ## Phones - Ext 1000 (Myron): MAC 805ec0350477, firmware 66.86.0.15, IP 10.48.200.2 - Ext 1001 (Tommy): MAC 805e0c150c4f, firmware 66.86.0.160, IP 10.48.200.43 ## IVR Audio - /var/lib/freeswitch/recordings/134.209.72.226/ivr_menu.wav - American male voice (Festival TTS), 27s, 8kHz 16-bit mono PCM ## mod_presence - NOT installed — FreeSWITCH built from source at /usr/src/freeswitch-1.11/ - Basic extension BLF works via manage-presence=true on internal sofia profile - Park slot BLF would require mod_presence — workaround: Speed Dial buttons