from suds.client import Client
from suds.wsse import Security
from suds_passworddigest.token import UsernameDigestToken
class ONVIFService(object):
def __init__(self, xaddr, user, passwd, url):
self.url = 'file://'+ url
self.xaddr = xaddr
# Create soap client
self.ws_client = Client(url=self.url,location=self.xaddr)
self.user = user
self.passwd = passwd
security = Security()
token = UsernameDigestToken(self.user, self.passwd)
security.tokens.append(token)
self.ws_client.set_options(wsse=security)
def __getattr__(self, name):
print(name)
return getattr(self.ws_client.service, name)
print("onvif starting")
device_service = ONVIFService('http://127.0.0.1/onvif/device_service','admin', '12345','/etc/onvif/wsdl/devicemgmt.wsdl')
ret=device_service.GetServiceCapabilities()
print ret
device_service = ONVIFService('http://127.0.0.1/onvif/Media','admin', '12345','/etc/onvif/wsdl/media.wsdl')
profiles=device_service.GetProfiles()
#print profiles
for profile in profiles:
print profile._token,profile.Name
param={"StreamSetup":profile.Name,"ProfileToken":profile._token}
MediaUri=device_service.GetStreamUri(param)
print MediaUri.Uri