À propos du projet
Linphone est un softphone open source pour les appels voix et vidéo sur IP et la messagerie instantanée. Il est entièrement basé sur SIP, couvrant les fonctionnalités d'appel, de présence et de messagerie instantanée. Ce dépôt est le miroir Linphone.org de linphone-android ; l'emplacement de développement canonique est l'instance GitLab de Belledonne Communications.
L'application est disponible sur Google Play et F-Droid, et des APK signés avec la clé du projet peuvent être téléchargés depuis le site web de Linphone. La version 6.0.0 est une réécriture complète conçue avec des experts UX/UI, apportant une meilleure fluidité, une véritable prise en charge multi-comptes et la vidéo asymétrique dans les appels. Elle nécessite Android 9.0 ou une version ultérieure. Un fichier CHANGELOG.md liste les changements et les nouvelles fonctionnalités.
La licence est double : GNU/GPLv3 pour un usage libre et open source, ou une licence propriétaire payante pour les applications à code fermé, Belledonne Communications gérant les questions de coût et de service. Les liens de documentation couvrent les fonctionnalités prises en charge et les RFC, le wiki public, et des tutoriels Kotlin pour Android.
Compilation : avec Android Studio, ouvrez le projet, attendez la synchronisation Gradle, puis compilez ou installez ; la bibliothèque linphone est récupérée depuis le dépôt Maven du projet sous forme d'AAR. Sans Android Studio, utilisez ./gradlew assembleDebug ou assembleRelease, puis installDebug ou installRelease. Les APK se trouvent dans app/build/outputs/apk/debug/ et app/build/outputs/apk/release/. Pour un AppBundle de release, utilisez la cible releaseAppBundle, et assurez-vous qu'un NDK est installé avec ANDROID_NDK_HOME défini afin que les symboles des bibliothèques natives puissent être inclus pour le Play Store.
La compilation d'un SDK local implique de cloner linphone-sdk de manière récursive depuis GitLab, de suivre son README pour compiler, d'ajouter le chemin absolu de compilation du SDK comme LinphoneSdkBuildDir dans gradle.properties sous GRADLE_USER_HOME, et de recompiler l'application. Le débogage natif utilise LLDB depuis Android Studio SDK Tools, en sélectionnant Dual ou Native dans la configuration du débogueur, en ajoutant le chemin vers les bibliothèques de débogage de linphone-sdk, en définissant des points d'arrêt dans les fichiers natifs, et en utilisant l'AAR de débogage dans app/build.gradle.
Les problèmes connus incluent une erreur de ressource AAPT pour linphone_logo_tinted, résolue en supprimant app/src/main/res/xml/contacts.xml et en recompilant ; un plantage de libc++_shared.so au démarrage, résolu en nettoyant le projet et en vérifiant que le SDK a été compilé pour la bonne architecture CPU via le paramètre cmake LINPHONESDK_ANDROID_ARCHS ; et les notifications push qui ne fonctionnent pas lorsque l'application a été démarrée par Android Studio après une installation, résolu en supprimant l'application des activités récentes et en la relançant depuis l'icône du lanceur.
Dépannage : les problèmes de comportement doivent être signalés sur le dépôt GitHub en utilisant le modèle avec les journaux de bibliothèque correspondants. Depuis la version 6.0.0, les journaux sont toujours activés et stockés localement, et peuvent être effacés ou téléchargés en toute sécurité via Aide puis Dépannage. Pour les plantages natifs, les traces de pile symbolisées nécessitent des bibliothèques de débogage, obtenables en compilant le SDK localement ou en téléchargeant l'archive libs-debug correspondant à la version du SDK depuis le dépôt Maven. L'outil ndk-stack, et éventuellement adb logcat, sont nécessaires ; l'architecture des bibliothèques doit être connue. Des commandes sont fournies pour symboliser une trace de pile depuis un appareil connecté, avec ou sans connaître l'architecture CPU, et le NDK r29 permet d'utiliser directement le libs-debug.zip.
Les noms de paquets personnalisés sont définis en modifiant la variable packageName dans app/build.gradle.kts, avec manifestPlaceholders l'appliquant partout. Un indicateur useDifferentPackageNameForDebugBuild peut restaurer le paquet org.linphone.debug pour les compilations de débogage. Un échec processDebugGoogleServices concernant l'absence de client correspondant signifie que app/google-services.json doit être remplacé par un fichier correspondant au nom de paquet choisi, ou supprimé si Firebase Cloud Messaging et Crashlytics ne sont pas utilisés. Firebase est le seul chemin officiel de notifications push depuis la dépréciation de Google Cloud Messaging ; le projet archive son propre google-services.json afin que les compilations puissent toujours recevoir les notifications push du service gratuit sip.linphone.org, et sa suppression désactive les notifications push. Un serveur push personnalisé nécessite le remplacement de ce fichier.
Les traductions sont passées de Transifex à une instance Weblate auto-hébergée ; les traductions précédentes n'ont pas pu être réutilisées après la réécriture, les contributions sont donc les bienvenues. Les contributions nécessitent des correctifs contre les dernières sources git et un Contrat de Contributeur complété envoyé par courriel avec le lien de la pull request, accordant au projet l'exercice paisible des droits sur le code source tandis que le contributeur conserve les droits sur sa contribution.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.