Звонът прекъсва: след 30 секунди, след 15–30 минути
Прекъсване „точно след еди-колко си“ не е лоша връзка, а таймер: една от страните е чакала нещо, не го е дочакала и честно е затворила. Затова по времето на прекъсването причината може да се назове почти сигурно: ~32 секунди — потвърждението за начало на разговора не е пристигнало; ~15 или ~30 минути — удължаването на разговора не е минало; входящите работят само първите минути — рутерът е затворил пътя към телефона. По-долу — механизмът на всеки случай с думи и какво да направите.
Общата настройка на телефоните е в прегледа „Настройка на SIP телефони“, останалите симптоми — в диагностиката по симптоми.
Първо проверете в админ панела#
- Журнал на звънънията — отворете прекъснатия звън. „Разговор“ ще покаже продължителността с точност до секунда: 0:31–0:33 — почеркът на първия случай, около 15:00 или 29:30 — на втория. Там са също „Затворил“ (звънящият, служителят или АТС) и „Причина за затваряне“.
- Ехо тест
*43, но дълъг: наберете и задръжте слушалката 45 секунди.*43също е звън, и потвърждението за начало на разговора в него минава по същия път. Прекъсна се на 32-ата секунда — повреда между телефона и АТС; издържа — телефонът и мрежата на обекта са наред, търсете по-нататък (външни звънъния, оператор). - Карта на апарата → „Работоспособност“: редовни пропадания „няма връзка“ — рутерът затваря обратния път към телефона (вижте третия случай).
- „Звънене на апарата“ в картата, 10 минути след последния звън: звънна — пътят към телефона е жив; мълчи при зелен обект — това е рутерът.
- SIP трасировка на отделната АТС: повтарящ се
200 OKбезACK, послеBYE— първият случай;BYEследINVITEилиUPDATEпосред разговора — вторият.
Прекъсване след 30–32 секунди#
Защо се случва така#
Началото на разговора е ръкостискане от три съобщения: „звъня“ (INVITE) — „отговориха“ (200 OK) — „разбрах, започваме“ (ACK). Страната, която е отговорила, повтаря своето „отговориха“, докато не получи „разбрах“. Правилото на протокола SIP: ако „разбрах“ не е пристигнало за 64 × T1 = 64 × 0,5 с = 32 секунди, разговорът трябва да бъде прекратен. Гласът при това вече върви — затова половин минута всичко е наред, а после звънът пада сам.
И така, прекъсване на 32-ата секунда означава: потвърждението ACK се губи някъде. Защо — от честото към рядкото:
- SIP ALG на рутера. Рутерът пренаписва адресите вътре в служебните съобщения и потвърждението отива не там, където трябва, или се отхвърля. Първото, което трябва да се провери винаги.
- Твърде голям пакет. Ако в телефона са включени десетки кодеци, описанието на звъна се раздува над ~1300 байта и по UDP то отива „на парчета“ (фрагменти). Много рутери и междумрежови екрани мълчаливо изхвърлят фрагментите — губи се точно това съобщение. Протоколът SIP изрично изисква за такива съобщения да се премине към TCP.
- Вътрешен адрес в съобщенията. Телефонът пише за себе си вътрешен адрес (
192.168.x.x) и потвърждението се изпраща по него. Нашата АТС поправя това сама — отговаря там, откъдето съобщението реално е пристигнало, — но при оператора такава защита може да липсва: тогава се прекъсват само външните звънъния. - Двоен NAT или строг междумрежов екран, който пропуска първите съобщения на звъна и реже следващите.
За администратора на мрежата: коя страна затваря
По RFC 3261 (§13.3.1.4) страната, отговорила с 200 OK, го повтаря с интервал от T1 до T2 и след 64 × T1 без ACK прекратява сесията със заявка BYE; T1 по подразбиране е 500 мс (§17.1.1.1), оттам идват 32 секунди.
- Входящо звънене към телефон:
200 OKизпраща телефонът,ACK— АТС. Загуби ли сеACKпо пътя към телефона — телефонът затваря. - Изходящо от телефона и
*43:200 OKизпраща АТС,ACK— телефонът. Загуби ли сеACKпо пътя към АТС — АТС затваря. - Фрагментация: RFC 3261 §18.1.1 — ако заявката е по-дълга от 1300 байта (или в границите на 200 байта от MTU на пътя), клиентът трябва да я изпраща по TCP с контрол на претоварването. Нашата АТС приема TCP на същия порт 5060.
Какво да направите#
След всяка стъпка повторете дългия *43 (45 секунди) и тестово звънене; продължете — само ако не е помогнало.
- Изключете SIP ALG на рутера („SIP Helper“, „SIP Passthrough“, „ALG за SIP“) и рестартирайте рутера. Къде се намира при популярните марки — „Мрежа, рутер и интернет“.
- Оставете в телефона три кодека — G.711 PCMA, G.711 PCMU и G.722, — останалите изключете: съобщенията ще станат по-къси и ще спрат да се раздробяват.
- Превключете транспорта на TCP (портът е същият, 5060), ако стъпка 2 не е помогнала: TCP сам реже дългите съобщения правилно и фрагментацията изчезва. Нашата АТС приема и UDP, и TCP.
- Прекъсват се само външните звънъния, а
*43и вътрешните се държат — повреда между АТС и оператора. Изпратете в поддръжката часа на няколко прекъснати звънъния. - Премахнете двоен NAT — преведете рутера на доставчика в режим на мост или свържете телефона направо в него.
Прекъсване след 15 или 30 минути#
Защо се случва така#
По време на дълъг разговор страните от време на време потвърждават, че разговорът още тече — това са таймерите на сесията. Интервалът се договаря в началото на разговора; едната страна се задължава да „удължава“ разговора в средата на интервала, другата — чака удължаването. На нашата АТС таймерите на сесията са включени с интервал 1800 секунди (30 минути); нужни са, за да не виси с часове разговор, в който връзката е изчезнала мълчаливо, и да не заема линията.
Оттук произлизат два почерка:
- около 15 минути — в средата на интервала удължаването е изпратено, но не е минало: страната го е отхвърлила или не е получила отговор;
- около 29,5 минути — удължаване изобщо не е имало и страната, която го е чакала, е затворила малко преди изтичането на интервала.
Защо удължаването не минава:
- Рутерът е затворил пътя на служебните съобщения. Гласът по време на разговора тече непрекъснато, а служебните съобщения — мълчат. Ако на телефона е изключен keep-alive, рутерът след няколко минути затваря „вратата“ за служебните съобщения — и удължаването от АТС към телефона вече не достига.
- Телефонът не разбира начина на удължаване или го отхвърля — стара версия на фърмуера, включен е „Session Timer“ с нестандартни параметри.
- SIP ALG разваля съобщението за удължаване.
- Таймер на оператора на връзката — ако се прекъсват само външни разговори и винаги на една и съща минута.
АТС включва таймерите в разговора само ако ги поддържа и телефонът ⚠️ verify. При повечето настолни телефони „Session Timer“ е изключен от завода (при Yealink и Grandstream — по документация) и тогава в разговора изобщо няма таймери.
За администратора на мрежата: стойности от страната на АТС
timers=yes— таймерите се поддържат;timers_sess_expires=1800— интервал 1800 с;timers_min_se=90— под 90 с АТС няма да приеме (shared/sip/advanced-options.json, групаprotocol).- По RFC 4028 удължаването се изпраща в средата на интервала (900 с), а страната, която не го е получила, прекратява сесията с
BYEmin(32 с, интервал / 3) преди изтичането — около 1768 с. - По тишина АТС не прекъсва (
rtp_timeout=0), затова „разговор без звук“ сам по себе си не се прекъсва. - На отделна АТС същите стойности са в „Тонки настройки на SIP“ („Таймери на сесията“, „Обновяване на сесията, секунди“). Не е нужно да ги променяте без изискване от доставчика.
Какво да направите#
- Включете keep-alive на телефона — той държи пътя на служебните съобщения отворен и по време на разговора. Yealink: Account → Advanced → Keep Alive Type (Default или Options) и Keep Alive Interval — 30 с (заводска стойност).
- Изключете SIP ALG на рутера.
- Ако на телефона е бил включен „Session Timer“ — върнете заводската стойност (изкл.) или задайте интервал 1800 с: Yealink — Account → Advanced → Session Timer / Session Expires; Grandstream — Account → SIP Settings → Session Timer (Enable Session Timer, Session Expiration).
- Обновете фърмуера на телефона — грешки при удължаването на разговора често са поправени в новите версии.
- Прекъсват се само външни разговори, на една и съща минута — изпратете часовете на разговорите до поддръжката: ще сверим таймерите с оператора на връзката.
Входящите работят само първите минути след включване#
Защо се случва така#
Телефонът стои зад рутер и АТС може да го достигне само през „вратата“, която телефонът е отворил с последното си съобщение. Рутерът държи такива врати не дълго — при битовите рутери от половин минута до няколко минути тишина — и после я затваря. Докато телефонът често изпраща нещо (регистрация веднага след включване, keep-alive), вратата е отворена. Затихне ли — затваря се и входящото обаждане от АТС се удря в рутера.
Обектът в админ панела при това може да остане зелен: регистрацията телефонът обновява сам, отвътре, и тя минава, но да се влезе в телефона отвън вече не може. Презареждането „лекува“, защото отваря вратата наново — за известно време.
Нашата АТС от своя страна на всеки 60 секунди проверява всеки апарат със заявка „на линия ли си?“: този насрещен пакет също държи вратата отворена — но само ако рутерът я затваря за повече от минута. Не отговори ли апаратът — АТС го смята за недостъпен, обектът угасва и в „Работоспособност“ се появява пропуск.
Какво да направите#
След всяка стъпка проверете входящо след 10 минути престой (с бутона „Позвъни на апарата“ или от съседен вътрешен номер); нататък — само ако не е помогнало.
- Включете keep-alive на телефона с интервал 20–30 секунди. Yealink: Account → Advanced → Keep Alive Type / Keep Alive Interval (заводски Default и 30 с); при Fanvil — Keep Alive Type в допълнителните настройки на линията.
- Изключете SIP ALG на рутера — и той обича да „забравя“ врати.
- Съкратете срока на регистрация в телефона (Expires / Register Expiration) до 60–120 секунди — телефонът ще отваря вратата сам по-често. Под 60 нашата АТС няма да приеме (
423 Interval Too Brief). - На отделна АТС можете да проверявате апаратите по-често: „Тонки настройки на SIP“ → „Проверка на връзката, секунди“ — 20–30 вместо 60. Това държи вратата от страната на АТС, но добавя служебен трафик; keep-alive на телефона е по-надежден.
- Двоен NAT (рутер на доставчика + свой) — вратите са две и се затварят по различен начин: махнете едната — „Мрежа, рутер и интернет“.
Прекъсване при преминаване от Wi-Fi към мобилен интернет#
Защо се случва така#
Wi-Fi на заведението и мобилният интернет са два различни адреса. Разговорът е започнал от единия и телефонната централа в началото на разговора е запомнила откъде идва гласът: от съображения за сигурност тя приема звук само от този адрес. Когато смартфонът превключи на мобилната мрежа, гласът започва да идва от нов адрес — и за централата това вече е чужд поток, а служебните съобщения продължават да отиват на стария адрес, който вече не съществува. Разговор, започнат в една мрежа, при преминаване в друга почти винаги се прекъсва. Това е ограничение на самата технология, а не повреда.
Втората страна на същото: докато смартфонът превключва, софтфонът губи регистрация и входящите в тези секунди не достигат. Android освен това приспива фоновите приложения — повече в обзора, разделът за софтуерни телефони.
Какво да направите#
- По време на разговор не сменяйте мрежата: завършете разговора, преди да излезете от зоната на Wi-Fi.
- Изключете на смартфона автоматичното превключване от лош Wi-Fi към мобилна мрежа (на iPhone — „Помощ за Wi-Fi“, на Android — „превключване към мобилна мрежа“ в настройките на Wi-Fi): в момента то прекъсва разговора на прага на кафенето.
- Разрешете на софтфона да работи във фонов режим и премахнете за него пестенето на батерия — тогава той се регистрира по-бързо наново след смяна на мрежата.
- Там, където разговорът не бива да се губи (рецепция, гише), поставете настолен телефон или DECT-слушалка, а не смартфон.
Какво да изпратите на поддръжката#
- дата и час на няколко прекъснати разговора до минутата, номерата и вътрешния номер;
- след колко се прекъсва (по журнала — „Разговор“) и винаги ли е еднакво;
- прекъсват ли се всички разговори или само външните; издържа ли дългият
*43(45 секунди); - модел и фърмуер на телефона (редът от етикета на апарата), включени ли са в него keep-alive и Session Timer;
- модел на рутера, изключен ли е SIP ALG, има ли втори рутер на доставчика;
- при отделна централа — текстът на SIP-трейса на повторения обрив.
Как да ни пишете — „Поддръжка“.
Често задавани въпроси#
Защо прекъсването е точно на 32-ата секунда, а не на 30-ата и не на 40-ата?#
Защото това число е заложено в самия протокол SIP: потвърждението за началото на разговора се чака 64 интервала по половин секунда — 32 секунди. Ако при вас е „около 30 секунди“ и всеки път еднакво — това е то, дори хронометърът да е показвал 31 или 33: част от времето е отишла за позвъняване и отговор.
SIP ALG е изключен, а прекъсването на 30-ата секунда остава — какво още?#
Проверете дали ALG е изключен на всички рутери по пътя (при рутера на доставчика често има собствен), оставете в телефона три кодека и опитайте транспорт TCP. Ако се прекъсват само външните разговори, а *43 издържа 45 секунди — проблемът е в участъка към оператора на връзката, изпратете часа на разговорите.
Обектът е зелен, но входящите не идват — това също ли е „прекъсване“?#
Това е същият механизъм като в раздела за входящите първите минути: регистрацията се обновява отвътре, а вратата към телефона отвън вече е затворена. Проверка — „Позвъняване на апарата“ след 10 минути престой; лечение — keep-alive в телефона.
Може ли просто да изключим таймерите на сесията на централата?#
Може (при отделна централа, „Тънки настройки на SIP“), но това лекува симптома, а не причината: подновяването не минава, защото пътят на служебните съобщения е затворен или повреден, а същият път ще е нужен за прехвърляне на разговор и задържане. Освен това без таймери прекъснатите мълчаливо разговори ще висят с часове и ще заемат линии. Първо keep-alive и SIP ALG.
Свързани раздели#
- Телефонът не работи: диагностика по симптоми — включително „няма входящи при работещи изходящи“
- Няма звук, чува се само в една посока, ехо, „робот“
- Не се регистрира: надписи и кодове за грешки — „регистрира се и изчезва“,
423 Interval Too Brief - Мрежа, рутер и интернет за телефония — къде да изключите SIP ALG, двоен NAT
- Настройка на SIP-телефони — мрежа на заведението, проверка на качеството на връзката
- Журнал на разговорите и SIP-трейс
Източници#
- RFC 3261 — SIP: повторение на
200 OKдо получаване наACKи завършване на сесията след 64 × T1 (§13.3.1.4), T1 = 500 мс (§17.1.1.1), преминаване към TCP за съобщения, по-дълги от 1300 байта (§18.1.1) — https://www.rfc-editor.org/rfc/rfc3261 - RFC 4028 — Session Timers: подновяване в средата на интервала,
BYEза min(32 с, интервал / 3) преди изтичане — https://www.rfc-editor.org/rfc/rfc4028 - Yealink SIP-T2/T3/T4/T5/CP920 Administrator Guide V86.60 — Keep Alive Type / Interval (заводски Default, 30 с), Session Timer (заводско — изключен; Session Expires 1800 с; обновяване на половината от интервала)
- Grandstream GRP261x/262x/263x Administration Guide — Session Timer: Enable Session Timer (заводско „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 и ограничение на размера на пакета, NAT-таймаути на рутера — https://www.zoiper.com/pdf/User%20Guide%20Zoiper%205%20v.1.0.7.pdf
- Код на централата:
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(ехо-тест*43, таван на проверката 300 с)