Configuration: Server Settings

About

To tailor your settings, click on the Server icon located at the top left of the Agent DVR UI, and select "Settings" from the Configuration menu. Please note, if the server icon is highlighted with a colored background, this indicates you are operating on another user's Agent DVR server through permissions, which may limit access to some features.

General

To manage your device configurations, simply click on the Server Icon followed by Backup/Restore under the Devices section. Here, you have the option to download configurations for your devices, system, and layouts, or upload previously saved files.

  • Name: Assign a unique name to your Agent DVR instance. This is especially useful if you manage multiple servers on your account.
  • Default Language: Set the default language for your server
  • Show Logo: Display your business logo on the loading screen. This feature requires a business license and can be set up by uploading a logo through the File Upload option in the server menu. See an example.
  • Max CPU: Specify the maximum CPU usage for your server. Alerts will be sent if this limit is reached, and Agent DVR will adjust camera framerates to manage the load. This feature is available only on Windows.
  • Priority: Set the priority of the Agent DVR process on your system. Recommend Above Normal.
  • Apply Schedule at Start: Enable this to apply your scheduling settings on startup, ensuring your devices are in the correct state according to your schedule. If unchecked, Agent DVR will start with devices in their last known state.
  • Notify on Disconnect: Activate this to receive notifications if your server disconnects from web services unexpectedly.
  • VLC Directory: Specify the installation directory of VLC (v3+). This is usually auto-detected by the system.
  • Add to Database: Decide whether Agent DVR should prompt you to add your camera to the wizard database when adding an unlisted camera.
  • Record all audio channels: Enable this to record all audio channels in the output files. Be aware that this can cause issues on some systems due to misreported bitrate, leading to instability.
  • Push to Talk: Enable push to talk mode, where communication is only possible when the talk button is pressed.
  • ONVIF Discovery: Enable or disable ONVIF device discovery on your network. ONVIF discovery runs every minute.
  • Experimental Features: Activate this to test new features in Agent. These features are typically under development and should generally be used only for testing purposes.
  • Logging: Consult the Logging section for details.
  • SignalR Method: Select the SignalR method (used by Agent DVR for setting up remote connections). This is mainly for troubleshooting remote access issues.
  • Wait for SignalR: Enable this to wait for a SignalR response at startup, which can help resolve connection issues on macOS.
  • File Tags The set of available tags for tagging recordings. This is automatically populated as you tag recordings or you can edit it here.
  • Image Tags The set of available tags for tagging images. This is automatically populated as you tag images or you can edit it here.

AI Servers

Cloud

Supported Cloud Providers

  • Box
  • Drive
  • DropBox
  • NextCloud / WebDav
  • OneDrive
  • OneDrive Business
  • OpenDrive
  • S3

Click the appropriate button to authorize Agent DVR to connect with your cloud host. If you encounter any issues, consider temporarily disabling 2-factor authentication on your cloud host account. Once Agent DVR has access, you can manage cloud uploads by adjusting your camera cloud settings.

S3 Cloud Storage

For S3 Storage options, oauth is not used. Instead, you'll need to provide a client ID and a secret key for uploads. Agent DVR is compatible with Amazon S3 and other S3 Providers like Google Cloud.

Amazon S3 Settings

Set up your storage account on AWS and enter the required S3 parameters. The URL field should be left blank for Amazon S3, as it's automatically configured.

Google Cloud S3 Settings

For Google Cloud S3 storage, begin by creating a new bucket in the Google Cloud interface. Then, generate an Access Key, which will provide a key and a secret for Agent DVR configuration. Set the URL to https://storage.googleapis.com. Note: The region name is not required for this setup.

Data

Stay up-to-date with the latest features for your cameras and PTZ models using Agent DVR's database update options.

  • PTZ Models: Download the latest PTZ database to enhance control over your PTZ cameras.
  • Camera Definitions: Access the most recent camera definitions database. Updating this database enriches the Add Camera Wizard with new models, ensuring you're always equipped with the latest camera technology.

FTP Servers

