3CX community support is notorious for harping on customers for using custom templates. Perhaps what 3CX doesn't realize is that we don't WANT to have to use them. It's a huge inconvenience and is really the most time-consuming part of managing a 3CX system. We
want greater control through the 3CX GUI and the ability to easily manage those settings on a more universal level (set defaults, change en masse). But until we have that intimate level of control over our phones through the GUI, we are forced to use custom templates. And we make mistakes. We have typos. We don't have the luxury of compiling a config file and it failing on a syntax error or typo before deploying even to a test phone. In my instance, it actually worked just fine up until I tried to update the firmware because the placement of the missing {endif} was the last thing that mattered.
Give us the tools to replace custom templates and we will use them. Until then, we will use custom templates so 3CX fits ours or our customers needs... or we will find something else.
To help 3CX understand the scope if the issue, every one of my phones uses one of 10 custom templates. On my Yealink phones, I have the following customizations on EVERY phone.
Code:
network.vlan.internet_port_enable = 1
network.vlan.internet_port_vid = 114
network.vlan.dhcp_enable =0
phone_setting.contrast = 7
features.dnd.large_icon.enable=1
local_time.time_format = 0
phone_setting.contact_photo_display.enable = 0
phone_setting.missed_call_power_led_flash.enable = 0
#(for T46 and T48)
screensaver.type = 0
#Find & Replace: yealinkt46.png --> Custom_YealinkT46.png
#Find & Replace: yealinkt48.png --> Custom_YealinkT48.png
#Added logic for the following setting: phone_setting.lcd_logo.mode
account.1.label = %%extension_first_name%% %%extension_last_name%%
<label>%%extension_number%%</label>
# Move into an existing logic statement: screensaver.display_clock.enable
account.1.fallback.redundancy_type = 1
account.1.sip_server.2.address = 10.1.14.2
features.text_message.enable = 0
A few of those are available through the 3CX GUI, but without the ability to manage defaults or changes all at once, it makes no sense to manually set every phone when you can do it in the template.
I have 7 custom Yealink templates that vary from there. Most of these are Multicast Listening IPs and Multicast BLFs for remote VPN sites (in fact... allowing those through the Phone Provisioning and BLF setup would probably bring me from 7 to 2 custom Yealink templates). So I set up the linekeys manually for sending a multicast 'page' and then I set up listening as follows:
Code:
multicast.receive_priority.priority = 0
multicast.listen_address.1.ip_address = 224.0.1.75:50001
multicast.listen_address.2.ip_address = 224.0.1.75:50002
From there, my only remaining Yealink phone that has customization is a public phone that has hotline set up and is locked down.