Проблема с GetProfiles при программном доступе к камерам Hikvision через ONVIF - PullRequest
0 голосов
/ 26 февраля 2019

ПРОБЛЕМА:

У меня есть несколько тестовых камер, которые я использую при разработке драйвера Cocoa ONVIF.У меня есть AXIS, Dahua и Hikvision (пока что - больше будет.)ведут себя так, как и ожидалось.

Большинство из них может вернуть данные изображения RTSP, если я отправлю им прямой URI (что, как я вижу, так выглядит в большинстве приложений «ONVIF»).

ЧтоЯ пытаюсь сделать, это использовать «надлежащие каналы» для доступа к этим устройствам.

Это означает выполнение запроса ОБЯЗАТЕЛЬНО GetProfiles, например, так:

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
 xmlns:trt="http://www.onvif.org/ver10/media/wsdl">
    <soap:Body>
        <trt:GetProfiles/>
    </soap:Body>
</soap:Envelope>

Это учебник.Прямо из руководства по программированию приложений ONVIF.Я использую приложение для инъекций REST, чтобы проверить это, используя POST.Я установил проверку подлинности как базовую, используя полноценного администратора.

Проблема в том, что камеры Hikvision последовательно возвращают «Необязательное действие не выполнено» , что является их способом сказать "Нам не нравится то, что вы отправили ".

Я должен отметить, что команды Core, такие как" GetServices "и" GetCapabilities ", работают очень хорошо.

Есть очень мало полезных уроков.там на ONVIF.Я думаю, что это стандарт, который все еще борется за самостоятельность.

Единственное, что я там видел, это это сообщение .

Это необратиться ко мне.Та же проблема возникает, когда я использую любую версию WSDL.

Когда я использую Wireshark для приложений, которые могут подключаться к камере, я вижу только то, что они напрямую отправляют URI RTSP.Нет упоминания о «GetProfiles».

Мой вопрос, это проблема, с которой сталкивался кто-то еще?

Если так, как это было решено?Я учусь ненавидеть спецификацию ONVIF, так как очень сложно найти подробные описания пакетов.

1 Ответ

0 голосов
/ 27 февраля 2019

Похоже, что вы отправляете все запросы на один и тот же URI.GetServices и GetCapabilities принадлежат Службе управления устройствами, а GetProfiles принадлежит Службе мультимедиа, которая может иметь другой URI (это необходимо проверить с помощью GetServices).

Спецификаций ONVIF в изобилии, я предлагаю вам начать с Руководства по программированию приложений ONVIF .Это дает вам представление о том, как структурировать ваше приложение.

...