<gs_provision version="1">
	<config version="2">
		{literal}
		<!-- Configuration Template for GXP21xx Firmware Version 1.0.11.79 -->
		<!-- Instruction -->
		<!-- The new type of config template gives better understanding than P-value numbers to match the setting name from web UI or device, by using names that are similar from web UI. -->
		<!-- 1. This config template includes settings for account 1 only. To update item name to "account.{i}...", where {i} is the account index. For example, to update Account 12 SIP server address, include the following in config template: -->
		<!-- Example, <item name="account.12.sip.server.1.address">sipserver.net</item> -->
		<!-- 2. The template uses alias name to represent drop-down options. For example, Tel URI uses "Disabled, UserIsPhone, Enabled". To update this setting to "User=Phone", include the following in config template: -->
		<!-- Example, <item name="account.1.sip.telUri">UserIsPhone</item> -->
		<!-- 3. For those settings without alias, numbers are informed to match drop-down options.  -->
		<!-- End of Instruction -->
		{/literal}

		<!-- Update since  -->

		<!-- Known issue / Notes:  -->

		<!-- Account 1 General Settings -->

{foreach $account as $row}

		<!-- Account Active -->
		<!-- Yes, No -->
		{if $row.enabled == 'true'}
		<item name="account.{$row.line_number}.enable">Yes</item>
		{else}
		<item name="account.{$row.line_number}.enable">No</item>
		{/if}

		<!-- Account Name -->
		<item name="account.{$row.line_number}.name">{$row.label}</item>

		<!-- SIP Server -->
		{if isset($row.server_address_primary)}
		<item name="account.{$row.line_number}.sip.server.1.address">{$row.server_address_primary}:{$row.sip_port}</item>
		{else}
		<item name="account.{$row.line_number}.sip.server.1.address">{$row.server_address}:{$row.sip_port}</item>
		{/if}
		<!-- Secondary SIP Server -->
		{if isset($row.server_address_secondary)}
		<item name="account.{$row.line_number}.sip.server.2.address">{$row.server_address_secondary}:{$row.sip_port}</item>
		{else}
		<item name="account.{$row.line_number}.sip.server.2.address"/>
		{/if}

		<!-- Outbound Proxy -->
		{if $row.sip_transport != 'dns srv' && isset($row.outbound_proxy_primary)}
			<item name="account.{$row.line_number}.sip.outboundProxy.1.address">{$row.outbound_proxy_primary}:{$row.sip_port}</item>
		{else}
			<item name="account.{$row.line_number}.sip.outboundProxy.1.address">{$row.outbound_proxy_primary}</item>
		{/if}

		<!-- Backup Outbound Proxy -->
		{if $row.sip_transport != 'dns srv' && isset($row.outbound_proxy_secondary)}
			<item name="account.{$row.line_number}.sip.outboundProxy.2.address">{$row.outbound_proxy_secondary}:{$row.sip_port}</item>
		{else}
			<item name="account.{$row.line_number}.sip.outboundProxy.2.address">{$row.outbound_proxy_secondary}</item>
		{/if}

		<!-- BLF Server -->
		{if isset($row.server_address_primary)}
		<item name="account.{$row.line_number}.sip.blf.server">{$row.server_address_primary}:{$row.sip_port}</item>
		{else}
		<item name="account.{$row.line_number}.sip.blf.server">{$row.server_address}:{$row.sip_port}</item>
		{/if}

		<!-- SIP User ID -->
		<item name="account.{$row.line_number}.sip.userid">{$row.user_id}</item>

		<!-- SIP Authentication ID -->
		<item name="account.{$row.line_number}.sip.subscriber.userid">{$row.auth_id}</item>

		<!-- SIP Authentication Password -->
		<item name="account.{$row.line_number}.sip.subscriber.password">{$row.password}</item>

		<!-- Name -->
		<item name="account.{$row.line_number}.sip.subscriber.name">{$row.display_name}</item>

		<!-- Voicemail Access Number -->
		<item name="account.{$row.line_number}.sip.voicemail.number">{$voicemail_number}</item>

		<!-- Monitored Access Number -->
		<item name="account.{$row.line_number}.sip.voicemail.monitoredNumber"/>

		<!-- Account Display -->
		<!-- User Name, User ID-->
		<item name="account.{$row.line_number}.sip.accountDisplay">User Name</item>

		<!-- Account 1 Network Settings -->
		<!-- DNS Mode -->
		<!-- ARecord, SRV, NaptrOrSrv, UseConfiguredIP -->
		<item name="account.{$row.line_number}.network.dnsMode">ARecord</item>

		<!-- DNS SRV Fail-over Mode -->
		<!-- Default, SavedOneUntilDNSTTL, SavedOneUntilNoResponse, SavedOneUntilFailbackTimeout -->
		<item name="account.{$row.line_number}.network.dnsSRVFailoverMode">Default</item>

		<!-- Register Before DNS SRV Failover -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.network.dnsSRVRegisterBeforeFailover">No</item>

		<!-- Primary IP -->
		<item name="account.{$row.line_number}.network.primaryIp"/>

		<!-- Backup IP 1 -->
		<item name="account.{$row.line_number}.network.backupIp.1"/>

		<!-- Backup IP 2 -->
		<item name="account.{$row.line_number}.network.backupIp.2"/>

		<!-- NAT Traversal -->
		<!-- No, STUN, KeepAlive, UPnP, Auto, VPN -->
		{if isset($grandstream_nat_traversal)}
		<item name="account.{$row.line_number}.network.natTraversal">{$grandstream_nat_traversal}</item>
		{else}
		<item name="account.{$row.line_number}.network.natTraversal">Auto</item>
		{/if}

		<!-- Support Rport (RFC 3581) -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.network.supportRport">Yes</item>

		<!-- Proxy-Require -->
		<item name="account.{$row.line_number}.network.proxyRequire"/>

		<!-- Use SBC -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.network.sbc.enable">No</item>

		<!-- Account 1 SIP Settings -->
		<!-- Account 1 Basic Settings -->
		<!-- TEL URI -->
		<!-- Disabled, UserIsPhone, Enabled -->
		<item name="account.{$row.line_number}.sip.telUri">Disabled</item>

		<!-- SIP Registration -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.registration">Yes</item>

		<!-- Unregister on Reboot -->
		<!-- No, Yes, Instance -->
		<item name="account.{$row.line_number}.sip.unregisterOnReboot">No</item>

		<!-- Register Expiration (m) -->
		<!-- Number: 0 - 64800 -->
		<item name="account.{$row.line_number}.sip.registerExpiration">{$row.register_expires}</item>

		<!-- Subscribe Expiration (m) -->
		<!-- Number: 0 - 64800 -->
		<item name="account.{$row.line_number}.sip.subscribe.expiration">60</item>

		<!-- Reregister before Expiration (s)  -->
		<!-- Number: 0 - 64800 -->
		<item name="account.{$row.line_number}.sip.registerBeforeExpiration">0</item>

		<!-- Enable OPTIONS Keep Alive -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.keepAlive.enable">Yes</item>

		<!-- OPTIONS Keep Alive Interval (s)  -->
		<item name="account.{$row.line_number}.sip.keepAlive.interval">30</item>

		<!-- OPTIONS Keep-Alive Max Tries -->
		<item name="account.{$row.line_number}.sip.keepAlive.maxLost">3</item>

		<!-- Local SIP Port -->
		<item name="account.{$row.line_number}.sip.localPort">{$row.sip_port}</item>

		<!-- Registration Retry Wait Time (s) -->
		<item name="account.{$row.line_number}.sip.registrationFailureRetryWaitTime">20</item>

		<!-- SIP T1 Timeout -->
		<!-- 0.5 sec - 0.5sec, 1 sec - 1sec, 2 sec - 2sec -->
		<item name="account.{$row.line_number}.sip.timer.t1">0.5sec</item>

		<!-- SIP T2 Timeout -->
		<!-- 2 sec - 2sec, 4 sec - 4sec, 8 sec - 8sec -->
		<item name="account.{$row.line_number}.sip.timer.t2">4sec</item>

		<!-- SIP Transport -->
		<!-- UDP, TCP, Tls Or Tcp -->
		<!-- Variable Value: {$row.sip_transport} -->
		{if $row.sip_transport == ''}<item name="account.{$row.line_number}.sip.transport">1</item>{/if}
		{if $row.sip_transport == 'udp'}<item name="account.{$row.line_number}.sip.transport">0</item>{/if}
		{if $row.sip_transport == 'tcp'}<item name="account.{$row.line_number}.sip.transport">1</item>{/if}
		{if $row.sip_transport == 'tls'}<item name="account.{$row.line_number}.sip.transport">2</item>{/if}

		<!-- SIP Listening Mode -->
		<!-- Transport_Only, Dual, Dual_BLF_Enforced, Dual_Secured -->
		<item name="account.{$row.line_number}.sip.listeningMode">Transport_Only</item>

		<!-- SIP URI Scheme When Using TLS -->
		<!-- sip, sips -->
		<item name="account.{$row.line_number}.sip.uriSchemeWhenUsingTls">sips</item>

		<!-- Use Actual Ephemeral Port in Contact with TCP/TLS -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.sip.useActualEphemeralPortInContactWithTcpTls">No</item>

		<!-- Outbound Proxy Mode -->
		<!-- InRoute, NotInRoute, AlwaysSentTo -->
		<item name="account.{$row.line_number}.sip.outboundProxy.mode">InRoute</item>

		<!-- Support SIP Instance ID -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.sip.supportInstanceId">Yes</item>

		<!-- Subscribe for MWI -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.subscribe.forMwi">No</item>

		<!-- SUBSCRIBE for Registration -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.subscribe.forRegistration">No</item>

		<!-- Enable 100rel -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.sip.header.100rel">No</item>

		<!-- Callee ID Display -->
		<!-- Auto, Disabled, To Header - Header -->
		<item name="account.{$row.line_number}.sip.calleeIdDisplay">Auto</item>

		<!-- Caller ID Display -->
		<!-- Auto, Disabled, From Header - Header -->
		<item name="account.{$row.line_number}.sip.callerIdDisplay">Header</item>

		<!-- Add Auth Header On Initial REGISTER -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.header.authOnInitialRegister">No</item>

		<!-- Allow SIP Reset -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.allowSipReset">No</item>

		<!-- Ignore Alert-Info header -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.ring.ignoreSipAlertInfo">No</item>

		<!-- Account 1 SIP Settings -->
		<!-- Account 1 Custom SIP Headers -->
		<!-- Use Privacy Header -->
		<!-- Default, Yes, No -->
		<item name="account.{$row.line_number}.sip.header.privacy">Default</item>

		<!-- Use P-Preferred-Identity Header -->
		<!-- Default, Yes, No -->
		<item name="account.{$row.line_number}.sip.header.ppi">Default</item>

		<!-- Use X-Grandstream-PBX Header -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.header.xGrandstream">Yes</item>

		<!-- Use P-Access-Network-Info Header -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.header.pani">Yes</item>

		<!-- Use P-Emergency-Info Header -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.header.pei">Yes</item>

		<!-- Use X-switch-info Header -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.header.xSwitchInfo">No</item>

		<!-- Use MAC Header -->
		<!-- No - No, Yes except REGISTER only - YesExceptRegister, Yes to all SIP - YesToAllSip -->
		<item name="account.{$row.line_number}.sip.header.mac">No</item>

		<!-- Account 1 SIP Settings -->
		<!-- Account 1 Advanced Features -->
		<!-- Line-seize Timeout -->
		<!-- Number: 15 - 60 -->
		<item name="account.{$row.line_number}.sip.lineSeizeTimeout">15</item>

		<!-- Eventlist BLF URI -->
		<item name="account.{$row.line_number}.sip.blf.eventlist.uri"/>

		<!-- Auto Provision Eventlists -->
		<!-- Disabled, BLFEventList, PresenceEventlist -->
		<item name="account.{$row.line_number}.sip.blf.eventlist.autoProvision">Disabled</item>

		<!-- Conference URI -->
		<item name="account.{$row.line_number}.sip.conferenceUri"/>

		<!-- Music On Hold URI -->
		<item name="account.{$row.line_number}.sip.musicOnHoldUri"/>

		<!-- BLF Call-pickup  -->
		<!-- Auto, Force, Disabled -->
		{if isset($grandstream_blf_callpickup_force) }
			<item name="account.{$row.line_number}.sip.blf.callPickup.forcePrefix">{$grandstream_blf_callpickup_force}</item>
		{else}
			<item name="account.{$row.line_number}.sip.blf.callPickup.forcePrefix">Auto</item>
		{/if}

		<!-- BLF Call-pickup Prefix -->
		<item name="account.{$row.line_number}.sip.blf.callPickup.prefix">**</item>

		<!-- Call Pickup Barge-In Code -->
		<item name="account.{$row.line_number}.sip.callPickupBargeinCode"/>

		<!-- PUBLISH for Presence -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.publishForPresence">No</item>

		<!-- Omit charset=UTF-8 in MESSAGE -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.omitCharsetUtf8InMessage">No</item>

		<!-- Allow Unsolicited REFER -->
		<!-- Disabled, Enabled, EnabledOrForceAuth -->
		<item name="account.{$row.line_number}.sip.allowUnsolicitedRefer">Disabled</item>

		<!-- Special Feature -->
		<!-- Standard, NortelMCS, Broadsoft, CBCOM, RNK, Sylantro, HuawaiIMS, Phonepower, UCMCallCenter, Zoom -->
		<item name="account.{$row.line_number}.sip.specialFeature">Standard</item>

		<!-- Broadsoft Call Center -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.broadsoft.callCenter">No</item>

		<!-- Hoteling Event -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.broadsoft.hoteling">No</item>

		<!-- Call Center Status -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.broadsoft.callCenterStatus">No</item>

		<!-- Broadsoft Executive Assistant -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.broadsoft.executiveAssistant">No</item>

		<!-- Feature Key Synchronization -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.syncFeatureKey">No</item>

		<!-- Broadsoft Call Park -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.broadsoft.callPark">No</item>

		<!-- Account 1 SIP Settings -->
		<!-- Account 1 Session Timer -->
		<!-- Enable Session Timer -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.sessionTimer.enable">No</item>

		<!-- Session Expiration (s) -->
		<!-- Session Timer is disabled if the value is 0 -->
		<item name="account.{$row.line_number}.sip.sessionTimer.expiration">180</item>

		<!-- Min-SE(s) -->
		<item name="account.{$row.line_number}.sip.minimumSE">90</item>

		<!-- Caller Request Timer -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.sip.sessionTimer.requestTimer.caller">No</item>

		<!-- Callee Request Timer -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.sip.sessionTimer.requestTimer.callee">No</item>

		<!-- Force Timer -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.sip.sessionTimer.force">No</item>

		<!-- UAC Specify Refresher -->
		<!-- Omit, UAC, UAS -->
		<item name="account.{$row.line_number}.sip.sessionTimer.refresher.uacSpecify">UAC</item>

		<!-- UAS Specify Refresher -->
		<!--UAC - 1, UAS - 2 -->
		<item name="account.{$row.line_number}.sip.sessionTimer.refresher.uasSpecify">1</item>

		<!-- Force INVITE -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.sip.sessionTimer.forceInvite">No</item>

		<!-- Account 1 SIP Settings -->
		<!-- Account 1 Security Settings -->
		<!-- Check Domain Certificates -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.validate.domainCertificates">No</item>

		<!-- Trusted Domain Name List -->
		<!-- String-->
		<item name="account.{$row.line_number}.sip.validate.trustedDomains"/>

		<!-- Validate Certification Chain 	 -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.validate.certificationChain">No</item>

		<!-- Validate Incoming SIP Messages -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.validate.incomingMessage">No</item>

		<!-- Check SIP User ID for Incoming INVITE  -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.validate.userIdforInvite">No</item>

		<!-- Accept Incoming SIP from Proxy Only  -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.validate.incomingServer">Yes</item>

		<!-- Authenticate Incoming INVITE -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.sip.authenticateIncomingInvite">No</item>

		<!-- Account 1 Audio Settings -->
		<!-- Codec Settings -->
		<!-- Preferred Vocoder -->
		<!-- PCMU, PCMA, G.726-32, G.723.1, G.722, G.729A/B, iLBC, OPUS -->
		<item name="account.{$row.line_number}.codec.choice.1">PCMU</item>
		<item name="account.{$row.line_number}.codec.choice.2">PCMA</item>
		<item name="account.{$row.line_number}.codec.choice.3">G.723.1</item>
		<item name="account.{$row.line_number}.codec.choice.4">G.729A/B</item>
		<item name="account.{$row.line_number}.codec.choice.5">G.722</item>
		<item name="account.{$row.line_number}.codec.choice.6">iLBC</item>
		<item name="account.{$row.line_number}.codec.choice.7">G.726-32</item>
		<item name="account.{$row.line_number}.codec.choice.8">OPUS</item>

		<!-- Use First Matching Vocoder in 200OK SDP -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.codec.useFirstMatch">No</item>

		<!-- Codec Negotiation Priority -->
		<!-- Caller, Callee -->
		<item name="account.{$row.line_number}.codec.negotiatePriority">Callee</item>

		<!-- Hide Vocoder -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.codec.hideLabel">No</item>

		<!-- Configures to enable or disable multiple m lines in SDP -->
		<!-- Invert_Yes_No, Yes - No, No - Yes -->
		<item name="account.{$row.line_number}.audio.multipleMLineInSDP">No</item>

		<!-- SRTP Mode -->
		<!-- Disabled, EnabledButNotForced, EnabledAndForced, Optional -->
		<item name="account.{$row.line_number}.audio.srtpMode">Disabled</item>

		<!-- SRTP Key Length -->
		<!-- AES128And256Bit, AES128Bit, AES256Bit -->
		<item name="account.{$row.line_number}.audio.srtpKeyLength">AES128And256Bit</item>

		<!-- Crypto Life Time -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.audio.cryptoLifeTime">Yes</item>

		<!-- Symmetric RTP -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.audio.symmetricRTP">No</item>

		<!-- Silence Suppression -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.audio.silenceSuppression">No</item>

		<!-- Jitter Buffer Type -->
		<!-- Fixed, Adaptive -->
		<item name="account.{$row.line_number}.audio.jitterBufferType">Adaptive</item>

		<!-- Jitter Buffer Length -->
		<!-- 100ms, 200ms, 300ms, 400ms, 500ms, 600ms, 700ms, 800ms -->
		<item name="account.{$row.line_number}.audio.jitterBufferLength">300ms</item>

		<!-- Voice Frames per TX -->
		<!-- Number: 1 - 64 -->
		<item name="account.{$row.line_number}.audio.voiceFramePerTX">2</item>

		<!-- G723 Rate -->
		<!-- 6.3kbpsEncodingRate, 5.3kbpsEncodingRate -->
		<item name="account.{$row.line_number}.codec.g723rate">5.3kbpsEncodingRate</item>

		<!-- G.726-32 Packing Mode -->
		<!-- ITU, IETF -->
		<item name="account.{$row.line_number}.codec.g723.32.packingMode">ITU</item>

		<!-- iLBC Frame Size -->
		<!-- 20ms, 30ms -->
		<item name="account.{$row.line_number}.codec.iLBC.frameSize">30ms</item>

		<!-- iLBC Payload Type -->
		<item name="account.{$row.line_number}.codec.payloadType.ilbc">97</item>

		<!-- OPUS Payload Type -->
		<item name="account.{$row.line_number}.codec.payloadType.opus">123</item>

		<!-- DTMF Payload Type -->
		<item name="account.{$row.line_number}.codec.payloadType.dtmf">101</item>

		<!-- Send DTMF -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.dtmf.sendInAudio">No</item>
		<item name="account.{$row.line_number}.dtmf.sendInRtp">Yes</item>
		<item name="account.{$row.line_number}.dtmf.sendInSip">No</item>

		<!-- DTMF Delay -->
		<!-- Number: 100 - 250 -->
		<item name="account.{$row.line_number}.dtmf.delay">250</item>

		<!-- Account 1 Call Settings -->
		<!-- Early Dial -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.call.earlyDial">No</item>

		<!-- Dial Plan Prefix -->
		<item name="account.{$row.line_number}.call.dialplanPrefix"/>

		<!-- Dial Plan -->
		{if isset($grandstream_dial_plan) }
			<item name="account.{$row.line_number}.call.dialplan">{$grandstream_dial_plan}</item>
		{else}
			<item name="account.{$row.line_number}.call.dialplan">{literal}{x+|*x+|*++|\p\a\r\k\+*x+|\p\a\r\k\+x+|\f\l\o\w\+*x+}{/literal}</item>
		{/if}

		<!-- Bypass Dial Plan -->
		<!-- contact,incoming,outgoing,dialing,Mpk,api -->
		<item name="account.{$row.line_number}.call.dialplanBypass">Mpk</item>

		<!-- Call Log -->
		<!-- All, IncomingAndOutgoing, Disable -->
		<item name="account.{$row.line_number}.call.callLog">All</item>

		<!-- Send Anonymous -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.call.sendAnonymous">No</item>

		<!-- Anonymous Call Rejection -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.call.rejectAnonymousCall">No</item>

		<!--Auto Answer -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.call.autoAnswer">No</item>

		<!-- Auto Answer Numbers -->
		<item name="account.{$row.line_number}.call.autoAnswerNumber"/>

		<!-- Refer-To Use Target Contact -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.call.referToUseTargetContact">No</item>

		<!-- Transfer on Conference Hangup -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.call.transferOnConferenceHangup">No</item>

		<!-- Disable Recovery on Blind Transfer -->
		<!-- Invert_Yes_No, Yes - No, No - Yes -->
		<item name="account.{$row.line_number}.call.recoveryOnBlindTransfer"/>

		<!-- Blind Transfer Wait Timeout -->
		<!-- Number: 30 - 300 -->
		<item name="account.{$row.line_number}.call.blindTransferTimeout">30</item>

		<!-- No Key Entry Timeout (s) -->
		<!-- Number: 1 - 15 -->
		<item name="account.{$row.line_number}.call.noKeyEntryTimeout">4</item>

		<!-- Use as Dial Key -->
		<!-- Disabled, Pound, Star -->
		<item name="account.{$row.line_number}.call.keyAsSend">Pound</item>

		<!-- On Hold Reminder Tone -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.call.onHoldReminderTone">No</item>

		<!-- RFC2543 Hold -->
		<!-- Yes, No -->
		<item name="account.{$row.line_number}.call.rfc2543Hold.enable">No</item>

		<!-- Hide Dialing Password -->
		<!-- Prefix for dialing password -->
		<item name="account.{$row.line_number}.call.hidePassword.prefix"/>

		<!-- Password length -->
		<item name="account.{$row.line_number}.call.hidePassword.length">0</item>

		<!-- Disable Call Waiting -->
		<!-- Default, Yes, No -->
		<item name="account.{$row.line_number}.call.callWaiting">{$grandstream_call_waiting}</item>

		<!-- Account Ringtone -->
		<item name="account.{$row.line_number}.ring.ringtone">{$grandstream_account_ring_tone_1}</item>

		<!-- Matching Incoming Caller ID. Matching Rule 1 -->
		<item name="account.{$row.line_number}.ring.match.1.callerId">{$grandstream_distinctive_ringtone_name_1}</item>

		<!-- Distinctive Ring Tone -->
		<item name="account.{$row.line_number}.ring.match.1.ringtone">{$grandstream_distinctive_ringtone_1}</item>

		<!-- Match Incoming Caller ID. Matching Rule 2 -->
		<item name="account.{$row.line_number}.ring.match.2.callerId">{$grandstream_distinctive_ringtone_name_2}</item>

		<!-- Distinctive Ring Tone -->
		<item name="account.{$row.line_number}.ring.match.2.ringtone">{$grandstream_distinctive_ringtone_2}</item>

		<!-- Match Incoming Caller ID. Matching Rule 3 -->
		<item name="account.{$row.line_number}.ring.match.3.callerId">{$grandstream_distinctive_ringtone_name_3}</item>

		<!-- Distinctive Ring Tone -->
		<item name="account.{$row.line_number}.ring.match.3.ringtone">{$grandstream_distinctive_ringtone_3}</item>

		<!-- Match Incoming Caller ID. Matching Rule 4 -->
		<item name="account.{$row.line_number}.ring.match.4.callerId">{$grandstream_distinctive_ringtone_name_4}</item>

		<!-- Distinctive Ring Tone -->
		<item name="account.{$row.line_number}.ring.match.4.ringtone">{$grandstream_distinctive_ringtone_4}</item>

		<!-- Match Incoming Caller ID. Matching Rule 5 -->
		<item name="account.{$row.line_number}.ring.match.5.callerId">{$grandstream_distinctive_ringtone_name_5}</item>

		<!-- Distinctive Ring Tone -->
		<item name="account.{$row.line_number}.ring.match.5.ringtone">{$grandstream_distinctive_ringtone_5}</item>

		<!-- Match Incoming Caller ID. Matching Rule 6 -->
		<item name="account.{$row.line_number}.ring.match.6.callerId">{$grandstream_distinctive_ringtone_name_6}</item>

		<!-- Distinctive Ring Tone -->
		<item name="account.{$row.line_number}.ring.match.6.ringtone">{$grandstream_distinctive_ringtone_6}</item>

		<!-- Match Incoming Caller ID. Matching Rule 7 -->
		<item name="account.{$row.line_number}.ring.match.7.callerId">{$grandstream_distinctive_ringtone_name_7}</item>

		<!-- Distinctive Ring Tone -->
		<item name="account.{$row.line_number}.ring.match.7.ringtone">{$grandstream_distinctive_ringtone_7}</item>

		<!-- Match Incoming Caller ID. Matching Rule 8 -->
		<item name="account.{$row.line_number}.ring.match.8.callerId">{$grandstream_distinctive_ringtone_name_8}</item>

		<!-- Distinctive Ring Tone -->
		<item name="account.{$row.line_number}.ring.match.8.ringtone">{$grandstream_distinctive_ringtone_8}</item>

		<!-- Match Incoming Caller ID. Matching Rule 9 -->
		<item name="account.{$row.line_number}.ring.match.9.callerId">{$grandstream_distinctive_ringtone_name_9}</item>

		<!-- Distinctive Ring Tone -->
		<item name="account.{$row.line_number}.ring.match.9.ringtone">{$grandstream_distinctive_ringtone_9}</item>

		<!-- Match Incoming Caller ID. Matching Rule 10 -->
		<item name="account.{$row.line_number}.ring.match.10.callerId">{$grandstream_distinctive_ringtone_name_10}</item>

		<!-- Distinctive Ring Tone -->
		<item name="account.{$row.line_number}.ring.match.10.ringtone">{$grandstream_distinctive_ringtone_10}</item>

		<!-- Ring Timeout -->
		<!-- Number: 10 - 300 -->
		<item name="account.{$row.line_number}.ring.timeout">60</item>

		<!-- ############################################################### -->
		<!-- # Account 1/Intercom Settings -->
		<!-- ############################################################### -->
		<!-- # Allow Auto Answer by Call-Info/Alert-Info. 0 - No, 1 - Yes. Default is Yes -->
		<!-- # Number: 0, 1 -->
		<!-- # Mandatory -->
		<item name="account.{$row.line_number}.intercom.allowAutoAnswer">Yes</item>

		<!-- Allow Barging by Call-Info/Alert-Info -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.intercom.allowBargingByCallInfo">No</item>

		<!-- Mute on Answer Intercom Call -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.intercom.muteOnAnswerIntercom">No</item>

		<!-- Play Warning Tone for Auto Answer Intercom  -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.intercom.playWarningToneForAutoAnswer">Yes</item>

		<!-- # Custom Alert-Info for Auto Answer. -->
		<!-- # String -->
		<item name="account.{$row.line_number}.intercom.customCallInfoForAutoAnswer"/>

		<!-- ############################################################### -->
		<!-- # Account 1/Feature Codes -->
		<!-- ############################################################### -->
		<!-- #Enable Local Call Features. Default is Yes -->
		<!-- #Mandatory -->
		<!-- No, Yes -->
		<item name="account.{$row.line_number}.featureCodes.callFeatures">No</item>

		<!-- DND Call Feature On -->
		<item name="account.{$row.line_number}.featureCodes.dndOn">*78</item>

		<!-- DND Call Feature Off  -->
		<item name="account.{$row.line_number}.featureCodes.dndOff">*79</item>

		<!-- #Call Forward Always - On -->
		<!-- # String -->
		<item name="account.{$row.line_number}.featureCodes.callForwardUnconditionallyOn">*72</item>

		<!-- #Call Forward Always - Off -->
		<!-- # String -->
		<item name="account.{$row.line_number}.featureCodes.callForwardUnconditionallyOff">*73</item>

		<!-- #Call Forward Always- Target -->
		<!-- # String -->
		<item name="account.{$row.line_number}.featureCodes.callForwardUnconditionallyTarget"/>

		<!-- #Call Forward Busy - On -->
		<!-- # String -->
		<item name="account.{$row.line_number}.featureCodes.callForwardBusyOn"/>

		<!-- #Call Forward Busy - Off -->
		<!-- # String -->
		<item name="account.{$row.line_number}.featureCodes.callForwardBusyOff"/>

		<!-- #Call Forward Busy - Target -->
		<!-- # String -->
		<item name="account.{$row.line_number}.featureCodes.callForwardBusyTarget"/>

		<!-- #Call Forward No Answer - On -->
		<!-- #String -->
		<item name="account.{$row.line_number}.featureCodes.callForwardDelayedOn"/>

		<!-- #Call Forward No Answer - Off -->
		<!-- #String -->
		<item name="account.{$row.line_number}.featureCodes.callForwardDelayedOff"/>

		<!-- #Call Forward No Answer - Target -->
		<!-- #String -->
		<item name="account.{$row.line_number}.featureCodes.callForwardDelayedTarget"/>

		<!-- #Delayed Call Forward Wait Time (in seconds). Default is 12 -->
		<!-- #Number: 1 - 120 -->
		<!-- #Mandatory -->
		<item name="account.{$row.line_number}.featureCodes.delayedCallForwardWaitTime">20</item>

