No description
Find a file
2019-03-14 11:12:58 +01:00
.tx translations 2018-05-24 15:19:59 +02:00
Classes fix linphoneLogin button 2019-03-07 10:41:30 +01:00
doc add documentation 2016-08-12 18:02:37 +02:00
latestCallsWidget beta 4.1 (27) 2019-03-05 15:06:28 +01:00
latestChatroomsWidget beta 4.1 (27) 2019-03-05 15:06:28 +01:00
LiblinphoneTester remove useless files 2019-02-14 17:18:57 +01:00
linphone.xcodeproj add 'maybe later' button for link account 2019-03-05 13:39:37 +01:00
linphone.xcworkspace Use linphone-sdk pod. 2018-10-19 10:54:02 +02:00
linphoneExtension beta 4.1 (27) 2019-03-05 15:06:28 +01:00
Resources fix title of devices list view 2019-03-04 14:28:49 +01:00
richNotifications beta 4.1 (27) 2019-03-05 15:06:28 +01:00
Settings/InAppSettings.bundle pull transifex 2019-01-21 13:21:52 +01:00
TestsLiblinphone active ipv6 and add testSuites 2019-02-06 17:01:08 +01:00
TestsUI Merge branch 'master' into dev_group_chat 2017-12-15 10:53:13 +01:00
Tools repair make ipa 2018-06-26 10:51:04 +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
.gitmodules Use linphone-sdk pod. 2018-10-19 10:54:02 +02:00
.travis.yml .travis.yml: do not mute make 2016-06-23 17:06:39 +02:00
CHANGELOG.md update CHANGELOG.md 2019-03-06 15:03:44 +01:00
CONTRIBUTING.md CONTRIBUTING.md: created file 2015-12-21 17:24:44 +01:00
iTunesArtwork resources: add ipad specific images 2016-02-01 12:14:29 +01:00
LICENCE Tests: restructure tests folder to get a constistent name convention 2015-07-09 14:03:31 +02:00
linphone-Info.plist beta 4.1 (27) 2019-03-05 15:06:28 +01:00
linphone.entitlements fix extensions 2019-01-10 17:58:38 +01:00
linphone_Prefix.pch Contact: factorize code to handle either native contacts and/or LinphoneFriends 2016-05-18 13:23:13 +02:00
main.m UI: iPad version 2015-12-16 15:38:42 +01:00
Podfile enable pod install with loacl sdk 2019-03-13 16:54:27 +01:00
prepare.conf enable limev2 2018-09-06 17:32:40 +02:00
prepare.py disable static build of iOS SDK as it no longer works 2018-07-11 13:39:25 +02:00
README.md update READEME.md for using local sdk 2019-03-14 11:12:58 +01:00

Build Status

Linphone is a free VoIP and video softphone based on the SIP protocol.

Dialer screenshot

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

Top translations: linphone-ios

Interested in helping translate Linphone? Contribute on Transifex.

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. 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 see below how to proceed.

Building the app

If you don't have CocoaPods, you can download it using :

  • sudo gem install cocoapods

Build the linphone-iphone :

  • pod install It will download the linphone library from our gitlab repository so you don't have to build anything yourelf.

Then open linphone.xcworkspace (instead of linphone.xcodeproj) to install the app.

Testing the application

We are using the Xcode test navigator to test the UI of Linphone.

Change the Scheme to LinphoneTester. Press the test navigator button and all the tests will show. See: https://developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/05-running_tests.html

Limitations and known bugs

  • Video capture will not work in simulator (not implemented in it).

Debugging the SDK

Building a local SDK

-Clone the linphone-sdk repository from out gitlab:

-Follow the instructions in the linphone-sdk/README file to build the SDK.

-Rebuild the project:

  • PODFILE_PATH= pod install

-Then open linphone.xcworkspace (instead of linphone.xcodeproj) to install 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".