Summary
C-Series Hearing Loop Drivers expose Telnet (port 9760) and SNMP for remote control and monitoring. Telnet uses a case-sensitive command=value syntax terminated by return; SNMP offers V1/V2C/V3 with traps under enterprise OID 1.3.6.1.4.1.48943.
Transport
protocols:
- tcp
addressing:
port: 9760
auth:
type: password
# Source: "The Telnet interface requires the same authentication as the web interface to access relevant commands. To authenticate at the start of a session send the command login=username&password."
login_command: "login={username}&{password}" # exact format from source
Traits
# - levelable (cur, curo, inp1, inp2, inp3, in2d, mlc1, mlc2, mlcq gain/slope settings)
# - queryable (mac, ip, disA, disB, comp, pwri, lpra, lpla, lprb, lplb, temp, errs, id)
# - powerable # inferred from stnd (standby), slp (sleep), dco (12V DC output) commands
Actions
# === Telnet: Authentication ===
- id: login
label: Login
kind: action
command: "login={username}&{password}"
params:
- name: username
type: string
- name: password
type: string
notes: "Required before any other command. Source: 'login=username&password'."
- id: logout
label: Logout
kind: action
command: "logout"
params: []
# === Telnet: Audio / drive level ===
- id: cur
label: Set current drive level
kind: action
command: "cur={value}"
params:
- name: value
type: number
description: "Current drive level in dB. Range -80 to 0. Source example: cur=-20, cur=-4.3"
- id: curo
label: Set current offset (channel A vs B)
kind: action
command: "curo={value}"
params:
- name: value
type: integer
description: "Channel offset in dB. Range -11 to +11. Values beyond +/-10 disable respective channel (dual channel drivers only)."
# === Telnet: Input gain & filters ===
- id: inp1
label: Set input 1 gain
kind: action
command: "inp1={value}"
params:
- name: value
type: number
description: "Input 1 gain in dB. Range -80 to 0."
- id: lowcf1
label: Enable/disable low cut filter for input 1
kind: action
command: "lowcf1={value}"
params:
- name: value
type: enum
values: [en, dis]
- id: inp2
label: Set input 2 gain
kind: action
command: "inp2={value}"
params:
- name: value
type: number
description: "Input 2 gain in dB. Range -80 to 0."
- id: lowcf2
label: Enable/disable low cut filter for input 2
kind: action
command: "lowcf2={value}"
params:
- name: value
type: enum
values: [en, dis]
- id: in2p
label: Enable/disable priority option for input 2
kind: action
command: "in2p={value}"
params:
- name: value
type: enum
values: [en, dis]
- id: in2d
label: Set ducking level for input 2
kind: action
command: "in2d={value}"
params:
- name: value
type: number
description: "Ducking level in dB. Range -80 to 0."
- id: inp3
label: Set input 3 gain (Dante-enabled drivers only)
kind: action
command: "inp3={value}"
params:
- name: value
type: number
description: "Input 3 gain in dB. Range -80 to 0."
# === Telnet: Test signal ===
- id: tfrq
label: Set test sine wave frequency
kind: action
command: "tfrq={value}"
params:
- name: value
type: integer
description: "Test sine wave frequency in Hz. Range 100 to 5000."
- id: tsts
label: Set test signal
kind: action
command: "tsts={value}"
params:
- name: value
type: enum
values: [Off, Combi10, Combi16, Combi25, Pink, Sine]
# === Telnet: MLC (Metal Loss Compensation) ===
- id: mlc1
label: Set first MLC slope level
kind: action
command: "mlc1={value}"
params:
- name: value
type: number
description: "First MLC slope in dB/Octave. Range 0.0 to 4.0."
- id: mlcf
label: Set MLC mid frequency
kind: action
command: "mlcf={value}"
params:
- name: value
type: integer
description: "MLC mid frequency in Hz. Range 200 to 5000."
- id: mlc2
label: Set second MLC slope level
kind: action
command: "mlc2={value}"
params:
- name: value
type: number
description: "Second MLC slope in dB/Octave. Range 0.0 to 4.0."
- id: mlcq
label: Use preset MLC response
kind: action
command: "mlcq={value}"
params:
- name: value
type: integer
description: "0=custom, 1=off, 2-17=fixed slopes in 0.25 dB/Octave steps."
- id: mlch
label: Enable/disable MLC HF Boost on fixed slope
kind: action
command: "mlch={value}"
params:
- name: value
type: enum
values: [en, dis]
# === Telnet: Phase ===
- id: phse
label: Set phase shift on channel B (dual channel drivers)
kind: action
command: "phse={value}"
params:
- name: value
type: enum
values: ["0", "1"]
description: "0=no phase shift, 1=channel B shifted by 90 degrees."
- id: phseA
label: Set phase shift on channel A (single channel drivers)
kind: action
command: "phseA={value}"
params:
- name: value
type: enum
values: ["0", "1"]
description: "0=no phase shift, 1=channel A shifted by 90 degrees."
# === Telnet: Power state ===
- id: slp
label: Set sleep delay
kind: action
command: "slp={value}"
params:
- name: value
type: enum
values: [off, "10", "30", "60"]
description: "Seconds of no audio before entering sleep mode."
- id: stnd
label: Set standby mode
kind: action
command: "stnd={value}"
params:
- name: value
type: enum
values: [en, dis]
description: "en=enter standby, dis=leave standby."
# === Telnet: Network configuration ===
- id: setip
label: Set static IP address (when DHCP disabled)
kind: action
command: "setip={xxx.xxx.xxx.xxx}"
params:
- name: address
type: string
description: "IPv4 address in dotted-quad format."
- id: setgw
label: Set gateway address (when DHCP disabled)
kind: action
command: "setgw={xxx.xxx.xxx.xxx}"
params:
- name: address
type: string
- id: setmask
label: Set subnet mask (when DHCP disabled)
kind: action
command: "setmask={xxx.xxx.xxx.xxx}"
params:
- name: address
type: string
- id: setdns1
label: Set primary DNS (when DHCP disabled)
kind: action
command: "setdns1={xxx.xxx.xxx.xxx}"
params:
- name: address
type: string
- id: setdns2
label: Set secondary DNS (when DHCP disabled)
kind: action
command: "setdns2={xxx.xxx.xxx.xxx}"
params:
- name: address
type: string
- id: dhcp_option61
label: Configure DHCP option 61
kind: action
command: "dhcp_option61={value}"
params:
- name: value
type: string
description: "en|dis|en[&id]|dis[&id]. Client ID max 12 characters."
# === Telnet: Email & status reporting ===
- id: mail
label: Set reporting email address
kind: action
command: "mail={email}"
params:
- name: email
type: string
- id: erlc
label: Enable/disable emails on error conditions
kind: action
command: "erlc={value}"
params:
- name: value
type: enum
values: ["true", "false"]
- id: itlc
label: Set status email interval
kind: action
command: "itlc={value}"
params:
- name: value
type: enum
values: [off, 6h, 12h, 24h, 48h, 4d, 1w, 2w, 4w]
- id: dco
label: Control 12V DC output
kind: action
command: "dco={value}"
params:
- name: value
type: enum
values: [on, off, onf, offf]
description: "on/off=force state, onf/offf=state on fault condition."
- id: snmp
label: Enable/disable SNMP
kind: action
command: "snmp={value}"
params:
- name: value
type: enum
values: [en, dis]
- id: freset
label: Factory reset (superadmin only)
kind: action
command: "freset"
params: []
notes: "Resets unit to factory settings including user passwords."
# === Telnet: Error reporting (email/relay/SNMP per error) ===
# These commands double as readers when sent with =val suffix.
- id: pwlc
label: Power-on reporting over email
kind: action
command: "pwlc={value}"
params:
- name: value
type: enum
values: ["true", "false", val]
description: "val returns current value."
- id: PowerOnSnmp
label: Power-on reporting over SNMP
kind: action
command: "PowerOnSnmp={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: ChAClipEmail
label: Channel A clipping error reporting over email
kind: action
command: "ChAClipEmail={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: ChAClipRelay
label: Channel A clipping error reporting over DC out/relay
kind: action
command: "ChAClipRelay={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: ChAClipSnmp
label: Channel A clipping error reporting over SNMP
kind: action
command: "ChAClipSnmp={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: ChAClipAttenEmail
label: Channel A clipping attenuation reporting over email
kind: action
command: "ChAClipAttenEmail={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: ChAClipAttenRelay
label: Channel A clipping attenuation reporting over DC out/relay
kind: action
command: "ChAClipAttenRelay={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: ChAClipAttenSnmp
label: Channel A clipping attenuation reporting over SNMP
kind: action
command: "ChAClipAttenSnmp={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: ChAOpenLpEmail
label: Channel A open loop error reporting over email
kind: action
command: "ChAOpenLpEmail={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: ChAOpenLpRelay
label: Channel A open loop error reporting over DC out/relay
kind: action
command: "ChAOpenLpRelay={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: ChAOpenLpSnmp
label: Channel A open loop error reporting over SNMP
kind: action
command: "ChAOpenLpSnmp={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: AmpHotDeratedEmail
label: Amplifier too hot derated reporting over email
kind: action
command: "AmpHotDeratedEmail={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: AmpHotDeratedRelay
label: Amplifier too hot derated reporting over DC out/relay
kind: action
command: "AmpHotDeratedRelay={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: AmpHotDeratedSnmp
label: Amplifier too hot derated reporting over SNMP
kind: action
command: "AmpHotDeratedSnmp={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: AmpHotMutedEmail
label: Amplifier too hot muted reporting over email
kind: action
command: "AmpHotMutedEmail={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: AmpHotMutedRelay
label: Amplifier too hot muted reporting over DC out/relay
kind: action
command: "AmpHotMutedRelay={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: AmpHotMutedSnmp
label: Amplifier too hot muted reporting over SNMP
kind: action
command: "AmpHotMutedSnmp={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: TransOverDeratedEmail
label: Transformer overload derated reporting over email
kind: action
command: "TransOverDeratedEmail={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: TransOverDeratedRelay
label: Transformer overload derated reporting over DC out/relay
kind: action
command: "TransOverDeratedRelay={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: TransOverDeratedSnmp
label: Transformer overload derated reporting over SNMP
kind: action
command: "TransOverDeratedSnmp={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: TransOverMutedEmail
label: Transformer overload muted reporting over email
kind: action
command: "TransOverMutedEmail={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: TransOverMutedRelay
label: Transformer overload muted reporting over DC out/relay
kind: action
command: "TransOverMutedRelay={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: TransOverMutedSnmp
label: Transformer overload muted reporting over SNMP
kind: action
command: "TransOverMutedSnmp={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: TransOverShutdownEmail
label: Transformer overload shutdown reporting over email
kind: action
command: "TransOverShutdownEmail={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: TransOverShutdownRelay
label: Transformer overload shutdown reporting over DC out/relay
kind: action
command: "TransOverShutdownRelay={value}"
params:
- name: value
type: enum
values: [en, dis, val]
- id: TransOverShutdownSnmp
label: Transformer overload shutdown reporting over SNMP
kind: action
command: "TransOverShutdownSnmp={value}"
params:
- name: value
type: enum
values: [en, dis, val]
# === Telnet: Reading (state queries) ===
- id: query_mac
label: Read MAC address
kind: query
command: "mac"
params: []
- id: query_ip
label: Read IP address
kind: query
command: "ip"
params: []
- id: query_dns1
label: Read primary DNS
kind: query
command: "dns1"
params: []
- id: query_dns2
label: Read secondary DNS
kind: query
command: "dns2"
params: []
- id: query_gw
label: Read gateway address
kind: query
command: "gw"
params: []
- id: query_msk
label: Read subnet mask
kind: query
command: "msk"
params: []
- id: query_dhcp_option61
label: Read DHCP option 61 settings
kind: query
command: "dhcp_option61"
params: []
- id: query_disA
label: Read displayed peak current on channel A
kind: query
command: "disA"
params: []
notes: "Full rated current is 1; instantaneous value."
- id: query_disB
label: Read displayed peak current on channel B
kind: query
command: "disB"
params: []
notes: "Dual channel drivers only. Full rated current is 1; instantaneous value."
- id: query_comp
label: Read compression level
kind: query
command: "comp"
params: []
notes: "Returned in dB; instantaneous value."
- id: query_pwri
label: Read transformer input current
kind: query
command: "pwri"
params: []
notes: "Returned in Amps."
- id: query_lpra
label: Read loop A resistance
kind: query
command: "lpra"
params: []
notes: "Measured at last power cycle."
- id: query_lpla
label: Read loop A inductance
kind: query
command: "lpla"
params: []
notes: "Measured at last power cycle."
- id: query_lprb
label: Read loop B resistance
kind: query
command: "lprb"
params: []
notes: "Dual channel drivers only; measured at last power cycle."
- id: query_lplb
label: Read loop B inductance
kind: query
command: "lplb"
params: []
notes: "Dual channel drivers only; measured at last power cycle."
- id: query_temp
label: Read heatsink temperature
kind: query
command: "temp"
params: []
notes: "Returned in Celsius."
- id: query_errs
label: Read list of active errors
kind: query
command: "errs"
params: []
- id: query_id
label: Read driver type
kind: query
command: "id"
params: []
Feedbacks
# Telnet: =val suffix on any Telnet Setting Command or Error Reporting Command returns current value.
# e.g. "ChAClipEmail=val" returns "Current value=en".
#
# SNMP trap OID: 1.3.6.1.4.1.48943.0.<n>
- id: power_state
type: enum
values: [on, off]
notes: "Derived from SNMP trap #21 (Power On) and stnd (standby) state."
- id: mac_address
type: string
notes: "Source command: mac"
- id: ip_address
type: string
notes: "Source command: ip"
- id: subnet_mask
type: string
notes: "Source command: msk"
- id: gateway
type: string
notes: "Source command: gw"
- id: primary_dns
type: string
notes: "Source command: dns1"
- id: secondary_dns
type: string
notes: "Source command: dns2"
- id: driver_type
type: string
notes: "Source command: id"
- id: heatsink_temperature_c
type: number
notes: "Source command: temp; Celsius."
- id: channel_a_peak_current
type: number
notes: "Source command: disA; 1.0 = full rated current."
- id: channel_b_peak_current
type: number
notes: "Source command: disB; dual channel only."
- id: compression_level_db
type: number
notes: "Source command: comp; instantaneous dB."
- id: transformer_input_current_a
type: number
notes: "Source command: pwri; Amps."
- id: loop_a_resistance
type: number
notes: "Source command: lpra; measured at last power cycle."
- id: loop_a_inductance
type: number
notes: "Source command: lpla; measured at last power cycle."
- id: loop_b_resistance
type: number
notes: "Source command: lprb; dual channel only."
- id: loop_b_inductance
type: number
notes: "Source command: lplb; dual channel only."
- id: active_errors
type: string
notes: "Source command: errs; list of currently active errors."
Variables
# All settable numeric/enum parameters are already enumerated as parameterized actions
# in the Actions section. No additional variable-only entries are documented separately
# in the source.
Events
# SNMP traps are sent under OID 1.3.6.1.4.1.48943.0.<n>.
# Trap numbers from source:
- id: trap_fatal_firmware_error
trap_oid_suffix: 0
description: "Fatal Firmware Error"
- id: trap_chA_clipping
trap_oid_suffix: 1
description: "Channel A Clipping"
- id: trap_chB_clipping
trap_oid_suffix: 2
description: "Channel B Clipping"
- id: trap_chA_clipping_attenuation
trap_oid_suffix: 3
description: "Channel A Clipping Attenuation"
- id: trap_chB_clipping_attenuation
trap_oid_suffix: 4
description: "Channel B Clipping Attenuation"
- id: trap_chA_open_loop
trap_oid_suffix: 5
description: "Channel A Open Loop"
- id: trap_chB_open_loop
trap_oid_suffix: 6
description: "Channel B Open Loop"
- id: trap_amp_hot_muted
trap_oid_suffix: 9
description: "Amplifier Too Hot - Muted"
- id: trap_amp_hot_derated
trap_oid_suffix: 10
description: "Amplifier Too Hot - Derated"
- id: trap_trans_overload_muted
trap_oid_suffix: 11
description: "Transformer Overload - Muted"
- id: trap_trans_overload_derated
trap_oid_suffix: 12
description: "Transformer Overload - Derated"
- id: trap_trans_overload_shutdown
trap_oid_suffix: 13
description: "Transformer Overload - Shutdown"
- id: trap_heat_sink_too_hot
trap_oid_suffix: 14
description: "Heat Sink Too Hot (always reported if SNMP enabled)"
- id: trap_loopA_overcurrent
trap_oid_suffix: 15
description: "Loop A Overcurrent"
- id: trap_loopB_overcurrent
trap_oid_suffix: 16
description: "Loop B Overcurrent"
- id: trap_loopA_cross_wired
trap_oid_suffix: 17
description: "Loop A Cross Wired"
- id: trap_loopB_cross_wired
trap_oid_suffix: 18
description: "Loop B Cross Wired"
- id: trap_loopA_resistance_too_small
trap_oid_suffix: 19
description: "Loop A Resistance Too Small"
- id: trap_loopB_resistance_too_small
trap_oid_suffix: 20
description: "Loop B Resistance Too Small"
- id: trap_power_on
trap_oid_suffix: 21
description: "Power On"
Macros
# UNRESOLVED: no explicit multi-step sequences described in source.
Safety
confirmation_required_for:
- freset # Factory reset wipes user passwords (superadmin only per source)
interlocks: []
# UNRESOLVED: no explicit safety warnings or interlock procedures described in source.
Notes
Telnet disabled by default; must enable via web interface. Commands case-sensitive; no spaces inside commands; return key terminates each command. Invalid value returns Illegal value, gain will be off limit or Usage: command=en|dis. Unrecognised command returns Not recognised. SNMP Engine ID derived from MAC: 80 00 BF 2F 80 <MAC>. V1/V2C use community strings public (read, traps) and private (write). V3 default user ampetronic with authPriv, SHA1-96, AES-128. A custom MIB is available for trap decoding.
Provenance
source_domains:
- ampetronic.com
source_urls:
- https://www.ampetronic.com/wp-content/uploads/UP39808-4-C-Series-Protocol-Guide.pdf
retrieved_at: 2026-04-30T04:36:26.602Z
last_checked_at: 2026-06-02T21:39:39.690Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T21:39:39.690Z
matched_actions: 78
action_count: 78
confidence: medium
summary: "All 78 spec actions matched literal Telnet commands in source; transport parameters (port 9760, login format) verified; no missing or extra commands. (4 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "firmware version compatibility not stated; SNMP v1.6.0+ mentioned only for multi-version feature"
- "no explicit multi-step sequences described in source."
- "no explicit safety warnings or interlock procedures described in source."
- "firmware version compatibility not stated in source; firmware v1.6.0+ mentioned only as threshold for multi-version SNMP. Exact C-Series model variants and their feature support (e.g. which support inp3/Dante, which are dual channel) not enumerated in the protocol document."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0