Spolehlivý SIP klient pro Android s dobrou integrací

Podrobnější technické novinky a vůbec novinky a postřehy z VoIP.
Odpovědět
alfi
Příspěvky: 726
Registrován: čtv 03. led 2013 15:31:10

Re: Spolehlivý SIP klient pro Android s dobrou integrací

Příspěvek od alfi »

Kristovec píše: úte 08. srp 2023 9:09:26 Mám potíž : Na telefonech Nokia G60 5G a Vivo Y72 po jejich zapnutí nejde v aplikaci při odchozím hovoru vůbec žádný zvuk,napeosté ticho, je třeba nejprve jeden příchozí hovor a potom jde zvuk i u odchozího.
Mně audio na G60 jede, teda až na jiné chybky, viz výše, tj. chyba spíš fakt v nastavení než v aplikaci. Těch drobností-podivných chování je ale docela hodně :(
Uživatelský avatar
xsouku04
Administrátor
Příspěvky: 8184
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno
Kontaktovat uživatele:

Re: Spolehlivý SIP klient pro Android s dobrou integrací

Příspěvek od xsouku04 »

alfi píše: úte 08. srp 2023 12:22:27
Kristovec píše: úte 08. srp 2023 9:09:26 Mám potíž : Na telefonech Nokia G60 5G a Vivo Y72 po jejich zapnutí nejde v aplikaci při odchozím hovoru vůbec žádný zvuk,napeosté ticho, je třeba nejprve jeden příchozí hovor a potom jde zvuk i u odchozího.
Mně audio na G60 jede, teda až na jiné chybky, viz výše, tj. chyba spíš fakt v nastavení než v aplikaci. Těch drobností-podivných chování je ale docela hodně :(
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.
alfi
Příspěvky: 726
Registrován: čtv 03. led 2013 15:31:10

Re: Spolehlivý SIP klient pro Android s dobrou integrací

Příspěvek od alfi »

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 :)
Kristovec
Příspěvky: 1529
Registrován: ned 07. srp 2011 18:03:28

Re: Spolehlivý SIP klient pro Android s dobrou integrací

Příspěvek od Kristovec »

I u GSM, když volám ze SIM. Ale zkusím to skouknout jak píšete.
Kristovec
Příspěvky: 1529
Registrován: ned 07. srp 2011 18:03:28

Re: Spolehlivý SIP klient pro Android s dobrou integrací

Příspěvek od Kristovec »

Jinak ale jsem moc rád za toto řešení, je to fakticky třetí SIM karta v dvousimkovém přístroji, a na rozdíl od Dellmontu a jiných jsem i na příjmu. Obě SIMky jsou toriž zahraniční, UA, a na ty mi naši volat nebudou.
Kristovec
Příspěvky: 1529
Registrován: ned 07. srp 2011 18:03:28

Re: Spolehlivý SIP klient pro Android s dobrou integrací

Příspěvek od Kristovec »

Ne , tak ticho po zapnutí je pouze u VoIP, GSM tam zvuk jde, právě jsem to zkoušel s jednou ze svých UA SIM, tam šlo všechno.
Uživatelský avatar
xsouku04
Administrátor
Příspěvky: 8184
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno
Kontaktovat uživatele:

Re: Spolehlivý SIP klient pro Android s dobrou integrací

Příspěvek od xsouku04 »

Kristovec píše: stř 09. srp 2023 8:39:33 Jinak ale jsem moc rád za toto řešení, je to fakticky třetí SIM karta v dvousimkovém přístroji, a na rozdíl od Dellmontu a jiných jsem i na příjmu. Obě SIMky jsou toriž zahraniční, UA, a na ty mi naši volat nebudou.
Takže ta změna zvukového zařízení to úplně vyřešila?
Uživatelský avatar
xsouku04
Administrátor
Příspěvky: 8184
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno
Kontaktovat uživatele:

Re: Spolehlivý SIP klient pro Android s dobrou integrací

Příspěvek od xsouku04 »

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.
alfi
Příspěvky: 726
Registrován: čtv 03. led 2013 15:31:10

Re: Spolehlivý SIP klient pro Android s dobrou integrací

Příspěvek od alfi »

xsouku04 píše: stř 09. srp 2023 15:53:49 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.
Dík za odezvu. Já myslím, že jsem to sepsal srozumitelně, ale zkusím to ještě jednou :)
Ano, zaškrtávátka volacích účtů se objevujou dvě. Čas od času, se objeví notifikace, že ten účet mám povolit. Pořád dokola, někdy už povolený je, jindy ne. Tj. problém je, že to povolení chce opakovaně i bez změny nastavení (a netuším, proč. Před chvílí znovu, zase po zabití ACR)
xsouku04 píše: stř 09. srp 2023 15:53:49 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á.
Telefon je přes UDP přihlášený od 2023-08-09 21:22:05, 21:23:14 udělal odchozí hovor 536909801. Volání zpátky 21:24:12 536909824 končí hláškou "volaný účastník není dostupný". V debug logu ACR je u druhého hovoru nějaká komunikace, přesto hovor odmítne. Když se přihlásím přes TLS, tak příchozí hovory fungujou (536910182)
xsouku04 píše: stř 09. srp 2023 15:53:49 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.
Udržet naživu TCP/TLS spojení je možná fajn, stejně to nikdy nebude 100% 24x7x365. Jako důležitější ale vidím, aby se ACR umělo vyrovnat s tím, že spojení upadne. Vč. toho, že upadne celé ACR - teď se telefon dostal pod 20% baterky a ACR sestřelil, i když má v nastavení povoleno neomezené využití baterie na pozadí. Aneb (libovolná Android) aplikace může být kdykoliv systémem sestřelena. A i potom by měly fungovat push zprávy na obnovu spojení pro příchozí hovor, pokud to má být "spolehlivé". Jednoduchý test je přihlásit, v seznamu aplikací zabít a zkusit příchozí hovor. To by mělo fungovat taky :)
Uživatelský avatar
xsouku04
Administrátor
Příspěvky: 8184
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno
Kontaktovat uživatele:

