Zəng kəsilir: 30 saniyədən sonra, 15–30 dəqiqədən sonra
“Düz bu qədər vaxtdan sonra” baş verən qırılma pis əlaqə deyil, taymerdir: tərəflərdən biri nəyisə gözlədi, gözləyə bilmədi və dəstəyi vicdanla yerə qoydu. Buna görə qırılma vaxtına əsasən səbəbi demək olar ki, dəqiq demək mümkündür: ~32 saniyə — söhbətin başlanması təsdiqi çatmadı; ~15 və ya ~30 dəqiqə — söhbətin uzadılması keçmədi; daxil olanlar yalnız ilk dəqiqələr işləyir — router telefonun yolunu bağladı. Aşağıda hər halın mexanizmi sözlə və nə etmək lazımdır.
Telefonların ümumi konfiqurasiyası “SIP telefonların konfiqurasiyası” icmalındadır, digər simptomlar simptomlara görə diaqnostika bölməsindədir.
Əvvəlcə admin panelində yoxlayın#
- Zəng jurnalı — qırılmış zəngi açın. “Söhbət” müddəti saniyə dəqiqliyi ilə göstərəcək: 0:31–0:33 — birinci halın xüsusiyyəti, təxminən 15:00 və ya 29:30 — ikincinin. Orada həmçinin “Dəstəyi yerə qoydu” (zəng edən, əməkdaş və ya ATS) və “Ötürmə səbəbi”.
*43exo-testi, lakin uzun: yığın və dəstəyi 45 saniyə saxlayın.*43də zəngdir və söhbətin başlanması təsdiqi orada da eyni yoldan keçir. 32-ci saniyədə qırıldı — telefonla ATS arasında nasazlıq; davam gətirdi — müəssisənin telefonu və şəbəkəsi qaydasındadır, daha sonra axtarın (xarici zənglər, rabitə operatoru).- Aparatın kartı → “İş qabiliyyəti”: müntəzəm “əlaqə yoxdur” uğursuzluqları — router telefonun geri yolunu bağlayır (bax üçüncü hal).
- Kartda “Aparata zəng et”, son zəngdən 10 dəqiqə sonra: zəng çaldı — telefona yol canlıdır; yaşıl filialda sükut edir — bu routerdir.
- Ayrılmış ATS-də SIP-trace: təkrarlanan
200 OKACKolmadan, sonraBYE— birinci hal; söhbətin ortasındaINVITEvə yaUPDATE-dən sonraBYE— ikinci.
30–32 saniyədən sonra qırılma#
Niyə belə olur#
Söhbətin başlanması üç mesajdan ibarət əl sıxmadır: “zəng edirəm” (INVITE) — “cavab verdilər” (200 OK) — “başa düşdüm, başlayırıq” (ACK). Cavab verən tərəf “başa düşdüm” alana qədər öz “cavab verdilər”ini təkrarlayır. SIP protokolunun qaydası: əgər “başa düşdüm” 64 × T1 = 64 × 0,5 san = 32 saniyə ərzində gəlməzsə, söhbəti bitirmək lazımdır. Səs artıq gedir — buna görə yarım dəqiqə hər şey normaldır, sonra zəng özü düşür.
Beləliklə, 32-ci saniyədə qırılma deməkdir: ACK təsdiqi haradasa itir. Niyə — tez-tez olandan nadir olana:
- Routerdə SIP ALG. Router xidməti mesajların içindəki ünvanları yenidən yazır və təsdiq yanlış yerə gedir və ya atılır. Həmişə yoxlanılmalı olan ilk şey.
- Çox böyük paket. Telefonda onlarla kodek aktivdirsə, zəngin təsviri ~1300 baytdan çox şişir və UDP ilə “hissələrlə” (fraqmentlərlə) gedir. Bir çox router və firewall fraqmentləri sükutla atır — o mesaj itir. SIP protokolu belə mesajlar üçün TCP-yə keçməyi birbaşa tələb edir.
- Mesajlarda daxili ünvan. Telefon özü haqqında daxili ünvan (
192.168.x.x) yazır və təsdiq ona göndərilir. Bizim ATS bunu özü düzəldir — mesajın həqiqətən gəldiyi yerə cavab verir — lakin rabitə operatorunda belə müdafiə olmaya bilər: o zaman yalnız xarici zənglər qırılır. - İkiqat NAT və ya zəngin ilk mesajlarını buraxıb sonrakıları kəsən sərt firewall.
Şəbəkə administratoru üçün: hansı tərəf dəstəyi yerə qoyur
RFC 3261-ə (§13.3.1.4) görə 200 OK cavabını verən tərəf onu T1-dən T2-yə qədər intervalda təkrarlayır və 64 × T1-dən sonra ACK olmadan sessiyanı BYE sorğusu ilə bitirir; T1 standart olaraq 500 ms-dir (§17.1.1.1), buradan 32 saniyə.
- Telefona daxil olan zəng:
200 OK-ni telefon göndərir,ACK-i — ATS.ACKtelefona gedən yolda itdi — dəstəyi telefon yerə qoyur. - Telefondan çıxan zəng və
*43:200 OK-ni ATS göndərir,ACK-i — telefon.ACKATS-ə gedən yolda itdi — dəstəyi ATS yerə qoyur. - Fraqmentasiya: RFC 3261 §18.1.1 — əgər sorğu 1300 baytdan uzundursa (və ya yolun MTU-sundan 200 bayt məsafədədirsə), müştəri onu yüklənmə nəzarəti ilə TCP ilə göndərməlidir. Bizim ATS həmin 5060 portunda TCP qəbul edir.
Nə etməli#
Hər addımdan sonra uzun *43-ü (45 saniyə) və test zəngini təkrarlayın; davamı — yalnız kömək etmədikdə.
- Routerdə SIP ALG-ni söndürün (“SIP Helper”, “SIP Passthrough”, “SIP üçün ALG”) və routeri yenidən başladın. Populyar markalarda harada olduğu — “Şəbəkə, router və internet”.
- Telefonda üç kodek saxlayın — G.711 PCMA, G.711 PCMU və G.722, — qalanlarını söndürün: mesajlar qısalacaq və parçalanmağı dayandıracaq.
- 2-ci addım kömək etmədisə, transportu TCP-yə keçirin (port eynidir, 5060): TCP uzun mesajları özü düzgün kəsir və fraqmentasiya yox olur. Bizim ATS həm UDP, həm də TCP qəbul edir.
- Yalnız xarici zənglər qırılır,
*43və daxili zənglər davam edir — nasazlıq ATS ilə rabitə operatoru arasındadır. Bir neçə qırılmış zəngin vaxtını dəstəyə göndərin. - İkiqat NAT-ı aradan qaldırın — provayderin routerini körpü rejiminə keçirin və ya telefonu birbaşa ona qoşun.
15 və ya 30 dəqiqə sonra qırılma#
Niyə belə olur#
Uzun söhbət zamanı tərəflər vaxtaşırı söhbətin hələ də davam etdiyini təsdiqləyir — bunlar sessiya taymerləridir. İnterval zəngin əvvəlində razılaşdırılır; bir tərəf söhbəti intervalın ortasında «uzatmağı» öhdəsinə götürür, digər tərəf isə uzadılmanı gözləyir. Bizim ATS-də sessiya taymerləri 1800 saniyə (30 dəqiqə) intervalı ilə aktivdir; onlar ona görə lazımdır ki, əlaqənin səssizcə itdiyi söhbət saatlarla asılı qalmasın və xətti tutmasın.
Buradan iki ssenari çıxır:
- təxminən 15 dəqiqə — intervalın ortasında uzadılma göndərildi, lakin çatmadı: tərəf onu rədd etdi və ya cavab almadı;
- təxminən 29,5 dəqiqə — uzadılma heç olmadı və onu gözləyən tərəf intervalın bitməsindən bir az əvvəl dəstəyi qapatdı.
Uzadılmanın keçməməsinin səbəbləri:
- Router xidməti mesajların yolunu bağladı. Söhbət zamanı səs fasiləsiz gedir, xidməti mesajlar isə səssizdir. Telefonda keep-alive söndürülübsə, router bir neçə dəqiqə sonra xidməti mesajlar üçün «qapını» bağlayır — və ATS-dən telefona uzadılma artıq çatmır.
- Telefon uzadılma üsulunu başa düşmür və ya onu rədd edir — köhnə proşivka, qeyri-standart parametrlərlə «Session Timer» aktivdir.
- SIP ALG uzadılma mesajını korlayır.
- Rabitə operatorunun taymeri — yalnız xarici zənglər və həmişə eyni dəqiqədə qırılırsa.
ATS söhbətdə taymerləri yalnız telefon da onları dəstəklədikdə işə salır ⚠️ verify. Əksər stolüstü telefonlarda «Session Timer» zavod parametrləri ilə söndürülmüşdür (Yealink və Grandstream-də — sənədlərə görə), və o zaman söhbətdə taymerlər heç olmur.
Şəbəkə administratoru üçün: ATS tərəfindəki dəyərlər
timers=yes— taymerlər dəstəklənir;timers_sess_expires=1800— interval 1800 s;timers_min_se=90— ATS 90 s-dən azını qəbul etmir (shared/sip/advanced-options.json,protocolqrupu).- RFC 4028-ə görə uzadılma intervalın ortasında (900 s) göndərilir, onu almayan tərəf isə sessiyanı bitməzdən min(32 s, interval / 3) əvvəl
BYEilə tamamlayır — təxminən 1768 s. - ATS səssizliyə görə qırılma etmir (
rtp_timeout=0), buna görə «səssiz söhbət» öz-özünə qırılmır. - Ayrıca ATS-də eyni dəyərlər «İncə SIP parametrləri»ndədir («Sessiya taymerləri», «Sessiyanın yenilənməsi, saniyə»). Provayderin tələbi olmadan onları dəyişmək lazım deyil.
Nə etməli#
- Telefonda keep-alive-i aktiv edin — o, söhbət zamanı da xidməti mesajların yolunu açıq saxlayır. Yealink: Account → Advanced → Keep Alive Type (Default və ya Options) və Keep Alive Interval — 30 s (zavod dəyəri).
- Routerdə SIP ALG-ı söndürün.
- Telefonda «Session Timer» aktiv edilibsə — zavod dəyərinə (söndürülmüş) qaytarın və ya intervalı 1800 s qoyun: Yealink — Account → Advanced → Session Timer / Session Expires; Grandstream — Account → SIP Settings → Session Timer (Enable Session Timer, Session Expiration).
- Telefonun proşivkasını yeniləyin — söhbətin uzadılması ilə bağlı xətalar çox vaxt yeni versiyalarda düzəldilib.
- Yalnız xarici zənglər qırılır, eyni dəqiqədə — zəng vaxtlarını dəstəyə göndərin: taymerləri rabitə operatoru ilə tutuşduracağıq.
Daxil olan zənglər yalnız yandırıldıqdan sonra ilk dəqiqələr işləyir#
Niyə belə olur#
Telefon routerin arxasındadır və ATS ona yalnız telefonun son mesajı ilə açdığı «qapı» vasitəsilə çata bilər. Router belə qapıları uzun saxlamır — məişət routerlərində yarım dəqiqədən bir neçə dəqiqəlik sükuta qədər — və sonra bağlayır. Telefon tez-tez nəsə göndərdikcə (yandırıldıqdan dərhal sonra qeydiyyat, keep-alive) qapı açıq qalır. Sükut yarandı — qapı bağlandı və ATS-dən gələn daxil olan zəng routerə dirənir.
Bu zaman admin panelindəki işarə yaşıl qala bilər: qeydiyyatı telefon özü, içdən yeniləyir və o keçir, lakin telefona xaricdən daxil olmaq artıq mümkün deyil. Yenidən başlatma «müalicə edir», çünki qapını yenidən açır — müvəqqəti olaraq.
Bizim ATS öz tərəfindən hər 60 saniyədə hər aparata «əlaqədəsən?» sorğusu göndərir: bu qarşılıqlı paket də qapını açıq saxlayır — lakin yalnız router onu bir dəqiqədən çox müddətə bağlayırsa. Aparat cavab verməzsə, ATS onu əlçatmaz sayır, işarə sönür və «İş qabiliyyəti»ndə uğursuzluq görünür.
Nə etməli#
Hər addımdan sonra daxil olan zəngi 10 dəqiqə boşdayanmadan sonra yoxlayın («Aparata zəng et» düyməsi ilə və ya qonşu daxili nömrədən); sonrakı addımlara yalnız kömək etmədikdə keçin.
- Telefonda keep-alive-i aktiv edin 20–30 saniyə intervalı ilə. Yealink: Account → Advanced → Keep Alive Type / Keep Alive Interval (zavod dəyərləri Default və 30 s); Fanvil-də — xəttin əlavə parametrlərində Keep Alive Type.
- Routerdə SIP ALG-ı söndürün — o da qapıları «unumağı» sevir.
- Telefonda qeydiyyat müddətini (Expires / Register Expiration) 60–120 saniyəyə qədər azaldın — telefon qapını daha tez-tez özü açacaq. 60-dan azını bizim ATS qəbul etmir (
423 Interval Too Brief). - Ayrıca ATS-də aparatları daha tez-tez yoxlamaq olar: «İncə SIP parametrləri» → «Əlaqə yoxlaması, saniyə» — 60 yerinə 20–30. Bu, qapını ATS tərəfdən açıq saxlayır, lakin xidməti trafik əlavə edir; telefonun keep-alive-i daha etibarlıdır.
- İkiqat NAT (provayderin routeri + öz routeriniz) — iki qapı var və onlar fərqli şəkildə bağlanır: birini götürün — «Şəbəkə, router və internet».
Wi-Fi-dən mobil internetə keçərkən qopma#
Niyə belə olur#
Müəssisənin Wi-Fi-ı və mobil internet iki fərqli ünvandır. Söhbət birindən başlayıb və ATS söhbətin əvvəlində səsin haradan gəldiyini yadda saxlayıb: təhlükəsizlik mülahizələrinə görə səsi yalnız bu ünvandan qəbul edir. Smartfon mobil şəbəkəyə keçəndə səs yeni ünvandan gəlməyə başlayır — ATS üçün bu artıq yad axındır, xidməti mesajlar isə artıq mövcud olmayan köhnə ünvana getməyə davam edir. Bir şəbəkədə başlanan söhbət digərinə keçərkən demək olar ki, həmişə qopur. Bu, texnologiyanın özünün məhdudiyyətidir, nasazlıq deyil.
Eyni şeyin digər tərəfi: smartfon keçid edərkən softfon qeydiyyatı itirir və bu saniyələrdə daxil olan zənglər çatmır. Android əlavə olaraq fon tətbiqlərini yuxuya verir — ətraflı məlumat üçün icmalda proqram telefonları bölməsinə baxın.
Nə etməli#
- Söhbət zamanı şəbəkəni dəyişməyin: Wi-Fi zonasından çıxmazdan əvvəl zəngi bitirin.
- Smartfonda pis Wi-Fi-dan mobil şəbəkəyə avtomatik keçidi söndürün (iPhone-da — “Wi-Fi Köməyi”, Android-də — Wi-Fi parametrlərində “mobil şəbəkəyə keç”): hazırda bu, kafenin astanasında söhbəti qoparır.
- Softfona fonda işləməyə icazə verin və onun üçün batareya qənaətini söndürün — belə olduqda şəbəkə dəyişdikdən sonra daha tez yenidən qeydiyyatdan keçir.
- Zəngi itirmək mümkün olmayan yerlərdə (stend, resepşn) smartfon yerinə masaüstü telefon və ya DECT dəstəyi qoyun.
Dəstəyə nə göndərməli#
- bir neçə qopmuş zəngin dəqiqliyə qədər tarixi və vaxtı, nömrələr və daxili nömrə;
- nə qədər sonra qopduğu (jurnala görə — “Söhbət”) və həmişə eyni olub-olmadığı;
- bütün zənglərin, yoxsa yalnız xarici zənglərin qopduğu; uzun
*43(45 saniyə) saxlanılırmı; - telefonun modeli və proqram təminatı (aparat teqindən sətir), onda keep-alive və Session Timer-in aktiv olub-olmadığı;
- routerin modeli, SIP ALG-nin söndürülüb-söndürülmədiyi, provayderin ikinci routerinin olub-olmadığı;
- ayrılmış ATS-də — təkrarlanan qopmanın SIP-trace mətni.
Bizə necə yazmaq olar — “Dəstək”.
Tez-tez verilən suallar#
Niyə qopma məhz 32-ci saniyədə olur, 30-cu və 40-cı saniyədə deyil?#
Çünki bu rəqəm SIP protokolunun özünə daxil edilib: söhbətin başlanmasının təsdiqi üçün yarım saniyəlik 64 interval — 32 saniyə gözlənilir. Əgər sizdə “təxminən 30 saniyə”dirsə və hər dəfə eynidirsə — bu elə odur, hətta saniyəölçən 31 və ya 33 göstərsə də: vaxtın bir hissəsi zəng səslərinə və cavaba gedib.
SIP ALG söndürülüb, amma 30-cu saniyədə qopma qalıb — başqa nə?#
Yoxlayın ki, ALG yoldakı bütün routerlərdə söndürülüb (provayder routerində çox vaxt öz ALG-si olur), telefonda üç kodek saxlayın və TCP transportunu sınayın. Əgər yalnız xarici zənglər qopursa, *43 isə 45 saniyə saxlanılırsa — iş rabitə operatoruna gedən hissədədir, zənglərin vaxtını göndərin.
Filial yaşıldır, amma daxil olan zənglər gəlmir — bu da “qopma”dırmı?#
Bu, daxil olanların işə salındıqdan sonra yalnız ilk dəqiqələr işləməsi bölməsindəki eyni mexanizmdir: qeydiyyat içəridən yenilənir, telefona çöl tərəfdən qapı isə artıq bağlıdır. Yoxlama — 10 dəqiqə boşdayandan sonra “Aparata zəng et”; müalicə — telefonda keep-alive.
ATS-də sessiya taymerlərini sadəcə söndürmək olarmı?#
Olar (ayrılmış ATS-də, “İncə SIP parametrləri”), lakin bu, simptomu müalicə edir, səbəbi yox: uzatma keçmir, çünki xidməti mesajların yolu bağlıdır və ya korlanıb, həmin yol zəngin yönləndirilməsi və gözləmə üçün də lazım olacaq. Üstəlik, taymerlər olmadan səssizcə qopmuş söhbətlər saatlarla asılı qalacaq və xətləri tutacaq. Əvvəlcə keep-alive və SIP ALG.
Əlaqəli bölmələr#
- Telefon işləmir: simptomlara görə diaqnostika — o cümlədən “gedən zənglər işləyərkən daxil olanlar yoxdur”
- Səs yoxdur, bir tərəfə eşidilir, əks-səda, “robot”
- Qeydiyyatdan keçmir: yazılar və xəta kodları — “qeydiyyatdan keçir və yox olur”,
423 Interval Too Brief - Telefoniya üçün şəbəkə, router və internet — SIP ALG-ni harada söndürməli, ikiqat NAT
- SIP-telefonların konfiqurasiyası — müəssisənin şəbəkəsi, əlaqə keyfiyyətinin yoxlanması
- Zəng jurnalı və SIP-trace
Mənbələr#
- RFC 3261 — SIP:
ACKalınana qədər200 OK-in təkrarı və sessiyanın 64 × T1 vasitəsilə tamamlanması (§13.3.1.4), T1 = 500 ms (§17.1.1.1), 1300 baytdan uzun mesajlar üçün TCP-yə keçid (§18.1.1) — https://www.rfc-editor.org/rfc/rfc3261 - RFC 4028 — Session Timers: intervalın ortasında uzatma, bitməzdən min(32 s, interval / 3) əvvəl
BYE— https://www.rfc-editor.org/rfc/rfc4028 - Yealink SIP-T2/T3/T4/T5/CP920 Administrator Guide V86.60 — Keep Alive Type / Interval (zavod Default, 30 s), Session Timer (zavod — söndürülüb; Session Expires 1800 s; intervalın yarısında yenilənmə)
- Grandstream GRP261x/262x/263x Administration Guide — Session Timer: Enable Session Timer (zavod “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 və paket ölçüsü məhdudiyyəti, routerin NAT-taymautları — https://www.zoiper.com/pdf/User%20Guide%20Zoiper%205%20v.1.0.7.pdf
- ATS kodu:
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(exo-test*43, yoxlama həddi 300 s)