Náhrada za nativního android SIP klienta

Programy, které slouží k volání přes internet z počítače nebo chytrých mobilů.
jadu
Příspěvky: 153
Registrován: pon 09. úno 2015 13:35:30

Re: Náhrada za nativního android SIP klienta

Příspěvek od jadu »

ACR je pro mne příliš integrovaný, nepotřebuji náhradu standardního dialeru, stačí mi stand-alone aplikace spouštěná dle potřeby. Požívám doposud GS Wave, ale už není pro nové instalace na play, takže končí. Hledal jsem nějakou náhradu a mám nyní Linphone. Zpočátku to byl boj. Sice to mělo vysokou kvalitu hovoru a malý datový tok, ale co s tím, když aplikace nezvládala příchozí hovory a usínala; nikde nešlo nastavit keep alive pakety. Usnutí bylo tak hluboké, že se ani včas nepřeregistrovala, byť jsem to na zkoušku nastavil na 60s. Zvládla to 2x a pak byl konec. Pročetl jsem si pár diskusí na GitHubu a tam vývojář doporučoval nechat default hodnotu registrace na jeden rok a zapnout push přes proxy. V nastavení se uvádí, že registrace proxy serveru se nedá odregistrovat, tak jsem to v prvé fázi raději nezapínal. Dal jsem tomu poslední šanci s tím, že když to nepomůže, tak to stejně půjde pryč a push zapnul. A k mé velké radosti to pomohlo. Nastavil jsem registraci na 3 hodiny a začal zkoušet. Hovor po 30 minutách nepoužívání telefonu byl přijat. Změnil jsem Wifi na LTE (u Odorika stále registrace na původní IP) a hovor byl zase přijat. Zavřel jsem aplikaci křížkem a hovor ji obnovil a zvonil. Teprve při Vynutit ukončení přes Aplikace to přestalo zvonit. Další možnost jak ukončit příjem hovorů je klasiky přes menu. Registrace sice u Odorika zůstane, ale nic nezvoní. Nevím, kdo provádí to push, ale zatím ho provádí skvěle, zvoní to ihned. Jako proxy server si tam program sám nastavil sip:sip.odorik.cz;transport=udp
Uživatelský avatar
xsouku04
Administrátor
Příspěvky: 8160
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno
Kontaktovat uživatele:

Re: Náhrada za nativního android SIP klienta

Příspěvek od xsouku04 »

Prosím, jak se push na linphone zapíná? Chci to otestovat. Ale samotná volba "povolit push notifikace" nic nezměnila. Pořád se to hlásí z mé domácí ip adresy. Jen to přidá push údaje do hlavičky contact.
Jaký push proxy používáte? Nebo používáte ten náš a ono to náhodou funguje? To asi ne.
Uživatelský avatar
xsouku04
Administrátor
Příspěvky: 8160
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno
Kontaktovat uživatele:

Re: Náhrada za nativního android SIP klienta

Příspěvek od xsouku04 »

Tak linphone se z naší sip outbound push proxy zaregistruje, ale příchozí hovory nefungují. Logicky totiž nebyl pro linphone dělán, asi voláme špatné push url.
jadu
Příspěvky: 153
Registrován: pon 09. úno 2015 13:35:30

Re: Náhrada za nativního android SIP klienta

Příspěvek od jadu »

Jen jsem to pro každou linku v nastavení zapnul. Registrace je ze skutečné adresy a ano, chodí to v hlavičce. Předpokládám (a z hlavičky odvozuji), že registrace push je u linphone.org na jejich FlexiSIP a že Odorik jim řekne přes uvedené uri, že mají push provést, což oni provedu přes Firebird Cloud Messaging, protože nepředpokládám, že by push poslal Odorik; ostatně takto je to popsané třeba v dokumentu https://datatracker.ietf.org/doc/rfc8599/. Zjistil jsem, že je potřeba mít opravdu dlouhou registraci, protože při krátké to po nějaké době Linphone nestihne přeregistrovat a Odorik zařízení prostě odhlásí a nepokusí se na něj zavolat, což je škoda, protože kdyby zavolal, tedy poslal požadavek na push, tak by z FCM byl Linphone probuzený ba dokonce i spuštěný (tedy přesněji jeho core, který by zařídil zbytek) a on by se přeregistroval. Bylo by fajn, kdyby se buď dala nastavit delší registrace než 2 hodiny nebo by to Odorik při push zařízení zkusil i v případě, že by registrace vyexspirovala (nikoliv při odregistrování, což program dělá, když se dá Ukončit).

Je zajímavé, že mně to funguje na 99% a Vám ne. Žádné speciální nastavování nemám, jen z krátké praxe vím, že je občas problém při přechodu mezi LTE, např. použitím metra. V takovém případě je možné provést ruční přeregistraci kliknutím na zelený puntík nahoře vedle textu Připojeno a Linphone všechny účty přeregistruje. Ještě jsem v nastavení změnil Přenos z UDP na TLS, neb to vývojáři doporučují, ale spíše kvůli ALG.
jadu
Příspěvky: 153
Registrován: pon 09. úno 2015 13:35:30

