Warum ist iOS13 ein Rückschritt?
Warum ist iOS13 ein Rückschritt für unsere (und wirklich jede) VoIP-App?
Ein VoIP-Gerät, wie z. B. ein Yealink t41s, unterhält eine offene Verbindung (über REGISTER-Anfragen) mit einer VoIP-Plattform. Sobald dann ein Anruf getätigt wird, wissen die beiden sofort, wo sie einander finden können. Mobile Anwendungen können keine offene Verbindung mit unserer VoIP-Plattform aufrechterhalten, sie kommunizieren über Push-Benachrichtigungen. Du kannst dir das als Zwischenschritt zwischen der VoIP-Plattform und unserer App vorstellen.
Ein Telefongerät registriert sich bei uns, damit wir wissen, wie und wo es zu erreichen ist. Denke an die IP-Adresse und den Port, die Art der Kommunikation UDP/TCP/WS/TLS und verschlüsselt oder nicht. Wenn ein Anruf für dieses Gerät eingeht, können wir den Anruf an dieses Gerät weiterleiten.
Bei einem mobilen Gerät ist es nicht sinnvoll, diese Funktion ständig offen zu halten, da das Telefon in kürzester Zeit leer sein wird. Durch die Verwendung von Push-Nachrichten können wir die App aufwecken und so bei einem Anruf aktivieren, so dass die App nur bei Bedarf Energie verbraucht.
Alle Anrufe werden auf die folgende Weise aufgebaut:
Anruf des Anrufers -> VoIP-Plattform (Voys) -> Apple/Google Push Notification Service -> Gerät -> Voys App.
Seit iOS13 hat Apple eine große Änderung an seinem Apple Push Notification Service vorgenommen. Da PushVoIP-Benachrichtigungen für Nicht-VoIP-Zwecke missbraucht wurden, hat Apple den Dienst komplett überarbeitet. Das führt dazu, dass wir jetzt Dinge tun müssen, die keinen Sinn machen.
Bei einer Push-Benachrichtigung müssen wir die App klingeln lassen und eine Benachrichtigung über einen eingehenden Anruf ausgeben, obwohl wir nicht wissen, ob es eine gute Internetverbindung gibt, über die wir einen Anruf tätigen können. Dann müssen wir die App auf unserer Plattform registrieren lassen, damit wir einen Anruf an die App senden können. Das ist eine völlig verkehrte Welt, denn Sie wollen erst dann einen Übergangston senden, wenn sich das Gerät registrieren konnte. Aber das ist es, was Apple verlangt. In dem Moment, in dem du die Antworttaste drückst, müssen wir einen Zähler laufen lassen, dass dieser Anruf angenommen und beantwortet wurde, aber es kann sein, dass ein Kollege dir gerade zuvorgekommen ist oder deine (Internet-)Verbindung ein Problem hat und diese Nachricht uns nicht erreicht und somit kein Anruf aufgebaut werden kann. Auch hier müssen wir also so tun, als gäbe es ein Gespräch, obwohl es noch nicht zustande gekommen ist. Auch dies mag den Eindruck erwecken, dass die App nicht richtig funktioniert, aber das liegt daran, dass wir dies nach den Apple-Regeln tun müssen, die eigentlich überhaupt nicht gut durchdacht sind.
Trotz der Tatsache, dass wir jetzt mit Version 7 eine bessere App haben, mag es den Anschein haben, dass diese Version schlechter ist als die vorherige, aber Version 7 wurde gerade um die Einführung von iOS 13 herum veröffentlicht und daher scheint die App keine Verbesserung zu sein.
Dies hat dazu geführt, dass die Kommunikation nicht mehr so einwandfrei funktioniert.
Tatsächlich erfolgt die Benachrichtigung des Nutzers jetzt sofort und bei jeder eingehenden Benachrichtigung. Das hat zur Folge, dass das Telefon keine VoIP-Benachrichtigungen mehr erhält. Wenn unser System also weiß, dass der Anruf bereits von einem Kollegen entgegengenommen wurde oder dass der Anrufer bereits aufgelegt hat, wird Ihr iPhone trotzdem auslösen. Außerdem können keine Prüfungen durchgeführt werden, bevor ein Anruf an deine App weitergeleitet wird. Denke zum Beispiel an die Überprüfung, ob die Netzverbindung stark genug ist. Der Nutzer sollte immer gestört werden. Schließlich ist eine Push-Benachrichtigung kein Anruf. Ein tatsächlicher SIP-Anruf muss erst noch aufgebaut werden. Apple verlangt, dass die Benutzerschnittstelle sofort hergestellt wird. Bei all diesen Problemen geht das iPhone also einmal aus, während überhaupt keine Verbindung aufgebaut werden kann.
Wir haben es geschafft, einige Korrekturen zu implementieren, damit die App immer noch optimal funktioniert, aber nach mehreren Monaten Arbeit haben wir jetzt eine schlechtere App als vor iOS 13. Das liegt daran, dass sich die App immer noch ausschalten kann, während Sie gar keinen Anruf mehr erhalten, oder dass die Aufzeichnung manchmal nicht funktioniert, weil es bereits keinen Anruf mehr gibt.
Wie kann ich es trotzdem schaffen? Versuche es weiter. Wir empfehlen Folgendes:
Stelle sicher, dass dein iPhone die neueste Version hat. Installiere die App neu. Versuche erneut, dich auszuwählen. Nicht erfolgreich? Melde dich einmal bei der App ab und dann wieder an. Versuche erneut anzurufen. Lasse einen Kollegen einmal bei dir anrufen. Funktioniert es jetzt? Schalte dein iPhone aus und wieder ein. Versuche erneut anzurufen oder lasse dich von einem Kollegen anrufen. Immer noch kein Erfolg? Gehe die Schritte zu einem späteren Zeitpunkt noch einmal durch. Es kann sogar sein, dass die App zu einem späteren Zeitpunkt plötzlich funktioniert.