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
This commit is contained in:
Mr. Sims
2026-05-13 07:23:05 -07:00
committed by GitHub
parent d4f7b30291
commit 42185e804f
3 changed files with 562 additions and 0 deletions
+104
View File
@@ -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.";
?>
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<directory>
<item_list>
{assign var=x value=1}
{foreach $contacts as $row}
<item>
{if $row.contact_name_given != ""}
<ln>{$row.contact_name_family}</ln>
<fn>{$row.contact_name_given}</fn>
{else}
<ln>{$row.contact_organization}</ln>
{/if}
{if $row.phone_number != ""}
<ct>{$row.phone_number}</ct>
{else}
<ct>{$row.phone_extension}</ct>
{/if}
<rt>7</rt>
<dc/>
<ad>0</ad>
<ar>0</ar>
<bw>0</bw>
<bb>0</bb>
</item>
{assign var=x value=$x+1}
{/foreach}
</item_list>
</directory>
@@ -0,0 +1,430 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<PHONE>
<REGISTRATION
{foreach $lines as $row}reg.{$row.line_number}.displayName="{$row.display_name}"
reg.{$row.line_number}.address="{$row.user_id}@{$row.server_address}"
reg.{$row.line_number}.label="{$row.label}"
reg.{$row.line_number}.serverFeatureControl.cf="{$polycom_feature_key_sync}"
reg.{$row.line_number}.serverFeatureControl.dnd="{$polycom_feature_key_sync}"
{if isset($row.shared_line)}reg.{$row.line_number}.type="{$row.shared_line}"{else}reg.{$row.line_number}.type="private"{/if}
reg.{$row.line_number}.thirdPartyName=""
reg.{$row.line_number}.auth.userId="{$row.user_id}"
reg.{$row.line_number}.auth.password="{$row.password}"
{if isset($row.line_keys)}reg.{$row.line_number}.lineKeys="{$row.line_keys}"{else}reg.{$row.line_number}.lineKeys="1"{/if}
{if isset($row.outbound_proxy)}reg.{$row.line_number}.outboundProxy.address = "{$row.outbound_proxy}"{/if}
{if isset($row.sip_port)}reg.{$row.line_number}.outboundProxy.port="{$row.sip_port}"{else}reg.{$row.line_number}.outboundProxy.port="5060"{/if}
{if $row.sip_transport == ''}reg.{$row.line_number}.outboundProxy.transport="TCPOnly"{/if}
{if $row.sip_transport == 'tcp'}reg.{$row.line_number}.outboundProxy.transport="TCPOnly"{/if}
{if $row.sip_transport == 'udp'}reg.{$row.line_number}.outboundProxy.transport="UDPOnly"{/if}
{if $row.sip_transport == 'tls'}reg.{$row.line_number}.outboundProxy.transport="TLS" {/if}
{if $row.sip_transport == 'dns srv'}reg.{$row.line_number}.outboundProxy.transport="DNSnaptr"{/if}
{if isset($row.server_address_primary)}reg.{$row.line_number}.server.1.address="{$row.server_address_primary}"{else}reg.{$row.line_number}.server.1.address="{$row.server_address}"{/if}
{if isset($row.sip_port)}reg.{$row.line_number}.server.1.port="{$row.sip_port}"{else}reg.{$row.line_number}.server.1.port="5060"{/if}
{if $row.sip_transport == ''}reg.{$row.line_number}.server.1.transport="TCPOnly"{/if}
{if $row.sip_transport == 'tcp'}reg.{$row.line_number}.server.1.transport="TCPOnly"{/if}
{if $row.sip_transport == 'udp'}reg.{$row.line_number}.server.1.transport="UDPOnly"{/if}
{if $row.sip_transport == 'tls'}reg.{$row.line_number}.server.1.transport="TLS" {/if}
{if $row.sip_transport == 'dns srv'}reg.{$row.line_number}.server.1.transport="DNSnaptr"{/if}
{if isset($row.register_expires)}reg.{$row.line_number}.server.1.expires="{$row.register_expires}"{else}reg.{$row.line_number}.server.1.expires="{$row.register_expires}"{/if}
reg.{$row.line_number}.server.2.address="{$row.server_address_secondary}"
{if isset($row.sip_port)}reg.{$row.line_number}.server.2.port="{$row.sip_port}"{else}reg.{$row.line_number}.server.1.port="5060"{/if}
{if $row.sip_transport == ''}reg.{$row.line_number}.server.2.transport="TCPOnly"{/if}
{if $row.sip_transport == 'tcp'}reg.{$row.line_number}.server.2.transport="TCPOnly"{/if}
{if $row.sip_transport == 'udp'}reg.{$row.line_number}.server.2.transport="UDPOnly"{/if}
{if $row.sip_transport == 'tls'}reg.{$row.line_number}.server.2.transport="TLS" {/if}
{if $row.sip_transport == 'dns srv'}reg.{$row.line_number}.server.2.transport="DNSnaptr"{/if}
{if isset($row.register_expires)}reg.{$row.line_number}.server.2.expires="{$row.register_expires}"{else}reg.{$row.line_number}.server.2.expires="{$row.register_expires}"{/if}
{if isset($polycom_ring_type)}reg.{$row.line_number}.ringType="{$polycom_ring_type}"{/if}
{if isset($polycom_ring_type_private)}reg.{$row.line_number}.ringType.privateLine="{$polycom_ring_type_private}"{/if}
{/foreach}
/>
<SECURITY
sec.srtp.enable="{$polycom_srtp_enable}"
sec.srtp.offer="{$polycom_srtp_offer}"
sec.srtp.require="{$polycom_srtp_require}"
{if isset($polycom_root_cert)}sec.TLS.customCaCert.5="{$polycom_root_cert}"{/if}
{if isset($polycom_cert_validation)}sec.TLS.SIP.strictCertCommonNameValidation="{$polycom_cert_validation}"{/if}
{if isset($polycom_provision_cert_validate)}
device.sec.TLS.prov.strictCertCommonNameValidation.set ="1"
device.sec.TLS.prov.strictCertCommonNameValidation="{$polycom_provision_cert_validate}"
{/if}
{if isset($polycom_platform_profile_cipher_suite)}
device.sec.TLS.profile.cipherSuiteDefault1.set="1"
device.sec.TLS.profile.cipherSuiteDefault1="0"
device.sec.TLS.profile.cipherSuite1.set="1"
device.sec.TLS.profile.cipherSuite1="{$polycom_platform_profile_cipher_suite}"
{/if}
/>
<DEVICE_SETTINGS
device.set="1"
device.baseProfile.set="1"
device.baseProfile="Generic"
device.sntp.serverName="{$ntp_server_primary}"
device.sntp.gmtOffset="{$polycom_gmt_offset}"
device.prov.upgradeServer.set="1"
device.prov.upgradeServer="{$polycom_firmware_url}"
{if isset($admin_password)}
device.auth.localUserPassword.set="1"
device.auth.localUserPassword="{$admin_password}"
{/if}
{if isset($admin_password)}
device.auth.localAdminPassword.set="1"
device.auth.localAdminPassword="{$admin_password}"
{/if}
{if isset($dns_server_primary)}device.dns.serverAddress="{$dns_server_primary}"{/if}
{if isset($dns_server_secondary)}device.dns.altSrvAddress="{$dns_server_secondary}"{/if}
{if isset($polycom_provision_url)}
device.prov.serverName.set="1"
device.prov.serverName="{$polycom_provision_url}"
{else}
device.prov.serverName.set="1"
device.prov.serverName="{$domain_name}/app/provision/"
{/if}
device.prov.serverType.set="1"
device.prov.serverType="{$polycom_server_type}"
device.prov.user.set="1"
device.prov.user="{$http_auth_username}"
device.prov.password.set="1"
device.prov.password="{$http_auth_password}"
device.prov.tagSerialNo.set="1"
device.prov.tagSerialNo="1"
device.prov.redunAttemptLimit.set="1"
device.prov.redunAttemptLimit="10"
device.prov.redunInterAttemptDelay.set="1"
device.prov.redunInterAttemptDelay="150"
device.prov.abortSWUpgradeAfterFailures.set="1"
device.prov.abortSWUpgradeAfterFailures="3"
{if isset($polycom_syslog_server)}
device.syslog.serverName.set="1"
device.syslog.serverName="{$polycom_syslog_server}"
device.syslog.transport.set="1"
device.syslog.transport="{$polycom_syslog_transport}"
device.syslog.facility.set="1"
device.syslog.facility="{$polycom_syslog_facility}"
device.syslog.renderLevel.set="1"
device.syslog.renderLevel="{$polycom_syslog_renderlevel}"
device.syslog.prependMac.set="1"
device.syslog.prependMac="{$polycom_syslog_prependmac}"
{/if}
/>
<SNTP
tcpIpApp.sntp.resyncPeriod="86400"
tcpIpApp.sntp.address="{$ntp_server_primary}"
tcpIpApp.sntp.gmtOffset.overrideDHCP="1"
tcpIpApp.sntp.gmtOffset="{$polycom_gmt_offset}"
{if isset($polycom_olson_timezone_id)}tcpIpApp.sntp.olsonTimezoneID="{$polycom_olson_timezone_id}"{/if}
{if filter_var($daylight_savings_enabled, FILTER_VALIDATE_BOOLEAN)}
tcpIpApp.sntp.daylightSavings.enable="1"
{else}
tcpIpApp.sntp.daylightSavings.enable="0"
{/if}
tcpIpApp.sntp.daylightSavings.fixedDayEnable="0"
tcpIpApp.sntp.daylightSavings.start.month="{$daylight_savings_start_month}"
tcpIpApp.sntp.daylightSavings.start.date="{$daylight_savings_start_day}"
tcpIpApp.sntp.daylightSavings.start.time="{$daylight_savings_start_time}"
tcpIpApp.sntp.daylightSavings.start.dayOfWeek="1"
tcpIpApp.sntp.daylightSavings.start.dayOfWeek.lastInMonth="0"
tcpIpApp.sntp.daylightSavings.stop.month="{$daylight_savings_stop_month}"
tcpIpApp.sntp.daylightSavings.stop.date="{$daylight_savings_stop_day}"
tcpIpApp.sntp.daylightSavings.stop.time="{$daylight_savings_stop_time}"
tcpIpApp.sntp.daylightSavings.stop.dayOfWeek="1"
tcpIpApp.sntp.daylightSavings.stop.dayOfWeek.lastInMonth="0"
/>
<DIALPLAN
{if filter_var($polycom_emergency_customized, FILTER_VALIDATE_BOOLEAN)}
dialplan.routing.server.1.address="{$polycom_emergency_server}"
dialplan.routing.server.1.port="{$polycom_emergency_port}"
{foreach $polycom_emergency_number as $number name=emergencynumbers}
dialplan.routing.emergency.{$smarty.foreach.emergencynumbers.iteration}.value="{$number}"
dialplan.routing.emergency.{$smarty.foreach.emergencynumbers.iteration}.server.1="1"
{/foreach}
{/if}
{if isset($polycom_digitmap)}dialplan.digitmap="{$polycom_digitmap}"{else}dialplan.digitmap=""{/if}
{if isset($polycom_digitmap_timeout)}dialplan.digitmap.timeOut="{$polycom_digitmap_timeout}"{else}dialplan.digitmap.timeOut=""{/if}
/>
<DEVICE_KEYS
attendant.uri=""
{if isset($polycom_remotecallerid_automata)}
attendant.behaviors.display.remoteCallerID.automata="{$polycom_remotecallerid_automata}"
{else}
attendant.behaviors.display.remoteCallerID.automata="0"
{/if}
{if isset($polycom_remotecallerid_normal)}
attendant.behaviors.display.remoteCallerID.normal="{$polycom_remotecallerid_normal}"
{else}
attendant.behaviors.display.remoteCallerID.normal="0"
{/if}
{if isset($polycom_spontaneouscallappearances_automata)}
attendant.behaviors.display.spontaneousCallAppearances.automata="{$polycom_spontaneouscallappearances_automata}"
{else}
attendant.behaviors.display.spontaneousCallAppearances.automata="0"
{/if}
{if isset($polycom_spontaneouscallappearances_normal)}
attendant.behaviors.display.spontaneousCallAppearances.normal="{$polycom_spontaneouscallappearances_normal}"
{else}
attendant.behaviors.display.spontaneousCallAppearances.normal="0"
{/if}
feature.enhancedFeatureKeys.enabled="1"
{foreach $keys["line"] as $row}
{if $row.device_key_type == "automata" || $row.device_key_type == "normal"}
attendant.resourceList.{$row.device_key_id}.address="{$row.device_key_value}"
attendant.resourceList.{$row.device_key_id}.callAddress=""
attendant.resourceList.{$row.device_key_id}.label="{$row.device_key_label}"
attendant.resourceList.{$row.device_key_id}.proceedingIsRecipient="0"
attendant.resourceList.{$row.device_key_id}.type="{$row.device_key_type}"
{if isset($polycom_restrict_pickup)}
attendant.restrictPickup="{$polycom_restrict_pickup}"
{/if}
{else}
{if $row.device_key_type != "line"}
{if $row.device_key_type == "URL"}
key.{$row.device_key_id}.function.prim="{$row.device_key_value}"
{else}
key.{$row.device_key_id}.function.prim="{$row.device_key_type}"
key.{$row.device_key_id}.subPoint.prim="{$row.device_key_value}"
{/if}
{/if}
{/if}
{/foreach}
/>
<MULTICAST_PAGING
ptt.pageMode.enable="{$polycom_page_enable}"
ptt.pageMode.group.1.label="Page All"
/>
<REMOTE_PACKET_CAPTURE
diags.pcap.enabled="0"
diags.pcap.remote.enabled="0"
/>
<GENERAL
{if isset($polycom_nat_ip)}
nat.ip="{$polycom_nat_ip}"
{/if}
{if isset($polycom_keep_alive)}nat.keepalive.interval="{$polycom_keep_alive}"
{else}nat.keepalive.interval="30"{/if}
voIpProt.SIP.specialEvent.checkSync.alwaysReboot="1"
voIpProt.SIP.requestValidation.1.method="{$polycom_request_validation_method}"
voIpProt.SIP.requestValidation.1.request="{$polycom_request_validation_request}"
voIpProt.SIP.alertInfo.2.class="autoAnswer"
voIpProt.SIP.alertInfo.2.value="answer"
voIpProt.server.1.failOver.reRegisterOn="1"
voIpProt.server.1.failOver.failRegistrationOn="1"
voIpProt.server.1.failOver.onlySignalWithRegistered="1"
voIpProt.server.1.failOver.failBack.mode="duration"
voIpProt.server.1.failOver.failBack.timeout="120"
voIpProt.server.2.failOver.reRegisterOn="1"
voIpProt.server.2.failOver.failRegistrationOn="1"
voIpProt.server.2.failOver.onlySignalWithRegistered="1"
voIpProt.server.2.failOver.failBack.mode="duration"
voIpProt.server.2.failOver.failBack.timeout="120"
{if isset($polycom_bluetooth_enabled)}
feature.bluetooth.enabled="{$polycom_bluetooth_enabled}"
{/if}
{if isset($polycom_bluetooth_radio_on)}
feature.bluetooth.radioOn="{$polycom_bluetooth_radio_on}"
{/if}
feature.broadsoftUcOne.enabled="0"
voice.volume.persist.handset="1"
voice.volume.persist.handsfree="1"
voice.volume.persist.headset="1"
voice.volume.persist.usbHeadset="1"
voice.volume.persist.bluetooth.headset="1"
voice.volume.persist.usb.handsfree="1"
feature.nonVolatileRingerVolume.enabled="1"
up.headsetMode="{$polycom_headset_mode}"
{if isset($polycom_analog_headset_option)}up.analogHeadsetOption="{$polycom_analog_headset_option}"{/if}
up.oneTouchVoiceMail="{$polycom_one_touch_voicemail}"
exchange.server.url="0.0.0.0"
up.warningLevel="2"
call.defaultTransferType="{$polycom_default_transfer_method}"
call.callWaiting.enable="{$polycom_call_waiting}"
call.callWaiting.ring="beep"
call.callsPerLineKey="{$polycom_calls_per_line_key}"
up.OffHookLineView.enabled="{$polycom_offhook_line_view_enabled}"
prov.polling.enabled="{$polycom_provision_polling_enabled}"
{if isset($polycom_provision_polling_mode)}prov.polling.mode="{$polycom_provision_polling_mode}"{/if}
{if isset($polycom_provision_polling_period)}prov.polling.period="{$polycom_provision_polling_period}"{/if}
prov.polling.time="{$polycom_provision_polling_time}"
{if isset($polycom_provision_polling_timerandomend)}prov.polling.timeRandomEnd="{$polycom_provision_polling_timerandomend}"{/if}
da.optIn="OptedOut"
da.optIn.menu.enabled="0"
feature.da.enabled="0"
feature.lens.enabled="0"
feature.pcc.enabled="0"
feature.obitalk.enabled="0"
feature.urlDialing.enabled="0"
feature.logUpload.enabled="{$polycom_log_upload_enabled}"
powerSaving.enable="{$polycom_power_saving_enable}"
voice.aec.hf.enable="1"
voice.aec.hs.enable="1"
dir.local.readonly="{$polycom_contact_list_readonly}"
{if isset($polycom_video_enable)}video.enable="{$polycom_video_enable}"{/if}
{if isset($polycom_video_audio_call_mode)}video.callMode.default="{$polycom_video_audio_call_mode}" {/if}
{if isset($polycom_video_audio_toggle)}feature.audioVideoToggle.enabled="{$polycom_video_audio_toggle}" {/if}
{foreach $lines as $row}
msg.mwi.{$row.line_number}.callBackMode="contact"
msg.mwi.{$row.line_number}.callBack="{$voicemail_number}"
{/foreach}
{if isset($polycom_diversion_header)}voIpProt.SIP.header.diversion.enable="{$polycom_diversion_header}"{/if}
reg.1.server.1.subscribe.expires="{$polycom_subscribe_expires}"
{if isset($polycom_contacts_directory)}contacts_directory="{$polycom_contacts_directory}/{$domain_name}/"{/if}
{if isset($polycom_pagination_enabled)}up.Pagination.enabled="{$polycom_pagination_enabled}"{/if}
/>
<BACKGROUND
{if isset($polycom_background_url)}
bg.background.enabled="1"
bg.color.selection="2,1"
bg.color.bm.1.name="{$polycom_background_url}"
{/if}
/>
<RING_TONES
se.rt.custom1.ringer="ringer1"
se.rt.custom1.type="ring"
se.rt.custom2.ringer="ringer2"
se.rt.custom2.type="ring"
se.rt.custom3.ringer="ringer3"
se.rt.custom3.type="ring"
se.rt.custom4.ringer="ringer4"
se.rt.custom4.type="ring"
se.rt.custom5.ringer="ringer5"
se.rt.custom5.type="ring"
se.rt.custom6.ringer="ringer6"
se.rt.custom6.type="ring"
se.rt.custom7.ringer="ringer7"
se.rt.custom7.type="ring"
se.rt.ringer8.ringer="ringer8"
se.rt.custom8.type="ring"
se.rt.custom9.ringer="ringer9"
se.rt.custom9.type="ring"
se.rt.custom10.ringer="ringer10"
se.rt.custom10.type="ring"
se.rt.custom11.ringer="ringer11"
se.rt.custom11.type="ring"
se.rt.custom12.ringer="ringer12"
se.rt.custom12.type="ring"
se.rt.custom13.ringer="ringer13"
se.rt.custom13.type="ring"
se.rt.custom14.ringer="ringer14"
se.rt.custom14.type="ring"
se.rt.custom15.ringer="ringer15"
se.rt.custom15.type="ring"
se.rt.custom16.ringer="ringer16"
se.rt.custom16.type="ring"
se.rt.custom17.ringer="ringer1"
se.rt.custom17.type="ring"
se.rt.custom18.ringer="ringer5"
se.rt.custom18.type="ring"
/>
<SOFT_KEYS
softkey.1.label="VMTransfer"
softkey.1.action="^*99$P1N4$$Trefer$"
softkey.1.enable="1"
softkey.1.use.active="1"
{if isset($polycom_softkey_1_precede)}
softkey.1.precede="{$polycom_softkey_1_precede}"
{else}softkey.1.precede="0"
{/if}
efk.efkprompt.1.label="Voice Mail ID to transfer to:"
efk.efkprompt.1.status="1"
efk.efkprompt.1.type="numeric"
{if isset($polycom_intercom_enable)}
softkey.2.label="Intercom"
softkey.2.action="^*8$P2N4$$Tinvite$"
softkey.2.enable="1"
softkey.2.use.idle="1"
efk.efkprompt.2.label="Enter destination"
efk.efkprompt.2.status="1"
efk.efkprompt.2.type="numeric"
efk.efkprompt.2.userfeedback="visible"
efk.efkprompt.2.digitmatching="none"
{/if}
{if isset($polycom_pickup_enable)}
softkey.3.label="Pick up"
softkey.3.action="^**$P3N4$$Tinvite$"
softkey.3.enable="1"
softkey.3.use.idle="1"
efk.efkprompt.3.label="Enter ext to intercept"
efk.efkprompt.3.status="1"
efk.efkprompt.3.type="numeric"
efk.efkprompt.3.userfeedback="visible"
efk.efkprompt.3.digitmatching="none"
{/if}
softkey.8.label="Park 1"
softkey.8.action="*5901$Trefer$"
softkey.8.enable="1"
softkey.8.use.active="1"
softkey.9.label="Park 2"
softkey.9.action="*5902$Trefer$"
softkey.9.enable="1"
softkey.9.use.active="1"
softkey.10.label="Park 3"
softkey.10.action="*5903$Trefer$"
softkey.10.enable="1"
softkey.10.use.active="1"
{if isset($polycom_softkey_do_not_disturb)}softkey.feature.doNotDisturb="{$polycom_softkey_do_not_disturb}"{/if}
{if isset($polycom_softkey_forward)}softkey.feature.forward="{$polycom_softkey_forward}"{/if}
{if isset($polycom_softkey_newcall)}softkey.feature.newcall="{$polycom_softkey_newcall}"{/if}
{if isset($polycom_softkey_directories)}softkey.feature.directories="{$polycom_softkey_directories}"{/if}
{if isset($polycom_basic_call_management_redundant)}
softkey.feature.basicCallManagement.redundant="{$polycom_basic_call_management_redundant}"
efk.softkey.alignleft="1"
{/if}
/>
<HOME_SCREEN
{if isset($polycom_homescreen_do_not_disturb)}homeScreen.doNotDisturb.enable="{$polycom_homescreen_do_not_disturb}"{/if}
{if isset($polycom_homescreen_forward)}homeScreen.forward.enable="{$polycom_homescreen_forward}"{/if}
{if isset($polycom_homescreen_directories)}homeScreen.directories.enable="{$polycom_homescreen_directories}"{/if}
homeScreen.intercom.enable="0"
/>
<USB
feature.callRecording.enabled="0"
/>
<LANGUAGE
lcl.ml.lang="{$polycom_display_language}"
/>
<NETWORK_SETTINGS
{if isset($polycom_dns_server)}
device.dns.serverAddress.set="1"
device.dns.serverAddress="{$polycom_dns_server}"
{/if}
{if isset($polycom_dns_alt_server)}
device.dns.altSrvAddress.set="1"
device.dns.altSrvAddress="{$polycom_dns_alt_server}"
{/if}
{if isset($polycom_boot_server_option)}
device.dhcp.bootSrvUseOpt.set="1"
device.dhcp.bootSrvUseOpt="{$polycom_boot_server_option}"
{/if}
{if isset($polycom_lldp_enabled)}
device.net.lldpEnabled.set="1"
device.net.lldpEnabled="{$polycom_lldp_enabled}"
{/if}
{if isset($polycom_cdp_enabled)}
device.net.cdpEnabled.set="1"
device.net.cdpEnabled="{$polycom_cdp_enabled}"
{/if}
{if isset($polycom_dhcp_vlan_discovery)}
device.dhcp.dhcpVlanDiscUseOpt.set="1"
device.dhcp.dhcpVlanDiscUseOpt="{$polycom_dhcp_vlan_discovery}"
{/if}
/>
<CODEC_PRIORITY
{if isset($polycom_codec_g711a)}voice.codecPref.G711_A="{$polycom_codec_g711a}"{/if}
{if isset($polycom_codec_g711mu)}voice.codecPref.G711_Mu="{$polycom_codec_g711mu}"{/if}
{if isset($polycom_codec_g722)}voice.codecPref.G722="{$polycom_codec_g722}"{/if}
{if isset($polycom_codec_g729ab)}voice.codecPref.G729_AB="{$polycom_codec_g729ab}"{/if}
{if isset($polycom_codec_opus)}voice.codecPref.Opus="{$polycom_codec_opus}"{/if}
{if isset($polycom_codec_g7221_16kbps)}voice.codecPref.G7221.16kbps="{$polycom_codec_g7221_16kbps}"{/if}
{if isset($polycom_codec_g7221_24kbps)}voice.codecPref.G7221.24kbps="{$polycom_codec_g7221_24kbps}"{/if}
{if isset($polycom_codec_g7221_32kbps)}voice.codecPref.G7221.32kbps="{$polycom_codec_g7221_32kbps}"{/if}
{if isset($polycom_codec_g7221c_24kbps)}voice.codecPref.G7221_C.24kbps="{$polycom_codec_g7221c_24kbps}"{/if}
{if isset($polycom_codec_g7221c_32kbps)}voice.codecPref.G7221_C.32kbps="{$polycom_codec_g7221c_32kbps}"{/if}
{if isset($polycom_codec_g7221c_48kbps)}voice.codecPref.G7221_C.48kbps="{$polycom_codec_g7221c_48kbps}"{/if}
{if isset($polycom_codec_siren14_48kbps)}voice.codecPref.Siren14.48kbps="{$polycom_codec_siren14_48kbps}"{/if}
{if isset($polycom_codec_siren22_64kbps)}voice.codecPref.Siren22.64kbps="{$polycom_codec_siren22_64kbps}"{/if}
/>
<CUSTOM_SETTINGS
{foreach $settings as $row}
{$row.device_setting_name}="{$row.device_setting_value}"
{/foreach}
/>
</PHONE>