Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/BelledonneCommunications/linphone-iphone
Linphone is a free VoIP and video softphone based on the SIP protocol. Mirror of linphone-iphone (git://git.linphone.org/linphone-iphone.git)
https://github.com/BelledonneCommunications/linphone-iphone
call chat conference iphone linphone message phone sip video voip
Last synced: 19 days ago
JSON representation
Linphone is a free VoIP and video softphone based on the SIP protocol. Mirror of linphone-iphone (git://git.linphone.org/linphone-iphone.git)
- Host: GitHub
- URL: https://github.com/BelledonneCommunications/linphone-iphone
- Owner: BelledonneCommunications
- License: gpl-3.0
- Created: 2015-01-14T10:23:05.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2024-03-18T09:29:36.000Z (8 months ago)
- Last Synced: 2024-07-31T19:43:47.052Z (4 months ago)
- Topics: call, chat, conference, iphone, linphone, message, phone, sip, video, voip
- Language: Objective-C
- Homepage: http://linphone.org
- Size: 119 MB
- Stars: 572
- Watchers: 59
- Forks: 344
- Open Issues: 444
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
Awesome Lists containing this project
README
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](https://www.linphone.org/technical-corner/linphone)## License
Copyright © Belledonne Communications
Linphone is dual licensed, and is available either :
- under a [GNU/GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html) license, for free (open source). Please make sure that you understand and agree with the terms of this license before using it (see LICENSE file for details).
- under a proprietary license, for a fee, to be used in closed source applications. Contact [Belledonne Communications](https://www.linphone.org/contact) for any question about costs and services.## Documentation
- Supported features and RFCs : https://www.linphone.org/technical-corner/linphone/features
- Linphone public wiki : https://wiki.linphone.org/xwiki/wiki/public/view/Linphone/# How can I contribute?
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:## Help on translations
We no longer use transifex for the translation process, instead we have deployed our own instance of [Weblate](https://weblate.linphone.org/projects/linphone-iphone/).
Due to the full app rewrite we can't re-use previous translations, so we'll be very happy if you want to contribute.
## Report bugs and submit patchs
If you want to dig through Linphone code or report a bug, please read `CONTRIBUTING.md` first. You should also read this `README` entirely ;-).
## How to be a beta tester ?
Enter the Beta :
- Download TestFlight from the App Store and log in it with your apple-id
-Tap the public link on your iOS device. The public link : https://testflight.apple.com/join/LUlmZWjH
-Touch View in TestFlight or Start Testing. You can also touch Accept, Install, or Update for Linphone app.
-And voilà ! You can update your beta version with the same public link when a new one is availableSend a crash report :
- It is done automatically by TestFlightReport a bug :
- Open Linphone
- Go to Settings —> Advanced —> Send logs
- An email to [email protected] is created with your logs attached
- Fill in the bug description with :
* What you were doing
* What happened
* What you were expecting
* Approximately when the bug happened
- Change the object to [Beta test - Bug report]
- Send the mail# Building the application
## What's new
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.## Building the app
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**.- Install the app's dependencies with cocoapods first:
```
pod install
```
It will download the linphone-sdk from our gitlab repository so you don't have to build anything yourself.
- Then open `linphone.xcworkspace` file (**NOT linphone.xcodeproj**) with XCode to build and run the app.# Limitations and known bugs
* Video capture will not work in simulator (not implemented in it).
# Using a local linphone SDK
- 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= pod install
```
where is your build directory of the linphone-sdk project, containing the `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.
# Enabling crashlytics
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.
# Quick UI reference
- The app is contained in a window, which resides in the MainStoryboard file.
- The delegate is set to LinphoneAppDelegate in main.m, in the UIApplicationMain() by passing its class
- Basic layout:MainStoryboard
|
| (rootViewController)
|
PhoneMainView ---> view |--> app background
| |
| |--> statusbar background
|
| (mainViewController)
|
UICompositeView : TPMultilayout
|
|---> view |--> statusBar
|
|--> contentView
|
|--> tabBarWhen 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".