ДИТ Москвы
Компания
39,94
рейтинг
10 марта 2015 в 16:36

Разработка → 130 тысяч камер видеонаблюдения – как заставить их работать?

Привет, Хабр! Хотим снова поблагодарить вас за отличную обратную связь, на ряд ваших вопросов мы дадим развёрнутые ответы, в том числе – подробно расскажем про инфраструктуру нашей системы. Мы и сами подумывали в скором времени сделать такой пост, но раз вы тоже высказали интерес к данной тематике, то мы немного форсировали процесс.


Под катом – сразу к делу.

Архитектура системы построена по модульному принципу, что является стандартом для систем такого масштаба. Но есть одно существенное отличие: этих модулей в системе не просто много, а очень много. Каждый модуль выполняет отдельные узкоспециализированные задачи, связанные с получением видеоизображений и информации от городских и ведомственных информационных систем (ИС), управлением доступом к обрабатываемым данным, предоставлением фото- и видеоизображений пользователям ЕЦХД и различным внешним потребителям, в том числе жителям города.

Модули тесно взаимодействуют между собой на основе различных технологий (в основном – JSON, REST API и SOAP). Сами модули реализованы на различных языках (Java, C#, Java Script и другие), с использованием фреймворков (ASP.NET Web API, WCF, NLog, Entity Framework, MySQL ADO.NET managed drivers, Unity 3, EPPlus, Json.NET, EmitMapper, DotNetZip, jQuery, knockoutjs, Moment.js, underscore.js и так далее).

Всё это программное разнообразие функционирует под управлением различных операционных систем (Windows Server, SUSE Linux Enterprise Server, CentOS и другие) в среде виртуализации VMware vSphere 5.

Архитектура системы приведена на схеме:



Все модули имеют собственные механизмы отказоустойчивости и балансировки. Для этого используются кластерные технологии, различные варианты балансировки HTTP-запросов на основе nginx, а также управление очередями и приоритетами на прикладном уровне. Кроме того, все модули объединены по принципу слабой связности, что существенно повышает возможности развития и модификации системы в целом.

Данный подход позволяет сделать систему не только масштабируемой, но и очень гибкой в части реализации новых технологических процессов или внесения изменений в существующие, так как каждый модуль может развиваться самостоятельно, и поддержка обратной совместимости модуля является обязательным требованием.

Описание основных компонентов системы


Видеоядро, обеспечивающее получение и обработку видеопотоков, представляет собой несколько сотен видеосерверов, работающих на ресурсах выделенных виртуальных машин под управлением Linux, обеспечивающих приём видеотрафика с более чем 145 тысяч камер, кодеров и других систем формирования видеопотока. Приём трафика осуществляется по протоколу RTSP (видео в формате H.264), схема приёма трафика может использоваться различная – на постоянной основе с настраиваемой глубиной записи (периодом хранения), или по запросу в случае необходимости простого просмотра видео. Такой гибкий подход позволяет экономить как серверные ресурсы, так и снижать загруженность каналов связи.

В качестве протокола транспортного уровня в основном используется TCP, но в ряде случаев может использоваться и UDP. Видеосервера выполняют несколько задач:

Основную: получение видеопотока, его запись и последующую выдачу потокового или архивного видео серверам ретрансляции или долговременное хранение части архивного видео на отдельном выделенном хранилище;
Ряд дополнительных: контроль доступности видеоисточника, контроль получения и соответствия видеопотока заданным параметрам (fps, bitrate, потери пакетов), а также через специализированные шины обмена данными информация от видеосерверов поступает в систему контроля оказания услуги для последующего учёта и передачи в службы эксплуатации.

Управление видеосерверами осуществляется через специализированный HTTP API, позволяющий полностью автоматизировать работу через управляющие системы. Функционирование видеосерверов контролируются через Zabbix, с использованием дополнительных внутренних механизмов видеосерверов.

Рестримминг – сервера ретрансляции – связующее звено между видеоядром (осуществляющим первичный приём видео и его запись) и пользователями (по сути основными потребителями видеоконтента). Встроенные механизмы реинкапсуляции и дистрибуции потокового видео позволяют обеспечивать ретрансляцию «живого» и архивного видеоконтента на ПК и портативные устройства (планшеты, телефоны). Рестримминг также может обеспечивать потоковую выдачу видеоконтента по RTSP для дополнительных систем, например, для систем видеоаналитики или системы управления транскодированием – ведь пользователям иногда требуется и «сжатый» видеопоток, если вдруг «просел» канал, а посмотреть видео очень хочется :) Также пользователи могут воспользоваться и специальным режимом просмотра в виде слайдшоу. Сервера ретрансляции работают в кластере и поддерживают режим динамического резервирования, а также изолируют видеоядро от возможных всплесков создаваемой пользователями нагрузки.

