User Tools

Site Tools


krakl.app

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
krakl.app [2021/01/08 10:03] – [Gespräch mit Sascha am 02.03.2020] kalaschnikowkrakl.app [2021/08/24 09:42] (current) – [Implementation of privacy policy (Datenschutzrichtlinien)] kalaschnikow
Line 1: Line 1:
 +====== Krakl.app ======
 +
 +http://krakl.app
 +
 +Ein Projekt von brandschmie.de.
 +
 +Eine Anwendung um Video-Konferenzen zu veranstalten. Die Smartphone-App wird zum Präsentieren von dem Inhalt des eigenen Smartphone-Bildschirms verwendet. 
 +
 +Der Start einer öffentlichen Beta ist für den 01.02.2021 geplant.
 +
 +[[Krakl.app Time tracking]]
 +
 +[[Krakl.app Vertrag mit Krakl GmbH]]
 +
 +===== Git =====
 +
 +We have two remotes in project:
 +
 +  * https://gitlab.com/krakl-app-v2/krakl-connect-android.git -> administered by Krakl (Sascha Frietsch) on Gitlab.com
 +  * http://gitlab.wialon-consulting.de:8080/krakl/krakl.app.git -> administered by me on my server
 +
 +===== Git for iOS =====
 +
 +  * https://gitlab.com/krakl-app-v2/krakl-connect-ios
 +===== Requirements =====
 +
 +[[Krakl.app Usage Scenario Description]]
 +
 +[[Krakl.app requirements for old iOS App]] (something like spec)
 +
 +Krakl meetings:\\ 
 +https://meeting.staging.krakl.app/launcher/meetings
 +
 +User: v.kalaschnikow@gmail.com / kraklYA...\\ 
 +A meeting should be created in Google calendar and (important) the **place** should contain the word "Krakl".
 +
 +Test Meeting (05.03.2021): https://meeting.beta.krakl.app/join/a3a48e98-a0f4-488c-ba62-a9ccd0ee5386/68e8878d-d168-428c-8789-98e66b84038e
 +
 +
 +A room for tests (iOS app):
 +
 +https://meeting.krakl-next.wngrstmhr.de/join/nnp51K/XoghcN/start\\ 
 +https://meeting.krakl-next.wngrstmhr.de/join/nnp51K/4FzWuV/start\\ 
 +https://meeting.krakl-next.wngrstmhr.de/join/nnp51K/3h5g6S/start\\ 
 +
 +Also:
 +
 +https://meeting.krakl-next.wngrstmhr.de/join/yW9IWH/bAJS4u\\ 
 +https://meeting.krakl-next.wngrstmhr.de/join/yW9IWH/BiPlwQ\\ 
 +https://meeting.krakl-next.wngrstmhr.de/join/yW9IWH/LLEZDS\\ 
 +
 +Also:
 +https://meeting.krakl-next.wngrstmhr.de/join/IKWUCk/v9dxkF
 +
 +===== Freelancers =====
 +
 +==== Projects ====
 +
 +https://www.fl.ru/projects/4402158/dorabotka-webrtc-prilojeniya-dlya-ios.html\\ 
 +https://freelance.ru/projects/prilozhenie-dlya-ios-na-tehnologii-webrtc-1206263.html\\ 
 +https://freelance.habr.com/tasks/303744\\ 
 +https://www.weblancer.net/projects/mobilynye-prilozheniya-28/dorabotka-webrtc-prilozheniya-dlya-ios-1044707/\\ 
 +https://kwork.ru/projects/791938\\ 
 +
 +
 +==== Assholes ====
 +http://moshenniki-na-avito.ru/uslugi-po-razblokirovki-icloud/\\ 
 +https://vk.com/topic-118712708_37456860?post=195
 +===== Version 1.0 ToDo =====
 +
 +==== Version 1.0 for Android ====
 +
 +  * **-** ConnectActivity (aka ConnectScreenActivity)
 +    * **-** Implement landscape
 +    * **+** Add button "Start / Stop transmission"
 +      * **+** Add button
 +      * **+** Implement status ("Connected / Not connected")
 +      * **+** Bind status to the button (Connected = "Übertragung stoppen")
 +  * **-** QrCodeScannerActivity (aka KraklScannerActivity)
 +    * **+** Implement portrait
 +    * **+** After reading of Code go back to the ConnectActivity (NOT to the "RoomActivity")
 +    * **-** Implement landscape
 +      * **-** Test whether rotation works (whether library works)
 +      * **-** Implement animation of buttons
 +  * **-** SettingsActivity
 +    * **-** Implement activity
 +    * **-** Implement button (or menu item?) on ConnectActivity to start SettingsActivity
 +  * **-** KraklBackgroundService
 +    * **-** Check whether I use the proper service (local + foreground)
 +    * **-** Make Notification
 +      * **-** Make Text
 +      * **-** Make "Stop" Action
 +  * **-** Communication
 +    * **-** Quality
 +      * **-** Resolution / fps
 +  * **-** Misc
 +
 +==== Version 1.0 for iOS ====
 +  * **-** [[https://www.fl.ru/projects/4355444/webrtc-prilojenie-pod-ios.html?utm_source=newsletter4&utm_medium=uvedomlenie&utm_campaign=rabotodatel|Projekt auf fl.ru]] [[https://www.fl.ru/tu/order/1272242/|Bestellung]]
 +
 +===== Testumgebung =====
 +
 +==== For me ====
 +
 +Room Id: IKWUCk\\ 
 +User 1: v9dxkF -> https://meeting.krakl-next.wngrstmhr.de/join/IKWUCk/v9dxkF\\ 
 +User 2: d0Pkqd
 +
 +Siehe auch Mails von Sascha Frietsch mit dem Titel "Testumgebung".
 +
 +==== For iOS developer ====
 +
 +https://meeting.krakl-next.wngrstmhr.de/join/nnp51K/XoghcN/start\\ 
 +https://meeting.krakl-next.wngrstmhr.de/join/nnp51K/4FzWuV/start\\ 
 +https://meeting.krakl-next.wngrstmhr.de/join/nnp51K/3h5g6S/start\\ 
 +
 +Siehe auch Mail von Sascha Frietsch mit dem Titel "iOS Links".
 +
 +
 +==== Mediasoup demo ====
 +
 +Testumgebung von mediasoup: https://v3demo.mediasoup.org/?roomId=9eyb2unq
 +
 +
 +==== Old Krakl ====
 +The old, Twilio driven, Krakl installation:
 +
 +Boss-User: https://meeting.krakl.app/start/28f81978-a7c5-45ba-bdfb-ffa49d25f382/fa64abe7-4469-4d18-bae1-bbe2ad1c3ac6\\ 
 +Gast: https://meeting.krakl.app/start/28f81978-a7c5-45ba-bdfb-ffa49d25f382/1b64abe7-4469-4d18-bae1-bbe2ad1c3ac6
 +
 +Der Qr-Code kommt bei Klick auf das Cog-Icon (oben rechts)
 +
 +===== Useful Resources =====
 +
 +==== WebRTC ====
 +https://mediasoup.org/
 +
 +[[https://chromium.googlesource.com/external/webrtc/]] - WebRTC Git repo
 +
 +[[https://github.com/react-native-webrtc/react-native-webrtc|react-native-webrtc Repo]] [[https://react-native-webrtc.discourse.group/|react-native-webrtc Discourse Community]]
 +
 +[[https://stackoverflow.com/questions/63137545/webrtc-how-to-enable-hardware-acceleration-for-the-video-encoder/65670711#65670711|WebRTC: How to enable hardware acceleration for the video encoder]] - my question about WebRTC performance on some Android devices
 +==== Screen Capture on Android ====
 +Using MediaProjection API (since 5.1 / Lollipop).
 +
 +[[https://github.com/android/media-samples/tree/master/ScreenCapture|ScreenCapture example]] by Google
 +
 +
 +==== Streaming on Android ====
 +It can be performed with the help of 
 +  * react-native-webrtc android client. (do we want it?)
 +  * [[https://github.com/haiyangwu/mediasoup-client-android|mediasoup-client-android library]] (does it work?)
 +    * [[https://github.com/haiyangwu/mediasoup-demo-android|mediasoup-demo-android client]] by haiyangwu (not yet complete?) -> test it first, because it has newer commits
 +    * [[https://github.com/ethand91/mediasoup-android-sample|mediasoup-android-sample client]] by ethand91 (more complete?)
 +
 +
 +Can be helpful: https://mediasoup.discourse.group/t/android-native-client-support/276/45
 +
 +
 +Using ExoPlayer?
 +[[https://www.youtube.com/watch?v=vOzOZ7hRr00|Streaming media with ExoPlayer]] - video from Google I/O 2016
 +
 +==== STUN/TURN and ICE ====
 +=== STUN (Session Traversal Utilities for NAT) ===
 +STUN - ein einfaches Netzwerkprotokoll, um das Vorhandensein und die Art von Firewalls und NAT-Routernzu erkennen und direkte Verbindungen zwischen Geräten, welche sich hinter einer NAT-Firewall befinden, aufzubauen.
 +
 +=== TURN (Traversal Using Relays around NAT) ===
 +TURN - in Netzwerkprotokoll , welches im Gegensatz zu STUN sich eines externen, im öffentlichen Internet befindlichen Relay-Server bedient um so eine Verbindung zwischen Clients mit einem direkten Kommunikationskanal aufzubauen.
 +
 +=== ICE (Interactive Connectivity Establishment) ===
 +ICE - eine Methode zur Überwindung von Network Address-Translation (NAT) für das Session Initiation Protocol (SIP). ICE ist keine neues Protokoll, sondern verwendet bereits existierende Protokolle, wie z.B. STUN, TURN, SIP, SDP, RSIP etc.
 +
 +
 +
 +=== Resources ===
 +  * [[https://anyconnect.com/stun-turn-ice/|STUN, TURN and ICE]] - very good (short) explanation by AnyConnect (STUN-TURN-ICE solution provider) with animations etc.
 +  * ICE
 +    * [[https://de.wikipedia.org/wiki/Interactive_Connectivity_Establishment|German Wikipedia article about ICE]]
 +  * STUN
 +    * [[https://de.wikipedia.org/wiki/Session_Traversal_Utilities_for_NAT|German Wikipedia article about STUN]]
 +  * TURN
 +    * [[https://ru.wikipedia.org/wiki/Traversal_Using_Relay_NAT|Russian Wikipedia article about TURN]]
 +
 +
 +==== Implementation of privacy policy (Datenschutzrichtlinien) ====
 +
 +
 +
 +At the moment we have following texts:
 +
 +At first time:
 +
 +//Bitte bestätigen Sie unsere Datenschutzbestimmungen: <a href="%1$s">%2$s</a>.//
 +
 +and if the user receives new version of privacy policy:
 +
 +//%1$s<br/><br/>Bitte bestätigen Sie Version %2$s unserer Datenschutzbestimmungen, die seit dem %3$s gelten: <a href="%4$s">%5$s</a>.//
 +
 +Information about API endpoint is in the mail from Sascha "API-Endpunkt Datenschutz" from 25.01.2021
 +==== Maybe can be helpful ====
 +
 +  * https://stackoverflow.com/questions/27013621/android-screen-sharing-using-webrtc -> [[https://github.com/Jeffiano/ScreenShareRTC|Corresponding Github repo]]
 +  * [[https://stackoverflow.com/questions/14336338/screen-video-record-of-current-activity-android/57533525|Screen Video Record of Current Activity Android]]
 +  * [[https://medium.com/jamesob-com/recording-your-android-screen-7e0e75aae260|MediaProjection: How to record your Android device]]
 +  * [[https://medium.com/bolt-labs/how-to-programmatically-capture-screen-on-android-a-comprehensive-guide-f500c95e455a|How to programmatically capture screen on Android: a comprehensive guide]]
 +  * https://stackoverflow.com/questions/13424149/capture-android-screen-and-create-video-programmatically
 +  * https://github.com/renyuzhuo/WebRTC-Android-Learn
 +===== Competition =====
 +
 +  * [[https://emergencyeye.de/de/|EmergencyEye]] ([[https://www.heise.de/newsticker/meldung/EmergencyEye-Videochat-System-soll-Arztpraxen-entlasten-4689756.html|kleiner Artikel darüber auf heise]])
 +  * [[https://signup.lifesize.com/|Lifesize]]
 +  * [[https://pronto.io/|Pronto]]
 +
 +Etwas ähnliches, aber nicht ganz:
 +  * [[http://deskreen.com/|Deskreen]] - Browser als zweiter Bildschirm. Erlaubt dem Benutzer Präsentationen im Browserfenster (und dann auf dem zweiten Gerät, wie z.B. Smartphone oder Tablet) laufen lassen.
 +
 +===== Termine =====
 +
 +==== Termin am 07.02.2020 ====
 +
 +Mit Sven.
 +
 +  * Code scannen
 +  * Bildschirm übertragen
 +  * Für iOS gibt es schon eine App
 +  * QR Code Scan
 +  * WebRTC
 +
 +==== Termin am 28.02.2020 ====
 +
 +Teilnehmer: Sven, Manuel, Sascha und ich.
 +
 +  * Momentan gibt es eine App für iOS, die auf Basis von dem SDK der Firma [[https://www.twilio.com/|twilio]]. Da die Infrastruktur von twilio (viel) Geld kostet, ist geplant auf die Infrastruktur von dem Open Source Projekt [[https://mediasoup.org/|mediasoup]] umzusteigen. 
 +  * Die App auf Basis von twilio hat 400$ gekostet.
 +  * Geplant sind 3 Versionen des Produktes:
 +    * Starter (kostenlos)
 +    * ... (kleines Geld)
 +    * Business (Abo) 
 +  * Die Versicherungsfirma, welche die App verwenden soll hat ca. 14 Tausend Versicherungsleute. Wenn 1% davon das Paket "Business" wählt kann man gut davon leben.
 +
 +==== Gespräch mit Sascha am 02.03.2020 ====
 +
 +  * React-Native-WebRTC ist eine Bibliothek, die zum Entwickeln von clientseitigen Anwendungen verwendet werden kann. Muss aber nicht, da z.B. mediasoup auch (native) Bibliotheken für iOS und Android anbietet.
 +  * Im ersten Schritt ist die Komponente zu entwickeln, die den Bildschirminhalt abgreifen kann und ihn weitergeben kann. D.h. erstmal ist es unwichtig welche clientseitige Bibliothek verwendet wird. Es ist sogar wahrscheinlich günstiger, die von mediasoup zu nehmen, da ich mich dann ins React Native nicht einarbeiten muss.
 +  * Von der Zeit her ist es geplant Mitte des Jahres etwas anbieten zu können. Die App muss es nicht unbedingt sein, da sie zum größten (kostenpflichtigen) Paket gehört. Andererseits ist es schon wichtig, dass man etwas hat, da man gleich etwas verkaufen kann. Und das bringt etwas mehr Motivation.
 +  * Sascha setzt diese Woche einen Test-Zugang für mich auf. So dass ich eine Gegestelle habe mit der ich testen kann.
 +
 +==== Termin am 08.01.2021 ====
 +
 +  * Krakl for iOS can be tested (I'm waiting for invitation from Sven)
 +  * Beta-environment is made ready by Sascha
 +  * Verkaufsstart geplant für 1 April 2021
 +  * Android App should be changed
 +    * Debug messages should be deleted (like "Connected to...")
 +    * Datenschutz-Erklärung should be built in 
 +    * I will do both as long as Sven will send me the text of "Datenschutz-Erklärung"
 +
 +==== Termin am 05.02.2021 ====
 +
 +  * Krakl for iOS will be published in TestFlight (I was invited by Robin)
 +  * The texts for privacy policy may be will be adjusted by lawyer, but are OK at the moment
 +  * I will publish the new version (with privacy policy) on the beta channel
 +  * The appointment with the lawyer is next week