Sobre o projeto
Linphone é um softphone de código aberto para chamadas de voz e vídeo sobre IP e mensagens instantâneas. É totalmente baseado em SIP, cobrindo recursos de chamada, presença e mensagens instantâneas. Este repositório é o espelho do Linphone.org do linphone-android; o local canônico de desenvolvimento é a instância GitLab da Belledonne Communications.
O aplicativo está disponível no Google Play e no F-Droid, e APKs assinados com a chave do projeto podem ser baixados do site do Linphone. A versão 6.0.0 é uma reescrita completa projetada com especialistas em UX/UI, trazendo maior fluidez, suporte real a múltiplas contas e vídeo assimétrico em chamadas. Requer Android 9.0 ou mais recente. Um arquivo CHANGELOG.md lista alterações e novos recursos.
O licenciamento é duplo: GNU/GPLv3 para uso livre de código aberto, ou uma licença proprietária paga para aplicações de código fechado, com a Belledonne Communications tratando de questões de custo e serviço. Os links de documentação cobrem recursos suportados e RFCs, a wiki pública e tutoriais Kotlin para Android.
Compilação: com o Android Studio, abra o projeto, aguarde a sincronização do Gradle e então compile ou instale; a biblioteca linphone é obtida do repositório Maven do projeto como um AAR. Sem o Android Studio, use ./gradlew assembleDebug ou assembleRelease, depois installDebug ou installRelease. Os APKs ficam em app/build/outputs/apk/debug/ e app/build/outputs/apk/release/. Para um AppBundle de release use o alvo releaseAppBundle, e garanta que um NDK esteja instalado com ANDROID_NDK_HOME definido para que símbolos de bibliotecas nativas possam ser incluídos para a Play Store.
Compilar um SDK local envolve clonar o linphone-sdk recursivamente do GitLab, seguir seu README para compilar, adicionar o caminho absoluto de compilação do SDK como LinphoneSdkBuildDir em gradle.properties sob GRADLE_USER_HOME, e recompilar o aplicativo. A depuração nativa usa LLDB das Ferramentas do SDK do Android Studio, selecionando Dual ou Native na configuração do depurador, adicionando o caminho para as bibliotecas de depuração do linphone-sdk, definindo pontos de interrupção em arquivos nativos e usando o AAR de depuração em app/build.gradle.
Problemas conhecidos incluem um erro de recurso AAPT para linphone_logo_tinted, resolvido excluindo app/src/main/res/xml/contacts.xml e recompilando; um travamento de libc++_shared.so na inicialização, resolvido limpando o projeto e verificando se o SDK foi compilado para a arquitetura de CPU correta via o parâmetro cmake LINPHONESDK_ANDROID_ARCHS; e notificações push que não funcionam quando o aplicativo foi iniciado pelo Android Studio após uma instalação, resolvido removendo o aplicativo das atividades recentes e reiniciando pelo ícone do launcher.
Solução de problemas: problemas de comportamento devem ser relatados no repositório GitHub usando o modelo com logs da biblioteca correspondentes. Desde a versão 6.0.0, os logs estão sempre habilitados e armazenados localmente, e podem ser limpos ou enviados com segurança via Ajuda e depois Solução de problemas. Para travamentos nativos, rastreamentos de pilha simbolizados exigem bibliotecas de depuração, obteníveis compilando o SDK localmente ou baixando o arquivo libs-debug correspondente à versão do SDK do repositório Maven. A ferramenta ndk-stack, e possivelmente adb logcat, são necessárias; a arquitetura das bibliotecas deve ser conhecida. Comandos são fornecidos para simbolizar um rastreamento de pilha de um dispositivo conectado, com ou sem conhecer a arquitetura da CPU, e o NDK r29 permite usar o libs-debug.zip diretamente.
Nomes de pacote personalizados são definidos editando a variável packageName em app/build.gradle.kts, com manifestPlaceholders aplicando-o em todos os lugares. Um sinalizador useDifferentPackageNameForDebugBuild pode restaurar o pacote org.linphone.debug para compilações de depuração. Uma falha processDebugGoogleServices sobre nenhum cliente correspondente significa que app/google-services.json deve ser substituído por um para o nome de pacote escolhido, ou excluído se o Firebase Cloud Messaging e o Crashlytics não forem usados. O Firebase é o único caminho oficial de notificações push desde que o Google Cloud Messaging foi descontinuado; o projeto arquiva seu próprio google-services.json para que as compilações ainda possam receber notificações push do serviço gratuito sip.linphone.org, e excluí-lo desabilita as notificações push. Um servidor push personalizado requer a substituição desse arquivo.
As traduções migraram do Transifex para uma instância Weblate auto-hospedada; traduções anteriores não puderam ser reutilizadas após a reescrita, então contribuições são bem-vindas. As contribuições exigem patches contra as fontes git mais recentes e um Acordo de Contribuidor preenchido enviado por e-mail com o link do pull request, concedendo ao projeto o exercício pacífico de direitos sobre o código-fonte enquanto o contribuidor mantém direitos sobre sua contribuição.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.