我正在使用Linphone创建一个基于voip呼叫的项目,我还成功构建并运行了Linphone项目并成功运行音频和视频呼叫。现在我正在将Linphone集成到我自己的项目中,我面临着许多问题和问题。我使用了以下链接获取帮助,但没有完整的说明。任何人都可以为我提供完整的运行步骤 -
http://shallwelearn.com/blog/build-linphone-for-iphone-and-ipad/
Integrate Linphone app to my iOS app
How to integrate Linphone into an existing project (SIP in IOS)
http://www.linphone.org/technical-corner/linphone/overview
How to integrate Linphone into an existing project (SIP in IOS)
http://lists.gnu.org/archive/html/linphone-developers/2014-09/msg00109.html
http://www.successmonkey.co.nz/blog/building-linphone-for-ios
答案 0 :(得分:5)
LinphoneManager类已经包含了许多有用的功能 - 比如好看,使用linphone核心和良好的日志记录等等,但不是全部(不幸的是)。
答案 1 :(得分:4)
使用MacOS 10.15.6 Catalina的Xcode 11
https://github.com/BelledonneCommunications/linphone-sdk/blob/master/README.md
使用本地linphone SDK 从gitlab克隆linphone-sdk存储库:
$ git clone https://gitlab.linphone.org/BC/public/linphone-sdk.git --recursive
$ git submodule update --init --recursive
或
$ git clone --recurse-submodules https://gitlab.linphone.org/BC/public/linphone-sdk.git
重建项目:
PODFILE_PATH =吊舱安装 linphone-sdk项目的构建目录在哪里,其中包含linphone-sdk.podspec文件和linphone-sdk ouptut目录,其中包含已构建的框架和资源。
Pod文件的外观
source "https://gitlab.linphone.org/BC/public/podspec.git"
source "https://github.com/CocoaPods/Specs.git"
def common_pods
use_frameworks!
pod 'linphone-sdk', '4.4.0'
end
然后使用Xcode打开linphone.xcworkspace来构建和运行该应用程序。
$ git clone https://gitlab.linphone.org/BC/public/linphone-sdk.git -- recursive
$ git submodule update --init --recursive
或
$ git clone --recurse-submodules https://gitlab.linphone.org/BC/public/linphone-sdk.git
转到构建目录
$ mkdir build && cd build
————————————
https://gitlab.linphone.org/BC/public/linphone-cmake-builder/blob/ios-3.13.19/README.python.md
首先,安装brew
$ brew install cmake
$ brew install yasm
$ brew install pkg-config
安装点->
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python get-pip.py
$ python -m pip install pystache //Check by $ python -m pip list
$ brew install doxygen
————————————
$ cmake .. -G Xcode -DLINPHONESDK_PLATFORM=IOS -DENABLE_G729=YES -DENABLE_G729B_CNG=YES -DENABLE_VCARD=OFF -DENABLE_ILBC=OFF -DENABLE_SILK=OFF -DENABLE_ISAC=OFF -DENABLE_MKV=OFF -DENABLE_GSM=OFF -DENABLE_DOC=OFF -DENABLE_UNIT_TESTS=OFF -DENABLE_LIME=OFF -DENABLE_GPL_THIRD_PARTIES=OFF -DENABLE_NON_FREE_CODECS=OFF
注意-在这一步中,我们还将在Linphone sdk中启用G729 dedec支持。
$ cmake --build . --config RelWithDebInfo
现在完成编译过程需要与Xcode集成
在以下目录中找到已编译的sdk linphone-sdk->构建-> linphone-sdk-> apple-darwin
6(可选)。如果体验脚本由于我们的项目使用了胖子库而导致应用程序崩溃,则脚本中有一个小的更改,我从此URL-Errors building Xcode Project after adding in Run Script fatal error: lipo: input file
找到了解决方案APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"
# Start of Script modify - identify if the framework is FAT. If it is, then it skips it.
if [ ! -f "${FRAMEWORK_EXECUTABLE_PATH}" ]; then
continue
fi
if xcrun lipo -info "${FRAMEWORK_EXECUTABLE_PATH}" | grep --silent "Non-fat"; then
echo "Framework non-fat, skipping: $FRAMEWORK_EXECUTABLE_NAME"
continue
fi
echo "Thinning framework $FRAMEWORK_EXECUTABLE_NAME"
# end of Script modify
EXTRACTED_ARCHS=()
for ARCH in $ARCHS
do
echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done
echo "Merging extracted architectures: ${ARCHS}"
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"
echo "Replacing original executable with thinned version"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
done
注意:如果您的情况是添加脚本导致应用程序崩溃,正如我在第六点中提到的,但是每次添加脚本时,都必须进行集成以帮助我避免它。
:)现在喜欢在您的项目中使用linphone sdk。
#Update-添加第5点编译,以将应用上传到应用商店和G729编解码器配置。