Пользовательский интерфейс – веб-интерфейс (front-end) обеспечивает авторизованный доступ для нескольких десятков тысяч зарегистрированных пользователей к системе видеонаблюдения и предоставляющий широкий набор различных функциональных возможностей, доступных из любой точки внутригородской сети, а в ряде случаев и через закрытые выделенные Интернет-ресурсы.

Работа обеспечивается в среде различных операционных систем (Windows, MacOS, Linux) на всех основных браузерах, что существенно упрощает организацию рабочих мест. Также поддерживается работа и с ряда мобильных устройств, например, на базе iOS.

Функциональные возможности достаточно разнообразны – начиная от обычного просмотра потокового и архивного видео (через flash-плеер на ПК, и нативные средства на iOS) и управления PTZ-функциями камер, поисковых механизмов с привязками к различным слоям картографии и интеграции с данными городских систем, и до использования гибкой ролевой модели, формирования персонального представления пользовательского интерфейса и встроенных механизмов обучения пользователей.

Front-end использует такие технологии как RequireJS, knockout, lodash, leaflet и другие. Back-end построен по модульному принципу, позволяющему обеспечивать необходимый уровень резервирования и масштабирования компонентов, используется система управления конфигурациями. ПО и технологии: Java/Tomcat, MariaDB, RabbitMQ и ряд других.

Шлюз интеграции – набор модулей подсистем, обеспечивающих изоляцию внешних потребителей информации от ядра системы. Выдаёт различную информацию внешним системам после прохождения авторизации и учётом заданных полномочий (т.е. доступного объёма данных и функциональных возможностей). Функционирует три основных логических компонента:

  • Компонент сервисного взаимодействия – это HTTP API, через который обеспечивается выдача заданного набора информации (наименования камер, адреса и координаты размещения, скриншоты и другая сопроводительная информация).

  • Компонент ретрансляции – предназначен для минимизации нагрузки на видеоядро и предоставления трансляции видеопотоков внешним системам (поддерживается вещания на flash, а также HLS для iOS-устройств). Видеоядро и сервера рестримминга обладают функциональностью CDN, а данный компонент работает как дополнительное CDN-звено распространения видеоконтента.

  • Компонент предоставления интерфейса – предназначен для встраивания во внешние системы в качестве готового интерфейса воспроизведения потоковой и архивной видеоинформации, например, путём встраивания через iframe и простой кастомизации (настройки визуального представления – цвета, необходимые функциональные кнопки и т.п.) через простые параметризированные вызовы.

Использование данных компонентов позволяет внешним системам не только получать доступ к данным и формировать собственный интерфейс визуализации информации, но и максимально просто имплементировать в свой интерфейс уже подготовленные компоненты.



Для предоставления пользователям доступа к камерам системы видеонаблюдения существует целый комплекс взаимосвязанных компонентов, обеспечивающих аутентификацию и авторизацию пользователей, приоритезацию доступа к функциям PTZ-управления, протоколирование действий пользователей и взаимодействие отдельных модулей.

Система поддерживает два вида аутентификации: с использованием учётных записей пользователей ЕЦХД и с использованием единой городской системы управления доступа к ресурсам (фактически, это возможность SSO для общегородских ИС). При этом, для одного физического пользователя, возможно совместное использование различных видов аутентификации. Ключевая аутентификационная информация пользователей ЕЦХД хранится в Active Directory, а вся дополнительная информация – в БД Microsoft SQL.

Все пароли, разумеется, передаются между модулями в зашифрованном виде. Или не передаются вообще, так мы тоже умеем :)

Предоставление полномочий и приоритетов доступа реализовано на основе единой для всех модулей ролевой модели, которая позволяет предоставлять доступ не только к камерам видеонаблюдения, но и к отдельным функциям системы. На текущий момент в системе существует более 100 различных полномочий: доступ к «живой» трансляции, возможность просмотра и экспорта архива фото- и видеоизображений, PTZ-управление, внесение изменений в отдельные системные реестры и справочники, создание расписания для получения снимков, создание маршрутов патрулирования, возможность доступа с мобильных устройств и многое другое. Система постоянно развивается, подключаются новые группы пользователей со своими задачами, и добавление новых полномочий в систему происходит, фактически, на лету.

