Merge pull request #5560 from winsock/grandstream-xml

Grandstream GXV3370 Template Improvements
This commit is contained in:
FusionPBX 2020-11-17 20:11:55 -07:00 committed by GitHub
commit 3696269c39
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 356 additions and 340 deletions

View File

@ -614,45 +614,85 @@
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Ring Timeout (in seconds). Default is 60 (30-3600)";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "06a35172-1bea-4611-87d0-9d66475ae709";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_wallpaper_source";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric";
$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, 1 - Download, 2-USB(for GXP2140/2160/2170 only), 3 - Uploaded, 4 - Color Background";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "7ee552de-4634-4d61-8869-e0f5230858fa";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_display_language";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "Auto";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Display Language. See provision profile for codes.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "19604f85-b643-4b92-8e28-9c09c34cf559";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_blind_xfer_blf";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric";
$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'] = "Enable Blind Transfer to BLF Yes=1, No=0. Default=0";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "82b7076b-e596-49e8-b535-af86e21e0453";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_ip_address_mode";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric";
$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'] = "IP Address Mode. 0 - DHCP, 1 - Static IP, 2 - PPPoE. Default is 0";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "6ab26457-fcc8-414e-8ac5-ae681f114974";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_speaker_ring_volume";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "5";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Number: 0-7. Default is 5.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "06a35172-1bea-4611-87d0-9d66475ae709";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_wallpaper_source";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric";
$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, 1 - Download, 2-USB(for GXP2140/2160/2170 only), 3 - Uploaded, 4 - Color Background";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "7ee552de-4634-4d61-8869-e0f5230858fa";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_display_language";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "Auto";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Display Language. See provision profile for codes.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "19604f85-b643-4b92-8e28-9c09c34cf559";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_blind_xfer_blf";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric";
$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'] = "Enable Blind Transfer to BLF Yes=1, No=0. Default=0";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "82b7076b-e596-49e8-b535-af86e21e0453";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_ip_address_mode";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric";
$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'] = "IP Address Mode. 0 - DHCP, 1 - Static IP, 2 - PPPoE. Default is 0";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "6ab26457-fcc8-414e-8ac5-ae681f114974";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_speaker_ring_volume";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "5";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Number: 0-7. Default is 5.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "6f3f3390-2b69-4898-a4d9-e62249d58d58";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_feature_key_sync";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "boolean";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Configure Broadsoft feature key synchronization on supported phones";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "a6c84c0b-a7f1-4457-8afb-b64af601597d";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_wifi_enable";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "boolean";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Configure the WiFi radio on supported phones. If disabled allow the device to manage itself";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "f7fdbe09-0d4a-4d06-b70b-e25cdf1b3376";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_wifi_essid";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Configure the WiFi ESSID on supported phones";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "2edaa516-d87e-410f-8ddc-1cc468dabd2e";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_wifi_password";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Configure the WiFi password on supported phones";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "7b525ca5-96ae-4104-ad6c-c929f85c30dc";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_wifi_hidden_security";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "None";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Configure the security to use when connecting to a hidden SSID. Valid values: None, WEP, WPA/WPA2_PSK, 802.1X_EAP";
$y++;
?>

View File

