{ "$defs": { "mmdvm_state": {"enum": ["lockout", "idle", "d-star", "dmr", "ysf", "nxdn", "pocsag", "fm", "ax,25", "m17"]}, "dstar_callsign": {"type": "string", "minLength": 8, "maxLength": 8}, "dstar_extension": {"type": "string", "minLength": 4, "maxLength": 4}, "ysf_callsign": {"type": "string", "minLength": 10, "maxLength": 10}, "ax25_callsign": {"type": "string", "minLength": 1, "maxLength": 9}, "m17_callsign": {"type": "string", "minLength": 9, "maxLength": 9}, "dmr_id": {"type": "integer", "minimum": 1, "maximum": 16777215}, "p25_id": {"type": "integer", "minimum": 1, "maximum": 65535}, "nxdn_id": {"type": "integer", "minimum": 1, "maximum": 65535}, "pocsag_ric": {"type": "integer"}, "id_type": {"enum": ["group", "individual"]}, "ysf_mode": {"enum": ["v/d_1", "v/d_2", "voice_fr", "data_fr"]}, "ax25_type": {"enum": ["sabm", "disc", "ui", "ua", "rr", "rnr", "rej", "frmr", "i"]}, "dmr_slot": {"enum": [1, 2]}, "source": {"enum": ["rf", "network"]}, "fm_state": {"enum": ["waiting_rf", "waiting_network"]}, "m17_traffic_type": {"enum": ["audio", "audio_data", "data"]}, "ax25_pid": {"type": "string"}, "pocsag_source": {"enum": ["local", "network"]}, "pocsag_function": {"enum": ["numeric", "alphanumeric", "alert_1", "alert_2"]}, "action": {"enum": ["invalid", "rejected", "header", "late_entry", "end", "lost"]}, "duration": {"type": "number", "minimum": 0.0}, "loss": {"type": "number", "minimum": 0.0}, "ber": {"type": "number", "minimum": 0.0}, "rssi": {"type": "number"}, "timestamp": {"type": "string"} }, "MMDVM": { "type": "object", "timestamp": {"$ref": "#/$defs/timestamp"}, "state": {"$ref": "#/$defs/mmdvm_state"}, "required": ["timestamp"] }, "D-Star": { "type": "object", "timestamp": {"$ref": "#/$defs/timestamp"}, "source_cs": {"$ref": "#/$defs/dstar_callsign"}, "source_ext": {"$ref": "#/$defs/dstar_extension"}, "destination_cs": {"$ref": "#/$defs/dstar_callsign"}, "source": {"$ref": "#/$defs/source"}, "action": {"$ref": "#/$defs/action"}, "duration": {"$ref": "#/$defs/duration"}, "loss": {"$ref": "#/$defs/loss"}, "ber": {"$ref": "#/$defs/ber"}, "rssi": { "min": {"$ref": "#/$defs/rssi"}, "max": {"$ref": "#/$defs/rssi"}, "ave": {"$ref": "#/$defs/rssi"} }, "required": ["timestamp", "source_cs", "source_ext", "destination_cs", "source", "action"] }, "DMR": { "type": "object", "timestamp": {"$ref": "#/$defs/timestamp"}, "source_id": {"$ref": "#/$defs/dmr_id"}, "source_info": {"type": "string"}, "destination_id": {"$ref": "#/$defs/dmr_id"}, "destination_type": {"$ref": "#/$defs/id_type"}, "slot": {"$ref": "#/$defs/dmr_slot"}, "source": {"$ref": "#/$defs/source"}, "action": {"$ref": "#/$defs/action"}, "duration": {"$ref": "#/$defs/duration"}, "loss": {"$ref": "#/$defs/loss"}, "ber": {"$ref": "#/$defs/ber"}, "rssi": { "min": {"$ref": "#/$defs/rssi"}, "max": {"$ref": "#/$defs/rssi"}, "ave": {"$ref": "#/$defs/rssi"} }, "required": ["timestamp", "source_id", "destination_id", "destination_type", "slot", "source", "action"] }, "YSF": { "type": "object", "timestamp": {"$ref": "#/$defs/timestamp"}, "source_cs": {"$ref": "#/$defs/ysf_callsign"}, "destination_cs": {"$ref": "#/$defs/ysf_callsign"}, "source": {"$ref": "#/$defs/source"}, "action": {"$ref": "#/$defs/action"}, "mode": {"$ref": "#/$defs/ysf_mode"}, "duration": {"$ref": "#/$defs/duration"}, "loss": {"$ref": "#/$defs/loss"}, "ber": {"$ref": "#/$defs/ber"}, "rssi": { "min": {"$ref": "#/$defs/rssi"}, "max": {"$ref": "#/$defs/rssi"}, "ave": {"$ref": "#/$defs/rssi"} }, "required": ["timestamp", "source_cs", "destination_cs", "source", "action", "mode"] }, "P25": { "type": "object", "timestamp": {"$ref": "#/$defs/timestamp"}, "source_id": {"$ref": "#/$defs/dmr_id"}, "source_info": {"type": "string"}, "destination_id": {"$ref": "#/$defs/p25_id"}, "destination_type": {"$ref": "#/$defs/id_type"}, "source": {"$ref": "#/$defs/source"}, "action": {"$ref": "#/$defs/action"}, "duration": {"$ref": "#/$defs/duration"}, "loss": {"$ref": "#/$defs/loss"}, "ber": {"$ref": "#/$defs/ber"}, "rssi": { "min": {"$ref": "#/$defs/rssi"}, "max": {"$ref": "#/$defs/rssi"}, "ave": {"$ref": "#/$defs/rssi"} }, "required": ["timestamp", "source_id", "destination_id", "destination_type", "source", "action"] }, "NXDN": { "type": "object", "timestamp": {"$ref": "#/$defs/timestamp"}, "source_id": {"$ref": "#/$defs/nxdn_id"}, "source_info": {"type": "string"}, "destination_id": {"$ref": "#/$defs/nxdn_id"}, "destination_type": {"$ref": "#/$defs/id_type"}, "source": {"$ref": "#/$defs/source"}, "action": {"$ref": "#/$defs/action"}, "duration": {"$ref": "#/$defs/duration"}, "loss": {"$ref": "#/$defs/loss"}, "ber": {"$ref": "#/$defs/ber"}, "rssi": { "min": {"$ref": "#/$defs/rssi"}, "max": {"$ref": "#/$defs/rssi"}, "ave": {"$ref": "#/$defs/rssi"} }, "required": ["timestamp", "source_id", "destination_id", "destination_type", "source", "action"] }, "POCSAG": { "type": "object", "timestamp": {"$ref": "#/$defs/timestamp"}, "ric": {"$ref": "#/$defs/pocsag_ric"}, "function": {"$ref": "#/$defs/pocsag_function"}, "source": {"$ref": "#/$defs/pocsag_source"}, "data": {"type": "string"}, "required": ["timestamp", "ric", "function", "source", "data"] }, "FM": { "type": "object", "timestamp": {"$ref": "#/$defs/timestamp"}, "state": {"$ref": "#/$defs/fm_state"}, "required": ["timestamp", "state"] }, "AX.25": { "type": "object", "timestamp": {"$ref": "#/$defs/timestamp"}, "source": {"$ref": "#/$defs/ax25_callsign"}, "destination": {"$ref": "#/$defs/ax25_callsign"}, "digipeaters": { "type": "array", "callsign": {"$ref": "#/$defs/ax25_callsign"}, "repeated": {"type": "boolean"} }, "type": {"$ref": "#/$defs/ax25_type"}, "pid": {"$ref": "#/$defs/ax25_pid"}, "data": {"type": "string"}, "required": ["timestamp", "source", "destination", "source", "type"] }, "M17": { "type": "object", "timestamp": {"$ref": "#/$defs/timestamp"}, "source_cs": {"$ref": "#/$defs/m17_callsign"}, "destination_cs": {"$ref": "#/$defs/m17_callsign"}, "source": {"$ref": "#/$defs/source"}, "action": {"$ref": "#/$defs/action"}, "traffic_type": {"$ref": "#/$defs/m17_traffic_type"}, "duration": {"$ref": "#/$defs/duration"}, "ber": {"$ref": "#/$defs/ber"}, "rssi": { "min": {"$ref": "#/$defs/rssi"}, "max": {"$ref": "#/$defs/rssi"}, "ave": {"$ref": "#/$defs/rssi"} }, "required": ["timestamp", "source_cs", "destination_cs", "source", "action", "traffic_type"] } }