C cenaly.com
Započni besplatno

Poziv se prekida: nakon 30 sekundi, nakon 15–30 minuta

Prekid u 32. sekundi (nema ACK), nakon 15–30 minuta (tajmeri sesije), dolazni pozivi rade samo prvih nekoliko minuta nakon uključivanja — mehanizam i rešenje

12 min read Otvori ovaj ekran u demou
On this page 21

Prekid poziva: posle 30 sekundi, posle 15–30 minuta

Prekid „tačno posle toliko i toliko“ nije loša veza, već tajmer: jedna strana je nešto čekala, nije dočekala i pošteno spustila slušalicu. Zato se po vremenu prekida uzrok može odrediti skoro sigurno: ~32 sekunde — nije stigla potvrda početka razgovora; ~15 ili ~30 minuta — nije prošlo produženje razgovora; dolazni rade samo prvih nekoliko minuta — ruter je zatvorio put do telefona. U nastavku — mehanizam svakog slučaja rečima i šta učiniti.

Opšta podešavanja telefona — u pregledu „Podešavanje SIP telefona“, ostali simptomi — u dijagnostici po simptomima.

Prvo proverite u admin panelu#

  1. Dnevnik poziva — otvorite prekinuti poziv. „Razgovor“ će pokazati trajanje do u sekundu: 0:31–0:33 — rukopis prvog slučaja, oko 15:00 ili 29:30 — drugog. Tu su i „Spustio slušalicu“ (pozivalac, zaposleni ili centrala) i „Razlog prekida“.
  2. Eho-test *43, ali dug: pozovite i držite slušalicu 45 sekundi. *43 je takođe poziv, i potvrda početka razgovora u njemu prolazi istim putem. Prekinuo se na 32. sekundi — kvar između telefona i centrale; izdržao — telefon i mreža lokala su u redu, tražite dalje (spoljni pozivi, operater).
  3. Kartica aparata → „Radna sposobnost“: redovni padovi „nema veze“ — ruter zatvara povratni put do telefona (vidite treći slučaj).
  4. „Pozovi na aparat“ u kartici, 10 minuta posle poslednjeg poziva: zazvonio — put do telefona je živ; ćuti pri zelenoj lokaciji — to je ruter.
  5. SIP trejs na izdvojenoj centrali: ponavljajući 200 OK bez ACK, zatim BYE — prvi slučaj; BYE posle INVITE ili UPDATE usred razgovora — drugi.

Prekid posle 30–32 sekunde#

Zašto se to dešava#

Početak razgovora je rukovanje od tri poruke: „zovem“ (INVITE) — „odgovoreno“ (200 OK) — „razumem, počinjemo“ (ACK). Strana koja je odgovorila ponavlja svoje „odgovoreno“ dok ne dobije „razumem“. Pravilo protokola SIP: ako „razumem“ ne stigne za 64 × T1 = 64 × 0,5 s = 32 sekunde, razgovor treba završiti. Glas pri tom već ide — zato je pola minuta sve u redu, a onda poziv pada sam.

Dakle, prekid na 32. sekundi znači: potvrda ACK se negde gubi. Zašto — od čestog ka retkom:

  1. SIP ALG na ruteru. Ruter prepisuje adrese unutar servisnih poruka, i potvrda odlazi na pogrešno mesto ili se odbacuje. Prvo što uvek treba proveriti.
  2. Preveliki paket. Ako su u telefonu uključeni deseci kodeka, opis poziva se naduva preko ~1300 bajtova, i po UDP-u odlazi „u delovima“ (fragmentima). Mnogi ruteri i mrežni štitovi fragmente tiho odbacuju — gubi se upravo ta poruka. Protokol SIP izričito zahteva da se za takve poruke pređe na TCP.
  3. Unutrašnja adresa u porukama. Telefon o sebi piše unutrašnju adresu (192.168.x.x), i potvrda se šalje na nju. Naša centrala to sama ispravlja — odgovara tamo odakle je poruka zaista stigla — ali kod operatera takve zaštite možda nema: tada se prekidaju samo spoljni pozivi.
  4. Dvostruki NAT ili strogi mrežni štit koji propušta prve poruke poziva i seče naredne.
Za mrežnog administratora: koja strana spušta slušalicu

