From 42185e804f9360f48f1c3f53d476d8218b1329cf Mon Sep 17 00:00:00 2001
From: "Mr. Sims" <83308634+tjsims1@users.noreply.github.com>
Date: Wed, 13 May 2026 07:23:05 -0700
Subject: [PATCH] Add Polycom CCX 500 provisioning template (#7963)
* Add Polycom CCX 500 provisioning template
Adds provisioning template for the Polycom (HP/Poly) CCX 500 desk phone
running OpenSIP UC Software 9.x.
Files:
- resources/templates/provision/polycom/ccx500/{$mac}.cfg
- resources/templates/provision/polycom/ccx500/{$mac}-directory.xml
- app/provision/resources/sql/postgresql/polycom_ccx500_codec_defaults.sql
Highlights:
- Standard FusionPBX feature-code softkeys (VMTransfer *99, Intercom *8,
Pickup **) consistent with sibling polycom/vvx* templates
- Three Park softkeys (*5901-*5903) for one-touch blind transfer
- Codec preference variables (polycom_codec_g711a, polycom_codec_opus, etc.)
with idempotent v_default_settings INSERTs providing sensible defaults
(G711_A > G711_Mu > G722 preferred, others disabled until enabled by admin)
- feature.enhancedFeatureKeys.enabled=1, matching the rest of the polycom/*
template family
Tested on 11 production CCX 500 devices running firmware 9.4.1.0508.
* Move CCX 500 codec defaults to polycom app_config.php
Per @markjcrane review: defaults should be added via the app_config.php
$apps[$x]['default_settings'] array pattern so they apply via
Advanced > Upgrade > Application Defaults, not a one-off SQL migration.
- Added 13 polycom_codec_* entries to app/polycom/app_config.php
- Removed app/provision/resources/sql/postgresql/polycom_ccx500_codec_defaults.sql
---
app/polycom/app_config.php | 104 +++++
.../polycom/ccx500/{$mac}-directory.xml | 28 ++
.../provision/polycom/ccx500/{$mac}.cfg | 430 ++++++++++++++++++
3 files changed, 562 insertions(+)
create mode 100644 resources/templates/provision/polycom/ccx500/{$mac}-directory.xml
create mode 100644 resources/templates/provision/polycom/ccx500/{$mac}.cfg
diff --git a/app/polycom/app_config.php b/app/polycom/app_config.php
index ee56b4e02..3bcb8fb06 100644
--- a/app/polycom/app_config.php
+++ b/app/polycom/app_config.php
@@ -847,5 +847,109 @@
$apps[$x]['default_settings'][$y]['default_setting_value'] = "0";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "0 (default) - The attendant can pick up calls to monitored users while they show as ringing. 1 - The attendant cannot pick up monitored calls.";
+ $y++;
+ $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "07e42c05-84b1-43fe-b905-2fcde45459b9";
+ $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
+ $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "polycom_codec_g711a";
+ $apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
+ $apps[$x]['default_settings'][$y]['default_setting_value'] = "1";
+ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
+ $apps[$x]['default_settings'][$y]['default_setting_description'] = "G.711 a-law codec priority order. 0 disables, 1+ sets preference order.";
+ $y++;
+ $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "9432aecc-e957-4a74-bbaf-b5b4fdc3b9d0";
+ $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
+ $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "polycom_codec_g711mu";
+ $apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
+ $apps[$x]['default_settings'][$y]['default_setting_value'] = "2";
+ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
+ $apps[$x]['default_settings'][$y]['default_setting_description'] = "G.711 mu-law codec priority order. 0 disables, 1+ sets preference order.";
+ $y++;
+ $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "e52abd34-d5d9-4240-8c36-d9a966020ce8";
+ $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
+ $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "polycom_codec_g722";
+ $apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
+ $apps[$x]['default_settings'][$y]['default_setting_value'] = "3";
+ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
+ $apps[$x]['default_settings'][$y]['default_setting_description'] = "G.722 wideband codec priority order. 0 disables, 1+ sets preference order.";
+ $y++;
+ $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "b02a5d65-c685-41a8-9f5d-f43ab4354173";
+ $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
+ $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "polycom_codec_g729ab";
+ $apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
+ $apps[$x]['default_settings'][$y]['default_setting_value'] = "0";
+ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
+ $apps[$x]['default_settings'][$y]['default_setting_description'] = "G.729AB codec priority order. 0 disables, 1+ sets preference order.";
+ $y++;
+ $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "46cb616b-ad0f-48c0-82c6-fb03de10306e";
+ $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
+ $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "polycom_codec_opus";
+ $apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
+ $apps[$x]['default_settings'][$y]['default_setting_value'] = "0";
+ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
+ $apps[$x]['default_settings'][$y]['default_setting_description'] = "Opus codec priority order. 0 disables, 1+ sets preference order.";
+ $y++;
+ $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "949265f7-a7cd-4619-bc63-560c7b045fca";
+ $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
+ $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "polycom_codec_g7221_16kbps";
+ $apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
+ $apps[$x]['default_settings'][$y]['default_setting_value'] = "0";
+ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
+ $apps[$x]['default_settings'][$y]['default_setting_description'] = "G.722.1 at 16 kbps codec priority order. 0 disables, 1+ sets preference order.";
+ $y++;
+ $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "92246742-850b-47df-941a-b75eb9b59632";
+ $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
+ $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "polycom_codec_g7221_24kbps";
+ $apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
+ $apps[$x]['default_settings'][$y]['default_setting_value'] = "0";
+ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
+ $apps[$x]['default_settings'][$y]['default_setting_description'] = "G.722.1 at 24 kbps codec priority order. 0 disables, 1+ sets preference order.";
+ $y++;
+ $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "7a1efe05-9f23-4f4a-8e25-0bfd17c6192e";
+ $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
+ $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "polycom_codec_g7221_32kbps";
+ $apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
+ $apps[$x]['default_settings'][$y]['default_setting_value'] = "0";
+ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
+ $apps[$x]['default_settings'][$y]['default_setting_description'] = "G.722.1 at 32 kbps codec priority order. 0 disables, 1+ sets preference order.";
+ $y++;
+ $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "6c7aa578-0596-41e7-abca-208e8fdba315";
+ $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
+ $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "polycom_codec_g7221c_24kbps";
+ $apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
+ $apps[$x]['default_settings'][$y]['default_setting_value'] = "0";
+ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
+ $apps[$x]['default_settings'][$y]['default_setting_description'] = "G.722.1C at 24 kbps codec priority order. 0 disables, 1+ sets preference order.";
+ $y++;
+ $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "2fafa378-62e7-4d34-a3de-950adc12b397";
+ $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
+ $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "polycom_codec_g7221c_32kbps";
+ $apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
+ $apps[$x]['default_settings'][$y]['default_setting_value'] = "0";
+ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
+ $apps[$x]['default_settings'][$y]['default_setting_description'] = "G.722.1C at 32 kbps codec priority order. 0 disables, 1+ sets preference order.";
+ $y++;
+ $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "9bbbaa2f-59e2-4799-afbf-56b352faab9c";
+ $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
+ $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "polycom_codec_g7221c_48kbps";
+ $apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
+ $apps[$x]['default_settings'][$y]['default_setting_value'] = "0";
+ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
+ $apps[$x]['default_settings'][$y]['default_setting_description'] = "G.722.1C at 48 kbps codec priority order. 0 disables, 1+ sets preference order.";
+ $y++;
+ $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "00f98383-6cec-4ea5-ab6f-6e36c19333ee";
+ $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
+ $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "polycom_codec_siren14_48kbps";
+ $apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
+ $apps[$x]['default_settings'][$y]['default_setting_value'] = "0";
+ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
+ $apps[$x]['default_settings'][$y]['default_setting_description'] = "Siren14 at 48 kbps codec priority order. 0 disables, 1+ sets preference order.";
+ $y++;
+ $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "be917ccb-b5ef-4dde-a349-40e72ad94d6c";
+ $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
+ $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "polycom_codec_siren22_64kbps";
+ $apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
+ $apps[$x]['default_settings'][$y]['default_setting_value'] = "0";
+ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
+ $apps[$x]['default_settings'][$y]['default_setting_description'] = "Siren22 at 64 kbps codec priority order. 0 disables, 1+ sets preference order.";
?>
diff --git a/resources/templates/provision/polycom/ccx500/{$mac}-directory.xml b/resources/templates/provision/polycom/ccx500/{$mac}-directory.xml
new file mode 100644
index 000000000..bbc5b1624
--- /dev/null
+++ b/resources/templates/provision/polycom/ccx500/{$mac}-directory.xml
@@ -0,0 +1,28 @@
+
+
+
+ {assign var=x value=1}
+ {foreach $contacts as $row}
+ -
+ {if $row.contact_name_given != ""}
+ {$row.contact_name_family}
+ {$row.contact_name_given}
+ {else}
+ {$row.contact_organization}
+ {/if}
+ {if $row.phone_number != ""}
+ {$row.phone_number}
+ {else}
+ {$row.phone_extension}
+ {/if}
+
+
+ 0
+ 0
+ 0
+ 0
+
+ {assign var=x value=$x+1}
+ {/foreach}
+
+
diff --git a/resources/templates/provision/polycom/ccx500/{$mac}.cfg b/resources/templates/provision/polycom/ccx500/{$mac}.cfg
new file mode 100644
index 000000000..947a5ca56
--- /dev/null
+++ b/resources/templates/provision/polycom/ccx500/{$mac}.cfg
@@ -0,0 +1,430 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+