Configure and manage your FTP servers conveniently here. Once a server is added, you can easily select it for any camera through the editing options. For more details on camera FTP settings, please refer to camera FTP.

  • Name: Assign a local name to your server for easy identification within Agent.
  • Username: Enter your FTP server username.
  • Password: Enter your FTP server password.
  • Server: Specify your FTP server URL, starting with ftp:// or sftp:// (e.g., ftp://192.168.12.1).
  • Port: The port number your FTP server uses, typically 21 for ftp:// and 22 for sftp://.
  • Use SFTP: Enable this option if your server utilizes SFTP.
  • Use Passive: Opt for Passive FTP mode by checking this.
  • Rename: Activating this will have Agent DVR upload files under a temporary name and then rename them post-upload. This is particularly useful to minimize flicker when streaming video via FTP and javascript. Learn more.
  • Max Queue: Set a limit for the upload queue size. If this limit is reached, Agent DVR will stop accepting new files for upload. Note that the queue size is managed on a per-camera basis.

Layouts

Using this tab you can add, edit and delete layouts

LDAP

Use your LDAP server (openLDAP/ Active Directory etc) to handle logins. This uses the local logins feature so requires a Business license.

Using LDAP your users can sign into the local web client using their LDAP logins. This will authenticate them against your LDAP server and create a local account for them automatically

  • Enabled: Turn logins with LDAP on or off.
  • Server Address: Enter your LDAP server address, eg ldap.example.com
  • Port: LDAP server port. Usually 389 or 636 for LDAP over SSL.
  • Is Active Directory: Check this if you are using AD (it modifies some of the fields passed to LDAP).
  • Use SSL: Check if you are using a secure connection
  • LDAP Search Base: Domain Search bases. eg DC=myorg,DC=com
  • Protocol Version: Default is 3
Group Permissions

Using Group Permissions you can add LDAP user group names and permissions to apply to those groups. You must add at least one LDAP group to configure LDAP logins. When a user logs in the system will match their LDAP usergroup membership against these groups and apply the permissions it finds. If a user is a member of multiple groups the permissions will be combined (via an OR operation).

Licensing

Use this tab to license Agent DVR for business use/ enable port forward remote access.

Do you have a license for Agent DVR and want to move it to a new computer? See License Transfer.

You can also purchase licenses in volume via Purchase Order. See Volume Licensing.

Licensing via commandline

If you don't have access to Agent via the local network (for example you are using ProxMox or some other virtual environment) then you can license Agent DVR using the following commands. Access the computer using the terminal and go to the folder containing the Agent executable. Make sure Agent isn't running.:

These commands should work on v5.9.3.0+

  • sudo systemctl stop AgentDVR.service
  • Agent show-id This will display the Unique ID you need to license agent or transfer your license.
  • Agent license "LICENSE-GOES-HERE" Call this with your license and restart Agent to apply.
  • sudo systemctl start AgentDVR.service to restart the Agent DVR service.

For older versions:

  • sudo systemctl stop AgentDVR.service
  • Get your Unique ID by editing Agent/Media/XML/config.xml and look for UniqueID. Agent will need to have been run at least once to generate this file.
  • License Agent and then copy the license text into a new (or existing) field in the same file: <License>LICENSE-GOES-HERE</License>.
  • sudo systemctl start AgentDVR.service to restart the Agent DVR service.

White Labelling

Once Agent DVR is Licensed you can customise it via the licensing tab to white label it for your business or your clients. See the additional options on the licensing tab:

White labelling options apply to your own server UI not to our remote web platform
  • Product Name Set an alternate product name to appear at the top of the UI (max 6 characters)
  • Show Logo Upload a logo using the Server Menu - File Upload option and this will be displayed by clients whilst the web app loads.
  • Show Help Links Switch on or off help links in the app that take the user to our website.
  • Show Remote Show or hide links to our remote services and integrations.
  • Show Licensing Show or hide this licensing tab. Note that if this tab is hidden the only way to display it again is to stop the Agent DVR service, edit Media/XML/config.xml in the Agent DVR directory and set ShowLicensing to "true" and then restart it.
  • About Text Set the text that is displayed when you click on the Information icon in the UI.

