Dlaczego VoIP nie dzwoni w tle i jak to sprawdzić
Aplikacja działa po otwarciu, lecz milczy w kieszeni? Porównaj aktywny ekran z uśpieniem, sprawdź powiadomienia i energię, nie wyłączając globalnie zabezpieczeń telefonu.
Typowy objaw wygląda tak: po uruchomieniu aplikacji konto jest dostępne i telefon natychmiast odbiera próbę. Kilka minut po zablokowaniu ekranu połączenie nie pojawia się albo przychodzi zbyt późno. To nie musi oznaczać błędnego hasła. Smartfon zarządza energią i aktywnością programów w tle, a niezawodne budzenie aplikacji wymaga współpracy systemu, programu oraz zaplecza usługi.
Oddziel rejestrację od dostarczenia wywołania
Klient SIP może utrzymywać rejestrację przez aktywne połączenie, odnawiać ją okresowo albo korzystać z mechanizmu powiadomień, który budzi program dopiero przy połączeniu. Szczegóły zależą od aplikacji i usługi. Status widoczny od razu po otwarciu pokazuje stan w tej chwili; nie dowodzi, że system pozwolił programowi działać przez cały okres bezczynności.
Zapisz dwa czasy: ile minut telefon był zablokowany oraz kiedy dzwoniący rozpoczął próbę. Sprawdź, co widzi dzwoniący — sygnał, odrzucenie, pocztę czy brak zestawienia — i czy powiadomienie pojawia się dopiero po odblokowaniu. Te różnice pomagają odróżnić opóźnione dostarczenie od całkowitego braku wywołania.
Android ogranicza aktywność bezczynnych aplikacji
Doze może zawieszać dostęp do sieci i odkładać część zadań, gdy urządzenie pozostaje nieużywane. App Standby ogranicza programy, z których użytkownik długo nie korzysta. Oficjalna dokumentacja Androida zaleca, by aplikacje wymagające zdarzeń w czasie rzeczywistym używały odpowiednio zaprojektowanych powiadomień zamiast własnego stałego połączenia każdej aplikacji.
Aplikacje połączeniowe mogą integrować się z systemowym środowiskiem Telecom, które koordynuje stan rozmowy, trasę audio, inne połączenia i widoczne powiadomienie. Samo zainstalowanie dowolnego klienta SIP nie gwarantuje jednak, że korzysta on z bieżących mechanizmów albo że dostawca wysyła właściwe powiadomienia o wywołaniu.
Co użytkownik może sprawdzić
Otwórz ustawienia aplikacji i upewnij się, że powiadomienia o połączeniach są dozwolone oraz mają oczekiwany dźwięk i widoczność. Sprawdź systemowy tryb skupienia, „nie przeszkadzać” i ewentualną regułę wyciszającą ten program. Następnie porównaj ustawienie baterii z aktualną instrukcją producenta aplikacji. Nazwy menu różnią się między wersjami Androida i nakładkami, dlatego poradnik nie podaje jednej ścieżki dla każdego telefonu.
Jeżeli instrukcja wymaga dopuszczenia pracy w tle, zmień ustawienie tylko dla tej aplikacji. Nie wyłączaj globalnie Doze, ochrony baterii ani kontroli powiadomień. Po zmianie odczekaj ten sam czas z zablokowanym ekranem i powtórz próbę, zamiast oceniać wynik natychmiast po otwarciu programu.
iPhone budzi aplikację połączeniową kontrolowanym mechanizmem
Apple opisuje PushKit jako sposób otrzymania powiadomienia VoIP, które może uruchomić lub obudzić aplikację. Program obsługujący takie powiadomienie korzysta z CallKit, by szybko zgłosić połączenie i pokazać systemowy interfejs. To model wydajniejszy niż oczekiwanie, że każda aplikacja będzie bez przerwy utrzymywana przez użytkownika na pierwszym planie.
Użytkownik nie naprawi brakującego wdrożenia PushKit zmianą kodeka. Może natomiast sprawdzić powiadomienia, tryby skupienia, uprawnienie mikrofonu, aktualność aplikacji i konta oraz powtórzyć test po restarcie. Usunięcie aplikacji powinno być późniejszym krokiem, dopiero po upewnieniu się, że znasz dane konta i sposób ponownego uwierzytelnienia.
Wykonaj test A/B z jednym rozmówcą
Najpierw poproś o połączenie, gdy aplikacja jest otwarta. Zanotuj wynik. Potem zablokuj telefon na ustalony czas bez ręcznego otwierania programu i poproś tę samą osobę o drugą próbę. Powtórz parę w Wi-Fi i przez dane komórkowe. Nie zmieniaj w międzyczasie hasła, serwera, kodeka oraz pięciu ustawień energii.
Jeżeli problem występuje tylko przy zablokowanym ekranie w obu sieciach, najpierw zbadaj powiadomienia i działanie w tle. Jeżeli występuje również przy otwartej aplikacji, wróć do rejestracji, uprawnień konta i sygnalizacji. Jeśli dotyczy wyłącznie jednej sieci, zachowaj wynik sieciowy i wykonaj pełną macierz testów.
Sprawdź konflikt z dźwiękiem, a nie tylko ekran połączenia
Czasami ekran przychodzącego wywołania pojawia się prawidłowo, lecz telefon nie dzwoni albo po odebraniu wybiera złą trasę audio. Sprawdź głośność dzwonka, wyciszenie, podłączony zestaw Bluetooth oraz aktywne połączenie w innej aplikacji. System może koordynować jednoczesne rozmowy i nadać pierwszeństwo połączeniu alarmowemu lub komórkowemu.
Nie nadawaj aplikacji przypadkowych uprawnień w nadziei, że każde z nich „odblokuje tło”. Mikrofon, powiadomienia, kontakty, lokalizacja i dostępność to różne kategorie danych oraz funkcji. Przyznaj tylko zakres wyjaśniony przez producenta i później sprawdź go w panelu prywatności.
Oceń kompromis między dostępnością a baterią
Po zmianie ustawienia zmierz nie tylko odbieranie, ale też zużycie energii. Porównaj podobny okres bez rozmów, tę samą sieć i zbliżone użycie telefonu. Program utrzymujący własne częste połączenia kontrolne może zachowywać się inaczej niż rozwiązanie oparte na systemowym powiadomieniu. Nie ma uczciwego uniwersalnego procentu zużycia dla wszystkich modeli, sieci i kont.
Jeśli jedynym sposobem działania jest szeroki wyjątek energetyczny, zapisz to jako warunek usługi. Być może jest akceptowalny na telefonie służbowym z regularnym ładowaniem, ale nie na urządzeniu używanym poza zasięgiem ładowarki. Decyzja powinna wynikać z własnego pomiaru, a nie obietnicy aplikacji.
Przygotuj zgłoszenie, które da się odtworzyć
Podaj model telefonu, wersję systemu i aplikacji, rodzaj sieci, stan ekranu, czas uśpienia, status konta przed blokadą oraz to, co widział dzwoniący. Dodaj wynik po zmianie jednego ustawienia. Zamaskuj numer i identyfikator, usuń tokeny powiadomień, hasła oraz dane innych osób.
Jeżeli producent nie opisuje obsługi połączeń w tle albo dostawca nie wspiera jej dla używanego klienta, nie obchodź ograniczenia stałym wymuszaniem działania i narzędziami z nieznanego źródła. Potraktuj to jako ograniczenie konfiguracji i zachowaj inny kanał połączeń przychodzących.
Wróć do bezpiecznej konfiguracji krok po kroku.
Źródła:
- Android Developers, Doze i App Standby.
- Android Developers, Core-Telecom dla aplikacji VoIP.
- Apple Developer, odpowiadanie na powiadomienia VoIP z PushKit.
- Android Help, panel prywatności i użycie uprawnień.
- Apple Support, kontrola uprawnień aplikacji.