SIP kliens vs. IPhone

Fórumok

Sziasztok!

A múltkori kérdésemre (Itt) jó megoldás született a fórum jóvoltából, így újra itt kérdezek.

A  probléma ugyanaz, IPhone telefonon futó Zoiper program ugyanúgy kilép (vagy az ios lövi ki), mint az Androidos párja. Viszont ezen a telefonon semmilyen hasonló címszót nem találtam, amit Androidon kerestem.

Mit kellene itt beállítanom, vagy mire keressek egyáltalán?

A kérdéses telefon: IPhone 6s (iOs ver. 14.4.1)

Gábor

Hozzászólások

Melyik app ez pontosan? Elsore azt mondanam, hogy ha a fejleszto jol irta meg es jol hasznalja az SDK-t, akkor mennie kellene, mert kimondottan VoIP alkalmazasokhoz nyujt tamogatast az SDK.

Ha errol az approl van szo, akkor belenezve az ipa-ba, majd abban az Info.plist-be, megtalalhato benne az SDK hasznalatara utalo minden jelzes ('UIBackgroundModes' ertekei kozott szerepel a 'voip'). Tehat elmeletben az alkalmzast a telefon boot utan elinditja, hogy vissza tudjon csatlakozni es a hatterben is eletben tartja, hogy a kapcsolatot fenn tudja tartani. Szoval, ha ez megsem megy, akkor lehet, hogy ez csak a fizetos verzioban megy, annak ellenere, hogy a leirasban mind a kettonel kiemeli a fejleszto, hogy "Zoiper works flawlessly in the background and is optimized to use as little battery as possible while ensuring the reliability of incoming calls."? Ahogy latom itt, elegge jo a reakciokepessege es a sebessege is a fejlesztoknek, ugyhogy mindenkeppen megerne felvenni veluk a kapcsolatot. 

Hát, nem biztos, hogy a programmal van a gond. Ugyanezen program Androidos verziója is ugyanezt csinálta, de Androidon meg tudtam találni azt a beállítást, hogy az oprendszer ne lője ki a memóriából "inaktivitás" miatt. Na, ezt a beállítást iO alatt nem találom.

Mivel a hibajelenség mindkét rendszer esetében ugyanaz, ezért gondolom, hogy ugyanaz a kiváltó ok is. Csak Androidnál megtaláltam, hol lehet ezt kikapcsolni, iOs-nál nem.

Gábor

Az a helyzet, h talán iOS 13 óta van egy olyan "feature", hogy a background-ba figyelő app-ok nem "ébrednek fel", ha bejövő csomag érkezne nekik - külső serverről.
Valamelyik VoIP kliens (talán eyebeam?) olyan workaround-ot használ erre, hogy a SIP üzeneteket proxyzza saját serverén keresztül, és ha bejövő hívásod van, akkor küld egy push üzenetet, aminek hatására "felébred" az applikáció (előtérbe hozza magát) és így már be tudja küldeni a saját szervere a bejövő hívást.
Mivel a külső server (proxy nélkül) nem tud push üzenetet küldeni, más megoldás nem nagyon van...
(nem is értem, h a) miért ilyen genyó az apple b) miért nem lehet validálni egy app-ot, h márpedig erre szüksége van, és NE legyen mindennél kikapcsolva)

iOS-nel szerencsere nincs ilyen kapcsolo. Az alkalmaasok csak akkor maradhatnak hatterben, ha hasznaljak az SDK idevago reszeit. Ha a fejleszto jol irta meg a szoftvert, es tenylegesen jol hasznalja az SDK lehetosegeit, akkor az appja eletben fog maradni es a rendszer es reboot utan el is fogja inditani. Ebbe te, mint felhasznalo nem tudsz beleszolni.

Nem hasznalok ilyen szolgaltatast. Technikailag mukodnie kellene. Az SDK azon reszet, hogy "VOIP" az app kiprobaltam. Tehat boot utan, az elso passcode feloldas utan elinditja a hatterben az appot, ami tudott http csomagokat kuldeni. Az app hatterben UDP csomagolat kuldozget es fogad, ez a resze is mukodik es local notificationt is ki tud rakni, ha arra utasitom. Mindezt tobb ora tavlatbol is. Tehat ez a resze technikailag rendben van.

Nem lehet, hogy valami mas kavar be? Pl mobilnetnel 10-20 percenkent kb mas IP cimrol erkezett be az UDP csomag (Telekom) vagy problema forras lehet a NAT mukodese/meglete is. 

iOS 13-ban en csak olyan valtozast tapasztaltam, hogy a rendszer szigorubb lett. Korabban ha nem implementaltad le a hatterben futast jol, de latszolag fel voltal ra keszulve (info.plist rendben volt), akkor addig nem irtotta ki a rendszer az appot, amig nem volt szuksege a foglalt eroforrasokra. Ezt a reszt rendberaktak es azota csak a normalisan megirt szoftverek maradnak a hatterben. Pl. ez legjobban az SSH klienseknel faj (ssj kliens szamara nincs hivatalos background mode), hogy ha nem trukkoznek lokacioval a hatterben maradashoz, akkor korabban akar 10-30 percig is eletben maradt a megnyitott SSH session, iOS 13 ota helyesen mukodik es kb az approl torteno levaltas utan par masodperccel megoli a rendszer az appot. Viszont a VOIP kliensek szamara van lehetoseg az SDK-ban arra, hogy jol mukodjenek.

Több is van, mindegyik hátránya, hogy eszméletlen módon merítik az akkut (egyszerűen a SIP keepalive-hoz nem alhatnak 'mélyálomban'). Kimenő hívásra jó akár a Zoiper is, ha jól emlékszem, a CSipSimple használható volt, de nagyon ette az akkut. Amit most használok, az a SessionTalk, és ezt is úgy, hogy van egy fizetős verziója (nem túl drága), ebben van olyan lehetőség, hogy a regisztrációt átadod egy proxynak, ami biztosítja a keepalive csomagokat, és amikor jön bejövő hívás, akkor egy push üzenettel felébreszti az alkalmazást, így nem fogy az akku üresen. A Zoiperben is van ilyen feature, de az havidíjas, a SessionTalk viszont egyszeri. Ezt használom jelenleg is, időnként szól, hogy valamiért kiesett a regisztrációból, ha ilyenkor belépek az alkalmazásba és elindítom ismét, akkor onnantól megint jó.

Sajnos ennél jobb megoldást IOS-re nem tudok.

Szerkesztve: 2021. 03. 20., szo – 13:37

bad post