Local Server

  • Bind to Interface: By default, Agent DVR monitors all interfaces. You can specify a particular network interface for monitoring here. If this setting disrupts access, you can revert to the default by setting BindInterface to '*' in Agent/Media/XML/config.xml.
  • Port: The local port used by Agent. Default is 8090.
  • SSL Port: The port for SSL connections to your server. This requires a subscription or a business license. Set to 0 to disable. Before setting this, please read the guidelines.
  • SSL Certificate: The certificate file for SSL connections (Linux/macOS only).
  • SSL Password: The password for your SSL certificate (Linux/macOS only).
  • Protect API: Enable basic authentication for API endpoints. Note that this may affect some integrations.
  • Access Timeout: Set a time limit for server access via permissions (in minutes). 0 for unlimited access.
  • Max Sessions: Limit the number of simultaneous web browser connections. Exceeding connections will be disconnected. Set to 0 for unlimited.
  • STUN Servers: These servers assist with local and remote connection negotiations through NATs. Removing them can impact connectivity. For more information and recovery steps, see this link.
  • Enable ZeroConf: Turn on ZeroConf service for network-wide discovery of Agent.
  • Enable Scrubbing (Time Machine): Activate scrubbing for real-time video navigation. Note: High CPU usage may occur depending on system and camera count. Disable if you encounter Time Machine issues. UI reload required for changes to take effect.
  • JPEG Quality: The quality setting for JPEG/MJPEG image streams. Higher values increase bandwidth usage. Default is 75.
  • Block External Access: Prevent Agent DVR from responding to remote web portal requests. Automate this setting for security using the API.
  • Max Files: Set the maximum number of files to display in the UI across all devices. A "load more" icon appears when the limit is reached. Set to 0 for unlimited. Note: Large file quantities can slow the UI.
  • Max Photos: The maximum number of photos to load per device. Set to 0 for unlimited. Note: Large photo quantities can slow the UI.
  • Views: The number of available views on the live screen (v4.4.5.0+).
  • Plans: The number of available plans on the floorplan screen (v4.4.5.0+).
  • Culture Codes: Set the culture code for date formatting on timestamps (e.g., en-US for American English, fr-CA for Canadian French). See this list for more options.
  • Time Formats: Choose the format for date display in the Agent DVR UI. Default is 12-hour format ("MMM DD YYYY h:mm:ss A"). For 24-hour format, use "YYYY-MM-DD H:mm:ss".
  • YYYY: 4-digit year '2019'
  • YY: 2-digit year '19'
  • MMMM: Full-length month 'June'
  • MMM: 3 character month 'Jun'
  • MM: Month of the year, zero-padded '06'
  • M: Month of the year '6'
  • DD: Day of the month, zero-padded '01'
  • D: Day of the month '1'
  • Do: Day of the month with numeric ordinal contraction '1st'
  • HH: hour of day from 0-24, zero-padded, '14'
  • H: hour of day from 0-24, '14'
  • hh: hour of day on 12-hour clock, zero-padded, '02'
  • h: hour of the day on 12 hour clock, '2'
  • mm: minute, zero-padded, '04'
  • m: minute, '4'
  • ss: second, zero-padded
  • s: second
  • A: 'AM' or 'PM'
  • a: 'am' or 'pm'

Logging

  • Enabled: Toggle to turn Logging on or off.
  • Max Log Size: Determines the maximum number of entries that can be held in the log queue.
  • FFMPEG Log Level: Adjust the debug output level for ffmpeg. Caution: The Trace setting can rapidly fill your logs and should be used only briefly for specific debugging purposes.
  • SignalR Logging: Enables logging of communications with the SignalR server, useful for detailed debugging.

MQTT

MQTT, a key IoT messaging protocol, facilitates seamless integration of devices and services across your network. Configure MQTT settings here to enable MQTT Events on your devices, or use Actions for sending custom messages to the MQTT server. Also, Agent DVR can be configured to react to MQTT commands. For more details, see MQTT.

  • Enabled: Toggle to activate or deactivate MQTT.
  • Server: Input the IP address of your MQTT Server.
  • Port: Specify the port used by your MQTT Server (default is 1883).
  • Check Interval: Set the interval in seconds for Agent DVR to send keep-alive messages, ensuring a stable connection.
  • Protocol: Choose the connection protocol, either None or SSL.
  • QoS: Quality of Service level. Refer to your MQTT server documentation for details.
  • Client ID: Your MQTT client ID. Agent DVR can often generate this automatically.
  • Username: Your MQTT server username.
  • Password: Your MQTT server password.
  • Send Stats: Enable this to allow Agent DVR to send statistics to MQTT, such as CPU usage, memory usage, and drive usage (Windows only).

NDI

NDI (Network Device Interface) simplifies the process of accessing IP video sources, offering built-in discovery features. Many cameras and video surveillance systems are already NDI-ready, making integration with Agent DVR effortless. For more information about NDI technology and compatible devices, visit ndi.tv. Agent DVR supports NDI sources with video and audio capabilities, as well as PTZ control via NDI.

  • Groups: Here, you can add NDI groups if applicable. Enter each group on a new line.
  • Extra IPs: Add specific NDI IP addresses for device scanning. Each IP should be on a new line.
  • Show local devices: Toggle this option to decide whether NDI devices on the local computer (which is running Agent DVR) should be displayed in the list.

