No description
Find a file
2022-02-01 10:10:33 +01:00
.tx translations 2018-05-24 15:19:59 +02:00
Classes Bulk video conference adjustements 2022-02-01 10:10:33 +01:00
doc add documentation 2016-08-12 18:02:37 +02:00
linphone.xcodeproj Bulk video conference adjustements 2022-02-01 10:10:33 +01:00
linphone.xcworkspace Use linphone-sdk pod. 2018-10-19 10:54:02 +02:00
linphoneExtension support weblate translations 2020-12-03 21:33:01 +01:00
msgNotification rewrite log service 2021-01-29 17:32:14 +01:00
msgNotificationContent Use logging service for VFS related messages 2021-06-17 12:29:04 +02:00
msgNotificationService Bulk video conference adjustements 2022-02-01 10:10:33 +01:00
Resources Bulk refactorisation + new ConferenceViewModel from Android + Bulk fixes 2022-01-12 10:28:22 +01:00
Settings/InAppSettings.bundle Bulk refactorisation + new ConferenceViewModel from Android + Bulk fixes 2022-01-12 10:28:22 +01:00
TestsUI update push notification parameters 2020-02-07 17:03:59 +01:00
Tools change licence to gpl-v3 2019-10-16 15:10:09 +02:00
.git-pre-commit .git-pre-commit: update to have both diff patch and file patch 2016-02-08 11:19:33 +01:00
.gitignore add GoogleService-Info.plist into gitignore 2019-01-11 18:10:34 +01:00
.gitlab-ci.yml use xcode12 for gitlab ci job 2021-03-24 18:23:10 +01:00
.gitmodules use KIF by cocoapods 2019-04-19 14:03:44 +02:00
.travis.yml .travis.yml: do not mute make 2016-06-23 17:06:39 +02:00
CHANGELOG.md update CHANGELOG 2021-04-06 14:47:10 +02:00
CONTRIBUTING.md CONTRIBUTING.md: created file 2015-12-21 17:24:44 +01:00
GoogleService-Info.plist disable crashlythics by default 2019-03-14 12:40:43 +01:00
iTunesArtwork resources: add ipad specific images 2016-02-01 12:14:29 +01:00
LICENSE.txt rename file LICENSE.txt 2019-11-05 16:52:50 +01:00
linphone-adhoc.plist initiate CI 2020-03-12 16:14:22 +01:00
linphone-Info.plist Video conference and new Call Views 2021-11-26 19:10:22 +01:00
linphone.entitlements Enable VFS in app extensions via Keychain sharing 2021-05-26 11:08:07 +02:00
linphone_Prefix.pch Video conference and new Call Views 2021-11-26 19:10:22 +01:00
main.m update copyright 2020-06-17 09:57:37 +02:00
Podfile Bulk video conference adjustements 2022-02-01 10:10:33 +01:00
prepare.conf enable limev2 2018-09-06 17:32:40 +02:00
prepare.py change licence to gpl-v3 2019-10-16 15:10:09 +02:00
README.md Redirect to weblate rather than transitex in the readme 2021-07-08 16:49:18 +02:00

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

License

Copyright © Belledonne Communications

Linphone is dual licensed, and is available either :

  • under a GNU/GPLv3 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 for any question about costs and services.

Documentation

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.

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 available

Send a crash report :

  • It is done automatically by TestFlight

Report a bug :

  • Open Linphone
  • Go to Settings —> Advanced —> Send logs
  • An email to linphone-iphone@belledonne-communications.com 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=<path to linphone-sdk-ios> 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
                                  |
                                  |--> 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".