Вопрос или проблема
В небольшой компании, где я работаю, у нас есть несколько корпоративных смартфонов, подключенных к интернету только через Wi-Fi.
Если во время звонка кто-то проходит мимо и смартфон переключается на другую точку доступа, ничего не происходит, и звонок продолжается нормально. Но если такая ситуация происходит, пока смартфон в режиме ожидания, фирменный VoIP-клиент просто отключится и окажется в оффлайне. Он попытается снова выйти в онлайн только при открытии клиента.
Я уже связался с провайдером VoIP и попробовал все обсужденные решения, и теперь подозреваю, что это связано с тем, как Android управляет Wi-Fi и экономией батареи.
Чтобы убедиться, что я ничего не пропустил, я здесь.
Вы не упомянули, какой VoIP SIP-клиент вы используете и к какому АТС вы подключаетесь. Однако мне приходит в голову, что эта проблема может возникать: SIP-клиент пытается повторно зарегистрироваться после переключения сети (Wi-Fi), но АТС (Asterisk?) не допускает более одной регистрации, поэтому отказывает. Тогда регулярно отправляемые keep-alive больше не происходят в приложении, и приложение может “спать” и не зарегистрируется вновь. В то же время это означает неправильно установленный интервал для повторных попыток регистрации.
Ответ или решение
Проблема, с которой вы сталкиваетесь, действительно может быть связана с тем, как Android управляет Wi-Fi сетями и экономией батареи, особенно когда устройство находится в режиме ожидания. С учетом вашей ситуации, когда VoIP клиент теряет соединение при переключении между точками доступа, приведу несколько рекомендации и решений, которые могут помочь вам устранить проблему.
1. Настройки VoIP клиента
Сначала убедитесь, что настройки вашего VoIP клиента оптимально настроены. Проверьте следующие параметры:
- Интервал регистрации (Registration Interval): Убедитесь, что интервал, с которым приложение пытается повторно зарегистрироваться, установлен на адекватный уровень. Если он слишком длинный, это может привести к потере связи. Попробуйте установить его на более короткий период, например, 60 секунд.
- Keep-Alive сообщения: Убедитесь, что ваш клиент VoIP отправляет keep-alive сообщения регулярно. Это поможет вашему серверу (например, Asterisk) сохранить соединение активным.
2. Настройки маршрутизатора
Убедитесь, что ваш маршрутизатор настроен правильно:
- Адаптивное переключение: Некоторые маршрутизаторы могут иметь функции, которые мешают успешному переключению между точками доступа. Проверьте настройки роутера относительно управления клиентами или QoS (Quality of Service).
- Статические IP или DHCP: Если устройства получают IP-адреса по DHCP, попробуйте назначить статический IP адрес для смартфонов. Иногда это помогает избежать отключений.
3. Энергосбережение на Android
Советы по отключению режима экономии энергии на Android:
- Отключите режим "Энергосбережение": Убедитесь, что для VoIP клиента не активирован режим энергосбережения или оптимизация батареи, которая может ограничивать фоновую активность приложения.
- Исключите VoIP клиент из оптимизации батареи: Для этого перейдите в Настройки -> Приложения -> [Ваш VoIP клиент] -> Батарея и выберите "Не оптимизировать".
4. Регистрация на сервере
Если вы используете Asterisk как ваш PBX:
- Проверьте настройки SIP для вашего пользователя. Убедитесь, что параметр
allowoverlap
не ограничивает количество одновременно активных регистраций. - Убедитесь, что ваше оборудование поддерживает множество регистраций от одного пользователя, если это необходимо.
5. Логи и отладка
Проверьте логи Android и сервера VoIP:
- Используйте отладочные инструменты, чтобы посмотреть, что происходит, когда устройство переключается между точками доступа. Это поможет выявить причину отключения.
- Логи сервера могут показать, отказывается ли сеть регистрировать новое соединение или другие ошибки, которые могут быть связаны с сетевыми адресами или конфигурацией клиента.
Заключение
Попробуйте пройтись по вышеуказанным пунктам, чтобы выяснить, в чем может быть проблема. Порой именно сочетание факторов (настройки клиента, настройки маршрутизатора, энергосбережение) может вызывать такие ситуации. Также рекомендуется вручную обновить прошивку на смартфонах и роутере, так как это может повлиять на общую продуктивность системы VoIP.
Если проблема не решится, может быть целесообразно рассмотреть возможность использования другого VoIP клиента или связаться с технической поддержкой вашего поставщика VoIP для более детальной помощи.