ONVIF

Agent DVR utilizes keywords in ONVIF event XML packets to identify motion events. Since these packets can vary across different camera models, we provide an option for you to add custom event XML from your camera to trigger ONVIF events. This feature is particularly useful if you encounter issues with standard ONVIF event detection.

  • Detect XML: Insert the specific ONVIF XML event packet from your camera here.
  • Event Logging: Enable this to log all incoming XML from the camera, which is helpful for debugging purposes. Access these logs at /logs.html on your local server.

For instance, if you notice entries in the logs at /logs.html like:

Ignored ONVIF event: <tt:Source xmlns:tt="http://www.onvif.org/ver10/schema"><tt:SimpleItem Name="VideoSource" Value="V_SRC_000" /><tt:SimpleItem Name="Rule" Value="MyMotionDetectorRule" /></tt:Source><tt:Data xmlns:tt="http://www.onvif.org/ver10/schema"><tt:SimpleItem Name="State" Value="true" /></tt:Data>

And Agent DVR is not recognizing it as a motion event, you can add the following to the Detect XML field:

<tt:SimpleItem Name="Rule" Value="MyMotionDetectorRule" /></tt:Source><tt:Data xmlns:tt="http://www.onvif.org/ver10/schema"><tt:SimpleItem Name="State" Value="true" /></tt:Data>

Agent DVR will then interpret events containing this specific text as motion events.

Playback

These settings govern how Agent DVR renders and delivers video to the web browser and through the API.

  • Max Stream Size: Sets the highest resolution for streaming to the web client. Higher resolutions can significantly increase CPU usage.
  • Max MJPEG Size: The maximum MJPEG stream size Agent DVR will generate via the API.
  • Default MJPEG Size: The default MJPEG stream size Agent DVR will generate via the API, used when no size parameter is specified.
  • Codec: Select the recording codec, either H264 or VP8.

H264 is widely supported for hardware encoding, offering maximum performance. However, H264 files must be fully written before playback. If recording fails, try VP8, especially if your ffmpeg version lacks H264 encoding.

VP8 usually lacks hardware support but allows playback of .webm files during recording.

Tip: For IP cameras, use Raw mode (set on the recording tab when editing the camera) for optimal performance and immediate playback.

  • Video FPS: The maximum frames per second (framerate) for video sent to the web browser.
  • Center Images: Toggle this to choose between filling the available space with the camera image or maintaining the original aspect ratio.
  • Use GPU: Enable GPU usage for decoding saved video files.
  • High Performance Resizing: Use a basic resizing algorithm to reduce CPU usage, though it may result in less smooth playback.
  • Default GPU Decoder *: Choose the preferred hardware decoder. Agent DVR will try other options if the preferred one fails.
  • Default Codec *: Choose the preferred hardware encoder. Agent DVR will use alternative options if necessary.
  • Use OpenCV to render text: Opt for OpenCV for rendering text (like timestamps, overlays) to slightly boost performance, but this removes font support (Windows only).
  • Interval Delay: The delay between switching Views in an interval mode layout in Live View.

* Note that GPU encoding and decoding depend on your computer's hardware compatibility, drivers, and FFmpg library support. To check if Agent DVR is utilizing your hardware devices, start a recording and view the logs at /logs.html in the local client. Agent DVR should revert to CPU-based encoding if GPU encoding is unsuccessful.

RTMP Servers

Agent DVR offers the capability to stream video to RTMP endpoints like Twitch and YouTube, enabling you to broadcast or embed the stream on your website. For more information on how to embed these streams, please refer to RTMP Settings.

RTMP streaming can be activated from the Server menu or scheduled to start and stop automatically using a device scheduler.

  • URL: The RTMP endpoint to publish video to, typically in the format of rtmp://a.rtmp.youtube.com/live2.
  • Stream Key: Refer to the embedding guide linked above for instructions on obtaining your stream key.
  • Size: Select a resolution for your broadcast. Remember, higher resolutions consume more bandwidth and CPU resources.
  • Quality: Adjust the basic quality setting. The default is 8. Lower values mean reduced quality but also lower bandwidth usage.
  • Frame Rate: Set your desired frame rate for the video. The default is 15 frames per second.
  • Use GPU: Enable this option to utilize your GPU for encoding the stream.
  • Include Audio: Include audio in your stream. If disabled, Agent DVR will create a dummy silent audio track.
  • Max Duration: Set the maximum streaming duration. Agent DVR will stop streaming after this period. Enter 0 for continuous streaming.

