@@ -10139,6 +10139,200 @@ provisional cluster WebRTCTransportRequestor = 1364 {
10139
10139
command End(EndRequest): DefaultSuccess = 4;
10140
10140
}
10141
10141
10142
+ /** */
10143
+ cluster PushAvStreamTransport = 1365 {
10144
+ revision 1;
10145
+
10146
+ enum ContainerFormatEnum : enum8 {
10147
+ kCMAF = 0;
10148
+ }
10149
+
10150
+ enum IngestMethodsEnum : enum8 {
10151
+ kCMAFIngest = 0;
10152
+ }
10153
+
10154
+ enum StatusCodeEnum : enum8 {
10155
+ kAllocationNotPermitted = 2;
10156
+ kInvalidTLSEndpoint = 3;
10157
+ kInvalidStream = 4;
10158
+ kInvalidURL = 5;
10159
+ kInvalidZone = 6;
10160
+ kUnsupportedContainerFormat = 7;
10161
+ kUnsupportedIngestMethod = 8;
10162
+ kInvalidTriggerType = 9;
10163
+ kInvalidTransportStatus = 16;
10164
+ }
10165
+
10166
+ enum StreamMultiplexingEnum : enum8 {
10167
+ kInterleaved = 0;
10168
+ }
10169
+
10170
+ enum StreamTypeEnum : enum8 {
10171
+ kInternal = 0;
10172
+ kRecording = 1;
10173
+ kAnalysis = 2;
10174
+ kLiveView = 3;
10175
+ }
10176
+
10177
+ enum TransportStatusEnum : enum8 {
10178
+ kActive = 0;
10179
+ kInactive = 1;
10180
+ }
10181
+
10182
+ enum TransportTriggerTypeEnum : enum8 {
10183
+ kCommand = 0;
10184
+ kMotion = 1;
10185
+ kContinuous = 2;
10186
+ }
10187
+
10188
+ enum TriggerActivationReasonEnum : enum8 {
10189
+ kUserInitiated = 0;
10190
+ kAutomation = 1;
10191
+ kEmergency = 2;
10192
+ }
10193
+
10194
+ bitmap Feature : bitmap32 {
10195
+ kPerZoneSensitivity = 0x1;
10196
+ }
10197
+
10198
+ bitmap SupportedContainerFormatsBitmap : bitmap8 {
10199
+ kCMAF = 0x1;
10200
+ }
10201
+
10202
+ bitmap SupportedIngestMethodsBitmap : bitmap8 {
10203
+ kCMAFIngest = 0x1;
10204
+ }
10205
+
10206
+ struct TransportMotionTriggerTimeControlStruct {
10207
+ int16u initialDuration = 0;
10208
+ int16u augmentationDuration = 1;
10209
+ elapsed_s maxDuration = 2;
10210
+ int16u blindDuration = 3;
10211
+ }
10212
+
10213
+ struct TransportZoneOptionsStruct {
10214
+ nullable int16u zone = 1;
10215
+ optional int8u sensitivity = 2;
10216
+ }
10217
+
10218
+ struct MetadataOptionsStruct {
10219
+ StreamMultiplexingEnum multiplexing = 0;
10220
+ boolean includeMotionZones = 1;
10221
+ boolean enableMetadataPrivacySensitive = 2;
10222
+ }
10223
+
10224
+ struct TransportTriggerOptionsStruct {
10225
+ TransportTriggerTypeEnum triggerType = 0;
10226
+ optional nullable TransportZoneOptionsStruct motionZones[] = 1;
10227
+ optional nullable int8u motionSensitivity = 2;
10228
+ optional TransportMotionTriggerTimeControlStruct motionTimeControl = 3;
10229
+ optional int16u maxPreRollLen = 4;
10230
+ }
10231
+
10232
+ struct CMAFContainerOptionsStruct {
10233
+ int16u chunkDuration = 0;
10234
+ optional octet_string CENCKey = 1;
10235
+ }
10236
+
10237
+ struct ContainerOptionsStruct {
10238
+ ContainerFormatEnum containerType = 0;
10239
+ optional CMAFContainerOptionsStruct CMAFContainerOptions = 1;
10240
+ }
10241
+
10242
+ struct TransportOptionsStruct {
10243
+ StreamTypeEnum streamType = 0;
10244
+ optional int16u videoStreamID = 1;
10245
+ optional int16u audioStreamID = 2;
10246
+ int16u endpointID = 3;
10247
+ long_char_string<256> url = 4;
10248
+ TransportTriggerOptionsStruct triggerOptions = 5;
10249
+ IngestMethodsEnum ingestMethod = 6;
10250
+ ContainerFormatEnum containerFormat = 7;
10251
+ ContainerOptionsStruct containerOptions = 8;
10252
+ optional MetadataOptionsStruct metadataOptions = 9;
10253
+ optional epoch_s expiryTime = 10;
10254
+ }
10255
+
10256
+ struct TransportConfigurationStruct {
10257
+ int16u connectionID = 0;
10258
+ TransportStatusEnum transportStatus = 1;
10259
+ TransportOptionsStruct transportOptions = 2;
10260
+ }
10261
+
10262
+ info event PushTransportBegin = 0 {
10263
+ int16u connectionID = 0;
10264
+ TransportTriggerTypeEnum triggerType = 1;
10265
+ optional TriggerActivationReasonEnum activationReason = 2;
10266
+ }
10267
+
10268
+ info event PushTransportEnd = 1 {
10269
+ int16u connectionID = 0;
10270
+ TransportTriggerTypeEnum triggerType = 1;
10271
+ optional TriggerActivationReasonEnum activationReason = 2;
10272
+ }
10273
+
10274
+ readonly attribute SupportedContainerFormatsBitmap supportedContainerFormats = 0;
10275
+ readonly attribute SupportedIngestMethodsBitmap supportedIngestMethods = 1;
10276
+ readonly attribute int16u currentConnections[] = 2;
10277
+ readonly attribute command_id generatedCommandList[] = 65528;
10278
+ readonly attribute command_id acceptedCommandList[] = 65529;
10279
+ readonly attribute event_id eventList[] = 65530;
10280
+ readonly attribute attrib_id attributeList[] = 65531;
10281
+ readonly attribute bitmap32 featureMap = 65532;
10282
+ readonly attribute int16u clusterRevision = 65533;
10283
+
10284
+ request struct AllocatePushTransportRequest {
10285
+ TransportOptionsStruct transportOptions = 0;
10286
+ }
10287
+
10288
+ response struct AllocatePushTransportResponse = 1 {
10289
+ int16u connectionID = 0;
10290
+ TransportOptionsStruct transportOptions = 1;
10291
+ TransportStatusEnum transportStatus = 2;
10292
+ }
10293
+
10294
+ request struct DeallocatePushTransportRequest {
10295
+ int16u connectionID = 0;
10296
+ }
10297
+
10298
+ request struct ModifyPushTransportRequest {
10299
+ int16u connectionID = 0;
10300
+ TransportOptionsStruct transportOptions = 1;
10301
+ }
10302
+
10303
+ request struct SetTransportStatusRequest {
10304
+ int16u connectionID = 0;
10305
+ TransportStatusEnum transportStatus = 1;
10306
+ }
10307
+
10308
+ request struct ManuallyTriggerTransportRequest {
10309
+ int16u connectionID = 0;
10310
+ TriggerActivationReasonEnum activationReason = 1;
10311
+ optional TransportMotionTriggerTimeControlStruct timeControl = 2;
10312
+ }
10313
+
10314
+ request struct FindTransportRequest {
10315
+ optional nullable int16u connectionID = 0;
10316
+ }
10317
+
10318
+ response struct FindTransportResponse = 7 {
10319
+ TransportConfigurationStruct streamConfigurations[] = 0;
10320
+ }
10321
+
10322
+ /** This command SHALL allocate a transport and return a PushTransportConnectionID. */
10323
+ command access(invoke: manage) AllocatePushTransport(AllocatePushTransportRequest): AllocatePushTransportResponse = 0;
10324
+ /** This command SHALL be generated to request the Node deallocates the specified transport. */
10325
+ command access(invoke: manage) DeallocatePushTransport(DeallocatePushTransportRequest): DefaultSuccess = 2;
10326
+ /** This command is used to request the Node modifies the configuration of the specified push transport. */
10327
+ command access(invoke: manage) ModifyPushTransport(ModifyPushTransportRequest): DefaultSuccess = 3;
10328
+ /** This command SHALL be generated to request the Node modifies the Transport Status of the transport. */
10329
+ command access(invoke: manage) SetTransportStatus(SetTransportStatusRequest): DefaultSuccess = 4;
10330
+ /** This command SHALL be generated to request the Node to manually start the specified push transport. */
10331
+ command ManuallyTriggerTransport(ManuallyTriggerTransportRequest): DefaultSuccess = 5;
10332
+ /** This command SHALL return the Stream Options Configuration for the specified push transport. */
10333
+ command FindTransport(FindTransportRequest): FindTransportResponse = 6;
10334
+ }
10335
+
10142
10336
/** This cluster provides facilities to configure and play Chime sounds, such as those used in a doorbell. */
10143
10337
provisional cluster Chime = 1366 {
10144
10338
revision 1;
0 commit comments