简单对象访问协议(Simple Object Access Protocol)
OpenSSL SSL是Secure Socket Layer(安全套接层协议)
NVR(Network Video Recorder即网络硬盘录像机)
大致编码流程:
struct soap *soap;
char *username = "admin";
char *password = "12345";
const char *soap_endpoint = "http://192.168.1.170/onvif/device_service";
const char *soap_action = NULL;
soap = soap_new();
if( soap == NULL )
{
printf( "soap_new()函数失败!\n" );
return -1;
}
soap_set_namespaces( soap, namespaces );
//使用函数soap_wsse_add_UsernameTokenDigest进行用户名与密码认证
//紧接着下面就可以进行ONVIF提供的协议函数的调用了。
onvif提供的API函数罗列:
SOAP_FMAC5 int SOAP_FMAC6 soap_call___daae__GetSupportedAnalyticsModules
soap_call___daae__CreateAnalyticsModules
soap_call___daae__DeleteAnalyticsModules
soap_call___daae__GetAnalyticsModules
soap_call___daae__ModifyAnalyticsModules
soap_call___dare__GetSupportedRules
soap_call___dare__CreateRules
soap_call___dare__DeleteRules
soap_call___dare__GetRules
soap_call___dare__ModifyRules
soap_call___decpp__CreatePullPoint
soap_call___dee__GetServiceCapabilities
soap_call___dee__CreatePullPointSubscription
soap_call___dee__GetEventProperties
soap_send___denc__Notify
soap_recv___denc__Notify
soap_recv___denc__Notify
soap_call___denf__GetCurrentMessage
soap_call___depp__GetMessages
soap_call___depp__DestroyPullPoint
soap_send___depp__Notify
soap_recv___depp__Notify
soap_call___depps__PullMessages
soap_call___depps__SetSynchronizationPoint
soap_call___depsm__Renew
soap_call___depsm__Unsubscribe
soap_call___depsm__PauseSubscription
soap_call___depsm__ResumeSubscription
soap_call___desm__Renew
soap_call___desm__Unsubscribe
soap_call___dndl__Probe
soap_call___dnrd__Hello
soap_call___dnrd__Bye
soap_call___tad__GetServiceCapabilities
soap_call___tad__DeleteAnalyticsEngineControl
soap_call___tad__CreateAnalyticsEngineControl
soap_call___tad__SetAnalyticsEngineControl
soap_call___tad__GetAnalyticsEngineControl
soap_call___tad__GetAnalyticsEngineControls
soap_call___tad__GetAnalyticsEngine
soap_call___tad__GetAnalyticsEngines
soap_call___tad__SetVideoAnalyticsConfiguration
soap_call___tad__SetAnalyticsEngineInput
soap_call___tad__GetAnalyticsEngineInput
soap_call___tad__GetAnalyticsEngineInputs
soap_call___tad__GetAnalyticsDeviceStreamUri
soap_call___tad__GetVideoAnalyticsConfiguration
soap_call___tad__CreateAnalyticsEngineInputs
soap_call___tad__DeleteAnalyticsEngineInputs
soap_call___tad__GetAnalyticsState
soap_call___tds__GetServices
soap_call___tds__GetServiceCapabilities
soap_call___tds__GetDeviceInformation
soap_call___tds__SetSystemDateAndTime
soap_call___tds__GetSystemDateAndTime
soap_call___tds__SetSystemFactoryDefault
soap_call___tds__UpgradeSystemFirmware
soap_call___tds__SystemReboot
soap_call___tds__RestoreSystem
soap_call___tds__GetSystemBackup
soap_call___tds__GetSystemLog
soap_call___tds__GetSystemSupportInformation
soap_call___tds__GetScopes
soap_call___tds__SetScopes
soap_call___tds__AddScopes
soap_call___tds__RemoveScopes
soap_call___tds__GetDiscoveryMode
soap_call___tds__SetDiscoveryMode
soap_call___tds__GetRemoteDiscoveryMode
soap_call___tds__SetRemoteDiscoveryMode
soap_call___tds__GetDPAddresses
soap_call___tds__GetEndpointReference
soap_call___tds__GetRemoteUser
soap_call___tds__SetRemoteUser
soap_call___tds__GetUsers
soap_call___tds__CreateUsers
soap_call___tds__DeleteUsers
soap_call___tds__SetUser
soap_call___tds__GetWsdlUrl
soap_call___tds__GetCapabilities
soap_call___tds__SetDPAddresses
soap_call___tds__GetHostname
soap_call___tds__SetHostname
soap_call___tds__SetHostnameFromDHCP
soap_call___tds__GetDNS
soap_call___tds__SetDNS
soap_call___tds__GetNTP
soap_call___tds__SetNTP
soap_call___tds__GetDynamicDNS
soap_call___tds__SetDynamicDNS
soap_call___tds__GetNetworkInterfaces
soap_call___tds__SetNetworkInterfaces
soap_call___tds__GetNetworkProtocols
soap_call___tds__SetNetworkProtocols
soap_call___tds__GetNetworkDefaultGateway
soap_call___tds__SetNetworkDefaultGateway
soap_call___tds__GetZeroConfiguration
soap_call___tds__SetZeroConfiguration
soap_call___tds__GetIPAddressFilter
soap_call___tds__SetIPAddressFilter
soap_call___tds__AddIPAddressFilter
soap_call___tds__RemoveIPAddressFilter
soap_call___tds__GetAccessPolicy
soap_call___tds__SetAccessPolicy
soap_call___tds__CreateCertificate
soap_call___tds__GetCertificates
soap_call___tds__GetCertificatesStatus
soap_call___tds__SetCertificatesStatus
soap_call___tds__DeleteCertificates
soap_call___tds__GetPkcs10Request
soap_call___tds__LoadCertificates
soap_call___tds__GetClientCertificateMode
soap_call___tds__SetClientCertificateMode
soap_call___tds__GetRelayOutputs
soap_call___tds__SetRelayOutputSettings
soap_call___tds__SetRelayOutputState
soap_call___tds__SendAuxiliaryCommand
soap_call___tds__GetCACertificates
soap_call___tds__LoadCertificateWithPrivateKey
soap_call___tds__GetCertificateInformation
soap_call___tds__LoadCACertificates
soap_call___tds__CreateDot1XConfiguration
soap_call___tds__SetDot1XConfiguration
soap_call___tds__GetDot1XConfiguration
soap_call___tds__GetDot1XConfigurations
soap_call___tds__DeleteDot1XConfiguration
soap_call___tds__GetDot11Capabilities
soap_call___tds__GetDot11Status
soap_call___tds__ScanAvailableDot11Networks
soap_call___tds__GetSystemUris
soap_call___tds__StartFirmwareUpgrade
soap_call___tds__StartSystemRestore
soap_call___timg__GetServiceCapabilities
soap_call___timg__GetImagingSettings
soap_call___timg__SetImagingSettings
soap_call___timg__GetOptions
soap_call___timg__Move
soap_call___timg__Stop
soap_call___timg__GetStatus
soap_call___timg__GetMoveOptions
soap_call___tls__GetServiceCapabilities
soap_call___tls__GetLayout
soap_call___tls__SetLayout
soap_call___tls__GetDisplayOptions
soap_call___tls__GetPaneConfigurations
soap_call___tls__GetPaneConfiguration
soap_call___tls__SetPaneConfigurations
soap_call___tls__SetPaneConfiguration
soap_call___tls__CreatePaneConfiguration
soap_call___tls__DeletePaneConfiguration
soap_call___tmd__GetServiceCapabilities
soap_call___tmd__GetAudioSources
soap_call___tmd__GetAudioOutputs
soap_call___tmd__GetVideoSources
soap_call___tmd__GetVideoOutputs
soap_call___tmd__GetVideoSourceConfiguration
soap_call___tmd__GetVideoOutputConfiguration
soap_call___tmd__GetAudioSourceConfiguration
soap_call___tmd__GetAudioOutputConfiguration
soap_call___tmd__SetVideoSourceConfiguration
soap_call___tmd__SetVideoOutputConfiguration
soap_call___tmd__SetAudioSourceConfiguration
soap_call___tmd__SetAudioOutputConfiguration
soap_call___tmd__GetVideoSourceConfigurationOptions
soap_call___tmd__GetVideoOutputConfigurationOptions
soap_call___tmd__GetAudioSourceConfigurationOptions
soap_call___tmd__GetAudioOutputConfigurationOptions
soap_call___tmd__GetRelayOutputs
soap_call___tmd__SetRelayOutputSettings
soap_call___tmd__SetRelayOutputState
soap_call___tptz__GetServiceCapabilities
soap_call___tptz__GetConfigurations
soap_call___tptz__GetPresets
soap_call___tptz__SetPreset
soap_call___tptz__RemovePreset
soap_call___tptz__GotoPreset
soap_call___tptz__GetStatus
soap_call___tptz__GetConfiguration
soap_call___tptz__GetNodes
soap_call___tptz__GetNode
soap_call___tptz__SetConfiguration
soap_call___tptz__GetConfigurationOptions
soap_call___tptz__GotoHomePosition
soap_call___tptz__SetHomePosition
soap_call___tptz__ContinuousMove
soap_call___tptz__RelativeMove
soap_call___tptz__SendAuxiliaryCommand
soap_call___tptz__AbsoluteMove
soap_call___tptz__Stop
soap_call___trc__GetServiceCapabilities
soap_call___trc__CreateRecording
soap_call___trc__DeleteRecording
soap_call___trc__GetRecordings
soap_call___trc__SetRecordingConfiguration
soap_call___trc__GetRecordingConfiguration
soap_call___trc__CreateTrack
soap_call___trc__DeleteTrack
soap_call___trc__GetTrackConfiguration
soap_call___trc__SetTrackConfiguration
soap_call___trc__CreateRecordingJob
soap_call___trc__DeleteRecordingJob
soap_call___trc__GetRecordingJobs
soap_call___trc__SetRecordingJobConfiguration
soap_call___trc__GetRecordingJobConfiguration
soap_call___trc__SetRecordingJobMode
soap_call___trc__GetRecordingJobState
soap_call___trp__GetServiceCapabilities
soap_call___trp__GetReplayUri
soap_call___trp__GetReplayConfiguration
soap_call___trp__SetReplayConfiguration
soap_call___trt__GetServiceCapabilities
soap_call___trt__GetVideoSources
soap_call___trt__GetAudioSources
soap_call___trt__GetAudioOutputs
soap_call___trt__CreateProfile
soap_call___trt__GetProfile
soap_call___trt__GetProfiles
soap_call___trt__AddVideoEncoderConfiguration
soap_call___trt__AddVideoSourceConfiguration
soap_call___trt__AddAudioEncoderConfiguration
soap_call___trt__AddAudioSourceConfiguration
soap_call___trt__AddPTZConfiguration
soap_call___trt__AddVideoAnalyticsConfiguration
soap_call___trt__AddMetadataConfiguration
soap_call___trt__AddAudioDecoderConfiguration
soap_call___trt__AddAudioOutputConfiguration
soap_call___trt__RemoveVideoEncoderConfiguration
soap_call___trt__RemoveVideoSourceConfiguration
soap_call___trt__RemoveAudioEncoderConfiguration
soap_call___trt__RemoveAudioSourceConfiguration
soap_call___trt__RemovePTZConfiguration
soap_call___trt__RemoveVideoAnalyticsConfiguration
soap_call___trt__RemoveMetadataConfiguration
soap_call___trt__RemoveAudioOutputConfiguration
soap_call___trt__RemoveAudioDecoderConfiguration
soap_call___trt__DeleteProfile
soap_call___trt__GetVideoSourceConfigurations
soap_call___trt__GetVideoEncoderConfigurations
soap_call___trt__GetAudioSourceConfigurations
soap_call___trt__GetAudioEncoderConfigurations
soap_call___trt__GetVideoAnalyticsConfigurations
soap_call___trt__GetMetadataConfigurations
soap_call___trt__GetAudioOutputConfigurations
soap_call___trt__GetAudioDecoderConfigurations
soap_call___trt__GetVideoSourceConfiguration
soap_call___trt__GetVideoEncoderConfiguration
soap_call___trt__GetAudioSourceConfiguration
soap_call___trt__GetAudioEncoderConfiguration
soap_call___trt__GetVideoAnalyticsConfiguration
soap_call___trt__GetMetadataConfiguration
soap_call___trt__GetAudioOutputConfiguration
soap_call___trt__GetAudioDecoderConfiguration
soap_call___trt__GetCompatibleVideoEncoderConfigurations
soap_call___trt__GetCompatibleVideoSourceConfigurations
soap_call___trt__GetCompatibleAudioEncoderConfigurations
soap_call___trt__GetCompatibleAudioSourceConfigurations
soap_call___trt__GetCompatibleVideoAnalyticsConfigurations
soap_call___trt__GetCompatibleMetadataConfigurations
soap_call___trt__GetCompatibleAudioOutputConfigurations
soap_call___trt__GetCompatibleAudioDecoderConfigurations
soap_call___trt__SetVideoSourceConfiguration
soap_call___trt__SetVideoEncoderConfiguration
soap_call___trt__SetAudioSourceConfiguration
soap_call___trt__SetAudioEncoderConfiguration
soap_call___trt__SetVideoAnalyticsConfiguration
soap_call___trt__SetMetadataConfiguration
soap_call___trt__SetAudioOutputConfiguration
soap_call___trt__SetAudioDecoderConfiguration
soap_call___trt__GetVideoSourceConfigurationOptions
soap_call___trt__GetVideoEncoderConfigurationOptions
soap_call___trt__GetAudioSourceConfigurationOptions
soap_call___trt__GetAudioEncoderConfigurationOptions
soap_call___trt__GetMetadataConfigurationOptions
soap_call___trt__GetAudioOutputConfigurationOptions
soap_call___trt__GetAudioDecoderConfigurationOptions
soap_call___trt__GetGuaranteedNumberOfVideoEncoderInstances
soap_call___trt__GetStreamUri
soap_call___trt__StartMulticastStreaming
soap_call___trt__StopMulticastStreaming
soap_call___trt__SetSynchronizationPoint
soap_call___trt__GetSnapshotUri
soap_call___trv__GetServiceCapabilities
soap_call___trv__GetReceivers
soap_call___trv__GetReceiver
soap_call___trv__CreateReceiver
soap_call___trv__DeleteReceiver
soap_call___trv__ConfigureReceiver
soap_call___trv__SetReceiverMode
soap_call___trv__GetReceiverState
soap_call___tse__GetServiceCapabilities
soap_call___tse__GetRecordingSummary
soap_call___tse__GetRecordingInformation
soap_call___tse__GetMediaAttributes
soap_call___tse__FindRecordings
soap_call___tse__GetRecordingSearchResults
soap_call___tse__FindEvents
soap_call___tse__GetEventSearchResults
soap_call___tse__FindPTZPosition
soap_call___tse__GetPTZPositionSearchResults
soap_call___tse__GetSearchState
soap_call___tse__EndSearch
soap_call___tse__FindMetadata
soap_call___tse__GetMetadataSearchResults