Yota: Офисный wi-fi роутер Интернет-центр (Gemtek)

Ссылка на роутер на сайте Yota.
Поскольку для малого бизнеса у нас нет возможности в пределах МКАД подключить проводной интернет по доступной цене, то поставили этот роутер, который ловит интернет по мобильной сети, а потом раздает его по wi-fi или проводу. В принципе по деньгам не дорого.
Однако есть и ложка дегтя на всю эту бочку меда — роутер Yota любит периодически забывать раздавать инет (может он зависает). Хочется отметить, что в роутере не предусмотрены админские примочки для адекватного администрирования девайса. Так, например, к нему можно подключаться исключительно через вэб-интерфейс. Можно ввести логин и пароль, а потом перейти на страницу настроек, где можно нажать кнопочку перезагрузки.
Нашел статью, в которой автор как бы поборол эту болезнь просто периодически перезагружая роутер с помощью CMD-скрипта. Однако в той версии вэб-интерфейса, с которой я столкнулся разработчики немного усилили процесс авторизации и мне этот скрипт не подошел. Пришлось ковырять вэб-морду самому.
Для начала я воспользовался встроенными средствами Firefox и отследил запросы, которые происходят при нажатии кнопки перезагрузки. Оказалось, что в этой версии изменилась строка для перезагрузки. Так, ключом выступала дата не в виде «time=dd.mm.yyyy», а указывалось количество миллисекунд, которые прошли с 1 января 1970 года (JavaScript getTime() метод) . Причем было введено ограничение на длительность сессии, поэтому нельзя было ввести любое число.
Авторизация происходила в заголовке запроса (хотя один из тестов показал, что почему-то можно вводить любой логин и пароль, поэтому есть предположение, что для перезагрузки авторизация не используется…)
Таким образом моя программа раз в установленный интервал (10 минут) проверяла наличие коннекта с помощью метода:

public void CheckForInternetConnection()
{
    try
    {
        AddLog("Checking for Internet connection...");
        CheckingConnection = true;
        WebClient client = new WebClient();
        Stream stream = client.OpenRead("http://www.google.com");
        {
            IsInternetAvailable = true;
            FaultsCounts = 0;
            // Возвращаем установленный в настройках интервал (если было 5 секунд)
            dispatcherTimer.Interval = new TimeSpan(0, INTERVAL, 0);
            CheckingConnection = false;
        }
    }
    catch
    {
        IsInternetAvailable = false;
        CheckingConnection = false;
        // Для проверки повторяем запросы через 5 секунд
        dispatcherTimer.Interval = new TimeSpan(0, 0, 5);
        FaultsCounts++;
        if (FaultsCounts > 5)
        {
            AddLog("Ошибок подключения больше 5. Перезагружаем роутер.", 
		MessageBoxImage.Warning);
            dispatcherTimer.Interval = new TimeSpan(0, 0, INTERVAL);
            dispatcherTimer.Stop();
            FaultsCounts = 4;
            RouterReboot();
        }
    }
}

Скриншоты утилиты Yota Restart Tool:
YotaRestartTool_W10_in_progress

YotaRestartTool_W7_in_progress