Дополнительно существует несколько уровней приоритетов для различных групп пользователей и системных сервисов, что позволяет избегать конфликтов между различными группами пользователей и «прозрачно» перехватывать PTZ-управление камерами, обеспечивать управление в режимах патрулирования или перемещать зону обзора по расписанию.

Для того чтобы быстро и просто предоставлять полномочия для десятков тысяч пользователей и управлять ими, в системе применяются различные механизмы: назначение полномочий на группы пользователей, использование шаблонов с предопределенными типовыми полномочиями, смарт-группы (когда на основе заданных правил новые пользователи автоматически распределяются по группам). Аналогичные механизмы применяются для управления реестрами камер, но распределение по группам, в основном, реализовано по географическому принципу, типу услуги или принадлежности к ведомственной системе видеонаблюдения.

Контроль доступа осуществляется практически в режиме реального времени, и любое изменение состава полномочий моментально сказывается на пользователе. Дополнительно для контроля времени жизни ссылок на «живые» видеопотоки используются сессионные механизмы валидации на основе токенов. Кстати, именно отсутствие этого механизма в тестовом сервисе для жителей города и позволило получить доступ к «просроченным» ссылкам на видеопотоки.

В системе зафиксируются все действия пользователя и взаимодействие модулей на всех уровнях, что позволит проводить анализ любой ситуации. Система протоколирования фиксирует дату и время события, какие действия выполнил пользователь (вплоть до нажатия кнопок интерфейса), какие задания планировщика выполнялись в системе, чем завершился информационный обмен и многое другое. На текущий момент в системе зафиксировано более 10 млрд. записей о выполнении «технологических» процессов, каждая из которых состоит из нескольких отдельных протоколируемых действий. Сотрудники ДИТ ежедневно получают статистику, позволяющую определить активность пользователей в различных разрезах: какими порталами пользовались, количество просмотров «живых» трансляций, по каким группам камер было наибольшее количество запросов и т.п.

В качестве «вишенки на торте», система видеонаблюдения в цифрах:

Количество камер: более 145 тысяч;
Количество пользователей: более 10 тысяч;
Объём сетевого видеотрафика: около 120 Гбит/с;
Объём системы хранения: 20 Пбайт.

Официальная страничка системы тут. Можно посмотреть технические характеристики камер, узнать, как действовать в случае происшествия, которое могло попасть в объектив, и посмотреть несколько камер в публичных местах с помощью сервиса «Окно в город».

Читайте также в нашем блоге на Хабре:
» Хабраэффект для 130 000 камер Москвы
» Информационные технологии кормят более 750 тысяч человек в Москве
» Блог департамента информационных технологий города Москвы на «Хабрахабре»

Спасибо за внимание!
Автор: @DIT
ДИТ Москвы
рейтинг 39,94
Компания прекратила активность на сайте

