3 Copyright (c) 2008,2020 Silicon Labs.
5 Licensed under the Apache License, Version 2.0 (the "License");
6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at
9 http://www.apache.org/licenses/LICENSE-2.0
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
18 <domain name="Telecom Applications" spec="ta-1.0-07-5307-07" dependsOn="zcl-1.0-07-5123-03"/>
19 <domain name="Protocol Interfaces" spec="ta-1.0-07-5307-07" dependsOn="zcl-1.0-07-5123-03"/>
20 <domain name="Telecommunication" spec="ta-1.0-07-5307-07" dependsOn="zcl-1.0-07-5123-03"/>
21 <domain name="Financial" spec="ta-1.0-07-5307-07" dependsOn="zcl-1.0-07-5123-03"/>
23 <name>Partition</name>
24 <domain>General</domain>
25 <description>Commands and attributes for enabling partitioning of large frame to be carried from other clusters of ZigBee devices.</description>
27 <define>PARTITION_CLUSTER</define>
28 <client tick="false" init="false">true</client>
29 <server tick="false" init="false">true</server>
30 <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>
31 <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>
32 <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>
33 <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>
34 <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>
35 <attribute side="server" code="0x0005" define="NACK_TIMEOUT" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">nack timeout</attribute>
36 <attribute side="server" code="0x0006" define="INTERFRAME_DELAY" type="INT8U" min="0x00" max="0xFF" writable="true" optional="false">interframe delay</attribute>
37 <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>
38 <attribute side="server" code="0x0008" define="SENDER_TIMEOUT" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">sender timeout</attribute>
39 <attribute side="server" code="0x0009" define="RECEIVER_TIMEOUT" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">receiver timeout</attribute>
40 <command source="client" code="0x00" name="TransferPartitionedFrame" optional="false">
41 <description>The TransferPartitionedFrame command is used to send a partitioned frame to another Partition cluster.</description>
42 <arg name="fragmentationOptions" type="BITMAP8"/>
43 <!-- Partition Indicator can be one or two bytes depending on the bits in
44 Fragmentation Options. call-command-handler can't generate code for
45 something that complicated, so instead just send a buffer and leave
48 <!--<arg name="partitionIndicator" type="INT8U/INT16U" />-->
49 <!--<arg name="partitionedFrame" type="OCTET_STRING" />-->
50 <arg name="partitionedIndicatorAndFrame" type="INT8U" array="true"/>
52 <command source="client" code="0x01" name="ReadHandshakeParam" optional="false">
53 <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>
54 <arg name="partitionedClusterId" type="CLUSTER_ID"/>
55 <arg name="attributeList" type="ATTRIBUTE_ID" array="true"/>
57 <command source="client" code="0x02" name="WriteHandshakeParam" optional="false">
58 <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>
59 <arg name="partitionedClusterId" type="CLUSTER_ID"/>
60 <arg name="writeAttributeRecords" type="WriteAttributeRecord" array="true"/>
62 <command source="server" code="0x00" name="MultipleAck" optional="false">
63 <description>MultipleACK command.</description>
64 <arg name="ackOptions" type="BITMAP8"/>
65 <!-- First Frame ID and the list of NACK IDs can be one or two bytes
66 depending on the bits in ACK Options. call-command-handler can't
67 generate code for something that complicated, so instead just send a
68 buffer and leave parsing to the user.
70 <!--<arg name="firstFrameId" type="INT8U/INT16U" />-->
71 <!--<arg name="nackList" type="INT8U/INT16U" array="true" />-->
72 <arg name="firstFrameIdAndNackList" type="INT8U" array="true"/>
74 <command source="server" code="0x01" name="ReadHandshakeParamResponse" optional="false" disableDefaultResponse="true">
75 <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>
76 <arg name="partitionedClusterId" type="CLUSTER_ID"/>
77 <arg name="readAttributeStatusRecords" type="ReadAttributeStatusRecord" array="true"/>
81 <name>ISO 7816 Protocol Tunnel</name>
82 <domain>Protocol Interfaces</domain>
83 <description>Commands and attributes for mobile office solutions including ZigBee devices.</description>
85 <define>ISO7816_PROTOCOL_TUNNEL_CLUSTER</define>
86 <client tick="false" init="false">true</client>
87 <server tick="false" init="false">true</server>
88 <attribute side="server" code="0x0000" define="ISO7816_PROTOCOL_TUNNEL_STATUS" type="INT8U" min="0x00" max="0x01" writable="false" default="0x00" optional="false">status</attribute>
89 <command source="either" code="0x00" name="TransferApdu" optional="false">
91 Command description for TransferApdu
93 <arg name="apdu" type="OCTET_STRING"/>
95 <command source="client" code="0x01" name="InsertSmartCard" optional="false">
97 Command description for InsertSmartCard
100 <command source="client" code="0x02" name="ExtractSmartCard" optional="false">
102 Command description for ExtractSmartCard
107 <name>Information</name>
108 <domain>Telecommunication</domain>
109 <description>Provides commands and attributes for information delivery service on ZigBee networks.</description>
111 <define>INFORMATION_CLUSTER</define>
112 <client tick="false" init="false">true</client>
113 <server tick="false" init="false">true</server>
114 <attribute side="server" code="0x0000" define="NODE_DESCRIPTION" type="CHAR_STRING" length="16" writable="false" optional="false">node description</attribute>
115 <attribute side="server" code="0x0001" define="DELIVERY_ENABLE" type="BOOLEAN" min="0x00" max="0x01" writable="false" optional="false">delivery enable</attribute>
116 <attribute side="server" code="0x0002" define="PUSH_INFORMATION_TIMER" type="INT32U" writable="false" optional="true">push information timer</attribute>
117 <attribute side="server" code="0x0003" define="ENABLE_SECURE_CONFIGURATION" type="BOOLEAN" min="0x00" max="0x01" writable="false" optional="false">enable secure configuration</attribute>
118 <attribute side="server" code="0x0010" define="NUMBER_OF_CONTENTS" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="true">number of contents</attribute>
119 <attribute side="server" code="0x0011" define="CONTENT_ROOT_ID" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="true">content root id</attribute>
120 <command source="client" code="0x00" name="RequestInformation" optional="false">
122 Command description for RequestInformation
124 <arg name="inquiryId" type="ENUM8"/>
125 <arg name="dataTypeId" type="BITMAP8"/>
126 <!-- Request Information Payload varies depending on Data Type ID.
127 call-command-handler can't generate code for something that
128 complicated, so instead just send a buffer and leave parsing to the
131 <arg name="requestInformationPayload" type="INT8U" array="true"/>
133 <command source="client" code="0x01" name="PushInformationResponse" optional="false" disableDefaultResponse="true">
135 Command description for PushInformationResponse
137 <arg name="notificationList" type="Notification" array="true"/>
139 <command source="client" code="0x02" name="SendPreference" optional="true">
141 Command description for SendPreference
143 <arg name="preferenceType" type="INT16U"/>
144 <!-- Request Information Payload varies depending on Preference Type.
145 call-command-handler can't generate code for something that
146 complicated, so instead just send a buffer and leave parsing to the
149 <arg name="preferencePayload" type="INT8U" array="true"/>
151 <command source="client" code="0x03" name="RequestPreferenceResponse" optional="true" disableDefaultResponse="true">
153 Command description for RequestPreferenceResponse
155 <arg name="statusFeedback" type="Status"/>
156 <arg name="preferenceType" type="INT16U"/>
157 <!-- Preference Payload varies depending on Preference Type.
158 call-command-handler can't generate code for something that
159 complicated, so instead just send a buffer and leave parsing to the
162 <arg name="preferencePayload" type="INT8U" array="true"/>
164 <command source="client" code="0x04" name="Update" optional="true">
166 Command description for Update
168 <arg name="accessControl" type="ENUM8"/>
169 <arg name="option" type="BITMAP8"/>
170 <arg name="contents" type="INT8U" array="true"/>
172 <command source="client" code="0x05" name="Delete" optional="true">
174 Command description for Delete
176 <arg name="deletionOptions" type="BITMAP8"/>
177 <arg name="contentIds" type="INT16U" array="true"/>
179 <command source="client" code="0x06" name="ConfigureNodeDescription" optional="true">
181 Command description for ConfigureNodeDescription
183 <arg name="description" type="CHAR_STRING"/>
185 <command source="client" code="0x07" name="ConfigureDeliveryEnable" optional="true">
187 Command description for ConfigureDeliveryEnable
189 <arg name="enable" type="BOOLEAN"/>
191 <command source="client" code="0x08" name="ConfigurePushInformationTimer" optional="true">
193 Command description for ConfigurePushInformationTimer
195 <arg name="timer" type="INT32U"/>
197 <command source="client" code="0x09" name="ConfigureSetRootId" optional="true">
199 Command description for ConfigureSetRootId
201 <arg name="rootId" type="INT16U"/>
203 <command source="server" code="0x00" name="RequestInformationResponse" optional="false" disableDefaultResponse="true">
205 Command description for RequestInformationResponse
207 <arg name="number" type="INT8U"/>
208 <!-- Each Status field will be followed by a Single Content or Content ID,
209 which are variable length. call-command-handler can't generate code
210 for something that complicated, so instead just send a buffer and
211 leave parsing to the user.
213 <arg name="buffer" type="INT8U" array="true"/>
215 <command source="server" code="0x01" name="PushInformation" optional="false">
217 Command description for PushInformation
219 <arg name="contents" type="INT8U" array="true"/>
221 <command source="server" code="0x02" name="SendPreferenceResponse" optional="true" disableDefaultResponse="true">
223 Command description for SendPreferenceResponse
225 <arg name="statusFeedbackList" type="Status" array="true"/>
227 <command source="server" code="0x03" name="ServerRequestPreference" optional="true">
229 Command description for ServerRequestPreference
232 <command source="server" code="0x04" name="RequestPreferenceConfirmation" optional="true">
234 Command description for RequestPreferenceConfirmation
236 <arg name="statusFeedbackList" type="Status" array="true"/>
238 <command source="server" code="0x05" name="UpdateResponse" optional="true" disableDefaultResponse="true">
240 Command description for UpdateResponse
242 <arg name="notificationList" type="Notification" array="true"/>
244 <command source="server" code="0x06" name="DeleteResponse" optional="true" disableDefaultResponse="true">
246 Command description for DeleteResponse
248 <arg name="notificationList" type="Notification" array="true"/>
252 <name>Data Sharing</name>
253 <domain>Telecommunication</domain>
254 <description>Commands and attributes for small data sharing among ZigBee devices.</description>
256 <define>DATA_SHARING_CLUSTER</define>
257 <client tick="false" init="false">true</client>
258 <server tick="false" init="false">true</server>
259 <attribute side="server" code="0x0000" define="DEVICE_NAME" type="CHAR_STRING" length="16" writable="false" optional="false">device name</attribute>
260 <attribute side="server" code="0x0001" define="DEVICE_DESCRIPTION" type="CHAR_STRING" length="16" writable="false" optional="true">device description</attribute>
261 <command source="client" code="0x00" name="ReadFileRequest" optional="false">
263 Command description for ReadFileRequest
265 <arg name="fileIndex" type="INT16U"/>
266 <!-- File Start Position and Requested Octet Count are optional fields and
267 may not be present. call-command-handler can't generate code for
268 something that complicated, so instead just send a buffer and leave
271 <!--<arg name="fileStartPosition" type="INT32U" />-->
272 <!--<arg name="requestedOctetCount" type="INT32U" />-->
273 <arg name="fileStartPositionAndRequestedOctetCount" type="INT8U" array="true"/>
275 <command source="client" code="0x01" name="ReadRecordRequest" optional="true">
277 Command description for ReadRecordRequest
279 <arg name="fileIndex" type="INT16U"/>
280 <!-- File Start Record and Requested Record Count are optional fields and
281 may not be present. call-command-handler can't generate code for
282 something that complicated, so instead just send a buffer and leave
285 <!--<arg name="fileStartRecord" type="INT16U" />-->
286 <!--<arg name="requestedRecordCount" type="INT16U" />-->
287 <arg name="fileStartRecordAndRequestedRecordCount" type="INT8U" array="true"/>
289 <command source="client" code="0x02" name="WriteFileResponse" optional="true" disableDefaultResponse="true">
291 Command description for WriteFileResponse
293 <arg name="status" type="ENUM8"/>
294 <!-- File Index will not exist if status is SUCCESS. call-command-handler
295 can't generate code for something that complicated, so instead just
296 send a buffer and leave parsing to the user.
298 <!--<arg name="fileIndex" type="INT16U" />-->
299 <arg name="fileIndex" type="INT8U" array="true"/>
301 <command source="server" code="0x00" name="WriteFileRequest" optional="true">
303 Command description for WriteFileRequest
305 <arg name="writeOptions" type="BITMAP8"/>
306 <!-- Partition Indicator can be one or two bytes depending on the bits in
307 Fragmentation Options. call-command-handler can't generate code for
308 something that complicated, so instead just send a buffer and leave
311 <!--<arg name="fileSize" type="INT8U/INT16U" />-->
312 <arg name="fileSize" type="INT8U" array="true"/>
314 <command source="server" code="0x01" name="ModifyFileRequest" optional="true">
316 Command description for ModifyFileRequest
318 <arg name="fileIndex" type="INT16U"/>
319 <arg name="fileStartPosition" type="INT32U"/>
320 <arg name="octetCount" type="INT32U"/>
322 <command source="server" code="0x02" name="ModifyRecordRequest" optional="true">
324 Command description for ModifyRecordRequest
326 <arg name="fileIndex" type="INT16U"/>
327 <arg name="fileStartRecord" type="INT16U"/>
328 <arg name="recordCount" type="INT16U"/>
330 <command source="server" code="0x03" name="FileTransmission" optional="false">
332 Command description for FileTransmission
334 <arg name="transmitOptions" type="BITMAP8"/>
335 <!-- File Index, File Start Position, File Length, and File Data may not
336 be present. call-command-handler can't generate code for something
337 that complicated, so instead just send a buffer and leave parsing to
340 <!--<arg name="fileIndex" type="INT16U" />-->
341 <!--<arg name="fileStartPosition" type="INT32U" />-->
342 <!--<arg name="fileLength" type="INT32U" />-->
343 <!--<arg name="fileData" type="OCTET" array="true" />-->
344 <arg name="buffer" type="INT8U" array="true"/>
346 <command source="server" code="0x04" name="RecordTransmission" optional="true">
348 Command description for RecordTransmission
350 <arg name="transmitOptions" type="BITMAP8"/>
351 <!-- File Index, File Start Record, Record Count, and Record File Data may
352 not be present. call-command-handler can't generate code for
353 something that complicated, so instead just send a buffer and leave
356 <!--<arg name="fileIndex" type="INT16U" />-->
357 <!--<arg name="fileStartRecord" type="INT16U" />-->
358 <!--<arg name="recordCount" type="INT16U" />-->
359 <!--<arg name="recordFileData" type="CHAR" array="true" />-->
360 <arg name="buffer" type="INT8U" array="true"/>
365 <domain>Telecommunication</domain>
366 <description>Attributes and commands to support gaming functions of ZigBee-enabled mobile terminals.</description>
368 <define>GAMING_CLUSTER</define>
369 <client tick="false" init="false">true</client>
370 <server tick="false" init="false">true</server>
371 <attribute side="server" code="0x0000" define="PLAYER_NAME" type="CHAR_STRING" length="16" writable="false" optional="false">player name</attribute>
372 <attribute side="server" code="0x0001" define="NB_OF_GAMES" type="INT8U" min="0x00" max="0xFE" writable="false" optional="false">nb of games</attribute>
373 <attribute side="server" code="0x0002" define="LIST_OF_GAMES" type="CHAR_STRING" length="16" writable="false" optional="false">list of games</attribute>
374 <attribute side="server" code="0x0003" define="ANNOUNCEMENT_INTERVAL" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">announcement interval</attribute>
375 <attribute side="server" code="0x0010" define="GAME_ID" type="INT16U" min="0x0001" max="0x00FE" writable="false" optional="false">game id</attribute>
376 <attribute side="server" code="0x0011" define="NAME_OF_GAME" type="CHAR_STRING" length="16" writable="false" optional="false">name of game</attribute>
377 <attribute side="server" code="0x0012" define="GAME_MASTER" type="BOOLEAN" writable="false" optional="false">game master</attribute>
378 <attribute side="server" code="0x0013" define="GAMING_STATUS" type="BITMAP8" min="0x00" max="0xFF" writable="false" optional="false">status</attribute>
379 <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>
380 <attribute side="server" code="0x0015" define="LIST_OF_CURRENT_PLAYERS" type="CHAR_STRING" length="16" writable="false" optional="false">list of current players</attribute>
381 <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>
382 <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>
383 <attribute side="server" code="0x0018" define="CURRENT_GAME_LEVEL" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">current game level</attribute>
384 <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>
385 <attribute side="server" code="0x001A" define="TIMER1" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">timer1</attribute>
386 <attribute side="server" code="0x001B" define="TIMER2" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">timer2</attribute>
387 <attribute side="server" code="0x001C" define="TIMER3" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">timer3</attribute>
388 <attribute side="server" code="0x001D" define="COUNTER1" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">counter1</attribute>
389 <attribute side="server" code="0x001E" define="COUNTER2" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">counter2</attribute>
390 <attribute side="server" code="0x001F" define="DOWNLOADABLE" type="BOOLEAN" min="0x00" max="0x01" writable="false" optional="true">downloadable</attribute>
391 <command source="client" code="0x00" name="SearchGame" optional="false">
393 Command description for SearchGame
395 <arg name="specificGame" type="ENUM8"/>
396 <arg name="gameId" type="INT16U"/>
398 <command source="client" code="0x01" name="JoinGame" optional="false">
400 Command description for JoinGame
402 <arg name="gameId" type="INT16U"/>
403 <arg name="joinAsMaster" type="BOOLEAN"/>
404 <arg name="nameOfGame" type="CHAR_STRING"/>
406 <command source="client" code="0x02" name="StartGame" optional="false">
408 Command description for StartGame
411 <command source="client" code="0x03" name="PauseGame" optional="false">
413 Command description for PauseGame
416 <command source="client" code="0x04" name="ResumeGame" optional="false">
418 Command description for ResumeGame
421 <command source="client" code="0x05" name="QuitGame" optional="false">
423 Command description for QuitGame
426 <command source="client" code="0x06" name="EndGame" optional="false">
428 Command description for EndGame
431 <command source="client" code="0x07" name="StartOver" optional="false">
433 Command description for StartOver
436 <command source="client" code="0x08" name="ActionControl" optional="false">
438 Command description for ActionControl
440 <arg name="actions" type="BITMAP32"/>
442 <command source="client" code="0x09" name="DownloadGame" optional="true">
444 Command description for DownloadGame
447 <command source="server" code="0x00" name="GameAnnouncement" optional="false">
449 Command description for GameAnnouncement
451 <arg name="gameId" type="INT16U"/>
452 <arg name="gameMaster" type="BOOLEAN"/>
453 <arg name="listOfGame" type="CHAR_STRING"/>
455 <command source="server" code="0x01" name="GeneralResponse" optional="false" disableDefaultResponse="true">
457 Command description for GeneralResponse
459 <arg name="commandId" type="INT8U"/>
460 <arg name="status" type="BITMAP8"/>
461 <arg name="message" type="CHAR_STRING"/>
465 <name>Data Rate Control</name>
466 <domain>Telecommunication</domain>
467 <description>This cluster seeks to give applications a means to managing data rate. It provides commands and attributes which form this interface.</description>
469 <define>DATA_RATE_CONTROL_CLUSTER</define>
470 <client tick="false" init="false">true</client>
471 <server tick="false" init="false">true</server>
472 <attribute side="server" code="0x0000" define="AVERAGE_LATENCY_REQUIREMENT" type="INT8U" min="0x00" max="0xFF" writable="false" optional="true">average latency requirement</attribute>
473 <attribute side="server" code="0x0001" define="MAX_LATENCY_REQUIREMENT" type="INT8U" min="0x00" max="0xFF" writable="false" optional="true">max latency requirement</attribute>
474 <attribute side="server" code="0x0002" define="BANDWIDTH_REQUIREMENT" type="INT8U" min="0x00" max="0xFF" writable="true" optional="true">bandwidth requirement</attribute>
475 <command source="client" code="0x00" name="PathCreation" optional="true">
477 Command description for PathCreation
479 <arg name="originatorAddress" type="DATA16"/>
480 <arg name="destinationAddress" type="DATA16"/>
481 <arg name="dataRate" type="INT8U"/>
483 <command source="client" code="0x01" name="DataRateNotification" optional="true">
485 Command description for DataRateNotification
487 <arg name="originatorAddress" type="DATA16"/>
488 <arg name="destinationAddress" type="DATA16"/>
489 <arg name="dataRate" type="INT8U"/>
491 <command source="client" code="0x02" name="PathDeletion" optional="true">
493 Command description for PathDeletion
495 <arg name="originatorAddress" type="DATA16"/>
496 <arg name="destinationAddress" type="DATA16"/>
498 <command source="server" code="0x00" name="DataRateControl" optional="false">
500 Command description for DataRateControl
502 <arg name="originatorAddress" type="DATA16"/>
503 <arg name="destinationAddress" type="DATA16"/>
504 <arg name="dataRate" type="INT8U"/>
508 <name>Voice over ZigBee</name>
509 <domain>Telecommunication</domain>
510 <description>This cluster seeks to provide an interface to a voice over ZigBee protocol.</description>
512 <define>VOICE_OVER_ZIGBEE_CLUSTER</define>
513 <client tick="false" init="false">true</client>
514 <server tick="false" init="false">true</server>
515 <attribute side="server" code="0x0000" define="CODEC_TYPE" type="ENUM8" min="0x01" max="0x04" writable="true" optional="false">codec type</attribute>
516 <attribute side="server" code="0x0001" define="SAMPLING_FREQUENCY" type="ENUM8" min="0x01" max="0x03" writable="true" optional="false">sampling frequency</attribute>
517 <attribute side="server" code="0x0002" define="CODEC_RATE" type="ENUM8" min="0x01" max="0x0A" writable="true" optional="false">codec rate</attribute>
518 <attribute side="server" code="0x0003" define="ESTABLISHMENT_TIMEOUT" type="INT8U" min="0x01" max="0xFF" optional="false">establishment timeout</attribute>
519 <attribute side="server" code="0x0004" define="CODEC_TYPE_SUB1" type="ENUM8" writable="true" optional="true">codec type sub 1</attribute>
520 <attribute side="server" code="0x0005" define="CODEC_TYPE_SUB2" type="ENUM8" writable="true" optional="true">codec type sub 2</attribute>
521 <attribute side="server" code="0x0006" define="CODEC_TYPE_SUB3" type="ENUM8" writable="true" optional="true">codec type sub 3</attribute>
522 <attribute side="server" code="0x0007" define="COMPRESSION_TYPE" type="ENUM8" min="0x01" max="0x02" optional="true">compression type</attribute>
523 <attribute side="server" code="0x0008" define="COMPRESSION_RATE" type="ENUM8" optional="true">compression rate</attribute>
524 <attribute side="server" code="0x0009" define="OPTION_FLAGS" type="BITMAP8" min="0x00" max="0xFF" writable="true" optional="true">option flags</attribute>
525 <attribute side="server" code="0x000A" define="THRESHOLD" type="INT8U" min="0x00" max="0xFF" writable="true" optional="true">threshold</attribute>
526 <command source="client" code="0x00" name="EstablishmentRequest" optional="false">
528 Command description for EstablishmentRequest
530 <arg name="flag" type="BITMAP8"/>
531 <arg name="codecType" type="ENUM8"/>
532 <arg name="sampFreq" type="ENUM8"/>
533 <arg name="codecRate" type="ENUM8"/>
534 <arg name="serviceType" type="ENUM8"/>
535 <!-- Codec Type S1, Codec Type S2, Codec Type S3, Comp. Type., and Comp.
536 Rate may not be present. call-command-handler can't generate code
537 for something that complicated, so instead just send a buffer and
538 leave parsing to the user.
540 <!--<arg name="codecTypeS1" type="ENUM8" />-->
541 <!--<arg name="codecTypeS2" type="ENUM8" />-->
542 <!--<arg name="codecTypeS3" type="ENUM8" />-->
543 <!--<arg name="compType" type="ENUM8" />-->
544 <!--<arg name="compRate" type="ENUM8" />-->
545 <arg name="buffer" type="INT8U" array="true"/>
547 <command source="client" code="0x01" name="VoiceTransmission" optional="false">
549 Command description for VoiceTransmission
551 <arg name="voiceData" type="INT8U" array="true"/>
553 <command source="client" code="0x02" name="VoiceTransmissionCompletion" optional="true">
555 Command description for VoiceTransmissionCompletion
558 <command source="client" code="0x03" name="ControlResponse" optional="true" disableDefaultResponse="true">
560 Command description for ControlResponse
562 <arg name="ackNack" type="ENUM8"/>
564 <command source="server" code="0x00" name="EstablishmentResponse" optional="false" disableDefaultResponse="true">
566 Command description for EstablishmentResponse
568 <arg name="ackNack" type="ENUM8"/>
569 <arg name="codecType" type="ENUM8"/>
571 <command source="server" code="0x01" name="VoiceTransmissionResponse" optional="false" disableDefaultResponse="true">
573 Command description for VoiceTransmissionResponse
575 <arg name="sequenceNumber" type="INT8U"/>
576 <arg name="errorFlag" type="ENUM8"/>
578 <command source="server" code="0x02" name="Control" optional="true">
580 Command description for Control
582 <arg name="controlType" type="ENUM8"/>
586 <name>Chatting</name>
587 <domain>Telecommunication</domain>
588 <description>Commands and attributes for sending chat messages among ZigBee devices.</description>
590 <define>CHATTING_CLUSTER</define>
591 <client tick="false" init="false">true</client>
592 <server tick="false" init="false">true</server>
593 <attribute side="server" code="0x0000" define="U_ID" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">u id</attribute>
594 <attribute side="server" code="0x0001" define="NICKNAME" type="CHAR_STRING" length="16" writable="false" optional="false">nickname</attribute>
595 <attribute side="server" code="0x0010" define="C_ID" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">c iD</attribute>
596 <attribute side="server" code="0x0011" define="NAME" type="CHAR_STRING" length="16" writable="false" optional="false">name</attribute>
597 <attribute side="server" code="0x0020" define="ENABLE_ADD_CHAT" type="BOOLEAN" min="0x00" max="0x01" writable="false" optional="true">enable add chat</attribute>
598 <command source="client" code="0x00" name="JoinChatRequest" optional="false">
600 Command description for JoinChatRequest
602 <arg name="uid" type="INT16U"/>
603 <arg name="nickname" type="CHAR_STRING"/>
604 <arg name="cid" type="INT16U"/>
606 <command source="client" code="0x01" name="LeaveChatRequest" optional="false">
608 Command description for LeaveChatRequest
610 <arg name="cid" type="INT16U"/>
611 <arg name="uid" type="INT16U"/>
613 <command source="client" code="0x02" name="SearchChatRequest" optional="false">
615 Command description for SearchChatRequest
618 <command source="client" code="0x03" name="SwitchChairmanResponse" optional="true" disableDefaultResponse="true">
620 Command description for SwitchChairmanResponse
622 <arg name="cid" type="INT16U"/>
623 <arg name="uid" type="INT16U"/>
625 <command source="client" code="0x04" name="StartChatRequest" optional="true">
627 Command description for StartChatRequest
629 <arg name="name" type="CHAR_STRING"/>
630 <arg name="uid" type="INT16U"/>
631 <arg name="nickname" type="CHAR_STRING"/>
633 <command source="client" code="0x05" name="ChatMessage" optional="false">
635 Command description for ChatMessage
637 <arg name="destinationUid" type="INT16U"/>
638 <arg name="sourceUid" type="INT16U"/>
639 <arg name="cid" type="INT16U"/>
640 <arg name="nickname" type="CHAR_STRING"/>
641 <arg name="message" type="CHAR_STRING"/>
643 <command source="client" code="0x06" name="GetNodeInformationRequest" optional="true">
645 Command description for GetNodeInformationRequest
647 <arg name="cid" type="INT16U"/>
648 <arg name="uid" type="INT16U"/>
650 <command source="server" code="0x00" name="StartChatResponse" optional="true" disableDefaultResponse="true">
652 Command description for StartChatResponse
654 <arg name="status" type="ENUM8"/>
655 <arg name="cid" type="INT16U"/>
657 <command source="server" code="0x01" name="JoinChatResponse" optional="false" disableDefaultResponse="true">
659 Command description for JoinChatResponse
661 <arg name="status" type="ENUM8"/>
662 <arg name="cid" type="INT16U"/>
663 <arg name="chatParticipantList" type="ChatParticipant" array="true"/>
665 <command source="server" code="0x02" name="UserLeft" optional="false">
667 Command description for UserLeft
669 <arg name="cid" type="INT16U"/>
670 <arg name="uid" type="INT16U"/>
671 <arg name="nickname" type="CHAR_STRING"/>
673 <command source="server" code="0x03" name="UserJoined" optional="false">
675 Command description for UserJoined
677 <arg name="cid" type="INT16U"/>
678 <arg name="uid" type="INT16U"/>
679 <arg name="nickname" type="CHAR_STRING"/>
681 <command source="server" code="0x04" name="SearchChatResponse" optional="false" disableDefaultResponse="true">
683 Command description for SearchChatResponse
685 <arg name="options" type="BITMAP8"/>
686 <arg name="chatRoomList" type="ChatRoom" array="true"/>
688 <command source="server" code="0x05" name="SwitchChairmanRequest" optional="true">
690 Command description for SwitchChairmanRequest
692 <arg name="cid" type="INT16U"/>
694 <command source="server" code="0x06" name="SwitchChairmanConfirm" optional="true">
696 Command description for SwitchChairmanConfirm
698 <arg name="cid" type="INT16U"/>
699 <arg name="nodeInformationList" type="NodeInformation" array="true"/>
701 <command source="server" code="0x07" name="SwitchChairmanNotification" optional="true">
703 Command description for SwitchChairmanNotification
705 <arg name="cid" type="INT16U"/>
706 <arg name="uid" type="INT16U"/>
707 <arg name="address" type="DATA16"/>
708 <arg name="endpoint" type="INT8U"/>
710 <command source="server" code="0x08" name="GetNodeInformationResponse" optional="true" disableDefaultResponse="true">
712 Command description for GetNodeInformationResponse
714 <arg name="status" type="ENUM8"/>
715 <arg name="cid" type="INT16U"/>
716 <arg name="uid" type="INT16U"/>
717 <!-- Address, Endpoint, and Nickname will not be present if status is
718 SUCCESS. call-command-handler can't generate code for something that
719 complicated, so instead just send a buffer and leave parsing to the
722 <!--<arg name="address" type="DATA16" />-->
723 <!--<arg name="endpoint" type="INT8U" />-->
724 <!--<arg name="nickname" type="CHAR_STRING" />-->
725 <arg name="addressEndpointAndNickname" type="INT8U" array="true"/>
730 <domain>Financial</domain>
731 <description>Commands and attributes for payment scenarios including ZigBee devices.</description>
733 <define>PAYMENT_CLUSTER</define>
734 <client tick="false" init="false">true</client>
735 <server tick="false" init="false">true</server>
736 <attribute side="server" code="0x0000" define="PAYMENT_USER_ID" type="OCTET_STRING" length="64" writable="false" optional="false">user id</attribute>
737 <attribute side="server" code="0x0001" define="USER_TYPE" type="INT16U" writable="false" optional="true">user type</attribute>
738 <attribute side="server" code="0x0010" define="PAYMENT_SERVICE_ID" type="INT16U" writable="false" optional="false">service id</attribute>
739 <attribute side="server" code="0x0011" define="PAYMENT_SERVICE_PROVIDER_ID" type="INT16U" writable="false" optional="false">service provider id</attribute>
740 <attribute side="server" code="0x0012" define="TOTEM_ID" type="INT16U" writable="false" optional="true">totem id</attribute>
741 <attribute side="server" code="0x0020" define="CURRENCY" type="INT32U" writable="false" optional="false">currency</attribute>
742 <attribute side="server" code="0x0021" define="PRICE_TRAILING_DIGIT" type="INT8U" writable="false" optional="false">price trailing digit</attribute>
743 <attribute side="server" code="0x0022" define="PRICE" type="INT32U" writable="false" optional="false">price</attribute>
744 <attribute side="server" code="0x0030" define="GOOD_ID" type="OCTET_STRING" length="64" writable="false" optional="false">good id</attribute>
745 <attribute side="server" code="0x0031" define="PAYMENT_SERIAL_NUMBER" type="OCTET_STRING" length="64" writable="false" optional="false">serial number</attribute>
746 <attribute side="server" code="0x0032" define="PAYMENT_TIMESTAMP" type="OCTET_STRING" length="64" writable="false" optional="false">timestamp</attribute>
747 <attribute side="server" code="0x0033" define="TRANS_ID" type="INT16U" writable="true" optional="true">trans id</attribute>
748 <attribute side="server" code="0x0034" define="TRANS_STATUS" type="ENUM8" writable="true" optional="true">trans status</attribute>
749 <attribute side="server" code="0x0035" define="PAYMENT_STATUS" type="ENUM8" writable="false" optional="false">status</attribute>
750 <command source="client" code="0x00" name="BuyRequest" optional="true">
752 Command description for BuyRequest
754 <arg name="userId" type="OCTET_STRING"/>
755 <arg name="userType" type="INT16U"/>
756 <arg name="serviceId" type="INT16U"/>
757 <arg name="goodId" type="OCTET_STRING"/>
759 <command source="client" code="0x01" name="AcceptPayment" optional="true">
761 Command description for AcceptPayment
763 <arg name="userId" type="OCTET_STRING"/>
764 <arg name="userType" type="INT16U"/>
765 <arg name="serviceId" type="INT16U"/>
766 <arg name="goodId" type="OCTET_STRING"/>
768 <command source="client" code="0x02" name="PaymentConfirm" optional="true">
770 Command description for PaymentConfirm
772 <arg name="serialNumber" type="OCTET_STRING"/>
773 <arg name="transId" type="INT16U"/>
774 <arg name="transStatus" type="ENUM8"/>
776 <command source="server" code="0x00" name="BuyConfirm" optional="false">
778 Command description for BuyConfirm
780 <arg name="serialNumber" type="OCTET_STRING"/>
781 <arg name="currency" type="INT32U"/>
782 <arg name="priceTrailingDigit" type="INT8U"/>
783 <arg name="price" type="INT32U"/>
784 <arg name="timestamp" type="OCTET_STRING"/>
785 <arg name="transId" type="INT16U"/>
786 <arg name="transStatus" type="ENUM8"/>
788 <command source="server" code="0x01" name="ReceiptDelivery" optional="false">
790 Command description for ReceiptDelivery
792 <arg name="serialNumber" type="OCTET_STRING"/>
793 <arg name="currency" type="INT32U"/>
794 <arg name="priceTrailingDigit" type="INT8U"/>
795 <arg name="price" type="INT32U"/>
796 <arg name="timestamp" type="OCTET_STRING"/>
798 <command source="server" code="0x02" name="TransactionEnd" optional="false">
800 Command description for TransactionEnd
802 <arg name="serialNumber" type="OCTET_STRING"/>
803 <arg name="status" type="ENUM8"/>
808 <domain>Financial</domain>
809 <description>Attributes and commands to enable billing of users for provided services through the use of a billing platform.</description>
811 <define>BILLING_CLUSTER</define>
812 <client tick="false" init="false">true</client>
813 <server tick="false" init="false">true</server>
814 <attribute side="server" code="0x0000" define="USER_ID" type="OCTET_STRING" length="64" writable="false" optional="false">user id</attribute>
815 <attribute side="server" code="0x0010" define="SERVICE_ID" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">service id</attribute>
816 <attribute side="server" code="0x0011" define="SERVICE_PROVIDER_ID" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">service provider id</attribute>
817 <attribute side="server" code="0x0012" define="SESSION_INTERVAL" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="false">session interval</attribute>
818 <attribute side="server" code="0x0020" define="TIMESTAMP" type="OCTET_STRING" length="64" writable="false" optional="false">timestamp</attribute>
819 <attribute side="server" code="0x0021" define="DURATION" type="INT16U" writable="true" optional="true">duration</attribute>
820 <command source="client" code="0x00" name="Subscribe" optional="true">
822 Command description for Subscribe
824 <arg name="userId" type="OCTET_STRING"/>
825 <arg name="serviceId" type="INT16U"/>
826 <arg name="serviceProviderId" type="INT16U"/>
828 <command source="client" code="0x01" name="Unsubscribe" optional="true">
830 Command description for Unsubscribe
832 <arg name="userId" type="OCTET_STRING"/>
833 <arg name="serviceId" type="INT16U"/>
834 <arg name="serviceProviderId" type="INT16U"/>
836 <command source="client" code="0x02" name="StartBillingSession" optional="true">
838 Command description for StartBillingSession
840 <arg name="userId" type="OCTET_STRING"/>
841 <arg name="serviceId" type="INT16U"/>
842 <arg name="serviceProviderId" type="INT16U"/>
844 <command source="client" code="0x03" name="StopBillingSession" optional="true">
846 Command description for StopBillingSession
848 <arg name="userId" type="OCTET_STRING"/>
849 <arg name="serviceId" type="INT16U"/>
850 <arg name="serviceProviderId" type="INT16U"/>
852 <command source="client" code="0x04" name="BillStatusNotification" optional="true">
854 Command description for BillStatusNotification
856 <arg name="userId" type="OCTET_STRING"/>
857 <arg name="status" type="ENUM8"/>
859 <command source="client" code="0x05" name="SessionKeepAlive" optional="true">
861 Command description for SessionKeepAlive
863 <arg name="userId" type="OCTET_STRING"/>
864 <arg name="serviceId" type="INT16U"/>
865 <arg name="serviceProviderId" type="INT16U"/>
867 <command source="server" code="0x00" name="CheckBillStatus" optional="false">
869 Command description for CheckBillStatus
871 <arg name="userId" type="OCTET_STRING"/>
872 <arg name="serviceId" type="INT16U"/>
873 <arg name="serviceProviderId" type="INT16U"/>
875 <command source="server" code="0x01" name="SendBillRecord" optional="false">
877 Command description for SendBillRecord
879 <arg name="userId" type="OCTET_STRING"/>
880 <arg name="serviceId" type="INT16U"/>
881 <arg name="serviceProviderId" type="INT16U"/>
882 <arg name="timestamp" type="OCTET_STRING"/>
883 <arg name="duration" type="INT16U"/>