Уважаемая техподдержка!
Имеем камеру DCS-2102. В ней имеем протокол RTSP. И меем известную проблему: Локально камера по этому протоколу работает, из интернета нет (только по HTTP).
Долгие танцы с бубнами, чтение умных книжек, и просмотр утилитами открытых и запрашиваемых портов на компьютере дали следующий результат:
1. Камера находится в локальной сети за роутером (NAT), и имеет локальный IP адрес (предположим 192.168.1.5).
2. Роутер имеет внешний (интернет) IP адрес (предположим 80.80.80.80). На роутере (для эксперемента) все порты проброшены на нашу камеру (DMZ).
3. Из умных книжек узнаём, что сам протокол RTSP транспортом для видео не является, по нему лишь осуществляется передача команд управления потоком с клиента на сервер (на камеру). На камере по умолчанию имеет номер порта 554.
4. Сам же поток передаётся вероятно посредством RTP, номер порта которого не определён стандартом и может находиться во всём множестве портов UDP, но в этой камере опытным путём установлено, что порт назначается начиная с 5004.
5. В дополнение в RTP, идёт ещё протокол RTCP, по которому передаются управляющие пакеты. Его номер всегда идёт следующим нечётным числом за портом RTP. В данном случае это будет 5005.
6. Итак на компьютере из интернета я ввожу адрес вида
RTSP://80.80.80.80/play1.sdp7. Запрос успешно проходит через роутер к камере. Камера по этому же каналу (RTSP) передаёт обрано параметры потока (адрес и порты RTP и RTCP).
8. Эти параметры успешно доходят до компьютера в интернете, и он по ним пытается установить сессию к потоку камеры.
9. И вот тут происходит ОБЛОМ. Камера не знает что она сидит за NAT, и не знает внешний адрес WAN (80.80.80.80). В инициализации сессии по RTSP, она передала нам адрес для RTP и RTCP вида: 192.168.1.5 с портами 5004 и 5005 соответственно.
10. Естетственно наш бедный компьютер в интернете пытается подключиться к потоку 192.168.1.5:5004, и у него ничего не выходит. Поток не передаётся.
Итак внимание.
Уважаемая техподдержка, внесите пожалуйста изменение в прошивку, чтобы в настройках камеры помимо её локального адреса, можно было вручную указать IP адрес, который она будет предлагать в RTSP сессии.Проблема не высосана из пальца, и она масштабна:
http://forum.dlink.ru/viewtopic.php?f=13&t=137361http://forum.dlink.ru/viewtopic.php?f=13&t=138784http://forum.dlink.ru/viewtopic.php?f=13&t=138916И никакой DMZ, проброс портов, и прочие пляски тут не помогут. Нужно чтобы камера при инициализаци RTSP передавала не свой локальный IP адрес, а внешний (IP адрес WAN порта роутера). Я не претендую на звание мегамозга, и вы можете меня поправить если я ошибаюсь в суждениях.