blob: 891da751d1ffa80828f3423239d39d83a51ed935 [file] [edit]
<?xml version="1.0"?>
<!--
Copyright (c) 2008,2020 Silicon Labs.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<configurator>
<domain name="Telecom Applications" spec="ta-1.0-07-5307-07" dependsOn="zcl-1.0-07-5123-03"/>
<domain name="Protocol Interfaces" spec="ta-1.0-07-5307-07" dependsOn="zcl-1.0-07-5123-03"/>
<domain name="Telecommunication" spec="ta-1.0-07-5307-07" dependsOn="zcl-1.0-07-5123-03"/>
<domain name="Financial" spec="ta-1.0-07-5307-07" dependsOn="zcl-1.0-07-5123-03"/>
<cluster>
<name>Partition</name>
<domain>General</domain>
<description>Commands and attributes for enabling partitioning of large frame to be carried from other clusters of ZigBee devices.</description>
<code>0x0016</code>
<define>PARTITION_CLUSTER</define>
<client tick="false" init="false">true</client>
<server tick="false" init="false">true</server>
<attribute side="server" code="0x0000" define="PARTITION_MAXIMUM_INCOMING_TRANSFER_SIZE" type="INT16U" min="0x0000" max="0xFFFF" writable="false" default="0x0500" optional="false">maximum incoming transfer size</attribute>
<attribute side="server" code="0x0001" define="PARTITION_MAXIMUM_OUTGOING_TRANSFER_SIZE" type="INT16U" min="0x0000" max="0xFFFF" writable="false" default="0x0500" optional="false">maximum outgoing transfer size</attribute>
<attribute side="server" code="0x0002" define="PARTIONED_FRAME_SIZE" type="INT8U" min="0x00" max="0xFF" writable="true" default="0x50" optional="false">partioned frame size</attribute>
<attribute side="server" code="0x0003" define="LARGE_FRAME_SIZE" type="INT16U" min="0x0000" max="0xFFFF" writable="true" default="0x0500" optional="false">large frame size</attribute>
<attribute side="server" code="0x0004" define="NUMBER_OF_ACK_FRAME" type="INT8U" min="0x00" max="0xFF" writable="true" default="0x64" optional="false">number of ack frame</attribute>
<attribute side="server" code="0x0005" define="NACK_TIMEOUT" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">nack timeout</attribute>
<attribute side="server" code="0x0006" define="INTERFRAME_DELAY" type="INT8U" min="0x00" max="0xFF" writable="true" optional="false">interframe delay</attribute>
<attribute side="server" code="0x0007" define="NUMBER_OF_SEND_RETRIES" type="INT8U" min="0x00" max="0xFF" writable="false" default="0x03" optional="false">number of send retries</attribute>
<attribute side="server" code="0x0008" define="SENDER_TIMEOUT" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">sender timeout</attribute>
<attribute side="server" code="0x0009" define="RECEIVER_TIMEOUT" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">receiver timeout</attribute>
<command source="client" code="0x00" name="TransferPartitionedFrame" optional="false">
<description>The TransferPartitionedFrame command is used to send a partitioned frame to another Partition cluster.</description>
<arg name="fragmentationOptions" type="BITMAP8"/>
<!-- Partition Indicator can be one or two bytes depending on the bits in
Fragmentation Options. call-command-handler can't generate code for
something that complicated, so instead just send a buffer and leave
parsing to the user.
-->
<!--<arg name="partitionIndicator" type="INT8U/INT16U" />-->
<!--<arg name="partitionedFrame" type="OCTET_STRING" />-->
<arg name="partitionedIndicatorAndFrame" type="INT8U" array="true"/>
</command>
<command source="client" code="0x01" name="ReadHandshakeParam" optional="false">
<description>The ReadHandshakeParam command is used in order to read the appropriate set of parameters for each transaction to be performed by the Partition Cluster.</description>
<arg name="partitionedClusterId" type="CLUSTER_ID"/>
<arg name="attributeList" type="ATTRIBUTE_ID" array="true"/>
</command>
<command source="client" code="0x02" name="WriteHandshakeParam" optional="false">
<description>The WriteHandshakeParam command is used during the handshake phase in order to write the appropriate parameters for each transaction to be performed by the Partition Cluster.</description>
<arg name="partitionedClusterId" type="CLUSTER_ID"/>
<arg name="writeAttributeRecords" type="WriteAttributeRecord" array="true"/>
</command>
<command source="server" code="0x00" name="MultipleAck" optional="false">
<description>MultipleACK command.</description>
<arg name="ackOptions" type="BITMAP8"/>
<!-- First Frame ID and the list of NACK IDs can be one or two bytes
depending on the bits in ACK Options. call-command-handler can't
generate code for something that complicated, so instead just send a
buffer and leave parsing to the user.
-->
<!--<arg name="firstFrameId" type="INT8U/INT16U" />-->
<!--<arg name="nackList" type="INT8U/INT16U" array="true" />-->
<arg name="firstFrameIdAndNackList" type="INT8U" array="true"/>
</command>
<command source="server" code="0x01" name="ReadHandshakeParamResponse" optional="false" disableDefaultResponse="true">
<description>The ReadHandshakeParamResponse command is used in order to response to the corresponding ReadHandshakeParam command in order to communicate the appropriate set of parameters configured for each transaction to be performed by the Partition Cluster.</description>
<arg name="partitionedClusterId" type="CLUSTER_ID"/>
<arg name="readAttributeStatusRecords" type="ReadAttributeStatusRecord" array="true"/>
</command>
</cluster>
<cluster>
<name>ISO 7816 Protocol Tunnel</name>
<domain>Protocol Interfaces</domain>
<description>Commands and attributes for mobile office solutions including ZigBee devices.</description>
<code>0x0615</code>
<define>ISO7816_PROTOCOL_TUNNEL_CLUSTER</define>
<client tick="false" init="false">true</client>
<server tick="false" init="false">true</server>
<attribute side="server" code="0x0000" define="ISO7816_PROTOCOL_TUNNEL_STATUS" type="INT8U" min="0x00" max="0x01" writable="false" default="0x00" optional="false">status</attribute>
<command source="either" code="0x00" name="TransferApdu" optional="false">
<description>
Command description for TransferApdu
</description>
<arg name="apdu" type="OCTET_STRING"/>
</command>
<command source="client" code="0x01" name="InsertSmartCard" optional="false">
<description>
Command description for InsertSmartCard
</description>
</command>
<command source="client" code="0x02" name="ExtractSmartCard" optional="false">
<description>
Command description for ExtractSmartCard
</description>
</command>
</cluster>
<cluster>
<name>Information</name>
<domain>Telecommunication</domain>
<description>Provides commands and attributes for information delivery service on ZigBee networks.</description>
<code>0x0900</code>
<define>INFORMATION_CLUSTER</define>
<client tick="false" init="false">true</client>
<server tick="false" init="false">true</server>
<attribute side="server" code="0x0000" define="NODE_DESCRIPTION" type="CHAR_STRING" length="16" writable="false" optional="false">node description</attribute>
<attribute side="server" code="0x0001" define="DELIVERY_ENABLE" type="BOOLEAN" min="0x00" max="0x01" writable="false" optional="false">delivery enable</attribute>
<attribute side="server" code="0x0002" define="PUSH_INFORMATION_TIMER" type="INT32U" writable="false" optional="true">push information timer</attribute>
<attribute side="server" code="0x0003" define="ENABLE_SECURE_CONFIGURATION" type="BOOLEAN" min="0x00" max="0x01" writable="false" optional="false">enable secure configuration</attribute>
<attribute side="server" code="0x0010" define="NUMBER_OF_CONTENTS" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="true">number of contents</attribute>
<attribute side="server" code="0x0011" define="CONTENT_ROOT_ID" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="true">content root id</attribute>
<command source="client" code="0x00" name="RequestInformation" optional="false">
<description>
Command description for RequestInformation
</description>
<arg name="inquiryId" type="ENUM8"/>
<arg name="dataTypeId" type="BITMAP8"/>
<!-- Request Information Payload varies depending on Data Type ID.
call-command-handler can't generate code for something that
complicated, so instead just send a buffer and leave parsing to the
user.
-->
<arg name="requestInformationPayload" type="INT8U" array="true"/>
</command>
<command source="client" code="0x01" name="PushInformationResponse" optional="false" disableDefaultResponse="true">
<description>
Command description for PushInformationResponse
</description>
<arg name="notificationList" type="Notification" array="true"/>
</command>
<command source="client" code="0x02" name="SendPreference" optional="true">
<description>
Command description for SendPreference
</description>
<arg name="preferenceType" type="INT16U"/>
<!-- Request Information Payload varies depending on Preference Type.
call-command-handler can't generate code for something that
complicated, so instead just send a buffer and leave parsing to the
user.
-->
<arg name="preferencePayload" type="INT8U" array="true"/>
</command>
<command source="client" code="0x03" name="RequestPreferenceResponse" optional="true" disableDefaultResponse="true">
<description>
Command description for RequestPreferenceResponse
</description>
<arg name="statusFeedback" type="Status"/>
<arg name="preferenceType" type="INT16U"/>
<!-- Preference Payload varies depending on Preference Type.
call-command-handler can't generate code for something that
complicated, so instead just send a buffer and leave parsing to the
user.
-->
<arg name="preferencePayload" type="INT8U" array="true"/>
</command>
<command source="client" code="0x04" name="Update" optional="true">
<description>
Command description for Update
</description>
<arg name="accessControl" type="ENUM8"/>
<arg name="option" type="BITMAP8"/>
<arg name="contents" type="INT8U" array="true"/>
</command>
<command source="client" code="0x05" name="Delete" optional="true">
<description>
Command description for Delete
</description>
<arg name="deletionOptions" type="BITMAP8"/>
<arg name="contentIds" type="INT16U" array="true"/>
</command>
<command source="client" code="0x06" name="ConfigureNodeDescription" optional="true">
<description>
Command description for ConfigureNodeDescription
</description>
<arg name="description" type="CHAR_STRING"/>
</command>
<command source="client" code="0x07" name="ConfigureDeliveryEnable" optional="true">
<description>
Command description for ConfigureDeliveryEnable
</description>
<arg name="enable" type="BOOLEAN"/>
</command>
<command source="client" code="0x08" name="ConfigurePushInformationTimer" optional="true">
<description>
Command description for ConfigurePushInformationTimer
</description>
<arg name="timer" type="INT32U"/>
</command>
<command source="client" code="0x09" name="ConfigureSetRootId" optional="true">
<description>
Command description for ConfigureSetRootId
</description>
<arg name="rootId" type="INT16U"/>
</command>
<command source="server" code="0x00" name="RequestInformationResponse" optional="false" disableDefaultResponse="true">
<description>
Command description for RequestInformationResponse
</description>
<arg name="number" type="INT8U"/>
<!-- Each Status field will be followed by a Single Content or Content ID,
which are variable length. call-command-handler can't generate code
for something that complicated, so instead just send a buffer and
leave parsing to the user.
-->
<arg name="buffer" type="INT8U" array="true"/>
</command>
<command source="server" code="0x01" name="PushInformation" optional="false">
<description>
Command description for PushInformation
</description>
<arg name="contents" type="INT8U" array="true"/>
</command>
<command source="server" code="0x02" name="SendPreferenceResponse" optional="true" disableDefaultResponse="true">
<description>
Command description for SendPreferenceResponse
</description>
<arg name="statusFeedbackList" type="Status" array="true"/>
</command>
<command source="server" code="0x03" name="ServerRequestPreference" optional="true">
<description>
Command description for ServerRequestPreference
</description>
</command>
<command source="server" code="0x04" name="RequestPreferenceConfirmation" optional="true">
<description>
Command description for RequestPreferenceConfirmation
</description>
<arg name="statusFeedbackList" type="Status" array="true"/>
</command>
<command source="server" code="0x05" name="UpdateResponse" optional="true" disableDefaultResponse="true">
<description>
Command description for UpdateResponse
</description>
<arg name="notificationList" type="Notification" array="true"/>
</command>
<command source="server" code="0x06" name="DeleteResponse" optional="true" disableDefaultResponse="true">
<description>
Command description for DeleteResponse
</description>
<arg name="notificationList" type="Notification" array="true"/>
</command>
</cluster>
<cluster>
<name>Data Sharing</name>
<domain>Telecommunication</domain>
<description>Commands and attributes for small data sharing among ZigBee devices.</description>
<code>0x0901</code>
<define>DATA_SHARING_CLUSTER</define>
<client tick="false" init="false">true</client>
<server tick="false" init="false">true</server>
<attribute side="server" code="0x0000" define="DEVICE_NAME" type="CHAR_STRING" length="16" writable="false" optional="false">device name</attribute>
<attribute side="server" code="0x0001" define="DEVICE_DESCRIPTION" type="CHAR_STRING" length="16" writable="false" optional="true">device description</attribute>
<command source="client" code="0x00" name="ReadFileRequest" optional="false">
<description>
Command description for ReadFileRequest
</description>
<arg name="fileIndex" type="INT16U"/>
<!-- File Start Position and Requested Octet Count are optional fields and
may not be present. call-command-handler can't generate code for
something that complicated, so instead just send a buffer and leave
parsing to the user.
-->
<!--<arg name="fileStartPosition" type="INT32U" />-->
<!--<arg name="requestedOctetCount" type="INT32U" />-->
<arg name="fileStartPositionAndRequestedOctetCount" type="INT8U" array="true"/>
</command>
<command source="client" code="0x01" name="ReadRecordRequest" optional="true">
<description>
Command description for ReadRecordRequest
</description>
<arg name="fileIndex" type="INT16U"/>
<!-- File Start Record and Requested Record Count are optional fields and
may not be present. call-command-handler can't generate code for
something that complicated, so instead just send a buffer and leave
parsing to the user.
-->
<!--<arg name="fileStartRecord" type="INT16U" />-->
<!--<arg name="requestedRecordCount" type="INT16U" />-->
<arg name="fileStartRecordAndRequestedRecordCount" type="INT8U" array="true"/>
</command>
<command source="client" code="0x02" name="WriteFileResponse" optional="true" disableDefaultResponse="true">
<description>
Command description for WriteFileResponse
</description>
<arg name="status" type="ENUM8"/>
<!-- File Index will not exist if status is SUCCESS. call-command-handler
can't generate code for something that complicated, so instead just
send a buffer and leave parsing to the user.
-->
<!--<arg name="fileIndex" type="INT16U" />-->
<arg name="fileIndex" type="INT8U" array="true"/>
</command>
<command source="server" code="0x00" name="WriteFileRequest" optional="true">
<description>
Command description for WriteFileRequest
</description>
<arg name="writeOptions" type="BITMAP8"/>
<!-- Partition Indicator can be one or two bytes depending on the bits in
Fragmentation Options. call-command-handler can't generate code for
something that complicated, so instead just send a buffer and leave
parsing to the user.
-->
<!--<arg name="fileSize" type="INT8U/INT16U" />-->
<arg name="fileSize" type="INT8U" array="true"/>
</command>
<command source="server" code="0x01" name="ModifyFileRequest" optional="true">
<description>
Command description for ModifyFileRequest
</description>
<arg name="fileIndex" type="INT16U"/>
<arg name="fileStartPosition" type="INT32U"/>
<arg name="octetCount" type="INT32U"/>
</command>
<command source="server" code="0x02" name="ModifyRecordRequest" optional="true">
<description>
Command description for ModifyRecordRequest
</description>
<arg name="fileIndex" type="INT16U"/>
<arg name="fileStartRecord" type="INT16U"/>
<arg name="recordCount" type="INT16U"/>
</command>
<command source="server" code="0x03" name="FileTransmission" optional="false">
<description>
Command description for FileTransmission
</description>
<arg name="transmitOptions" type="BITMAP8"/>
<!-- File Index, File Start Position, File Length, and File Data may not
be present. call-command-handler can't generate code for something
that complicated, so instead just send a buffer and leave parsing to
the user.
-->
<!--<arg name="fileIndex" type="INT16U" />-->
<!--<arg name="fileStartPosition" type="INT32U" />-->
<!--<arg name="fileLength" type="INT32U" />-->
<!--<arg name="fileData" type="OCTET" array="true" />-->
<arg name="buffer" type="INT8U" array="true"/>
</command>
<command source="server" code="0x04" name="RecordTransmission" optional="true">
<description>
Command description for RecordTransmission
</description>
<arg name="transmitOptions" type="BITMAP8"/>
<!-- File Index, File Start Record, Record Count, and Record File Data may
not be present. call-command-handler can't generate code for
something that complicated, so instead just send a buffer and leave
parsing to the user.
-->
<!--<arg name="fileIndex" type="INT16U" />-->
<!--<arg name="fileStartRecord" type="INT16U" />-->
<!--<arg name="recordCount" type="INT16U" />-->
<!--<arg name="recordFileData" type="CHAR" array="true" />-->
<arg name="buffer" type="INT8U" array="true"/>
</command>
</cluster>
<cluster>
<name>Gaming</name>
<domain>Telecommunication</domain>
<description>Attributes and commands to support gaming functions of ZigBee-enabled mobile terminals.</description>
<code>0x0902</code>
<define>GAMING_CLUSTER</define>
<client tick="false" init="false">true</client>
<server tick="false" init="false">true</server>
<attribute side="server" code="0x0000" define="PLAYER_NAME" type="CHAR_STRING" length="16" writable="false" optional="false">player name</attribute>
<attribute side="server" code="0x0001" define="NB_OF_GAMES" type="INT8U" min="0x00" max="0xFE" writable="false" optional="false">nb of games</attribute>
<attribute side="server" code="0x0002" define="LIST_OF_GAMES" type="CHAR_STRING" length="16" writable="false" optional="false">list of games</attribute>
<attribute side="server" code="0x0003" define="ANNOUNCEMENT_INTERVAL" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">announcement interval</attribute>
<attribute side="server" code="0x0010" define="GAME_ID" type="INT16U" min="0x0001" max="0x00FE" writable="false" optional="false">game id</attribute>
<attribute side="server" code="0x0011" define="NAME_OF_GAME" type="CHAR_STRING" length="16" writable="false" optional="false">name of game</attribute>
<attribute side="server" code="0x0012" define="GAME_MASTER" type="BOOLEAN" writable="false" optional="false">game master</attribute>
<attribute side="server" code="0x0013" define="GAMING_STATUS" type="BITMAP8" min="0x00" max="0xFF" writable="false" optional="false">status</attribute>
<attribute side="server" code="0x0014" define="CURRENT_NB_OF_PLAYERS" type="INT8U" min="0x00" max="0xFF" writable="false" optional="false">current nb of players</attribute>
<attribute side="server" code="0x0015" define="LIST_OF_CURRENT_PLAYERS" type="CHAR_STRING" length="16" writable="false" optional="false">list of current players</attribute>
<attribute side="server" code="0x0016" define="MAX_NB_OF_PLAYERS" type="INT8U" min="0x00" max="0xFF" writable="false" optional="false">max nb of players</attribute>
<attribute side="server" code="0x0017" define="MIN_NB_OF_PLAYERS" type="INT8U" min="0x00" max="0xFF" writable="false" optional="false">min nb of players</attribute>
<attribute side="server" code="0x0018" define="CURRENT_GAME_LEVEL" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">current game level</attribute>
<attribute side="server" code="0x0019" define="SCORE_OF_THIS_PLAYER" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">score of this player</attribute>
<attribute side="server" code="0x001A" define="TIMER1" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">timer1</attribute>
<attribute side="server" code="0x001B" define="TIMER2" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">timer2</attribute>
<attribute side="server" code="0x001C" define="TIMER3" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">timer3</attribute>
<attribute side="server" code="0x001D" define="COUNTER1" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">counter1</attribute>
<attribute side="server" code="0x001E" define="COUNTER2" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">counter2</attribute>
<attribute side="server" code="0x001F" define="DOWNLOADABLE" type="BOOLEAN" min="0x00" max="0x01" writable="false" optional="true">downloadable</attribute>
<command source="client" code="0x00" name="SearchGame" optional="false">
<description>
Command description for SearchGame
</description>
<arg name="specificGame" type="ENUM8"/>
<arg name="gameId" type="INT16U"/>
</command>
<command source="client" code="0x01" name="JoinGame" optional="false">
<description>
Command description for JoinGame
</description>
<arg name="gameId" type="INT16U"/>
<arg name="joinAsMaster" type="BOOLEAN"/>
<arg name="nameOfGame" type="CHAR_STRING"/>
</command>
<command source="client" code="0x02" name="StartGame" optional="false">
<description>
Command description for StartGame
</description>
</command>
<command source="client" code="0x03" name="PauseGame" optional="false">
<description>
Command description for PauseGame
</description>
</command>
<command source="client" code="0x04" name="ResumeGame" optional="false">
<description>
Command description for ResumeGame
</description>
</command>
<command source="client" code="0x05" name="QuitGame" optional="false">
<description>
Command description for QuitGame
</description>
</command>
<command source="client" code="0x06" name="EndGame" optional="false">
<description>
Command description for EndGame
</description>
</command>
<command source="client" code="0x07" name="StartOver" optional="false">
<description>
Command description for StartOver
</description>
</command>
<command source="client" code="0x08" name="ActionControl" optional="false">
<description>
Command description for ActionControl
</description>
<arg name="actions" type="BITMAP32"/>
</command>
<command source="client" code="0x09" name="DownloadGame" optional="true">
<description>
Command description for DownloadGame
</description>
</command>
<command source="server" code="0x00" name="GameAnnouncement" optional="false">
<description>
Command description for GameAnnouncement
</description>
<arg name="gameId" type="INT16U"/>
<arg name="gameMaster" type="BOOLEAN"/>
<arg name="listOfGame" type="CHAR_STRING"/>
</command>
<command source="server" code="0x01" name="GeneralResponse" optional="false" disableDefaultResponse="true">
<description>
Command description for GeneralResponse
</description>
<arg name="commandId" type="INT8U"/>
<arg name="status" type="BITMAP8"/>
<arg name="message" type="CHAR_STRING"/>
</command>
</cluster>
<cluster>
<name>Data Rate Control</name>
<domain>Telecommunication</domain>
<description>This cluster seeks to give applications a means to managing data rate. It provides commands and attributes which form this interface.</description>
<code>0x0903</code>
<define>DATA_RATE_CONTROL_CLUSTER</define>
<client tick="false" init="false">true</client>
<server tick="false" init="false">true</server>
<attribute side="server" code="0x0000" define="AVERAGE_LATENCY_REQUIREMENT" type="INT8U" min="0x00" max="0xFF" writable="false" optional="true">average latency requirement</attribute>
<attribute side="server" code="0x0001" define="MAX_LATENCY_REQUIREMENT" type="INT8U" min="0x00" max="0xFF" writable="false" optional="true">max latency requirement</attribute>
<attribute side="server" code="0x0002" define="BANDWIDTH_REQUIREMENT" type="INT8U" min="0x00" max="0xFF" writable="true" optional="true">bandwidth requirement</attribute>
<command source="client" code="0x00" name="PathCreation" optional="true">
<description>
Command description for PathCreation
</description>
<arg name="originatorAddress" type="DATA16"/>
<arg name="destinationAddress" type="DATA16"/>
<arg name="dataRate" type="INT8U"/>
</command>
<command source="client" code="0x01" name="DataRateNotification" optional="true">
<description>
Command description for DataRateNotification
</description>
<arg name="originatorAddress" type="DATA16"/>
<arg name="destinationAddress" type="DATA16"/>
<arg name="dataRate" type="INT8U"/>
</command>
<command source="client" code="0x02" name="PathDeletion" optional="true">
<description>
Command description for PathDeletion
</description>
<arg name="originatorAddress" type="DATA16"/>
<arg name="destinationAddress" type="DATA16"/>
</command>
<command source="server" code="0x00" name="DataRateControl" optional="false">
<description>
Command description for DataRateControl
</description>
<arg name="originatorAddress" type="DATA16"/>
<arg name="destinationAddress" type="DATA16"/>
<arg name="dataRate" type="INT8U"/>
</command>
</cluster>
<cluster>
<name>Voice over ZigBee</name>
<domain>Telecommunication</domain>
<description>This cluster seeks to provide an interface to a voice over ZigBee protocol.</description>
<code>0x0904</code>
<define>VOICE_OVER_ZIGBEE_CLUSTER</define>
<client tick="false" init="false">true</client>
<server tick="false" init="false">true</server>
<attribute side="server" code="0x0000" define="CODEC_TYPE" type="ENUM8" min="0x01" max="0x04" writable="true" optional="false">codec type</attribute>
<attribute side="server" code="0x0001" define="SAMPLING_FREQUENCY" type="ENUM8" min="0x01" max="0x03" writable="true" optional="false">sampling frequency</attribute>
<attribute side="server" code="0x0002" define="CODEC_RATE" type="ENUM8" min="0x01" max="0x0A" writable="true" optional="false">codec rate</attribute>
<attribute side="server" code="0x0003" define="ESTABLISHMENT_TIMEOUT" type="INT8U" min="0x01" max="0xFF" optional="false">establishment timeout</attribute>
<attribute side="server" code="0x0004" define="CODEC_TYPE_SUB1" type="ENUM8" writable="true" optional="true">codec type sub 1</attribute>
<attribute side="server" code="0x0005" define="CODEC_TYPE_SUB2" type="ENUM8" writable="true" optional="true">codec type sub 2</attribute>
<attribute side="server" code="0x0006" define="CODEC_TYPE_SUB3" type="ENUM8" writable="true" optional="true">codec type sub 3</attribute>
<attribute side="server" code="0x0007" define="COMPRESSION_TYPE" type="ENUM8" min="0x01" max="0x02" optional="true">compression type</attribute>
<attribute side="server" code="0x0008" define="COMPRESSION_RATE" type="ENUM8" optional="true">compression rate</attribute>
<attribute side="server" code="0x0009" define="OPTION_FLAGS" type="BITMAP8" min="0x00" max="0xFF" writable="true" optional="true">option flags</attribute>
<attribute side="server" code="0x000A" define="THRESHOLD" type="INT8U" min="0x00" max="0xFF" writable="true" optional="true">threshold</attribute>
<command source="client" code="0x00" name="EstablishmentRequest" optional="false">
<description>
Command description for EstablishmentRequest
</description>
<arg name="flag" type="BITMAP8"/>
<arg name="codecType" type="ENUM8"/>
<arg name="sampFreq" type="ENUM8"/>
<arg name="codecRate" type="ENUM8"/>
<arg name="serviceType" type="ENUM8"/>
<!-- Codec Type S1, Codec Type S2, Codec Type S3, Comp. Type., and Comp.
Rate may not be present. call-command-handler can't generate code
for something that complicated, so instead just send a buffer and
leave parsing to the user.
-->
<!--<arg name="codecTypeS1" type="ENUM8" />-->
<!--<arg name="codecTypeS2" type="ENUM8" />-->
<!--<arg name="codecTypeS3" type="ENUM8" />-->
<!--<arg name="compType" type="ENUM8" />-->
<!--<arg name="compRate" type="ENUM8" />-->
<arg name="buffer" type="INT8U" array="true"/>
</command>
<command source="client" code="0x01" name="VoiceTransmission" optional="false">
<description>
Command description for VoiceTransmission
</description>
<arg name="voiceData" type="INT8U" array="true"/>
</command>
<command source="client" code="0x02" name="VoiceTransmissionCompletion" optional="true">
<description>
Command description for VoiceTransmissionCompletion
</description>
</command>
<command source="client" code="0x03" name="ControlResponse" optional="true" disableDefaultResponse="true">
<description>
Command description for ControlResponse
</description>
<arg name="ackNack" type="ENUM8"/>
</command>
<command source="server" code="0x00" name="EstablishmentResponse" optional="false" disableDefaultResponse="true">
<description>
Command description for EstablishmentResponse
</description>
<arg name="ackNack" type="ENUM8"/>
<arg name="codecType" type="ENUM8"/>
</command>
<command source="server" code="0x01" name="VoiceTransmissionResponse" optional="false" disableDefaultResponse="true">
<description>
Command description for VoiceTransmissionResponse
</description>
<arg name="sequenceNumber" type="INT8U"/>
<arg name="errorFlag" type="ENUM8"/>
</command>
<command source="server" code="0x02" name="Control" optional="true">
<description>
Command description for Control
</description>
<arg name="controlType" type="ENUM8"/>
</command>
</cluster>
<cluster>
<name>Chatting</name>
<domain>Telecommunication</domain>
<description>Commands and attributes for sending chat messages among ZigBee devices.</description>
<code>0x0905</code>
<define>CHATTING_CLUSTER</define>
<client tick="false" init="false">true</client>
<server tick="false" init="false">true</server>
<attribute side="server" code="0x0000" define="U_ID" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">u id</attribute>
<attribute side="server" code="0x0001" define="NICKNAME" type="CHAR_STRING" length="16" writable="false" optional="false">nickname</attribute>
<attribute side="server" code="0x0010" define="C_ID" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">c iD</attribute>
<attribute side="server" code="0x0011" define="NAME" type="CHAR_STRING" length="16" writable="false" optional="false">name</attribute>
<attribute side="server" code="0x0020" define="ENABLE_ADD_CHAT" type="BOOLEAN" min="0x00" max="0x01" writable="false" optional="true">enable add chat</attribute>
<command source="client" code="0x00" name="JoinChatRequest" optional="false">
<description>
Command description for JoinChatRequest
</description>
<arg name="uid" type="INT16U"/>
<arg name="nickname" type="CHAR_STRING"/>
<arg name="cid" type="INT16U"/>
</command>
<command source="client" code="0x01" name="LeaveChatRequest" optional="false">
<description>
Command description for LeaveChatRequest
</description>
<arg name="cid" type="INT16U"/>
<arg name="uid" type="INT16U"/>
</command>
<command source="client" code="0x02" name="SearchChatRequest" optional="false">
<description>
Command description for SearchChatRequest
</description>
</command>
<command source="client" code="0x03" name="SwitchChairmanResponse" optional="true" disableDefaultResponse="true">
<description>
Command description for SwitchChairmanResponse
</description>
<arg name="cid" type="INT16U"/>
<arg name="uid" type="INT16U"/>
</command>
<command source="client" code="0x04" name="StartChatRequest" optional="true">
<description>
Command description for StartChatRequest
</description>
<arg name="name" type="CHAR_STRING"/>
<arg name="uid" type="INT16U"/>
<arg name="nickname" type="CHAR_STRING"/>
</command>
<command source="client" code="0x05" name="ChatMessage" optional="false">
<description>
Command description for ChatMessage
</description>
<arg name="destinationUid" type="INT16U"/>
<arg name="sourceUid" type="INT16U"/>
<arg name="cid" type="INT16U"/>
<arg name="nickname" type="CHAR_STRING"/>
<arg name="message" type="CHAR_STRING"/>
</command>
<command source="client" code="0x06" name="GetNodeInformationRequest" optional="true">
<description>
Command description for GetNodeInformationRequest
</description>
<arg name="cid" type="INT16U"/>
<arg name="uid" type="INT16U"/>
</command>
<command source="server" code="0x00" name="StartChatResponse" optional="true" disableDefaultResponse="true">
<description>
Command description for StartChatResponse
</description>
<arg name="status" type="ENUM8"/>
<arg name="cid" type="INT16U"/>
</command>
<command source="server" code="0x01" name="JoinChatResponse" optional="false" disableDefaultResponse="true">
<description>
Command description for JoinChatResponse
</description>
<arg name="status" type="ENUM8"/>
<arg name="cid" type="INT16U"/>
<arg name="chatParticipantList" type="ChatParticipant" array="true"/>
</command>
<command source="server" code="0x02" name="UserLeft" optional="false">
<description>
Command description for UserLeft
</description>
<arg name="cid" type="INT16U"/>
<arg name="uid" type="INT16U"/>
<arg name="nickname" type="CHAR_STRING"/>
</command>
<command source="server" code="0x03" name="UserJoined" optional="false">
<description>
Command description for UserJoined
</description>
<arg name="cid" type="INT16U"/>
<arg name="uid" type="INT16U"/>
<arg name="nickname" type="CHAR_STRING"/>
</command>
<command source="server" code="0x04" name="SearchChatResponse" optional="false" disableDefaultResponse="true">
<description>
Command description for SearchChatResponse
</description>
<arg name="options" type="BITMAP8"/>
<arg name="chatRoomList" type="ChatRoom" array="true"/>
</command>
<command source="server" code="0x05" name="SwitchChairmanRequest" optional="true">
<description>
Command description for SwitchChairmanRequest
</description>
<arg name="cid" type="INT16U"/>
</command>
<command source="server" code="0x06" name="SwitchChairmanConfirm" optional="true">
<description>
Command description for SwitchChairmanConfirm
</description>
<arg name="cid" type="INT16U"/>
<arg name="nodeInformationList" type="NodeInformation" array="true"/>
</command>
<command source="server" code="0x07" name="SwitchChairmanNotification" optional="true">
<description>
Command description for SwitchChairmanNotification
</description>
<arg name="cid" type="INT16U"/>
<arg name="uid" type="INT16U"/>
<arg name="address" type="DATA16"/>
<arg name="endpoint" type="INT8U"/>
</command>
<command source="server" code="0x08" name="GetNodeInformationResponse" optional="true" disableDefaultResponse="true">
<description>
Command description for GetNodeInformationResponse
</description>
<arg name="status" type="ENUM8"/>
<arg name="cid" type="INT16U"/>
<arg name="uid" type="INT16U"/>
<!-- Address, Endpoint, and Nickname will not be present if status is
SUCCESS. call-command-handler can't generate code for something that
complicated, so instead just send a buffer and leave parsing to the
user.
-->
<!--<arg name="address" type="DATA16" />-->
<!--<arg name="endpoint" type="INT8U" />-->
<!--<arg name="nickname" type="CHAR_STRING" />-->
<arg name="addressEndpointAndNickname" type="INT8U" array="true"/>
</command>
</cluster>
<cluster>
<name>Payment</name>
<domain>Financial</domain>
<description>Commands and attributes for payment scenarios including ZigBee devices.</description>
<code>0x0A01</code>
<define>PAYMENT_CLUSTER</define>
<client tick="false" init="false">true</client>
<server tick="false" init="false">true</server>
<attribute side="server" code="0x0000" define="PAYMENT_USER_ID" type="OCTET_STRING" length="64" writable="false" optional="false">user id</attribute>
<attribute side="server" code="0x0001" define="USER_TYPE" type="INT16U" writable="false" optional="true">user type</attribute>
<attribute side="server" code="0x0010" define="PAYMENT_SERVICE_ID" type="INT16U" writable="false" optional="false">service id</attribute>
<attribute side="server" code="0x0011" define="PAYMENT_SERVICE_PROVIDER_ID" type="INT16U" writable="false" optional="false">service provider id</attribute>
<attribute side="server" code="0x0012" define="TOTEM_ID" type="INT16U" writable="false" optional="true">totem id</attribute>
<attribute side="server" code="0x0020" define="CURRENCY" type="INT32U" writable="false" optional="false">currency</attribute>
<attribute side="server" code="0x0021" define="PRICE_TRAILING_DIGIT" type="INT8U" writable="false" optional="false">price trailing digit</attribute>
<attribute side="server" code="0x0022" define="PRICE" type="INT32U" writable="false" optional="false">price</attribute>
<attribute side="server" code="0x0030" define="GOOD_ID" type="OCTET_STRING" length="64" writable="false" optional="false">good id</attribute>
<attribute side="server" code="0x0031" define="SERIAL_NUMBER" type="OCTET_STRING" length="64" writable="false" optional="false">serial number</attribute>
<attribute side="server" code="0x0032" define="PAYMENT_TIMESTAMP" type="OCTET_STRING" length="64" writable="false" optional="false">timestamp</attribute>
<attribute side="server" code="0x0033" define="TRANS_ID" type="INT16U" writable="true" optional="true">trans id</attribute>
<attribute side="server" code="0x0034" define="TRANS_STATUS" type="ENUM8" writable="true" optional="true">trans status</attribute>
<attribute side="server" code="0x0035" define="PAYMENT_STATUS" type="ENUM8" writable="false" optional="false">status</attribute>
<command source="client" code="0x00" name="BuyRequest" optional="true">
<description>
Command description for BuyRequest
</description>
<arg name="userId" type="OCTET_STRING"/>
<arg name="userType" type="INT16U"/>
<arg name="serviceId" type="INT16U"/>
<arg name="goodId" type="OCTET_STRING"/>
</command>
<command source="client" code="0x01" name="AcceptPayment" optional="true">
<description>
Command description for AcceptPayment
</description>
<arg name="userId" type="OCTET_STRING"/>
<arg name="userType" type="INT16U"/>
<arg name="serviceId" type="INT16U"/>
<arg name="goodId" type="OCTET_STRING"/>
</command>
<command source="client" code="0x02" name="PaymentConfirm" optional="true">
<description>
Command description for PaymentConfirm
</description>
<arg name="serialNumber" type="OCTET_STRING"/>
<arg name="transId" type="INT16U"/>
<arg name="transStatus" type="ENUM8"/>
</command>
<command source="server" code="0x00" name="BuyConfirm" optional="false">
<description>
Command description for BuyConfirm
</description>
<arg name="serialNumber" type="OCTET_STRING"/>
<arg name="currency" type="INT32U"/>
<arg name="priceTrailingDigit" type="INT8U"/>
<arg name="price" type="INT32U"/>
<arg name="timestamp" type="OCTET_STRING"/>
<arg name="transId" type="INT16U"/>
<arg name="transStatus" type="ENUM8"/>
</command>
<command source="server" code="0x01" name="ReceiptDelivery" optional="false">
<description>
Command description for ReceiptDelivery
</description>
<arg name="serialNumber" type="OCTET_STRING"/>
<arg name="currency" type="INT32U"/>
<arg name="priceTrailingDigit" type="INT8U"/>
<arg name="price" type="INT32U"/>
<arg name="timestamp" type="OCTET_STRING"/>
</command>
<command source="server" code="0x02" name="TransactionEnd" optional="false">
<description>
Command description for TransactionEnd
</description>
<arg name="serialNumber" type="OCTET_STRING"/>
<arg name="status" type="ENUM8"/>
</command>
</cluster>
<cluster>
<name>Billing</name>
<domain>Financial</domain>
<description>Attributes and commands to enable billing of users for provided services through the use of a billing platform.</description>
<code>0x0A02</code>
<define>BILLING_CLUSTER</define>
<client tick="false" init="false">true</client>
<server tick="false" init="false">true</server>
<attribute side="server" code="0x0000" define="USER_ID" type="OCTET_STRING" length="64" writable="false" optional="false">user id</attribute>
<attribute side="server" code="0x0010" define="SERVICE_ID" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">service id</attribute>
<attribute side="server" code="0x0011" define="SERVICE_PROVIDER_ID" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">service provider id</attribute>
<attribute side="server" code="0x0012" define="SESSION_INTERVAL" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">session interval</attribute>
<attribute side="server" code="0x0020" define="TIMESTAMP" type="OCTET_STRING" length="64" writable="false" optional="false">timestamp</attribute>
<attribute side="server" code="0x0021" define="DURATION" type="INT16U" writable="true" optional="true">duration</attribute>
<command source="client" code="0x00" name="Subscribe" optional="true">
<description>
Command description for Subscribe
</description>
<arg name="userId" type="OCTET_STRING"/>
<arg name="serviceId" type="INT16U"/>
<arg name="serviceProviderId" type="INT16U"/>
</command>
<command source="client" code="0x01" name="Unsubscribe" optional="true">
<description>
Command description for Unsubscribe
</description>
<arg name="userId" type="OCTET_STRING"/>
<arg name="serviceId" type="INT16U"/>
<arg name="serviceProviderId" type="INT16U"/>
</command>
<command source="client" code="0x02" name="StartBillingSession" optional="true">
<description>
Command description for StartBillingSession
</description>
<arg name="userId" type="OCTET_STRING"/>
<arg name="serviceId" type="INT16U"/>
<arg name="serviceProviderId" type="INT16U"/>
</command>
<command source="client" code="0x03" name="StopBillingSession" optional="true">
<description>
Command description for StopBillingSession
</description>
<arg name="userId" type="OCTET_STRING"/>
<arg name="serviceId" type="INT16U"/>
<arg name="serviceProviderId" type="INT16U"/>
</command>
<command source="client" code="0x04" name="BillStatusNotification" optional="true">
<description>
Command description for BillStatusNotification
</description>
<arg name="userId" type="OCTET_STRING"/>
<arg name="status" type="ENUM8"/>
</command>
<command source="client" code="0x05" name="SessionKeepAlive" optional="true">
<description>
Command description for SessionKeepAlive
</description>
<arg name="userId" type="OCTET_STRING"/>
<arg name="serviceId" type="INT16U"/>
<arg name="serviceProviderId" type="INT16U"/>
</command>
<command source="server" code="0x00" name="CheckBillStatus" optional="false">
<description>
Command description for CheckBillStatus
</description>
<arg name="userId" type="OCTET_STRING"/>
<arg name="serviceId" type="INT16U"/>
<arg name="serviceProviderId" type="INT16U"/>
</command>
<command source="server" code="0x01" name="SendBillRecord" optional="false">
<description>
Command description for SendBillRecord
</description>
<arg name="userId" type="OCTET_STRING"/>
<arg name="serviceId" type="INT16U"/>
<arg name="serviceProviderId" type="INT16U"/>
<arg name="timestamp" type="OCTET_STRING"/>
<arg name="duration" type="INT16U"/>
</command>
</cluster>
</configurator>