Summary

The Doorbird D2116V is a video door station supporting HTTP control (ports 80/443), RTSP video streaming (port 554), SIP telephony (port 5060), and UDP event broadcasts (ports 6524/35344). Control is via REST-style CGI endpoints with Basic/Digest authentication or plaintext HTTP parameters.

Transport

protocols:
  - http
  - udp
addressing:
  port: 80  # unencrypted HTTP
  # UNRESOLVED: port 443 stated for HTTPS but not listed separately; TLS cert is self-signed
base_url: http://<device-ip>/
auth:
  type: basic_digest  # Basic or Digest per RFC 2617, or plaintext http-user/http-password params

Secondary transports (inferred from documented services):

# RTSP for video streaming (port stated in doc)
protocols:
  - tcp
addressing:
  port: 554
# SIP for telephony
protocols:
  - tcp
addressing:
  port: 5060
# UDP event broadcasts
protocols:
  - udp
addressing:
  port: 6524  # primary event broadcast
  # port 35344 also used for event broadcasts per source

Traits

# Inferred from command examples:
powerable: true      # restart.cgi present
routable: true       # SIP makecall, door open, light control
queryable: true      # info.cgi, sip.cgi?action=status, monitor.cgi

Actions

- id: open_door
  label: Open Door
  kind: action
  params:
    - name: r
      type: string
      description: "Door controller ID and relay, e.g. '1' or 'gggaaa@1'; defaults to physical relay 1"

- id: light_on
  label: Light On
  kind: action
  params: []

- id: restart
  label: Restart Device
  kind: action
  params: []

- id: get_session
  label: Get Session ID
  kind: action
  params: []

- id: invalidate_session
  label: Invalidate Session
  kind: action
  params:
    - name: invalidate
      type: string
      description: Session ID to invalidate

- id: get_live_video
  label: Get Live Video Stream
  kind: action
  params: []

- id: get_live_image
  label: Get Live Image
  kind: action
  params: []

- id: get_history_image
  label: Get History Image
  kind: action
  params:
    - name: index
      type: integer
      description: History image index (1 = latest, 1..50)
    - name: event
      type: string
      description: "Event type: doorbell or motionsensor"

- id: monitor
  label: Monitor Events
  kind: action
  params:
    - name: ring
      type: string
      description: "Event types to monitor: doorbell,motionsensor"

- id: audio_receive
  label: Receive Live Audio
  kind: action
  params: []

- id: audio_transmit
  label: Transmit Live Audio
  kind: action
  params: []

- id: get_info
  label: Get Device Info
  kind: action
  params: []

- id: list_favorites
  label: List Favorites
  kind: action
  params: []

- id: save_favorite
  label: Save Favorite
  kind: action
  params:
    - name: action
      type: string
      description: Fixed value "save"
    - name: type
      type: string
      description: "sip or http"
    - name: title
      type: string
      description: Name/title of favorite
    - name: value
      type: string
      description: URL or SIP address
    - name: id
      type: integer
      description: Optional ID to update existing favorite

- id: delete_favorite
  label: Delete Favorite
  kind: action
  params:
    - name: action
      type: string
      description: Fixed value "remove"
    - name: type
      type: string
      description: "sip or http"
    - name: id
      type: integer
      description: ID of favorite to delete

- id: list_schedules
  label: List Schedules
  kind: action
  params: []

- id: save_schedule
  label: Save Schedule
  kind: action
  params: []

- id: delete_schedule
  label: Delete Schedule
  kind: action
  params:
    - name: action
      type: string
      description: Fixed value "remove"
    - name: input
      type: string
      description: "doorbell, motion, or rfid"
    - name: param
      type: string
      description: Doorbell number or transponder ID

- id: sip_register
  label: SIP Register
  kind: action
  params:
    - name: action
      type: string
      description: Fixed value "registration"
    - name: user
      type: string
      description: SIP proxy username
    - name: password
      type: string
      description: SIP proxy password
    - name: url
      type: string
      description: SIP proxy IP/hostname

- id: sip_makecall
  label: SIP Make Call
  kind: action
  params:
    - name: action
      type: string
      description: Fixed value "makecall"
    - name: url
      type: string
      description: SIP URL to call

- id: sip_hangup
  label: SIP Hangup
  kind: action
  params:
    - name: action
      type: string
      description: Fixed value "hangup"

