Rozmowa się urywa: po 30 sekundach, po 15–30 minutach
Przerwanie „dokładnie po takim a takim czasie” to nie zła jakość łącza, a timer: jedna ze stron na coś czekała, nie doczekała się i uczciwie odłożyła słuchawkę. Dlatego po czasie przerwania przyczynę można wskazać niemal na pewno: ~32 sekundy — nie dotarło potwierdzenie rozpoczęcia rozmowy; ~15 lub ~30 minut — nie przeszło przedłużenie rozmowy; połączenia przychodzące działają tylko przez pierwsze minuty — router zamknął drogę do telefonu. Poniżej — mechanizm każdego przypadku słowami i co zrobić.
Ogólna konfiguracja telefonów — w przeglądzie „Konfiguracja telefonów SIP”, pozostałe objawy — w diagnostyce po objawach.
Najpierw sprawdź w panelu administracyjnym#
- Dziennik połączeń — otwórz przerwane połączenie. „Rozmowa” pokaże czas trwania z dokładnością do sekundy: 0:31–0:33 — charakter pierwszego przypadku, około 15:00 lub 29:30 — drugiego. Tam też „Odłożył słuchawkę” (dzwoniący, pracownik lub centrala) i „Przyczyna rozłączenia”.
- Test echa
*43, ale długi: wybierz i trzymaj słuchawkę 45 sekund.*43to też połączenie, a potwierdzenie rozpoczęcia rozmowy przechodzi w nim tę samą drogę. Przerwało się w 32. sekundzie — awaria między telefonem a centralą; wytrzymało — telefon i sieć lokalu są w porządku, szukaj dalej (połączenia zewnętrzne, operator sieci). - Karta aparatu → „Sprawność”: regularne błędy „brak połączenia” — router zamyka drogę powrotną do telefonu (patrz trzeci przypadek).
- „Zadzwoń na aparat” w karcie, 10 minut po ostatnim połączeniu: zadzwonił — droga do telefonu jest żywa; milczy przy zielonej kropce — to router.
- Tracing SIP na dedykowanej centrali: powtarzające się
200 OKbezACK, potemBYE— pierwszy przypadek;BYEpoINVITElubUPDATEw środku rozmowy — drugi.
Przerwanie po 30–32 sekundach#
Dlaczego tak bywa#
Początek rozmowy to uścisk dłoni z trzech komunikatów: „dzwonię” (INVITE) — „odebrano” (200 OK) — „rozumiem, zaczynamy” (ACK). Strona, która odebrała, powtarza swoje „odebrano”, dopóki nie otrzyma „rozumiem”. Reguła protokołu SIP: jeśli „rozumiem” nie przyszło w ciągu 64 × T1 = 64 × 0,5 s = 32 sekundy, rozmowę trzeba zakończyć. Głos w tym czasie już idzie — dlatego przez pół minuty wszystko jest w porządku, a potem połączenie pada samo.
Zatem przerwanie w 32. sekundzie oznacza: potwierdzenie ACK gdzieś ginie. Dlaczego — od częstego do rzadkiego:
- SIP ALG na routerze. Router przepisuje adresy wewnątrz komunikatów sterujących, a potwierdzenie idzie nie tam, gdzie trzeba, albo jest odrzucane. Pierwsza rzecz, którą trzeba sprawdzić zawsze.
- Zbyt duży pakiet. Jeśli w telefonie włączonych jest kilkadziesiąt kodeków, opis połączenia rozrasta się powyżej ~1300 bajtów i przez UDP idzie „kawałkami” (fragmentami). Wiele routerów i zapór sieciowych po cichu wyrzuca fragmenty — ginie właśnie ten komunikat. Protokół SIP wprost wymaga dla takich komunikatów przejścia na TCP.
- Adres wewnętrzny w komunikatach. Telefon podaje o sobie adres wewnętrzny (
192.168.x.x) i potwierdzenie jest wysyłane na niego. Nasza centrala sama to poprawia — odpowiada tam, skąd komunikat naprawdę przyszedł — ale u operatora sieci takiego zabezpieczenia może nie być: wtedy urywają się tylko połączenia zewnętrzne. - Podwójny NAT lub restrykcyjna zapora sieciowa, która przepuszcza pierwsze komunikaty połączenia, a kolejne odcina.
Dla administratora sieci: która strona odkłada słuchawkę
Zgodnie z RFC 3261 (§13.3.1.4) strona, która odpowiedziała 200 OK, powtarza je w odstępie od T1 do T2 i po 64 × T1 bez ACK kończy sesję żądaniem BYE; T1 domyślnie — 500 ms (§17.1.1.1), stąd 32 sekundy.
- Połączenie przychodzące na telefon:
200 OKwysyła telefon,ACK— centrala. Zgubił sięACKw drodze do telefonu — słuchawkę odkłada telefon. - Połączenie wychodzące z telefonu i
*43:200 OKwysyła centrala,ACK— telefon. Zgubił sięACKw drodze do centrali — słuchawkę odkłada centrala. - Fragmentacja: RFC 3261 §18.1.1 — jeśli żądanie jest dłuższe niż 1300 bajtów (lub w granicach 200 bajtów od MTU ścieżki), klient powinien wysyłać je przez TCP z kontrolą przeciążenia. Nasza centrala przyjmuje TCP na tym samym porcie 5060.
Co zrobić#
Po każdym kroku powtórz długi *43 (45 sekund) i testowe połączenie; dalej — tylko jeśli nie pomogło.
- Wyłącz SIP ALG na routerze („SIP Helper”, „SIP Passthrough”, „ALG dla SIP”) i zrestartuj router. Gdzie go szukać u popularnych marek — „Sieć, router i internet”.
- Zostaw w telefonie trzy kodeki — G.711 PCMA, G.711 PCMU i G.722, — pozostałe wyłącz: komunikaty staną się krótsze i przestaną się dzielić.
- Przełącz transport na TCP (port ten sam, 5060), jeśli krok 2 nie pomógł: TCP sam dzieli długie komunikaty prawidłowo i fragmentacja znika. Nasza centrala przyjmuje i UDP, i TCP.
- Urywają się tylko połączenia zewnętrzne, a
*43i wewnętrzne się trzymają — awaria między centralą a operatorem sieci. Prześlij do wsparcia czas kilku przerwanych połączeń. - Usuń podwójny NAT — przełącz router dostawcy w tryb mostu albo podłącz telefon bezpośrednio do niego.
Zerwanie po 15 lub 30 minutach#
Dlaczego tak bywa#
Podczas długiej rozmowy strony od czasu do czasu potwierdzają, że rozmowa wciąż trwa — to timery sesji. Interwał ustala się na początku połączenia; jedna strona zobowiązuje się „przedłużać” rozmowę w połowie interwału, druga — czeka na przedłużenie. W naszej centrali timery sesji są włączone z interwałem 1800 sekund (30 minut); są potrzebne, aby rozmowa, w której łączność zniknęła po cichu, nie wisiała godzinami i nie zajmowała linii.
Stąd dwa scenariusze:
- około 15 minut — w połowie interwału przedłużenie zostało wysłane, ale nie przeszło: strona je odrzuciła lub nie otrzymała odpowiedzi;
- około 29,5 minuty — przedłużenia nie było wcale, a strona, która na nie czekała, odłożyła słuchawkę nieco przed upływem interwału.
Dlaczego przedłużenie nie przechodzi:
- Router zamknął drogę komunikatów sygnalizacyjnych. Głos podczas rozmowy płynie nieprzerwanie, a komunikaty sygnalizacyjne — milczą. Jeśli w telefonie wyłączono keep-alive, router po kilku minutach zamyka „drzwi” dla komunikatów sygnalizacyjnych — i przedłużenie z centrali do telefonu już nie dociera.
- Telefon nie rozumie sposobu przedłużenia lub je odrzuca — stara wersja oprogramowania, włączony „Session Timer” z niestandardowymi parametrami.
- SIP ALG psuje komunikat przedłużenia.
- Timer operatora łączności — jeśli zrywane są tylko połączenia zewnętrzne i zawsze w tej samej minucie.
Centrala włącza timery w rozmowie tylko wtedy, gdy obsługuje je również telefon ⚠️ verify. W większości telefonów stacjonarnych „Session Timer” jest fabrycznie wyłączony (w Yealink i Grandstream — zgodnie z dokumentacją), i wtedy timerów w rozmowie nie ma wcale.
Dla administratora sieci: wartości po stronie centrali
timers=yes— timery są obsługiwane;timers_sess_expires=1800— interwał 1800 s;timers_min_se=90— mniej niż 90 s centrala nie przyjmie (shared/sip/advanced-options.json, grupaprotocol).- Zgodnie z RFC 4028 przedłużenie jest wysyłane w połowie interwału (900 s), a strona, która go nie otrzymała, kończy sesję
BYEna min(32 s, interwał / 3) przed upływem — około 1768 s. - Centrala nie zrywa połączenia z powodu ciszy (
rtp_timeout=0), dlatego „rozmowa bez dźwięku” sama w sobie się nie zrywa. - W dedykowanej centrali te same wartości są w „Zaawansowanych ustawieniach SIP” („Timery sesji”, „Odświeżanie sesji, sekund”). Nie trzeba ich zmieniać bez wymagania od dostawcy.
Co zrobić#
- Włącz keep-alive w telefonie — utrzymuje on drogę komunikatów sygnalizacyjnych otwartą również podczas rozmowy. Yealink: Account → Advanced → Keep Alive Type (Default lub Options) i Keep Alive Interval — 30 s (wartość fabryczna).
- Wyłącz SIP ALG w routerze.
- Jeśli w telefonie włączano „Session Timer” — przywróć wartość fabryczną (wył.) lub ustaw interwał 1800 s: Yealink — Account → Advanced → Session Timer / Session Expires; Grandstream — Account → SIP Settings → Session Timer (Enable Session Timer, Session Expiration).
- Zaktualizuj oprogramowanie telefonu — błędy przedłużania rozmowy są często poprawione w nowych wersjach.
- Zrywane są tylko połączenia zewnętrzne, w tej samej minucie — prześlij czas połączeń do wsparcia: zweryfikujemy timery z operatorem łączności.
Połączenia przychodzące działają tylko pierwsze minuty po włączeniu#
Dlaczego tak bywa#
Telefon stoi za routerem, a centrala może się do niego dostać tylko przez „drzwi”, które telefon otworzył swoim ostatnim komunikatem. Router trzyma takie drzwi niedługo — w routerach domowych od pół minuty do kilku minut ciszy — a potem je zamyka. Dopóki telefon często coś wysyła (rejestracja zaraz po włączeniu, keep-alive), drzwi są otwarte. Gdy ucichnie — zamknęły się, a połączenie przychodzące z centrali napotyka router.
Placówka w panelu administracyjnym może przy tym pozostać zielona: rejestrację telefon odświeża sam, od wewnątrz, i ona przechodzi, ale wejść do telefonu z zewnątrz już nie można. Restart „leczy”, bo otwiera drzwi na nowo — na jakiś czas.
Nasza centrala ze swojej strony co 60 sekund sprawdza każde urządzenie zapytaniem „jesteś w kontakcie?”: ten pakiet zwrotny również trzyma drzwi otwarte — ale tylko wtedy, gdy router zamyka je dłużej niż po minucie. Urządzenie nie odpowiedziało — centrala uznaje je za niedostępne, placówka gaśnie, a w „Sprawności” pojawia się przerwa.
Co zrobić#
Po każdym kroku sprawdź połączenie przychodzące po 10 minutach bezczynności (przyciskiem „Zadzwoń na urządzenie” lub z sąsiedniego numeru wewnętrznego); dalej — tylko jeśli nie pomogło.
- Włącz keep-alive w telefonie z interwałem 20–30 sekund. Yealink: Account → Advanced → Keep Alive Type / Keep Alive Interval (fabryczne Default i 30 s); w Fanvil — Keep Alive Type w dodatkowych ustawieniach linii.
- Wyłącz SIP ALG w routerze — on też lubi „zapominać” drzwi.
- Skróć czas rejestracji w telefonie (Expires / Register Expiration) do 60–120 sekund — telefon będzie częściej sam otwierał drzwi. Mniej niż 60 nasza centrala nie przyjmie (
423 Interval Too Brief). - W dedykowanej centrali można sprawdzać urządzenia częściej: „Zaawansowane ustawienia SIP” → „Sprawdzanie łączności, sekund” — 20–30 zamiast 60. To trzyma drzwi po stronie centrali, ale dodaje ruch sygnalizacyjny; keep-alive telefonu jest niezawodniejszy.
- Podwójny NAT (router dostawcy + własny) — drzwi są dwoje i zamykają się różnie: usuń jedne — „Sieć, router i internet”.
Przerwanie połączenia przy przejściu z Wi-Fi na internet mobilny#
Dlaczego tak się dzieje#
Wi-Fi lokalu i internet mobilny to dwa różne adresy. Rozmowa zaczynała się z jednego, a centrala na początku rozmowy zapamiętała, skąd płynie głos: ze względów bezpieczeństwa przyjmuje dźwięk tylko z tego adresu. Gdy smartfon przełącza się na sieć mobilną, głos zaczyna przychodzić z nowego adresu — dla centrali to już obcy strumień, a komunikaty sygnalizacyjne nadal wysyłane są na stary adres, którego już nie ma. Rozmowa rozpoczęta w jednej sieci przy przejściu do innej niemal zawsze się urywa. To ograniczenie samej technologii, a nie awaria.
Druga strona tego samego: gdy smartfon się przełącza, softfon traci rejestrację i połączenia przychodzące w tych sekundach nie docierają. Android dodatkowo usypia aplikacje działające w tle — więcej w przeglądzie, w sekcji o telefonach programowych.
Co zrobić#
- Podczas rozmowy nie zmieniaj sieci: zakończ połączenie, zanim wyjdziesz z zasięgu Wi-Fi.
- Wyłącz w smartfonie automatyczne przełączanie ze słabego Wi-Fi na sieć mobilną (na iPhone — „Pomoc Wi-Fi”, na Android — „przełączaj na sieć mobilną” w ustawieniach Wi-Fi): teraz to ono urywa rozmowę na progu kawiarni.
- Zezwól softfonowi na pracę w tle i wyłącz dla niego oszczędzanie baterii — wtedy szybciej zarejestruje się ponownie po zmianie sieci.
- Tam, gdzie nie można tracić połączenia (kontuar, recepcja), postaw telefon stacjonarny lub słuchawkę DECT, a nie smartfon.
Co przesłać do pomocy technicznej#
- datę i godzinę kilku przerwanych połączeń z dokładnością do minuty, numery i numer wewnętrzny;
- po ilu sekundach następuje przerwanie (według dziennika — „Rozmowa”) i czy zawsze tak samo;
- czy urywają się wszystkie połączenia, czy tylko zewnętrzne; czy długie
*43(45 sekund) się utrzymuje; - model i oprogramowanie telefonu (wiersz z tagu urządzenia), czy włączone są w nim keep-alive i Session Timer;
- model routera, czy wyłączony jest SIP ALG, czy jest drugi router od dostawcy;
- na dedykowanej centrali — tekst SIP-trace powtórzonego przerwania.
Jak do nas napisać — „Pomoc techniczna”.
Częste pytania#
Dlaczego przerwanie następuje dokładnie w 32. sekundzie, a nie w 30. i nie w 40.?#
Bo ta liczba jest wpisana w sam protokół SIP: potwierdzenia rozpoczęcia rozmowy oczekuje się przez 64 interwały po pół sekundy — 32 sekundy. Jeśli u ciebie jest „około 30 sekund” i za każdym razem tak samo — to właśnie to, nawet jeśli stoper pokazywał 31 lub 33: część czasu zajęły sygnały i odebranie.
SIP ALG jest wyłączony, a przerwanie w 30. sekundzie zostało — co jeszcze?#
Sprawdź, czy ALG jest wyłączony na wszystkich routerach na drodze (w routerze dostawcy często jest własny), zostaw w telefonie trzy kodeki i spróbuj transportu TCP. Jeśli urywają się tylko połączenia zewnętrzne, a *43 utrzymuje się 45 sekund — problem jest na odcinku do operatora telekomunikacyjnego, prześlij czas połączeń.
Placówka jest zielona, ale połączenia przychodzące nie dochodzą — to też „przerwanie”?#
To ten sam mechanizm, co w sekcji o połączeniach przychodzących w pierwszych minutach: rejestracja odświeża się od wewnątrz, a drzwi do telefonu z zewnątrz są już zamknięte. Sprawdzenie — „Zadzwoń na urządzenie” po 10 minutach bezczynności; lekarstwo — keep-alive w telefonie.
Czy można po prostu wyłączyć timery sesji na centrali?#
Można (na dedykowanej centrali, „Zaawansowane ustawienia SIP”), ale to leczy objaw, a nie przyczynę: przedłużenie nie przechodzi, bo droga komunikatów sygnalizacyjnych jest zamknięta lub uszkodzona, a ta sama droga będzie potrzebna do przekierowania połączenia i zawieszenia. Poza tym bez timerów przerwane po cichu rozmowy będą wisieć godzinami i zajmować linie. Najpierw keep-alive i SIP ALG.
Powiązane sekcje#
- Telefon nie działa: diagnostyka po objawach — w tym „brak połączeń przychodzących przy działających wychodzących”
- Brak dźwięku, słychać w jedną stronę, echo, „robot”
- Nie rejestruje się: komunikaty i kody błędów — „rejestruje się i znika”,
423 Interval Too Brief - Sieć, router i internet dla telefonii — gdzie wyłączyć SIP ALG, podwójny NAT
- Konfiguracja telefonów SIP — sieć lokalu, sprawdzanie jakości połączenia
- Dziennik połączeń i SIP-trace
Źródła#
- RFC 3261 — SIP: powtarzanie
200 OKdo otrzymaniaACKi zakończenie sesji po 64 × T1 (§13.3.1.4), T1 = 500 ms (§17.1.1.1), przejście na TCP dla komunikatów dłuższych niż 1300 bajtów (§18.1.1) — https://www.rfc-editor.org/rfc/rfc3261 - RFC 4028 — Session Timers: przedłużenie w połowie interwału,
BYEna min(32 s, interwał / 3) przed upływem — https://www.rfc-editor.org/rfc/rfc4028 - Yealink SIP-T2/T3/T4/T5/CP920 Administrator Guide V86.60 — Keep Alive Type / Interval (fabryczne Default, 30 s), Session Timer (fabrycznie — wyłączony; Session Expires 1800 s; odświeżanie w połowie interwału)
- Grandstream GRP261x/262x/263x Administration Guide — Session Timer: Enable Session Timer (fabrycznie „No”), Session Expiration, Min-SE — https://documentation.grandstream.com/knowledge-base/grp261x-grp262x-grp263x-series-administration-guide/
- Zoiper 5 User Guide v1.0.7 — UDP i ograniczenie rozmiaru pakietu, limity czasu NAT routera — https://www.zoiper.com/pdf/User%20Guide%20Zoiper%205%20v.1.0.7.pdf
- Kod centrali:
shared/sip/advanced-options.json(timers=yes,timers_sess_expires=1800,timers_min_se=90,qualify_frequency=60,minimum_expiration=60,rtp_timeout=0,force_rport,rewrite_contact),sip-edge/asterisk/rtp.conf(strictrtp=yes),sip-edge/sipsync/linecheck.go(test echa*43, limit sprawdzenia 300 s)