Комментарии (51)

  • +1
    Количество пользователей: более 10 тысяч;

    Это количество пользователей, которым раздали приглашения на тестирование?
    А какое максимальное количество пользователей одновременно смотрели трансляции (на текущий момент)?
    • +6
      Тестирование здесь не при чем, это количество городских пользователей — правоохранители, коммунальные службы, контрольные органы, инспекции и т.д. Для них действует отдельный служебный портал с более простым интерфейсом, но расширенным функционалом, доступ к нему осуществляется из внутренней сети
      • –5
        Количество камер: более 145 тысяч;
        Количество пользователей: более 10 тысяч;

        Внушительно! Неужели в среднем один пользователь просматривает 14 с половиной камер!?)))
        Как-то у вас все не автоматизированно… Я конечно понимаю, что ROI не включает в себя когда ничего не происходит в кадре) Но все же это похоже на типично советскую или индийскую/китайскую систему распознавания легионами пользователей.

        Можете дать ссылку на ТЗ и тендер!?
        • +1
          У упомянутых выше пользователей (коммунальщиков и полиции) нет задачи сидеть и просматривать, как вы посчитали, «14 с половиной камер». Это просто нерационально. В онлайн-режиме у них есть возможность проконтролировать нужный участок территории — как проходит уборка двора, не возведены ли незаконные рекламные конструкции и т.д. На случай ЧП существует архив, где все записи хранятся 5 дней. В течение этого срока у любого жителя есть возможность обратиться в контактный центр по тел. +7(495)587-00-02 и попросить сохранить нужный интервал видео на более длительный срок — чтобы позднее полиция могла использовать его в своей работе.
  • +3
    1) Вводятся ли в строй новые камеры и как часто?
    2) Какое типовое разрешение у камер? Какой максимальное?
    3) Заменяют ли старые камеры на более продвинутые? Как часто случаются поломки?
    • 0
      Единомоментно могут не работать по тем или иным причинам 0,6% от всех камер, причем они всегда территориально разнесены. Процесс замены камер на более продвинутые может иметь место, но мы здесь отталкиваемся в первую очередь от решаемых задач и исходя из них выставляем требования к оператору по картинке. Пока достаточно тех, что есть, они вполне современные.Общие требования выглядят следующим образом:
      -Кодирование сигнала: цветное, протокол Н.264, разрешение не менее 4cif (704х576), компрессия не более 30%;
      — Разрешение не менее 540 ТВЛ в цветном режиме;
      — Чувствительность не менее 0,05 Lux в черно-белом режиме;
      — Видеоизображение должно соответствовать параметрам эталонного (четкое (не замутненное), не повернуто, не расфокусировано, не одноцветное (монохромное), цветопередача не искажена, объектив/купол камеры не загрязнен и т.п.)
      Ну, и понятно дело, сам видеопоток должен быть стабильным.

  • –5
    Я так понимаю в итоге конечная цель проэкта — автоматизированно «вести» всех жителей Москвы от камеры к камере?
    • 0
    • +7
      Такой задачи нет, задача — повысить раскрываемость преступлений и отпугивать хулиганов, которые под камерами резвятся гораздо неохотнее, контролировать, как убирается город, дать дополнительные рабочие инструменты инспекционным службам, которые уже сейчас могут штрафовать прямо с камеры, планировать выезды инспекции и фиксировать нарушения, проверять жалобы горожан на тот же портал «Наш город» (это московский аналог 311). Способов применения достаточно много.
      • 0
        Ага, ограбили меня как-то в метро под камерой лет 7 назад. Так не то что записи с камеры никто не смотрел (аргументировали что камеры в переходе на Белорусской не работали) так и магическим образом никто не мог дать контакты: «мы не знаем кто у нас когда дежурит на эскалаторе» или вызвать как свидетеля сотрудницу эскалатора, на глазах у которой все происходило. В итоге, дело гуляло между милицией метрополитена и прокуратурой, сотрудник милиции приходил домой около полуночи и требовал чтобы я написал отказ от возбуждения уголовного дела. Логично, что я ничего не написал. После такого опыта и «повысить раскрываемость преступлений и отпугивать хулиганов» вспоминается «по причине атаки вирусов, видеофайлы с камер видеорегистраторов уничтожены»
        • +2
          централизованная система (она с 2012 г. создается) как раз и позволяет всех участников обезопасить от человеческого фактора — бюрократии, головотяпства и т.д. У нас из архива ничего не исчезает и человек на местах, которому сохранение архива может быть невыгодно, никак на него не влияет.
          • 0
            Спасибо, вот это действительно ценная функциональность!!!
            Это не устраняет вариант на суде «по причине атаки вирусов, видеофайлы с камер видеорегистраторов уничтожены», но все же лучше чем ничего. Полное решение проблемы — это возможность доступа к этому видеофрагменту пострадавшего для репликация на независимый сторедж
      • 0
        Чтобы отпугивать хулиганов, удобнее муляжи развешать. :) Я вот только из этого сервиса узнал, сколько возле дома камер, и где. Потому что они просто не видны.
        • 0
          Уже развешивали муляжи по Москве, население не очень хорошо оценило такой ход :)
          • +1
            Потому что надо было не вместо настоящих камер их вешать. :)
        • 0
          муляжи на дорогах есть, но в жилом секторе смысла нет
    • +1
      image
  • +1
    А чем еще ДИТ занимается, помимо истории с видеокамерами, расскажете?
    • +4
      Спрашивайте, что вам интересно, тем много — городской WiFi, жалобные порталы, электронные референдумы, внутренние системы для документооборота и проведения совещаний, например, отслеживание уборочной техники по ГЛОНАСС, техническое оснащение школ, единая мобильная платформа, открытые данные и т.д., будем обо всем потихоньку рассказывать.
      • 0
        Работа, только работа интересует, vNEXT
      • 0
        Да, почти все очень интересно. Например, отслеживание техники по ГЛОНАСС и похожие задачи — на какой-то платформе IoT реализуете? Или сами писали весь код?
        • 0
          Система отслеживания техники по ГЛОНАСС реализована в виде 2-уровневой системы: нижний уровень система сбора данных, верхний — отчетно-аналитическая система.

          Нижний уровень реализован полностью на свободных продуктах: Python, NoSQL (MongoDB), PostgresSQL и функционирует под Linux.
          Верхний уровень реализован на технологиях Oracle: Java (Spring), WebLogic, OracleDB, функционирует так же под Linux.
      • 0
        Про городской Wi-Fi расскажите, пожалуйста.
  • +2
    Публичное API планируется? А то пока приходится вот так колхозить: тыц.
    • 0
      (UPD: такое ощущение что камеру таки кто-то поломал. Уж больно «рекламно» она направлена...)
      Скрин
      image

      • 0
        Камерами пользуются разные службы — от ЖКХ до инспекторов Департамента СМИ, которые с их помощью ищут незаконные рекламные конструкции, потому каждый крутит их как хочет, через некоторое время она возвращается в исходную позицию. Для конечных пользователей управление камерой недоступно.
        • +3
          А про API что скажете?
          • 0
            И почему вопросы про API тщательно игнорируются?..
            • 0
              Скорее всего потому, что это будет потенциально вредить монетизации сервиса.
              • 0
                Хм, почему же. Можно сделать ж доступ к нему по тем же тарифам.

                Так-то скорее всего люди расковыряют то, что есть, там обычный JSON везде, но хотелось бы именно официального API.
  • +1
    На правах участника бета-тестирования:
    1) Каким образом вам можно сообщить о неисправных/неработающих камерах? В моем доме не работает ни одна из трех, фотографии с них, скорее всего, относятся к началу зимы, видео не работает вообще
    2) Как узнать, кто владеет камерами? У нас в доме камер больше, чем указано у вас (есть камеры внутри подъездов, визуально выглядят иначе)
    3) Куда вообще сообщать о багах? На улице Машкова на вашей карте отмечена как минимум одна камера с ул. Старая Басманная (она работает, показывает Старую Басманную, в описании тоже правильный адрес — только на карте она в неправильном месте)
    • 0
      промахнулись, ответ ниже
  • 0
    Если камера со звездочкой (указано рядом с объектом при наведении курсора), то внедрена автоматизированная система контроля качества, которая фиксирует, поступает ли поток в единый центр хранения и обработки и соответствует ли он заданным параметрам качества. В случае неисправности включается SLA, нарушение которого может привести к штрафным санкциям для оператора. Камеры без звездочки принадлежат сторонним организациям со своими заказчиками. Трансляция на тестовом портале, кстати, может прерываться, если камеру смотрит городской пользователь с более высоким приоритетом (полиция, жкх и т.д.). Вообще если сразу все камеры не показывают, дело может быть в ваших настройках, или смотрите с устройств, под которые не адаптировано. Другие потоки у вас открываются? Что касается скриншотов, то они не предусматривались как регулярно обновляемые, они нужны, чтобы оценить обзор конкретной камеры, прежде чем добавить ее в отобранные для просмотра. О неправильном расположении камеры можно сообщить через форму обратной связи на портале.
    • 0
      Множество других камер работает, не работают именно в нашем доме

      Звездочек на камерах нет, сегодня утром проверил.

      Вопрос про «кто владеет камерами» я задал, т.к камеры визуально одинаковые, но в списке только 3 из 9 (и эти 3 еще и не работают).

      Спасибо за ответ
  • +4
    А как к вам на работу устроиться? Куда слать резюме?
    • +3
      нашим HR-ам сюда слать DIT_HR@mos.ru
  • 0
    Машину строите? )
    • 0
      Не просто Машину, а МашинуHome.
      • +1
        Парсер лох. Машину @ Home.
  • –8
    Спасибо за то, что сделали город худшим в рейтинге личных свобод.
    Теперь за тобой могут следить не только спецслужбы, но и любой сброд.
    • +7
      Вы когда идете по улице, при этом курите, кушаете мороженное, выбрасываете фантик в урну — за вами наблюдают случайные прохожие — вы им в лицо почему не говорите, что эти люди «СБРОД» и не надо на Вас смотреть, даже случайным взором???
      Мне всегда было интересно, чего-же «вы» боитесь\опасаетесь, говоря о том, что за «вами» «кто-то следит»? Чем вы занимаетесь на улице и в общественных местах, что было-бы необходимо утаить? Для личной жизни — есть частная собственность. Нету? — Стремитесь!
      И все-же если ваше окружение, в повседневной жизни, состоит лишь из «любого сброда», то лучше найдите укромное местечко где-нибудь поближе к природе и уединитесь.
      • 0
        Но ведь можно, например, проследить за тем, когда хозяева покидают квартиру — первое, что в голову пришло. И таких сомнительных юзкейсов можно придумать еще.
        • 0
          У вас не очень удачный пример.
          Без камер:
          За подъездом\хозяином следят = Преступники (любым наружным наблюдением. К примеру машина неподалеку и снимает на видеорегистратор)
          После ограбления = следов нет.
          С камерами:
          За подъездом\хозяином следят = Преступники и «Большой Брат видео-архива»
          После ограбления = Имеется видео-архив.

          Ощутимая разница возможностей До и После?
        • 0
          И в дополнение тому, что сказано выше — в центре хранения есть логи каждого обращения к каждой конкретной камере.
  • +1
    Объём системы хранения: 20 Пбайт


    Вы можете рассказать поподробнее про саму СХД? Было бы очень интересно почитать про то, на чём всё это крутится, про проблемы с которыми столкнулись при создании и про введение в эксплуатацию?
    • 0
      Присоединяюсь к вопросу, очень интересно как удается обеспечить:
      — сохранность данных
      — приемлемые задержки на чтение и запись
      — приемлемую стоимость за 1 ГБ за год (можно все сделать на десктопных HDD, чтобы было дешево в закупке — но менять их пришлось бы вагонами).

      Объектное хранилище типа Ceph на стандартных x86-серверах с большим числом дисков? Erasure coding, несколько площадок?
      • 0
        Будучи чуть-чуть в теме взгляд зацепился за «20 Пбайт». Если система которую недавно внедряли и эта — одно и то же, то очень очень хочется со стороны ДИТа узнать.

  • +1
    Архитектурно система ЕЦХД на уровне работы ИТ-оборудования построена с учетом максимальной «живучести» и практически неограниченного типового масштабирования, обеспечивая при этом возможность использования мультивендорного оборудования.

    Для хранения архивов видеоданных используются классические блочные массивы EMC VNX 5300/5500.

    70 массивов 5300 с общим количеством дисков:
    2 ТБ SATA – 7350 шт.
    100 ГБ SSD — 420 шт.
    600 ГБ SAS – 560 шт.

    13 массивов 5500 с общим количеством дисков:
    3 ТБ NL SAS 0 – 2925 шт.
    900 ГБ SAS – 143 шт.
    100 ГБ SSD — 52 шт.

    Для хранения видеоархивов используется массивы RAID 5 и RAID 6

    По итогам экспериментов выбранная конфигурация оказалась самой эффективной, хотя и немного затратной по дискам для виртуальных машин. Сеть хранения данных построена на коммутаторах Cisco MDS, к которым блейд сервера через интерконнекты Cisco USC подключены к дисковым массивам дублированными 8-ми Г/бит FC-линками.
    В процессе эксплуатации за три с небольшим года вышло из строя 2 контроллера и порядка 200 дисков из 11 450. Ни один видеоархив не пострадал.
    • 0
      Впечатляет масштаб! Спасибо!
    • 0
      Спасибо за ответ =)

      Очень впечатляюще!

      Карма не позволяет отдать вам добрый Плюс.
  • 0
    27 июня около 13:30 обратился по (495) 587-00-02 с просьбой сохранить видео (предполагаю, что на нем должно быть запечатлено нарушение ПДД). После некоторых препирательств заявку таки приняли и присвоили ей номер 2462250. Сказали, что пока сообщать в органы его не следует — нужно дождаться звонка с подтверждением. Ждать сказали сутки.
    Прошло двое суток, на мой звонок сказали, что ждать нужно было не сутки, а трое.
    Вот теперь прошло и трое суток, но до сих пор никто не перезвонил.
    Скоро уж видео затрется (декларируемый срок хранения 5 суток), а воз и ныне там.
    Так работает ли система?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка