alfi píše: ↑úte 08. srp 2023 23:03:43
xsouku04 píše: ↑úte 08. srp 2023 20:19:05
Kromě toho, že stále testujeme TLS/TCP spojení, o žádných dalších záhadách nevím. Bude tam někde nejspíš nějaký předčasný timeout toho TLS spojení, vypadá to že jsme na stopě. V návodu není o podpoře TLS vůbec zmínka.
Viz drobnosti výše - telefon se opakovaně ptá na povolení SIP účtu (vypadá to, že po opětovném spuštění po zabití aplikace, ale ne vždycky), po přihlášení přes UDP nezvoní příchozí hovory, i když můžu volat. Plus teda to, že po odhlášení na ústředně (cíleně) nedorazí push
Přiíhozí hovory nezvoní, když nejsou povoleny
Volací účty. Právě proto to nejspíše otravuje. Také jsem se na to jednou nachytal a myslel, že je chyba v aplikaci. Volací účet je něco jiného než
SIP účet. Při každé změně
SIP účtu se znovu musí povolit
Volací účet. Jde o to, že volací účty jsou nějaké nastavení Androidu, které nemůže ta aplikace udělat za uživatele a při každé změně se to znovu vypne.
Pokud telefon není vidět jako přihlášený na ústředně u svojí linky, logicky se nedá dovolat. Vždy je tam ale vidět jeden telefon jedenkrát bez ohledu na to, jak často mění ip adresu a port. To si proxy již pohlídá.
Co se týče spolehlivost TLS, přišli jsme na to, že nám timeoutuje TCP spojení mezi outbound proxy a sip.odorik.cz po deseti minutách nečinnosti. Opravili jsme to pomocí keep alive. Spadnutím TCP spojení to automaticky totiž odregistrovalo všechny uživatele, co použili ono spojení pro registraci (tedy všechny uživatele TLS). A stalo se to, jen když tam 10 minut nebyl žádný pohyb jako registrace žádného z uživatelů, tedy typicky vždy přes noc a občas (nepravidelně) i přes den. Telefon si ale po tu dobu myslel, že vše je OK, protože on spojení měl.
Telefony to také odregistruje, když outbound proxy restartujeme kvůli našim pokusům. Rozpadne se TCP spojení a tím se registrace zruší. To ale nebývá problém, protože o rozpadlém TCP spojení se aplikace dozví (pokud zrovna nespí - nevím jak je to z probouzením) a během pár vteřin se zaregistruje znovu. Normálně to ale restartovat vůbec nebudeme.
UDP se ale nic z toho netýká. UDP je celkově lepší a spolehlivější, jen neumožňuje šifrování hovorů.
Také jsme dnes testovali, jak se to chová v případě, že telefon změní IP adresu během hovoru. Např. jste na wifi a odejdete pryč z domu během hovoru, takže se začnou používat mobilní data. Nebo obráceně. Hovor normálně pokračuje dále a telefon pošle reinvite, takže i signalizace je v pořádku. Funguje to, jako by k žádné změně internetu nedošlo. Wifi je možné zapnout/vypnout během hovoru. To jsme byli mile překvapení. Testovali jsme jak UDP tak TLS a oboje funguje dobře při změně ip adresy během hovoru.
Update: Tak to TLS spojení pořád padá po náhodné době, keep alive nepomůže. Budeme to dál zkoumat.