@ -27,425 +27,471 @@
<!-- Web/SSH Access SSH Port has no alias yet -->
<!-- Account General Settings -->
{for $line=1 to 16}
{$row=$lines.$line}
<!-- Account Active -->
<!-- Yes, No -->
<item name="account.1.enable">Yes</item>
<item name="account.{$line}.enable">{if filter_var($row.enabled, FILTER_VALIDATE_BOOLEAN)}Yes{else}No{/if}</item>
<!-- Account Name -->
<item name="account.1.name">{$account.1.display_name}</item>
<item name="account.{$line}.name">{$row.display_name}</item>
<!-- SIP Server -->
<item name="account.1.sip.server.1.address">{$account.1.server_address}</item>
<item name="account.{$line}.sip.server.1.address">{$row.server_address}</item>
<!-- SIP User ID -->
<item name="account.1.sip.userid">{$account.1.user_id}</item>
<item name="account.{$line}.sip.userid">{$row.user_id}</item>
<!-- SIP Authentication ID -->
<item name="account.1.sip.subscriber.userId">{$account.1.auth_id}</item>
<item name="account.{$line}.sip.subscriber.userId">{$row.auth_id}</item>
<!-- SIP Authentication Password -->
<item name="account.1.sip.subscriber.password">{$account.1.password}</item>
<item name="account.{$line}.sip.subscriber.password">{$row.password}</item>
<!-- Voice Mail Access Number -->
<item name="account.1.sip.voicemail.number">*97</item>
<item name="account.{$line}.sip.voicemail.number">*97</item>
<!-- Display Name -->
<item name="account.1.sip.subscriber.name">{$account.1.display_name}</item>
<item name="account.{$line}.sip.subscriber.name">{$row.display_name}</item>
<!-- Tel URI -->
<!-- Disabled, UserIsPhone, Enabled -->
<item name="account.1.sip.telUri">Disabled</item>
<item name="account.{$line}.sip.telUri">Disabled</item>
<!-- Account 1 Network Settings -->
<!-- Outbound Proxy -->
<item name="account.1.sip.outboundProxy.1.address">{$account.1.outbound_proxy_primary}</item>
<item name="account.{$line}.sip.outboundProxy.1.address">{$row.outbound_proxy_primary}</item>
<!-- Secondary Outbound Proxy -->
<item name="account.1.sip.outboundProxy.2.address">{$account.1.outbound_proxy_secondary}</item>
<item name="account.{$line}.sip.outboundProxy.2.address">{$row.outbound_proxy_secondary}</item>
<!-- DNS Mode -->
<!-- ARecord, SRV, NaptrOrSrv -->
<item name="account.1.network.dnsMode">ARecord</item>
<item name="account.{$line}.network.dnsMode">ARecord</item>
<!-- DNS SRV Fail-over Mode -->
<!-- Default, SavedOneUntilDNSTTL, SavedOneUntilNoResponse -->
<item name="account.1.network.dnsSRVFailoverMode">Default</item>
<item name="account.{$line}.network.dnsSRVFailoverMode">Default</item>
<!-- NAT Traversal -->
<!-- No, STUN, KeepAlive, UPnP, Auto, VPN -->
<item name="account.1.network.natTraversal">Auto</item>
<item name="account.{$line}.network.natTraversal">Auto</item>
<!-- Proxy-Require -->
<item name="account.1.network.proxyRequire"></item>
<item name="account.{$line}.network.proxyRequire"></item>
<!-- SIP Registration -->
<!-- Yes, No -->
<item name="account.1.sip.registration">Yes</item>
<item name="account.{$line}.sip.registration">Yes</item>
<!-- Unregister Before New Registration -->
<!-- No, Yes - All, Instance -->
<item name="account.1.sip.unregisterOnReboot">Instance</item>
<item name="account.{$line}.sip.unregisterOnReboot">Instance</item>
<!-- Register Expiration (m) -->
<item name="account.1.sip.registerExpiration">{$account.1.register_expires}</item>
<item name="account.{$line}.sip.registerExpiration">{$row.register_expires}</item>
<!-- Re-register before Expiration (s) -->
<item name="account.1.sip.registerBeforeExpiration">0</item>
<item name="account.{$line}.sip.registerBeforeExpiration">0</item>
<!-- Registration Retry Wait Time (s) -->
<item name="account.1.sip.registrationFailureRetryWaitTime">20</item>
<item name="account.{$line}.sip.registrationFailureRetryWaitTime">20</item>
<!-- Add Auth Header On RE-REGISTER tobetested -->
<!-- Yes, No -->
<item name="account.1.sip.header.authOnInitialRegister">Yes</item>
<item name="account.{$line}.sip.header.authOnInitialRegister">Yes</item>
<!-- Enable SIP OPTIONS Keep Alive -->
<item name="account.1.sip.keepAlive.enable">No</item>
<item name="account.{$line}.sip.keepAlive.enable">No</item>
<!-- SIP OPTIONS Keep Alive Interval (s) -->
<item name="account.1.sip.keepAlive.interval">30</item>
<item name="account.{$line}.sip.keepAlive.interval">30</item>
<!-- SIP OPTIONS Keep Alive Maximum Tries -->
<item name="account.1.sip.keepAlive.maxLost">3</item>
<item name="account.{$line}.sip.keepAlive.maxLost">3</item>
<!-- Subscribe for MWI -->
<!-- Yes, No -->
<item name="account.1.sip.subscribe.forMwi">No</item>
<item name="account.{$line}.sip.subscribe.forMwi">No</item>
<!-- Use Privacy Header -->
<!-- Default, No, Yes -->
<item name="account.1.sip.header.privacy">Default</item>
<item name="account.{$line}.sip.header.privacy">Default</item>
<!-- Use P-Preferred-Identity Header -->
<!-- Default, No, Yes -->
<item name="account.1.sip.header.ppi">Default</item>
<item name="account.{$line}.sip.header.ppi">Default</item>
<!-- SIP Transport -->
<!-- UDP, TCP, TlsOrTcp -->
<item name="account.1.sip.transport">{$account.1.sip_transport}</item>
<item name="account.{$line}.sip.transport">{if $row.sip_transport=='tcp'}TCP{elseif $row.sip_transport=='tls'}TlsOrTcp{else}UDP{/if}</item>
<!-- Local SIP Port -->
<item name="account.1.sip.localPort">5060</item>
<item name="account.{$line}.sip.localPort">{$row.sip_port}</item>
<!-- SIP URI Scheme When Using TLS -->
<!-- sip, sips -->
<item name="account.1.sip.uriSchemeWhenUsingTls">sip</item>
<item name="account.{$line}.sip.uriSchemeWhenUsingTls">sip</item>
<!-- Use Actual Ephemeral Port in Contact with TCP/TLS -->
<!-- No, Yes -->
<item name="account.1.sip.useActualEphemeralPortInContactWithTcpTls">No</item>
<item name="account.{$line}.sip.useActualEphemeralPortInContactWithTcpTls">No</item>
<!-- Support SIP Instance ID -->
<!-- No, Yes -->
<item name="account.1.sip.supportInstanceId">Yes</item>
<item name="account.{$line}.sip.supportInstanceId">Yes</item>
<!-- SIP T1 Timeout -->
<!-- 0.5 sec - 0_5sec, 1 sec - 1sec, 2 sec - 2sec -->
<item name="account.1.sip.timer.t1">0_5sec</item>
<item name="account.{$line}.sip.timer.t1">0_5sec</item>
<!-- SIP T2 Interval -->
<!-- 2 sec - 2sec, 4 sec - 4sec, 8 sec - 8sec -->
<item name="account.1.sip.timer.t2">4sec</item>
<item name="account.{$line}.sip.timer.t2">4sec</item>
<!-- SIP Timer D Interval (Seconds) -->
<item name="account.1.sip.timerd.interval">0</item>
<item name="account.{$line}.sip.timerd.interval">0</item>
<!-- Remove OBP from Route -->
<!-- Disable - InRoute, Enable - NotInRoute, Always - AlwaysSentTo -->
<item name="account.1.sip.outboundProxy.mode">InRoute</item>
<item name="account.{$line}.sip.outboundProxy.mode">InRoute</item>
<!-- Enable 100rel -->
<!-- No, Yes -->
<item name="account.1.sip.header.100rel">No</item>
<item name="account.{$line}.sip.header.100rel">No</item>
<!-- Enable Session Timer/Session Expiration (s) -->
<!-- Session Timer is disabled if the value is 0 -->
<item name="account.1.sip.sessionTimer.expiration">180</item>
<item name="account.{$line}.sip.sessionTimer.expiration">180</item>
<!-- Min-SE(s) -->
<item name="account.1.sip.minimumSE">90</item>
<item name="account.{$line}.sip.minimumSE">90</item>
<!-- UAC Specify Refresher -->
<!-- Omit, UAC, UAS -->
<item name="account.1.sip.sessionTimer.refresher.uacSpecify">Omit</item>
<item name="account.{$line}.sip.sessionTimer.refresher.uacSpecify">Omit</item>
<!-- UAS Specify Refresher -->
<!--UAC, UAS -->
<item name="account.1.sip.sessionTimer.refresher.uasSpecify">UAC</item>
<item name="account.{$line}.sip.sessionTimer.refresher.uasSpecify">UAC</item>
<!-- Caller Request Timer -->
<!-- No, Yes -->
<item name="account.1.sip.sessionTimer.requestTimer.caller">No</item>
<item name="account.{$line}.sip.sessionTimer.requestTimer.caller">No</item>
<!-- Callee Request Timer -->
<!-- No, Yes -->
<item name="account.1.sip.sessionTimer.requestTimer.callee">No</item>
<item name="account.{$line}.sip.sessionTimer.requestTimer.callee">No</item>
<!-- Force Timer -->
<!-- No, Yes -->
<item name="account.1.sip.sessionTimer.force">No</item>
<item name="account.{$line}.sip.sessionTimer.force">No</item>
<!-- Force INVITE -->
<!-- No, Yes -->
<item name="account.1.sip.sessionTimer.forceInvite">No</item>
<item name="account.{$line}.sip.sessionTimer.forceInvite">No</item>
<!-- Codec Settings -->
<!-- Preferred Vocoder -->
<!-- PCMU, PCMA, G_726_32, G_722, G_729AOrB, iLBC, OPUS -->
<item name="account.1.codec.choice.1">PCMU</item>
<item name="account.1.codec.choice.2">PCMA</item>
<item name="account.1.codec.choice.3">G_726_32</item>
<item name="account.1.codec.choice.4">G_722</item>
<item name="account.1.codec.choice.5">G_729AOrB</item>
<item name="account.1.codec.choice.6">iLBC</item>
<item name="account.1.codec.choice.7">OPUS</item>
<item name="account.{$line}.codec.choice.1">PCMU</item>
<item name="account.{$line}.codec.choice.2">PCMA</item>
<item name="account.{$line}.codec.choice.3">G_726_32</item>
<item name="account.{$line}.codec.choice.4">G_722</item>
<item name="account.{$line}.codec.choice.5">G_729AOrB</item>
<item name="account.{$line}.codec.choice.6">iLBC</item>
<item name="account.{$line}.codec.choice.7">OPUS</item>
<!-- Codec Negotiation Priority -->
<!-- Caller, Callee -->
<item name="account.1.codec.negotiatePriority">Callee</item>
<item name="account.{$line}.codec.negotiatePriority">Callee</item>
<!-- Use First Matching Vocoder in 200OK SDP -->
<!-- No, Yes -->
<item name="account.1.codec.useFirstMatch">No</item>
<item name="account.{$line}.codec.useFirstMatch">No</item>
<!-- iLBC Frame Size -->
<!-- 20ms, 30ms -->
<item name="account.1.codec.iLBC.frameSize">30ms</item>
<item name="account.{$line}.codec.iLBC.frameSize">30ms</item>
<!-- G726-32 ITU Payload -->
<!-- 2 - 0, Dynamic - 1 -->
<item name="account.1.codec.payloadType.g72632.ITU">1</item>
<item name="account.{$line}.codec.payloadType.g72632.ITU">1</item>
<!-- G726-32 Dynamic PT -->
<!-- Range: 96-126, default: 126 -->
<item name="account.1.codec.payloadType.g72632">126</item>
<item name="account.{$line}.codec.payloadType.g72632">126</item>
<!-- Opus Payload Type -->
<item name="account.1.codec.payloadType.opus">123</item>
<item name="account.{$line}.codec.payloadType.opus">123</item>
<!-- DTMF -->
<!-- No, Yes -->
<item name="account.1.dtmf.sendInAudio">No</item>
<item name="account.1.dtmf.sendInRtp">Yes</item>
<item name="account.1.dtmf.sendInSip">No</item>
<item name="account.{$line}.dtmf.sendInAudio">No</item>
<item name="account.{$line}.dtmf.sendInRtp">Yes</item>
<item name="account.{$line}.dtmf.sendInSip">No</item>
<!-- DTMF Payload Type -->
<item name="account.1.codec.payoadType.dtmf">101</item>
<item name="account.{$line}.codec.payoadType.dtmf">101</item>
<!-- Jitter Buffer Type -->
<!-- Fixed, Adaptive -->
<item name="account.1.audio.jitterBufferType">Adaptive</item>
<item name="account.{$line}.audio.jitterBufferType">Adaptive</item>
<!-- Enable Audio RED with FEC -->
<!-- No, Yes -->
<item name="account.1.audio.fec.enable">No</item>
<item name="account.{$line}.audio.fec.enable">No</item>
<!-- Audio FEC Payload Type -->
<!-- Range: 96-126, default: 121 -->
<item name="account.1.codec.payloadType.fec.audio">121</item>
<item name="account.{$line}.codec.payloadType.fec.audio">121</item>
<!-- Audio RED Payload Type -->
<!-- Range: 96-126, default: 124 -->
<item name="account.1.codec.payloadType.red">124</item>
<item name="account.{$line}.codec.payloadType.red">124</item>
<!-- Silence Suppression -->
<!-- No, Yes -->
<item name="account.1.audio.silenceSuppression">No</item>
<item name="account.{$line}.audio.silenceSuppression">No</item>
<!-- Voice Frames Per TX -->
<item name="account.1.audio.voiceFramePerTX">2</item>
<item name="account.{$line}.audio.voiceFramePerTX">2</item>
<!-- Enable Video FEC -->
<!-- No, Yes -->
<item name="account.1.video.fec.enable">Yes</item>
<item name="account.{$line}.video.fec.enable">Yes</item>
<!-- Enable RFC5168 Support -->
<!-- No, Yes -->
<item name="account.1.codec.rfc5168.enable">No</item>
<item name="account.{$line}.codec.rfc5168.enable">No</item>
<!-- Video FEC Mode -->
<!-- 0 , 1 -->
<item name="account.1.video.fec.mode">0</item>
<item name="account.{$line}.video.fec.mode">0</item>
<!-- FEC Payload Type -->
<!-- Range: 96-126, default: 120 -->
<item name="account.1.codec.payloadType.fec.video">120</item>
<item name="account.{$line}.codec.payloadType.fec.video">120</item>
<!-- Packetization mode -->
<!-- SingleNALUnit, Non-Interleaved -->
<!-- [Note] Prefer Non-Interleaved Mode is not supported yet -->
<item name="account.1.codec.packetizationMode">Non-Interleaved</item>
<item name="account.{$line}.codec.packetizationMode">Non-Interleaved</item>
<!-- H.264 Image Size -->
<!-- 720P, 4CIF, VGA, CIF, QVGA, QCIF -->
<item name="account.1.video.h264.imagesize">720P</item>
<item name="account.{$line}.video.h264.imagesize">720P</item>
<!-- Use H.264 Constrained Profiles -->
<!-- No, Yes -->
<item name="account.1.codec.h264.CBP.enable">No</item>
<item name="account.{$line}.codec.h264.CBP.enable">No</item>
<!-- H.264 Profile Type -->
<!-- Baseline, Main, High, BP&amp;MP&amp;HP -->
<item name="account.1.codec.H264ProfileType">BP&amp;MP&amp;HP</item>
<item name="account.{$line}.codec.H264ProfileType">BP&amp;MP&amp;HP</item>
<!-- Video Bit Rate -->
<!-- 32 - 32 kbps, 64 - 64 kbps, 96 - 96 kbps, 128 - 128 kbps, 160 - 160 kbps, 192 - 192 kbps -->
<!-- # 210 - 210 kbps, 256 - 256 kbps, 384 - 384 kbps, 512 - 512 kbps, 640 - 640 kbps, 768 - 768 kbps -->
<!-- # 1024 - 1024 kbps, 1280 - 1280 kbps, 1536 - 1536 kbps, 2048 - 2048 kbps. -->
<item name="account.1.video.bitRate">2048</item>
<item name="account.{$line}.video.bitRate">2048</item>
<!-- SDP Bandwidth Attribute -->
<!-- Standard, MediaLevel, SessionLevel, None -->
<item name="account.1.codec.SDPBandwidthAttr">MediaLevel</item>
<item name="account.{$line}.codec.SDPBandwidthAttr">MediaLevel</item>
<!-- H.264 Payload Type -->
<!-- Range: 96-126, default: 99 -->
<item name="account.1.codec.payloadType.h264">99</item>
<item name="account.{$line}.codec.payloadType.h264">99</item>
<!-- Disable BFCP -->
<!-- No, Yes -->
<item name="account.1.presentation.BFCP.enable">Yes</item>
<item name="account.{$line}.presentation.BFCP.enable">Yes</item>
<!-- Presentation H.264 Image Size -->
<!-- 1080P, 720P -->
<item name="account.1.presentation.h264.imagesize">1080P</item>
<item name="account.{$line}.presentation.h264.imagesize">1080P</item>
<!-- Presentation H.264 Profile Type -->
<!-- Baseline, Main, High, BP&amp;MP&amp;HP -->
<item name="account.1.presentation.H264ProfileType">BP&amp;MP&amp;HP</item>
<item name="account.{$line}.presentation.H264ProfileType">BP&amp;MP&amp;HP</item>
<!-- Presentation Video Bit Rate -->
<!-- 32 - 32 kbps, 64 - 64 kbps, 96 - 96 kbps, 128 - 128 kbps, 160 - 160 kbps, 192 - 192 kbps -->
<!-- # 210 - 210 kbps, 256 - 256 kbps, 384 - 384 kbps, 512 - 512 kbps, 640 - 640 kbps, 768 - 768 kbps -->
<!-- # 1024 - 1024 kbps, 1280 - 1280 kbps, 1536 - 1536 kbps, 2048 - 2048 kbps. -->
<item name="account.1.presentation.bitRate">1024</item>
<item name="account.{$line}.presentation.bitRate">1024</item>
<!-- Presentation Video Frame Rate -->
<!-- 5, 10, 15 -->
<item name="account.1.presentation.frameRate">15</item>
<item name="account.{$line}.presentation.frameRate">15</item>
<!-- BFCP Transport Protocol -->
<!-- Automatic, UDP, TCP -->
<item name="account.1.presentation.BFCP.transportProtocol">UDP</item>
<item name="account.{$line}.presentation.BFCP.transportProtocol">UDP</item>
<!-- SRTP Mode -->
<!-- Disabled, EnabledButNotForced, EnabledAndForced -->
<item name="account.1.audio.srtpMode">Disabled</item>
<item name="account.{$line}.audio.srtpMode">Disabled</item>
<!-- SRTP Key Length -->
<!-- AES128And256Bit, AES128Bit, AES256Bit -->
<item name="account.1.audio.srtpKeyLength">AES128And256Bit</item>
<item name="account.{$line}.audio.srtpKeyLength">AES128And256Bit</item>
<!-- Enable SRTP Key Life Time -->
<!-- No, Yes -->
<item name="account.1.audio.cryptoLifeTime">Yes</item>
<item name="account.{$line}.audio.cryptoLifeTime">Yes</item>
<!-- RTCP Destination -->
<item name="account.1.rtcp.destination"></item>
<item name="account.{$line}.rtcp.destination"></item>
<!-- Symmetric RTP -->
<!-- No, Yes -->
<item name="account.1.audio.symmetricRTP">No</item>
<item name="account.{$line}.audio.symmetricRTP">No</item>
<!-- RTP IP Filter -->
<!-- Disable, IPOnly, IPandPort -->
<item name="account.1.rtp.filter">Disable</item>
<item name="account.{$line}.rtp.filter">Disable</item>
<!-- Call Settings -->
<!-- Start Video Automatically -->
<!-- No, Yes -->
<item name="account.1.video.startAuto.enable">Yes</item>
<item name="account.{$line}.video.startAuto.enable">Yes</item>
<!-- Remote Video Request -->
<!-- Prompt, Accept, Deny -->
<item name="account.1.video.request">Prompt</item>
<item name="account.{$line}.video.request">Prompt</item>
<!-- Auto Answer -->
<!-- No, Yes, EnableIntercom/Paging -->
<item name="account.1.call.autoAnswer">EnableIntercom/Paging</item>
<item name="account.{$line}.call.autoAnswer">EnableIntercom/Paging</item>
<!-- Play Warning Tone for Auto Answer Intercom -->
<!-- No, Yes -->
<item name="account.1.intercom.playWarningToneForAutoAnswer">Yes</item>
<item name="account.{$line}.intercom.playWarningToneForAutoAnswer">Yes</item>
<!-- Intercom Barging -->
<!-- No, Yes -->
<item name="account.1.intercom.allowBargingByCallInfo">No</item>
<item name="account.{$line}.intercom.allowBargingByCallInfo">No</item>
<!-- Auto Preview -->
<!-- No, Yes, YeswithRinging -->
<item name="account.1.call.autoPreview">Yes</item>
<item name="account.{$line}.call.autoPreview">Yes</item>
<!-- Send Anonymous -->
<!-- No, Yes -->
<item name="account.1.call.sendAnonymous">No</item>
<item name="account.{$line}.call.sendAnonymous">No</item>
<!-- Anonymous Call Rejection -->
<!-- No, Yes -->
<item name="account.1.call.rejectAnonymousCall">No</item>
<item name="account.{$line}.call.rejectAnonymousCall">No</item>
<!-- Call Log -->
<!-- All, IncomingAndOutgoing, Disable, DonotPromptMissedCall -->
<item name="account.1.call.callLog">All</item>
<item name="account.{$line}.call.callLog">All</item>
<!-- Enable Call Features -->
<!-- No, Yes -->
<item name="account.1.featureCodes.callFeatures">No</item>
<item name="account.{$line}.featureCodes.callFeatures">No</item>
<!-- Transfer on 3 Way Conference Hangup -->
<!-- No, Yes -->
<item name="account.1.call.transferOnConferenceHangup">No</item>
<item name="account.{$line}.call.transferOnConferenceHangup">No</item>
<!-- Use # as Dial Key -->
<!-- Yes, No -->
<item name="account.1.call.keyAsSend">Yes</item>
<item name="account.{$line}.call.keyAsSend">Yes</item>
<!-- DND Call Feature On -->
<item name="account.1.featureCodes.dndOn"></item>
<item name="account.{$line}.featureCodes.dndOn"></item>
<!-- DND Call Feature Off -->
<item name="account.1.featureCodes.dndOff"></item>
<item name="account.{$line}.featureCodes.dndOff"></item>
<!-- No Key Entry Timeout (s) -->
<!-- Number: 4 - 15 -->
<item name="account.1.call.noKeyEntryTimeout">4</item>
<item name="account.{$line}.call.noKeyEntryTimeout">4</item>
<!-- Ring Timeout -->
<!-- Number: 10 - 300 -->
<item name="account.1.ring.timeout">60</item>
<item name="account.{$line}.ring.timeout">60</item>
<!-- Refer-To Use Target Contact -->
<!-- Yes, No -->
<item name="account.1.call.referToUseTargetContact">No</item>
<item name="account.{$line}.call.referToUseTargetContact">No</item>
<!-- RFC2543 Hold -->
<!-- Yes, No -->
<item name="account.1.sip.rfc2543Hold">Yes</item>
<item name="account.{$line}.sip.rfc2543Hold">Yes</item>
<!-- Dial Plan Prefix -->
<item name="account.1.call.dialplanPrefix"></item>
<item name="account.{$line}.call.dialplanPrefix"></item>
<!-- Disable DialPlan -->
<!-- # Disable DialPlan. 0 - No Selection, 1 - Dial Page, 2 - Contact, 4 - Incoming Call History, 8 - Outgoing Call History, 16 - MPK & Click2Dial. -->
<!-- # If need to check multiple selections, add the specific values for each selections together. Default value is 0 -->
<item name="account.1.call.dialplan.disableMode">0</item>
<item name="account.{$line}.call.dialplan.disableMode">0</item>
<!-- DialPlan -->
<item name="account.1.call.dialplan">{$grandstream_dial_plan}</item>
<item name="account.{$line}.call.dialplan">{$grandstream_dial_plan}</item>
<!-- Caller ID Display -->
<!-- Auto, Disabled, Header, PAIHeader -->
<!-- [Note] PAI Header is not supported yet -->
<item name="account.1.sip.callerIdDisplay">Auto</item>
<item name="account.{$line}.sip.callerIdDisplay">Auto</item>
<!-- Account Ring Tone -->
<item name="account.1.ring.ringtone">content://settings/system/ringtone</item>
<item name="account.{$line}.ring.ringtone">content://settings/system/ringtone</item>
<!-- Ignore Alert-Info Header -->
<!-- Yes, No -->
<item name="account.1.ring.ignoreSipAlertInfo">No</item>
<item name="account.{$line}.ring.ignoreSipAlertInfo">No</item>
<!-- Match Incoming Caller ID -->
<item name="account.1.ring.match.1.callerId"></item>
<item name="account.{$line}.ring.match.1.callerId"></item>
<!-- Distinctive Ring Tone -->
<item name="account.1.ring.match.1.ringtone">content://settings/system/ringtone</item>
<item name="account.{$line}.ring.match.1.ringtone">content://settings/system/ringtone</item>
<!-- Match Incoming Caller ID -->
<item name="account.1.ring.match.2.callerId"></item>
<item name="account.{$line}.ring.match.2.callerId"></item>
<!-- Distinctive Ring Tone -->
<item name="account.1.ring.match.2.ringtone">content://settings/system/ringtone</item>
<item name="account.{$line}.ring.match.2.ringtone">content://settings/system/ringtone</item>
<!-- Match Incoming Caller ID -->
<item name="account.1.ring.match.3.callerId"></item>
<item name="account.{$line}.ring.match.3.callerId"></item>
<!-- Distinctive Ring Tone -->
<item name="account.1.ring.match.3.ringtone">content://settings/system/ringtone</item>
<item name="account.{$line}.ring.match.3.ringtone">content://settings/system/ringtone</item>
<!-- ############Ring Tone Value Table###############
# Web GUI Option Value
# Use System Ring tone content://settings/system/ringtone
# Silent ringtone_silence
# Ring2_OrganDub /system/media/audio/ringtones/Ring2_OrganDub.ogg
# Big_Easy /system/media/audio/ringtones/Big_Easy.ogg
# DonMessWivlt /system/media/audio/ringtones/DonMessWivIt.ogg
# Club_Cubano /system/media/audio/ringtones/Club_Cubano.ogg
# Growl /system/media/audio/ringtones/Growl.ogg
# CrayonRock /system/media/audio/ringtones/CrayonRock.ogg
# Ring9_Nairobi /system/media/audio/ringtones/Ring9_Nairobi.ogg
# Ring10_Nassau /system/media/audio/ringtones/Ring10_Nassau.ogg
# Third_Eye /system/media/audio/ringtones/Third_Eye.ogg
# Ring1_Ding /system/media/audio/ringtones/Ring1_Ding.ogg
# Road_Trip /system/media/audio/ringtones/Road_Trip.ogg
# bellcore-dr2 /system/media/audio/ringtones/bellcore-dr2.ogg
# Ring_Digital_02 /system/media/audio/ringtones/Ring_Digital_02.ogg
# bellcore-dr3 /system/media/audio/ringtones/bellcore-dr3.ogg
# DancinFool /system/media/audio/ringtones/DancinFool.ogg
# Ring_Classic_02 /system/media/audio/ringtones/Ring_Classic_02.ogg
# Ring5_FreeFlight /system/media/audio/ringtones/Ring5_FreeFlight.ogg
# Funk_Yall /system/media/audio/ringtones/Funk_Yall.ogg
# World /system/media/audio/ringtones/World.ogg
# Ring8_MidEvilJaunt /system/media/audio/ringtones/Ring8_MidEvilJaunt.ogg
# TwirlAway /system/media/audio/ringtones/TwirlAway.ogg
# bellcore-dr4 /system/media/audio/ringtones/bellcore-dr4.ogg
# Ring6_Glacial_Groove /system/media/audio/ringtones/Ring6_Glacial_Groove.ogg
# Shes_All_That /system/media/audio/ringtones/Shes_All_That.ogg
# Ring4_EtherShake /system/media/audio/ringtones/Ring4_EtherShake.ogg
# Seville /system/media/audio/ringtones/Seville.ogg
# BussaMove /system/media/audio/ringtones/BussaMove.ogg
# Default_ringtone /system/media/audio/ringtones/Default_ringtone.ogg
# BirdLoop /system/media/audio/ringtones/BirdLoop.ogg
# MildlyAlarming /system/media/audio/ringtones/MildlyAlarming.ogg
# Terminated /system/media/audio/ringtones/Terminated.ogg
# Calypso_Steel /system/media/audio/ringtones/Calypso_Steel.ogg
# Safari /system/media/audio/ringtones/Safari.ogg
# Ring_Synth_04 /system/media/audio/ringtones/Ring_Synth_04.ogg
# Ring_Synth_02 /system/media/audio/ringtones/Ring_Synth_02.ogg
# CurveBall /system/media/audio/ringtones/CurveBall.ogg
# Enter_the_Nexus /system/media/audio/ringtones/Enter_the_Nexus.ogg
# Bollywood /system/media/audio/ringtones/Bollywood.ogg
# Champagne_Edition /system/media/audio/ringtones/Champagne_Edition.ogg
# Steppin_Out /system/media/audio/ringtones/Steppin_Out.ogg
# Ring3_Paradise_Island /system/media/audio/ringtones/Ring3_Paradise_Island.ogg
# Playa /system/media/audio/ringtones/Playa.ogg
# No_Limits /system/media/audio/ringtones/No_Limits.ogg
# LoopyLounge /system/media/audio/ringtones/LoopyLounge.ogg
# Cairo /system/media/audio/ringtones/Cairo.ogg
# Ring7_HalfwayHome /system/media/audio/ringtones/Ring7_HalfwayHome.ogg
# SilkyWay /system/media/audio/ringtones/SilkyWay.ogg
# LoveFlute /system/media/audio/ringtones/LoveFlute.ogg
# Eastern_Sky /system/media/audio/ringtones/Eastern_Sky.ogg
# bellcore-dr5 /system/media/audio/ringtones/bellcore-dr5.ogg
# Gimme_Mo_Town /system/media/audio/ringtones/Gimme_Mo_Town.ogg
# bellcore-dr1 /system/media/audio/ringtones/bellcore-dr1.ogg
# Backroad /system/media/audio/ringtones/Backroad.ogg -->
# Web GUI Option Value
# Use System Ring tone content://settings/system/ringtone
# Silent ringtone_silence
# Ring2_OrganDub /system/media/audio/ringtones/Ring2_OrganDub.ogg
# Big_Easy /system/media/audio/ringtones/Big_Easy.ogg
# DonMessWivlt /system/media/audio/ringtones/DonMessWivIt.ogg
# Club_Cubano /system/media/audio/ringtones/Club_Cubano.ogg
# Growl /system/media/audio/ringtones/Growl.ogg
# CrayonRock /system/media/audio/ringtones/CrayonRock.ogg
# Ring9_Nairobi /system/media/audio/ringtones/Ring9_Nairobi.ogg
# Ring10_Nassau /system/media/audio/ringtones/Ring10_Nassau.ogg
# Third_Eye /system/media/audio/ringtones/Third_Eye.ogg
# Ring1_Ding /system/media/audio/ringtones/Ring1_Ding.ogg
# Road_Trip /system/media/audio/ringtones/Road_Trip.ogg
# bellcore-dr2 /system/media/audio/ringtones/bellcore-dr2.ogg
# Ring_Digital_02 /system/media/audio/ringtones/Ring_Digital_02.ogg
# bellcore-dr3 /system/media/audio/ringtones/bellcore-dr3.ogg
# DancinFool /system/media/audio/ringtones/DancinFool.ogg
# Ring_Classic_02 /system/media/audio/ringtones/Ring_Classic_02.ogg
# Ring5_FreeFlight /system/media/audio/ringtones/Ring5_FreeFlight.ogg
# Funk_Yall /system/media/audio/ringtones/Funk_Yall.ogg
# World /system/media/audio/ringtones/World.ogg
# Ring8_MidEvilJaunt /system/media/audio/ringtones/Ring8_MidEvilJaunt.ogg
# TwirlAway /system/media/audio/ringtones/TwirlAway.ogg
# bellcore-dr4 /system/media/audio/ringtones/bellcore-dr4.ogg
# Ring6_Glacial_Groove /system/media/audio/ringtones/Ring6_Glacial_Groove.ogg
# Shes_All_That /system/media/audio/ringtones/Shes_All_That.ogg
# Ring4_EtherShake /system/media/audio/ringtones/Ring4_EtherShake.ogg
# Seville /system/media/audio/ringtones/Seville.ogg
# BussaMove /system/media/audio/ringtones/BussaMove.ogg
# Default_ringtone /system/media/audio/ringtones/Default_ringtone.ogg
# BirdLoop /system/media/audio/ringtones/BirdLoop.ogg
# MildlyAlarming /system/media/audio/ringtones/MildlyAlarming.ogg
# Terminated /system/media/audio/ringtones/Terminated.ogg
# Calypso_Steel /system/media/audio/ringtones/Calypso_Steel.ogg
# Safari /system/media/audio/ringtones/Safari.ogg
# Ring_Synth_04 /system/media/audio/ringtones/Ring_Synth_04.ogg
# Ring_Synth_02 /system/media/audio/ringtones/Ring_Synth_02.ogg
# CurveBall /system/media/audio/ringtones/CurveBall.ogg
# Enter_the_Nexus /system/media/audio/ringtones/Enter_the_Nexus.ogg
# Bollywood /system/media/audio/ringtones/Bollywood.ogg
# Champagne_Edition /system/media/audio/ringtones/Champagne_Edition.ogg
# Steppin_Out /system/media/audio/ringtones/Steppin_Out.ogg
# Ring3_Paradise_Island /system/media/audio/ringtones/Ring3_Paradise_Island.ogg
# Playa /system/media/audio/ringtones/Playa.ogg
# No_Limits /system/media/audio/ringtones/No_Limits.ogg
# LoopyLounge /system/media/audio/ringtones/LoopyLounge.ogg
# Cairo /system/media/audio/ringtones/Cairo.ogg
# Ring7_HalfwayHome /system/media/audio/ringtones/Ring7_HalfwayHome.ogg
# SilkyWay /system/media/audio/ringtones/SilkyWay.ogg
# LoveFlute /system/media/audio/ringtones/LoveFlute.ogg
# Eastern_Sky /system/media/audio/ringtones/Eastern_Sky.ogg
# bellcore-dr5 /system/media/audio/ringtones/bellcore-dr5.ogg
# Gimme_Mo_Town /system/media/audio/ringtones/Gimme_Mo_Town.ogg
# bellcore-dr1 /system/media/audio/ringtones/bellcore-dr1.ogg
# Backroad /system/media/audio/ringtones/Backroad.ogg -->
<!-- Account Advanced Settings -->
<!-- Check Domain Certificates -->
<!-- Yes, No -->
<item name="account.1.sip.validate.domainCertificates">No</item>
<item name="account.{$line}.sip.validate.domainCertificates">No</item>
<!-- Validate Certification Chain -->
<!-- Yes, No -->
<item name="account.1.sip.validate.certificationChain">No</item>
<item name="account.{$line}.sip.validate.certificationChain">No</item>
<!-- Validate Incoming SIP Messages -->
<!-- Yes, No -->
<item name="account.1.sip.validate.incomingMessage">No</item>
<item name="account.{$line}.sip.validate.incomingMessage">No</item>
<!-- Allow Unsolicited REFER -->
<!-- Disabled, Enabled, EnabledOrForceAuth -->
<item name="account.1.sip.allowUnsolicitedRefer">Disabled</item>
<item name="account.{$line}.sip.allowUnsolicitedRefer">Disabled</item>
<!-- Only Accept SIP Requests from Known Servers -->
<!-- Yes, No -->
<item name="account.1.sip.validate.incomingServer">No</item>
<item name="account.{$line}.sip.validate.incomingServer">No</item>
<!-- Check SIP User ID for Incoming INVITE -->
<!-- Yes, No -->
<item name="account.1.sip.validate.userIdforInvite">No</item>
<item name="account.{$line}.sip.validate.userIdforInvite">No</item>
<!-- Allow SIP Reset -->
<!-- Yes, No -->
<item name="account.1.sip.allowSipReset">No</item>
<item name="account.{$line}.sip.allowSipReset">No</item>
<!-- Authenticate Incoming INVITE -->
<!-- Yes, No -->
<item name="account.1.sip.authenticateIncomingInvite">No</item>
<item name="account.{$line}.sip.authenticateIncomingInvite">No</item>
<!-- SIP Realm Used for Challenge INVITE & NOTIFY -->
<item name="account.1.sipRealmForChallengeINVITE"></item>
<item name="account.{$line}.sipRealmForChallengeINVITE"></item>
<!-- Virtual Account Group -->
<!-- -1 - Default, 0 - 15 - Virtual Account Group 1 - 16 -->
<item name="account.1.virtualGroup">-1</item>
<item name="account.{$line}.virtualGroup">-1</item>
<!-- Special Feature -->
<!-- 100 - Standard, 102 - Broadsoft, 113 - China Mobile, 114 - ZTE IMS, 115 - Mobotix, 116 - ZTE NGN, 117 - Huawei IMS, 123 - NEC, 125 - Worldstone -->
<item name="account.1.sip.specialFeature">100</item>
<item name="account.{$line}.sip.specialFeature">100</item>
<!-- BLF Call-pickup Prefix -->
<!-- Yes, No -->
<item name="account.{$line}.sip.blf.callPickup.forcePrefix">No</item>
<!-- EventList BLF URI -->
<item name="account.{$line}.sip.blf.eventlist.uri"></item>
<!-- Force BLF Call-pickup by Prefix -->
<item name="account.{$line}.sip.blf.callPickup.prefix">**</item>
<!-- Value-added Service - Broadsoft Settings - Braodsoft Call Features -->
<!-- Feature Key Synchronization -->
<!-- No - Disable, Yes - Broadsoft -->
<item name="account.{$line}.broadsoft.syncFeatureKey">{if filter_var($grandstream_feature_key_sync, FILTER_VALIDATE_BOOLEAN)}Yes{else}No{/if}</item>
<!-- Enable BroadSoft Call Park -->
<!-- Yes, No -->
<item name="account.{$line}.broadsoft.callPark">No</item>
<!-- Conference URI -->
<item name="account.{$line}.sip.conferenceUri"></item>
<!-- BroadSoft Call Center -->
<!-- Yes, No -->
<item name="account.{$line}.broadsoft.callCenter">No</item>
<!-- Hoteling Event -->
<!-- Yes, No -->
<item name="account.{$line}.broadsoft.hoteling">No</item>
<!-- Call Center Status -->
<!-- Yes, No -->
<item name="account.{$line}.broadsoft.callCenterStatus">No</item>
<!-- Value-added Service - Broadsoft Settings - SCA -->
<!-- Enable SCA (Shared Call Appearance) -->
<!-- Yes, No -->
<item name="account.{$line}.sca.enable">{if isset($row.shared_line)}Yes{else}No{/if}</item>
<!-- Enable BargeIn -->
<!-- Yes, No -->
<item name="account.{$line}.sca.bargein.enable">{if isset($row.shared_line)}Yes{else}No{/if}</item>
<!-- Auto-filling Pickup Feature Code -->
<!-- Yes, No -->
<item name="account.{$line}.sca.autoPickup.enable">Yes</item>
<!-- Pickup Feature Code -->
<item name="account.{$line}.sca.pickupFeatureCode"></item>
<!-- Line-seize Timeout -->
<!-- Range: 15 - 60. Default: 15 -->
<item name="account.{$line}.sip.lineSeizeTimeout">15</item>
{/for}
<!-- Phone Settings - General Settings -->
<!-- Local RTP Port -->
<!-- Number: 50040 - 65535 -->
@ -686,17 +732,21 @@
<item name="network.md5Password"></item>
<!-- Wi-Fi Settings -->
<!-- Wi-Fi Function -->
{if isset($grandstream_wifi_enable)}
<!-- No, Yes -->
<item name="wifi.enable">No</item>
<item name="wifi.enable">{if filter_var($grandstream_wifi_enable, FILTER_VALIDATE_BOOLEAN)}Yes{else}No{/if}</item>
<!-- ESSID -->
<item name="wifi.essidname"></item>
{if isset($grandstream_wifi_essid)}
<item name="wifi.essidname">{$grandstream_wifi_essid}</item>
<!-- Password -->
<item name="wifi.essidpassword"></item>
<item name="wifi.essidpassword">{$grandstream_wifi_password}</item>
<!-- Security Mode for Hidden SSID -->
<!-- None, WEP, WPA/WPA2_PSK, 802.1X_EAP -->
<item name="wifi.hiddenessid.securitymode">None</item>
<item name="wifi.hiddenessid.securitymode">{$grandstream_wifi_hidden_security}</item>
{/if}
<!-- Layer 2 QoS 802.1p Priority Value (Wi-Fi) -->
<item name="wifi.layer2qos.priority">0</item>
{/if}
<!-- OpenVPN Settings -->
<!-- Enable OpenVPN -->
<!-- Yes, No -->
@ -899,9 +949,9 @@
<!-- Allow, RequireAdminPassword, RequireAdminPasswordIfSrcUnknown, NotAllow -->
<item name="security.installThirdApp.permission">Allow</item>
<!-- Admin Password -->
<item name="users.admin.password">admin1</item>
<item name="users.admin.password">{if isset($admin_password)}{$admin_password}{else}admin{/if}</item>
<!-- User Password -->
<item name="users.user.password">user</item>
<item name="users.user.password">{if isset($device_password)}{$device_password}{else}user{/if}</item>
<!-- SIP TLS Certificate -->
<!-- <item name="security.certificate"></item> -->
<!-- SIP TLS Private Key -->
@ -986,11 +1036,17 @@
<!-- TFTP, HTTP, HTTPS -->
<item name="provisioning.firmware.protocol">HTTP</item>
<!-- Firmware Server Path -->
<item name="provisioning.firmware.serverPath"></item>
{if isset($grandstream_firmware_path) && isset($firmware_version)}
<item name="provisioning.firmware.serverPath">{$grandstream_firmware_path}/{$firmware_version}</item>
{elseif isset($grandstream_firmware_path)}
<item name="provisioning.firmware.serverPath">{$grandstream_firmware_path}</item>
{else}
<item name="provisioning.firmware.serverPath">{$domain_name}{$project_path}/app/provision/resources/firmware/</item>
{/if}
<!-- HTTP/HTTPS User Name -->
<item name="provisioning.firmware.username"></item>
<item name="provisioning.firmware.username">{$http_auth_username}</item>
<!-- HTTP/HTTPS Password -->
<item name="provisioning.firmware.password"></item>
<item name="provisioning.firmware.password">{$http_auth_password}</item>
<!-- Firmware File Prefix -->
<item name="provisioning.firmware.filePrefix"></item>
<!-- Firmware File Postfix -->
@ -999,11 +1055,17 @@
<!-- TFTP, HTTP, HTTPS -->
<item name="provisioning.config.protocol">HTTP</item>
<!-- Config Server Path -->
{if $grandstream_config_server_path=="none"}
<item name="provisioning.config.serverPath"></item>
{elseif isset($grandstream_config_server_path)}
<item name="provisioning.config.serverPath">{$grandstream_config_server_path}</item>
{else}
<item name="provisioning.config.serverPath">{$domain_name}{$project_path}/app/provision</item>
{/if}
<!-- HTTP/HTTPS User Name -->
<item name="provisioning.config.username"></item>
<item name="provisioning.config.username">{$http_auth_username}</item>
<!-- HTTP/HTTPS Password -->
<item name="provisioning.config.password"></item>
<item name="provisioning.config.password">{$http_auth_password}</item>
<!-- Config File Prefix -->
<item name="provisioning.config.filePrefix"></item>
<!-- Config File Postfix -->
@ -1081,58 +1143,6 @@
<!-- Show Display Name from Server -->
<!-- Yes, No -->
<item name="pks.mpk.showNamefromServer.enable">No</item>
<!-- BLF Call-pickup Prefix -->
<!-- Yes, No -->
<item name="account.1.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.2.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.3.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.4.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.5.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.6.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.7.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.8.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.9.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.10.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.11.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.12.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.13.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.14.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.15.sip.blf.callPickup.forcePrefix">No</item>
<item name="account.16.sip.blf.callPickup.forcePrefix">No</item>
<!-- EventList BLF URI -->
<item name="account.1.sip.blf.eventlist.uri"></item>
<item name="account.2.sip.blf.eventlist.uri"></item>
<item name="account.3.sip.blf.eventlist.uri"></item>
<item name="account.4.sip.blf.eventlist.uri"></item>
<item name="account.5.sip.blf.eventlist.uri"></item>
<item name="account.6.sip.blf.eventlist.uri"></item>
<item name="account.7.sip.blf.eventlist.uri"></item>
<item name="account.8.sip.blf.eventlist.uri"></item>
<item name="account.9.sip.blf.eventlist.uri"></item>
<item name="account.10.sip.blf.eventlist.uri"></item>
<item name="account.11.sip.blf.eventlist.uri"></item>
<item name="account.12.sip.blf.eventlist.uri"></item>
<item name="account.13.sip.blf.eventlist.uri"></item>
<item name="account.14.sip.blf.eventlist.uri"></item>
<item name="account.15.sip.blf.eventlist.uri"></item>
<item name="account.16.sip.blf.eventlist.uri"></item>
<!-- Force BLF Call-pickup by Prefix -->
<item name="account.1.sip.blf.callPickup.prefix">**</item>
<item name="account.2.sip.blf.callPickup.prefix">**</item>
<item name="account.3.sip.blf.callPickup.prefix">**</item>
<item name="account.4.sip.blf.callPickup.prefix">**</item>
<item name="account.5.sip.blf.callPickup.prefix">**</item>
<item name="account.6.sip.blf.callPickup.prefix">**</item>
<item name="account.7.sip.blf.callPickup.prefix">**</item>
<item name="account.8.sip.blf.callPickup.prefix">**</item>
<item name="account.9.sip.blf.callPickup.prefix">**</item>
<item name="account.10.sip.blf.callPickup.prefix">**</item>
<item name="account.11.sip.blf.callPickup.prefix">**</item>
<item name="account.12.sip.blf.callPickup.prefix">**</item>
<item name="account.13.sip.blf.callPickup.prefix">**</item>
<item name="account.14.sip.blf.callPickup.prefix">**</item>
<item name="account.15.sip.blf.callPickup.prefix">**</item>
<item name="account.16.sip.blf.callPickup.prefix">**</item>
<!-- Applications - Contacts - General settings -->
<!-- Sort Phonebook by -->
<!-- LastName, FirstName -->
@ -1208,65 +1218,31 @@
<!-- LDAP Dialing Default Account -->
<!-- Default - 0, Account 1 - 1, Account 2 - 2 ... -->
<item name="ldap.defalutAccount">0</item>
<!-- Value-added Service - Broadsoft Settings - Braodsoft Call Features -->
<!-- Feature Key Synchronization -->
<!-- No - Disable, Yes - Broadsoft -->
<item name="account.1.broadsoft.syncFeatureKey">No</item>
<!-- Enable BroadSoft Call Park -->
<!-- Yes, No -->
<item name="account.1.broadsoft.callPark">No</item>
<!-- Conference URI -->
<item name="account.1.sip.conferenceUri"></item>
<!-- BroadSoft Call Center -->
<!-- Yes, No -->
<item name="account.1.broadsoft.callCenter">No</item>
<!-- Hoteling Event -->
<!-- Yes, No -->
<item name="account.1.broadsoft.hoteling">No</item>
<!-- Call Center Status -->
<!-- Yes, No -->
<item name="account.1.broadsoft.callCenterStatus">No</item>
<!-- Value-added Service - Broadsoft Settings - SCA -->
<!-- Enable SCA (Shared Call Appearance) -->
<!-- Yes, No -->
<item name="account.1.sca.enable">No</item>
<!-- Enable BargeIn -->
<!-- Yes, No -->
<item name="account.1.sca.bargein.enable">No</item>
<!-- Auto-filling Pickup Feature Code -->
<!-- Yes, No -->
<item name="account.1.sca.autoPickup.enable">Yes</item>
<!-- Pickup Feature Code -->
<item name="account.1.sca.pickupFeatureCode"></item>
<!-- Line-seize Timeout -->
<!-- Range: 15 - 60. Default: 15 -->
<item name="account.1.sip.lineSeizeTimeout">15</item>
<!--#############################################-->
<!--# 160 MPKs can be configured via MPK APP #-->
<!--#############################################-->
<!-- [Note] MPK provision needs reboot to take effect -->
{$keyIndex=1}
<!-- MPK Key Mode -->
<!-- SpeedDial, BLF, SpeedDialViaActiveAccount, DialDTMF, Intercom, Transfer, CallPark, MulticastPaging, Conference, DialPrefix -->
<item name="pks.mpk.1.mode">SpeedDial</item>
{$key_types=["none"=>"","speed dial"=>"SpeedDial","blf"=>"BLF","speed dial active"=>"SpeedDialViaActiveAccount","dial dtmf"=>"DialDTMF","intercom"=>"Intercom","transfer"=>"Transfer","call park"=>"CallPark","multicast paging"=>"MulticastPaging","conference"=>"Conference"]}
{foreach $keys as $category => $rows}
{foreach $rows as $row}
{if isset($row.device_key_type)}
<item name="pks.mpk.{$keyIndex}.mode">{$key_types[$row.device_key_type]}</item>
<!-- MPK Account -->
<!-- Account1, Account2, ... , Account16 -->
<item name="pks.mpk.1.account">Account1</item>
<item name="pks.mpk.{$keyIndex}.account">Account{$row.device_key_line}</item>
<!-- MPK Display Name -->
<item name="pks.mpk.1.description"></item>
<item name="pks.mpk.{$keyIndex}.description">{$row.device_key_label}</item>
<!-- MPK User ID -->
<!-- extendValue may be used based on MPK mode -->
<item name="pks.mpk.1.value"></item>
<item name="pks.mpk.1.extendValue"></item>
<item name="pks.mpk.2.mode">SpeedDial</item>
<item name="pks.mpk.2.account">Account1</item>
<item name="pks.mpk.2.description"></item>
<item name="pks.mpk.2.value"></item>
<item name="pks.mpk.2.extendValue"></item>
<item name="pks.mpk.{$keyIndex}.value">{$row.device_key_value}</item>
<item name="pks.mpk.{$keyIndex}.extendValue">device_key_extension</item>
{$keyIndex=$keyIndex+1}
{/if}
{/foreach}
{/foreach}
</config>
</gs_provision>