Linphone adalah softphone open source untuk suara dan video melalui panggilan IP dan pesan instan.
Ini sepenuhnya berbasis SIP, untuk semua fitur panggilan, kehadiran, dan IM.
Deskripsi umum tersedia dari situs web linphone
Hak Cipta © Belledonne Communications
Linphone berlisensi ganda, dan tersedia juga:
di bawah lisensi GNU/GPLV3, gratis (open source). Pastikan Anda memahami dan menyetujui ketentuan lisensi ini sebelum menggunakannya (lihat file lisensi untuk detailnya).
Di bawah lisensi hak milik, dengan biaya, untuk digunakan dalam aplikasi sumber tertutup. Hubungi Belledonne Communications untuk pertanyaan apa pun tentang biaya dan layanan.
Fitur yang didukung dan RFC
Wiki publik linphone
Berikut adalah instruksi umum untuk membangun linphone untuk desktop. Instruksi spesifik untuk setiap platform build dijelaskan tepat di bawah ini. Anda akan membutuhkan alat:
cmake > = 3.22: Unduh di https://cmake.org/download/python : https://www.python.org/downloads/release/python-381/pip : Sudah tertanam di dalam ular python, jadi tidak ada yang bisa dilakukan tentang ituyasm : https://yasm.tortall.net/download.htmlnasm : https://www.nasm.us/pub/nasm/releasebuilds/doxygen (diperlukan untuk pembungkus CXX)Perlpystache : Gunakan 'Pip Instal Pystache -Pusat'six : Gunakan 'Pip Instal enam -Pengguna'git Untuk Desktop: Anda akan membutuhkan QT6 ( 6.2 atau lebih baru ). Dukungan C++17 diperlukan!
Perlu untuk menginstal perintah pip dan untuk mengeksekusi:
pip install pystache six
Anda harus mengatur variabel lingkungan Qt6_DIR untuk menunjuk ke jalur yang berisi folder cmake qt6, dan PATH ke bin qt6. Contoh:
Qt6_DIR="~/Qt/6.5.3/gcc_64/lib/cmake/Qt6"
PATH="~/Qt/6.5.3/gcc_64/bin/:$PATH"
CATATAN: Jika Anda memiliki alat pihak ketiga qtchooser diinstal: eval "$ (qtchooser -print -env)" Ekspor qt6_dir = $ {qtlibdir}/cmake/qt6 jalur ekspor = $ {qttooldir}: $ path 3. Path untuk persyaratan khusus untuk persyaratan platform di bawah ini.
`git clone https://gitlab.linphone.org/BC/public/linphone-desktop.git --recursive`
`cd linphone-desktop`
`mkdir build`
`cd build`
`cmake .. -DCMAKE_BUILD_PARALLEL_LEVEL=10 -DCMAKE_BUILD_TYPE=RelWithDebInfo`
`cmake --build . --parallel 10 --config RelWithDebInfo`
`cmake --install .`
`./OUTPUT/bin/linphone --verbose` or `./OUTPUT/Linphone.app/Contents/MacOS/linphone --verbose`
git clone https://gitlab.linphone.org/BC/public/linphone-desktop.git --recursive
Bangunan dilakukan dengan membangun SDK dan aplikasi. Target mereka adalah sdk dan Linphone .
Buat Folder Bangun Anda Di Akar Proyek: mkdir build Pergi ke folder baru ini dan mulailah proses build: cd build
Siapkan pilihan Anda: cmake .. ... Secara default, itu akan mencoba mengkompilasi semua dependensi yang dibutuhkan. Anda dapat menghapus beberapa dengan menambahkan -DENABLE_<COMPONENT>=NO ke perintah. Anda dapat menggunakan cmake-gui .. Jika Anda ingin memiliki akses yang lebih baik ke mereka. Anda dapat menambahkan -DCMAKE_BUILD_PARALLEL_LEVEL=<count> untuk melakukan <count> build paralel untuk mempercepat proses. Juga, Anda dapat menambahkan -DENABLE_BUILD_VERBOSE=ON untuk mendapatkan lebih banyak umpan balik saat menghasilkan proyek.
CATATAN: Untuk Makefile atau Ninja, Anda harus menambahkan -DCMAKE_BUILD_TYPE=<your_config> jika Anda ingin membangun dalam konfigurasi tertentu (misalnya RelWithDebInfo ).
cmake --build . --target <target> --parallel <count> (ganti <target> dengan nama target dan <count> dengan jumlah build paralel). Catatan: Untuk Xcode atau Visual Studio, Anda harus menambahkan --config <your_config> jika Anda ingin membangun dalam konfigurasi tertentu (misalnya RelWithDebInfo ).
Ketika semua selesai, file akan berada di folder output di direktori build. Saat membangun kembali, Anda harus menggunakan cmake --build . --target install (atau cmake --install . ) Untuk menempatkan aplikasi di konfigurasi yang benar.
Binari di dalam folder lain (seperti build/bin/ dan linphone-sdk ) tidak seharusnya berfungsi.
Saat melakukan beberapa modifikasi di SDK, Anda hanya dapat membangun kembali SDK dengan target sdk dan sama untuk aplikasi dengan linphone-qt-only
Untuk mendapatkan paket, Anda dapat menggunakan cmake .. -DENABLE_APP_PACKAGING=YES . File akan berada di folder OUTPUT/packages .
Perbarui proyek Anda dengan:
git fetch git tarik -rebase
Perbarui sub-modul dari cabang Anda saat ini
Git Submodule Update --inin -in -init
Kemudian cukup membangun kembali menggunakan cmake.
-DLINPHONESDK_DOXYGEN_PROGRAM . Misalnya di mac: -DLINPHONESDK_DOXYGEN_PROGRAM=/Applications/Doxygen.app/Contents/Resources/doxygen
Jika build dari crash SDK dengan sesuatu seperti "CMD.exe gagal" dan tidak ada info lebih lanjut, itu bisa menjadi ketergantungan yang tidak tersedia. Anda harus memeriksa apakah semuanya ada di jalur Anda. Biasanya, jika ini tentang VPX atau DECAF, ini bisa berasal dari instalasi Perl Anda.
Jika aplikasi tidak dimulai dan membuat file kosong dengan nama acak, itu bisa berasal dari konfigurasi yang buruk antara aplikasi Anda dan sub-modul lainnya. Periksa konfigurasi Anda dan paksakannya dengan -DCMAKE_BUILD_TYPE=<your_config> atau --config <your_config> .
Di Mac, aplikasi dapat macet di awal dari QopenglContext. Penanganan solusi adalah menonaktifkan mode MIPMAP pada gambar dengan menambahkan ke dalam file konfigurasi Anda (Linphonerc): mipmap_enabled=0 di bagian [ui] .
Untuk menginstal dependensi yang diperlukan pada Mac OS X, Anda dapat menggunakan Homebrew. Sebelum Anda menginstal paket dengan minuman, Anda mungkin harus mengubah izin direktori (jika Anda tidak dapat mengubah izin dengan sudo pada macOS> = High Sierra, lihat jawaban stackoverflow ini).
Instal Xcode dari Apple Store. Jalankan setidaknya sekali untuk memungkinkannya menginstal alatnya. Anda mungkin perlu menjalankan:
Xcode-Select --instal
Instal Homebrew dengan mengikuti instruksi di sini https://brew.sh/
Instal dependensi:
buatan instal cmake pkg-config git doxygen nasm yasm
Pertama pastikan Anda memiliki pip
Kemudian, Anda dapat menginstal paket PIP dengan perintah berikut:
Python -m Pip Instal [Paket]
Misalnya, masukkan perintah berikut:
python -m pip install pystache six graphviz
Unduh QT, instal versi QT6 dan atur qt6_dir dan variabel jalur.
Jika Anda membangun sistem ARM64 dan menginginkan versi Intel, Anda harus memilih prosesor X86_64 pada tahap generasi CMake:
-Dcmake_apple_silicon_processor = x86_64
Bangun seperti biasa (langkah umum).
Jika Anda mendapatkan kesalahan tentang modul yang tidak ditemukan untuk Python, itu mungkin karena CMake mencoba menggunakan versi lain dari jalur Anda. Ini bisa terjadi jika Anda menginstal python dari minuman. Pasang modul Python dengan menggunakan jalur absolut. Misalnya:
/opt/homebrew/python3 -m pip instal pystache enam graphviz
Versi 32-bit tidak didukung karena QT6 tidak menyediakan paket 32bits untuk MSVC. Visual Studio 2022 hanya didukung.
MinGW/MSYS2 : unduhpacman -Sy --needed base-devel mingw-w64-mingw64-toolchainpacman -S python3-pip di MSYS2 MSYS Consolepython3 -m pip install pystache six di cmdC:msys64mingw64bin , C:msys64 dan C:msys64usrbin di variabel lingkungan jalur Anda dari pengaturan Windows Advanced. Binari dari folder MSYS (bukan dari Mingw64) tidak sepenuhnya mendukung jalur Windows dan dengan demikian, mereka harus dihindari. Tentukan -DENABLE_WINDOWS_TOOLS_CHECK=ON Saat membangun SDK untuk menginstal alat yang hilang secara otomatis dari MSYS2: toolchain , python , doxygen , perl , gawk , yasm , bzip2 , nasm , sed , patch , pkg-config , gettext , glib2 , intltool dan graphviz
git : gunakan msys2: pacman -S git atau unduh
Visual Studio juga harus dikonfigurasi dengan baik dengan addons. Di bawah "Tools"-> "dapatkan alat dan fitur", pastikan bahwa komponen berikut diinstal:
Pastikan Anda telah mengunduh versi QT yang benar di MSVC.
Atau buka baris perintah dengan Developer Command Prompt for VS 2022 dan hubungi qtenv2.bat yang ada di biner qt Anda misalnya: C:Qt<version>msvc2019binqtenv2.bat
Bangun seperti biasa dengan menambahkan -A x64 ke cmake .. (langkah umum):
cmake .. -DCMAKE_BUILD_PARALLEL_LEVEL=10 -DCMAKE_BUILD_TYPE=RelWithDebInfo -A x64 Bangunan default sangat panjang. Lebih disukai menggunakan generator ninja -G "Ninja"cmake --build . --target ALL_BUILD --parallel 10 --config RelWithDebInfosudo apt instal qt6-base-dev
Dalam hal 'module "qtquick.*" Tidak diinstal' kesalahan, Anda dapat menginstal paket ini:
Ada konfigurasi file Docker di mana dependensi dapat diambil.
Juga, lebih banyak konfigurasi tersedia di folder Docker-Files dari submodule Linphone-SDK.
| Opsi | Keterangan | Nilai default |
|---|---|---|
| Enable_app_license | Aktifkan lisensi dalam paket. | YA |
| Enable_app_packaging | Aktifkan kemasan. Paket akan digunakan dalam OUTPUT/packages | TIDAK |
| Enable_app_pdf_viewer | Aktifkan penampil PDF. Butuh modul QT PDF. | YA |
| Enable_app_webview | Aktifkan WebView untuk akun. Mesin webview harus digunakan, dibutuhkan ukuran besar. | TIDAK |
| Enable_app_package_rootca | Embed file rootca (gabungan semua sertifikat root yang diterbitkan oleh mozilla) ke dalam paket | YA |
| Enable_build_app_plugins | Aktifkan pembangunan plugin | YA |
| Enable_build_examples | Aktifkan pembangunan contoh | TIDAK |
| Enable_build_verbose | Aktifkan pembuatan generasi menjadi lebih bertele -tele | TIDAK |
| Enable_daemon | Aktifkan antarmuka daemon linphone. | TIDAK |
| Enable_pqcrypto | Aktifkan post Quantum ZRTP. | TIDAK |
| Enable_strict | Bangun dengan bendera kompilator ketat misalnya -wall -werror | TIDAK |
| Enable_tests | Bangun dengan pengujian binari SDK | TIDAK |
| Enable_tests_components | Bangun libbctoolbox-tester | TIDAK |
| Enable_tools | Aktifkan alat SDK | TIDAK |
| Enable_unit_tests | Aktifkan Uji Unit SDK. | TIDAK |
| Enable_update_check | Aktifkan Pemeriksaan Pembaruan. | YA |
| LINPHONE_SDK_MAKE_RELEASE_FILE_URL | Buat file rilis yang berfungsi di sepanjang check_version dan gunakan URL ini | "" |
Untuk mengirimkan tambalan untuk dimasukkan dalam kode sumber Linphone:
Pertama, pastikan bahwa tambalan Anda berlaku untuk sumber git terbaru sebelum mengirimkan: tambalan yang dibuat untuk versi lama tidak dapat dan tidak akan digabungkan.
Isi dan kirim perjanjian kontributor agar tambalan Anda termasuk dalam pohon git dengan mengikuti tautan di sana. Tujuan dari Perjanjian ini adalah untuk memberi kami latihan damai hak kami untuk Kode Sumber Linphone, tanpa kehilangan hak Anda atas kontribusi Anda.
Kemudian buka repositori GitHub dan buat permintaan tarik berdasarkan kode Anda.
Harap dicatat bahwa kami tidak menawarkan dukungan gratis dan kontribusi ini akan ditangani pada waktu luang kami.
Linphone: Kode aplikasi.
Model: Manajemen SDK yang dijalankan di utas SDK.
Lihat: Hal -hal GUI yang dijalankan di utas UI.
Core: Kode utama yang menautkan model dan tampilan dalam pola MVVM.
Data: semua data yang bukan kode
Alat: Perpustakaan internal untuk alat generik.
CMake: Bangun dan skrip instalasi.
Eksternal: Proyek Eksternal.
Luncurkan aplikasi dengan parameter --verbose untuk mendapatkan log penuh dan mengirimkannya dengan permintaan Anda. Anda dapat menggunakan tombol "Kirim Log" di Pengaturan untuk mengunggah file log dan membaginya melalui email atau dengan posting di proyek GitHub yang sesuai:
Pada beberapa OS (seperti Fedora 22 dan yang lebih baru), mereka menonaktifkan output Debug QT secara default. Untuk mendapatkan output penuh, Anda perlu membuat ~/.config/QtProject/qtlogging.ini dan tambahkan:
[Rules]
*.debug=true
qt.*.debug=false