C cenaly.com
Започнете безплатно

Разговорът прекъсва: след 30 секунди, след 15–30 минути

Прекъсване на 32-рата секунда (няма ACK), след 15–30 минути (таймери на сесията), входящите работят само през първите минути след включване – механизъм и отстраняване

On this page 21

Звонът прекъсва: след 30 секунди, след 15–30 минути

Прекъсване „точно след еди-колко си“ не е лоша връзка, а таймер: една от страните е чакала нещо, не го е дочакала и честно е затворила. Затова по времето на прекъсването причината може да се назове почти сигурно: ~32 секунди — потвърждението за начало на разговора не е пристигнало; ~15 или ~30 минути — удължаването на разговора не е минало; входящите работят само първите минути — рутерът е затворил пътя към телефона. По-долу — механизмът на всеки случай с думи и какво да направите.

Общата настройка на телефоните е в прегледа „Настройка на SIP телефони“, останалите симптоми — в диагностиката по симптоми.

Първо проверете в админ панела#

  1. Журнал на звънънията — отворете прекъснатия звън. „Разговор“ ще покаже продължителността с точност до секунда: 0:31–0:33 — почеркът на първия случай, около 15:00 или 29:30 — на втория. Там са също „Затворил“ (звънящият, служителят или АТС) и „Причина за затваряне“.
  2. Ехо тест *43, но дълъг: наберете и задръжте слушалката 45 секунди. *43 също е звън, и потвърждението за начало на разговора в него минава по същия път. Прекъсна се на 32-ата секунда — повреда между телефона и АТС; издържа — телефонът и мрежата на обекта са наред, търсете по-нататък (външни звънъния, оператор).
  3. Карта на апарата → „Работоспособност“: редовни пропадания „няма връзка“ — рутерът затваря обратния път към телефона (вижте третия случай).
  4. „Звънене на апарата“ в картата, 10 минути след последния звън: звънна — пътят към телефона е жив; мълчи при зелен обект — това е рутерът.
  5. SIP трасировка на отделната АТС: повтарящ се 200 OK без ACK, после BYE — първият случай; BYE след INVITE или UPDATE посред разговора — вторият.

Прекъсване след 30–32 секунди#

Защо се случва така#

Началото на разговора е ръкостискане от три съобщения: „звъня“ (INVITE) — „отговориха“ (200 OK) — „разбрах, започваме“ (ACK). Страната, която е отговорила, повтаря своето „отговориха“, докато не получи „разбрах“. Правилото на протокола SIP: ако „разбрах“ не е пристигнало за 64 × T1 = 64 × 0,5 с = 32 секунди, разговорът трябва да бъде прекратен. Гласът при това вече върви — затова половин минута всичко е наред, а после звънът пада сам.

И така, прекъсване на 32-ата секунда означава: потвърждението ACK се губи някъде. Защо — от честото към рядкото:

  1. SIP ALG на рутера. Рутерът пренаписва адресите вътре в служебните съобщения и потвърждението отива не там, където трябва, или се отхвърля. Първото, което трябва да се провери винаги.
  2. Твърде голям пакет. Ако в телефона са включени десетки кодеци, описанието на звъна се раздува над ~1300 байта и по UDP то отива „на парчета“ (фрагменти). Много рутери и междумрежови екрани мълчаливо изхвърлят фрагментите — губи се точно това съобщение. Протоколът SIP изрично изисква за такива съобщения да се премине към TCP.
  3. Вътрешен адрес в съобщенията. Телефонът пише за себе си вътрешен адрес (192.168.x.x) и потвърждението се изпраща по него. Нашата АТС поправя това сама — отговаря там, откъдето съобщението реално е пристигнало, — но при оператора такава защита може да липсва: тогава се прекъсват само външните звънъния.
  4. Двоен 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 секунди) и тестово звънене; продължете — само ако не е помогнало.

  1. Изключете SIP ALG на рутера („SIP Helper“, „SIP Passthrough“, „ALG за SIP“) и рестартирайте рутера. Къде се намира при популярните марки — „Мрежа, рутер и интернет“.
  2. Оставете в телефона три кодека — G.711 PCMA, G.711 PCMU и G.722, — останалите изключете: съобщенията ще станат по-къси и ще спрат да се раздробяват.
  3. Превключете транспорта на TCP (портът е същият, 5060), ако стъпка 2 не е помогнала: TCP сам реже дългите съобщения правилно и фрагментацията изчезва. Нашата АТС приема и UDP, и TCP.
  4. Прекъсват се само външните звънъния, а *43 и вътрешните се държат — повреда между АТС и оператора. Изпратете в поддръжката часа на няколко прекъснати звънъния.
  5. Премахнете двоен NAT — преведете рутера на доставчика в режим на мост или свържете телефона направо в него.

Прекъсване след 15 или 30 минути#

Защо се случва така#

По време на дълъг разговор страните от време на време потвърждават, че разговорът още тече — това са таймерите на сесията. Интервалът се договаря в началото на разговора; едната страна се задължава да „удължава“ разговора в средата на интервала, другата — чака удължаването. На нашата АТС таймерите на сесията са включени с интервал 1800 секунди (30 минути); нужни са, за да не виси с часове разговор, в който връзката е изчезнала мълчаливо, и да не заема линията.

Оттук произлизат два почерка:

  • около 15 минути — в средата на интервала удължаването е изпратено, но не е минало: страната го е отхвърлила или не е получила отговор;
  • около 29,5 минути — удължаване изобщо не е имало и страната, която го е чакала, е затворила малко преди изтичането на интервала.

