Skip to content

SIA DC-09 Integration

SIA DC-09 is the ANSI/SIA standard for reporting alarm events over IP, between alarm panels (premises equipment) and central station receivers. Gaard speaks it over TCP, with a CRC on every frame and optional AES-CBC encryption, and supports both directions: each as its own per-flow integration.

This page is part of Alarm Platforms.

When a clip classifies as a reportable event, Gaard acts as premises equipment and emits a DC-09 event over TCP to your Central Station Receiver (CSR), carrying the clip as an extended-data verification link.

DC-09 event (TCP) ACK / NAK / DUH Reportable classification Durable queue Gaard DC-09 sender Central Station Receiver

Delivery is designed so that no alarm is lost:

  • The event is written to a durable queue before it is sent, with a per-account sequence number, so a restart mid-delivery resumes cleanly.
  • On ACK, the event is marked delivered.
  • On NAK, Gaard adopts the receiver’s clock, corrects the timestamp, and retries.
  • On DUH, the event is treated as a permanent rejection and marked failed.
  • On no response, Gaard retries (by default every 20 seconds, up to 3 attempts) then flags the event as failed.
  1. In Settings → Platform → Integrations, select SIA DC-09 Outbound.

  2. Choose the Flow and enter a Name.

  3. On the Connection tab, set the Receiver host and Receiver port, the DC-09 identity (Receiver number (R), Line prefix (L), Account number (#)) and the Encryption policy with its AES key (hex) if encrypted.

  4. On the Events tab, set the Code profile, the Forwarded codes (which SIA codes are actually sent), and whether to Include verification link or Include JSON payload.

  5. On the Delivery tab, set the Retry timeout (seconds) and Max attempts.

  6. Save.

Inbound: receive and classify panel events

Section titled “Inbound: receive and classify panel events”

In the other direction, Gaard acts as a central station receiver: it runs a long-lived TCP listener, accepts DC-09 alarm events from panels, resolves the reporting zone to a camera, acquires a clip, and classifies it.

DC-09 event (TCP) ACK / NAK / DUH Alarm panel Gaard DC-09 listener Resolve zone to camera Acquire clip Classify

Each incoming event is validated (CRC, decryption, and an anti-replay timestamp check) and answered per the standard:

SituationReplyResult
Valid event for an owned accountACKZone resolved, clip acquired, classified.
Unknown accountDUHRejected.
Mapped account, unmapped zoneACKAccepted, but no camera to classify.
Timestamp outside the anti-replay windowNAKThe panel can correct its clock and resend.
Bad CRC or undecryptable frame(none)Silently dropped, as the standard requires.

To obtain footage for a valid event, Gaard tries the clip sources you configure, in order, until one yields imagery:

  • verification-link: a link carried in the DC-09 event.
  • recent-segments: recently recorded footage for the camera.
  • on-demand-grab: a fresh grab from the camera.
  1. In Settings → Platform → Integrations, select SIA DC-09 Inbound.

  2. Choose the Flow and enter a Name.

  3. On the Listener tab, set the Listen port and the Account numbers this receiver owns.

  4. On the Zones & clips tab, define the Zone → camera map (which panel zone maps to which camera) and the ordered Clip sources.

  5. On the Security tab, set the Encryption policy, the AES key (hex), and the anti-replay timestamp windows.

  6. Save.

Both directions support plaintext or AES-128-CBC. When you enable encryption, set the same hex key on the Gaard integration and on the peer (the receiver for outbound, the panel for inbound); a key mismatch makes frames undecryptable, and undecryptable inbound frames are dropped.