Skip to content
This SDK only works with devices released within the past 3 years. We regularly optimize and update the SDK to ensure compatibility and performance. We do not guarantee compatibility or provide technical support for devices older than 3 years.

# 2025-10-23

## 🎉 New Features

### Multi-channel and Intercom Functionality

- Added new API `NET_SDK_StartVoiceComTalk` for one-to-many channel announcements.
- Supports multi-channel one-way intercom. Only one intercom session (either one-way or two-way) is allowed per channel on a single device at any given time.
- Optimized voice intercom functionality to resolve memory leaks and null pointer issues.

### Multi-sensor IPC Support

- Added support for multi-channel IPCs.
- Enhanced smart event subscription for multi-sensor IPCs, with new callback registration API `NET_SDK_SetSubscribCallBack_V2` and callback function `SUBSCRIBE_CALLBACK_V2`.
- Updated APIs `NET_SDK_SetDVRConfig` and `NET_SDK_GetDVRConfig` to support the command `DD_CONFIG_ITEM_CHNN_CONFIG` for multi-sensor IPC configuration.

### Enhanced Playback Features

- Multi-channel playback now allows selecting audio from a specific channel.
- Added new API `NET_SDK_GetPlayBackSyncHandle` to retrieve individual channel playback handles when using `NET_SDK_PlayBackByTimeSync` for synchronized multi-channel playback.

### Access Control Enhancements

- Added new alarm event types:
- `NET_SDK_N9000_ALARM_TYPE_TAMPER`: Tamper alarm (IPC only)
- `NET_SDK_N9000_ALARM_TYPE_DOORCONTACT_ALARM`: Door contact alarm (IPC only)
- `NET_SDK_N9000_ALARM_TYPE_DOORCONTACT_STATUS`: Door contact status alarm (IPC only)
- `NET_SDK_N9000_ALARM_TYPE_DOORLOCK_STATUS`: Door lock status alarm (IPC only)
- `NET_SDK_N9000_ALARM_TYPE_UNLOCKING_EVENT`: Access control unlock event (IPC only)
- Added enumeration `ACCESS_CONTROL_DEVICE_TYPE`: Access control device types.
- Added enumeration `ACCESS_CONTROL_CALL_TYPE`: Call types for access control systems.
- Added structure `UNLOCK_PARAM`: Parameters for unlocking doors via access control.
- Added structure `CALL_RECORD`: Indoor unit call records for access control.
- Added structure `CALL_RECORD_QUERY_PARAM`: Query parameters for indoor unit call records.
- Extended API `NET_SDK_UnlockAccessControl` to support NVR devices.
- Added new API `NET_SDK_UnlockAccessControlEx`, an extended door-unlock interface allowing specification of which lock to open.
- Added new API `NET_SDK_GetCallLog` to retrieve indoor unit call logs.

### NVR Cloud Upgrade

- Added NVR cloud upgrade-related APIs:
- `NET_SDK_CloudUpgrade`: Cloud upgrade for NVR.
- `NET_SDK_CloseUpgradeHandle`: Close remote upgrade handle and release resources.
- `NET_SDK_GetCloudUpgradeInfo`: Retrieve cloud upgrade information.

- `NET_SDK_CloudUpgradeNode`: Cloud upgrade IPCs connected under an NVR.

- Added NVR cloud upgrade-related structures:

- `CLOUD_UPGRADE_INFO`: Contains channel, progress, version, and other cloud upgrade details for NVR.

### Multicast Functionality

- Added multicast-based device activation (supported starting from IPC firmware v5.3.1).
- Added API `NET_SDK_SetDeviceIP` for setting network parameters via multicast.

### Smart Events

- Added coordinates for tripwire detection bounding boxes.
- Demo application now supports drawing bounding boxes on smart event images.

### License Plate Recognition

- Added support for parsing license plate events from IPCs running firmware v5.3.0 and later.

### Enhanced Logging System