Po RFC 3261 (§13.3.1.4) strana koja je odgovorila 200 OK ponavlja ga u intervalu od T1 do T2 i posle 64 × T1 bez ACK završava sesiju zahtevom BYE; T1 je podrazumevano 500 ms (§17.1.1.1), odatle 32 sekunde.

  • Dolazni poziv na telefon: 200 OK šalje telefon, ACK — centrala. Izgubio se ACK na putu do telefona — slušalicu spušta telefon.
  • Odlazni sa telefona i *43: 200 OK šalje centrala, ACK — telefon. Izgubio se ACK na putu do centrale — slušalicu spušta centrala.
  • Fragmentacija: RFC 3261 §18.1.1 — ako je zahtev duži od 1300 bajtova (ili u granicama 200 bajtova od MTU puta), klijent ga mora slati po TCP-u sa kontrolom zagušenja. Naša centrala prihvata TCP na istom portu 5060.

Šta učiniti#

Posle svakog koraka ponovite dugi *43 (45 sekundi) i probni poziv; dalje — samo ako nije pomoglo.

  1. Isključite SIP ALG na ruteru („SIP Helper“, „SIP Passthrough“, „ALG za SIP“) i restartujte ruter. Gde se nalazi kod popularnih marki — „Mreža, ruter i internet“.
  2. Ostavite u telefonu tri kodeka — G.711 PCMA, G.711 PCMU i G.722, — ostale isključite: poruke će postati kraće i prestati da se dele.
  3. Prebacite transport na TCP (port isti, 5060), ako korak 2 nije pomogao: TCP sam pravilno seče duge poruke, i fragmentacija nestaje. Naša centrala prihvata i UDP i TCP.
  4. Prekidaju se samo spoljni pozivi, a *43 i interni se drže — kvar između centrale i operatera. Pošaljite vreme nekoliko prekinutih poziva podršci.
  5. Uklonite dvostruki NAT — prevedite ruter provajdera u režim mosta ili povežite telefon direktno u njega.

Prekid posle 15 ili 30 minuta#

Zašto se to dešava#

Tokom dugog razgovora strane s vremena na vreme potvrđuju da razgovor još traje — to su tajmeri sesije. Interval se dogovara na početku poziva; jedna strana se obavezuje da će „produžiti“ razgovor na sredini intervala, druga — čeka produženje. Na našoj centrali tajmeri sesije su uključeni sa intervalom od 1800 sekundi (30 minuta); potrebni su da razgovor u kome je veza tiho nestala ne visi satima i ne zauzima liniju.

Otuda dva scenarija:

  • oko 15 minuta — na sredini intervala produženje je poslato, ali nije prošlo: strana ga je odbila ili nije dobila odgovor;
  • oko 29,5 minuta — produženja uopšte nije bilo, pa je strana koja ga je čekala spustila slušalicu malo pre isteka intervala.

Zašto produženje ne prolazi:

  1. Ruter je zatvorio put servisnih poruka. Glas tokom razgovora ide neprekidno, a servisne poruke — ćute. Ako je na telefonu isključen keep-alive, ruter posle nekoliko minuta zatvara „vrata“ za servisne poruke — i produženje od centrale ka telefonu više ne stiže.
  2. Telefon ne razume način produženja ili ga odbija — stari firmver, uključen „Session Timer“ sa nestandardnim parametrima.
  3. SIP ALG kvari poruku produženja.
  4. Tajmer operatera veze — ako se prekidaju samo spoljni pozivi i to uvek u istom minutu.

Centrala uključuje tajmere u razgovoru samo ako ih podržava i telefon ⚠️ verify. Kod većine stonih telefona je „Session Timer“ fabrički isključen (kod Yealink i Grandstream — prema dokumentaciji), i tada tajmera u razgovoru uopšte nema.

Za mrežnog administratora: vrednosti na strani centrale
  • timers=yes — tajmeri su podržani; timers_sess_expires=1800 — interval 1800 s; timers_min_se=90 — manje od 90 s centrala neće prihvatiti (shared/sip/advanced-options.json, grupa protocol).
  • Prema RFC 4028 produženje se šalje na sredini intervala (900 s), a strana koja ga nije dobila završava sesiju BYE za min(32 s, interval / 3) pre isteka — oko 1768 s.
  • Prekid zbog tišine centrala ne pravi (rtp_timeout=0), pa se „razgovor bez zvuka“ sam po sebi ne prekida.
  • Na namenskoj centrali iste vrednosti su u „Finskim SIP podešavanjima“ („Tajmeri sesije“, „Osvežavanje sesije, sekundi“). Ne treba ih menjati bez zahteva provajdera.