- id: sip_settings
  label: SIP Settings
  kind: action
  params:
    - name: action
      type: string
      description: Fixed value "settings"
    - name: enable
      type: integer
      description: "0 or 1"
    - name: mic_volume
      type: integer
      description: "1..100"
    - name: spk_volume
      type: integer
      description: "1..100"
    - name: dtmf
      type: integer
      description: "0 or 1"
    - name: relay1_passcode
      type: integer
      description: "0..99999999"
    - name: incoming_call_enable
      type: integer
      description: "0 or 1"
    - name: incoming_call_user
      type: string
      description: SIP user allowed
    - name: anc
      type: integer
      description: "0 or 1"
    - name: ring_time_limit
      type: integer
      description: "10..300 seconds"
    - name: call_time_limit
      type: integer
      description: "30..300 seconds"

- id: sip_status
  label: SIP Status
  kind: action
  params:
    - name: action
      type: string
      description: Fixed value "status"

- id: sip_reset
  label: SIP Reset
  kind: action
  params:
    - name: action
      type: string
      description: Fixed value "reset"

Feedbacks

- id: doorbell_state
  type: enum
  values: [H, L]
  description: Doorbell event state (high/low)

- id: motionsensor_state
  type: enum
  values: [H, L]
  description: Motion sensor event state (high/low)

- id: sip_registration_status
  type: enum
  values: ["200", other SIP codes]
  description: SIP registration status; "200" means registered

- id: device_info
  type: object
  description: Firmware version, build number, MAC address, relay config, device type

- id: session_id
  type: string
  description: Temporary session ID valid for 10 minutes

- id: notification_encryption_key
  type: string
  description: Key for decrypting UDP event broadcasts

Variables

# UNRESOLVED: variables not clearly distinguished from actions in source
# The info.cgi returns device state; sip.cgi?action=status returns SIP state

Events

# UDP event broadcasts on ports 6524 and 35344
# Encrypted with ChaCha20-Poly1305
# Fields: INTERCOM_ID (6 chars), EVENT (8 chars padded), TIMESTAMP (Unix)
#
# Event types (from CIPHERTEXT after decryption):
- id: doorbell_event
  type: string
  description: Doorbell trigger (e.g. "1 " for doorbell number 1)
- id: motion_event
  type: string
  description: Motion sensor trigger
# rfid and keypad events mentioned as coming soon

Macros

# Schedule entries tie input events (doorbell, motion) to output actions
# (HTTP notification, SIP call, relay trigger) with time window constraints
# UNRESOLVED: macro definitions not explicitly documented as reusable sequences

Safety

confirmation_required_for: []
interlocks:
  - description: "Video/audio streams can be interrupted by official DoorBird App requests"
    note: "Official App has precedence over LAN API users"
  - description: "Audio transmission requires AEC/ANR on client side"
    note: "Device echo cancellation does not cover the client-side device"

Notes

  • Rate limit: 1 concurrent API connection per second; excessive wrong auth blocks IP for 1 minute (HTTP 423)
  • Device returns HTTP 503 (Busy) when call already in progress
  • Session ID valid for 10 minutes; obtained via getsession.cgi
  • Video streaming: up to 8 fps via HTTP MJPG, up to 12 fps via RTSP
  • Audio codec: G.711 μ-law (8000 Hz sampling) required for API audio
  • RTSP uses standard authentication (no parameter auth)
  • SIP call terminates after 180 seconds automatically
  • UDP keep-alive broadcasts sent every 7 seconds (can be ignored)
  • Favorites and schedules require firmware 000110 or higher

Provenance

source_domains:
  - doorbird.com
source_urls:
  - "https://www.doorbird.com/downloads/api_lan.pdf?rev=0.36"
retrieved_at: 2026-04-30T04:32:27.986Z
last_checked_at: 2026-06-03T06:41:34.052Z

Verification Summary

verdict: verified
checked_at: 2026-06-03T06:41:34.052Z
matched_actions: 24
action_count: 24
confidence: medium
summary: "All 24 actions verified against source (8 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "serial/RS-232 not mentioned in source; device may support RS-232 but it is not documented"
- "port 443 stated for HTTPS but not listed separately; TLS cert is self-signed"
- "variables not clearly distinguished from actions in source"
- "macro definitions not explicitly documented as reusable sequences"
- "serial/RS-232 configuration not documented"
- "voltage/current/power specifications not in source"
- "firmware compatibility range not stated"
- "relay contact ratings not stated"

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0