Service Bindings
ONVIF services are defined by WSDL bindings. In this library, there are two main patterns:
Single Binding Services
Most ONVIF services use a single binding, mapping directly to one endpoint. These are accessed via simple client methods, and the binding/xAddr is always known from device services or capabilities.
Examples
These are considered fixed and always accessed directly.
Multi-Binding Services
Some ONVIF services have multiple bindings in the same WSDL. These typically include:
- A root binding (main entry point)
- One or more sub-bindings, discovered or created dynamically (e.g. after subscription/configuration creation)
Examples
-
Events
- Root:
EventBinding - Sub-bindings:
PullPointSubscriptionBinding(created viaCreatePullPointSubscription)SubscriptionManagerBinding(manages existing subscriptions)NotificationProducerBinding
Usage in library:
- Root:
-
Security (Advanced Security)
- Root:
AdvancedSecurityServiceBinding - Sub-bindings:
JWTBindingAuthorizationServerBindingKeystoreBindingDot1XBindingTLSServerBindingMediaSigningBinding
Usage in library:
- Root:
-
Analytics
- Root:
AnalyticsEngineBinding - Sub-bindings:
RuleEngineBinding
Usage in library:
- Root:
Summary
- Single binding services: Always accessed directly (e.g.
client.media()). - Multi-binding services: Have a root + sub-binding(s). Root is fixed; sub-bindings may require dynamic creation or explicit xAddr (e.g.
client.pullpoint(subscription)).