RCP Plus

Reference

(RCP Version 3)

Specification

Firmware versionMajor7
Minor70
Build126


Table Of Contents
Functional Description
Transport Protocol
Packetizing in the TCP Stream
RCP Protocol Procedure
RCP over a HTTP tunnel
Autodetecting Devices
Setting an IP Address using Broadcast Mechanism
RCP over CGI
Request or setting of system or network parameters using Broadcast Mechanism
Extension for RCP+ commands containing IPv6 addresses or host names
RCP Command Notification
rcp
control
CONF_RCP_CLIENT_REGISTRATION
CONF_RCP_MSG_V2_HISTORY
CONF_RCP_SERVER_PORT
CONF_RCP_CLIENT_REGISTRATION_V2
CONF_RCP_CLIENT_UNREGISTER
CONF_RCP_CLIENT_TIMEOUT_WARNING
CONF_RCP_REG_MD5_RANDOM
CONF_RCP_TRANSFER_TRANSPARENT_DATA
connection
CONF_CONNECT_PRIMITIVE
CONF_DISCONNECT_PRIMITIVE
CONF_CONNECT_TO
CONF_ACTIVE_CONNECTION_LIST
CONF_MEDIA_SOCKETS_COMPLETE
CONF_RCP_CONNECTIONS_ALIVE
CONF_CAPABILITY_LIST
CONF_RCP_CODER_LIST
CONF_RCP_CONNECT_SALVO
CONF_MUTE_MEDIA_CHANNEL
CONF_SEI_ENABLE
CONF_PIC_INFO
CONF_TRANSCODER_INFORMATION
CONF_REQ_FAST_UPDATE
CONF_MPEG4_INTRA_FRAME_REQUEST
discovery
CONF_AUTODETECT_REPLY_GROUP
CONF_UNSOLICITED_AUTODETECT_REPLY_TIME
CONF_DISCOVER_PORT
system
settings
CONF_UNIT_NAME
CONF_UNIT_ID
CONF_CAMNAME
CONF_CAMNAME2
CONF_CAMNAME_LINES
CONF_HARDWARE_VERSION
CONF_SOFTWARE_VERSION
CONF_SOFTWARE_VERSION_FORMATTED
CONF_BOOTLOADER_VERSION
CONF_FW_MIN_VERSION
CONF_SERIAL_NUMBER
CONF_PRODUCT_NAME
CONF_COMMERCIAL_TYPE_NUMBER
CONF_DEVICE_TYPE_IDS
CONF_SUPPORTED_UPLOAD_TARGETS
CONF_DEVICE_GUID
CONF_DEVICE_CAPABILITIES
CONF_DEVICE_OPERATION_MODE_VERSIONS
CONF_SOFT_VARIANT_ID
CONF_SOFT_VARIANT_ID_OPTIONS
CONF_APPLICATION_TYPE
CONF_SECURITY_COPROC_VERSION
CONF_SECURITY_COPROC_CERTIFICATE
CONF_SECURITY_COPROC_AUTHENTICATE
CONF_TRANSCODER_CAPABILITIES
CONF_HOST_NAME
CONF_OEM_DEVICE_NAME
CONF_OEM_EXT_ID
CONF_OEM_DEVICE_DOMAIN
CONF_DEFAULTS
CONF_FACTORY_DEFAULTS
CONF_BOARD_RESET
CONF_BOOT_DEFAULT_APP
CONF_CLUSTER_GROUP_SETTING
CONF_CLUSTER_ID
CONF_APP_OPTION
CONF_APP_OPTION_EXT
CONF_APP_OPTION_UNIT_ID
CONF_APP_OPTION_SET
CONF_BOOT_STATE
CONF_CPU_COUNT
CONF_NIGHT_MODE_STATE
CONF_INSTALLER_SEQUENCE
CONF_PRIVACY_MODE
CONF_RUN_QR_READER
CONF_PTZ_AUTO_ROTATE_MODE
CONF_POWER_MONITOR_VALUES
CONF_POWER_MONITOR_NAMES
CONF_AUXILIARY_POWER
CONF_NBR_OF_IMU
CONF_LED_CAPS
CONF_ENABLE_TRAFFIC_LED
CONF_SCAN_ID
CONF_HEATER_MODE
status
CONF_CHECK_DEFAULT_BUTTON_STATE
CONF_CHECK_POS_FB_STATE
CONF_CLOUD_COMMISSIONING_STATUS
CONF_AMBIENT_LIGHT_LEVEL
CONF_LOW_AMBIENT_LIGHT_THRESHOLD
CONF_NBR_OF_HUMIDITY_SENSORS
CONF_HUMIDITY_VALUE
CONF_CONFIG_SEALING_ENABLED
CONF_CONFIG_SEALING_STATUS
CONF_SYSUPTIME
CONF_SD_CARD_STATUS
CONF_CPU_LOAD_IDLE
CONF_CPU_LOAD_CODER
CONF_CPU_LOAD_VCA
CONF_STORAGE_LOAD
CONF_CPU_LOAD
CONF_SYSTEM_LOAD
CONF_UPLOAD_HISTORY
CONF_NBR_OF_TEMP_SENS
CONF_TEMP_SENS
CONF_UPLOAD_PROGRESS
local time and time server settings and configuration
CONF_BROWSER_DATETIME_FORMAT_VAL
CONF_DATE_WDAY
CONF_DATE_DAY
CONF_DATE_MONTH
CONF_DATE_YEAR
CONF_TIME_HRS
CONF_TIME_MIN
CONF_TIME_SEC
CONF_TIMEZONE
CONF_UTC_ZONEOFFSET
CONF_NTP_SERVER_IP_STR
CONF_NTP_SYNC_MODE
CONF_DAY_LIGHT_SAVE_TIME_TABLE
CONF_DAY_LIGHT_SAVE_TIME
CONF_FORCE_TIME_SET
CONF_SYSTEM_DATETIME_V2
CONF_ALLOW_OVERWRITE_TIMESRVIP_BY_DHCP
CONF_OPTIONAL_TIME_SERVER_PORT
CONF_NTP_START_SERVER
CONF_TIME_SC_CONNECT_FAIL_MSG
user management
CONF_PASSWORD_SETTINGS
CONF_ADV_USER_SETTINGS
CONF_ADV_USER_SETTINGS_LIST
CONF_ADV_USER_OPTIONS
CONF_USER_AUTH_MODE
CONF_ENABLE_MASTERPWD
CONF_ACCESS_OPTION
CONF_MASTERPWD_CHALLENGE
CONF_MASTERPWD_CHALLENGE_STATE
ethernet
CONF_MAC_ADDRESS
CONF_IP
CONF_IP_STR
CONF_SUBNET
CONF_SUBNET_STR
CONF_GATEWAY_IP_STR
CONF_GATEWAY_IP_V6_STRING
CONF_IP_V6_PREFIX_LEN
CONF_IP_V6_STR
CONF_STATELESS_IP_V6_PREFIX_LEN
CONF_STATELESS_IP_V6_STR
CONF_DNS_SERVER_IP
CONF_DNS_SERVER_IP_STRING
CONF_APPLY_NETWORK_SETTINGS
CONF_ETH_LINK
CONF_ETH_LINK_STATUS
CONF_ETH_LINK_TROUGHPUT
CONF_ETH_TX_PKT_BURST
CONF_NBR_OF_EXT_ETH_PORTS
CONF_NBR_OF_EXT_ETH_COPPER_PORTS
CONF_NBR_OF_EXT_ETH_FIBER_PORTS
CONF_SND_MSS
CONF_PORT_FC_MODE
CONF_DIFF_SERV_VAL
CONF_DIFF_SERV_POST_ALARM_TIME
CONF_IPV4_ENABLE
CONF_IPV4_FILTER
CONF_MTU_SIZE
CONF_UPLINK_KBPS
CONF_OBEY_ICMP_REDICRECTS
CONF_DHCP_VAL
CONF_DHCP_ON
CONF_DHCP_OFF
CONF_DHCP_STABLE
CONF_DHCP_COMPLIANCY
network services
CONF_NETWORK_SERVICES
multicast
CONF_MULTICAST_VIDEO_GROUP_IP_STR
CONF_MULTICAST_VIDEO_GROUP_IP
CONF_MULTICAST_AUDIO_GROUP_IP_STR
CONF_MULTICAST_AUDIO_GROUP_IP
CONF_MULTICAST_VIDEO_PORT_STR
CONF_MULTICAST_VIDEO_PORT
CONF_MULTICAST_AUDIO_PORT_STR
CONF_MULTICAST_AUDIO_PORT
CONF_MULTICAST_TTL
CONF_IGMP_VERSION
CONF_STREAMING_VAL
CONF_VIDEO_ENC_STREAMING
CONF_AUDIO_ENC_STREAMING
CONF_START_MULTICAST_STREAMING
CONF_AUDIO_STREAMING_ENCODING
http settings
CONF_LOCAL_HTTP_PORT
CONF_LOCAL_HTTPS_PORT
CONF_HSTS_ENABLED
CONF_ALLOW_BASIC_HTTP_AUTH_ON_NON_SSL_SOCK
CONF_PROTECT_HTTP_COOKIE
rtsp settings
CONF_RTSP_PORT
CONF_RTSPS_PORT
CONF_GET_RTSP_SESSION_ID
cert store
CONF_CERTIFICATE
CONF_CERTIFICATE_OPTIONS
CONF_CERTIFICATE_LIST
CONF_CERTIFICATE_REQUEST
CONF_CERTIFICATE_REQUEST_OPTIONS
CONF_CERTIFICATE_REQUEST_PROGRESS
CONF_CERTIFICATE_USAGE
CONF_CERTIFICATE_USAGE_OPTIONS
CONF_MIN_TLS_VERSION
security
CONF_PUBLISH_MEDIA_KEYS
CONF_CRYPT_KEYAUDIO_ENC
CONF_CRYPT_KEYVIDEO_ENC
CONF_CRYPT_KEYAUDIO_DEC
CONF_CRYPT_KEYVIDEO_DEC
CONF_CRYPT_KEY_GENERATE_ALL
CONF_WATERMARK
CONF_STREAM_SECURITY_V2
CONF_STREAM_SECURITY_OPTIONS
CONF_VIDEO_OVER_SSL
CONF_WIFI_CONFIG_TOKEN
CONF_LOGIN_LIMITER_MESSAGE
CONF_DEVELOPER_MODE_ALLOWED
wlan
CONF_WLAN_SSID
CONF_WLAN_WPA_PSK
CONF_WLAN_IOCTRL
CONF_WLAN_SCAN
CONF_WLAN_LINK_TEST
CONF_WLAN_OPERATING_MODE
CONF_WLAN_REGION_CODE
CONF_WLAN_LINK_QUALITY
CONF_WLAN_WPS_SETUP
CONF_WLAN_WPS_STATUS
CONF_WLAN_DEFAULT_CHANNEL
CONF_WPS_BUTTON_ENABLED
snmp
CONF_SNMP_SRV_PORT
CONF_SNMP_TRAPS_HOST
CONF_SNMP_TRAPS_HOST_STR
CONF_NBR_OF_TRAPS_HOSTS
CONF_SNMP_TRAP_LIST
CONF_PMPP_PORT
CONF_PMPP_ADDRESS
CONF_SYSCONTACT
CONF_SYSLOCATION
CONF_SNMP_READ_COMMUNITY
CONF_SNMP_WRITE_COMMUNITY
CONF_SNMP_TRAP_COMMUNITY
CONF_SNMP_SERVER_MODE
CONF_SNMP_USER_PROFILE
syslog
CONF_SYSLOG_LOG_LEVEL
CONF_SYSLOG_PROTOCOL
CONF_SYSLOG_HOST_STR
CONF_SYSLOG_PORT
CONF_SYSLOG_MESSAGE
calibration
CONF_CAMERA_POSITION
CONF_CAMERA_ORIENTATION
CONF_CAMERA_POSITION_OPTIONS
CONF_CAMERA_SURROUNDING
CONF_CAMERA_SURROUNDING_OPTIONS
CONF_CAMERA_LOCATION_METADATA
CONF_CAMERA_CALIBRATION
CONF_COMPLETE_CALIBRATION_ELEMENT
CONF_SHIFT_CALIBRATION_ELEMENT
CONF_SENSOR_ORIENTATION
CONF_PREDEFINED_MOUNTING_LIST
browser
CONF_STARTPAGE_BACKGROUND_URL
CONF_STARTPAGE_LOGO_URL
CONF_STARTPAGE_PRESENTATION_SWITCHES
CONF_DYNAMIC_HTML_COUNT
CONF_DYNAMIC_HTML_NAME
CONF_DYNAMIC_HTML_DATA
CONF_BROWSER_LANGUAGE_VAL
CONF_HTTP_SESSION_COOKIE_NAME
debug
CONF_LED_BLINKING
CONF_TELNET_PORT
eap
CONF_EAP_IDENTITY
CONF_EAP_GET_IDENTITY_LIST
CONF_EAP_ENABLE
CONF_EAP_PASSWORD
viproc
CONF_VIPROC_ID
CONF_VIPROC_ONOFF
CONF_VIPROC_CUSTOM_PARAMETERS
CONF_VIPROC_FIRE_PARAMETERS
CONF_VIPROC_CUSTOM_PARAMETERS_TAGS
CONF_VIPROC_GLOBAL_PARAMETERS
CONF_VIPROC_GLOBAL_PARAMETERS_TAGS
CONF_VIPROC_DLL_NAME
CONF_VIPROC_DLL_NAME_LIST
CONF_VIPROC_SAVE_REFERENCE_IMAGE
CONF_VIPROC_REFERENCE_IMAGE_FILENAME
CONF_START_VIPROC_CONFIG_EDITING
CONF_STOP_VIPROC_CONFIG_EDITING
CONF_CONT_VIPROC_CONFIG_EDITING
CONF_VIPROC_SCENE
CONF_NUMBER_OF_VIPROC_CONFIGS
CONF_VIPROC_DEFAULT_LIST
CONF_VIPROC_DEFAULT
CONF_ACTIVE_VIPROC_CONFIG
CONF_LOADED_VIPROC_CONFIG
CONF_VIPROC_CONFIG_NAME
CONF_LIST_OF_VIPROC_SCENES
CONF_VIPROC_TAGGED_CONFIG
CONF_VIPROC_TAGGED_CONFIG_INTERNAL
CONF_VIPROC_ALARM
CONF_VIPROC_ALARM_MASK
CONF_VIPROC_MODE
CONF_VIPROC_WEEKLY_SCHEDULE
CONF_VIPROC_HOLIDAYS_SCHEDULE
CONF_PTZ_CONTROLLER_AVAILABLE
CONF_ENABLE_VCA
CONF_VIPROC_ALARM_AGGREGATION_TIME
CONF_VIPROC_ALARM_EXT_AGGREGATION_TIME
CONF_VIPROC_MOTION_DEBOUNCE_TIME
CONF_VCA_TASK_RUNNING_STATE
CONF_TRANSPARENT_DATA_OVER_IP
CONF_SENSITIVITY_OBJECT_BASED_VCA
CONF_VIPROC_SENSITIVE_AREA
CONF_REFERENCE_IMAGE_CHECK_INFO_MESSAGE
CONF_BEST_FACE
CONF_WRITE_XML_TO_VCD
CONF_VCA_BRIGHTNESS_INFO
CONF_VCA_ORIENTATION_INFO
CONF_VCA_SUGGESTED_FIREMASK
CONF_GETPROFILE_ALGO_PRESET_NAME_LIST
CONF_VIPROC_CONFIG_CHANGE_IN_RECORDING
CONF_VIPROC_OLD_AGGREGATION_TIME_USED
CONF_ALARM_OVERVIEW
CONF_RULE_ENGINE_ID
CONF_IVA_COUNTER_VALUES
CONF_FIRE_ALARM
CONF_VIPROC_SET_REF_ORIENTATION
CONF_VIPROC_REF_ORIENTATION
CONF_VCD_OPERATOR_PARAMS
CONF_VIPROC_RE_TASK_NAMES
CONF_VIPROC_DETECTOR_PARAMS
CONF_VCA_OUTPUT_FORMAT
autotracker
CONF_AUTO_TRACKER_TRACK_OBJECT
CONF_AUTO_TRACKER_TRACK_OBJECT_POS
CONF_MODE_AUTO_TRACKER
CONF_STATUS_AUTO_TRACKER
encoder
CONF_MPEG4_CURRENT_PARAMS
CONF_MPEG4_CURRENT_PARAMS_TRANSCODER
CONF_MPEG4_CURRENT_PARAMS_REL_CODER
CONF_MPEG4_NAME
CONF_MPEG4_BANDWIDTH_KBPS
CONF_MPEG4_BANDWIDTH_KBPS_SOFT_LIMIT
CONF_MPEG4_INTRA_FRAME_DISTANCE
CONF_MPEG4_FRAME_SKIP_RATIO
CONF_MPEG4_RESOLUTION
CONF_MPEG4_DEFAULTS
CONF_MPEG4_PARAMS_MAX_NUM
CONF_MPEG4_AVC_I_FRAME_QUANT
CONF_MPEG4_AVC_P_FRAME_QUANT
CONF_MPEG4_AVC_P_FRAME_QUANT_MIN
CONF_MPEG4_AVC_DELTA_IPQUANT
CONF_MPEG4_AVC_QUANT_ADJ_REGION_1
CONF_MPEG4_AVC_QUANT_ADJ_REGION_2
CONF_MPEG4_AVC_DEBLOCKING_ENABLE
CONF_MPEG4_AVC_DEBLOCKING_ALPHA
CONF_MPEG4_AVC_DEBLOCKING_BETA
CONF_MPEG4_AVC_CHROMA_QUANT_OFF
CONF_MPEG4_AVC_CODING_MODE
CONF_MPEG4_AVC_GOP_STRUCTURE
CONF_GOP_STRUCTURE_OPTIONS
CONF_VIDEO_ENC_P_REF_LIST_SIZE
CONF_GET_VIDEO_ENC_P_REF_LIST_SIZE_LIMIT
CONF_MPEG4_AVC_CABAC
CONF_MPEG4_AVC_BITRATE_OPTIMIZATION_OPTIONS
CONF_ENC_DYN_SCENE_CTRL
CONF_ENC_DYN_SCENE_CTRL_OPTIONS
CONF_GET_ENC_DYN_SCENE_CTRL_INFO
CONF_MPEG4_AVC_BITRATE_OPTIMIZATION
CONF_CODER_SPECIFIC_ENC_PROFILES
CONF_VIDEO_BITRATE_AVERAGING_PERIOD
CONF_VIDEO_QUALITY
CONF_JPEG_BANDWIDTH_KBPS
CONF_VIDEO_ENCODER_STATUS
CONF_VIDEO_ENCODER_STATUS_EXT
CONF_EXT_ENCODER_BITRATE_STATISTICS
CONF_VIDEO_ENCODER_ENCODED_BYTES
CONF_ENC_CURRENT_RESOLUTION
CONF_ENC_PROFILE_BASIC_PARAMS
CONF_ENC_PROFILE_PARAMS
CONF_ADAPT_ENC_PROFILE_BITRATES
CONF_VIDEO_ENC_PRIO
CONF_JPEG
CONF_VIDEO_ENC_TEMP_QUANT_ADJ
CONF_VIDEO_CURRENT_PARAMS_CODNBR
CONF_MAX_NBR_OF_ENC_STREAMS
CONF_CODER_VIDEO_OPERATION_MODE
CONF_CODER_VIDEO_OPERATION_MODE_OPTIONS
CONF_VIDEO_H264_ENC_CONFIG
CONF_VIDEO_H264_ENC_CONFIG_DEFAULTS
CONF_VIDEO_H264_ENC_CONFIG_BULK
CONF_ENC_BASE_OPERATION_MODE_TYPE
CONF_VIDEO_H264_ENC_BASE_OPERATION_MODE
CONF_VID_H264_ENC_BASE_OPERATION_MODE_CAPS
CONF_VIDEO_H264_ENC_CURRENT_PROFILE
CONF_JPEG_STREAM_SETUP
CONF_JPEG_STREAM_SETUP_OPTIONS_VERBOSE
CONF_JPEG_STREAM_FRAME_RATES
CONF_ENC_PROFILE_RESOLUTION_OPTIONS
CONF_TCP_RATE_CONTROL
CONF_STREAM_PRIORITY
CONF_NBR_OF_ENC_STREAMS
CONF_H264_ENC_BASE_OP_MODE_CAPS_VERBOSE
CONF_VIDEO_STATIC_SCENE_REGIONS
CONF_VCA_SHAPES
video input
CONF_CAMERA_LENS_CURVE
CONF_VID_IN_CONTRAST
CONF_VID_IN_SATURATION
CONF_VID_IN_BRIGHTNESS
CONF_VIDEO_TERMINATION_RESISTOR_ON
CONF_VIDEO_TERMINATION_RESISTOR_OFF
CONF_VIDEO_INPUT_FORMAT
CONF_VIDEO_INPUT_FORMAT_EX
CONF_VIDEO_INPUT_FORMAT_EX_OPTIONS
CONF_VIDEO_INPUT_FORMAT_EX_VERBOSE
CONF_VIDEO_INPUT_DESCRIPTION
CONF_INPUT_SOURCE_VAL
CONF_NBR_OF_VIDEO_IN
CONF_PRIV_MSK
CONF_PRIV_MSK_POLY
CONF_PRIV_MASK_DOME_PTZ_POS
CONF_PRIV_MSK_OPTIONS
CONF_VCA_MSK_POLY
CONF_VCA_MSK_OPTIONS
CONF_VCA_MASK_DOME_PTZ_POS
CONF_STATIC_PRIV_MSK_OVERLAY
CONF_STATIC_PRIV_MSK_OVERLAY_OPTIONS
CONF_VIN_BASE_FRAMERATE
CONF_VIRTUAL_LINES
CONF_VIDEO_LINE_DEWARPING_MODE
CONF_VIDEO_LINE_DEWARPING_MODE_CAPS
CONF_VIDEO_LINE_DUO
CONF_RAW_IMAGE
stamping
CONF_STAMP_ATTR_DEC_FREEZE
CONF_STAMP_DEC_FREEZE_STRING
CONF_OSD_ACCESS
CONF_OSD_POS
CONF_STAMP
CONF_ENC_STAMPING_PROPERTIES
CONF_NAME_STAMP_VAL
CONF_TIME_STAMP_VAL
CONF_TIME_STAMP_RESOLUTION
CONF_ALARM_DISP_VAL
CONF_ALARM_STRING
CONF_INFO_STAMP_VAL
CONF_LOGO_STAMP_VAL
CONF_STAMP_ATTR_NAME
CONF_STAMP_ATTR_TIME
CONF_STAMP_ATTR_ALARM
CONF_STAMP_ATTR_INFO

roi
CONF_STREAM_EXCLUSIVE_CHECK
CONF_ROI
CONF_ROI_OPTIONS
CONF_DPTZ_DYNAMIC_CAPS
CONF_DPTZ_STATIC_CAPS
audio
CONF_AUDIO_INPUT_LEVEL
CONF_AUDIO_OUTPUT_LEVEL
CONF_AUDIO_ON_OFF
CONF_AUDIO_STARTUP_SOUND
CONF_AUDIO_NOTIFICATION_SOUND
CONF_AUDIO_INPUT
CONF_AUDIO_OUTPUT
CONF_AUDIO_INPUT_MAX
CONF_AUDIO_OUTPUT_MAX
CONF_AUDIO_MIC_LEVEL
CONF_AUDIO_MIC_MAX
CONF_AUDIO_LOUDSPEAKER_ON_OFF
CONF_AUDIO_OPTIONS
CONF_AUDIO_INPUT_PEEK
CONF_AUDIO_OUTPUT_PEEK
CONF_NBR_OF_AUDIO_OUT
CONF_NBR_OF_AUDIO_IN
CONF_AUDIO_AAC_BITRATE
CONF_VIRTUAL_AUDIO_LINES
CONF_MPEG_AUDIO_SAMPLING_FREQ
CONF_AUPROC_CONFIG
CONF_AUPROC_MELPEGEL
CONF_AUPROC_NAME
CONF_AUPROC_ALARM
decoder/videoout
CONF_VIDEO_OUT_STANDARD
CONF_VIDEO_OUT_STANDARD_FORCE
CONF_VIDEO_OUT_CROPPING
CONF_VIDEO_OUT_DISPLAY_FORMAT
CONF_MONITOR_NAME

CONF_DEC_SHOW_FREEZE
CONF_DECODER_MODE
CONF_DECODER_LAYOUT_LIST
CONF_DECODER_LAYOUT
CONF_VIDEO_OUT_MONITOR_SPEC
CONF_NBR_OF_VIDEO_OUT
CONF_DECODER_DELAY
CONF_DECODING_ERROR
bicom
CONF_BICOM_COMMAND
alarm
CONF_VIDEO_ALARM_STATE
CONF_MOTION_ALARM_STATE
CONF_NBR_OF_ALARM_OUT
CONF_NBR_OF_MOTION_DETECTORS
CONF_HD_MGR_SIGNAL_ALARM
CONF_VIRTUAL_ALARM_STATE
CONF_SET_VIRTUAL_ALARM_ID
CONF_NBR_OF_VIRTUAL_ALARMS
CONF_MANIPULATION_ALARM_STATE
CONF_NBR_OF_MANIPULATION_ALARMS
CONF_VIRTUAL_ALARM_PARAMETER
CONF_NBR_OF_ALARM_IN
CONF_INPUT_PIN_NAME
CONF_INPUT_PIN_STATE
CONF_ALARM_INPUT_LH_VAL
CONF_ALARM_INPUT_SUPERVISED
CONF_ALARM_INPUT_CAPABILITIES
CONF_EVENT_SCRIPT
I/Os
CONF_RELAIS_NAME
CONF_RELAIS_SWITCH
CONF_RELAY_OUTPUT_STATE
CONF_RELAY_OUTPUT_MODE
CONF_PIR_SENSITIVITY
CONF_PIR_STATUS
CONF_NBR_OF_PIR
CONF_PIR_ALARM_STATE
CONF_ILLUMINATOR_OPTIONS
CONF_ILLUMINATOR_STATE
CONF_ILLUMINATION_INTENSITY
alarm connections
CONF_ALARM_CONNECT_TO_IP_STR
CONF_ALARM_CONNECT_TO_IP
CONF_NBR_OF_ALTERNATIVE_ALARM_IPS
CONF_AUTO_DISCONNECT_TIME
CONF_DEFAULT_CONNECTION_MODE
CONF_STD_MEDIA_CONNECTION_DIRECTION
CONF_STD_MEDIA_ENCAPSULATION_PROTOKOL
CONF_DEFAULT_CAM
CONF_ALARM_CONNECTION_DESTINATION_PORT
CONF_ALARM_CONNECTION_USE_SSL
CONF_CONNECT_URL
CONF_REMOTE_PASSWORD
serial port
CONF_SERIAL_PORT_APP_VAL
CONF_SERIAL_PORT_RATE
CONF_SERIAL_PORT_BITS
CONF_SERIAL_PORT_STBITS
CONF_SERIAL_PORT_PAR
CONF_SERIAL_PORT_MODE_VAL
CONF_SERIAL_PORT_HD_MODE_VAL
CONF_SERIAL_ACTS_ACCESS_RIGHTS
CONF_TPPP_PORT
transcoder
CONF_TCP_BANDWIDTH_CHECK
CONF_TCP_BANDWIDTH_CHECK_RESULT
CONF_ADD_REMOTE_DEVICE
CONF_TCP_FWD
extension
CONF_EXTERNAL_CLIENTS_LIST
CONF_EXTERNAL_CLIENT
account
CONF_ACCOUNT_SETTINGS
CONF_ACCOUNT_SETTINGS_V2
CONF_NBR_OF_ACCOUNTS
CONF_DROPBOX_AUTH_ADDR
CONF_DROPBOX_AUTH_STATUS
CONF_DROPBOX_TOKEN_V2
CONF_DROPBOX_AUTH_V2
CONF_ACCOUNT_STATUS
CONF_FTP_SERVER_PORT
CONF_FTP_PWD
CONF_ACCOUNT_LIST
CONF_ACCOUNTS_CREATE_FOLDER
CONF_ACCOUNTS_DELETE_FOLDER
CONF_FTP_CWD
CONF_FTP_CDUP
CONF_START_CLIENT
CONF_STOP_CLIENT
CONF_FTP_FILE_NAME
CONF_ACCOUNT_LOGIN_TEST
onvif
CONF_ONVIF_STREAM_MODE
CONF_ONVIF_STREAM_URI_EX
CONF_ENABLE_ONVIF
upnp
CONF_ENABLE_UPNP
CONF_UPNP_SEARCH_IP_CONN_SERVICE
CONF_UPNP_TCP_FWD
stratocast
CONF_STRATOCAST_ONOFF
CONF_STRATOCAST_REGISTER
CONF_STRATOCAST_STATE
GB28181
CONF_GB28181
CloudWatch
CONF_CLOUD_WATCH_SETTINGS
Keyboard
CONF_KBD_CONFIG_CAMERA
CONF_KBD_CONFIG_CAMERA_STR
CONF_KBD_CONFIG_MONITOR
CONF_KBD_CONFIG_MONITOR_STR
CONF_KBD_CONNECT_PARAMS
CONF_KBD_PASSWORD_CAMERA
CONF_KBD_PASSWORD
CONF_KBD_CONFIG_SALVO
CONF_KBD_KEY_LABEL
CONF_KBD_SET_ALARM
Cbs
CONF_CBS_COMMISSION
CONF_CBS_STATUS
CONF_CBS_DESTINATION
CONF_REMOTE_PORTAL_INFO
Socket Knocker
CONF_SOCKET_KNOCKER_MODE
CONF_SOCKET_KNOCKER_DESTINATION
CONF_SOCKET_KNOCKER_DESTINATION_NAME
CONF_SOCKET_KNOCKER_STATUS
http live streaming
CONF_HTTP_LIVE_BITRATE
CONF_HTTP_LIVE_AUDIO
dyndns
CONF_DYNDNS_HOST_NAME
CONF_DYNDNS_USER_NAME
CONF_DYNDNS_PASSWORD
CONF_DYNDNS_ENABLE
CONF_DYNDNS_STATE
CONF_DYNDNS_LAST_REGISTER
CONF_DYNDNS_FORCE_REGISTER_NOW
CONF_DYNDNS_PROVIDER
CONF_DYNDNS_STATUS_MAIL_ONOFF
CONF_DYNDNS_MAIL_SMTP_SRV_IP_STR
CONF_DYNDNS_MAIL_SMTP_LOGIN
CONF_DYNDNS_MAIL_SMTP_PASS
CONF_DYNDNS_MAIL_DEST_EMAIL_ADDR
CONF_DYNDNS_MAIL_SENDER_NAME
CONF_DYNDNS_MAIL_TEST_SEND
commissioning
CONF_COMMISSION_SETUP
lldp
CONF_LLDP_REQUESTED_POWER_TOTAL
CONF_LLDP_REQUESTED_POWER_CAM
CONF_LLDP_ALLOCATED_POWER_TOTAL
CONF_LLDP_POWER_ADDER
CONF_BASE_POE_CLASS
CONF_SIGNALLED_POE_CLASS
CONF_POE_GRANTED_POWER
iscsi
CONF_ISCSI_IP
CONF_ISCSI_PORT
CONF_ISCSI_LUN
CONF_ISCSI_TARGET_IDX
CONF_ISCSI_TARGET
CONF_ISCSI_TCP_CONNECTIONS
CONF_ISCSI_DISCOVERY
CONF_ISCSI_TARGET_PWD
CONF_ISCSI_LOCK_OVERRIDE
CONF_ISCSI_LOCK_RELEASE_ON_LEAVE
CONF_ISCSI_INITIATOR_NAME
CONF_ISCSI_INITIATOR_NAME_EXTENTION
CONF_ISCSI_SERVER_STATE
CONF_ISCSI_MNI
CONF_ISCSI_AUTH
CONF_ISCSI_SEG_SIZE
CONF_ISCSI_DATARATE
CONF_ISCSI_LOWERDATARATE
CONF_ISCSI_READDATARATE
CONF_ISCSI_MULTIPATH
CONF_ISCSI_MULTIPATH_STATE
CONF_ISCSI_FLUSH_DISVCACHE
CONF_ISCSI_DISV_CACHE
CONF_ISCSI_MP_DISCOVER
storage
CONF_FORMAT_FS_STATUS
CONF_PREPARE_FOR_RECORDING
CONF_SD_CARD_LIFE_SPAN_STATUS
CONF_SD_CARD_LIFE_SPAN_ALARM_THRESHOLD
CONF_SD_CARD_LIFE_SPAN_MANF
CONF_SD_CARD_LIFE_SPAN_ENABLE
CONF_NBR_OF_SD_CARD_SLOTS
CONF_STORAGE_REPORT
CONF_STORAGE_REPORT_SECONDARY
CONF_STORAGE_MEDIUM_TYPE
CONF_STORAGE_MEDIUM_AVAIL
CONF_STORAGE_LIST
CONF_STORAGE_IO
CONF_DATA_COPY_JOB_START
CONF_DATA_COPY_JOB_STOP
CONF_DATA_COPY_JOB_STATUS
CONF_STORAGE_TARGET_ID
CONF_TARGET_ID_RESOLVE_RULES
CONF_INTERNAL_STORAGE_ENCRYPTION
CONF_HDD_RECORD_ENCRYPTION
CONF_HDD_RECORD_ALARM_RING_INIT_SIZE
CONF_HD_FORMAT_STORAGE_ERROR_LOG_CNT
recording settings
CONF_HD_PARTITIONS_RECORDING
CONF_HD_PARTITION_RECORDING
CONF_HD_PARTITION_RECORDING_SECONDARY
CONF_HD_SIZE_MB
CONF_HD_RECORD_SCHEDULE
CONF_HD_RECORD_SCHEDULE_SECONDARY
CONF_HD_RECORD_HOLIDAYS
CONF_HD_RECORD_PROFILES
CONF_HD_RECORD_PROFILES_SECONDARY
CONF_HD_RECORD_PROFILES_V2
CONF_HD_RECORD_PROFILES_V2_SECONDARY
CONF_HD_MGR_START
CONF_HD_MGR_START_SECONDARY
CONF_HD_MGR_STOP
CONF_HD_MGR_STOP_SECONDARY
CONF_HD_RECORDING_REPORT
CONF_HD_RECORDING_REPORT_SECONDARY
CONF_RECORDING_STATUS
CONF_RECORDING_RETENTION_TIME
CONF_RECORDING_RETENTION_TIME_SECONDARY
CONF_MAX_RECORDING_RETENTION_TIME
CONF_REMOTE_REC_DEVICE
CONF_REC_MGNT
CONF_HD_MGR_REC_STATUS
CONF_HD_MGR_REC_STATUS_SECONDARY
CONF_HD_FILE_INFO
CONF_HD_FILE_INFO_SECONDARY
CONF_HD_RELOAD_PARTITION_FILE_INFO
CONF_HD_RECORDING_ACTIVE
CONF_HD_REPLAY_ENCRYPTED_DATA
CONF_HD_REPLAY_AUTHENTICITY_OUT
CONF_START_RECORD
CONF_SET_REC_BUFFER_SIZE
CONF_AUDIO_REC_FORMAT
CONF_MANAGING_VRM
CONF_REC_STORAGE_REQ_CFG
CONF_RECORDING_BUFFER_LEVEL
CONF_HD_REC_BUFFER
CONF_MAX_GOP_LENGTH_VALUE
CONF_ALARM_BACKUP_REC_SPEED_LIMIT
CONF_BACKUP_RECORDING_STATUS
CONF_BACKUP_RECORDING_STATUS_MSG_THRESHOLD
CONF_BUFFERED_RECORDING_MODE
CONF_EXT_RECORDER_BITRATE_STATISTICS
CONF_FORMAT_FS_SPAN
CONF_FORMAT_FS_SPANS_STATUS
CONF_SPAN_ADDRESS_LIST
CONF_SPAN_ADDRESS_LIST_NEW
CONF_SPAN_HDR_ACCESS
CONF_START_SPAN_RECORD
CONF_SPAN_PARTITION_PROP
CONF_SPAN_PARTITION_PROP_SECONDARY
CONF_SPAN_USE_STATUS
CONF_SPAN_USE_STATUS_SECONDARY
CONF_SPAN_PARTITION_FILE_INFO
CONF_EXPORT_SPAN
CONF_CAM_REC_SPANS
CONF_REC_SPAN_MGR
CONF_SPAN_SWITCH
CONF_HD_SET_VRM_LOCK
CONF_SPAN_FILES_DIR
CONF_SPAN_HISTORY
CONF_ACCESS_LUN_MGMT_FILE
CONF_FLUSH_LUN_INFO_CACHE
CONF_DELETE_CAM_REC_SPANS
CONF_HDD_VCD_CACHE_SIZE
CONF_SPAN_CERTIFICATES_LIST
CONF_SCHEDULED_PTZ_PROFILES
CONF_SCHEDULED_PTZ_PROFILE
CONF_REC_MONITOR_STATUS
replay control
CONF_HD_REPLAY_START
CONF_HD_REPLAY_START_EX
CONF_HD_REPLAY_STOP
CONF_HD_REPLAY_STOP_TIME
CONF_HD_REPLAY_SEEK_TIME
CONF_HD_REPLAY_SEEK_IFRAME
CONF_HD_REPLAY_EVENT_INFO
CONF_HD_REPLAY_MOTION_SAMPLES
CONF_HD_REPLAY_FAST_INTRA_DELAY
CONF_HD_REPLAY_FAST_INTRA_FPS
CONF_HD_REPLAY_LIVE
CONF_HD_REPLAY_SIZE_INFO
CONF_HD_REPLAY_VCD_LAYER
CONF_HD_REPLAY_VCD_CONFIG_ID
CONF_HD_REPLAY_FORENSIC_SEARCH_SETUP
CONF_HD_REPLAY_FORENSIC_SEARCH_CANCEL
CONF_HD_REPLAY_FORENSIC_SEARCH_RESULT
CONF_HD_REPLAY_PREFETCH_JPEGS
CONF_HD_REPLAY_CUSTOM_SETTINGS
CONF_HD_REPLAY_CERTIFICATES_LIST
CONF_HD_REPLAY_SEQUENCE_VERIFY
CONF_HD_PARTITION_FILE_INFO
backup
CONF_BACKUP
CONF_BACKUP_MAX_KBPS
CONF_BACKUP_STATUS
CONF_BACKUP_STOP
app management
CONF_LIST_APPS
CONF_MANAGE_APPS
CONF_APP_MGMT_GET_DEVICE_IDS
CONF_APP_MGMT_INSTALL_LICENSE
CONF_SAST_CLOUD_CONNECTION
CONF_SAST_CLAIM_DEVICE_URI
CONF_ENABLE_DEVELOPER_MODE
streaming gateway
CONF_STREAMING_GATEWAY_CONFIG
CONF_STREAMING_GATEWAY_ACTIVE_LINES
CONF_STREAMING_GATEWAY_MAX_LINES
Appendix
Sample application in C
Sample code for connecting to a VideoJet using the UDP protocol
Sample code for connecting to a VideoJet using the TCP protocol
Sample code for connecting to VideoJet’s internal HDD and start replay
Starting a replay service on the VCS VideoJet using the VCS MPEG-Active-X
Bicom Command Access Levels
Specific error codes

Transport Protocol

Table Of Contents

The transport protocol for this remote control must be TCP. All VideoJets will establish a TCP listen socket on port 1756. Any remote control must be sent to this port. Multiple RCP connections from the same endpoints are allowed. The maximum number of RCP connections on a single endpoint is limited to 50 connections at the same time. Alternatively, a connection can be made using a HTTP tunnel. See this chapter for details.

Remote Control ProtocolPlus Protocol Header Layout

Version 3 (VIP, VideoJet and VipX Series and VIP110Version 6.0 and higher). The RCP Plus protocol header consists of 16 Bytes. The begin of the payload section is now on DWORD boundary.
1632
Tag
2 Bytes
Data Type
1 Byte
Version
4 Bits
R/W
4 Bits
C
1 Bit
T
1 Bit
Action
6 Bits
Reserved
1 Byte
Client ID
2 Bytes
Session ID
4 Bytes
Numeric Descriptor ID
2 Bytes
Payload Length
2 Bytes
824

Tag

Each tag is represented by two octets. It identifies the command which should be processed by the VideoJet.

Data Type

Specifies the data type of the payload section. These are the currently available data types.
Values:
F_FLAG0x00
T_OCTET0x01
T_WORD0x02
T_INT0x04
T_DWORD0x08
P_OCTET0x0C
P_STRING0x10
P_UNICODE0x14

Version

The current RCP version is 3. Backward compatibility to version 2 or version 0 is NOT provided.

R/W

Specifies whether the command should read or write. The Read/Write field is coded in the lower nibble of byte 4.
Values:
Read0x00
Write0x01

C

Continuation. This bit signals, when set, that this RCP+ packet is not terminated in the payload; additional packets with the full RCP+ header will follow immediately in the stream as long as this bit is cleared. The reassembly of the complete payload is up to the application and is beyond the scope of this document.

T

StringTable available. This bit signals, when set, that there is a string table appended to this RCP+ packet which contains IPv6 addresses or host names.

Action

Specifies the kind of the packet.
Values:
Request0x00
Reply0x01
Message0x02
Error0x03

Reserved

This byte is returned by the VideoJet unchanged. It is up to the user to setup a request ID here to assign the replies to multiple pending requests.

Client ID

Each RCP client register results in a Client ID; this ID has to be provided in all following RCP commands.

Session ID

This ID is used for implementations which need to identify a once registered user in other applications or RCP sessions.

Numeric Descriptor ID

The Numeric Descriptor specifies an attribute for components which are installed more than one time inside the VideoJet, e.g. inputs or relays. The first component is always counted as 1. If this field is not applicable to the command in this packet, a value of zero should be inserted.

Payload Length

The number of data bytes inside the payload section. The length field itself is not counted.


Packetizing in the TCP Stream

Table Of Contents

As TCP is a stream oriented protocol, packetizing information has to be inserted to achieve proper packet reconstruction. For this purpose the TPKT structure is used.
1632
Version
1 Byte
Reserved
1 Byte
Length
2 Bytes
RCPPacket
N Bytes
824

Version

TPKT version 3.

Reserved

Should be set to zero.

Length

Byte count of the complete packet; RCP packet length + TPKT length (4 Bytes).


RCP Protocol Procedure

Table Of Contents

Request / Reply

The VideoJet unit will send back a reply on each incoming request. In some protocol functions the reply will carry no data.
request_reply.jpg
Note: A reply from a write command which is not readable will be an RCP_ERROR_READ_NOT_SUPPORTED (error code 0x90) This means that it is not possible to determine correct setting of the command.

Messages

A message will be generated on the VideoJet on certain events (see RCP command for details). If an RCP client is registered to receive a certain message (e.g. an input state has changed), the VideoJet will generate it. The message has the same payload format as the response to a Read command of the same tag, except the reserved byte. The reserved byte is used as sequence number.
message.jpg
RCP is capable of sending messages on certain events. Before an RCP client can receive these messages, a registration at the VideoJet is necessary.

RCP Errors

The packet will have the standard layout with the method field set to ‘Error’. The first bytes of the payload section contains error cause. If the error code is RCP_ERROR_COMMAND_SPECIFIC, then the command specific error (see RCP command for details) is included in the second byte. The following generic error codes are defined:
RCP_ERROR_INVALID_VERSION0x10
RCP_ERROR_NOT_REGISTERED0x20
RCP_ERROR_INVALID_CLIENT_ID0x21
RCP_ERROR_INVALID_METHOD0x30
RCP_ERROR_INVALID_CMD0x40
RCP_ERROR_INVALID_ACCESS_TYPE0x50
RCP_ERROR_INVALID_DATA_TYPE0x60
RCP_ERROR_WRITE_ERROR0x70
RCP_ERROR_PACKET_SIZE0x80
RCP_ERROR_READ_NOT_SUPPORTED0x90
RCP_ERROR_INVALID_AUTH_LEVEL0xa0
RCP_ERROR_INVAILD_SESSION_ID0xb0
RCP_ERROR_TRY_LATER0xc0
RCP_ERROR_TIMEOUT0xd0
RCP_ERROR_NO_LICENCE0xe0Used by NVR only
RCP_ERROR_COMMAND_SPECIFIC0xf0
RCP_ERROR_ADDRESS_FORMAT0xf1
RCP_ERROR_NOT_SUPPORTED_ON_THAT_PLATFORM0xf2
RCP_ERROR_UNKNOWN0xff
Note the error code 0xc0 RCP_ERROR_TRY_LATER indicates, that the VideoJet recognizes the command, but it cannot be processed immediately. The client should repeat this command later.
A list of all defined command specific error codes can be found in the Appendix.


RCP over a HTTP tunnel

Table Of Contents

Many network installations includes firewalls to protect network segments against unauthorisized access. In many cases, the HTTP port (80) is enabled by default to gain Internet access. For this purpose, RCP offers a second network port. As the VideoJet has a built in webserver, the connection can be made to the webserver, the token
GET /rcp_tunnel HTTP1.0\r\n\r\n
advices the webserver to pass this socket to the RCP server. From that point on, the client is connected to the RCP server and can immediately cointinue with RCP registration.
Note: The delimiters '\r' and '\n' are written here in C notation; in the TCP packet to the server these delimiters corresponds with the ASCII codes 0x0d and 0x0a.
Example:
  1. Establish a TCP connection to port 80 at your Videjet
  2. Send the string "GET /rcp_tunnel HTTP/1.0\r\n\r\n" (as HEX string: 0x47 0x45 0x54 0x20 0x2f 0x72 0x63 0x70 0x5f 0x74 0x75 0x6e 0x6e 0x65 0x6c 0x20 0x48 0x54 0x54 0x50 0x31 0x2e 0x30 0x0d 0x0a 0x0d 0x0a)
  3. Proceed in the same manner as a normal RCP connection

Receiving media data

The VideoJet is capable for tunneling media data through HTTP. In some network environments this might be helpful.
When using this mechanism, the connect primitive must set the "RTP over TCP" for the media encapsulation protocol. The response for Media host and port can be ignored. After that, a TCP connection to the HTTP port must be established. By sending the string
GET /media_tunnel/SSSSSSSS/CC/DD/LL/CO HTTP/1.0\r\n\r\n
SSSSSSSThe session ID returned from the connect primitive (padded with leading zeros to 8)
CCThe media type (see connect primitive; 01=video, 02=audio)
DDDirection of media (01=receive media, 00=transmit media)
LLThe line input number
COThe relative coder number
When the HTTP server inside the VideoJet received this string, it passes this socket to the RCP. From that point on, media data will be transferred over this socket using TPKT encapsulation (see chapter Packetizing in the TCP Stream).
The coder numbers that have to be used to establish the media tunnels is a relative one that isn't unique when using video as media type. The video and meta data can have the same relative coder number and have the same media type. In that case the optional index parameter might be used to distinguish the media channels:
GET /media_tunnel/SSSSSSSS/CC/DD/LL/CO?index=n HTTP/1.0\r\n\r\n
where n is the number of the initial connect primitive channel position starting at 1.
E.g the ConnectPrimitive request contains a Get Video, a Get Audio and a Get Meta section, then the index for video would be 1, the index for audio 2 and the index for meta would be 3.
When all sockets of a session are in data sending mode, a RCP message MEDIA_SOCKETS_COMPLETE with the associated session ID will be sent out to the initiator of the session. This is useful when a session is used for replay; the replay PLAY command can securely be applied when the MEDIA_SOCKETS_COMPLETE message has been arrived.


Autodetecting Devices

Table Of Contents

Bosch Security Systems products are being detected on a network using an IP broadcast to either the static UDP port 1757 or to the configurable UDP discover port. The default port number for the configurable discover port is 1800, and it can be modified with the RCP command CONF_DISCOVER_PORT (0x0976). In addition to the possibility to send a scan request packet to the broadcast destination address of 255.255.255.255, the discover port of the devices listens for scan requests sent to the configurable multicast group, which can be set by means of the RCP command CONF_AUTODETECT_REPLY_GROUP (0x0956). The default multicast detect group is 225.86.67.83.
Devices generate and transmit their replies to an autodetect request with a random delay of up to 2 seconds. When implementing your own detection software, please bear in mind that, when calculating the necessary waiting period until all replies are received, additionally to the possible span of max 2 seconds, you need to consider the time necessary to process the reply as well as the time the packet spends on the wire and in propagation devices like switches or routers on its way to and back from the device to be detected.
The scanned devices send their replies either to the source IP address of the request, or to the broadcast address 255.255.255.255. In case the source IP address of the request resides inside the same subnet, that is defined by the scanned device's IP address and it's subnet mask, the reply is addressed to the source IP address in the request. If the originator is not located in the same subnet as the scanned device, the reply is addressed to the broadcast address 255.255.255.255. In case of a scan request sent to the device via the multicast scan group, the reply is addressed to the same multicast group.
An autodetect scan request packet must consist of an autodetect request header, that may or may not be preceeded by an RCP plus protocol header for command id CONF_RCP_AUTODETECT (0xffdc). In case of an existing RCP plus protocol header in the scan request, the length field of the RCP plus protocol header must contain the length of the autodetect request header.
The format for the autodetect request header as well as for the autodetect reply is shown below:

Autodetect Request Header

1632
0x99
1 Byte
0x39
1 Byte
0xA4
1 Byte
0x27
1 Byte
Sequence Number
4 Bytes
0x00
1 Byte
0x00
1 Byte
Reply Port
2 Bytes
824

Sequence Number

This sequence number must be a randomized number.

Reply Port

Specifies the reply UDP port e.g. RP1 0x06; RP2 0xDE -> reply port: 1758

Additional information on hardware versions

32-Bit Hardware version Former Scheme

1632
ID
4 Bits
R
2 Bits
FL
2 Bits
Serial Number
2 Bytes
Net
4 Bits
Opt
4 Bits
824

ID

Values:
NCID_NVR0x01
NCID_VJ80000x02
NCID_VIP100x03
NCID_VIP10000x04
NCID_VJ4000x06
NCID_VIP1000x07
NCID_VJEX0x08
NCID_VJ10000x09
NCID_VJ1000x0A
NCID_VJ100x0B
NCID_VJ80080x0C
NCID_VJ80040x0DLatest unit carrying the old numbering scheme
EscapeCode0x0FUsed to switch over to new detection

R

Reserved

FL

Flavour - Values:
HARDWARE_TYPE_VIN0x00
HARDWARE_TYPE_VOUT0x01
HARDWARE_TYPE_VIN_OUT0x02

Net

Values:
MaskName
Bit 20x4HARDWARE_SYSTEM_ETHERNET
Bit 00x1HARDWARE_SYSTEM_OPT_ISDN

Opt

Values:
MaskName
Bit 10x2HARDWARE_OPT_HDD
Bit 00x1HARDWARE_OPT_AUDIO

32-Bit Hardware version New Scheme

1632
Esc
4 Bits
R
1 Bit
M
1 Bit
FL
2 Bits
Reserved
1 Byte
ID
1 Byte
Net
4 Bits
Opt
4 Bits
824

Esc

Must be set to 0xF

R

Reserved

M

Values:
Master0x00
Slave0x01

FL

Flavour - Values:
HARDWARE_TYPE_VIN0x00
HARDWARE_TYPE_VOUT0x01
HARDWARE_TYPE_VIN_OUT0x02

ID

Note: this Hardware ID will not be further maintained for future products. To distinguish different device variants please use the Product- and Variant ID, see command CONF_DEVICE_TYPE_IDS
HARDWARE_ID_VIPX10x01
HARDWARE_ID_VIPX20x02
HARDWARE_ID_VIPXDEC0x03
HARDWARE_ID_VJ_X100x05
HARDWARE_ID_VJ_X200x06
HARDWARE_ID_VJ_X400x07
HARDWARE_ID_VJ_X40_ECO0x08
HARDWARE_ID_VJ_X10_ECO0x09
HARDWARE_ID_VJ_X20_ECO0x0A
HARDWARE_ID_IP_PANEL0x0d
HARDWARE_ID_GEN40x0e
HARDWARE_ID_M16000x0f
HARDWARE_ID_FLEXIDOME0x11
HARDWARE_ID_M1600_DEC0x13
HARDWARE_ID_M1600_XFM0x15
HARDWARE_ID_AUTODOME0x16
HARDWARE_ID_NBC_225P0x1a
HARDWARE_ID_VIPX1_XF0x1e
HARDWARE_ID_CPP130x1f
HARDWARE_ID_NBC_255P0x20
HARDWARE_ID_NBC_255W0x21
HARDWARE_ID_AUTODOME_EASY_II0x23
HARDWARE_ID_AUTODOME_EASY_II_E0x24
HARDWARE_ID_VIPX1_XF_E0x25
HARDWARE_ID_VJT_X20XF_E_2CH0x26
HARDWARE_ID_VJT_X20XF_E_4CH0x27
HARDWARE_ID_VIPX1_XF_W0x28
HARDWARE_ID_VG5_AUTODOME_7000x29
HARDWARE_ID_NDC_455_P0x2a
HARDWARE_ID_NDC_455_P_IVA0x2b
HARDWARE_ID_NBC_455_P0x2c
HARDWARE_ID_NBC_455_P_IVA0x2d
HARDWARE_ID_VG4_AUTODOME0x2e
HARDWARE_ID_NDC_225_P0x2f
HARDWARE_ID_NDC_255_P0x30
HARDWARE_ID_VOT0x32
HARDWARE_ID_NDC_274_P0x35
HARDWARE_ID_NDC_284_P0x36
HARDWARE_ID_NTC_265_PI0x37
HARDWARE_ID_NDC_265_PIO0x38
HARDWARE_ID_DINION_720P0x39
HARDWARE_ID_NDN_8220x3a
HARDWARE_ID_FLEXIDOME_720P0x3b
HARDWARE_ID_NDC_265_W0x3c
HARDWARE_ID_NDC_265_P0x3d
HARDWARE_ID_NBC_265_P0x3e
HARDWARE_ID_NDC_225_PI0x3f
HARDWARE_ID_NTC_255_PI0x40
HARDWARE_ID_JR_DOME_HD0x41
HARDWARE_ID_JR_DOME_HD_FIXED0x42
HARDWARE_ID_EX30_IR0x43
HARDWARE_ID_GEN5_HD_PC0x45
HARDWARE_ID_EX650x46
HARDWARE_ID_DINION_1080P0x47
HARDWARE_ID_FLEXIDOME_1080P0x48
HARDWARE_ID_HD_DECODER0x49
HARDWARE_ID_GEN5_HD0x4a
HARDWARE_ID_NER_L20x4b
HARDWARE_ID_VIP_MIC0x4c
HARDWARE_ID_GEN5_A5_8000x4d
HARDWARE_ID_NEVADA_TRANSCODER0x4e
HARDWARE_ID_TESLA_BOXED0x4f
HARDWARE_ID_TESLA_DOME0x50
HARDWARE_ID_GEN5_A5_7000x52
HARDWARE_ID_VJ_GENERIC_TRANSCODER0x53
HARDWARE_ID_HD_DECODER_M0x54
HARDWARE_ID_OASIS0x55
HARDWARE_ID_GALILEO_BOXED0x56
HARDWARE_ID_GALILEO_DOME0x57
HARDWARE_ID_HUYGENS_KEPPLER0x58
HARDWARE_ID_TESLA_KEPPLER0x59
HARDWARE_ID_GALILEO_KEPPLER0x5a
HARDWARE_ID_NUC_200020x5b
HARDWARE_ID_NUC_200120x5c
HARDWARE_ID_NUC_500220x5d
HARDWARE_ID_NUC_500510x5e
HARDWARE_ID_NPC_200020x5f
HARDWARE_ID_NPC_200120x60
HARDWARE_ID_NPC_20012_W0x61
HARDWARE_ID_NIN_500220x62
HARDWARE_ID_NII_500220x63
HARDWARE_ID_NDN_500220x64
HARDWARE_ID_NDI_500220x65
HARDWARE_ID_NTI_500220x66
HARDWARE_ID_NIN_500510x67
HARDWARE_ID_NDN_500510x68
HARDWARE_ID_NAI_900220x69
HARDWARE_ID_NCN_900220x6a
HARDWARE_ID_NEVADA_DECODER0x6c
HARDWARE_ID_NBN_50022_C0x6d
HARDWARE_ID_NBN_40012_C0x6e
HARDWARE_ID_NBN_800520x71
HARDWARE_ID_MIC_70000x72
HARDWARE_ID_EX65_HD0x73
HARDWARE_ID_NBN_801220x74
HARDWARE_ID_NPC_20012_L0x75
HARDWARE_ID_MIC_NPS0x76
HARDWARE_ID_NBN_50051_C0x78
HARDWARE_ID_NIN_400120x79
HARDWARE_ID_NII_400120x7a
HARDWARE_ID_NDN_400120x7b
HARDWARE_ID_NDI_400120x7c
HARDWARE_ID_NTI_400120x7d
HARDWARE_ID_NII_500510x7e
HARDWARE_ID_NDI_500510x7f
HARDWARE_ID_NEZ_40000x80
HARDWARE_ID_VEGA_3000_HD0x81
HARDWARE_ID_VEGA_4000_HD0x82
HARDWARE_ID_VEGA_5000_HD0x83
HARDWARE_ID_VEGA_5000_MP0x84
HARDWARE_ID_NIN_70122_1800x85
HARDWARE_ID_NIN_70122_3600x86
HARDWARE_ID_NEZ_50000x88
HARDWARE_ID_NEZ_5000_IR0x89
HARDWARE_ID_ROLA0x8b
HARDWARE_ID_NBN_80122_CA0x8c
HARDWARE_ID_ROLA_VANDAL0x8d
HARDWARE_ID_ROLA_MSI0x8e
HARDWARE_ID_SVO_16010x8f
HARDWARE_ID_VJD_80000x90
HARDWARE_ID_PIXIE_BOXED0x91
HARDWARE_ID_SVI_16090x92
HARDWARE_ID_PIXIE_DOME0x94
HARDWARE_ID_NBN_80052_FIRE0x95
HARDWARE_ID_ALTAIR30x96
HARDWARE_ID_PLANCK0x97
HARDWARE_ID_NDP_40000x99
HARDWARE_ID_NDP_50000x9a
HARDWARE_ID_NDP_5000_IR0x9b
HARDWARE_ID_NDE_85020x9e
HARDWARE_ID_NDE_8503_40x9f
HARDWARE_ID_NBE_40000xa0
HARDWARE_ID_NBE_50000xa1
HARDWARE_ID_NBE_60000xa2
HARDWARE_ID_MIC_90000xa3
HARDWARE_ID_MIC_7000_7_30xa9
HARDWARE_ID_GEN5_7_30xaa
HARDWARE_ID_NTI_510220xad
HARDWARE_ID_NDP_55230xae
HARDWARE_ID_NDP_5523_IR0xaf
HARDWARE_ID_CHOPPER0xb0
HARDWARE_ID_NDE_8502_RX_8503_RX0xb4
HARDWARE_ID_ISCSI_TARGET0xf6
HARDWARE_ID_VRM_PROXY_160xf7
HARDWARE_ID_VRM_UL_APP0xf8
HARDWARE_ID_VRM_LE_APP0xf9
HARDWARE_ID_CAMNETWORK0xfa
HARDWARE_ID_VRM_PROXY0xfb
HARDWARE_ID_VRM0xfc
HARDWARE_ID_VIDOS_SERVER0xfd
HARDWARE_ID_VIDOS_MONITOR0xfe

Net

Values:
MaskName
Bit 20x4HARDWARE_SYSTEM_ETHERNET
Bit 00x1HARDWARE_SYSTEM_OPT_ISDN

Opt

Values:
MaskName
Bit 10x2HARDWARE_OPT_HDD
Bit 00x1HARDWARE_OPT_AUDIO

1st Reply Packet

1632
0x99
1 Byte
0x39
1 Byte
0xa4
1 Byte
0x27
1 Byte
Sequence Number
4 Bytes
Hardware Address...
6 Bytes
Hardware Address
...
0x03
1 Byte
ID
1 Byte
Device IP
4 Bytes
Subnet Mask
4 Bytes
Gatway IP
4 Bytes
Flavor
1 Byte
Connections
1 Byte
Reserved
1 Byte
ID new
1 Byte
824

Sequence Number

Returns the sequence number from the request packet.

Hardware Address

MAC address of the device.

ID

Unit Hardware ID returned from request (will be 0xff when the new version layout is used).

Device IP

Current IP address of the device.

Subnet Mask

Current Subnet mask of the device.

Gatway IP

Current Gateway of the device.

Flavor

Flavor of this device.

Connections

Number of active connections.

ID new

The ID filed of the new version layout.

2nd Reply Packet

<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="OEMExtXX:device-1-0">
<device>
<deviceType>OEMExtXX:device:deviceIDYY</deviceType>
<friendlyName>VideoJet</friendlyName>
<unitName>UnitName</unitName>
<deviceGUID>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</deviceGUID>
<serialNumber>XXXXXXXX:YYYYYYYY</serialNumber>
<physAddress>XX-XX-XX-XX-XX-XX</physAddress>
<sessionKey>XXXXXXXXXXXXXXXX</sessionKey>
<unitIPAddress>XXX.XXX.XXX.XXX</unitIPAddress>
<unitSubnetMask>XXX.XXX.XXX.XXX</unitSubnetMask>
<unitGatewayIp>XXX.XXX.XXX.XXX</unitGatewayIp>
<unitIPv6Address>XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX</unitIPv6Address>
<activeConnections>XX</activeConnections>
<RCPPort>XXXX</RCPPort>
<HTTPPort>XXXX</HTTPPort>
<HTTPSPort>XXXX</HTTPSPort>
<dhcp>X</dhcp>
<cameraFrontendID>XXXX</cameraFrontendID>
<Flags>X</Flags>
<Lines>X</Lines>
<BcJpeg>X</BcJpeg>
<ClusterMember>XXX.XXX.XXX.XXX</ClusterMember>
<ClusterMemberMAC>XX-XX-XX-XX-XX-XX</ClusterMemberMAC>
<ClusterID>X</ClusterID>
<deviceCapabilities>XXXXXXXXXX...XX</deviceCapabilities>
</device>
</root>

<root xmlns="OEMExtXX:device-1-0">
XX is the OEM Extension; 0x00 for Bosch Security Systems; OEM specific

<deviceType>OEMExtXX:device:deviceIDYY</deviceType>
XX is the OEM Extension; 0x00 for Bosch Security Systems; OEM specific
YY is the VideoJet ID from the request packet

<friendlyName>VideoJet</friendlyName>
The name and type of the VideoJet; type and OEM specific

<unitName>UnitName</unitName>
The name of the unit coded in UTF-8

<serialNumber>XXXXXXXX:YYYYYYYY</serialNumber>
XXXXXXX is the Hardware version of the VideoJet
YYYYYYY is the Softwareware version of the VideoJet

<physAddress> XX-XX-XX-XX-XX-XX </physAddress>
XX-XX-XX-XX-XX-XX is the MAC address of the VideoJet

<sessionKey>XXXXXXXXXXXXXXXX</sessionKey>
No common use

<unitIPAddress> XXX.XXX.XXX.XXX </unitIPAddress>
XXX.XXX.XXX.XXX is the current IP address of the VideoJet

<unitSubnetMask>XXX.XXX.XXX.XXX</unitSubnetMask>
XXX.XXX.XXX.XXX is the subnet mask of the VideoJet

<unitGatewayIp>XXX.XXX.XXX.XXX</unitGatewayIp>
XXX.XXX.XXX.XXX is the current gateway IP address of the VideoJet

<unitIPv6Address>XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX</unitIPv6Address>
XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX is the current IPv6 address of the VideoJet e.g. FD00::1234:5678

<activeConnections>XX</activeConnections>
XX is the number of active media connections of the VideoJet

<RCPPort>XXXX</RCPPort>
XXXX is the current RCP port number the VideoJet is listening to

<HTTPPort>XXXX</HTTPPort>
XXXX is the current HTTP port number the VideoJet is listening to

<HTTPSPort>XXXX</HTTPSPort>
XXXX is the current HTTPS port number the VideoJet is listening to

<dhcp>X</dhcp>
X indicates if dhcp is switched on (1) or off (0)

<cameraFrontendID>XXXX</cameraFrontendID>
XXXX is the ID of the (internal) camera frontend (see also Bicom documentation)

<Flags>X</Flags>
X is the flag value returned by RCP command CONF_CM_DEFAULT_CONFIG

<Lines>X</Lines>
X is the number of video lines the device has

<BcJpeg>X</BcJpeg>
X indicates the ability to deliver JPEGs via the broadcast JPEG retrieval mechanism

<ClusterMember>XXX.XXX.XXX.XXX</ClusterMember>
XXX.XXX.XXX.XXX is the ip address of one of the cluster members; there might be multiple entries including this device

<ClusterMemberMAC>XX-XX-XX-XX-XX-XX</ClusterMemberMAC>
XX-XX-XX-XX-XX-XX is the MAC address of one of the cluster members; there might be multiple entries including this device

<ClusterID>XX</ClusterID>
XX is index number of the above ClusterMember list of this device

<deviceCapabilities>XXXXXXXXXX...XX</deviceCapabilities>
XXXXXXXXXX...XX is the binary payload of the reply to the command CONF_DEVICE_CAPABILITIES
(each byte is printed with %2x) and can help to identify the availability of features or the capabilities of this device.
The number of bytes given in this section can vary depending on the device and the firmware version.

Optional Extension: Targeting Autodetect Scans at devices matching certain criteria

The autodetect process can be targeted at a certain group of devices identified by a defined criteria. This sort of autodetect is device-wise only handled, when sent to the configurable UDP port, whose default port number is 1800. It is not possible via the static autodetect port 1757. To perform a targeted autodetect scan, an extension needs to be added to the usual autodetect scan command. For these targeted kinds of autodetect scans, it is obligatory that the scan packet consists of an RCP plus protocol header, the autodetect request header and the extension itself. The bytes of this extension are considered in the length field of a preceeding RCP header.
1632
Scan Extension Identifier
4 Bytes
Size
4 Bytes
824

Scan Extension Identifier

The scan extension identifier determines the criteria that needs to be matched by the scanned devices in order to reply to the request.
Currently the following possible criteria are defined:
MAC address0x01

Size

The Size field of the extension informs about the number of bytes used in the extension. The number includes the 4 bytes of the Scan Extension Identifier field, the 4 bytes of the Size field itself and the length of the following payload in bytes.
In case of the MAC address extension, the Size field is followed by one or more MAC addresses of 6 bytes length each. A scan extension limiting the autodetect scan to 2 devices, the size field of the scan extension should contain a value of 20. (4 bytes Scan Extension Identifier + 4 bytes Length + 6 bytes first MAC address + 6 bytes second MAC address)

Retrieving thumbnail JPEGs using the Autodetecting Broadcast Mechanism

The Bosch Security Systems products support a mechanism that allows to retrieve thumbnail JPEGs via a broadcast autodetect mechanism. The mechanism requires to send a UDP packet similar to the autodetect scan packet to the configurable autodetect port of the device, whose default port number is 1800. The device replies with a packet containing the thumbnail JPEG. The JPEG retrieval can not be accomplished via the static autodetect port 1757.

Format of the request packet of an autodetect based JPEG request

The request packet triggering the autodetect based JPEG retrieval consists of an RCP plus protocol header and an autodetect based JPEG request header, followed by a MAC list scan extension.

RCP plus protocol header

The RCP plus protocol header's command id field is set to 0x099e (CONF_JPEG). The data type field is set to 0x0c (P_OCTET). The numeric descriptor field identifies the line of the targeted device, from which the JPEG is to be retrieved. The length field of the request indicates the number of payload bytes and therefore is to be set to the length of the autodetect based JPEG request header plus the length of the scan extension (e.g. 12 bytes for autodetect based JPEG request header, 8 bytes for scan extension header and 6 bytes for MAC address = 26 bytes).

Autodetect based JPEG Request Header

The first four bytes of the autodetect based JPEG request header consist of a static magic number, that is always set to the values given in the table below. The sequence number given in the request is returned in the reply, so that replies can be matched to the respective request.
1632
0x4B
1 Byte
0xA5
1 Byte
0xC3
1 Byte
0x55
1 Byte
Sequence Number
4 Bytes
0x00
1 Byte
0x00
1 Byte
Reply Port
2 Bytes
824

Sequence Number

This sequence number must be a randomized number.

Reply Port

Specifies the reply UDP port e.g. RP1 0x06; RP2 0xDE -> reply port: 1758

MAC list scan extension

The autodetect based JPEG request can only be targeted at selected devices. To announce the scope of the request, extending the request packet by a MAC list scan extension, like it is defined in the chapter "Autodetecting Devices" of this document, is obligatory. As the intended use of this JPEG retrieval mechanism is limited to situations where the regular JPEG retrieval mechanisms (HTTP request for the JPEG, RCP request of CONF_JPEG within a regular RCP+ client session, etc.) do not work, the MAC list of the scan extension is limited to 1 MAC address, i.e. only one JPEG from one device can be retrieved at a time.

Format of the reply packet to an autodetect based JPEG request

The reply packet to the request for an autodetect based broadcast JPEG consists of an RCP plus protocol header and an autodetect based JPEG request header, followed by the JPEG data.

RCP plus protocol header

The RCP plus protocol header's command id field is set to 0x099e (CONF_JPEG). The data type field is set to 0x0c (P_OCTET). The numeric descriptor field identifies the line of the targeted device, from which the JPEG was retrieved. The length field of the reply indicates the number of payload bytes and therefore is to be set to the length of the autodetect based JPEG request header plus the length of the JPEG thumbnail.

Autodetect based JPEG Request Header

The autodetect based JPEG request header in the reply is byte for byte a copy of the same header in the respective request.

JPEG thumbnail

The JPEG thumbnail data follows the autodetect based JPEG request header.


Setting an IP Address using Broadcast Mechanism

Table Of Contents

If the current IP address of a device doesn’t match the subnet settings, this unit cannot be reached using the standard Remote Control Protocol. All IP parameters of a VideoJet can be set using a UDP broadcast message to port 1759.
This is supported for IPv4 broadcast 255.255.255.255
And also for IPv6 multicast to (link-scope all-hosts multicast) ff02::1

Payload Structure (Basic Version IPv4 only)

1632
Hardware Address...
6 Bytes
Hardware Address
...
Reserved
2 Bytes
IP Address
4 Bytes
Subnet Mask
4 Bytes
Gateway Address
4 Bytes
Reserved
4 Bytes
824

Hardware Address

MAC address of the device.

Reserved

Should be zero

IP Address

IP address to set.

Subnet Mask

Subnet mask to set.

Gateway Address

Gateway IP address to set.
Note: As all VideoJets will receive this message, only the unit matching the hardware address (HW1-HW6) will update its IP parameters.
Note: There will be no reply to this command.
Note: This command will only work if NO service password is set.

Payload Structure (Extended Version IPv4 and IPv6 settings)

1632
Hardware Address...
6 Bytes
Hardware Address
...
Version
1 Byte
Ipv6 PrefixLen
1 Byte
IPv4 Address
4 Bytes
IPv4 Subnet Mask
4 Bytes
Gateway IPv4 Address
4 Bytes
Reserved
4 Bytes
IPv6AddrString
64 Bytes
IPv6GatewayAddrString
64 Bytes
824

Hardware Address

MAC address of the device.

Version

Version of this command (must be 2)

Ipv6 PrefixLen

IPv6 Prefix length used for the IPv6 Device Address

IPv4 Address

IP address to set.

IPv4 Subnet Mask

Subnet mask to set.

Gateway IPv4 Address

Gateway IP address to set.

IPv6AddrString

Zero terminated string containig the IPv6 address to set. Format: e.g. FD00::1234:5678

IPv6GatewayAddrString

Zero terminated string containig the IPv6 gateway address to set. Format: e.g. FD00::1234:5678

Note: As all VideoJets will receive this message, only the unit matching the hardware address (HW1-HW6) will update its IP parameters.
Note: There will be no reply to this command.
Note: This command will only work if NO service password is set.


RCP over CGI

Table Of Contents

RCP+ command my also be encapsulated in CGI (Common Gateway Interface) using a standard web browsers URL. All needed parameters are passed to the HTTP server of the video server which tunnels the RCP+ commands to the RCP server. The reply returned is a text based XML structure.
The CGI interface may also be used by a HTTP client written from the scratch based on RFC 1945 (HTTP 1.0) using 'GET' method. The unit's HTTP server will only examine 'Connection: Keep-Alive' and optional 'Authorization: ' header fields. See RFC for implementing details.
Valid CGI parameters:

Command

The RCP+ command tag number

Data Type

Values:
See 'Data Types'

Direction

Values:
READ0
WRITE1

Num

The numeric parameter.

Payload

Values:
Optional CGI parameters:

idstring

User defined parameter which will not be processed by the unit; will return unchanged in the reply

sessionid

Context specific session ID for this command
Multiple parameters are passed in CGI manner with '&' in between two parameter-value pairs.
Example:
A sample request to readout the units hardware version will look
http://ip.ip.ip.ip/rcp.xml?command=0x002e&type=P_STRING&direction=READ
The reply XML structure will then have this format:
<rcp>
<command>
<hex>0x002e</hex>
<dec>46</dec>
</command>
<type>T_DWORD</type>
<direction>READ</direction>
<num>0</num>
<idstring />
<payload />
<result>
<hex>0xf0000f43</hex>
<dec>4026535747</dec>
</result>
</rcp>
The upper part contains the request, the <result> contains the reply. Numerical values are presented in <hex> and <dec>, strings, unicodes and p_octet in <str> sections. <

Message handling

RCP+ messages will be processed and received by the CGI client using a poll mechanism. A CGI command set with the requested messages command tag numbers need to be issued. After issuing a request, the reply returns immediately after a message has been sent or the default timeout of 1000 ms has been expired. When the timeout expires, a message count of 0 is returned. Otherwise the number of received messages is signaled. The default timeout can be altered by setting the 'collectms' CGI value to the appropriate number of milliseconds. In order to ensure correct assignment of messages in case several clients are polling for messages or if a polling client uses different socket connections, a unique message domain ID (CGI parameter 'msgdomainID') should be provided. Messages are then collected separately for each ID and can be uniquely assigned to the polling client even if requesting via different socket connections.
Valid CGI commands to control messages:

Message

One or a list of requested message RCP+ command tag numbers separated by '$'

CollectMS

Time in milliseconds to collect messages before returning with 'No messages'; default is 1000 ms

MsgDomainID

Unique ID (maximum 4 Bytes) to identify a certain polling client and to e.g. ensure correct message assignment to clients sending requests via different socket connections
The <msgcnt> section contains the number of veiled <msg> sections inside the reply.
A buffer mechanism (depth 64) ensures that no messages will be lost during two consecutive poll cycles. The <over> sections counts the number of lost messages. <clip> signals too small internal buffers; this should never occur.
The <poll> section counts the number of issued poll requests
A sample request to receive all connection related messages (CONF_CONNECT_TO) will look like
http://ip.ip.ip.ip/rcp.xml?message=0xffcc&collectms=5000
The reply XML structure will then have this format:
<message_list>
<stats>
<msgcnt>2</msgcnt>
<over>0</over>
<clip>0</clip>
<poll>1</poll>
</stats>
<msg>
<no>1</no>
<command>0xffcc</command>
<num>0</num>
<sessionID>0x7063001f</sessionID>
<hex>0xa00a0034000000000101000001010001</hex>
</msg>
<msg>
<no>2</no>
<command>0xffcc</command>
<num>0</num>
<sessionID>0x70630020</sessionID>
<hex>0xa00a0034000000000101000001010001</hex>
</msg>
</message_list>

Authentication

The RCP+ server needs proper authentication to process protected commands. The CGI interface provides two basic authentication schemes to be used.

Using http authentication

In this case, HTTP header authentication (basic or digest) must be present in the request. The internal HTTP server will pass the granted authorization level to the RCP+ server.

Using session cookie

For each successful HTTP authentication (for all available resources like html pages, images...) a session cookie will be returned by the HTTP server. When this cookie is present in any further HTTP connections, the same authorization level will be granted as for the originating connection. The session cookie will remain active as long as at least one HTTP connection remains open. In this case the internal HTTP server will pass the granted authorization level to the RCP+ server.

IPv6

For RCP commands which are defined as T_DWORD or P_OCTET and contain DWORD IP-Addresses there is a extention to read or write also IPv6 adresses or Hostnames, e.g. URL:
http://ip.ip.ip.ip/rcp.xml?command=0x0a1f&type=T_DWORD&direction=WRITE&payload=0x00000000&ip-item0=fd00::55:77
or
http://ip.ip.ip.ip/rcp.xml?command=0x0a1f&type=T_DWORD&direction=WRITE&payload=0x00000000&ip-item0=MyHostname.de
where payload must contain a 4 byte index to the trailing list of ip-item0..ip-itemn
The reply XML structure will then have this format:
<rcp>
<command>
<hex>0x0a1f</hex>
<dec>2591</dec>
</command>
<type>T_DWORD</type>
<direction>READ</direction>
<num>0</num>
<idstring />
<payload />
<result>
<hex>0x00000000</hex>
<dec>0</dec>
<ip-table>
<item>
<idx>0</idx>
<type>IPV6</type>
<str>fd00::55:77</str>
</item>
</ip-table>
</result>
</rcp>
where payload contains a 4 byte index to the ip-table list for each address contained in the command.
If the command datatype is P_OCTET and the command does contain more IP-Adresses then the result will contain multipe item blocks.
Alternative formats for the item blocks are also possible:
<item>
<idx>1</idx>
<type>IPV4</type>
<str>192.168.1.2</str>
</item>
<item>
<idx>2</idx>
<type>NAME</type>
<str>MyHostname.de</str>
</item>
If a list is supplied the ALL addresses MUST be in the list also in the case that they are IPv4 type


Request or setting of system or network parameters using Broadcast Mechanism

Table Of Contents

In addition to the SETTING_AN_IP_ADDRESS_USING_BROADCAST, an additional way to setup non network configured devices has been introduced. The device itself is selected using the ethernet mac address as the first parameter inside the command structure. A list of commands including payload length information may be added. All commands must be addressed using UDP broadcast message to port 1760.
1632
Hardware Address...
6 Bytes
Hardware Address
...
Reserved
2 Bytes
Command ID
2 Bytes
Payload Length
2 Bytes
Payload
Payload Length Bytes
824

Hardware Address

MAC address of the unit to configure.

Command ID

ID of broadcast setting command

Payload Length

ID of broadcast setting command"
LED_BLINK0x0000
SWITCH_DHCP0x0001
Note: SWITCH_DHCP will only work if NO service password is set.

Payload

Payload; depending on Command ID
LED_BLINK
Payload length 4 bytes. Requests the unit blink the power led; payload containin the number of seconds for blinking. NOTE duration is limited to 60 sec.
SWITCH DHCP
Payload length 4 bytes. Switches DHCP on (payload = 1) or off (payload=0).

Note: There will be no reply to this command.


Extension for RCP+ commands containing IPv6 addresses or host names

Table Of Contents

For transmitting IPv6 addresses or host names in RCP+ Commands there is a string table extension in firmware version 5.50 and later. The layout of the RCP+ commands remains the same as it was in earlier firmware versions and it is compatible to older clients as long as only IPv4 Addresses are transmitted. If IPv6 Addresses are contained in the command then this extension has to be used.

RCP+ Command with string table

RCP Header
RCP Data
String Table Header
(see description)
String Table Entry [0]
(see description)
...
String Table Entry [N]
(see description)

String Table Header

1632
TableLenBytes
4 Bytes
Version
1 Byte
Reserved
1 Byte
Num Entries
2 Bytes
824

TableLenBytes

Length of hole string table including this header.

Version

Must be 1.

Reserved

Must be 0.

Num Entries

Number of entries in the table

String Table Entry

1632
Length
2 Bytes
Datatype
1 Byte
Reserved
1 Byte
Data
N Bytes
824

Length

Length of this entry including this header in bytes.

Datatype

Type of content:
IPv40IPv4 binary encoded value (always 4 bytes)
IPv61IPv6 binary encoded value (always 16 bytes)
HostName2HostName or IPv4/IPv6 Address String (encoded as zero terminated string)

Reserved

Must be 0.

Data

N bytes of entry data.

Rules for using the table


RCP Command Notification

Table Of Contents

A RCP client can register for a special message CONF_RCP_CMD_NOTIFICATION (0xff23) in order to be informed when any other RCP+ command is written to the device.
The message is sent out at a frequency of maxium 100ms and contains the tag codes of all RCP+ commands with the direction 'write' that have been processed by the device since the last message. If no RCP+ command was written within this time, no message will be sent. Besides the tag codes the message contains some more information about the commands as described below.
The payload of the message contains one or multiple elements of the following structure (one element for each RCP command). The maxium number of elements is 32.

Message payload element

1632
Command Tag
2 Bytes
Datatype
1 Byte
Direction
1 Byte
Action
1 Byte
Reserved
1 Byte
Client ID
2 Bytes
Reserved
4 Bytes
NumDes
2 Bytes
Count
2 Bytes
824

Command Tag

Tag code of the RCP command.

Datatype

Datatype of the RCP command (e.g. P_OCTET).

Direction

Direction of the RCP command (currently only WRITE).

Action

Action of the RCP command (currently only REPLY).

Client ID

Client Id of the RCP client that sent the RCP command.

NumDes

Numeric Descriptor (NumDes) parameter value of the RCP command.

Count

Number of times that this RCP command has been processed.

CONF_ACCOUNT_LIST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b1dSessionId: optional parameter to identifiy a already existing ftp client sessionnono
 DatatypeAccess LevelDescription
Readp_octetserviceReturns the response from the ftp/dropbox LIST command
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ACCOUNT_LOGIN_TEST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b36account info (1...MAX_ACCOUNT)nono
 DatatypeAccess LevelDescription
Readt_intuserChecks if a login to the specified server is possible. Return values: #ValueList: 0=ok; 1=Connect failed; 2=invalid user or password; 3=set directory failed; 4=general error; 5=List failed;
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ACCOUNT_SETTINGS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b5eaccount numbernono
 DatatypeAccess LevelDescription
Readp_octetminimalObsolete use CONF_ACCOUNT_SETTINGS_V2
Writep_octetserviceObsolete use CONF_ACCOUNT_SETTINGS_V2
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ACCOUNT_SETTINGS_V2

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cc0account numbernono
 DatatypeAccess LevelDescription
Readp_octetminimalReturns account settings in a tagged format
Writep_octetserviceWrites account settings in a tagged format
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value without length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 1: ACCOUNT_TAG_TYPE

0: not configured, 1: ftp, 2: dropbox, 5: amazon s3, 6: kinesis
1632
Tag = 0x0001
2 Bytes
Length = 0x0004
2 Bytes
ACCOUNT_TAG_TYPE (t_dword)
4 Bytes
824

Tag 2: ACCOUNT_TAG_NAME

account name
1632
Tag = 0x0002
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_NAME (p_string)
Length Bytes
824

Tag 3: ACCOUNT_TAG_URL

url, e.g url to the ftp server
1632
Tag = 0x0003
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_URL (p_string)
Length Bytes
824

Tag 4: ACCOUNT_TAG_LOGIN

username
1632
Tag = 0x0004
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_LOGIN (p_string)
Length Bytes
824

Tag 5: ACCOUNT_TAG_PASSWORD

password
1632
Tag = 0x0005
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_PASSWORD (p_string)
Length Bytes
824

Tag 6: ACCOUNT_TAG_PATH

path
1632
Tag = 0x0006
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_PATH (p_string)
Length Bytes
824

Tag 7: ACCOUNT_TAG_FLAGS

optional flags (e.g. FTP Encryption mode 0=off,1=TLS)
1632
Tag = 0x0007
2 Bytes
Length = 0x0004
2 Bytes
ACCOUNT_TAG_FLAGS (t_dword)
4 Bytes
824

Tag 8: ACCOUNT_TAG_ACCESS_KEY

aws access key (max 128 bytes)
1632
Tag = 0x0008
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_ACCESS_KEY (p_string)
Length Bytes
824

Tag 9: ACCOUNT_TAG_SECRET_KEY

aws secret access key (max 128 bytes)
1632
Tag = 0x0009
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_SECRET_KEY (p_string)
Length Bytes
824

Tag 10: ACCOUNT_TAG_BUCKET_NAME

bucket name (amazon s3), max 128 bytes
1632
Tag = 0x000a
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_BUCKET_NAME (p_string)
Length Bytes
824

Tag 11: ACCOUNT_TAG_REGION

aws region
1632
Tag = 0x000b
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_REGION (p_string)
Length Bytes
824

Tag 12: ACCOUNT_TAG_CAMERA_ID

s3 camera id, string will be added to the uploaded filename (max 128 bytes)
1632
Tag = 0x000c
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_CAMERA_ID (p_string)
Length Bytes
824

Tag 13: ACCOUNT_TAG_FILE_DURATION

s3 file duration in seconds
1632
Tag = 0x000d
2 Bytes
Length = 0x0004
2 Bytes
ACCOUNT_TAG_FILE_DURATION (t_dword)
4 Bytes
824

Tag 14: ACCOUNT_TAG_STREAM_NAME

stream name
1632
Tag = 0x000e
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_STREAM_NAME (p_string)
Length Bytes
824

Tag 15: ACCOUNT_TAG_KBPS

maximum datarate for the backup, see CONF_BACKUP_MAX_KBPS
1632
Tag = 0x000f
2 Bytes
Length = 0x0004
2 Bytes
ACCOUNT_TAG_KBPS (t_dword)
4 Bytes
824

Tag 16: ACCOUNT_TAG_GROUP

cloud watch log group
1632
Tag = 0x0010
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_GROUP (p_string)
Length Bytes
824

Tag 17: ACCOUNT_TAG_CLOUD_WATCH_ENABLED

cloud watch enabled/disabled
1632
Tag = 0x0011
2 Bytes
Length = 0x0001
2 Bytes
ACCOUNT_TAG_CLOUD_WATCH_ENABLED (t_octet)
1 Byte
824

Tag 18: ACCOUNT_TAG_KMS_ENABLED

kms key encryption enabled/disabled
1632
Tag = 0x0012
2 Bytes
Length = 0x0001
2 Bytes
ACCOUNT_TAG_KMS_ENABLED (t_octet)
1 Byte
824

Tag 19: ACCOUNT_TAG_KMS_KEY_ID

aws kms key id (max 128 bytes)
1632
Tag = 0x0013
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_KMS_KEY_ID (p_string)
Length Bytes
824

CONF_ACCOUNT_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bdeaccount numberyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ACCOUNTS_CREATE_FOLDER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b6cSessionId: optional parameter to identifiy a already existing ftp client sessionnono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetserviceCreates a new folder. Argument: folder name
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ACCOUNTS_DELETE_FOLDER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b6fSessionId: optional parameter to identifiy a already existing ftp client sessionnono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetserviceDeletes a folder. Argument: folder name
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DROPBOX_AUTH_ADDR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b81account numbernono
 DatatypeAccess LevelDescription
Readp_octet p_stringminimalGets the url that should be used to login at dropbox
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DROPBOX_AUTH_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b82account numberyesno
 DatatypeAccess LevelDescription
Readt_octetminimalGets authentication status #ValueList: 0=not authenticated; 1=authenticated; 2=authentication session timed out; 3=failed;
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DROPBOX_AUTH_V2

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c7baccount numbernono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_stringserviceThe dropbox authorization code and start the process to get the dropbox access token
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DROPBOX_TOKEN_V2

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c7aaccount numbernono
 DatatypeAccess LevelDescription
Readp_octetserviceGets the dropbox token (v2)
Writep_octetserviceSets the dropbox token (v2), max 256 bytes
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_FTP_CDUP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b1fSessionId: optional parameter to identifiy a already existing ftp client sessionnono
 DatatypeAccess LevelDescription
Readp_stringserviceChanges to parent directory
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_FTP_CWD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b1eSessionId: optional parameter to identifiy a already existing ftp client sessionnono
 DatatypeAccess LevelDescription
Readp_stringserviceChanges the working directory
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_FTP_FILE_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b35video linenono
 DatatypeAccess LevelDescription
Readp_octetserviceUser defined ftp file name for the first recording or live instance: request: 1st OCTET inst, 2nd OCTET mode(0->rec, 1->live), 64 OCTETs reserved response : 1st OCTET inst, 2nd OCTET mode(0->rec, 1->live), 64 OCTETs filename in arbitrary order of : b begin date / time, %e end date / time, %c camera name, %i export job id, %f file nbr, %a alarm description, %dSubDirectory sub directory to write, %nName name %l line; optionally seperated by \_\" or \"-\")
Writep_octetserviceSee read
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_FTP_PWD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b1bSessionId: optional parameter to identifiy a already existing ftp client sessionnono
 DatatypeAccess LevelDescription
Readp_stringminimalGets the working directory of the configured ftp server
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_FTP_SERVER_PORT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b9fNonenono
 DatatypeAccess LevelDescription
Readt_wordminimalGet the Port of the camera internal FTP server for loading files to the camera; Value 0 turns server off
Writet_wordserviceSet the Port of the camera internal FTP server for loading files to the camera; Value 0 turns server off
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NBR_OF_ACCOUNTS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b62Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGets the max number of accounts
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_START_CLIENT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b20account info (1...MAX_ACCOUNT)nono
 DatatypeAccess LevelDescription
Readt_wordserviceStarts a ftp client session, might be needed for commands like CONF_FTP_CDUP, CONF_FTP_CWD, CONF_FTP_LIST, CONF_FTP_PWD. This session stays alive for 5 min. It can be should be shut down using CONF_FTP_STOP_CLIENT. This command returns a 2 byte sessionId that can be used to reference the session
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STOP_CLIENT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b21SessionId (see CONF_START_CLIENT)nono
 DatatypeAccess LevelDescription
Read--Unavailable
Writet_wordserviceShut down the ftp session indified via the num parameter, might be needed for commands like CONF_FTP_CDUP, CONF_FTP_CWD, CONF_FTP_LIST, CONF_FTP_PWD
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ALARM_INPUT_CAPABILITIES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c6aNonenono
 DatatypeAccess LevelDescription
Readp_octetalways_legacy
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Read capabilities of the available alarm inputs.

Payload Structure

1632
Count
4 Bytes
Capabilities [0]
(see description)
...
Capabilities [N]
(see description)
824

Count

Number of available alarm inputs

Capabilities

Capabilities of the alarm input
1632
Supervised
1 Bit
Reserved
31 Bits
824

Supervised

Supervised mode possible

Reserved

Reserved

CONF_ALARM_INPUT_LH_VAL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x008dalarm inputnono
 DatatypeAccess LevelDescription
Readt_octetminimal1=alarm pin high active; 2=alarm pin low active
Writet_octetservice1=set alarm pin high active; 2=set alarm pin low active
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ALARM_INPUT_SUPERVISED

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b87alarm inputnono
 DatatypeAccess LevelDescription
Readt_octetminimal1= alarm pin is set to supervised mode; 0= alarm pin is set to normal mode (non-supervised)
Writet_octetservice1=set alarm pin to supervised mode; 0=set alarm pin to normal mode (non-supervised)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_EVENT_SCRIPT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09f3Noneyesno
 DatatypeAccess LevelDescription
Readp_octetliveGet the compressed Alarm Task Script, Msg: yes 8 byte for error header; byte 1-4 for type of message: 0 - successful, 1 - error, 2 - warning
Writep_octetserviceWrite a new Alarm Task Script; note: script must be compressed (zipped)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_MGR_SIGNAL_ALARM

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0915yes (cam or all cams for 0)nono
 DatatypeAccess LevelDescription
Read--Unavailable
Writef_flagserviceSignal alarm: only one alarm per second is allowed,
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_INPUT_PIN_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0108alarm inputnono
 DatatypeAccess LevelDescription
Readp_unicodeminimalRead the description for an input alarm
Writep_unicodeserviceSet the description for an input alarm (max 32 unicode characters)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_INPUT_PIN_STATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01c0alarm inputyesno
 DatatypeAccess LevelDescription
Readf_flagminimal0=alarm input off; 1= alarm input on
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MANIPULATION_ALARM_STATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0af0manipulation alarm nbryesno
 DatatypeAccess LevelDescription
Readf_flagminimal0=manipulation alarm off; 1=manipulation alarm on (notice: for supervised alarm inputs the according CONF_INPUT_PIN_STATE also indicates an alarm in this case)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MOTION_ALARM_STATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01c3video lineyesno
 DatatypeAccess LevelDescription
Readf_flagminimal0=motion alarm off; 1=motion alarm on (at elast one of the CONF_VIPROC_ALARM alarmbit (except the video loss alarm) is set
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NBR_OF_ALARM_IN

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01dbNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReturns the number of installed alarm input contacts (possible masterswitch included)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NBR_OF_ALARM_OUT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01dcNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReturns the number of installed alarm output contacts
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NBR_OF_MANIPULATION_ALARMS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0af1Nonenono
 DatatypeAccess LevelDescription
Readt_dwordalways_legacyNumber of manipulation alarms
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NBR_OF_MOTION_DETECTORS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09afNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReturns the number of installed motion detectors
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NBR_OF_VIRTUAL_ALARMS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0aedNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalNumber of virtual alarm inputs
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SET_VIRTUAL_ALARM_ID

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b41virtual alarm numbernono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_unicodeserviceSet virtual alarm with num
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIDEO_ALARM_STATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01c2video lineyesno
 DatatypeAccess LevelDescription
Readf_flagminimal0=video alarm is off; 1=video alarm is on (no video signal detected at video input)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIRTUAL_ALARM_PARAMETER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ba6virtual alarm nbrnono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetserviceActivate/deactivate virtual alarms with parameter, see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command is used to trigger a virtual alarm along with parameters for alarm recording. The alarm can be activated, deactivated or triggered as single shot, which is an activate and deactivate within on command. Its also possible to trigger a silent alarm, by setting the activate and deactivate flag to zero. This works like a single shot alarm, the user data will be recorded and backups between the recordings will be scheduled, but the virtual alarm won't be triggered. If silent alarm is used, the num parameter doesn't choose the virtual alarm number, but it is mapped directly to the recording line. The command can have user data which can be recorded as meta data along to the video data. Also the pre and post alarm time can be specified but is only valid, if the alarm recording is done via backuped recording setup and the Flag ALARM_IGNORE_ALARM_TIME_PARAMETER isn't set. This will cause an alarm backup from the recording (primary or secondary, depending on the virtual alarm configuration and encoder index configuration) with this parameter, but the pre alarm time is limited by the max pre alarm time which is the same as the configured prealarm time of the secondary recording on the internal storage. It is also limited by the storage space of the internal storage. The max pre alarm time is also the delay for the recording. That means the recording of the alarm file triggered by an alarm will be started after this delay expires. Until that time the records of that file are only available on the internal storage. When a new alarm is triggered by activate, the reply returns an alarm content handle (only on activation, not on single shot). The limit for open content handle at the same time per line (includes also deactivated alarms or alarm shots within the post alarm time) is 32. This handle can be used to deactivate the alarm later by sending this command with the handle in the payload or it can be used to retrigger the alarm with new user data. For retrigger the playload looks the same as for activate, except a valid handle is required. Only for deactivation or retrigger of the alarm, the handle is required for in payload. A valid handle is a non zero handle, if the handle is set to zero, it will be interpreted as wild card on deactivate, which will deactivate/close all active handles or as invalid. In case of activate, a new handle will be opened and returned in the reply, if the handle is invalid/zero. If a handle(or all handles) will be deactivated/closed, it will decay with the post alarm time. An alarm can also used on first activation to add the "protected" attribute to the file, which includes the record data of the alarm. The limit for pending intervals for protection are limited to 32 per line. Pending is an interval in the time from the occurence of the protecting alarm and the backup of the alarm record data.

Payload Structure

1632
flags
1 Byte
reserved
3 Bytes
alarm content handle
4 Bytes
pre alarm time
4 Bytes
post alarm time
4 Bytes
user data len
4 Bytes
user data
user data len Bytes
824

flags

MaskNameDescription
Bit 40x10ALARM_USER_DATA_1Xuser data will be recorded only once
Bit 30x08ALARM_IGNORE_ALARM_TIME_PARAMETERthe pre and post alarm time has no meaning, parameter from the record profiles will be used instead
Bit 20x04ALARM_FILE_PROTECTIONprotects the file, which contains the alarm video data (only on activate or shot)
Bit 10x02ALARM_DEACTIVATEdeactivate the alarm
Bit 00x01ALARM_ACTIVATEactivate the alarm
Combined Values
MaskNameDescription
0x03ALARM_SINGLE_SHOT
activate and then deactivate the alarm (ALARM_ACTIVATE | ALARM_DEACTIVATE)

alarm content handle

Handle for the alarm(required for deactivation or retrigger, returned in reply on activation) non zero value or zero for wild card in case of deactivate

pre alarm time

Pre alarm time in seconds

post alarm time

Post alarm time in seconds

user data len

Length in bytes of the following user data, max 4000 bytes

user data

User data which will be recorded repeatedly, as long as the alarm is aktive or while within the post alarm time of the alarm

CONF_VIRTUAL_ALARM_STATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a8bvirtual alarm numberyesno
 DatatypeAccess LevelDescription
Readf_flagminimal0=virtual alarm off; 1=virtual alarm on
Writef_flaguser0=virtual alarm off; 1=virtual alarm on
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ALARM_CONNECT_TO_IP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0041destination IP numbernono
 DatatypeAccess LevelDescription
Readt_dwordminimalRead the connect on alarm event IP address
Writet_dwordserviceSpecify the connect on alarm event IP address
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ALARM_CONNECT_TO_IP_STR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0081destination IP numbernono
 DatatypeAccess LevelDescription
Readp_stringminimalRead the alarm IP using string notation (xxx.xxx.xxx.xxx)
Writep_stringserviceSet alarm IP using string notation (xxx.xxx.xxx.xxx)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ALARM_CONNECTION_DESTINATION_PORT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a15Nonenono
 DatatypeAccess LevelDescription
Readt_wordminimalReturns the network destination port on outgoing alarm connections
Writet_wordserviceSelects the destination network port for outgoing alarm connections; all other than 1756 (default RCP port) will use the HTTP tunneling protocol. In this case, this must be the HTTP/HTTPS port of the called host.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ALARM_CONNECTION_USE_SSL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a16Nonenono
 DatatypeAccess LevelDescription
Readf_flagminimalUse RCP SSL for outgoing alarm connections
Writef_flagserviceUse RCP SSL for outgoing alarm connections
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_AUTO_DISCONNECT_TIME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x030dNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimal0=no auto disconnect; 0<Time in seconds to disconnect
Writet_dwordservice0=no auto disconnect; 0<Time in seconds to disconnect
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_CONNECT_URL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a1eNonenono
 DatatypeAccess LevelDescription
Readp_stringminimalGet the connect url
Writep_stringserviceSet the connect url
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DEFAULT_CAM

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01afNonenono
 DatatypeAccess LevelDescription
Readt_octetminimalReads the default camera for alarm connections
Writet_octetserviceDefines the default camera for alarm connections
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DEFAULT_CONNECTION_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0289Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalGet the default connection mode: 0=MPEG2, 1=MPEG4, 2=MPEG4/AVC, 3=JPEG, 4=ANY
Writet_octetserviceSets the default connection mode: 0=MPEG2, 1=MPEG4, 2=MPEG4/AVC, 3=JPEG, 4=ANY
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NBR_OF_ALTERNATIVE_ALARM_IPS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0303Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the number of available alarm ip addresses (total presets)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_REMOTE_PASSWORD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x010cdestination IP numbernono
 DatatypeAccess LevelDescription
Readp_stringminimal
Writep_stringserviceDeposit the password of the called station
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STD_MEDIA_CONNECTION_DIRECTION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x030cNonenono
 DatatypeAccess LevelDescription
Readt_octetminimal
Writet_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
outgoing media for alarm connections0
req. incoming media for alarm connections1
req. bidirectional media for alarm connections2

CONF_STD_MEDIA_ENCAPSULATION_PROTOKOL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0309Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalDefines the standard media encapsulation protokol: 1=RTP over UDP, 2=TCP
Writet_octetserviceDefines the standard media encapsulation protokol: 1=RTP over UDP, 2=TCP
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_APP_MGMT_GET_DEVICE_IDS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cf8Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimalGetDeviceIDs
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available no yes

CONF_APP_MGMT_INSTALL_LICENSE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cf9Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_stringserviceInstall license
CPP6/CPP7/CPP7.3CPP13
Available no yes

CONF_ENABLE_DEVELOPER_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cfeNonenono
 DatatypeAccess LevelDescription
Readf_flagminimalReturns the information if the S&ST developer mode is enabled
Writef_flagserviceEnables the S&ST developer mode. To disable developer mode, perform a factory reset (To enable the developer mode a special license is needed)
CPP6/CPP7/CPP7.3CPP13
Available no yes

CONF_LIST_APPS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cf6Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available no yes

Description

Command CONF_LIST_APPS returns all installed Apps on a SAST system.

Payload Structure

App Entry

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 1: App Entry

The payload of this tag entry contains further tagged values described below.
1632
Length = 0x0004
2 Bytes
Tag = 0x0001
2 Bytes
824

Tag 2: ID (Required)

app id
1632
Length
2 Bytes
Tag = 0x0002
2 Bytes
ID (p_string)
Length - 4 Bytes
824

Tag 3: Name

app name
1632
Length
2 Bytes
Tag = 0x0003
2 Bytes
Name (p_string)
Length - 4 Bytes
824

Tag 4: License

app license
1632
Length
2 Bytes
Tag = 0x0004
2 Bytes
License (p_string)
Length - 4 Bytes
824

Tag 5: Password

app version
1632
Length
2 Bytes
Tag = 0x0005
2 Bytes
Password (p_string)
Length - 4 Bytes
824

Tag 6: Autostart

autostart enabled or not
1632
Length = 0x0005
2 Bytes
Tag = 0x0006
2 Bytes
Autostart (t_octet)
1 Byte
824

Tag 7: Installation Time

installation time in utc
1632
Length = 0x0008
2 Bytes
Tag = 0x0007
2 Bytes
Installation Time (t_dword)
4 Bytes
824

Tag 8: Last update Time

last update time time in utc
1632
Length = 0x0008
2 Bytes
Tag = 0x0008
2 Bytes
Last update Time (t_dword)
4 Bytes
824

Tag 9: State

state of the app (0: inactive, 1: active)
1632
Length = 0x0008
2 Bytes
Tag = 0x0009
2 Bytes
State (t_dword)
4 Bytes
824

CONF_MANAGE_APPS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cf7action: 1: activate, 2: deactivate, 3: uninstallnono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_stringserviceAppID
CPP6/CPP7/CPP7.3CPP13
Available no yes

CONF_SAST_CLAIM_DEVICE_URI

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cfbNonenono
 DatatypeAccess LevelDescription
Readp_stringminimalGet the url to claim the device
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available no yes

CONF_SAST_CLOUD_CONNECTION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cfaNonenono
 DatatypeAccess LevelDescription
Readf_flagminimalConnected to SAST cloud
Writef_flagserviceConnected to SAST cloud
CPP6/CPP7/CPP7.3CPP13
Available no yes

CONF_AUDIO_AAC_BITRATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b9aaudio linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalRead the bitrate of the AAC encoder (only value of 48000 and 80000 are supported) for the line given by num
Writet_dwordserviceSet the bitrate for the AAC encoder (only value of 48000 and 80000 are supported) on the line given with the num parameter
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_AUDIO_INPUT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09b8audio linenono
 DatatypeAccess LevelDescription
Readt_dwordminimal0=Line, 1=Mic
Writet_dwordservice0=Line, 1=Mic, 2=Mute (only supported by arm based products)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_AUDIO_INPUT_LEVEL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x000aaudio linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGets current level of audio input. Range: 0 to AUDIO_INPUT_MAX
Writet_dwordserviceSets level of audio input. Range: 0 to AUDIO_INPUT_MAX
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_AUDIO_INPUT_MAX

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09baaudio linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGets the maximum input level that can be adjusted
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_AUDIO_INPUT_PEEK

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09c6audio linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the max iabs of the audio input signal (clears the value)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_AUDIO_LOUDSPEAKER_ON_OFF

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09beaudio linenono
 DatatypeAccess LevelDescription
Readf_flagminimalGets Loudspeaker if on or off. 0=off, 1=on.
Writef_flagserviceSets Loudspeaker if on or off. 0=off, 1=on.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_AUDIO_MIC_LEVEL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09bcaudio linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGets level of mic input. Range: 0 to AUDIO_MIC_MAX
Writet_dwordserviceSets level of mic input. Range: 0 to AUDIO_MIC_MAX
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_AUDIO_MIC_MAX

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09bdaudio linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGets the maximum mic level that can be adjusted
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_AUDIO_NOTIFICATION_SOUND

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c77sound type:nono
 DatatypeAccess LevelDescription
Readf_flagminimalRead status of audio notification sound (only applicable on certain devices).
Writef_flagserviceSwitch audio notification sound on/off (only applicable on certain devices).
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Num Descriptor Values

privacy mode sound1

Values:
do not play sound0
play sound1

CONF_AUDIO_ON_OFF

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x000cNonenono
 DatatypeAccess LevelDescription
Readf_flagminimal
Writef_flagservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
audio mode is not set0
audio mode is set1

CONF_AUDIO_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09bfaudio linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGets options for Audio, Bit 0=Line In, Bit 1=Line Out, Bit 2=Mic, Bit 3=Loudspeaker
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_AUDIO_OUTPUT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09b9audio linenono
 DatatypeAccess LevelDescription
Readt_dwordminimal0=Decoder, 1=Sine, 2=Loop, 3=Mute, 4=Sample
Writet_dwordservice0=Decoder, 1=Sine, 2=Loop, 3=Mute, 4=Sample
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_AUDIO_OUTPUT_LEVEL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09b7audio linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGets level of audio output. Range: 0 to AUDIO_OUTPUT_MAX
Writet_dwordserviceSets level of audio output. Range: 0 to AUDIO_OUTPUT_MAX
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_AUDIO_OUTPUT_MAX

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09bbaudio linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGets the maximum output level that can be adjusted
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_AUDIO_OUTPUT_PEEK

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09c7audio linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the max iabs of the audio output signal (clears the value)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_AUDIO_STARTUP_SOUND

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09b6Nonenono
 DatatypeAccess LevelDescription
Readf_flagminimalTurn on/off audio startup sound
Writef_flagserviceTurn on/off audio startup sound
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_AUPROC_ALARM

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a79audio lineyesno
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
Alarm Flags
4 Bytes
824

Alarm Flags

The message is sent whenever any of the bit values changes. Additionally it is sent once per second when any of the bits is set.
Values:
MaskNameDescription
Bit 130x00002000EntireEntire frequency band
Bit 120x00001000Hz2865_4000Frequency band 2875-4000 Hz
Bit 110x00000800Hz2420_3400Frequency band 2420-3400 Hz
Bit 100x00000400Hz2030_2875Frequency band 2030-2875 Hz
Bit 90x00000200Hz1690_2420Frequency band 1690-2420 Hz
Bit 80x00000100Hz1375_2030Frequency band 1375-2030 Hz
Bit 70x00000080Hz1110_1690Frequency band 1110-1690 Hz
Bit 60x00000040Hz890_1375Frequency band 890-1375 Hz
Bit 50x00000020Hz690_1110Frequency band 690-1110 Hz
Bit 40x00000010Hz500_890Frequency band 500-890 Hz
Bit 30x00000008Hz360_690Frequency band 360-690 Hz
Bit 20x00000004Hz220_500Frequency band 220-500 Hz
Bit 10x00000002Hz110_360Frequency band 110-360 Hz
Bit 00x00000001Hz0_220Frequency band 0-220 Hz
Bit14-31 are unused and should be zero.

CONF_AUPROC_CONFIG

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a7aaudio linenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command configures the audio alarm analysis. The analysis is based on a 8kHz signal (if the device supports higher sampling rates the signal is downsampled). The analysed frequency bands (there are 13 frequency bands) have the following center frequencies:
100 Hz, 220 Hz, 350 Hz, 500 Hz, 680 Hz, 880 Hz, 1.1 kHz, 1.4 kHz, 1.7 kHz, 2.0 kHz, 2.4 kHz, 2.9 kHz, 3.4 kHz
The freuqnecy bands are overlapping triangles.

Payload Structure

1632
Version
4 Bytes
Trigger Level...
16 Bytes
Trigger Level
...
Trigger Level
...
Trigger Level
...
Sensitivity...
16 Bytes
Sensitivity
...
Sensitivity
...
Sensitivity
...
Reserved
1 Byte
Flags
1 Byte
Reserved
2 Bytes
824

Version

Unused (should be zero).

Trigger Level

16 Values between 0 and 255 (1 Byte each), setting the fixed threshold for every frequency band and energy level.
First Byte is for the lowest frequency and the last for the energy level. Trigger level 0 indicates that this frequency band is set off.
14 bytes (13 bands plus entire energie) are used in this version (refer to AUPROC_ALARM command).

Sensitivity

16 Values between 1 and 100 (1 Byte each), setting the sensitivity for every frequency band and energy level.
First Byte is for the lowest frequency and the last for the energy level.
14 bytes (13 bands pus entire energie) are used in this version.
The sensitivity is based on an adaptive threshold and a sliding window.

Flags

1 byte reserved for flags
Values:
MaskNameDescription
Bit 70x80OnOffIndicates if audio alarm is on or off

Reserved

CONF_AUPROC_MELPEGEL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a7baudio linenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead the recent pegel in the frequency bands: detailed decription
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Each of the 14 bytes corresponds to the frequency bands described within the command AUPROC_ALARM and AUPROC_MELPEGEL.

Payload Structure

1632
recent melpegel...
14 Bytes
recent melpegel
...
recent melpegel
...
recent melpegel
...
adaptive threshold level...
14 Bytes
adaptive threshold level
...
adaptive threshold level
...
adaptive threshold level
...
824

CONF_AUPROC_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a7caudio linenono
 DatatypeAccess LevelDescription
Readp_unicodeminimal-
Writep_unicodeservice-
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MPEG_AUDIO_SAMPLING_FREQ

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0932Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalMpeg audio sampling frequency (Hz)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NBR_OF_AUDIO_IN

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01d8Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReturns the number of audio inputs
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NBR_OF_AUDIO_OUT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01d9Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReturns the number of audio outputs
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIRTUAL_AUDIO_LINES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bf5Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

The command returns which audio input lines are virtual and which is the associated physical line. A physical line is phyical audio input - that's the usual case. A virtual line is just a copy of a physical line and supports only a subset of the RCP commands compared to a physical line. Some commands only make sense on physical line (e.g. input volume). Those commands fail on virtual lines and must be applied on the associated physcial line instead. The required information can be read out using this command. Virtual lines are introduced to provide a copy to an existing physical line. A single physical audio input can be associated to multiple video input lines. This keeps our known behaviour to have an audio line with the same number as the video line.

Payload Structure

1632
No. of Entries
2 Bytes
Length per entry
2 Bytes
Entry [0]
(see description)
...
Entry [N]
(see description)
824

No. of Entries

The number of virtual line descriptions.

Length per entry

The number of bytes per line description. This value is currently 4 but may be increased later when more information per entry must be provided. New fields will be appended to the entry and should be ignored by the client when unknown.

Entry

1632
No. of virtual line
2 Bytes
No. of physical Line
2 Bytes
824

No. of virtual line

The number of the line which is a virtual line. Counting starts as usual from 1. Every audio input line is either a physical line (default) or a virtual line. All lines listed here are virtual lines.

No. of physical Line

The number of the physcial line which is associated to the named virtual line in the previous field. This line must be addressed for RCP commands that fail on the virtual line.

CONF_AUTO_TRACKER_TRACK_OBJECT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b2dvideo lineyesno
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the object id of the currently tracked object. Zero is returned if no object is tracked.
Writet_dworduserSend the object id to start tracking
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_AUTO_TRACKER_TRACK_OBJECT_POS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c28video lineyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetuserSend an image position to start tracking the nearest object. Position is in normalized coordinate system with upper left corner (0x0000 0x0000) and lower right corner (0x8000 0x8000)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MODE_AUTO_TRACKER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b40video linenono
 DatatypeAccess LevelDescription
Readt_octetminimalGet the autotracker mode (Modi: OFF=0, AUTO=1, CLICK=2).
Writet_octetuserSets the autotracker mode (Modi: OFF=0, AUTO=1, CLICK=2). The CLICK mode has to be rewritten after 10sec; otherwise, the mode shall switch back to AUTO
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STATUS_AUTO_TRACKER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b86Noneyesno
 DatatypeAccess LevelDescription
Readt_octetminimalGets current mode of auto tracker. 0=off; 1=idle; 2=seeking; 3=tracking active; 4=tracking passive
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_BACKUP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0af4cam (backup from device), trackID (backup from vrm)nono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetuser
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Starts an mp4 backup file of the specified replay range and store it on a account. The CONF_BACKUP_STATUS message is sent periodicallay to inform about the backup progress. The command returns an 1 byte backup id that can be used to identify the backup in the message. The backup may include signature generation and video authenticity checks. The check results can be return by an optional addon in CONF_BACKUP_STATUS message. The backup destination can be a dummy backup, the data won't be stored anywhere in that case. The dummy backup is used on the special account number 0xff (255). This is usefull, if the backup is just just for authenticity check of records.

Payload Structure

1632
From2000
4 Bytes
To2000
4 Bytes
Account
4 Bytes
RecordingIndex
4 Bytes
RemoteCamera
1 Byte
Transcode
1 Byte
TranscoderPreset
1 Byte
Reserved
1 Byte
ReplaySpeed
4 Bytes
ObjectID
4 Bytes
Reserved
4 Bytes
Backup filename...
16 Bytes
Backup filename
...
Backup filename
...
Backup filename
...
Flags
1 Byte
Signature hash type
1 Byte
Reserved
2 Bytes
824

From2000

Start time of the backup in seconds since 2000

To2000

Stop time of the backup in seconds since 2000

Account

Index of the account that should be used for backup (see CONF_ACCOUNT_SETTINGS), special account dummy backup 0xff.

RecordingIndex

Index of the recording to be backuped (0 or 1)

RemoteCamera

0 - local Camera, 1 to 4 refering to entries of CONF_ADD_REMOTE_DEVICE

Transcode

Optional field that defines if the video should be transcoded before backup (used by Transcoder Devices only)

TranscoderPreset

Optional field that defines the preset used by transcoding (used by Transcoder Devices only)

ReplaySpeed

Optional field that defines the replay speed (used by Transcoder Devices only). Use the same values as for CONF_HD_REPLAY_START

ObjectID

Optional field: if that Id is given a autotracker instance will be started that follows the object (used by Transcoder Devices only)

Backup filename

Backup filename: filename in arbitrary order of: %b begin date/time, %e end date/time, %c camera name, %i export job id, %f file nbr, %a alarm description, %dSubDirectory sub directory to write; optionally seperated by "_" or "-". Exampe: %b_%c would result e.g in a filename 20111017_14-29-26_camera1.mp4

Flags

Flags:
MaskNameDescription
Bit 10x02AUTH_MSG_ADDONStatus message CONF_BACKUP_STATUS will contain a message addon containing authenticity check result information
Bit 00x01CHECK_SIGNATUREChecks the signature of the source records, the generation of a signature of the backup will fail, if the check fails

Signature hash type

Activates the generation of a signature file using the https certificate, works for ftp and dropbox backup
Types:
NO_SIGNATURE0Signature generation disabled
SHA11Generates a signature file over the backup file using SHA1
SHA2562Generates a signature file over the backup file using SHA256

CONF_BACKUP_MAX_KBPS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0af5account numbernono
 DatatypeAccess LevelDescription
Readt_dwordminimalGets the maximum datarate for the backup (in kbps)
Writet_dworduserSets the maximum datarate for the backup (in kbps)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_BACKUP_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0af8Backup Session ID (if set to 0 a list of all backup sessions is returned)yesno
 DatatypeAccess LevelDescription
Readp_octetminimalList the status of a backup sessions:
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command returns a list of the current backups or the status of one single backup if a specific valid backup id was provided. The list contains the following sequence:

Payload Structure

1632
Backup ID
4 Bytes
RCP Session ID
4 Bytes
Start Time
4 Bytes
End Time
4 Bytes
Transfered Bytes...
8 Bytes
Transfered Bytes
...
File Count
2 Bytes
File Nbr
2 Bytes
File part
2 Bytes
Reserved
2 Bytes
Current time
4 Bytes
Ppm Current File
4 Bytes
Backup Errrors
4 Bytes
RTP packet loss
4 Bytes
MP4 box errors
4 Bytes
Account errors
4 Bytes
Cam
2 Bytes
RecIdx
2 Bytes
Account
1 Byte
Backup ID
1 Byte
Timezone quarter hours
1 Byte
Reserved
1 Byte
Link...
128 Bytes
Link
[...]
Link
...
Reserved...
8 Bytes
Reserved
...
824

Backup ID

Backup Session ID

RCP Session ID

Corresponding RCP Session ID

Start Time

Start Time of the Backup in Seconds since 2000

End Time

End Time of the Backup in Seconds since 2000

Transfered Bytes

Transfered bytes

File Count

Number of files to backup

File Nbr

Current file to backup

File part

If a larger Backup file is split into multiple parts this value tells the current part

Current time

The current time of the backup

Ppm Current File

Status in ppm of the current backup

Backup Errrors

The last account error.
Errors:
ERROR2Error during backup
CANCELLED4Backup canceled
START_FAILED5Start of backup failed

RTP packet loss

Number of lost packets

MP4 box errors

Errors in the mp4 converter.

Account errors

The last account error.
Errors:
NO_ERROR0
NO_IP1
CONNECT_FAILED2
SETDIR_FAILED3
WRITE_FAILED4

Cam

Camera

RecIdx

Recording Index

Account

The index of the account used for backup (see CONF_ACCOUNT_SETTINGS and CONF_BACKUP). For backup via http the account is set to 0.

Backup ID

The backup id that is returned by the CONF_BACKUP command. This id can be used to link the backup started by CONF_BACKUP with this status message

Timezone quarter hours

Signed time zone offset in quarter hours

Link

A direct link to the backup mp file. The message contains the link if it is available

Message Payload Structure

This command is also send as message by an running backup with same payload and an optional addon containing authenticity informations if the check for it and the addon was activated in the backup job
1632
Backup Status...
200 Bytes
Backup Status
[...]
Backup Status
...
Backup Status Addon (optional)
(see description)
824

Backup Status Addon (optional)

1632
start sec utc
4 Bytes
end sec utc
4 Bytes
TZ QH
1 Byte
hash status
1 Byte
sign status
1 Byte
cert status
1 Byte
hash issues
4 Bytes
sign issues
4 Bytes
cert issues
4 Bytes
824

start sec utc

Start time in seconds since 2000 utc of the sequence

end sec utc

Last time in seconds since 2000 utc of the sequence

TZ QH

Time time zone offset in quarter hours (7 lowest bits), and sign (highest bit)

hash status

Hash status for authenticity check
Values:
missing0
not checked1
invalid2
valid3

sign status

Signature status
Values:
missing0
not checked1
missing certificate2
invalid3
valid4

cert status

Signing certificate status
Values:
not checked0
unknown1
invalid2
trusted3
owned4

hash issues

Count of hash issues occured since start of authenticity check

sign issues

Count of sign issues occured since start of authenticity check

cert issues

Count of cert issues occured since start of authenticity check

CONF_BACKUP_STOP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b58Backup Session IDnono
 DatatypeAccess LevelDescription
Read--Unavailable
Writet_dworduserCancels an ongoing backup job
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_BICOM_COMMAND

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09a5video lineyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetuserSends a BICOM read or write command to the local camera frontend. Notice: for some BICOM commands an access level higher than 'l_user' is needed. For details about this see Appendix 'Bicom Command Access Levels' of this document.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
Flags
1 Byte
Lease Time Info (conditional)...
(see description)
Lease Time Info (conditional)
...
Bicom Server ID...
2 Bytes
Bicom Server ID
...
Object ID
2 Bytes
Operation
1 Byte
Bicom Payload
N Bytes
824

Flags

Transmission-Flags
MaskNameDescription
Bit 70x80Flags AvailableMust be always set to 1
Bit 60x40unused set to 0
Bit 50x20unused set to 0
Bit 40x10unused set to 0
Bit 30x08Lease Time AvailableSet to 1 if a lease time is included in the request
Bit 20x04Native ErrorsSet to 1 to receive the native BICOM errors
Bit 10x02obsolete, don't care
Bit 00x01obsolete, don't care

Lease Time Info (conditional)

Lease Time Info is available when corresponding flag is set.
2448
Lease time
2 Bytes
Lease time ID
4 Bytes
1236

Lease time

Time period in seconds the access should be blocked for other clients.
Note: This field has to be signaled in little endian mode.

Lease time ID

Random number generated by the client. If a lease time > 0 is provided with the first access, further accesses during the lease time are only possible if the same lease time id is provided.

Bicom Server ID

Server ID, e.g. 0x0002 for "Device Server" (See BICOM application documentation)

Object ID

Object ID, e.g. 0x0100 for "Type" (See BICOM application documentation)

Operation

See BICOM application documentation for details.
Values
GET0x01
SET0x02
SET_GET0x03
INC0x04
INC_GET0x05
DEC0x06
DEC_GET0x07
SET_DFLT0x08
SET_GET_DFLT0x09

Message Payload Structure

1632
Bicom Server ID
2 Bytes
Object ID
2 Bytes
Operation
1 Byte
Bicom Payload
N Bytes
824

Bicom Server ID

Server ID, e.g. 0x0004 for "Camera Server" (See BICOM application documentation)

Object ID

Object ID, e.g. 0x0190 for "Colour" (See BICOM application documentation)

Operation

See BICOM application documentation
Values:
EVENT0x70 - 0x7F

Example

RCP Request
84 Native Errors
00 02 Server ID = 2 ("Device server")
01 50 Object "IdString"
01 Operation GET
RCP Reply
84 Native Errors
00 02 Server ID = 2 ("Device server")
01 50 Object "IdString"
01 Operation GET
00 68 00 68 00 68 00 68 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 34 Bytes Unicode ID String
RCP Message
00 04 Server ID = 4 ("Camera server")
01 90 Object "Colour"
70 Operation EVENT
00 00 2 Byte unsigned short: Colour mode is "B/W"

CONF_BROWSER_LANGUAGE_VAL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01e3Nonenono
 DatatypeAccess LevelDescription
Readt_octetalwaysRead current set browser language
Writet_octetserviceSet browser language (numbering depends on toolkit implementation)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DYNAMIC_HTML_COUNT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cefNonenono
 DatatypeAccess LevelDescription
Readt_wordminimalRead number of available dynamic html pages
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DYNAMIC_HTML_DATA

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0299yesnono
 DatatypeAccess LevelDescription
Readp_octetminimalGet the data(content) for a dynamic HTML page (num range 1..DYNAMIC_HTML_COUNT) (max. 2048 char)
Writep_octetserviceSet the data(content) for a dynamic HTML page (num range 1..4) (max. 2048 char)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DYNAMIC_HTML_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0298yesnono
 DatatypeAccess LevelDescription
Readp_stringminimalGet the name for a dynamic HTML page(num range 1..DYNAMIC_HTML_COUNT)
Writep_stringserviceSet the name for a dynamic HTML page (num range 1..4) (max. 19 char)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HTTP_SESSION_COOKIE_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0xD07cNonenono
 DatatypeAccess LevelDescription
Readp_stringminimalRead session cookie name
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STARTPAGE_BACKGROUND_URL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x028dNonenono
 DatatypeAccess LevelDescription
Readp_stringminimalGet the URL of the startpage' background image (max 64 char)
Writep_stringserviceSet the URL of the startpage' background image (max 64 char)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STARTPAGE_LOGO_URL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x028eNonenono
 DatatypeAccess LevelDescription
Readp_stringminimalGet the URL of the startpage' OEM logo image (max 64 char)
Writep_stringserviceSet the URL of the startpage' OEM logo image (max 64 char)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STARTPAGE_PRESENTATION_SWITCHES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x028fNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet switches for HTML startpage presentation (usage is up the the user)
Writet_dwordserviceSet switches for HTML startpage presentation (usage is up the the user)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_CAMERA_CALIBRATION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c34video linenono
 DatatypeAccess LevelDescription
Readp_octetuserCalculates calibration with calibration elements, payload is beyond the scope of this document (for more details read CameraCalibrationConfig.doc)
Writep_octetivaCalculates calibration with calibration elements, payload is beyond the scope of this document (for more details read CameraCalibrationConfig.doc)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_CAMERA_LOCATION_METADATA

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bfaNonenono
 DatatypeAccess LevelDescription
Readp_octetuser
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Command CONF_CAMERA_LOCATION_METADATA allows to configure/retrieve several descriptive location metadata fields, e.g. City, Country Code. The command has an internal tagged structure.

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: City

Contains the city name as string, no zero termination.
1632
Length
2 Bytes
Tag = 0x0000
2 Bytes
City (p_string)
Length - 4 Bytes
824

Tag 1: Zip Code

Contains the zip code as string, no zero termination.
1632
Length
2 Bytes
Tag = 0x0001
2 Bytes
Zip Code (p_string)
Length - 4 Bytes
824

Tag 2: Country Code

Contains the country code as string, no zero termination.
1632
Length
2 Bytes
Tag = 0x0002
2 Bytes
Country Code (p_string)
Length - 4 Bytes
824

Tag 3: Region

Specifies the region.
1632
Length = 0x0005
2 Bytes
Tag = 0x0003
2 Bytes
Region (t_octet)
1 Byte
824

CONF_CAMERA_ORIENTATION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0be5Nonenono
 DatatypeAccess LevelDescription
Readp_octetlive
Writep_octetiva
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

The format has an internal tagged structure, the allowed tags can be queried via CONF_CAMERA_POSITION_OPTIONS. (Support orientation calibration [0 no support, 1 pan only, 2 full support])
1: pan only: Tag 1 and 3 are supported
2: full support: Tag 1,2,3 and 4 are supported
All commands can be send in binary or string format. Only one configuration is valid.
Tag 1 (binary) and 3 (string) configure only pan angle for configuration tag 1 or 3 can used.
Tag 2 (binary) and 4 (string) configure can be used to configure the full camera orientation.
Read will always return both variant of one configuration (string + binary representation)

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: Undefined orientation

Default value when no camera orientation is configured, can also be used to remove the camera orientation configuration
1632
Length = 0x0004
2 Bytes
Tag = 0x0000
2 Bytes
824

Tag 1: Pan Angle

Configure camera orientation only pan angle can be configured (legacy mode: Plane is configured via VCA config). pan u(32): Specifies the pan angle in units of (2*pi/(2^32)).
1632
Length = 0x0008
2 Bytes
Tag = 0x0001
2 Bytes
Pan Angle (t_dword)
4 Bytes
824

Tag 2: Full Orientation

Specify the full camera orientation at once
1632
Length = 0x0010
2 Bytes
Tag = 0x0002
2 Bytes
pan (t_dword)
4 Bytes
tilt (t_dword)
4 Bytes
roll (t_dword)
4 Bytes
824

pan

Specifies the pan angle in units of (2*pi/(2^32))

tilt

Specifies the tilt angle in units of (2*pi/(2^32))

roll

Specifies the roll angle in units of (2*pi/(2^32))

Tag 3: Pan Angle String

Specifies the pan angle (in degrees) as a string.
1632
Length
2 Bytes
Tag = 0x0003
2 Bytes
Pan Angle String (p_string)
Length - 4 Bytes
824

Format of Payload String

Pan
Max. Length in StringLimitsDescription
Pan3.6 [-360.0,360.0] Pan angle in degrees

Example

pan="3.455"
-> pan = 3.455°

Tag 4: Full Orientation String

Specify the full camera orientation at once
1632
Length
2 Bytes
Tag = 0x0004
2 Bytes
Full Orientation String (p_string)
Length - 4 Bytes
824

Format of Payload String

Pan;Tilt;Roll
Max. Length in StringLimitsDescription
Pan3.6 [-360.0,360.0] Specifies the pan angle in degrees
Tilt3.6 [-360.0,360.0] Specifies the tilt angle in degrees
Roll3.6 [-360.0,360.0] Specifies the roll angle in degrees

CONF_CAMERA_POSITION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bdfNonenono
 DatatypeAccess LevelDescription
Readp_octetlive
Writep_octetiva
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

The format has an internal tagged structure, the allowed tags can be queried via CONF_CAMERA_POSITION_OPTIONS
(Byte[0] support local cartesian coordinate system [0 no, 1 yes];) 1 -> tag 1 and 2 are supported
(Byte[1] support wgs 1984 coordinate system [0 no, 1 yes]) 1 -> tag 3 and 4 are supported
Only a single set of coordinates can be used e.g. local coordinates or global WGS coordinates it is possible to define the coordinates via a string or a binary command
Tag 1 (binary) and 3 (string) configure a local cartesian coordinate system.
Tag 2 (binary) and 4 (string) configure a wgs 1984 coordinate system.
Read will always return both variant of one configuration (string + binary representation)

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: Undefined Position

Default value when no camera position is configured, can also be used to remove the camera position configuration
1632
Length = 0x0004
2 Bytes
Tag = 0x0000
2 Bytes
824

Tag 1: Cartesian Position

Local cartesian camera position
1632
Length = 0x0010
2 Bytes
Tag = 0x0001
2 Bytes
X (t_dword)
4 Bytes
Y (t_dword)
4 Bytes
Z (t_dword)
4 Bytes
824

X

Specifies the x coordinate in units of 1/(2^16)

Y

Specifies the y coordinate in units of 1/(2^16)

Z

Specifies the z coordinate in units of 1/(2^16)

Tag 3: Cartesian Position String

Local cartesian camera position
1632
Length
2 Bytes
Tag = 0x0003
2 Bytes
Cartesian Position String (p_string)
Length - 4 Bytes
824

Format of Payload String

X;Y;Z
Max. Length in StringLimitsDescription
X5.4 [-32767,32767] X position in local cartesian coordinate system
Y5.4 [-32767,32767] Y position in local cartesian coordinate system
Z5.4 [-32767,32767] Z position in local cartesian coordinate system

Example

XYZ = "1000.124;145.3434;123.2355"
-> x= 1000.124 m, y = 145.3434 m, z = 123.2355

Tag 2: WGS 1984 Camera Position

Define the camera position based on wgs 1984 (World Geodetic System 1984)
1632
Length = 0x0018
2 Bytes
Tag = 0x0002
2 Bytes
Longitude (t_dword)
8 Bytes
Longitude (t_dword)
...
Latitude (t_dword)
8 Bytes
Latitude (t_dword)
...
Height (t_dword)
4 Bytes
824

Longitude

Specifies the longitude in units of (2*pi/(2^64))

Latitude

Specifies the latitude in units of (2*pi/(2^64))

Height

Signed value height above sea level in units of 1/(2^16) m

Tag 4: WGS 1984 Camera Position String

Define the camera position based on wgs 1984 (World Geodetic System 1984)
1632
Length
2 Bytes
Tag = 0x0004
2 Bytes
WGS 1984 Camera Position String (p_string)
Length - 4 Bytes
824

Format of Payload String

Longitude;Latitude;Height
Max. Length in StringLimitsDescription
Longitude3.12 [-360.0,360.0] Specifies the longitude in degrees
Latitude5.4 [-90.0,90.0] Specifies the latitude in degrees
Height3.12 [-32767,32767] Height above sea level in m.

Example

longitude;latitude;height="12.45674964;45.456464;125.1234"
-> longitude = 12.45674964°, latitude = 45.456464°, 125.1234 m

CONF_CAMERA_POSITION_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0be0Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
LocalPosSupport
1 Byte
WGS1984Support
1 Byte
OrientationSupport
1 Byte
Reserved
1 Byte
Reserved
4 Bytes
824

LocalPosSupport

Support local cartesian coordinate system
Values:
No0
Yes1

WGS1984Support

Support wgs 1984 coordinate system
Values:
No0
Yes1

OrientationSupport

Support pan, tilt, and/or roll orientation
Values:
No0
Yes1

CONF_CAMERA_SURROUNDING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0be1Nonenono
 DatatypeAccess LevelDescription
Readp_octetlive
Writep_octetiva
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

The format has an internal tagged structure, the allowed tags can be queried via CONF_CAMERA_SURROUNDING_OPTIONS ([0: no, 1: flat plane only elevation can be configured (plane is assumed to be parallel to the (world, local) coordinate system])
1 -> Tag 1 (binary) and 3 (string) configure a offset to the ground plane (orientation is derived from (CONF_CAMERA_ORIENTATION))
Only a single surrounding configuration it is possible to define the coordinates via a string or a binary command
Tag 1 (binary) and 3 (string) configure a elevation to the ground plane under the assumption that the ground plane is parallel to the camera surrounding defined by (CONF_CAMERA_POSITION and CONF_CAMERA_ORIENTATION) surrounding is defined by CONF_CAMERA_ORIENTATION [tilt, roll] + CONF_CAMERA_SURROUNDING [elevation]
Read will always return both variant of one configuration (string + binary representation)

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: Undefined Surrounding

Default value when no camera surrounding is configured, can also be used to remove the camera surrounding configuration
1632
Length = 0x0004
2 Bytes
Tag = 0x0000
2 Bytes
824

Tag 1: Elevation

Specify the elevation relativ to the ground plane in units of 1/(2^16) m. Camera ground model plane is parallel to coordinate system defined by (CONF_CAMERA_POSITION and CONF_CAMERA_ORIENTATION).
1632
Length
2 Bytes
Tag = 0x0001
2 Bytes
Elevation (t_int)
4 Bytes
824

Tag 3: Elevation

Specify the elevation relativ to the ground plane. Camera ground model plane is parallel to coordinate system defined by (CONF_CAMERA_POSITION and CONF_CAMERA_ORIENTATION).
1632
Length
2 Bytes
Tag = 0x0003
2 Bytes
Elevation (p_string)
Length - 4 Bytes
824

Format of Payload String

Elevation
Max. Length in StringLimitsDescription
Elevation5.4 [-32767,32767] Specify the position of the camera in a local cartesian coordinate system

Example

elevation = "1000.124"
-> elevation= 1000.124 m

CONF_CAMERA_SURROUNDING_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0be2Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_COMPLETE_CALIBRATION_ELEMENT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c35video linenono
 DatatypeAccess LevelDescription
Readp_octetuser4 bytes reserved, calibration element
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_PREDEFINED_MOUNTING_LIST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c76video linenono
 DatatypeAccess LevelDescription
Readp_stringuserContains predefined mounting positions separated by semicolon, last three characters defines the associated tilt angle
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SENSOR_ORIENTATION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c39IMU Sensor at image sensor: 0x0001-0x00fe; IMU Sensor at chassis: 0x0101 ... 0x01ff; legacy mapping: 0 -> 1, 0xff -> 0x0101, 0x00ff -> 0x0101nono
 DatatypeAccess LevelDescription
Readp_octetuser
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 1: Pan

Pan angle (magnetic sensor present).
1632
Length = 0x000c
2 Bytes
Tag = 0x0001
2 Bytes
Pan (t_dword)
4 Bytes
Error Estimation (t_dword)
4 Bytes
824

Pan

Specifies the pan angle in units of (2*pi/(2^32))

Error Estimation

Specifies the estimation error in units of (2*pi/(2^32))

Tag 2: Tilt

Tilt angle (acceleration sensor present).
1632
Length = 0x000c
2 Bytes
Tag = 0x0002
2 Bytes
Tilt (t_dword)
4 Bytes
Error Estimation (t_dword)
4 Bytes
824

Tilt

Specifies the tilt angle in units of (2*pi/(2^32))

Error Estimation

Specifies the estimation error in units of (2*pi/(2^32))

Tag 3: Roll

Roll angle (acceleration sensor present).
1632
Length = 0x000c
2 Bytes
Tag = 0x0003
2 Bytes
Roll (t_dword)
4 Bytes
Error Estimation (t_dword)
4 Bytes
824

Roll

Specifies the roll angle in units of (2*pi/(2^32))

Error Estimation

Specifies the estimation error in units of (2*pi/(2^32))

Tag 4: Rotate

Image Sensor rotation is active (if tag is missing an unrotated image has to be assumed).
1632
Length = 0x0008
2 Bytes
Tag = 0x0004
2 Bytes
Rotate
4 Bytes
824

Rotate

Specifies the rotate angle in units of (2*pi/(2^32)). This value can be added to the roll angle.

Tag 5: Vector

Acceleration vector (acceleration sensor present).
1632
Length = 0x0010
2 Bytes
Tag = 0x0005
2 Bytes
x (t_dword)
4 Bytes
y (t_dword)
4 Bytes
z (t_dword)
4 Bytes
824

x

Accelaration in x direction in milli g

y

Accelaration in y direction in milli g

z

Accelaration in z direction in milli g


Note: Missing tags are to be considered as unknown (e.g., no sensor available)

CONF_SHIFT_CALIBRATION_ELEMENT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c82video linenono
 DatatypeAccess LevelDescription
Readp_octetuser4 bytes reserved, 2 bytes shiftx (0x8000 normalized), 2 bytes shifty (0x8000 normalized), calibration element
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_CBS_COMMISSION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c72Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetminimalCommission to CBS-Account. Action, User, Password. See detailed description for payload structure
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
Action
1 Byte
User
N Bytes
Password
N Bytes
824

Action

Cancel Commission0
Start Commission1

User

User name (0-terminated, max-len 128)

Password

User password (0-terminated, max-len 128)

CONF_CBS_DESTINATION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c75destination number (starting with 1)nono
 DatatypeAccess LevelDescription
Readp_octetminimalGet CBS destination and connection configuration. See detailed description for payload structure
Writep_octetserviceSet CBS destination and connection configuration. See detailed description for payload structure
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
Port
2 Bytes
SSL
1 Byte
reserved...
5 Bytes
reserved
...
URL
N Bytes
824

Port

Destination port

SSL

SSL Socket not provided0
SSL Socket provided1

reserved

Reserved for future use. Set to zero.

URL

Destination URL (0-terminated, max-len 128)

Example

Payload for port 443, ssl 1, url "api.remote.boschsecurity.com"
0x01bb0100000000006170692e72656d6f74652e626f73636873656375726974792e636f6d00
Payload for port 443, ssl 1, url "api.remotest.cbs.boschsecurity.com"
0x01bb0100000000006170692e72656d6f746573742e6362732e626f73636873656375726974792e636f6d00

CONF_CBS_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c73Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalStatus of CBS Commission. see detailed Description :
Writep_octetminimalUpdate commission status, no parameters needed
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

816
cbs status
1 Byte
cbs action status
1 Byte
412

cbs status

Is a status byte for the Remote Portal connection
Registered0
OnGoing1
UnRegistered2
Unknown255

cbs action status

Is a detailed status byte for 'Remote Portal' dialog
Ok0
OnGoing1
UnRegistered2
Canceled3
Reconfiguration Forbidden0xe0
Reconfiguration Conflict0xe1
Reconfiguration UnprocessibleEntity0xe2
Reconfiguration Locked0xe3
Reconfiguration ServiceUnavailable0xe4
Reconfiguration AuthError0xe5
CloudConnector not running0xf5
CloudDestinationError0xf6
CloudUnreachable no DNS Server configured0xf7
CloudUnreachable DNS could not be resolved0xf8
DeviceSecretError0xf9
ReceiveError0xfa
MessageError0xfb
InvalidMacAddressFormat0xfc
FriendlyNameEmpty0xfd
CloudUnreachable0xfe
UnexpectedError0xff

CONF_REMOTE_PORTAL_INFO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0d00Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalGet information about the camera's Remote Portal connection
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value without length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 1: RP_INFO_TAG_DEVICE_URL

Direct link to the device in the Remote Portal
1632
Tag = 0x0001
2 Bytes
Length
2 Bytes
RP_INFO_TAG_DEVICE_URL (p_string)
Length Bytes
824

CONF_CERTIFICATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0be9Nonenono
 DatatypeAccess LevelDescription
Readp_octetservice
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Generic description

The command CONF_CERTIFICATE supports the following operations:
Each certificate/signing request/key is identified by a unique label. If a certificate has a matching private key both have the same label. When the command fails it returns a command specific error code in the payload.
On upload the command supports the following file formats:
You can also use this command to upload encrypted private keys as PEM, DER or PKCS12 file. To do this you upload the file containing the encrypted key. The device stores the encrypted key internally and waits, that the password is provided later with help of the CONF_CERTIFICATE_REQUEST command.
To delete a certificate/CSR or key you have to provide the following tags: Tag 0 with the label, tag 1 with 0, tag 2 with length 4 and no data and tag 3 with entry type 0xFF (delete).

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: Label

Contains the label string, no zero termination. For the maximum supported length see CONF_CERTIFICATE_OPTIONS.
1632
Length
2 Bytes
Tag = 0x0000
2 Bytes
Label (p_string)
Length - 4 Bytes
824

Tag 1: Data Format

Specifies the certificate/signing request/key data format (PEM / DER / PKCS#12(PFX) is supported).
1632
Length = 0x0008
2 Bytes
Tag = 0x0001
2 Bytes
Data Format (t_dword)
4 Bytes
824
Values:
PEM0
DER1
PKCS#2 / PFX2

Tag 2: Data

Contains the certificate/signing request/key data in the specified format. If this tag contains no data (zero payload length) the corresponding entry is deleted from the device.
1632
Length
2 Bytes
Tag = 0x0002
2 Bytes
Data (p_octet)
Length - 4 Bytes
824

Tag 3: Entry Type

Specifies the entry type for read and write. This tag is mandatory for PEM and DER format and should appear only once.
1632
Length = 0x0008
2 Bytes
Tag = 0x0003
2 Bytes
Entry Type (t_dword)
4 Bytes
824
Values:
Certificate1
Signing Request (read or delete)2
Private key (write only)4
Encryption key (write only)8
Any type (delete only)255

Tag 4: Tag Protection

Contains a bit mask showing the protection bits of the certificate. Each bit of the 32 bit value shows a specific protection.
1632
Length = 0x0008
2 Bytes
Tag = 0x0004
2 Bytes
Tag Protection (t_dword)
4 Bytes
824
Values:
MaskNameDescription
Bit 00x00000001Factory ResetProtect at factory reset

Example

Delete cert with label 'test':
0x0008000074657374 0008000100000000 00040003000000FF

Command Specific Errors

CERTIFICATE_CMD_ERROR_FAIL0x00
CERTIFICATE_CMD_ERROR_INV_ARGS0x01
CERTIFICATE_CMD_ERROR_ALREADY_EXISTS0x02
CERTIFICATE_CMD_ERROR_FORMAT0x03
CERTIFICATE_CMD_ERROR_NO_CERT_FOR_KEY0x04
CERTIFICATE_CMD_ERROR_NO_KEY_ENTRY0x05
CERTIFICATE_CMD_ERROR_NO_STORAGE_SPACE0x06

CONF_CERTIFICATE_LIST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bebNonenono
 DatatypeAccess LevelDescription
Readp_octetservice
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Command CONF_CERTIFICATE_LIST allows to query the labels of all certificates, signing requests and keys installed on a device. The command CONF_CERTIFICATE can then be used to retrieve a certificate or signing request using the label. The format has an internal tagged structure. Some tags are optional and might be absent if the data is not available. The tags are always in the sequence as listed below.

Payload Structure

List Entry [0]
...
List Entry [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: List Entry

The payload of tag list entry contains further tagged values described below. For each certificate, signing request or key with unique label on the device one list entry tag is contained in the command payload.
1632
Length = 0x0004
2 Bytes
Tag = 0x0000
2 Bytes
824

Tag 1: Entry Label (Required)

Contains the entry label string, no zero termination.
1632
Length
2 Bytes
Tag = 0x0001
2 Bytes
Entry Label (p_string)
Length - 4 Bytes
824

Tag 2: Type

Contains the entry type bitmask. All types with the same label are listed together as one entry.
1632
Length = 0x0008
2 Bytes
Tag = 0x0002
2 Bytes
Type (t_dword)
4 Bytes
824
MaskName
Bit 70x00000080Encrypted PKCS#12
Bit 60x00000040Key decryption in progress
Bit 50x00000020Signing request generation in progress
Bit 40x00000010Certificate generation in progress
Bit 30x00000008Encrypted private key
Bit 20x00000004Private key
Bit 10x00000002Signing request
Bit 00x00000001Certificate

Tag 3: Subject common name

Contains the subject common name string (UTF-16) of the certificate or signing request. This entry is optional and only used for certificates and signing requests.
1632
Length
2 Bytes
Tag = 0x0003
2 Bytes
Subject common name (p_unicode)
Length - 4 Bytes
824

Tag 4: Protection BitmapType

Show the protection bits of this entry. This tag is optional if the type supports protection bits and if any protection is set. If this tag is missing, the item is unprotected. The following values are possible:
1632
Length = 0x0008
2 Bytes
Tag = 0x0004
2 Bytes
Protection BitmapType (t_dword)
4 Bytes
824
MaskName
Bit 10x00000002Protect from manual deletion
Bit 00x00000001Protect at factory reset

Tag 5: Issuer common name

Contains the issuer common name string (UTF-16) of the certificate. This entry is optional and only used for certificates.
1632
Length
2 Bytes
Tag = 0x0005
2 Bytes
Issuer common name (p_unicode)
Length - 4 Bytes
824

Tag 6: Not after timestamp in UTC

Contains the UTC string (UTF-16, format YYMMDDhhmmssZ) of the not after timestamp of the certificate . This entry is optional and only used for certificates. If tag = 7 (Certificate's not after timestamp in GT) is present you should always use the date from there as UTC is limited to 1950-01-01 up to 2049-12-31. For compatibility reason both tags will be present when the date can be presented in both formats.
1632
Length
2 Bytes
Tag = 0x0006
2 Bytes
Not after timestamp in UTC (p_unicode)
Length - 4 Bytes
824

Tag 7: Not after timestamp in GT

Contains the General time (GT) string (UTF-16, format YYYYMMDDhhmmssZ) of the not after timestamp of the certificate. This entry is optional and only used for certificates. Thisa entry should always be used instead of tag 6 (Certificate's not after timestamp in UTC) because of it's wider time range.
1632
Length
2 Bytes
Tag = 0x0007
2 Bytes
Not after timestamp in GT (p_unicode)
Length - 4 Bytes
824

Tag 8: Key Type

Indicating the key algorithm and the key size this certificate or signing request uses. The following values are possible:
1632
Length = 0x0008
2 Bytes
Tag = 0x0008
2 Bytes
Key Type (t_dword)
4 Bytes
824
Below enumeration lists example values for the key type association:
RSA 1024 Bit0
RSA 2048 Bit1
Elliptic Curve P2562
RSA 40963

CONF_CERTIFICATE_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0beaNonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
Max label length
4 Bytes
Certificate store support
1 Byte
reserved
3 Bytes
824

Certificate store support

no0
yes1

CONF_CERTIFICATE_REQUEST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0becNonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

The command CONF_CERTIFICATE_REQUEST allows to start a certificate signing request or a key decryption operation. Since both operations may take some time to complete, this command may return before the actual completion of the operation. The progress of the operation can be tracked by registering for the CONF_CERTIFICATE_REQUEST_PROGRESS message.

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: Label

Contains the label string, no zero termination. Access the generated private key and the signed certificate using the provided label after the process has finished successfully. For key decryption this label is used to identify the key to be decrypted.
1632
Length
2 Bytes
Tag = 0x0000
2 Bytes
Label (p_string)
Length - 4 Bytes
824

Tag 1: Key Type

Specifies the key type for the signing request/certificate to be generated. The list of supported types for a specific device can be requested using command CONF_CERTIFICATE_REQUEST_OPTIONS.
1632
Length = 0x0008
2 Bytes
Tag = 0x0001
2 Bytes
Key Type (t_dword)
4 Bytes
824
Below enumeration lists example values for the key type association:
RSA 1024 Bit0
RSA 2048 Bit1
Elliptic Curve P2562
RSA 40963

Tag 2: Type

Below enumeration lists example values for the key type association:
1632
Length = 0x0008
2 Bytes
Tag = 0x0002
2 Bytes
Type (t_dword)
4 Bytes
824
Values:
PKCS100Create PKCS#10 CSR
SelfSigned3Create self-signed certificate
Descrypt4Decrypt private key

Tag 3: CA Server FQHN

Specifies the CA server address as string in Fully-Qualified Host Name format (fully domain name or IPV4 or IPV6 as string), no zero termination. This tag is optional and only used when a signing request is sent to a server.
1632
Length
2 Bytes
Tag = 0x0003
2 Bytes
CA Server FQHN (p_string)
Length - 4 Bytes
824

Tag 4: CA Server Port

Specifies the CA server port. This tag is optional and only used when a signing request is sent to a server.
1632
Length = 0x0008
2 Bytes
Tag = 0x0004
2 Bytes
CA Server Port (t_dword)
4 Bytes
824

Tag 5: Common Name

Contains the common name string (UTF-16) for the certificate/signing request, no zero termination. This tag is optional.
1632
Length
2 Bytes
Tag = 0x0005
2 Bytes
Common Name (p_unicode)
Length - 4 Bytes
824

Tag 6: Organization Name

Contains the organization name string (UTF-16) for the certificate/signing request, no zero termination.
1632
Length
2 Bytes
Tag = 0x0006
2 Bytes
Organization Name (p_unicode)
Length - 4 Bytes
824

Tag 7: Unit Name

Contains the organizational unit name string (UTF-16) for the certificate/signing request, no zero termination. This tag is optional.
1632
Length
2 Bytes
Tag = 0x0007
2 Bytes
Unit Name (p_unicode)
Length - 4 Bytes
824

Tag 8: Locality Name

Contains the locality name string (UTF-16) for the certificate/signing request, no zero termination. This tag is optional.
1632
Length
2 Bytes
Tag = 0x0008
2 Bytes
Locality Name (p_unicode)
Length - 4 Bytes
824

Tag 9: Country Name

Contains the country name string (UTF-16) for the certificate/signing request, no zero termination. This tag is optional.
1632
Length
2 Bytes
Tag = 0x0009
2 Bytes
Country Name (p_unicode)
Length - 4 Bytes
824

Tag 10: State or Province Name

Contains the state or province name string (UTF-16) for the certificate/signing request, no zero termination. This tag is optional.
1632
Length
2 Bytes
Tag = 0x000a
2 Bytes
State or Province Name (p_unicode)
Length - 4 Bytes
824

Tag 11: Password

Contains the password used for private key decryption, no zero termination. This tag is optional.
1632
Length
2 Bytes
Tag = 0x000b
2 Bytes
Password (p_string)
Length - 4 Bytes
824

Tag 12: Certificate Extension

Using this tag you can provide one X.509 certificate extension which should be added to a self signed certificate or a certificate request (there the extension will be added as ExtensionRequest).
The extension must already be encoded in it's ASN.1 representation as defined for 'Extension' in RFC5280 chapter 4.1. This means a sequence containing an object identifier followed by a bitstring which contains the extension specific payload.
The ASN.1 structure is directly added to the certificate/certificate request, so the caller is responsible for proper content of the extension which will be provided by this tag.
If this tag is missing no extension will be added. It can occur a maximum of 5 times.
1632
Length
2 Bytes
Tag = 0x000c
2 Bytes
Certificate Extension (p_octet)
Length - 4 Bytes
824

CONF_CERTIFICATE_REQUEST_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bedNonenono
 DatatypeAccess LevelDescription
Readp_octetminimal4 bytes max label length, 4 bytes max IP string length, 4 bytes number of supported key types, 4 bytes number of supported cmd types, numKeyTypes * keyType (4 bytes type ID, 64 bytes type label), numCmdTypes * Type (4 bytes cmd type ID, 64 bytes cmd type label), 4 bytes max password length
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_CERTIFICATE_REQUEST_PROGRESS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bf0Noneyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This message informs about the current status of certificate/signing request/key operations started by a CONF_CERTIFICATE_REQUEST. The format has an internal tagged structure.

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: Contains the command type and its status.

Contains the command type and its status.
1632
Length = 0x000c
2 Bytes
Tag = 0x0000
2 Bytes
Type (t_dword)
4 Bytes
Status (t_dword)
4 Bytes
824

Type

PKCS100Create PKCS#10 CSR
SelfSigned3Create self-signed certificate
Descrypt4Decrypt private key

Status

Values in the range of 0 to 100 represent the current status, other values need to be handled as error.
Status values:
Generating request25
Sending request50
Request completed successfully100
Error values:
General error129
File already exists error130
No free key entry error131
No storage space error132
Server error133
Decrypt error134
Entry not found error135
No certificate found for key error136

Tag 1: Label

Contains the certificate/signing request/key label, no zero termination.
1632
Length
2 Bytes
Tag = 0x0001
2 Bytes
Label (p_string)
Length - 4 Bytes
824

Tag 2: New Label

Contains the certificate/signing request/key label, no zero termination. This tag is optional and is used to transmit the new label that is used to store the entry after the operation is complete (e.g. a key is decrypted and matched against a certificate and stored using the certificate label).
1632
Length
2 Bytes
Tag = 0x0002
2 Bytes
New Label (p_string)
Length - 4 Bytes
824

CONF_CERTIFICATE_USAGE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bf2Nonenono
 DatatypeAccess LevelDescription
Readp_octetservice
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Command CONF_CERTIFICATE_USAGE allows to configure for which purpose the certificates and keys on the device are used. The format has an internal tagged structure, the allowed tags and values can be queried via CONF_CERTIFICATE_USAGE_OPTIONS.

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: CertUsageID

Contains the certificate usage ID. This tag is mandatory for the read and write commands and should appear only once.
1632
Length = 0x0008
2 Bytes
Tag = 0x0000
2 Bytes
CertUsageID (t_dword)
4 Bytes
824
There are two types of certificate usages that can be distinguished by the highest bit (bit 31) of the CertUsageID:
MaskNameDescription
Bit 310x80000000Type0: Usage is only applicable for certificates having the private key stored on the device also (e.g. certificates used for signing), 1: Usage can be used for certificates for which the private key is not stored on the device (e.g. certificates only used for verify other certificates or signatures).

Tag 1: Certificate/Key label

Contains the label string used to identify the certificate/key, no zero termination. Multiple label tags can be contained in the payload.
1632
Length
2 Bytes
Tag = 0x0001
2 Bytes
Certificate/Key label (p_string)
Length - 4 Bytes
824

CONF_CERTIFICATE_USAGE_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bf3Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command returns the list of certificate usages available in the camera. Each usage has a unique ID and a label which can be presented to the end user. In the CONF_CERTIFICATE_USAGE command the usageID is referenced.

Payload Structure

1632
Write support
4 Bytes
Max Label Length
4 Bytes
Max Number Of Labels
4 Bytes
Number Of Usages
4 Bytes
Usage Entry [0]
(see description)
...
Usage Entry [N]
(see description)
824

Write support

Write Not Supported0
Write Supported1

Max Label Length

Maximum length of one label string for the usages.

Max Number Of Labels

Defines the maximum number of certificates which can be associated with one usage.

Number Of Usages

Amount of usage entries following after this entry.

Usage Entry

1632
Usage ID
4 Bytes
Label (p_string)
Max Label Length + 1 Bytes
824

Usage ID

This bit mask contains a unique numerical ID for this usage. Bits 31 and 30 are not part of this numerical ID and have a special meaning. They indicate properties of this usage regarding the certificates which can be associated with this usage.
MaskNameDescription
Bit 310x80000000Certificate Type
0: Certificate is an end-user certificate. Certificates in these usages are presented to a peer for client authentication for example. These usages can only contain one certificate. The certificate must be associated with a private key stored on the device.
1: Certificate is a trusted certificate. Certificates in these usages are used to verify certificates presented from the external peer. These usage can contain multiple certificates. The certificate needs no private key on the device.
Bit 300x40000000Multi Associate
This bit is only valid, if bit 31 is 0.
0: This end-user certificate usage can only be associated with 1 certificate.
1: This end-user certificate usage can be associated with multiple certificate (not used or supported at the moment).
Note: The functionality of this bit is only reserved for future usage with the described meaning and is not implemented yet.
Combined Values
MaskNameDescription
0x3FFFFFFFID Number

CONF_MIN_TLS_VERSION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c56Nonenono
 DatatypeAccess LevelDescription
Readt_wordminimalGet the TLS version minimal required to connect to the device. Word coding: bit 15-8 mayor version, bit 7-0 minor version. E.g. 0x0102 is TLSv1.2
Writet_wordserviceSet the TLS version minimal required to connect to the device. Word coding: bit 15-8 mayor version, bit 7-0 minor version. E.g. 0x0102 is TLSv1.2
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_CLOUD_WATCH_SETTINGS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cd6Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalReturns cloud watch settings of the device in a tagged format
Writep_octetserviceWrites cloud watch settings of the device in a tagged format
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value without length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 1: ACCOUNT_TAG_TYPE

0: not configured, 1: ftp, 2: dropbox, 5: amazon s3, 6: kinesis
1632
Tag = 0x0001
2 Bytes
Length = 0x0004
2 Bytes
ACCOUNT_TAG_TYPE (t_dword)
4 Bytes
824

Tag 2: ACCOUNT_TAG_NAME

account name
1632
Tag = 0x0002
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_NAME (p_string)
Length Bytes
824

Tag 3: ACCOUNT_TAG_URL

url, e.g url to the ftp server
1632
Tag = 0x0003
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_URL (p_string)
Length Bytes
824

Tag 4: ACCOUNT_TAG_LOGIN

username
1632
Tag = 0x0004
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_LOGIN (p_string)
Length Bytes
824

Tag 5: ACCOUNT_TAG_PASSWORD

password
1632
Tag = 0x0005
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_PASSWORD (p_string)
Length Bytes
824

Tag 6: ACCOUNT_TAG_PATH

path
1632
Tag = 0x0006
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_PATH (p_string)
Length Bytes
824

Tag 7: ACCOUNT_TAG_FLAGS

optional flags (e.g. FTP Encryption mode 0=off,1=TLS)
1632
Tag = 0x0007
2 Bytes
Length = 0x0004
2 Bytes
ACCOUNT_TAG_FLAGS (t_dword)
4 Bytes
824

Tag 8: ACCOUNT_TAG_ACCESS_KEY

aws access key (max 128 bytes)
1632
Tag = 0x0008
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_ACCESS_KEY (p_string)
Length Bytes
824

Tag 9: ACCOUNT_TAG_SECRET_KEY

aws secret access key (max 128 bytes)
1632
Tag = 0x0009
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_SECRET_KEY (p_string)
Length Bytes
824

Tag 10: ACCOUNT_TAG_BUCKET_NAME

bucket name (amazon s3), max 128 bytes
1632
Tag = 0x000a
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_BUCKET_NAME (p_string)
Length Bytes
824

Tag 11: ACCOUNT_TAG_REGION

aws region
1632
Tag = 0x000b
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_REGION (p_string)
Length Bytes
824

Tag 12: ACCOUNT_TAG_CAMERA_ID

s3 camera id, string will be added to the uploaded filename (max 128 bytes)
1632
Tag = 0x000c
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_CAMERA_ID (p_string)
Length Bytes
824

Tag 13: ACCOUNT_TAG_FILE_DURATION

s3 file duration in seconds
1632
Tag = 0x000d
2 Bytes
Length = 0x0004
2 Bytes
ACCOUNT_TAG_FILE_DURATION (t_dword)
4 Bytes
824

Tag 14: ACCOUNT_TAG_STREAM_NAME

stream name
1632
Tag = 0x000e
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_STREAM_NAME (p_string)
Length Bytes
824

Tag 15: ACCOUNT_TAG_KBPS

maximum datarate for the backup, see CONF_BACKUP_MAX_KBPS
1632
Tag = 0x000f
2 Bytes
Length = 0x0004
2 Bytes
ACCOUNT_TAG_KBPS (t_dword)
4 Bytes
824

Tag 16: ACCOUNT_TAG_GROUP

cloud watch log group
1632
Tag = 0x0010
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_GROUP (p_string)
Length Bytes
824

Tag 17: ACCOUNT_TAG_CLOUD_WATCH_ENABLED

cloud watch enabled/disabled
1632
Tag = 0x0011
2 Bytes
Length = 0x0001
2 Bytes
ACCOUNT_TAG_CLOUD_WATCH_ENABLED (t_octet)
1 Byte
824

Tag 18: ACCOUNT_TAG_KMS_ENABLED

kms key encryption enabled/disabled
1632
Tag = 0x0012
2 Bytes
Length = 0x0001
2 Bytes
ACCOUNT_TAG_KMS_ENABLED (t_octet)
1 Byte
824

Tag 19: ACCOUNT_TAG_KMS_KEY_ID

aws kms key id (max 128 bytes)
1632
Tag = 0x0013
2 Bytes
Length
2 Bytes
ACCOUNT_TAG_KMS_KEY_ID (p_string)
Length Bytes
824

CONF_COMMISSION_SETUP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c6bNonenono
 DatatypeAccess LevelDescription
Readp_octetuserReturns status of commissioning
Writep_octetserviceMoves camera to coordinates commissioning
CPP6/CPP7/CPP7.3CPP13
Available yes no

Read Payload Structure

1632
Flags
4 Bits
Reserved
28 Bits
824

Flags

MaskNameDescription
Bit 30x8Commissioning AvailableThis camera has commisioning
Bit 20x4Is InitializedCommissioning is ready to use
Bit 10x2Last Command Failedset to 1 on fail, will be set to 0 with each write command.
Bit 00x1RunningLast write command is still processing

Write Payload Structure

1632
Reserved
4 Bytes
New View Left
4 Bytes
New View Top
4 Bytes
New View Right
4 Bytes
New View Bottom
4 Bytes
824
Coordinates are relative in 1/0x8000. Corner top left is (0,0), bottom right is (0x8000,0x8000). If new view top left coordinate is same as new view bottom right coordinate, zoom will not be changed, just view is repositioned.

New View Left

X coordinate of top left corner.

New View Top

Y coordinate of top left corner.

New View Right

X coordinate of lower right corner.

New View Bottom

Y coordinate of lower right corner.

CONF_LED_BLINKING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x013dNonenono
 DatatypeAccess LevelDescription
Readf_flagminimalAlways 1
Writef_flagminimal1=power LED will flash for 7 sec
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_TELNET_PORT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a18Nonenono
 DatatypeAccess LevelDescription
Readt_wordminimalGet the local Telnet TCP port number
Writet_wordserviceSet the local Telnet TCP port number
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DEC_SHOW_FREEZE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x092eNonenono
 DatatypeAccess LevelDescription
Readt_octetminimalFreeze string: 0=off, 1=on, n=on (n * 40ms delayed)
Writet_octetserviceFreeze string: 0=off, 1=on, n=on (n * 40ms delayed)
CPP6/CPP7/CPP7.3CPP13
Available no no

CONF_DECODER_DELAY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bbedecoder linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet additional delay for decoder in milliseconds
Writet_dwordserviceSet additional delay for decoder in milliseconds
CPP6/CPP7/CPP7.3CPP13
Available no no

CONF_DECODER_LAYOUT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09a2output lineyesno
 DatatypeAccess LevelDescription
Readp_octetminimalFirst word (2bytes) is the layout, followed by the relative coder list in bytes (000101 for first monitor singleview, 000201020304 for quadview with chronological order)
Writep_octetuserFirst word (2bytes) is the layout, followed by the relative coder list in bytes (000101 for first monitor singleview, 000201020304 for quadview with chronological order)
CPP6/CPP7/CPP7.3CPP13
Available no no

Payload Structure

Layout
2 Bytes
Reserved
2 Bytes
Flags
1 Byte
YUV
3 Bytes
Entry [0]
(see description)
...
Entry [N]
(see description)

Layout

Single1
Quad2
Nine3
Sixteen4
MultiviewM

Flags

MaskNameDescription
Bit 00x01useRGBSignals RGB instead of YUV

YUV

Background YUV

Entry

1632
len
1 Byte
flags
1 Byte
xPosition
1 Byte
yPosition
1 Byte
width
1 Byte
height
1 Byte
inst
1 Byte
reserved
1 Byte
hPos
2 Bytes
vPos
2 Bytes
size
2 Bytes
reserved
2 Bytes
824

len

Entry len

flags

Bit 0= flip, bit 1=mirror, bit 2=allFrames

xPosition

X position in grid

yPosition

Y position in grid

width

Width in grid

height

Height in grid

inst

Instance

hPos

Optional ptz hpos (see CONF_ROI)

vPos

Optional ptz vpos (see CONF_ROI)

size

Optional ptz size(see CONF_ROI)

CONF_DECODER_LAYOUT_LIST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09a1output linenono
 DatatypeAccess LevelDescription
Readp_octetminimalList of supported layouts; payload is a list of n WORDs. One WORD per supported layout (0001=single view, 0002=quad view, 0004=sixteen, 0077=multi view)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available no no

CONF_DECODER_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0812Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalDecoder mode #ValueList: 0= low delay; 1= A/V sync;
Writet_octetserviceDecoder mode #ValueList: 0= low delay; 1= A/V sync;
CPP6/CPP7/CPP7.3CPP13
Available no no

CONF_DECODING_ERROR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bbfcoderyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available no no

Payload Structure

1632
ID
4 Bytes
Error Data
(see description)
824

Error Data


'Error Data' payload for 'ID' = '1'

H.264 video resolution exceeded decoder limit.
1632
Current Width
4 Bytes
Current Height
4 Bytes
Max Width
4 Bytes
Max Height
4 Bytes
824


'Error Data' payload for 'ID' = '2'

Unknown JPEG format.

CONF_LOGO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0939Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimal0 := show \logo.h263\" from toolkit 1:= no logo 2:= screen saver
Writet_octetservice0 := show \logo.h263\" from toolkit 1:= no logo 2:= screen saver
CPP6/CPP7/CPP7.3CPP13
Available no no

CONF_MONITOR_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x028aoutput linenono
 DatatypeAccess LevelDescription
Readp_unicodeminimalGet the video monitor name
Writep_unicodeserviceSet the video monitor name (max 32 unicode characters)
CPP6/CPP7/CPP7.3CPP13
Available no no

CONF_NBR_OF_VIDEO_OUT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01d7Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReturns the number of installed video outputs
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available no no

CONF_VIDEO_OUT_CROPPING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x070coutput linenono
 DatatypeAccess LevelDescription
Readt_octetminimalEnable cropping at video output if the aspect ratio of the incoming video doesn't fit
Writet_octetserviceEnable cropping at video output if the aspect ratio of the incoming video doesn't fit
CPP6/CPP7/CPP7.3CPP13
Available no no

CONF_VIDEO_OUT_DISPLAY_FORMAT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x070aoutput linenono
 DatatypeAccess LevelDescription
Readt_wordminimal(analog) display format:
Writet_wordservice(analog) display format.
CPP6/CPP7/CPP7.3CPP13
Available no no

Read Payload Structure

816
flags
1 Byte
flags2
1 Byte
412

flags

AUTO/ANAMORPH0
4:31
ANAMORPH 16:92

flags2

crop all other reserved (set to 0)2

Write Payload Structure

816
flags
1 Byte
flags2
1 Byte
412

flags

AUTO/ANAMORPH0
4:31
ANAMORPH 16:92

flags2

crop2

CONF_VIDEO_OUT_MONITOR_SPEC

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0708output linenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead active monitor specification of a video out line
Writep_octetserviceOverride default monitor timing spec
CPP6/CPP7/CPP7.3CPP13
Available no no

Payload Structure

1632
width_mm
2 Bytes
height_mm
2 Bytes
native_width
2 Bytes
native_height
2 Bytes
hSyncMin
4 Bytes
hSyncMax
4 Bytes
vSyncMin
4 Bytes
vSyncMax
4 Bytes
dotClockMax
4 Bytes
Reserved
20 Bits
Sync Flags
4 Bits
compSync
4 Bits
sepSync
4 Bits
Reserved...
32 Bytes
Reserved
[...]
Reserved
...
824

width_mm

Physical width of the actual display region in mm

height_mm

Physical height of the actual display region in mm

native_width

(maximum) width of the active display in pixel

native_height

(maximum) height of the active display in pixel

hSyncMin

Lowest supported scan line (hsync) frequency in Hz

hSyncMax

Highest supported scan line (hsync) frequency in Hz

vSyncMin

Lowest supported vertical refresh frequency in mHz

vSyncMax

Highest supported vertical refresh frequency in mHz

dotClockMax

Upper limit on the pixel clock

Sync Flags

MaskNameDescription
Bit 00x1SyncOnGreen1: Supported, 0: Not supported

compSync

Supported composite sync signals:
MaskNameDescription
Bit 30x8H_Low_V_Lowh-sync active low, v-sync active low
Bit 20x4H_High_V_Lowh-sync active high, v-sync active low
Bit 10x2H_Low_V_Highh-sync active low, v-sync active high
Bit 00x1H_High_V_Highh-sync active high, v-sync active high

sepSync

Supported separate sync signals:
MaskNameDescription
Bit 30x8H_Low_V_Lowh-sync active low, v-sync active low
Bit 20x4H_High_V_Lowh-sync active high, v-sync active low
Bit 10x2H_Low_V_Highh-sync active low, v-sync active high
Bit 00x1H_High_V_Highh-sync active high, v-sync active high

Note: In addition to the specified limits, default modes corresponding to the respective physical connector (e.g. standard VGA timing on a VGA connector, PAL/NTSC on BNC) are typically also assumed to be supported by the display device. The device will only allow video output timings (see CONF_VIDEO_OUT_CURRENT_SPEC, CONF_VIDEO_OUT_STANDARD) within these limits and may use the mentioned default timings as fallback values.

CONF_VIDEO_OUT_STANDARD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0700output linenono
 DatatypeAccess LevelDescription
Readt_octetminimalSelect video output standard: 0=AUTO; 1=PAL; 2=NTSC; 3, 4, 5, 6, 7, 8, 9, 10=VGA modes; 11=720p50; 12=720p60; 13=1080i50; 14=1080i60; 15=1080p25; 16=1080p30; 0xff=OFF
Writet_octetserviceSelect video output standard: 0=AUTO; 1=PAL; 2=NTSC; 3, 4, 5, 6, 7, 8, 9, 10=VGA modes; 11=720p50; 12=720p60; 13=1080i50; 14=1080i60; 15=1080p25; 16=1080p30; 0xff=OFF
CPP6/CPP7/CPP7.3CPP13
Available no no

CONF_VIDEO_OUT_STANDARD_FORCE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x070boutput linenono
 DatatypeAccess LevelDescription
Readt_octetminimalForce video output standard (e.g. for HDMI)
Writet_octetserviceForce video output standard (e.g. for HDMI)
CPP6/CPP7/CPP7.3CPP13
Available no no

CONF_DYNDNS_ENABLE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a59Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalRegistering at dyndns.com,
Writet_octetserviceRegistering at dyndns.com,
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
enable1
disable0

CONF_DYNDNS_FORCE_REGISTER_NOW

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a5cNonenono
 DatatypeAccess LevelDescription
Readt_octetminimalWriting forces registering at dyndns.com / reading checks if forcing is allowed (has not been done since bootup)
Writet_octetserviceWriting forces registering at dyndns.com / reading checks if forcing is allowed (has not been done since bootup)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DYNDNS_HOST_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a56Nonenono
 DatatypeAccess LevelDescription
Readp_stringalways_legacyRead the dyndns host name that is to be registered at dyndns.com
Writep_stringserviceWrite the dyndns host name that is to be registered at dyndns.com
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DYNDNS_LAST_REGISTER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a5bNonenono
 DatatypeAccess LevelDescription
Readp_octetminimalData of last successful registration at dyndns.com, 8 bytes, first DWORD: register time in secs since 2000, second DWORD: last registered IP
Writep_octetserviceData of last successful registration at dyndns.com, 8 bytes, first DWORD: register time in secs since 2000, second DWORD: last registered IP
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DYNDNS_MAIL_DEST_EMAIL_ADDR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b75Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimalRead destination email address to be used for for Dyndns status mail transmission
Writep_stringserviceSet destination email address to be used for for Dyndns status mail transmission
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DYNDNS_MAIL_SENDER_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b76Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimalRead senders name to be used for for Dyndns status mail transmission
Writep_stringserviceSet senders name to be used for for Dyndns status mail transmission
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DYNDNS_MAIL_SMTP_LOGIN

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b73Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimalRead login for SMTP server to be used for for Dyndns status mail transmission
Writep_stringserviceSet login for SMTP server to be used for for Dyndns status mail transmission
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DYNDNS_MAIL_SMTP_PASS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b74Nonenono
 DatatypeAccess LevelDescription
Readp_stringserviceRead password for SMTP server to be used for for Dyndns status mail transmission
Writep_stringserviceSet password for SMTP server to be used for for Dyndns status mail transmission
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DYNDNS_MAIL_SMTP_SRV_IP_STR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b72Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimalRead address of SMTP server to be used for for Dyndns status mail transmission
Writep_stringserviceSet address of SMTP server to be used for for Dyndns status mail transmission
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DYNDNS_MAIL_TEST_SEND

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b77Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_stringserviceSend test mail with current Dyndns status to configured destination
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DYNDNS_PASSWORD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a58Nonenono
 DatatypeAccess LevelDescription
Readp_stringserviceRead the password of account at dyndns.com
Writep_stringserviceWrite the password of account at dyndns.com
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DYNDNS_PROVIDER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b67Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalRead selected dyndns provider,
Writet_octetserviceWrite selected dyndns provider,
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
dyndns.org0
no-ip.com1
selfhost.de2

CONF_DYNDNS_STATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a5aNoneyesno
 DatatypeAccess LevelDescription
Readt_octetminimalState of registering at dyndns.com, see detailed description
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

State

The current state of the process of registering the device at dyndns.com
Values:
Success0successfully updated
ConfigUnchanged1updated with unchanged cfg
InvalidCreentials2dyndns username or password wrong
UnqualifiedDomain3not fully qualified domain name (e.g. not in form host.dyndns.org)
InvalidHostname4wrong host name for this dyndns user account
TooManyHosts5too many hosts in last update
HostnameBlocked6host name is blocked by dyndns for update abuse
NoAgent7no user agent submitted or http method not permitted
ErrorDns8dyndns server error dns related
ErrorMaintenance9dyndns server error maintenance related
ErrorMisconfigured252update not done due to misconfiguration
ErrorFatal253fatal error during update process
UpdateInProgress254update in process
SwitchedOff255switched off

CONF_DYNDNS_STATUS_MAIL_ONOFF

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b71Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalRead enable or disable state for sending status update emails on Dyndns status change,
Writet_octetserviceEnable or disable sending status update emails on Dyndns status change,
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
off0default
on1

CONF_DYNDNS_USER_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a57Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimalRead the user name of account at dyndns.com
Writep_stringserviceWrite the dyndns host name that is to be registered at dyndns.com
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_EAP_ENABLE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09ebNonenono
 DatatypeAccess LevelDescription
Readt_octetminimalRead the EAP/802.1x status
Writet_octetserviceWrite the EAP/802.1x status
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
off/don't do EAP/802.1x0
on/use EAP/802.1x1

CONF_EAP_GET_IDENTITY_LIST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c4dNonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command returns the identities used for EAP authentication. If a EAP client certificate is assigned, the command returns up to 3 identity strings. All strings are UTF-16 coded. The order of the list is the order the EAP client uses the identies. If one identity fails to authenticate the next one from the list is used.
  1. The alternative subject name from the certificate (tag 0x0001)
  2. The common name from the certificate subject (tag 0x0002)
  3. The EAP identity from config (tag 0x0003)
Each of these entries is optional and can be missing. The complete identity list is surrounded by the tag 0x0000. If no identity is configured or found, the tag 0x0004 is returned to indicate the empty list.

Payload Structure

List Entry [0]
...
List Entry [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0x8000: List Entry

The payload of tag list entry contains further tagged values described below. For each identity list one list entry tag is contained in the command payload. The highest bit (bit 15) is set to indicate that this tag will contain subtags.
1632
Length = 0x0004
2 Bytes
Tag = 0x8000
2 Bytes
824

Tag 1: Subject Alt Name

Contains the Alternative Subject Name from the EAP client certificate coded as UTF-16, no zero termination.
1632
Length
2 Bytes
Tag = 0x0001
2 Bytes
Subject Alt Name (p_unicode)
Length - 4 Bytes
824

Tag 2: Common Name

Contains the subject's Common Name from the EAP client certificate coded as UTF-16, no zero termination.
1632
Length
2 Bytes
Tag = 0x0002
2 Bytes
Common Name (p_unicode)
Length - 4 Bytes
824

Tag 3: Configured identity

Contains the identity from the device config (given by the user) coded as UTF-16, no zero termination. Tag may appear several times.
1632
Length
2 Bytes
Tag = 0x0003
2 Bytes
Configured identity (p_unicode)
Length - 4 Bytes
824

Tag 4: Empty List

No identity strings were found.
1632
Length = 0x0004
2 Bytes
Tag = 0x0004
2 Bytes
824

CONF_EAP_IDENTITY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09eaNonenono
 DatatypeAccess LevelDescription
Readp_stringminimalRead the EAP identity
Writep_stringserviceWrite the EAP identity
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_EAP_PASSWORD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09ecNonenono
 DatatypeAccess LevelDescription
Readp_stringminimalRead the EAP password
Writep_stringserviceWrite the EAP password
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ADAPT_ENC_PROFILE_BITRATES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ce1profile presetnono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetserviceAdapt bitrates of the camera
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_CODER_SPECIFIC_ENC_PROFILES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c9bNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimal0 means not supported on this platform; if supported all commands that address a encoder profile via the 'num' parameter have to send the abs video tx coder in the upper 8bits of the 'num';
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_CODER_VIDEO_OPERATION_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a9cabsolute coder instance, if zero - all coders which can handle the option are addressed internallynono
 DatatypeAccess LevelDescription
Readt_dwordalways_legacy
Writet_dwordservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Global device configuration mode

There are two different modes signaled via INDIVIDUAL_ENCODER_OPERATION_MODE_CONFIG @CONF_DEVICE_CAPABILITIES
1: invidual encoder configuration mode:
CONF_CODER_VIDEO_OPERATION_MODE, num parameter for a specific absolute coder has to be provided; global configration (numDesc = 0) is not supported
0: global encoder configuration mode :
CONF_CODER_VIDEO_OPERATION_MODE, num parameter supports only 0 as global option for all possible encoders

line dependent or global capabilitys

1: invidual encoder configuration mode:
use CONF_CODER_VIDEO_OPERATION_MODE_OPTIONS with NumDesc = absolute coder number to get the supported options at CONF_CODER_VIDEO_OPERATION_MODE
0: global encoder configuration mode :
use CONF_CODER_VIDEO_OPERATION_MODE_OPTIONS with NumDesc = 0 to get the supported global options at CONF_CODER_VIDEO_OPERATION_MODE

Options at CONF_CODER_VIDEO_OPERATION_MODE

Set one video coder (absolute coder number given by NumDesc) or all video coders, which can handle the option, depending on the supported configuration mode, to a video operation mode.
Allowed options can be queried by CONF_CODER_VIDEO_OPERATION_MODE_OPTIONS: 0 = jpeg, 1 = h263, 2 = h264, 3 = h265, 0x103 = h_265 without B-Frames.
Live connections will be dropped; Only applicable if recording isn't active and configured to off.

CONF_CODER_VIDEO_OPERATION_MODE_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ca3absolute coder instance, if 0 global options are providednono
 DatatypeAccess LevelDescription
Readp_octetminimalList of options (DWORDS) which can be written at CONF_CODER_VIDEO_OPERATION_MODE for a specific coder
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Num Descriptor Values

Global options are provided.0
Absolute coder instance.Any

Payload Structure

Option [0]
4 Bytes
...
Option [N]
4 Bytes

Option

Values:
jpeg0
h2631
h2642
h2653
h_265 without B-Frames0x0103h_265 without B-Frames delivers higher framerates

CONF_ENC_BASE_OPERATION_MODE_TYPE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c95video linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the type of base operation mode which is used on the device; 0: no base operation mode support, 1: base operation modes define a specific fixed resolution (except of SD mode),2: base operation modes specify an upper limit for the resolution + frame rate;
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ENC_CURRENT_RESOLUTION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b4bNonenono
 DatatypeAccess LevelDescription
Readp_octetminimalGet the current resolution (width + height) in pixel of an encoder (relative to line). First two bytes of payload (line+coder) need to be specified as request payload. 1st Byte: video line (needs to be set when reading); 2nd Byte: encoder (needs to be set when reading); 3.+4. Byte: width; 5.+6. Byte: height; 7.+8. Byte reserved
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ENC_DYN_SCENE_CTRL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cb6video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalByte[0] 0: disable / 1: enable; Byte[1]: 1: Stream 1 leads, 2: Stream 2 leads, 3: Stream 3 leads ... ; default 255 smart stream selection Byte[2-15] reserved; support can be queried via CONF_ENC_DYN_SCENE_CTRL_OPTIONS
Writep_octetserviceByte[0] 0: disable / 1: enable; Byte[1]: 0: Stream 0 leads, 1: Stream 1 leads, 2: Stream 2 leads ... ; default 255 smart stream selection Byte[2-15] reserved; support can be queried via CONF_ENC_DYN_SCENE_CTRL_OPTIONS
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_ENC_DYN_SCENE_CTRL_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cb7video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalByte[0] 1: CONF_ENC_DYN_SCENE_CTRL is supported 0 not supported; Byte[1] 0: one imagepipe per line 1: separated imagepipe per stream; stream count Byte[2-15] reserved
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_ENC_PROFILE_BASIC_PARAMS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b2eprofile presetnono
 DatatypeAccess LevelDescription
Readp_octetminimalGet basic parameters of an encoder profile preset. 1st DWORD: Resolution (parameter values see CONF_MPEG4_RESOLUTION); 2nd DWORD: Skip Ratio (values see CONF_MPEG4_FRAME_SKIP_RATIO); 3rd DWORD: Target bit rate (values see CONF_MPEG4_BANDWIDTH_KBPS); 4th DWORD: Maximum bit rate (values see CONF_MPEG4_BANDWIDTH_KBPS_SOFT_LIMIT)
Writep_octetserviceSet basic parameters of an encoder profile preset and apply them instantly. 1st DWORD: Resolution (parameter values see CONF_MPEG4_RESOLUTION); 2nd DWORD: Skip Ratio (values see CONF_MPEG4_FRAME_SKIP_RATIO); 3rd DWORD: Target bit rate (values see CONF_MPEG4_BANDWIDTH_KBPS); 4th DWORD: Maximum bit rate (values see CONF_MPEG4_BANDWIDTH_KBPS_SOFT_LIMIT)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ENC_PROFILE_PARAMS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cb9profile presetnono
 DatatypeAccess LevelDescription
Readp_octetminimalGet the parameters of an encoder profile preset. Reply is in tagged format, see detailed description
Writep_octetserviceSet one or more parameters of an encoder profile preset. Payload is in tagged format, see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

The format has a tagged structure. Each tagged entry consists of a length field, a tag ID and a payload. Allows to read/write all relevant parameters of an encoder profile preset like resolution, skip, bandwidth, etc... within one single command. In read direction all available tags are returned. In write direction just the parameters/tags which should be changed need to be sent. So either one tag, several tags or all available tags can be provided.
Each tag ID in this command represents the according RCP command which already exists to read/write one of the encoder profile parameters individually. I.e. this command combines several individual RCP commands within one command and provides the parameters as separate tags. The payload of the tag entries corresponds to the related RCP command. For detailed information please check the documentation of the according RCP command.

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0x0602: CONF_MPRG4_NAME

1632
Length
2 Bytes
Tag = 0x0602
2 Bytes
CONF_MPRG4_NAME ( p_octet )
(See Command)
824

Tag 0x0604: CONF_MPEG4_INTRA_FRAME_DISTANCE

1632
Length
2 Bytes
Tag = 0x0604
2 Bytes
CONF_MPEG4_INTRA_FRAME_DISTANCE ( p_octet )
(See Command)
824

Tag 0x0606: CONF_MPEG4_FRAME_SKIP_RATIO

1632
Length
2 Bytes
Tag = 0x0606
2 Bytes
CONF_MPEG4_FRAME_SKIP_RATIO ( p_octet )
(See Command)
824

Tag 0x0607: CONF_MPEG4_BANDWIDTH_KBPS

1632
Length
2 Bytes
Tag = 0x0607
2 Bytes
CONF_MPEG4_BANDWIDTH_KBPS ( p_octet )
(See Command)
824

Tag 0x0608: CONF_MPEG4_RESOLUTION

1632
Length
2 Bytes
Tag = 0x0608
2 Bytes
CONF_MPEG4_RESOLUTION ( p_octet )
(See Command)
824

Tag 0x0612: CONF_MPEG4_BANDWIDTH_KBPS_SOFT_LIMIT

1632
Length
2 Bytes
Tag = 0x0612
2 Bytes
CONF_MPEG4_BANDWIDTH_KBPS_SOFT_LIMIT ( p_octet )
(See Command)
824

Tag 0x0620: CONF_MPEG4_AVC_P_FRAME_QUANT_MIN

1632
Length
2 Bytes
Tag = 0x0620
2 Bytes
CONF_MPEG4_AVC_P_FRAME_QUANT_MIN ( p_octet )
(See Command)
824

Tag 0x0621: CONF_MPEG4_AVC_DELTA_IPQUANT

1632
Length
2 Bytes
Tag = 0x0621
2 Bytes
CONF_MPEG4_AVC_DELTA_IPQUANT ( p_octet )
(See Command)
824

Tag 0x0622: CONF_VIDEO_BITRATE_AVERAGING_PERIOD

1632
Length
2 Bytes
Tag = 0x0622
2 Bytes
CONF_VIDEO_BITRATE_AVERAGING_PERIOD ( p_octet )
(See Command)
824

Tag 0x0624: CONF_MPEG4_AVC_QUANT_ADJ_REGION_1

1632
Length
2 Bytes
Tag = 0x0624
2 Bytes
CONF_MPEG4_AVC_QUANT_ADJ_REGION_1 ( p_octet )
(See Command)
824

Tag 0x0625: CONF_MPEG4_AVC_QUANT_ADJ_REGION_2

1632
Length
2 Bytes
Tag = 0x0625
2 Bytes
CONF_MPEG4_AVC_QUANT_ADJ_REGION_2 ( p_octet )
(See Command)
824

Tag 0x0627: CONF_VIDEO_ENC_P_REF_LIST_SIZE

1632
Length
2 Bytes
Tag = 0x0627
2 Bytes
CONF_VIDEO_ENC_P_REF_LIST_SIZE ( p_octet )
(See Command)
824

Tag 0x0a94: CONF_MPEG4_AVC_GOP_STRUCTURE

1632
Length
2 Bytes
Tag = 0x0a94
2 Bytes
CONF_MPEG4_AVC_GOP_STRUCTURE ( p_octet )
(See Command)
824

Tag 0x0c37: CONF_MPEG4_AVC_BITRATE_OPTIMIZATION

1632
Length
2 Bytes
Tag = 0x0c37
2 Bytes
CONF_MPEG4_AVC_BITRATE_OPTIMIZATION ( p_octet )
(See Command)
824

CONF_ENC_PROFILE_RESOLUTION_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c99video linenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Obtain all allowed CONF_MPEG4_RESOLUTION IDs together with their according width and height.
The format has a tagged structure. Each tagged command consits of a length field a tag id + payload. Only read is supported. Allows to query information about the resolution IDs which can be used in an encoder profile, set via CONF_MPEG4_RESOLUTION.

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 1: Profile resolution options - for non-encoder-specific profiles

To check if the device supports encoder-specific profiles see CONF_CODER_SPECIFIC_ENC_PROFILES; For non-encoder specific profiles the resolutions are provided per line
1632
Length
2 Bytes
Tag = 0x0001
2 Bytes
Profile resolution options - for non-encoder-specific profiles (p_octet)
Length - 4 Bytes
824

Profile resolution options - for non-encoder-specific profiles

1632
id
4 Bytes
width
4 Bytes
height
4 Bytes
reserved
4 Bytes
824

id

Id supported by the CONF_MPEG4_RESOLUTION command

width

According width, 0 -> device automaticaly decides which resolution delivers the best performance in conjuction with the current encoder configuration

height

According height, 0 -> device automaticaly decides which resolution delivers the best performance in conjuction with the current encoder configuration

Tag 2: Profile resolution options - for encoder-specific profiles

To check if the device supports encoder-specific profiles see CONF_CODER_SPECIFIC_ENC_PROFILES; For encoder specific profiles the resolutions are provided per stream
1632
Length
2 Bytes
Tag = 0x0002
2 Bytes
Profile resolution options - for encoder-specific profiles (p_octet)
Length - 4 Bytes
824

Profile resolution options - for encoder-specific profiles

1632
stream
1 Byte
abs coder
1 Byte
reserved
2 Bytes
id
4 Bytes
width
4 Bytes
height
4 Bytes
reserved
4 Bytes
824

stream

Relative stream number for which the resolution is supported; starting with '1'

abs coder

The according absolute coder number for 'stream'

id

Id supported by the CONF_MPEG4_RESOLUTION command

width

According width, 0 -> device automaticaly decides which resolution delivers the best performance in conjuction with the current encoder configuration

height

According height, 0 -> device automaticaly decides which resolution delivers the best performance in conjuction with the current encoder configuration

CONF_EXT_ENCODER_BITRATE_STATISTICS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c85video codernono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

The command provides enhanced encoder bitrate statistics every record describes a table of bitrates. The table has a time base in sec typically sec, min, hour, days and weeks is provided. The first entry of the list can also only be active since a part of the cell e.g. cell time base is one day may this is only active since 300 sec. This time is signaled via lastCellIsActiveSinceSec
Definition of the global parameters, these parameters are vaild for all record entrys:

Payload Structure

1632
GlobalParameters.localTimeSecoundsSince2000
4 Bytes
GlobalParameters.UTCSecoundsSince2000
4 Bytes
GlobalParameters.Reserved...
24 Bytes
GlobalParameters.Reserved
[...]
GlobalParameters.Reserved
...
Record [0]
(see description)
...
Record [N]
(see description)
824

GlobalParameters.localTimeSecoundsSince2000

Local camera time which corresponds to the delivered entrys

GlobalParameters.UTCSecoundsSince2000

Utc time which corresponds to the delivered entrys

Record

1632
TimeBaseInSec
4 Bytes
LastCellIsActiveSinceSec
4 Bytes
ElementCount
4 Bytes
Reserved...
20 Bytes
Reserved
[...]
Reserved
...
Bitrate [0]
4 Bytes
...
Bitrate [ElementCount - 1]
4 Bytes
824

TimeBaseInSec

Base time for bitrate[1-n] base time of bitrate[0] is signaled via lastCellIsActiveSinceSec

LastCellIsActiveSinceSec

Bitrate[0] is active since lastCellIsActiveSinceSec

ElementCount

Number of elements

Bitrate

Example:
timeBaseInSec = 60, lastCellIsActiveSinceSec = 20 sec, elementCount = 256

CONF_GET_ENC_DYN_SCENE_CTRL_INFO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cb8video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalSee detailed description
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value without length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: Image pipe offset per line info

1632
Tag = 0x0000
2 Bytes
Length = 0x0008
2 Bytes
Image pipe offset per line info (p_octet)
8 Bytes
...
824

Image pipe offset per line info

1632
Reserved
1 Byte
Reserved
1 Byte
Reserved
1 Byte
Sharpness offset
1 Byte
Temporal noise filter offset
1 Byte
Spatial noise filter offset
1 Byte
Reserved
2 Bytes
824


Tag 1: Image pipe bitrate modifier info

1632
Tag = 0x0001
2 Bytes
Length = 0x0008
2 Bytes
Image pipe bitrate modifier info (p_octet)
8 Bytes
...
824

Image pipe bitrate modifier info

1632
Stream Id
2 Bytes
Reserved
2 Bytes
Bit rate modifier
4 Bytes
824

Stream Id

1...n associated stream

Bit rate modifier

Base unit 1/1000 e.g. 900 -> 0.9 bitrate after interaction of encoder with image pipe is reduced by up to 10 %

CONF_GET_VIDEO_ENC_P_REF_LIST_SIZE_LIMIT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0628Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalGet the largest value supported by VIDEO_ENC_P_REF_LIST_SIZE; 0 indicates that the value is not user-adjustible
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_GOP_STRUCTURE_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0befNonenono
 DatatypeAccess LevelDescription
Readp_octetminimalGet a list of options, which can be selected by CONF_MPEG4_AVC_GOP_STRUCTURE options are defined by MPEG4_AVC_GOP_STRUCTURE (Format: Byte 0 (len); Byte (1-len) supported options)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_H264_ENC_BASE_OP_MODE_CAPS_VERBOSE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c7cvideo linenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

Description

encBaseModeId: id used in CONF_VIDEO_H264_ENC_BASE_OPERATION_MODE height: video format height of base mode with encBaseModeId 0 -> height is not fixed width: video format width of base mode with encBaseModeId 0 -> width is not fixed copy: base mode is copy of an other stream sd: base mode is sd, base mode resolution is determined by encoder profile sdFramerateDependent: base mode resolution depends on frame rate crop: base mode is a croped view skip: base mode is frame rate reduced (applys a skip on the full frame rate) roi: base mode is a region of interest stream typically ptz is supported ptz: base mode allows ptz dualStream: base mode supports "dual stream" two encoders are used for the stream (e.g. 2 different ptz views are possible) exclusive: only used in combination with 'dualStream' property. Indicates if the additional stream of the 'dual stream' is for exclusive access (only one client at a time) or not.

Payload Structure

1632
stream count
4 Bytes
Descriptor 0 description
(see description)
...
Descriptor N description
(see description)
824

stream count

Array index in text

Descriptor description

Description for stream [0]
(see description)
...
Description for stream [stream count - 1]
(see description)

Description for stream

1632
encBaseModeId
4 Bytes
height
4 Bytes
width
4 Bytes
copy
1 Byte
sd
1 Byte
sdFramerateDependent
1 Byte
crop
1 Byte
skip
1 Byte
roi
1 Byte
ptz
1 Byte
dualStream
1 Byte
exclusive
1 Byte
reserved ...
15 Bytes
reserved
...
reserved
...
reserved
...
824

encBaseModeId

Id used in CONF_VIDEO_H264_ENC_BASE_OPERATION_MODE

height

Video format height of base mode with encBaseModeId 0 -> height is not fixed

width

video format width of base mode with encBaseModeId 0 -> width is not fixed

copy

Base mode is copy of another stream
No0
Yes1

sd

Base mode is sd, base mode resolution is determined by encoder profile
No0
Yes1

sdFramerateDependent

Base mode resolution depends on frame rate
No0
Yes1

crop

Base mode is a croped view
No0
Yes1

skip

Base mode is frame rate reduced (applys a skip on the full frame rate)
No0
Yes1

roi

Base mode is a region of interest stream typically ptz is supported
No0
Yes1

ptz

Base mode allows ptz
No0
Yes1

dualStream

Base mode supports 'dual stream' two encoders are used for the stream (e.g. 2 different ptz views are possible)
No0
Yes1

exclusive

only used in combination with 'dualStream' property. Indicates if the additional stream of the 'dual stream' is for exclusive access (only one client at a time) or not.
No0
Yes1

CONF_JPEG

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x099evideo linenono
 DatatypeAccess LevelDescription
Readp_octetlive
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Reads a jpeg that can be configured by the optional input payload.

Request Payload Structure (optional)

1632
Jpeg resolution
1 Byte
Jpeg quality
1 Byte
reserved...
14 Bytes
reserved
...
reserved
...
reserved
...
borderY
1 Byte
borderU
1 Byte
borderV
1 Byte
borderWidth
1 Byte
824

Jpeg resolution

QCIF0
CIF1
CIF2
4CIF3

Jpeg quality

Quality0 - 1000 is best.

Response Payload Structure

JPEG picture
N Bytes

CONF_JPEG_BANDWIDTH_KBPS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x061dprofile presetnono
 DatatypeAccess LevelDescription
Readt_dwordminimalGets the jpeg bandwidth (in KBPS) of selected preset
Writet_dwordserviceSets the jpeg bandwidth (in KBPS) of selected preset
CPP6/CPP7/CPP7.3CPP13
Available no yes

CONF_JPEG_STREAM_FRAME_RATES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c81video linenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

Description

Only read is supported.

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 1: Global frame rates, independent from the resolution

A proposed list of max. frame rates to be used as selection for the max. frame rate of the JPEG stream.
1632
Length
2 Bytes
Tag = 0x0001
2 Bytes
Global frame rates, independent from the resolution (p_octet)
Length - 4 Bytes
824

Global frame rates, independent from the resolution

Frame Rate [0]
4 Bytes
...
Frame Rate [N]
4 Bytes

Frame Rate

Frame rate in mHz

CONF_JPEG_STREAM_SETUP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ad5video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalReturns the configuration of the JPEG encoder; resolution defined by the id may vary please use CONF_JPEG_STREAM_SETUP_OPTIONS_VERBOSE to query which ids are supported and there properties DWORD 1:Id, DWORD 2: fps in mHz, DWORD 3: quality (0=auto, 1(worst)..100(best))
Writep_octetserviceWrite the configuration of the JPEG encoder; resolution defined by the id may vary please use CONF_JPEG_STREAM_SETUP_OPTIONS_VERBOSE to query which ids are supported DWORD 1: Id, DWORD 2: fps in mHz, DWORD 3: quality (0=auto, 1(worst)..100(best))
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_JPEG_STREAM_SETUP_OPTIONS_VERBOSE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c00video linenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

Description

Allows to query information about the ids and the allowed ids configurable via CONF_JPEG_STREAM_SETUP. Only read is supported.

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: Setup id with width and height

Map CONF_JPEG_STREAM_SETUP ids to jpeg width and height.
1632
Length = 0x0014
2 Bytes
Tag = 0x0000
2 Bytes
Setup id with width and height (p_octet)
16 Bytes
...
...
...
824

Setup id with width and height

1632
Id
4 Bytes
Width
4 Bytes
Height
4 Bytes
Reserved
4 Bytes
824

Id

Id supported in CONF_JPEG_STREAM_SETUP command

Width

Jpeg width, 0 -> device automaticaly decides which resolution delivers the best performance in conjuction with the current encoder configuration

Height

Jpeg height, 0 -> device automaticaly decides which resolution delivers the best performance in conjuction with the current encoder configuration

CONF_MAX_NBR_OF_ENC_STREAMS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x029eNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalNumber of encoder streams
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MPEG4_AVC_BITRATE_OPTIMIZATION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c37profile presetnono
 DatatypeAccess LevelDescription
Readp_octetminimalByte[0] 0 = OFF, 1 = normally no visible effects (tuned for low amount of artefacts), 2 = very low amount of visable artefacts 3 = no artefacts in most scenes (best balance between bitrate and quality), 4 = some visible artefacts, but very low bitrate 5 = artefacts in many scenes but very low bitrate, Byte [1-7] reserved; if activated (byte 1 not 0) CONF_MPEG4_BANDWIDTH_KBPS will only have an influence if CONF_VIDEO_BITRATE_AVERAGING_PERIOD is not 0 otherwise device will be in a varibale bitrate mode (only a max bitrate can be configured via CONF_MPEG4_BANDWIDTH_KBPS_SOFT_LIMIT
Writep_octetserviceByte[0] 0 = OFF, 1 = normally no visible effects (tuned for low amount of artefacts), 2 = very low amount of visable artefacts 3 = no artefacts in most scenes (best balance between bitrate and quality), 4 = some visible artefacts, but very low bitrate 5 = artefacts in many scenes but very low bitrate, Byte [1-7] reserved; if activated (byte 1 not 0) CONF_MPEG4_BANDWIDTH_KBPS will only have an influence if CONF_VIDEO_BITRATE_AVERAGING_PERIOD is not 0 otherwise device will be in a varibale bitrate mode (only a max bitrate can be configured via CONF_MPEG4_BANDWIDTH_KBPS_SOFT_LIMIT
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_MPEG4_AVC_BITRATE_OPTIMIZATION_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c49Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalByte[0] basicSupport; Byte[1] reserved; Byte[2-7] reserved
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_MPEG4_AVC_CABAC

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0aa6profile presetnono
 DatatypeAccess LevelDescription
Readt_octetminimalGets cabac for the selected preset ( 0=off; 1=on )
Writet_octetserviceSets cabac for the selected preset ( 0=off; 1=on )
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_MPEG4_AVC_CHROMA_QUANT_OFF

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x061aprofile presetnono
 DatatypeAccess LevelDescription
Readt_intminimalGet the chroma quantisation offset (-12...12)
Writet_intserviceSet the chroma quantisation offset (-12...12)
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_MPEG4_AVC_CODING_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a45profile presetnono
 DatatypeAccess LevelDescription
Readt_octetminimalGets the coding mode for the selected preset ( 0=frame; 1=field; 2=makro block adaptive ff; 3=picture adaptive ff )
Writet_octetserviceSets the coding mode for the selected preset ( 0=frame; 1=field; 2=makro block adaptive ff; 3=picture adaptive ff )
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_MPEG4_AVC_DEBLOCKING_ALPHA

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0618profile presetnono
 DatatypeAccess LevelDescription
Readt_intminimalGet the alpha H264 deblocking coefficent (-5...5)
Writet_intserviceSet the alpha H264 deblocking coefficent (-5...5)
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_MPEG4_AVC_DEBLOCKING_BETA

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0619profile presetnono
 DatatypeAccess LevelDescription
Readt_intminimalGet the beta H264 deblocking coefficent (-5...5)
Writet_intserviceSet the beta H264 deblocking coefficent (-5...5)
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_MPEG4_AVC_DEBLOCKING_ENABLE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0617profile presetnono
 DatatypeAccess LevelDescription
Readf_flagminimalEnables/disables the H264 deblocking filter
Writef_flagserviceEnables/disables the H264 deblocking filter
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_MPEG4_AVC_DELTA_IPQUANT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0621profile presetnono
 DatatypeAccess LevelDescription
Readt_intminimalGets the difference (-10..+10) between I and P-Frame quantization for selected preset
Writet_intserviceSets the difference (-10..+10) between I- and P-Frame quantization for selected preset
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_MPEG4_AVC_GOP_STRUCTURE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a94profile presetnono
 DatatypeAccess LevelDescription
Readt_octetminimalGets the GOP structure of the selected preset ( 0=IP; 1=IBP; 2=IBBP; 3=IBBRBP )
Writet_octetserviceSets the GOP structure of the selected preset ( 0=IP; 1=IBP; 2=IBBP; 3=IBBRBP )
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MPEG4_AVC_I_FRAME_QUANT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0615profile presetnono
 DatatypeAccess LevelDescription
Readt_dwordminimalObsolete
Writet_dwordserviceObsolete
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MPEG4_AVC_P_FRAME_QUANT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0616profile presetnono
 DatatypeAccess LevelDescription
Readt_dwordminimalObsolete
Writet_dwordserviceObsolete
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MPEG4_AVC_P_FRAME_QUANT_MIN

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0620profile presetnono
 DatatypeAccess LevelDescription
Readt_dwordminimalGets the P frame min quantizer (9-51, 0=auto) for selected preset
Writet_dwordserviceSets the P frame min quantizer (0=auto, 9...51) for selected preset, sessionID to address session based video params
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_MPEG4_AVC_QUANT_ADJ_REGION_1

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0624profile presetnono
 DatatypeAccess LevelDescription
Readt_intminimalGets the quality difference (H.264 QP Units; -51..+51) between normal and background regions; use CONF_ROI_OPTIONS to query options if only positiv offsets are allowed offsets between 0..+51 can be read
Writet_intserviceSets the quality difference (H.264 QP units; -51..+51) between normal and background regions; use CONF_ROI_OPTIONS to query options if only positiv offsets are allowed offsets between 0..+51 can be set
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_MPEG4_AVC_QUANT_ADJ_REGION_2

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0625profile presetnono
 DatatypeAccess LevelDescription
Readt_intminimalGets the quality difference (H.264 QP Units; -51..+51) between normal and background regions; use CONF_ROI_OPTIONS to query options if only positiv offsets are allowed offsets between 0..+51 can be read
Writet_intserviceSets the quality difference (H.264 QP units; -51..+51) between normal and background regions; use CONF_ROI_OPTIONS to query options if only positiv offsets are allowed offsets between 0..+51 can be set
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_MPEG4_BANDWIDTH_KBPS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0607profile presetnono
 DatatypeAccess LevelDescription
Readt_dwordminimalReads the bandwidth of selected preset
Writet_dwordserviceSets the bandwidth of selected preset, sessionID to address session based video params
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MPEG4_BANDWIDTH_KBPS_SOFT_LIMIT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0612profile presetnono
 DatatypeAccess LevelDescription
Readt_dwordminimalReads the bandwidth soft limit (in KBPS) of selected preset
Writet_dwordserviceSets the bandwith soft limit (in KBPS) of selected preset, sessionID to address session based video params
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MPEG4_CURRENT_PARAMS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0600video codernono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the current profile preset number for the specified encoder (NumDesc)
Writet_dwordserviceSets the video encoder (given by NumDesc) to a preset (payload). If recording is running and the iframe distance is 0, the iframe distance of the preset will be patched to a recording suitable value. For transcoder: if the request contains the replay session id and no num descriptor, the device will assign the preset to the transcoder of the replay session. If the preset is empty the transcoder will be disabled. For exclusive (dual) stream instances: if the request contains the session id and the num descriptor is 0, the previously configured preset with its session based (non-permanent) modifications will be applied to the encoder.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MPEG4_CURRENT_PARAMS_REL_CODER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x061cNonenono
 DatatypeAccess LevelDescription
Readp_octetminimalGet the current profile preset number for the specified encoder (relative to line).
Writep_octetserviceSets the video encoder (relative to line) to a preset.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
Line
1 Byte
Coder
1 Byte
Coding Capabilities
2 Bytes
Preset
1 Byte
Reserved
3 Bytes
824

Line

Video input line

Coder

Relative coder number (relative to line)

Coding Capabilities

Coding capabilities of encoder. All coding capabilities are one or multiple of:
MaskName
Bit 60x0040H.264
Bit 30x0008Mpeg 2
Bit 20x0004Mpeg 4
Bit 10x0002H.263

Preset

Number of the encoder preset profile

Note: When reading the preset profile, the according byte in the payload will be set.

CONF_MPEG4_CURRENT_PARAMS_TRANSCODER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b4ehas to be zeronono
 DatatypeAccess LevelDescription
Readt_dwordminimalSessionID references the replay session; 0:= no transcoding; 1-8: video preset of the transcoder
Writet_dworduserAssign preset n (1, ..N ) to transcoder session; preset 0 means no transcoding
CPP6/CPP7/CPP7.3CPP13
Available no yes

CONF_MPEG4_DEFAULTS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0601profile presetnono
 DatatypeAccess LevelDescription
Read--Unavailable
Writef_flagserviceSet the selected preset params to the default values (if the recording is running and the preset in on the recording schedule, the preset will keep its old iframe distance)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MPEG4_FRAME_SKIP_RATIO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0606profile presetnono
 DatatypeAccess LevelDescription
Readt_dwordminimalGets Mpeg4 frame skip ratio (1=all frames, ...)
Writet_dwordserviceSet Mpeg4 frame skip ratio (1=all frames, ...), sessionID to address session based video params
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MPEG4_INTRA_FRAME_DISTANCE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0604profile presetnono
 DatatypeAccess LevelDescription
Readt_dwordminimalGets the intra frame distance of selected preset
Writet_dwordserviceSets the intra frame distance of selected preset (not supported while recording is running or configured to active and the preset is used on the recording schedule), sessionID to address session based video params
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MPEG4_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0602profile presetnono
 DatatypeAccess LevelDescription
Readp_stringminimalGet the name of the preset given by the Numeric Descriptor
Writep_stringserviceSets the name of the preset number given by the Numeric Descriptor
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MPEG4_PARAMS_MAX_NUM

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0614Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalNumber of MPEG4 presets
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MPEG4_RESOLUTION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0608profile presetnono
 DatatypeAccess LevelDescription
Readt_dwordminimalGets the spatial resolution for selected preset. Possible resolutions depending on the device platform (CPPx). They can be queried with the command CONF_ENC_PROFILE_RESOLUTION_OPTIONS. Info: for devices where CONF_ENC_BASE_OPERATION_MODE_TYPE is '1' this command only applies for SD resolutions (0=QCIF, 1=CIF, 2=2CIF, 3=4CIF, 4=(1/2 D1), 5=(2/3D1), 6=QVGA, 7=VGA, 8=WD144 (256x144), 9=WD288 (512x288), 10=WD432 (768x432), 18=WD1 (960H) ). HD resolutions then need to be set via CONF_VIDEO_H264_ENC_BASE_OPERATION_MODE. For devices where CONF_ENC_BASE_OPERATION_MODE_TYPE is '0' (no base operation modes) or '2' (upper limit) then this command also applies for HD resolutions. The t_dword payload is then as follows: upper 2 Bytes of DWORD = width, lower 2 Bytes = height. (e.g. 1280x720 -> t_dword = 0x050002D0 = 83886800dec); HD resolutions on transcoder: 720 (up to 720x1280), 1080 (up to 1080x1920), 2160(up to 2160x3840); SessionID to address session based video params
Writet_dwordserviceSets the spatial resolution for selected preset. Possible resolutions depending on the device platform (CPPx). They can be queried with the command CONF_ENC_PROFILE_RESOLUTION_OPTIONS. Info: for devices where CONF_ENC_BASE_OPERATION_MODE_TYPE is '1' this command only applies for SD resolutions (0=QCIF, 1=CIF, 2=2CIF, 3=4CIF, 4=(1/2 D1), 5=(2/3D1), 6=QVGA, 7=VGA, 8=WD144 (256x144), 9=WD288 (512x288), 10=WD432 (768x432), 18=WD1 (960H) ). HD resolutions then need to be set via CONF_VIDEO_H264_ENC_BASE_OPERATION_MODE. For devices where CONF_ENC_BASE_OPERATION_MODE_TYPE is '0' (no base operation modes) or '2' (upper limit) then this command also applies for HD resolutions. The t_dword payload is then as follows: upper 2 Bytes of DWORD = width, lower 2 Bytes = height. (e.g. 1280x720 -> t_dword = 0x050002D0 = 83886800dec); HD resolutions on transcoder: 720 (up to 720x1280), 1080 (up to 1080x1920), 2160(up to 2160x3840); SessionID to address session based video params
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NBR_OF_ENC_STREAMS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cb1video linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the number of supported individual h26x streams
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STREAM_PRIORITY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cb0video linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the h26x stream (1..n) which should have high priority. Set to 0 if all encoder should run free
Writet_dwordserviceSelect the h26x streams (1..n) which should have high priority, by setting the enc inst bit (1<<inst). Set to 0 if all encoder should run free. Currently only one instance is supported
CPP6/CPP7/CPP7.3CPP13
Available no yes

CONF_TCP_RATE_CONTROL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b4cNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalEnables/disables tcp rate control
Writet_dwordserviceEnables/disables tcp rate control
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VCA_SHAPES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bc8video codernono
 DatatypeAccess LevelDescription
Readt_dwordliveSessionID references the transcoder session; enable vca shape overlay
Writet_dwordliveSessionID references the transcoder session; enable vca shape overlay;
CPP6/CPP7/CPP7.3CPP13
Available no yes

CONF_VID_H264_ENC_BASE_OPERATION_MODE_CAPS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0af9video linenono
 DatatypeAccess LevelDescription
Readp_octetalways_legacyGet the base operation mode capability list of the h.264 encoders per line. The list contains all possible mode combinations for all streams.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

Payload Structure

1632
Number of streams
4 Bytes
Mode Combination [0]
(see description)
...
Mode Combination [N]
(see description)
824

Mode Combination

Mode [0]
4 Bytes
...
Mode [Number of streams - 1]
4 Bytes

Mode

See 'Stream Operation Mode' for details.

CONF_VIDEO_BITRATE_AVERAGING_PERIOD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0622profile presetnono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the (maximum) period in seconds for bitrate averaging (0=no bitrate averaging)
Writet_dwordserviceSets the (maximum) period in seconds for bitrate averaging (0=no bitrate averaging)
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_VIDEO_CURRENT_PARAMS_CODNBR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0982video codernono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the current profile preset number for the specified encoder (NumDesc)
Writet_dwordserviceSets the video encoder (given by NumDesc) to a preset (payload). If recording is running and the iframe distance is 0, the iframe distance of the preset will be patched to a recording suitable value. For transcoder: if the request contains the replay session id and no num descriptor, the device will assign the preset to the transcoder of the replay session. If the preset is empty the transcoder will be disabled. For exclusive (dual) stream instances: if the request contains the session id and the num descriptor is 0, the previously configured preset with its session based (non-permanent) modifications will be applied to the encoder.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIDEO_ENC_P_REF_LIST_SIZE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0627profile presetnono
 DatatypeAccess LevelDescription
Readt_octetminimalMax. number of reference frames used by a P-slices in H.26x streams with 0 = unrestricted
Writet_octetserviceMax. number of reference frames used by a P-slice in H.26x streams with 0 = unrestricted. Query largest support value via GET_P_REF_LIST_SIZE_LIMIT
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_VIDEO_ENC_PRIO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a81Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReads the video encoder priorisation 0:= no, 1:=h26x, 2:=jpeg, 3:=h26x_2nd stream
Writet_dwordserviceWrites the video encoder priorisation 0:=no, 1:=h26x, 2:=jpeg, 3:=h26x_2nd stream
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIDEO_ENC_TEMP_QUANT_ADJ

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0626Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalGet temporary encoding quality adjustment see
Writep_octetliveTemporary encoding quality adjustmens see
CPP6/CPP7/CPP7.3CPP13
Available yes no

Description

The encoder, to which the quality adjustment is to be applied is identified via the RCP session.
The area, in which the qualtiy is adjusted is characterized by the position of the edges of a rectangle within a virtual coordinate system with a nominal range of [0..+32768]x[0..32768] for the complete encoded picture (0=top/left edge, 32768=bottom/right edge). The actually adjusted area will be enlarged as needed by the encoder.
Note, that the payload may contaion only first octet, if enable is set to 0

Payload Structure

1632
En
1 Bit
DeltaQp
7 Bits
Reserved
3 Bytes
Left
2 Bytes
Right
2 Bytes
Top
2 Bytes
Bottom
2 Bytes
824

En

Setup temporary quality adjustments:
Enable0
Disable1

DeltaQp

Intended quality adjustment in H.264 QP units. If enable is 0, this field must also be set to 0. Otherwise the allowed range is -51..51 with negative values indicating higher quality and positive ones lower quality.

Left

Relative position of the left edge of the adjustment region within the complete encoded image

Right

Relative position of the right edge of the adjustment region within the complete encoded image

Top

Relative position of the upper edge of the adjustment region within the complete encoded image

Bottom

Relative position of the lower edge of the adjustment region within the complete encoded image

CONF_VIDEO_ENCODER_ENCODED_BYTES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0af6video codernono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet encoded bytes (32 Bit Counter) since bootup. Only supported for h.264 and Jpeg encoder.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIDEO_ENCODER_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09dfvideo codernono
 DatatypeAccess LevelDescription
Readp_octetminimalGet encoder status (8bytes) 4 (high order) bytes 10*frames per sec, 4 (low order) bytes KBPS
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIDEO_ENCODER_STATUS_EXT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a90video codernono
 DatatypeAccess LevelDescription
Readp_octetminimalGet encoder status (20 bytes) 1st DWORD: 10*frames per sec, 2nd DWORD: KBPS, 3rd DWORD: grab frame fps*10, 4th lost frame fps*10 due to overload, 5th DWORD skipped frame fps*10 due to configured enc interval in profile or STREAM_PRIORITY
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIDEO_H264_ENC_BASE_OPERATION_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ad3video linenono
 DatatypeAccess LevelDescription
Readp_octetalways_legacyGet the base operation mode of the h.264 encoders per line. First DWORD stream 1, second DWORD stream 2...
Writep_octetserviceSet up the base operation mode of the h.264 encoders per line. First DWORD stream 1, second DWORD stream 2...
CPP6/CPP7/CPP7.3CPP13
Available yes no

Payload Structure

Stream Operation Mode [0]
4 Bytes
...
Stream Operation Mode [N]
4 Bytes

Stream Operation Mode

Copy other stream0
compatibility mode to H2.64 BP+ (bitrate limited)1
h.264 MP SD3
h.264 MP 720p4
h.264 MP 720p full frame rate5
h.264 MP 1080p6
h264 MP 720p skip=37
h264 MP 720p skip=48
h264 MP 1080p skip=79
h.264 MP SD ROI PTZ10
h.264 MP HD 2592x194411
h.264 MP 400x720 upright (cropped)12
h.264 MP SD 4CIF resolution 4:3 format (cropped)13
h.264 MP SD dual stream with independent ROI PTZ14
h.264 MP HD 1280x960 4:3 (cropped)15
h.264 MP HD 1440x108016
h.264 MP HD 1280x102417
h.264 MP 576x1024 upright (cropped)18
h.264 MP HD 720p (cropped)19
h.264 MP HD 2704x203220
h.264 MP HD 2992x168021
h.264 MP HD 3840x216022
h.264 MP HD 4000x300023
h.264 MP HD 3584x201624
h.264 MP HD 800x60025
h.264 MP HD 1024x76826
h.264 MP HD 1280x96027
h.264 MP HD 1600x120028
h.264 MP HD 3648x216029
h.264 MP HD 2640x264030
h.264 MP HD 1792x179231
h.264 MP HD 1024x102432
h.264 MP HD 800x80033
h.264 MP HD 1536x86434
h.264 MP HD 2560x144035
h.264 MP HD 2560x96036
H264_FEDC_MODE_MP_3648x108037
h.264 MP HD 1824x1080 with ROI PTZ38
h.264 MP HD 1824x54039
h.264 MP HD 1280x48040
h.264 MP HD 1536x153641
h.264 MP HD 800x800 with ROI PTZ42
h.264 MP 768x76843
h.264 MP 768x28844
h.264 MP 2048x115245
h.264 MP 2688x80046
h.264 MP 672x20047
h.264 MP 608x36048
h.264 MP 640x24049
h.264 MP 768x57650
h.264 MP 3584x50451
h.264 MP SD VGA (cropped)52
h.264 2992x1680 @ SKIP 353
h.264 2704x2032 @ SKIP 354
h.264 2640x2640 @ SKIP 655
h.264 1792x1792 @ SKIP 256
h.264 1824x108057
h.264 1216x72058
h.264 1280x1024 5:4 (cropped)59
h.264 2048x153660
h.264 1920x1080 @ SKIP 261
h.264 1920x1080 (cropped)62
h.264 3072x172863
h.264 3072x1728 @ SKIP 364
h.264 2688x151265
h.264 2304x129666
h.264 2688x1512 @ SKIP 267
h.264 2304x1296 @ SKIP 268
SD dual stream69
3264x184070
3264x1840 @ SKIP 371
dual stream 480x480 + 1024x102472
dual stream 1280x720 + 640x36073
1920x1080 @ SKIP2 + 176x12074
3840x2160 @ SKIP675
3840x2160 @ SKIP376
3584x2016 @ SKIP877
3264_1840 @ SKIP378
3072_1728 @ SKIP279
3584x2016 @ SKIP680
3584x2016 @ SKIP281
1920x1440_CROP82
2720x153083
2720x1530 @ SKIP284
1440x144085
2688x152086
2688x1520 @ SKIP287
1920x1080 @ SKIP488
1920x1080 @ SKIP389
1280x720 @ SKIP290
1536x864 @ SKIP291

Note: Query supported resolutions via CONF_H264_ENC_BASE_OP_MODE_CAPS_VERBOSE. bit 24 signals that width and height need to be exchanged (picture is rotated by 90 degrees). Ids are not needed in this case! Do not use ids directly!They are only intended for legacy code!

CONF_VIDEO_H264_ENC_CONFIG

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ad2video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalGet the profile for each h.264 encoder per line for each time. DWORD 1: Mode, 0=live mode, 1-10: schedule number; DWORD 2: profile for first stream, DWORD 3: profile for second stream...
Writep_octetserviceSet the profile for each h.264 encoder per line for each time. DWORD 1: Mode, 0=live mode, 1-10: schedule number; DWORD 2: profile for first stream, DWORD 3: profile for second stream... (if recording on that cam isn't running, the setting for live mode(0) will take place immediately); Notice: the number of expected streams can be queried with CONF_NBR_OF_ENC_STREAMS
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIDEO_H264_ENC_CONFIG_BULK

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ad9video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalGet the profiles for each h.264 encoder per line for each time; this request will supply all Modes 0-10 in one reply; returns: DWORD 1: NbrOfStreamsPerMode, remaining payload 11x payload of VIDEO_H264_ENC_CONFIG
Writep_octetserviceSet the profiles for each h.264 encoder per line for each time; this request must supply all Modes 0-10 in one request; DWORD 1: NbrOfStreamsPerMode, remaining payload 11x payload of VIDEO_H264_ENC_CONFIG; Notice: the expected 'NbrOfStreamsPerMode' can be queried with CONF_NBR_OF_ENC_STREAMS
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIDEO_H264_ENC_CONFIG_DEFAULTS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b4dvideo linenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writet_dwordserviceSet the default profile for each h.264 encoder per line for each time. Payload: Mode, 0=live mode, 1-10: recording schedule number. (if recording on that cam isn't running, the setting for live mode(0) will take place imidiatly)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIDEO_H264_ENC_CURRENT_PROFILE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ad4video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalReturns the current active profile number for the h.264 streams (first DWORD: stream 1, second DWORD: stream 2...)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIDEO_QUALITY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a82profile presetnono
 DatatypeAccess LevelDescription
Readt_dwordminimalGets the video quality for a selected preset (0=auto, 1(worst)..100(best))
Writet_dwordserviceSets the video quality for a selected preset (0=auto, 1(worst)..100(best))
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIDEO_STATIC_SCENE_REGIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0623video linenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes no

Description

The actual payload of this command consist of a sequence of variable length records, each specifying a region and a corresponding category to be used during encoding. The region is characterized by a mandatory rectangle and optionally a shape. Up to 8 regions and in total up to 96 32-bit data for shapes are supported. Depending on the firmware version the shape data may be ignored. In this case the rectangle is used instead. This may also happen, if the restrictions indicated below are violated by the shape data.
Normally the "background" category is used for unimportant parts of the scene and the "object" category for important ones. For this two categories, specific quality adjustments can be defined via the encoding profile of every encoder. An area not belonging to any region is implicitly assigned to the "Default" category with no specific adjustments. The forth category is currently assigned via the VIDEO_ENC_TEMP_QUANT_ADJ command separately for each encoder.
Note, that by using overlapping regions, more than one category can be assigned to some areas of the scene. In this case the category with the best quality adjustment for an encoder takes preceedence. Therefore it may be usefull to assign the "Default" category explicitly to some regions.

Payload Structure

Region Specification [0]
(see description)
...
Region Specification [N]
(see description)

Region Specification

1632
Preset id
1 Byte
Exclude
1 Byte
Reserved
5 Bits
Category
2 Bits
Shrink
1 Bit
N
1 Byte
Left Edge
2 Bytes
Right Edge
2 Bytes
Upper Edge
2 Bytes
Lower Edge
2 Bytes
Vertex [0]
(see description)
...
Vertex [N]
(see description)
824

Preset id

Only valid for a Dome

Exclude

This bitmask indicates for which encoders this area shall NOT be used. The bits are allocated according to the the relative coder number starting with the rightmost bit (LSB) for the relative coder number 1.
MaskName
Bit 10x02Coder 2
Bit 00x01Coder 1

Category

By default the complete scene is assumed to belong to the 'default' category.
Default0
Background1
Objects2
Reserved3

Shrink

Depending on the encoding resolution, the quality may only be adjusted on quite a coarse grid. This bit allows to specifiy whether the required rounding shall be performed by shrinking or enlarging the specified region.
Enlarge as needed0
Shrink as needed1

N

This field indicates the number of 32-bit items defining the optional shape of this region and therefore also specifies indirectly the total size of this record (12 + N * 4 octets). For compatibility with future version of this RCP PLUS specification, clients SHOULD set this item to 0 for any region which they define or modify, but keep it and the corresponding shape data unmodified for regions they don't change.

Vertex

32-bit item used for shape data. The item describes a vertex of a polygonal shape boundary in the order as included in the record (the closing edge between vertex N and vertex 1 is added automatically). The vertices should all be different and the edges between them should have no point in common beside the vertex between them. (If the resulting area inside the polygon is not single connected the behaviour is undefined)
1632
X
2 Bytes
Y
2 Bytes
824

X

X Coordinate0 - 32678

Y

Y Coordinate0 - 32678

Coordinate System

The rectangles and the future shapes are specified via a virtual coordinate system with a nominal range of 0..32768 x 0..32768 for the usable sensor area (or incoming video). All rectangles and shapes should be completely inside this area, otherwise, the exact behaviour is undefined.

CONF_APPLY_NETWORK_SETTINGS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cbeNonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writet_dwordserviceApply the configured network settings at runtime
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DHCP_COMPLIANCY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0adaNonenono
 DatatypeAccess LevelDescription
Readt_octetminimalMode of dhcp operation,
Writet_octetserviceMode of dhcp operation,
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
use of last-assigned ip during non-available dhcp server allowed0
no fallback ips used, more compliant to rfc 21311

CONF_DHCP_OFF

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x00aeNonenono
 DatatypeAccess LevelDescription
Readf_flagminimalRead the DHCP OFF state
Writef_flagserviceDisable DHCP ip configuration
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DHCP_ON

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x00adNonenono
 DatatypeAccess LevelDescription
Readf_flagminimalRead the DHCP ON state
Writef_flagserviceEnable DHCP ip configuration
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DHCP_STABLE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ac8Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalRead whether DHCP machine is in possession of an IP
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DHCP_VAL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x00afNonenono
 DatatypeAccess LevelDescription
Readt_octetminimalRead the DHCP state.
Writet_octetserviceSet DHCP ip configuration value.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
Off0
On1
On, but do not kick mechanism now2write only
On with APIPA-Fallback3

CONF_DIFF_SERV_POST_ALARM_TIME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b3bNonenono
 DatatypeAccess LevelDescription
Readt_wordminimalGet post alarm time (in seconds) for DiffServ alarm values
Writet_wordserviceSet post alarm time (in seconds) for DiffServ alarm values. (Only if DiffServ alarm values are specified and therefore DiffServ values are changed during an alarm).
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DIFF_SERV_VAL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b27yes 1..6 Audio/Video/Control/Alarm-Audio/Alarm-Video/Alarm-Controlnono
 DatatypeAccess LevelDescription
Readt_octetminimalGets the DiffServ value for media sockets
Writet_octetserviceSets the DiffServ value for media sockets
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DNS_SERVER_IP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a1fnum = 0 or 1 primary dns, num = 2 secondary dnsnono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet dns server ip/ipv6
Writet_dwordserviceSet dns server ip/ipv6
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DNS_SERVER_IP_STRING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b49num = 0 or 1 primary dns, num = 2 secondary dnsnono
 DatatypeAccess LevelDescription
Readp_stringminimalGet dns server ip/ipv6
Writep_stringserviceSet dns server ip/ipv6
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ETH_LINK

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x092dyes; num=0 is the mode of the external state on single ethernet port units or the internal link mode on multiple ethernet port units; num>=1 is the mode of the corresponding port on multiple ethenet port units (SFP Fiber port is always the last counted port). On module based units, only the master module is capable of setting the external port modes.nono
 DatatypeAccess LevelDescription
Readt_octetminimal(half duplex=HD, full duplex =FD) 0=auto, 1=10MbitHD, 2=10MbitFD, 3=100MbitHD, 4=100MbitFD
Writet_octetservice(half duplex=HD, full duplex =FD) 0=auto, 1=10MbitHD, 2=10MbitFD, 3=100MbitHD, 4=100MbitFD, 5=1000MbitFD, 8=10GbitFD
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ETH_LINK_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a24yes; num=0 returns the status of the external state on single ethernet port units or the internal link state on multiple ethernet port units; num>=1 returns the state of the corresponding port on multiple ethenet port units (SFP Fiber port is always the last counted port). On module based units, only the master module is capable of returning the external states.nono
 DatatypeAccess LevelDescription
Readt_octetminimal(half duplex=HD, full duplex =FD) 0=No link, 1=10MbitHD, 2=10MbitFD, 3=100MbitHD, 4=100MbitFD, 5=1000MbitFD, 7=Wlan; 8=10GbitFD
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ETH_LINK_TROUGHPUT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a80Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalLower 16 bit: downlink KBPS, upper 16 bit: uplink KBPS
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ETH_TX_PKT_BURST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0afeNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalEth tx pkts per burst (0:=no limitation)
Writet_dwordserviceEth tx pkts per burst (0:=no limitation)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_GATEWAY_IP_STR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x007fNonenono
 DatatypeAccess LevelDescription
Readp_stringminimalRead the gateway IP using string notation (xxx.xxx.xxx.xxx)
Writep_stringserviceSet the gateway IP using string notation (xxx.xxx.xxx.xxx)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_GATEWAY_IP_V6_STRING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b11Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimalIPv6 Gateway IP string or domain name
Writep_stringserviceIPv6 Gateway IP string or domain name
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_IP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x00010, 1 primary ip, 2 auto ip (read direction)nono
 DatatypeAccess LevelDescription
Readt_dwordalways_legacyRead the unit's IP address
Writet_dwordserviceSet the unit's IP address
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_IP_STR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x007c0, 1 primary ip, 2 auto ip (read direction)nono
 DatatypeAccess LevelDescription
Readp_stringalways_legacyRead the unit's IP address using string notation (xxx.xxx.xxx.xxx)
Writep_stringserviceSet the unit's IP address using string notation (xxx.xxx.xxx.xxx)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_IP_V6_PREFIX_LEN

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b05Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalGet unit's IPv6 address prefix length (Manually assigned IP)
Writet_octetserviceSet unit's IPv6 address prefix length (Manually assigned IP)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_IP_V6_STR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b06Nonenono
 DatatypeAccess LevelDescription
Readp_stringalways_legacyManually assigned IPv6 String or domain name
Writep_stringserviceManually assigned IPv6 String or domain name
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_IPV4_ENABLE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cf0Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalEnable or disable IPv4 support,
Writet_dwordserviceEnable or disable IPv4 support,
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
IPv4 enabled1
IPv4 disabled0

CONF_IPV4_FILTER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b3cNonenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead the list of 2 allowed pairs of one IPv4 address and a corresponding IPv4 mask (addresses and masks in network byte order; filled completely with 0.0.0.0 entries, if disabled; in case only first entry is used, the second is filled with 0.0.0.0 / 0.0.0.0, order is address1, mask1, address2, mask2)
Writep_octetserviceWrite the list of 2 allowed pairs of one IPv4 address and a corresponding IPv4 mask (addresses and masks in network byte order; filled completely with 0.0.0.0 entries, if disabled; in case only first entry is used, the second is filled with 0.0.0.0 / 0.0.0.0, order is address1, mask1, address2, mask2)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MAC_ADDRESS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x00bcNetwork Adapternono
 DatatypeAccess LevelDescription
Readp_octetalways_legacyRead out the systems MAC address.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Num Descriptor Values

Ethernet1
WLAN2
Bluetooth3

CONF_MTU_SIZE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b3dNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalMtu size (0 means default)
Writet_dwordserviceMtu size (0 means default)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NBR_OF_EXT_ETH_COPPER_PORTS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a29Nonenono
 DatatypeAccess LevelDescription
Readt_dwordalways_legacyReturns the number of external copper ethernet ports of a device
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NBR_OF_EXT_ETH_FIBER_PORTS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a2aNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReturns the number of external fiber ethernet ports of a device
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NBR_OF_EXT_ETH_PORTS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a28Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReturns the number of external ethernet ports of a device
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_OBEY_ICMP_REDICRECTS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c13Nonenono
 DatatypeAccess LevelDescription
Readt_octetserviceObey or ignore ICMP redirect messages,
Writet_octetserviceObey or ignore ICMP redirect messages,
CPP6/CPP7/CPP7.3CPP13
Available yes no

Values:
ignore0
obey1

CONF_PORT_FC_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0abbnum=0 is the flow control mode of the external state on single ethernet port units or the internal fc mode on multiple ethernet port units; num>=1 is the fc mode of the corresponding port on multiple ethenet port units (SFP Fiber port is always the last counted port).nono
 DatatypeAccess LevelDescription
Readt_octetminimalOn module based units, only the master module is capable of setting the external port fc modes.
Writet_octetserviceOn module based units, only the master module is capable of setting the external port fc modes.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
off0
on1

CONF_SND_MSS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a02Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalMax tcp send mss for all connections
Writet_dwordserviceSet the global tcp send mss; use this to reduce the max. send segment size for all tcp connections; higher settings than default will only be used by iSCSI connections (0 means default)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STATELESS_IP_V6_PREFIX_LEN

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bc6Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalGet unit's IPv6 address prefix length (Automatic assigned IP)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STATELESS_IP_V6_STR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bc7Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimalIPv6 String (Automatic assigned IP)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SUBNET

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x00020, 1 primary ip subnet, 2 auto ip subnet (read direction)nono
 DatatypeAccess LevelDescription
Readt_dwordminimalRead the unit's subnet
Writet_dwordserviceSet the unit's subnet
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SUBNET_STR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x007d0, 1 primary ip subnet, 2 auto ip subnet (read direction)nono
 DatatypeAccess LevelDescription
Readp_stringminimalRead the subnet mask using string notation (xxx.xxx.xxx.xxx)
Writep_stringserviceSet the subnet mask using string notation (xxx.xxx.xxx.xxx)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_UPLINK_KBPS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c03Nonenono
 DatatypeAccess LevelDescription
Readt_dwordserviceUplink bandwidth of system in kbps
Writet_dwordserviceUplink bandwidth of system in kbps
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_EXTERNAL_CLIENT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c9esee detailed descriptionnono
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available no yes

Description

This command lists information about all running external clients or about a specific external client.

Num Descriptor Values

To get the information of a specific external client the num parameter is set to:
Video App1
User App2
All Running Clients0xFFFF

Response Payload Structure

Client Info [0]
(see description)
...
Client Info [N]
(see description)

Client Info

1632
Line
1 Byte
Instance
1 Byte
Length
1 Byte
Client Name...
Length Bytes
Client Name
...
824

Line

Video line (1...n), in case of user app this is 0

Instance

Client instance. In case of Video app this may be 0 or 1, in case of client app this may be 1 to 16.

Length

Length of client name

Client Name

Client name

CONF_EXTERNAL_CLIENTS_LIST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c9dvideo linenono
 DatatypeAccess LevelDescription
Readp_octetminimalGets a list of installed external clients
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available no yes

CONF_GB28181

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ba2Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
Enable
1 Byte
H264 Stream Cfg
1 Byte
Reserved
2 Bytes
Heart beat time out
4 Bytes
Registration time out
4 Bytes
Server port
2 Bytes
Device Port
2 Bytes
Server URL...
64 Bytes
Server URL
[...]
Server URL
...
Server ID...
21 Bytes
Server ID
[...]
Server ID
...
Server ID
...
Device ID...
21 Bytes
Device ID
[...]
Device ID
...
Device ID
...
Alarm Device ID...
21 Bytes
Alarm Device ID
[...]
Alarm Device ID
...
Alarm Device ID
...
Password...
128 Bytes
Password
[...]
Password
...
Password
...
Reserved...
753 Bytes
Reserved
[...]
Reserved
...
Reserved
...
824

Enable

1: Enable GB28181 client 0: Disable

H264 Stream Cfg

If 1, use h264 elementary stream (including startcodes) directly packed into RTP packets (non-RFC conform, but needed for GB28181 test tool)

Heart beat time out

Define heart beat time out in seconds max. one day min. 5 seconds

Registration time out

Define registration time out in seconds max. one day min. 5 seconds

Server port

Currently 5060 or 5511 can be used (server and device port must be equivalent server port is also used for device port)

Device Port

Currently 5060 or 5511 can be used (server and device port must be equivalent server port is also used for device port)

Server URL

URL of GB28181 server

CONF_HTTP_LIVE_AUDIO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b46Nonenono
 DatatypeAccess LevelDescription
Readf_flagminimalAudio enabled for HTTP Live Streaming yes or no
Writef_flagserviceAudio enabled for HTTP Live Streaming yes or no
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HTTP_LIVE_BITRATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b45Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the bitrate in kBit the HTTP Live Streaming has allocated buffers for
Writet_dwordserviceSet the bitrate in kBit the HTTP Live Streaming should allocate buffers for (max bitrate given in init gen)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ALLOW_BASIC_HTTP_AUTH_ON_NON_SSL_SOCK

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cd8Nonenono
 DatatypeAccess LevelDescription
Readf_flagminimalAllow basic http authentication on non SSL sockets,#ValueList: 0= not allowed (default); 1= allowed
Writef_flagserviceAllow basic http authentication on non SSL sockets, #ValueList: 0= not allowed (default), 1= allowed
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HSTS_ENABLED

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c07Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalRead the HSTS state (0=OFF, 1=ON 2=on + Http port redirect to HTTPS when HTTP port is also set to 0
Writet_dwordserviceSet the HSTS state (0=OFF, 1=ON 2=on + Http port redirect to HTTPS when HTTP port is also set to 0
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_LOCAL_HTTP_PORT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0954yes (write direction),nono
 DatatypeAccess LevelDescription
Readt_wordalways_legacyGet the local HTTP port for browser access
Writet_wordserviceSet the local HTTP port for browser access (NOTE: it is not allowed to turn off both, HTTP and HTTPS, at the same time)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Num Descriptor Values

apply with APPLY_NETWORK_SETTINGS0x8000

CONF_LOCAL_HTTPS_PORT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a0eyes (write direction),nono
 DatatypeAccess LevelDescription
Readt_wordalways_legacyGet the local HTTPS port for browser access
Writet_wordserviceSet the local HTTPS port for browser access (NOTE: it is not allowed to turn off both, HTTP and HTTPS, at the same time)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Num Descriptor Values

apply with APPLY_NETWORK_SETTINGS0x8000

CONF_PROTECT_HTTP_COOKIE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cdcNonenono
 DatatypeAccess LevelDescription
Readf_flagminimalProtect default session cookie with HttpOnly (legacy behaviour)
Writef_flagserviceProtect default session cookie with HttpOnly (legacy behaviour)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
Disabled0
Enabled1

CONF_ILLUMINATION_INTENSITY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c22illuminator nbrnono
 DatatypeAccess LevelDescription
Readt_wordminimalGet the white-light illumination intensity; range is from 1-100; 1->darkest; 100->brightest
Writet_worduserSet the white-light illumination intensity; range is from 1-100; 1->darkest; 100->brightest; (notice: to switch the illuminator on/off, use command CONF_ILLUMINATOR_STATE)
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_ILLUMINATOR_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c1cNonenono
 DatatypeAccess LevelDescription
Readp_octetminimalReturns the number of installed white-light illuminators and their capabilities; 1st WORD: number of illuminators; 2nd WORD: capabilities of first illuminator, 3rd WORD: capabilities of second illuminator..., etc.; Available capabilities: bit0=dimmable (by CONF_ILLUMINATION_INTENSITY)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_ILLUMINATOR_STATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c1dilluminator nbryesno
 DatatypeAccess LevelDescription
Readt_dwordminimalGet state of white-light illumination; 0=illuminator off; 1=illuminator on
Writet_dworduserSwitch white-light illumination; 0=illuminator off; 1=illuminator on; (notice: to change the illumination intensity, see command CONF_ILLUMINATION_INTENSITY)
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_NBR_OF_PIR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c1aNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReturns the number of installed PIR sensors
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_PIR_ALARM_STATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c1bPIR sensor nbryesno
 DatatypeAccess LevelDescription
Readf_flagminimal0=PIR alarm off; 1=PIR alarm on
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_PIR_SENSITIVITY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bbbNonenono
 DatatypeAccess LevelDescription
Readt_octetuserSensitivity of PIR sensor
Writet_octetserviceSensitivity of PIR sensor
CPP6/CPP7/CPP7.3CPP13
Available yes no

Read Payload Structure

Values:
disabled0
lowest1
highest10

Write Payload Structure

Values:
PIR disabled0
lowest1
highest10

CONF_PIR_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bbcNonenono
 DatatypeAccess LevelDescription
Readt_dworduserObsolete - Raw ADC value of the PIR sensor.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_RELAIS_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0109relay outputnono
 DatatypeAccess LevelDescription
Readp_unicodeminimalRead the description for a relay output
Writep_unicodeserviceSet the description for a relay output (32 unicode characters
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_RELAIS_SWITCH

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0094relay outputnono
 DatatypeAccess LevelDescription
Readf_flagminimalReturn the current relay state
Writef_flaguserToggle the logical level of a relay output (0->1; 1->0) (notice: a flag payload value is not necessary, i.e. ignored)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_RELAY_OUTPUT_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bdbrelay outputnono
 DatatypeAccess LevelDescription
Readt_octetminimal1: output pin is \normally open\"; 2: output pin is \"normally closed\"; (Notice: the relay output mode can also be set via the Alarm Task Script Language)
Writet_octetservice1: set output pin to \normally open\"; 2: set output pin to \"normally closed\"; (Notice: the relay output mode can also be set via the Alarm Task Script Language; should not be used in parallel)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_RELAY_OUTPUT_STATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01c1relay outputyesno
 DatatypeAccess LevelDescription
Readf_flagminimalGet the logical level of an relay output
Writef_flaguserSet the logical level of an relay output
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ISCSI_AUTH

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ab0Nonenono
 DatatypeAccess LevelDescription
Readp_octetuser
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

Authentication Descriptor
(see description)

Authentication Descriptor

This Authentication Descriptor can, but must not, repeat up to 2 times on camera and encoder devies an up to 16 times on Windows Generic variants.
1632
Target Address...
(see description)
Target Address
...
Type
4 Bytes
Params...
(see description)
Params
[...]
Params
...
824

Target Address

The address of the iscsi target. If this field is set to zero, it is used as the default entry for authenticaion.
1632
Target ID
4 Bytes
Target Index
1 Byte
Flags
1 Byte
Target Port
2 Bytes
824

Target ID

The target id of the lun (may be the ipv4 address for older versions or with default target resolve configuration, see CONF_TARGET_ID_RESOLVE_RULES). If this field is set to -1 (0xFFFFFFFF), this descriptor is used for all remaining targets, for that no explicit descriptor is provided (default).

Target Index

The target index of the iscsi target. If this field is set to -1 (0xFF), this descriptor is used for all remaining iscsi targets with the same ip, for that no explicit descriptor is provided (default).

Flags

MaskName
Bit 10x02Not For Target
Bit 00x01HTTP Tunnel

Target Port

The port of the iscsi target. If this value is set to zero, the port configured in CONF_ISCSI_PORT is used.
Note: For an iscsi session, all authentication descriptors are searched for the target address. If this address is found, the authentication information is used. If that descriptor is not found, but the array contains a descriptor with the same ip and the target index set to default (0xFF), the information in this record is used instead. If that descriptor is not found, but the array contains an descriptor with the ip address set to default (0xFFFFFFFF), the information in this record is used instead. If that descriptor is not found, no authentication will be performed for that iscsi session.

Type

None0
CHAP1
SMB (not supported)2

Params

This field with the the two entries for user and password only need to be in place when "Type" is set to "CHAP" (1).
Username and password is presented as ASCII string with fixed length of 64 characters. Not used trailing characters must be filled with null character.

'Params' payload for 'Type' = 'CHAP'

1632
User...
64 Bytes
User
[...]
User
...
Password...
64 Bytes
Password
[...]
Password
...
824

User

The user name that is used for authentication.

Password

The password that is used for authentication (CHAP: N = 64 Bytes, SMB: N = 32 Bytes).
Note: On a read command, the characters of the password are replaced by the '*'. On a write command, the password is only stored, if not all characters equal the '*' sign. Otherwise the old stored value is retained.

CONF_ISCSI_DATARATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b00Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalKBit/s the ISCSI should transmit as maximum (0:=no limit send all data at once)
Writet_dwordserviceKBit/s the ISCSI should transmit as maximum (0:=no limit send all data at once)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ISCSI_DISCOVERY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09ccNonenono
 DatatypeAccess LevelDescription
Readp_octetminimalPerforms a discovery and returns the result in an XML-like string; parameter ip (DWORD) and reserved (64 char) structure in p_octet
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ISCSI_DISV_CACHE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c30Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead out discovery cache entry.
Writep_octetserviceWrite one discovery cache entry.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command can be used to read and write individual entries of the discovery cache.
The command supports reading and writing cache entries.

Read Payload Structure

1632
Filter tags [0]
...
Filter tags [3]
824
On input you can provide one, two or all three of the following tags. With these tags you can define filters for the cache entries returned. The payload of the response is sequence of Cache Entry structure as described below.
If provide no parameters (no tag) the command returns all known IP of all target indexes and LUNs in the discovery cache. Be aware, that the output could get too long for the output buffer and there might be missing entries.
If you provide only the IP address tag, the command will return all targets and all known LUNs and the paths for the given IP address in the discovery cache.
If you provide both IP address and a target index tag, the command will return all known LUNs and all the paths for this target in the discovery cache.
If you only provide a LUN number, the paths for this LUN in all discovery cache entries will be returned. There is a reserved LUN number 0xFFFFFFFF which will always return only the first LUN of an entry in the discovery cache. If you provide this reserved LUN number without an IP address, you will get all entries in the discovery cache with only the paths for the first LUN. This is a good way to get the IP and target index of all known targets in the discovery cache without overflowing the output buffer.
If you provide an IP address, a target index and a LUN number the command will return only the paths for this target and the given LUN.
If there is no cache entry available which matches the given filter, the command returns the 'Tag 0x0003: No entry available' tag. In case of this command the tag always return 0x00000000 as error code (no error).

Filter tags

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0x0001: IP Addresses Tag

Can have the length 0x0008 (IPv4) or 0x0014 (IPv6).
1632
Length
2 Bytes
Tag = 0x0001
2 Bytes
IP Addresses Tag (p_octet)
Length - 4 Bytes
824

Tag 0x0002: LUN Number Tag

must have the length 0x0008 and must contain a 32bit LUN number in network order.
1632
Length
2 Bytes
Tag = 0x0002
2 Bytes
LUN Number Tag (p_octet)
Length - 4 Bytes
824

Tag 0x000b: Target Index Tag

Must have the length 0x0008 and must contain a target index in network byte order.
1632
Length
2 Bytes
Tag = 0x000b
2 Bytes
Target Index Tag (p_octet)
Length - 4 Bytes
824

Tag 0x0003: Response: No entry found tag

If this tag is present as first tag, no other tags will be present in the message. It tells the receiver, that there are no matching discovery cache entries.
The tag is followed by an error code (4 byte in network order). If the error code is 0x00000000 (ISCSI_ERR_NONE) there was simply no existing cache entry available. For CONF_ISCSI_DISV_CACHE command the error code is always 0x00000000. For CONF_ISCSI_MP_DISCOVERY any of the defined iSCSI error codes can occur.
1632
Length = 0x0008
2 Bytes
Tag = 0x0003
2 Bytes
Response: No entry found tag (t_dword)
4 Bytes
824
Error Codes:
ISCSI_ERR_NONE0x00
ISCSI_ERR_CONNECT0x31
ISCSI_ERR_INV_LUN0x33
ISCSI_ERR_LOGIN0x34
ISCSI_ERR_INV_TARG_IDX0x35
ISCSI_ERR_PWD0x36
ISCSI_ERR_PROTO0x37
ISCSI_ERR_TARG_NOT_REACH0x38
ISCSI_ERR_NO_MEM0x3a
ISCSI_ERR_SESS_CREATE0x3b
ISCSI_ERR_INV_PARAMS0x3c
ISCSI_ERR_SESS_NOT_FOUND0x3d
ISCSI_ERR_DISCONN0x3e
ISCSI_ERR_TIMEOUT0x3f
ISCSI_ERR_TARGET_NOT_SUPP0x40
ISCSI_ERR_TARGET_SESSION_LIMIT0x41
ISCSI_ERR_CMD_NOT_SUPP0x42
ISCSI_ERR_TARGET_NOT_FOUND0x43
ISCSI_ERR_SOCK0x5f
ISCSI_ERR_TARG_PM0x6f
ISCSI_SOCK_CLOSED0x7f
ISCSI_ERR_TCP_CONN_RST0x8f
ISCSI_ERR_INTR_NOT_SUPP0x9f
ISCSI_ERR_IP_ZERO0xa0
ISCSI_ERR_OUT_OF_RES0xa1


Response/Write Payload Structure

CacheEntry
In write direction the command expects the Cache Entry encoding described below. This encoded cache entry is written to the discovery cache. Cache entries which are written with this command are stored in persistent cache and are persistent over a device reset.
In write direction this command must carry a valid external instance bitmask which has to be unequal 0. If it is 0 the command is returned with an error.
To delete such an entry you must provide the Cache Entry encoding with only the target IP, target index and external instance tag. The entry is cleared, when all external instance bits are cleared.

Every cache entry is started with a surrounding start tag (0x8009) followed by the IP for which this entry was generated (tag 0x000a). After this IP entry the target index is indicated to resolve a unique target on this IP (tag 0x000b). A surrounding tag (0x8008) marks one LUN entry which has several path entries, each surrounded by a 0x8004 tag.
If there is no entry the 'Tag 0x0003: No entry available' tag is returned."

CacheEntry

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0x8009: Cache Entry Tag

Each cache entry start with this tag and is followed by an target IP tag. If there is no multipathing information, there will be no following 'LUN entry tags'.
1632
Length = 0x0004
2 Bytes
Tag = 0x8009
2 Bytes
824

Tag 0x000a: Target IP Tag

Original or main IP address of the iSCSI target. Through this IP the session was initially created. If the length field is 8 the payload is a IPv4 address (network byte order). If the length field is 20 the payload contains IPv6.
1632
Length = 0x0008
2 Bytes
Tag = 0x000a
2 Bytes
Target IP Tag (t_dword)
4 Bytes
824

Tag 0x000b: Target Index Tag

Target index on the main IP. This is the index of the target if there are multiple targets available on one IP.
1632
Length = 0x0008
2 Bytes
Tag = 0x000b
2 Bytes
Target Index Tag (t_dword)
4 Bytes
824

Tag 0x000c: IQN String Tag

IQN string of the target. This is the unique name identifier the target returns at discovery and which is needed at login state to address the target. In multipathing this IQN is used for all connection IP addresses.
1632
Length
2 Bytes
Tag = 0x000c
2 Bytes
IQN String Tag (p_string)
Length - 4 Bytes
824

Tag 0x000d: External Instance Bitfield Tag

The external instance is a 32 bit wide bitfield. It is used to identify who has set this cache entry. In VRM environment the first VRM may set bit 0. The secondary VRM will use bit 1. With this bitfield it is tracked, who wrote this cache entry. If one instance deletes the cache entry, only the bit used by this instance is cleared. If any other bits are still set, the entry is not deleted. When this bitfield becomes zero at a delete request, the entry is really deleted. ATTENTION: This field must always have a value other then 0. Writing a cache entry from outside world with external instance equal 0 will cause a write error.
1632
Length = 0x0008
2 Bytes
Tag = 0x000d
2 Bytes
External Instance Bitfield Tag (t_dword)
4 Bytes
824

Tag 0x8008: LUN Entry Group Tag

Surrounding tag for one LUN entry. This tag will have several 'Path entry' tags as subtags.
1632
Length = 0x0004
2 Bytes
Tag = 0x8008
2 Bytes
824
Encloses tags: Path Entry Group Tag

Tag 0x8004: Path Entry Group Tag

Tag which marks one path entry. The first path entry will always be the path on the main path.
1632
Length = 0x0004
2 Bytes
Tag = 0x8004
2 Bytes
824
Encloses tags: Path IP Tag, LUN Number Tag, Flags Tag
Enclosed by tag: LUN Entry Group Tag

Tag 0x0005: Path IP Tag

IP address of this path. If the length field is 8 the payload is a IPv4 address (network byte order). If the length field is 20 the payload contains IPv6.
1632
Length = 0x0008
2 Bytes
Tag = 0x0005
2 Bytes
Path IP Tag (t_dword)
4 Bytes
824
Enclosed by tag: Path Entry Group Tag

Tag 0x0006: LUN Number Tag

The number of the LUN the LUN will have on this path. The first entry in the paths list marks the LUN number on the main path.
1632
Length = 0x0008
2 Bytes
Tag = 0x0006
2 Bytes
LUN Number Tag (t_dword)
4 Bytes
824
Enclosed by tag: Path Entry Group Tag

Tag 0x0007: Flags Tag

1632
Length = 0x0008
2 Bytes
Tag = 0x0007
2 Bytes
Flags Tag (t_dword)
4 Bytes
824
Enclosed by tag: Path Entry Group Tag
MaskNameDescription
Bit 30x00000008Fallback PathThis path is not optimal and should only be used as backup path in case of all preferred paths fail.
Bit 20x00000004Active PathThis path is an active path (but maybe not preferred if bit 1 is cleared).
Bit 10x00000002Preferred PathThis path is a prefered path
Bit 00x00000001TPGS SupportedTarget supports TPGS (Target Portal Group Support) on this path. Necessary for proper multipathing support.

CONF_ISCSI_FLUSH_DISVCACHE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c19Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetserviceFlush the ISCSI discovery cache. See detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command flushes one entry in iSCSI discovery cache. Providing an IP and target index is mandatory.

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0x01: IPv4 or IPv6 Address

1632
Length
2 Bytes
Tag = 0x01
2 Bytes
IPv4 or IPv6 Address (p_octet)
Length - 4 Bytes
824

IPv4 or IPv6 Address


Payload for 'Length' = '8'

1632
IPv4
4 Bytes
824


Payload for 'Length' = '20'

1632
IPv6...
16 Bytes
IPv6
...
IPv6
...
IPv6
...
824


Tag 0x02: IPv6 Address

The payload contains an IPv6 address in network byte order which is to be flushed in the discovery cache.
1632
Length = 0x0014
2 Bytes
Tag = 0x02
2 Bytes
IPv6...
16 Bytes
IPv6
...
IPv6
...
IPv6
...
824


Tag 0x03: Target Index

The payload of this tag contains a target index. If there are multiple targets on one IP you can flush the cache for individual target entries by passing the target index in network byte order.
1632
Length = 0x0008
2 Bytes
Tag = 0x03
2 Bytes
Target Index (t_dword)
4 Bytes
824

CONF_ISCSI_INITIATOR_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09d8Nonenono
 DatatypeAccess LevelDescription
Readp_stringalways_legacyReturns the used initiator name; only applicable when iSCSI is connected
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ISCSI_INITIATOR_NAME_EXTENTION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09d9Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimalReturns the used initiator name extention; used for identification only
Writep_stringserviceSet the used initiator name extention; used for identification only
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ISCSI_IP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09aaNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalDeprecated in fw > 4.00
Writet_dwordserviceDeprecated in fw > 4.00
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ISCSI_LOCK_OVERRIDE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09d2Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimal
Writep_stringservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

Target
N Bytes

Format of Payload String

Target_Id:Target_Idx:Lun
Max. Length in StringLimitsDescription
Target_IdIPv4 address of the target as string like x.x.x.x
Target_Idx >= 1Target index of the target at the given IP
Lun >= 1Number of the LUN the lock should be overwritten

Note: The datatype of this command was FLAG and changed to STRING with fw 2.50. The target_id needs o be resolved by rules configured by CONF_TARGET_ID_RESOLVE_RULES. In older version the target id was the ipv4 address, which is now the default rule for target id resolving. The string format of the target id is the same as of the ipv4.

CONF_ISCSI_LOCK_RELEASE_ON_LEAVE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09e4Nonenono
 DatatypeAccess LevelDescription
Readf_flagminimalReturns wheather the next iSCSI logout should use the release action
Writef_flagserviceAdvices the iSCSI initiator to release a lock at the target lun when the storage medium transitions away from iSCSI; this option clears its value after a successful release
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ISCSI_LOWERDATARATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b47Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalKBit/s the ISCSI lower Limit for the Iscsi Data rate Throttling
Writet_dwordserviceKBit/s the ISCSI lower Limit for the Iscsi Data rate Throttling
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ISCSI_LUN

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09acNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalDeprecated in fw > 4.00
Writet_dwordserviceDeprecated in fw > 4.00
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ISCSI_MNI

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0aa0Noneyesno
 DatatypeAccess LevelDescription
Readp_octetminimalMonitor iscsi targets.
Writep_octetserviceMonitor iscsi targets.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Use this command to monitor iscsi targets.
If you write this command, all the targets of the request packets are added/delete to the current monitoring list.
If you read this command, you will get the description of all currently monitored iscsi targets in the response packet.
Every time the status of a monitored target changes, a message is sent out with the current status of this target.

Request Payload Structure

Target Descriptor [0]
(see description)
...
Target Descriptor [N]
(see description)

Target Descriptor

1632
Target Address...
8 Bytes
Target Address
...
Action
1 Byte
Reserved...
19 Bytes
Reserved
...
Reserved
...
Reserved
...
Reserved
...
824

Action

Delete0x00
Add0x01

Response Payload Structure

Target Descriptor [0]
(see description)
...
Target Descriptor [N]
(see description)

Target Descriptor

1632
Target Address...
8 Bytes
Target Address
...
Action
1 Byte
Status
1 Byte
Error
1 Byte
Reserved
1 Byte
Starttime
4 Bytes
Session Status
1 Byte
Session Error
1 Byte
Reconnects
2 Bytes
Reserved
4 Bytes
Uptime
4 Bytes
824

Target Address

Action

The value of the request packet. Zero in messages.
Delete0x00
Add0x01

Status

Fail0x00
Success0x01

Error

ISCSI_NO_ERROR0x00
ISCSI_MNI_ERR_INV_TARG0x01if the assigned target address is invalid (e.g. zero).
ISCSI_MNI_ERR_FULL0x02if the maxium of 64 iscsi targets is reached and a request packet with the ADD action was sent.
ISCSI_MNI_ERR_TARG_PRES0x03if a request packet if the ADD action was sent and the target address is already monitored.
ISCSI_MNI_ERR_NOT_FOUND0x04if a request packet if the DELETE action was sent and the target address is not currently monitored.
ISCSI_MNI_ERR_INTERN0x05

Starttime

The time when the monitoring process was started (in seconds since 2000).

Session Status

OFFLINE0x00
ONLINE0x01
ERROR0x02

Session Error

ISCSI_ERR_CONNECT0x31
ISCSI_ERR_LOGIN0x34
ISCSI_ERR_INV_TARG_IDX0x35
ISCSI_ERR_PWD0x36
ISCSI_ERR_PROTO0x37
ISCSI_ERR_TARG_NOT_REACH0x38
ISCSI_ERR_NO_MEM0x3a
ISCSI_ERR_SESS_CREATE0x3b
ISCSI_ERR_INV_PARAMS0x3c
ISCSI_ERR_SESS_NOT_FOUND0x3d
ISCSI_ERR_DISCONN0x3e
ISCSI_ERR_TIMEOUT0x3f
ISCSI_ERR_SOCK0x5f
ISCSI_SOCK_CLOSED0x7f
ISCSI_ERR_TCP_CONN_RST0x8f
ISCSI_ERR_IP_ZERO0xa0

Reconnects

The number of times the session was reconnected since the begin of the monitoring process.

Uptime

The number of seconds the session is online.

CONF_ISCSI_MP_DISCOVER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c32Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalMultipath discover
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command initiates a multipath discovery of a target. This means iSCSI stack tries to detect all known alternative pathes for all LUNs for the given main path.
The user can select alternative pathes to be scanned with the 0x0003 tag. If no 0x0003 tag is given all pathes found at discovery are scanned.
ATTENTION: The command can take up to the amount of scanned pathes multiplied with 10 seconds to complete! This scan does not create any persistent discovery cache entries. All cached data is cleared after the scan.

Request Payload Structure

1632
Tag-Structure [0]
...
Tag-Structure [N]
824
The payload must contain the tag 0x0001 and the tag 0x0002. Optionally you can pass one or more tag 0x0003 to tell the command to only scan the given pathes. The payload of the tag 0x0001 and tag 0x0003 can either be IPv4 or IPv6. Which IP is contained is indiacted by the tag length. 0x0008 is IPv4 0x0014 is IPv6. The tag 0x0002 indicates a target index.

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0x0001: IP

Indicates the main path to the target to scan
1632
Length
2 Bytes
Tag = 0x0001
2 Bytes
IP (p_octet)
Length - 4 Bytes
824

IP


Payload for 'Length' = '8'

1632
IPv4
4 Bytes
824


Payload for 'Length' = '20'

1632
IPv6...
16 Bytes
IPv6
...
IPv6
...
IPv6
...
824


Tag 0x0002: Target Index

The target index (4 byte number) on network byte order
1632
Length = 0x0008
2 Bytes
Tag = 0x0002
2 Bytes
Target Index (t_dword)
4 Bytes
824

Tag 0x0003: Alternative path

Gives the IP of an alternative path to scan. If not given all found pathes are scanned
1632
Length
2 Bytes
Tag = 0x0003
2 Bytes
Alternative path (p_octet)
Length - 4 Bytes
824

Alternative path


Payload for 'Length' = '8'

1632
IPv4
4 Bytes
824


Payload for 'Length' = '20'

1632
IPv6...
16 Bytes
IPv6
...
IPv6
...
IPv6
...
824



Response Payload Structure

This payload equals the payload of the command 'CONF_ISCSI_DISV_CACHE'

Command Specific Errors

The following specific erros might be returned on RCP level. If such an error occurs the command was not executed.
iSCSI specific errors
ISCSI_ERR_INV_PARAMS0x3cError parsing the command (error in tag structure)
ISCSI_ERR_TARGET_SESSION_LIMIT0x41Too many scan active (only one to the same IP is allowed). Retry later.
ISCSI_ERR_NO_MEM0x3aNo free job to do the scan. Retry later.
No cache entry0x0003The command can also return the 'No cache entry' tag followed by an error code. With this the command returns errors which occur while discovering the target. All known iSCSI error codes can occur there (see CONF_DISV_CACHE for a list of error codes).

CONF_ISCSI_MULTIPATH

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0beeNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the behaviour of iSCSI multipathing (0=off, 1=only use prefered pathes, 2=use all pathes, 3=use NetApp specific path selection)
Writet_dwordserviceGet the behaviour of iSCSI multipathing (0=off, 1=only use prefered pathes, 2=use all pathes, 3=use NetApp specific path selection)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ISCSI_MULTIPATH_STATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c14Noneyesno
 DatatypeAccess LevelDescription
Readp_octetminimalRead the multipathing state of all active iSCSI connections
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

The message normally contains one or more 0x00 tags or one 0x04 tag if there is no active iSCSI connection. Inside the 0x00 tag there should appear one 0x01, 0x05, 0x02, 0x03 and 0x06 tag.

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0x8000: Group tag

(Surrounds information for one connection)
One group is marked by the 0x8000 starting tag. Each group gives information about one active iSCSI connection. It normally contains one 0x0001, one 0x0005, one 0x0002 and one 0x0003 tag to describe the multipath state of the connection.
The length field contains the length of all included subtags plus the group header itself.
The group tag is present to simplify parsing and to join subtags to a unique connection description.
1632
Length = 0x0004
2 Bytes
Tag = 0x8000
2 Bytes
824

Tag 0x0001: Main path IP

Original or main IP address of the iSCSI target. Through this IP the session was initialy created. If the length field is 8 the payload is a IPv4 address (network byte order). If the length field is 20 the payload contains IPv6.
1632
Length
2 Bytes
Tag = 0x0001
2 Bytes
Main path IP (p_octet)
Length - 4 Bytes
824

Main path IP


Payload for 'Length' = '8'

1632
IPv4
4 Bytes
824


Payload for 'Length' = '20'

1632
IPv6...
16 Bytes
IPv6
...
IPv6
...
IPv6
...
824


Tag 0x0002: Connected IP

The IP address the connection uses at the moment. This may be the IP of an alternative path. If the length field is 8 the payload is a IPv4 address (network byte order). If the length field is 20 the payload contains IPv6.
1632
Length
2 Bytes
Tag = 0x0002
2 Bytes
Connected IP (p_octet)
Length - 4 Bytes
824

Connected IP


Payload for 'Length' = '8'

1632
IPv4
4 Bytes
824


Payload for 'Length' = '20'

1632
IPv6...
16 Bytes
IPv6
...
IPv6
...
IPv6
...
824


Tag 0x0003: Connection state

The payload is 4 byte containing a 32 bit value (DWORD) in network byte order. The value must be interpreted as a bit field with the following meaning:
1632
Length = 0x0008
2 Bytes
Tag = 0x0003
2 Bytes
Connection state (t_dword)
4 Bytes
824
MaskNameDescription
Bit 60x00000040Check FailedThe connection is connected via the main IP, but the regularly check of the availability of the alternative paths failed. So at least one alternative path might not be reachable.
Bit 50x00000020ClosingThe session is about to be closed gracefully. There are no more users on this session and it will be closed.
Bit 40x00000010NonOptimizedConnection runs on a non optimized path (lower performance) and will try to go back to an main path as soon as possible.
Bit 30x00000008Alternate Path UnoptimizedThe connection runs through an alternative path which is not declared as being optimized or not optimized. Connection will go back to the main path when possible.
Bit 20x00000004Alternate Path OptimizedThe connection is connected via an alternative path. So The connection runs optimized but not through the main path.
Bit 10x00000002MainIPThe connection is connected via the main IP (main path or prefered path) and working optimized.
Bit 00x00000001OfflineThe connection is offline and not in a working state.

Tag 0x0004: No active connection

If this tag is present as first tag, no other tags will be present in the message. It tells the receiver, that no active connection exists at the moment. So the iSCSI stack is idle.
1632
Length = 0x0004
2 Bytes
Tag = 0x0004
2 Bytes
824

Tag 0x0005: Target index

The target index of the target which is addressed over the Target IP if multiple targets are available through this IP.
1632
Length = 0x0008
2 Bytes
Tag = 0x0005
2 Bytes
Target index (t_dword)
4 Bytes
824

Tag 0x0006: Multipath support

1632
Length = 0x0008
2 Bytes
Tag = 0x0006
2 Bytes
Multipath support (t_dword)
4 Bytes
824
No Multipath0The target has no multipath support and only one of the states Bit 0 (offline) and Bit 1 (connected optimized) is reported, as the target can only be on- or offline. It has no alternative pathes.
Multipath1The target supports multipathing and there are alternative pathes available. All states from above can be reported for the target.

Example

Typical Message

This is the payload when a target supports multipathing. The IP of the origin connection is 10.1.1.10. The target with index 2 on this IP is used. The connection runs over the IP 10.1.1.12 at the moment. This is a path which is marked as non optimized.
1632
Length
0x001c
Group Tag
0x8000
Length
0x0008
Subtag
0x0001
IPv4
0x0a 0x01 0x01 0x0a
Length
0x001c
Subtag
0x0005
Target Index
0x00 0x00 0x00 0x02
Length
0x001c
Subtag
0x0002
IPv4
0x0a 0x01 0x01 0x0c
Length
0x001c
Subtag
0x0003
Flags
0x00 0x00 0x1 0x00 (uint32 0x00000010)
Length
0x001c
Subtag
0x0006
Multipath support
0x00 0x00 0x00 0x01 (uint32 0x00000001)
824

No iSCSI connection

When no iSCSI connection is requested/active at the moment (e.g. no recording running), the following payload is returned
1632
Length
0x001c
No active connection Tag
0x0004
824

CONF_ISCSI_PORT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09ab0: connect port, 1: tunnel port, 2: server portnono
 DatatypeAccess LevelDescription
Readt_wordminimalIscsi port
Writet_wordserviceIscsi port
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ISCSI_READDATARATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b3aNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalKBit/s the ISCSI should read as maximum (0:=no limit send all data at once)
Writet_dwordserviceKBit/s the ISCSI should read as maximum (0:=no limit send all data at once)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ISCSI_SEG_SIZE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0affNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalMaximum segment size for ISCSI transfers (should be a 2^n value like 8192, 16384 or 65536)
Writet_dwordserviceMaximum segment size for ISCSI transfers (should be a 2^n value like 8192, 16384 or 65536)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ISCSI_SERVER_STATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a2bNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReturns the state of the iscsi server (0: server down, 1: server running)
Writet_dwordserviceSet the iscsi server state (0: shutdown server, 1: start server)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Note: The iscsi server is also started or stopped when you write the command CONF_STORAGE_LIST. If the storage list is empty or only contains entries with the 'iSCSI export' field set to 'For local use only' (0x00), the server is stopped if it is running cause no targets and luns would be provided. If the list contains at least one entry with the 'iSCSI export' field set to 'Make storage available through iSCSI' (0x01), the server is started, if not already running, to provide the iscsi service.

CONF_ISCSI_TARGET

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09adNonenono
 DatatypeAccess LevelDescription
Readp_stringminimalGets the iscsi target name string
Writep_stringserviceDeprecated in fw > 4.00
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ISCSI_TARGET_IDX

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09f9Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalDeprecated in fw > 4.00
Writet_dwordserviceDeprecated in fw > 4.00
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ISCSI_TARGET_PWD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09ceNonenono
 DatatypeAccess LevelDescription
Readp_stringuserGet the password to authenticate at the iSCSI server. FW version >= 4.00: This command returns the password of the first entry of the CONF_ISCSI_AUTH list.
Writep_stringserviceSet the password to authenticate at the iSCSI server. FW version >= 4.00: This command sets the password of the first entry of the CONF_ISCSI_AUTH list. If all characters of the string are the '*', the old stored value is not replaced.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ISCSI_TCP_CONNECTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09aeNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGer the number of concurrent tcp connections to iscsi target
Writet_dwordserviceSet the number of concurrent tcp connections to iscsi target
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_KBD_CONFIG_CAMERA

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a31camera number on keyboardnono
 DatatypeAccess LevelDescription
Readp_octetminimalRead configuration of camera numbers on keyboard
Writep_octetserviceConfigure camera numbers on keyboard; assign parameters to a number (given by num)
CPP6/CPP7/CPP7.3CPP13
Available yes no

Payload Structure

1632
IP
4 Bytes
Line
1 Byte
Coder
1 Byte
Preset
1 Byte
Reserved
1 Byte
824

IP

Encoder/Camera IP

Line

Video input line

Coder

Relative coder number (relative to line)

Preset

(Dome-) Preset Position (optional). (Every Preset of a Dome can be treated as a seperate camera). Set to '0' for don't care.

CONF_KBD_CONFIG_CAMERA_STR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ba3camera number on keyboardnono
 DatatypeAccess LevelDescription
Readp_octetminimalRead configuration of camera numbers on keyboard
Writep_octetserviceConfigure camera numbers on keyboard; assign parameters to a number (given by num)
CPP6/CPP7/CPP7.3CPP13
Available yes no

Payload Structure

1632
Line
1 Byte
Coder
1 Byte
Preset
1 Byte
URL Length
1 Byte
URL
URL Length Bytes
824

Line

Video input line

Coder

Relative coder number (relative to line)

Preset

(Dome-) Preset Position (optional). (Every Preset of a Dome can be treated as a seperate camera). Set to '0' for don't care.

URL Length

Length of the following url (actual limit is 80).

URL

Encoder/Camera URL

CONF_KBD_CONFIG_MONITOR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a32monitor number on keyboardnono
 DatatypeAccess LevelDescription
Readp_octetminimalRead configuration of monitor numbers on keyboard
Writep_octetserviceConfigure monitor numbers on keyboard; assign parameters to a number (given by num)
CPP6/CPP7/CPP7.3CPP13
Available yes no

Payload Structure

1632
IP
4 Bytes
Line
1 Byte
Coder
1 Byte
Reserved
2 Bytes
824

IP

Decoder/Monitor IP

Line

Video output line

Coder

Relative coder number (relative to line)

CONF_KBD_CONFIG_MONITOR_STR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ba4monitor number on keyboardnono
 DatatypeAccess LevelDescription
Readp_octetminimalRead configuration of monitor numbers on keyboard
Writep_octetserviceConfigure monitor numbers on keyboard; assign parameters to a number (given by num)
CPP6/CPP7/CPP7.3CPP13
Available yes no

Payload Structure

1632
Line
1 Byte
Coder
1 Byte
URL Length
1 Byte
Reserved
1 Byte
URL
URL Length Bytes
824

Line

Video output line

Coder

Relative coder number (relative to line)

URL Length

Length of the following url (actual limit is 80).

URL

Decoder/Monitor URL

CONF_KBD_CONFIG_SALVO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a3esalvo numbernono
 DatatypeAccess LevelDescription
Readp_octetminimalRead configuration of salvos for keyboard
Writep_octetserviceConfigure salvos used for keyboard; assign parameters to a salvo number (given by num)
CPP6/CPP7/CPP7.3CPP13
Available yes no

Payload Structure

1632
Duration
2 Bytes
Reserved
2 Bytes
Camera [0]
1 Byte
...
Camera [N]
1 Byte
824

Duration

Duration of one salvo position in seconds

Camera

Camera number for salvo
Note: Camera number has to be specified using CONF_KBD_CONFIG_CAMERA

CONF_KBD_CONNECT_PARAMS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a33Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead parameters for connections established via keyboard
Writep_octetserviceSet parameters for connections established via keyboard
CPP6/CPP7/CPP7.3CPP13
Available yes no

Payload Structure

1632
Flags
2 Bytes
Reserved
2 Bytes
824

Flags

MaskNameDescription
Bit 10x0002Request Audio RXSpeak at decoder side
Bit 00x0001Request Audio TXListen at decoder side

CONF_KBD_KEY_LABEL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a44key numbernono
 DatatypeAccess LevelDescription
Readp_stringminimalRead a label of a key used for the alarm task editor. The label is shown on the keyboard display.
Writep_stringserviceDeposit a label for a key used for the alarm task editor. The label is shown on the keyboard display.
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_KBD_PASSWORD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a69Nonenono
 DatatypeAccess LevelDescription
Readp_stringserviceGet the password (scrambled) of the keyboard
Writep_stringserviceDeposit a password for the keyboard
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_KBD_PASSWORD_CAMERA

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a34Nonenono
 DatatypeAccess LevelDescription
Readp_stringserviceGet the password (scrambled) for all cameras used on keyboard
Writep_stringserviceDeposit a password for all cameras used on keyboard
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_KBD_SET_ALARM

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a68Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writef_flagminimalSend alarm to keyboard
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_BASE_POE_CLASS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ca0Nonenono
 DatatypeAccess LevelDescription
Readt_octetserviceRead the base poe class of the device (w/o considering power adder); 1: class0, 2: class1, 3: class2, etc. 255: no PoE
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_LLDP_ALLOCATED_POWER_TOTAL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c90Nonenono
 DatatypeAccess LevelDescription
Readt_wordminimalRead the poe power allocated for the device in total (adder+device itself) in tenths of Watts
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_LLDP_POWER_ADDER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c92Nonenono
 DatatypeAccess LevelDescription
Readt_wordminimalGet the power volume that the camera should request via LLDP in addition to its own requirements; value is in tenths of watts; e.g. 9.9 watts results in a value of 99;
Writet_wordserviceSet the power volume that the camera should request via LLDP in addition to its own requirements; value is in tenths of watts; e.g. 9.9 watts results in a value of 99; when the adder value is different from 0, the device identifies as type 2 PD of class 4; when adder value is 0 and the device specific requirement is below 13 W, the device signals type 1 PD of the respective class; currently, the total power requested by a camera can not exceed the 25.5W specified as maximum in IEEE802.3at-2009
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_LLDP_REQUESTED_POWER_CAM

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c8fNonenono
 DatatypeAccess LevelDescription
Readt_wordminimalRead the poe power requested by device (for the device alone) in tenths of Watts
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_LLDP_REQUESTED_POWER_TOTAL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c8eNonenono
 DatatypeAccess LevelDescription
Readt_wordminimalRead the poe power requested by device in total (adder+device itself) in tenths of Watts
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_POE_GRANTED_POWER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ae6Noneyesno
 DatatypeAccess LevelDescription
Readt_wordminimalRead the current poe power granted by switch / midspan in tenths of Watts
Writet_wordserviceWrite/limit the max power budget to be used by the device in tenths of Watts
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_SIGNALLED_POE_CLASS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ca1Nonenono
 DatatypeAccess LevelDescription
Readt_octetserviceRead the signalled poe class of the device (incl. power adder); 1: class0, 2: class1, 3: class2, etc. 255: no PoE
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_ALLOW_OVERWRITE_TIMESRVIP_BY_DHCP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c0eNonenono
 DatatypeAccess LevelDescription
Readt_octetminimalAllow or deny that dhcp overwrites time/ntp srv ip, 0 = deny, 1 = allow
Writet_octetserviceAllow or deny that dhcp overwrites time/ntp srv ip, 0 = deny, 1 = allow
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_BROWSER_DATETIME_FORMAT_VAL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01e9Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalRead browser date/time format
Writet_octetserviceSet browser date/time format (1=Europe, 2=USA, 3=Japan)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DATE_DAY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0028Nonenono
 DatatypeAccess LevelDescription
Readt_octet p_stringminimalRead the day of month
Writet_octet p_stringserviceSet the day of month, not supported while recording is running or configured to active
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DATE_MONTH

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0029Nonenono
 DatatypeAccess LevelDescription
Readt_octet p_stringminimalRead the month
Writet_octet p_stringserviceSet the month, not supported while recording is running or configured to active
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DATE_WDAY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0027Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimal\Sunday\" ... \"Saturday\"; read the weekday according to the systems date setting
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DATE_YEAR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x002aNonenono
 DatatypeAccess LevelDescription
Readt_word p_stringminimalRead the year
Writet_word p_stringserviceSet the year; century needed, not supported while recording is running or configured to active
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DAY_LIGHT_SAVE_TIME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0988Nonenono
 DatatypeAccess LevelDescription
Readt_intminimalRead the currently used day light save time offset in seconds
Writet_intserviceWrite the day light save time offset in seconds; the device updates this from DAY_LIGHT_SAVE_TIME_TABLE to show current offset used
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DAY_LIGHT_SAVE_TIME_TABLE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0987Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead 20 entries for daylight save time: UTC time in sec since 2000 (4byte) and associated offset in sec (4 signed bytes), unused entries have to be filled with zero
Writep_octetserviceWrite 20 entries for daylight save time: UTC time in sec since 2000 (4byte) and associated offset in sec (4 signed bytes), unused entries have to be filled with zero
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_FORCE_TIME_SET

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a0fNonenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead the time, 8 bytes payload, offset 0: year (word); offset 2: month (octet); offset 3: day (octet); offset 4: hrs (octet); offset 5: min (octet); offset 6: sec (octet); offset 7: reserved (octet)
Writep_octetserviceSet the time, if recording is running it will be stopped and restarted, parameter 8 bytes payload, offset 0: year (word); offset 2: month (octet); offset 3: day (octet); offset 4: hrs (octet); offset 5: min (octet); offset 6: sec (octet); offset 7: reserved (octet)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NTP_SERVER_IP_STR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x024fNonenono
 DatatypeAccess LevelDescription
Readp_stringminimalReads the time servers ip address (\xxx.xxx.xxx.xxx\
Writep_stringserviceOr URL) used to sync time from
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NTP_START_SERVER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c63Nonenono
 DatatypeAccess LevelDescription
Readf_flagminimalReads if the NTP server of the camera should be started
Writef_flagserviceSet if the NTP server of the camera should be started (0 = do not start; 1 = start server)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NTP_SYNC_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x031eNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReturns mode which is used by time server, time server(0), SNTP server(1), off(2)
Writet_dwordserviceSelects mode which is used to sync time on this machine, time server(0) SNTP server(1), off(2), tls_date(3)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_OPTIONAL_TIME_SERVER_PORT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c40Nonenono
 DatatypeAccess LevelDescription
Readt_wordminimalGet the optional/alternative time server port. If not set (0), the according standard port will be used (depending on the configured time server mode)
Writet_wordserviceSet an optional/alternative time server port. If not set (0), the according standard port will be used (depending on the configured time server mode).
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SYSTEM_DATETIME_V2

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ba8if set to 0xFFFF the daylight saving values are not overwritten if not presentnono
 DatatypeAccess LevelDescription
Readp_stringminimalGets the system date and time and the daylight savings in one step: yyyy-mm-ddThh:mm:ss; PosixTimezone; optional string: yyyy->year, mm->month, dd->day, T->beginning of the time section, hh->hour, mm->minute, ss->second (all time values are utc time); The Time Zone format is specified by POSIX, refer to POSIX 1003.1 section 8.3. (the PosixTimezone string is only included if written by that command. If not present the corresponding settings are cleared).
Writep_stringserviceWrites the system date and time and the daylight savings in one step: yyyy-mm-ddThh:mm:ss; PosixTimezone; optional string: The Time Zone format is specified by POSIX, refer to POSIX 1003.1 section 8.3
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_TIME_HRS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x002dNonenono
 DatatypeAccess LevelDescription
Readt_octet p_stringminimalRead the hours
Writet_octet p_stringserviceSet the hours, not supported while recording is running or configured to active
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_TIME_MIN

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x002cNonenono
 DatatypeAccess LevelDescription
Readt_octet p_stringminimalRead the minutes
Writet_octet p_stringserviceSet the minutes, not supported while recording is running or configured to active
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_TIME_SC_CONNECT_FAIL_MSG

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ce0Noneyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_TIME_SEC

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x002bNonenono
 DatatypeAccess LevelDescription
Readt_octet p_stringminimalRead the seconds
Writet_octet p_stringserviceSet the seconds, not supported while recording is running or configured to active
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_TIMEZONE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x024eNonenono
 DatatypeAccess LevelDescription
Readt_intminimalThe timezone in which the unit has to operate (GMT +- nbr of seconds +- nbr of seconds DLS)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_UTC_ZONEOFFSET

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x031fNonenono
 DatatypeAccess LevelDescription
Readt_intminimalThe timezone in which the unit has to operate (GMT +- nbr of seconds)
Writet_intserviceThe timezone in which the unit has to operate (GMT +- nbr of seconds)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_AUDIO_ENC_STREAMING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x099bNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalAudio streaming on coder (audio encoder n: coderbits=1<<(n-1))
Writet_dwordserviceEnables audio streaming on coder (audio encoder n: coderbits=1<<(n-1))
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_AUDIO_STREAMING_ENCODING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b8dNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalDefines the audio encoding that is used for streaming (1: g711, 2: aac)
Writet_dwordserviceDefines the audio encoding that is used for streaming (1: g711, 2: aac)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_IGMP_VERSION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09e5Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalRead the igmp(internet group management protocol) version,
Writet_octetserviceSet the igmp version,
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
Automatic from network0
Version11
Version22
Version33

CONF_MULTICAST_AUDIO_GROUP_IP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cd1audio codernono
 DatatypeAccess LevelDescription
Readt_dwordminimalRead the multicast audio group address
Writet_dwordserviceSet the multicast audio group address (range: 224.0.0.10 .. 239.255.255.255)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MULTICAST_AUDIO_GROUP_IP_STR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cd2audio codernono
 DatatypeAccess LevelDescription
Readp_stringminimalRead the multicast audio group address
Writep_stringserviceSet the multicast audio group address (range: 224.0.0.10 .. 239.255.255.255)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MULTICAST_AUDIO_PORT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01b2audio codernono
 DatatypeAccess LevelDescription
Readt_wordminimalRead the multicast audio UDP port number
Writet_wordserviceSet the multicast audio UDP port (even port numbers only)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MULTICAST_AUDIO_PORT_STR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01b5audio codernono
 DatatypeAccess LevelDescription
Readp_stringminimalRead the multicast audio UDP port number
Writep_stringserviceSet the multicast audio UDP port (even port numbers only)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MULTICAST_TTL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0267Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalGet the TTL (time to live) in IP-Header for multicast packets
Writet_octetserviceSet the TTL (time to live) in IP-Header for multicast packets
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MULTICAST_VIDEO_GROUP_IP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01b1video codernono
 DatatypeAccess LevelDescription
Readt_dwordminimalRead the multicast video group address
Writet_dwordserviceSet the multicast video group address (range: 224.0.0.10 .. 239.255.255.255)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MULTICAST_VIDEO_GROUP_IP_STR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01b4video codernono
 DatatypeAccess LevelDescription
Readp_stringminimalRead the multicast video group address
Writep_stringserviceSet the multicast video group address (range: 224.0.0.10 .. 239.255.255.255)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MULTICAST_VIDEO_PORT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0286video codernono
 DatatypeAccess LevelDescription
Readt_wordminimalRead the multicast video UDP port number
Writet_wordserviceSet the multicast video UDP port (even port numbers only)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MULTICAST_VIDEO_PORT_STR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0288video codernono
 DatatypeAccess LevelDescription
Readp_stringminimalRead the multicast video UDP port number
Writep_stringserviceSet the multicast video UDP port (even port numbers only)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_START_MULTICAST_STREAMING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b8bNonenono
 DatatypeAccess LevelDescription
Readp_octetminimalVideo streaming on coder (1st coder-> 1st octet, 2nd coder-> 2nd octet....)
Writep_octetserviceEnable video streaming on coder. 1st Coder->1 octet, 2nd Coder ->2nd octet....
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STREAMING_VAL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01b9Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimal
Writet_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
set multicast streaming mode to off0
set multicast streaming mode mpeg4 to on1
set multicast streaming mode mpeg2 to on2
set multicast streaming mode mpeg4+mpeg2 to on3

CONF_VIDEO_ENC_STREAMING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x099aNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalVideo streaming on coder (video encoder n: coderbits=1<<(n-1))
Writet_dwordserviceEnables video streaming on coder (video encoder n: coderbits=1<<(n-1))
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NETWORK_SERVICES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c62Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalReturns all running network services
Writep_octetserviceReturns all running network services
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Reading the CONF_NETWORK_SERVICES command returns a list of TCP/UDP services which are available on the device. Each entry represents one service. The entry show if the service is enabled at the moment and what TCP/UDP port it is assigned to if a port is available. If the port cannot be adjusted the 0x0004 tag is simply missing. Client software can show this list to give the user the opportunity to check and configure all runiing network services.
Writing this command allows to configure the services returned by a preceding read. In write direction the command payload has the same structure. The client does not need to include all services returned by the read. It can only add the services to change to the write payload. The tag 0x0002 (label) must not be included in write payload. The service ID must provided and identitfies the service to change. The ID is not fixed across firmware versions and must be retrieved by a preceeding read.
Writing this command is only a request to the device to shutdown or start the services. That's why the device cannot answer with with the new state of the services. The device replies to a write operation with the actual state of the network services (the complete list). This does eventually not reflect the changes which will be done by the requests in this write operation.
Note: Most network services need a reboot of the device to be stopped or started. After writing this command the device should be rebootet!

Payload Structure

Service Entry [0]
...
Service Entry [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0x8000: Service Entry

Surrounding tag for each entry in the list. With help of the length field client software is the change to skip complete entries.
1632
Length = 0x0004
2 Bytes
Tag = 0x8000
2 Bytes
824

Tag 1: Numerical ID

This tag gives each service a numerical ID. The ID should be retrieved via reading this command first. You can assume, that the ID for a special service keeps constant in newer firmware versions. So this ID can be treated as a unique identifier for a specific service. When using this command in write direction to configure a service this ID must be presented to identify the service.
1632
Length = 0x0008
2 Bytes
Tag = 0x0001
2 Bytes
Numerical ID (t_dword)
4 Bytes
824

Tag 2: Label

A printable label for this service. If the client does not know how to translate this label it can show this label as default. The label is not used to identify the service and can be omitted when writing this command.
1632
Length
2 Bytes
Tag = 0x0002
2 Bytes
Label (p_string)
Length - 4 Bytes
824

Tag 3: Enable

A value != 0 indicates that this service is enabled and the port is open at UDP/TCP level. A value == 0 indeicates that the service is disabled.
1632
Length = 0x0008
2 Bytes
Tag = 0x0003
2 Bytes
Enable (t_dword)
4 Bytes
824
Values:
Enable1
Disable0

Tag 4: Port

This tag is only present if the UDP/TCP port is adjustable for this service. Else this tag is simply omitted. For historical reasons most services set their port to 0 to show that they are disabled. If you set the 'Enable' tag to 0 at write and set the port != 0 the command will automaticly set the port to 0. Setting 'Enabled' tag to != 0 and the port to 0 will use default port. Else the given port will be used.
1632
Length = 0x0008
2 Bytes
Tag = 0x0004
2 Bytes
Port (t_dword)
4 Bytes
824

CONF_ENABLE_ONVIF

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bbdNonenono
 DatatypeAccess LevelDescription
Readf_flagminimal#ValueList: 0=Onvif disabled; 1=Onvif enabled (default value)
Writef_flagservice#ValueList: 0=Onvif disabled; 1=Onvif enabled (default value)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ONVIF_STREAM_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bcbcodernono
 DatatypeAccess LevelDescription
Readt_octetminimal#ValueList: 1=stream is configured by onvif; 0=stream is not configured by onvif;
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ONVIF_STREAM_URI_EX

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0be4Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimalExtension to the onvif stream uri that will be appended in the GetStreamUri command
Writep_stringserviceExtension to the onvif stream uri that will be appended in the GetStreamUri command
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ACTIVE_CONNECTION_LIST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0xffc1Noneyesno
 DatatypeAccess LevelDescription
Readp_octetuser
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

ConnectionEntry [0]
(see description)
...
ConnectionEntry [N]
(see description)

ConnectionEntry

1632
Destination IP Address
4 Bytes
Local Coder
1 Byte
Local Line
1 Byte
Flags
2 Bytes
Session ID
4 Bytes
Remote Coder
1 Byte
Remote Line
1 Byte
Reserved
2 Bytes
TX Channels
4 Bytes
RX Channels
4 Bytes
824

Destination IP Address

IP address to which the unit is connected.

Local Coder

The local connected coder (relative to line).

Local Line

The remote connected line

Flags

MaskNameDescription
Bit 110x0800H.265Is set when connection is H.265
Bit 100x0400TranscoderIs set when connection is using transcoder
Bit 90x0200JpegIs set when connection is Jpeg
Bit 80x0100H.264Is set when connection is H.264
Bit 70x0080EncryptedIs set when datastream is encrypted
Bit 60x0040TCP TransportationIs set when connection is using TCP for transportation
Bit 50x0020MulticastIs set when connection is using multicast
Bit 40x0010StreamingIs set when connection is started as streaming
Bit 30x0008HDD ReplayIs set when connection is to HDD replay
Bit 20x0004MPEG4Is set when connection is MPEG4
Bit 10x0002MPEG2 PRGIs set when connection is MPEG2 PRG
Bit 00x0001MPEG2 VESIs set when connection is MPEG2 VES

Session ID

Session identifier.

Remote Coder

The remote connected coder (relative to line), (absolute) transcoder if connection is using transcoder

Remote Line

The remote connected line.

Reserved

TX Channels

See CONNECT_TO command for bit mask.

RX Channels

See CONNECT_TO command for bit mask.
Note: If a session ID is provided in the rcp header, then only the connection list of this specific session ID is supplied.

CONF_CAPABILITY_LIST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0xff10Nonenono
 DatatypeAccess LevelDescription
Readp_octetalways_legacy
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
0xBABA
2 Bytes
Version
2 Bytes
Num Sections
2 Bytes
Section [0]
(see description)
...
Section [N]
(see description)
824

Version

Current version of the capabilities

Num Sections

Number of following sections

Section

1632
Type
2 Bytes
Size
2 Bytes
Num Elements
2 Bytes
Element [0]
(see description)
...
Element [N]
(see description)
824

Type

Type of Element
Values:
Video0x0001
Audio0x0002
Serial0x0003
IO0x0004
Camera Data0x0005

Size

Size of the section including SectionType, Size and NbElement. If the section is unknown, you can skip to the next using the size.

Num Elements

Determines how many Elements are following. The definition of each Element depends on the type of the section.

Element


'Element' payload for 'Type' = 'Video Element' (0x0001)

816
Type
2 Bytes
Identifier
2 Bytes
Compression
2 Bytes
Input Number
2 Bytes
Resolution
2 Bytes
412

Type

Values:
VIDEO_ENCODER0x0001
VIDEO_DECODER0x0002
VIDEO_TRANSCODER0x0003

Identifier

Identifier is the RCP numeric descriptor to use to address the entity. It should be unique when associated with the type and the compression. In case of transcoders this numeric descriptor is informative only. It is not necessary to address the entity directly (use the relevant rcp commands instead).

Compression

One or multiple of the following
Values:
VIDEO_COMP_MPEG20x0001
VIDEO_COMP_MPEG40x0002
VIDEO_COMP_H2640x0004
VIDEO_COMP_JPEG0x0008
VIDEO_COMP_H2650x0010
Note: Please use CONF_CODER_VIDEO_OPERATION_MODE to configure the video standard. The dependencys are explained in detail at CONF_CODER_VIDEO_OPERATION_MODE.

Input Number

Input Number is the number of the physical input from which the entity gets or puts its video. In case of transcoder this value is unused and set to 0.

Resolution

One or multiple of the following
Values:
VIDEO_RESO_QCIF0x0001
VIDEO_RESO_CIF0x0002
VIDEO_RESO_2CIF0x0004
VIDEO_RESO_4CIF0x0008
VIDEO_RESO_CUSTOM0x0010
VIDEO_RESO_QVGA0x0020
VIDEO_RESO_VGA0x0040
VIDEO_RESO_HD7200x0080
VIDEO_RESO_HD10800x0100
VIDEO_RESO_WD1440x0200
VIDEO_RESO_WD2880x0400
VIDEO_RESO_WD4320x0800
VIDEO_RESO_HD2592x19440x1000
Note: This list is not further maintained/extended. If additional resolutions are supported, the VIDEO_RESO_CUSTOM value is set and the available resolutions can be obtained via the command CONF_VID_H264_ENC_BASE_OPERATION_MODE_CAPS. For JPEG encoders the available resolutions can be obtained via the command CONF_JPEG_STREAM_SETUP_OPTIONS_VERBOSE.

'Element' payload for 'Type' = 'Audio Element' (0x0002)

816
Type
2 Bytes
Identifier
2 Bytes
Compression
2 Bytes
412

Type

Values:
AUDIO_ENCODER0x0001
AUDIO_DECODER0x0002

Identifier

Identifier is the RCP numeric descriptor to use to address the entity. It should be unique when associated with the type and the compression.

Compression

One or multiple of the following
Values:
AUDIO_COMP_MPEG20x0001
AUDIO_COMP_G7110x0002
AUDIO_COMP_AAC0x0004

'Element' payload for 'Type' = 'Serial Element' (0x0003)

816
Type
2 Bytes
Identifier
2 Bytes
412

Type

Values:
SERIAL_RS2320x0001
SERIAL_RS4850x0002
SERIAL_RS4220x0004

Identifier

RCP numeric descriptor to use to address the entity.

'Element' payload for 'Type' = 'IO Element' (0x0004)

816
Type
2 Bytes
Identifier
2 Bytes
412

Type

Values:
IO_INPUT0x0001
IO_OUTPUT0x0002
IO_VIRTUAL_IN0x0004

Identifier

RCP numeric descriptor to use to address the entity.

'Element' payload for 'Type' = 'Camera Data Element' (0x0005)

816
Type
2 Bytes
Identifier
2 Bytes
412

Type

Values:
CAMDATA_BILINX0x0001

Identifier

RCP numeric descriptor to use to address the entity.

CONF_CONNECT_PRIMITIVE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0xff0cNonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetlive
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Switching Media Channels

Each RCP client may have different media sources and media receivers. To connect these media channels, a low level connect/disconnect primitive is implemented. These low level primitives can be grouped together to more complex commands, which can connect more than one media channel at the same time. The primitives are designed to be asserted by media sources or receivers itself. Manager software should use the high level commands (see next chapter).

Using GET

By sending a CONNECT GET to the remote endpoint, this endpoint will start sending media to the requested address. For example, a VideoJet receiver is registered at a VideoJet transmitter. On sending a ‘CONNECT GET video to port 1234’ to the transmitter, the transmitter starts to send video to the appropriate port at the receiver. The endpoint requesting the media stream (the VideoJet receiver) must be prepared to receive the stream from the network. The coding bits for video must be set according to the receivers capability to decode the data stream. E.g. a Decoder capable of decoding MPEG2 and MPEG4 should set all these bits.

Using PUT

By sending a CONNECT PUT to the remote endpoint, the endpoint will prepare itself for receiving data from the one initiating the request. For example, a VideoJet transmitter is registered at a VideoJet receiver. On sending a ‘CONNECT PUT video to port 2222’ to the receiver, the receiver will prepare its network stack to receive data from the appropriate port. The endpoint initiating the media stream (the VideoJet transmitter) must start sending the media stream to the network. The coding bits for video must be set to a value suitable to the current encoding parameters inside the VideoJet. E.g. if a video encoder is set to encode MPEG4, only a PUT request having these bits set is accepted. The coder parameter is used to address a specific encoder/decoder inside the VideoJet. As the VideoJet may have a Dual-stream feature, one physical line input might be connected to more than one encoder. By setting a coder to another value than 0, the VideoJet only tries this specific coder to establish a connection. When the coder value is set to 0, all coders inside the system will be checked. Each connect primitive will result in a Session ID for maintaining and controlling the media stream with other RCP commands. The Session ID can be treated as unique on the entire system.

DISCONNECT

By sending a DISCONNECT supplied with a valid Session ID, the receiver of the command will stop sending/receiving to/from the media stream. The endpoint initiating the DISCONNECT command must stop receiving/sending from/to the media stream.

Payload Structure

Item [0]
(see description)
...
Item [N]
(see description)

Item

1632
Method
1 Byte
Media
1 Byte
Reserved
1 Byte
Header Flags
1 Byte
Reserved
4 Bytes
Media Descriptor [0]
(see description)
...
Media Descriptor [N]
(see description)
824

Method

Values:
Get0x00
Put0x01
Key Transport0xE0

Media

Values:
Video1
Audio2
Data3

Header Flags

MaskNameDescription
Bit 70x80Multi ROI capableThis Bit signals that a client is able to provide a session ID to steer multiple ROIs (region of interrest) with E-PTZ.
Bit 60x40Media over sslThis Bit is set in the response to signal that the device supports 'media over ssl'.
Bit 50x20TranscoderSet this bit to instanciate and establish a connection to the transcoder.
Bit 40x10Dry ConnectIf this bit is set a replay connection is established (and a session id to control the replay connection is returned). The replay source is not connected. This can be done using the CONF_RCP_CONNECT_SALVO command.
Bit 30x08Media KeyMedia key request (when using GET) / Media key is appended at the end of this section (when using PUT)
Bit 20x04SignallingOptional signalling for streaming (for correct connection list display)
Bit 10x02Free Running ConnectionWhen this bit is set, the connection does not need to be re-triggered by the command CONF_RCP_CONNECTIONS_ALIVE.
Bit 00x01Do reverse LoginThis will control whether the called server will perform a reverse RCP Login.

Media Descriptor


'Media Descriptor' payload for 'Media' = 'Video' (1)

1632
MEP
1 Byte
Flags
1 Byte
MTA Port
2 Bytes
MTA IP Address
4 Bytes
Coder
1 Byte
Line
1 Byte
MCTA Port
2 Bytes
MCTA IP Address
4 Bytes
Coding
2 Bytes
Resolution
2 Bytes
Linked Coder
1 Byte
Linked Line
1 Byte
Flags2
2 Bytes
Key (conditional)
(see description)
824

MEP

Media Encapsulation Protocol.
Values:
RTP over UDP0x01
RTP over TCP0x04
Note: When using RTP over TCP, media channels must be established as described in 'RCP Protocol Procedure / Receiving media data'.

Flags

MaskNameDescription
Bit 60x40ExclusiveROIRequest an exclusive (ROI) stream. (Only applicaple if device is in multi ROI mode and an exclusive coder is still available).
Bit 20x04UseFlags2Flags2 are used
Bit 10x02RelativeNumberUse relative to line coder addressing.
Bit 00x01SubstituteSubstitute connection (if an RX connection to the requested interface is already established, the old connection will be disconnected and substituted by a new connection coming with this request).

MTA Port

Media Transport Address - Network port.

MTA IP Address

Media Transport Address IP Address
Values:
0.0.0.0VideoJet will take address from the incoming TCP header
224.0.0.0VideoJet will take its configured multicast group IP

Coder

Specifies the internal coder number; when set to 0, the appropriate coder corresponding to the given line number and/or coding parameter is chosen by the VideoJet itself.

Line

Identifies the Line Input/Output channel for the specified coding engine.

MCTA Port

Media Control Transport Address Network Port. Currently unused.

MCTA IP Address

Media Control Transport Address IP Address. Currently unused.

Coding

MaskNameDescription
Bit 150x8000Mpeg2ProgMPEG-2 (program stream)
Bit 140x4000RecordedMediaRecorded Media
Bit 90x0200H265H265
Bit 70x0080JpegJPEG
Bit 60x0040H264H264
Bit 40x0010
Bit 30x0008Mpeg2MPEG-2 (only video)
Bit 20x0004Mpeg4 MPEG-4 (elementary stream)

Resolution[Obsolete]

MaskName
Bit 110x0800WD432
Bit 100x0400WD288
Bit 90x0200WD144
Bit 80x0100HD1080
Bit 70x0080HD720
Bit 60x0040VGA
Bit 50x0020QVGA
Bit 30x00084CIF
Bit 20x00042CIF
Bit 10x0002CIF
Bit 00x0001QCIF

Linked Coder

Use this field for signalling the callers local coder in the connection list of the called device.

Linked Line

Use this field for signalling the callers local line in the connection list of the called device.

Flags2

Only evaluated if Bit3 of Flags is set. For internal usage

Key (conditional)

See description of 'Key transport'

'Media Descriptor' payload for 'Media' = 'Audio' (2)

1632
MEP
1 Byte
Flags
1 Byte
MTA Port
2 Bytes
MTA IP Address
4 Bytes
Coder
1 Byte
Line
1 Byte
MCTA Port
2 Bytes
MCTA IP Address
4 Bytes
Coding
2 Bytes
Reserved
2 Bytes
Linked Coder
1 Byte
Linked Line
1 Byte
Reserved
2 Bytes
Key (conditional)
(see description)
824

MEP

Media Encapsulation Protocol.
Values:
RTP over UDP0x01
RTP over TCP0x04

Flags

MaskNameDescription
Bit 10x02RelativeNumberUse relative to line coder addressing.
Bit 00x01SubstituteSubstitute connection (if an RX connection to the requested interface is already established, the old connection will be disconnected and substituted by a new connection coming with this request).

MTA Port

Media Transport Address - Network port.

MTA IP Address

Media Transport Address IP Address
Values:
0.0.0.0VideoJet will take address from the incoming TCP header
224.0.0.0VideoJet will take its configured multicast group IP

Coder

Specifies the internal coder number; when set to 0, the appropriate coder corresponding to the given line number and/or coding parameter is chosen by the VideoJet itself.

Line

Identifies the Line Input/Output channel for the specified coding engine.

MCTA Port

Media Control Transport Address Network Port. Currently unused.

MCTA IP Address

Media Control Transport Address IP Address. Currently unused.

Coding

MaskNameDescription
Bit 150x8000Mpeg2ProgMPEG-2 (program stream)
Bit 140x4000RecordedMediaRecorded Media
Bit 40x0010L16L16 (sampling rate: 16 kHz, rtp clock rate: 90 kHz)
Bit 30x0008L16 16kHzL16_16kHz (sampling rate: 16 kHz, rtp clock rate: 16 kHz)
Bit 20x0004G711 8kHzG.711_8kHz (sampling rate: 8 kHz, rtp clock rate: 8 kHz)
Bit 10x0002AAC
Bit 00x0001G711G.711 (sampling rate: 8 kHz, rtp clock rate: 90 kHz)

Linked Coder

Use this field for signalling the callers local coder in the connection list of the called device.

Linked Line

Use this field for signalling the callers local line in the connection list of the called device.

Key (conditional)

See description of 'Key transport'

'Media Descriptor' payload for 'Media' = 'Data' (3)

1632
MEP
1 Byte
Reserved
3 Bytes
MTA IP Address
4 Bytes
Coder
1 Byte
Line
1 Byte
Reserved...
6 Bytes
Reserved
...
Coding
2 Bytes
Reserved
2 Bytes
Linked Coder
1 Byte
Linked Line
1 Byte
Reserved
2 Bytes
Key (conditional)
(see description)
824

MEP

Media Encapsulation Protocol.
Values:
RCP Intrinsic0x02

MTA IP Address

Media Transport Address IP Address
Values:
0.0.0.0VideoJet will take address from the incoming TCP header

Coder

Informational

Line

Identifies the Line Input/Output channel for the specified coding engine.

Coding

MaskNameDescription
Bit 140x4000RecordedMediaRecorded Media
Bit 00x0001RCP

Linked Coder

Use this field for signalling the callers local coder in the connection list of the called device.

Linked Line

Use this field for signalling the callers local line in the connection list of the called device.

Key (conditional)

See description of 'Key transport'

'Key transport' structure

Key [0]
(see description)
...
Key [N]
(see description)

Key

1632
Method
1 Byte
Bytes valid
1 Byte
Status tag
1 Byte
Reserved
1 Byte
Key data
4 Bytes
824

Method

Must be set to 'Key transport' 0xE0

Bytes valid

The number of valid key bytes in this header

Status tag

Must be set to 'Key transport tag' 0xE0

Key data

The key payload
The media key is transferred using a sequence of key headers all with the method field set to 0xE0. The end of the key section is marked by a header with less than 4 bytes (or zero) indicated in the bytes valid field. The typical key length is 16 bytes (128 bit AES). In this case, four full key headers followed by one empty header must be transferred (4 x 4 bytes valid + 1 x 0 bytes valid = 16 bytes). For backward compatibility, the header method 0xE0 will be skipped by units with former firmwares versions. The key is located and stored on each media source (using the CONF_CRYPT_KEY* commands); When the system is configured to publish its keys (see CONF_PUBLISH_MEDIA_KEYS), then the media sources must fill in the secret by sending (PUT method) or replying to (GET method) the connect primitive. For example, when sending a GET connect primitive to a device and the key transport is selected, then the device will fill in its key in the reply to the connect primitive.
Note: Be sure to use a secure RCP connection, the keys in the connect primitive are tranferred in plain

Response Payload Structure

Item [0]
(see description)
...
Item [N]
(see description)

Item

1632
Method
1 Byte
Media
1 Byte
Status
1 Byte
Flags
1 Byte
Reserved
4 Bytes
Media Descriptor [0]
4 Bytes
...
Media Descriptor [N]
4 Bytes
824

Method

Values:
Get0
Put1

Media

Values:
Video1
Audio2
Data3

Status

Values:
InterfaceUnavailable0Interface not available (Remark: former version may return this error in case of unknown method/media type)
AccessGranted1Access to this interface granted
AccessDenied2Access to this interface rejected
InvalidIdOrConnectionLoss3Session ID invalid or connection no longer active
CodingIncompatible4Coding parameters incompatible
ExternalData5Interface data will be supplied by another media descriptor
UnknownMethod8The method field in the header does not carry a known method
UnknownMedia9The media field in the header does not carry a known media type
Note: Any wildcards used in the transport addresses will be replaced by the real used network addresses. This command is NOT readable; to gain information on active connection refer to the ACTIVE_CONNECTION_LIST command. The Media Control sockets have currently no function

CONF_CONNECT_TO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0xffccNoneyesno
 DatatypeAccess LevelDescription
Readp_octetlive
Writep_octetlive
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

A message will be generated if all requested channels are established or respectivly failed; if a channel fails, the appropriate bit will be cleared in the channel section.

Payload Structure

1632
Destination IP Address
4 Bytes
Reserved
1 Byte
Line
1 Byte
Flags
2 Bytes
Local Coder
1 Byte
Local Line
1 Byte
Put Channel
2 Bytes
Remote Coder
1 Byte
Remote Line
1 Byte
Get Channels
2 Bytes
Appendix (optional)
(see description)
824

Destination IP Address

The reception of this command will force the host to connect to the mentioned destination IP address.

Line[Obsolete]

This parameter carries the number of the remote input (for get channels) or the local input (for put channels); For connection to the HDD, the Line byte must carry the partition number of the HD. This parameter is updated by the local line/coder and remote line/coder settings.

Flags

MaskNameDescription
Bit 130x2000H265Request video mode H.265
Bit 120x1000AllowAACAllow audio mode AAC
Bit 110x0800AllowL16Allow audio mode L16 (setting this bit to 0 uses G711 (default, previous behaviour), setting to 1 allows G.711 and L16 - both with 90kHz timestamp clock)
Bit 100x0400JpegRequest video mode JPEG
Bit 90x0200H264Request video mode H.264
Bit 80x0100UseSSLUse SSL for the RCP control connection; if no destination port is specified, the remote port defaults to 443 (HTTPS) in case of SSL is requested otherwise 80(HTTP)
Bit 70x0080NoKeyExchangeSupress automatic media key exchange
Bit 60x0040ConnectVCAConnect a VCA meta data stream
Bit 40x0010ConnectHDDConnect to the HDD to receive a recorded media stream
Bit 30x0008ForceTCPForce the use of TCP as transportation protocol
Bit 20x0004Mpeg2Request video mode MPEG-4
Bit 10x0002Mpeg4 Request video mode MPEG-2
Bit 00x0001SubstituteSubstitute an existing connection
Note: Only one video standard (MPEG2/4) can be used; setting all bits will result in best currently available mode.

Local Coder

This parameter carries the number of the local coder number. A wildcard of ‘0’ will result in first match.

Local Line

This parameter carries the number of the local video line number. A wildcard of ‘0’ will result in first match.

Put Channel

MaskName
Bit 20x0004Data
Bit 10x0002Audio
Bit 00x0001Video

Remote Coder

This parameter carries the number of the remote coder number (at the destination IP). A wildcard of ‘0’ will result in first match.

Remote Line

This parameter carries the number of the remote video line number (at the destination IP). A wildcard of ‘0’ will result in first match.

Get Channels

MaskName
Bit 20x0004Data
Bit 10x0002Audio
Bit 00x0001Video
Note: For audio connections, the local and remote line parameter are taken from the video settings.

Appendix (optional)

If this command is extended with the optional appendix, the remote port number for RCP login must be specified. This can be either 1756 for the normal RCP port or any available HTTP port at the remote host. When a port number different to 1756 is used, the login will use a HTTP tunnelling.
1632
Dest. Port
2 Bytes
Flags
2 Bytes
Reserved
2 Bytes
Remote password level
1 Byte
Password (optional)
(see description)
824

Dest. Port

This parameter carries the number of the remote TCP port number used for RCP login.

Flags

MaskNameDescription
Bit 00x0001IsURLRemote password field is url (supports urls like rtsp://user:pw@160.10.9.222:5540/rtsp_tunnel)

Remote password level

Values:
No protection0
User1
Service2
Live3

Password (optional)

1632
Password length
1 Byte
Password
Password length Bytes
824

CONF_DISCONNECT_PRIMITIVE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0xff0dNoneyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octet f_flaglive
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Request Payload Structure

1632
Disconnect
1 Byte
824

Disconnect

Values:
Disconnected1
Keep Connection0

Response Payload Structure

1632
Status
1 Byte
Cause
1 Byte
Reserved
2 Bytes
Remote Host IP
4 Bytes
824

Status

Values:
Disconnected1Connection disconnected
Not Found2Connection identified by the given Session ID not found on this host

Cause

Values:
Not closed0x00
Normal termination0x01
Abnormal termination0x02
No response0x03
Remote host terminated0x04
Timed out0x05
Remote login rejected0x06
No common media channels0x07
Connection substituted0x08
Automatic disconnect0x09
Stop streaming0x0a

Remote Host IP

IP address of the remote connected host.

Note: This command is not readable.

CONF_MEDIA_SOCKETS_COMPLETE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0xffc7Noneyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MPEG4_INTRA_FRAME_REQUEST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0605Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writef_flag t_dwordminimalRequest a video intra frame, SessionID is mandatory
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MUTE_MEDIA_CHANNEL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0xff14Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writet_dwordliveMutes/unmutes a media channel: Bit 1: video, Bit2: audio, Bit3: meta; session id is needed, don't mute if media channel is in multicast
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_PIC_INFO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b8eNonenono
 DatatypeAccess LevelDescription
Readt_octetminimalEnables/disables the generation of pic info packets (payload type 97)
Writet_octetserviceEnables/disables the generation of pic info packets (payload type 97)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_RCP_CODER_LIST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0xff11video linenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command is used to retrieve the list of encoders and decoders from a VideoJet. There are two reply formats supported, the compact and the extended list view. The compact view only reports the absolute coder numbers available on a given line input or output. The extended view offers more information about coding capabilities and other parameters of a coder.

Payload Structure

1224
MediaType
1 Byte
Direction
1 Byte
Flags
1 Byte
618

MediaType

Video0x01
Audio0x02
Data0x03

Direction

Input0x00
Output0x01

Flags

MaskNameDescription
Bit 00x01Extended FormatRequest extended format instead of compact.

Response Payload Structure


Payload for 'Flags' = 'Compact Format Response Structure'

Coder Number [0]
1 Byte
...
Coder Number [N]
1 Byte

Coder Number

Absolute coder numbers.


Extended Format Video Response Structure

Payload for any other case.

Coder Definition [0]
(see description)
...
Coder Definition [N]
(see description)

Coder Definition

1632
Coder Number
2 Bytes
Coding Capabilities
2 Bytes
Current Coding
2 Bytes
Resolution Capabilities
2 Bytes
Resolution Current
2 Bytes
Reserved...
6 Bytes
Reserved
...
824

Coder Number

Absolute coder numbers.

Coding Capabilities

All coding capabilities is one or multiple of:
MaskName
Bit 150x8000Mpeg2 PrgStr
Bit 140x4000Recorded Media
Bit 90x0200H.265
Bit 70x0080Jpeg
Bit 60x0040H.264
Bit 50x0020H.263-1998
Bit 40x0010Meta Data
Bit 30x0008Mpeg2
Bit 20x0004Mpeg4
Bit 10x0002H.263

Current Coding

See 'Coding Capabilities' for details.
The current available coding capabilities.

Resolution Capabilities

All resolution capabilities is one or multiple of:
MaskName
Bit 120x1000HD5M
Bit 110x0800WD432
Bit 100x0400WD288
Bit 90x0200WD144
Bit 80x0100HD1080
Bit 70x0080HD720
Bit 60x0040VGA
Bit 50x0020QVGA
Bit 40x0010Custom
Bit 30x00084CIF
Bit 20x00042CIF
Bit 10x0002CIF
Bit 00x0001QCIF

Resolution Current

See 'Resolution Capabilities' for details.
The current available resolution capabilities.


Extended Format Audio Response Structure

Payload for any other case.

Coder Definition [0]
(see description)
...
Coder Definition [N]
(see description)

Coder Definition

1632
Coder Number
2 Bytes
Coding Capabilities
2 Bytes
Current Coding
2 Bytes
CodParameter Capabilities
2 Bytes
CodParameter Current
2 Bytes
Reserved...
6 Bytes
Reserved
...
824

Coder Number

Absolute coder numbers.

Coding Capabilities

All coding capabilities is one or multiple of:
MaskName
Bit 150x8000Mpeg2 PrgStr
Bit 140x4000Recorded Media
Bit 40x0010L16
Bit 30x0008L16 (16kHz timestamps)
Bit 20x0004G.711 (8kHz timestamps)
Bit 10x0002AAC
Bit 00x0001G.711

Current Coding

See 'Coding Capabilities' for details.
The current available coding capabilities.

CodParameter Capabilities

Currently none available

CodParameter Current

Currently none available


Extended Format Data Response Structure

Payload for any other case.

Coder Definition [0]
(see description)
...
Coder Definition [N]
(see description)

Coder Definition

1632
Coder Number
2 Bytes
Coding Capabilities
2 Bytes
Current Coding
2 Bytes
CodParameter Capabilities
2 Bytes
CodParameter Current
2 Bytes
Reserved...
6 Bytes
Reserved
...
824

Coder Number

Absolute coder numbers.

Coding Capabilities

All coding capabilities is one or multiple of:
MaskName
Bit 00x0001RCP

Current Coding

See 'Coding Capabilities' for details.
The current available coding capabilities.

CodParameter Capabilities

MaskName
Bit 20x0004RS422
Bit 10x0002RS485
Bit 00x0001RS232

CodParameter Current

See 'CodParameter Capabilities' for details.
The current available coding capabilities.

CONF_RCP_CONNECT_SALVO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0xff13yes(0 - nothing, 1 to 4 refering to entries of CONF_ADD_REMOTE_DEVICE)nono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetlive
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

A replay connection can be established in two steps: 1) build up a "dry" (replay) connection by setting the flag in the CONNECT_PRIMITIVE request. A Rcp connection is established and a session id to control the connection is returned. Data is not sent out as long as no source is connected. 2) connect a source to the connection (only implemented for replay) using this RCP_CONNECT_SALVO_COMMAND with the provided session id. The connection will retrieve the data from the specified device If a source is already connected a second call of this command will replace the first connection. The num parameter can be used to refere to an entry from CONF_ADD_REMOTE_DEVICE (num 1 to 4). In that case only a shorter payload (line and relative coder) is required. All other parameters will be taken from the CONF_ADD_REMOTE_DEVICE command. For port and ssl port the first two ports of a CONF_ADD_REMOTE_DEVICE entry will be used in that order. If the num parameter is set to zero, all other parameters are required and used if the connection is a remote device. If num is zero and the short payload (line and rel coder) is also used, it is asumed, that the local device is addressed.

Payload Structure

1632
Flags
1 Byte
Line
1 Byte
Decoder Instance
1 Byte
Relative Coder
1 Byte
Port
2 Bytes
SSL Port
2 Bytes
VRM Track Id
2 Bytes
Reserved
2 Bytes
URL Length
2 Bytes
URL...
URL Length Bytes
URL
...
Password Length
2 Bytes
Password...
URL Length Bytes
Password
...
824

Flags

MaskNameDescription
Bit 60x40Delete camdelete cam connected to dec inst (multi view only)
Bit 30x08Replay live only
Bit 10x02Use TCP to get live video
Bit 00x01Live video

Line

Line from 1 to max lines (line 0 is mapped to line 1)

Decoder Instance

Decoder instance from 1 to max ... (decoder instance 0 means any) for multiview capable de/transcoders

Relative Coder

Relative coder number from 1 to ... (coder number 0 is mapped to coder number 1)

VRM Track Id

Only relevant for VRM

URL Length

Length of the following url (actual limit is 64)

URL

URL for the connection salvo. ASCII string including zero termination. If the special url starting with 'trackid://' is used, the following decimal value is the VRM Track ID (e.g. 'tackid://15096')

Password Length

Length of the following password (actual limit is 64)

Password

Password for the salvo connection. ASCII string including zero termination.

CONF_RCP_CONNECTIONS_ALIVE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0xffc2Nonenono
 DatatypeAccess LevelDescription
Readp_octetliveRetriggers a running connection identified by its session_id; returns the current number of active connections
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_REQ_FAST_UPDATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01d3Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writef_flagminimalRequest a video intra frame, SessionID is mandatory
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SEI_ENABLE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b6dNonenono
 DatatypeAccess LevelDescription
Readt_octetuserEnable/disable SEI: 0=off, 1=on
Writet_octetuserEnable/disable SEI: 0=off, 1=on
CPP6/CPP7/CPP7.3CPP13
Available no yes

CONF_TRANSCODER_INFORMATION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0xd060Nonenono
 DatatypeAccess LevelDescription
Readp_octetlive
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available no no

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value without length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 1: Transcoder state

1632
Tag = 0x0001
2 Bytes
Length = 0x0002
2 Bytes
Transcoder state (t_word)
2 Bytes
824
Not present0
Connected1

Tag 2: Version

1632
Tag = 0x0002
2 Bytes
Length
2 Bytes
Version (p_string)
Length Bytes
824

Tag 3: Number of sessions total

1632
Tag = 0x0003
2 Bytes
Length = 0x0002
2 Bytes
Number of sessions total (t_word)
2 Bytes
824

Tag 4: Number of sessions local

1632
Tag = 0x0004
2 Bytes
Length = 0x0002
2 Bytes
Number of sessions local (t_word)
2 Bytes
824

Tag 5: Number of sessions dedicated

1632
Tag = 0x0005
2 Bytes
Length = 0x0002
2 Bytes
Number of sessions dedicated (t_word)
2 Bytes
824

Tag 6: Sessions in use total

1632
Tag = 0x0006
2 Bytes
Length = 0x0002
2 Bytes
Sessions in use total (t_word)
2 Bytes
824

Tag 7: Sessions in use local

1632
Tag = 0x0007
2 Bytes
Length = 0x0002
2 Bytes
Sessions in use local (t_word)
2 Bytes
824

Tag 8: Sessions in use dedicated

1632
Tag = 0x0008
2 Bytes
Length = 0x0002
2 Bytes
Sessions in use dedicated (t_word)
2 Bytes
824

Tag 9: Session in use local by other VRM

1632
Tag = 0x0009
2 Bytes
Length = 0x0002
2 Bytes
Session in use local by other VRM (t_word)
2 Bytes
824

Tag 10: Sessions available total

1632
Tag = 0x000a
2 Bytes
Length = 0x0002
2 Bytes
Sessions available total (t_word)
2 Bytes
824

Tag 11: Sessions available local

1632
Tag = 0x000b
2 Bytes
Length = 0x0002
2 Bytes
Sessions available local (t_word)
2 Bytes
824

Tag 12: Sessions available dedicated

1632
Tag = 0x000c
2 Bytes
Length = 0x0002
2 Bytes
Sessions available dedicated (t_word)
2 Bytes
824

Tag 13: Sessions offline

1632
Tag = 0x000d
2 Bytes
Length = 0x0002
2 Bytes
Sessions offline (t_word)
2 Bytes
824

CONF_RCP_CLIENT_REGISTRATION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0xff00Nonenono
 DatatypeAccess LevelDescription
Readp_octetalwaysNot supported; will generate message if client idle timeout will happen in 1 minute
Writep_octetalways
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

The registration is a standard RCP packet with the command code 0xFF00 with data type P_OCTET (0x0c). The Numeric Descriptor is not used. The Client ID in the header section is ignored.

Request Payload Structure

1632
Registration Type
1 Byte
Reserved
1 Byte
Client ID
2 Bytes
PE
1 Byte
PL
1 Byte
Number Of Tags
2 Bytes
Tag [0]
2 Bytes
...
Tag [Number Of Tags - 1]
2 Bytes
Password...
N Bytes
Password
...
824

Registration Type

Modify Registration0x00
Normal Registration0x01
Hook Back Registration0x03

Client ID

Unused

PE

Password and User Delivery Encryption.
Plain text0x00
MD5 hash0x01

PL

Password and User String Length. Number of bytes to follow for the password string.

Number Of Tags

Number of message tags inside this packet.

Tag

Tag codes for the messages which should be passed to the RCP client (see tag code table for capability to generate messages) - A Tag code of 0xFFFF will force the VideoJet to generate a message on all possible events.

Password

Password string itself. NOTE: No \0 termination!

Response Payload Structure

1632
Result
1 Byte
Level
1 Byte
Client ID
2 Bytes
824

Result

Registration failed0x00
Registration successful0x01

Level

The level after this registration.
no0
live3
user1
service2

Client ID

Identification number under which the client is now registered at the VideoJet.

Registration Procedure

Normal Registration

  1. The client opens up a TCP connection to the VideoJet.
  2. The client sends an RCP registration as mentioned above.
  3. The RCP server (the VideoJet) will respond with the result code and the assigned Client ID.
  4. The client is now allowed to send RCP Requests provided with the Client ID.

Modify Registration

An already registered client can change the message list.

Hook Back Registration

This mechanism is used during connection establishment only. A called host is requested to do a back register to the calling host. To achieve proper client allocation on the calling host, the Client ID of the server session on the called host must be provided in the 'Hook back' registration (Password section).
Password format: XXXX@PasswordString

XXXX: The Client ID in hexadecimal notation (4 digits)
PasswordString:As defined below

Password and User Delivery and Encryption

There are currently three user levels on the videojet:

Plain Text

The identification string must have the following format: +Username:Password+

MD5 hash encryption:

  1. A 16 character random string for MD5 hash calculation must be requested from the VideoJet (RCP command CONF_RCP_REG_MD5_RANDOM).
  2. A string +random_string+++username:password+ must be formed.
  3. The response MD5 hash over this string must be calculated.
  4. The identification string in the register packet must have the following format: +Username:random_string:response_string+
Note: No additional whitespaces are allowed.

CONF_RCP_CLIENT_REGISTRATION_V2

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0xff04Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetalways
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

The registration is a standard RCP packet with the command code 0xFF00 with data type P_OCTET (0x0c). The Numeric Descriptor is not used. The Client ID in the header section is ignored.

Request Payload Structure

1632
Registration Type
1 Byte
Flags
1 Byte
Client ID
2 Bytes
PE
1 Byte
PL
1 Byte
Number Of Tags
2 Bytes
Tag [0]
2 Bytes
...
Tag [Number Of Tags - 1]
2 Bytes
Password...
N Bytes
Password
...
824

Registration Type

Modify Registration0x00
Normal Registration0x01
Hook Back Registration0x03

Flags

MaskNameDescription
Bit 20x04TAGGED_OPTION_HDRSignal that the client will send extra tagged option list on each request. Internal only
Bit 10x02MESSAGES_IN_V2_FORMATRegister for messages with extended timestamp and sequence number header. If this flag is set, then all messages sent from the server to this client have an additional timestamp and sequence number header right after the RCP+ Header. This header is identical to the 'Timestamp Header Structure' returned by CONF_RCP_MSG_V2_HISTORY. Please see description of CONF_RCP_MSG_V2_HISTORY for details.

Client ID

Unused

PE

Password and User Delivery Encryption.
Plain text0x00
MD5 hash0x01

PL

Password and User String Length. Number of bytes to follow for the password string.

Number Of Tags

Number of message tags inside this packet.

Tag

Tag codes for the messages which should be passed to the RCP client (see tag code table for capability to generate messages) - A Tag code of 0xFFFF will force the VideoJet to generate a message on all possible events.

Password

Password string itself. NOTE: No \0 termination!

Response Payload Structure

1632
Result
1 Byte
Level
1 Byte
Client ID
2 Bytes
824

Result

Registration failed0x00
Registration successful0x01

Level

The level after this registration.
no0
live3
user1
service2

Client ID

Identification number under which the client is now registered at the VideoJet.

Registration Procedure

Normal Registration

  1. The client opens up a TCP connection to the VideoJet.
  2. The client sends an RCP registration as mentioned above.
  3. The RCP server (the VideoJet) will respond with the result code and the assigned Client ID.
  4. The client is now allowed to send RCP Requests provided with the Client ID.

Modify Registration

An already registered client can change the message list.

Hook Back Registration

This mechanism is used during connection establishment only. A called host is requested to do a back register to the calling host. To achieve proper client allocation on the calling host, the Client ID of the server session on the called host must be provided in the 'Hook back' registration (Password section).
Password format: XXXX@PasswordString

XXXX: The Client ID in hexadecimal notation (4 digits)
PasswordString:As defined below

Password and User Delivery and Encryption

There are currently three user levels on the videojet:

Plain Text

The identification string must have the following format: +Username:Password+

MD5 hash encryption:

  1. A 16 character random string for MD5 hash calculation must be requested from the VideoJet (RCP command CONF_RCP_REG_MD5_RANDOM).
  2. A string +random_string+++username:password+ must be formed.
  3. The response MD5 hash over this string must be calculated.
  4. The identification string in the register packet must have the following format: +Username:random_string:response_string+
Note: No additional whitespaces are allowed.

CONF_RCP_CLIENT_TIMEOUT_WARNING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0xff03Noneyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Timeout Handling

The RCP server has to deal with lots of RCP connections at the same time. If an RCP client is going down without notification to the server, an orphan table entry will remain. To avoid this, a timeout mechanism is provided. Each RCP client must show any activity within 10 minutes. After this time the registration of a specific RCP client is invalid. For easy handling, the RCP client can register itself for an RCP_CLIENT_TIMEOUT_WARNIG message. The client will be notified 1 minute before the timeout occurs.
The timeout renewal can be achieved by any RCP read or write command. A good advise is to read the RCP_CLIENT_REGISTRATION.

CONF_RCP_CLIENT_UNREGISTER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0xff01Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetalways
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Request Payload Structure

The unregister is a standard RCP packet with the command code 0xFF01 with no payload section. The needed information (Client ID) will be taken from the header section.

Response Payload Structure

1632
Result
1 Byte
Level
1 Byte
Client ID
2 Bytes
824

Result

Unregister failed0x00
Unregister successful0x01

Level

The level before this unregister.

Client ID

Identification number under which the client was registered at the VideoJet.

Note: The command is not readable.

CONF_RCP_MSG_V2_HISTORY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c57Nonenono
 DatatypeAccess LevelDescription
Readp_octetserviceRead the list of RCPv2 Event-Messages pending in device history buffer, see detailed description
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Request Payload Structure

1632
Mode
2 Bytes
MaxResultMsg
2 Bytes
ModeSpecificData
(see description)
824

Mode

By Sequence Number0x0000Select the mode to read messages indicated by a initial sequence number.
By Timestamp0x0001Select the mode to read messages indicated by by relative timestamp

MaxResultMsg

Maximum number of result messages to be returned by one execution of this command.

ModeSpecificData


'ModeSpecificData' payload for 'Mode' = 'Sequence Number' (0x0000)

2448
MsgSeqNo
4 Bytes
BootCount
2 Bytes
1236

MsgSeqNo

The first returned message will be the next in device buffer after those indicated by this number. e.g. if MsgSeqNo is 7, then first result is 8 or even a higher number if there is no message 8 according to filters in this data path. If value 0 is supplied then the result starts with the oldest message which is still available on the device. To perform a chunked read the last MsgSeqNo returned by prior request to this command can be the argument of the next request to retreive the next chunk.

BootCount

Boot counter. This in combination with MsgSeqNo makes a unique ID for a message. If supplied BootCount is lower than actual BootCount then all messages in Buffer are returned up to MaxResultMsg

'ModeSpecificData' payload for 'Mode' = 'Timestamp' (0x0001)

1632
LastNumSeconds
4 Bytes
824

LastNumSeconds

The first returned message will be those indicated by this number of seconds back in the past. E.g. value of 30 will start returning the oldest messages which was triggered 30 seconds ago, and then continue with all subsequent up to MaxResultMsg.

Response Payload Structure

The result payload consists of a repeated sequence for each returned message. A RCP-Plus header (see chapter 'Transport Protocol'), a Timestamp Header, and then the usual RCP-Message payload.

Timestamp Header Structure

1632
MsgSeqNo
4 Bytes
SecSince2000
4 Bytes
Milliseconds
2 Bytes
BootCount
2 Bytes
SkippedSeqNo
2 Bytes
Timezone
1 Byte
Reserved
1 Byte
824

MsgSeqNo

Message counter starts with 0 on each bootup

SecSince2000

Time in seconds from RTC in UTC

Milliseconds

Millisecond extension to SecSince2000

BootCount

Number of reboots. Use in combination with MsgSeqNo to get a unique Message-ID

SkippedSeqNo

Number of skipped sequence numbers in this stream due to registering/filtering rules

Timezone

Timezone in 15 minute steps. Negative values have the leading bit 7 set. E.g. 0x03 = +45 minutes; 0x84 = -60 minutes

CONF_RCP_REG_MD5_RANDOM

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0xff05Nonenono
 DatatypeAccess LevelDescription
Readp_string p_octetalwaysReturns a 16 char. random string to be used in MD5 hash encrypted registration. see detailed description
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Note: To avoid 'denial of service' attacks, the RCP server will only grant up to 5 random strings at the same time. Maximum time from the request of a random string to its use: 5 seconds. Multiple requests from the same host are ignored.

CONF_RCP_SERVER_PORT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a17Nonenono
 DatatypeAccess LevelDescription
Readt_wordminimalGet the local RCP server TCP port number
Writet_wordserviceSet the local RCP server TCP port number, allowed: 0 or 1756 (Reboot necessary)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_RCP_TRANSFER_TRANSPARENT_DATA

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0xffddNoneyesno
 DatatypeAccess LevelDescription
Readp_octetlive
Writep_octetuser
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

The transparent data from and to the serial interfaces is handled by RCP to achieve reliable transfer of information. To gather control over the remote serial interface a successful registration is necessary.
Once the VideoJet has received a TRANSFER_TRANSPARENT_DATA command, it checks whether the RCP client is in control or not. If the RCP client is allowed to send data to the serial interface, the reply will present an OK. If the RCP client is not allowed to send data, a FAIL will be returned. In this case another RCP client is controlling the serial out. The timeout and priority handling of the serial ports is beyond the scope of this document.
Note: This command is NOT readable in a sense to obtain data from a serial port. In can only be read in order to check if serial port access is currently granted. See further details below.

Reading the TRANSFER_TRANSPARENT_DATA command

The reply to the Read command will be the same as the reply to the write command. The returned code will present the availability of the serial port.
NOTE: Despite a positive reply to a read command, the port may be locked by another RCP client in the time slice between the read and a following write command.

Serial IN -> RCP Client

The data coming from the serial input is delivered using an RCP message. All RCP clients which want to receive this data must be registered for the message 0xFFDD. Data is posted if the corresponding RCP client is in control only.
If no client has a lease on the serial port, a message to all registered clients will be generated.
NOTE: The received message will carry NO header.

Num Descriptor Values

AnyPort to write to

Write Payload Structure

1632
Options
1 Byte
Reserved
1 Byte
Lease Time
2 Bytes
Transparent Data
N Bytes
824

Options

Currently no options used

Lease Time

Time in seconds the lease is requested
AnyTime in seconds the lease is requested
None0x0000Only this packet should be sent out; no further control is requested
Infitinite0xFFFFIndefinite lease time; request lease as long as the current registration is valid
Note: The lease time should be treated as a request; the VideoJet may switch leases before the requested time is over due to a higher prioritized RCP client

Response Payload Structure

1632
Code
1 Byte
Reserved
3 Bytes
824

Code

Access Denied0x00Access to the serial port denied
Access Granted0x01Access to the serial port granted

CONF_AUTODETECT_REPLY_GROUP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0956Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the multicast group to which (when set) the VJ will listen for multicast autodetect requests
Writet_dwordserviceGet the multicast group to which (when set) the VJ will listen for multicast autodetect requests
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DISCOVER_PORT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0976Nonenono
 DatatypeAccess LevelDescription
Readt_wordminimalGet the discover port
Writet_wordserviceSet the discover port
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_UNSOLICITED_AUTODETECT_REPLY_TIME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0957Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the time in seconds, when the VJ shall send out unsolicited autodetect reply to the RCP port(off when set to 0)
Writet_dwordserviceSet the time in seconds, when the VJ shall send out unsolicited autodetect reply to port 1800 (off when set to 0); uses broadcast, and multicast if AUTODETECT_REPLY_GROUP is set
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ACCESS_LUN_MGMT_FILE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ae2Nonenono
 DatatypeAccess LevelDescription
Readp_octetserviceAccess lun management information.
Writep_octetserviceAccess lun management information.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command can be used to acces the lun managment file. This exists only on span formatted luns, which were formatted by firmware /generic dll versions, that are able to create this file. Older versions cannot do this. The file name is "lunmgmt.bin". the max size which can be stored is 504 bytes. The in payload for reading or writing this command has to be at least a size of 12 bytes and includes the lun address for read/write from/to lun mgmt file. The response on the read direction includes the user data from the lun mgmt file. The data length will be the remayning bytes from the respons payload size minus the lun address and the reserved bytes (12 bytes together). Same in write direction. The payload size determines the number of bytes to write to the lun mgmt file(max 504 bytes).

Payload Structure

1632
target id
4 Bytes
target idx
1 Byte
lun
1 Byte
reserved...
6 Bytes
reserved
...
data
n Bytes (max 504 bytes)
824

target id

Target id of the lun (may be the ipv4 address for older versions or with default target resolve configuration, see CONF_TARGET_ID_RESOLVE_RULES)

target idx

Target index of the lun

lun

Lun

reserved

data

User data to read/write from/to the lun mgmt file

CONF_ALARM_BACKUP_REC_SPEED_LIMIT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bb0video linenono
 DatatypeAccess LevelDescription
Readp_octetuserGet the speed limit parameter, see detailed description
Writep_octetserviceSet the speed limit parameter, see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command can be used to limit the data traffic caused by backuped recording per line (num parameter 1 to n). This can be done by limiting the data rate and/or the speed in percent(100 percent means backup speed like replay in normal speed), based on the time information of the video data. The backup can be stopped completly, by sending a speed limit by 0 and continued again by sending a non zero speed later. It cannot be stopped by the data rate, a value of 0 for the data rate means to disable the limit for the data rate. The data rate parameter isn't applied immediately, but when the next backup starts.

Payload Structure

1632
speed limit
4 Bytes
data rate limit
4 Bytes
824

speed limit

Speed limit in percent (0 to 9999, default 200)

data rate limit

Data rate limit in Kbps (0 - no limit, default 0)

CONF_AUDIO_REC_FORMAT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ae9video linenono
 DatatypeAccess LevelDescription
Readt_octetminimalGet audio format for recording (0: NO, 1: G711, 2: L16, 3: AAC)
Writet_octetserviceSet audio format for recording (0: NO, 1: G711, 2: L16, 3: AAC) (running recording has to be stopped and restarted in order to become effective)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_BACKUP_RECORDING_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bb4video lineyesno
 DatatypeAccess LevelDescription
Readp_octetuserGet the backup recording status, see detailed description
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command returns the backup recording status on a line, specified by the num parameter (1 ... n). First it looks for a valid configuration of backup recording. Valid means, there exists a running recording configured to record the life data and a second recording for backup, which copies the data from the life data recording storage to it's recording storage on alarm or continuously. If both "rec idx life" and "rec idx backup" are none zero, there is a valid configuration. Then the following fields inform about the status and progress of the backuped recording. The utilization of the life data recording storage can be calculated in percent with the equation: utilization = ("unbackuped MB" * 100)/("unbackuped MB" + "backuped MB" + "free MB"). The status will be send as message, if the utilization will cross some thresholds. There are two thresholds, the "All Clear" threshold and the "Warning" threshold. These thresholds can be configured with the command CONF_BACKUP_RECORDING_STATUS_MSG_THRESHOLD (see rcp documentation). Another reason for sending this message will be on deleting or overwriting of records, which had to be backuped but weren't backuped before deletion, or were deleted while still within the maximum retention time range. Every time this event happens, the lost counter will be incremented. This counter will count since device boot.

Payload Structure

1632
rec idx life
2 Bytes
rec idx backup
2 Bytes
free MB
4 Bytes
backuped MB
4 Bytes
unbackuped MB
4 Bytes
lost counter
4 Bytes
msg trigger
1 Byte
reserved
3 Bytes
824

rec idx life

Recording index of the recording, which is configured for life data recording
Values:
None0
Primary1
Secondary2

rec idx backup

Recording index of the recording, which is configured for data backup of the life data recording
Values:
None0
Primary1
Secondary2

free MB

Free Storage space in MB for the life data recording

backuped MB

Storage space in MB with records of the life data recording for this line, which are already backuped or which are not required to be backuped

unbackuped MB

Storage space in MB with records of the life data recording for this line, which have to be backuped or potentially required to be backuped, because they are in range of the max pre alarm time

lost counter

Counter for events of records, which had to be backuped and that couldn't be backuped, on deleting or overwriting by newer records

msg trigger

Reason for sending this status
Values:
REQUESTED0Response on request
ALL_CLEAR1All clear threshold passed
WARNING2Warning threshold passed
DATA_LOSS3New data loss

CONF_BACKUP_RECORDING_STATUS_MSG_THRESHOLD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bb5video linenono
 DatatypeAccess LevelDescription
Readp_octetuserGet the thresholds, see detailed description
Writep_octetserviceSet the thresholds, see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command configures the thresholds for the CONF_BACKUP_RECORDING_STATUS message. The message will be send, when the storage space utilization will cross the "all clear" threshold by changed utilization from higher to lower utilization or when crossing the "warning" threshold by changed utilization from lower to higher utilization.

Payload Structure

1632
all clear threshold
1 Byte
warning threshold
1 Byte
reserved
2 Bytes
824

all clear threshold

Threshold for all clear in percent

warning threshold

Threshold for warning in percent

CONF_BUFFERED_RECORDING_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bcdNonenono
 DatatypeAccess LevelDescription
Readt_octetuserGet the buffered recording mode: 0 off, 1 on
Writet_octetserviceSet the buffered recording mode: 0 off, 1 on,
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command can be used to configure the buffered recording configuration mode. The default is the manual mode, which is used for standard (single/dual) recording or manually configured buffered recording, which means the primary and secondary recording will be setup to do buffered recording. In case of buffered recording configuration mode, the device recording configuration will be changed internally to an buffered recording setup. The recording will then be configured like a single primary recording via recording profiles but internally the configuration is mapped to a coresponding buffered recording setup. When set to this mode, the secondary recording isn't accessable anymore via recording profile configuration (affected comands: CONF_HD_RECORD_PROFILE, CONF_HD_RECORD_PROFILE_V2, CONF_HD_RECORD_PROFILE_SECONDARY, CONF_HD_PROFILE_V2_SECONDARY) and start/stop configuration(affected commands: CONF_START_RECORD, CONF_START_SPAN_RECORD, CONF_HD_MGR_START, CONF_HD_MGR_START_SECONDARY, CONF_HD_MGR_STOP, CONF_HD_MGR_STOP_SECONDARY). When the mode is changed, the actual recording is stopped.

Payload Structure

48
Buffered Rec Mode
1 Byte
26

Buffered Rec Mode

Manual configuration0
Buffered recording configuration mode1

CONF_CAM_REC_SPANS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a8fNonenono
 DatatypeAccess LevelDescription
Readp_octetminimalRetrieve the list of recording spans of a camera from a span manager on a managed lun.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
IP
4 Bytes
MAC...
6 Bytes
MAC
...
Recording Index
1 Byte
Camera
1 Byte
LUN Target ID
4 Bytes
LUN Target IDX
1 Byte
LUN
1 Byte
Reserved
2 Bytes
824

IP

The ip address of the recording device.

MAC

The hardware address of the recording device. This field may be zero if you search for recordings without considering the mac.

Recording Index

Primary Recording1
Secondary Recording2

Camera

The camera index.

LUN Target ID

Target id of the lun (may be the ipv4 address for older versions or with default target resolve configuration, see CONF_TARGET_ID_RESOLVE_RULES).

LUN Target IDX

The index of the target.

LUN

The logical unit number.

Response/Message Payload Structure

1632
IP
4 Bytes
MAC...
6 Bytes
MAC
...
Recording Index
1 Byte
Camera
1 Byte
LUN Target ID
4 Bytes
LUN Target IDX
1 Byte
LUN
1 Byte
Reserved
2 Bytes
Span Recording Info [0]
(see description)
...
Span Recording Info [N]
(see description)
824

Span Recording Info

1632
Span Index
2 Bytes
S
1 Bit
Timezone
7 Bits
Flags
1 Byte
Start Time
4 Bytes
Stop Time
4 Bytes
Reserved
2 Bytes
File Count
2 Bytes
Extended Record Info(optional)...
8 Bytes
Extended Record Info(optional)
...
824

Span Index

The span index in the current lun.

S

The timezone sign.

Timezone

Timezone in quarter hours.

Flags

Values:
MaskName
Bit 70x80extended span rec info
Bit 60x40virtual alarm
Bit 50x20video loss
Bit 40x10motion alarm
Bit 30x08input alarm
Bit 20x04reserved (former migrated recording)
Bit 10x02Recording Running
Bit 00x01Continous Recording

Start Time

Seconds since 2000.

Stop Time

Seconds since 2000.

Reserved

File Count

The number of files that are stored in this span.

Extended Record Info(optional)

Additional info, only present, if flag for extended span rec info is set.

1632
Extended Record Info
(see description)
824

Extended Record Info

1632
ext bytes
1 Byte
flags
1 Byte
rec density
1 Byte
recorder version
1 Byte
recorder minor verion
1 Byte
vcd cache fill level
1 Byte
reserved
2 Bytes
824

ext bytes

Size of extension bytes (actual always 8 bytes)

flags

Values:
MaskName
Bit 50x20meta in file
Bit 40x10audio in file
Bit 30x08last file time record
Bit 20x04last file alarm record
Bit 10x02first file time record
Bit 00x01first file alarm record

rec density

Always 0

recorder version

FW version of the recorder.

recorder minor verion

FW minor of the recorder.

vcd cache fill level

Vcd cache fill level in percent

reserved

Reserved.

CONF_DELETE_CAM_REC_SPANS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b5dNonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetserviceDelete recording spans of a camera from a span manager on a managed lun.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command is used for deleting spans of a specific recording line and index containing recordings between a given time interval. The flag "delete enclodes spans only" chooses wether a span shall be deletet if it is completetly enclosed by the time interval or if it only overlaps the interval. The flag "force delete" will delete all spans of the cam independend of the state of the span. That means even if the cam is still recording on a span, the span will be deleted. So use this option very carefully, as it could lead to inconsitencies. If the command return successfully, it doesn't mean, that the deletion is completetd, it just tells the caller, that a asychonous job for deletion was invoked. The command has to be send to the storage lun managing device.

Payload Structure

1632
Recording Camera
(see description)
Lun Address
(see description)
From
4 Bytes
To
4 Bytes
Flags
4 Bytes
824

Recording Camera

1632
IP
4 Bytes
MAC...
6 Bytes
MAC
...
Recording Index
1 Byte
Camera Index
1 Byte
824

IP

The IP address of the recording device.

MAC

The hardware address of the recording device. This field may be zero if you search for recordings without considering the mac.

Recording Index

Primary Recording1
Secondary Recording2

Camera Index

The camera index

Lun Address

1632
Target ID
4 Bytes
Target Idx
1 Byte
Lun
1 Byte
Reserved
2 Bytes
824

Target ID

The target id of the lun (may be the ipv4 address for older versions or with default target resolve configuration, see CONF_TARGET_ID_RESOLVE_RULES).

Target Idx

The index of the target.

Lun

The logical unit number.

From

Start time of the interval in Seconds since 2000 local time for deleting.

To

End time of the interval in Seconds since 2000 local time for deleting.

Flags

MaskNameDescription
Bit 10x00000002ForceForceDeletion
Bit 00x00000001EnclosedOnlyDelete enclosed spans only

CONF_EXPORT_SPAN

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a2eNoneyesno
 DatatypeAccess LevelDescription
Readp_octetminimalRetrieve a span of the devices storage.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Request Payload Structure

1632
Recording Camera...
(see description)
Recording Camera
...
Recording Camera
...
Lun Addr...
(see description)
Lun Addr
...
Overwrite Retention Time
max. 128 bytes
Reserved
4 Bytes
Url...
8 Bytes
Url
...
824

Recording Camera

The address of the device the span is assigned to.
1632
IPv4
4 Bytes
MAC...
6 Bytes
MAC
...
Recording Index
1 Byte
Camera
1 Byte
824

IPv4

The ipv4 address of the recording device. If the device hasn't an ipv4 Adress, this field should be set to invalid (zero ip 0.0.0.0). In that case a valid url has to be provided.

MAC

The hardware address of the recording device.

Recording Index

Primary Recording1
Secondary Recording2

Camera

The camera index starting from 1.

Lun Addr

The address of the lun a span is desired from.
1632
Target ID
4 Bytes
Target IDX
1 Byte
LUN
1 Byte
Reserved
2 Bytes
824

Target ID

The target id of the lun (may be the ipv4 address for older versions or with default target resolve configuration, see CONF_TARGET_ID_RESOLVE_RULES).

Target IDX

The index of the target.

LUN

The logical unit number.

Overwrite Retention Time

If this field is set (> 0) and no free spans are available, spans with retention times that are lower or equal to the specified retention time are accounted for export. In this case the recording with the retention time that expires next is overwritten.

Url

Url of the the device which requests the span as zero terminated ascii string. Max length is 128 bytes including zero termination. This parameter is optional but is requiered if the device doesn't has an ipv4 address or if the IPv4 adress of the Cam id is not used.

Response/Message Payload Structure

1632
Recording Camera/Storage Managing Host...
12 Bytes
Recording Camera/Storage Managing Host
...
Recording Camera/Storage Managing Host
...
Span Address...
(see description)
Span Address
...
Last Recording...
(see description)
Last Recording
...
Last Recording
...
Last Recording
...
State
1 Byte
Reserved
3 Bytes
824

Recording Camera/Storage Managing Host

The address of the device the span is assigned to, only in message payload. In case of message payload only the MAC address will be delivered and all other field will be zero.
1632
IPv4
4 Bytes
MAC...
6 Bytes
MAC
...
Recording Index
1 Byte
Camera
1 Byte
824

IPv4

The ipv4 address of the recording device. If the device hasn't an ipv4 Adress, this field should be set to invalid (zero ip 0.0.0.0). In that case a valid url has to be provided.

MAC

The hardware address of the recording device.

Recording Index

Primary Recording1
Secondary Recording2

Camera

The camera index starting from 1.

Span Address

The address of the span the device exports. If this field is zero, no span is exported.
1632
Target ID
4 Bytes
Target IDX
1 Byte
LUN
1 Byte
Span IDX
2 Bytes
824

Target ID

The target id of the lun (may be the ipv4 address for older versions or with default target resolve configuration, see CONF_TARGET_ID_RESOLVE_RULES).

Target IDX

The index of the target.

LUN

The logical unit number.

Span IDX

The index of the span on the lun.

Last Recording

The address of the span the device exports.
1632
Recording Camera...
12 Bytes
Recording Camera
...
Recording Camera
...
Retention Time
4 Bytes
824

Recording Camera

The id of the camera of the recording that is overwritten. Field is zero, if there was no recording on this span.
1632
IPv4
4 Bytes
MAC...
6 Bytes
MAC
...
Recording Index
1 Byte
Camera
1 Byte
824

IPv4

The ipv4 address of the recording device. If the device hasn't an ipv4 Adress, this field should be set to invalid (zero ip 0.0.0.0). In that case a valid url has to be provided.

MAC

The hardware address of the recording device.

Recording Index

Primary Recording1
Secondary Recording2

Camera

The camera index starting from 1.

State

Values:
SUCCESS0x00
NO SPAN AVAILABLE0x01
STORAGE OFFLINE0x02
INVALID SPAN MANAGER ADDRESS0x03
ACCESS DENIED0x04

Note: A list of span manager the recording is using can be obtained by the command CONF_REC_SPAN_MGR.

CONF_EXT_RECORDER_BITRATE_STATISTICS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c94Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalRecording bitrates:
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Request Payload Structure

1632
cam
2 Bytes
rec idx
2 Bytes
data type
1 Byte
reserved
3 Bytes
824

cam

Camera index starting with 1

rec idx

Recording index
Values:
Primary Recording1
Secondary Recording2

data type

Values:
Video Data0
Other Data1

Response Payload Structure

See reply payload of CONF_EXT_ENCODER_BITRATE_STATISTICS

CONF_FLUSH_LUN_INFO_CACHE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b09Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetserviceFlush the lun info cache of lun: 4 bytes IP as DWORD in network byte order, 1 byte target idx, 1 byte lun, 2 bytes reserved (if ip is 0.0.0.0 or 255.255.255.255 or the payload is less than 6 bytes it is asumed as wildcard, the whole cache will be flushed)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_FORMAT_FS_SPAN

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09e6Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetserviceFormat the lun into spans. (not allowed while recording on this lun)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
Target ID
4 Bytes
Target IDX
1 Byte
Lun IDX
1 Byte
Span Cnt
1 Byte
Span Size
1 Byte
Flags
1 Byte
reserved
3 Bytes
824

Target ID

Target ID of ISCSI Server(server ipv4 address if std TargetID resolve rule is applied)
Values:
Local USBff.ff.ff.ffLocal connected USB disk.
iSCSIServerAny IP addressValid ip address

Target IDX

Index of the iSCSI server target. The index of the desired target can be obtained from the reply to an iSCSI discover.

Lun IDX

Index of the lun of the specified target.

Span Cnt

Number of spans the lun shall be formated with

Span Size

Size of each span in megabyte. (1 MB = 1024 x 1024 Bytes)

Flags

These flags define the operations to be executed. If no flags are set (default), nothing will be done.
Format options:
REPAIR_FS0x01Repair file system without clearing spans
CLEAR_SPANS_ONLY0x02Only clear the spans

Command Specific Errors

SPAN_ERR_INTERNAL0x01
SPAN_ERR_NOT_MNTD0x05
SPAN_ERR_INV_FS0x06
SPAN_ERR_INV_LUN_NFO0x07
SPAN_ERR_RD_ONLY0x0a
SPAN_ERROR_OLD_LUN_NFO0x20
ISCSI_ERROR_CONNECT0x31
ISCSI_ERROR_INV_LUN0x33
ISCSI_ERROR_LOGIN0x34
ISCSI_ERROR_INV_TRG_IDX0x35

Note: The reply packet will contain the values of the actually formated spans and size. If the product of the span count and the span size in the request packet exceeds the size of the current lun, only as many as possible spans are formatted. If the product is less than the available lun space, the back part of the lun will be unused. Size of the write payload is at least 12 bytes, if the optional flags are uses the payload has to be at least 16 bytes.
Note: Note: A list of all defined error types can be found in the Appendix.

CONF_FORMAT_FS_SPANS_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09f5Noneyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This message reports the status and progress of a running format. The formatting includes the creation of the FAT32 file system (step: HD_STEP_FORMAT_FS) and clearing of the span header files(step: HD_STEP_CLEAR_SPAN_HEADER). The progress is reported about the whole formatting. A successful format should always end with a message with 100 percent progress at step HD_STEP_CLEAR_SPAN_HEADER and status should be HD_FORMAT_STATUS_FINISHED. A failed format should finish with a status HD_FORMAT_STATUS_FAILED at any progress and any step. After these final messages no futher messages will follow. The whole formatting takes two steps HD_STEP_FORMAT_FS and HD_STEP_CLEAR_SPAN_HEADER. First step HD_STEP_FORMAT_FS will run up to 90 percent and will end with a 90 percent progress message and status HD_FORMAT_STATUS_FINISHED if successful. Then the last step HD_STEP_CLEAR_SPAN_HEADER will follow from 90 to 100 percent and will also end with a HD_FORMAT_STATUS_FINISHED status if successfull, which is also as mentioned earlier the final success message. If the formatting runs with the option of disk erasing, The first step will be the HD_STEP_ERASE_DISK step and will run upto 70 percent if successful.

Payload Structure

1632
Step
1 Byte
Status
1 Byte
Progress
2 Bytes
Ip
4 Bytes
Target_idx
1 Byte
Lun
1 Byte
Reserved
2 Bytes
824

Step

Which step of the formating (FAT32 Formatting including creating spans and clearing span headers)
Values:
HD_STEP_FORMAT_FS0x00
HD_STEP_CLEAR_SPAN_HEADER0x02

Status

Reports the state of formatting. The format can be in state of running, failed or successfully finished. success means the creation of the fat32 file system and the empty spans or clearing the span headers was successfully.
Values:
HD_FORMAT_STATUS_FAILED0xff
HD_FORMAT_STATUS_RUNNING0x00
HD_FORMAT_STATUS_FINISHED0x02
HD_FORMAT_ERASE_DISK0x03

Progress

Value from 0 to 100 represent the progress of the format including the creation of the empty recording spans and clearing the header files.
Values:
Progress in percent0 - 100

Ip

Ip of the storage device or lun, that is formatting

Target_idx

Target Index of the storage device from 0 to 255.

Lun

Lun of the storage device from 0 to max. 255.

Reserved

2 Bytes reserved

CONF_HD_FILE_INFO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x091dvideo lineyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This message is used for updating actual recording files, it will be send periodically about every second by the recording device, that is running the recording on that file. The message informs about the start and end time changes of an file. For uniqe idetification, the message includes the span address and a file id. it also has the information about the recording cam (attention: in older firmware the file info msg only has the first 4 payload fields(from start time to file id))

Payload Structure

1632
start time
4 Bytes
end time
4 Bytes
flags
4 Bytes
file id
4 Bytes
target id
4 Bytes
target idx
1 Byte
lun
1 Byte
span idx
2 Bytes
cam
1 Byte
recording idx
1 Byte
reserverd
2 Bytes
824

start time

Start time in seconds since 2000 of the recording file

end time

End time in seconds since 2000 of the recording file

flags

File info flags, see CONF_HD_PARTITION_FILE_INFO

file id

File ID on the file unique per span

target id

Target id of the lun (may be the ipv4 address for older versions or with default target resolve configuration, see CONF_TARGET_ID_RESOLVE_RULES)

target idx

Target index of the span

lun

Lun of the span

span idx

Span index

cam

Camera from 1 to ...

recording idx

Recording index (primary or secondary)
Values:
primary1
secondary2

reserverd

CONF_HD_FILE_INFO_SECONDARY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a64video lineyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This message is used for updating actual recording files, it will be send periodically about every second by the recording device, that is running the recording on that file. The message informs about the start and end time changes of an file. For uniqe idetification, the message includes the span address and a file id. it also has the information about the recording cam (attention: in older firmware the file info msg only has the first 4 payload fields(from start time to file id))

Payload Structure

1632
start time
4 Bytes
end time
4 Bytes
flags
4 Bytes
file id
4 Bytes
target id
4 Bytes
target idx
1 Byte
lun
1 Byte
span idx
2 Bytes
cam
1 Byte
recording idx
1 Byte
reserverd
2 Bytes
824

start time

Start time in seconds since 2000 of the recording file

end time

End time in seconds since 2000 of the recording file

flags

File info flags, see CONF_HD_PARTITION_FILE_INFO

file id

File ID on the file unique per span

target id

Target id of the lun (may be the ipv4 address for older versions or with default target resolve configuration, see CONF_TARGET_ID_RESOLVE_RULES)

target idx

Target index of the span

lun

Lun of the span

span idx

Span index

cam

Camera from 1 to ...

recording idx

Recording index (primary or secondary)
Values:
primary1
secondary2

reserverd

CONF_HD_MGR_REC_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0aaevideo lineyesno
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command shows the state for a recording. It can be read and it will be send at state changes. State changes are the change of rec state or rec preset only. Within the Msg there is no distiction between the state OFF and NO RECORDING. That means no msg will be send on the state change between this two states. The msg will never contain the state OFF but the read response maybe. OFF state means the recording is configured to off by set it to stop. NO RECORDING can be caused by many things e.g. no recording on the schedule, no storage present and so on. STAND BY means there is recording on the schedule but not at the moment. The recording scheduler waits for the time to start the recording. All the other states indicating a running recording. In case of alarm recording in prealarm state, the message state will be PRE ALARM RECORDING even if the pre alarm recording takes place in the ram only, if at least the storage is connected. If there is no storahge connected and recording is configured for running, the state will alway be NO RECORDING.

Payload Structure

1632
rec state
1 Byte
rec preset
1 Byte
enc preset
1 Byte
flags
1 Byte
824

rec state

State of the recording, state OFF not in payload of msg
Values:
OFF0
NO RECORDING1
STAND BY2
PRE ALARM RECORDING3
ALARM RECORDING4
POST ALARM RECORDING5

rec preset

Actual used recording preset from 1 to 10 or 0 if no preset is used

enc preset

Actual used encoder preset from 1 to 8 or 0 if no preset is used

flags

These flags show the alarm states and the recording mode
MaskName
Bit 70x80reserved for extension
Bit 40x10virtual alarm
Bit 30x08video loss
Bit 20x04motion alarm
Bit 10x02input alarm
Bit 00x01alarm recording mode

CONF_HD_MGR_REC_STATUS_SECONDARY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0aafvideo lineyesno
 DatatypeAccess LevelDescription
Readp_octetminimalSame as CONF_HD_MGR_REC_STATUS but for secondary recording (see cmd CONF_HD_MGR_REC_STATUS)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_MGR_START

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0913video lineyesno
 DatatypeAccess LevelDescription
Readf_flagminimalReturn TRUE when manager is on or when primary span recording is on
Writef_flagserviceStart/stop the recording manager and set config to recording on:1/off:0. Can cause recording if time/alarm recording selected.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_MGR_START_SECONDARY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a46video lineyesno
 DatatypeAccess LevelDescription
Readf_flagminimalReturn TRUE when secondary span recording is on
Writef_flagserviceStart/stop the recording manager and set config to recording on:1/off:0. Can cause recording if time/alarm recording selected.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_MGR_STOP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0914video linenono
 DatatypeAccess LevelDescription
Readf_flagminimalReturn TRUE when manager is off or when primary span recording is off
Writef_flagserviceStop/start the recording manager and set config to primary recording off:1/on:0.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_MGR_STOP_SECONDARY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a47video linenono
 DatatypeAccess LevelDescription
Readf_flagminimalReturn TRUE when secondary span recording is off
Writef_flagserviceStop/start the recording manager and set config to secondary recording off:1/on:0.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_PARTITION_RECORDING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a03video linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalRecording status of cam for primary recording (1 = running, 0 = not running)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_PARTITION_RECORDING_SECONDARY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a4dvideo linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalRecording status of cam for secondary recording (1 = running, 0 = not running)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_PARTITIONS_RECORDING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x091ayes (1 - primary recording, 2 - secondary recording)nono
 DatatypeAccess LevelDescription
Readp_octetminimalList of cams with running recording
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_REC_BUFFER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b8fNonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command gets information about the recording buffer size, it includes the full amount of buffer for all recordings, the allocated, and the minimum amount of buffer of the recording specified by the in payload. The "full buffer bytes" is usually preallocated memory at startup and won't change it's size as long as the device is running and is the same for all recordings (except streaming gateway). The "min buffer bytes" is the amount of buffer the device will at least allocate if running. The "allocated buffer bytes" is the amount of buffer the recording has actually allocated. This value can be higher than "min buffer bytes", if nt all possible recrdings are running. The unused buffer of non running recordings will be used by the running ones. If the recording is deaktivated, the value will be 0. When running, the value wil be usually at least "min buffer bytes", but it can be temporary less than that value, if e.g. the recording was started shortly before and another already running recording has allocated the whole buffer. In that case it could take some time free the buffer by the running recording, so the allocated buffer will increase over the time. The "filled buffer bytes" is the amount of buffer memory of the the "allocated buffer bytes", which contains data for recording or in case of alarm recording, the amout to be recorded, if an alarm would occur in this moment. The "filled_buffer bytes" can therefor be used to calculate the fill level of the recording buffer.

Request Payload Structure

1632
Cam
2 Bytes
Rec idx
2 Bytes
824

Cam

Camera starting with 1 (in payload)

Rec idx

Recording index (in payload)
Primary Recording1
Secondary Recording2(active low)

Response Payload Structure

1632
Cam
2 Bytes
Rec idx
2 Bytes
Full buffer bytes
4 Bytes
Allocated buffer bytes
4 Bytes
Min buffer bytes
4 Bytes
Filled buffer bytes
4 Bytes
824

Cam

Camera starting with 1 (in payload)

Rec idx

Recording index (in payload)
Primary Recording1
Secondary Recording2(active low)

Full buffer bytes

Full amount of buffer in bytes for recording on this device

Allocated buffer bytes

Actual allocated buffer for this recording

Min buffer bytes

The minimum amount of buffer the recording would allocate

Filled buffer bytes

The amount of buffer that contains data for recording (not the data which are recorded but still in buffer)

CONF_HD_RECORD_HOLIDAYS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a0cNonenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead holiday schedule list for primary recording, see detailed description
Writep_octetserviceWrite holiday schedule list (effect takes place imidately), see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command reads/writes the Holiday table for the primary recording. On holidays the recording uses the special schedule instead of the standard schedule. The table contains N entries (max. 25) each entry specifies one or more holidays in a row followd by a recording schedule. the payload sends only valid holiday entries, so the size of N depends on the number of valid entries in the table.

Payload Structure

holiday schedule entry [0]
(see description)
...
holiday schedule entry [N]
(see description)

holiday schedule entry

Schedule entry specifing a holiday and it's recording schedule. max. 25 entries.
1632
day
1 Byte
month
1 Byte
year
1 Byte
number of days
1 Byte
reco [0]
4 Bits
...
reco [95]
4 Bits
824

day

Day of the month, which is a holiday
Values:
invalid0
day of the month1 - 31

month

Month of the year
Values:
invalid0
january1
february2
march3
april4
may5
june6
july7
august8
september9
october10
november11
december12

year

Year since 2000
Values:
year 2000 to 22550 - 255

number of days

Number of days that follow the specified holiday, which are also scheduled as holidays. If only the specified date is the holiday, this field should be set to 1.
Values:
invalid0
number of days1 - 255

reco

This is the recocording schedule containing 96 entries of recording profile numbers for the holiday, each represents the recording profile for a 15 min time period. First entry is from 00:00 to 00:15. The following entries are for the following 15 min time periods until 24:00.
Values:
recording off0
recording profile numbers1 - 10

CONF_HD_RECORD_PROFILES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a0dvideo linenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead recording profiles, see detailed description
Writep_octetserviceSet recording profiles (effect takes place imidiatly), see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Read/Write up to ten recording profiles (at least one) for a camera, payload upto 560 bytes total. The profiles will be written to the device config. These profiles are used as default profiles for each span that is mounted by this cam for span recording. If less than 10 profiles will be written, the remaining profiles stay unchanged.

Payload Structure

Recording Profile [0]
(see description)
...
Recording Profile [9]
(see description)

Recording Profile

1632
Flags
1 Byte
video preset nr
1 Byte
post alarm video preset nr
1 Byte
encoder index
1 Byte
reserved
12 Bits
See *0
1 Bit
See *1
2 Bits
See *2
1 Bit
profile name (p_string)...
32 Bytes
profile name
[...]
profile name
...
profile name (p_string)
...
max pre alarm time
2 Bytes
pre alarm time
2 Bytes
post alarm time
2 Bytes
motion alarm
4 Bytes
alarm input and virtual alarm
4 Bytes
video loss alarm
4 Bytes
824

*0cont rec backup
*1Back Up Account
*2internal used

Flags

MaskName
Bit 60x40MANAGED_BY_ONVIF
Bit 50x20IMMEDIATE_ALARM_BACKUP
Bit 40x10ALARM_RECORDING_PRE_ALARM_BUFFER
Bit 30x08ALARM_FILE_BACKUP
Bit 20x04META_RECORDING_DISABLE
Bit 10x02AUDIO_RECORDING_DISABLE
Bit 00x01ALARM_RECORDING_PRE_ALARM_RING
Combined Values
MaskName
0x11ALARM_RECORDING_PRE_ALARM_AUTO

video preset nr

Video preset number used for recording
Values:
no recording on this profile0
video preset nr1 - 8

post alarm video preset nr

Video preset number used for recording after occurence of an alarm
Values:
Not set0uses video preset nr if set
video preset nr for post alarm1 - 8

encoder index

Index of the encoder stream starting with 0, index 255 is for the backup output

cont rec backup

Only for continuous buffered recording, if set the records will be backuped to the recording, its an alternativ way of configuration to using a backup account of typ record, that way no account is wasted in the configuration

Back Up Account

Backup account Number from 0 (first account) to 3(fourth account), for choosing the back up account in case activated ALARM_FILE_BACKUP flag

profile name

Profile name is a zero terminated string

max pre alarm time

Only relevant for backup recording, it needs to know the max pre alarm time, in other cases it should be set to zero

pre alarm time

Only relevant for alarm recording, if set, this time in seconds is the time the recording will be stored up to the alarm event

post alarm time

If set, this time in seconds is the time after an alarm event for that the post alarm video preset is used if set. After this time elapses, the recording will return to the standard video preset nr, if alarm recording, the recording will also stop the recording on the actual track and start a new one

motion alarm

The bits represent the activation
Bit 310x80000000Alarm Nbr. 32
...
Bit 10x00000002Alarm Nbr. 2
Bit 00x00000001Alarm Nbr. 1

alarm input and virtual alarm

The bits represent the activation.
Bit 310x80000000Virtual Nbr. 0
...
Bit 170x00020000Virtual Nbr. 14
Bit 160x00010000Virtual Nbr. 15
Bit 150x8000Alarm Nbr. 16
...
Bit 10x0002Alarm Nbr. 2
Bit 00x0001Alarm Nbr. 1

video loss alarm

The bits represent the activation
Bit 310x80000000Alarm Nbr. 32
...
Bit 10x00000002Alarm Nbr. 2
Bit 00x00000001Alarm Nbr. 1

CONF_HD_RECORD_PROFILES_SECONDARY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a91video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead recording profiles for secondary recording, payload is the same as in CONF_HD_RECORD_PROFILES
Writep_octetserviceSet recording profiles for secondary recording (effect takes place imidiatly), payload is the same as in CONF_HD_RECORD_PROFILES
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

This payload equals the payload of the command 'CONF_HD_RECORD_PROFILES'

CONF_HD_RECORD_PROFILES_V2

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ad0video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead recording profiles
Writep_octetserviceWrite recording profiles
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Read/Write the ten recording profiles for a camera, payload upto 560 bytes total. The profiles will be written to the device configuration. These profiles are used as default profiles for each span that is mounted by this cam for span recording. If less than 10 profiles will be written, the remaining profiles stay unchanged.

Payload Structure

Recording Profile [0]
(see description)
...
Recording Profile [9]
(see description)

Recording Profile

1632
Flags
1 Byte
stream config nr
1 Byte
post alarm stream config nr
1 Byte
encoder index
1 Byte
post alarm profile
1 Byte
reserved
4 Bits
See *0
1 Bit
See *1
2 Bits
See *2
1 Bit
profile name...
32 Bytes
profile name
[...]
profile name
...
profile name
...
max pre alarm time
2 Bytes
pre alarm time
2 Bytes
post alarm time
2 Bytes
motion alarm
4 Bytes
alarm input and virtual alarm
4 Bytes
video loss alarm
4 Bytes
824

*0cont rec backup
*1Back Up Account
*2internal used

Flags

MaskName
Bit 60x40MANAGED_BY_ONVIF
Bit 50x20IMMEDIATE_ALARM_BACKUP
Bit 40x10ALARM_RECORDING_PRE_ALARM_BUFFER
Bit 30x08ALARM_FILE_BACKUP
Bit 20x04META_RECORDING_DISABLE
Bit 10x02AUDIO_RECORDING_DISABLE
Bit 00x01ALARM_RECORDING_PRE_ALARM_RING
Combined Values
MaskName
0x11ALARM_RECORDING_PRE_ALARM_AUTO

stream config nr

Video preset number used for recording
Values:
no recording on this profile0
stream configuration nr for pre alarm1 - 2
I-frames only from stream 1 for pre alarm3

post alarm stream config nr

Video preset number used for recording after occurence of an alarm
Values:
not set0uses stream config nr if set
stream configuraton nr for post alarm1 - 2
I-frames only from stream 1 for post alarm3

encoder index

Index of the encoder stream starting with 0, index 255 is for the backup output

post alarm profile

Values:
not set0no modification of the actual enc profile
encoder profile nr for post alarm configuration1 - 8

cont rec backup

Only for continuous buffered recording, if set the records will be backuped to the recording, its an alternativ way of configuration to using a backup account of typ record, that way no account is wasted in the configuration

Back Up Account

Backup account Number from 0 (first account) to 3(fourth account), for choosing the back up account in case activated ALARM_FILE_BACKUP flag

profile name

Profile name is a zero terminated string

max pre alarm time

Only relevant for backup recording, it needs to know the max pre alarm time, in other cases it should be set to zero

pre alarm time

Only relevant for alarm recording, if set, this time in seconds is the time the recording will be stored up to the alarm event

post alarm time

If set, this time in seconds is the time after an alarm event for that the post alarm video preset is used if set. After this time elapses, the recording will return to the standard video preset nr, if alarm recording, the recording will also stop the recording on the actual track and start a new one

motion alarm

The bits represent the activation
Bit 310x80000000Alarm Nbr. 32
...
Bit 10x00000002Alarm Nbr. 2
Bit 00x00000001Alarm Nbr. 1

alarm input and virtual alarm

The bits represent the activation.
Bit 310x80000000Virtual Nbr. 0
...
Bit 170x00020000Virtual Nbr. 14
Bit 160x00010000Virtual Nbr. 15
Bit 150x8000Alarm Nbr. 16
...
Bit 10x0002Alarm Nbr. 2
Bit 00x0001Alarm Nbr. 1

video loss alarm

The bits represent the activation
Bit 310x80000000Alarm Nbr. 32
...
Bit 10x00000002Alarm Nbr. 2
Bit 00x00000001Alarm Nbr. 1

CONF_HD_RECORD_PROFILES_V2_SECONDARY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ad1video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalGet recording profiles for secondary recording, payload is the same as in CONF_HD_RECORD_PROFILES_V2
Writep_octetserviceSet recording profiles for secondary recording, payload is the same as in CONF_HD_RECORD_PROFILES_V2
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_RECORD_SCHEDULE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a0bNonenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead primary recording schedule, see detailed description
Writep_octetserviceSet primary recording schedule(effect takes place imidiately), see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command reads/writes the recording schedule for all cameras (primary and secondary recording). The entries are 4 bit each and represent a recording profile for a 15 min time period(payload 336 bytes total). The recording profiles with same profile number can be different for each camera. See command HD_RECORD_PROFILES. The schedule will be written to the storage medium. In case of span recording mode (see CONF_RECORD_MODE_SPANS) the schedule will be only read from or stored in the config. This schedule is used as default schedule for each span that is mounted by this device for recording.

Payload Structure

Saturday [0]
4 Bits
...
Saturday [95]
4 Bits
Sunday [0]
4 Bits
...
Sunday [95]
4 Bits
Monday [0]
4 Bits
...
Monday [95]
4 Bits
Tuesday [0]
4 Bits
...
Tuesday [95]
4 Bits
Wednesday [0]
4 Bits
...
Wednesday [95]
4 Bits
Thursday [0]
4 Bits
...
Thursday [95]
4 Bits
Friday [0]
4 Bits
...
Friday [95]
4 Bits

Saturday

96 entries of recording profile numbers, each represents the recording profile for a 15 min time period. First entry is from 00:00 to 00:15. The following entries are for the following 15 min time periods until 24:00.
recording off0
recording profile number1 - 10

Sunday

See 'Saturday' for details.

Monday

See 'Saturday' for details.

Tuesday

See 'Saturday' for details.

Wednesday

See 'Saturday' for details.

Thursday

See 'Saturday' for details.

Friday

See 'Saturday' for details.

CONF_HD_RECORD_SCHEDULE_SECONDARY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a49Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead secondary recording schedule, see detailed description
Writep_octetserviceSet secondary recording schedule(effect takes place imidiately), see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command reads/writes the secondary recording schedule for the camera specified by the num parameter. This command only works for span recording. The entries are 4 bit each and represent a recording profile for a 15 min time period(payload 336 bytes total). The recording profiles with same profile number can be different for each camera. See command HD_RECORD_PROFILES. The schedule will be only read from or stored in the config. This schedule is used as default schedule for each span that is mounted by this cam for secondary span recording.

Payload Structure

Saturday [0]
4 Bits
...
Saturday [95]
4 Bits
Sunday [0]
4 Bits
...
Sunday [95]
4 Bits
Monday [0]
4 Bits
...
Monday [95]
4 Bits
Tuesday [0]
4 Bits
...
Tuesday [95]
4 Bits
Wednesday [0]
4 Bits
...
Wednesday [95]
4 Bits
Thursday [0]
4 Bits
...
Thursday [95]
4 Bits
Friday [0]
4 Bits
...
Friday [95]
4 Bits

Saturday

96 entries of recording profile numbers, each represents the recording profile for a 15 min time period. First entry is from 00:00 to 00:15. The following entries are for the following 15 min time periods until 24:00.
recording off0
recording profile number1 - 10

Sunday

See 'Saturday' for details.

Monday

See 'Saturday' for details.

Tuesday

See 'Saturday' for details.

Wednesday

See 'Saturday' for details.

Thursday

See 'Saturday' for details.

Friday

See 'Saturday' for details.

CONF_HD_RECORDING_ACTIVE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0908video lineyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_RECORDING_REPORT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a1cvideo lineyesno
 DatatypeAccess LevelDescription
Readp_octetminimalGet recording report from actual primary recording on a cam,
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This comand reads the recording report of an actual running recording of a cam. The recording report contains information about RTP and VDP packets as well as VDP allocation of a running recording. The cam is specified by the num parameter.

Payload Structure

1632
Version
1 Byte
Reserved
3 Bytes
Start Seconds
4 Bytes
Start Milliseconds
4 Bytes
VDP Allocation No Wait
4 Bytes
VDP Allocation Wait
4 Bytes
VDP Allocation Fail
4 Bytes
Encoder Data...
(see description)
Encoder Data
[...]
Encoder Data
...
Storage Data...
(see description)
Storage Data
[...]
Storage Data
...
Network Data...
(see description)
Network Data
[...]
Network Data
...
824

Version

Version information.

Start Seconds

Timestamp in seconds since 2000 when the counting of recording data started.

Start Milliseconds

Milliseconds of the timestamp when the counting of recording data started.

VDP Allocation No Wait

Number of VDP allocation operation performed without waiting.

VDP Allocation Wait

Number of VDP allocation operation performed with waiting.

VDP Allocation Fail

Number of VDP allocation operation failed.

Encoder Data

1632
Video RTP Packet Count
4 Bytes
Video Byte Count
4 Bytes
Reserved
4 Bytes
Audio RTP Packet Count
4 Bytes
Audio Byte Count
4 Bytes
Reserved
4 Bytes
Meta RTP Packet Count
4 Bytes
Meta Byte Count
4 Bytes
Reserved...
16 Bytes
Reserved
...
Reserved
...
Reserved
...
824

Video RTP Packet Count

Number of video RTP packets that are deliverd to the recording.

Video Byte Count

Number of video bytes that are deliverd to the recording.

Audio RTP Packet Count

Number of audio RTP packets that are delivered to the recording.

Audio Byte Count

Number of audio bytes that are deliverd to the recording.

Meta RTP Packet Count

Number of meta RTP packets that are delivered to the recording.

Meta Byte Count

Number of meta bytes that are deliverd to the recording.

Storage Data

1632
Video VDP Packet Count
4 Bytes
Video Byte Count
4 Bytes
Reserved
4 Bytes
Audio VDP Packet Count
4 Bytes
Audio Byte Count
4 Bytes
Reserved
4 Bytes
Meta Packet Count
4 Bytes
Meta Byte Count
4 Bytes
Reserved...
16 Bytes
Reserved
...
Reserved
...
Reserved
...
824

Video VDP Packet Count

Number of video + audio VDP packets that are written to storage (since fw 4.0 there are vdp packets containing video and audio data mixed, these packets will be counted here and not in the 'Audio VDP Packet Count' field).

Video Byte Count

Number of video + audio bytes that are written to storage (since fw 4.0 there are vdp packets containing video and audio data mixed, these packet bytes will be counted here and not in the 'Audio Byte Count' field).

Audio VDP Packet Count

Number of audio VDP packets that are written to storage.

Audio Byte Count

Number of audio bytes that are written to storage.

Meta Packet Count

Number of meta VDP packets that are written to storage.

Meta Byte Count

Number of meta bytes that are written to storage.

Network Data

1632
Bytes Read
4 Bytes
Bytes Write
4 Bytes
Reserved...
40 Bytes
Reserved
[...]
Reserved
...
824

Bytes Read

Number of Bytes that are read from storage.

Bytes Write

Number of Bytes that are written to storage.

CONF_HD_RECORDING_REPORT_SECONDARY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a4fvideo lineyesno
 DatatypeAccess LevelDescription
Readp_octetminimalGet recording report from actual secondary recording on a cam, payload same as in command CONF_HD_RECORDING_REPORT
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

This payload equals the payload of the command 'CONF_HD_RECORDING_REPORT'

CONF_HD_RELOAD_PARTITION_FILE_INFO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x091eNoneyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_REPLAY_AUTHENTICITY_OUT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c9fvideo lineyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This message will be send from a replay session, if authenticity ckeck is enabled for that session

Payload Structure

1632
hash type
1 Byte
hash status
1 Byte
signature status
1 Byte
certificate status
1 Byte
start time sec
4 Bytes
start time ms
4 Bytes
start tz qh
1 Byte
reserved
1 Byte
start rtp sq nr
2 Bytes
start rtp clock
4 Bytes
last time sec
4 Bytes
last time ms
4 Bytes
last tz qh
1 Byte
reserved
1 Byte
last rtp sq nr
2 Bytes
last rtp clock
4 Bytes
824

hash type

Hash type for authenticity check
none0
md51
sha12
sha2653

hash status

Hash status for authenticity check
missing0
not checked1
invalid2
valid3

signature status

Signature status
missing0
not checked1
missing certificate2
invalid3
valid4

certificate status

Signing certificate status
not checked0
unknown1
invalid2
trusted3
owned4

start time sec

Start time in seconds since 2000 utc of the sequence

start time ms

Start time milli seconds offset

start tz qh

Start time time zone offset in quarter hours (7 lowest bits), and sign (highest bit)

reserved

start rtp sq nr

Rtp sequence number of the first packet in the sequence

start rtp clock

Rtp clock of the first packet in the sequence

last time sec

Slast time in seconds since 2000 utc of the sequence

last time ms

Last time milli seconds offset

last tz qh

Last time time zone offset in quarter hours (7 lowest bits), and sign (highest bit)

reserved

last rtp sq nr

Rtp sequence number of the last packet in the sequence

last rtp clock

Rtp clock of the last packet in the sequence

CONF_HD_REPLAY_ENCRYPTED_DATA

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c89video lineyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_SET_VRM_LOCK

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a5dNonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetserviceWrite or clear the vrm lock.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
Target ID
4 Bytes
Target idx
1 Byte
Lun
1 Byte
Reserved
2 Bytes
Flags
4 Bytes
824

Target ID

Target id of the lun (may be the ipv4 address for older versions or with default target resolve configuration, see CONF_TARGET_ID_RESOLVE_RULES)

Target idx

Target index of the storage device

Lun

Lun of the storeage device

Flags

MaskName
Bit 00x00000001SET_VRM_LOCK

CONF_HD_SIZE_MB

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x090c0: default pm, >0: storage medium typenono
 DatatypeAccess LevelDescription
Readt_dwordminimalRead the total size of a local storage in megabytes
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Num Descriptor Values

usb5
iof8
cf9
sd11
span files12
sd218

CONF_HDD_VCD_CACHE_SIZE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b79Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command can be used to configure the size of the vcd cache on a span for recording. The size parameters are rellativ to 1 GB span size. If recording is running on soans with diffrent sizes than 1 GB, the values will be internally scaled to the propper size, so it will also work for diffrent span sizes. The usage of a vcd cache on spans will cause space overhead on a storage, so it is possible to switch it of by setting both values to 0. If enabled, the recording will use these values to adjust the size of the vcd cache on spans. The used adjusted sizes will be than limited by these two values, upper limit and lower limit. The adjusment starting value will be between these to values. While recording, the uses space for cached vcd data will be measured and after each span switch, the size will be adjusted by using the measurement values for new mounted spans in order to avoid overhead. It is also possible to set a fix size for the vcd cache by this command by setting the upper and lower limit to equal values. The default value for the command is 1 for lower limit and 128 for upper limit. For read direction an input payload is needed same as the described payload but only line and rec idx are required, the remaining part of the payload can be clipped away.

Payload Structure

1632
line
2 Bytes
rec idx
2 Bytes
lower size limit
2 Bytes
upper size limit
2 Bytes
824

line

Line from 1 to n.

rec idx

Rec index: 1 - primary recording, 2 - secondary recording.

lower size limit

Lower size limit of used vcd cache buffer on recording spans in 64 kb units per 1 GB span. Allowed values from 1 to 4096, 0 to disable cache.

upper size limit

Upper size limit of used vcd cache buffer on recording spans in 64 kb units per 1 GB span. Allowed values from 1 to 4096, 0 to disable cache.

CONF_MANAGING_VRM

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0aeb1 - primary recording, 2 - secondary recordingnono
 DatatypeAccess LevelDescription
Readp_octetalways_legacy
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command can be used to set or read the IP address, port and user and to set the password of the managing VRM and the backup VRM. The command cannot be used for reading the VRM password, it will return the string "********" instead.

Payload Structure

1632
IP
4 Bytes
Port
2 Bytes
Flags
1 Byte
Reserved
1 Byte
User...
32 Bytes
User
[...]
User
...
Password...
32 Bytes
Password
[...]
Password
...
Backup IP
4 Bytes
Backup Port
2 Bytes
Reserved
2 Bytes
824

IP

IP address of the managing VRM

Port

Port of the managing VRM

Flags

MaskName
Bit 00x01USE_SSL

User

VRM user: Max 31 ASCII character string with zero termination. If the user is shorter than 31 characters, the remaining bytes need to be filled up with 0x00 values.

Password

VRM password: Max 31 ASCII character string with zero termination. If the password is shorter than 31 characters, the remaining bytes need to be filled up with 0x00 values.

Backup IP

IP address of the backup VRM

Backup Port

Port of the backup VRM

CONF_MAX_GOP_LENGTH_VALUE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b9dNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalRead the max gop length for recording
Writet_dwordserviceSet the max gop length for recording, 0 means back to default
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MAX_RECORDING_RETENTION_TIME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b5bvideo linenono
 DatatypeAccess LevelDescription
Readp_octetminimalGet the max recording retention time for a camera (in seconds), see detailed description
Writep_octetserviceSet the max recording retention time for a camera (in seconds), see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command sets the max retention time for recording identified by the rec idx and the camera in the num parameter starting from 1. For read direction a inpayload is required with same format as described above, except the max retention time field can be ignored. The max retention time will be stored as absolute local time in seconds since 2000 in each span unit header. It will be used to clear a recording span when this time expires. If a max retention time is configured unequal 0 and less than maximum, the recording time on a span is limited to a one day time span. If this limit is reached by the recording, a span switch will be triggered.

Payload Structure

1632
Max retention time
4 Bytes
Rec Idx
2 Bytes
Reserved
2 Bytes
824

Max retention time

Max retention in seconds, 0 or values bigger than about 32 years (value >= 1009152000) means maximum, in case of in payload for read direction, this field can be ignored and treaded as reserved field

Rec Idx

Recording Index
Primary Recording1
Secondary Recording2Secondary recording (active low)

CONF_REC_MGNT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a89Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalRead the type of the recording management (0 = LOCAL, 1 = VRM, 2 = VRM+ANR, 3 = ONLY LOCAL (obsolete), 4 = DUAL VRM, 5 = ONVIF)
Writet_octetserviceSet the type of the recording management (0 = LOCAL, 1 = VRM, 2 = VRM+ANR, 3 = ONLY LOCAL(obsolete), 4 = DUAL VRM, 5 = ONVIF) (not possible to change settings while recording)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_REC_MONITOR_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cfcNoneyesno
 DatatypeAccess LevelDescription
Readp_octetminimalGet the recorder monitor status, see detailed description
Writep_octetserviceWrite not supported
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command can be used to get the status of recording, whether it records all data as desired or if unintentional loss is occuring. It also gives a hint as utc time interval, when the data where lost. The status is also send as message on status changes from nominal to critical and vise versa.The status changes to critical, when loss occures and returns to status nominal after 2 minitus without further data loss

Request Payload Structure

1632
Camera
2 Bytes
Recording Index
2 Bytes
824

Camera

The camera index 1 to n

Recording Index

Primary Recording1
Secondary Recording2

Response Payload Structure

1632
Camera
2 Bytes
Recording Index
2 Bytes
Status
1 Byte
Version
1 Byte
reserved
2 Bytes
recorded high
4 Bytes
recorded low
4 Bytes
lost high
4 Bytes
lost low
4 Bytes
issue start time utc
4 Bytes
issue end time utc
4 Bytes
latest issue time utc
4 Bytes
info time stamp
4 Bytes
State ID
4 Bytes
824

Camera

The camera index from 1 to n

Recording Index

Primary Recording1
Secondary Recording2

Status

NONE1no info
NOMINAL2no actual recording issue
CRITICAL3record data loss within the last 2 minutes

Version

Payload version (actual 1).

reserved

recorded high

Upper 32 bit of 64 bit counter for recorded packets.

recorded low

Lower 32 bit of 64 bit counter for recorded packets.

lost high

Upper 32 bit of 64 bit counter for recorded packets.

lost low

Lower 32 bit of 64 bit counter for recorded packets.

issue start time utc

Seconds since 2000 utc timestamp for latest issue time interval start

issue end time utc

Seconds since 2000 utc timestamp for latest issue time interval end

latest issue time utc

Seconds since 2000 utc timestamp for latest reported issue

info time stamp

Seconds since 2000 utc timestamp for this info

State ID

Changes every time the status changes

CONF_REC_SPAN_MGR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a361 - primary recording, 2 - secondary recordingnono
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Use this command to edit the recording span manager list. This list is consulted every time when a device is recording in VRM mode and its span list runs out resources. The entry with the highest priority is picked out of this list, the corresponding span manager is contacted and queried for spans. If the span manager is not accessable or will not return a span for some reason (maybe it has no more free spans to export), the entry with the next lower priority is picked out of the list. If at least one span manager for primary recording is configured, all entries of managed vrm (configured by CONF_MANAGING_VRM) will be deleted.

Payload Structure

Span Manager Config [0]
(see description)
...
Span Manager Config [N]
(see description)

Span Manager Config

Repeated 8 times at maximum
1632
Span Mananger IP Address
4 Bytes
Target ID
4 Bytes
Target Index
1 Byte
Lun
1 Byte
Reserved
2 Bytes
Priority
2 Bytes
Flags
2 Bytes
824

Span Mananger IP Address

The IP address of the device the span manager is running on.

Target ID

The target id of the lun (may be the ipv4 address for older versions or with default target resolve configuration, see CONF_TARGET_ID_RESOLVE_RULES).

Target Index

The iSCSI target index.

Lun

The iSCSI lun of the storage.

Priority

Priority as recording storage, higher values mean lower priority, 0 - highest priority

Flags

MaskNameDescription
Bit 00x0001OVERWRITE_OLDEST_RECORDINGS(obsolete)

Note: If no free spans are available on all span manager of the devices recording span manager list, the recording with the retention time that expires next is overwritten.

CONF_REC_STORAGE_REQ_CFG

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b30recording index: 1 - primary, 2 - secondarynono
 DatatypeAccess LevelDescription
Readp_octetminimalRead error tollerance parameter for storage requests from recording (4 bytes, 2 words) (1st word retry in network order 0xffff for retry always, 2nd word timeout seconds in network order 0 for default timeout 0xffff for never timeout
Writep_octetserviceSet error tollerance parameter for storage requests from recording (4 bytes, 2 words) (1st word retry in network order 0xffff for retry always, 2nd word timeout seconds in network order 0 for default timeout 0xffff for never timeout
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_RECORDING_BUFFER_LEVEL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b70Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalReturns the levels in percent of the recording rate control based on the recording buffer fill-level: 4 bytes: level off (if the fill level is below that value the rate control will be turned off), 4 bytes: level on (if the fill level is above that value the rate control will be turned on), (set both values to 0 to disable the rate control). This features is enabled per default on TI devices with 10% (off) and 30% (on)
Writep_octetserviceReturns the levels in percent of the recording rate control based on the recording buffer fill-level: 4 bytes: level off (if the fill level is below that value the rate control will be turned off), 4 bytes: level on (if the fill level is above that value the rate control will be turned on), (set both values to 0 to disable the rate control). This features is enabled per default on TI devices with 10% (off) and 30% (on)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_RECORDING_RETENTION_TIME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a30video linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the primary recording retention time for a camera (in seconds).
Writet_dwordserviceSet the primary recording retention time for a camera (in seconds) (value >= 1009152000) means maximum, no influence on local recording, only for vrm managed recording. (effect takes place on next mounted span)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_RECORDING_RETENTION_TIME_SECONDARY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a48video linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the secondary recording retention time for a camera (in seconds).
Writet_dwordserviceSet the secondary recording retention time for a camera (in seconds) (value >= 1009152000) means maximum, no influence on local recording, only for vrm managed recording. (effect takes place on next mounted span)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_RECORDING_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a9bvideo linenono
 DatatypeAccess LevelDescription
Readp_octetminimalGet the current recording status,
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Request Payload Structure

1632
Camera
1 Byte
Recording Index
1 Byte
Reserved...
50 Bytes
Reserved
[...]
Reserved
...
Reserved
...
824

Camera

The camera index

Recording Index

Primary Recording1
Secondary Recording2

Response Payload Structure

1632
Camera
1 Byte
Recording Index
1 Byte
Status
1 Byte
Error
1 Byte
Current Recording Span...
(see description)
Current Recording Span
...
Flags
1 Byte
Reserved
3 Bytes
Datarate
4 Bytes
Packet alloc no wait
4 Bytes
Packet alloc wait
4 Bytes
Packet alloc failed
4 Bytes
Recent time period
4 Bytes
Packets recorded high
4 Bytes
Packets recorded low
4 Bytes
Packets lost high
4 Bytes
Packets lost low
4 Bytes
824

Camera

The camera index

Recording Index

Primary Recording1
Secondary Recording2

Status

OFFLINE1configured for not recording
IDLE2(obsolete)
PEND3trying to connect storage or waiting for block list from vrm
RUNNING4storage connected and recording running or prepared for recording
ERROR5error on storage ocurred
REC_SRC_ERROR6error of recorder source(encoder)

Error

See error codes of CONF_SPAN_USE_STATUS.

Current Recording Span

1632
Target ID
4 Bytes
Target Index
1 Byte
Lun
1 Byte
Span Index
2 Bytes
824

Target ID

The target id of the lun (may be the ipv4 address for older versions or with default target resolve configuration, see CONF_TARGET_ID_RESOLVE_RULES).

Target Index

In index of the iscsi target.

Lun

The lun indentifier.

Span Index

The index of the span.

Flags

MaskNameDescription
Bit 00x01ENCRYPTIONEncrypted recording

Datarate

The datarate that is written to the storage.

Packet alloc no wait

Recently alloc no wait vdp packets (1.5 kbyte) since recent time period

Packet alloc wait

Recently alloc wait vdp packets (1.5 kbyte) since recent time period (indicates problems of the recording get its data to the drive)

Packet alloc failed

Recently alloc failed vdp packets (1.5 kbyte) since recent time period (indicates problems of the recording get its data to the drive, corrupt data stream)

Recent time period

Time period in which the packet allock counter were counted

Packets recorded high

High part (32 bits network order) of a 64 bit counter for all recorded packets of this recording since device start up (packets counted by 'packet alloc no wait' and 'packet alloc wait' not included)

Packets recorded low

Low part (32 bits network order) of a 64 bit counter for all recorded packets of this recording since device start up (packets counted by 'packet alloc no wait' and 'packet alloc wait' not included)

Packets lost high

High part (32 bits network order) of a 64 bit counter for all packets, which couldn't be recorded by this recording since device start up (packets counted by 'packet alloc failed' not included)

Packets lost low

Low part (32 bits network order) of a 64 bit counter for all packets, which couldn't be recorded by this recording since device start up (packets counted by 'packet alloc failed' not included)

CONF_REMOTE_REC_DEVICE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a85yes (1 to max 8) 0 - any free entrynono
 DatatypeAccess LevelDescription
Readp_stringminimalGet the ip address or iqn of the remote recording device (max. 50 characters).
Writep_stringserviceSet the ip(ipv4 only) address or the iqn (starting with \iqn.\" or * for wildcard) of a remote recording device (max. 50 characters) on one entry ore use any free entry by num = 0
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SCHEDULED_PTZ_PROFILE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c20Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead one scheduled ptz profile, see detailed description
Writep_octetserviceWrite one scheduled ptz profile, see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Read/Write one scheduled ptz profiles for a camera, payload upto 12 bytes total. The profiles will be written to the config. Based on the record schedule the profiles will become active and a PTZ/ROI Tour/Preset will be activated or deativated. The flag SCHEDULED_PTZ_PROFILE_FLAG_TOUR, will use a PTZ tour on PTZ domes. If the cam isn't a PTZ camera, ROI is used instead, if the line is capable of it. The preset/tour will be applied on changes only, except the SCHEDULED_PTZ_PROFILE_FLAG_RETRIGGER flag is set, this will repeat the apply periodically. An User will be always able to change the PTZ state on a camera after the scheduled apply. In read direction only the command header (4 bytes) is required. The response will have the full payload size of 12 bytes including the PTZ profile.

Payload Structure

1632
Camera
2 Bytes
Reserved
1 Byte
Profile Number
1 Byte
PTZ Profile...
(see description)
PTZ Profile
...
824

Camera

Camara line of the requested PTZ profile (1 to n)

Profile Number

Profile number of the requested PTZ profile (1 to 10)

PTZ Profile

1632
PTZ/ROI Preset/Tour
2 Bytes
Flags
1 Byte
Reserved...
5 Bytes
Reserved
...
824

PTZ/ROI Preset/Tour

Number of a preset or tour for PTZ or ROI depending on the flags settings, if the tourflag is set, following values are defined, 1 - Tour A, 2 - Tour B, 3 - Custom Tour

Flags

MaskNameDescription
Bit 10x02RETRIGGER_LOCKIf set, the preset (not tour) setting will be reapplied about every 10th second and ptz from user will be locked for both tour and preset (except bicom aux)
Bit 00x01FLAG_TOURIf set, the preset number specifies a PTZ tour (only for PTZ domes)

CONF_SCHEDULED_PTZ_PROFILES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c1fvideo linenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead scheduled ptz profiles of one cam, see detailed description
Writep_octetserviceWrite scheduled ptz profiles of one cam, see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Read/Write one scheduled ptz profiles for a camera, payload upto 12 bytes total. The profiles will be written to the config. Based on the record schedule the profiles will become active and a PTZ/ROI Tour/Preset will be activated or deativated. The flag SCHEDULED_PTZ_PROFILE_FLAG_TOUR, will use a PTZ tour on PTZ domes. If the cam isn't a PTZ camera, ROI is used instead, if the line is capable of it. The preset/tour will be applied on changes only, except the SCHEDULED_PTZ_PROFILE_FLAG_RETRIGGER flag is set, this will repeat the apply periodically. An User will be always able to change the PTZ state on a camera after the scheduled apply. In read direction only the command header (4 bytes) is required. The response will have the full payload size of 12 bytes including the PTZ profile.

Payload Structure

PTZ Profile [0]
(see description)
...
PTZ Profile [9]
(see description)

PTZ Profile

1632
PTZ/ROI Preset/Tour
2 Bytes
Flags
1 Byte
Reserved...
5 Bytes
Reserved
...
824

PTZ/ROI Preset/Tour

Number of a preset or tour for PTZ or ROI depending on the flags settings, if the tourflag is set, following values are defined, 1 - Tour A, 2 - Tour B, 3 - Custom Tour

Flags

MaskNameDescription
Bit 10x02RETRIGGER_LOCKIf set, the preset (not tour) setting will be reapplied about every 10th second and ptz from user will be locked for both tour and preset (except bicom aux)
Bit 00x01FLAG_TOURIf set, the preset number specifies a PTZ tour (only for PTZ domes)

CONF_SET_REC_BUFFER_SIZE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ae1video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalGet size of recording buffer in bytes (Bosch streaming gateway only) first 4 bytes : DWORD rec_idx second 4 bytes : DWORD size in bytes(return direction)
Writep_octetserviceSet size of recording buffer in bytes (restart of bsg nessessary) (Bosch streaming gateway only, default 16 MB) first 4 bytes : DWORD rec_idx second 4 bytes : DWORD size in bytes
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SPAN_ADDRESS_LIST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09e71 - primary spanlist, 2 - secondary spanlistyesno
 DatatypeAccess LevelDescription
Readp_octetservice
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Read Request

The reply to an read request always contains up to n (n=512) entrys. The response in case of an empty span list is one zeroed span entry.

Write Request

On a write request, a list of max n (n=512) span addresses must be supplied. List entrys that are zero are not used by the unit for recording. The unit uses the supplied ordering of the list and begins with the first entry. The order of the supplied list is the preferred order, not the guaranted order. There are some cases, in which the device changes the use order (e.g. one target not reachable).
If the device is already recording on spans (a span list is already present on the device), the new list must contain the span addresses, that the unit is currently recording on. The latter information can be obtained by reading the current span address list form the unit and check the corresponding write lock header (if the units IP and MAC address is found this means the unit is recording). If the unit receives a list and the span addresses of the spans the device is currently recording on is not present, the list is rejected (not saved in the configuration) and an error is returned.

Message

A message of this cmd tag will be send always, if somone sets the span address lists by using rcp set spans list commands or if the span list is cleared by indirectly by changing other settings of the device (e.g. rec mgmt).

Payload Structure

Span Address [0]
(see description)
...
Span Address [N]
(see description)

Span Address

1632
Target ID
4 Bytes
Target IDX
1 Byte
Lun IDX
1 Byte
Span IDX
2 Bytes
824

Target ID

The target id of the lun (may be the ipv4 address for older versions or with default target resolve configuration, see CONF_TARGET_ID_RESOLVE_RULES).

Target IDX

Index of the iSCSI server target. The index of the desired target can be obtained from the reply to an iSCSI discover.

Lun IDX

Index of the lun of the specified target.

Span IDX

Index of the span in the specified lun.

Command Specific Errors

SPAN_ERR_INTERNAL0x01
SPAN_ERR_INV_ADDR_LIST0x04

Note: A list of all defined error types can be found in the Appendix.

CONF_SPAN_ADDRESS_LIST_NEW

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a521 - primary spanlist, 2 - secondary spanlistnono
 DatatypeAccess LevelDescription
Readp_octetminimalSee detailed description of CONF_SPAN_ADDRESS_LIST
Writep_octetserviceSee detailed description of CONF_SPAN_ADDRESS_LIST (no need to include mounted spans in list)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SPAN_CERTIFICATES_LIST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c11Nonenono
 DatatypeAccess LevelDescription
Readp_octetserviceRead certificates list from a span, see detailed description
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This Command can be used to query the certificates of a span, in order to verify the signed video record data within that span. The response will deliver all certificates of the specified span and time intervall. The maximum size of the response can be limited by the caller but it will not exceed 16 kb for the certificates list. If the response payload size isnt't enough to hold all valid certificates, a flag in the response will signal the existence of further certificates, which didn't fit in the response payload. A second query in that case with a smaller time interval may help to get the remaining certificates. The response will have a certificates list with several enries of different size, there are no gaps between the entries.

Request Payload Structure

1632
Target Id
4 Bytes
Target IdX
1 Byte
LUN
1 Byte
Span IDX
2 Bytes
Start Time
4 Bytes
End Time
4 Bytes
TZ QH
1 Byte
Reserved
3 Bytes
Max List Len
4 Bytes
824

Target Id

Target ID of the Span

Target IdX

Target Index of the Span

LUN

LUN of the Span

Span IDX

Span Index of the Span

Start Time

Start time of the interval in seconds since 2000 local time based on the Timezone offset in TZ QH

End Time

End time of the interval in seconds since 2000 local time based on the Timezone offset in TZ QH

TZ QH

Timezone offset (from utc) in quarter hours as signed char value

Max List Len

Maximum size of the certificates list in response payload in bytes.

Response Payload Structure

1632
Target Id
4 Bytes
Target IdX
1 Byte
LUN
1 Byte
Span IDX
2 Bytes
Start Time
4 Bytes
End Time
4 Bytes
TZ QH
1 Byte
Flags
1 Byte
Reserved
2 Bytes
List Len
4 Bytes
Certificate [0]
(see description)
...
Certificate [N]
(see description)
824

Target Id

Target ID of the Span

Target IdX

Target Index of the Span

LUN

LUN of the Span

Span IDX

Span Index of the Span

Start Time

Start time of the interval in seconds since 2000 local time based on the Timezone offset in TZ QH

End Time

End time of the interval in seconds since 2000 local time based on the Timezone offset in TZ QH

TZ QH

Timezone offset (from utc) in quarter hours as signed char value

Flags

MaskNameDescription
Bit 00x01Len ExeededMore certificates available, but the max length of the certificates list was exceeded.

List Len

Size of the certificates list in response payload in bytes.

Certificate

1632
Timestamp
4 Bytes
TZ QH
1 Byte
Reserved
1 Byte
Length
2 Bytes
Certificate...
Length - 8 Bytes
Certificate
...
824

Timestamp

Local time in seconds since 2000

TZ QH

Timezone offset (from utc) in quarter hours as signed char value

Length

Length of the Certificates List Entry (certificate including these 8 bytes header infos)

Certificate

One certificate

CONF_SPAN_FILES_DIR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0aa1entry index 1 - 32768nono
 DatatypeAccess LevelDescription
Readp_octetminimalRead the path entry end exported iscsi addr. (gen dll only)
Writep_octetserviceSet path to span files (gen dll only).
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command allows to set the path to a mounted span formatted storage or directory. You have to send the in payload to set the path. The min payload size is 16 bytes. The max path name length is 1024 bytes including the zero termination. payload size must be set to the size that includes the zero termination but min size is 16 bytes even in case of an empty string (at least zero termination). You can set up to 32768 pathes. Use the num param to specify the index of an entry. If you set the path it will check the path. To pass this check, at least a valid Lun info file (INFO.TXT) has to exist. The span are needed later when accessing the storage(e.g header access, replay). The response to the write direction is has the out payload format. If success the error field is zero and the payload includes the set path and the exported lun address. This storage is now accessable by using this address for other commands. if the set failes, the error field is non zero and contains an error code. It is allowed to set path on an index that was already set. The old values will be overwritten, but remember that the effect takes place later, if there are still open references based on the old entry (e.g. running replay, header access).
The cmd can be used for read direction. The response payload contains the export lun address and the path. error code is always zero. If the entry is empty, the path is empty and has only the zero termination.

Write Payload Structure

1632
Action
4 Bytes
Reserved...
8 Bytes
Reserved
...
Path...
N Bytes
Path
...
824

Action

Specifies the action, you can set an entry or clear an entry.
Clear entry0
Set entry1

Path

Path to a mounted span formatted storage or directory containing the span files.

Response/Read Payload Structure

1632
Exported target id
4 Bytes
Target index
1 Byte
Lun
1 Byte
Reserved
2 Bytes
Error
4 Bytes
Path...
N Bytes
Path
...
824

Exported target id

Target id of the exported lun, specified by the directory path.

Target index

Target index of the exported lun, specified by the directory path.

Lun

Lun id of the exported lun, specified by the directory path.

Error

Error code, in case of set path failed. Is always 0 in the payload of read direction. Only relevant for return payload of write direction.
No error0
Invalid directory path1
Invalid lun info file2
Common error3

Path

Path to a mounted span formatted storage or directory containing the span files.

CONF_SPAN_HDR_ACCESS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09e8header typenono
 DatatypeAccess LevelDescription
Readp_octetserviceAccess span header information.
Writep_octetserviceAccess span header information.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Num Descriptor Values

LOCK HEADER0x01
MANAGER HEADER0x02
UNIT HEADER0x03

Payload Structure

1632
Span Header
(see description)
824

Span Header

Data of the span header. Length and structure differs for the specified header type. The header type is specified with the numeric descriptor.

'Span Header' payload for numeric descriptor = 'Lock Header' (0x01)

1632
Lock owner IP
4 Bytes
Lock owner MAC...
6 Bytes
Lock owner MAC
...
Cluster Id
1 Byte
Reserved
1 Byte
Lock owner URL...
128 Bytes
Lock owner URL
[...]
Lock owner URL
...
824

Lock owner IP

IP address of the unit that holds the write lock of the span.

Lock owner MAC

Hardware address of the unit that holds the write lock of the span.

Cluster Id

Cluster id of the recorder 1 - n, default value is 0 if not set, should be treated as cluster id 1.

Lock owner URL

Url (ipv4 or ipv6) of the unit that holds the write lock of the span.

Note: In the request packet, the header values are ignored (may be zero). The reply contains the values read or written. On write requests, the local IPv4 and MAC addresses are converted to ascii strings and written to the file LCKxxxxx.txt (xxxx = span index) on disk. On read requests, the ascii strings of that file are scanned into binary values and send with the reply.

'Span Header' payload for numeric descriptor = 'Manager Header' (0x02)

1632
Manager Header Data...
N Bytes
Manager Header Data
...
824

Manager Header Data

Transparent header data of the storage manager

Note: The reply always returns the 1024 Bytes of the manager header file MGRxxxx.txt (xxxx = span index).

'Span Header' payload for numeric descriptor = 'Unit Header' (0x03)

1632
Span owner IP
4 Bytes
Span owner MAC...
6 Bytes
Span owner MAC
...
Span owner Camera
2 Bytes
Retention Time
4 Bytes
Modification seal random
4 Bytes
Modification seal time
4 Bytes
Recording
1 Byte
Cluster Id
1 Byte
Reserved
2 Bytes
Max Retention Time
4 Bytes
Span owner URL...
128 Bytes
Span owner URL
[...]
Span owner URL
...
Modification MAC...
6 Bytes
Modification MAC
...
Reserved
2 Bytes
User Data...
16 Bytes
User Data
...
User Data
...
User Data
...
GUID...
32 Bytes
GUID
[...]
GUID
...
824

Span owner IP

IP address of the unit that holds the write lock of the span.

Span owner MAC

Hardware address of the unit that holds the write lock of the span

Span owner Camera

The index of the camera the unit uses for recording.

Retention Time

Retention Time for the recordings on this span in sec since 2000

Modification seal random

Random number set on the last modifacation of this span, this random will be set on each write access on any span header or on starting or stopping a recording of a device on this span, there will be also updates while a device is recording in a period of several minutes

Modification seal time

This information is the time of the last modification on this span that causes a modification seal update

Recording

Primary Recording1(default)
Secondary Recording2

Cluster Id

Cluster id of the recorder 1 - n, default value is 0 if not set, should be treated as cluster id 1

Max Retention Time

Max Retention Time for the recordings on this span in sec since 2000, 0 means no max retention time

Span owner URL

Url (ipv4 or ipv6) of the unit that used the span

Modification MAC

Hardware address of the instance, which modifies the unit header (must be non zero for write direction)

User Data

Byte field for any user data (16 bytes)

GUID

GUID (managed by vrm) of the device which recorded on this span (32 bytes)

Note: In the read request packet, the header values are ignored (may be zero). In the write requst packet, only the camera field is evaluated, the values for IP and MAC are taken from local configuration. The reply packet contains the values read or written. On write requests, the local IPv4 and MAC addresses and the supplied camera value are converted to ascii strings and written to the file UNTxxxxx.txt (xxxx = span index) on disk. On read requests, the ascii strings of that file are scanned into binary values and send with the reply. The modification seal values cannot be set by this command as write request directly, they will be set automatically on span header write requests or on starting or stopping a recording. The content of this fields will be ignored in a write request.

Command Specific Errors

SPAN_ERR_INTERNAL0x01
SPAN_ERR_INV_SPN_IDX0x02
SPAN_ERR_INV_HDR_TYPE0x03
SPAN_ERR_NOT_MNTD0x05
SPAN_ERR_INV_FS0x06
SPAN_ERR_INV_LUN_NFO0x07
SPAN_ERR_BAD_HDR_CKSM0x08
SPAN_ERR_RD_ONLY0x0a
ISCSI_ERROR_CONNECT0x31
ISCSI_ERROR_INV_LUN0x33
ISCSI_ERROR_LOGIN0x34
ISCSI_ERROR_INV_TRG_IDX0x35

Note: A list of all defined error types can be found in the Appendix.

CONF_SPAN_HISTORY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0aceNonenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead span history
Writep_octetserviceClear span history or add a span history entry
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command is used by the device to store the span history in the device config, that means it adds (action add) an span adress entry to the config, for each recorded span. The history can be seen by read commando and action show. The history can be cleared by sending a action clear command.

Payload Structure

1632
cam
2 Bytes
rec idx
2 Bytes
action
2 Bytes
span count
2 Bytes
span address [0]
(see description)
...
span address [span count - 1]
(see description)
824

cam

Camera line from 1 to max cam

rec idx

Primary Recording1(default)
Secondary Recording2

action

Action to do in this command.
Show0Show the span history, read direction only.
Add1Add a new entry to the history, write direction only.
Clear2Clear the complete history, write direction only.
Show Remount3Show the remount span, read direction only.

span count

Number of span address following in this command payload. For action show you can specifie the max number of span history entries to show for in payload. the reply payload will then return a max. of this number of span address. max 32.

span address

1632
Target Id
4 Bytes
Target IdX
1 Byte
LUN
1 Byte
Span IDX
2 Bytes
824

Target Id

Target ID of the Span

Target IdX

Target Index of the Span

LUN

LUN of the Span

Span IDX

Span Index of the Span

CONF_SPAN_PARTITION_FILE_INFO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a2dNonenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead the file info of a span.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Request Payload Structure

1632
Target ID
4 Bytes
Target IDX
1 Byte
LUN
1 Byte
Span IDX
2 Bytes
Start Time (optional)
4 Bytes
Stop Time (optional)
4 Bytes
MaxEntries (optional)
4 Bytes
Optional flags (optional)
4 Bytes
824

Target ID

The target id of the lun (may be the ipv4 address for older versions or with default target resolve configuration, see CONF_TARGET_ID_RESOLVE_RULES).

Target IDX

Index of the iSCSI server target. The index of the desired target can be obtained from the reply to an iSCSI discover.

LUN

The logical unit.

Span IDX

Index of the span in the specified lun.

Start Time (optional)

Seconds since 2000, optional, if missing, default is 0

Stop Time (optional)

Seconds since 2000, optional, if missing, default is unlimited

MaxEntries (optional)

Max Number of entries, optional, if missing, default is max. 256 files which is also the max. limit for this value

Optional flags (optional)

Additional options for the file info
MaskName
Bit 00x00000001Add span info flags

Response Payload Structure

1632
Optional span info flags
4 Bytes
file info payload...
N Bytes
file info payload
...
824
For the payload structure of the response see documentation of HD_PARTITION_FILE_INFO. In case of the optional "add span info flag" flag the first four bytes of the responspayload will contain a flag field with additional infos. Without the option, the payload will start with the file info without offset.

Optional span info flags

Additional info of the span
MaskName
Bit 00x00000001Encrypted span key list present

CONF_SPAN_PARTITION_PROP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09favideo linenono
 DatatypeAccess LevelDescription
Readp_octetserviceReturn partition properties for primary span recording (4 bytes) video type (1 byte: 0= NO, 1=MPEG2, 3=MPEG4), audio type (1 byte: 0= NO, 1=G711, 2=L16, 3=AAC) reserved (2 byte)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SPAN_PARTITION_PROP_SECONDARY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a4bvideo linenono
 DatatypeAccess LevelDescription
Readp_octetserviceReturn partition properties for secondary span recording (4 bytes) video type (1 byte: 0= NO, 1=MPEG2, 3=MPEG4), audio type (1 byte: 0= NO, 1=G711, 2=L16, 3=AAC) reserved (2 byte)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SPAN_SWITCH

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a53video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalNot supported
Writep_octetserviceSwitch spans, see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command can be used to influence the span usage of the recording. It is able to cause a replace of the premounted span and or switch to the next premounted span.
The flag SWITCH_SPAN causes the switch to the next span and releasing the actual recording span. Flag REPLACE_PREMOUNTED will cause the release of the premounted span and mounting another one if available. If both flags are activated, the premounted block will be replaced, as soon as a new premounted span is mounted and available, the next step switch to premounted span will be performed. Before replacing the premounted span, the actual recording span will be checked, if the replace could get in conflict with a device internal triggered span switch. In that case the whole Span switch command will fail with rcp error RCP_ERROR_TRY_LATER, no switch or replace will be performed.
When performing a switch to next span job, the recording span address in the payload will be checked. If on execution of this job the recording span doesn't match the recording span from the payload, the switch will not be performed. When performing a replace premounted span job, the premounted span address in the payload will be checked. If on execution of this job the premounted span doesn't match the premounted span from the payload, the replace will not be performed. The idea of these checks is to avoid conflicts with the automatic span switching of the recording, that can lead to gaps in the recording and unwanted waste of recording spans. The flag FORCE will skip these checks. Flag CHECK_PREMOUNTED is only relevant for the switch to next span job without replacing the premounted span and without FORCE flag. If this flag is active on switching ton next span, the premounted span parameter in the payload will be matched against the actual premounted span. If no match the switch won't be performed. If this flag including the FORCE flag isn't set on switch, a negative match will be performed on the premounted span. The TARGET_RETREAT Bit means, than a complete retreate from this target is intended, the span history will be modified in order to avoid a remount on that target. That state will stay active for that target until the device records on a new target and adds a span from the new target to the history, or if the span history will be cleared or the the target will be reintroduced with the bit TARGET_REINTRODUCE. The TARGET_REINTRODUCE Bit is needed to undo a TARGET_RETREAT action, which is specialy in the case needed, when a device shall return to a target, from that it had retreated erlier and no recording took place on another target between these events. In that case the remount feature for that target is still disabled. The TARGET_REINTRODUCE Bit will reenable the remount feature for that target without the nessessarity of clearing the whole span history.
Warning: A possible conflict, when requesting a replace of the premounted span with an automatic span switch of the recording that causes gaps in the recording is unavoidable. So an excesive usage of replacing premounted spans should be avoided.

Payload Structure

1632
Recording Span...
(see description)
Recording Span
...
Premounted span...
8 Bytes
Premounted span
...
Flags
2 Bytes
Recording
1 Byte
Reserved
1 Byte
824

Recording Span

1632
Target id
4 Bytes
Target idx
1 Byte
Lun
1 Byte
Span idx
2 Bytes
824

Target id

The target id of the span

Target idx

The target index of the span

Lun

The lun of the span

Span idx

The span index of the span

Premounted span

1632
Target id
4 Bytes
Target idx
1 Byte
Lun
1 Byte
Span idx
2 Bytes
824

Target id

The target id of the span

Target idx

The target index of the span

Lun

The lun of the span

Span idx

The span index of the span

Flags

These flags are used to specify the behavior of the command
MaskName
Bit 150x8000ERROR_CHECK_RECORDING
Bit 140x4000ERROR_CHECK_PREMOUNTED
Bit 50x0020TARGET_REINTRODUCE
Bit 40x0010TARGET_RETREAT
Bit 30x0008SWITCH_SPAN
Bit 20x0004REPLACE_PREMOUNTED
Bit 10x0002CHECK_PREMOUNTED
Bit 00x0001FORCE

Recording

Primary Recording1(default)
Secondary Recording2

CONF_SPAN_USE_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09f8video lineyesno
 DatatypeAccess LevelDescription
Readp_octetserviceUsage status of a span, see detailed description
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This messages reports the use status of a span for this device and which cammera for primary recording. If a span was opened for a planned recording, this message will be send with status MOUNTED. If the mounting fails status will be ERROR. If a span was closed after recording status will be RELEASE, if it was closed before a recording ever took place, status will be RELEASE_UNUSED. HD_SPAN_USE_STATUS_RETENTION_TIME status will be send as message if the first time an retention time update took place on the span. In case of a read request the reply payload cantains this status message upto twice. the command can be used to query the actual used spans from a camera specified by the num parameter. the status for a span can be RECORDING, if the cam is actual recording on this span or MOUNTED, if the span is mounted and prepared for a future recording by this camera.

Payload Structure

Use Status Message [0]
(see description)
...
Use Status Message [N]
(see description)

Use Status Message

Up to 2 span use status messages. If no span is in use by the camera specified by num, the reply payload size will be 0. In case of the rcp message the payload contains always 1 span use status message.
1632
err/spec code
1 Byte
status
1 Byte
cam
2 Bytes
target id
4 Bytes
target idx
1 Byte
lun
1 Byte
span idx
2 Bytes
824

err/spec code

Additional error or status code to the status, for status HD_SPAN_USE_STATUS_ERROR_MOUNT see section 'status HD_SPAN_USE_STATUS_ERROR_MOUNT error codes', for status RELEASE and RELEASE_UNUSED see section 'status RELEASE error codes', for status MOUNTED see section 'status MOUNTED special codes'

status

Use status of this span
MOUNTED0x00
RELEASE0x01
RELEASE_UNUSED0x02
ERROR0x03
RECORDING0x04
PENDING_SPAN_REQUEST0x05
HD_SPAN_USE_STATUS_RETENTION_TIME0x06
HD_SPAN_USE_STATUS_RELEASE_REMOUNT_INTENDED0x07
HD_SPAN_USE_STATUS_ERROR_WRT_UNT_HDR0x10
HD_SPAN_USE_STATUS_ERROR_FORMAT_REC_REGION0x11
HD_SPAN_USE_STATUS_ERROR_MOUNT0x12
HD_SPAN_USE_STATUS_ERROR_RETENTION_TIME0x13
If the status is PENDING_SPAN_REQUEST, the ip will be 255.255.255.255, target index and lun will be 255, and span index will be 65535, which should be interpreted as still unknown, because this cam had requested a span, but it doesn't know yet which span it gets.
Status HD_SPAN_USE_STATUS_RELEASE_REMOUNT_INTENDED means, the cam has released the block but has left the span lock, because it will try to remount the span later. The span is stored in the span history for remount(see CONF_SPAN_HISTORY).

cam

Which camera is or was using the reported span

target id

Target id of the lun (may be the ipv4 address for older versions or with default target resolve configuration, see CONF_TARGET_ID_RESOLVE_RULES)

target idx

Target Index of the storage device from 0 to 255.

lun

Lun of the storage device from 0 to max. 255.

span idx

Index of the span on the storage device.

Command Specific Errors

Specific errors for 'status' = 'HD_SPAN_USE_STATUS_ERROR_MOUNT' (0x12)

None0x00
SPAN_ERROR_INTERNAL0x01
SPAN_ERROR_INV_SPN_IDX0x02
SPAN_ERROR_INV_HDR_TYPE0x03
SPAN_ERROR_INV_ADDR_LIST0x04
SPAN_ERROR_NOT_MNTD0x05
SPAN_ERROR_INV_FS0x06
SPAN_ERROR_INV_LUN_NFO0x07
SPAN_ERROR_BAD_HDR_CKSM0x08
SPAN_ERROR_INV_IDX0x09
SPAN_ERROR_RD_ONLY0x0a
SPAN_ERROR_NO_REC_DAT0x0b
SPAN_ERROR_INV_PART_NFO0x0c
SPAN_ERROR_SPAN_REQUEST_FAILED0x0e
SPAN_ERROR_SPAN_REQUEST_RETENTION_TIME0x0f
SPAN_ERROR_REMOUNT_REFUSED0x10
ISCSI_ERROR_CONNECT0x31
ISCSI_ERROR_INV_LUN0x33
ISCSI_ERROR_LOGIN0x34
ISCSI_ERR_PWD0x36
ISCSI_ERR_PROTO0x37
ISCSI_ERR_TARG_NOT_REACH0x38
ISCSI_ERR_NO_MEM0x3a
ISCSI_ERR_SESS_CREATE0x3b
ISCSI_ERR_INV_PARAMS0x3c
ISCSI_ERR_SESS_NOT_FOUND0x3d
ISCSI_ERR_DISCONN0x3e
ISCSI_ERR_TIMEOUT0x3f
ISCSI_ERR_SOCK0x5f
ISCSI_ERR_TARG_PM0x6f
ISCSI_SOCK_CLOSED0x7f
ISCSI_ERR_TCP_CONN_RST0x8f
ISCSI_ERR_INTR_NOT_SUPP0x9f
ISCSI_ERR_IP_ZERO0xa0
ISCSI_ERR_OUT_OF_RES0xa1
HDD_ERROR_TIMEOUT0x12
HDD_ERROR_CREATE_FAILED0x22
HDD_ERROR_ACCESS_DENIED0x32
HDD_ERROR_DEVICE_PRESENT_TIMEOUT0x42
HD_PMM_ERROR_LUN_LOCK0x52
HD_PMM_ERROR_INVALID_ACCESS0x62
HD_PMM_ERROR_LUN_MGMT_FILE_NOT_FOUND0x72
HD_PMM_ERROR_LUN_WRITE_PROTECTED0x82
HD_PMM_ERROR_COMMON0xf2

Specific errors for 'status' = 'RELEASE' (0x01)

None0x00
RELEASE_ERROR_HD_MGR_ERROR0x01
RELEASE_ERROR_SPAN_LIST_INCONSISTENCY0x02
RELEASE_ERROR_RECORD_HANDLE_DISMISS_ERROR0x03
RELEASE_ERROR_BIG_TIME_JUMP0x04
RELEASE_ERROR_CLOSED_WHILE_MOUNTING0x05
RELEASE_ERROR_INITIAL_MOUNT_ABORT0x06
RELEASE_ERROR_INITIAL_MOUNT_UNFINISHED0x07
RELEASE_ERROR_NEXT_SPAN_NOT_MOUNTED0x08
RELEASE_ERROR_RECORDING_ERROR0x09
RELEASE_ERROR_ENCODER_ERROR0x0a
RELEASE_ERROR_REPLACE0x0b(release was caused by CONF_SPAN_SWITCH command)
RELEASE_ERROR_SWITCH_REQUEST0x0c(release was caused by CONF_SPAN_SWITCH command)
RELEASE_ERROR_SPAN_TIME_LIMIT_REACHED0x0d(one day limit per span, if max retention configured)
RELEASE_ERROR_RECORD_FORMAT_HARD_LIMIT0x0e(initiated span switch by recording internal for record format related issues (gop alignment violation at span end))
RELEASE_ERROR_RECORD_FORMAT_RING_BREAK0x0f(initiated span switch by recording internal for record format related issues (ring limit violation at span end))

Specific errors for 'status' = 'MOUNTED' (0x00)

Standard mount0x00
HD_MOUNT_CODE_REMOUNTED0x01

CONF_SPAN_USE_STATUS_SECONDARY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a4avideo lineyesno
 DatatypeAccess LevelDescription
Readp_octetserviceSpan use status of the secondary recording, payload is the same as in command CONF_SPAN_USE_STATUS
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_START_RECORD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0acc1 - primary recording, 2 - secondary recordingnono
 DatatypeAccess LevelDescription
Readp_octetminimalStart recording on choosen cams, payload needs a variable count pairs of 32 bit fiels for cam state (posibble states: 1 : on, 0 : off) and 32 bit fiels for cam selection mask, this mask will layed over the state bit field and can be used to choose the cams specific cams, other cams will be ignored, each bit field pair represents 32 cams: first pair - cam 1 to cam 32, second pair -cam 33 to cam 64 and so on
Writep_octetserviceStart recording on choosen cams, payload needs a variable count pairs of 32 bit fields for cam state (posibble states: 1 : on, 0 : off) and 32 bit fiels for cam selection mask, this mask will layed over the state bit field and can be used to choose the cams specific cams, other cams will be ignored, each bit field pair represents 32 cams: first pair - cam 1 to cam 32, second pair -cam 33 to cam 64 and so on
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_START_SPAN_RECORD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09f71 - primary recording, 2 - secondary recordingnono
 DatatypeAccess LevelDescription
Readt_dword p_octetminimalObsolete, please use CONF_START_RECORD instead
Writet_dword p_octetserviceObsolete, please use CONF_START_RECORD instead
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_PARTITION_FILE_INFO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0901Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalReturns a list of files of a replay session (session id needed). This command works for local replay only. See detailed description
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command initiates a search to get the times where data is available within a recording.
The Session ID paramter must be set (a connect primitive must have been preceded). Recording mode can be time recording (1) or alarm recording (2 and 3), only for command CONF_SPAN_PARTITION_FILE_INFO there are seperagte files for pre (2) and post (3) alarm recording.
Search is performed from a start point on the timeline towards an end point. If the end point is prior to the start point search is performed backwards. To get all available results of an recording a search from 0 to 0xFFFFFFFF needs to be done.
The number of results is limited to 256 per response. The result are always in ascending order independent if the search is performed forward or backward. The File ID always increases on span recording regions if new files will be created. To get all results the command has to be called multiple times.
In that case the start or stop times needs to be updated with every call: If a forward search is executed the start time of the next request must be the stop time of the last retrieved result. If a bachward search is executed the start time of the next request must be the start time of the first retrieved result.
A search is completed if the number of returned results is smaller than 256 or if the endpoint of the search is greater or equal than than the endpoint of the last result. In case of forward search a virtual start point (equal to the start point of the search) will be inserted if the search start point is range with recording.

Request Payload Structure

1632
Search Start Time
4 Bytes
Search Stop Time
4 Bytes
Max Entries
4 Bytes
Flags
4 Bytes
824

Search Start Time

Seconds since 2000

Search Stop Time

Seconds since 2000

Max Entries

Max Number of entries, limited to 256
Entries1 - 256

Flags

MaskNameDescription
Bit 10x00000002UTC_FLAGStart and stop time are utc times (request)
Bit 00x00000001YOUNGER_OR_EQUAL_FLAGMust be set in case of forward search

Response Payload Structure

1632
Start Time
4 Bytes
Stop Time
4 Bytes
Flags
4 Bytes
File ID
4 Bytes
824

Start Time

Seconds since 2000

Stop Time

Seconds since 2000

Flags

MaskNameDescription
Bit 290x20000000Time Zone Sign
Bit 280x10000000Time Zone
Bit 270x08000000Time Zone
Bit 260x04000000Time Zone
Bit 250x02000000Time Zone
Bit 240x01000000Time Zone
Bit 230x00800000Time Zone
Bit 220x00400000Protected(VRM only)
Bit 210x00200000Offline(VRM only)
Bit 180x00040000reserved
Bit 170x00020000reserved
Bit 160x00010000Alarm Remote(there are virtual/remote alarms in this file, see CONF_HD_MGR_SIGNAL_ALARM)
Bit 150x00008000Track Fill Level
Bit 140x00004000Track Fill Level
Bit 130x00002000Track Fill Level
Bit 120x00001000Track Fill Level
Bit 110x00000800Track Fill Level
Bit 100x00000400Track Fill Level
Bit 90x00000200Track Fill Level
Bit 80x00000100Track Fill Level
Bit 70x00000080Recording mode
Bit 60x00000040Recording mode
Bit 50x00000020Video Loss(there are video loss in this file)
Bit 40x00000010New Alarm(obsolete)
Bit 30x00000008Alarm Motion(there are motion alarms in this file)
Bit 20x00000004Alarm Input(there are input alarms in this file)
Bit 10x00000002Recording Overwriting(recording takes place in a ring and old recording data will be overwritten)
Bit 00x00000001Recording Running(actual recording is running on this file or recording not closed regulary)
Combined Values
MaskNameDescription
0x1F800000Time Zone
Quarter hours
0x0000FF00Track Fill Level
Fill level in percent, always 100 % on filled ring recording
0x0000C000Recording Mode
Time Recording1
Alarm recording (pre alarm)2
Alarm recording (post alarm)3
Values 2 and 3 only in CONF_SPAN_PARTITION_FILE_INFO distinguishable, for CONF_PARTITION_FILE_INFO these two values have the meaning of a full alarm rec file

Example

Forward search (data is available from time A to time B):
  1. A search is executed from time 0 to time B. In that case the reponse is: secStart=A, secStop=B
  2. A search is executed from time 0 to time 0xFFFFFFFF. In that case the reponse is: secStart=A, secStop=B
  3. A search is executed from time C (C > A and C < B) to time B. In that case the reponse is: secStart=C, secStop=B
  4. A search is executed from time A to time C (C > A and C < B). In that case the reponse is: secStart=A, secStop=C
Backward search (data is available from time A to time B):

CONF_HD_REPLAY_CERTIFICATES_LIST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c12Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalGet certificates list of records, Replay Session ID is needed, see detailed description
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command can be used to query the certificates from the records of a camera via replay session (session ID required), in order to verify the signed video record data within that records. The response will deliver all certificates of the records and time intervall addressed by the specidfied replay session. The maximum size of the response can be limited by the caller but it will not exceed 16 kb for the certificates list. If the response payload size isnt't enough to hold all valid certificates, a flag in the response will signal the existence of further certificates, which didn't fit in the response payload. A second query in that case with a smaller time interval may help to get the remaining certificates. The response will have a certificates list with several enries of different size, there are no gaps between the entries.

Request Payload Structure

1632
Start Time
4 Bytes
End Time
4 Bytes
TZ QH
1 Byte
Reserved
3 Bytes
Max List Len
4 Bytes
824

Start Time

Start time of the intervall in seconds since 2000 local time based on the Timezone offset in TZ QH

End Time

End time of the intervall in seconds since 2000 local time based on the Timezone offset in TZ QH

TZ QH

Timezone offset (from utc) in quarter hours as signed char value

Max List Len

Maximum size of the certificates list in response payload in bytes

Response Payload Structure

1632
Start Time
4 Bytes
End Time
4 Bytes
TZ QH
1 Byte
Flags
1 Byte
Reserved
2 Bytes
List Len
4 Bytes
Certificate [0]
(see description)
...
Certificate [N]
(see description)
824

Start Time

Start time of the intervall in seconds since 2000 local time based on the Timezone offset in TZ QH

End Time

End time of the intervall in seconds since 2000 local time based on the Timezone offset in TZ QH

TZ QH

Timezone offset (from utc) in quarter hours as signed char value

Flags

MaskNameDescription
Bit 00x01Max Length ExceededMore certificates available, but the max length of the certificates list was exceeded

List Len

Size of the certificates list in response payload in bytes

Certificate

1632
Timestamp
4 Bytes
TZ QH
1 Byte
Reserved
1 Byte
Length
2 Bytes
Certificate...
Length Bytes
Certificate
...
824

Timestamp

Local time in seconds since 2000

TZ QH

Timezone offset (from utc) in quarter hours as signed char value

Length

Length of the Certificates List Entry (certificate including these 8 bytes header infos)

Certificate

One certificate

CONF_HD_REPLAY_CUSTOM_SETTINGS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b56Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead replay custom settings, see detailed,
Writep_octetuserSet replay custom settings, see detailed,
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command is used to configure the behaviour of an existing replay session. A valid replay session id has to be provided.

Payload Structure

1632
flags
4 Bytes
flags mask
4 Bytes
kbps max
4 Bytes
time shift
4 Bytes
824

flags

Flag field for configuring custom behavior of an replay session
MaskName
Bit 130x00002000aac 16 khz rtp clock
Bit 120x00001000ignore start and end of files
Bit 110x00000800transcode
Bit 100x00000400set time shift
Bit 90x00000200patch pic id
Bit 80x00000100add rtp hdr extension
Bit 70x00000080use UTC
Bit 60x00000040L16 to G711
Bit 50x00000020set kbps max
Bit 40x00000010no rcp message
Bit 30x00000008auto start
Bit 20x00000004h264 only
Bit 10x00000002dont send dummy pkt
Bit 00x00000001patch rtp hdr

flags mask

Mask for the flag field, it is used to set only choosen values without changing the other values. To set a choosen value in the flag field, the corresponding flag in the flags mask has to be set also. All other setting will be left unchanged

kbps max

Set the max send data rate in kbit per seconds, 'set kbps max' flag has to be set in order to change that value.

time shift

Set time shift in seconds, 'set time shift' flag has to be set in order to change that value.

CONF_HD_REPLAY_EVENT_INFO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x091fNonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command returns a list of recorded alarm events in backward order, since fw 4.0 events are only alarm state changes. Max size of the list is 128 entries. The command needs a valid replay session. The events start from the given end time (first 4 bytes of payload) in secconds since 2000. If the payload consists of at least 8 bytes and the bytes 5-8 are filled with the value 0xeeeeeeee the extended event structure is used in the response payload. Payload size with all optional parameters is 12 bytes (see "In Payload"). The response contains a flag field, containing the alarm flags, which give information about the alarm, which are activated at this event or if all alarms went to off state, if no one of the alarm flags were set. the flags also contains the time zone information with sign and number of quarter hours.

Request Payload Structure

1632
search begin time
4 Bytes
special field
4 Bytes
earliest time
4 Bytes
824

search begin time

Start time of the search in seconds since 2000. The search will procceed into the past.

special field

Optional parameter, if set to 0xeeeeeeee, the reply will contain data in extended event structure format. Any other value has no meaning yet.

earliest time

Optional parameter, Erliest time in seconds since 2000. The search won't search in record files, which lie before that time. The search will be performed on file which lie completely or partialy within the search interval of earliest time and search begin time. If not set, the default will be 0.

Response Payload Structure

Event [0]
(see description)
...
Event [N]
(see description)

Event


'Event' payload for '??' = 'Simple Event' (??)

1632
Event Time
4 Bytes
Flags
4 Bytes
824

Event Time

Seconds since 2000.

Flags

MaskNameDescription
Bit 310x80000000time zone quarter hours sign1 - negativ
Bit 300x40000000time zone quarter hours
Bit 290x20000000time zone quarter hours
Bit 280x10000000time zone quarter hours
Bit 270x08000000time zone quarter hours
Bit 260x04000000time zone quarter hours
Bit 250x02000000time zone quarter hours
Bit 240x01000000time zone quarter hours
Bit 30x00000008Virtual alarm(see CONF_VIRTUAL_ALARM_STATE)
Bit 20x00000004Video Loss
Bit 10x00000002Input Alarm
Bit 00x00000001Motion Alarm
Combined Values
MaskNameDescription
0x7f000000time zone quarter hours

'Event' payload for '??' = 'Extended Event' (??)

1632
Upper X
1 Byte
Upper Y
1 Byte
Lower X
1 Byte
Lower Y
1 Byte
Event Time
4 Bytes
Residual milliseconds
4 Bytes
Reserved
4 Bytes
Flags
4 Bytes
824

Upper X

Specifies a bounding box (upper left corner and lower right corner). If an object can be associated with the alarm then the bounding box will be around this object otherwise the whole image is the bounding box. The values are normalized to the image size and are between 0 and 255. The origin of the coordinate system is the upper left corner of the image.

Upper Y

See 'Upper X' for details.

Lower X

See 'Upper X' for details.

Lower Y

See 'Upper X' for details.

Event Time

Seconds since 2000.

Flags

MaskNameDescription
Bit 310x80000000time zone quarter hours sign1 - negativ
Bit 300x40000000time zone quarter hours
Bit 290x20000000time zone quarter hours
Bit 280x10000000time zone quarter hours
Bit 270x08000000time zone quarter hours
Bit 260x04000000time zone quarter hours
Bit 250x02000000time zone quarter hours
Bit 240x01000000time zone quarter hours
Bit 30x00000008Virtual alarm(see CONF_VIRTUAL_ALARM_STATE)
Bit 20x00000004Video Loss
Bit 10x00000002Input Alarm
Bit 00x00000001Motion Alarm
Combined Values
MaskNameDescription
0x7f000000time zone quarter hours

CONF_HD_REPLAY_FAST_INTRA_DELAY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x095eNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the delay (in 10ms) between the frames in intra only replay mode
Writet_dworduserSet the delay (in 10ms) between the frames in intra only replay mode
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_REPLAY_FAST_INTRA_FPS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ac2Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet max frames per second for intra only replay mode
Writet_dworduserSet max frames per second for intra only replay mode (0 = default)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_REPLAY_FORENSIC_SEARCH_CANCEL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b50Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writet_dworduserCancel a forensic search, t_dword is the search id (result of search setup), session id is required
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_REPLAY_FORENSIC_SEARCH_RESULT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b0bNoneyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command is a messages command. It successively delivers the results of a forensic search request.

Payload Structure

1632
Forensic Search ID
4 Bytes
Sequence Number
2 Bytes
Number of Events
1 Byte
Last Message
1 Byte
Progress Time
4 Bytes
Timezone
1 Byte
Event type
1 Byte
Reserved
2 Bytes
Event [0]
(see description)
...
Event [N]
(see description)
824

Forensic Search ID

With the forensic search ID this event message can be assigned to the corresponding search request.

Sequence Number

The sequence number is increasing and missing packets can be detected.

Last Message

The last message byte is signalling that the search has been accomplished with this message.

Progress Time

This time informs about the progress of the search. The time is given in seconds since 1-1-2000 (local time). This time is updated every second (search time) and forces to throw this message. Hence, it can be expected that at least every second a message will be thrown.

Timezone

Timezone in quarter hours (signed byte in two's complement representation).

Event type

Object Event0
Error Event1

Event


'Event' payload for 'Event type' = 'Object Event' (0)

1632
Begin
4 Bytes
Duration
2 Bytes
Rule ID
1 Byte
Reserved
1 Byte
Event duration in ms
4 Bytes
Object ID
4 Bytes
Bounding Box
4 Bytes
824

Begin

The beginning of the event is provided in local time in seconds since 2000 and milliseconds.

Duration

Duration of the event in ms.

Rule ID

The Rule ID informs which rule is related to this event.

Object ID

Object ID which has caused the alarm.

Bounding Box

Bounding box of object in normalized coordinates from 0 to 255. First, the upper left point is encoded then the lower right point of the bounding box. The coordinate (0,0) is the upper left corner of the image and the point (255,255) is the lower right corner of teh image. The bounding box is from the begin time.

'Event' payload for 'Event type' = 'Error Event' (1)

Error type
1 Byte
Error text...
64 Bytes
Error text
...
Error text
...
Error text
...

Error type

Values:
e_ForensicSearchErrorNone0x00
e_ForensicSearchErrorInternal0x02
e_ForensicSearchErrorNoMetaData0x07
e_ForensicSearchErrorDataDoesNotMatch0x08

Error text

The error text is a detailed description of the error. E.g. for syntax errors the line of the script and error type are mentioned.

CONF_HD_REPLAY_FORENSIC_SEARCH_SETUP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b0aNonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetuserSetup a forensic search, see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command is related to a replay session. The replay session will start a forensic search with the provided ruleengine script.
In the successful mode the return payload consists of an unique 4 byte ForensicSearch ID which can be refound in the corresponding message (HD_REPLAY_FORENSIC_SEARCH_RESULT). In the case of an error the RCP_ERROR_COMMAND_SPECIFIC error is returned with an error code (see HD_REPLAY_FORENSIC_SEARCH_RESULT).

Request Payload Structure

1632
Start Time
4 Bytes
End Time
4 Bytes
Reserved
4 Bytes
Script Length
2 Bytes
Script Mode
1 Byte
VCA Profile ID
1 Byte
Layer Mode
1 Byte
Flags
1 Byte
Layer Mask
2 Bytes
Script Data...
(see description)
Script Data
...
824

Start Time

Start time of forensic search in seconds since 2000 (local time).

End Time

End time of forensic search in seconds since 2000 (local time).

Script Length

Length of the script. If the length of the script is zero a default search is performed, i.e. 'Detect any object or Detect any Flow or Detect any Motion'.

Script Mode

The mode defines how the configuration data has to interpreted. See detailed description of configuration data for each case below.
Rule Engine Configuration0x00
Rule Engine Script Only0x01
In Field Search0x02
Crossing Line Search0x03

VCA Profile ID

VCA profile id search is supported. The recommended profile id is zero resulting in an exhausting search over the given interval. With a non zero profile id the seacrh speed can be increased because meta data recorded with different a profile are skipped.

Layer Mode

Flags

MaskNameDescription
Bit 30x08Flag Clear CacheCollected VCD packets will be deleted, next search will start new replay
Bit 20x04Flag Cache DataCollects compressed VCD data, next search will use collected VCD packets
Bit 10x02Flag VerboseAdditional printouts
Bit 00x01Flag SendSend layer data

Layer Mask

The layer mask is only used if layer mode is set to 1.

Script Data


'Script Data' payload for 'Script Mode' = 'Rule Engine Configuration' (0x00)

In this mode the configuration data contains the whole rule engine configuration (eg including camera calibration). For more detailed information see the rcp command: CONF_VCD_OPERATOR_PARAMS.

'Script Data' payload for 'Script Mode' = 'Rule Engine Script Only' (0x01)

If the script mode is selected to "rule engine script only" the configuration data contains the rule engine script. The script is encoded in plain text. One of these examples can be used as a valid script.
Example: Any motion / flow / object in Field
Field #1 := { Point(50, 50) Point(100, 50) Point(100, 100) Point(50, 100) };
FlowDetector #1 := { Field #1 };
MotionDetector #1 := { Field #1 };
external SimpleState #1 := DetectedFlow #1;
external SimpleState #2 := DetectedMotion #1;
external ObjectState #3 := InsideField #1;
Example: Object in Field
Field #1 := { Point(50, 50) Point(100, 50) Point(100, 100) Point(50, 100) };
external ObjectState #1 := InsideField #1;
external Event #2 := OnSet ObjectState #1;
Example: Crossing Line
Resolution := { Min(-1,-1) Max(1,1) };
Line #1 := { Point(-0.5, -0.5) Point(0.5, 0.5) DebounceTime(0.50) Direction(1) };
external Event#2 := { CrossedLine #1 };
Example: Following Route
Route #2 := { Point(41, 117) Distance(5) Point(51, 87) Distance(9) Point(79, 74) Distance(5) Direction(1) MinPercentage(80) MaxGap(10) };
external Event #3 := { FollowedRoute #2 };
For more details, read the Bosch Query Language Specification.

'Script Data' payload for 'Script Mode' = 'In Field Search' (0x02)

1632
Upper left x-coordinate
2 Bytes
Upper left y-coordinate
2 Bytes
Lower right x-coordinate
2 Bytes
Lower right y-coordinate
2 Bytes
Debounce time
2 Bytes
Field flags
2 Bytes
824
A field search is define by two normalized points. Each point is normalized between 0 and 65535. The upper left corner of the image has the coordinates (0,0) and the lower right corner (65535,65535). Additionally, debounce time and intersection mode can be addressed.

Debounce time

The debounce time is given in units of 10 ms.

Field flags

MaskNameDescription
Bit 10x0002Field modeBaryCenter (0, default) or Boundingbox (1)
Bit 00x0001Object modeIntersection (0, default) or Covering (1)

'Script Data' payload for 'Script Mode' = 'Crossing Line Search' (0x03)

1632
Upper left x-coordinate
2 Bytes
Upper left y-coordinate
2 Bytes
Lower right x-coordinate
2 Bytes
Lower right y-coordinate
2 Bytes
Debounce time
2 Bytes
Direction
1 Byte
Reserved
1 Byte
824
A line crossing search is define by two normalized points. Each point is normalized between 0 and 65535. The upper left corner of the image has the coordinates (0,0) and the lower right corner (65535,65535).

Debounce time

The debounce time is given in units of 10 ms.

Direction

One can choose whether any object which passes the line triggers an event or whether only objects which pass from left to right respectively right to left are relevant:
Any Direction0Any object which passes the line triggers an event
Left To Right1Only objects which pass from left to right triggers an event
Right To Left2Only objects which pass from right to left triggers an event

Response Payload Structure

1632
ForensicSearchID
4 Bytes
824

Command Specific Errors

e_ForensicSearchErrorNone0x00
e_ForensicSearchErrorScriptTooLong0x01
e_ForensicSearchErrorInternal0x02
e_ForensicSearchErrorNoRuleSelected0x03
e_ForensicSearchErrorREConfiguration0x04
e_ForensicSearchErrorSyntax0x05
e_ForensicSearchErrorMemory0x06

CONF_HD_REPLAY_LIVE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0963Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet replay connection live mode
Writet_dworduserSet a replay connection to live mode (only supported with transcoder) 1:=on, 0:= off replay commands like start or seek terminate the live mode
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_REPLAY_MOTION_SAMPLES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x095dNonenono
 DatatypeAccess LevelDescription
Readp_octetminimalObsolete
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_REPLAY_PREFETCH_JPEGS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b55Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetuserSessionID required, 16bytes header (1byte jpeg quality 0-100, 1byte reserved, 2bytes jpeg height in pixel, 12bytes reserved), N times seconds_since_2000 (each 4bytes)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_REPLAY_SEEK_IFRAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0907Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writet_intuserSet the replay pointer to the beginning of the next frame/last I-Frame(s); parameter t_int -1 back to last iframe, 1 to next frame; Session ID is needed
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_REPLAY_SEEK_TIME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0905Noneyesno
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetuser
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command will return a write error if the timeposition is outside a recording set. The Session ID is needed.

Payload Structure

1632
Seconds
4 Bytes
824

Seconds

Absolute time in seconds since 1.1.2000 00:00h.

Message Payload Structure

1632
Seconds
4 Bytes
Rtp Timestamp
4 Bytes
824

Seconds

Absolute time in seconds since 1.1.2000 00:00h.

Rtp Timestamp

Rtp timestamp of the first replayed RTP packet of this second.

Write Payload Structure

Optional, instead of above payload structure
1632
Seconds
4 Bytes
Miliseconds
2 Bytes
Flags
1 Byte
Payload
1 Byte
Conf_roi...
(see description)
Conf_roi
...
Reserved...
16 Bytes
Reserved
...
Reserved
...
Reserved
...
824

Seconds

Absolute time in seconds since 1.1.2000 00:00h.

Flags

MaskNameDescription
Bit 20x04Sec Accuracyseek time accuracy to seconds (transcoder case only)
Bit 10x02Iframe Previewsends the Iframe on the seek position (transcoder case only)
Bit 00x01Time Zonepayload contains the timezone as quarter hours offset (signed char)

Payload

One payload byte, conntend depends on the flags field

Conf_roi

Select region of interest hPos,vPos,hSize,vSize (each entry 2 bytes): starting left upper edge, each 2bytes 0..32768, vSize==0 means keep aspect ratio
1632
hPos
2 Bytes
vPos
2 Bytes
hSize
2 Bytes
vSize
2 Bytes
824

CONF_HD_REPLAY_SEQUENCE_VERIFY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c23Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalVerfies authenticity of the replayed video records if enabled, sets the enabled verification flags: 0x1 - hash verify, 0x2 - signature verify, 0x4 - certificate verify
Writet_dworduserVerfies authenticity of the replayed video records if enabled, sets the enabled verification flags: 0x1 - hash verify, 0x2 - signature verify, 0x4 - certificate verify
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_REPLAY_SIZE_INFO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0906Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Replay session id required. Start time and stop time has to be within one file.

Request Payload Structure

1632
Starttime
4 Bytes
Stoptime
4 Bytes
824

Starttime

In seconds since 2000.

Stoptime

In seconds since 2000.

Response Payload Structure

1632
Max Size...
8 Bytes
Max Size
...
Min. Number Of Rtp Packets
4 Bytes
824

Max Size

Max size in bytes on storage, including recording overhead, replay stream size will be less.

Min. Number Of Rtp Packets

Minimum number of rtp packets Will tend to be more

CONF_HD_REPLAY_START

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0902Noneyesno
 DatatypeAccess LevelDescription
Readt_intminimalReturns t_int parameter in percent of realtime replay (default +100%); 0 if suspended or stopped; Session ID is needed
Writet_intuserStart a HD replay at the current position; t_int parameter in percent of realtime replay (default +100%); negative values will result in a reverse replay; Session ID is needed
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_REPLAY_START_EX

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c74Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetuserStart a HD replay at the current position; 32 bytes: 4Bytes int parameter in percent of realtime replay (default +100%); negative values will result in a reverse replay; 1byte flags, 1 byte cseq, remaining reserved, Session ID is needed
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_REPLAY_STOP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0903Noneyesno
 DatatypeAccess LevelDescription
Readf_flagminimal1=replay is stopped; 0=replay is in progress
Writef_flaguserStop a current HD replay; replay pointer will not be affected; Session ID is needed
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_REPLAY_STOP_TIME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0904Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetuser
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command will return a write error if the timeposition is outside a recording set. The Session ID is needed. A value of zero clears the stop marker.

Payload Structure

1632
Seconds
4 Bytes
Milliseconds
4 Bytes
824

Seconds

Absolute time in seconds since 1.1.2000 00:00h.

CONF_HD_REPLAY_VCD_CONFIG_ID

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a5fNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalRequested vcd config 0=all data, 1=config1 data, 2=config2 data, ..; replay session id required
Writet_dworduserRequested vcd config 0=all data, 1=config1 data, 2=config2 data, ..; replay session id required
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HD_REPLAY_VCD_LAYER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09c8Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalRequested vcd layer 0=no vcd data, 1=layer1, 2=layer2, ..; replay session id required
Writet_dworduserRequested vcd layer 0=no vcd data, 1=layer1, 2=layer2, ..; replay session id required
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DPTZ_DYNAMIC_CAPS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bb70 - addressing via Session IDnono
 DatatypeAccess LevelDescription
Readt_dwordminimalRead current/dynamic DPTZ capabilities. 1st bit: ROI, 2nd bit: E-PTZ-Tracker
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DPTZ_STATIC_CAPS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bfdNonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Read current DPTZ capabilities. They may are changed if CONF_VIDEO_H264_ENC_BASE_OPERATION_MODE or CONF_VIDEO_LINE_DEWARPING_MODE is changed. The command consists of n entries with a fixed length of 8 Bytes and the following data.

Payload Structure

1632
Line
1 Byte
Stream
1 Byte
Bicom PTZ Steering
1 Byte
Auto Tracker Type
1 Byte
Steering Type
1 Byte
Reserved
3 Bytes
824

Line

Line id (1 based)

Stream

Stream id (1 based)

Bicom PTZ Steering

Not Supported0PTZ commands are not supported
Supported1PTZ commands are supported

Auto Tracker Type

Not Supported0
EPTZ supported1

Steering Type

ptzSteeringTypeNoOptionPresent0
ptzSteeringTypePhysicalDome1
ptzSteeringTypeCutOutRegion2
ptzSteeringTypeVirtualPtz3

CONF_ROI

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b48Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetlive
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Select region of interest. The Session-ID identifies the video coder.

Payload Structure

1632
hPos
2 Bytes
vPos
2 Bytes
size
2 Bytes
reserved
2 Bytes
824

hPos

Center position of the cropping window in relative coordinates (0..32768). E.g. (0, 0) is upper left; (16384, 16384) is the center of the original image.

vPos

Center position of the cropping window in relative coordinates (0..32768). E.g. (0, 0) is upper left; (16384, 16384) is the center of the original image.

size

Size of the cropping window in relative coordinates (0..32768). The aspect ratio will be preserved.

reserved

2 Bytes reserved

CONF_ROI_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c7evideo linenono
 DatatypeAccess LevelDescription
Readp_octetalways_legacy
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Get CONF_VIDEO_STATIC_SCENE_REGIONS encoding options per line.

Payload Structure

48
Opt1
1 Byte
Opt2
1 Byte
Opt3
1 Byte
26

Opt1

MaskNameDescription
Bit 10x02h.265Supports static scene options in h.265
Bit 00x01h.264Supports static scene options in h.264

Opt2

MaskNameDescription
Bit 00x01POSSupports preset pos inside CONF_VIDEO_STATIC_SCENE_REGIONS

Opt3

MaskNameDescription
Bit 00x01QP+Only positive QP offsets at encoder regions

CONF_STREAM_EXCLUSIVE_CHECK

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ba0no - addressing via Session IDnono
 DatatypeAccess LevelDescription
Readf_flagminimalCheck if connected ROI stream session is exclusive (meaning only one instance to one client -> exclusive ROI steering).
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
non-exclusive0
exclusive1

CONF_GET_RTSP_SESSION_ID

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ae8random value from (Rtsp Session setup)nono
 DatatypeAccess LevelDescription
Readt_dwordliveGets the rcp session id of the rtsp session (identified by the random value )
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_RTSP_PORT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a63Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the local Rtsp port
Writet_dwordserviceSets the local Rtsp port #ValueList: 0= Rtsp off
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_RTSPS_PORT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ce6Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the local Rtsps port
Writet_dwordserviceSet the local Rtsps port #ValueList: 0= Rtsp off;
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_CRYPT_KEY_GENERATE_ALL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a13Nonenono
 DatatypeAccess LevelDescription
Readf_flagminimalDeprecated - use SRTP instead for video/audio encryption. Returns flag=0 when all key are cleared otherwise flag=1
Writef_flagserviceDeprecated - use SRTP instead for video/audio encryption. Generates a random key(flag=1) or clears all(flag=0) keys for AES encryption for all media encoders
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_CRYPT_KEYAUDIO_DEC

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09ffaudio codernono
 DatatypeAccess LevelDescription
Readp_octetserviceDeprecated - use SRTP instead for video/audio encryption. Get key for AES Audio data encryption/decryption
Writep_octetserviceDeprecated - use SRTP instead for video/audio encryption. Set key for AES Audio data encryption/decryption, see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes no

Description

This description is valid for the the commands:
Set all Key- and all Salt- Bytes to zero, if no encryption/decryption is wished.

Num Descriptor Values

coderAnyThe number of the coder instance (absolute)

Payload Structure

1632
Key...
16 Bytes
Key
...
Key
...
Key
...
824

Key

The 16 Byte Masterkey for AES encryption/decryption of data

CONF_CRYPT_KEYAUDIO_ENC

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09feaudio codernono
 DatatypeAccess LevelDescription
Readp_octetserviceDeprecated - use SRTP instead for video/audio encryption. Get key for AES Audio data encryption/decryption
Writep_octetserviceDeprecated - use SRTP instead for video/audio encryption. Set key for AES Audio data encryption/decryption, see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes no

Description

This description is valid for the the commands:
Set all Key- and all Salt- Bytes to zero, if no encryption/decryption is wished.

Num Descriptor Values

coderAnyThe number of the coder instance (absolute)

Payload Structure

1632
Key...
16 Bytes
Key
...
Key
...
Key
...
824

Key

The 16 Byte Masterkey for AES encryption/decryption of data

CONF_CRYPT_KEYVIDEO_DEC

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a00video codernono
 DatatypeAccess LevelDescription
Readp_octetserviceDeprecated - use SRTP instead for video/audio encryption. Get key for AES Video data encryption/decryption
Writep_octetserviceDeprecated - use SRTP instead for video/audio encryption. Set key for AES Video data encryption/decryption, see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes no

Description

This description is valid for the the commands:
Set all Key- and all Salt- Bytes to zero, if no encryption/decryption is wished.

Num Descriptor Values

coderAnyThe number of the coder instance (absolute)

Payload Structure

1632
Key...
16 Bytes
Key
...
Key
...
Key
...
824

Key

The 16 Byte Masterkey for AES encryption/decryption of data

CONF_CRYPT_KEYVIDEO_ENC

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09edvideo codernono
 DatatypeAccess LevelDescription
Readp_octetserviceDeprecated - use SRTP instead for video/audio encryption. Get key for AES Video data encryption/decryption
Writep_octetserviceDeprecated - use SRTP instead for video/audio encryption. Set key for AES Video data encryption/decryption, see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes no

Description

This description is valid for the the commands:
Set all Key- and all Salt- Bytes to zero, if no encryption/decryption is wished.

Num Descriptor Values

coderAnyThe number of the coder instance (absolute)

Payload Structure

1632
Key...
16 Bytes
Key
...
Key
...
Key
...
824

Key

The 16 Byte Masterkey for AES encryption/decryption of data

CONF_DEVELOPER_MODE_ALLOWED

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cfdNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimal0=developer mode is not allowed; 1=developer mode is allowed
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available no yes

CONF_LOGIN_LIMITER_MESSAGE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cb3Noneyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
Number Of Entries
2 Bytes
Total Length
2 Bytes
Entry [0]
...
Entry [Number Of Entries - 1]
824

Number Of Entries

Number of Entries following

Total Length

Total Length in Bytes, including all entries and this header

Entry

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 1: LOGIN_LIMITER_MSG_STATUS

1632
Length = 0x0005
2 Bytes
Tag = 0x0001
2 Bytes
LOGIN_LIMITER_MSG_STATUS (t_octet)
1 Byte
824
Values:
Fail Msg0
Success Msg1

Tag 2: LOGIN_LIMITER_SERVER_NAME

1632
Length
2 Bytes
Tag = 0x0002
2 Bytes
LOGIN_LIMITER_SERVER_NAME (p_string)
Length - 4 Bytes
824

Tag 3: LOGIN_LIMITER_REMOTE_ADDRESS

1632
Length
2 Bytes
Tag = 0x0003
2 Bytes
LOGIN_LIMITER_REMOTE_ADDRESS (p_string)
Length - 4 Bytes
824

Tag 4: LOGIN_LIMITER_USER_NAME

1632
Length
2 Bytes
Tag = 0x0004
2 Bytes
LOGIN_LIMITER_USER_NAME (p_string)
Length - 4 Bytes
824

CONF_PUBLISH_MEDIA_KEYS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09fcNonenono
 DatatypeAccess LevelDescription
Readf_flagminimalSwitches whether the media key of a media source are readable and transferred during the hw-hw connection setup. Obsolete - keys are always forwarded on ssl control connections
Writef_flagserviceSwitches whether the media key of a media source are readable and transferred during the hw-hw connection setup. Obsolete - keys are always forwarded on ssl control connections
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STREAM_SECURITY_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bb9Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalReads rtp stream security settings options (2 bytes maxHashId, 2 bytes maxSigId, 4 bytes minSigDist, 4 bytes maxSigDist, 4 bytes minDistMid, 4 bytes minDistLow)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STREAM_SECURITY_V2

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bb8Nonenono
 DatatypeAccess LevelDescription
Readp_octetuserReads rtp stream security settings (2 bytes hash id[0=off, 1=classic watermark, 2=MD5, 3=SHA1, 4=SHA256], 2 bytes signature id[0=Off, 1=RSAwithSHA1], 4 bytes signature interval)
Writep_octetserviceConfigures rtp stream security settings (2 bytes hash id[0=off, 1=classic watermark, 2=MD5, 3=SHA1, 4=SHA256], 2 bytes signature id[0=Off, 1=RSAwithSHA1], 4 bytes signature interval, setting signature interval to 0xFFFFFFFF selects default)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIDEO_OVER_SSL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b65Nonenono
 DatatypeAccess LevelDescription
Readt_dworduserReturns if video over ssl is supported or not
Writet_dworduserEnables/disables video over ssl
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
disabled0

CONF_WATERMARK

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0924Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimal0=disables watermark; 1=classic watermark, 2=video authentication(low profile), 3=video authentication(mid profile), 4=video authentication(high profile)
Writet_octetservice0=disables watermark; 1=classic watermark, 2=video authentication(low profile), 3=video authentication(mid profile), 4=video authentication(high profile)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_WIFI_CONFIG_TOKEN

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c29Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_stringserviceStore WifiConfigToken; used for residential cloud services APP as a secret to change the Wifi network settings after initial configuration
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_SERIAL_ACTS_ACCESS_RIGHTS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b1aphysical portnono
 DatatypeAccess LevelDescription
Readt_octetminimalReturn access rights of ACTS/OSRD commands which are sent via transparent data.
Writet_octetserviceSet access rights of ACTS/OSRD commands which are sent via transparent data.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
user rights0mainly PTZ) (default
service rights1change settings

CONF_SERIAL_PORT_APP_VAL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01f1physical portnono
 DatatypeAccess LevelDescription
Readt_octetalways_legacy
Writet_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
terminal mode0serial port application is in terminal mode
transparent datamode0xFFserial port application is in transparent datamode
camera type mode1
camera type mode2
camera type mode3
camera type mode4
camera type mode5
camera type mode6
camera type mode7
camera type mode8
camera type mode9
camera type mode10
piped mode0xF8serial port application is in a mode where incoming CONF_BICOM_COMMAND are piped to the serial port (0xF8 is only applicable on encoder devices and only for video line 1, for 0xF8 a device reboot is necessary!)

CONF_SERIAL_PORT_BITS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x027fphysical portnono
 DatatypeAccess LevelDescription
Readt_octetminimal
Writet_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
seven data bits7
eight data bits8

CONF_SERIAL_PORT_HD_MODE_VAL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x020bphysical portnono
 DatatypeAccess LevelDescription
Readt_octetminimal
Writet_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
halfduplex mode off0
halfduplex mode on1
halfduplex mode on and buffered data2NOT avalibale in conventional VideoJet

CONF_SERIAL_PORT_MODE_VAL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0208physical portnono
 DatatypeAccess LevelDescription
Readt_octetminimal
Writet_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
port mode RS2321
port mode RS422/RS4852NOT available in conventional VideoJet

CONF_SERIAL_PORT_PAR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0281physical portnono
 DatatypeAccess LevelDescription
Readt_octetminimal
Writet_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
no parity0
even parity1
odd parity2

CONF_SERIAL_PORT_RATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x027ephysical portnono
 DatatypeAccess LevelDescription
Readt_dwordminimalBitrate=300; bitrate=600; bitrate=1200; bitrate=2400; bitrate=4800; bitrate=9600; bitrate=19200
Writet_dwordserviceBitrate=300; bitrate=600; bitrate=1200; bitrate=2400; bitrate=4800; bitrate=9600; bitrate=19200
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SERIAL_PORT_STBITS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0280physical portnono
 DatatypeAccess LevelDescription
Readt_octetminimal
Writet_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
1 modemport stopbit1
2 modemport stopbits2

CONF_TPPP_PORT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ca8Nonenono
 DatatypeAccess LevelDescription
Readt_wordminimalGets the port of the third party protocol proxy (0 means off)
Writet_wordserviceSets the port of the third party protocol proxy (0 means off)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NBR_OF_TRAPS_HOSTS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x029dNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalNumber of hosts snmp traps can be sent to
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_PMPP_ADDRESS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ab9Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalGets the Pmpp Address (allowed values: 1-63;)
Writet_octetserviceSets the Pmpp Address (allowed values: 1-63;)
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_PMPP_PORT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0abaNonenono
 DatatypeAccess LevelDescription
Readt_wordminimalGet the Pmpp Port of the pmpp server,
Writet_wordserviceSets the Pmpp Port of the pmpp server,
CPP6/CPP7/CPP7.3CPP13
Available yes no

Values:
off0

CONF_SNMP_READ_COMMUNITY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b16Nonenono
 DatatypeAccess LevelDescription
Readp_stringserviceRead the community string for snmp read access
Writep_stringserviceWrite the community string for snmp read access
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_SNMP_SERVER_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c4eNonenono
 DatatypeAccess LevelDescription
Readt_octetserviceRead the snmp server mode (0=v1 legacy mode; 1=v1; 8=v3; 9=v1+v3)
Writet_octetserviceWrite the snmp server mode (0=v1 legacy mode; 1=v1; 8=v3; 9=v1+v3); Support for options 1=v1 and 9=v1+v3 removed in V6.50 and later
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_SNMP_SRV_PORT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a25Nonenono
 DatatypeAccess LevelDescription
Readt_wordminimalRead the snmp server port
Writet_wordserviceSet the snmp server port (reset nescessary)
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_SNMP_TRAP_COMMUNITY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b18Nonenono
 DatatypeAccess LevelDescription
Readp_stringserviceRead the community string used in snmp traps
Writep_stringserviceWrite the community string used in snmp traps
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_SNMP_TRAP_LIST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a11Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalList of commands to be posted as snmp trap. See detailed description.
Writep_octetserviceList of commands to be posted as snmp trap. See detailed description.
CPP6/CPP7/CPP7.3CPP13
Available yes no

Payload Structure

Trap Descriptor [0]
(see description)
...
Trap Descriptor [N]
(see description)

Trap Descriptor

1632
RCP Msg Code
2 Bytes
Bitmask of Flags
2 Bytes
824

RCP Msg Code

The code of the RCP message that is to be forwarded as SNMP trap.

Bitmask of Flags

SNMP_TRAP_ENABLED1

CONF_SNMP_TRAPS_HOST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x00b6Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalNot documented
Writet_dwordserviceNot documented
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_SNMP_TRAPS_HOST_STR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x00b7Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimalNot documented
Writep_stringserviceNot documented
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_SNMP_USER_PROFILE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c4fyes 1=(static bound to local service user profile and its auth-password); 3=(profile for a remote account sending SNMP traps to)nono
 DatatypeAccess LevelDescription
Readp_octetserviceRead a snmp (non-legacy) mode user profile
Writep_octetserviceWrite a snmp (non-legacy) mode user profile
CPP6/CPP7/CPP7.3CPP13
Available yes no

Payload Structure

1632
User Name...
32 Bytes
User Name
[...]
User Name
...
Auth Password...
32 Bytes
Auth Password
[...]
Auth Password
...
Privacy Password...
32 Bytes
Privacy Password
[...]
Privacy Password
...
Auth Mode
1 Byte
Privacy Mode
1 Byte
Snmp Version
1 Byte
IsTrapUser
1 Byte
Profile
1 Byte
Reserved...
15 Bytes
Reserved
...
Reserved
...
Reserved
...
824

User Name

Zero terminated string with user name. Or zero to delete this user entry.

Auth Password

Zero terminated string with authentication password.

Privacy Password

Zero terminated string with privacy password.

Auth Mode

No authentication1
MD5 authentication2
SHA1 authentication3

Privacy Mode

No privacy1
DES privacy2
AES privacy4

Snmp Version

SNMP version for this user
SNMP Version 33

IsTrapUser

Define if this account is a local account or a account to sent traps to.
Local Account0
Remote Trap Account1

Profile

Read Only0
Read Write1

CONF_SNMP_WRITE_COMMUNITY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b17Nonenono
 DatatypeAccess LevelDescription
Readp_stringserviceRead the community string for snmp write access
Writep_stringserviceWrite the community string for snmp write access
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_SYSCONTACT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x00baNonenono
 DatatypeAccess LevelDescription
Readp_stringminimalRead the system contact required in SNMP
Writep_stringserviceWrite the system contact required in SNMP
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_SYSLOCATION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x00bbNonenono
 DatatypeAccess LevelDescription
Readp_stringminimalRead the system location required in SNMP
Writep_stringserviceWrite the system location required in SNMP
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_SOCKET_KNOCKER_DESTINATION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0aeedestination number (starting with 1)nono
 DatatypeAccess LevelDescription
Readp_octetminimalGet socket knocker destination and connection configuration. See detailed description for payload structure
Writep_octetserviceSpecify socket knocker destination and connection configuration. See detailed description for payload structure
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
Port
2 Bytes
SSL
1 Byte
Number of sockets
1 Byte
Try connect timeout
1 Byte
Reserved
3 Bytes
URL
N Bytes
824

Port

Destination port

SSL

Provide ssl socket:
No SSL0
SSL1

Number of sockets

Number of idle sockets to distribute. As soon as a socket is used, a new one is provided.

Try connect timeout

Timeout in seconds. If this timeout is non-zero, the camera first tries to connect to the new destination for up to the given timeout. The new destination is only stored in the camera's configuration if a connection could be established within this time. If not, the new destinaton will not be stored and the camera will re-connect again to the previous destination.

Reserved

Reserved for future use. Set to zero.

URL

Destination url. Zero-terminated ascii string. Currently max. 128 characters (incl. zero termination).

CONF_SOCKET_KNOCKER_DESTINATION_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c83destination number (starting with 1); see CONF_SOCKET_KNOCKER_DESTINATIONnono
 DatatypeAccess LevelDescription
Readp_stringminimalGet the 'friendly name' for a socket knocker destination url (configured by CONF_SOCKET_KNOCKER_DESTINATION). Shown to the customer to identify any connected Cloud Service. Max. 64 characters.
Writep_stringserviceSet a 'friendly name' for a socket knocker destination url (configured by CONF_SOCKET_KNOCKER_DESTINATION). Shown to the customer to identify any connected Cloud Service. Max. 64 characters.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SOCKET_KNOCKER_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b5cNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet mode of the socket knocker: 0=off, 1=on, 2=auto
Writet_dwordserviceSwitch socket knocker on/off: 0=off, 1=on, 2=auto
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SOCKET_KNOCKER_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b98destination number (starting with 1)nono
 DatatypeAccess LevelDescription
Readp_octetminimalGet the current status of the socket knocker. See detailed description for payload structure
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
State
1 Byte
Reason
1 Byte
Reserved
2 Bytes
824

State

Current status of socket knocker
Not running0
Trying to connect1
Connected2(ready for cloud service)

Reason

Reason for current state
As expected0
Unknown1
Auto mode: DHCP off or not successful2
Auto mode: max knocking attempts reached3
Auto mode: max knocking time reached4
URL could not be resolved5
Destination not responding6

CONF_ALARM_DISP_VAL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x008eNonenono
 DatatypeAccess LevelDescription
Readt_octetminimalRead current state
Writet_octetservice1=disable alarm display; 2=enable alarm display; 3=alarm stamping with custom attributes which can be set with the CONF_STAMP_ATTR_ALARM tag
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ALARM_STRING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0090Nonenono
 DatatypeAccess LevelDescription
Readp_unicodeminimalGet the alarm string
Writep_unicodeserviceSet the alarm string (max 32 unicode characters)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ENC_STAMPING_PROPERTIES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bb3Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
UTF16CharsPerLine
2 Bytes
CamNameLines
2 Bytes
AlarmStampingLines
1 Byte
TimeStampSupport
1 Byte
TimeStampRes
1 Byte
TranspStampSupport
1 Byte
BannerModeSupport
1 Byte
ExtendedSysconAreas
1 Byte
SpinnerStampSupport
1 Byte
BigFontSupport
1 Byte
SeperateLogoAreaSupport
1 Byte
InfoStampSupport
1 Byte
maxLogoSize
1 Byte
CustomStampingLines
1 Byte
ColorSupport
1 Byte
customFontSupport
1 Byte
reserved
2 Bytes
824

UTF16CharsPerLine

Number of UTF16 chars per line

CamNameLines

Number of stamping lines available at CONF_CAMNAME_LINES

AlarmStampingLines

Number of alarm stamping lines

TimeStampSupport

TimestampingUnsupported0Time stamping is not supported
TimestampingSupported1Time stamping is supported

TimeStampRes

Time stamp resolution, 1 also ms stamping is supported

TranspStampSupport

TransparentUnsupported0Transparent stamping is not supported
TransparentSupported1Transparent stamping is supported

BannerModeSupport

BannerModeUnsupported0x00Transparent stamping is not supported
BannerModeNameSupported0x01Name stamping supports banner mode
BannerModeAllSupported0xFFAll stamping areas supports banner mode

ExtendedSysconAreas

Number of extended syscon areas. In CPP7.3 this is usually 3, in earlier platforms 0.

SpinnerStampSupport

SpinnerUnsupported0Spinner stamping is not supported
SpinnerSupported1Spinner stamping is supported

BigFontSupport

BigFontUnsupported0Big font is not supported
BigFontSupported1Big font is supported

SeperateLogoAreaSupport

TransparentUnsupported0Seperate logo area is not supported
TransparentSupported1Seperate logo area is supported

maxLogoSize

Maximum logo size
MaxLogo1281128x128 pixels
MaxLogo3002300x300 pixels

ColorSupport

ColorUnsupported0Changing the stamping color is not supported
ColorSupported1Changing the stamping color is supported

customFontSupport

customFontUnsupported0custom font is not supported
customFontSupported1custom font is supported

CONF_INFO_STAMP_VAL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bc0Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalDeprecated! Use CONF_STAMP instead.
Writet_octetuserDeprecated! Use CONF_STAMP instead.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_LOGO_STAMP_VAL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c10Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalDeprecated! Use CONF_STAMP instead.
Writet_octetuserDeprecated! Use CONF_STAMP instead.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NAME_STAMP_VAL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0084Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalDeprecated! Use CONF_STAMP instead.
Writet_octetuserDeprecated! Use CONF_STAMP instead.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_OSD_ACCESS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x098a0: print to all coders, else, print only to selected absolute codernono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetserviceAccess to the OSD via RCP command
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Up to version 4.50, this command only applies to decoders to display text onto the video output. The num field carries the video output number. A value of 0 indicates that the text should be displayed on all screens. Remind that the num value numbering scheme takes quad mode into account for the lines where quad is possible, even if quad mode is not active. (E.g. to have an OSD stamped into the fourth line of a VIP X1600 XFMD, you need to use num value of 10). To delete previously submitted strings, send an empty string (not space characters!).
From version 4.50 on this command applies to encoders as well. In that case, the encoder will embed the text information into the RTP data stream to be overlayed by the receiving decoder. The attribute and flag fields are not applicable to the decoder's video output. The num field applies to the video input number.

Payload Structure

1632
ID
2 Bytes
Len
2 Bytes
x
1 Byte
y
1 Byte
bg_luma
1 Byte
bg_chroma
1 Byte
attributes
4 Bytes
font_luma
1 Byte
font_chroma
1 Byte
flags
2 Bytes
Text
Len - 16 Bytes
824

ID

Tag ID, for addressing different strings. Values 0x04-0x08 are possible.

Len

Length of the complete payload in bytes. Maximum length is 64 bytes.

x

X-Position (0...255) where the string should be displayed (0 is left)

y

Y-Position (0...255) where the string should be displayed (0 is up)

bg_luma

Background color: 8 bit luma (Y)

bg_chroma

Background color: 2 x 4 bit chroma (U/V); 'lower 4 bit' = U, 'upper 4 bit' = V

attributes

MaskNameDescription
Bit 200x00100000ShowBorderDraw a box around the text or transparent text background (0=box, 1=transparent)
Bit 110x00000800CenterCentered display (0=off, 1=on)
Bit 100x00000400BackgroundBoxBig text background box (0=off, 1=on)
Bit 80x00000100Use custom font and background color given in bg_luma, bg_chroma, font_luma and font_chroma (0=off, 1=on)

font_luma

Font color: 8 bit luma (Y)

font_chroma

Font color: 2 x 4 bit chroma (U/V); 'lower 4 bit' = U, 'upper 4 bit' = V

flags

MaskNameDescription
Bit 00x0001UnicodeInterpret text as unicode characters (UTF-16)

Text

Text to be displayed

CONF_OSD_POS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ae00: print to all coders, else, print only to selected absolute codernono
 DatatypeAccess LevelDescription
Readp_octetminimalAccess to the OSD via RCP command
Writep_octetserviceAccess to the OSD via RCP command
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Set or get the position of OSD objects (see CONF_OSD_ACCESS). For "write" the num field carries the video number; 0 indicates that the string positions on all video lines will be set.
Up to version 4.50, this command only applies to decoders to display text onto the video output. The num field carries the video output number. A value of 0 indicates that the text should be displayed on all screens. Remind that the num value numbering scheme takes quad mode into account for the lines where quad is possible, even if quad mode is not active. (E.g. to have an OSD stamped into the fourth line of a VIP X1600 XFMD, you need to use num value of 10). To delete previously submitted strings, send an empty string (not space characters!).
From version 4.50 on this command applies to encoders as well. In that case, the encoder will embed the text information into the RTP data stream to be overlayed by the receiving decoder. The attribute and flag fields are not applicable to the decoder's video output. The num field applies to the video input number.

Request Payload Structure

816
ID
2 Bytes
412

ID

Tag ID, for addressing different strings. Values 0x04-0x08 are possible.

Response/Write Payload Structure

1632
ID
2 Bytes
x
1 Byte
y
1 Byte
824

ID

Tag ID, for addressing different strings. Values 0x04-0x08 are possible.

x

X-Position (0...255) of the string (0 is left)

y

Y-Position (0...255) of the string (0 is top)

CONF_STAMP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c71Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

Region Info [0]
(see description)
...
Region Info [N]
(see description)

Region Info

1632
Stamping Region ID
2 Bytes
Region Payload Length
2 Bytes
Region Payload
(see description)
824

Stamping Region ID

All regions (global settings)0
Time Stamp Region1
Name Stamping Region2
Alarm Stamping Region3
Info Stamping Region4
Spinner Region5
System Controller Region 16
System Controller Region 27
System Controller Region 38
Seperate Logo Area9
Custom stamp area10
The following table shows the capabilities of each region
IDDescriptionSupport visibility Tag (1)Support position Tag (2)Text (3)Font size (4)Transparent Background (5)Color (6)
0 All regions (global settings)nononoyesyesyes
1 Time Stamp Regionyesyes, Position Type {0,1,2,3}noyesyesyes
2 Name Stamping Regionyesyes, Position Type {0,1,2,3}See below 1yesyesyes
3 Alarm Stamping RegionSee below 2See below 3See below 4See below 5See below 6yes
4 Info Stamping Regionyesyes, Position Type {0,3}noyesyesyes
5 Spinner Regionyesyes, Position Type {0,3}noyesyesyes
6 System Controller Region 1yesyes, Position Type {0,3}internalyesyesyes
7 System Controller Region 2yesyes, Position Type {0,3}internalyesyesyes
8 System Controller Region 3yesyes, Position Type {0,3}internalyesyesyes
9 Seperate Logo Areayesyes, Position Type {0,3}noyesyesno
10Custom stamp area yesyes, Position Type {0,3}supported (but not stored in config)yesyesyes

1use CONF_CAMNAME_LINES
2use CONF_ALARM_DISP_VAL
3use CONF_STAMP_ATTR_ALARM, for custom position config CONF_ALARM_DISP_VAL must be set to 3
4use CONF_ALARM_STRING
5use CONF_STAMP_ATTR_ALARM
6use CONF_STAMP_ATTR_ALARM

Note: Use CONF_ENC_STAMPING_PROPERTIES to query basic options. Read of CONF_STAMP will return all available Tags. Depending on the device different regions are available

Region Payload Length

Number of bytes of all enclosed tags inside this region.

Region Payload

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value without length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 1: Visibility

Tag = 0x0001
2 Bytes
Length = 0x0001
2 Bytes
Visibility (t_octet)
1 Byte
Values:
Hidden0
Visible1

Tag 2: Position

Tag = 0x0002
2 Bytes
Length = 0x0003
2 Bytes
Position (p_octet)
3 Bytes

Position

1224
Position Type
1 Byte
Position X
1 Byte
Position Y
1 Byte
618

Position Type

OFF0
Bottom1in this case position X anx Y is ignored
Top2in this case position X anx Y is ignored
Custom3

Position X

Position X is an integer value from 0 to 255, where 0 is the left border of the image and 255 is the right border of the image.

Position Y

Position Y is an integer value from 0 to 255, where 0 is the top border of the image and 255 is the bottom border of the image.

Tag 3: Text

Tag = 0x0003
2 Bytes
Length
2 Bytes
Text (p_octet)
Length Bytes

Text

1632
text encoding type (char set)
1 Byte
line length
2 Bytes
text [0] ...
UTF16CharsPerLine * 16 Bits
text [0]
...
...
text [CustomStampingLines - 1]
UTF16CharsPerLine * 16 Bits
824

text encoding type (char set)

1: utf16 2 bytes per character

line length

Characters per line, e.g. 32 utf16 symbols. Notice: please use the value 'UTF16CharsPerLine' returned by CONF_ENC_STAMPING_PROPERTIES.

text

Consists of n * UTF16CharsPerLine utf16 chars

Tag 4: Font size

will be read per region and replace preceeding variantof the tag check CONF_ENC_STAMPING_PROPERTIES: customFontSupport:1 -> new variant 0-> old variant
Tag = 0x0004
2 Bytes
Length
2 Bytes
Font size (p_octet)
Length Bytes

Font size


Payload for 'customFontSupport' of command CONF_ENC_STAMPING_PROPERTIES = 'customFontSupported'

1632
font mode
1 Byte
reserved
1 Byte
font size in 1/1000 of picture height
2 Bytes
reserved...
8 Bytes
reserved
...
824

font mode

Normal0
Big1
Custom255custom font size

Payload for any other case.

1632
font mode
1 Byte
824

font mode

Normal0
Big1

Tag 5: Transparent Background

Tag = 0x0005
2 Bytes
Length = 0x0001
2 Bytes
Transparent Background (t_octet)
1 Byte
Values:
No transparent background0
Transparent background1

Tag 6: Color

Tag = 0x0006
2 Bytes
Length = 0x000c
2 Bytes
Color (p_octet)
12 Bytes
...
...

Color

1632
Color Mode
1 Byte
Reserved
3 Bytes
Background - Red
1 Byte
Background - Green
1 Byte
Background - Blue
1 Byte
Reserved
1 Byte
Text - Red
1 Byte
Text - Green
1 Byte
Text - Blue
1 Byte
Reserved
1 Byte
824

Color Mode

RGB0Red, Green, Blue values are used.

Background - Red

Value0 - 255

Background - Green

Value0 - 255

Background - Blue

Value0 - 255

Text - Red

Value0 - 255

Text - Green

Value0 - 255

Text - Blue

Value0 - 255

CONF_STAMP_ATTR_ALARM

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0938Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
x
1 Byte
y
1 Byte
reserved
2 Bytes
attributes
4 Bytes
reserved
2 Bytes
reserved
2 Bytes
824

x

X-Position (0...255) where the string should be displayed (0 is left)

y

Y-Position (0...255) where the string should be displayed (0 is up)

attributes

(use CONF_ENC_STAMPING_PROPERTIES to determine supported options)
MaskNameDescription
Bit 200x00100000Draw Text BoxDraw a box around the text or transparent text background
Bit 90x00000200cust_color0=0ff, 1=on (use custom font and background color from payload)

CONF_STAMP_ATTR_DEC_FREEZE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0933Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command is used only on decoders

Payload Structure

1632
reserved
2 Bytes
bg_luma
1 Byte
bg_chroma
1 Byte
attributes
4 Bytes
font_luma
1 Byte
font_chroma
1 Byte
flags
2 Bytes
824

bg_luma

Background color: 8 bit luma (Y)

bg_chroma

Background color: 2 x 4 bit chroma (U/V); 'lower 4 bit' = U, 'upper 4 bit' = V

attributes

MaskNameDescription
Bit 100x00000400Background BoxBig text background box
Bit 80x00000100Custom FontUse custom font and background color given in bg_luma, bg_chroma, font_luma and font_chroma

font_luma

Font color: 8 bit luma (Y)

font_chroma

Font color: 2 x 4 bit chroma (U/V); 'lower 4 bit' = U, 'upper 4 bit' = V

flags

Flags not in use for freeze string, set to all-zero

CONF_STAMP_ATTR_INFO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bc1Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalDeprecated! Use CONF_STAMP instead.
Writep_octetserviceDeprecated! Use CONF_STAMP instead.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STAMP_ATTR_LOGO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c0fNonenono
 DatatypeAccess LevelDescription
Readp_octetminimalDeprecated! Use CONF_STAMP instead.
Writep_octetserviceDeprecated! Use CONF_STAMP instead.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STAMP_ATTR_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0936Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Supported for CPP4, CPP6, CPP7 and CPP7.3. For other platforms use CONF_STAMP instead.

Payload Structure

1632
x
1 Byte
y
1 Byte
reserved
2 Bytes
attributes
4 Bytes
reserved
2 Bytes
flags
2 Bytes
824

x

X-Position (0...255) where the string should be displayed (0 is left)

y

Y-Position (0...255) where the string should be displayed (0 is up)

attributes

(use CONF_ENC_STAMPING_PROPERTIES to determine supported options)
MaskNameDescription
Bit 210x00200000Draw BannerDraw a banner from top to end of name text if y pos <= 128 from bottom if ypos > 128)
Bit 200x00100000Draw Text BoxDraw a box around the text or transparent text background
Bit 90x00000200cust_color0=0ff, 1=on (use custom font and background color from payload)

flags

MaskName
Bit 30x0008Display only logo
Bit 20x0004Logo position relative to font
Bit 10x0002Enable logo stamping

CONF_STAMP_ATTR_TIME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0937Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalDeprecated! Use CONF_STAMP instead.
Writep_octetserviceDeprecated! Use CONF_STAMP instead.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
x
1 Byte
y
1 Byte
reserved
2 Bytes
attributes
4 Bytes
reserved
2 Bytes
reserved
2 Bytes
824

x

X-Position (0...255) where the string should be displayed (0 is left)

y

Y-Position (0...255) where the string should be displayed (0 is up)

attributes

(use CONF_ENC_STAMPING_PROPERTIES to determine supported options)
MaskNameDescription
Bit 200x00100000Draw Text BoxDraw a box around the text or transparent text background
Bit 90x00000200cust_color0=0ff, 1=on (use custom font and background color from payload)

CONF_STAMP_DEC_FREEZE_STRING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x092fNoneyesno
 DatatypeAccess LevelDescription
Readp_stringminimalString displayed on the local monitor if DEC_SHOW_FREEZE is enabled and no vido data is coming in
Writep_stringserviceString displayed on the local monitor if DEC_SHOW_FREEZE is enabled and no vido data is coming in
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_TIME_STAMP_RESOLUTION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a7fNonenono
 DatatypeAccess LevelDescription
Readt_octetminimal0=second, 1=ms
Writet_octetuser0=second, 1=ms
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_TIME_STAMP_VAL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0085Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalDeprecated! Use CONF_STAMP instead.
Writet_octetuserDeprecated! Use CONF_STAMP instead.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DATA_COPY_JOB_START

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b32Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetserviceStart copy job,
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command starts a copy job, given by first the source descriptor and second the destination descriptor. If starting the job was ok, the status will be reported by CONF_DATA_COPY_JOB_STATUS messages or can be querried by the same comand. The return payload structure is the same as the CONF_DATA_COPY_JOB_STATUS payload and contains the job id on success. This id can be used for stopping the job, query the state or to identify it in the status messages payload.

Payload Structure

1632
Source Descriptor
(see description)
Destination Descriptor
(see description)
824

Source Descriptor

See description of 'Source/Destination Descriptor'

Destination Descriptor

See description of 'Source/Destination Descriptor'

'Source/Destination Descriptor' structure

1632
Offset
4 Bytes
Length
4 Bytes
Type
2 Bytes
Type spec. parameter len
2 Bytes
Type spec. parameter
(see description)
824

Offset

The offset in lba sized units ( = 512 bytes)

Length

Amount of data to copy in lba sized units ( = 512 bytes), not relevant for destination descriptor
Full Copy0
Length1 - n

Type

Interface Test0
Span on ISCSI1
File2
Raw ISCSI lun3

Type spec. parameter len

Length of the following additional parameters.

Type spec. parameter


'Type spec. parameter' payload for 'Type' = 'Interface Test' (0)

Fakes the access to a source/destination and can be used for example to test the interface and copy job engine. No further parameters are needed.

'Type spec. parameter' payload for 'Type' = 'Span on ISCSI' (1)

1632
Target Id
4 Bytes
Target index
1 Byte
Lun index
1 Byte
Span index
2 Bytes
File type
1 Byte
Reserved
1 Byte
Timeout
2 Bytes
824
Access to a span on an iscsi lun. This type can be used for example to copy a span. The parts of a span (unit, lock, mgr header, data) has to be copied in seperate copy jobs.

Target Id

The target id of the lun (may be the ipv4 address for older versions or with default target resolve configuration, see CONF_TARGET_ID_RESOLVE_RULES)

File type

Lock Header1
Unit Header2
Manager Header3
Recording Data4

Timeout

Default0Default, using default iscsi timeouts
Timeout1 - 65534Timeout in seconds
Never65535Never timeout

'Type spec. parameter' payload for 'Type' = 'File' (2)

1632
File Path
Type spec. parameter len Bytes
824
Access to a file. Can be used for example to copy a span to a file. If the file is the source, it has to exist. If the file is destination it will be created if it doesn't exist. Parameter length is the path length including zero termination and stuffing bytes in order to be 4 byte aligned. Size is at least 4 bytes.

File Path

Zero terminated ascii string specifing the path and file name of a source/destination

'Type spec. parameter' payload for 'Type' = 'Raw ISCSI lun' (3)

1632
Target Id
4 Bytes
Target index
1 Byte
Lun index
1 Byte
Timeout
2 Bytes
824
Access to a complete iscsi lun. This type can be used for example to make a one to one copy of a complete lun.

Target Id

The target id of the lun (may be the ipv4 address for older versions or with default target resolve configuration, see CONF_TARGET_ID_RESOLVE_RULES)

Timeout

Default0Default, using default iscsi timeouts
Timeout1 - 65534Timeout in seconds
Never65535Never timeout

CONF_DATA_COPY_JOB_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b34Noneyesno
 DatatypeAccess LevelDescription
Readp_octetminimalGet the status of a copy job,
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This message reports the status of the copy job and will be send on each status change or several times while in state "running". The status can also be queried by sending this command in read direction.

Payload Structure

1632
Job Id
4 Bytes
State
1 Byte
Reserved
3 Bytes
Progress
4 Bytes
Full data amount
4 Bytes
824

Job Id

Id of a data copy job

State

State of the copy Job
Initializing0
Running1
Finished2
Failed3
Stopped4

Progress

Progress in lba units (= 512 bytes)

Full data amount

Full data amount in lba units (= 512 bytes) of the copy job. Progress has to reach this value in order to finish successfully.

CONF_DATA_COPY_JOB_STOP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b33Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writet_dwordserviceRequests stop on a data copy job if exists, otherwise fails, payload: job id
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_FORMAT_FS_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09d1file system nr, 1 - recording storage device, 2 - RAMDISKyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

the message reports the status and progress of a running format. The formatting takes two steps that is first formating FAT32 including creating the recording files and second copy the replay tools. The progress is reported about the whole formatting. The status reports the state of each formatting step. A successful format should always end with a message with 100 percent progress, step should be copy toolkit and status should be HD_FORMAT_STATUS_FINISHED or HD_FORMAT_STATUS_SKIPPED if the storage device is too small for recording (e.g. RAMDISK). A failed format should finish with a status HD_FORMAT_STATUS_FAILED at any progress and step. After this final messages no futher message will follow.

Payload Structure

1632
Step
1 Byte
Status
1 Byte
Progress
2 Bytes
824

Step

Which step of the formating (FAT32 Formatting including creating recording files or copy replay tools)
Values:
HD_STEP_FORMAT_FS0x00
HD_STEP_COPY_TOOLKIT0x01

Status

Reports the state of formatting. The format can be in state of running, failed or successfully finished. The last one is devided in the two states of HD_FORMAT_STATUS_FINISHED which means FAT32 including recording files and replay tools were created and HD_FORMAT_STATUS_SKIPPED which means that only the FAT32 was created because the storage device was not the needed size for recording.
Values:
HD_FORMAT_STATUS_FAILED0xff
HD_FORMAT_STATUS_RUNNING0x00
HD_FORMAT_STATUS_SKIPPED0x01
HD_FORMAT_STATUS_FINISHED0x02

Progress

Value from 0 to 100 represent the progress of the format including copy replay tools in percent.
Values:
Progress in percent0 - 100

CONF_HD_FORMAT_STORAGE_ERROR_LOG_CNT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c65Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReturns the number of failed local storage formats
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HDD_RECORD_ALARM_RING_INIT_SIZE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cdfNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalInitial alarm ring size on storage in MB (min 1 MB, max 128 MB, default 16 MB )
Writet_dwordserviceInitial alarm ring size on storage in MB (min 1 MB, max 128 MB, default 16 MB )
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HDD_RECORD_ENCRYPTION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c80record index 1 (primary) or 2 (secondary)nono
 DatatypeAccess LevelDescription
Readt_dwordminimalHdd record encryption (span encryption only) : bit 0 -> 1ine 1; bit 1 -> line 2; .... bit n - 1 -> line n
Writet_dwordserviceEnable the hdd encryption (span encryption only) : bit 0 -> 1ine 1; bit 1 -> line 2; .... bit n - 1 -> line n (0 - disabled (default streaming gateway), 1 - enabled (standard default)), additional a valid certificate for usage record encryption required in order to have a working record encryption
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_INTERNAL_STORAGE_ENCRYPTION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c43Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalEnable : 1 or disable : 0 the xts encryption (no influence on device with permanent encryption)
Writet_octetserviceEnable : 1 or disable : 0 the xts encryption (no influence on device with permanent encryption)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NBR_OF_SD_CARD_SLOTS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cb2Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet number of sd card slots
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_PREPARE_FOR_RECORDING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b51Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command is used to prepare a remote device for recording via a another device (e.g remote recording on a transcoder). Normally the remote device will be configured to record on one or more (upto 8) local managed storage, which is already configured by the command CONF_STORAGE_LIST. The Storage can be a local storage on the remote device or any storage on the local device. This is choosen by the flag "remote managed storage". If this flag is set, the storage/lun idx refers the lun index of a local storage on the remote device. Otherwise it is the index from the storage list of the local device. The preparation will be the configuration of the micro vrm on the recording device and in case of remote recording constellation, it will allow the remote recording on the storage managing device.

Payload Structure

1632
Remote Device Index
2 Bytes
Recording Index
2 Bytes
Flags
1 Byte
Storage/Lun Count
1 Byte
Storage/Lun Index [0]
1 Byte
...
...
Storage/Lun Index [Storage/Lun Count - 1]
1 Byte
824

Remote Device Index

Index of a remote device entry configured by CONF_ADD_REMOTE_DEVICE from 1 to n. Value 0 means the local device.

Recording Index

Primary Recording1
Secondary Recording2

Flags

MaskName
Bit 00x01Remote Managed Storage

Storage/Lun Count

Number of following index enties for storages/luns (max. 8)

Storage/Lun Index

Index of an as managed configured storage or the lun index of local storage of the remote device.

CONF_SD_CARD_LIFE_SPAN_ALARM_THRESHOLD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c87Nonenono
 DatatypeAccess LevelDescription
Readt_octetuserRead the current alarm threshold when SD-Cards should trigger an EndOfLifespan alarm: 0..100%; 0 = off (Only for SD-Card which supports this feature)
Writet_octetserviceWrite the current alarm threshold when SD-Cards should trigger an EndOfLifespan alarm: 0..100%; 0 = off (Only for SD-Card which supports this feature)
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_SD_CARD_LIFE_SPAN_ENABLE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c9cNonenono
 DatatypeAccess LevelDescription
Readf_flaguserRead enable state for SD-Card live-span information (may be disabled for SD-Card which does not supports this feature)
Writef_flagserviceWrite enable state for SD-Card live-span information (may be disabled for SD-Card which does not supports this feature)
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_SD_CARD_LIFE_SPAN_MANF

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cdeyesnono
 DatatypeAccess LevelDescription
Readt_octetuserRead SD-Card manufacturer for SD Lifespan indicator. 0=Autodetect; 1=SANDISK; 2=SONY; 3=MICRON; 4=EMMC_GENERIC
Writet_octetserviceWrite SD-Card manufacturer for SD Lifespan indicator. 0=Autodetect; 1=SANDISK; 2=SONY; 3=MICRON; 4=EMMC_GENERIC
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_SD_CARD_LIFE_SPAN_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c5ASD card slot ID. Starts with 1.yesno
 DatatypeAccess LevelDescription
Readp_octetuser
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 1: MANF_ID

SD Card manufacturer ID.
Length = 0x0005
2 Bytes
Tag = 0x0001
2 Bytes
MANF_ID (t_octet)
1 Byte

Tag 2: PROD_ID

SD Card product ID.
Length = 0x0006
2 Bytes
Tag = 0x0002
2 Bytes
PROD_ID (t_word)
2 Bytes

Tag 3: PROD_STRING

SD Card product string.
Length
2 Bytes
Tag = 0x0003
2 Bytes
PROD_STRING (p_string)
Length - 4 Bytes

Tag 4: NUM_BLOCKS

Number of SD Card 512 byte blocks.
Length = 0x0008
2 Bytes
Tag = 0x0004
2 Bytes
NUM_BLOCKS (t_dword)
4 Bytes

Tag 5: ESTIMATED_LIFE_SPAN_PERCENT_DONE

Consumed value of estimated lifespan for SD-Card in percent (only for supported cards)
Length = 0x0005
2 Bytes
Tag = 0x0005
2 Bytes
ESTIMATED_LIFE_SPAN_PERCENT_DONE (t_octet)
1 Byte

Tag 6: MANF_NAME

Manufacturer plain text name (only for supported cards)
Length
2 Bytes
Tag = 0x0006
2 Bytes
MANF_NAME (p_string)
Length - 4 Bytes

Tag 7: SERIAL_NO

SD-Card serial number
Length = 0x0008
2 Bytes
Tag = 0x0007
2 Bytes
SERIAL_NO (t_dword)
4 Bytes

CONF_STORAGE_IO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a61Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalList the currently running storage io tasks.
Writep_octetserviceStart or stop a storage io task.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Request Payload Structure

1632
Lun Address...
(see description)
Lun Address
...
Start Burst Size
4 Bytes
End Burst Size
4 Bytes
Burst Size Duration
4 Bytes
Burst Size Increase
4 Bytes
Maximum Read Rate
4 Bytes
Maximum Write Rate
4 Bytes
Repeat
4 Bytes
Mode
2 Bytes
Flags
2 Bytes
ID
4 Bytes
Action
1 Byte
Reserved...
47 Bytes
Reserved
[...]
Reserved
...
Reserved
...
824

Lun Address

1632
iSCSI IP
4 Bytes
Target Idx
4 Bytes
Lun
4 Bytes
Span Idx
4 Bytes
824

iSCSI IP

The ip address of the iscsi server

Target Idx

The index of the target on the iscsi server.

Lun

The logical unit.

Span Idx

The index of the span. Only used, if the flag RESTRICT TO SPAN is set.

Start Burst Size

The size in LBAs of the burst the test starts with. This value must be lower or equal to the end burst size.

End Burst Size

The size in LBAs of the burst the test ends with. This value may be clipped to the maximum burst value of the storage.

Burst Size Duration

The number of milliseconds each bust size is read and written.

Burst Size Increase

The number of LBAs the burst size is increased after each burst-duration.

Maximum Read Rate

The maximum datarate that is read in KBit/sec.

Maximum Write Rate

The maximum datarate that is written in KBit/sec.

Repeat

The number of times the test is repeated which means how often the specified burst sequence is run.

Mode

The test may run in the following modes. The modes RECORDING SIMULATION, LATENCY and REPLAY SIMULATION use different fields in the request packet which are not documented yet.
LINEAR0x0000
RANDOM0x0001
RECORDING SIMULATION0x0002
LATENCY0x0003
REPLAY SIMULATION0x0004
If the mode is set to LINEAR then the test reads/writes from/to consecutive lba addresses. If the maximum lba is reached and the STORAGE_IO_FLAG_MAX_LBA_END flag is set, the test stops. Otherwise the test wraps its lba pointer to the beginning of its storage.
If the mode is set to RANDOM then the test reads/writes from/to randomly chosen lba addresses of the storage.

Flags

MaskNameDescription
Bit 90x0200MAX LBA ENDIf set, the tests stops when the write pointer reaches the maximum lba address of the lun/span (only in sequential access mode).
Bit 80x0100ISCSI SESSION EXCLUSIVEIf set, the tests use an exclusive iscsi session which is not shared among other tests.
Bit 70x0080RESTRICT TO SPANIf set, the tests only uses the span of the lun, which is specified in the 'Span Idx' field of the lun-address.
Bit 60x0040ERROR STOPIf set, the tests stops when an io error occurrs.
Bit 50x0020EXP BURST INCREASEIf set, the field 'Burst Size Increase' is ignored. Instead the burst size is doubled after each run.
Bit 40x0010VERIFY WRITEIf set, every lba that was written is read afterwards to verify that the data was correctly written.
Bit 30x0008KEEP DATAIf set, all lbas that are written are read before so that no recording data should be destroyed. Be careful that no one else writes to this lun simultaneously. In the latter case data on the storage could be lost.
Bit 10x0002WRITE ONLYIf set, only write operations are performed. May not be used simultaneously with the READ ONLY flag.
Bit 00x0001READ ONLYIf set, only read operations are performed. May not be used simultaneously with the WRITE ONLY flag.

ID

Identifier of the storage io. Set to zero when starting a new storage io. Set to the from the start request returned value for stopping a storage io.

Action

STOP0x00
START0x01

Response Payload Structure

1632
Lun Address...
8 Bytes
Lun Address
...
Start Burst Size
4 Bytes
End Burst Size
4 Bytes
Burst Size Duration
4 Bytes
Burst Size Increase
4 Bytes
Maximum Read Rate
4 Bytes
Maximum Write Rate
4 Bytes
Repeat
4 Bytes
Mode
2 Bytes
Flags
2 Bytes
ID
4 Bytes
Status
1 Byte
Error
1 Byte
Reserved
2 Bytes
Repeat Count
4 Bytes
Current Burst Size
4 Bytes
Current Offset
4 Bytes
Current Read Datarate
4 Bytes
Current Write Datarate
4 Bytes
Read Bytes
4 Bytes
Write Bytes
4 Bytes
Read Operations
4 Bytes
Write Operations
4 Bytes
Read Errors
4 Bytes
Write Errors
4 Bytes
824

Lun Address

1632
iSCSI IP
4 Bytes
Target Idx
4 Bytes
Lun
4 Bytes
Span Idx
4 Bytes
824

iSCSI IP

The ip address of the iscsi server

Target Idx

The index of the target on the iscsi server.

Lun

The logical unit.

Span Idx

The index of the span. Only used, if the flag RESTRICT TO SPAN is set.

Start Burst Size

The size in LBAs of the burst the test starts with. This value must be lower or equal to the end burst size.

End Burst Size

The size in LBAs of the burst the test ends with. This value may be clipped to the maximum burst value of the storage.

Burst Size Duration

The number of milliseconds each bust size is read and written.

Burst Size Increase

The number of LBAs the burst size is increased after each burst-duration.

Maximum Read Rate

The maximum datarate that is read in KBit/sec.

Maximum Write Rate

The maximum datarate that is written in KBit/sec.

Repeat

The number of times the test is repeated which means how often the specified burst sequence is run.

Mode

The test may run in the following modes. The modes RECORDING SIMULATION, LATENCY and REPLAY SIMULATION use different fields in the request packet which are not documented yet.
LINEAR0x0000
RANDOM0x0001
RECORDING SIMULATION0x0002
LATENCY0x0003
REPLAY SIMULATION0x0004
If the mode is set to LINEAR then the test reads/writes from/to consecutive lba addresses. If the maximum lba is reached and the STORAGE_IO_FLAG_MAX_LBA_END flag is set, the test stops. Otherwise the test wraps its lba pointer to the beginning of its storage.
If the mode is set to RANDOM then the test reads/writes from/to randomly chosen lba addresses of the storage.

Flags

MaskNameDescription
Bit 90x0200MAX LBA ENDIf set, the tests stops when the write pointer reaches the maximum lba address of the lun/span (only in sequential access mode).
Bit 80x0100ISCSI SESSION EXCLUSIVEIf set, the tests use an exclusive iscsi session which is not shared among other tests.
Bit 70x0080RESTRICT TO SPANIf set, the tests only uses the span of the lun, which is specified in the 'Span Idx' field of the lun-address.
Bit 60x0040ERROR STOPIf set, the tests stops when an io error occurrs.
Bit 50x0020EXP BURST INCREASEIf set, the field 'Burst Size Increase' is ignored. Instead the burst size is doubled after each run.
Bit 40x0010VERIFY WRITEIf set, every lba that was written is read afterwards to verify that the data was correctly written.
Bit 30x0008KEEP DATAIf set, all lbas that are written are read before so that no recording data should be destroyed. Be careful that no one else writes to this lun simultaneously. In the latter case data on the storage could be lost.
Bit 10x0002WRITE ONLYIf set, only write operations are performed. May not be used simultaneously with the READ ONLY flag.
Bit 00x0001READ ONLYIf set, only read operations are performed. May not be used simultaneously with the WRITE ONLY flag.

ID

Identifier of the storage io. This value must be specified on actions other than start.

Status

STOPPING0x00
STARTING0x01
RUNNING0x02
DONE0x03
ERROR0x04

Error

INTERNAL0x01
LUN0x02
INVALID PARAMS0x03
READ0x04
WRITE0x05
WRITE VALIDATE0x06

Repeat Count

The number of turns the test repeated so far.

Current Burst Size

The number of LBAs of the current burst.

Current Offset

The current position of the i/o pointer in percentage of the whole storage. This value is not significant in random access mode.

Current Read Datarate

The current read datarate in KBit/s.

Current Write Datarate

The current write datarate in KBit/s.

Read Bytes

The number of bytes that were read since the test was started.

Write Bytes

The number of bytes that were written since the test was started.

Read Operations

The number of read operations successfully performed since the test was started.

Write Operations

The number of write operations successfully performed since the test was started.

Read Errors

The number of read errors since the test was started.

Write Errors

The number of read errors since the test was started.

CONF_STORAGE_LIST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a37Noneyesno
 DatatypeAccess LevelDescription
Readp_octetminimalRead the device storage list.
Writep_octetserviceWrite the stuff. (, not supported while recording is running)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Use this command to configure and manage local or remote storage. The storage list may contain up to 16 entries. If a remote (iscsi) storage is to be managed, the lun address has to be specified. Realize, that if you export an remote storage, the device will have preformance drawbacks cause the ip- and iscsi-stack will be passed through twice. Prefer to access the remote storage directly instead.
The storage lun can be write protected. If this state was recognized, the Mgr Status will inform about this state by the value "WRITE PROTECTION". There are three ways for a storage lun to become write protected here. First to configure explicite the storage lun(Span Mgr) to be in read only mode, second by a defect storage lun, which will cause a fall back into a write protection mode, and third if the storage is set physically to write protection (e.g. user moves the lever on the sd card into the write protection position).
The storage devices will be exported through iscsi in the order of this list (storage devices with the 'iSCSI export' field set to 'For local use only' [0x00] are omitted) and the storage will appear in the same place of the target name list of an iscsi discovery on that device.
This command will be send as msg (can also be send as snmp trap with same pyload) in case of crossing the storage threshold with Mgr status ALARM THRESHOLD or in case of overwriting recording, that is still protected by unexpired retention time with mgr status ALARM OVERWRITE.

Write Payload Structure

1632
Storage Type
4 Bytes
Target ID
4 Bytes
Target Index
1 Byte
Lun
1 Byte
Rec Region Size
2 Bytes
iSCSI export
1 Byte
Span Manager
1 Byte
Reserved...
4 Bytes
Reserved
...
Flags
1 Byte
Storage threshold
1 Byte
824

Storage Type

The type of the storage.
FILE0x02
RAM0x03
ISCSI0x04
USB0x05
IDE0x08
CF0x09
SD0x0b
SMB0x11
SD OVER USB0x16

Target ID

The target id of the lun (may be the ipv4 address for older versions or with default target resolve configuration, see CONF_TARGET_ID_RESOLVE_RULES). Will be ignored, if the storage type is not iscsi.

Target Index

The target index on the iscsi server. Will be ignored, if the storage type is not iscsi.

Lun

The iscsi lun. Will be ignored, if the storage type is not iscsi.

Rec Region Size

Size in GB from the Storage used for recording. Default is 0 which means as much recording space as the storage size allowes. The same will happen, if this Size is to big for the storage.

iSCSI export

For local use only0x00
Make storage available through iSCSI0x01

Span Manager

Span manager off0x00
Span manager on0x01
Span format lun and start span manager0x02
Migrate lun and start span manager0x03
read only mode0x04
erase lun and format0x05

Flags

MaskNameDescription
Bit 00x01default settingjust info, that this is a default setting

Storage threshold

This is the threshold of free storage in percent and means that at least this amount of memory should be free. A Message of this command will be send always, this treshold is crossed in eiher direction.

Read Payload Structure

1632
Storage Type
4 Bytes
Target ID
4 Bytes
Target Index
1 Byte
Lun
1 Byte
Fmt Progress
1 Byte
Utilization
1 Byte
iSCSI export
1 Byte
Span Manager
1 Byte
Mgr Status
1 Byte
Mgr Error
1 Byte
Mgr Flags
1 Byte
Reserved
1 Byte
Flags
1 Byte
Storage threshold
1 Byte
824

Storage Type

The type of the storage.
FILE0x02
RAM0x03
ISCSI0x04
USB0x05
IDE0x08
CF0x09
SD0x0b
SMB0x11
SD OVER USB0x16

Target ID

The target id of the lun (may be the ipv4 address for older versions or with default target resolve configuration, see CONF_TARGET_ID_RESOLVE_RULES). Will be ignored, if the storage type is not iscsi.

Target Index

The target index on the iscsi server. Will be ignored, if the storage type is not iscsi.

Lun

The iscsi lun. Will be ignored, if the storage type is not iscsi.

Fmt Progress

If the storage is in state formatting, the field indicates the formatting progress in percentage.

Utilization

If the storage is span formatted, this field indicates the amount capacity used (in percentage).

iSCSI export

For local use only0x00
Make storage available through iSCSI0x01

Span Manager

Span manager off0x00
Span manager on0x01
Span format lun and start span manager0x02
Migrate lun and start span manager0x03
read only mode0x04
erase lun and format0x05

Mgr Status

The status of the span manager in the response packet. Set to zero in the request packet.
OFF0x00
ON0x01
FORMATING0x02
MIGRATING0x03
ALARM THRESHOLD (msg only) / OFFLINE (read payload only)0x04
ALARM OVERWRITE (msg only) / ONLINE (read payload only)0x05
STOPPING0x06
ERROR0x07
ONLINE (WRITE PROTECTION)0x08

Mgr Error

If the span manager status is ERROR, this field contains details of the error that occurred. See command CONF_SPAN_USE_STATUS for possible error codes.

Mgr Flags

MaskNameDescription
Bit 00x01lun scan runningscan job for all spans on the lun is running

Flags

MaskNameDescription
Bit 00x01default settingjust info, that this is a default setting

Storage threshold

This is the threshold of free storage in percent and means that at least this amount of memory should be free. A Message of this command will be send always, this treshold is crossed in eiher direction.

Note: If the storage list is empty or only contains entries with the 'iSCSI export' field set to 'For local use only' (0x00), the iscsi server is stopped, if it is running, cause no targets and luns would be provided. If the list contains at least one entry with the 'iSCSI export' field set to 'Make storage available through iSCSI' (0x01), the iscsi server is started, if not already running, to provide the iscsi service. The iscsi server can be controlled through the command CONF_ISCSI_SERVER_STATE too.

CONF_STORAGE_MEDIUM_AVAIL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09d4Nonenono
 DatatypeAccess LevelDescription
Readp_octetalways_legacyList of dwords with available storage medium types (None = 0, USB = 5, IDE = 8, CF = 9, IMG File = 10, SD = 11, SPAN FILES = 12, SD NOT INSERTED = 14, CF NOT INSERTED = 15, IMG FILE NOT INSERTED = 16, SMB SPAN FILES = 17, SECOND SD = 18, SECOND SD NOT INSERTED = 19, SD OVER USB = 22, SD OVER USB NOT INSERTED = 23, SPAN FILES NOT INSERTED = 24)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STORAGE_MEDIUM_TYPE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09d3Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalObsolete
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STORAGE_REPORT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09cfvideo lineyesno
 DatatypeAccess LevelDescription
Readp_octetminimalGet information about the storage device
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Request Payload Structure

To get information about a storage device, a read packet with no payload must be send to the rcp server.

Response Payload Structure

1632
Type
1 Byte
Availability
1 Byte
Access Type
1 Byte
IO Error Type
1 Byte
IO Error Count
4 Bytes
Throughput Read
4 Bytes
Throughput Write
4 Bytes
iSCSI Login Connection [0]
(see description)
...
iSCSI Login Connection [N]
(see description)
824

Type

None0x00
RAM Recording0x03
iSCSI0x04
USB0x05
IDE0x08
Compact Flash0x09
SMB0x0B

Availability

Unknown0x00
No0x01
Yes0x02
locked by another device0x03

Access Type

Unknown0x00
Read Only0x01
Read Write0x02

IO Error Type

None0x00
Read0x01
Write0x02

IO Error Count

Number of arised I/O errors.

Throughput Read

Kilobytes read from device.

Throughput Write

Kilobytes written to device.

iSCSI Login Connection

1632
Phase
2 Bytes
Error
2 Bytes
824

Phase

Indicates the phase, the iSCSI client has reached on login.

Error

Indicates the error that happend in that state.

CONF_STORAGE_REPORT_SECONDARY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a50video lineyesno
 DatatypeAccess LevelDescription
Readp_octetminimalGet information about the storage device of secondary recording, payload same as in command CONF_STORAGE_REPORT
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STORAGE_TARGET_ID

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c09Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the storage target id, if there is no explicite configured (default 0), it returns the device unit ipv4 address
Writet_dwordserviceSet the storage target id of this device which is an system wide unique identifier, which can be used to resolve it to connect to the local iscsi exported storage (0 means default)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_TARGET_ID_RESOLVE_RULES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c0aNonenono
 DatatypeAccess LevelDescription
Readp_octetminimalGet the target id resolve rules, see detailed description
Writep_octetserviceSet the target id resolve rules, see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command configures the rules for resolving a storage target id to the parameter for connecting the storage server. The target id is an 32 bit system wide unique identifier and replaces the ipv4 addresses for storages. The display format of an id in text will be "xxx.xxx.xxx.xxx" like ipv4 addresses. There are special values for the target id, which are 0.0.0.0 for invalid target id, 255.255.255.255 for wildcard and 127.0.0.1 for the local target in order to be backward compartible with older devices and software which expect an ipv4 address instead. The default state for the configured rules containes only one rule for the complete range 0.0.0.1 to 255.255.255.254 and lowest priority 0 for DIRECT_IPV4 for backard compartibility. In order to change or add rules, all which shall be changed or added needs to be send including the table entry index. Entries which shall not be changed doesn't need to be send. Also the read response payload will only contain valid rules, except if the table is empty, in that case only one empty rule will be in the payload.

Payload Structure

target id resolve rule [0]
(see description)
...
target id resolve rule [N]
(see description)

target id resolve rule

Up to 127 target id resolve rules. The payload contains all rules to be changed or to be added in write direction or all valid rules for read direction, at least one zeroed rule if there are no rules actual configured.
1632
target id range start
4 Bytes
target id range end
4 Bytes
index
2 Bytes
priority
1 Byte
type
1 Byte
reserved
4 Bytes
type specific parameter... (optional)
(see description)
type specific parameter
[...]
type specific parameter
...
824

target id range start

Begin of the target id range including the specified id of the rule.

target id range end

End of the target id range including the specified id of the rule.

index

Index of the target id resolve table, where to change the actual entry. Valid range is 0 to 127, as the table has an actual size of 128 entries.

priority

The rules target id range my overlap, therefor the priority will be used, which rule wins in conflic case. The valid range is from 0 to 255, where 0 is the lowest priority and 255 the highest.

type

The rules target id range my overlap, therefor the priority will be used, which rule wins in conflic case. The valid range is from 0 to 255, where 0 is the lowest priority and 255 the highest.
NONE0x00no rule (delete rule)
DIRECT_IPV40x01target id is the ipv4
ISCSI_SERVER0x02iscsi server parameter
SMB_SERVER0x03smb server parameter

type specific parameter (optional)


'type specific parameter' payload for 'type' = 'ISCSI Server' (0x02)

1632
url...
252 Bytes
url
[...]
url
...
port
2 Bytes
reserved
2 Bytes
824

url

The url of the iscsi server as zero terminated ascii string. Only ipv4 as string is actual supported.

port

The port of the iscsi service socket on the server. Default 0 means use the default port. Actual it is just a place holder and other ports than the the default port are not supported.

'type specific parameter' payload for 'type' = 'SMB Server' (0x03)

1632
url...
126 Bytes
url
[...]
url
...
url
...
path...
126 Bytes
path
[...]
path
...
path
...
port
2 Bytes
reserved
2 Bytes
824

url

The url of the smb server as zero terminated ascii string. Only ipv4 or ipv6 as string is actual supported.

path

The path on the smb server as zero terminated ascii string.

port

The port of the iscsi service socket on the server. Default 0 means use the default port. Actual it is just a place holder and other ports than the the default port are not supported.

Note: On the Generic (Windows and Linux) the whole table will be persisted in the table. The generic dll won't persist it. All other devices will only persist the first four valid rules.

CONF_STRATOCAST_ONOFF

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cabNonenono
 DatatypeAccess LevelDescription
Readf_flagminimalSwitch on or off the automatic start of stratocast service
Writef_flagminimalSwitch on (true) or off (false) the automatic start of stratocast service
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STRATOCAST_REGISTER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cadNonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_stringserviceRegister at stratocast service and switch on automatic reconnect. As payload the activation code must be provided
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STRATOCAST_STATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cb4Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the actual state of the stratocast connection (0=inactive, 1=connecting, 2=registering, 3=connected)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STREAMING_GATEWAY_ACTIVE_LINES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b25Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the number of configured streaming gateway lines
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available no no

CONF_STREAMING_GATEWAY_CONFIG

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b24Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead streaming gateway configuration, see detailed description
Writep_octetserviceWrite streaming gateway configuration, see detailed description
CPP6/CPP7/CPP7.3CPP13
Available no no

Description

This command is used to read and write the configuration of the streaming gateway. For the read direction only "gateway line" and "gateway stream" parameter are relevant for the send diretion. The reply payload will contain the full parameter set. For write direction use the full parameter set to configure a streaming gate camera, if the action is "add camera". Depending on the camera type and connection type, additional optional parameters are nessessary. E.g. the device simulator is able to connect to another bosch camera or device specified by the url ([ip]:[port]/[line (1,2,...)]/[coder idx (1,2,...)]). E.g. with url "10.1.10.20:80/1/1" it connects to the device on ip 10.1.10.20 and port 80 on the first line and the first video encoder.

Payload Structure

1632
gateway line
2 Bytes
gateway stream
1 Byte
action
1 Byte
protocol
1 Byte
version
1 Byte
connection
1 Byte
Reserved
1 Byte
manufacturer id
4 Bytes
device type...
32 Bytes
device type
[...]
device type
...
Tag-Structure [0]
...
Tag-Structure [N]
824

gateway line

Local line of streaming gateway id

gateway stream

Local stream of streaming gateway starting with 0 for the first stream

action

Action for write direction, choose between add camera and remove camera, in case of remove camera, except this field, 'gateway line', 'gateway stream' and 'version' all other fields in the payload are irrelevant
add camera0
remove camera1

protocol

Choose protocol type
none0
onvif1
jpeg2
bosch3
rtsp4
rtsp h2635
rtsp h2646
rtsp jpeg7

version

Version of the command, current version is 1

connection

Connection type
udp unicast0
udp multicast1
tcp2

manufacturer id

Distinguish between bosch cameras and foreign cameras
unknown0
bosch1

device type

32 ascii characters including zero termination

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value without length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: None

1632
Tag = 0x0000
2 Bytes
Length = 0x0004
2 Bytes
824

Tag 1: URL

zero terminated ascii string containing the url of the remote camera. Length of the string including zero termination is limited by the 'length' of the optional parameter
1632
Tag = 0x0001
2 Bytes
Length
2 Bytes
URL (p_string)
Length Bytes
824

Tag 2: Stream

1632
Tag = 0x0002
2 Bytes
Length
2 Bytes
Stream (p_octet)
Length Bytes
824

Stream

1632
Remote camera line
2 Bytes
Remote camera stream
1 Byte
Reserved
1 Byte
824

Remote camera line

In network order

Tag 3: Camera token

see detailed description for camera token
1632
Tag = 0x0003
2 Bytes
Length
2 Bytes
Camera token (p_octet)
Length Bytes
824

Tag 4: Profile token

see detailed description for profile token
1632
Tag = 0x0004
2 Bytes
Length
2 Bytes
Profile token (p_octet)
Length Bytes
824

CONF_STREAMING_GATEWAY_MAX_LINES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b26Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the max number of configurable streaming gateway lines
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available no no

CONF_SYSLOG_HOST_STR

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0950Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimalGet the SYSLOG host ip address
Writep_stringserviceSet the SYSLOG host ip address
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SYSLOG_LOG_LEVEL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c5eNonenono
 DatatypeAccess LevelDescription
Readt_octetminimalGet the SYSLOG log level EMERGENCY=0 .. DEBUG=7 RFC 5424; value must be one above the highest allowed event, so 0= all off
Writet_octetserviceSet the SYSLOG log level EMERGENCY=0 .. DEBUG=7 RFC 5424; value must be one above the highest allowed event, so 0= all off
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SYSLOG_MESSAGE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0caa0: default log level. 1: Emergency, 2: Alert, 3: Critical, 4: Error, 5: Warning, 6: Notice, 7: Info, 8: Debugnono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_stringserviceWrite a message string to the SYSLOG system
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SYSLOG_PORT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c69Nonenono
 DatatypeAccess LevelDescription
Readt_wordminimalReads the SYSLOG host network port
Writet_wordserviceSet the SYSLOG host network port
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SYSLOG_PROTOCOL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c5fNonenono
 DatatypeAccess LevelDescription
Readt_octetminimalGet the SYSLOG server protocol (0 = UDP, 1=TCP, 2=TLS)
Writet_octetserviceSet the SYSLOG server protocol (0 = UDP, 1=TCP, 2=TLS)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_APP_OPTION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09e0Nonenono
 DatatypeAccess LevelDescription
Readp_octetalways_legacyDEPRICATED: Use CONF_APP_OPTION_EXT. Returns a bit field containing 256 bits (32 byte). Each bit represents one active license on the device. Bit order is MSB first.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_APP_OPTION_EXT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c4aNonenono
 DatatypeAccess LevelDescription
Readp_octetminimalReturns a bit field containing 512 bits (64 byte). Each bit represents one active license on the device. Bit order is MSB first.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_APP_OPTION_SET

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09e2Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimalReturns a readable string with the result code of the last applied set option
Writep_stringserviceA key, generated by the license server to enable a specific application option; after entering a key, the APP_OPTION command returns the current activated application options
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_APP_OPTION_UNIT_ID

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09e1Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimalRead out the unique unit id (installation code) for setting application options
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_APPLICATION_TYPE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c47Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalReturns the application type,
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
default application0
standard application1

CONF_AUXILIARY_POWER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c55Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReturns status and availability of auxiliary power, see detailed description
Writet_dwordserviceEnables or disables auxiliary power, see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
Flags
1 Byte
ovl_cnt
1 Byte
Reserved
2 Bytes
824

Flags

MaskNameDescription
Bit 30x08ovlIndicates if auxiliary power is overloaded (read only, write will be ignored)
Bit 20x04has ovlIndicates if the unit has overload detection (read only, write will be ignored)
Bit 10x02ena powerIndicates if auxiliary power is switched on
Bit 00x01aux powerIndicates if the unit has auxiliary power (read only, write will be ignored)

ovl_cnt

Counts up if an overload occurs
Values:
no overload0
nr of overload events1 - 254
more than 254 overload events255

CONF_BOARD_RESET

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0811Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writef_flagserviceReset the board
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_BOOT_DEFAULT_APP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x099fNonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writef_flagserviceBoot the default application
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_BOOT_STATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09e3Nonenono
 DatatypeAccess LevelDescription
Readt_dwordalways
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
booted100
waiting for camera frontend50
waiting for DHCP25
Percent0 - 100

CONF_BOOTLOADER_VERSION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09efNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalRead the bootloader version
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_CAMNAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0019video linenono
 DatatypeAccess LevelDescription
Readp_unicodeminimalDeprecated! Use CONF_CAMNAME_LINES instead.
Writep_unicodeserviceDeprecated! Use CONF_CAMNAME_LINES instead. (max 31 unicode character + null delimiter)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_CAMNAME_LINES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bb1video linenono
 DatatypeAccess LevelDescription
Readp_unicodeminimalRead out camera name, use CONF_ENC_STAMPING_PROPERTIES to determine line length l (a line consists of l UTF-16 chars) and the number of supported lines n (command length = l*n | UTF-16 chars), all non used chars must be set to zero
Writep_unicodeserviceSet camera name, use CONF_ENC_STAMPING_PROPERTIES to determine line length l (a line consists of l UTF-16 chars) and the number of supported lines n (command length = l*n | UTF-16 chars), all non used chars must be set to zero
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_CAMNAME2

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a7evideo linenono
 DatatypeAccess LevelDescription
Readp_unicodeminimalDeprecated! Use CONF_CAMNAME_LINES instead.
Writep_unicodeserviceDeprecated! Use CONF_CAMNAME_LINES instead. (max 31 unicode character + null delimiter)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_CLUSTER_GROUP_SETTING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09caNoneyesno
 DatatypeAccess LevelDescription
Readp_octetalways_legacyList of (DWORD ip, DWORD flags, OCTET[6] mac, WORD reserved) cluster members including this unit
Writep_octetalways_legacyList of (DWORD ip, DWORD flags, OCTET[6] mac, WORD reserved) cluster members including this unit
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_CLUSTER_ID

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09cbNonenono
 DatatypeAccess LevelDescription
Readt_dwordalways_legacyReturns the logical position inside a cluster (0=stand alone, >0=slot nbr.)
Writet_dwordserviceOnly in generic: set vrm instance (0 <= ClusterId < 32)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_COMMERCIAL_TYPE_NUMBER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0be7Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimalRead the commercial type number (CTN) of the device. The string may be shortened or generalized as the CTN also contains parts the firmware does not know.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_CPU_COUNT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a09Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalNumber of cpus
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DEFAULTS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x093dNonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writef_flagserviceSets config to default values except IP, subnet and gateway and resets the device. ATTENTION: Wait till board has fully rebooted before switching of power, to ensure that defaults are applied completly. Also propagade this to the user, that he has to wait until the reboot is complete.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DEVICE_CAPABILITIES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b60Nonenono
 DatatypeAccess LevelDescription
Readp_octetalways_legacyReturns capabilities of the device in a tagged format
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

Number of tagged elements
4 Bytes
Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

1632
Tag = Tag ID
2 Bytes
Length
2 Bytes
Tag Payload
824

Tag NameTag IDPayload TypeDescription
DEVICE_TYPE_TAG1t_octet
PTZ_CAMERA_TAG2t_octetptz capabilities; ptz capabilities are available e.g. if the device is a dome camera, if bilinx is supported and a bilinx camera is connected to the device or if a serial dome protocol is set
ROI_CAMERA_TAG3t_octetregion of interest available
AUTOTRACKER_TAG4t_octetautotracker available
NBR_VIDEO_IN_TAG5t_octetnumber of video inputs
NBR_TRANSCODER_TAG6t_octetnumber of transcoders
NBR_AUDIO_IN_TAG7t_octetnumber of audio inputs
NBR_AUDIO_OUT_TAG8t_octetnumber of audio outputs
AUDIO_OPTIONS_TAG9t_octet
EPTZ_TRACKER_TAG10t_octeteptz tracker supported
IMAGE_PIPE_FEATURE_TAG_OLD11t_dwordreturns 1st 4bytes of the information that is provided by bicom command 0x0520 (ServerID 4)(for backward compatibility). Use the new tag IMAGE_PIPE_FEATURES to get all features
BEST_FACE_TAG12t_octetdevice supports CONF_BEST_FACE
PLATFORM_TYPE_TAG13t_octet
BICOM_DOME_TAG14t_octetIndication if it is a dome that can be controlled using bicom (e.g via CONF_BICOM_COMMAND)
FPGA_TAG15t_octetFPGA available
VOUT_TAG16t_octetcamera has a vout
HEATER_TAG17t_octetcamera has a heater
SERIAL_PORT_TAG18t_octetcamera has a serial port
NTCIP_TAG19t_octetcamera is ready for NTCIP use
REPLAY_TAG20t_dwordsupported replay option flags
GB28181_TAG21t_octetsupport of GB28181
FONT_SUPPORT_TAG22t_dwordsupported utf-16 characters for Stamping; ASCII chars are always supported;
RECORDER_TAG23p_octetrecord format version
PTZ_ON_CLIENT_TAG24t_octet
VIRTUAL_LINES_TAG25t_octetReturns the number of virtual lines on this device or zero if there are none. If there are virtual lines, more information is available via CONF_VIRTUAL_LINES.
DPTZ_STATIC_CAPS_TAG26p_octetSignal PTZ capabilities see CONF_DPTZ_STATIC_CAPS for a detailed description of the payload
MAX_DEC_RESOLUTION_TAG27p_octetmaximum decoder/transcoder resolution
MAX_SUBVIEWS_TAG28t_octetmax number of video subviews
FIRE_DETECTION_TAG29t_octetFire detection available
FW_UPLOAD_SIGNATURE_TAG30t_octetFirmware upload signature required
IMAGE_PIPE_FEATURE_TAG31p_octetreturns the information that is provided by bicom command 0x0520 (ServerID 4)
CLUSTERED_DEVICE_TAG32t_octetindication if the camera is clustered with other devices
PIR_TAG33t_octetnumber of PIR (passive infrared) sensors
AMBIENT_LIGHT_DETECT_TAG34t_octetambient light detection supported
SUPPORT_SUDO_URL35t_octet/sudo URL is available to switch users
IS_IN_FORCE_PWD_MODE36t_octetDevice has no password at the moment and will force the user to set one
IS_PTZ_IN_VCD37t_octetPTZ information can be found in VCD stream (this capabilty is necessary for the VCA global field feature)
CODER_SPEC_ENC_PROF38t_octetcoder specific encoder presets
POE_BASE_CLASS_TAG39t_octetbase PoE class of device, without consideration of power adder values
SOD_DETECTION_TAG40t_octetSOD detection is available
VIDEO_LINE_DUO41t_octetVideo line supports side-by-side image
ISCSI_SUPPORT42t_dwordiSCSI capabilities
INDIVIDUAL_ENCODER_OPERATION_MODE_CONFIG43t_word
WIFI_TAG44t_octetWifi support
C_MOUNT_LENS_TYPE45t_octetDevice has a changeable lens C-mount
TC_ENC_H265_TAG46t_octetTranscoder supports H.265
NET_DYNAMIC47t_octetDevice network settings can be changed dynamically without reboot
KINESIS_SUPPORT48t_octetDevice supports streaming to kinesis
AWS_S3_SUPPORT49t_octetDevice supports streaming to amazon s3
RCP_UDP_PAYLOAD_ENCRYPTION50t_octetDevice supports rcp udp payload encryption
IMU_TAG51t_octetnumber of IMU sensors (Inertial Measurement Unit; acceleration, gyroscope, ..)
CLOUD_WATCH_SUPPORT52t_octetdevice supports logging to cloud watch
CALIBRATION_LINE_DEPENDENCIES53p_octetreturns the information calibration dependencies between lines, if missing then all lines are independent.
ACCOUNT_TYPE_SUPPORT54t_dwordaccount types support
DYN_SCENE_CTRL_OPTIONS_TAG55t_octetdevice supports CONF_ENC_DYN_SCENE_CTRL
SUPPORT_REFERENCE_ORIENTATION56t_octetdevice supports tamper reference orientation
IS_SAST_SYSTEM57t_octetdevice is a S&ST camera
ENC_BASE_OPERATION_MODE_TYPE58t_octetenc base operation mode type, see CONF_ENC_BASE_OPERATION_MODE_TYPE
DEVELOPER_MODE_ALLOWED59t_octetdeveloper mode is allowed
DEVELOPER_MODE_ENABLED60t_octetdeveloper mode is enabled
RETAIL_ANALYTICS_TAG61t_octetRetail analytics is available
RAW_FIR_IMAGE_TAG62t_octetDevice provides FIR raw image via snap.fir
TRANS_DATA_OVERIP_AVAIL_TAG63t_octetTransparent data over ip feature is available
UPNP_SUPPORT_TAG64t_octetUPnP support
SMART_SEARCH_OPTIONS_TAG65t_dwordSupported forensic search options


Tag 1: DEVICE_TYPE_TAG

Overview

Values:
encoder1
camera2
transcoder3
vrm4
decoder5
streaming gateway6
storage8
other0

Tag 2: PTZ_CAMERA_TAG

Overview

Values:
no ptz0
full ptz1
zoom only2no pan/tilt

Tag 3: ROI_CAMERA_TAG

Overview

Values:
no0
yes1

Tag 4: AUTOTRACKER_TAG

Overview

Values:
no0
yes1

Tag 9: AUDIO_OPTIONS_TAG

Overview

Values:
MaskName
Bit 30x08loudspeaker (see CONF_AUDIO_OPTIONS)
Bit 20x04mic
Bit 10x02line out
Bit 00x01line in

Tag 10: EPTZ_TRACKER_TAG

Overview

Values:
no0
yes1

Tag 12: BEST_FACE_TAG

Overview

Values:
no0
yes1

Tag 13: PLATFORM_TYPE_TAG

Overview

Values:
CPP31
CPP42
CPP-ENC3
CPP54
CPP65
CPP76
CPP7.37
CPP139
CPP1410
OTHER255

Tag 14: BICOM_DOME_TAG

Overview

Values:
no0
yes1

Tag 15: FPGA_TAG

Overview

Values:
no0
yes1

Tag 16: VOUT_TAG

Overview

Values:
no0
yes1

Tag 17: HEATER_TAG

Overview

Values:
no0
yes1

Tag 18: SERIAL_PORT_TAG

Overview

Values:
no0
yes1

Tag 19: NTCIP_TAG

Overview

Values:
no0License needs to be installed
yes1license is installed or NTCIP support comes pre-enabled

Tag 20: REPLAY_TAG

Overview

Values:
MaskName
Bit 20x00000004transcoded replay
Bit 10x00000002local replay
Bit 00x00000001span replay

Tag 21: GB28181_TAG

Overview

Values:
GB28181 not supported0
GB28181 supported1see CONF_GB28181 for further informations

Tag 22: FONT_SUPPORT_TAG

Overview

Values:
MaskName
Bit 00x00000001full BoschSansCHS-Regular.ttf support (all chinese signs included in UTF-16)

Tag 23: RECORDER_TAG

Overview

1632
Format version (t_dword)
4 Bytes
Format version minor (t_word)
2 Bytes
Recorder version (t_word)
2 Bytes
Recorder mode flags (t_dword)
4 Bytes
824

Recorder mode flags

Values:
MaskName
Bit 20x00000004BUFFERED_RECORDING
Bit 10x00000002DUAL_RECORDING
Bit 00x00000001STANDARD_RECORDING

Tag 24: PTZ_ON_CLIENT_TAG

Overview

Values:
not necessary0
necessary1Dewarping on client makes sense and all required data is provided via SEI information in the h.264 stream. Normally the case on panoramic cameras with a large view angle 180° cameras.

Tag 27: MAX_DEC_RESOLUTION_TAG

Overview

1632
Width (t_dword)
4 Bytes
Height (t_dword)
4 Bytes
824


Tag 29: FIRE_DETECTION_TAG

Overview

Values:
no0
yes1

Tag 30: FW_UPLOAD_SIGNATURE_TAG

Overview

Values:
unsigned firmware accepted0
only signed firmware accepted1

Tag 32: CLUSTERED_DEVICE_TAG

Overview

Values:
no0
yes1

Tag 34: AMBIENT_LIGHT_DETECT_TAG

Overview

Values:
no0
yes1

Tag 35: SUPPORT_SUDO_URL

Overview

Values:
no0
yes1

Tag 36: IS_IN_FORCE_PWD_MODE

Overview

Values:
no0
yes1

Tag 37: IS_PTZ_IN_VCD

Overview

Values:
no0
yes1

Tag 38: CODER_SPEC_ENC_PROF

Overview

Values:
no0
yes1

Tag 39: POE_BASE_CLASS_TAG

Overview

Values:
Class 00
Class 11
Class 22
Class 33
Class 44
no PoE255

Tag 40: SOD_DETECTION_TAG

Overview

Values:
no0
yes1

Tag 41: VIDEO_LINE_DUO

Overview

Values:
MaskName
Bit 10x02Line2
Bit 00x01Line1

Tag 42: ISCSI_SUPPORT

Overview

Values:
MaskName
Bit 10x00000002Support for Multipathing('NetApp specific style')
Bit 00x00000001Support for NetApp E2800

Tag 43: INDIVIDUAL_ENCODER_OPERATION_MODE_CONFIG

Overview

Values:
global encoder configuration mode0In CONF_CODER_VIDEO_OPERATION_MODE, num parameter supports only 0 as global option for all possible encoders
individual encoder configuration mode1In CONF_CODER_VIDEO_OPERATION_MODE, num parameter for a specific absolute coder has to be provided. Global configuration (numDesc = 0) is not supported.

Tag 44: WIFI_TAG

Overview

Values:
no0
as station1
as access point2

Tag 45: C_MOUNT_LENS_TYPE

Overview

Values:
no0Device has a fix attached lens
yes1Lens is changeable

Tag 46: TC_ENC_H265_TAG

Overview

Values:
no0
yes1

Tag 47: NET_DYNAMIC

Overview

Values:
no0
yes1

Tag 48: KINESIS_SUPPORT

Overview

Values:
no0
yes1

Tag 49: AWS_S3_SUPPORT

Overview

Values:
no0
yes1

Tag 50: RCP_UDP_PAYLOAD_ENCRYPTION

Overview

Values:
no0
yes1

Tag 52: CLOUD_WATCH_SUPPORT

Overview

Values:
no0
yes1

Tag 54: ACCOUNT_TYPE_SUPPORT

Overview

Values:
MaskName
Bit 70x00000080file
Bit 60x00000040kinesis
Bit 50x00000020aws s3
Bit 40x00000010record
Bit 30x00000008smb
Bit 20x00000004dropbox
Bit 10x00000002ftp
Bit 00x00000001no

Tag 55: DYN_SCENE_CTRL_OPTIONS_TAG

Overview

Values:
no0
yes1

Tag 56: SUPPORT_REFERENCE_ORIENTATION

Overview

Values:
no0
yes1

Tag 57: IS_SAST_SYSTEM

Overview

Values:
no0
yes1

Tag 58: ENC_BASE_OPERATION_MODE_TYPE

Overview

Values:
not supported0no base operation mode support
fixed1base operation modes define a specific fixed resolution (except of SD mode)
limit2base operation modes specify an upper limit for the resolution + frame rate

Tag 59: DEVELOPER_MODE_ALLOWED

Overview

Values:
no0
yes1

Tag 60: DEVELOPER_MODE_ENABLED

Overview

Values:
no0
yes1

Tag 61: RETAIL_ANALYTICS_TAG

Overview

Values:
no0
yes1

Tag 62: RAW_FIR_IMAGE_TAG

Overview

Values:
no0
yes1

Tag 63: TRANS_DATA_OVERIP_AVAIL_TAG

Overview

Values:
no0
yes1

Tag 64: UPNP_SUPPORT_TAG

Overview

Values:
no0
yes1

Tag 65: SMART_SEARCH_OPTIONS_TAG

Overview

Values:
MaskName
Bit 50x00000020Text Search in Alarmlayer
Bit 40x00000010Recorded Alarms
Bit 30x00000008Best Face
Bit 20x00000004Line Crossing
Bit 10x00000002Object in Field
Bit 00x00000001Any Motion

CONF_DEVICE_GUID

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b22Nonenono
 DatatypeAccess LevelDescription
Readp_octetalways_legacyRead the device's GUID (32 bytes length)
Writep_octetserviceWrite the device's GUID (32 bytes length)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_DEVICE_OPERATION_MODE_VERSIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b61Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalInformation about device operation_modes, see
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command can be used to get a hint for changes between firmware versions or differences between device types concerning handling or way of configuration of the devices for several aspects. In order to parse the response payload, first check the first byte of a operation mode version info structure, which is the type and depending on the type read the remaining payload of the structure. Do this again for all following operation mode version info structures until the end of the response payload.

Payload Structure

Operation Mode Version Info [0]
(see description)
...
Operation Mode Version Info [N]
(see description)

Operation Mode Version Info

A list of operation mode version info structures.
Type
1 Byte
Specific Information
(see description)

Type

Type of the operation mode version info structure.
Version1recording configuration version

Specific Information

Specific information depending on the type.

'Specific Information' payload for 'Type' = 'Recording configuration version' (1)

1632
0x01
1 Byte
Variant
1 Byte
Version
2 Bytes
824

Variant

Variant of the recording configuration.
Values:
Profile Configuration Mode0Configuration has to be done by command CONF_HD_RECORD_PROFILES
Stream Configuration Mode1Configuration has to be done by command CONF_HD_RECORD_PROFILES_V2

Version

Version of the recording configuration. Current version is 1.

CONF_DEVICE_TYPE_IDS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b07Nonenono
 DatatypeAccess LevelDescription
Readp_octetalways_legacyRead the device type ids (hexadecimal). 1st DWORD: Product ID; 2nd DWORD: Upper byte: OEM ID (BOSCH = 0), Lower 3 bytes: Variant ID; 3rd DWORD: (Bicom) Frontend Family ID
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ENABLE_TRAFFIC_LED

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09a6Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalNetwork activity LED (Dinion, NBC-255 camera): 0=off, 1=on
Writet_octetserviceEnables or disables the network activity LED (Dinion, NBC-255 camera)
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_FACTORY_DEFAULTS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09a0Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writef_flagserviceSet the configuration to factory defaults and reset the board. ATTENTION: Wait till board has fully rebooted before switching of power, to ensure that defaults are applied completly. Also propagade this to the user, that he has to wait until the reboot is complete.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_FW_MIN_VERSION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0babNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalRead the required minimum firmware version. Format: (hexadecimal) 0xrrrrVVMM, where 'r' is reserved, 'VV' is the major version and 'MM' the minor version number. (E.g. 0x00000590 for version 5.90)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HARDWARE_VERSION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x002eNonenono
 DatatypeAccess LevelDescription
Readp_string t_dwordalwaysRead the hardware version
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_HEATER_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b0cNonenono
 DatatypeAccess LevelDescription
Readt_octetuserRead the heater mode
Writet_octetuserWrite the heater mode
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
off0
on1
auto2

CONF_HOST_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cdaNonenono
 DatatypeAccess LevelDescription
Readp_unicodeminimalRead the host name
Writep_unicodeserviceSet host name (max 128 unicode character)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_INSTALLER_SEQUENCE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b0fvideo linenono
 DatatypeAccess LevelDescription
Readt_dwordminimal
Writet_dwordservice
CPP6/CPP7/CPP7.3CPP13
Available yes no

Values:
installer sequence deactivated0
installer sequence allowed1

CONF_LED_CAPS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bf8Nonenono
 DatatypeAccess LevelDescription
Readt_dwordalways_legacyRead power/traffic LED capabilities: 0=no capabilities, 1=disengageable
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NBR_OF_IMU

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cd5Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReturns the number of available IMU sensors (IMU: Inertial Measurement Unit; accelerometer, gyroscope, ..)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NIGHT_MODE_STATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0aa2Noneyesno
 DatatypeAccess LevelDescription
Readf_flagminimal0=night mode off; 1=night mode on (only for devices supporting night mode)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_OEM_DEVICE_DOMAIN

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09e9Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimalGet the oem device domain
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_OEM_DEVICE_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x097cNonenono
 DatatypeAccess LevelDescription
Readp_stringminimalGet the oem device name
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_OEM_EXT_ID

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x097dNonenono
 DatatypeAccess LevelDescription
Readt_octetminimalDEPRECATED: please use CONF_DEVICE_TYPE_IDS instead. Get the oem extension id
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_POWER_MONITOR_NAMES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c54Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalReturns names from all monitored power rails, see detailed description
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

Payload Structure

1632
Number of power rails
4 Bytes
Name of power rail (zero terminated) [0]
...
Name of power rail (zero terminated) [Number of power rails - 1]
824

Number of power rails

Number of monitored power rails.

CONF_POWER_MONITOR_VALUES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c53Instance of Power Monitornono
 DatatypeAccess LevelDescription
Readp_octetminimalReturns values from all monitored power rails, see detailed description
Writep_octetserviceWriting one Byte with 0x01 resets min/max/avg
CPP6/CPP7/CPP7.3CPP13
Available yes no

Payload Structure

1632
Number of rails
4 Bytes
Rail value [0]
(see description)
...
Rail value [Number of rails - 1]
(see description)
824

Number of rails

Number of monitored rails. Payload of complete command is 4 + (Number Of Rails)*40 Bytes

Rail value

1632
Options
4 Bytes
Actual Voltage
4 Bytes
Min Voltage
4 Bytes
Max Voltage
4 Bytes
Actual Current
4 Bytes
Min Current
4 Bytes
Max Current
4 Bytes
Actual Power
4 Bytes
Min Power
4 Bytes
Max Power
4 Bytes
824

Options

MaskName
Bit 20x00000004Power Measurement Valid
Bit 10x00000002Voltage Measurement Valid
Bit 00x00000001Current Measurement Valid

Actual Voltage

Actual measured voltage, which is measured last, in uV

Min Voltage

Minimum measured voltage in uV

Max Voltage

Maximum measured voltage in uV

Actual Current

Actual measured current, which is measured last in uA

Min Current

Minimum measured current in uA

Max Current

Maximum measured current in uA

Actual Power

Actual measured power, which is measured last in uW

Min Power

Minimum measured power in uW

Max Power

Maximum measured power in uW

CONF_PRIVACY_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c33Noneyesno
 DatatypeAccess LevelDescription
Readt_dwordminimalRead the privacy mode status
Writet_dworduserSet the privacy mode status
CPP6/CPP7/CPP7.3CPP13
Available yes no

Read Payload Structure

1632
Status
1 Byte
Source of Privacy Mode
1 Byte
opt. Timeout in min
2 Bytes
824

Status

off0
on1

Source of Privacy Mode

RCP cmd0
Tap1

Write Payload Structure

1632
Status
1 Byte
reserved
1 Byte
opt. Timeout in minutes
2 Bytes
824

Status

off0
on1

reserved

Set to '0'

opt. Timeout in minutes

Only applicable if 'Status' is 'On'. Then, after the timeout, privacy mode is automatically switched 'off' again

CONF_PRODUCT_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0aeaNonenono
 DatatypeAccess LevelDescription
Readp_string p_octetalwaysRead the product name of the device. This command was previously named \CTN\".
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_PTZ_AUTO_ROTATE_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c3fNonenono
 DatatypeAccess LevelDescription
Readt_octetminimalResidential indoor ptz auto-rotate (auto-track) mode. 0=off, 1=std function, 2=production test mode
Writet_octetserviceResidential indoor ptz auto-rotate (auto-track) mode. 0=off, 1=std function, 2=production test mode
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_RUN_QR_READER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c3aNonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writet_dwordserviceRun the QR code reader for a certain time (in seconds). (notice: values 0 and 0xFFFFFFFF not allowed; reserved for future use)
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_SCAN_ID

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c27Nonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_stringserviceStore ScanID; used for residential cloud services APP to identify the camera in the Wifi network
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_SECURITY_COPROC_AUTHENTICATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b92Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead with incoming payload: send a challenge for device authentication (16 bytes: 8 random bytes + the 8 byte sequence 0x4E, 0x58, 0x50, 0x48, 0x41, 0x2E, 0x30, 0x31), read the 128 bytes challenge response
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_SECURITY_COPROC_CERTIFICATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b91Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead the security coproc device certificate (X.509-certificate ASN.1-DER coded)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_SECURITY_COPROC_VERSION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b93Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalRead the security coproc version
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SERIAL_NUMBER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ae7Nonenono
 DatatypeAccess LevelDescription
Readp_octetalways_legacyReturns the serial number of the device. The representation of this serial number is binary octets
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SOFT_VARIANT_ID

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bb2Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet the soft variant Id if set; (notice: if no soft variant ID is set, the 'original' variantID will be returned)
Writet_dwordserviceSet a soft variant ID. Only possible on certain devices. For a list of allowed soft variants see CONF_SOFT_VARIANT_ID_OPTIONS. All configuration except IP/subnet mask and DHCP settings will be set to default and the device reboots automatically. (Notice: only for some special soft variants which have the option flag 'no factory defaults performed' (see CONF_SOFT_VARIANT_ID_OPTIONS), the device configuration will be kept and not set to defaults.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SOFT_VARIANT_ID_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bb6Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalGet a list of possible soft variant IDs plus the according variant name.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
Number of variants
1 Byte
Flags
1 Byte
reserved
2 Bytes
Variant Description [0]
(see description)
...
Variant Description [Number of variants - 1]
(see description)
824

Number of variants

The number of software variants described in this payload.

Flags

MaskName
Bit 00x01No 'factory defaults' performed

Variant Description

1632
Variant ID
4 Bytes
Variant Name (p_string)...
60 Bytes
Variant Name
[...]
Variant Name
...
824


Note: If no soft variant IDs are possible, an empty payload will be returned.

CONF_SOFTWARE_VERSION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x002fNonenono
 DatatypeAccess LevelDescription
Readp_string t_dwordalwaysRead the software version
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SOFTWARE_VERSION_FORMATTED

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cd4Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimalRead the software version in the form <major>.<minor>.<build>
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SUPPORTED_UPLOAD_TARGETS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b19Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimalReturns all supported upload targets for this platform (List of n DWORDs)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_TRANSCODER_CAPABILITIES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c0dNonenono
 DatatypeAccess LevelDescription
Readp_octetminimalReturns capabilities of a transcoder device in a tagged format
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available no no

Payload Structure

Number of tagged elements
4 Bytes
Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value without length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 1: TC_TAG_MAX_INPUT_RESOLUTION

maximum transcoder input resolution
1632
Tag = 0x0001
2 Bytes
Length = 0x0008
2 Bytes
Width (t_dword)
4 Bytes
Height (t_dword)
4 Bytes
824


Tag 2: TC_TAG_MAX_SUBVIEWS

maximum transcoder subviews
1632
Tag = 0x0002
2 Bytes
Length = 0x0001
2 Bytes
TC_TAG_MAX_SUBVIEWS (t_octet)
1 Byte
824

CONF_UNIT_ID

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0025Nonenono
 DatatypeAccess LevelDescription
Readp_unicodeminimalRead the unit ID
Writep_unicodeserviceSet unit ID (max 31 unicode character + null delimiter)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_UNIT_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0024Nonenono
 DatatypeAccess LevelDescription
Readp_unicodealways_legacyRead the unit name
Writep_unicodeserviceSet unit name (max 31 unicode character + null delimiter)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_AMBIENT_LIGHT_LEVEL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c45Nonenono
 DatatypeAccess LevelDescription
Readt_dworduserGet the normalized ambient light level (value range: 0-1000; typical values between 0-400); Only available on certain devices
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_CHECK_DEFAULT_BUTTON_STATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c3bNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalCheck the current status of the (factory) default button. 0=inactive; 1=active
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_CHECK_POS_FB_STATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c3cNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalCheck the current status of the position feedback sensors. (Only applicable on certain devices).
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

Values:
MaskName
Bit 10x02hall sensor
Bit 00x01end position fb switch

CONF_CLOUD_COMMISSIONING_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c44Nonenono
 DatatypeAccess LevelDescription
Readt_wordminimalGet the status of cloud commissioning. After successful commissioning, the cloud sets this status so the camera knows about it (and can e.g. change LED accordingly). 0=uncommissioned; 100=commissioning successfully finished
Writet_wordserviceStore the status of cloud commissioning. After successful commissioning, the cloud sets this status so the camera knows about it (and can e.g. change LED accordingly). 0=uncommissioned; 100=commissioning successfully finished
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_CONFIG_SEALING_ENABLED

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c8aNonenono
 DatatypeAccess LevelDescription
Readt_octetminimalGet enabled state of config sealing 0=sealing disabled; 1=sealing enabled; 2=seal broken
Writet_octetserviceEnable config sealing 0=sealing disabled; 1=sealing enabled; 2=seal broken (2 for internal write)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_CONFIG_SEALING_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c8cNoneyesno
 DatatypeAccess LevelDescription
Readp_octetminimalReturn status of config seal,
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Sealing concept

The system can be set up in a way that unexpected configuration changes on the device cause a alert message, even when the user uses a valid login and password for this action.
After the whole system configuration is completed CONFIG_SEALING_ENABLED needs to be set to 1 (= Seal enabled). In this state each critical configuration change causes the device to send a CONFIG_SEALING_STATUS message.
If a client wants to activly verify if a seal is valid then it should read CONFIG_SEALING_STATUS.

Payload Structure

1632
Status
1 Byte
Reserved
3 Bytes
SealSetTimestamp
4 Bytes
SealRandom
4 Bytes
SystemTimestamp
4 Bytes
824

Status

Sealing off0
Sealing on and seal valid1
Sealing on and seal broken2

SealSetTimestamp

Timestamp when seal was activated in seconds since year 2000.

SealRandom

Random number generated once when seal was activated.

SystemTimestamp

Current system time in seconds since year 2000. Can be used to protect against time manipulation on SealSetTimestamp

CONF_CPU_LOAD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a0ahost=1nono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Read the CPU load information from a device.

Num Descriptor Values

Host1
CoProc2

Payload Structure

1632
Idle
1 Byte
Coder
1 Byte
VCA
1 Byte
LocalRecording
1 Byte
824

Idle

Idle time of CPU in percent.

Coder

Coder time of CPU in percent. Only supported on CPP6/CPP7/CPP7.3, '0' otherwise

VCA

VCA time of CPU in percent. Only supported on CPP6/CPP7/CPP7.3, '0' otherwise

LocalRecording

Local recording time of CPU in percent. Only supported on CPP6/CPP7/CPP7.3, '0' otherwise

CONF_CPU_LOAD_CODER

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a07host=1nono
 DatatypeAccess LevelDescription
Readt_dwordminimalCpu load coder in percent
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_CPU_LOAD_IDLE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a06host=1nono
 DatatypeAccess LevelDescription
Readt_dwordminimalCpu load idle in percent
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_CPU_LOAD_VCA

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a08host=1nono
 DatatypeAccess LevelDescription
Readt_dwordminimalCpu load vca in percent
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_HUMIDITY_VALUE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c61humidity sensor (1...x)nono
 DatatypeAccess LevelDescription
Readt_dworduserValue of the humidity sensor specified by numdes (humidity 0 ... 100.00 % maps onto values 0 ... 10000)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_LOW_AMBIENT_LIGHT_THRESHOLD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c46Nonenono
 DatatypeAccess LevelDescription
Readt_dworduserGet the normalized low ambient light level threshold (value range: 0-1000; typical 50 ); Only available on certain devices; To obtain the current level, see CONF_AMBIENT_LIGHT_LEVEL
Writet_dwordserviceSet the normalized low ambient light threshold (value range: 0-1000; typical 50 ); Only available on certain devices; To obtain the current level, see CONF_AMBIENT_LIGHT_LEVEL
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_NBR_OF_HUMIDITY_SENSORS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c60Nonenono
 DatatypeAccess LevelDescription
Readt_dworduserThe number of humidity sensors
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NBR_OF_TEMP_SENS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09c4Nonenono
 DatatypeAccess LevelDescription
Readt_dworduserThe number of temperature sensors
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SD_CARD_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b89SD card slot ID. Starts with 1.nono
 DatatypeAccess LevelDescription
Readt_wordminimalRead the current status of the SD card. BIT 0: 0: no card, 1: card detected. BIT 1: 0: SD, 1: CF. BIT 2..15: reserved.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STORAGE_LOAD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bbaNonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalLoad of local storage in percent
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_SYSTEM_LOAD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cb5Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 1: CPU_LOAD_OF_CORE_N

Container tag which contains information about current CPU-load on a single CPU-core
Length
2 Bytes
Tag = 0x0001
2 Bytes
CPU_LOAD_OF_CORE_N (p_octet)
Length - 4 Bytes

CPU_LOAD_OF_CORE_N

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 3: CORE_IDX

Index of the core described by the current container.
Length = 0x0005
2 Bytes
Tag = 0x0003
2 Bytes
CORE_IDX (t_octet)
1 Byte

Tag 5: IDLE_PERC

Idle value for this core in percent
Length = 0x0005
2 Bytes
Tag = 0x0005
2 Bytes
IDLE_PERC (t_octet)
1 Byte

Tag 6: ENC_PERC

CPU-load in percent caused by the encoder on this core. Only supported on CPP6/CPP7/CPP7.3, '0' otherwise
Length = 0x0005
2 Bytes
Tag = 0x0006
2 Bytes
ENC_PERC (t_octet)
1 Byte

Tag 7: VCA_PERC

CPU-load in percent caused by the VCA on this core. Only supported on CPP6/CPP7/CPP7.3, '0' otherwise
Length = 0x0005
2 Bytes
Tag = 0x0007
2 Bytes
VCA_PERC (t_octet)
1 Byte


Tag 2: RECORDER_N

Container tag which contains information about a local recording media.
The availability of a index in this tag depends on the availability of a media slot on the device, and not on wether a media is currently plugged.
This means: If a device has 2 SD-Card slots then this command always returns 2 descriptors (idx 0,1) also when only one or none card is plugged.
Length
2 Bytes
Tag = 0x0002
2 Bytes
RECORDER_N (p_octet)
Length - 4 Bytes

RECORDER_N

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 4: REC_IDX

Index of the media slot, e.g. SD-Card, described by the current container.
Length = 0x0005
2 Bytes
Tag = 0x0004
2 Bytes
REC_IDX (t_octet)
1 Byte

Tag 8: RECORDING_LOAD_PERC

Current load of a local recording media in percent
Length = 0x0005
2 Bytes
Tag = 0x0008
2 Bytes
RECORDING_LOAD_PERC (t_octet)
1 Byte

Tag 9: RECORDING_MEDIA_STATUS

Current status of a local recording media
Length = 0x0008
2 Bytes
Tag = 0x0009
2 Bytes
RECORDING_MEDIA_STATUS (t_dword)
4 Bytes
Values:
No device plugged1
Device detected and can be used2
Hardware init failed3
Hardware driver IO error4
Hardware CRC error5
Hardware IO timeout6
Warning, Media has sometimes slow IO7
Warning, Media is read-only (Either write-protected or end of life)8
Media not suitable9
Media too small10


CONF_SYSUPTIME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x00b9Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalRead the system uptime in seconds
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_TEMP_SENS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x09c5temperature sensoryesno
 DatatypeAccess LevelDescription
Readt_dworduserValue of the temperature sensor in tenths of degrees Celsius, specified by numdes
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_UPLOAD_HISTORY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b44Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Command CONF_UPLOAD_HISTORY allows to get insights on what was uploaded to the queried device lately. The order of the entries in the upload history is always a chronological order. New entries are appended at the end. In case all ten entries of the list are filled, the oldest entry is overwritten. Therefore, the Latest Entry number in the header needs to be considered to find the latest entry in the list. The 2nd newest entry is the preceding one in the list, and so on. While finding timely preceding entries, make sure to wrap in the list to the last entry, where necessary. Handling the order of the entries in the list this way makes parsing slightly more complicated than absolutely necessary, but helps to raise the MTBF of the flash hardware. Considering these two aspects lead to the aforementioned organization of the upload history.
Uploads interrupted by power failure and consequent recovery measures like upload of a new firmware via the recovery application APP0 can make it necessary to interpret the content of the upload history manually with the help of the given flags, the firmware version, the file type and the date.

Response Payload Structure

1632
Upload History Header...
(see description)
Upload History Header
...
Upload History Entry [0] ...
(see description)
Upload History Entry
...
Upload History Entry
...
Upload History Entry
...
Upload History Entry
...
Upload History Entry [9]
(see description)
Upload History Entry
...
Upload History Entry
...
824

Upload History Header

1632
Upload Started Count
2 Bytes
Upload Success Count
2 Bytes
Upload Failed Count
2 Bytes
Latest Entry
1 Byte
Reserved
1 Byte
824

Upload Started Count

Number of Uploads started on this Device.

Upload Success Count

Number of Uploads completed successfully on this Device.

Upload Failed Count

Number of Uploads completed with an Error on this Device.

Latest Entry

Number that points to the most recent entry in the upload history.

Reserved

Reserved Bits.

Upload History Entry

The upload history consists of 10 entries. Not more, not less. Format of each entry is the following:
1632
Firmware Version
4 Bytes
Upload Start Time
4 Bytes
Upload File Type
1 Byte
Upload Error Code
1 Byte
Flags
2 Bytes
824

Firmware Version

Version Information of the Firmware, that was uploaded.

Upload Start Time

Time, when the upload was started. Format: Seconds since 1st of January of the year 2000

Upload File Type

File type that was uploaded.
Possible Values:
BSP_ROM_AREA_UNKNOWN0
BSP_ROM_AREA_APP_03
BSP_ROM_AREA_APP_14
Note: Other file type values are possible, but documentation of those is kept confidential.

Upload Error Code

Error code, that was encountered during upload.
Possible Values:
UPLOAD_GEN_ERR_NO_ERR0
UPLOAD_GEN_ERR_FLUSH_NO_HEADER1
UPLOAD_GEN_ERR_FLUSH_WRITE2
UPLOAD_GEN_ERR_FLUSH_READBACK3
UPLOAD_GEN_ERR_FLUSH_VERIFY4
UPLOAD_GEN_ERR_FINALFLUSH_FLASH_CHKSUM5
UPLOAD_GEN_ERR_FINALFLUSH_HEADER_CHKSUM6
UPLOAD_GEN_ERR_MAGIC10
UPLOAD_GEN_ERR_VERSION_TOO_LOW11
UPLOAD_GEN_ERR_VERSION_VS_FLASH12
UPLOAD_GEN_ERR_CHECK_DEVICE13
UPLOAD_GEN_ERR_FILE_ENTRY_MARKER14
UPLOAD_GEN_ERR_CHUNK_TOO_BIG15
UPLOAD_GEN_ERR_AREA_ALREADY_WRITTEN16
UPLOAD_GEN_ERR_BLACK_WHITE_LIST_CHECK17
UPLOAD_GEN_ERR_SIGNATURE_REQUIRED18
UPLOAD_GEN_ERR_SIGNATURE_INVALID19

Flags

Flags related to this upload history entry.
MaskNameDescription
Bit 40x0010DEVICE_RESTARTEDIf set, the device restarted after this upload successfully.
Bit 30x0008UPLOAD_SUCCESSIf set, the upload was finished successfully.
Bit 20x0004UPLOAD_FAILEDIf set, the upload was finished with an error.
Bit 10x0002UPLOAD_FINISHEDIf set, the upload was finished at all.
Bit 00x0001UPLOAD_STARTEDIf set, the upload was started.
Note: For a successful upload, all defined bits should be set, except for the UPLOAD_FAILED bit.

CONF_UPLOAD_PROGRESS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0701Noneyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

48
Progress
1 Byte
26

Progress

Informs about current progress of an upload or possible error states. Values in the range of 1 ... 100 represent the upload progress in percent. Other values need to be handled as error during the upload and inform about the kind of the error that was encountered during the upload.
Percent1 - 100
header error101
write error102
read back error103
verify error104
checksum mismatch written data105read back flash content vs. written data
checksum mismatch received data106announced in header vs. received data
magic error110
version too low111
flash type incompatible112
device check failed113
file entry marker failed114
chunk size error115
area already written116
black white list check117
wrong or no signature118
signature invalid119
invalid file name130
ROM init error131
ROM write error132
ROM close error133
socket error134
overflow error135
final flush error136
file format error137
logo size error (size of picture is limited to 128x128 pixel)138
logo compression error (only uncompressed bitmap files allowed)139
logo colour error (max. 256 colour bitmap supported)140
certificate/key already exists (filename must be unique)141
certificate/key format error142
no matching certificate found for uploaded key (upload certificate first or upload combined file)143
no free key entry available144
no certificate storage space available145
device not fully booted146
password required for this upload (encrypted config file)147
no memory to store the file148
file is to large for that type of upload149

CONF_ADD_REMOTE_DEVICE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b52entry index(1...4)nono
 DatatypeAccess LevelDescription
Readp_octetliveRead entry of remote devices, see detailed description
Writep_octetserviceAdd entry of remote devices, see detailed description
CPP6/CPP7/CPP7.3CPP13
Available no no

Description

Adds a device with forwarder ports, all data to/from the forwarder ports will be forwarded to/from the configured device port. It is allowed to store complete zeroed forwarder/remote port entries. For entries which are referenced by CONF_RCP_CONNECT_SALVO command num param, it it nessessary, that the first forward port entry contains the http port and the second one the https port. If one of these ports shall not be used, at least a zeroed entry (remote/forwarder port to zero) has to be placed. The max lines and coder per lines are just information, which will be stored together in the config. To delete an entry, send an empty or zeroed payload.

Payload Structure

1632
mac...
6 Bytes
mac
...
reserved
2 Bytes
line cnt
2 Bytes
max coder per line
2 Bytes
nbr of forwarder entries
4 Bytes
forwarder entry [0]
(see description)
...
forwarder entry [N]
(see description)
url len
2 Bytes
url
url len Bytes
pwd len
2 Bytes
pwd
pwd len Bytes
device name len
2 Bytes
device name
device name len Bytes
824

mac

Mac of the device (will be stored only as information in config)

reserved

line cnt

Max lines of the device (will be stored only as information in config)

max coder per line

Max number of coder instances per line (will be stored only as information in config)

nbr of forwarder entries

Number of forward port entries following this field (actual limited to 2)

forwarder entry

1632
remote port
2 Bytes
forwarder port
2 Bytes
824

remote port

Port of the remote device

forwarder port

Local port which forwards all data to the remote port

url len

Length of the following url (actual limit is 64)

url

Url for the connection to the remote device, ascii string including zero termination

pwd len

Length of the following password (actual limit is 64)

pwd

Password for the connection, ascii string including zero termination

device name len

Length of the following device name (actual limit is 64)

device name

Device name of the remote device, ascii string including zero termination

CONF_TCP_BANDWIDTH_CHECK

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b64Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalGet tcp bandwith check max duration in ms, sessionID to address session based params
Writet_dwordserviceSet tcp bandwith check max duration in ms, sessionID to address session based params
CPP6/CPP7/CPP7.3CPP13
Available no no

CONF_TCP_BANDWIDTH_CHECK_RESULT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b66Noneyesno
 DatatypeAccess LevelDescription
Readp_octetuserGet result of tcp_bandwidth_check (session id required), 4bytes error, 4bytes kbps
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available no no

CONF_TCP_FWD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b2fyes (Forwarder index 1...max, max=4: devices, max=32: generic)nono
 DatatypeAccess LevelDescription
Readp_octetserviceReads the Settings of the tcp forwarder per device (WORD http listener port, WORD http forwarder port, WORD https listener port, WORD https forwarder port, string: ip)
Writep_octetserviceWrites the Settings of the tcp forwarder per device (WORD http listener port, WORD http forwarder port, WORD https listener port, WORD https forwarder port, string: ip)
CPP6/CPP7/CPP7.3CPP13
Available no no

CONF_ENABLE_UPNP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0adeNonenono
 DatatypeAccess LevelDescription
Readf_flagminimal#ValueList: 0= Upnp disabled; 1= Upnp enabled
Writef_flagservice#ValueList: 0= Upnp disabled; 1= Upnp enabled
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_UPNP_SEARCH_IP_CONN_SERVICE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b59if set to 0xFFFF a extended payload is returnednono
 DatatypeAccess LevelDescription
Readp_octetminimalSearches for devices that support the upnp WANIPConnection service. Returns a list of devices entries (64 bytes addr, 64 bytes name, opt. 64 byte unique id (if extended payload is requested))
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available no no

CONF_UPNP_TCP_FWD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b5aindex of the remote device (1...4); local device: 0nono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetserviceConfigures port forwarding in a upnp device that support the WANIPConnection:1 service. Input 64 bytes: address of the WANIPConnection:1 service in the router (returned by CONF_UPNP_SEARCH_IP_CONN_SERVICE).
CPP6/CPP7/CPP7.3CPP13
Available no no

CONF_ACCESS_OPTION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c7fNonenono
 DatatypeAccess LevelDescription
Readt_octetalwaysRead the current access options. 0=normal access, Bit1: camera is in 'force initial password' mode. I.e. before further usage an initial service password must be set.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
MaskName
Bit 00x01Force Initial Password
Combined Values
MaskName
0x00Normal Access

CONF_ADV_USER_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bd9Nonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
Max number of users
4 Bytes
Max user name length
4 Bytes
Max password length
4 Bytes
Password user support
1 Byte
Certificate user support
1 Byte
824

Max number of users

In addition to the standard users 'user', 'service', 'live'

Password user support

no0
Yes1

Certificate user support

no0
yes1

CONF_ADV_USER_SETTINGS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bdaNonenono
 DatatypeAccess LevelDescription
Readp_octetlive
Writep_octetno_pwd
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Command CONF_ADV_USER_SETTINGS allows to query or configure user entries for camera access control. User entries are indentified by the user name, the user name of each entry must be unique. Supported lengths, types and restrictions can be queried using CONF_ADV_USER_SETTINGS_OPTIONS.
In read direction only the user name is used to find the user entry to query the user configuration.
In write direction an already existing user with the same name is modified or a new user with the given configuration is created.

Payload Structure

User Entry

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: User Entry

The payload of tag user entry contains further tagged values described below.
1632
Length = 0x0004
2 Bytes
Tag = 0x0000
2 Bytes
824

Tag 1: User Name (Required)

Name of the user in ascii chars, no zero termination
1632
Length
2 Bytes
Tag = 0x0001
2 Bytes
User Name (p_string)
Length - 4 Bytes
824

Tag 2: User Type

1632
Length = 0x0008
2 Bytes
Tag = 0x0002
2 Bytes
User Type (t_dword)
4 Bytes
824
The payload of tag user type contains the user type, possible values are:
Deleted0
Password1
Certificate2
Temporary with password3
Cloud4(read only)

The following rules apply to a user entry:

Tag 3: User Group

1632
Length = 0x0008
2 Bytes
Tag = 0x0003
2 Bytes
User Group (t_dword)
4 Bytes
824
Numeric unique ID of the user group the user should belong to:
Reserved do not use0
Live1
User2
Service3
IVA6

Tag 4: Password

The payload of tag user password contains the user password.
This field is only mandatory when configuring a user of type Password and will be empty when read if there is no password or just '********' when a password is set.
1632
Length
2 Bytes
Tag = 0x0004
2 Bytes
Password (p_string)
Length - 4 Bytes
824

Tag 5: Expires In Seconds

The 'Expires' tag indicates the life time of the user in seconds. So if the user should life for 1 hour pass the value 3600 here.
The field is mandatory when you create a user of type 'Temporary with password' (3). For all other types this field should not be present or have the payload 0.
On read, this field will indicate the remaining time in seconds until the user will expire.
1632
Length = 0x0008
2 Bytes
Tag = 0x0005
2 Bytes
Expires In Seconds (t_dword)
4 Bytes
824

CONF_ADV_USER_SETTINGS_LIST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bdcNonenono
 DatatypeAccess LevelDescription
Readp_octetliveReturns a list of tagged values(User Entries).
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

User Entry [0]
...
User Entry [N]

The payload of this command consists of a list of 'User Entry' items of the command CONF_ADV_USER_SETTINGS.

CONF_ENABLE_MASTERPWD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c6dNonenono
 DatatypeAccess LevelDescription
Readf_flagminimalShows the password reset mechanism enable status
Writef_flagserviceSets the password reset mechanism enable status, disable it, if you don't want Bosch support to be able to reset the passwords of your camera.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
disable0
enable1

CONF_MASTERPWD_CHALLENGE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x013fNonenono
 DatatypeAccess LevelDescription
Readp_stringalwaysGenerates an password challenge which has to be passed to the operator for password reset
Writep_stringalwaysProvide the generated unlock key from operator to reset passwords. The key has to be in hex string repesentation without 0x in front.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_MASTERPWD_CHALLENGE_STATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c21Nonenono
 DatatypeAccess LevelDescription
Readp_octetalwaysRetrieves status information about the masterpwd challenge (4 bytes validity in seconds, 4 bytes lock state)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_PASSWORD_SETTINGS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x028bpassword levelnono
 DatatypeAccess LevelDescription
Readp_stringalways_legacyGet the unit password (scrambled). num parameter sets the password levels; 1=user, 2=service, 3=live
Writep_stringno_pwdSet the unit password. num parameter sets the password levels; 1=user, 2=service, 3=live; Notice: only standard ASCII characters allowed!
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_USER_AUTH_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0be3Nonenono
 DatatypeAccess LevelDescription
Readp_octetlive
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Command CONF_USER_AUTH_MODE allows to query or enable/disable user authentication modes.

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: Auth Modes

tag specifying the encoding and meaning of the value
1632
Length = 0x0008
2 Bytes
Tag = 0x0000
2 Bytes
Auth Modes (t_dword)
4 Bytes
824
MaskName
Bit 20x00000004Active Directory (ADFS) Auth
Bit 10x00000002Certificate Auth
Bit 00x00000001Password Auth

CONF_CAMERA_LENS_CURVE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0be6video linenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

The command allows to query the lens transfer function of the camera. This command is not supported for all cameras. In the case of CONF_DEVICE_CAPABILITIES -> PTZ_ON_CLIENT_TAG = TRUE A lens curve must be present.
Coordinate System [Picture]h (x = 0,y = 0) ------------------------------------ (x = 0, y = 32768) ... ... (x = 16384, y = 16384) ... (x = 0,y = 32768) ------------------------------------ (x = 32768,y = 32768)

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: Optical Center

Defines the horizontal and vertical position of the optical axis of the lens within the sensor plane (full viewed image) in the normalized coordinate system defined in the previous description. This will be called optical center below.
An offset of (16384; 16384) therefore means that the optical center of the circular projection is horizontally and vertically centered in the sensor image (should be the normal case).
1632
Length
2 Bytes
Tag = 0x0000
2 Bytes
Optical Center (p_string)
Length - 4 Bytes
824

Format of Payload String

x;y
Max. Length in StringLimitsDescription
x5 [0,32768] Specify the x position of the optical center
y5 [0,32768] Specify the y position of the optical center

Example

x;y = "16384;16384"
-> x = 16384, y = 16384 -> lens is centered

Tag 1: Lens transfer function

The lens curve is assumed to be rotation symmetric.
Specifices a tuple for a set of points (radius on the sensor, the same coordinate system is used as before and a angle of incidence relativ to the optical axis).
Optimal interpolation between the points can be achived with natural splines.
For a radius bigger than the last point the behavoiur of the lens is undefined (should be masked out in black on the client)
1632
Length
2 Bytes
Tag = 0x0001
2 Bytes
Lens transfer function (p_string)
Length - 4 Bytes
824

Format of Payload String

radius[0];angle[0];radius[1];angle[1]
Max. Length in StringLimitsDescription
radius5Specify the radius in the previous defined normalized coordinate system
angle3.6Specify the angle in degrees

Example

lens transfer function = "7189;20.469667;13815;40.049053;17223;50.729707;20151;60.518720;21646;65.859047"
-> p[0] = (radius = 7189, angle of incidence = 20.469667°)
-> p[1] = (radius = 13815, angle of incidence = 40.049053°)
-> p[2] = (radius = 17223, angle of incidence = 50.729707°)
-> p[3] = (radius = 20151, angle of incidence = 60.518720°)
-> p[4] = (radius = 21646, angle of incidence = 65.859047°)

CONF_INPUT_SOURCE_VAL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0086video linenono
 DatatypeAccess LevelDescription
Readt_octetminimal1: camera; 2: vcr; 3: color_plane; 4: auto
Writet_octetservice1: camera; 2: vcr; 3: color_plane; 4: auto
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NBR_OF_VIDEO_IN

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x01d6Nonenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReturns the number of installed video inputs
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_PRIV_MASK_DOME_PTZ_POS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c48video linenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: Privacy mask dome PTZ

1632
Length = 0x0010
2 Bytes
Tag = 0x0000
2 Bytes
Privacy mask dome PTZ (p_octet)
12 Bytes
...
...
824

Privacy mask dome PTZ

1632
Command
1 Byte
Mask ID
1 Byte
Reserved
1 Byte
Reserved
1 Byte
Reserved
1 Byte
Reserved
1 Byte
Reserved
1 Byte
Reserved
1 Byte
824

Command

Move To Defined Position0Move dome to position stored at maskId

Mask ID

Define mask ID which is used in conjunction with the command. Use CONF_PRIV_MSK_OPTIONS to query number of supported masks. (CONF_PRIV_MSK_OPTIONS / Max Number Of Priv Masks Per Line).

CONF_PRIV_MSK

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ab7video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalLegacy command please use CONF_PRIV_MSK_POLY
Writep_octetserviceLegacy command please use CONF_PRIV_MSK_POLY
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_PRIV_MSK_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bd7video linenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
Color Support
1 Byte
Rectangle Support
1 Byte
Polygon Support
1 Byte
Max Number Of Polygon Vertices
1 Byte
Max Number Of Priv Masks Per Line
1 Byte
Only Legacy Cmd Support
1 Byte
Only Legacy Dome Cmd Support Via Bicom
1 Byte
Dome rcp priv mask support
1 Byte
Dome zoom threshold support
1 Byte
Number Of Priv Masks Lines
1 Byte
Dome Priv Mask Enlargement Support
1 Byte
IVA Behind Priv Mask Support
1 Byte
Supported feature bits
1 Byte
Reserved
3 Bytes
824

Color Support

Definition of color via (R,G,B) is supported
No0
Yes1

Rectangle Support

No0
Yes1

Polygon Support

No0
Yes1May not be self intersecting

Max Number Of Polygon Vertices

Maximum points for polygon definition

Max Number Of Priv Masks Per Line

Maximum Number Of Priv Masks Per Line

Only Legacy Cmd Support

No0
Yes1

Only Legacy Dome Cmd Support Via Bicom

No0
Yes1

Dome rcp priv mask support

No0
Yes1

Dome zoom threshold support

No0
Yes1

Dome Priv Mask Enlargement Support

No0
Yes1

IVA Behind Priv Mask Support

No0
Yes1

Supported feature bits

MaskName
Bit 20x04Pixelized
Bit 10x02Privacy Mask Off
Bit 00x01Auto Color Mode

CONF_PRIV_MSK_POLY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bd8video linenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: Color Id

Configure the priv mask color only supported if CONF_PRIV_MSK_OPTIONS allows the color configuration
1632
Length = 0x0008
2 Bytes
Tag = 0x0000
2 Bytes
Color Id (p_octet)
4 Bytes
824

Color Id

1632
Color Mode
1 Byte
Red
1 Byte
Green
1 Byte
Blue
1 Byte
824

Color Mode

RGB0Red, Green, Blue values are used.
Auto Color Mode1Privacy mask color is auto selected from the surrounding. Red, Green, Blue values are ignored (use CONF_PRIV_MSK_OPTIONS to query support)
Off2Use CONF_PRIV_MSK_OPTIONS to query support.
Pixelized3Use CONF_PRIV_MSK_OPTIONS to query support.

Red

Value0 - 255

Green

Value0 - 255

Blue

Value0 - 255

Tag 1: Polygon (fixed camera) description id

Configure up to n polygons query n via CONF_PRIV_MSK_OPTIONS.
CONF_PRIV_MSK_OPTIONS also defines if only rectangles are supported then only rectangles are allow to be send with this command.
Currently only a block configuration is supported all polygons are send at once.
Currently only non self intersecting polygons are supported refer to CONF_PRIV_MSK_OPTIONS.
1632
Length
2 Bytes
Tag = 0x0001
2 Bytes
Polygon (fixed camera) description id (p_octet)
Length - 4 Bytes
824

Polygon (fixed camera) description id

1632
Enable
1 Byte
Id
1 Byte
Number Of Vertices
1 Byte
Reserved
1 Byte
Reserved
4 Bytes
Vertex [0]
(see description)
...
Vertex [Number Of Vertices - 1]
(see description)
824

Enable

Disabled0Privacy mask is not shown.
Enabled1Privacy mask is shown.

Id

Mask number in range [0... max number privacy masks] (defined via CONF_PRIV_MSK_OPTIONS)

Number Of Vertices

Number of points for this polygon, must be in range [0... max number points] (defined via CONF_PRIV_MSK_OPTIONS)

Vertex

Definition of the coordinate system for privacy masking (stick to sei information)
Upper left edge : (0,0)
Upper right edge: (32768,0)
Lower left edge : (0,32768)
Lower right edge: (32768,32768)
1632
X
2 Bytes
Y
2 Bytes
824

X

X Coordinate0 - 32678

Y

Y Coordinate0 - 32678

Tag 2: Polygon Config @ moving camera

use CONF_PRIV_MSK_OPTIONS to query if supported ( CONF_PRIV_MSK_OPTIONS: Byte[7] rcp priv mask support @ dome ): 2
Configure up to n polygons, query n via CONF_PRIV_MSK_OPTIONS.
CONF_PRIV_MSK_OPTIONS also defines if only rectangles are supported then only rectangles are allow to be send with this command.
Only one polygon is allowed to be send at once. Current dome position is automatically associated with the polygon
Currently only convex polygons are supported refer to CONF_PRIV_MSK_OPTIONS.
Use CONF_PRIV_MSK_OPTIONS to query if supported ( CONF_PRIV_MSK_OPTIONS: Byte[7] rcp priv mask support @ dome )
1632
Length
2 Bytes
Tag = 0x0002
2 Bytes
Polygon Config @ moving camera (p_octet)
Length - 4 Bytes
824

Polygon Config @ moving camera

1632
Enable
1 Byte
Id
1 Byte
Number Of Vertices
1 Byte
Zoom Threshold
1 Byte
Reserved
4 Bytes
Vertex [0]
(see description)
...
Vertex [Number Of Vertices - 1]
(see description)
824

Enable

Disabled0Privacy mask is not shown.
Enabled1Privacy mask is shown.

Id

Mask number in range [0... max number privacy masks] (defined via CONF_PRIV_MSK_OPTIONS)

Number Of Vertices

Number of points for this polygon, must be in range [0... max number points] (defined via CONF_PRIV_MSK_OPTIONS)

Zoom Threshold

Availability defined via CONF_PRIV_MSK_OPTIONS
Disabled0
Enabled1

Vertex

Definition of the coordinate system for privacy masking (stick to sei information)
Upper left edge : (0,0)
Upper right edge: (32768,0)
Lower left edge : (0,32768)
Lower right edge: (32768,32768)
1632
X
2 Bytes
Y
2 Bytes
824

X

X Coordinate0 - 32678

Y

Y Coordinate0 - 32678

Tag 3: Global Options @ moving camera

Global priv mask options at dome
Use CONF_PRIV_MSK_OPTIONS to query if supported ( CONF_PRIV_MSK_OPTIONS: Byte[7] rcp priv mask support @ dome )
1632
Length = 0x000c
2 Bytes
Tag = 0x0003
2 Bytes
Global Options @ moving camera (p_octet)
8 Bytes
...
824

Global Options @ moving camera

1632
Disable masks
1 Byte
IVA Behind Mask
1 Byte
Priv Mask Enlargement
1 Byte
Reserved
1 Byte
Reserved
4 Bytes
824

Disable masks

Disable all privacy masks

IVA Behind Mask

Enable IVA behind privacy masks

Priv Mask Enlargement

Automatically enlarge priv masks while moving

Tag 4: Dome position

Defines on moving cameras the view for a certain priv mask. Only for internal use! Automatically generated when a polygon is written on a dome.
1632
Length = 0x001c
2 Bytes
Tag = 0x0004
2 Bytes
Dome position (p_octet)
24 Bytes
...
...
...
...
...
824

Dome position

1632
enable
1 Byte
id
1 Byte
Reserved
2 Bytes
panPosition
4 Bytes
tiltPosition
4 Bytes
zoomPosition
4 Bytes
reserved
4 Bytes
824


CONF_RAW_IMAGE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c98video linenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Request Payload Structure

1632
Requested Format
2 Bytes
Selected Scaler
2 Bytes
824

Requested Format

Raw YUV0x0000(default)
TIFF encoded raw0x0001(default)

Selected Scaler

VCS Scaler0x0001(default)

Response Payload Structure


Payload for 'Requested Format' = 'Raw YUV' (0x0000)

1632
Image Width
4 Bytes
Image Height
4 Bytes
YUV Format
4 Bytes
824

Image Width

Image Height

YUV Format

Planar4201420 planar, YYYY...UUUU...VVVV
Chroma420-1420 chroma interleaved, YYYY....UVUVUV
Planar4222422 planar, YYYY...UUUU...VVVV
Chroma422-2422 chroma interleaved, YYYY....UVUVUV

CONF_STATIC_PRIV_MSK_OVERLAY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cd3video linenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value without length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: Cross hair

1632
Tag = 0x0000
2 Bytes
Length
2 Bytes
Cross hair (p_octet)
Length Bytes
824

Cross hair

1632
Enable
1 Byte
Reserved
1 Byte
Reserved
1 Byte
Reserved
1 Byte
Reserved
1 Byte
Reserved
1 Byte
Reserved
1 Byte
Reserved
1 Byte
824

Enable

OFF0
On1

CONF_STATIC_PRIV_MSK_OVERLAY_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cd9video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalByte[0] 0: cross hair not supported / 1: basic support of cross hair ; Byte[1-15] reserved;
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VCA_MASK_DOME_PTZ_POS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c70video linenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetiva
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: vca mask dome ptz

1632
Length
2 Bytes
Tag = 0x0000
2 Bytes
vca mask dome ptz (p_octet)
Length - 4 Bytes
824

vca mask dome ptz

1632
Command
1 Byte
Mask Id
1 Byte
Reserved...
6 Bytes
Reserved
...
824

Command

MoveDomeToDefinedPos0Move dome to position stored at maskId

Mask Id

Use CONF_VCA_MSK_OPTIONS to query number of supported masks (@CONF_VCA_MSK_OPTIONS Byte[4] maxNrOfVcaMasks per line). Define maskID which is used in conjunction with the command

CONF_VCA_MSK_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c6fNonenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
reserved
1 Byte
Rectangle Support
1 Byte
Polygon Support
1 Byte
Max Number Of Polygon Vertices
1 Byte
Max Number Of Priv Masks Per Line
1 Byte
reserved
1 Byte
reserved
1 Byte
rcp vca mask support @ dome
1 Byte
reserved
1 Byte
reserved
1 Byte
reserved
1 Byte
reserved
1 Byte
reserved
1 Byte
reserved
1 Byte
reserved
1 Byte
reserved
1 Byte
824

Rectangle Support

No0
Yes1

Polygon Support

No0
Yes1May not be self intersecting

Max Number Of Polygon Vertices

Maximum points for polygon definition

Max Number Of Priv Masks Per Line

Maximum Number Of VCA Masks Per Line

rcp vca mask support @ dome

No0
Yes1

CONF_VCA_MSK_POLY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c6evideo linenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetivaConfigure polygon VCA mask (aka 'virtual mask')
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 2: Polygon description

1632
Length
2 Bytes
Tag = 0x0002
2 Bytes
Polygon description (p_octet)
Length - 4 Bytes
824

Polygon description

1632
Enable
1 Byte
Id
1 Byte
Number Of Vertices
1 Byte
Reserved...
5 Bytes
Reserved
...
Vertex [0]
(see description)
...
Vertex [Number Of Vertices - 1]
(see description)
824

Enable

Inactive0vca mask is not active
Active1vca mask is active

Id

0... max number vca masks (defined via CONF_VCA_MSK_OPTIONS)

Number Of Vertices

0... max number points (defined via CONF_VCA_MSK_OPTIONS)

Vertex

1632
X
2 Bytes
Y
2 Bytes
824

X

X Coordinate0 - 32678

Y

Y Coordinate0 - 32678

Coordinate system for vca masking:
Upper left edge : (0,0)
Lower right edge: (32768,32768)

Tag 3: Global vca mask options at dome

1632
Length
2 Bytes
Tag = 0x0003
2 Bytes
Global vca mask options at dome (p_octet)
Length - 4 Bytes
824

Global vca mask options at dome

1632
Disable Masks
1 Byte
Reserved...
7 Bytes
Reserved
...
824
Use CONF_VCA_MSK_OPTIONS to query if supported ( Byte[7] rcp vca mask support @ dome )

Disable Masks

Do not change0
Disable Masks1

CONF_VID_IN_BRIGHTNESS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x092avideo linenono
 DatatypeAccess LevelDescription
Readt_octetminimalGets the brightness value (0-255)
Writet_octetserviceSets the brightness value (0-255)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VID_IN_CONTRAST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x092bvideo linenono
 DatatypeAccess LevelDescription
Readt_octetminimalGets the contrast value (0-255)
Writet_octetserviceSets the contrast value (0-255)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VID_IN_SATURATION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x092cvideo linenono
 DatatypeAccess LevelDescription
Readt_octetminimalGets the saturation value (0-255)
Writet_octetserviceSets the saturation value (0-255)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIDEO_INPUT_DESCRIPTION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c78video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalByte[0] 0: optical video, 1: thermal video; reserved Bytes[1-15]
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIDEO_INPUT_FORMAT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0504video linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalObsolete to be removed
Writet_dwordserviceObsolete to be removed
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIDEO_INPUT_FORMAT_EX

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b10video linenono
 DatatypeAccess LevelDescription
Readp_octetalways_legacy
Writep_octetservice
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
Video Format Mode
1 Byte
Video Format Id
1 Byte
Video Format Image Orientation
1 Byte
Reserved
1 Byte
Rotation Low Byte
1 Byte
Rotation High Byte
1 Byte
Rotation Mode
1 Byte
Reserved
1 Byte
Reserved
1 Byte
Reserved
1 Byte
Reserved
1 Byte
Reserved
1 Byte
Reserved
1 Byte
Reserved
1 Byte
Reserved
1 Byte
Reserved
1 Byte
824

Video Format Mode

Use CONF_VIDEO_INPUT_FORMAT_EX_VERBOSE to query valid options:
Fixed0
Autodetect1Signals during read if device is in auto state -> 1 device is in auto mode; active id will be shown in Video Format Id
1 = Autodetect can be set if CONF_VIDEO_INPUT_FORMAT_EX_VERBOSE includes id = 0

Video Format Id

Valid ids can be queried with CONF_VIDEO_INPUT_FORMAT_EX_VERBOSE

Video Format Image Orientation

rotate 0° no mirror0
rotate 0° mirror1
rotate 90° no mirror2
rotate 90° mirror3
rotate 180° no mirror4
rotate 180° mirror5
rotate 270° no mirror6
rotate 270° mirror7

Rotation Low Byte

Low byte of 2 bytes rotation angle 0 -> 0xFFFF

Rotation High Byte

High byte of 2 bytes rotation angle 0 -> 0xFFFF

Rotation Mode

Standard0
Crop1
Zoom2

CONF_VIDEO_INPUT_FORMAT_EX_OPTIONS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b9bvideo linenono
 DatatypeAccess LevelDescription
Readp_octetminimalObsolete to be removed
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIDEO_INPUT_FORMAT_EX_VERBOSE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bfbvideo linenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

Tag-Structure [0]
...
Tag-Structure [N]

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0: Basic verbose of CONF_VIDEO_INPUT_FORMAT_EX

(must always be present)
1632
Length
2 Bytes
Tag = 0x0000
2 Bytes
Basic verbose of CONF_VIDEO_INPUT_FORMAT_EX (p_octet)
Length - 4 Bytes
824

Basic verbose of CONF_VIDEO_INPUT_FORMAT_EX

1632
Id
1 Byte
Flags
1 Byte
Rotation Options
1 Byte
Reserved
1 Byte
Width
4 Bytes
Height
4 Bytes
Framerate In mHz
4 Bytes
Min Framerate In mHz (optional)
4 Bytes
824

Id

Auto Mode Available0special id to signal availability of auto mode
ID1 - 255All available ids can be set via CONF_VIDEO_INPUT_FORMAT_EX defines (Video Format Id Byte [2])

Flags

MaskNameDescription
Bit 40x10CustomRotationSupportDefines if custom rotation is supported (rotation low and heigh byte in CONF_VIDEO_INPUT_FORMAT_EX)
Bit 00x01CroppedIf the crop is set, the view will be changed when switching between different resolutions takes place.
Combined Values
MaskNameDescription
0x0Enr of HDR exposure
nr of HDR exposure-1 0-> 1 exposure,1-> 2 exposure ...

Rotation Options

MaskName
Bit 70x80rotate 270° mirror
Bit 60x40rotate 270° no mirror
Bit 50x20rotate 180° mirror
Bit 40x10rotate 180° no mirror
Bit 30x08rotate 90° mirror
Bit 20x04rotate 90° no mirror
Bit 10x02rotate 0° mirror
Bit 00x01rotate 0° no mirror

Width

Maximum available picture width for encoding

Height

Maximum available picture height for encoding

Framerate In mHz

Maximum available framerate for encoding

Min Framerate In mHz (optional)

Minimum available framerate for encoding

Example

Rotation Options = 0x44
-> bit 2 and bit 6 are available (of bit 0...7)
-> rotate 90° no mirror = 2 and rotate 270° no mirror = 6 are supported

CONF_VIDEO_LINE_DEWARPING_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bf6video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalGets the dewarping mode of a virtual line. octet[0] is the selected id. If the request is applied to a physical line, the value 0 is returned. (Do not check the length of the command in the future may additional tags will be added). If only the first Byte is set for addition parameters defaults will be used. See CONF_VIDEO_LINE_DEWARPING_MODE_CAPS for possible values.
Writep_octetminimalSets the dewarping mode of a virtual line octet[0] sets the selected id. (Do not check the length of the command in the future may additional tags will be added). If only the first Byte is set for addition parameters defaults will be used. See CONF_VIDEO_LINE_DEWARPING_MODE_CAPS for possible values.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIDEO_LINE_DEWARPING_MODE_CAPS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bf7video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalReturns a list of possible dewarping modes of a virtual line. Each mode is a 8 bit value: 0: no dewarping, 1: virtual PTZ, 2: quad view, 3: panoramic, 4: double panoramic, 5: corridor, 6: full panoramic
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIDEO_LINE_DUO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ca9video linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalDuo line support (0=off, 1=on), use CONF_DEVICE_CAPABILITIES tag 41 to detect support
Writet_dwordserviceDuo line support (0=off, 1=on), use CONF_DEVICE_CAPABILITIES tag 41 to detect support
CPP6/CPP7/CPP7.3CPP13
Available no yes

CONF_VIDEO_TERMINATION_RESISTOR_OFF

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0275video linenono
 DatatypeAccess LevelDescription
Readf_flagminimalState of the analog video termination resistor (75 Ohms on/off)
Writef_flagserviceSwitch the analog video termination resistor (75 Ohms on/off),
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
enabled175 Ohms on
disabled075 Ohms off

CONF_VIDEO_TERMINATION_RESISTOR_ON

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0274video linenono
 DatatypeAccess LevelDescription
Readf_flagminimalState of the analog video termination resistor (75 Ohms on/off)
Writef_flagserviceSwitch the analog video termination resistor (75 Ohms on/off),
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Values:
enabled175 Ohms on
disabled075 Ohms off

CONF_VIN_BASE_FRAMERATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ad6video linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalObsolete use CONF_VIDEO_INPUT_FORMAT_EX_VERBOSE
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIRTUAL_LINES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bf4Nonenono
 DatatypeAccess LevelDescription
Readp_octetalways_legacy
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

The command returns which video input lines are virtual and which is the assiciated physical line. A physical line has it's own video signal - that's the usual case. A virtual line is derived from a physical line and supports only a subset of the RCP commands compared to a physical line. Some commands only make sense on physical line (e.g. brightness, contrast, ...). Those fail on virtual lines and must be applied on the associated physcial line instead. The required information can be read out using this command. Virtual lines are introduced to provide a second view on an existing physical line. This is useful e.g. to have a dewarped image on a 180 or 360 degree camera. Furthermore each virtual line has its own video analysis meta data stream (a.k.a. "VCD stream") which is also derived from the image on the physical line but already preprocessed (cropped, dewarped, ...) to fit the view on the virtual line.

Payload Structure

1632
No. of Entries
2 Bytes
Length per entry
2 Bytes
Entry [0]
(see description)
...
Entry [N]
(see description)
824

No. of Entries

The number of virtual line descriptions.

Length per entry

The number of bytes per line description. This value is currently 4 but may be increased later when more information per entry must be provided. New fields will be appended to the entry and should be ignored by the client when unknown.

Entry

1632
No. of virtual line
2 Bytes
No. of physical Line
2 Bytes
824

No. of virtual line

The number of the line which is a virtual line. Counting starts as usual from 1. Every video input line is either a physical line (default) or a virtual line. All lines listed here are virtual lines.

No. of physical Line

The number of the physcial line which is associated to the named virtual line in the previous field. This line must be addressed for RCP commands that fail on the virtual line.

CONF_ACTIVE_VIPROC_CONFIG

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a3fvideo linenono
 DatatypeAccess LevelDescription
Readt_dwordalways_legacyReturns the config id activated by bool engine.
Writet_dwordivaSets the specified config ID as active. The command has only an effect, if the VIPROC_MODE is set to SCRIPT mode (0xff). this command is not available on a gen4 dome.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ALARM_OVERVIEW

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c38video lineyesno
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Messages are sent if a change has happened (event, state change, alarm added, alarm deleted). The readout command contains all registered alarm entries.

Payload Structure

1632
Flags
1 Byte
Reserved
1 Byte
Number of alarm entries
2 Bytes
Alarm Entry [0]
(see description)
...
Alarm Entry [Number of alarm entries - 1]
(see description)
824

Flags

MaskNameDescription
Bit 70x80All entries included(read out)

Alarm Entry

1632
Entry ID
2 Bytes
Entry Length
2 Bytes
Flags
1 Byte
Reserved
1 Byte
Alarm Source
1 Byte
Alarm Type
1 Byte
Alarm Name (p_unicode)
Entry Length - 8 Bytes
824

Entry ID

Unique ID for each entry. May be reassigned to entry if entry is deleted.

Entry Length

Length of the entry payload, inclusive header.

Flags

MaskNameDescription
Bit 70x80Add FlagAlarm Entry has been registered
Bit 60x40Delete FlagAlarm Entry has been unregistered
Bit 50x20State FlagAlarm Entry is a state
Bit 40x10State Set FlagAlarm Entry State is set (states only)

Alarm Source

Values:
Unknown0
Relais2
Digital Input3
Audio4
Virtual Input5
Tamper6
Motion7
Flow8
Intelligent Video Analytics9
Fire10
Man Over Board11

Alarm Type

Values:
Unknown0
VCA1
Relais2
Digital Input3
Audio4
Virtual Input5
Default Task16
Global Change17
Signal too bright18
Signal too dark19
Signal too noisy20
Signal too blurry21
Signal loss22
Reference Image Check Failed23
Invalid Configuration24
Flame Detected25
Smoke Detected26
Object in field32
Crossing line33
Loitering34
Condition change35
Following route36
Tampering37
Removed object38
Idle object39
Entering field40
Leaving field41
Similarity search42
Crowd detection43
Flow in field44
Counter flow in field45
Motion in field46
Man over board47
Counter48
BEV People Counter49
Occupacy50

Alarm Name

String encoded in unicode.

CONF_BEST_FACE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b6evideo linenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetiva
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Allows the upload of detected faces to an ftp server or drop box account.

Payload Structure

1632
enable
1 Byte
reserved
1 Byte
accountId
1 Byte
pictureFormat
1 Byte
targetObjectWidth
4 Bytes
time out
1 Byte
reserved...
11 Bytes
reserved
...
reserved
...
824

enable

best face is disabled0
best face is enabled1

accountId

Select account which is used as target for the detected faces for detailed information’s see CONF_ACCOUNT_SETTINGS

pictureFormat

Select file format:
Jpeg0
YUV4201
Uncompressed tiff2

targetObjectWidth

Configure maximum face width in pixel 0 means auto no scaling is necessary delivers best performance

time out

Time out in seconds. If the time out is set to 0 the best face of the tracking process will be posted when the face has left the scene.
Defines a timeout for the maximum delay which is introduced till a face is posted. After a face is posted the tracking is restarted.
Example:
Face is in scene for 50 sec t = [0s,50s]
timeout is configured to 10 s
best face of [0s,10s] is posted
best face of [10s,20s] is posted
best face of [20s,30s] is posted
best face of [30s,40s] is posted
best face of [40s,50s] is posted

CONF_CONT_VIPROC_CONFIG_EDITING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a3avideo linenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writet_dwordivaConfiguration of a config stops automatically after 20 seconds. This command can be used to keep configuration active for another 20 seconds. If the specified config is currently not in configuration mode, the command replys with an error.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_ENABLE_VCA

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0813video linenono
 DatatypeAccess LevelDescription
Readf_flagminimalThis command is used to configure the dome. Note that we write the information in the second bit of ptz_controller_available.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_FIRE_ALARM

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c58video linenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

Read the current state of each single fire alarm.

Payload Structure

1632
Alarm Flags
1 Byte
Reserved
3 Bytes
824

Alarm Flags

These bits can be combined by using the bitwise or-operator.
Values:
MaskNameDescription
Bit 30x08GeneralFire trouble: General issue
Bit 20x04IlluminationFire trouble: Ilumination out of range
Bit 10x02Smoke AlarmSmoke detected
Bit 00x01Flame AlarmFlame detected

Reserved

Reserved bits, must be zero.

CONF_GETPROFILE_ALGO_PRESET_NAME_LIST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c6cvideo linenono
 DatatypeAccess LevelDescription
Readp_octetuser
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command returns a list of VCA profile specific information. These information contains the VCA algorithm type, the associated dome preset (if existent otherwise zero) and the profile name.

Payload Structure

1632
Num Profiles
1 Byte
Reserved
1 Byte
Profile [0]
(see description)
...
Profile [Num Profiles - 1]
(see description)
824

Num Profiles

Reserved

Profile

1632
Algorithm Type
2 Bytes
Preset
2 Bytes
Profile Name (p_unicode)...
32 Bytes
Profile Name
[...]
Profile Name
...
824

Algorithm Type

MaskNameDescription
Bit 20x0004Block BasedBlock Based VCA (Motion)
Bit 10x0002Flow Based
Bit 00x0001Object BasedObject Based VCA (IVA, EVA)

CONF_IVA_COUNTER_VALUES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b4avideo lineyesno
 DatatypeAccess LevelDescription
Readp_octetminimal
Writep_octetivaReset all counters
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command, which is at the same time a message, is used to retrieve the list of configured counters with the their current values. The output has the following structure: Initially the number of configured counters is set. Afterwards for each counter the data consisting of counter id, counter type, counter name in unicode and counter value is provided.

Payload Structure

Number of Counters
1 Byte
Counter Data [0] ...
(see description)
Counter Data [0]
(see description)
...
Counter Data [N]
(see description)

Number of Counters

This values gives the number of counters available in the payload. In the subsequent the data of each counter are sequentially provided.

Counter Data

1632
Id
1 Byte
Type
1 Byte
Name...
64 Bytes
Name
[...]
Name
...
Name
...
Value...
4 Bytes
Value
...
824

Id

Each counter has a unique id.

Type

Not supported yet.

Name

A unique name can be assigned to a counter, which is stored in unicode (maximum: 32 characters).

Value

The current counter value (DWORD).

CONF_LIST_OF_VIPROC_SCENES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a41video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalThis command works only for Gen4 autodomes. It returns the list of defined scenes together with their names. Thereby the first byte specifies the scene number, followed by the length L of the scene name. The next L bytes belong to the scene name in unicode without 0 termination. This structure repeats until either the payload ends or the scene number is zero.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_LOADED_VIPROC_CONFIG

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a3dvideo linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReturns the currently loaded config id.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_NUMBER_OF_VIPROC_CONFIGS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a3cvideo linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReturns the number of configurations for the specified line.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_PTZ_CONTROLLER_AVAILABLE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a51Nonenono
 DatatypeAccess LevelDescription
Readf_flagalways_legacyReturns true if for the specified line a ptz controller is available which can be used by the VCA module.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_REFERENCE_IMAGE_CHECK_INFO_MESSAGE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b42video lineyesno
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

2040
Flags
1 Byte
Correlation
1 Byte
Threshold
1 Byte
SecondsToAlarm
2 Bytes
1030

Flags

If no info available may have one of the following reason: reference image check was not enabled or reference image has not enough contours to perform reference image check
Values:
MaskName
Bit 70x80CheckFailed
Bit 60x40NoInfoAvailable

Correlation

Current correlation value between recent image and reference image

Threshold

Threshold value

SecondsToAlarm

Seconds until alarm is triggered

CONF_RULE_ENGINE_ID

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b94video linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReads the version id of the rule engine
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_SENSITIVITY_OBJECT_BASED_VCA

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b31video linenono
 DatatypeAccess LevelDescription
Readt_octetminimalReads the sensitivity of the object based VCA algorithm (of active config profile), if not an object based VCA algorithm is running the command returns with an error
Writet_octetivaSets the sensitivity of the object based VCA algorithm in the active config profile, if not an object based VCA algorithm is running the command returns with an error
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_START_VIPROC_CONFIG_EDITING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a38video linenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writet_dwordivaMoves to the dome to the scene corresponding to the specified config and freezes the dome there. If already a config is in configuration mode, this command returns with an error. All subsequent viproc commands are related to this configuration. This command works also for non-dome devices. There it won't try to move the dome to the corresponding scene.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_STOP_VIPROC_CONFIG_EDITING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a39video linenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writet_dwordivaStops editing of the specified config (see CONF_START_VIPROC_CONFIG_EDITING). If the specified scene does not match the currently edited config, a dword with value 0 is returned.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_TRANSPARENT_DATA_OVER_IP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0af2video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalCheck availability in device capabilities, set IP-address and port to accept transparent data, first, 4 bytes define the IP-address (0 represents off) and second, two bytes are the defined port
Writep_octetivaCheck availability in device capabilities, set IP-address and port to accept transparent data, first, 4 bytes define the IP-address (0 represents off) and second, two bytes are the defined port
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VCA_BRIGHTNESS_INFO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c25video lineyesno
 DatatypeAccess LevelDescription
Readt_octetminimalLuminance (1..255), the value 0 means N/A
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VCA_ORIENTATION_INFO

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cf4video lineyesno
 DatatypeAccess LevelDescription
Readt_dwordminimalReads the current difference in the orientation of the camera. The difference is an angle in units of 2*pi/2^32.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VCA_OUTPUT_FORMAT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ca7video linenono
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Payload Structure

1632
Image Width
4 Bytes
Image Height
4 Bytes
824

CONF_VCA_SUGGESTED_FIREMASK

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c31video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalGet suggested fire mask from algorithm (payload beyond the scopr of this document)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VCA_TASK_RUNNING_STATE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a96video lineyesno
 DatatypeAccess LevelDescription
Readf_flagminimalReturs the current processing state of the VCA engine; TRUE when vca engine is running with no problems; FALSE if vca engine lack cpu performance
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VCD_OPERATOR_PARAMS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a1bvideo lineyesno
 DatatypeAccess LevelDescription
Readp_octetminimalRead parametrization of vcd operator which corresponds to line <num>
Writep_octetivaConfigures the vcd manager. if configuration fails an error is returned.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_ALARM

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0807video lineyesno
 DatatypeAccess LevelDescription
Readp_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

The message is sent whenever any of the bit values changes. Additionally it is sent once per 10 seconds when any of the bits is set.

Payload Structure

2040
Alarm Flags
2 Bytes
Detector
2 Bytes
ConfigId
1 Byte
1030

Alarm Flags

MaskName
Bit 150x8000default task
Bit 140x4000global change flag
Bit 130x2000signal too bright flag
Bit 120x1000signal too dark flag
Bit 110x0800reserved
Bit 100x0400image too blurry flag
Bit 90x0200signal loss flag
Bit 80x0100reference image check failed flag
Bit 70x0080invalid configuration flag
Bit 60x0040flame detection flag
Bit 50x0020smoke detection flag

Detector

State of the detectors. 0x0001 corresponds to detector one, 0x0002 to detector two and so on.

ConfigId

Identifcation number of the VCA profile caused this alarm.

CONF_VIPROC_ALARM_AGGREGATION_TIME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0acavideo linenono
 DatatypeAccess LevelDescription
Readt_octetminimalObsolete, please use VIPROC_ALARM_EXT_AGGREGATION_TIME.
Writet_octetivaObsolete, please use VIPROC_ALARM_EXT_AGGREGATION_TIME.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_ALARM_EXT_AGGREGATION_TIME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ba7video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalObsolete, please use rule engine script. read the alarm aggregation time of the video line (unit is 0.1 seconds, thus, 16 corresponds to 1.6 seconds). The return value has to bytes is a word beginning with the upper byte and followed by the lower byte.
Writep_octetivaObsolete, please use rule engine script. write the duration of the alarm aggregation time in 0.1 seconds (1.6 sec coresponds to a value 16). The payload consists of an upper and a lower byte resulting in a maximal time of 6553.6 seconds. Note, this parameter belongs to a viproc config.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_ALARM_MASK

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a23video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead which of the 32 bits produced by the viproc+ruleengine are considered for the CONF_VIPROC_ALARM. see CONF_VIPROC_ALARM for the meaning of the 32 bits.
Writep_octetivaConfigures which of 32 bits produced by the viproc+ruleengine are considered for the CONF_VIPROC_ALARM see CONF_VIPROC_ALARM for the meaning of the 32 bits.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_CONFIG_CHANGE_IN_RECORDING

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a60video lineyesno
 DatatypeAccess LevelDescription
Read--Unavailable
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_CONFIG_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a40video linenono
 DatatypeAccess LevelDescription
Readp_unicodeminimalReturns the name of the currently active viproc configuration.
Writep_unicodeivaWrites the name of the currently active viproc configuration. The name can have at most 15 unicode characters.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_CUSTOM_PARAMETERS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0802video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalReads the video content analysis (VCA) custom parameters, payload is beyond the scope of this document
Writep_octetivaSets the VCA custom parameters, payload is beyond the scope of this document
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_CUSTOM_PARAMETERS_TAGS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bacvideo linenono
 DatatypeAccess LevelDescription
Readp_octetminimalReads one or more parameter tags from viproc configuration, payload is beyond the scope of this document
Writep_octetivaSets one or more tags in the VCA custom parameters, payload is beyond the scope of this document
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_DEFAULT

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cbbvideo linenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writet_octetiva
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This commands deploys a dedicated config file to set VCA config. The list of available scenario defaults can be retrieved with the command VIPROC_DEFAULT_LIST. In case of an error this command may return with a command specific error code. For a list of the specific error code see below. The value associated to scenario will be kept constant.

Payload Structure

48
Default Scenario
1 Byte
26

Default Scenario

Default0
Intrusion (one field)1
Intrusion (two fields)2
People counting3
Traffic incidents4
Traffic wrong way5

Command Specific Errors

Default scenario not available0x01
Calibration missing0x02
Internal error0xF0

CONF_VIPROC_DEFAULT_LIST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cbavideo linenono
 DatatypeAccess LevelDescription
Readp_stringminimalList of available IVA default configuration sets, value: string | ... eg, 0=default | 1=line_crsossing.iva | 2=inside_field.iva
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_DETECTOR_PARAMS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c96video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalReads VCA detector params
Writep_octetivaSets VCA detector params
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_DLL_NAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0804video linenono
 DatatypeAccess LevelDescription
Readp_stringalways_legacyReads the name of currently selected VCA component
Writep_stringivaSpecify the name of the VCA component
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_DLL_NAME_LIST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0808video linenono
 DatatypeAccess LevelDescription
Readp_stringminimalList of viproc component names
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_FIRE_PARAMETERS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c0cvideo linenono
 DatatypeAccess LevelDescription
Readp_octetminimalGets the VCA fire detector settings (no vca profiles), payload is beyond the scope of this document
Writep_octetivaSets the VCA fire detector settings (not part of the vca profiles), payload is beyond the scope of this document
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_GLOBAL_PARAMETERS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b68video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalReads the VCA global parameters, payload is beyond the scope of this document
Writep_octetivaSets the VCA global parameters, payload is beyond the scope of this document
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_GLOBAL_PARAMETERS_TAGS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c68video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalReads the VCA global parameters, payload is beyond the scope of this document
Writep_octetivaSets the VCA global parameters, payload is beyond the scope of this document
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_HOLIDAYS_SCHEDULE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a67video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalReturns the holidays VCA schedule of the specified line. The format of the payload is the same as the one of the CONF_HD_RECORD_HOLIDAYS command.
Writep_octetivaSets the holidays VCA schedule of the specified line. The format of the payload is the same as the one of the CONF_HD_RECORD_HOLIDAYS command.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_ID

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0803video lineyesno
 DatatypeAccess LevelDescription
Readt_dwordalways_legacyGet the viproc interface id (0:= no viproc), nb: message is sent in host byte order
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a65video linenono
 DatatypeAccess LevelDescription
Readt_octetalways_legacySwitches between silent vca(0)/manual(1..16)/off(0xfd)/scheduler(0xfe)/script mode(0xff) of the video content analysis (VCA). In case of a moving dome and a preset with activated VCA profile the active Id is returned. (if vca is turned off then 0xfd is returned).
Writet_octetivaSwitches between silent vca(0)/manual(1..16)/off(0xfd)/scheduler(0xfe)/script mode(0xff) of the video content analysis (VCA). Command should not be used while configuring a profile (i.e. start_viproc_config_editing is active). On the gen4 dome, the modes 0xfe and 0xff are not supported. Any value between 0 and 16 is interpreted as on and 0xfd as off.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_MOTION_DEBOUNCE_TIME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0acbvideo linenono
 DatatypeAccess LevelDescription
Readt_octetminimalRead the motion alarm debounce time of the video line (4, 3s == 43). Note, this parameter belongs to a viproc config.
Writet_octetivaWrite the duration of the motion alarm debounce time of the video line (1, 6sec == 16). Note, this parameter belongs to a viproc config.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_OLD_AGGREGATION_TIME_USED

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cf3video linenono
 DatatypeAccess LevelDescription
Readf_flagminimalReturns if old aggregation times are used or not
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_ONOFF

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0800video linenono
 DatatypeAccess LevelDescription
Readf_flagminimalReads the VCA status 0=off, 1=on. command is obsolete with firmware 4.0 and replaced by VIPROC_MODE.
Writef_flagivaSwitches on/off the video content analysis (VCA). command is obsolete with firmware 4.0 and replaced by VIPROC_MODE.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_RE_TASK_NAMES

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b2bvideo lineyesno
 DatatypeAccess LevelDescription
Readp_octetminimalRead the current rule engine task names which corresponds to line <num>
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command reads out the task names of the current configured rule engine.

Response Payload Structure

1632
Algorithm type
2 Bytes
Number of tasks
2 Bytes
Task [0]
(see description)
...
Task [N]
(see description)
824

Algorithm type

IVA algorithm1
IVA flow algorithm2
Motion algorithm4

Number of tasks

Number of configured user tasks.

Task

1632
Id
1 Byte
Type
1 Byte
Name...
64 Bytes
Name
[...]
Name
...
Name
...
824

Id

Id of the user task. Defines the alarm bit of the CONF_VIPROC_ALARM message.

Type

Object in field1
Line crossing2
Loitering3
ConditionChange5
FollowingRoute6
Tampering7
RemovedObject8
IdleObject9
EnteringField10
LeavingField11
SimilaritySearch13
CrowdDetection14
Counter15
BEV people counter16
Line Counter17
Occupancy18
Man over Board19
FlowInField40
CounterFlowInField41
MotionInField42

Name

The task name is UTF8 encoded and maximal 64 byte. Zero termination is not mandatory.

CONF_VIPROC_REF_ORIENTATION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cf2video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead tamper reference orientation
Writep_octetivaWrite tamper reference orientation
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_REFERENCE_IMAGE_FILENAME

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0806video linenono
 DatatypeAccess LevelDescription
Readp_string p_octetminimalReads the current reference image filename
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_SAVE_REFERENCE_IMAGE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0805video linenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writef_flagivaTriggers the VCA to create a reference image, but only if possible (e.g. not a dome camera)
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_SCENE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a3bvideo linenono
 DatatypeAccess LevelDescription
Readt_dwordminimalReturns the scene for which the active config is defined.
Writet_dwordivaWrites the scene number of the active viproc configuration
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_SENSITIVE_AREA

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b78video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalSets the sensitive area of the object based VCA algorithm in the active (or last loaded) config profile, see detailed description
Writep_octetivaSets the sensitive area of the object based VCA algorithm in the active (or last loaded) config profile
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command reads/sets the sensitivity mask of the viproc algorithm. Please use the read functionality to get the dimensions. All values are in pixel. If no viproc algorithm is running the command fails.

Payload Structure

1632
Width
2 Bytes
Height
2 Bytes
Cells X
1 Byte
Cells Y
1 Byte
Step X
1 Byte
Step Y
1 Byte
Start X
1 Byte
Start Y
1 Byte
Bitmask...
N Bytes
Bitmask
...
824

Width

Image width of the viproc algorithm.

Height

Image height of the viproc algorithm.

Cells X

Number of cells in X direction.

Cells Y

Number of cells in Y direction.

Step X

Number of cell size in X direction.

Step Y

Number of cell size in Y direction.

Start X

Offset of bit mask from left edge.

Start Y

Offset of bit mask from upper edge.

Bitmask

Bitstream which signals which cell is activated or not. Upper left cell is the first going to the left and then down.
Example:
A 3x3 mask with cross activated:
oxo
xxo
oxo
has the following binary 0b010110010 or hexadecimal 0x590 structure. Alignment bits can be set to zero but will be ignored.

CONF_VIPROC_SET_REF_ORIENTATION

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0cf1video linenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetivaSet current orientation of acceleration sensor as reference
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_TAGGED_CONFIG

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a42video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead a list of viproc items in an atomar way. see detailed description
Writep_octetivaWrites any viproc commands in an atomar way. see detailed description
CPP6/CPP7/CPP7.3CPP13
Available yes yes

Description

This command is an extension of the already existing RCP+ commands CONF_VIPROC_DLL_NAME, CONF_VIPROC_ONOFF, CONF_VIPROC_SCENE, CONF_VIPROC_CONFIG_NAME, CONF_VIPROC_CUSTOM_PARAMETERS, CONF_VCD_OPERATOR_PARAMS, CONF_VIPROC_ALARM_MASK, CONF_VIPROC_ALARM_AGGREGATION_TIME, and CONF_VIPROC_MOTION_DEBOUNCE_TIME. Each of these commands can only access one specific item of the currently active viproc configuration. The new command allows an atomic access to an arbitrary subset of configuration items, not only of the currently active one but of any configuration of a line.

Num Descriptor Values

VideoLineAnyThe video line to which the configuration belongs

Payload Structure

1632
Config ID
4 Bytes
Tag-Structure [0]
...
Tag-Structure [N]
0x00000000
4 Bytes
824

Config ID

An integer between 1 and the maximum number of configurations available for this line (this maximum number can be retrieved by the command CONF_NUMBER_OF_VIPROC_CONFIGS).

Tag-Structure

Payload containing tagged values. Each tag structure consists of a length and a tag field defining the meaning of the following data.

Length

Length of tagged value including length and tag field

Tag

Tag specifying the encoding and meaning of the value


Tag 0x0800: CONF_VIPROC_ONOFF

1632
Tag = 0x0800
2 Bytes
Length
2 Bytes
CONF_VIPROC_ONOFF ( p_octet )
(See Command)
824

Tag 0x0804: CONF_VIPROC_DLL_NAME

1632
Tag = 0x0804
2 Bytes
Length
2 Bytes
CONF_VIPROC_DLL_NAME ( p_octet )
(See Command)
824

Tag 0x0a3b: CONF_VIPROC_SCENE

1632
Tag = 0x0a3b
2 Bytes
Length
2 Bytes
CONF_VIPROC_SCENE ( p_octet )
(See Command)
824

Tag 0x0a40: CONF_VIPROC_CONFIG_NAME

1632
Tag = 0x0a40
2 Bytes
Length
2 Bytes
CONF_VIPROC_CONFIG_NAME ( p_octet )
(See Command)
824

Tag 0x0802: CONF_VIPROC_CUSTOM_PARAMETERS

1632
Tag = 0x0802
2 Bytes
Length
2 Bytes
CONF_VIPROC_CUSTOM_PARAMETERS ( p_octet )
(See Command)
824

Tag 0x0a1b: CONF_VCD_OPERATOR_PARAMS

1632
Tag = 0x0a1b
2 Bytes
Length
2 Bytes
CONF_VCD_OPERATOR_PARAMS ( p_octet )
(See Command)
824

Tag 0x0a23: CONF_VIPROC_ALARM_MASK

1632
Tag = 0x0a23
2 Bytes
Length
2 Bytes
CONF_VIPROC_ALARM_MASK ( p_octet )
(See Command)
824

Tag 0x0aca: CONF_VIPROC_ALARM_AGGREGATION_TIME

1632
Tag = 0x0aca
2 Bytes
Length
2 Bytes
CONF_VIPROC_ALARM_AGGREGATION_TIME ( p_octet )
(See Command)
824

Tag 0x0ba7: CONF_VIPROC_ALARM_EXT_AGGREGATION_TIME

1632
Tag = 0x0ba7
2 Bytes
Length
2 Bytes
CONF_VIPROC_ALARM_EXT_AGGREGATION_TIME ( p_octet )
(See Command)
824

Tag 0x0acb: CONF_VIPROC_MOTION_DEBOUNCE_TIME

1632
Tag = 0x0acb
2 Bytes
Length
2 Bytes
CONF_VIPROC_MOTION_DEBOUNCE_TIME ( p_octet )
(See Command)
824

CONF_VIPROC_TAGGED_CONFIG_INTERNAL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a43video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalRead a list of viproc items in an atomar way.
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_VIPROC_WEEKLY_SCHEDULE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0a66video linenono
 DatatypeAccess LevelDescription
Readp_octetminimalReturns the weekly VCA schedule of the specified line. The format of the payload is the same as the one of the CONF_HD_RECORD_SCHEDULE command.
Writep_octetivaSets the weekly VCA schedule of the specified line. The format of the payload is the same as the one of the CONF_HD_RECORD_SCHEDULE command.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_WRITE_XML_TO_VCD

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bafvideo linenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_stringivaWrite payload to vcd stream within a XML VCD-tag, data can be refound in VCD layer 0 and VCD layer 14. The reply is a UTC time (first 4 bytes are the seconds since 2000 followed by two bytes residual milliseconds). The payload is limitted to 1400 bytes. A very simple xml validation is performed -> tags can only have 31 bytes length and nesting is limited, CDATA is not allowed. Everything before the first xml element and after the last xml element is skipped. Only utf 8 encoding is supported.
CPP6/CPP7/CPP7.3CPP13
Available yes yes

CONF_WLAN_DEFAULT_CHANNEL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0945Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalRead the WLAN channel
Writet_octetserviceWrite the WLAN channel
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_WLAN_IOCTRL

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0c4cNonenono
 DatatypeAccess LevelDescription
Read--Unavailable
Writep_octetserviceExecute ioctrl with wifi driver
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_WLAN_LINK_QUALITY

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b1cNonenono
 DatatypeAccess LevelDescription
Readt_intminimalRead WLAN link signal level
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_WLAN_LINK_TEST

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0b23Nonenono
 DatatypeAccess LevelDescription
Readt_intserviceTest WLAN setup (try ability to associate to AP with current settings and return result 0=error, 1=success)
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_WLAN_OPERATING_MODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ac7Nonenono
 DatatypeAccess LevelDescription
Readt_octetminimalGets the operating mode of WLAN (0=\off\
Writet_octetservice1=\"auto (Station only)\
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_WLAN_REGION_CODE

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0acfNonenono
 DatatypeAccess LevelDescription
Readt_wordminimalGets the region code for WLAN adapter (0x10=\US\
Writet_wordservice0x20=\"CA\
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_WLAN_SCAN

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ac6Nonenono
 DatatypeAccess LevelDescription
Readp_octetservicePerforms a WLAN network scan, see detailed description
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

Payload Structure

Number of Entries
4 Bytes
Entry [0]
(see description)
...
Entry [N]
(see description)

Number of Entries

Number of scan entries

Entry

1632
SSID...
32 Bytes
SSID
[...]
SSID
...
MAC Address...
6 Bytes
MAC Address
...
Strength...
4 Bytes
Strength
...
Channel...
4 Bytes
Channel
...
Flags...
4 Bytes
Flags
...
824

SSID

Name of network.

MAC Address

MAC address of AccessPoint

Strength

Signal strength in range [0;5]

Channel

Channel used by AccessPoint [0;14]

Flags

MaskNameDescription
Bit 30x00000008WPS encryptionIs set when WPS encryption is supported.
Bit 20x00000004WPA2 encryptionIs set when WPA2 encryption is supported.
Bit 10x00000002WPA encryptionIs set when WPA encryption is supported.
Bit 00x00000001WEP encryptionIs set when WEP encryption is supported.

CONF_WLAN_SSID

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0943Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimalRead the WLAN ssid
Writep_stringserviceWrite the WLAN ssid
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_WLAN_WPA_PSK

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0ac3Nonenono
 DatatypeAccess LevelDescription
Readp_stringserviceRead the WPA pre shared key
Writep_stringserviceWrite the WPA pre shared key
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_WLAN_WPS_SETUP

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bc4Nonenono
 DatatypeAccess LevelDescription
Readp_stringminimalReports the camera WPS PIN to be entered in the access point.
Writep_stringserviceStarts a WiFi Protected Setup (WPS) session with the provided PIN (4 or 8 digits) and SSID.<ul><li>PIN: The string contains the pin, a plus sign and the SSID. E.g.: \12345678 + MyAccessPoint\"</li><li>Push-button configuration (PBC): leave string empty</li><li>If the SSID is omitted
CPP6/CPP7/CPP7.3CPP13
Available yes no

CONF_WLAN_WPS_STATUS

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0bc5Noneyesno
 DatatypeAccess LevelDescription
Readt_octetminimal
Write--Unavailable
CPP6/CPP7/CPP7.3CPP13
Available yes no

Payload Structure

Status
1 Byte

Status

MaskName
0xF0Status
Not started0
Ongoing1
Successful2
Rejected by the access point3
Timeout4
Invalid PIN5
0x0FMode
None0
PBC1
PIN2

CONF_WPS_BUTTON_ENABLED

Table Of Contents

Tag CodeNum DescriptorMessageSNMP Support
 0x0be8Nonenono
 DatatypeAccess LevelDescription
Readf_flaguserReturns if the WPS button is enabled (1) or not (0). Default is enabled.
Writef_flagserviceEnables or disabled the WPS button. When the button is diabled, pressing the button has no effect.
CPP6/CPP7/CPP7.3CPP13
Available yes no

Appendix: Sample application in C

Table Of Contents

This is a sample application to interface the RCP Plus server inside the VideoJet.
This application provides six steps:
For compiling the source code we suggest Microsoft Visual C++ V5.00. Other compiler should also work fine except the winsock initialization.
Find a sample session logfile below
If you are not supplied with the source file, contact support@vcs.com and request RCPSample.c

RCPSample.c

/* RCPSample.c Sample RCP Plus Version 3 application Tested with VJ400 V6.00, VJ1000 V1.0 Compilation tested under Microsoft Visual C++ 5.0 -- make sure wsock32.lib is included in project->settings->linker->Object/Library Modules !!! -- includes a possible output listing at the end of this file */ #include <stdio.h> #include <winsock.h> #define RCP_NETWORK_PORT (1756) //definable IP addresses for this test //the VJ for testing the RCP connection - this should be an video encoder #define REMOTE_VJ_IP 0x0a000001 //is "10.0.0.1" //a second VJ with video decoder for testing interconnect via the RCP 'connect to' command #define DECODER_IP 0x0a000002 //is "10.0.0.2" //password and length //this is a just a default password; replace this if a password is set on the VJ //if no password ist set, all password will be accepted #define LOGIN_STRING "+service:pass+" #define LOGIN_STRING_LENGTH 14 //some datatypes typedef unsigned long DWORD; typedef unsigned short WORD; typedef unsigned char OCTET; //structures for the RCP header and commands //the TPKT header struct TPKT_header { OCTET version; OCTET reserved; WORD size; }; //the RCP header struct RCPPlus_header { WORD command; OCTET datatype; OCTET rd_wr :4, //Note swap these lines on big endian machines !! version :4; //Note swap these lines on big endian machines !! OCTET method; OCTET reserved; WORD client_id; DWORD session_id; WORD num; WORD len; }; //the fix part of the RCP Register command struct h_RCP_ClientRegister { OCTET RegType; OCTET Reserved; WORD ClientID; OCTET PwdEncryption; OCTET PwdLen; WORD NbrOfMessages; //followed by //WORD Messages[n]; //OCTET Password[nn]; }; //the replay to the RCP register command struct h_RCP_ClientRegisterReply { OCTET Result; OCTET Level; WORD ClientID; }; //the RCP 'connect to' command struct connect_to_header { DWORD Dest_IP; WORD Reserved1; WORD Flags; DWORD PutChannels; DWORD GetChannels; }; //the RCP disconnect reply command struct discon_prim_reply_header { OCTET status; OCTET reserved1; WORD reserved2; DWORD remote_host; }; int SendPacket( SOCKET Socket, OCTET *TPKT_hdr, int TPKT_hdr_len, OCTET *RCP_hdr, int RCP_hdr_len, OCTET *Payload, int Payload_len); int GetPacket(SOCKET Socket, OCTET *RX_Buf, int RX_BufMaxLen); void view_hex(void *pv, int l); WORD Register( SOCKET Socket); DWORD GetSoftwareVersion( SOCKET Socket, WORD ClientID); DWORD ConnectTo(SOCKET Socket, WORD ClientID, DWORD RemoteIP); int Disconnect(SOCKET Socket, WORD ClientID, DWORD SessionID); void main(int argc, char* argv[]) { WORD wVersionRequested; //for initial access to the winsocks WSADATA wsaData; //for initial access to the winsocks SOCKET Socket; //socket for the TCP connection struct sockaddr_in remote_sin; //remote address WORD ClientID; //to be assgined after RCP registration DWORD SoftwareVersion; //demo access DWORD SessionID; //to be assgined after RCP 'connect to' char RX_Buf[2048]; //buffer for data from socket struct RCPPlus_header *prcp_hdr; //pointer to access the RCP header inside a buffer int len; //length of a received packet OCTET *Payload; //pointer to the payload section //init winsock wVersionRequested = MAKEWORD( 2, 2 ); if ( WSAStartup( wVersionRequested, &wsaData ) != 0 ) { printf("Error starting winsock\n"); exit(0); } //create a socket and connect to the RCP server Socket = socket (AF_INET, SOCK_STREAM, 0); if (Socket != INVALID_SOCKET) { remote_sin.sin_family = AF_INET; remote_sin.sin_port = htons (RCP_NETWORK_PORT); remote_sin.sin_addr.s_addr = htonl (REMOTE_VJ_IP); connect(Socket, (struct sockaddr*)&remote_sin, sizeof(struct sockaddr)); } else { exit(0); } printf("===========================================\n"); printf("\n\nTry to register...\n"); Sleep(2000); ClientID = Register(Socket); Sleep(3000); printf("===========================================\n"); printf("\n\nTry to read out the software version...\n"); Sleep(2000); SoftwareVersion = GetSoftwareVersion(Socket, ClientID); printf("Software version %08x\n", SoftwareVersion); Sleep(3000); printf("===========================================\n"); printf("\n\nNow try to connect to a second VJ...\n"); Sleep(2000); SessionID = ConnectTo(Socket, ClientID, DECODER_IP); printf("connected with SessionID %08x\n",SessionID); Sleep(5000); printf("===========================================\n"); printf("\n\nEnough for today; close connection...\n"); Sleep(2000); Disconnect(Socket, ClientID, SessionID); Sleep(3000); printf("===========================================\n"); printf("\n\nNow waiting for messages...\n"); //waiting for messages while(1) { len = GetPacket(Socket, RX_Buf, sizeof(RX_Buf)); //position to RCP header prcp_hdr = (struct RCPPlus_header*)RX_Buf; //check for valid message if(prcp_hdr->method == 0x02) { printf("Message %04x num %04x type %02x\n" ,ntohs(prcp_hdr->command), ntohs(prcp_hdr->num) , prcp_hdr->datatype); len -= sizeof(struct RCPPlus_header); //position to payload section Payload = (OCTET *)(RX_Buf + sizeof(struct RCPPlus_header)); printf("Payload (%d bytes)\n", len); view_hex(Payload, len); } } } WORD Register(SOCKET Socket) { struct TPKT_header tpkt_hdr; //the TPKT header struct RCPPlus_header rcp_hdr, *prcp_hdr; //the RCP header and a pointer for //access inside an RX buffer struct h_RCP_ClientRegister *prcp_reg_hdr; //pointer to the RCP registration struct struct h_RCP_ClientRegisterReply *rcp_reg_reply_hdr; //pointer to access the RCP registration //reply inside a buffer WORD NbrOfMessages, n; //counts the number of messages in the //regitration command WORD Messages[]={0xFFC3, 0x01C0}; //the messages to be registerd OCTET *Payload , *pw; //pointer to access the payload section WORD PayloadLen, wTPKTsize; //length descriptors char RX_Buf[2048]; //buffer for data from socket WORD ClientID; //assigned client IP; to be taken //from the reply //fill out the RCP registration PayloadLen = sizeof(struct h_RCP_ClientRegister) + sizeof(Messages) + LOGIN_STRING_LENGTH; Payload = malloc(PayloadLen); if(!Payload) { return 0; } //use pw as a write pointer pw = Payload; //write fix header prcp_reg_hdr = (struct h_RCP_ClientRegister*)pw; prcp_reg_hdr->RegType = 0x01; //Normal registration prcp_reg_hdr->Reserved = 0; prcp_reg_hdr->ClientID = htons( 0x0000); //no ClientID in normal //registration prcp_reg_hdr->PwdEncryption = 0x00; //Plain text password encrytion prcp_reg_hdr->PwdLen = LOGIN_STRING_LENGTH; //Length of password //string (without '\0') NbrOfMessages = sizeof(Messages) / sizeof(WORD); prcp_reg_hdr->NbrOfMessages = htons( NbrOfMessages); //Nbr of messages that follow pw += sizeof(struct h_RCP_ClientRegister); //write message array for(n=0;n<NbrOfMessages;n++) { ((WORD*)pw)[n] = htons( Messages[n]); //fill in message requests } pw+=sizeof(Messages); //write password string memcpy(pw, LOGIN_STRING, LOGIN_STRING_LENGTH); //fill the password string itself //fill out the RCP header rcp_hdr.command = htons( 0xFF00); //Command 'RCP register' rcp_hdr.datatype = 0x0c; //Datatype P_OCTET rcp_hdr.rd_wr = 0x1; //WRITE rcp_hdr.version = 0x3; //Version 3 rcp_hdr.method = 0x00; //REQUEST rcp_hdr.reserved = 0; rcp_hdr.client_id = htons( 0x0000); //currently no ClientID available rcp_hdr.session_id = htonl( 0x00000000); //currently no SessionID available rcp_hdr.num = htons( 0x0000); //no num parameter needed rcp_hdr.len = htons( PayloadLen); //length of the payload section //fill out TPKT tpkt_hdr.version = 3; //TPKT version 3 tpkt_hdr.reserved = 0; wTPKTsize = PayloadLen + sizeof(rcp_hdr) + sizeof(tpkt_hdr); tpkt_hdr.size = htons( wTPKTsize); //overall length //(including TPKT itself) //send to packet to the network if( -1 == SendPacket(Socket, (OCTET*)&tpkt_hdr, sizeof(tpkt_hdr), (OCTET*)&rcp_hdr, sizeof(rcp_hdr), Payload, PayloadLen)) { printf("Send packet error\n"); exit(0); } //get the reply if( GetPacket(Socket, RX_Buf, sizeof(RX_Buf)) == sizeof(struct RCPPlus_header) + sizeof(struct h_RCP_ClientRegisterReply)) { //position to RCP header prcp_hdr = (struct RCPPlus_header*)RX_Buf; //check for error message if(prcp_hdr->method == 0x03) { OCTET *ErrorCode = RX_Buf + sizeof(struct RCPPlus_header); printf("An error was returned code %02x\n",*ErrorCode); return 0; } //position to payload section rcp_reg_reply_hdr = (struct h_RCP_ClientRegisterReply *)(RX_Buf + sizeof(struct RCPPlus_header)); //get assigned ClientID ClientID = ntohs(rcp_reg_reply_hdr->ClientID); printf("Register reply:\n"); printf("Result: %02x\n",rcp_reg_reply_hdr->Result); printf("Level: %02x\n",rcp_reg_reply_hdr->Level); printf("ClientID %04x\n",ClientID); } else { printf("Register failed\n"); } return ClientID; } DWORD GetSoftwareVersion(SOCKET Socket, WORD ClientID) { struct TPKT_header tpkt_hdr; //the TPKT header struct RCPPlus_header rcp_hdr, *prcp_hdr; //the RCP header and a pointer for access //inside an RX buffer char RX_Buf[2048]; //buffer for data from socket DWORD *pDWORD; //pointer to the reply payload DWORD version=0; //Next task; read out the software version number //fill out the RCP header rcp_hdr.command = htons( 0x002F); //Command 'Software version' rcp_hdr.datatype = 0x08; //Datatype T_DWORD rcp_hdr.rd_wr = 0x0; //READ rcp_hdr.version = 0x3; //Version 3 rcp_hdr.method = 0x00; //REQUEST rcp_hdr.reserved = 0; rcp_hdr.client_id = htons( ClientID); //use clientID from register reply rcp_hdr.session_id = htonl( 0x00000000); //currently no SessionID available rcp_hdr.num = htons( 0x0000); //no num parameter needed rcp_hdr.len = 0; //no payload in READ command //fill out TPKT tpkt_hdr.version = 3; //TPKT version 3 tpkt_hdr.reserved = 0; //overall length(including TPKT itself) tpkt_hdr.size = htons( sizeof(rcp_hdr) + sizeof(tpkt_hdr)); //send to packet to the network if( -1 == SendPacket(Socket, (OCTET*)&tpkt_hdr, sizeof(tpkt_hdr), (OCTET*)&rcp_hdr, sizeof(rcp_hdr), NULL, 0)) { printf("Send packet error\n"); exit(0); } //get the reply if( GetPacket(Socket, RX_Buf, sizeof(RX_Buf)) == sizeof(struct RCPPlus_header) + sizeof(DWORD)) { //position to RCP header prcp_hdr = (struct RCPPlus_header*)RX_Buf; //check for error message if(prcp_hdr->method == 0x03) { OCTET *ErrorCode = RX_Buf + sizeof(struct RCPPlus_header); printf("An error was returned code %02x\n",*ErrorCode); return 0;; } //position to payload section pDWORD = (DWORD *)(RX_Buf + sizeof(struct RCPPlus_header)); version = ntohl(*pDWORD); } else { printf("failed to read software version\n"); } return version; } DWORD ConnectTo(SOCKET Socket, WORD ClientID, DWORD RemoteIP) { struct TPKT_header tpkt_hdr; //the TPKT header struct RCPPlus_header rcp_hdr, *prcp_hdr; //the RCP header and a pointer for //access inside an RX buffer char RX_Buf[2048]; //buffer for data from socket struct connect_to_header rcp_con_hdr, *rcp_con_reply_hdr; //the connect command and a pointer //for access inside an RX buffer DWORD sessionID=0; //fill out the RCP connect to header rcp_con_hdr.Dest_IP = htonl( RemoteIP); //the remote IP address rcp_con_hdr.Reserved1 = htons( 0); rcp_con_hdr.Flags = htons( 0); //use no flags rcp_con_hdr.PutChannels = htonl( 0x00000001); //put video rcp_con_hdr.GetChannels = htonl( 0x00000000); //no get channels //fill out the RCP header rcp_hdr.command = htons( 0xFFCC); //Command 'RCP connect to' rcp_hdr.datatype = 0x0c; //Datatype P_OCTET rcp_hdr.rd_wr = 0x1; //WRITE rcp_hdr.version = 0x3; //Version 3 rcp_hdr.method = 0x00; //REQUEST rcp_hdr.reserved = 0; rcp_hdr.client_id = htons( ClientID); //use clientID from register reply rcp_hdr.session_id = htonl( 0x00000000); //currently no SessionID available rcp_hdr.num = htons( 0x0000); //no num parameter needed rcp_hdr.len = htons( sizeof(rcp_con_hdr)); //length of the payload section //fill out TPKT tpkt_hdr.version = 3; //TPKT version 3 tpkt_hdr.reserved = 0; //overall length(including TPKT itself) tpkt_hdr.size = htons( sizeof(rcp_con_hdr) + sizeof(rcp_hdr) + sizeof(tpkt_hdr)); //send to packet to the network if ( -1 == SendPacket(Socket, (OCTET*)&tpkt_hdr, sizeof(tpkt_hdr), (OCTET*)&rcp_hdr, sizeof(rcp_hdr), (OCTET*)&rcp_con_hdr, sizeof(rcp_con_hdr))) { printf("Send packet error\n"); exit(0); } //get the reply if( GetPacket(Socket, RX_Buf, sizeof(RX_Buf)) == sizeof(struct RCPPlus_header) + sizeof(struct connect_to_header)) { //position to RCP header prcp_hdr = (struct RCPPlus_header*)RX_Buf; //check for error message if(prcp_hdr->method == 0x03) { OCTET *ErrorCode = RX_Buf + sizeof(struct RCPPlus_header); printf("An error was returned code %02x\n",*ErrorCode); return 0; } //position to payload section rcp_con_reply_hdr = (struct connect_to_header *)(RX_Buf + sizeof(struct RCPPlus_header)); printf("connect to reply:\n"); printf("Dest IP: %08x\n",ntohl(rcp_con_reply_hdr->Dest_IP)); printf("PutChannels %08x\n",ntohl(rcp_con_reply_hdr->PutChannels)); printf("GetChannels %08x (Note VJ1000 V1.0 may return invaild data here)\n",ntohl(rcp_con_reply_hdr->GetChannels)); sessionID = ntohl(prcp_hdr->session_id); } else { printf("Connect to failed\n"); } return sessionID; } int Disconnect(SOCKET Socket, WORD ClientID, DWORD SessionID) { struct TPKT_header tpkt_hdr; //the TPKT header struct RCPPlus_header rcp_hdr, *prcp_hdr; //the RCP header and a pointer for //access inside an RX buffer char RX_Buf[2048]; //buffer for data from socket struct discon_prim_reply_header *rcp_discon_reply_hdr; //the pointer for access inside //an RX buffer //Next task; read out the software version number //fill out the RCP header rcp_hdr.command = htons( 0xFF0D); //Command 'disconnect' rcp_hdr.datatype = 0x0c; //Datatype P_OCTET rcp_hdr.rd_wr = 0x1; //WRITE rcp_hdr.version = 0x3; //Version 3 rcp_hdr.method = 0x00; //REQUEST rcp_hdr.reserved = 0; rcp_hdr.client_id = htons( ClientID); //use clientID from register reply rcp_hdr.session_id = htonl( SessionID); //use clientID from connect to reply rcp_hdr.num = htons( 0x0000); //no num parameter needed rcp_hdr.len = 0; //no payload needed here //fill out TPKT tpkt_hdr.version = 3; //TPKT version 3 tpkt_hdr.reserved = 0; //overall length(including TPKT itself) tpkt_hdr.size = htons( sizeof(rcp_hdr) + sizeof(tpkt_hdr)); //send to packet to the network if( -1 == SendPacket(Socket, (OCTET*)&tpkt_hdr, sizeof(tpkt_hdr), (OCTET*)&rcp_hdr, sizeof(rcp_hdr), NULL, 0)) { printf("Send packet error\n"); exit(0); } //get the reply if( GetPacket(Socket, RX_Buf, sizeof(RX_Buf)) == sizeof(struct RCPPlus_header) + sizeof(struct discon_prim_reply_header)) { //position to RCP header prcp_hdr = (struct RCPPlus_header*)RX_Buf; //check for valid error message if(prcp_hdr->method == 0x03) { OCTET *ErrorCode = RX_Buf + sizeof(struct RCPPlus_header); printf("An error was returned code %02x\n",*ErrorCode); exit(0); } //position to payload section rcp_discon_reply_hdr = (struct discon_prim_reply_header*)(RX_Buf + sizeof(struct RCPPlus_header)); printf("Disconnect reply:\n"); printf("Status %02x\n",rcp_discon_reply_hdr->status); printf("Remote Host %08x\n",ntohl(rcp_discon_reply_hdr->remote_host)); } else { printf("Disconnect failed\n"); } return 0; } int SendPacket ( SOCKET Socket, OCTET *TPKT_hdr, int TPKT_hdr_len, OCTET *RCP_hdr, int RCP_hdr_len, OCTET *Payload, int Payload_len ) { int err=0; printf("\n"); //send in 3 parts (this is allowed) //send the TPKT header err += send(Socket, (char*)TPKT_hdr, TPKT_hdr_len, 0); printf("snd TPKT hdr:\n"); view_hex(TPKT_hdr, TPKT_hdr_len); //send the RCP header err += send(Socket, (char*)RCP_hdr, RCP_hdr_len, 0); printf("snd RCP hdr:\n"); view_hex(RCP_hdr, RCP_hdr_len); //send the payload, if one if(Payload_len) { err += send(Socket, (char*)Payload, Payload_len, 0); printf("snd Payload:\n"); view_hex(Payload, Payload_len); } printf("\n"); //have all bytes been sent ? if (err != TPKT_hdr_len + RCP_hdr_len + Payload_len ) { return -1; } return 0; } int GetPacket(SOCKET Socket, OCTET *RX_Buf, int RX_BufMaxLen) { int len, wait_bytes; struct TPKT_header *ptpkt_hdr; printf("\n"); if(RX_BufMaxLen < sizeof(struct TPKT_header)) { return -1; } //wait for reply //wait for the TPKT header to be arrived completely do { //just check; do not empty TCP buffer len = recv(Socket, RX_Buf, sizeof(struct TPKT_header), MSG_PEEK); } while(len != sizeof(struct TPKT_header)); //all bytes arrived - empty TCP buffer recv(Socket, RX_Buf, sizeof(struct TPKT_header), 0); printf("rcv TPKT hdr:\n"); view_hex(RX_Buf, len); //Now the length of the entire RCP packet can be determined ptpkt_hdr = (struct TPKT_header*)RX_Buf; wait_bytes = ntohs(ptpkt_hdr->size) - sizeof(struct TPKT_header); if(RX_BufMaxLen < wait_bytes) { return -1; } do { //just check; do not empty TCP buffer len = recv(Socket, RX_Buf, wait_bytes, MSG_PEEK); } while(len != wait_bytes); //all bytes arrived - empty TCP buffer recv(Socket, RX_Buf, wait_bytes, 0); printf("rcv Payload:\n"); view_hex(RX_Buf, len); printf("\n"); return wait_bytes; } void view_hex(void *pv, int l) { //improved display of hex strings OCTET *p = (OCTET *)pv; int i; for (i=0;i<l;i++) { if(!(i%16) && i) printf("\n"); printf("%02x ",p[i]); } printf("\n"); } /* //Possible output when running this test program (<<-- Note: xxxxx...xxx are additional comments) =========================================== Try to register... snd TPKT hdr: 03 00 00 2e snd RCP hdr: ff 00 0c 31 00 00 00 00 00 00 00 00 00 00 00 1a snd Payload: 01 00 00 00 00 0e 00 02 ff c3 01 c0 2b 73 65 72 76 69 63 65 3a 70 61 73 73 2b rcv TPKT hdr: 03 00 00 18 rcv Payload: ff 00 0c 31 01 00 00 77 00 00 00 00 00 00 00 04 01 02 00 77 Register reply: Result: 01 Level: 02 ClientID 0077 <<-- Note: this may vary =========================================== Try to read out the software version... snd TPKT hdr: 03 00 00 14 snd RCP hdr: 00 2f 08 30 00 00 00 77 00 00 00 00 00 00 00 00 rcv TPKT hdr: 03 00 00 18 rcv Payload: 00 2f 08 30 01 00 00 77 00 00 00 00 00 00 00 04 11 00 06 00 Software version 11000600 =========================================== Now try to connect to a second VJ... snd TPKT hdr: 03 00 00 24 snd RCP hdr: ff cc 0c 31 00 00 00 77 00 00 00 00 00 00 00 10 snd Payload: 0a 00 00 02 00 00 00 00 00 00 00 01 00 00 00 00 rcv TPKT hdr: 03 00 00 24 rcv Payload: ff cc 0c 31 01 00 00 77 c8 28 00 26 00 00 00 10 0a 00 00 02 00 00 00 00 00 00 00 01 00 00 00 00 connect to reply: Dest IP: 0a000002 PutChannels 00000001 GetChannels 00000000 (Note VJ1000 V1.0 may return invaild data here) connected with SessionID c8280026 <<-- Note: this may vary =========================================== Enough for today; close connection... snd TPKT hdr: 03 00 00 14 snd RCP hdr: ff 0d 0c 31 00 00 00 77 c8 28 00 26 00 00 00 00 rcv TPKT hdr: 03 00 00 1c rcv Payload: ff 0d 0c 31 01 00 00 77 c8 28 00 26 00 00 00 08 01 00 ca e4 0a 00 00 02 Disconnect reply: Status 01 Remote Host 0a000002 =========================================== <<-- Note: these messages will only be received if an input event on the VJ takes place Now waiting for messages... rcv TPKT hdr: 03 00 00 15 rcv Payload: 01 c0 00 30 02 00 00 77 00 00 00 00 00 01 00 01 00 Message 01c0 num 0001 type 00 Payload (1 bytes) 00 rcv TPKT hdr: 03 00 00 15 rcv Payload: 01 c0 00 30 02 0b 00 77 00 00 00 00 00 01 00 01 01 Message 01c0 num 0001 type 00 Payload (1 bytes) 01 rcv TPKT hdr: 03 00 00 15 rcv Payload: 01 c0 00 30 02 00 00 77 00 00 00 00 00 01 00 01 00 Message 01c0 num 0001 type 00 Payload (1 bytes) 00 rcv TPKT hdr: 03 00 00 15 rcv Payload: 01 c0 00 30 02 00 00 77 00 00 00 00 00 01 00 01 01 Message 01c0 num 0001 type 00 Payload (1 bytes) 01 */


Appendix: Sample code for connecting to a VideoJet using the UDP protocol

Table Of Contents

This is a sample application to interface the RCP Plus server inside the VideoJet.
This application provides six steps:
For compiling the source code we suggest Microsoft Visual C++ V5.00. Other compiler should also work fine except the winsock initialization.
If you are not supplied with the source file, contact support@vcs.com and request RCPConnect_UDP.c

RCPConnect_UDP.c

/* RCPConnect_UDP.c Sample RCP Plus Version 3 application Tested with VJ400 V6.00, VJ1000 V1.0 Compilation tested under Microsoft Visual C++ 5.0 -- make sure wsock32.lib is included in project->settings->linker->Object/Library Modules !!! -- includes a possible output listing at the end of this file */ #include <stdio.h> #include <winsock.h> #define RCP_NETWORK_PORT (1756) //definable IP addresses for this test //the VJ for testing the RCP connection - this should be an video encoder #define REMOTE_VJ_IP 0x0a000001 //is "10.0.0.1" //password and length //this is a just a default password; replace this if a password is set on the VJ //if no password ist set, all password will be accepted #define LOGIN_STRING "+service:pass+" #define LOGIN_STRING_LENGTH 14 //port for UDP video receiving; this could also be a dynamically assignd port from the stack //see socket binding #define VIDEO_RX_PORT 1234 //some datatypes typedef unsigned long DWORD; typedef unsigned short WORD; typedef unsigned char OCTET; //structures for the RCP header and commands //the TPKT header struct TPKT_header { OCTET version; OCTET reserved; WORD size; }; //the RCP header struct RCPPlus_header { WORD command; OCTET datatype; OCTET rd_wr :4, //Note swap these lines on big endian machines !! version :4; //Note swap these lines on big endian machines !! OCTET method; OCTET reserved; WORD client_id; DWORD session_id; WORD num; WORD len; }; //the fix part of the RCP Register command struct h_RCP_ClientRegister { OCTET RegType; OCTET Reserved; WORD ClientID; OCTET PwdEncryption; OCTET PwdLen; WORD NbrOfMessages; //followed by //WORD Messages[n]; //OCTET Password[nn]; }; //the replay to the RCP register command struct h_RCP_ClientRegisterReply { OCTET Result; OCTET Level; WORD ClientID; }; //structures and defines for requesting video struct con_prim_header { OCTET method; OCTET media; OCTET status; OCTET reverse_login; DWORD reserved2; }; #define METHOD_GET 0x00 #define METHOD_PUT 0x01 #define MEDIA_CHANNEL_VIDEO 0x01 #define MEDIA_CHANNEL_AUDIO 0x02 #define MEDIA_CHANNEL_DATA 0x03 #define CODING_MPEG4 0x0004 #define CODING_MPEG2 0x0008 #define CODING_META 0x0010 #define RESOLUTION_QCIF 0x0001 #define RESOLUTION_CIF 0x0002 #define RESOLUTION_2CIF 0x0004 #define RESOLUTION_4CIF 0x0008 #define RESOLUTION_CUSTOM 0x0010 #define MEP_RTP 0x01 #define MEP_TCP_OUTBAND 0x04 struct media_desc_video { OCTET media_encapsulation; OCTET flags; WORD media_port; DWORD media_host; OCTET coder; OCTET line; WORD media_ctrl_port; DWORD media_ctrl_host; WORD coding; WORD resolution; WORD reserved6; WORD bandwidth; }; int SendPacket( SOCKET Socket, OCTET *TPKT_hdr, int TPKT_hdr_len, OCTET *RCP_hdr, int RCP_hdr_len, OCTET *Payload, int Payload_len); int GetPacket(SOCKET Socket, OCTET *RX_Buf, int RX_BufMaxLen); void view_hex(void *pv, int l); WORD Register( SOCKET Socket); DWORD SendConnectPrimitive(SOCKET Socket, WORD ClientID, WORD local_UDP_Port); int SendConnectionKeepAlive(SOCKET Socket, WORD ClientID, DWORD SessionID); int Disconnect(SOCKET Socket, WORD ClientID, DWORD SessionID); void main(int argc, char* argv[]) { WORD wVersionRequested; //for initial access to the winsocks WSADATA wsaData; //for initial access to the winsocks SOCKET Socket; //socket for the TCP connection struct sockaddr_in remote_sin; //remote address WORD ClientID; //to be assgined after RCP registration DWORD SessionID; //to be assgined after RCP 'connect to' char RX_Buf[2048]; //buffer for data from socket int len; //length of a received packet DWORD cnt=0; //used for a simple timeout mechanism unsigned long int nNoBlock=1; //for setting sockets to non-blocking struct sockaddr_in stFrom; //binding structure for UDP rx socket SOCKET VideoDataSocket; //the video receivinbg socket //init winsock wVersionRequested = MAKEWORD( 2, 2 ); if ( WSAStartup( wVersionRequested, &wsaData ) != 0 ) { printf("Error starting winsock\n"); exit(0); } //create a socket and connect to the RCP server Socket = socket (AF_INET, SOCK_STREAM, 0); if (Socket != INVALID_SOCKET) { remote_sin.sin_family = AF_INET; remote_sin.sin_port = htons (RCP_NETWORK_PORT); remote_sin.sin_addr.s_addr = htonl (REMOTE_VJ_IP); connect(Socket, (struct sockaddr*)&remote_sin, sizeof(struct sockaddr)); } else { exit(0); } printf("===========================================\n"); printf("\n\nTry to register...\n"); Sleep(2000); ClientID = Register(Socket); Sleep(3000); printf("===========================================\n"); printf("\n\nOpen UDP socket for receiving video data...\n"); //open a UDP port for receiving the video data VideoDataSocket = socket(AF_INET,SOCK_DGRAM,0); if (VideoDataSocket == SOCKET_ERROR) { exit(0); } // Bind a receive port to the socket stFrom.sin_family = AF_INET; stFrom.sin_port = htons(VIDEO_RX_PORT); stFrom.sin_addr.s_addr = htonl(INADDR_ANY); if (SOCKET_ERROR == bind (VideoDataSocket, (struct sockaddr *)(&stFrom), sizeof (stFrom))) { exit(0); } //make UDP socket non-blocking if (SOCKET_ERROR == ioctlsocket(VideoDataSocket, FIONBIO, &nNoBlock)) { exit(0); } SessionID = SendConnectPrimitive(Socket, ClientID, VIDEO_RX_PORT); //make RCP socket non-blocking if (SOCKET_ERROR == ioctlsocket(Socket, FIONBIO, &nNoBlock)) { exit(0); } while(1) { cnt++; //a very, very simple timeout mechanism; a timeout retrigger should be sent every 2-5 seconds if(!(cnt%100000)) { SendConnectionKeepAlive(Socket, ClientID, SessionID); } GetPacket(Socket, RX_Buf, sizeof(RX_Buf)); //don't check responses for the keep-alive at the moment; //receive the video data len = recvfrom(VideoDataSocket, RX_Buf, sizeof(RX_Buf), 0, NULL, NULL); if(len > 0) { printf("rx %d\n",len); } Sleep(1); } } WORD Register(SOCKET Socket) { struct TPKT_header tpkt_hdr; //the TPKT header struct RCPPlus_header rcp_hdr, *prcp_hdr; //the RCP header and a pointer for //access inside an RX buffer struct h_RCP_ClientRegister *prcp_reg_hdr; //pointer to the RCP registration struct struct h_RCP_ClientRegisterReply *rcp_reg_reply_hdr; //pointer to access the RCP registration //reply inside a buffer WORD NbrOfMessages, n; //counts the number of messages in the //regitration command WORD Messages[]={0xFFC3, 0x01C0}; //the messages to be registerd OCTET *Payload , *pw; //pointer to access the payload section WORD PayloadLen, wTPKTsize; //length descriptors char RX_Buf[2048]; //buffer for data from socket WORD ClientID; //assigned client IP; to be taken //from the reply //fill out the RCP registration PayloadLen = sizeof(struct h_RCP_ClientRegister) + sizeof(Messages) + LOGIN_STRING_LENGTH; Payload = malloc(PayloadLen); if(!Payload) { return 0; } //use pw as a write pointer pw = Payload; //write fix header prcp_reg_hdr = (struct h_RCP_ClientRegister*)pw; prcp_reg_hdr->RegType = 0x01; //Normal registration prcp_reg_hdr->Reserved = 0; prcp_reg_hdr->ClientID = htons( 0x0000); //no ClientID in normal //registration prcp_reg_hdr->PwdEncryption = 0x00; //Plain text password encrytion prcp_reg_hdr->PwdLen = LOGIN_STRING_LENGTH; //Length of password //string (without '\0') NbrOfMessages = sizeof(Messages) / sizeof(WORD); prcp_reg_hdr->NbrOfMessages = htons( NbrOfMessages); //Nbr of messages that follow pw += sizeof(struct h_RCP_ClientRegister); //write message array for(n=0;n<NbrOfMessages;n++) { ((WORD*)pw)[n] = htons( Messages[n]); //fill in message requests } pw+=sizeof(Messages); //write password string memcpy(pw, LOGIN_STRING, LOGIN_STRING_LENGTH); //fill the password string itself //fill out the RCP header rcp_hdr.command = htons( 0xFF00); //Command 'RCP register' rcp_hdr.datatype = 0x0c; //Datatype P_OCTET rcp_hdr.rd_wr = 0x1; //WRITE rcp_hdr.version = 0x3; //Version 3 rcp_hdr.method = 0x00; //REQUEST rcp_hdr.reserved = 0; rcp_hdr.client_id = htons( 0x0000); //currently no ClientID available rcp_hdr.session_id = htonl( 0x00000000); //currently no SessionID available rcp_hdr.num = htons( 0x0000); //no num parameter needed rcp_hdr.len = htons( PayloadLen); //length of the payload section //fill out TPKT tpkt_hdr.version = 3; //TPKT version 3 tpkt_hdr.reserved = 0; wTPKTsize = PayloadLen + sizeof(rcp_hdr) + sizeof(tpkt_hdr); tpkt_hdr.size = htons( wTPKTsize); //overall length //(including TPKT itself) //send to packet to the network if( -1 == SendPacket(Socket, (OCTET*)&tpkt_hdr, sizeof(tpkt_hdr), (OCTET*)&rcp_hdr, sizeof(rcp_hdr), Payload, PayloadLen)) { printf("Send packet error\n"); exit(0); } //get the reply if( GetPacket(Socket, RX_Buf, sizeof(RX_Buf)) == sizeof(struct RCPPlus_header) + sizeof(struct h_RCP_ClientRegisterReply)) { //position to RCP header prcp_hdr = (struct RCPPlus_header*)RX_Buf; //check for error message if(prcp_hdr->method == 0x03) { OCTET *ErrorCode = RX_Buf + sizeof(struct RCPPlus_header); printf("An error was returned code %02x\n",*ErrorCode); return 0; } //position to payload section rcp_reg_reply_hdr = (struct h_RCP_ClientRegisterReply *)(RX_Buf + sizeof(struct RCPPlus_header)); //get assigned ClientID ClientID = ntohs(rcp_reg_reply_hdr->ClientID); printf("Register reply:\n"); printf("Result: %02x\n",rcp_reg_reply_hdr->Result); printf("Level: %02x\n",rcp_reg_reply_hdr->Level); printf("ClientID %04x\n",ClientID); } else { printf("Register failed\n"); } return ClientID; } DWORD SendConnectPrimitive(SOCKET Socket, WORD ClientID, WORD local_UDP_Port) { struct TPKT_header tpkt_hdr; //the TPKT header struct RCPPlus_header rcp_hdr, *prcp_hdr; //the RCP header and a pointer for //access inside an RX buffer char TX_Buf[256], RX_Buf[2048], *po; //buffer for data from socket struct con_prim_header *h_req; struct media_desc_video *md_video; WORD payload_len; DWORD sessionID=0; po = TX_Buf; h_req = (struct con_prim_header*)po; //fill out the RCP connect primitive h_req->method = METHOD_GET; h_req->media = MEDIA_CHANNEL_VIDEO; h_req->reverse_login = FALSE; po += sizeof(struct con_prim_header); md_video = (struct media_desc_video*)po; md_video->media_encapsulation = MEP_RTP; md_video->media_port = htons( local_UDP_Port ); md_video->media_host = htonl( 0 ); //transmitter shall take the destination address from the received packet md_video->media_ctrl_port = htons( 0 ); md_video->media_ctrl_host = htonl( 0 ); md_video->coding = htons( CODING_MPEG4 ); md_video->resolution = htons( RESOLUTION_CIF ); md_video->bandwidth = htons( 1000 ); md_video->coder = 0; md_video->line = 1; md_video->flags = 0; po += sizeof(struct media_desc_video); payload_len = (WORD)(po - TX_Buf); //fill out the RCP header rcp_hdr.command = htons( 0xFF0C); //Command 'RCP connect primitive' rcp_hdr.datatype = 0x0c; //Datatype P_OCTET rcp_hdr.rd_wr = 0x1; //WRITE rcp_hdr.version = 0x3; //Version 3 rcp_hdr.method = 0x00; //REQUEST rcp_hdr.reserved = 0; rcp_hdr.client_id = htons( ClientID); //use clientID from register reply rcp_hdr.session_id = htonl( 0x00000000); //currently no SessionID available rcp_hdr.num = htons( 0x0000); //no num parameter needed rcp_hdr.len = htons( payload_len); //length of the payload section //fill out TPKT tpkt_hdr.version = 3; //TPKT version 3 tpkt_hdr.reserved = 0; //overall length(including TPKT itself) tpkt_hdr.size = htons( (WORD)(payload_len + sizeof(rcp_hdr) + sizeof(tpkt_hdr))); //send to packet to the network if ( -1 == SendPacket(Socket, (OCTET*)&tpkt_hdr, sizeof(tpkt_hdr), (OCTET*)&rcp_hdr, sizeof(rcp_hdr), TX_Buf, payload_len)) { printf("Send packet error\n"); exit(0); } //get the reply if( GetPacket(Socket, RX_Buf, sizeof(RX_Buf)) == (int)(sizeof(struct RCPPlus_header) + (payload_len))) { //position to RCP header prcp_hdr = (struct RCPPlus_header*)RX_Buf; //check for error message if(prcp_hdr->method == 0x03) { OCTET *ErrorCode = RX_Buf + sizeof(struct RCPPlus_header); printf("An error was returned code %02x\n",*ErrorCode); return 0; } sessionID = ntohl(prcp_hdr->session_id); } else { printf("Connect to failed\n"); } return sessionID; } int SendConnectionKeepAlive(SOCKET Socket, WORD ClientID, DWORD SessionID) { struct TPKT_header tpkt_hdr; //the TPKT header struct RCPPlus_header rcp_hdr; //the RCP header //inside an RX buffer //fill out the RCP header rcp_hdr.command = htons( 0xFFC2); //Command 'Retrigger' rcp_hdr.datatype = 0x08; //Datatype T_DWORD rcp_hdr.rd_wr = 0x0; //READ rcp_hdr.version = 0x3; //Version 3 rcp_hdr.method = 0x00; //REQUEST rcp_hdr.reserved = 0; rcp_hdr.client_id = htons( ClientID); //use clientID from register reply rcp_hdr.session_id = htonl( SessionID); rcp_hdr.num = htons( 0x0000); //no num parameter needed rcp_hdr.len = 0; //no payload in READ command //fill out TPKT tpkt_hdr.version = 3; //TPKT version 3 tpkt_hdr.reserved = 0; //overall length(including TPKT itself) tpkt_hdr.size = htons( sizeof(rcp_hdr) + sizeof(tpkt_hdr)); //send to packet to the network if( -1 == SendPacket(Socket, (OCTET*)&tpkt_hdr, sizeof(tpkt_hdr), (OCTET*)&rcp_hdr, sizeof(rcp_hdr), NULL, 0)) { printf("Send packet error\n"); exit(0); } return 0; } int SendPacket ( SOCKET Socket, OCTET *TPKT_hdr, int TPKT_hdr_len, OCTET *RCP_hdr, int RCP_hdr_len, OCTET *Payload, int Payload_len ) { int err=0; printf("\n"); //send in 3 parts (this is allowed) //send the TPKT header err += send(Socket, (char*)TPKT_hdr, TPKT_hdr_len, 0); printf("snd TPKT hdr:\n"); view_hex(TPKT_hdr, TPKT_hdr_len); //send the RCP header err += send(Socket, (char*)RCP_hdr, RCP_hdr_len, 0); printf("snd RCP hdr:\n"); view_hex(RCP_hdr, RCP_hdr_len); //send the payload, if one if(Payload_len) { err += send(Socket, (char*)Payload, Payload_len, 0); printf("snd Payload:\n"); view_hex(Payload, Payload_len); } printf("\n"); //have all bytes been sent ? if (err != TPKT_hdr_len + RCP_hdr_len + Payload_len ) { return -1; } return 0; } int GetPacket(SOCKET Socket, OCTET *RX_Buf, int RX_BufMaxLen) { int len, wait_bytes; struct TPKT_header *ptpkt_hdr; if(RX_BufMaxLen < sizeof(struct TPKT_header)) { return -1; } //wait for reply //wait for the TPKT header to be arrived completely do { //just check; do not empty TCP buffer len = recv(Socket, RX_Buf, sizeof(struct TPKT_header), MSG_PEEK); if(len == SOCKET_ERROR) { //nothing to do return -1; } } while(len != sizeof(struct TPKT_header)); //all bytes arrived - empty TCP buffer recv(Socket, RX_Buf, sizeof(struct TPKT_header), 0); printf("rcv TPKT hdr:\n"); view_hex(RX_Buf, len); //Now the length of the entire RCP packet can be determined ptpkt_hdr = (struct TPKT_header*)RX_Buf; wait_bytes = ntohs(ptpkt_hdr->size) - sizeof(struct TPKT_header); if(RX_BufMaxLen < wait_bytes) { return -1; } do { //just check; do not empty TCP buffer len = recv(Socket, RX_Buf, wait_bytes, MSG_PEEK); } while(len != wait_bytes); //all bytes arrived - empty TCP buffer recv(Socket, RX_Buf, wait_bytes, 0); printf("rcv Payload:\n"); view_hex(RX_Buf, len); printf("\n"); return wait_bytes; } void view_hex(void *pv, int l) { //improved display of hex strings OCTET *p = (OCTET *)pv; int i; for (i=0;i<l;i++) { if(!(i%16) && i) printf("\n"); printf("%02x ",p[i]); } printf("\n"); }


Appendix: Sample code for connecting to a VideoJet using the TCP protocol

Table Of Contents

This is a sample application to interface the RCP Plus server inside the VideoJet.
This application provides eight steps:
For compiling the source code we suggest Microsoft Visual C++ V5.00. Other compiler should also work fine except the winsock initialization.
If you are not supplied with the source file, contact support@vcs.com and request request RCPConnect_TCP.c

RCPConnect_TCP.c

/* RCPConnect_TCP80.c Sample RCP Plus Version 3 application Tested with VJ400 V6.00, VJ1000 V1.0 Compilation tested under Microsoft Visual C++ 5.0 -- make sure wsock32.lib is included in project->settings->linker->Object/Library Modules !!! -- includes a possible output listing at the end of this file */ #include <stdio.h> #include <winsock.h> #define RCP_NETWORK_PORT (80) //the HTTP port //definable IP addresses for this test //the VJ for testing the RCP connection - this should be an video encoder #define REMOTE_VJ_IP 0x0a000001 //is "10.0.0.1" //password and length //this is a just a default password; replace this if a password is set on the VJ //if no password ist set, all password will be accepted #define LOGIN_STRING "+service:pass+" #define LOGIN_STRING_LENGTH 14 //some datatypes typedef unsigned long DWORD; typedef unsigned short WORD; typedef unsigned char OCTET; //structures for the RCP header and commands //the TPKT header struct TPKT_header { OCTET version; OCTET reserved; WORD size; }; //the RCP header struct RCPPlus_header { WORD command; OCTET datatype; OCTET rd_wr :4, //Note swap these lines on big endian machines !! version :4; //Note swap these lines on big endian machines !! OCTET method; OCTET reserved; WORD client_id; DWORD session_id; WORD num; WORD len; }; //the fix part of the RCP Register command struct h_RCP_ClientRegister { OCTET RegType; OCTET Reserved; WORD ClientID; OCTET PwdEncryption; OCTET PwdLen; WORD NbrOfMessages; //followed by //WORD Messages[n]; //OCTET Password[nn]; }; //the replay to the RCP register command struct h_RCP_ClientRegisterReply { OCTET Result; OCTET Level; WORD ClientID; }; //structures and defines for requesting video struct con_prim_header { OCTET method; OCTET media; OCTET status; OCTET reverse_login; DWORD reserved2; }; #define METHOD_GET 0x00 #define METHOD_PUT 0x01 #define MEDIA_DIRECTION_TX 0x00 #define MEDIA_DIRECTION_RX 0x01 #define MEDIA_CHANNEL_VIDEO 0x01 #define MEDIA_CHANNEL_AUDIO 0x02 #define MEDIA_CHANNEL_DATA 0x03 #define CODING_MPEG4 0x0004 #define CODING_MPEG2 0x0008 #define RESOLUTION_QCIF 0x0001 #define RESOLUTION_CIF 0x0002 #define RESOLUTION_2CIF 0x0004 #define RESOLUTION_4CIF 0x0008 #define RESOLUTION_CUSTOM 0x0010 #define MEP_RTP 0x01 #define MEP_TCP_OUTBAND 0x04 struct media_desc_video { OCTET media_encapsulation; OCTET flags; WORD media_port; DWORD media_host; OCTET coder; OCTET line; WORD media_ctrl_port; DWORD media_ctrl_host; WORD coding; WORD resolution; WORD reserved6; WORD bandwidth; }; int SendPacket( SOCKET Socket, OCTET *TPKT_hdr, int TPKT_hdr_len, OCTET *RCP_hdr, int RCP_hdr_len, OCTET *Payload, int Payload_len); int GetPacket(SOCKET Socket, OCTET *RX_Buf, int RX_BufMaxLen, int doprint); void view_hex(void *pv, int l); WORD Register( SOCKET Socket); DWORD SendConnectPrimitive(SOCKET Socket, WORD ClientID); int SendConnectionKeepAlive(SOCKET Socket, WORD ClientID, DWORD SessionID); int Disconnect(SOCKET Socket, WORD ClientID, DWORD SessionID); void main(int argc, char* argv[]) { WORD wVersionRequested; //for initial access to the winsocks WSADATA wsaData; //for initial access to the winsocks SOCKET Socket; //socket for the TCP connection struct sockaddr_in remote_sin; //remote address WORD ClientID; //to be assgined after RCP registration DWORD SessionID; //to be assgined after RCP 'connect to' char RX_Buf[2048]; //buffer for data from socket int len; //length of a received packet DWORD cnt=0; //used for a simple timeout mechanism unsigned long int nNoBlock=1; //for setting sockets to non-blocking SOCKET VideoDataSocket; //the video receivinbg socket OCTET PassOverToRCP[] = "GET /rcp_tunnel HTTP1.0\r\n\r\n"; OCTET PassVideoDataSocketToRCP[128]; int buffsize = 128 * 1024; //init winsock wVersionRequested = MAKEWORD( 2, 2 ); if ( WSAStartup( wVersionRequested, &wsaData ) != 0 ) { printf("Error starting winsock\n"); exit(0); } //create a socket and connect to the RCP server Socket = socket (AF_INET, SOCK_STREAM, 0); if (Socket != INVALID_SOCKET) { remote_sin.sin_family = AF_INET; remote_sin.sin_port = htons (RCP_NETWORK_PORT); remote_sin.sin_addr.s_addr = htonl (REMOTE_VJ_IP); connect(Socket, (struct sockaddr*)&remote_sin, sizeof(struct sockaddr)); } else { exit(0); } //the connect of the the socket goes to the HTTP server on the VideoJet //advice the HTTP server to pass the socket internally to the RCP server send(Socket, PassOverToRCP, strlen(PassOverToRCP), 0); printf("===========================================\n"); printf("\n\nTry to register...\n"); Sleep(2000); ClientID = Register(Socket); Sleep(3000); printf("===========================================\n"); printf("\n\nSend connect primitive...\n"); SessionID = SendConnectPrimitive(Socket, ClientID); //make RCP socket non-blocking if (SOCKET_ERROR == ioctlsocket(Socket, FIONBIO, &nNoBlock)) { exit(0); } printf("===========================================\n"); printf("\n\nOpen TCP socket for receiving video data...\n"); //open a TCP port for receiving the video data VideoDataSocket = socket(AF_INET,SOCK_STREAM,0); if (VideoDataSocket != INVALID_SOCKET) { remote_sin.sin_family = AF_INET; remote_sin.sin_port = htons (RCP_NETWORK_PORT); remote_sin.sin_addr.s_addr = htonl (REMOTE_VJ_IP); connect(VideoDataSocket, (struct sockaddr*)&remote_sin, sizeof(struct sockaddr)); } else { exit(0); } if (SOCKET_ERROR == setsockopt(VideoDataSocket, SOL_SOCKET, SO_RCVBUF, (char *)&buffsize, sizeof(buffsize))) { exit(0); } //the connect of the the socket goes to the HTTP server on the VideoJet //advice the HTTP server to pass the socket internally to the RCP server //signal that this is a video receive socket to the corresponding session ID sprintf(PassVideoDataSocketToRCP, "GET /media_tunnel/%08lx/%02x/%02x HTTP 1.0\r\n\r\n", SessionID, MEDIA_CHANNEL_VIDEO, MEDIA_DIRECTION_RX); if ((int)strlen(PassVideoDataSocketToRCP) != send(VideoDataSocket, PassVideoDataSocketToRCP, strlen(PassVideoDataSocketToRCP), 0)) { exit(0); } //make TCP socket non-blocking if (SOCKET_ERROR == ioctlsocket(VideoDataSocket, FIONBIO, &nNoBlock)) { exit(0); } while(1) { cnt++; //a very, very simple timeout mechanism; a timeout retrigger should be sent every 2-5 seconds if(!(cnt%100000)) { SendConnectionKeepAlive(Socket, ClientID, SessionID); } GetPacket(Socket, RX_Buf, sizeof(RX_Buf), TRUE); //don't check responses for the keep-alive at the moment; //receive the video data len = GetPacket(VideoDataSocket, RX_Buf, sizeof(RX_Buf), FALSE); if(len > 0) { printf("rx %d\n",len); } Sleep(1); } } WORD Register(SOCKET Socket) { struct TPKT_header tpkt_hdr; //the TPKT header struct RCPPlus_header rcp_hdr, *prcp_hdr; //the RCP header and a pointer for //access inside an RX buffer struct h_RCP_ClientRegister *prcp_reg_hdr; //pointer to the RCP registration struct struct h_RCP_ClientRegisterReply *rcp_reg_reply_hdr; //pointer to access the RCP registration //reply inside a buffer WORD NbrOfMessages, n; //counts the number of messages in the //regitration command WORD Messages[]={0xFFC3, 0x01C0}; //the messages to be registerd OCTET *Payload , *pw; //pointer to access the payload section WORD PayloadLen, wTPKTsize; //length descriptors char RX_Buf[2048]; //buffer for data from socket WORD ClientID; //assigned client IP; to be taken //from the reply //fill out the RCP registration PayloadLen = sizeof(struct h_RCP_ClientRegister) + sizeof(Messages) + LOGIN_STRING_LENGTH; Payload = malloc(PayloadLen); if(!Payload) { return 0; } //use pw as a write pointer pw = Payload; //write fix header prcp_reg_hdr = (struct h_RCP_ClientRegister*)pw; prcp_reg_hdr->RegType = 0x01; //Normal registration prcp_reg_hdr->Reserved = 0; prcp_reg_hdr->ClientID = htons( 0x0000); //no ClientID in normal //registration prcp_reg_hdr->PwdEncryption = 0x00; //Plain text password encrytion prcp_reg_hdr->PwdLen = LOGIN_STRING_LENGTH; //Length of password //string (without '\0') NbrOfMessages = sizeof(Messages) / sizeof(WORD); prcp_reg_hdr->NbrOfMessages = htons( NbrOfMessages); //Nbr of messages that follow pw += sizeof(struct h_RCP_ClientRegister); //write message array for(n=0;n<NbrOfMessages;n++) { ((WORD*)pw)[n] = htons( Messages[n]); //fill in message requests } pw+=sizeof(Messages); //write password string memcpy(pw, LOGIN_STRING, LOGIN_STRING_LENGTH); //fill the password string itself //fill out the RCP header rcp_hdr.command = htons( 0xFF00); //Command 'RCP register' rcp_hdr.datatype = 0x0c; //Datatype P_OCTET rcp_hdr.rd_wr = 0x1; //WRITE rcp_hdr.version = 0x3; //Version 3 rcp_hdr.method = 0x00; //REQUEST rcp_hdr.reserved = 0; rcp_hdr.client_id = htons( 0x0000); //currently no ClientID available rcp_hdr.session_id = htonl( 0x00000000); //currently no SessionID available rcp_hdr.num = htons( 0x0000); //no num parameter needed rcp_hdr.len = htons( PayloadLen); //length of the payload section //fill out TPKT tpkt_hdr.version = 3; //TPKT version 3 tpkt_hdr.reserved = 0; wTPKTsize = PayloadLen + sizeof(rcp_hdr) + sizeof(tpkt_hdr); tpkt_hdr.size = htons( wTPKTsize); //overall length //(including TPKT itself) //send to packet to the network if( -1 == SendPacket(Socket, (OCTET*)&tpkt_hdr, sizeof(tpkt_hdr), (OCTET*)&rcp_hdr, sizeof(rcp_hdr), Payload, PayloadLen)) { printf("Send packet error\n"); exit(0); } //get the reply if( GetPacket(Socket, RX_Buf, sizeof(RX_Buf), TRUE) == sizeof(struct RCPPlus_header) + sizeof(struct h_RCP_ClientRegisterReply)) { //position to RCP header prcp_hdr = (struct RCPPlus_header*)RX_Buf; //check for error message if(prcp_hdr->method == 0x03) { OCTET *ErrorCode = RX_Buf + sizeof(struct RCPPlus_header); printf("An error was returned code %02x\n",*ErrorCode); return 0; } //position to payload section rcp_reg_reply_hdr = (struct h_RCP_ClientRegisterReply *)(RX_Buf + sizeof(struct RCPPlus_header)); //get assigned ClientID ClientID = ntohs(rcp_reg_reply_hdr->ClientID); printf("Register reply:\n"); printf("Result: %02x\n",rcp_reg_reply_hdr->Result); printf("Level: %02x\n",rcp_reg_reply_hdr->Level); printf("ClientID %04x\n",ClientID); } else { printf("Register failed\n"); } return ClientID; } DWORD SendConnectPrimitive(SOCKET Socket, WORD ClientID) { struct TPKT_header tpkt_hdr; //the TPKT header struct RCPPlus_header rcp_hdr, *prcp_hdr; //the RCP header and a pointer for //access inside an RX buffer char TX_Buf[256], RX_Buf[2048], *po; //buffer for data from socket struct con_prim_header *h_req; struct media_desc_video *md_video; WORD payload_len; DWORD sessionID=0; po = TX_Buf; h_req = (struct con_prim_header*)po; //fill out the RCP connect primitive h_req->method = METHOD_GET; h_req->media = MEDIA_CHANNEL_VIDEO; h_req->reverse_login = FALSE; po += sizeof(struct con_prim_header); md_video = (struct media_desc_video*)po; md_video->media_encapsulation = MEP_TCP_OUTBAND; md_video->media_port = 0; md_video->media_host = htonl( 0 ); //transmitter shall take the destination address from the received packet md_video->media_ctrl_port = htons( 0 ); md_video->media_ctrl_host = htonl( 0 ); md_video->coding = htons( CODING_MPEG4 ); md_video->resolution = htons( RESOLUTION_CIF ); md_video->bandwidth = htons( 1000 ); md_video->coder = 0; md_video->line = 1; md_video->flags = 0; po += sizeof(struct media_desc_video); payload_len = (WORD)(po - TX_Buf); //fill out the RCP header rcp_hdr.command = htons( 0xFF0C); //Command 'RCP connect primitive' rcp_hdr.datatype = 0x0c; //Datatype P_OCTET rcp_hdr.rd_wr = 0x1; //WRITE rcp_hdr.version = 0x3; //Version 3 rcp_hdr.method = 0x00; //REQUEST rcp_hdr.reserved = 0; rcp_hdr.client_id = htons( ClientID); //use clientID from register reply rcp_hdr.session_id = htonl( 0x00000000); //currently no SessionID available rcp_hdr.num = htons( 0x0000); //no num parameter needed rcp_hdr.len = htons( payload_len); //length of the payload section //fill out TPKT tpkt_hdr.version = 3; //TPKT version 3 tpkt_hdr.reserved = 0; //overall length(including TPKT itself) tpkt_hdr.size = htons( (WORD)(payload_len + sizeof(rcp_hdr) + sizeof(tpkt_hdr))); //send to packet to the network if ( -1 == SendPacket(Socket, (OCTET*)&tpkt_hdr, sizeof(tpkt_hdr), (OCTET*)&rcp_hdr, sizeof(rcp_hdr), TX_Buf, payload_len)) { printf("Send packet error\n"); exit(0); } //get the reply if( GetPacket(Socket, RX_Buf, sizeof(RX_Buf), TRUE) == (int)(sizeof(struct RCPPlus_header) + (payload_len))) { //position to RCP header prcp_hdr = (struct RCPPlus_header*)RX_Buf; //check for error message if(prcp_hdr->method == 0x03) { OCTET *ErrorCode = RX_Buf + sizeof(struct RCPPlus_header); printf("An error was returned code %02x\n",*ErrorCode); return 0; } sessionID = ntohl(prcp_hdr->session_id); } else { printf("Connect to failed\n"); } return sessionID; } int SendConnectionKeepAlive(SOCKET Socket, WORD ClientID, DWORD SessionID) { struct TPKT_header tpkt_hdr; //the TPKT header struct RCPPlus_header rcp_hdr; //the RCP header //inside an RX buffer //Next task; read out the software version number //fill out the RCP header rcp_hdr.command = htons( 0xFFC2); //Command 'Retrigger' rcp_hdr.datatype = 0x08; //Datatype T_DWORD rcp_hdr.rd_wr = 0x0; //READ rcp_hdr.version = 0x3; //Version 3 rcp_hdr.method = 0x00; //REQUEST rcp_hdr.reserved = 0; rcp_hdr.client_id = htons( ClientID); //use clientID from register reply rcp_hdr.session_id = htonl( SessionID); rcp_hdr.num = htons( 0x0000); //no num parameter needed rcp_hdr.len = 0; //no payload in READ command //fill out TPKT tpkt_hdr.version = 3; //TPKT version 3 tpkt_hdr.reserved = 0; //overall length(including TPKT itself) tpkt_hdr.size = htons( sizeof(rcp_hdr) + sizeof(tpkt_hdr)); //send to packet to the network if( -1 == SendPacket(Socket, (OCTET*)&tpkt_hdr, sizeof(tpkt_hdr), (OCTET*)&rcp_hdr, sizeof(rcp_hdr), NULL, 0)) { printf("Send packet error\n"); exit(0); } return 0; } int SendPacket ( SOCKET Socket, OCTET *TPKT_hdr, int TPKT_hdr_len, OCTET *RCP_hdr, int RCP_hdr_len, OCTET *Payload, int Payload_len ) { int err=0; printf("\n"); //send in 3 parts (this is allowed) //send the TPKT header err += send(Socket, (char*)TPKT_hdr, TPKT_hdr_len, 0); printf("snd TPKT hdr:\n"); view_hex(TPKT_hdr, TPKT_hdr_len); //send the RCP header err += send(Socket, (char*)RCP_hdr, RCP_hdr_len, 0); printf("snd RCP hdr:\n"); view_hex(RCP_hdr, RCP_hdr_len); //send the payload, if one if(Payload_len) { err += send(Socket, (char*)Payload, Payload_len, 0); printf("snd Payload:\n"); view_hex(Payload, Payload_len); } printf("\n"); //have all bytes been sent ? if (err != TPKT_hdr_len + RCP_hdr_len + Payload_len ) { return -1; } return 0; } int GetPacket(SOCKET Socket, OCTET *RX_Buf, int RX_BufMaxLen, int doprint) { int len, wait_bytes; struct TPKT_header *ptpkt_hdr; if(RX_BufMaxLen < sizeof(struct TPKT_header)) { return -1; } //wait for reply //wait for the TPKT header to be arrived completely do { //just check; do not empty TCP buffer len = recv(Socket, RX_Buf, sizeof(struct TPKT_header), MSG_PEEK); if(len == SOCKET_ERROR) { //nothing to do return -1; } } while(len != sizeof(struct TPKT_header)); //all bytes arrived - empty TCP buffer recv(Socket, RX_Buf, sizeof(struct TPKT_header), 0); if(doprint) { printf("rcv TPKT hdr:\n"); view_hex(RX_Buf, len); } //Now the length of the entire RCP packet can be determined ptpkt_hdr = (struct TPKT_header*)RX_Buf; wait_bytes = ntohs(ptpkt_hdr->size) - sizeof(struct TPKT_header); if(RX_BufMaxLen < wait_bytes) { return -1; } do { //just check; do not empty TCP buffer len = recv(Socket, RX_Buf, wait_bytes, MSG_PEEK); } while(len != wait_bytes); //all bytes arrived - empty TCP buffer recv(Socket, RX_Buf, wait_bytes, 0); if(doprint) { printf("rcv Payload:\n"); view_hex(RX_Buf, len); printf("\n"); } return wait_bytes; } void view_hex(void *pv, int l) { //improved display of hex strings OCTET *p = (OCTET *)pv; int i; for (i=0;i<l;i++) { if(!(i%16) && i) printf("\n"); printf("%02x ",p[i]); } printf("\n"); }


Appendix: Sample code for connecting to VideoJet’s internal HDD and start replay

Table Of Contents

This is a sample application to interface the RCP Plus server inside the VideoJet.
This application provides eight steps:
For compiling the source code we suggest Microsoft Visual C++ V5.00. Other compiler should also work fine except the winsock initialization.
If you are not supplied with the source file, contact support@vcs.com and request RCPConnect_REC.c

RCPConnect_REC.c

/* RCPConnect_UDP.c Sample RCP Plus Version 3 application Tested with VJ400 V6.00, VJ1000 V1.0 Compilation tested under Microsoft Visual C++ 5.0 -- make sure wsock32.lib is included in project->settings->linker->Object/Library Modules !!! -- includes a possible output listing at the end of this file */ #include <stdio.h> #include <winsock.h> #define RCP_NETWORK_PORT (1756) //definable IP addresses for this test //the VJ for testing the RCP connection - this should be an video encoder #define REMOTE_VJ_IP 0x0a000001 //is "10.0.0.1" //password and length //this is a just a default password; replace this if a password is set on the VJ //if no password ist set, all password will be accepted #define LOGIN_STRING "+service:pass+" #define LOGIN_STRING_LENGTH 14 //port for UDP video receiving; this could also be a dynamically assignd port from the stack //see socket binding #define VIDEO_RX_PORT 1234 //some datatypes typedef unsigned long DWORD; typedef unsigned short WORD; typedef unsigned char OCTET; //structures for the RCP header and commands //the TPKT header struct TPKT_header { OCTET version; OCTET reserved; WORD size; }; //the RCP header struct RCPPlus_header { WORD command; OCTET datatype; OCTET rd_wr :4, //Note swap these lines on big endian machines !! version :4; //Note swap these lines on big endian machines !! OCTET method; OCTET reserved; WORD client_id; DWORD session_id; WORD num; WORD len; }; //the fix part of the RCP Register command struct h_RCP_ClientRegister { OCTET RegType; OCTET Reserved; WORD ClientID; OCTET PwdEncryption; OCTET PwdLen; WORD NbrOfMessages; //followed by //WORD Messages[n]; //OCTET Password[nn]; }; //the replay to the RCP register command struct h_RCP_ClientRegisterReply { OCTET Result; OCTET Level; WORD ClientID; }; //structures and defines for requesting video struct con_prim_header { OCTET method; OCTET media; OCTET status; OCTET reverse_login; DWORD reserved2; }; #define METHOD_GET 0x00 #define METHOD_PUT 0x01 #define MEDIA_CHANNEL_VIDEO 0x01 #define MEDIA_CHANNEL_AUDIO 0x02 #define MEDIA_CHANNEL_DATA 0x03 #define CODING_MPEG4 0x0004 #define CODING_MPEG2 0x0008 #define CODING_RECORDED 0x4000 #define RESOLUTION_QCIF 0x0001 #define RESOLUTION_CIF 0x0002 #define RESOLUTION_2CIF 0x0004 #define RESOLUTION_4CIF 0x0008 #define RESOLUTION_CUSTOM 0x0010 #define MEP_RTP 0x01 #define MEP_TCP_OUTBAND 0x04 struct media_desc_video { OCTET media_encapsulation; OCTET flags; WORD media_port; DWORD media_host; OCTET coder; OCTET line; WORD media_ctrl_port; DWORD media_ctrl_host; WORD coding; WORD resolution; WORD reserved6; WORD bandwidth; }; //structures for replay typedef DWORD SEC_SINCE_2000; struct HdPartitionFileInfo { SEC_SINCE_2000 secBeg; SEC_SINCE_2000 secEnd; DWORD flags; DWORD ID; }; #define CONNECTED 0 #define WAIT_FOR_FILE_LIST 1 #define WAIT_FOR_STOPTIME_ACK 2 #define WAIT_FOR_STARTTIME_ACK 3 #define REPLAY_RUNNING 4 int SendPacket( SOCKET Socket, OCTET *TPKT_hdr, int TPKT_hdr_len, OCTET *RCP_hdr, int RCP_hdr_len, OCTET *Payload, int Payload_len); int GetPacket(SOCKET Socket, OCTET *RX_Buf, int RX_BufMaxLen); void view_hex(void *pv, int l); WORD Register( SOCKET Socket); DWORD SendConnectPrimitive(SOCKET Socket, WORD ClientID, WORD local_UDP_Port); int SendConnectionKeepAlive(SOCKET Socket, WORD ClientID, DWORD SessionID); int RequestFileList(SOCKET Socket, WORD ClientID); struct HdPartitionFileInfo * ReadFileList(OCTET *list, DWORD len); int RequestReplayStoptime(SOCKET Socket, WORD ClientID, DWORD SessionID, SEC_SINCE_2000 Stoptime); int RequestReplayStartime(SOCKET Socket, WORD ClientID, DWORD SessionID, SEC_SINCE_2000 Starttime); int RequestReplayGo(SOCKET Socket, WORD ClientID, DWORD SessionID, int pitch); int WaitForResponse(WORD cmd, OCTET *reply, DWORD len); void DisplayCurrentReplayTime(OCTET *RX_Buf, DWORD len); void main(int argc, char* argv[]) { WORD wVersionRequested; //for initial access to the winsocks WSADATA wsaData; //for initial access to the winsocks SOCKET Socket; //socket for the TCP connection struct sockaddr_in remote_sin; //remote address WORD ClientID; //to be assgined after RCP registration DWORD SessionID; //to be assgined after RCP 'connect to' char RX_Buf[8096]; //buffer for data from socket int len; //length of a received packet DWORD cnt=0; //used for a simple timeout mechanism unsigned long int nNoBlock=1; //for setting sockets to non-blocking struct sockaddr_in stFrom; //binding structure for UDP rx socket SOCKET VideoDataSocket; //the video receivinbg socket int replay_state; //status of replay sequence struct HdPartitionFileInfo *p; //init winsock wVersionRequested = MAKEWORD( 2, 2 ); if ( WSAStartup( wVersionRequested, &wsaData ) != 0 ) { printf("Error starting winsock\n"); exit(0); } //create a socket and connect to the RCP server Socket = socket (AF_INET, SOCK_STREAM, 0); if (Socket != INVALID_SOCKET) { remote_sin.sin_family = AF_INET; remote_sin.sin_port = htons (RCP_NETWORK_PORT); remote_sin.sin_addr.s_addr = htonl (REMOTE_VJ_IP); connect(Socket, (struct sockaddr*)&remote_sin, sizeof(struct sockaddr)); } else { exit(0); } printf("===========================================\n"); printf("\n\nTry to register...\n"); Sleep(2000); ClientID = Register(Socket); Sleep(3000); printf("===========================================\n"); printf("\n\nOpen UDP socket for receiving video data...\n"); //open a UDP port for receiving the video data VideoDataSocket = socket(AF_INET,SOCK_DGRAM,0); if (VideoDataSocket == SOCKET_ERROR) { exit(0); } // Bind a receive port to the socket stFrom.sin_family = AF_INET; stFrom.sin_port = htons(VIDEO_RX_PORT); stFrom.sin_addr.s_addr = htonl(INADDR_ANY); if (SOCKET_ERROR == bind (VideoDataSocket, (struct sockaddr *)(&stFrom), sizeof (stFrom))) { exit(0); } //make UDP socket non-blocking if (SOCKET_ERROR == ioctlsocket(VideoDataSocket, FIONBIO, &nNoBlock)) { exit(0); } printf("===========================================\n"); printf("Send connect primitive\n"); SessionID = SendConnectPrimitive(Socket, ClientID, VIDEO_RX_PORT); //make RCP socket non-blocking if (SOCKET_ERROR == ioctlsocket(Socket, FIONBIO, &nNoBlock)) { exit(0); } replay_state = CONNECTED; while(1) { cnt++; switch(replay_state) { case CONNECTED: //first of all, request the current file list from the VideoJet printf("===========================================\n"); printf("Request file list\n"); RequestFileList(Socket, ClientID); replay_state = WAIT_FOR_FILE_LIST; break; case WAIT_FOR_FILE_LIST: //when a packet arrives,... len = GetPacket(Socket, RX_Buf, sizeof(RX_Buf)); if(len > 0) { //check wheather this is the reply to the file list command,... if (WaitForResponse(0x0901, RX_Buf, len)) { //if so, extrace the first entry,... if ( (p = ReadFileList(RX_Buf, len)) ) { //and request setting the stop time for the next replay. printf("===========================================\n"); printf("Set the stop time for replay\n"); RequestReplayStoptime(Socket, ClientID, SessionID, p->secEnd); replay_state = WAIT_FOR_STOPTIME_ACK; } } } break; case WAIT_FOR_STOPTIME_ACK: //when a packet arrives,... len = GetPacket(Socket, RX_Buf, sizeof(RX_Buf)); if(len > 0) { //check wheather this is the reply to the stop time command,... if (WaitForResponse(0x0904, RX_Buf, len)) { //if so, request setting the start time of the next replay. printf("===========================================\n"); printf("Set the start time for replay\n"); RequestReplayStartime(Socket, ClientID, SessionID, p->secBeg); replay_state = WAIT_FOR_STARTTIME_ACK; } } break; case WAIT_FOR_STARTTIME_ACK: //when a packet arrives,... len = GetPacket(Socket, RX_Buf, sizeof(RX_Buf)); if(len > 0) { //check wheather this is the reply to the start time command,... if (WaitForResponse(0x0905, RX_Buf, len)) { //if so, request starting the replay with 100% speed printf("===========================================\n"); printf("Start replay with 100%% speed\n"); RequestReplayGo(Socket, ClientID, SessionID, 100); //NOTE: the reply to the start command ist not checked. replay_state = REPLAY_RUNNING; } } break; case REPLAY_RUNNING: //a very, very simple timeout mechanism; a timeout retrigger should be sent every 2-5 seconds if(!(cnt%100)) { SendConnectionKeepAlive(Socket, ClientID, SessionID); } len = GetPacket(Socket, RX_Buf, sizeof(RX_Buf)); //don't check responses for the keep-alive at the moment; if(len > 0) { //check wheather this is the reply to the start time command,... if (WaitForResponse(0x0905, RX_Buf, len)) { DisplayCurrentReplayTime(RX_Buf, len); } } //receive the video data len = recvfrom(VideoDataSocket, RX_Buf, sizeof(RX_Buf), 0, NULL, NULL); if(len > 0) { printf("rx %d\n",len); } break; } Sleep(1); } } WORD Register(SOCKET Socket) { struct TPKT_header tpkt_hdr; //the TPKT header struct RCPPlus_header rcp_hdr, *prcp_hdr; //the RCP header and a pointer for //access inside an RX buffer struct h_RCP_ClientRegister *prcp_reg_hdr; //pointer to the RCP registration struct struct h_RCP_ClientRegisterReply *rcp_reg_reply_hdr; //pointer to access the RCP registration //reply inside a buffer WORD NbrOfMessages, n; //counts the number of messages in the //regitration command WORD Messages[]={0xFFC3, 0x0905}; //the messages to be registerd OCTET *Payload , *pw; //pointer to access the payload section WORD PayloadLen, wTPKTsize; //length descriptors char RX_Buf[2048]; //buffer for data from socket WORD ClientID; //assigned client IP; to be taken //from the reply //fill out the RCP registration PayloadLen = sizeof(struct h_RCP_ClientRegister) + sizeof(Messages) + LOGIN_STRING_LENGTH; Payload = malloc(PayloadLen); if(!Payload) { return 0; } //use pw as a write pointer pw = Payload; //write fix header prcp_reg_hdr = (struct h_RCP_ClientRegister*)pw; prcp_reg_hdr->RegType = 0x01; //Normal registration prcp_reg_hdr->Reserved = 0; prcp_reg_hdr->ClientID = htons( 0x0000); //no ClientID in normal //registration prcp_reg_hdr->PwdEncryption = 0x00; //Plain text password encrytion prcp_reg_hdr->PwdLen = LOGIN_STRING_LENGTH; //Length of password //string (without '\0') NbrOfMessages = sizeof(Messages) / sizeof(WORD); prcp_reg_hdr->NbrOfMessages = htons( NbrOfMessages); //Nbr of messages that follow pw += sizeof(struct h_RCP_ClientRegister); //write message array for(n=0;n<NbrOfMessages;n++) { ((WORD*)pw)[n] = htons( Messages[n]); //fill in message requests } pw+=sizeof(Messages); //write password string memcpy(pw, LOGIN_STRING, LOGIN_STRING_LENGTH); //fill the password string itself //fill out the RCP header rcp_hdr.command = htons( 0xFF00); //Command 'RCP register' rcp_hdr.datatype = 0x0c; //Datatype P_OCTET rcp_hdr.rd_wr = 0x1; //WRITE rcp_hdr.version = 0x3; //Version 3 rcp_hdr.method = 0x00; //REQUEST rcp_hdr.reserved = 0; rcp_hdr.client_id = htons( 0x0000); //currently no ClientID available rcp_hdr.session_id = htonl( 0x00000000); //currently no SessionID available rcp_hdr.num = htons( 0x0000); //no num parameter needed rcp_hdr.len = htons( PayloadLen); //length of the payload section //fill out TPKT tpkt_hdr.version = 3; //TPKT version 3 tpkt_hdr.reserved = 0; wTPKTsize = PayloadLen + sizeof(rcp_hdr) + sizeof(tpkt_hdr); tpkt_hdr.size = htons( wTPKTsize); //overall length //(including TPKT itself) //send to packet to the network if( -1 == SendPacket(Socket, (OCTET*)&tpkt_hdr, sizeof(tpkt_hdr), (OCTET*)&rcp_hdr, sizeof(rcp_hdr), Payload, PayloadLen)) { printf("Send packet error\n"); exit(0); } //get the reply if( GetPacket(Socket, RX_Buf, sizeof(RX_Buf)) == sizeof(struct RCPPlus_header) + sizeof(struct h_RCP_ClientRegisterReply)) { //position to RCP header prcp_hdr = (struct RCPPlus_header*)RX_Buf; //check for error message if(prcp_hdr->method == 0x03) { OCTET *ErrorCode = RX_Buf + sizeof(struct RCPPlus_header); printf("An error was returned code %02x\n",*ErrorCode); return 0; } //position to payload section rcp_reg_reply_hdr = (struct h_RCP_ClientRegisterReply *)(RX_Buf + sizeof(struct RCPPlus_header)); //get assigned ClientID ClientID = ntohs(rcp_reg_reply_hdr->ClientID); printf("Register reply:\n"); printf("Result: %02x\n",rcp_reg_reply_hdr->Result); printf("Level: %02x\n",rcp_reg_reply_hdr->Level); printf("ClientID %04x\n",ClientID); } else { printf("Register failed\n"); } return ClientID; } DWORD SendConnectPrimitive(SOCKET Socket, WORD ClientID, WORD local_UDP_Port) { struct TPKT_header tpkt_hdr; //the TPKT header struct RCPPlus_header rcp_hdr, *prcp_hdr; //the RCP header and a pointer for //access inside an RX buffer char TX_Buf[256], RX_Buf[2048], *po; //buffer for data from socket struct con_prim_header *h_req; struct media_desc_video *md_video; WORD payload_len; DWORD sessionID=0; po = TX_Buf; h_req = (struct con_prim_header*)po; //fill out the RCP connect primitive h_req->method = METHOD_GET; h_req->media = MEDIA_CHANNEL_VIDEO; h_req->reverse_login = FALSE; po += sizeof(struct con_prim_header); md_video = (struct media_desc_video*)po; md_video->media_encapsulation = MEP_RTP; md_video->media_port = htons( local_UDP_Port ); md_video->media_host = htonl( 0 ); //transmitter shall take the destination address from the received packet md_video->media_ctrl_port = htons( 0 ); md_video->media_ctrl_host = htonl( 0 ); md_video->coding = htons( CODING_MPEG4 | CODING_RECORDED); md_video->resolution = htons( RESOLUTION_CIF ); md_video->bandwidth = htons( 1000 ); md_video->coder = 0; md_video->line = 1; md_video->flags = 0; po += sizeof(struct media_desc_video); payload_len = (WORD)(po - TX_Buf); //fill out the RCP header rcp_hdr.command = htons( 0xFF0C); //Command 'RCP connect primitive' rcp_hdr.datatype = 0x0c; //Datatype P_OCTET rcp_hdr.rd_wr = 0x1; //WRITE rcp_hdr.version = 0x3; //Version 3 rcp_hdr.method = 0x00; //REQUEST rcp_hdr.reserved = 0; rcp_hdr.client_id = htons( ClientID); //use clientID from register reply rcp_hdr.session_id = htonl( 0x00000000); //currently no SessionID available rcp_hdr.num = htons( 0x0000); //no num parameter needed rcp_hdr.len = htons( payload_len); //length of the payload section //fill out TPKT tpkt_hdr.version = 3; //TPKT version 3 tpkt_hdr.reserved = 0; //overall length(including TPKT itself) tpkt_hdr.size = htons( (WORD)(payload_len + sizeof(rcp_hdr) + sizeof(tpkt_hdr))); //send to packet to the network if ( -1 == SendPacket(Socket, (OCTET*)&tpkt_hdr, sizeof(tpkt_hdr), (OCTET*)&rcp_hdr, sizeof(rcp_hdr), TX_Buf, payload_len)) { printf("Send packet error\n"); exit(0); } //get the reply if( GetPacket(Socket, RX_Buf, sizeof(RX_Buf)) == (int)(sizeof(struct RCPPlus_header) + (payload_len))) { //position to RCP header prcp_hdr = (struct RCPPlus_header*)RX_Buf; //check for error message if(prcp_hdr->method == 0x03) { OCTET *ErrorCode = RX_Buf + sizeof(struct RCPPlus_header); printf("An error was returned code %02x\n",*ErrorCode); return 0; } sessionID = ntohl(prcp_hdr->session_id); } else { printf("Connect to failed\n"); } return sessionID; } int SendConnectionKeepAlive(SOCKET Socket, WORD ClientID, DWORD SessionID) { struct TPKT_header tpkt_hdr; //the TPKT header struct RCPPlus_header rcp_hdr; //the RCP header //inside an RX buffer //fill out the RCP header rcp_hdr.command = htons( 0xFFC2); //Command 'Retrigger' rcp_hdr.datatype = 0x08; //Datatype T_DWORD rcp_hdr.rd_wr = 0x0; //READ rcp_hdr.version = 0x3; //Version 3 rcp_hdr.method = 0x00; //REQUEST rcp_hdr.reserved = 0; rcp_hdr.client_id = htons( ClientID); //use clientID from register reply rcp_hdr.session_id = htonl( SessionID); rcp_hdr.num = htons( 0x0000); //no num parameter needed rcp_hdr.len = 0; //no payload in READ command //fill out TPKT tpkt_hdr.version = 3; //TPKT version 3 tpkt_hdr.reserved = 0; //overall length(including TPKT itself) tpkt_hdr.size = htons( sizeof(rcp_hdr) + sizeof(tpkt_hdr)); //send to packet to the network if( -1 == SendPacket(Socket, (OCTET*)&tpkt_hdr, sizeof(tpkt_hdr), (OCTET*)&rcp_hdr, sizeof(rcp_hdr), NULL, 0)) { printf("Send packet error\n"); exit(0); } return 0; } int RequestFileList(SOCKET Socket, WORD ClientID) { struct TPKT_header tpkt_hdr; //the TPKT header struct RCPPlus_header rcp_hdr; //the RCP header //inside an RX buffer //fill out the RCP header rcp_hdr.command = htons( 0x0901); //Command 'File info' rcp_hdr.datatype = 0x0c; //Datatype P_OCTET rcp_hdr.rd_wr = 0x0; //READ rcp_hdr.version = 0x3; //Version 3 rcp_hdr.method = 0x00; //REQUEST rcp_hdr.reserved = 0; rcp_hdr.client_id = htons( ClientID); //use clientID from register reply rcp_hdr.session_id = htonl( 0); //session ID is not needed for this command rcp_hdr.num = htons( 0x0001); //num parameter for partition number rcp_hdr.len = 0; //no payload in READ command //fill out TPKT tpkt_hdr.version = 3; //TPKT version 3 tpkt_hdr.reserved = 0; //overall length(including TPKT itself) tpkt_hdr.size = htons( sizeof(rcp_hdr) + sizeof(tpkt_hdr)); //send to packet to the network if( -1 == SendPacket(Socket, (OCTET*)&tpkt_hdr, sizeof(tpkt_hdr), (OCTET*)&rcp_hdr, sizeof(rcp_hdr), NULL, 0)) { printf("Send packet error\n"); exit(0); } return 0; } struct HdPartitionFileInfo *ReadFileList(OCTET *list, DWORD len) { struct RCPPlus_header *prcp_hdr; struct HdPartitionFileInfo *pfileinfo; DWORD entries; //interpret the reply from the file list command, the list is a array of type 'struct HdPartitionFileInfo' //we do only read the first entry if there is one prcp_hdr = (struct RCPPlus_header*)list; //we want to replay the first entry pfileinfo = (struct HdPartitionFileInfo *) (list + sizeof(struct RCPPlus_header)); entries = (len - sizeof(struct RCPPlus_header)) / sizeof(struct HdPartitionFileInfo); if(entries > 0) { pfileinfo->secBeg = ntohl(pfileinfo->secBeg); pfileinfo->secEnd = ntohl(pfileinfo->secEnd); pfileinfo->flags = ntohl(pfileinfo->flags); pfileinfo->ID = ntohl(pfileinfo->ID); printf("===========================================\n"); printf("Select first entry from file list\n"); printf("Recording from %lu ... %lu\n",pfileinfo->secBeg, pfileinfo->secEnd); return pfileinfo; } else { printf("no recording available for replay\n"); exit(0); } return NULL; } int WaitForResponse(WORD cmd, OCTET *reply, DWORD len) { struct RCPPlus_header *prcp_hdr; //check the received packet if this is a vaild reply to a given command prcp_hdr = (struct RCPPlus_header*)reply; if( ntohs(prcp_hdr->command) == cmd ) { if(prcp_hdr->method == 0x03) { printf("error in response\n"); exit(0); } else { return TRUE; } } return FALSE; } int RequestReplayStoptime(SOCKET Socket, WORD ClientID, DWORD SessionID, SEC_SINCE_2000 Stoptime) { struct TPKT_header tpkt_hdr; //the TPKT header struct RCPPlus_header rcp_hdr; //the RCP header DWORD Payload[2]; //send the stop time, the first dword carries the stop seconds from the file list, //the seconds dword is currently not used Payload[0] = htonl(Stoptime); Payload[1] = htonl(0); //fill out the RCP header rcp_hdr.command = htons( 0x0904); //Command 'RCP stop time' rcp_hdr.datatype = 0x0c; //Datatype P_OCTET rcp_hdr.rd_wr = 0x1; //WRITE rcp_hdr.version = 0x3; //Version 3 rcp_hdr.method = 0x00; //REQUEST rcp_hdr.reserved = 0; rcp_hdr.client_id = htons( ClientID); //use clientID from register reply rcp_hdr.session_id = htonl( SessionID); rcp_hdr.num = htons( 0x0000); //no num parameter needed rcp_hdr.len = htons( sizeof(Payload)); //length of the payload section //fill out TPKT tpkt_hdr.version = 3; //TPKT version 3 tpkt_hdr.reserved = 0; //overall length(including TPKT itself) tpkt_hdr.size = htons( sizeof(Payload) + sizeof(rcp_hdr) + sizeof(tpkt_hdr)); //send to packet to the network if ( -1 == SendPacket(Socket, (OCTET*)&tpkt_hdr, sizeof(tpkt_hdr), (OCTET*)&rcp_hdr, sizeof(rcp_hdr), (OCTET*)&Payload, sizeof(Payload))) { printf("Send packet error\n"); exit(0); } return 0; } int RequestReplayStartime(SOCKET Socket, WORD ClientID, DWORD SessionID, SEC_SINCE_2000 Starttime) { struct TPKT_header tpkt_hdr; //the TPKT header struct RCPPlus_header rcp_hdr; DWORD Payload[2]; //send the stop time, the first dword carries the start seconds from the file list, //the seconds dword is currently not used Payload[0] = htonl(Starttime); Payload[1] = htonl(0); //fill out the RCP header rcp_hdr.command = htons( 0x0905); //Command 'RCP stop time' rcp_hdr.datatype = 0x0c; //Datatype P_OCTET rcp_hdr.rd_wr = 0x1; //WRITE rcp_hdr.version = 0x3; //Version 3 rcp_hdr.method = 0x00; //REQUEST rcp_hdr.reserved = 0; rcp_hdr.client_id = htons( ClientID); //use clientID from register reply rcp_hdr.session_id = htonl( SessionID); rcp_hdr.num = htons( 0x0000); //no num parameter needed rcp_hdr.len = htons( sizeof(Payload)); //length of the payload section //fill out TPKT tpkt_hdr.version = 3; //TPKT version 3 tpkt_hdr.reserved = 0; //overall length(including TPKT itself) tpkt_hdr.size = htons( sizeof(Payload) + sizeof(rcp_hdr) + sizeof(tpkt_hdr)); //send to packet to the network if ( -1 == SendPacket(Socket, (OCTET*)&tpkt_hdr, sizeof(tpkt_hdr), (OCTET*)&rcp_hdr, sizeof(rcp_hdr), (OCTET*)&Payload, sizeof(Payload))) { printf("Send packet error\n"); exit(0); } return 0; } int RequestReplayGo(SOCKET Socket, WORD ClientID, DWORD SessionID, int pitch) { struct TPKT_header tpkt_hdr; //the TPKT header struct RCPPlus_header rcp_hdr; int Payload; //send the replay start command with the selected speed Payload = htonl(pitch); //fill out the RCP header rcp_hdr.command = htons( 0x0902); //Command 'RCP stop time' rcp_hdr.datatype = 0x04; //Datatype T_INT rcp_hdr.rd_wr = 0x1; //WRITE rcp_hdr.version = 0x3; //Version 3 rcp_hdr.method = 0x00; //REQUEST rcp_hdr.reserved = 0; rcp_hdr.client_id = htons( ClientID); //use clientID from register reply rcp_hdr.session_id = htonl( SessionID); rcp_hdr.num = htons( 0x0000); //no num parameter needed rcp_hdr.len = htons( sizeof(Payload)); //length of the payload section //fill out TPKT tpkt_hdr.version = 3; //TPKT version 3 tpkt_hdr.reserved = 0; //overall length(including TPKT itself) tpkt_hdr.size = htons( sizeof(Payload) + sizeof(rcp_hdr) + sizeof(tpkt_hdr)); //send to packet to the network if ( -1 == SendPacket(Socket, (OCTET*)&tpkt_hdr, sizeof(tpkt_hdr), (OCTET*)&rcp_hdr, sizeof(rcp_hdr), (OCTET*)&Payload, sizeof(Payload))) { printf("Send packet error\n"); exit(0); } return 0; } void DisplayCurrentReplayTime(OCTET *RX_Buf, DWORD len) { DWORD *p = (DWORD*)(RX_Buf + sizeof(struct RCPPlus_header)); *p = ntohl(*p); printf("Current replay at %lu\n", *p); } int SendPacket ( SOCKET Socket, OCTET *TPKT_hdr, int TPKT_hdr_len, OCTET *RCP_hdr, int RCP_hdr_len, OCTET *Payload, int Payload_len ) { int err=0; printf("\n"); //send in 3 parts (this is allowed) //send the TPKT header err += send(Socket, (char*)TPKT_hdr, TPKT_hdr_len, 0); printf("snd TPKT hdr:\n"); view_hex(TPKT_hdr, TPKT_hdr_len); //send the RCP header err += send(Socket, (char*)RCP_hdr, RCP_hdr_len, 0); printf("snd RCP hdr:\n"); view_hex(RCP_hdr, RCP_hdr_len); //send the payload, if one if(Payload_len) { err += send(Socket, (char*)Payload, Payload_len, 0); printf("snd Payload:\n"); view_hex(Payload, Payload_len); } printf("\n"); //have all bytes been sent ? if (err != TPKT_hdr_len + RCP_hdr_len + Payload_len ) { return -1; } return 0; } int GetPacket(SOCKET Socket, OCTET *RX_Buf, int RX_BufMaxLen) { int len, wait_bytes; struct TPKT_header *ptpkt_hdr; if(RX_BufMaxLen < sizeof(struct TPKT_header)) { return -1; } //wait for reply //wait for the TPKT header to be arrived completely do { //just check; do not empty TCP buffer len = recv(Socket, RX_Buf, sizeof(struct TPKT_header), MSG_PEEK); if(len == SOCKET_ERROR) { //nothing to do return -1; } } while(len != sizeof(struct TPKT_header)); //all bytes arrived - empty TCP buffer recv(Socket, RX_Buf, sizeof(struct TPKT_header), 0); printf("rcv TPKT hdr:\n"); view_hex(RX_Buf, len); //Now the length of the entire RCP packet can be determined ptpkt_hdr = (struct TPKT_header*)RX_Buf; wait_bytes = ntohs(ptpkt_hdr->size) - sizeof(struct TPKT_header); if(RX_BufMaxLen < wait_bytes) { printf("pkt len exceeds\n"); return -1; } do { //just check; do not empty TCP buffer len = recv(Socket, RX_Buf, wait_bytes, MSG_PEEK); } while(len != wait_bytes); //all bytes arrived - empty TCP buffer recv(Socket, RX_Buf, wait_bytes, 0); printf("rcv Payload:\n"); view_hex(RX_Buf, len); printf("\n"); return wait_bytes; } void view_hex(void *pv, int l) { //improved display of hex strings OCTET *p = (OCTET *)pv; int i; for (i=0;i<l;i++) { if(!(i%16) && i) printf("\n"); printf("%02x ",p[i]); } printf("\n"); }


Appendix: Starting a replay service on the VCS VideoJet using the VCS MPEG-Active-X

Table Of Contents

The VCS Active-X control is a software which provides
The VCS Active-X has its own API. Please also refer to this documentation. The VCS Active-X is not essential for starting a reply service; all commands can be send using a socket communication (see sample code in appendix).
The VCS VideoJets with the HDD option are capable to record live video and audio stream to their internal HDD. The recording is scheduled by the build-in HDD recording manager which can be configured using the Webinterface. Normally the replay can also be started using the Webinterface, or alternatively by the VCS VIDOS software.
This document describes the scenario for starting a replay service step by step.
Enable the reception of RCP messages via the ActiveX.
m_mpeg.EnableRCPEvents(short sEnable);
with sEnable = 1.
Establish a RCP connection to the VideoJet for VCS MPEG Active-X.
m_mpeg.RegisterDeviceEx(LPCTSTR strDestination, short sClient, LPCTSTR strUserPass);
with strDestination being the IP address of the requested unit. Set sClient = 0 and strUserPass = NULL as long as the referenced unit is not password-protected.
The response of the unit will be forwarded via the event method.
RCPStateEx(short sState, short sClient);
If the registration succeeded, sState will be set to 4 and sClient specifies the client ID provided by the remote unit. This client ID has to be used subsequently in all RCP+ commands.
Connect the VCS MPEG Active-X with the internal HDD of the VideoJet
m_mpeg.ConnectVideoEx(short type, short bandwidth, short resolution, short line, bool forceUnicast)
with
The state of the video connection will be forwarded via event method
VideoState(short sState, long session);
If the connection succeeded, sState will be set to 2 and ssession specifies the session ID provided by the remote unit. This session ID has to be used subsequently in all RCP+ commands referencing this connection.
In the callback reply from the command, a session ID, assigned by the VideoJet will be retrieved. Using this session ID, all replay related commands will affect this connection to the HDD of the VideoJet.
To retrieve the current available recordings on the VideoJet, a list can be loaded from the HDD.
The RCP command is HD_PARTITION_FILE_INFO (0x0901):
unsigned short clientID;
unsigned char cmd[64];
cmd[0] = 0x09;
cmd[1] = 0x01;
cmd[2] = 0x0c;
cmd[3] = 0x03;
cmd[4] = 0x00;
cmd[5] = 0x00;
cmd[6] = (clientID & 0xFF00) >> 8;
cmd[7] = (clientID & 0x00FF);
cmd[8] = 0x00;
cmd[9] = 0x00;
cmd[10] = 0x00;
cmd[11] = 0x00;
cmd[12] = 0x00;
cmd[13] = 0x01;
cmd[14] = 0x00;
cmd[15] = 0x00;
Any RCP commands will be sent via
m_mpeg.SendRCP(VARIANT rcp);
with rcp being a VARIANT representation of the RCP command. From the above byte array the VARIANT can be built as follows:
VARIANT* pVar = 0; SAFEARRAY FAR* psa; SAFEARRAYBOUND rgsabound[1]; rgsabound[0].lLbound = 0; rgsabound[0].cElements = size; //the number of bytes to transmit (16 in this example) psa = SafeArrayCreate(VT_UI1, 1, rgsabound); if(psa != NULL) { char* psafeData; if(SafeArrayAccessData(psa,(void HUGEP* FAR*)&psafeData) == S_OK) { memcpy(psafeData,cmd,size); SafeArrayUnaccessData(psa); pVar = new VARIANT; if(pVar) { VariantInit(pVar); pVar->vt = VT_ARRAY | VT_UI1; pVar->parray = psa; //send the command m_mpeg.SendRCP(*pVar); //free the variant VariantClear(pVar); delete pVar; } } }
Any RCP responses from the unit will be forwarded via event method
ReceivedRCP(VARIANT rcp)
with rcp being a VARIANT representation of the received response. The contained byte array can be extracted as follows:
long i; SAFEARRAY FAR* psa = NULL; BYTE * pbytes; HRESULT hr; LONG cElements, lLBound, lUBound; VARIANT* pVariant; // Type check VARIANT parameter. It should contain a BSTR array // passed by reference. The array must be passed by reference it is // an in-out-parameter. if (RCP.vt == (VT_ARRAY | VT_UI1)) { psa = RCP.parray; if(psa == NULL) return FALSE; // Check dimensions of the array. if (SafeArrayGetDim(psa) != 1) return FALSE; // Get array bounds. hr = SafeArrayGetLBound(psa, 1, &lLBound); if (FAILED(hr) || lLBound != 0) return FALSE; hr = SafeArrayGetUBound(psa, 1, &lUBound); if (FAILED(hr)) return FALSE; // Get a pointer to the elements of the array. hr = SafeArrayAccessData(psa, (void HUGEP* FAR*)&pbytes); if (FAILED(hr)) return FALSE; cElements = lUBound-lLBound+1; BYTE * pMess = new BYTE[cElements]; if(pMess) { for (i = 0; i < cElements; i++) { *(pMess+i) = pbytes[i]; } SafeArrayUnaccessData(psa); //here process the received byte array contained in pMess … // free the byte array delete[] pMess; }
For the above command the VideoJet will return a list of all current recordings. The structure of this list follows this data structure:
struct HdPartitionFileInfo { DWORD secBeg; DWORD secEnd; DWORD flags; DWORD ID; };
secBeg: Start of the recording (counted in seconds since the 1.1.2000 00:00)
secEnd: End of the recording (counted in seconds since the 1.1.2000 00:00)
flags:
MaskNameDescription
Bit 290x20000000FLAG_TIME_ZONE_SIGNThe time zone sign of this file
Bit 210x00200000FLAG_VIDEO_MUXwhen set, multiple cameras are recorded in this file
Bit 70x00000080FLAG_ALARM_RECORDING 0x00000080 when set, this is a alarm recording
Bit 60x00000040FLAG_TIME_RECORDING 0x00000040 when set, this is a time recording
Bit 50x00000020FLAG_VIDEO_LOSS 0x00000020 when set, a video loss alarm has been asserted since the beginning of this recording
Bit 30x00000008FLAG_ALARM_MOTIONWhen set, a motion alarm has been asserted since the beginning of this recording
Bit 20x00000004FLAG_ALARM_INPUTWhen set, a input alarm has been asserted since the beginning of this recording
Bit 10x00000002FLAG_OVERWRITINGWhen set, the recording of this file is currently overwriting a previous recording
Bit 00x00000001FLAG_RECORDINGwhen set, the recording of this file is currently running
Combined Values
MaskNameDescription
0x1F800000MASK_TIME_ZONE_QH
the time zone offset in quarter hours of this file
ID: for internal use only
The total number of recordings can be calculated by the size of the reply divided by the size of the structure (16).
The application can now decide which file to replay. In addition to that, the VideoJets are capable only to replay a specified period of time.
To select the period (or the entire file), the RCP command HD_REPLAY_STOP_TIME (0x0904) will set the end marker for the replay and the command HD_REPLAY_SEEK_TIME (0x0905) will set the start marker. The time is specified by the same format as in the list (counted in seconds since 1.1.2000 00:00). There is seconds DWORD for future extensions. The structure for setting the start and stop time is:
struct TimeSet { DWORD sec; DWORD unused; };
Now set the stop marker:
unsigned long sessionID, StopTime; unsigned short clientID; unsigned char cmd[64]; cmd[0] = 0x09; cmd[1] = 0x04; cmd[2] = 0x0c; cmd[3] = 0x13; cmd[4] = 0x00; cmd[5] = 0x00; cmd[6] = (clientID & 0xFF00) >> 8; cmd[7] = (clientID & 0x00FF); cmd[8] = (sessiondID & 0xFF000000) >> 24; cmd[9] = (sessiondID & 0x00FF0000) >> 16; cmd[10] = (sessiondID & 0x0000FF00) >> 8; cmd[11] = (sessiondID & 0x000000FF); cmd[12] = 0x00; cmd[13] = 0x00; cmd[14] = 0x00; cmd[15] = 0x08; cmd[16] = (StopTime & 0xFF000000) >> 24; cmd[17] = (StopTime & 0x00FF0000) >> 16; cmd[18] = (StopTime & 0x0000FF00) >> 8; cmd[19] = (StopTime & 0x000000FF); cmd[20] = 0x00; cmd[21] = 0x00; cmd[22] = 0x00; cmd[23] = 0x00;
Transfer the command into a VARIANT and send it as described above. A corresponding response via ReceivedRCP() should be waited for.
The send the start marker:
unsigned long sessionID, StartTime; unsigned short clientID; unsigned char cmd[64]; cmd[0] = 0x09; cmd[1] = 0x05; cmd[2] = 0x0c; cmd[3] = 0x13; cmd[4] = 0x00; cmd[5] = 0x00; cmd[6] = (clientID & 0xFF00) >> 8; cmd[7] = (clientID & 0x00FF); cmd[8] = (sessiondID & 0xFF000000) >> 24; cmd[9] = (sessiondID & 0x00FF0000) >> 16; cmd[10] = (sessiondID & 0x0000FF00) >> 8; cmd[11] = (sessiondID & 0x000000FF); cmd[12] = 0x00; cmd[13] = 0x00; cmd[14] = 0x00; cmd[15] = 0x08; cmd[16] = (StartTime & 0xFF000000) >> 24; cmd[17] = (StartTime & 0x00FF0000) >> 16; cmd[18] = (StartTime & 0x0000FF00) >> 8; cmd[19] = (StartTime & 0x000000FF); cmd[20] = 0x00; cmd[21] = 0x00; cmd[22] = 0x00; cmd[23] = 0x00;
Transfer the command into a VARIANT and send it as described above. A corresponding response via ReceivedRCP() should be waited for.
Now the replay can be started by sending RCP command HD_REPLAY_START (0x0902). The integer parameter specifies the speed of the replay. Normally 100% is live speed, slow motion is less than 100% and fast forward is more than 100%. For backup purposes, the speed can be increased up to 99999. this signals the VideoJet to send the recorded data as fast as possible. A value of 0% will pause the replay.
int Speed=100; unsigned long sessionID; unsigned short clientID; unsigned char cmd[64]; cmd[0] = 0x09; cmd[1] = 0x02; cmd[2] = 0x04; cmd[3] = 0x13; cmd[4] = 0x00; cmd[5] = 0x00; cmd[6] = (clientID & 0xFF00) >> 8; cmd[7] = (clientID & 0x00FF); cmd[8] = (sessiondID & 0xFF000000) >> 24; cmd[9] = (sessiondID & 0x00FF0000) >> 16; cmd[10] = (sessiondID & 0x0000FF00) >> 8; cmd[11] = (sessiondID & 0x000000FF); cmd[12] = 0x00; cmd[13] = 0x00; cmd[14] = 0x00; cmd[15] = 0x04; cmd[16] = (Speed & 0xFF000000) >> 24; cmd[17] = (Speed & 0x00FF0000) >> 16; cmd[18] = (Speed & 0x0000FF00) >> 8; cmd[19] = (Speed & 0x000000FF);
Transfer the command into a VARIANT and send it as described above. A corresponding response via ReceivedRCP() should be waited for.
To jump to a certain time, the HD_REPLAY_SEEK_TIME (0x0905) can also be used during a replay service. In paused mode, the VideoJet will perform jumps to next frames or previous intra frames. The command for this is HD_REPLAY_SEEK_IFRAME (0x0907). The integer parameter specifies the number of frames to go. Positive values will lead to the next frames; negative values direct to previous intra frames. Due to the limitation of compressed video data, backward skips will lead to intra frames only. The intra frame distance is 5 seconds on VideoJet X00 and is scalable on VideoJet X000. To terminate a replay, the RCP command HD_REPLAY_STOP (0x0903) may be send.
unsigned long sessionID; unsigned short clientID; unsigned char cmd[64]; cmd[0] = 0x09; cmd[1] = 0x03; cmd[2] = 0x00; cmd[3] = 0x31; cmd[4] = 0x00; cmd[5] = 0x00; cmd[6] = (clientID & 0xFF00) >> 8; cmd[7] = (clientID & 0x00FF); cmd[8] = (sessiondID & 0xFF000000) >> 24; cmd[9] = (sessiondID & 0x00FF0000) >> 16; cmd[10] = (sessiondID & 0x0000FF00) >> 8; cmd[11] = (sessiondID & 0x000000FF); cmd[12] = 0x00; cmd[13] = 0x00; cmd[14] = 0x00; cmd[15] = 0x01; cmd[16] = 0x01;
Transfer the command into a VARIANT and send it as described above. A corresponding response via ReceivedRCP() should be waited for. An alternative is to disconnect the connection by calling
m_mpeg.DisconnectVideo();
During the replay certain messages are generated by the VideoJet.
HD_REPLAY_SEEK_TIME (0x0905)
Signals the current position inside the recording. This may be displayed by a slider positions in the GUI.
HD_FILE_INFO(0x091d)
Signals, that the current recording has changed its duration (normally every second). The payload of this message has the same format as the file list, except, that there is only one line (the current recording)
HD_RELOAD_PARTITION_FILE_INFO(0x091e)
Signals that there is an updated file list available (e.g. a new alarm recording has been started). The application may reload the file list again


Appendix: Bicom Command Access Levels

Table Of Contents

The default protection level for BICOM / AUX commands is 'bl_user' for get-operations (get, getMax, getMin) and 'bl_service' for all other operations. All BICOM / AUX commands which have a protection level different from the default are listed in the following tables. 'bl_priv' means that the command is not accessible at all.
Device server objects
ObjectIDOperationLevel
0x0160BICOM_OP_GETBL_SERVICE

Camera server objects
ObjectIDOperationLevel
0x01B00x82 /*MoveCont*/BL_USER
0x01B00x84 /*MoveMom*/BL_USER
0x01F00x82 /*MoveCont*/BL_USER
0x01F00x84 /*MoveMom*/BL_USER
0x0430BICOM_OP_SETBL_PRIV
0x0430BICOM_OP_SET_GETBL_PRIV

PTZ server objects
ObjectIDOperationLevel
0x0101BICOM_OP_SETBL_USER
0x0101BICOM_OP_SET_GETBL_USER
0x01030x81 /*Shot*/BL_USER
0x01040x81 /*Shot*/BL_USER
0x0110BICOM_OP_SETBL_USER
0x01100x82 /*MoveContFixSpeed*/BL_USER
0x01100x83 /*MoveFixSpeedForPeriod*/BL_USER
0x01100x85 /*MoveContVarSpeed*/BL_USER
0x01100x88 /*MoveMomVarSpeed*/BL_USER
0x01100x89 /*MoveContVarFinSpeed*/BL_USER
0x0111BICOM_OP_SETBL_USER
0x0111BICOM_OP_SET_GETBL_USER
0x0112BICOM_OP_SETBL_USER
0x0112BICOM_OP_SET_GETBL_USER
0x0113BICOM_OP_SETBL_USER
0x0113BICOM_OP_SET_GETBL_USER
0x0114BICOM_OP_SETBL_USER
0x0114BICOM_OP_SET_GETBL_USER
0x0115BICOM_OP_SETBL_USER
0x0115BICOM_OP_SET_GETBL_USER
0x0116BICOM_OP_SETBL_USER
0x0116BICOM_OP_SET_GETBL_USER
0x011B0x81 /*Shot*/BL_USER
0x011C0x81 /*Shot*/BL_USER
0x011D0x81 /*Shot*/BL_USER
0x011E0x81 /*Shot*/BL_USER
0x01600x80 /*Record*/BL_USER
0x01600x81 /*PlaybackCont*/BL_USER
0x01600x82 /*PlaybackSingle*/BL_USER
0x01600x83 /*Stop*/BL_USER
0x01700x80 /*Record*/BL_USER
0x01700x81 /*PlaybackCont*/BL_USER
0x01700x82 /*PlaybackSingle*/BL_USER
0x01700x83 /*Stop*/BL_USER
0x01A1BICOM_OP_SETBL_USER
0x01A1BICOM_OP_SET_GETBL_USER
0x01A2BICOM_OP_SETBL_USER
0x01A2BICOM_OP_SET_GETBL_USER
0x01A20x0D /*GetHorizon*/BL_USER
0x01A20x0E /*GetVerticalDown*/BL_USER
0x01D0BICOM_OP_SETBL_USER
0x01D0BICOM_OP_SET_GETBL_USER
0x2000BICOM_OP_SETBL_USER
0x2000BICOM_OP_SET_GETBL_USER
0x20000x80 /*Store*/BL_USER
0x20000x81 /*Shot*/BL_USER
0x20000x83 /*GetPresetInfo*/BL_USER
0x20000x84 /*Mask (new)*/BL_USER
0x200xBICOM_OP_SETBL_USER
0x200xBICOM_OP_SET_GETBL_USER
.BICOM_OP_SETBL_USER
.BICOM_OP_SET_GETBL_USER
.0x80 /*Store*/BL_USER
.0x81 /*Shot*/BL_USER
.0x83 /*GetPresetInfo*/BL_USER
.0x84 /*Mask (new)*/BL_USER
0x2FF0BICOM_OP_SETBL_USER
0x2FF0BICOM_OP_SET_GETBL_USER
0x2FF00x80 /*Store*/BL_USER
0x2FF00x81 /*Shot*/BL_USER
0x2FF00x83 /*GetPresetInfo*/BL_USER
0x2FF00x84 /*Mask (new)*/BL_USER
0x2FFxBICOM_OP_SETBL_USER
0x2FFxBICOM_OP_SET_GETBL_USER

IO server objects
ObjectIDOperationLevel
0x0400BICOM_OP_EVENT_STARTBL_PRIV
0x04000x71BL_PRIV
0x04000x72BL_PRIV
0x04000x73BL_PRIV
0x04000x74BL_PRIV
0x04000x75BL_PRIV
0x04000x76BL_PRIV
0x04000x77BL_PRIV
0x04000x78BL_PRIV
0x04000x79BL_PRIV
0x04000x7aBL_PRIV
0x04000x7bBL_PRIV
0x04000x7cBL_PRIV
0x04000x7dBL_PRIV
0x04000x7eBL_PRIV
0x0400BICOM_OP_EVENT_ENDBL_PRIV
0x0410BICOM_OP_EVENT_STARTBL_PRIV
0x04100x71BL_PRIV
0x04100x72BL_PRIV
0x04100x73BL_PRIV
0x04100x74BL_PRIV
0x04100x75BL_PRIV
0x04100x76BL_PRIV
0x04100x77BL_PRIV
0x04100x78BL_PRIV
0x04100x79BL_PRIV
0x04100x7aBL_PRIV
0x04100x7bBL_PRIV
0x04100x7cBL_PRIV
0x04100x7dBL_PRIV
0x04100x7eBL_PRIV
0x0410BICOM_OP_EVENT_ENDBL_PRIV
0x0800BICOM_OP_SETBL_USER
0x0800BICOM_OP_SET_GETBL_USER
0x0810BICOM_OP_SETBL_USER
0x0810BICOM_OP_SET_GETBL_USER
0x0820BICOM_OP_SETBL_USER
0x0820BICOM_OP_SET_GETBL_USER
0x0830BICOM_OP_SETBL_USER
0x0830BICOM_OP_SET_GETBL_USER

AUX numbers
NumberLevel
1BL_USER
2BL_USER
7BL_USER
8BL_USER
50BL_USER
51BL_USER
52BL_USER
53BL_USER
65BL_USER
78BL_USER
81BL_USER
82BL_USER
83BL_USER
84BL_USER
100BL_USER
101BL_USER

SHOT numbers
NumberLevel
1-99BL_USER
101BL_USER
102BL_USER
201-456BL_USER

SET numbers
NumberLevel
1-99BL_USER
201-456BL_USER


Appendix: Specific error codes

Table Of Contents

Each rcp command can generate an generic RCP fault as described in the chapter "Rcp Protocol Procedure". Additional command specific error codes are defined. If an command specific error occurs the Response is 2 bytes long. The first byte is set to RCP_ERROR_COMMAND_SPECIFIC (0xf0), the second byte is set to the specific fault.

Storage specific error codes

Span errors
SPAN_ERROR_INV_SPN_IDX0x02
SPAN_ERROR_INV_SPN_IDX0x02
SPAN_ERROR_INV_HDR_TYPE0x03
SPAN_ERROR_INV_ADDR_LIST0x04
SPAN_ERROR_NOT_MNTD0x05
SPAN_ERROR_INV_FS0x06
SPAN_ERROR_INV_LUN_NFO0x07
SPAN_ERROR_BAD_HDR_CKSM0x08
SPAN_ERROR_INV_IDX0x09
SPAN_ERROR_RD_ONLY0x0a
SPAN_ERROR_NO_REC_DAT0x0b
SPAN_ERROR_INV_PART_NFO0x0c
SPAN_ERROR_CONV_REC0x0d
SPAN_ERROR_SPAN_REQUEST_FAILED0x0e
SPAN_ERROR_SPAN_REQUEST_RETENTION_TIME0x0f
SPAN_ERROR_REMOUNT_REFUSED0x10
SPAN_ERROR_OLD_LUN_NFO0x20
HDD PMM errors
HD_PMM_ERROR_TIMEOUT0x12
HD_PMM_ERROR_CREATE_FAILED0x22
HD_PMM_ERROR_ACCESS_DENIED0x32
HD_PMM_ERROR_DEVICE_PRESENT_TIMEOUT0x42
HD_PMM_ERROR_LUN_LOCK0x52
HD_PMM_ERROR_INVALID_ACCESS0x62
HD_PMM_ERROR_LUN_MGMT_FILE_NOT_FOUND0x72
HD_PMM_ERROR_LUN_WRITE_PROTECTED0x82
HD_PMM_ERROR_COMMON0xf2
ISCSI errors
ISCSI_ERR_CONNECT0x31
ISCSI_ERR_INV_LUN0x33
ISCSI_ERR_LOGIN0x34
ISCSI_ERR_INV_TARG_IDX0x35
ISCSI_ERR_PWD0x36
ISCSI_ERR_PROTO0x37
ISCSI_ERR_TARG_NOT_REACH0x38
ISCSI_ERR_NO_MEMORY0x3a
ISCSI_ERR_SESS_CREATE0x3b
ISCSI_ERR_INV_PARAMS0x3c
ISCSI_ERR_SESS_NOT_FOUND0x3d
ISCSI_ERR_DISCONN0x3e
ISCSI_ERR_TIMEOUT0x3f
ISCSI_ERR_TARGET_NOT_SUPP0x40
ISCSI_ERR_TARGET_SESSION_LIMIT0x41
ISCSI_ERR_CMD_NOT_SUPP0x42
ISCSI_ERR_TARGET_NOT_FOUND0x43
ISCSI_ERR_SOCK0x5f
ISCSI_ERR_TARG_PM0x6f
ISCSI_SOCK_CLOSED0x7f
ISCSI_ERR_TCP_CONN_RESET0x8f
ISCSI_ERR_INTR_NOT_SUPP0x9f
ISCSI_ERR_IP_ZERO0xa0
ISCSI_ERR_OUT_OF_RESOURCES0xa1
Forensic search errors
ForensicSearchErrorScriptTooLong0x01
ForensicSearchErrorInternal0x02
ForensicSearchErrorNoRuleSelected0x03
ForensicSearchErrorREConfiguration0x04
ForensicSearchErrorSyntax0x05
ForensicSearchErrorMemory0x06