diff --git a/.gitignore b/.gitignore
index 2178e36cd..c76636302 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
*.dia~
+.idea/
/.vs
diff --git a/doc/Media2.xml b/doc/Media2.xml
index a55e19eae..0536b7700 100644
--- a/doc/Media2.xml
+++ b/doc/Media2.xml
@@ -664,7 +664,7 @@
CreateProfile
This operation creates a new media profile. The media profile shall be created in the device.
A device implementing this service shall support the creation of media profiles as long as the number of existing profiles does not exceed the capability value MaximumNumberOfProfiles.
- A created profile shall be deletable and a device shall set the “fixed” attribute to false in the returned Profile.
+ A created profile shall be deletable and a device shall set the "fixed" attribute to false in the returned Profile.
request
@@ -1852,7 +1852,7 @@
faults
env:Sender - ter:InvalidArgVal - ter:NoConfig
- The requested video source configuration ConfigurationToken does not exist.
+ The requested video source configuration does not exist.
@@ -2310,7 +2310,7 @@
-
+
AddAudioClip
This operation adds audio clip configuration to the device and provides the audio clip upload
URI to the client. The response to the command includes an HTTP URL to which the audio clip may be uploaded with in the expiry time. If the client is unable to upload the audio clip within the URL's expiry time, the associated audio clip configuration will deleted from the device.
diff --git a/doc/Sip.xml b/doc/Sip.xml
new file mode 100644
index 000000000..919fc8a4b
--- /dev/null
+++ b/doc/Sip.xml
@@ -0,0 +1,567 @@
+
+
+
+
+ ONVIF SIP Specification
+ ONVIF SIP Spec
+ 26.12
+
+ ONVIF™
+ www.onvif.org
+
+ December, 2026
+
+
+
+
+
+
+ 2008-2026
+ ONVIF™ All rights reserved.
+
+
+ Recipients of this document may copy, distribute, publish, or display this document so
+ long as this copyright notice, license and disclaimer are retained with all copies of the
+ document. No license is granted to modify this document.
+ THIS DOCUMENT IS PROVIDED "AS IS," AND THE CORPORATION AND ITS MEMBERS AND THEIR
+ AFFILIATES, MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
+ NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THIS DOCUMENT ARE SUITABLE FOR ANY PURPOSE;
+ OR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS,
+ TRADEMARKS OR OTHER RIGHTS.
+ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FOR ANY
+ DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR
+ RELATING TO ANY USE OR DISTRIBUTION OF THIS DOCUMENT, WHETHER OR NOT (1) THE CORPORATION,
+ MEMBERS OR THEIR AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR (2)
+ SUCH DAMAGES WERE REASONABLY FORESEEABLE, AND ARISING OUT OF OR RELATING TO ANY USE OR
+ DISTRIBUTION OF THIS DOCUMENT. THE FOREGOING DISCLAIMER AND LIMITATION ON LIABILITY DO NOT
+ APPLY TO, INVALIDATE, OR LIMIT REPRESENTATIONS AND WARRANTIES MADE BY THE MEMBERS AND THEIR
+ RESPECTIVE AFFILIATES TO THE CORPORATION AND OTHER MEMBERS IN CERTAIN WRITTEN POLICIES OF
+ THE CORPORATION.
+
+
+
+ 26.12
+ Dec-2026
+ Initial version. Introduction of SIP specification.
+
+
+
+
+ Overview
+ This specification defines the SIP-related operations for ONVIF compliant devices. It covers SIP server configuration, NAT traversal configuration, and call management.
+ The WSDL for this service is defined at: http://www.onvif.org/ver10/sip/wsdl
+
+ Referenced namespaces
+
+
+
+
+
+
+ Prefix
+
+
+ Namespace URI
+
+
+
+
+
+
+ env
+
+
+ http://www.w3.org/2003/05/soap-envelope
+
+
+
+
+ ter
+
+
+ http://www.onvif.org/ver10/error
+
+
+
+
+ xs
+
+
+ http://www.w3.org/2001/XMLSchema
+
+
+
+
+ tt
+
+
+ http://www.onvif.org/ver10/schema
+
+
+
+
+ tsip
+
+
+ http://www.onvif.org/ver10/sip/wsdl
+
+
+
+
+
+
+
+ SIP Service
+
+ GetServiceCapabilities
+ This command returns the capabilities of the SIP service.
+
+
+ request
+
+ This is an empty message.
+
+
+
+ response
+
+ Capabilities [tsip:Capabilities]
+ The capability response message contains the requested SIP service capabilities.
+
+
+
+ faults
+
+ No command specific faults defined.
+
+
+
+ access class
+
+ PRE_AUTH
+
+
+
+
+ The capabilities in the GetServiceCapabilities command
+
+
+
+
+
+
+ Capability
+
+
+ Description
+
+
+
+
+
+
+ MaximumRecipients
+
+
+ Indicates the maximum number of call recipients supported. Also defines the maximum value for the Order field of a call recipient.
+
+
+
+
+ MaximumStunServers
+
+
+ Indicates the maximum number of STUN server URIs supported.
+
+
+
+
+ MaximumTurnServers
+
+
+ Indicates the maximum number of TURN servers supported.
+
+
+
+
+ MaximumRegistrars
+
+
+ Indicates the maximum number of SIP registrars supported.
+
+
+
+
+
+
+
+ SIP Server Configuration
+ A device indicating SIP capabilities shall support the GetServerConfiguration and SetServerConfiguration commands. Only one SIP server configuration is supported per device. The maximum number of registrars is indicated by the MaximumRegistrars SIP capability.
+ The SIP server configuration consists of the following fields:
+
+
+ Registrar
+ One or more SIP registrar entries. Each entry contains a Uri and a Transport field. The Uri shall be an absolute URI without scheme, such as: my.domain:port/p/a/t/h?query. The Transport field specifies the transport protocol to use for the registrar and shall be one of: UDP, TCP, or TLS.
+
+
+ UserId
+ The user info/extension of the Address of Record (AoR) in SIP, identifying the device on the registrar.
+
+
+ CertPathValidationPolicyID
+ Optional. The unique identifier of the certification path validation policy to be used for validating the server certificate as declared in the security service. If not configured, server certificate validation behavior is undefined and the device may either apply a vendor specific default validation policy or skip validation at all.
+
+
+ Authentication
+ Authentication configuration. Either Credential (UserName and Password) or AuthorizationServer shall be provided. Credential contains the username and password used to authenticate with the SIP server. AuthorizationServer is a reference token referring to the server that provides access tokens to authorize with the SIP server.
+
+
+
+ GetServerConfiguration
+ This operation gets the SIP server configuration of the device. The device shall not return the password in the response.
+
+
+ request
+
+ This is an empty message.
+
+
+
+ response
+
+ ServerConfiguration - optional [tsip:ServerConfiguration]
+ The current SIP server configuration of the device. Absent if no SIP server configuration has been set.
+
+
+
+ faults
+
+ No command specific faults defined.
+
+
+
+ access class
+
+ READ_SYSTEM
+
+
+
+
+
+ SetServerConfiguration
+ This operation sets the SIP server configuration of the device. Only one SIP server configuration is supported. The number of registrars shall not exceed the value indicated by the MaximumRegistrars SIP capability. If the configuration is absent, the device shall remove the existing SIP server configuration.
+
+
+ request
+
+ ServerConfiguration - optional [tsip:ServerConfiguration]
+ The SIP server configuration to set on the device. If absent, the device shall remove the existing SIP server configuration.
+
+
+
+ response
+
+ This is an empty message.
+
+
+
+ faults
+
+ env:Receiver - ter:OperationProhibited - ter:MaximumRegistrars
+ The number of registrars exceeds the maximum number supported by the device.
+ env:Sender - ter:InvalidArgs - ter:MissingRegistrar
+ No registrar URI has been specified.
+ env:Sender - ter:InvalidArgVal - ter:InvalidRegistrar
+ The URI set in the registrar is not valid.
+ env:Sender - ter:InvalidArgs - ter:MissingAuthentication
+ Both AuthorizationServer and Credential are missing. One must be provided.
+ env:Sender - ter:InvalidArgVal - ter:AuthorizationServer
+ No AuthorizationServer exists for the specified token.
+ env:Sender - ter:OperationProhibited - ter:ConfigurationConflict
+ Cannot have both AuthorizationServer and Credential configured at the same time. Only one may be provided.
+ env:Sender - ter:InvalidArgVal - ter:CertPathValidationPolicyID
+ No certification path validation policy exists under the requested CertPathValidationPolicyID.
+
+
+
+ access class
+
+ WRITE_SYSTEM
+
+
+
+
+
+
+ NAT Configuration
+ A device indicating MaximumStunServers > 0 or MaximumTurnServers > 0 in the SIP capabilities shall support the GetNatConfiguration and
+ SetNatConfiguration commands. Only one NAT configuration is supported per device. The maximum number of STUN server URIs is indicated by the
+ MaximumStunServers SIP capability and the maximum number of TURN servers is indicated by the MaximumTurnServers SIP capability. URIs provided
+ in this context shall be an absolute URI without scheme, such as: stun.domain:port or turn.domain:port
+ The NAT configuration consists of the following fields:
+
+
+ Stun
+ Optional. Contains one or more STUN server URIs used for NAT traversal.
+
+
+ Turn
+ Optional, unbounded. Each entry contains one or more TURN server URIs and optional credentials (Username and Password) used to authenticate with the TURN server. The device shall not return the password in the response.
+
+
+
+ GetNatConfiguration
+ This operation gets the NAT configuration of the device. The device shall not return TURN server passwords in the response.
+
+
+ request
+
+ This is an empty message.
+
+
+
+ response
+
+ NatConfiguration - optional [tsip:NatConfiguration]
+ The current NAT configuration of the device. Absent if no NAT configuration has been set.
+
+
+
+ faults
+
+ No command specific faults defined.
+
+
+
+ access class
+
+ READ_SYSTEM
+
+
+
+
+
+ SetNatConfiguration
+ This operation sets the NAT configuration of the device. Only one NAT configuration is supported. The number of STUN server URIs shall not exceed the value indicated by the MaximumStunServers SIP capability. The number of TURN servers shall not exceed the value indicated by the MaximumTurnServers SIP capability. If the configuration is absent, the device shall remove the existing NAT configuration.
+
+
+ request
+
+ NatConfiguration - optional [tsip:NatConfiguration]
+ The NAT configuration to set on the device. If absent, the device shall remove the existing NAT configuration.
+
+
+
+ response
+
+ This is an empty message.
+
+
+
+ faults
+
+ env:Receiver - ter:OperationProhibited - ter:MaximumStunServers
+ The number of STUN server URIs exceeds the maximum number supported by the device.
+ env:Receiver - ter:OperationProhibited - ter:MaximumTurnServers
+ The number of TURN servers exceeds the maximum number supported by the device.
+
+
+
+ access class
+
+ WRITE_SYSTEM
+
+
+
+
+
+
+ Call Configuration
+ A device indicating SIP capabilities shall support the GetCallConfiguration and SetCallConfiguration commands. The maximum number of call recipients is indicated by the MaximumRecipients SIP capability. Only one call configuration is supported per device.
+ Each recipient has an Order field that determines in which order the contact is displayed or assigned to physical buttons. The Order value shall start at 1 and shall not exceed the value of the MaximumRecipients capability.
+
+ GetCallConfiguration
+ This operation gets the call configuration of the device.
+
+
+ request
+
+ This is an empty message.
+
+
+
+ response
+
+ CallConfiguration [tsip:CallConfiguration]
+ The current call configuration of the device.
+
+
+
+ faults
+
+ No command specific faults defined.
+
+
+
+ access class
+
+ READ_SYSTEM
+
+
+
+
+
+ SetCallConfiguration
+ This operation sets the call configuration of the device. The number of recipients shall not exceed the value indicated by the MaximumRecipients SIP capability. The Order field of each recipient shall be between 1 and the MaximumRecipients capability value, inclusive.
+
+
+ request
+
+ CallConfiguration [tsip:CallConfiguration]
+ The call configuration to set on the device. Only one call configuration is supported.
+
+
+
+ response
+
+ This is an empty message.
+
+
+
+ faults
+
+ env:Receiver - ter:OperationProhibited - ter:MaximumRecipients
+ The number of recipients exceeds the maximum number of call recipients supported by the device.
+
+
+
+ access class
+
+ WRITE_SYSTEM
+
+
+
+
+
+
+ SIP Streaming Configuration
+
+ The SIP streaming configuration defines the media configurations used during SIP-based streaming sessions.
+ It allows a client to update the provided configurations used when the device participates in a SIP call.
+
+
+ Only a single SIP streaming configuration is supported per device. If the device has a SIP server configuration,
+ the SIP streaming configuration determines the media parameters applied during incoming or outgoing SIP sessions.
+ A configuration shall be provided per configuration type that the device supports for SIP streaming. For example,
+ if the device supports both video and audio streaming over SIP, the SIP streaming configuration shall include a
+ video source configuration, a video encoder configuration, an audio source configuration and an audio encoder
+ configuration. If the device supports only audio output (such as a speaker device), then the configuration shall
+ only include the audio output configuration and audio decoder configuration.
+
+
+ Note: The configuration listed as part of the SIP streaming configuration are not expected to be used by the device
+ for non-SIP streaming sessions. This means that the configurations needs not to be returned in GetXConfigurations,
+ nor to be configured through SetXConfiguration.
+
+
+ GetStreamingConfiguration
+ This operation retrieves the current SIP streaming configuration of the device.
+
+
+ request
+
+ This is an empty message.
+
+
+
+ response
+
+ StreamingConfiguration [tsip:StreamingConfiguration]
+ The current SIP streaming configuration of the device.
+
+
+
+ faults
+
+ No command specific faults defined.
+
+
+
+ access class
+
+ READ_MEDIA
+
+
+
+
+
+ SetStreamingConfiguration
+ This operation sets the SIP streaming configuration of the device.
+
+
+ request
+
+ StreamingConfiguration [tsip:StreamingConfiguration]
+ The SIP streaming configuration to set on the device. Only one SIP streaming configuration is supported.
+
+
+
+ response
+
+ This is an empty message.
+
+
+
+ faults
+
+ No command specific faults defined.
+
+
+
+ access class
+
+ ACTUATE
+
+
+
+
+
+ GetStreamingConfigurationOptions
+ This operation retrieves the supported options for the SIP streaming configuration of the device.
+
+
+ request
+
+ This is an empty message.
+
+
+
+ response
+
+ StreamingConfigurationOptions [tsip:StreamingConfigurationOptions]
+ The supported options for SIP streaming configuration.
+
+
+
+ faults
+
+ No command specific faults defined.
+
+
+
+ access class
+
+ READ_MEDIA
+
+
+
+
+
+
+
+ Revision History
+
+
+
+
diff --git a/doc/index.html b/doc/index.html
index 107863fb0..70801ce73 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -186,6 +186,11 @@ Document preview
|
+SIP |
+sip.wsdl |
+
+
+ |
Thermal |
thermal.wsdl |
radiometry.xsd |
diff --git a/wsdl/ver10/device/wsdl/devicemgmt.wsdl b/wsdl/ver10/device/wsdl/devicemgmt.wsdl
index 1847fde46..4226e0d5f 100644
--- a/wsdl/ver10/device/wsdl/devicemgmt.wsdl
+++ b/wsdl/ver10/device/wsdl/devicemgmt.wsdl
@@ -2219,7 +2219,7 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO
-
+
@@ -2489,7 +2489,6 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO
-
@@ -4778,9 +4777,6 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO
-
-
-
diff --git a/wsdl/ver10/sip/wsdl/sip.wsdl b/wsdl/ver10/sip/wsdl/sip.wsdl
new file mode 100644
index 000000000..7dfc0e522
--- /dev/null
+++ b/wsdl/ver10/sip/wsdl/sip.wsdl
@@ -0,0 +1,636 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The capabilities of the SIP service are returned in the Capabilities element.
+
+
+
+
+
+
+
+
+
+ Indicates the maximum number of call recipients supported.
+
+
+
+
+ Indicates the maximum number of SIP registrars supported.
+
+
+
+
+ Indicates the maximum number of STUN server URIs supported.
+
+
+
+
+ Indicates the maximum number of TURN servers supported.
+
+
+
+
+
+
+
+
+
+
+ User name.
+
+
+
+
+ Password. Device shall not return the password in the reply.
+
+
+
+
+
+
+
+
+
+ Transport protocol to use for the registrar. Valid values are defined in tsip:TransportType.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The user info/extension of the Address of Record (AoR) in SIP, identifying the user on the registrar.
+
+
+
+
+ The unique identifier of the certification path validation policy to be used for validating the server certificate as declared in the security service.
+ If not configured, server certificate validation behavior is undefined and the device may either apply a vendor specific default validation policy or skip validation at all.
+
+
+
+
+
+
+
+
+ AuthorizationServer token referring to the server that provides access tokens to authorize with the
+ renewal endpoint as defined in the Security specification.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The current SIP server configuration of the device. Absent if no SIP server configuration has been set.
+
+
+
+
+
+
+
+
+
+
+
+ The SIP server configuration to set on the device. Only one SIP server configuration is supported. If absent, the device shall remove the existing SIP server configuration.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Collection of STUN server URIs used for NAT traversal.
+
+
+
+
+
+ List of STUN server URI.
+
+
+
+
+
+
+
+ Collection of TURN servers used for NAT traversal.
+
+
+
+
+
+ List of TURN server URI.
+
+
+
+
+ Credentials used to authenticate with the TURN server.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The current NAT configuration of the device. Absent if no NAT configuration has been set.
+
+
+
+
+
+
+
+
+
+
+
+ The NAT configuration to set on the device. Only one NAT configuration is supported. If absent, the device shall remove the existing NAT configuration.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Display name of the call recipient.
+
+
+
+
+ The user info/extension of the Address of Record (AoR) in SIP, identifying the recipient on the registrar.
+
+
+
+
+ Order of the recipient, starting at 1 up to and including the value of the MaximumRecipients capability. This order determines in which order the contact is displayed or assigned to physical buttons.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicates whether the device shall allow incoming calls.
+
+
+
+
+ Indicates whether the device shall automatically answer incoming calls.
+
+
+
+
+ List of call recipients.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The current call configuration of the device.
+
+
+
+
+
+
+
+
+
+
+
+ The call configuration to set on the device. Only one call configuration is supported.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The current SIP streaming configuration of the device.
+
+
+
+
+
+
+
+
+
+
+
+ The SIP streaming configuration to set on the device. Only one SIP streaming configuration is supported.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The supported options for SIP streaming configuration.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the capabilities of the SIP service. The result is returned in a typed answer.
+
+
+
+
+ This operation gets the SIP server configuration of the device. The device shall support this command. Only one SIP server configuration is supported.
+
+
+
+
+ This operation sets the SIP server configuration of the device. The device shall support this command. Only one SIP server configuration is supported. If the configuration is absent, the device shall remove the existing SIP server configuration.
+
+
+
+
+ This operation gets the NAT configuration of the device. Only one NAT configuration is supported.
+
+
+
+
+ This operation sets the NAT configuration of the device. Only one NAT configuration is supported. If the configuration is absent, the device shall remove the existing NAT configuration.
+
+
+
+
+ This operation gets the call configuration of the device. Only one call configuration is supported.
+
+
+
+
+ This operation sets the call configuration of the device. Only one call configuration is supported. If the configuration is absent, the device shall remove the existing call configuration.
+
+
+
+
+ This operation gets the SIP streaming configuration of the device.
+
+
+
+
+ This operation sets the SIP streaming configuration of the device.
+
+
+
+
+ This operation gets the supported options for SIP streaming configuration of the device.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+