2011-08-11 4 views
1

J'ai des problèmes avec la spécification de la caméra IP ONVIF. J'ai construit un programme capable d'utiliser la norme pour contacter les caméras et leur envoyer des demandes standard de support/périphérique.Accès ONVIF et PTZ aux caméras IP

Le problème est que je suis en train d'essayer d'accéder à leurs capacités PTZ par l'ONVIF et que pour mes deux caméras, je reçois seulement cette erreur suivante:

HTTP/1.1 400 Bad Request 
Content-Type: application/soap+xml; charset=utf-8 
Content-Length: 741 
Connection: keep-alive 

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" xmlns:ter="http://www.onvif.org/ver10/error"> 

<SOAP-ENV:Body> 
<SOAP-ENV:Fault> 
<SOAP-ENV:Code> 
<SOAP-ENV:Value>SOAP-ENV:Sender</SOAP-ENV:Value> 
<SOAP-ENV:Subcode> 
<SOAP-ENV:Value>ter:Namespace</SOAP-ENV:Value> 
</SOAP-ENV:Subcode> 
</SOAP-ENV:Code> 
<SOAP-ENV:Reason> 
<SOAP-ENV:Text xml:lang="en">Namespace Error</SOAP-ENV:Text></SOAP-ENV:Reason> 
<SOAP-ENV:Node>http://www.w3.org/2003/05/soap-envelope/node/ultimateReceiver</SOAP-ENV:Node> 
<SOAP-ENV:Role>http://www.w3.org/2003/05/soap-envelope/node/ultimateReceiver</SOAP-ENV:Role> 
</SOAP-ENV:Fault> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

Ainsi, l'erreur d'espace de noms.

Le problème est que j'ai obtenu l'espace de noms PTZ onvif de la caméra (/ onvif/ptz_service) via une requête GetCapabilities() ONVIF.

Le problème est le même pour toute requête PTZ onvif que j'envoie à l'une de mes deux caméras ONVIF. J'ai déjà essayé de trouver des logiciels utilisant l'ONVIF pour leur demander d'envoyer une requête PTZ et de voir s'ils fonctionnent, mais je n'en ai pas trouvé (Il y a un gestionnaire de périphériques ONVIF ici: http://sourceforge.net/projects/onvifdm/ mais il n'y a pas de manipulation PTZ, à moins que le problème vient de mes caméras).

Répondre

5

Je trouve le problème, ce qui est franchement décevant:

j'utilisais la 2ème version (ver20) du fichier WSDL ONVIF PTZ, car la 1ère (ver10) est considérée comme dépréciée.

Il s'avère même que la récente caméra ONVIF que je viens d'acheter il y a quelques jours, avec un firmware mis à jour, utilise encore ver10. Comme je ne peux pas utiliser SvcUtil pour générer ma classe proxy en utilisant ver10 wsdl, j'ai essayé de changer tous les espaces de noms "http://www.onvif.org/ver20/ptz/wsdl" avec ver10 au lieu de ver20, et il fonctionne. Pour l'instant. J'espère que ça continuera à fonctionner avec d'autres caméras ...

Questions connexes