- Added 22 new log types to enumeration `N9000_LOG_TYPE`:
- `LOG_ALARM_RTC`: RTC anomaly alarm.
- `LOG_EXCEPTION_ABNORMAL_RAID_HOT_EXCEPTION`: Hot spare RAID anomaly.
- `LOG_EXCEPTION_ALARM_SERVER_OFFLINE`: Alarm server offline.
- `LOG_EXCEPTION_DISCARD_EXTRACT_TASK`: Real-time task not processed.
- `LOG_EXCEPTION_DISK_FAILURE`: Disk failure.
- `LOG_EXCEPTION_HDD_PULL_OUT`: HDD removed.
- `LOG_EXCEPTION_NAT_TRAVERSAL_ABNORMAL`: NAT traversal anomaly.
- `LOG_EXCEPTION_RAID_SUBHEALTH`: RAID sub-health state.
- `LOG_EXCEPTION_RAID_UNAVAILABLE`: RAID unavailable.
- `LOG_EXCEPTION_SIGNAL_SHELTER`: Signal shielding.
- `LOG_EXCEPTION_UPGRADE_ERROR`: Upgrade failure.
- `LOG_INFOR_ALARM_STATE`: Alarm status.
- `LOG_INFOR_CHANNEL_STATE`: Channel status.
- `LOG_INFOR_DISK`: Disk information.
- `LOG_INFOR_NETWORK`: Network information.
- `LOG_INFOR_RECORD_STATE`: Recording status.
- `LOG_INFOR_SCHEDULE_RECORD`: Scheduled recording.
- `LOG_INFOR_SCHEDULE_SNAP`: Scheduled snapshot.
- `LOG_INFOR_SYSTEM_BASE`: Basic system info.
- `LOG_INFOR_SYSTEM_RUN`: System runtime info.
- `LOG_OPERATE_INTELLIGENT_ANALYSIS_INFO`: Intelligent analysis operation log.
- `LOG_OPERATE_NAT_INFO`: NAT operation log.
- `LOG_OPERATE_PLATELIBRARY`: License plate library operation log.

## 🐛 Bug Fixes

### Login & Connection

- Fixed occasional login failures when usernames contain digits.
- Fixed P2P login issue causing remote firmware upload failures.

### Playback

- Improved playback speed control.
- Fixed potential deadlocks caused by time-consuming operations within the callback registered via `NET_SDK_SetPlayDataCallBack`.

### Device Upgrade

- Fixed SDK compatibility issue preventing upgrades of newer DVR models.

### Recording Search

- Fixed issue where certain intelligent event recordings could not be found during search.

### Other Fixes

- Fixed potential deadlocks during live preview.
- Fixed `NET_SDK_GetLastError` failing to return error codes.
- Enhanced `NET_SDK_GetRecordDevice` with a new `maxNum` parameter to prevent buffer overflow.
- Fixed configuration file import failures due to excessively large file sizes.

## ⚡ Optimizations & Improvements

### Core Architecture

- Replaced internal socket management with libevent for TCP connections, improving efficiency.
- libevent now supports macOS and Linux.

### Cross-platform Support

- Added full macOS support, including dynamic Framework distribution.
- Provided macOS desktop demo application with basic feature examples.

### Structure Enhancements

- Modified fields in structure `NET_SDK_DEVICEINFO`:
- `localVideoInputNum`: changed from `unsigned char` to `unsigned int`
- `netVideoInputNum`: changed from `unsigned char` to `unsigned int`
- Increased `DD_MAX_CAMERA_NUM` from 128 to 256.
- Extended structure `NET_SDK_ALARMINFO_EX` with a new `status` field.
- Added `deviceActivated` field to structure `NET_SDK_DEVICE_DISCOVERY_INFO` to indicate device activation status.
- Updated meaning of `dwResolution` in `NET_SDK_RECORD_STATUS_EX`: high 16 bits = width, low 16 bits = height.

### API Improvements

- Modified `NET_SDK_SetNat2Addr` to allow reconfiguration of NAT server address and port.
- Refined `NET_SDK_GetPlayBackSyncHandle`.
- Adjusted behavior of `NET_SDK_SetDeviceIP`.
- On Windows, SDL window creation is now performed on the main thread.

### Event Handling

- Alarms are now actively pushed during arming/disarming operations.
- Added backward compatibility for PEA events from older IPC models.

Notes: 1. Some features require compatible device firmware—please verify your device version. 2. macOS-related features are fully supported. 3. The underlying architecture has been upgraded to libevent, enhancing stability and performance.

Error Code