{/foreach}

		<!-- ################################################################### -->
		<!-- ## Network/Basic Settings                                        ## -->
		<!-- ################################################################### -->
		<!-- Ethernet Settings -->
		<!-- Preferred Internet Protocol -->
		<!-- BothAndPreferIPv4, BothAndPreferIPv6, IPv4Only, IPv6Only -->
		{if isset($grandstream_internet_protocol)}
		<item name="network.internetProtocol">{$grandstream_internet_protocol}</item>
		{else}
		<item name="network.internetProtocol">IPv4Only</item>
		{/if}

		<!-- IPv4 Address Type -->
		<!-- DHCP, StaticIP, PPPoE -->
		{if isset($grandstream_ip_address_type)}
		<item name="network.port.eth.1.type">{$grandstream_ip_address_type}</item>
		{else}
		<item name="network.port.eth.1.type">DHCP</item>
		{/if}

		<!-- ########################################## -->
		<!-- # DHCP -->
		<!-- ########################################## -->
		<!-- Host Name(Option 12) -->
		<item name="network.dhcp.hostName"/>

		<!-- Vendor Class ID(Option 60) -->
		<!-- <item name="network.dhcp.vendorID"></item> -->

		<!-- ########################################## -->
		<!-- # PPPoE -->
		<!-- ########################################## -->
		<!-- # PPPoE Account ID -->
		<!-- # String -->
		<!-- PPPoE Account ID -->
		<item name="network.port.eth.1.pppoe.account"/>

		<!-- PPPoE Password -->
		<item name="network.port.eth.1.pppoe.password"/>

		<!-- # PPPoE Service Name -->
		<!-- # String  -->
		<item name="network.pppoe.serviceName"/>

		<!-- ########################################## -->
		<!-- # Statically Configured -->
		<!-- ########################################## -->
		<!-- # IP Address. Ignore if DHCP or PPPoE is used -->
		<!-- # Number: 0 - 255 -->
		<!-- IP Address -->
		<item name="network.port.eth.1.address.1">192</item>
		<!-- # Number: 0 - 255 -->
		<item name="network.port.eth.1.address.2">168</item>
		<!-- # Number: 0 - 255 -->
		<item name="network.port.eth.1.address.3">0</item>
		<!-- # Number: 0 - 255 -->
		<item name="network.port.eth.1.address.4">160</item>

		<!-- # Subnet mask. Ignore if DHCP or PPPoE is used -->
		<!-- # Number: 0 - 255 -->
		<!-- Subnet Mask -->
		<item name="network.port.eth.1.mask.1">255</item>
		<!-- # Number: 0 - 255 -->
		<item name="network.port.eth.1.mask.2">255</item>
		<!-- # Number: 0 - 255 -->
		<item name="network.port.eth.1.mask.3">0</item>
		<!-- # Number: 0 - 255 -->
		<item name="network.port.eth.1.mask.4">0</item>

		<!-- # Gateway. Ignore if DHCP or PPPoE is used -->
		<!-- # Number: 0 - 255 -->
		<item name="network.port.eth.1.gateway.1">0</item>
		<!-- # Number: 0 - 255 -->
		<item name="network.port.eth.1.gateway.2">0</item>
		<!-- # Number: 0 - 255 -->
		<item name="network.port.eth.1.gateway.3">0</item>
		<!-- # Number: 0 - 255 -->
		<item name="network.port.eth.1.gateway.4">0</item>

		<!-- # DNS 1 Server. Ignore if DHCP or PPPoE is used -->
		<!-- # Number: 0 - 255 -->
		<item name="network.dns.1.ip.1">0</item>
		<!-- # Number: 0 - 255 -->
		<item name="network.dns.1.ip.2">0</item>
		<!-- # Number: 0 - 255 -->
		<item name="network.dns.1.ip.3">0</item>
		<!-- # Number: 0 - 255 -->
		<item name="network.dns.1.ip.4">0</item>

		<!-- # DNS 2 Server. Ignore if DHCP or PPPoE is used -->
		<!-- # Number: 0 - 255 -->
		<item name="network.dns.2.ip.1">0</item>
		<!-- # Number: 0 - 255 -->
		<item name="network.dns.2.ip.2">0</item>
		<!-- # Number: 0 - 255 -->
		<item name="network.dns.2.ip.3">0</item>
		<!-- # Number: 0 - 255 -->
		<item name="network.dns.2.ip.4">0</item>

		<!-- # Preferred DNS server.  (if specified). -->
		<!-- # Number: 0 - 255 -->
		<item name="network.dns.preferred.ip.1">0</item>
		<!-- # Number: 0 - 255 -->
		<item name="network.dns.preferred.ip.2">0</item>
		<!-- # Number: 0 - 255 -->
		<item name="network.dns.preferred.ip.3">0</item>
		<!-- # Number: 0 - 255 -->
		<item name="network.dns.preferred.ip.4">0</item>

		<!-- # IPv6 Address type. 0 - Auto Configured, 1 - Statically Configured. Default is 0. -->
		<!-- # Number: 0, 1 -->
		<!-- # Mandatory -->
		<!-- IPv6 Address  -->
		<!-- AutoConfigured, StaticallyConfigured -->
		<item name="network.port.eth.1.ipv6.type">AutoConfigured</item>
		<!-- FullStatic(Default), PrefixStatic -->
		<item name="network.port.eth.1.ipv6.static.mode"/>
		<!-- Static IPv6 Address -->
		<item name="network.port.eth.1.ipv6.static.address"/>
		<!-- IPv6 Prefix Length -->
		<item name="network.port.eth.1.ipv6.static.prefixLength"/>
		<!-- # Prefix Static: IPv6 Prefix (64bits) -->
		<item name="network.port.eth.1.ipv6.static.prefix"/>

		<!-- DNS Server 1 -->
		<!-- # String: a-z, A-Z, 0-9, ".", ":", "[", "]" -->
		<item name="network.dns.1.ipv6"/>
		<!-- DNS Server 2 -->
		<!-- # String: a-z, A-Z, 0-9, ".", ":", "[", "]" -->
		<item name="network.dns.2.ipv6"/>
		<!-- # Preferred DNS Server for IPv6 Address -->
		<!-- # String: a-z, A-Z, 0-9, ".", ":", "[", "]" -->
		<item name="network.dns.preferred.ipv6"/>

		<!-- Network/Advanced Settings  -->
		<!-- # 802.1X Mode. 0 - Disable, 1 - EAP-MD5. 2 - EAP-TLS, 3 - EAP-PEAPv0/MSCHAPv2. Default is 0 -->
		<!-- # Number: 0, 1, 2, 3 -->
		<!-- # Mandatory -->
		<!-- 802.1x Mode -->
		<!-- Disable, EAP_MD5, EAP_TLS, EAP_PEAPv0OrMSCHAPv2 -->
		<item name="network.802.1x.mode">Disable</item>
		<!-- 802.1x Identity -->
		<item name="network.802.1x.identity"/>
		<!-- MD5 Password -->
		<item name="network.md5Password"/>

		<!-- # 802.1X CA Certificate -->
		<!-- # String -->
		<item name="network.802.1x.cert.root"/>

		<!-- # 802.1X Client Certificate -->
		<!-- # String -->
		<item name="network.802.1x.cert.client"/>

		<!-- # HTTP Proxy -->
		<!-- # String -->
		<!-- Must include port number -->
		<item name="network.proxy.http"/>

		<!-- # HTTPS Proxy -->
		<!-- # String -->
		<item name="network.proxy.https"/>

		<!-- # Bypass Proxy For -->
		<!-- # String -->
		<item name="network.proxy.bypassAddress"/>

		<!-- # Layer 3 QoS for SIP -->
		<!-- # Number:0 - 63 -->
		<!-- # Mandatory -->
		<item name="network.qos.forSip">26</item>

		<!-- # Layer 3 QoS for RTP -->
		<!-- # Number:0 - 63 -->
		<!-- # Mandatory -->
		<item name="network.qos.forRtp">46</item>

		<!-- # Release DHCP On Reboot. Yes or No -->
		<!-- # Mandatory -->
		<item name="network.dhcp.enableRelease">No</item>

		<!-- # Enable DHCP VLAN. Yes or No -->
		<!-- # Mandatory -->
		<item name="network.dhcp.enableVlan">No</item>

		<!-- # Enable Manual VLAN Configuration. Yes or No. -->
		<!-- # Mandatory -->
		<item name="network.port.eth.1.vlan.enable">{if $grandstream_lan_port_vlan == '0'}No{else}Yes{/if}</item>


		<!-- # Layer 2 QoS. 802.1Q/VLAN Tag (VLAN classification for RTP). Default is 0 -->
		<!-- Layer 2 QoS 802.1Q/VLAN Tag (Ethernet) -->
		<!-- Number: 0 - 4095 -->
		<item name="network.port.eth.1.vlan.tag">{$grandstream_lan_port_vlan}</item>

		<!-- 802.1p Priority Value (Ethernet) -->
		<!-- Number: 0 - 7 -->
		<item name="network.port.eth.1.vlan.priority">0</item>

		<!-- PC Port Mode -->
		<!-- Enabled, Disabled, Mirrored -->
		{if isset($grandstream_pc_mode)}
		<item name="network.port.pc.mode">{if isset($grandstream_pc_mode)}{$grandstream_pc_mode}{else}Enabled{/if}</item>
		{else}
		<item name="network.port.pc.mode">{if isset($grandstream_pc_port_vlan)}Enabled{else}Disabled{/if}</item>
		{/if}

		<!-- PC Port VLAN Tag  -->
		<item name="network.port.pc.vlan.tag">{$grandstream_pc_port_vlan}</item>

		<!-- PC Port Priority Value -->
		<item name="network.port.pc.vlan.priority">0</item>

		<!-- Enable CDP -->
		<!-- Yes, No -->
		<item name="network.cdp">Yes</item>

		<!-- Enable LLDP -->
		<!-- Yes, No -->
		<item name="network.lldp.enable">Yes</item>

		<!-- LLDP TX Interval (s)  -->
		<item name="network.lldp.txInterval">60</item>

		<!-- # Maximum Transmission Unit(MTU). Default is 1500 -->
		<!-- # Number: 576 - 1500 -->
		<item name="network.mtu">1500</item>

		<!-- ############################################################################## -->
		<!-- ##  Network/Remote Control -->
		<!-- ############################################################################## -->
		<!-- # Action URI Support. Yes or No -->
		<item name="remoteControl.enable">Yes</item>

		<!-- # Remote Control Pop up Window Support. Yes or No-->
		<item name="remoteControl.confirmWindow.enable">Yes</item>

		<!-- # Action URI Allowed IP List -->
		<!-- # String -->
		<item name="remoteControl.allowList"/>

		<!-- # CSTA Control. Yes or No-->
		<item name="remoteControl.csta.enable">No</item>

		<!-- ################################################################################## -->
		<!-- ##  Network/Affinity Settings    GRP2614/GRP2615/GRP2616/GRP2624/GRP2634/GRP2670/GRP2650   -->
		<!-- ################################################################################## -->
		<!-- # Affinity Support. Yes or No-->
		<item name="affinity.enable">No</item>

		<!-- # Preferred Account. 0 - Account 1, 1 - Account 2, 2 - Account 3, 3 - Account 4, 4 - Account 5, 5 - Account 6 -->
		<item name="affinity.preferredAccount">0</item>

		<!-- #################################################################################### -->
		<!-- ##  Network /Bluetooth Settings    GRP2614/GRP2615/GRP2616/GRP2624/GRP2634/GRP2670/GRP2650   -->
		<!-- #################################################################################### -->
		<!-- # Bluetooth Power.  -->
		<!-- # Off, On, OffAndHideMenuFromLCD -->
		<item name="bluetooth.power">On</item>

		<!-- # Handsfree Mode. -->
		<!-- # Off or On -->
		<item name="bluetooth.handsfreeMode"/>

		<!-- # Connection In Public Mode. -->
		<!-- # Default (0), Always On (1) -->
		<item name="bluetooth.connectionInPulicMode"/>

		<!-- # Bluetooth Name. -->
		<!-- # String -->
		<item name="bluetooth.name"/>

		<!-- ############################################################################## -->
		<!-- ## Network/OpenVPN Settings                     ## -->
		<!-- ############################################################################## -->
		<!-- OpenVPN Settings -->
		<!-- Enable OpenVPN -->
		<!-- Yes, No -->
		<item name="network.openvpn.enable">No</item>

		<!-- OpenVPN mode -->
		<!-- 0 - simple mode, 1 - expert mode -->
		<item name="network.openvpn.mode">0</item>

		<!-- OpenVPN Server Address -->
		<item name="network.openvpn.server"/>

		<!-- OpenVPN Port -->
		<item name="network.openvpn.port">1194</item>

		<!-- OpenVPN Transport -->
		<!-- UDP, TCP -->
		<item name="network.openvpn.transport">UDP</item>

		<!-- # OpenVPN CA -->
		<!-- # String -->
		<!-- <item name="network.openvpn.ca"></item> -->

		<!-- # OpenVPN Certificate -->
		<!-- # String -->
		<!-- <item name="network.openvpn.cert"></item> -->

		<!-- # OpenVPN Client Key -->
		<!-- # String -->
		<!-- <item name="network.openvpn.clientKey"></item> -->

		<!-- # 	OpenVPN Client Key Password -->
		<!-- # String -->
		<!-- <item name="network.openvpn.clientKey.password"></item> -->

		<!-- OpenVPN Cipher Method -->
		<!-- Blowfish, AES128, AES256, TripleDES -->
		<item name="network.openvpn.ciperMethod">Blowfish</item>

		<!-- # OpenVPN Username -->
		<!-- # String -->
		<item name="network.openvpn.username"/>

		<!-- OpenVPN Password -->
		<item name="network.openvpn.password"/>

		<!-- # OpenVPN Comp-lzo. Yes or No -->
		<item name="network.openvpn.complzo.enable">Yes</item>

		<!-- # Additional Options -->
		<!-- # String -->
		<item name="network.openvpn.otherOptions"/>

		<!-- ############################################################################## -->
		<!-- ## Network/SNMP Settings                     ## -->
		<!-- ############################################################################## -->
		<!-- # Enable SNMP. Yes or No -->
		<item name="network.snmp.enable">No</item>

		<!-- # Version. Version1, Version2, Version3. Default is Version3 -->
		<item name="network.snmp.version">Version3</item>

		<!-- # Port -->
		<!-- # Number. Default is 161. -->
		<item name="network.snmp.port">161</item>

		<!-- # Community -->
		<!-- # String -->
		<item name="network.snmp.community"/>

		<!-- # SNMP Trap Version -->
		<!-- # Version1, Version2, Version3. -->
		<item name="network.snmp.trap.version">Version2</item>

		<!-- # SNMP Trap IP -->
		<!-- # String -->
		<item name="network.snmp.trap.ip"/>

		<!-- # SNMP Trap Port -->
		<!-- # Number: 1025 - 65535. Default is 162 -->
		<item name="network.snmp.trap.port">162</item>

		<!-- # SNMP Trap Interval -->
		<!-- # Number: 1 - 1440. Default is 5 -->
		<item name="network.snmp.trap.interval">5</item>

		<!-- # Snmp Trap Community -->
		<!-- # String -->
		<item name="network.snmp.trap.community"/>

		<!-- # SNMP Username -->
		<!-- # Strings -->
		<item name="network.snmp.username"/>

		<!-- # Security Level -->
		<!-- # noAuthUser - 0, authUser - 1, privUser - 2.-->
		<item name="network.snmp.security.level">0</item>

		<!-- # Authentication Protocol -->
		<!-- # None, MD5, SHA. -->
		<item name="network.snmp.auth.protocol">None</item>

		<!-- # Privacy Protocol -->
		<!-- # None, DES, AES. -->
		<item name="network.snmp.privacy.protocol">None</item>

		<!-- # Authentication Key -->
		<!-- # String -->
		<item name="network.snmp.auth.key"/>

		<!-- # Privacy Key -->
		<!-- # String  -->
		<item name="network.snmp.privacy.key"/>

		<!-- # SNMP Trap Username -->
		<!-- # String -->
		<item name="network.snmp.trap.username"/>

		<!-- # Trap Security Level -->
		<!-- # noAuthUser - 0, authUser - 1, privUser - 2.-->
		<item name="network.snmp.trap.security.level">0</item>

		<!-- # Trap Authentication Protocol -->
		<!-- # None, MD5, SHA.  -->
		<item name="network.snmp.trap.auth.protocol">None</item>

		<!-- # Trap Privacy Protocol -->
		<!-- # None, DES, AES. -->
		<item name="network.snmp.trap.privacy.protocol">None</item>

		<!-- # Trap Authentication Key -->
		<!-- # String -->
		<item name="network.snmp.trap.auth.key"/>

		<!-- # Trap Privacy Key -->
		<!-- # String -->
		<item name="network.snmp.trap.privacy.key"/>

		<!-- ############################################################################## -->
		<!-- ##  Maintenance/ Web Access     ## -->
		<!-- ############################################################################## -->

		<!-- # End User Password -->
		<!-- # String: a-z, A-Z, 0-9 -->
		{if isset($user_password)}
		<item name="users.user.password">{$user_password}</item>
		{/if}

		<!-- # Admin Password for web interface -->
		<!-- # String: a-z, A-Z, 0-9 -->
		{if isset($admin_password)}
			<item name="users.admin.password">{$admin_password}</item>
		{else}
			<item name="users.admin.password">{$mac|replace:'-':''}</item>
		{/if}

		<!-- ############################################################################## -->
		<!-- ##  Maintenance/Upgrade and Provisioning -->
		<!-- ############################################################################## -->

		<!-- # Firmware Upgrade and Provisioning -->
		<!-- AlwaysCheck (default), CheckWhenChange, SkipCheck -->
		<item name="provisioning.firmware.checkCondition">AlwaysCheck</item>

		<!-- # Always Authenticate Before Challenge. Yes or No -->
		<item name="provisioning.alwaysAuthenticateBeforeChallenge">No</item>

		<!-- # Validate Hostname in Certificate. No, Yes. -->
		<item name="provisioning.validateHostnameInCertificate">No</item>

		<!-- # Allow DHCP Option 43 and Option 66 to override server. No, Yes, Prefer, fallback when failed. Default is No -->
		<!-- # When set to Yes, it will override the configured provision path and method -->
		<!-- Allow DHCP Option 43 and Option 66 to Override Server -->
		<!-- No, Yes, Fallback-->
		{if isset($grandstream_dhcp_option_override)}
		<item name="provisioning.override.dhcp.allowCommonOptions">{$grandstream_dhcp_option_override}</item>
		{else}
		<item name="provisioning.override.dhcp.allowCommonOptions">Yes</item>
		{/if}

		<!-- # Additional Override DHCP Option.  None, Option 150, Option 160.  -->
		{if isset($grandstream_dhcp_option_additional_override)}
		<item name="provisioning.override.dhcp.allowCustomOption">{$grandstream_dhcp_option_additional_override}</item>
		{else}
		<item name="provisioning.override.dhcp.allowCustomOption">None</item>
		{/if}

		<!-- # Allow DHCP Option 120 to Override SIP Server -->
		<!-- # No or Yes. -->
		{if isset($grandstream_dhcp_option_override_sip_server)}
		<item name="sip.override.dhcp.allowOption120">{$grandstream_dhcp_option_override_sip_server}</item>
		{else}
		<item name="sip.override.dhcp.allowOption120">No</item>
		{/if}

		<!-- # 3CX Auto Provision. No or Yes. -->
		<item name="provisioning.3cxAutoProvision">Yes</item>

		<!-- Automatic Upgrade -->
		<!-- No - No (default), Check Every Day - YesUpgradeHourOfDay, Check Every Week - YesUpgradeDayOfWeek, Check at a Period Time - YesUpgradeMin -->
		<item name="provisioning.auto.mode">No</item>

		<!-- Automatic Upgrade Check Interval (m) -->
		<!-- Number: 60 - 5256000. Default value is 10080 -->
		<item name="provisioning.auto.minute">10080</item>

		<!-- # Start Upgrade at Random Time. No or Yes -->
		<item name="provisioning.auto.randomTime.enable">No</item>

		<!-- Starting - Ending Hour of the Day (0-23) -->
		<item name="provisioning.auto.hour">1</item>
		<item name="provisioning.auto.endHour"/>

		<!-- Day of the Week -->
		<!-- 0, 1 (default), 2, 3, 4, 5, 6 -->
		<!-- Multiple days example: 0/1/2/3/4 -->
		<item name="provisioning.auto.day">1</item>

		<!-- #	Disable SIP NOTIFY Authentication. Yes or No -->
		<item name="sip.notify.challenge">No</item>

		<!-- # Firmware Upgrade Confirmation. No or Yes -->
		<item name="provisioning.firmware.confirm.enable">Yes</item>

		<!-- Config Upgrade Via -->
		<!-- TFTP, HTTP, HTTPS -->
		<item name="provisioning.config.protocol">HTTPS</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>
		{elseif isset($domain_name)}
		<item name="provisioning.config.serverPath">{$domain_name}{$project_path}/app/provision</item>
		{/if}

		<!-- Config Server User Name -->
		<item name="provisioning.config.username">{$http_auth_username}</item>
		<!-- Config Server Password -->
		<item name="provisioning.config.password">{$http_auth_password}</item>
		<!-- Config File Prefix -->
		<item name="provisioning.config.filePrefix"/>
		<!-- Config File Postfix -->
		<item name="provisioning.config.filePostfix"/>

		<!-- XML Config File Password -->
		<item name="provisioning.config.filePassword"/>

		<!-- Authenticate Conf File -->
		<!-- Yes, No -->
		<item name="provisioning.config.authenticateFile">No</item>

		<!-- # User Protection. No or Yes -->
		<item name="provisioning.userProtect.enable">No</item>

		<!-- # Download and Process ALL Available Config Files. No or Yes -->
		<item name="provisioning.config.processAll.enable">No</item>

		<!-- Firmware Upgrade via -->
		<!-- TFTP, HTTP, HTTPS, FTP,FTPS -->
		<item name="provisioning.firmware.protocol">HTTP</item>
		<!-- Firmware Server Path -->
		{if isset($grandstream_firmware_path) && isset($grandstream_firmware_version)}
		<item name="provisioning.firmware.serverPath">{$grandstream_firmware_path}/{$grandstream_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}

		<!-- Firmware Server User Name -->
		<item name="provisioning.firmware.username"/>
		<!-- Firmware Server Password -->
		<item name="provisioning.firmware.password"/>
		<!-- Firmware File Prefix -->
		<item name="provisioning.firmware.filePrefix"/>
		<!-- Firmware File Postfix -->
		<item name="provisioning.firmware.filePostfix"/>

		<!-- ############################################################################## -->
		<!-- ##  Maintenance/Syslog -->
		<!-- ############################################################################## -->
		<!-- Maintenance - System Diagnosis -->
		<!-- Syslog Protocol -->
		<!-- UDP, SSL_TLS -->
		<item name="maintain.syslog.protocol">UDP</item>

		<!-- Syslog Server -->
		<item name="maintain.syslog.server">{$grandstream_syslog_server}</item>

		<!-- Syslog Level -->
		<!-- None, Debug, Info, Warning, Error -->
		<item name="maintain.syslog.level">{$grandstream_syslog_level}</item>

		<!-- Syslog Keyword Filter -->
		<item name="maintain.syslog.keywordFiltering"/>

		<!-- # Send SIP Log.Yes or No -->
		<item name="maintain.syslog.sendSipLog">{$grandstream_send_sip_log}</item>

		<!-- # Show Network Warning Message. Yes or No-->
		<item name="network.showInternetDownWarning">No</item>

		<!-- # Auto Recover from Abnormal. Yes or No -->
		<item name="maintain.autoRecover">Yes</item>

		<!-- # USB Console Log. Yes or No -->
		<item name="maintain.usbConsoleLog">No</item>

		<!-- ############################################################################## -->
		<!-- ##  Maintenance/Language -->
		<!-- ############################################################################## -->
		<!-- # Display Language. Default is Auto -->
		<!-- # ar - Arabic, cz - Czech, de - Deutsh -->
		<!-- # en - English, es - Spanish, fr - Francais -->
		<!-- # he - Hebrew, hr - Hrvatski, hu - Magyar  -->
		<!-- # it - Italiano, ja - japanese, ko - korean, lv - latvian -->
		<!-- # nl - Dutch, pl - Polski, pt - Portugue -->
		<!-- # ru - Russian, sl - Slovenian, se - Svenska, tr - Turkish -->
		<!-- # zh-tw - traditional chinese, zh - simplified chinese, auto - Automatic -->
		<!-- # Downloaded Language -->
		<!-- # String -->
		<item name="language.gui">Automatic</item>

		<!-- # Default Input Selection. Default is Multi-Tap. -->
		<!-- # MultiTap,  Shiftable -->
		<item name="language.defaultInputSelection"/>

		<!-- # Auto language download. Yes or No -->
		<item name="language.autoDownload"/>

		<!-- ############################################################################## -->
		<!-- ##  Maintenance/TR-069 -->
		<!-- ############################################################################## -->
		<!-- Enable TR-069 -->
		<!-- Yes, No -->
		<item name="tr069.enable">No</item>

		<!-- ACS URL -->
		<item name="tr069.url">https://acs.gdms.cloud</item>

		<!-- TR-069 Username -->
		<item name="tr069.username"/>

		<!-- TR-069 Password -->
		<item name="tr069.password"/>

		<!-- Periodic Inform Enable -->
		<!-- Yes, No -->
		<item name="tr069.periodicInform">Yes</item>

		<!-- Periodic Inform Interval (s) -->
		<item name="tr069.periodicInformInterval">86400</item>

		<!-- Connection Request Username -->
		<item name="tr069.connectionRequestUsername"/>

		<!-- Connection Request Password -->
		<item name="tr069.connectionRequestPassword"/>

		<!-- Connection Request Port -->
		<item name="tr069.connectionRequestPort">7547</item>

		<!-- CPE SSL Certificate -->
		<item name="tr069.ssl.certificate"/>

		<!-- CPE SSL Private Key -->
		<item name="tr069.ssl.privateKey"/>

		<!-- # 	Start TR-069 at Random Time. Yes or No -->
		<item name="tr069.randomStart.enable">No</item>

		<!-- ############################################################################## -->
		<!-- ##  Maintenance/Security Settings/Security   ## -->
		<!-- ############################################################################## -->
		<!-- Configuration via Keypad Menu -->
		<!-- Unrestricted, BasicSettingsOnly, Constraint Mode, LockedMode -->
		<item name="security.configurationViaKeypadMenu">Unrestricted</item>

		<!-- Factory Reset Security Level -->
		<!-- Default, AlwaysRequirePassword, NoPasswordRequired -->
		<item name="security.factoryResetSecurityLevel">Default</item>

		<!-- # Validate Server Certificates. Yes or No -->
		<item name="security.validate.serverCertificate">No</item>

		<!-- SIP TLS Certificate -->
		<item name="security.certificate"/>

		<!-- SIP TLS Private Key  -->
		<item name="security.key"/>

		<!-- SIP TLS Private Key Password -->
		<item name="security.password"/>

		<!-- Web Access Method -->
		<!-- HTTP, HTTPS, Both, Disabled -->
		<item name="security.webAccessMode">HTTPS</item>

		<!-- # Enable User Web Access.  Yes or No -->
		<item name="security.webAccess.user.enable">Yes</item>

		<!-- # HTTP Web Port. Default is 80 -->
		<item name="network.web.port.http">80</item>

		<!-- # HTTPS Web Port. Default is 443 -->
		<item name="network.web.port.https">443</item>

		<!-- Disable SSH -->
		<!-- Invert_Yes_No, Yes - No, No - Yes -->
		<item name="security.ssh">Yes</item>

		<!-- # SSH Port. Default is 22 -->
		<!-- # Number: 22 - 65535 -->
		<item name="security.ssh.port">22</item>

		<!-- # Web/Keypad/Restrict mode Lockout Duration (0-60 minutes). Default is 5 -->
		<!-- # Number: 0-60 -->
		<item name="security.webKeypadRestrictModeLockoutDuration">5</item>

		<!-- # Web Session Timeout(in minutes) -->
		<!-- # Number: 2 - 60. Default is 10 -->
		<item name="security.webAccess.session.timeout">10</item>

		<!-- # Web Access Attempt Limit -->
		<!-- # Number: 1 - 10. Default is 5 -->
		<item name="security.webAccess.attemptLimit">5</item>

		<!-- Minimum TLS Version -->
		<!-- UNLIMITED, TLS_1_0, TLS_1_1, TLS_1_2 -->
		<item name="security.minimum.TLS.version">TLS_1_1</item>

		<!-- Maximum TLS Version -->
		<!-- UNLIMITED, TLS_1_0, TLS_1_1, TLS_1_2 -->
		<item name="security.maximum.TLS.version">UNLIMITED</item>

		<!-- Enable/Disable Weak Ciphers -->
		<!-- 0 - Enable Weak TLS Ciphers Suites, 1 - Disable Symmetric Encryption RC4/DES/3DES, 2 - Disable Symmetric Encryption SEED, 3 - Disable All Weak Symmetric Encryption, 4 - Disable Symmetric Authentication MD5, 5 - Disable All Weak TLS Cipher Suites -->
		<item name="security.maximum.TLS.version">0</item>


		<!-- ############################################################################## -->
		<!-- ##  Maintenance/Security Settings/Trusted CA Certificates   ## -->
		<!-- ############################################################################## -->
		<!-- # Load CA Certificates. Default Certificates, Custom Certificates, All Certificates-->
		<item name="trustedCACertificates.load">Default Certificates</item>

		<!-- ############################################################################## -->
		<!-- ##  Maintenance/Security Settings/Keypad Lock  ## -->
		<!-- ############################################################################## -->
		<!-- # Enable Keypad Locking. Yes or No -->
		<item name="keys.lock.enable">No</item>

		<!-- # Keypad Lock Type -->
		<!-- # All Keys - 0, Functional Keys - 1 -->
		<item name="keys.lock.type">0</item>

		<!-- # Password to Lock/Unlock -->
		<!-- # String -->
		<item name="keys.lock.password"/>

		<!-- # Keypad Lock Timer. -->
		<!-- # Number -->
		<item name="keys.lock.timer">0</item>

		<!-- # Emergency -->
		<!-- # String -->
		<item name="keys.lock.emergency">112,911,110</item>

		<!-- ############################################################################## -->
		<!-- ##  Maintenance/Packet Capture       ## -->
		<!-- ############################################################################## -->

		<!-- # Capture Location. InternalStorage, USB -->
		<item name="packetCapture.captureLocation">InternalStorage</item>

		<!-- # With RTP Packets. Yes or No -->
		<item name="maintain.packetCapture.includeRtp">No</item>

		<!-- # With Secret Key Information. Yes or No -->
		<item name="maintain.packetCapture.withSecretKeyInformation">No</item>

		<!-- # USB Filename -->
		<!-- # String -->
		<item name="packetCapture.usbFilename">0</item>

		<!-- ############################################################################## -->
		<!-- ##  Phonebook/Phonebook Management -->
		<!-- ############################################################################## -->
		<!-- Enable Phonebook XML Download -->
		<!-- Disabled, EnabledUseHTTP, EnabledUseTFTP, EnabledUseHTTPS -->
		<item name="phonebook.download.mode">EnabledUseHTTPS</item>

		<!-- HTTP/HTTPS User Name  -->
		<item name="phonebook.download.username">{$grandstream_phonebook_username}</item>

		<!-- HTTP/HTTPS Password  -->
		<item name="phonebook.download.password">{$grandstream_phonebook_password}</item>

		<!-- Phonebook XML Server Path -->
		<item name="phonebook.download.server">{$grandstream_phonebook_server}</item>

		<!-- Phonebook Download Interval  -->
		<!-- 0, 120, 240, 360, 480, 720 -->
		<item name="phonebook.download.interval">{$grandstream_phonebook_download_interval}</item>

		<!-- # Remove Manually-edited entries on Download. Yes or No -->
		<item name="phonebook.download.removeEditedEntries">Yes</item>

		<!-- # Import Group Method. Replace, Append. -->
		<item name="phonebook.import.group.method">Replace</item>

		<!-- Sort Phonebook by -->
		<!-- LastName, FirstName -->
		<item name="phonebook.sortBy">LastName</item>

		<!-- Phonebook Key Function -->
		<!-- Default, LDAPSearch, LocalPhonebook, LocalGroup, BroadsoftPhonebook, Blacklist, Whitelist -->
		<item name="phonebook.keyFunction">Default</item>

		<!-- Default search mode -->
		<!-- QuickMatch, ExactMatch -->
		<item name="phonebook.defaultSearchMode">QuickMatch</item>

		<!-- ############################################################################## -->
		<!-- ##  Directory/LDAP -->
		<!-- ############################################################################## -->
		<!-- # LDAP protocol.  LDAP, LDAPS -->
		<!-- Connection Mode -->
		<!-- LDAP, LDAPS -->
		<item name="ldap.protocol">LDAP</item>

		<!-- Server Address -->
		<item name="ldap.server"/>

		<!-- # LDAP Server Port. Default is 389. -->
		<!-- # Number: 1 - 65535 -->
		<item name="ldap.port">389</item>

		<!-- Base DN -->
		<!-- # Example 1: dc=grandstream,dc=com -->
		<!-- # Example 2: ou=Boston, dc=grandstream,dc=com -->
		<item name="ldap.base"/>

		<!-- User Name -->
		<item name="ldap.username"/>

		<!-- Password -->
		<item name="ldap.password"/>

		<!-- LDAP Number Filter -->
		<item name="ldap.ldapNumberFilter"/>

		<!-- LDAP Name Filter -->
		<item name="ldap.ldapNameFilter"/>

		<!-- # LDAP Version. Protocol version for the phone when send the bind requests -->
		<!-- # version2, version3. Default is version3 -->
		<item name="ldap.version">version3</item>

		<!-- # LDAP Name Attributes. This setting specifies the "name" attributes of each record which are returned in the LDAP search result -->
		<!-- # The setting allows the users to configure multiple space separated name attributes -->
		<!-- # String -->
		<item name="ldap.ldapNameAttributes"/>

		<!-- # LDAP Number Attributes. This setting specifies the "number" attributes of each record which are returned in the LDAP search result -->
		<!-- # The setting allows the users to configure multiple space separated number attributes -->
		<!-- # String -->
		<item name="ldap.ldapNumberAttributes"/>

		<!-- # LDAP Display Name. The entry information to be shown on phone LCD. Grandstream phones will display up to 3 fields -->
		<!-- # String -->
		<item name="ldap.ldapDisplayName"/>

		<!-- Max Hits -->
		<item name="ldap.maxHits">50</item>

		<!-- # Search Timeout (in seconds). Default is 30 -->
		<!-- # The setting specifies how long the server should process the request and client waits for server to return -->
		<!-- # Number: 0 - 180 -->
		<item name="ldap.searchTimeout">30</item>

		<!-- # Sort Results. This setting is used for sorting searching result. -->
		<!-- # Yes or No -->
		<item name="ldap.sortResults">No</item>

		<!-- LDAP Lookup For Incoming Calls -->
		<!-- Yes, No -->
		<item name="ldap.ldapLookup">No</item>

		<!-- LDAP Lookup For Outgoing Calls -->
		<!-- Yes, No -->
		<item name="ldap.outgoingCalls">No</item>

		<!-- # Lookup Display Name -->
		<!-- # String -->
		<item name="ldap.lookupDisplayName"/>

		<!-- # Exact Match Search -->
		<!-- # Yes or No -->
		<item name="ldap.exactSearch.enable">No</item>

		<!-- ############################################################################## -->
		<!-- ##  Settings/General Settings -->
		<!-- ############################################################################## -->
		<!-- # Local RTP Port. Default is 5004 -->
		<!-- # Number: 1024 - 65400. Must be even number -->
		<!-- Number: 5004 - 65535 -->
		<item name="network.rtp.local.port">5004</item>

		<!-- # Local RTP Port Range. Default is 200 -->
		<!-- # Number: 48 - 10000 -->
		<item name="network.rtp.local.portRange">200</item>

		<!-- Use Random Port -->
		<!-- Yes, No -->
		<item name="network.rtp.useRandomPort">Yes</item>

		<!-- Keep-Alive Interval (s) -->
		<!-- Number: 10 - 160 -->
		<item name="sip.keepAliveInterval">20</item>

		<!-- # Use NAT IP. This will enable our SIP client to use this IP in the SIP/SDP message. Example 64.3.153.50 -->
		<!-- # String: a-z, A-Z, 0-9, ".", ":" -->
		<item name="sip.userNatIp"/>

		<!-- STUN Server -->
		{if isset($grandstream_stun_server) }
		<item name="network.stunServer">{$grandstream_stun_server}</item>
		{else}
		<item name="network.stunServer"></item>
		{/if}

		<!-- # Delay Registration. Default is 0. -->
		<!-- # Number: 0 - 90 -->
		<item name="sip.delayRegistration">0</item>

		<!-- # Test Password Strength. Default is 0. -->
		<!-- # Yes or No.  -->
		<item name="users.testPasswordStrength.enable">No</item>

		<!-- # Enable Public Mode. No or Yes. -->
		<item name="hotdesking.enable">No</item>

		<!-- # Enable Fix For RTP Timestamp Jump. Yes or No -->
		<item name="hotdesking.rtp.fixTimestampJump.enable">No</item>

		<!-- # Public Mode Username Prefix -->
		<!-- # String -->
		<item name="hotdesking.username.prefix"/>

		<!-- # Public Mode Username Suffix -->
		<!-- # String -->
		<item name="hotdesking.username.suffix"/>

		<!-- ############################################################################## -->
		<!-- ##  Settings/Broadsoft -->
		<!-- ############################################################################## -->
		<!-- ################################################################### -->
		<!-- # Broadsoft XSI -->
		<!-- ################################################################### -->
		<!-- # XSI -->
		<!-- # Server address -->
		<!-- # String -->
		<item name="broadsoftXsi.server"/>

		<!-- # Port -->
		<!-- # Number -->
		<item name="broadsoftXsi.port"/>

		<!-- # XSI Actions Path -->
		<!-- # String -->
		<item name="broadsoftXsi.actionsPath"/>

		<!-- # BroadSoft Directory Update Interval (m). Default is 4320  -->
		<!-- # Number: 5 - 4320 -->
		<item name="broadsoftXsi.contactDownloadInterval">4320</item>

		<!-- # Broadsoft Contacts Download Limit. Default is 100. -->
		<!-- # Number: 0-2000 -->
		<item name="broadsoftXsi.contactDownloadLimitation">100</item>

		<!-- # Broadsoft Contacts Search Limit. Default is 100. -->
		<!-- # Number: 0-2000 -->
		<item name="broadsoftXsi.contactSearchLimitation">100</item>

		<!-- # XSI Authentication Type. LoginCredentials, SIPCredentials, Account1, Account2, Account3,  Account4, Account5, Account6.  -->
		<item name="broadsoftXsi.authenticationType"/>

		<!-- # Login Credentials -->
		<!-- # Login Username -->
		<item name="broadsoftXsi.credential.username"/>

		<!-- # Login Password -->
		<!-- # String -->
		<item name="broadsoftXsi.credential.password"/>

		<!-- # SIP Credentials -->
		<!-- # SIP UserName  -->
		<item name="broadsoftXsi.sip.username"/>

		<!-- # SIP User ID -->
		<!-- # String -->
		<item name="broadsoftXsi.sip.userId"/>

		<!-- # SIP Password  -->
		<!-- # String -->
		<item name="broadsoftXsi.sip.password"/>

		<!-- # Sort Phonebook by. LastName, FirstName. -->
		<item name="broadsoftXsi.sortPhonebookBy"/>

		<!-- ###################################################################################### -->
		<!-- # Broadsoft XSI    Network Directories -->
		<!-- ###################################################################################### -->
		<!-- ### Group Directory ### -->
		<!-- # Disabled/Enabled. Yes or No -->
		<item name="broadsoftXsi.directory.groupDirectory"/>

		<!-- # Name.  -->
		<!-- # String -->
		<item name="broadsoftXsi.directory.groupDirectoryName"/>

		<!-- ### Enterprise Directory ### Yes or No-->
		<item name="broadsoftXsi.directory.enterpriseDirectory"/>

		<!-- # Name.  -->
		<!-- # String -->
		<item name="broadsoftXsi.directory.enterpriseDirectoryName"/>

		<!-- ### Group Common ### Yes or No -->
		<item name="broadsoftXsi.directory.groupCommon"/>

		<!-- # Name.  -->
		<!-- # String -->
		<item name="broadsoftXsi.directory.groupCommonName"/>

		<!-- ### Enterprise Common ### Yes or No -->
		<item name="broadsoftXsi.directory.enterpriseCommon"/>

		<!-- # Name.  -->
		<!-- # String -->
		<item name="broadsoftXsi.directory.enterpriseCommonName"/>

		<!-- ### Personal Directory ### Yes or No -->
		<item name="broadsoftXsi.directory.personalDirectory"/>

		<!-- # Name.  -->
		<!-- # String -->
		<item name="broadsoftXsi.directory.personalDirectoryName"/>

		<!-- ### Missed Call Log ### Yes or No -->
		<item name="broadsoftXsi.directory.missedCallLog"/>

		<!-- # Name.  -->
		<!-- # String -->
		<item name="broadsoftXsi.directory.missedCallLogName"/>

		<!-- ### Placed Call Log ###  Yes or No -->
		<item name="broadsoftXsi.directory.placedCallLog"/>

		<!-- # Name.  -->
		<!-- # String -->
		<item name="broadsoftXsi.directory.placedCallLogName"/>

		<!-- ### Received Call Log ###  Yes or No -->
		<item name="broadsoftXsi.directory.receivedCallLog"/>

		<!-- # Name.  -->
		<!-- # String -->
		<item name="broadsoftXsi.directory.receivedCallLogName"/>

		<!-- ############################################################################################### -->
		<!-- ## Broadsoft Instant Message and Presence -->
		<!-- ############################################################################################### -->
		<!-- # Login Credentials  -->
		<!-- # Server. -->
		<!-- # String -->
		<item name="broadsoftIMP.server"/>

		<!-- # Port.  -->
		<!-- # Number. Default is 5222 -->
		<item name="broadsoftIMP.port">5222</item>

		<!-- # Username.  -->
		<!-- # String -->
		<item name="broadsoftIMP.username"/>

		<!-- # Password.  -->
		<!-- # String -->
		<item name="broadsoftIMP.password"/>

		<!-- # IM&P Settings  -->
		<!-- # Broadsoft IM&P. Yes or No -->
		<item name="broadsoftIMP.enable"/>

		<!-- # Associated Broadsoft Account. -->
		<!-- # Account1 - Account6 -->
		<item name="broadsoftIMP.associatedAccount"/>

		<!-- # Auto Login -->
		<!-- # Yes or No -->
		<item name="broadsoftIMP.autoLogin"/>

		<!-- # Display Non XMPP Contacts. -->
		<!-- # Yes or No -->
		<item name="broadsoftIMP.displayNonXMPPContacts"/>

		<!-- ############################################################################## -->
		<!-- ##  Settings/External Service -->
		<!-- ############################################################################## -->
		<!-- ##  Grandstream Door System -->
		<!-- ############################################################### -->
		<!-- # Order 1 -->
		<!-- ############################################################### -->
		<!-- Value-added Service - Value-added Service -->
		<!-- Service Type -->
		<!-- None, GDS. -->
		<item name="externalService.1.type">None</item>

		<!-- # Account -->
		<!-- # Account1 - Account6  -->
		<item name="externalService.1.account"/>

		<!-- Display Name -->
		<item name="externalService.1.systemId"/>

		<!-- System Number -->
		<item name="externalService.1.systemNumber"/>

		<!-- Access Password / DTMF Content -->
		<item name="externalService.1.password"/>

		<!-- ############################################################### -->
		<!-- # Order 2 -->
		<!-- ############################################################### -->
		<!-- Value-added Service - Value-added Service -->
		<!-- Service Type -->
		<!-- None, GDS. -->
		<item name="externalService.2.type">None</item>

		<!-- # Account -->
		<!-- # Account1 - Account6  -->
		<item name="externalService.2.account"/>

		<!-- Display Name -->
		<item name="externalService.2.systemId"/>

		<!-- System Number -->
		<item name="externalService.2.systemNumber"/>

		<!-- Access Password / DTMF Content -->
		<item name="externalService.2.password"/>

		<!-- ############################################################### -->
		<!-- # Order 3 -->
		<!-- ############################################################### -->
		<!-- Value-added Service - Value-added Service -->
		<!-- Service Type -->
		<!-- None, GDS. -->
		<item name="externalService.3.type">None</item>

		<!-- # Account -->
		<!-- # Account1 - Account6  -->
		<item name="externalService.3.account"/>

		<!-- Display Name -->
		<item name="externalService.3.systemId"/>

		<!-- System Number -->
		<item name="externalService.3.systemNumber"/>

		<!-- Access Password / DTMF Content -->
		<item name="externalService.3.password"/>

		<!-- ############################################################### -->
		<!-- # Order 4 -->
		<!-- ############################################################### -->
		<!-- Value-added Service - Value-added Service -->
		<!-- Service Type -->
		<!-- None, GDS. -->
		<item name="externalService.4.type">None</item>

		<!-- # Account -->
		<!-- # Account1 - Account6  -->
		<item name="externalService.4.account"/>

		<!-- Display Name -->
		<item name="externalService.4.systemId"/>

		<!-- System Number -->
		<item name="externalService.4.systemNumber"/>

		<!-- Access Password / DTMF Content -->
		<item name="externalService.4.password"/>

		<!-- ############################################################### -->
		<!-- # Order 5 -->
		<!-- ############################################################### -->
		<!-- Value-added Service - Value-added Service -->
		<!-- Service Type -->
		<!-- None, GDS. -->
		<item name="externalService.5.type">None</item>

		<!-- # Account -->
		<!-- # Account1 - Account6  -->
		<item name="externalService.5.account"/>

		<!-- Display Name -->
		<item name="externalService.5.systemId"/>

		<!-- System Number -->
		<item name="externalService.5.systemNumber"/>

		<!-- Access Password / DTMF Content -->
		<item name="externalService.5.password"/>

		<!-- ############################################################### -->
		<!-- # Order 6 -->
		<!-- ############################################################### -->
		<!-- Value-added Service - Value-added Service -->
		<!-- Service Type -->
		<!-- None, GDS. -->
		<item name="externalService.6.type">None</item>

		<!-- # Account -->
		<!-- # Account1 - Account6  -->
		<item name="externalService.6.account"/>

		<!-- Display Name -->
		<item name="externalService.6.systemId"/>

		<!-- System Number -->
		<item name="externalService.6.systemNumber"/>

		<!-- Access Password / DTMF Content -->
		<item name="externalService.6.password"/>

		<!-- ############################################################### -->
		<!-- # Order 7 -->
		<!-- ############################################################### -->
		<!-- Value-added Service - Value-added Service -->
		<!-- Service Type -->
		<!-- None, GDS. -->
		<item name="externalService.7.type">None</item>

		<!-- # Account -->
		<!-- # Account1 - Account6  -->
		<item name="externalService.7.account"/>

		<!-- Display Name -->
		<item name="externalService.7.systemId"/>

		<!-- System Number -->
		<item name="externalService.7.systemNumber"/>

		<!-- Access Password / DTMF Content -->
		<item name="externalService.7.password"/>

		<!-- ############################################################### -->
		<!-- # Order 8 -->
		<!-- ############################################################### -->
		<!-- Value-added Service - Value-added Service -->
		<!-- Service Type -->
		<!-- None, GDS. -->
		<item name="externalService.8.type">None</item>

		<!-- # Account -->
		<!-- # Account1 - Account6  -->
		<item name="externalService.8.account"/>

		<!-- Display Name -->
		<item name="externalService.8.systemId"/>

		<!-- System Number -->
		<item name="externalService.8.systemNumber"/>

		<!-- Access Password / DTMF Content -->
		<item name="externalService.8.password"/>

		<!-- ############################################################### -->
		<!-- # Order 9 -->
		<!-- ############################################################### -->
		<!-- Value-added Service - Value-added Service -->
		<!-- Service Type -->
		<!-- None, GDS. -->
		<item name="externalService.9.type">None</item>

		<!-- # Account -->
		<!-- # Account1 - Account6  -->
		<item name="externalService.9.account"/>

		<!-- Display Name -->
		<item name="externalService.9.systemId"/>

		<!-- System Number -->
		<item name="externalService.9.systemNumber"/>

		<!-- Access Password / DTMF Content -->
		<item name="externalService.9.password"/>

		<!-- ############################################################### -->
		<!-- # Order 10 -->
		<!-- ############################################################### -->
		<!-- Value-added Service - Value-added Service -->
		<!-- Service Type -->
		<!-- None, GDS. -->
		<item name="externalService.10.type">None</item>

		<!-- # Account -->
		<!-- # Account1 - Account6  -->
		<item name="externalService.10.account"/>

		<!-- Display Name -->
		<item name="externalService.10.systemId"/>

		<!-- System Number -->
		<item name="externalService.10.systemNumber"/>

		<!-- Access Password / DTMF Content -->
		<item name="externalService.10.password"/>

		<!-- ############################################################################## -->
		<!-- ##  Settings/Call Features -->
		<!-- ############################################################################## -->
		<!-- # Preferred Default Account.  -->
		<!-- # Account1 - Account6  -->
		<item name="call.dial.preferredAccount">Account1</item>

		<!-- # Predictive Dialing Feature. Yes or No -->
		<item name="call.dial.predictive.enable">Yes</item>

		<!-- # Predictive Dialing Source -->
		<!-- # String: CallHistory,LocalPhonebook,RemotePhonebook,FeatureCode -->
		<item name="call.dial.predictive.source">CallHistory,LocalPhonebook,RemotePhonebook,FeatureCode</item>

		<!-- # Onhook Dial Barging. Yes or No -->
		<item name="call.dial.offhook.allowBarging">Yes</item>

		<!-- # Off-hook Auto Dial -->
		<!-- # String -->
		<item name="call.dial.offhook.autoDial.number"/>

		<!-- # Off-hook Auto Dial Delay -->
		<!-- # Number: 0 - 10 -->
		<item name="call.dial.offhook.autoDial.delay">0</item>

		<!-- # Off-hook Timeout (in seconds). Default is 30 -->
		<item name="call.dial.offhook.timeout">30</item>

		<!-- # Enable Live DialPad. Yes or No -->
		<item name="call.dial.liveDialpad.enable">No</item>

		<!-- # Live DialPad Expire Time. Default is 5 -->
		<!-- # Number: 2 - 15.  -->
		<item name="call.dial.liveDialpad.expire">5</item>

		<!-- # Enable Auto Redial. Yes or No -->
		<item name="call.dial.autoRedial.enable">No</item>

		<!-- # Automatic Redial Times. Default is 10 -->
		<item name="call.dial.autoRedial.retry">10</item>

		<!-- # Automatic Redial Interval. Default is 20 -->
		<item name="call.dial.autoRedial.interval">20</item>

		<!-- # Bypass Dial Plan Through Call History and Directories. Yes or No -->
		<item name="call.dialPlan.allowBypassFromDirectories"/>

		<!-- # Disable Call Waiting. -->
		<!-- Invert_Yes_No, Yes - No, No - Yes -->
		<item name="call.callWaiting.enable">{$grandstream_call_waiting}</item>

		<!-- # Disable Call Waiting Tone -->
		<!-- Invert_Yes_No, Yes - No, No - Yes -->
		<item name="call.callWaiting.enableTone">Yes</item>

		<!-- # Ring for Call Waiting. Yes or No -->
		<item name="call.callWaiting.alwaysRing"/>

		<!-- # Disable Busy Tone on Remote Disconnect. -->
		<!-- Invert_Yes_No, Yes - No, No - Yes -->
		<item name="call.disconnect.remote.enableTone">Yes</item>

		<!-- # Disable Direct IP Call. -->
		<!-- # Invert_Yes_No, Yes - No, No - Yes -->
		<item name="call.ipcall.enable">Yes</item>

		<!-- # Use Quick IP call mode. Yes or No-->
		<item name="call.ipcall.allowQuickDialing">No</item>

		<!-- # Disable Conference. -->
		<!-- # Invert_Yes_No, Yes - No, No - Yes -->
		<item name="call.conference.enable">Yes</item>

		<!-- Disable In-call DTMF Display -->
		<!-- Invert_Yes_No, Yes - No, No - Yes -->
		<item name="call.display.dtmfInCall">Yes</item>

		<!-- # Enable Sending DTMF via specific MPKs. Yes or No -->
		<item name="pks.behavior.incall.sendDtmfInstead">No</item>

		<!-- # Disable Active MPK Page. Yes or No. GRP2614/15/16/24/34 only -->
		<item name="callFeatures.activeMPKPage">No</item>

		<!-- # Enable Active VPK Page. Yes or No -->
		<item name="callFeatures.displayVpkPage.enable">No</item>

		<!-- # Enable DND Feature. Yes or No -->
		<item name="call.dnd.enable">Yes</item>

		<!-- # 	Preserve DND Status. Yes or No -->
		<item name="preserve.DND.status.after.reboot">No</item>

		<!-- # Mute Key Functions While Idle. DND, IdleMute, Disabled. -->
		<item name="keys.custom.mute.idle"/>

		<!-- # Disable Mute Key In Call. Yes or No -->
		<item name="call.disable.mute.key">No</item>

		<!-- # DND Override. -->
		<!-- Off,  AllowAll, AllowOnlyContacts, AllowOnlyFavourites. -->
		<item name="call.dnd.allowCallList"/>

		<!-- # Disable Transfer. -->
		<!-- # Invert_Yes_No, Yes - No, No - Yes -->
		<item name="call.transfer.enable">Yes</item>

		<!-- # In-call Dial Number on Pressing Transfer Key -->
		<!-- # String -->
		<item name="call.transfer.initDialNumber"/>

		<!-- # Attended Transfer Mode. Static or Dynamic. -->
		<item name="call.transfer.attended.mode">Dynamic</item>

		<!-- # Transfer Mode via VPK/MPK. -->
		<!-- BlindTransfer, AttendedTransfer,  NewCall -->
		{if isset($grandstream_transfer_mode_via_vpk)}
		<item name="call.transfer.modeViaVpk">{$grandstream_transfer_mode_via_vpk}</item>
		{else}
		<item name="call.transfer.modeViaVpk">BlindTransfer</item>
		{/if}

		<!-- # Show On Hold Duration. Yes or No -->
		<item name="call.hold.showHoldDuration.enable">Yes</item>

		<!-- # Filter Characters -->
		<item name="call.filter.character">[()- ]+</item>

		<!-- # Do not Escape '#' as 23% in SIP URL. -->
		<!-- # Invert_Yes_No, Yes - No, No - Yes -->
		<item name="sip.escapeUrl">Yes</item>

		<!-- # Click-To-Dial Feature. Yes or No -->
		<item name="call.dial.clickToDial.enable">No</item>

		<!-- # Default call log type. Default, BroadsoftCallLog, LocalCallLog. -->
		<item name="features.history.defaultSource">Default</item>

		<!-- # Return Code When Refusing Incoming Call.  -->
		<!-- # Busy, TemporarilyUnavailable, NotFound, Decline. -->
		<item name="sip.returnCode.callReject">Busy</item>

		<!-- # Return Code Upon DND. Default is 0 -->
		<!-- # Busy, TemporarilyUnavailable, NotFound, Decline. -->
		<item name="sip.returnCode.dnd">TemporarilyUnavailable</item>

		<!-- # Enable BLF Pickup Screen.  Yes or No -->
		<item name="sip.blf.pickupScreen.enable">No</item>

		<!-- # Enable BLF Pickup Sound. Yes or No -->
		<item name="sip.blf.pickupSound.enable">No</item>

		<!-- # Enable BLF Pickup Sound List. ExceptList, OnlyList.  -->
		<item name="sip.blf.pickupSound.mode"/>

		<!-- # BLF Pickup Sound Except List.  -->
		<!-- # String -->
		<item name="sip.blf.pickupSound.list.except"/>

		<!-- # Local Call Recording Feature. Yes or No -->
		<item name="call.recording.local.enable">No</item>

		<!-- # Saved Call Recording Location. InternalStorage or USB -->
		<item name="callFeatures.savedLocalCallRecordingLocation">InternalStorage</item>

		<!-- # Enable IM Popup. Yes or No -->
		<item name="features.im.popup.enable">Yes</item>

		<!-- # Instant Message Popup Timeout -->
		<!-- # Number: 10 - 900 -->
		<item name="features.im.popupTimeout">10</item>

		<!-- # Play Tone On Receiving IM. Yes or No -->
		<item name="features.im.playToneOnNew"/>

		<!-- # Allow Incoming Call Before Ringing.  Yes(1) or No(0) -->
		<item name="callFeatures.allowIncomingCallBeforeRinging">0</item>

		<!-- # User-Agent Prefix -->
		<!-- # String -->
		<item name="call.dialPlan.allowBypassFromDirectories"/>

		<!-- # Auto Provision List Starting Point. ExtensionBoards, MPK, VPK -->
		<!-- <item name="sip.blf.eventlist.provisionStartingFrom">VPK</item> -->

		<!-- # Hide BLF Remote Status. Yes or No -->
		<item name="sip.blf.hideRemoteStatus"/>

		<!-- # Show SIP Error Response. Yes or No -->
		<item name="sip.showError">Yes</item>

		<!-- # Enable Missed Call Notification. Yes or No -->
		{if isset($grandstream_missed_call_notification)}
		<item name="features.history.missedCallNotification">{$grandstream_missed_call_notification}</item>
		{else}
		<item name="features.history.missedCallNotification">No</item>
		{/if}

		<!-- # Enable Call Completion Service. Yes or No -->
		<item name="call.dial.callComplete.enable"/>

		<!-- # Enable Incoming Call Popup. Yes or No -->
		<item name="callFeatures.incomingPopup.enable">Yes</item>

		<!-- # Enable Enhanced Acoustic Echo Canceller. Yes or No -->
		<item name="callFeatures.eac.enable">Yes</item>

		<!-- # Enable Diversion Information Display. Yes or No -->
		<item name="sip.diversionInformationDisplay">Yes</item>

	    <!-- # Disable Hook Switch. Yes, No, ForAnsweringCall -->
		<item name="callFeatures.hookSwitch">No</item>

	    <!-- # Disable Speaker Key Yes, No, ForOngoingCall -->
		<item name="callFeatures.speakerKey">No</item>

		<!-- ############################################################################## -->
		<!-- ##  Settings/Call History -->
		<!-- ############################################################################## -->

		<!-- ############################################################################## -->
		<!-- ##  Settings/Multicast Paging   -->
		<!-- ############################################################################## -->
		<!-- # Allowed in DND Mode. Yes or No -->
		<item name="multicast.allowedInDnd"/>

		<!-- Paging Barge -->
		<!-- Disable - 0, priority1 - 1, priority2 - 2, priority3 - 3, priority4 - 4, priority5 - 5, priority6 - 6, priority7 - 7, priority8 - 8, priority9 - 9, priority10 - 10 -->
		<item name="multicast.paginBarge"/>

		<!-- Paging Priority Active -->
		<!-- Yes, No -->
		<item name="multicast.pagingPriorityActive">Yes</item>

		<!-- Multicast Paging Codec -->
		<!-- PCMU, PCMA, G.726-32, G.722, G.729AOrB, G.723.1, iLBC -->
		<item name="multicast.multicastPagingCodec">G.722</item>

		<!-- # Multicase Channel Number -->
		<!-- # Number: 0 - 50 (0 for normal RTP packets, 1-50 for Polycom multicast format packets). Default is 0 -->
		<item name="multicast.channel">0</item>

		<!-- # Multicast Sender ID -->
		<!-- # Strings -->
		<item name="multicast.senderId"/>

		<!-- ### Multicast Listening ###  -->
		<!-- # Priority 1 -->
		<!-- # Listening Address -->
		<!-- # String -->
		<item name="multicast.listening.1.address"/>
		<!-- # Label -->
		<!-- # String -->
		<item name="multicast.listening.1.label"/>

		<!-- # Priority 2 -->
		<!-- # Listening Address -->
		<!-- # String -->
		<item name="multicast.listening.2.address"/>
		<!-- # Label -->
		<!-- # String -->
		<item name="multicast.listening.2.label"/>

		<!-- # Priority 3 -->
		<!-- # Listening Address -->
		<!-- # String -->
		<item name="multicast.listening.3.address"/>
		<!-- # Label -->
		<!-- # String -->
		<item name="multicast.listening.3.label"/>

		<!-- # Priority 4 -->
		<!-- # Listening Address -->
		<!-- # String -->
		<item name="multicast.listening.4.address"/>
		<!-- # Label -->
		<!-- # String -->
		<item name="multicast.listening.4.label"/>

		<!-- # Priority 5 -->
		<!-- # Listening Address -->
		<!-- # String -->
		<item name="multicast.listening.5.address"/>
		<!-- # Label -->
		<!-- # String -->
		<item name="multicast.listening.5.label"/>

		<!-- # Priority 6 -->
		<!-- # Listening Address -->
		<!-- # String -->
		<item name="multicast.listening.6.address"/>
		<!-- # Label -->
		<!-- # String -->
		<item name="multicast.listening.6.label"/>

		<!-- # Priority 7 -->
		<!-- # Listening Address -->
		<!-- # String -->
		<item name="multicast.listening.7.address"/>
		<!-- # Label -->
		<!-- # String -->
		<item name="multicast.listening.7.label"/>

		<!-- # Priority 8 -->
		<!-- # Listening Address -->
		<!-- # String -->
		<item name="multicast.listening.8.address"/>
		<!-- # Label -->
		<!-- # String -->
		<item name="multicast.listening.8.label"/>

		<!-- # Priority 9 -->
		<!-- # Listening Address -->
		<!-- # String -->
		<item name="multicast.listening.9.address"/>
		<!-- # Label -->
		<!-- # String -->
		<item name="multicast.listening.9.label"/>

		<!-- # Priority 10 -->
		<!-- # Listening Address -->
		<!-- # String -->
		<item name="multicast.listening.10.address"/>
		<!-- # Label -->
		<!-- # String -->
		<item name="multicast.listening.10.label"/>

		<!-- ############################################################################## -->
		<!-- ##  Settings/Outbound Notification -->
		<!-- ############################################################################## -->
		<!-- ###################################################################################### -->
		<!-- # Action URL -->
		<!-- ###################################################################################### -->
		<!-- # Setup Completed.  -->
		<!-- # String -->
		<item name="ons.actionUrl.setupCompleted"/>

		<!-- # Registered. -->
		<!-- # String -->
		<item name="ons.actionUrl.registered"/>

		<!-- # Unregistered. -->
		<!-- # String -->
		<item name="ons.actionUrl.unregistered"/>

		<!-- # Off Hook. -->
		<!-- # String -->
		<item name="ons.actionUrl.offHook"/>

		<!-- # On Hook. -->
		<!-- # String -->
		<item name="ons.actionUrl.onHook"/>

		<!-- # Incoming Call. -->
		<!-- # String -->
		<item name="ons.actionUrl.incomingCall"/>

		<!-- # Outgoing Call -->
		<!-- # String -->
		<item name="ons.actionUrl.outgoingCall"/>

		<!-- # Missed Call -->
		<!-- # String -->
		<item name="ons.actionUrl.missedCall"/>

		<!-- # Answered Call -->
		<!-- # String  -->
		<item name="ons.actionUrl.establishedCall"/>

		<!-- # Terminated Call -->
		<!-- # String -->
		<item name="ons.actionUrl.terminatedCall"/>

		<!-- # Open DND -->
		<!-- # String -->
		<item name="ons.actionUrl.openDnd"/>

		<!-- # Close DND -->
		<!-- # String -->
		<item name="ons.actionUrl.closedDnd"/>

		<!-- # Enable Call Forward -->
		<!-- # String -->
		<item name="ons.actionUrl.openForward"/>

		<!-- # Disable Call Forward -->
		<!-- # String -->
		<item name="ons.actionUrl.closedForward"/>

		<!-- # Enable Call Forward Busy-->
		<!-- # String -->
		<item name="ons.actionUrl.enableBusyForward"/>

		<!-- # Disable Call Forward Busy-->
		<!-- # String -->
		<item name="ons.actionUrl.disableBusyForward"/>

		<!-- # Blind Transfer -->
		<!-- # String -->
		<item name="ons.actionUrl.blindTransfer"/>

		<!-- # Attended Transfer -->
		<!-- # String -->
		<item name="ons.actionUrl.attendedTransfer"/>

		<!-- # Hold Call -->
		<!-- # String -->
		<item name="ons.actionUrl.holdCall"/>

		<!-- # UnHold Call -->
		<!-- # String -->
		<item name="ons.actionUrl.unholdCall"/>

		<!-- ###################################################################################### -->
		<!-- # Destination -->
		<!-- ###################################################################################### -->

		<!-- ###################################################################################### -->
		<!-- # Notification -->
		<!-- ###################################################################################### -->

		<!-- ############################################################################## -->
		<!-- ##  Settings/Preferences -->
		<!-- ############################################################################## -->
		<!-- ############################################################################## -->
		<!-- ##  Settings/Preferences / Audio Control -->
		<!-- ############################################################################## -->
		<!-- # HEADSET Key Mode. DefaultMode, ToggleHeadsetOrSpeaker. -->
		{if isset($grandstream_headset_key_mode)}
		<item name="audio.headset.keyMode">{$grandstream_headset_key_mode}</item>
		{else}
		<item name="audio.headset.keyMode">DefaultMode</item>
		{/if}

		<!-- # Headset Type. Normal, PlantronicsEHS. -->
		{if isset($grandstream_headset_ringtone)}
		<item name="audio.headset.ehs.ringtone">{$grandstream_headset_ringtone}</item>
		{else}
		<item name="audio.headset.ehs.ringtone">Normal</item>
		{/if}

		<!-- # EHS Headset Ringtone. Normal, PlantronicsEHS. -->
		{if isset($grandstream_headset_type)}
		<item name="audio.headset.type">{$grandstream_headset_type}</item>
		{else}
		<item name="audio.headset.type">Normal</item>
		{/if}

		<!-- # Always Ring Speaker. -->
		<!-- No - 0, Yes,both - 1, Yes,speaker only - 2 -->
		<item name="audio.alwaysRingSpeaker">0</item>

		<!-- # Group Listen with Speaker. -->
		<!-- No - 0, Yes - 1 -->
		<item name="audio.groupListenwithSpeaker">0</item>

		<!-- # Headset TX gain(dB). 1 - -6, 0 - 0, 2 - +6. Default is 0 -->
		<item name="audio.headset.txGain">0</item>

		<!-- # Headset RX gain(dB). 1 - -6, 0 - 0, 2 - +6. Default is 0 -->
		{if isset($grandstream_headset_rx_gain)}
		<item name="audio.headset.rxGain">{$grandstream_headset_rx_gain}</item>
		{else}
		<item name="audio.headset.rxGain">0</item>
		{/if}

		<!-- # Handset TX gain(dB). 1 - -6, 0 - 0, 2 - +6. Default is 0 -->
		{if isset($grandstream_headset_tx_gain)}
		<item name="audio.handset.txGain">{$grandstream_headset_tx_gain}</item>
		{else}
		<item name="audio.handset.txGain">0</item>
		{/if}

		<!-- ############################################################################## -->
		<!-- ##  Settings/Preferences / Date and Time -->
		<!-- ############################################################################## -->
		<!-- # NTP Server -->
		{if isset($ntp_server_primary)}
		<item name="dateTime.ntp.server.1">{$ntp_server_primary}</item>
		{else}
		<item name="dateTime.ntp.server.1">pool.ntp.org</item>
		{/if}

		<!-- # Secondary NTP Server -->
		<!-- # String -->
		{if isset($ntp_server_secondary)}
		<item name="dateTime.ntp.server.2">{$ntp_server_secondary}</item>
		{else}
		<item name="dateTime.ntp.server.2">2.us.pool.ntp.org</item>
		{/if}

		<!-- # NTP Update Interval -->
		<!-- # String -->
		<!-- # Number: 5 - 1440, Default is 1440  -->
		<item name="dateTime.ntp.updateInterval">1440</item>

		<!-- # Allow DHCP Option 42 to override NTP server. Yes or No -->
		<!-- # When set to Yes, it will override the configured NTP server -->
		<item name="dateTime.override.dhcp.allowOption42">No</item>

		<!-- # Time Zone -->

		<!-- # Web GUI Option										Option: TimeZone -->
		<!-- # Automatic											auto -->
		<!-- # GMT-12:00 (International Date Line West)				TAZ+12 -->
		<!-- # GMT-11:00 (Midway Island, Samoa) 					TAB+11 -->
		<!-- # GMT-10:00 (US Hawaiian Time) 						HAW10 -->
		<!-- # GMT-9:00 (US Alaska Time) 							AKST9AKDT -->
		<!-- # GMT-8:00 (US Pacific Time, Los Angeles)				PST8PDT -->
		<!-- # GMT-08:00 (Baja California)							PST8PDT,M3.2.0,M11.1.0 -->
		<!-- # GMT-07:00 (US Mountain Time, Denver) 				MST7MDT -->
		<!-- # GMT-07:00 (Mountain Time (Arizona, no DST)) 			MST7 -->
		<!-- # GMT-07:00 (Chihuahua, La Paz, Mazatlan)				MST7MDT,M4.1.0,M10.5.0   -->
		<!-- # GMT-06:00 (Central Time) 							CST6CDT -->
		<!-- # GMT-06:00 (Central America) 							CST+6 -->
		<!-- # GMT-06:00 (Guadalajara, Mexico City, Monterrey)		CST6CDT,M4.1.0,M10.5.0 -->
		<!-- # GMT-05:00 (Eastern Time)								EST5EDT -->
		<!-- # GMT-05:00 (Eastern Time without daylight saving) 	EST5 -->
		<!-- # GMT-04:30 (Caracas) 									TZf+4:30 -->
		<!-- # GMT-04:00 (Atlantic Time) 							AST4ADT -->
		<!-- # GMT-04:00 (Atlantic Time (New Brunswick)) 			AST4ADT,M3.2.0,M11.1.0 -->
		<!-- # GMT-04:00 (Santiago, Chile)							CLT4CLST,M9.1.6/24:00,M4.1.6/24:00 -->
		<!-- # GMT-03:30 (Newfoundland Time)						NST+3:30NDT+2:30,M3.2.0/02:00:00,M11.1.0/02:00:00 -->
		<!-- # GMT-03:00 (Greenland) 								TZK+3 -->
		<!-- # GMT-03:00 (Brazil, Sao Paulo) 						BRST+3BRDT+2,M11.1.0,M2.3.0 -->
		<!-- # GMT-02:00 (Argentina) 								UTC+3  -->
		<!-- # GMT-02:00 (Mid-Atlantic) 							TZL+2 -->
		<!-- # GMT-01:00 (Azores, Cape Verdi Is.) 					TZM+1 -->
		<!-- # GMT (Azores, Portugal) 								TZM+1TZN+0,M3.4.6/24:00:00,M10.4.0/1:00:00 -->
		<!-- # GMT (Edinburgh, Casablanca, Monrovia) 				TZN+0 -->
		<!-- # GMT (London, Great Britain) 							GMT+0BST-1,M3.5.0/01:00:00,M10.5.0/02:00:00 -->
		<!-- # GMT (Lisbon, Portugal) 								WET-0WEST-1,M3.5.0/01:00:00,M10.5.0/02:00:00 -->
		<!-- # GMT (Dublin, Ireland) 								GMT+0IST-1,M3.5.0/01:00:00,M10.5.0/02:00:00 -->
		<!-- # GMT+01:00 (Paris, Vienna, Warsaw, Roma, Madrid, Prague, Berlin, Budapest, Amsterdam, Belgium)   CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00 -->
		<!-- # GMT+02:00 (Cairo, Egypt) 							TZP-2 -->
		<!-- # GMT+02:00 (Israel) 									EET-2EEST-3,M3.4.5/02:00:00,M10.4.0/02:00:00 -->
		<!-- # GMT+02:00 (Helsinki, Athens, Tallinn, Bucharest) 	EET-2EEST-3,M3.5.0/03:00:00,M10.4.0/04:00:00 -->
		<!-- # GMT+02:00 (Kyiv, Ukraine) 							EET-2EEST,M3.5.0/3,M10.5.0/4  -->
		<!-- # GMT+03:00 (Kuwait, Baghdad, Istanbul, Nairobi) 		TZQ-3 -->
		<!-- # GMT+03:00 (Moscow, Russia) 							MSK-3 -->
		<!-- # GMT+03:00 (Tehran)		 							IRST-3:30IRDT-4:30,M3.3.5/24:00:00,M9.3.0/24:00:00 -->
		<!-- # GMT+04:00 (Abu Dhabi, Baku) 							TZR-4 -->
		<!-- # GMT+05:00 (Islamabad, Ekaterinburg, Karachi, Tashkent)TZS-5 -->
		<!-- # GMT+05:30 (Chennai, New Delhi, Mumbai) 				TZT-5:30 -->
		<!-- # GMT+05:45 (Kathmandu) 								TZU-5:45 -->
		<!-- # GMT+06:00 (Almaty, Astana, Dhaka, Novosibirsk) 		TZV-6 -->
		<!-- # GMT+06:30 (Rangoon) 									TZW-6:30 -->
		<!-- # GMT+07:00 (Bankok, Hanoi, Krasnoyarsk) 				TZX-7 -->
		<!-- # GMT+07:00 (Jakarta) 									WIB-7 -->
		<!-- # GMT+08:00 (Beijing, Taipei, Kuala Lumpur, Irkutsk) 	TZY-8 -->
		<!-- # GMT+08:00 (Singapore) 								SGT-8 -->
		<!-- # GMT+08:00 (Ulaanbaatar, Mongolia) 					ULAT-8 -->
		<!-- # GMT+08:00 (Perth) 									WST-8 -->
		<!-- # GMT+09:00 (Japan, Korea, Yakutsk) 					TZZ-9 -->
		<!-- # GMT+09:30 (Adelaide) 								CST-9:30CDT-10:30,M10.5.0/02:00:00,M3.5.0/03:00:00 -->
		<!-- # GMT+09:30 (Darwin) 									CST-9:30  -->
		<!-- # GMT+10:00 (Guam) 									TZb-10 -->
		<!-- # GMT+10:00 (Hobart) 									EST-10EDT-11,M10.1.0/02:00:00,M4.1.0/03:00:00 -->
		<!-- # GMT+10:00 (Sydney, Melbourne, Canberra) 				EST-10EDT-11,M10.1.0/02:00:00,M4.1.0/03:00:00 -->
		<!-- # GMT+10:00 (Brisbane) 								EST-10 -->
		<!-- # GMT+11:00 (Magadan, Solomon Is., New Caledonia) 		TZc-11 -->
		<!-- # GMT+12:00 (Auckland, Wellington) 					NZST-12NZDT-13,M9.4.0/02:00:00,M4.1.0/03:00:00 -->
		<!-- # GMT+12:00 (Fiji) 									FJT-12FJST-13,M11.2.0/02:00:00,M1.2.0/03:00:00 -->
		<!-- # GMT+13:00 (Nuku'alofa) 								TZe-13 -->
		<!-- # Self-Defined Time Zone								customize -->

		<!-- # String -->
		<!-- # Mandatory -->
		{if isset($grandstream_time_zone)}
		<item name="dateTime.timezone">{$grandstream_time_zone}</item>
		{else}
		<item name="dateTime.timezone">auto</item>
		{/if}

		<!-- # Allow DHCP Option 2 to Override Time Zone Setting. Yes or No -->
		<item name="dateTime.override.dhcp.allowOption2">Yes</item>

		<!-- # Self Defined Time Zone. Max length allowed is 64 characters -->
		<!-- # String -->
		<!-- # Mandatory -->
		<item name="dateTime.timezone.custom">MTZ+6MDT+5,M4.1.0,M11.1.0</item>

		<!-- # Date Display Format -->
		<!-- # 0: yyyy-mm-dd      eg. 2011-10-31 -->
		<!-- # 1: mm-dd-yyyy      eg. 10-31-2011 -->
		<!-- # 2: dd-mm-yyyy      eg. 31-10-2011 -->
		<!-- # 3: dddd, MMMM dd   eg. Monday, October 31 -->
		<!-- # 4: MMMM dd, dddd   eg. October 31, Monday -->
		{if isset($grandstream_format_date)}
		<item name="dateTime.format.date">{$grandstream_format_date}</item>
		{else}
		<item name="dateTime.format.date">yyyy-mm-dd</item>
		{/if}

		<!-- # Time Display Format. 12 Hour, 24 Hour -->
		<!-- 12Hour, 24Hour -->
		{if isset($grandstream_format_time)}
		<item name="dateTime.format.time">{$grandstream_format_time}</item>
		{else}
		<item name="dateTime.format.time">12Hour</item>
		{/if}

		<!-- # Show Clock. Yes or No -->
		{if isset($grandstream_show_clock)}
		<item name="dateTime.showClock">{$grandstream_show_clock}</item>
		{else}
		<item name="dateTime.showClock">Yes</item>
		{/if}

		<!-- # Show Date and Time on Status Bar. Time Only, Date and Time, None -->
		<!-- <item name="dateTime.showOnStatusBar">Time Only</item>-->

		<!-- ############################################################################## -->
		<!-- ##  Settings/Preferences / LCD Display -->
		<!-- ############################################################################## -->
		<!-- # Backlight Brightness. -->
		<!-- # Active. Default is 100. -->
		<!-- # Number: 10 - 100 -->
		<item name="lcd.backlight.brightness.active">100</item>

		<!-- # Idle. Default is 60. -->
		<!-- # Number: 0 - 100 -->
		<item name="lcd.backlight.brightness.idle">60</item>

		<!-- # Active Backlight Timeout. Default is 1 -->
		<!-- # Number: 1 - 90 -->
		<item name="lcd.backlight.activeTimeout">1</item>

		<!-- # Disable Missed Call Backlight. No, Yes, Yes, but flash MWI LED.  -->
		<!-- No - 0, Yes - 1, Yes,but flash MWI LED - 2 -->
		<item name="lcd.backlight.missedCall">1</item>

		<!-- # Wallpaper Settings -->
		<!-- # Wallpaper Source. Default, Download, USB, Uploaded, ColorBackground -->
		{if isset($grandstream_wallpaper_url)}
		<item name="lcd.wallpaper.source">Download</item>
		{else}
		<item name="lcd.wallpaper.source">Default</item>
		{/if}

		<!-- # Wallpaper Server Path -->
		<!-- # String  -->
		{if isset($grandstream_wallpaper_url)}
			<item name="lcd.wallpaper.serverPath">{$grandstream_wallpaper_url}</item>
		{/if}

		<!-- # Color Background. Default is #000000. -->
		<!-- # String -->
		<item name="lcd.wallpaper.color">#000000</item>

		<!-- # Screensaver Settings -->
		<!-- # Screensaver. No, Yes,  OnIfNoVPKIsActive. -->
		{if isset($grandstream_screensaver_enable)}
		<item name="lcd.screensaver.enable">{$grandstream_screensaver_enable}</item>
		{else}
		<item name="lcd.screensaver.enable">OnIfNoVPKIsActive</item>
		{/if}

		<!-- # Screensaver Source.  Default, USB, Download.  -->
		<item name="lcd.screensaver.source">{$grandstream_screensaver_source}</item>

		<!-- # Show Date and Time. Yes or No -->
		<item name="lcd.screensaver.showDateTime">Yes</item>

		<!-- # Screensaver Timeout. Minutes. -->
		<!-- # Number: 3 - 60 -->
		<item name="lcd.screensaver.timeout">3</item>

		<!-- # Screensaver Server Path. -->
		<!-- # String -->
		<item name="lcd.screensaver.serverPath"/>

		<!-- Screensaver XML Download Interval -->
		<!-- # Number: 5 - 720. Default is 0 (disable auto downloading) -->
		<item name="lcd.screensaver.downloadXmlInterval">0</item>

		<!-- ############################################################################## -->
		<!-- ##  Settings/Preferences / LED Control -->
		<!-- ############################################################################## -->
		<!-- # BLF LED Pattern. Default-0,  Analog-1, Directional-2, Reserved(Red)-3, Reserved(Green)-4, Inverse-5.-->
		<item name="sip.blf.lightPattern">0</item>

		<!-- # Disable VM/MSG power light flash. -->
		<!-- Invert_Yes_No, Yes - No, No - Yes -->
		<item name="ledControl.mwi">Yes</item>

		<!-- ############################################################################## -->
		<!-- ##  Settings/Preferences / Ringtone -->
		<!-- ############################################################################## -->

		<!-- # System Ringtone -->
		<!-- # String -->
		<!-- # Mandatory -->
		<item name="audio.tone.systemRing">f1=440,f2=480,c=200/400;</item>

		<!-- # Dial Tone -->
		<!-- # String -->
		<!-- # Mandatory -->
		<item name="audio.tone.dial">f1=350,f2=440;</item>

		<!-- # Second Dial Tone -->
		<!-- # String -->
		<!-- # Mandatory -->
		<item name="audio.tone.secondDial">f1=350,f2=440;</item>

		<!-- # Message Waiting -->
		<!-- # String -->
		<!-- # Mandatory -->
		<item name="audio.tone.message">f1=350,f2=440,c=10/10;</item>

		<!-- # Ring Back Tone -->
		<!-- # String -->
		<!-- # Mandatory -->
		<item name="audio.tone.ringBack">f1=440,f2=480,c=200/400;</item>

		<!-- # Call-Waiting Tone -->
		<!-- # String -->
		<!-- # Mandatory -->
		<item name="audio.tone.callWaiting">f1=440,f2=440,c=25/525;</item>

		<!-- # Call Waiting Tone Gain -->
		<!-- # Option  Low, Medium, High-->
		<item name="audio.tone.callWaiting.gain">Low</item>

		<!-- # Busy Tone -->
		<!-- # String -->
		<!-- # Mandatory -->
		<item name="audio.tone.busy">f1=480,f2=620,c=50/50;</item>

		<!-- # Reorder Tone -->
		<!-- # String -->
		<!-- # Mandatory -->
		<item name="audio.tone.reorder">f1=480,f2=620,c=25/25;</item>

		<!-- # Speaker Ring Volume -->
		<!-- # Number: 0-7. Default is 5. -->
		<!-- # Mandatory -->
		<item name="audio.volume.ring">5</item>

		<!-- # Notification Tone Volume -->
		<!-- # Number: 0-7. Default is 5. -->
		<!-- # Mandatory -->
		<item name="audio.volume.notification">5</item>

		<!-- # Call Tone Volume -->
		<!-- # Number: (-15)-15. Default is 0. -->
		<!-- # Mandatory -->
		<item name="audio.volume.tone">0</item>

		<!-- # Lock Speaker Volume. No, Ring, Talk, Both -->
		<item name="audio.volume.lock">No</item>

		<!-- # Default Ringtone. -->
		<item name="audio.ring.defaultRingtone">0</item>

		<!-- # Total Number of Custom Ringtone Update -->
		<!-- # Number: 0-10. Default is 3. -->
		<!-- # Mandatory -->
		<item name="audio.ring.numberOfRingtone">3</item>

		<!-- ############################################################################## -->
		<!-- ##  Settings/Web Service -->
		<!-- ############################################################################## -->
		<!-- # Weather Update -->
		<!-- # Use Auto Location Service. Yes or No -->
		<item name="services.weather.enable">Yes</item>

		<!-- ############################################################################## -->
		<!-- ##  Settings/XML Applications -->
		<!-- ############################################################################## -->
		<!-- # Server Path -->
		<!-- # String -->
		<item name="xmlApplication.serverPath"/>

		<!-- # Softkey Label -->
		<!-- # String -->
		<item name="xmlApplication.softkeyLabel">XMLApp</item>

		<!-- # Default Background Color -->
		<!-- # String -->
		<item name="xmlApplications.defaultBackgroundColor"/>

		<!-- # Block Call Screen. Yes or No -->
		<item name="xmlApplications.blockCallScreen"/>

		<!-- # Enable XML Application Auto Launch. No, OnIncomingCall, OnBootup, OnBootupNoAccount -->
		<item name="xmlApplications.autoLaunch">No</item>

		<!-- ############################################################################## -->
		<!-- ##  Settings/E911 Service -->
		<!-- ############################################################################## -->
		<!-- # Enable 911. Yes or No -->
		<item name="e911.enable">No</item>

		<!-- # HELD Protocol. HTTP or HTTPS -->
		<item name="e911.held.protocol">HTTP</item>

		<!-- # HELD Protocol. 0, 30-1440 -->
		<item name="e911.held.syncInterval">0</item>

		<!-- # Location Server -->
		<!-- # String -->
		<item name="e911.held.server.1.address"/>

		<!-- # Location Server Username -->
		<!-- # String -->
		<item name="e911.held.server.1.userId"/>

		<!-- # Location Server Password -->
		<!-- # String -->
		<item name="e911.held.server.1.password"/>

		<!-- # Secondary Location Server -->
		<!-- # String -->
		<item name="e911.held.server.2.address"/>

		<!-- # Secondary Location Server Username -->
		<!-- # String -->
		<item name="e911.held.server.2.userId"/>

		<!-- # Secondary Location Server Password -->
		<!-- # String -->
		<item name="e911.held.server.2.password"/>

		<!-- # 	HELD Location Types -->
		<!-- # String: geodetic,civic,locationURI -->
		<item name="e911.held.locationType">geodetic,civic,locationURI</item>

		<!-- # HELD Use LLDP Information. Yes or No -->
		<item name="e911.held.lldpInfo">No</item>

		<!-- # HELD NAI. Yes or No -->
		<item name="e911.held.nai">No</item>

		<!-- # HELD Identity 1 -->
		<!-- # String -->
		<item name="e911.held.identity.1.name"/>

		<!-- # HELD Identity 1 Value -->
		<!-- # String -->
		<item name="e911.held.identity.1.value"/>

		<!-- # HELD Identity 2 -->
		<!-- # String -->
		<item name="e911.held.identity.2.name"/>

		<!-- # HELD Identity 2 Value -->
		<!-- # String -->
		<item name="e911.held.identity.2.value"/>

		<!-- # HELD Identity 3 -->
		<!-- # String -->
		<item name="e911.held.identity.3.name"/>

		<!-- # HELD Identity 3 Value -->
		<!-- # String -->
		<item name="e911.held.identity.3.value"/>

		<!-- # HELD Identity 4 -->
		<!-- # String -->
		<item name="e911.held.identity.4.name"/>

		<!-- # HELD Identity 4 Value -->
		<!-- # String -->
		<item name="e911.held.identity.4.value"/>

		<!-- # HELD Identity 5 -->
		<!-- # String -->
		<item name="e911.held.identity.5.name"/>

		<!-- # HELD Identity 5 Value -->
		<!-- # String -->
		<item name="e911.held.identity.5.value"/>

		<!-- # HELD Identity 6 -->
		<!-- # String -->
		<item name="e911.held.identity.6.name"/>

		<!-- # HELD Identity 6 Value -->
		<!-- # String -->
		<item name="e911.held.identity.6.value"/>

		<!-- # HELD Identity 7 -->
		<!-- # String -->
		<item name="e911.held.identity.7.name"/>

		<!-- # HELD Identity 7 Value -->
		<!-- # String -->
		<item name="e911.held.identity.7.value"/>

		<!-- # HELD Identity 8 -->
		<!-- # String -->
		<item name="e911.held.identity.8.name"/>

		<!-- # HELD Identity 8 Value -->
		<!-- # String -->
		<item name="e911.held.identity.8.value"/>

		<!-- # HELD Identity 9 -->
		<!-- # String -->
		<item name="e911.held.identity.9.name"/>

		<!-- # HELD Identity 9 Value -->
		<!-- # String -->
		<item name="e911.held.identity.9.value"/>

		<!-- # HELD Identity 10 -->
		<!-- # String -->
		<item name="e911.held.identity.10.name"/>

		<!-- # HELD Identity 10 Value -->
		<!-- # String -->
		<item name="e911.held.identity.10.value"/>

		<!-- # E911 Emergency Numbers -->
		<!-- # String -->
		<item name="e911.emergency">911</item>

		<!-- # Geolocation-Routing Header. Yes or No -->
		<item name="e911.header.geolocationRouting">No</item>

		<!-- # Priority Header. Yes or No -->
		<item name="e911.header.priority">No</item>

		<!-- ############################################################################## -->
		<!-- ##  Settings/Programmable Keys -->
		<!-- ############################################################################## -->
		<!-- ############################################################################## -->
		<!-- ##  Settings/Programmable Keys / Virtual Multi-Purpose Keys Settings -->
		<!-- ############################################################################## -->
		<!-- # Idle Screen Settings -->
		<!-- # Use Long Label. Yes or No -->
		<item name="pks.vpk.settings.idle.longLabel">Yes</item>

		<!-- # Call Screen Settings -->
		<!-- # Key Mode. LineMode, AccountMode. -->
		<item name="pks.vpk.settings.mode">AccountMode</item>

		<!-- # Transfer Mode via VPK. BlindTransfer, AttendedTransfer, NewCall. -->
		<item name="call.transfer.modeViaVpk">BlindTransfer</item>

		<!-- # Enable transfer via non-Transfer MPK. Yes or No -->
		<item name="transfer.nontransfer.mpk.enable">No</item>

		<!-- # Show Keys Label. Toggle, Show, Hide -->
		<item name="pks.vpk.settings.call.showLabel">Show</item>

		<!-- ############################################################################## -->
		<!-- ##  Settings/Programmable Keys/Virtual Multi-Purpose Keys -->
		<!-- ############################################################################## -->
		<!-- ############################################################################## -->
		{literal}
		<!-- # Virtual Multi-Purpose Keys (VPKs) -->
		<!-- # Note: 1. Fixed VPKs can only be edited. Adding or deleting Fixed VPK is not allowed. -->
		<!-- #       2. Even if a Dynamic VPK has mode set to None, it should be added in sequence. Skipping one will remove everything after that VPK.  -->
		<!-- #       3. For GXP2130, VPK1 to VPK3 are fixed VPK, VPK4 to VPK12 are dynamic VPK. -->
		<!-- #       4. For GXP2140, VPK1 to VPK4 are fixed VPK, VPK4 to VPK16 are dynamic VPK. -->
		<!-- #       5. For GXP2160, VPK1 to VPK6 are fixed VPK, VPK7 to VPK24 are dynamic VPK. -->
		<!-- #		 6. For GXP2135, VPK1 to VPK8 are fixed VPK, VPK9 to VPK32 are dynamic VPK.-->
		<!-- #       7. For GXP2170, VPK1 to VPK12 are fixed VPK, VPK13 to VPK48 are dynamic VPK. -->
		<!-- #       8. This config template includes settings for VPK1 only. To update item name to "pks.vpk.{i}...", where {i} is the VPK index. For example, to update VPK12 key mode, include the following in config template: <item name="pks.vpk.12.keyMode"></item> -->

		<!-- # Key Mode for fixed VPK. -->
		<!-- # None (-1), SpeedDial (0), BLF (1), PresenceWatcher (2), EventlistBLF (3), SpeedDialViaActiveAccount (4) -->
		<!-- # DialDTMF (5), VoiceMail (6), CallReturn (7), Transfer (8), CallPark (9), Intercom (10), LDAPSearch (11) -->
		<!-- # Conference (12), MulticastPaging (13), Record (14), CallLog (15), MonitoredCallPark (16), Menu (17) -->
		<!-- # XMLApplication (18), Information (19), Message (20), Forward (21), DND (22), Redial (23), InstantMessages (24) -->
		<!-- # MulticastListenAddress (25), KeypadLock (26), GDSOpenDoor (27), EventListPresence (28), Provision (29) -->
		<!-- # Phonebook(30), Line (31), SharedLine (32), Paging(33) -->

		<!-- # Key Mode for dynamic VPK. -->
		<!-- # None (-1), SpeedDial (0), BLF (1), PresenceWatcher (2), EventlistBLF (3), SpeedDialViaActiveAccount (4) -->
		<!-- # DialDTMF (5), VoiceMail (6), CallReturn (7), Transfer (8), CallPark (9), Intercom (10), LDAPSearch (11) -->
		<!-- # Conference (12), MulticastPaging (13), Record (14), CallLog (15), MonitoredCallPark (16), Menu (17) -->
		<!-- # XMLApplication (18), Information (19), Message (20), Forward (21), DND (22), Redial (23), InstantMessages (24) -->
		<!-- # MulticastListenAddress (25), KeypadLock (26), GDSOpenDoor (27), EventListPresence (28), Provision (29) -->
		<!-- # Phonebook(30), Paging(33) -->
		{/literal}

