FEAT: Test de flux DVRIP — dvrip:// avec handshake Sofia MD5 (agent) #66
Labels
No labels
bug
chore
design
dx:ci
dx:database
dx:dotnet
dx:infra
dx:security
dx:tests
dx:ui
etape-1
etape-2
etape-3
etape-4
etape-5
etape-6
etape-7
feature
priority-high
priority-low
priority-medium
security
spec
tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
nonobis/Heimdall#66
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexte
Strix teste les flux
dvrip://(pkg/tester/source.go → go2rtc pkg/dvrip : TCP, auth Sofia MD5, négociation OPMonitor). Heimdall découvre les caméras Dahua/Imou par broadcast DVRIP (Fixes #55) mais ne teste jamais leur flux DVRIP :BuildCandidateUrlsne génère que des URLs RTSP/HTTP,IsStreamUrlAliveAsyncne gère quertsp://ethttp(s)://→ une caméra DVRIP-only peut être ajoutée avec un flux mort.État actuel
DiscoverDvripAsynccrée des devices (OpenPorts [37777], Vendor Dahua)CameraStreamTemplates: templatep:dvrrip(RTSP) mais pas dedvrip://IsStreamUrlAliveAsync: seulement RTSP/HTTPProtocolFromUrl: pas de DVRIP (retombe sur RTSP)À faire
OPMonitorou au minimum login+GetOperateType pour prouver le fluxdvrip://user:pass@ip:port?channel=N&subtype=0pour les devices DVRIP (comme StrixdvripHandler)IsStreamUrlAliveAsynccasdvrip://(connexion TCP 37777 + handshake)ProtocolFromUrl→ StreamProtocol.Dvrip (vérifier l'enum) ; affichage correct dans la popupCritères d'acceptation
dvrip://est testé vivant491a253)Fichiers concernés
src/Heimdall.Agent/Services/NetworkCameraScanner.cssrc/Heimdall.Application/Discovery/CameraStreamTemplates.cssrc/Heimdall.Infrastructure/Services/Discovery/CameraDiscoveryService.cs(ProtocolFromUrl)DiscoveriesPage.razorRéférence
pkg/tester/source.go(dvripHandler), go2rtcpkg/dvrip/dvrip.go