Защо удължаването не минава:

  1. Рутерът е затворил пътя на служебните съобщения. Гласът по време на разговора тече непрекъснато, а служебните съобщения — мълчат. Ако на телефона е изключен keep-alive, рутерът след няколко минути затваря „вратата“ за служебните съобщения — и удължаването от АТС към телефона вече не достига.
  2. Телефонът не разбира начина на удължаване или го отхвърля — стара версия на фърмуера, включен е „Session Timer“ с нестандартни параметри.
  3. SIP ALG разваля съобщението за удължаване.
  4. Таймер на оператора на връзката — ако се прекъсват само външни разговори и винаги на една и съща минута.

АТС включва таймерите в разговора само ако ги поддържа и телефонът ⚠️ 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 с), а страната, която не го е получила, прекратява сесията с BYE min(32 с, интервал / 3) преди изтичането — около 1768 с.
  • По тишина АТС не прекъсва (rtp_timeout=0), затова „разговор без звук“ сам по себе си не се прекъсва.
  • На отделна АТС същите стойности са в „Тонки настройки на SIP“ („Таймери на сесията“, „Обновяване на сесията, секунди“). Не е нужно да ги променяте без изискване от доставчика.

Какво да направите#

  1. Включете keep-alive на телефона — той държи пътя на служебните съобщения отворен и по време на разговора. Yealink: Account → Advanced → Keep Alive Type (Default или Options) и Keep Alive Interval — 30 с (заводска стойност).
  2. Изключете SIP ALG на рутера.
  3. Ако на телефона е бил включен „Session Timer“ — върнете заводската стойност (изкл.) или задайте интервал 1800 с: Yealink — Account → Advanced → Session Timer / Session Expires; Grandstream — Account → SIP Settings → Session Timer (Enable Session Timer, Session Expiration).
  4. Обновете фърмуера на телефона — грешки при удължаването на разговора често са поправени в новите версии.
  5. Прекъсват се само външни разговори, на една и съща минута — изпратете часовете на разговорите до поддръжката: ще сверим таймерите с оператора на връзката.

Входящите работят само първите минути след включване#

Защо се случва така#

Телефонът стои зад рутер и АТС може да го достигне само през „вратата“, която телефонът е отворил с последното си съобщение. Рутерът държи такива врати не дълго — при битовите рутери от половин минута до няколко минути тишина — и после я затваря. Докато телефонът често изпраща нещо (регистрация веднага след включване, keep-alive), вратата е отворена. Затихне ли — затваря се и входящото обаждане от АТС се удря в рутера.

Обектът в админ панела при това може да остане зелен: регистрацията телефонът обновява сам, отвътре, и тя минава, но да се влезе в телефона отвън вече не може. Презареждането „лекува“, защото отваря вратата наново — за известно време.

Нашата АТС от своя страна на всеки 60 секунди проверява всеки апарат със заявка „на линия ли си?“: този насрещен пакет също държи вратата отворена — но само ако рутерът я затваря за повече от минута. Не отговори ли апаратът — АТС го смята за недостъпен, обектът угасва и в „Работоспособност“ се появява пропуск.

Какво да направите#

След всяка стъпка проверете входящо след 10 минути престой (с бутона „Позвъни на апарата“ или от съседен вътрешен номер); нататък — само ако не е помогнало.

  1. Включете keep-alive на телефона с интервал 20–30 секунди. Yealink: Account → Advanced → Keep Alive Type / Keep Alive Interval (заводски Default и 30 с); при Fanvil — Keep Alive Type в допълнителните настройки на линията.
  2. Изключете SIP ALG на рутера — и той обича да „забравя“ врати.
  3. Съкратете срока на регистрация в телефона (Expires / Register Expiration) до 60–120 секунди — телефонът ще отваря вратата сам по-често. Под 60 нашата АТС няма да приеме (423 Interval Too Brief).
  4. На отделна АТС можете да проверявате апаратите по-често: „Тонки настройки на SIP“ → „Проверка на връзката, секунди“ — 20–30 вместо 60. Това държи вратата от страната на АТС, но добавя служебен трафик; keep-alive на телефона е по-надежден.
  5. Двоен NAT (рутер на доставчика + свой) — вратите са две и се затварят по различен начин: махнете едната — „Мрежа, рутер и интернет“.

Прекъсване при преминаване от Wi-Fi към мобилен интернет#

Защо се случва така#

Wi-Fi на заведението и мобилният интернет са два различни адреса. Разговорът е започнал от единия и телефонната централа в началото на разговора е запомнила откъде идва гласът: от съображения за сигурност тя приема звук само от този адрес. Когато смартфонът превключи на мобилната мрежа, гласът започва да идва от нов адрес — и за централата това вече е чужд поток, а служебните съобщения продължават да отиват на стария адрес, който вече не съществува. Разговор, започнат в една мрежа, при преминаване в друга почти винаги се прекъсва. Това е ограничение на самата технология, а не повреда.

Втората страна на същото: докато смартфонът превключва, софтфонът губи регистрация и входящите в тези секунди не достигат. Android освен това приспива фоновите приложения — повече в обзора, разделът за софтуерни телефони.

Какво да направите#

  1. По време на разговор не сменяйте мрежата: завършете разговора, преди да излезете от зоната на Wi-Fi.
  2. Изключете на смартфона автоматичното превключване от лош Wi-Fi към мобилна мрежа (на iPhone — „Помощ за Wi-Fi“, на Android — „превключване към мобилна мрежа“ в настройките на Wi-Fi): в момента то прекъсва разговора на прага на кафенето.
  3. Разрешете на софтфона да работи във фонов режим и премахнете за него пестенето на батерия — тогава той се регистрира по-бързо наново след смяна на мрежата.
  4. Там, където разговорът не бива да се губи (рецепция, гише), поставете настолен телефон или 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.

Свързани раздели#

Източници#

  • 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 с)
Was this article helpful?