Linphone is an open source softphone for voice and video over IP calling and instant messaging. It is fully SIP-based, for all calling, presence and IM features. General description is available from linphone web site
Copyright © Belledonne Communications
Linphone is dual licensed, and is available either :
Thanks for asking! We love pull requests from everyone. Depending on what you want to do, you can help us improve Linphone in various ways:
We no longer use transifex for the translation process, instead we have deployed our own instance of Weblate.
Due to the full app rewrite we can't re-use previous translations, so we'll be very happy if you want to contribute.
If you want to dig through Linphone code or report a bug, please read CONTRIBUTING.md
first. You should also read this README
entirely ;-).
Enter the Beta :
Send a crash report :
Report a bug :
Now the default way of building linphone-iphone is to use CocoaPods to retrieve the linphone-sdk frameworks. Compared to previous versions, this project no longer uses submodules developper has to build in order to get a working app. However, if you wish to use a locally compiled SDK, read paragraph "Using a local linphone SDK" below to know how to proceed.
If you don't have CocoaPods already, you can download and install it using :
sudo gem install cocoapods
If you alreadly have Cocoapods, make sur that the version is higher than 1.7.5.
pod install
It will download the linphone-sdk from our gitlab repository so you don't have to build anything yourself.
linphone.xcworkspace
file (NOT linphone.xcodeproj) with XCode to build and run the app.Clone the linphone-sdk repository from out gitlab:
git clone https://gitlab.linphone.org/BC/public/linphone-sdk.git --recursive
Follow the instructions in the linphone-sdk/README file to build the SDK.
Rebuild the project:
PODFILE_PATH=<path to linphone-sdk-ios> pod install
where linphone-sdk.podspec
file and a linphone-sdk
ouptut directory comprising built frameworks and resources.
Then open linphone.xcworkspace with Xcode to build and run the app.
We've integrated Crashlytics into liphone-iphone, which can automatically send crash reports. It is disabled by default. To activate it:
Replace the GoogleService-Info.plist for this project with yours (specific to your crashlytics account).
Rebuild the project:
USE_CRASHLYTICS=true pod install
Then open linphone.xcworkspace
with Xcode to build and run the app.
Basic layout:
MainStoryboard
|
| (rootViewController)
|
PhoneMainView ---> view |--> app background
| |
| |--> statusbar background
|
| (mainViewController)
|
UICompositeView : TPMultilayout
|
|---> view |--> statusBar
|
|--> contentView
|
|--> tabBar
When the application is started, the phoneMainView gets asked to transition to the Dialer view or the Assistant view. PhoneMainView exposes the -changeCurrentView: method, which will setup its Any Linphone view is actually presented in the UICompositeView, with or without a statusBar and tabBar.
The UICompositeView consists of 3 areas laid out vertically. From top to bottom: StatusBar, Content and TabBar. The TabBar is usually the UIMainBar, which is used as a navigation controller: clicking on each of the buttons will trigger a transition to another "view".