Šta uraditi#

  1. Uključite keep-alive na telefonu — on drži put servisnih poruka otvoren i tokom razgovora. Yealink: Account → Advanced → Keep Alive Type (Default ili Options) i Keep Alive Interval — 30 s (fabrička vrednost).
  2. Isključite SIP ALG na ruteru.
  3. Ako je na telefonu bio uključen „Session Timer“ — vratite fabričku vrednost (isključeno) ili postavite interval na 1800 s: Yealink — Account → Advanced → Session Timer / Session Expires; Grandstream — Account → SIP Settings → Session Timer (Enable Session Timer, Session Expiration).
  4. Ažurirajte firmver telefona — greške u produženju razgovora često su ispravljene u novim verzijama.
  5. Prekidaju se samo spoljni pozivi, u istom minutu — pošaljite vreme poziva podršci: uporedićemo tajmere sa operaterom veze.

Dolazni pozivi rade samo prvih nekoliko minuta posle uključivanja#

Zašto se to dešava#

Telefon stoji iza rutera, i centrala može da dođe do njega samo kroz „vrata“ koja je telefon otvorio svojom poslednjom porukom. Ruter takva vrata drži kratko — kod kućnih rutera od pola minuta do nekoliko minuta tišine — i zatim ih zatvara. Dok telefon često nešto šalje (registracija odmah posle uključivanja, keep-alive), vrata su otvorena. Utihne — zatvore se, i dolazni poziv od centrale udara u ruter.

Lokacija u administraciji pri tome može da ostane zelena: registraciju telefon osvežava sam, iznutra, i ona prolazi, ali ući u telefon spolja više nije moguće. Restart „leči“, jer ponovo otvara vrata — na neko vreme.

Naša centrala sa svoje strane svakih 60 sekundi proverava svaki aparat upitom „da li si na vezi?“: taj povratni paket takođe drži vrata otvorena — ali samo ako ruter zatvara vrata duže od jednog minuta. Aparat nije odgovorio — centrala ga smatra nedostupnim, lokacija se gasi, i u „Radnoj sposobnosti“ se pojavljuje prekid.

Šta uraditi#

Posle svakog koraka proverite dolazni poziv posle 10 minuta mirovanja (dugmetom „Pozovi aparat“ ili sa susednog ekstenzija); dalje — samo ako nije pomoglo.

  1. Uključite keep-alive na telefonu sa intervalom od 20–30 sekundi. Yealink: Account → Advanced → Keep Alive Type / Keep Alive Interval (fabrički Default i 30 s); kod Fanvil — Keep Alive Type u dodatnim podešavanjima linije.
  2. Isključite SIP ALG na ruteru — i on voli da „zaboravi“ vrata.
  3. Skratite rok registracije na telefonu (Expires / Register Expiration) na 60–120 sekundi — telefon će češće sam otvarati vrata. Manje od 60 naša centrala neće prihvatiti (423 Interval Too Brief).
  4. Na namenskoj centrali možete proveravati aparate češće: „Fina SIP podešavanja“ → „Provera veze, sekundi“ — 20–30 umesto 60. To drži vrata sa strane centrale, ali dodaje servisni saobraćaj; keep-alive telefona je pouzdaniji.
  5. Dvostruki NAT (ruter provajdera + svoj) — vrata su dva, i zatvaraju se različito: uklonite jedna — „Mreža, ruter i internet“.

Prekid pri prelasku sa Wi-Fi na mobilni internet#

Zašto se to dešava#

Wi-Fi lokala i mobilni internet su dve različite adrese. Razgovor je počeo sa jedne, i PBX je na početku razgovora zapamtio odakle dolazi glas: iz bezbednosnih razloga prima zvuk samo sa te adrese. Kada pametni telefon pređe na mobilnu mrežu, glas počinje da dolazi sa nove adrese — a za PBX je to već tuđi tok, dok servisne poruke nastavljaju da idu na staru adresu, koje više nema. Razgovor započet u jednoj mreži, pri prelasku u drugu, skoro uvek se prekida. To je ograničenje same tehnologije, a ne kvar.

Druga strana istog: dok pametni telefon prelazi, softfon gubi registraciju, i dolazni pozivi u tim sekundama ne stižu. Android uz to uspavljuje aplikacije u pozadini — detaljnije u pregledu, odeljak o softverskim telefonima.

