프로젝트 소개
Linphone은 음성 및 영상 VoIP 통화와 인스턴트 메시징을 위한 오픈 소스 소프트폰입니다. 완전히 SIP 기반이며 통화, 프레즌스, IM 기능을 포함합니다. 이 저장소는 linphone-android의 Linphone.org 미러이며, 정식 개발 위치는 Belledonne Communications GitLab 인스턴스입니다.
이 앱은 Google Play와 F-Droid에서 이용할 수 있으며, 프로젝트 키로 서명된 APK는 Linphone 웹사이트에서 다운로드할 수 있습니다. 6.0.0 릴리스는 UX/UI 전문가와 함께 설계한 완전한 재작성 버전으로, 향상된 유연성, 실제 다중 계정 지원, 통화 중 비대칭 비디오를 제공합니다. Android 9.0 이상이 필요합니다. CHANGELOG.md 파일에 변경 사항과 새로운 기능이 나열되어 있습니다.
라이선스는 이중 구조입니다. 무료 오픈 소스 사용에는 GNU/GPLv3가 적용되고, 클로즈드 소스 애플리케이션에는 유료 독점 라이선스가 적용되며 비용 및 서비스 관련 문의는 Belledonne Communications가 담당합니다. 문서 링크는 지원 기능과 RFC, 공개 위키, Android용 Kotlin 튜토리얼을 다룹니다.
빌드: Android Studio에서는 프로젝트를 열고 Gradle 동기화를 기다린 뒤 빌드하거나 설치합니다. linphone 라이브러리는 프로젝트 Maven 저장소에서 AAR로 가져옵니다. Android Studio 없이 ./gradlew assembleDebug 또는 assembleRelease를 사용한 뒤 installDebug 또는 installRelease를 실행합니다. APK는 app/build/outputs/apk/debug/ 및 app/build/outputs/apk/release/에 생성됩니다. 릴리스 AppBundle에는 releaseAppBundle 타깃을 사용하고, Play Store용 네이티브 라이브러리 심볼을 포함할 수 있도록 NDK가 설치되어 있고 ANDROID_NDK_HOME이 설정되어 있는지 확인하십시오.
로컬 SDK 빌드는 GitLab에서 linphone-sdk를 재귀적으로 복제하고, README에 따라 빌드한 뒤, GRADLE_USER_HOME 아래 gradle.properties의 LinphoneSdkBuildDir에 절대 SDK 빌드 경로를 추가하고 앱을 다시 빌드하는 과정을 포함합니다. 네이티브 디버깅은 Android Studio SDK Tools의 LLDB를 사용하며, 디버거 구성에서 Dual 또는 Native를 선택하고, linphone-sdk 디버그 라이브러리 경로를 추가하고, 네이티브 파일에 중단점을 설정하고, app/build.gradle에서 디버그 AAR을 사용합니다.
알려진 문제로는 linphone_logo_tinted에 대한 AAPT 리소스 오류가 있으며 app/src/main/res/xml/contacts.xml을 삭제하고 다시 빌드하여 해결합니다. 시작 시 libc++_shared.so 충돌은 프로젝트를 정리하고 LINPHONESDK_ANDROID_ARCHS cmake 매개변수를 통해 SDK가 올바른 CPU 아키텍처용으로 빌드되었는지 확인하여 해결합니다. 설치 후 Android Studio로 앱을 시작했을 때 푸시 알림이 작동하지 않는 문제는 최근 활동에서 앱을 제거하고 런처 아이콘에서 다시 실행하여 해결합니다.
문제 해결: 동작 문제는 일치하는 라이브러리 로그와 함께 템플릿을 사용하여 GitHub 저장소에 보고해야 합니다. 6.0.0부터 로그는 항상 활성화되어 로컬에 저장되며, Help의 Troubleshooting을 통해 지우거나 안전하게 업로드할 수 있습니다. 네이티브 충돌의 경우 기호화된 스택 트레이스에는 디버그 라이브러리가 필요하며, SDK를 로컬에서 빌드하거나 Maven 저장소에서 SDK 버전에 맞는 libs-debug 아카이브를 다운로드하여 얻을 수 있습니다. ndk-stack 도구와 경우에 따라 adb logcat이 필요하며, 라이브러리의 아키텍처를 알아야 합니다. 연결된 기기에서 CPU 아키텍처를 알거나 모르는 상태로 스택 트레이스를 기호화하는 명령이 제공되며, NDK r29에서는 libs-debug.zip을 직접 사용할 수 있습니다.
사용자 지정 패키지 이름은 app/build.gradle.kts의 packageName 변수를 편집하여 설정하며, manifestPlaceholders가 이를 모든 곳에 적용합니다. useDifferentPackageNameForDebugBuild 플래그는 디버그 빌드에 org.linphone.debug 패키지를 복원할 수 있습니다. 일치하는 클라이언트가 없다는 processDebugGoogleServices 실패는 app/google-services.json을 선택한 패키지 이름에 맞는 파일로 교체하거나, Firebase Cloud Messaging과 Crashlytics를 사용하지 않는 경우 삭제해야 함을 의미합니다. Google Cloud Messaging이 지원 중단된 이후 Firebase는 유일한 공식 푸시 알림 경로입니다. 프로젝트는 자체 google-services.json을 보관하므로 빌드가 무료 sip.linphone.org 서비스에서 푸시 알림을 계속 받을 수 있으며, 이를 삭제하면 푸시 알림이 비활성화됩니다. 사용자 지정 푸시 서버를 사용하려면 해당 파일을 교체해야 합니다.
번역은 Transifex에서 자체 호스팅 Weblate 인스턴스로 이전되었습니다. 재작성 후 이전 번역을 재사용할 수 없었으므로 기여를 환영합니다. 기여에는 최신 git 소스에 대한 패치와 풀 리퀘스트 링크와 함께 이메일로 제출한 완료된 Contributor Agreement가 필요하며, 이는 기여자가 자신의 기여에 대한 권리를 유지하면서 프로젝트에 소스 코드에 대한 권리를 평화롭게 행사할 수 있도록 합니다.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.