- Implemented DownloadFile method in client.go to download files with authentication.
- Added ascii.go for converting images to ASCII art with configurable parameters.
- Enhanced main.go to include a new option for capturing and displaying snapshots as ASCII art.
- Introduced non-interactive mode for onvif-cli, allowing command execution via command-line arguments.
- Updated documentation to include usage examples for non-interactive mode and scripting.
- Added error handling and improved user prompts for better user experience.
Create complete project summary documenting:
- All deliverables (library, CLI, docs)
- 5 commits with all changes
- Implementation statistics
- Test results and coverage
- Usage examples for library and CLI tools
- Common use cases and workflows
- Benefits for users, developers, systems
- Verification checklist
- Future enhancement opportunities
This document serves as comprehensive reference for the network interface
discovery enhancement across the entire onvif-go project.
Add comprehensive section describing:
- Interactive onvif-cli tool with all features
- Quick demo onvif-quick tool
- Network interface selection for multi-interface systems
- Code examples for both CLI and API usage
- References to detailed documentation guides
Highlights new features:
- CLI tools now support explicit interface selection
- Both discovery modes covered (interactive and API)
- Cross-references to detailed guides
onvif-cli improvements:
- Add menu option to list network interfaces
- Add interface selection during discovery
- Display detailed interface information (up/down, multicast, addresses)
- Allow discovery by interface name or IP address
- Maintain backward compatibility with default interface
onvif-quick improvements:
- Add menu option to list network interfaces
- Add interface selection during discovery
- Simplified interface list display
- Quick discovery on specific network
Documentation:
- Add comprehensive CLI_NETWORK_INTERFACE_USAGE.md guide
- Include usage scenarios and workflows
- Troubleshooting section
- Integration examples
- Command reference table
These enhancements allow users to easily specify which network interface
to use for camera discovery, solving issues with multi-interface systems.
Add comprehensive implementation summary document including:
- Problem statement and solution overview
- Implementation details and file changes
- API reference and type definitions
- Usage examples and common scenarios
- Testing results and verification
- Benefits and future enhancements
This documents the complete network interface selection feature
implementation for WS-Discovery multicast discovery.
Add examples showing how to:
- Discover on specific interface by name (eth0, wlan0)
- Discover using IP address (192.168.1.100)
- List available network interfaces
Reference new NETWORK_INTERFACE_GUIDE.md for detailed documentation.
- Add DiscoverOptions struct with NetworkInterface field
- Add DiscoverWithOptions() function for interface-specific discovery
- Add ListNetworkInterfaces() to enumerate available interfaces
- Add resolveNetworkInterface() helper supporting names and IPs
- Maintain full backward compatibility with existing Discover() function
- Support specifying interface by name (eth0, wlan0) or IP address
- Provide helpful error messages listing available interfaces
- Comprehensive test suite with 6 unit tests + 2 benchmarks
- Add NETWORK_INTERFACE_GUIDE.md with usage examples
This addresses issue where users with multiple active network interfaces
need to explicitly select which interface to use for WS-Discovery multicast,
as auto-detection may select the wrong one.
- CONTRIBUTING.md: Updated title and git clone URL
- .github/CONTRIBUTING.md: Updated title, paths, and references
- QUICKSTART.md: Updated intro
- BUILDING.md: Updated title
- docs/ARCHITECTURE.md: Updated title and descriptions
- docs/PROJECT_SUMMARY.md: Updated title, description, and structure
- docs/IMPLEMENTATION_SUMMARY.md: Updated docker example
- server/README.md: Updated cd command and link text
- cmd/onvif-diagnostics/README.md: Updated cd command
Note: Kept 'go-onvif' as manufacturer identifier in code (server/types.go, cmd/onvif-server/main.go)
and in code comments (examples/) for descriptive purposes.
- Binaries inside archives now have clean names (onvif-cli, onvif-server, etc.)
- Archive names still include platform info (onvif-go-v1.0.4-linux-amd64.tar.gz)
- Users can extract and use binaries without renaming
- Enhanced Makefile to support building for multiple platforms with versioning and improved output.
- Added build-release.sh script for local binary releases, including checksum generation and archive creation.
- Updated error handling and comments in the build process for clarity.
- Ensured all binaries are built with versioning information included.
- Introduced a new directory `testdata/captures/` containing captured XML archives and README documentation for the camera test framework.
- Added a mock server implementation to replay captured SOAP responses for testing.
- Created automated tests for Bosch FLEXIDOME indoor 5100i IR using captured responses, validating device information, system date and time, capabilities, and profiles.
- Implemented enhanced device features tests, covering hostname, DNS, NTP, network interfaces, scopes, and user management.
- Added support for enhanced media and imaging features, including video and audio sources, and imaging options.
- Updated types to include new configurations and options for network, imaging, and device capabilities.