Re: Spolehlivý SIP klient pro Android s dobrou integrací

Příspěvek od xsouku04 »

alfi píše: stř 09. srp 2023 21:45:54 Dík za odezvu. Já myslím, že jsem to sepsal srozumitelně, ale zkusím to ještě jednou :)
Ano, zaškrtávátka volacích účtů se objevujou dvě. Čas od času, se objeví notifikace, že ten účet mám povolit. Pořád dokola, někdy už povolený je, jindy ne. Tj. problém je, že to povolení chce opakovaně i bez změny nastavení (a netuším, proč. Před chvílí znovu, zase po zabití ACR)
Mě ani kolegovi to nedělá. Když to otravuje vícekrát, zkusil bych SIP deaktiovat a pak aktivovat znovu. Doporučil bych ACR nezabíjet. Viz též níže. Musí jít přece nastavit životně důležité aplikace, co by se neměly zabíjet. Jinak by taky android mohl spáchat sebevraždu.
alfi píše: stř 09. srp 2023 21:45:54 Telefon je přes UDP přihlášený od 2023-08-09 21:22:05, 21:23:14 udělal odchozí hovor 536909801. Volání zpátky 21:24:12 536909824 končí hláškou "volaný účastník není dostupný". V debug logu ACR je u druhého hovoru nějaká komunikace, přesto hovor odmítne. Když se přihlásím přes TLS, tak příchozí hovory fungujou (536910182)
Je to tím, že máte u linky v nastavení na Odorik.cz vynucení SRTP. Když tedy není možné šifrovat zvuk, hovor selže. Šifrovat zvuk bez TLS nemá smysl, protože klíče pro zvuk jsou každému čitelné.
alfi píše: stř 09. srp 2023 21:45:54 Udržet naživu TCP/TLS spojení je možná fajn, stejně to nikdy nebude 100% 24x7x365. Jako důležitější ale vidím, aby se ACR umělo vyrovnat s tím, že spojení upadne. Vč. toho, že upadne celé ACR - teď se telefon dostal pod 20% baterky a ACR sestřelil, i když má v nastavení povoleno neomezené využití baterie na pozadí. Aneb (libovolná Android) aplikace může být kdykoliv systémem sestřelena. A i potom by měly fungovat push zprávy na obnovu spojení pro příchozí hovor, pokud to má být "spolehlivé". Jednoduchý test je přihlásit, v seznamu aplikací zabít a zkusit příchozí hovor. To by mělo fungovat taky :)
Problém není mezi android aplikací a serverem, ale mezi dvěma servery a to z toho důvodu, že to chceme udělat naprosto univerzálně, aby to fungovalo se všemi operátory a nejen s Odorik.cz. Mezi aplikací a serverem to funguje překvapivě dobře. Mezi dvěma servery může být TCP spojení otevřené klidně rok a tento fakt problém nezpůsobuje.
Když aplikaci vypnu (zavřu její okno), tak stále zvoní. Když ji ale zabiji (kliknu na vynutit ukončení), tak pak na mém telefonu nezvoní. To jsem nyní zkoušel. Zvoní běžné mobilní hovory, ale VoIP ne. Hledal jsem a našel, že je to prý normální, ale je možné, že o tom jestli bude aplikaci znovu spouštět nebo ne může rozhodnout konkrétní android. https://stackoverflow.com/questions/473 ... -is-killed Tedy lze doporučit nastavení, aby se aplikace sama spustila, a zakázat automatické zabíjení aplikace. Ta aplikace nic nedělá, jen čeká na push.
Odpovědět