Linphone เป็นซอฟต์โฟนโอเพนซอร์สสำหรับเสียงและวิดีโอผ่านการโทร IP และการส่งข้อความทันที
มันเป็นพื้นฐานของ SIP สำหรับการโทรการแสดงตนและคุณสมบัติ IM ทั้งหมด
คำอธิบายทั่วไปสามารถใช้ได้จากเว็บไซต์ Linphone
ลิขสิทธิ์© Belledonne Communications
Linphone ได้รับใบอนุญาตคู่และพร้อมใช้งาน:
ภายใต้ใบอนุญาต GNU/GPLV3 ฟรี (โอเพ่นซอร์ส) โปรดตรวจสอบให้แน่ใจว่าคุณเข้าใจและเห็นด้วยกับข้อกำหนดของใบอนุญาตนี้ก่อนใช้งาน (ดูไฟล์ใบอนุญาตสำหรับรายละเอียด)
ภายใต้ใบอนุญาตที่เป็นกรรมสิทธิ์โดยมีค่าธรรมเนียมที่จะใช้ในแอปพลิเคชันปิดแหล่งที่มา ติดต่อ Belledonne Communications สำหรับคำถามใด ๆ เกี่ยวกับค่าใช้จ่ายและบริการ
คุณสมบัติที่รองรับและ RFCS
วิกิสาธารณะ Linphone
นี่คือคำแนะนำทั่วไปในการสร้าง Linphone สำหรับเดสก์ท็อป คำแนะนำเฉพาะสำหรับแต่ละแพลตฟอร์มการสร้างมีการอธิบายไว้ด้านล่าง คุณจะต้องใช้เครื่องมือ:
cmake > = 3.22: ดาวน์โหลดใน https://cmake.org/download/python : https://www.python.org/downloads/release/python-381/pip : มันฝังอยู่ในงูหลามแล้วดังนั้นจึงไม่มีอะไรทำเกี่ยวกับเรื่องนี้yasm : https://yasm.tortall.net/download.htmlnasm : https://www.nasm.us/pub/nasm/releasebuilds/doxygen (จำเป็นสำหรับ Wrapper CXX)Perlpystache : ใช้ 'PIP Install Pystache -User'six : ใช้ 'Pip Install หก -ผู้ใช้'git สำหรับเดสก์ท็อป: คุณจะต้องมี QT6 ( 6.2 หรือใหม่กว่า ) ต้องมีการสนับสนุน C++17 !
จำเป็นต้องติดตั้งคำสั่ง pip และดำเนินการ:
pip install pystache six
คุณต้องตั้งค่าตัวแปรสภาพแวดล้อม Qt6_DIR เพื่อชี้ไปที่เส้นทางที่มีโฟลเดอร์ CMAKE ของ QT6 และ PATH ไปยัง QT6 bin ตัวอย่าง:
Qt6_DIR="~/Qt/6.5.3/gcc_64/lib/cmake/Qt6"
PATH="~/Qt/6.5.3/gcc_64/bin/:$PATH"
หมายเหตุ: หากคุณมีเครื่องมือของบุคคลที่สามที่ติดตั้ง qtchooser : eval "$ (qtchooser -print -env)" ส่งออก qt6_dir = $ {qtlibdir}/cmake/qt6 เส้นทางการส่งออก = $ {qttooldir}: $ path 3 สำหรับข้อกำหนดเฉพาะ
`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
บิลด์ทำโดยการสร้าง SDK และแอปพลิเคชัน เป้าหมายของพวกเขาคือ sdk และ Linphone
สร้างโฟลเดอร์บิลด์ของคุณที่รูทของโครงการ: mkdir build ไปที่โฟลเดอร์ใหม่นี้และเริ่มกระบวนการสร้าง: cd build
เตรียมตัวเลือกของคุณ: cmake .. โดยค่าเริ่มต้นจะลองรวบรวมการพึ่งพาที่จำเป็นทั้งหมด คุณสามารถลบบางส่วนได้โดยการเพิ่ม -DENABLE_<COMPONENT>=NO ไปยังคำสั่ง คุณสามารถใช้ cmake-gui .. หากคุณต้องการเข้าถึงพวกเขาได้ดีขึ้น คุณสามารถเพิ่ม -DCMAKE_BUILD_PARALLEL_LEVEL=<count> เพื่อทำ <count> การสร้างแบบขนานเพื่อเร่งกระบวนการ นอกจากนี้คุณสามารถเพิ่ม -DENABLE_BUILD_VERBOSE=ON เพื่อรับข้อเสนอแนะเพิ่มเติมในขณะที่สร้างโครงการ
หมายเหตุ: สำหรับ MakeFile หรือ Ninja คุณต้องเพิ่ม -DCMAKE_BUILD_TYPE=<your_config> หากคุณต้องการสร้างในการกำหนดค่าที่เฉพาะเจาะจง (เช่น RelWithDebInfo )
cmake --build . --target <target> --parallel <count> (แทนที่ <target> ด้วยชื่อเป้าหมายและ <count> ตามจำนวนการสร้างแบบขนาน) หมายเหตุ: สำหรับ Xcode หรือ Visual Studio คุณต้องเพิ่ม --config <your_config> หากคุณต้องการสร้างในการกำหนดค่าเฉพาะ (ตัวอย่างเช่น RelWithDebInfo )
เมื่อทุกอย่างจบลงไฟล์จะอยู่ในโฟลเดอร์เอาต์พุตในไดเรกทอรีบิลด์ เมื่อสร้างใหม่คุณต้องใช้ cmake --build . --target install (หรือ cmake --install . ) เพื่อวางแอปพลิเคชันในการกำหนดค่าที่ถูกต้อง
ไบนารีภายในโฟลเดอร์อื่น ๆ (เช่น build/bin/ และ linphone-sdk ) ไม่ควรใช้งานได้
เมื่อทำการปรับเปลี่ยนบางอย่างใน SDK คุณสามารถสร้าง SDK ได้เฉพาะกับ sdk เป้าหมายและเดียวกันสำหรับแอปพลิเคชันที่มี linphone-qt-only
ในการรับแพ็คเกจคุณสามารถใช้ cmake .. -DENABLE_APP_PACKAGING=YES ไฟล์จะอยู่ในโฟลเดอร์ OUTPUT/packages
อัปเดตโครงการของคุณด้วย:
git ดึง git pull -rebase
อัปเดตโมดูลย่อยจากสาขาปัจจุบันของคุณ
Git Submodule Update -Init -Recursive
จากนั้นเพียงสร้าง CMake อีกครั้ง
-DLINPHONESDK_DOXYGEN_PROGRAM เช่นบน Mac: -DLINPHONESDK_DOXYGEN_PROGRAM=/Applications/Doxygen.app/Contents/Resources/doxygen
หากการสร้างความผิดพลาดของ SDK ที่มีบางอย่างเช่น "cmd.exe ล้มเหลว" และไม่มีข้อมูลเพิ่มเติมอาจเป็นการพึ่งพาที่ไม่สามารถใช้ได้ คุณต้องตรวจสอบว่าทั้งหมดอยู่ในเส้นทางของคุณหรือไม่ โดยปกติถ้ามันเกี่ยวกับ VPX หรือ DECAF สิ่งนี้อาจมาจากการติดตั้ง Perl ของคุณ
หากแอปพลิเคชันไม่เริ่มต้นและสร้างไฟล์ที่ว่างเปล่าด้วยชื่อแบบสุ่มอาจมาจากการกำหนดค่าที่ไม่ดีระหว่างแอปพลิเคชันของคุณและโมดูลย่อยอื่น ๆ ตรวจสอบการกำหนดค่าของคุณและบังคับให้พวกเขาด้วย -DCMAKE_BUILD_TYPE=<your_config> หรือ --config <your_config>
บน Mac แอปพลิเคชันสามารถขัดข้องเมื่อเริ่มต้นจาก QopenglContext วิธีแก้ปัญหาคือการปิดใช้งานโหมด MIPMAP บนรูปภาพโดยการเพิ่มลงในไฟล์กำหนดค่าของคุณ (Linphonerc): mipmap_enabled=0 ในส่วน [ui]
ในการติดตั้งการพึ่งพาที่ต้องการบน Mac OS X คุณสามารถใช้ Homebrew ก่อนที่คุณจะติดตั้งแพ็คเกจด้วย Brew คุณอาจต้องเปลี่ยนการอนุญาตไดเรกทอรี (หากคุณไม่สามารถเปลี่ยนการอนุญาตด้วย sudo บน macOS> = สูง Sierra ลองดูคำตอบ stackoverflow นี้)
ติดตั้ง XCODE จาก Apple Store เรียกใช้อย่างน้อยหนึ่งครั้งเพื่ออนุญาตให้ติดตั้งเครื่องมือ คุณอาจต้องเรียกใช้:
Xcode-select-install
ติดตั้ง homebrew โดยทำตามคำแนะนำที่นี่ https://brew.sh/
ติดตั้งการพึ่งพา:
Brew ติดตั้ง cmake pkg-config git doxygen nasm yasm
ก่อนอื่นให้แน่ใจว่าคุณมี PIP
จากนั้นคุณสามารถติดตั้งแพ็คเกจ PIP ด้วยคำสั่งต่อไปนี้:
Python -m Pip Install [แพ็คเกจ]
ตัวอย่างเช่นป้อนคำสั่งต่อไปนี้:
python -m pip install pystache six graphviz
ดาวน์โหลด QT ติดตั้งเวอร์ชัน QT6 และตั้งค่าตัวแปร QT6_DIR และพา ธ
หากคุณกำลังสร้างระบบ ARM64 และต้องการเวอร์ชัน Intel คุณต้องเลือกโปรเซสเซอร์ x86_64 ในขั้นตอนการสร้าง CMake:
-dcmake_apple_silicon_processor = x86_64
สร้างตามปกติ (ขั้นตอนทั่วไป)
หากคุณได้รับข้อผิดพลาดเกี่ยวกับโมดูลที่ไม่พบสำหรับ Python อาจเป็นเพราะ CMake พยายามใช้เวอร์ชันอื่นจากเส้นทางของคุณ อาจเป็นกรณีถ้าคุณติดตั้งงูหลามจาก Brew ติดตั้งโมดูล Python โดยใช้เส้นทางสัมบูรณ์ ตัวอย่างเช่น:
/opt/homebrew/python3 -m pip ติดตั้ง pystache หก graphviz
ไม่รองรับเวอร์ชัน 32 บิตเนื่องจาก QT6 ไม่ได้จัดเตรียมแพ็คเกจ 32BITS สำหรับ MSVC Visual Studio 2022 ได้รับการสนับสนุนเท่านั้น
MinGW/MSYS2 : ดาวน์โหลดpacman -Sy --needed base-devel mingw-w64-mingw64-toolchainpacman -S python3-pip ในคอนโซล MSYS2 MSYSpython3 -m pip install pystache six ใน cmdC:msys64mingw64bin , C:msys64 และ C:msys64usrbin ในตัวแปรสภาพแวดล้อมเส้นทางของคุณจากการตั้งค่าขั้นสูงของ Windows ไบนารีจากโฟลเดอร์ MSYS (ไม่ใช่จาก MingW64) ไม่รองรับเส้นทาง Windows อย่างเต็มที่ดังนั้นจึงต้องหลีกเลี่ยง ระบุ -DENABLE_WINDOWS_TOOLS_CHECK=ON เมื่อสร้าง SDK เพื่อติดตั้งเครื่องมือที่ gettext ไปโดยอัตโนมัติจาก MSYS2: toolchain , python glib2 doxygen , perl , yasm , gawk , bzip2 , nasm , sed intltool patch , pkg-config graphviz
git : ใช้ MSYS2: pacman -S git หรือดาวน์โหลด
Visual Studio จะต้องได้รับการกำหนดค่าอย่างถูกต้องด้วย addons ภายใต้ "เครื่องมือ"-> "รับเครื่องมือและคุณสมบัติ" ตรวจสอบให้แน่ใจว่ามีการติดตั้งส่วนประกอบต่อไปนี้:
ตรวจสอบให้แน่ใจว่าคุณได้ดาวน์โหลดเวอร์ชัน QT ที่ถูกต้องบน MSVC
หรือเปิดบรรทัดคำสั่งด้วย Developer Command Prompt for VS 2022 และเรียก qtenv2.bat ที่อยู่ในไบนารี QT ของคุณเช่น: C:Qt<version>msvc2019binqtenv2.bat
สร้างตามปกติด้วยการเพิ่ม -A x64 ถึง cmake .. (ขั้นตอนทั่วไป):
cmake .. -DCMAKE_BUILD_PARALLEL_LEVEL=10 -DCMAKE_BUILD_TYPE=RelWithDebInfo -A x64 การสร้างเริ่มต้นนั้นยาวมาก เป็นที่ต้องการใช้เครื่องกำเนิดนินจา -G "Ninja"cmake --build . --target ALL_BUILD --parallel 10 --config RelWithDebInfosudo apt ติดตั้ง qt6-base-dev
ในกรณีที่มีข้อผิดพลาด 'โมดูล "qtquick.*" ข้อผิดพลาด' คุณสามารถติดตั้งแพ็คเกจเหล่านี้:
มีการกำหนดค่าไฟล์ Docker ที่สามารถเรียกคืนได้
นอกจากนี้ยังมีการกำหนดค่าเพิ่มเติมในโฟลเดอร์ Docker-Files ของ Submodule Linphone-SDK
| ตัวเลือก | คำอธิบาย | ค่าเริ่มต้น |
|---|---|---|
| enable_app_license | เปิดใช้งานใบอนุญาตในแพ็คเกจ | ใช่ |
| enable_app_packaging | เปิดใช้งานบรรจุภัณฑ์ แพ็คเกจจะถูกปรับใช้ใน OUTPUT/packages | เลขที่ |
| enable_app_pdf_viewer | เปิดใช้งาน PDF Viewer ต้องการโมดูล QT PDF | ใช่ |
| enable_app_webview | เปิดใช้งาน WebView สำหรับบัญชี จะต้องปรับใช้เอ็นจิ้น WebView ซึ่งใช้ขนาดใหญ่ | เลขที่ |
| enable_app_package_rootca | ฝังไฟล์ rootca (การเชื่อมต่อของใบรับรองรูททั้งหมดที่เผยแพร่โดย Mozilla) ลงในแพ็คเกจ | ใช่ |
| enable_build_app_plugins | เปิดใช้งานการสร้างปลั๊กอิน | ใช่ |
| enable_build_examples | เปิดใช้งานการสร้างตัวอย่าง | เลขที่ |
| enable_build_verbose | เปิดใช้งานการสร้างบิลด์ให้เป็นสีสันให้มากขึ้น | เลขที่ |
| enable_daemon | เปิดใช้งานอินเตอร์เฟส linphone daemon | เลขที่ |
| enable_pqcrypto | เปิดใช้งานโพสต์ควอนตัม zrtp | เลขที่ |
| enable_strict | สร้างด้วยธงคอมไพเตอร์ที่เข้มงวดเช่นวอลล์ -วอลล์ | เลขที่ |
| เปิดใช้งาน _tests | สร้างด้วยการทดสอบไบนารีของ SDK | เลขที่ |
| enable_tests_components | สร้าง libbctoolbox-tester | เลขที่ |
| เปิดใช้งาน _tools | เปิดใช้งานเครื่องมือของ SDK | เลขที่ |
| enable_unit_tests | เปิดใช้งานการทดสอบหน่วยของ SDK | เลขที่ |
| enable_update_check | เปิดใช้งานการตรวจสอบการอัปเดต | ใช่ |
| linphone_sdk_make_release_file_url | สร้างไฟล์รุ่นที่ทำงานตาม check_version และใช้ URL นี้ | - |
ในการส่งแพตช์เพื่อรวมไว้ในซอร์สโค้ดของ Linphone:
ก่อนอื่นตรวจสอบให้แน่ใจว่าแพตช์ของคุณใช้กับแหล่ง GIT ล่าสุดก่อนที่จะส่ง: แพตช์ที่ทำกับเวอร์ชันเก่าไม่สามารถและจะไม่ถูกรวมเข้าด้วยกัน
กรอกและส่งข้อตกลงผู้สนับสนุนสำหรับแพตช์ของคุณที่จะรวมอยู่ใน GIT Tree โดยไปที่ลิงค์ที่นั่น เป้าหมายของข้อตกลงนี้คือการให้สิทธิ์ในการใช้สิทธิของเราอย่างสันติของเราในซอร์สโค้ด Linphone โดยไม่สูญเสียสิทธิ์ในการบริจาคของคุณ
จากนั้นไปที่ที่เก็บ GitHub และทำการร้องขอการดึงตามรหัสของคุณ
โปรดทราบว่าเราไม่ได้ให้การสนับสนุนฟรีและการมีส่วนร่วมเหล่านี้จะได้รับการแก้ไขในเวลาว่างของเรา
Linphone: รหัสแอปพลิเคชัน
รุ่น: การจัดการ SDK ที่ทำงานบนเธรด SDK
View: GUI สิ่งที่ทำงานบนเธรด UI
Core: รหัสหลักที่ลิงก์โมเดลและดูในรูปแบบ MVVM
ข้อมูล: ข้อมูลทั้งหมดที่ไม่ใช่รหัส
เครื่องมือ: ไลบรารีภายในสำหรับเครื่องมือทั่วไป
CMAKE: สร้างสคริปต์และติดตั้ง
ภายนอก: โครงการภายนอก
เรียกใช้แอปพลิเคชันด้วย -พารามิเตอร์ --verbose เพื่อรับบันทึกเต็มและส่งด้วยคำขอของคุณ คุณสามารถใช้ปุ่ม "ส่งบันทึก" ในการตั้งค่าเพื่ออัปโหลดไฟล์บันทึกและแชร์ทางอีเมลหรือโพสต์ในโครงการ GitHub ที่เกี่ยวข้อง:
ในระบบปฏิบัติการบางแห่ง (เช่น Fedora 22 และใหม่กว่า) พวกเขาปิดการใช้งาน qt debug output ตามค่าเริ่มต้น ในการรับเอาต์พุตเต็มคุณต้องสร้าง ~/.config/QtProject/qtlogging.ini และเพิ่ม:
[Rules]
*.debug=true
qt.*.debug=false