Skip to content

v0.1.0 — 2025-10-16

Choose a tag to compare

@kaburagisec kaburagisec released this 15 Oct 21:51
· 249 commits to main since this release
Immutable release. Only release title and notes can be modified.

Overview

This release introduces significant improvements to ONVIF client functionality with enhanced multi-instance support and flexible WSDL directory configuration. Key highlights include:

  1. Multi-Instance Support: Fixed critical XAddr rewriting issues for pullpoint, subscription, and security services enabling proper multiple services instances
  2. Custom WSDL Directory: Revolutionary support for custom WSDL directories allowing developers to use their own WSDL files
  3. Documentation Enhancement: Comprehensive documentation updates for new features and improved usability

Changelog Summary

PyPI

https://pypi.org/project/onvif-python/0.1.0 (18543676990)

New Features

  • Custom WSDL Directory Support (65f2570)
    • Implemented support for custom WSDL directory in ONVIFClient
    • Enhanced onvif/utils/wsdl.py with flexible WSDL loading mechanism
    • Allows developers to specify their own WSDL files directory
    • Provides greater flexibility for custom ONVIF implementations
    • Maintains backward compatibility with default WSDL behavior

Fixed

  • Multi-Instance XAddr Rewriting Fix (1a45f59)
    • Fixed critical XAddr rewriting issues for pullpoint, subscription, and security services
    • Improved event handling stability in multi-instances service scenarios

Documentation

  • Comprehensive Custom WSDL Documentation (9464178)
    • Added detailed examples and documentation for custom WSDL directory usage
    • Updated both English README.md and Indonesian README_ID.md
    • Provided practical code examples showing custom WSDL configuration
    • Enhanced developer guide with step-by-step implementation instructions

Technical Improvements

Custom WSDL Directory Support

The new WSDL directory feature provides maximum flexibility for developers:

from onvif import ONVIFClient

# Using custom WSDL directory
client = ONVIFClient(
    "192.168.1.17", 
    8000, 
    "admin", 
    "admin123",
    wsdl_dir="/path/to/custom/wsdl"
)

# Default behavior (backward compatible)
client = ONVIFClient("192.168.1.17", 8000, "admin", "admin123")

Improved Service Resolution

  • PullPoint Services: Proper XAddr handling for event subscriptions
  • Subscription Services: Same as PullPoint service
  • Security Services: Fixed XAddr endpoint resolution when client's host/port differs from device's host/port

Breaking Changes

None — This release maintains full backward compatibility:

  • Existing code will continue to function without modifications
  • Custom WSDL directory support is optional and doesn't affect default behavior
  • All existing service methods and parameters remain unchanged
  • Multi-instance fixes are transparent and don't require code changes

Migration Guide

No migration required for existing applications:

  1. Existing Applications: Continue working without any code changes
  2. Custom WSDL Users: Can now specify custom WSDL directories using the new wsdl_dir parameter

Full Changelog: v0.0.9...v0.1.0