Security

These settings are designed to manage how Agent DVR handles the arming and disarming of the system, either through the UI lock icon or via integrations/API.

  • Arm Delay: The time delay in seconds from when you click the Arm icon (the lock icon at the top left in Agent) to when Agent DVR actually activates alerts.
  • Disarm Code: This code is used to disarm Agent DVR, applicable in tools like Alexa. The default code is 1234.
  • Arm Profile: Choose a profile to automatically apply when the system is armed (using the lock icon in the top left corner of the UI).
  • Disarm Profile: Choose a profile to automatically apply when the system is disarmed (using the unlock icon in the top left corner of the UI).
  • Access Timeout: This setting has been moved to the Local Server settings.

SMTP

You have the option to use an ispyconnect.com subscription for email alerts or configure your own SMTP server. Remember, to send emails, you need to set up an action for email sending. For help with any issues, refer to SMTP Troubleshooting.

  • Use SMTP: Enable this to use your own SMTP server for messaging.
  • Username: Your SMTP server username.
  • Password: Your SMTP server password.
  • From Address: The email address to send from, for example, you@yourdomain.com.
  • Server: The IP or web address of your SMTP server.
  • Port: The port your SMTP server uses. The default is 25.
  • Use SSL: Enable this option for SMTP communication over SSL.
  • Send full size images: Check this to send images in full resolution instead of sending resized, smaller versions.

Storage

  • Configure: See Storage Settings
  • Storage Email Address: Provide an email address to receive alerts when storage limits are reached. This requires SMTP settings or a subscription.
  • Notify Trigger: Set the percentage of used space in the storage location to trigger an email notification. Note that this refers to the allocated max space, not the free space on the drive.
  • Email Interval: Determine the frequency of storage warning emails, measured in hours.
  • Storage Interval: Adjust the frequency of Storage Management operations by Agent DVR.
  • Auto Lock Tags Automatically lock recordings with specified tags to prevent accidental deletion or removal by storage management. To delete these recordings, you will need to unlock them in the UI. (This option used to be in AI Servers settings)

Users

For information on remote user permissions, please refer to Remote Permissions.
Note: The free version of Agent DVR allows for one admin user to be added.

With a Business License, you can add multiple users with different permissions to your local Agent DVR server.

To add users, go to Server Settings and access the Users tab.

  • Username: This is the username for local server login (it is different from your ispyconnect.com username).
  • Password: Create a password for the local account.
  • Groups: Assign or create groups for the user. Groups function similarly to remote user permissions, but there's no need to include the server name. To restrict access:
    • Assign a group name in the device settings under the General tab (e.g., "outside").
    • In the user's permissions, add the group "outside" to restrict their access to devices labeled as such.
    • Assign a group name to all other devices - if a device is not assigned to a group it will be visible to everybody.
  • Is Admin: Grants full access to all features and settings. If the user is an admin, the 'Read Only' setting below is disregarded.
  • PTZ: Allows PTZ (Pan-Tilt-Zoom) control access.
  • Own Settings: The user can save their own views, filters, floorplans and key mappings. If this is unchecked they will use the admin accounts configuration.
  • Read Only: Restricts the user from modifying device settings.
  • Download: Permits the user to download recordings.
  • Audio: Allows the user to listen to live and recorded audio.
  • Talk: Enables the user to use talk-back features.
Forgot the Admin Login?

If you forget the admin login and are locked out of Agent DVR, you can reset it by following these steps:

  • Stop the Agent DVR service, if it's running.
  • Open a console window: Click Start, type "cmd", right-click on "Command Prompt" and select "Run as administrator".
  • Navigate to the Agent DVR directory, typically "cd C:\Program Files\Agent".
  • Reset the local password by typing "Agent.exe reset-local-login" on Windows or "dotnet Agent.dll reset-local-login" on macOS and Linux.
  • Restart the Agent DVR service using the same method as for stopping it.

You can automate the adding of new users using LDAP.

Session Management

From the Server menu, click on Session Management to access these controls. This is only visible to administrators.

This displays the usernames and IP addresses of recent logins to the server. You can force disconnect specific sessions from here.