Re: Náhrada za nativního android SIP klienta

Příspěvek od jadu »

Ještě mne napadlo - máte v Nastavení - Pokročilé zapnuté Režim na pozadí? Pokud je zapnuté push, tak to na něj čeká, v opačném případě posílá keep alive. Pokud to zapnuté není, nelze v podstatě přijmout hovor.
Uživatelský avatar
xsouku04
Administrátor
Příspěvky: 8160
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno
Kontaktovat uživatele:

Re: Náhrada za nativního android SIP klienta

Příspěvek od xsouku04 »

Pokud je v poslední registraci vidět vaše dkutečná ip adresa a ne ip adres push serveru (SIP proxy), push server se nepoužívá.
obrazek.png
obrazek.png (53.07 KiB) Zobrazeno 947 x
obrazek.png
obrazek.png (161.93 KiB) Zobrazeno 947 x
Push server by se totiž neměl jak dozvědět o tom, že má provést push notifikaci. Příchozí hovory musí jít přes něj. A pokud tam není jeho ip, přes něj nejdou.
Působí to na mne tak trochu jako dodělej si sám. (to znamená nainstalují si polofunkční push server přímo od linphone, nebo si push server vytvoř sám, potřebné údaje vytvoření push jsou v údaji Contact: jak je vidět na obrázku. Jsou to ty parametry pn-prid a další.

Pokud aplikace linphone neusíná, může to docela dobře fungovat i bez push serveru. Zvotí to pak samozřejmě hned.
jadu
Příspěvky: 153
Registrován: pon 09. úno 2015 13:35:30

Re: Náhrada za nativního android SIP klienta

Příspěvek od jadu »

Aplikace usínala a už jsem ji chtěl odinstalovat, ale po zapnutí push vše začalo chodit. Principiálně mi je vlastně jedno, proč to chodí, hlavně, že to chodí. Ale jestliže neposílá aplikace keep alive pakety, jak to, že T-mobile UDP neuzavře ? Na WiFi to chápu, tam si to řídím sám, ale i tak tam mám jen hodinu. Na LTE mi to před push nastavením nevydrželo ani tři minuty. Před zapnutím push byl také pozorovatelný vliv na baterku, po zapnutí push je nezaznamenatelný, pokud je telefon jen na příjmu a netelefonuji. Skoro si říkám - neposílá přeci jen Odorik na linphone.org požadavek na push? Proč by jinak zapnutí této vlastnosti mělo tak dramatický dopad na fungování aplikace? Vždyť by jí to mělo naprosto vyřadit z provozu, protože by čekala na push, který nikdy nepřijde. A pokud Odorik neposílá push, neuvažujete, že by začal? Když už to máte odzkoušené pro jinou aplikaci...
Uživatelský avatar
xsouku04
Administrátor
Příspěvky: 8160
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno
Kontaktovat uživatele:

Re: Náhrada za nativního android SIP klienta

Příspěvek od xsouku04 »

Našel jsem si vás podle emailu. Je tam Vodafone adresa, tedy žádný push server. Používáte TLS což je TCP + šifrování. TCP nepotřebuje keep alive pro udržení spojení. Keep alive může probíhat na úrovní TCP spojení, což nejspíš nastavili vývojáři Linphone rozumně. Navíc, když se TCP rozpadne, telefon se to dozví a může znovu zaregistrovat, proto mohou příchozí hovory fungovat docela dobře i bez PUSH. TCP/TLS je určitě dobrá volba, pokud není push. TCP jsem testoval na ACR phone, proto jsem si všiml toho chování.

Nerozumím tomu, proč android aplikace neprobudí, jakmile něco přijde na jejím TCP spojení. Možná probudí a právě proto to funguje. Pak tedy nechápu, na co ten push.

Samotné zapnutí push u Linphone udělá jen to, že Contact hlavičky přidá další dlouhé údaje.

Když je příchozí hovor, náš server pošle hovor na otevřené TCP spojení.
jadu
Příspěvky: 153
Registrován: pon 09. úno 2015 13:35:30

Re: Náhrada za nativního android SIP klienta

Příspěvek od jadu »

Teď už jsem doma, takže na Vodafone, dříve UPC. Přes den na LTE. TLS jsem zapnul před dvěma dny, protože to vývojáři Linphone doporučují, do té doby jsem byl na UDP a chodilo to stejně dobře. Před zapnutím push jsem laboroval s UDP i TCP a nechodilo to na LTE ani v jedné variantě; na WiFi to bylo o fous lepší, ale jen o maličký. Do cca 20 minut to umřelo také.
jadu
Příspěvky: 153
Registrován: pon 09. úno 2015 13:35:30

Re: Náhrada za nativního android SIP klienta

Příspěvek od jadu »

A neuvažujete push notifikace posílat i pro Linphone?
Odpovědět