Šta učiniti#

  1. Tokom razgovora ne menjajte mrežu: završite poziv pre izlaska iz zone Wi-Fi.
  2. Isključite na pametnom telefonu automatsko prebacivanje sa lošeg Wi-Fi na mobilnu mrežu (na iPhone — „Wi-Fi Assist“, na Android — „prebaci na mobilnu mrežu“ u podešavanjima Wi-Fi): sada ono prekida razgovor na pragu kafića.
  3. Dozvolite softfonu rad u pozadini i ukinite mu štednju baterije — tada će se brže ponovo registrovati nakon promene mreže.
  4. Tamo gde se poziv ne sme izgubiti (šank, recepcija), postavite stoni telefon ili DECT slušalicu, a ne pametni telefon.

Šta poslati podršci#

  • datum i vreme nekoliko prekinutih poziva do u minutu, brojeve i lokal;
  • za koliko se prekida (po dnevniku — „Razgovor“) i da li je uvek isto;
  • da li se prekidaju svi pozivi ili samo spoljni; da li se dugi *43 održava (45 sekundi);
  • model i firmver telefona (red iz oznake uređaja), da li su u njemu uključeni keep-alive i Session Timer;
  • model rutera, da li je SIP ALG isključen, da li postoji drugi ruter provajdera;
  • na namenskom PBX — tekst SIP trejsa ponovljenog prekida.

Kako nam pisati — „Podrška“.

Česta pitanja#

Zašto je prekid baš na 32. sekundi, a ne na 30. i ne na 40.?#

Zato što je taj broj ugrađen u sam SIP protokol: potvrda početka razgovora čeka se 64 intervala po pola sekunde — 32 sekunde. Ako imate „oko 30 sekundi“ i svaki put isto — to je to, čak i ako je štoperica pokazivala 31 ili 33: deo vremena otišao je na zvonjenje i odgovor.

SIP ALG je isključen, a prekid na 30. sekundi je ostao — šta još?#

Proverite da je ALG isključen na svim ruterima na putu (kod rutera provajdera je često svoj), ostavite u telefonu tri kodeka i probajte transport TCP. Ako se prekidaju samo spoljni pozivi, a *43 se održava 45 sekundi — stvar je na delu ka operateru veze, pošaljite vreme poziva.

Lokacija je zelena, ali dolazni ne stižu — je li i to „prekid“?#

To je isti mehanizam kao u odeljku o dolaznim prvih nekoliko minuta: registracija se obnavlja iznutra, a vrata ka telefonu spolja su već zatvorena. Provera — „Pozovi na uređaj“ nakon 10 minuta mirovanja; lek — keep-alive u telefonu.

Može li se jednostavno isključiti tajmere sesije na PBX?#

Može (na namenskom PBX, „Fina podešavanja SIP“), ali to leči simptom, a ne uzrok: produženje ne prolazi jer je put servisnih poruka zatvoren ili pokvaren, a taj isti put biće potreban za preusmeravanje poziva i zadržavanje. Uz to, bez tajmera će prekinuti nijemi razgovori viseti satima i zauzimati linije. Prvo keep-alive i SIP ALG.

Povezani odeljci#

Izvori#

  • RFC 3261 — SIP: ponavljanje 200 OK do prijema ACK i završetak sesije kroz 64 × T1 (§13.3.1.4), T1 = 500 ms (§17.1.1.1), prelaz na TCP za poruke duže od 1300 bajtova (§18.1.1) — https://www.rfc-editor.org/rfc/rfc3261
  • RFC 4028 — Session Timers: produženje na sredini intervala, BYE za min(32 s, interval / 3) pre isteka — https://www.rfc-editor.org/rfc/rfc4028
  • Yealink SIP-T2/T3/T4/T5/CP920 Administrator Guide V86.60 — Keep Alive Type / Interval (fabrički Default, 30 s), Session Timer (fabrički — isključen; Session Expires 1800 s; obnavljanje na polovini intervala)
  • Grandstream GRP261x/262x/263x Administration Guide — Session Timer: Enable Session Timer (fabrički „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 ograničenje veličine paketa, NAT tajmauti rutera — https://www.zoiper.com/pdf/User%20Guide%20Zoiper%205%20v.1.0.7.pdf
  • Kod PBX: 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 (eho-test *43, gornja granica provere 300 s)
Was this article helpful?