{assign var=key_types value=["none"=>-1,"line"=>0,"shared"=>1,"speed dial"=>10, "blf"=>11, "presence watcher"=>12,
"eventlist blf"=>13,"speed dial active"=>14,"dial dtmf"=>15,"voicemail"=>16,"call return"=>17,
"transfer"=>18,"call park"=>19,"intercom"=>20,"ldap search"=>21,"conference"=>22,"multicast paging"=>23,
"record"=>24,"call log"=>25,"monitored call park"=>26,"menu"=>27]}

{foreach $keys['line'] as $row}
{$line=$row.device_key_id}
	{if $row.device_key_id < 4}
		<!-- ###################################################################################### -->
		<!-- # VPK {$row.device_key_id}  -->
		<!-- ###################################################################################### -->
		<!-- # Key Mode  -->
		<item name="pks.vpk.{$row.device_key_id}.keyMode">{$key_types[$keys.line.$line.device_key_type]}</item>
		<!--<item name="pks.vpk.{$row.device_key_id}.keyMode">-1</item>-->

		<!-- # Account. 0 - Account1, 1 - Account2, 2 - Account3, 3 - Account 4, 4 - Account 5, 5 - Account 6 -->
		<item name="pks.vpk.{$row.device_key_id}.account">{$row.device_key_line}</item>

		<!-- # Description. Max length allowed is 32 characters. -->
		<!-- # String -->
		<item name="pks.vpk.{$row.device_key_id}.description">{$row.device_key_label}</item>

		<!-- # Value. Max length allowed is 64 characters. -->
		<!-- # String -->
		<item name="pks.vpk.{$row.device_key_id}.value">{$row.device_key_value}</item>

		<!-- # Locked: uncheck, check.  -->
		<!--<item name="pks.vpk.{$row.device_key_id}.lockMode"></item>-->
	{/if}
{/foreach}

		<!-- # Key Mode for dynamic VPK. -->
{assign var=key_types value=["none"=>-1,"speed dial"=>0, "blf"=>1, "presence watcher"=>2,
"eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,
"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"conference"=>12,"multicast paging"=>13,
"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]}

{foreach $keys['line'] as $row}
{$line=$row.device_key_id}
	{if $row.device_key_id > 3}
		<!-- ###################################################################################### -->
		<!-- # VPK {$row.device_key_id}  -->
		<!-- ###################################################################################### -->
		<!-- # Key Mode  -->
		<item name="pks.vpk.{$row.device_key_id}.keyMode">{$key_types[$keys.line.$line.device_key_type]}</item>
		<!--<item name="pks.vpk.{$row.device_key_id}.keyMode">-1</item>-->

		<!-- # Account. 0 - Account1, 1 - Account2, 2 - Account3, 3 - Account 4, 4 - Account 5, 5 - Account 6 -->
		<item name="pks.vpk.{$row.device_key_id}.account">{$row.device_key_line}</item>

		<!-- # Description. Max length allowed is 32 characters. -->
		<!-- # String -->
		<item name="pks.vpk.{$row.device_key_id}.description">{$row.device_key_label}</item>

		<!-- # Value. Max length allowed is 64 characters. -->
		<!-- # String -->
		<item name="pks.vpk.{$row.device_key_id}.value">{$row.device_key_value}</item>

		<!-- # Locked: uncheck, check.  -->
		<!--<item name="pks.vpk.{$row.device_key_id}.lockMode"></item>-->
	{/if}
{/foreach}

		<!-- ############################################################################## -->
		<!-- ##  Settings/Programmable Keys / Softkeys Settings -->
		<!-- ############################################################################## -->
		<!-- # More Softkey Display Mode -->
		<!-- # Menu, Toggle -->
		<!-- # Mandatory -->
		<item name="softkeys.moreKeyDisplayMode">Menu</item>

		<!-- # Show Target Softkey -->
		<!-- # Yes or No -->
		<item name="softkeys.state.call.showTargetKey">Yes</item>

		<!-- # Custom Softkey Layout. Yes or No -->
		<item name="softkeys.layout.enable">No</item>

		<!-- # Enforce Softkey Layout Position. Yes or No -->
		<item name="softkeys.layout.enforcePosition">No</item>

		<!-- # Hide System Softkey on Idle Page.  -->
		<!-- # String: Next, History, ForwardAll, Redial -->
		<item name="softkeys.state.idle.hideSystemKeys"/>

		<!-- ## Custom Call Screen Softkey Layout ## -->
		<!-- # Softkey layout in dialing state -->
		<!-- # String: BTPhonebook,BTOnOff,EndCall,ReConf,ConfRoom,Redial,Dial,Backspace,PickUp,Target  -->
		<item name="softkeys.layout.state.inDialing">BTPhonebook,BTOnOff,EndCall,ReConf,ConfRoom,Redial,Dial,Backspace,PickUp,Target</item>

		<!-- # Softkey Layout in Onhook Dialing State -->
		<!-- # String: BTPhonebook,DirectIP,Onhook,Cancel,Dial,Backspace,Target, -->
		<item name="softkeys.layout.state.inOnhookDialing">BTPhonebook,DirectIP,Onhook,Cancel,Dial,Backspace,Target</item>

		<!-- # Softkey Layout in Ringing State -->
		<!-- # String: Answer, Reject, Forward, ReConf,Custom-Silence  -->
		<item name="softkeys.layout.state.InRinging">Answer,Reject,Forward,ReConf</item>

		<!-- # Softkey Layout in Calling State -->
		<!-- # String: BTOnOff,EndCall,ReConf,ConfRoom,ConfCall  -->
		<item name="softkeys.layout.state.inCalling">BTOnOff,Cancel,EndCall,ReConf,ConfRoom,ConfCall</item>

		<!-- # Softkey Layout in Call Connected State  -->
		<!-- # String: BTPhonebook,BTOnOff,EndCall,ReConf,ConfRoom,Custom-Confcall,Cancel,NewCall,Swap,Transfer,Trnf>VM,DialDTMF,BSCCenter,URecord,Record,UCallPark,PrivateHold,CallPark, -->
		<!-- # Custom-Hold,Custom-Conference,Custom-Mute -->
		<item name="softkeys.layout.state.inCallConnected">BTPhonebook,BTOnOff,EndCall,ReConf,ConfRoom,Custom-Confcall,Cancel,NewCall,Swap,Transfer,Trnf&gt;VM,DialDTMF,BSCCenter,URecord,Record,UCallPark,PrivateHold,CallPark</item>

		<!-- # Softkey Layout in Conference Connected State -->
		<!-- # String: BTOnOff,EndCall,Kick,NewCall,Trnf>VM,DialDTMF,BSCCenter,URecord,Record,ConfRoom,Add,Custom-Hold,Custom-Split,Custom-Mute -->
		<item name="softkeys.layout.state.inConferenceConnected">BTOnOff,EndCall,Kick,NewCall,Trnf&gt;VM,DialDTMF,BSCCenter,URecord,Record,ConfRoom,Add</item>

		<!-- # Softkey Layout in Onhold State -->
		<!-- # String: ReConf,Resume,HoldTrnf,ConfCall,Add,Custom-NewCall,Custom-EndCall -->
		<item name="softkeys.layout.state.inOnhold">ReConf,Resume,HoldTrnf,ConfCall,Add</item>

		<!-- # Softkey Layout in Call Failed State -->
		<!-- # String: EndCall,ReCOnf,ConfRoom,Custom-NewCall -->
		<item name="softkeys.layout.state.inCallFailed">EndCall,ReConf,ConfRoom</item>

		<!-- # Softkey Layout in Transfer State -->
		<!-- # String: BTOnOff,Cancel,BlindTrnf,AttTrnf,Backspace,Target -->
		<item name="softkeys.layout.state.inTransfer">BTOnOff,Cancel,BlindTrnf,AttTrnf,Backspace,Target</item>

		<!-- # Softkey Layout in Conference State -->
		<!-- # String:BTOnOff,Cancel,Dial,Backspace,Target -->
		<item name="softkeys.layout.state.inConference">BTOnOff,Cancel,Dial,Backspace,Target</item>

		<!-- ###################################################################################### -->
		<!-- ## Programmable Keys/Idle Screen Settings -->
		<!-- ###################################################################################### -->
		<!-- # Softkey 1 -->
		<!-- ###################################################################################### -->
		<!-- # Key Mode. -->
		<!-- # Default, SpeedDial, SpeedDialViaActiveAccount, VoiceMail,  -->
		<!-- # CallReturn, Intercom, LDAPSearch, CallLog, Menu, Information, Message -->
		<item name="pks.softkey.1.keyMode">Default</item>

		<!-- # Account. 0 - Account1, 1 - Account2, 2 - Account3, 3 - Account4, 4 - Account5, 5 - Account6 -->
		<item name="pks.softkey.1.account"/>

		<!-- # Description.  -->
		<!-- # String.  -->
		<item name="pks.softkey.1.description"/>

		<!-- # Value. -->
		<!-- # String. -->
		<item name="pks.softkey.1.value"/>

		<!-- ###################################################################################### -->
		<!-- # Softkey 2 -->
		<!-- ###################################################################################### -->
		<!-- # Key Mode. -->
		<!-- # Default, SpeedDial, SpeedDialViaActiveAccount, VoiceMail,  -->
		<!-- # CallReturn, Intercom, LDAPSearch, CallLog, Menu, Information, Message -->
		<item name="pks.softkey.2.keyMode">Default</item>

		<!-- # Account. 0 - Account1, 1 - Account2, 2 - Account3, 3 - Account4, 4 - Account5, 5 - Account6 -->
		<item name="pks.softkey.2.account"/>

		<!-- # Description.  -->
		<!-- # String.  -->
		<item name="pks.softkey.2.description"/>

		<!-- # Value. -->
		<!-- # String. -->
		<item name="pks.softkey.2.value"/>

		<!-- ###################################################################################### -->
		<!-- # Softkey 3 -->
		<!-- ###################################################################################### -->
		<!-- # Key Mode. -->
		<!-- # Default, SpeedDial, SpeedDialViaActiveAccount, VoiceMail,  -->
		<!-- # CallReturn, Intercom, LDAPSearch, CallLog, Menu, Information, Message -->
		<item name="pks.softkey.3.keyMode">Default</item>

		<!-- # Account. 0 - Account1, 1 - Account2, 2 - Account3, 3 - Account4, 4 - Account5, 5 - Account6 -->
		<item name="pks.softkey.3.account"/>

		<!-- # Description.  -->
		<!-- # String.  -->
		<item name="pks.softkey.3.description"/>

		<!-- # Value. -->
		<!-- # String. -->
		<item name="pks.softkey.3.value"/>

		<!-- ###################################################################################### -->
		<!-- ## Programmable Keys/Call Screen Settings -->
		<!-- ###################################################################################### -->
		<!-- ###################################################################################### -->
		<!-- # Softkey 1 -->
		<!-- ###################################################################################### -->
		<!-- # Key Mode. -->
		<!-- # Default, SpeedDial, SpeedDialViaActiveAccount, VoiceMail,  -->
		<!-- # CallReturn, Intercom, LDAPSearch, CallLog, Information, Message -->
		<item name="pks.scSoftkey.1.mode">Default</item>

		<!-- # Description.  -->
		<!-- # String.  -->
		<item name="pks.scSoftkey.1.description"/>

		<!-- # Value. -->
		<!-- # String. -->
		<item name="pks.scSoftkey.1.value"/>

		<!-- ###################################################################################### -->
		<!-- # Softkey 2 -->
		<!-- ###################################################################################### -->
		<!-- # Key Mode. -->
		<!-- # Default, SpeedDial, SpeedDialViaActiveAccount, VoiceMail,  -->
		<!-- # CallReturn, Intercom, LDAPSearch, CallLog, Information, Message -->
		<!-- # Mandatory -->
		<item name="pks.scSoftkey.2.mode">Default</item>

		<!-- # Description.  -->
		<!-- # String.  -->
		<item name="pks.scSoftkey.2.description"/>

		<!-- # Value. -->
		<!-- # String. -->
		<item name="pks.scSoftkey.2.value"/>

		<!-- ###################################################################################### -->
		<!-- # Softkey 3 -->
		<!-- ###################################################################################### -->
		<!-- # Key Mode. -->
		<!-- # Default, SpeedDial, SpeedDialViaActiveAccount, VoiceMail,  -->
		<!-- # CallReturn, Intercom, LDAPSearch, CallLog, Information, Message -->
		<!-- # Mandatory -->
		<item name="pks.scSoftkey.3.mode">Default</item>

		<!-- # Description.  -->
		<!-- # String.  -->
		<item name="pks.scSoftkey.3.description"/>

		<!-- # Value. -->
		<!-- # String. -->
		<item name="pks.scSoftkey.3.value"/>

		<!-- ###################################################################################### -->
		<!-- ## Programmable Keys/Physical Multi-Purpose Keys -->
		<!-- ###################################################################################### -->
		{literal}
		<!-- # Note:  -->
		<!-- #       1. For GXP2130, it has 8 physical MPK.-->
		<!-- #       2. For GXP2160, it has 24 physical MPK. -->
		<!-- #       3. This config template includes settings for MPK1 only. To update item name to "pks.mpk.{i}...", where {i} is the MPK index. For example, to update VPK12 key mode, include the following in config template: <item name="pks.mpk.12.keyMode"></item> -->

		<!-- # Key Mode for physical MPK. -->
		<!-- # None (-1), SpeedDial (0), BLF (1), PresenceWatcher (2), EventlistBLF (3), SpeedDialViaActiveAccount (4) -->
		<!-- # DialDTMF (5), VoiceMail (6), CallReturn (7), Transfer (8), CallPark (9), Intercom (10), LDAPSearch (11) -->
		<!-- # Conference (12), MulticastPaging (13), Record (14), CallLog (15), MonitoredCallPark (16), Menu (17) -->
		<!-- # XMLApplication (18), Information (19), Message (20), Forward (21), DND (22), Redial (23), InstantMessages (24) -->
		<!-- # MulticastListenAddress (25), KeypadLock (26), GDSOpenDoor (27), EventListPresence (28), Provision (29) -->
		<!-- # Phonebook(30), Paging(33) -->
		{/literal}

{foreach $keys['memory'] as $row}
{$line=$row.device_key_id}

		<!-- ###################################################################################### -->
		<!-- # MPK {$row.device_key_id} -->
		<!-- ###################################################################################### -->
		<!-- # Key Mode -->
		<item name="pks.mpk.{$row.device_key_id}.keyMode">{$key_types[$keys.memory.$line.device_key_type]}</item>

		<!-- # Account. Account1, Account2, Account3, Account4, Account 5, Account 6  -->
		<item name="pks.mpk.{$row.device_key_id}.account">{$row.device_key_line}</item>

		<!-- MPK Description -->
		<item name="pks.mpk.{$row.device_key_id}.description">{$row.device_key_label}</item>

		<!-- MPK Value -->
		<item name="pks.mpk.{$row.device_key_id}.value">{$row.device_key_value}</item>

{/foreach}

		<!-- ###################################################################################### -->
		<!-- ## Programmable Keys/EXT Setting -->
		<!-- ###################################################################################### -->
		<!-- # One Page Display Mode. Yes or No -->
		<!-- # Mandatory -->
		<item name="pks.ext.onePageDisplayMode">No</item>

		<!-- # Sync Backlight with LCD. Yes or No -->
		<!-- # Mandatory -->
		<item name="pks.ext.syncBacklightWithLCD">No</item>

		<!-- ###################################################################################### -->
		<!-- ## Programmable Keys/EXT 1 -->
		<!-- ###################################################################################### -->
		{literal}
		<!-- # Note:  -->
		<!-- #       1. This config template includes settings for EXT MPK1 only. To update item name to "pks.ext.{i}...", where {i} is the MPK index. For example, to update VPK12 key mode, include the following in config template: <item name="pks.mpk.12.keyMode"></item> -->

		<!-- # Key Mode for EXT MPK. -->
		<!-- # None (-1), SpeedDial (0), BLF (1), PresenceWatcher (2), EventlistBLF (3), SpeedDialViaActiveAccount (4) -->
		<!-- # DialDTMF (5), VoiceMail (6), CallReturn (7), Transfer (8), CallPark (9), Intercom (10), LDAPSearch (11) -->
		<!-- # Conference (12), MulticastPaging (13), Record (14), CallLog (15), MonitoredCallPark (16), Menu (17) -->
		<!-- # XMLApplication (18), Information (19), Message (20), Forward (21), DND (22), Redial (23), InstantMessages (24) -->
		<!-- # MulticastListenAddress (25), KeypadLock (26), GDSOpenDoor (27), EventListPresence (28), Provision (29) -->
		<!-- # Phonebook(30), Paging(33) -->
		{/literal}

{assign var=key_types value=["none"=>-1,"speed dial"=>0, "blf"=>1, "presence watcher"=>2,
"eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,
"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"conference"=>12,"multicast paging"=>13,
"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]}

{foreach $keys['expansion'] as $row}
{$line=$row.device_key_id}

		<!-- ###################################################################################### -->
		<!-- # EXT MPK {$row.device_key_id} -->
		<!-- ###################################################################################### -->
		<!-- # Key Mode -->
		<item name="pks.ext.{$row.device_key_id}.keyMode">{$key_types[$keys.expansion.$line.device_key_type]}</item>

		<!-- # Account. Account1, Account2, Account3, Account4, Account5, Account6 -->
		<item name="pks.ext.{$row.device_key_id}.account">{$row.device_key_line}</item>

		<!-- # Description -->
		<item name="pks.ext.{$row.device_key_id}.description">{$row.device_key_label}</item>

		<!-- # Value -->
		<item name="pks.ext.{$row.device_key_id}.value">{$row.device_key_value}</item>

{/foreach}

	</config>
</gs_provision>
