Linphone is an open source softphone for voice and video over IP calling and instant messaging

Overview

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 [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
                                  |
                                  |--> 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".

You might also like...
Open-Source Messaging App
Open-Source Messaging App

Acani Chats Open-Source Native iOS Messages App This project and its submodules no longer work and are no longer being maintained. Acani Chats is an i

Open-Source Messaging App
Open-Source Messaging App

Acani Chats Open-Source Native iOS Messages App This project and its submodules no longer work and are no longer being maintained. Acani Chats is an i

ChatSecure is a free and open source encrypted chat client for iOS that supports OTR and OMEMO encryption over XMPP.

ChatSecure ChatSecure is a free and open source XMPP messaging client for iOS that integrates OTR and OMEMO encrypted messaging support, and has optio

Open source implementation of Apple's Combine framework for processing values over time.
Open source implementation of Apple's Combine framework for processing values over time.

OpenCombine Open-source implementation of Apple's Combine framework for processing values over time. The main goal of this project is to provide a com

Open source implementation of Apple's Combine framework for processing values over time.
Open source implementation of Apple's Combine framework for processing values over time.

OpenCombine Open-source implementation of Apple's Combine framework for processing values over time. The main goal of this project is to provide a com

PublisherKit - An open source implementation of Apple's Combine framework for processing asynchronous events over time

Publisher Kit Overview PublisherKit provides a declarative Swift API for processing asynchronous events over time. It is an open source version of App

Open-source implementation of Apple's Combine for processing values over time

CombineX 简体中文 Open-source implementation of Apple's Combine for processing values over time. Though CombineX have implemented all the Combine interfac

Unified API Library for: Cloud Storage, Social Log-In, Social Interaction, Payment, Email, SMS, POIs, Video & Messaging.
Unified API Library for: Cloud Storage, Social Log-In, Social Interaction, Payment, Email, SMS, POIs, Video & Messaging.

Unified API Library for: Cloud Storage, Social Log-In, Social Interaction, Payment, Email, SMS, POIs, Video & Messaging. Included services are Dropbox, Google Drive, OneDrive, OneDrive for Business, Box, Egnyte, PayPal, Stripe, Google Places, Foursquare, Yelp, YouTube, Vimeo, Twitch, Facebook Messenger, Telegram, Line, Viber, Facebook, GitHub, Google+, LinkedIn, Slack, Twitter, Windows Live, Yahoo, Mailjet, Sendgrid, Twilio, Nexmo, Twizo.

⚡️ A library of widgets and helpers to build instant-search applications on iOS.
⚡️ A library of widgets and helpers to build instant-search applications on iOS.

By Algolia. InstantSearch family: InstantSearch iOS | InstantSearch Android | React InstantSearch | InstantSearch.js | Angular InstantSearch | Vue Ins

Instant camera hybrid with multiple effects and filters written in Swift.
Instant camera hybrid with multiple effects and filters written in Swift.

Kontax Cam Download on the app store! No longer on the app store Kontax Cam is an instant camera built 100% using Swift for iOS. You can take your pho

⚡️ A library of widgets and helpers to build instant-search applications on iOS.
⚡️ A library of widgets and helpers to build instant-search applications on iOS.

By Algolia. InstantSearch family: InstantSearch iOS | InstantSearch Android | React InstantSearch | InstantSearch.js | Angular InstantSearch | Vue Ins

Dash-iOS - Dash gives your iPad and iPhone instant offline access to 200+ API documentation sets

Discontinued Dash for iOS was discontinued. Please check out Dash for macOS instead. Dash for iOS Dash gives your iPad and iPhone instant offline acce

Simply, Logify provides instant colorful logs to improve log tracking and bug tracing
Simply, Logify provides instant colorful logs to improve log tracking and bug tracing

Logify Simply, Logify provides instant colorful logs to improve log tracking and bug tracing. Why I need to use Logify? As discussed before in a lot o

TempBox - Instant disposable emails for Mac powered by Mail.tm
TempBox - Instant disposable emails for Mac powered by Mail.tm

TempBox Instant disposable emails for Mac powered by Mail.tm Features Native Mac app Create multiple accounts Download message source Download Attachm

Instant font size adjustment with control – / control +
Instant font size adjustment with control – / control +

Plugins manipulating UI (like this one) are not supported by Xcode 8 UPDATE: to avoid conflict with Interface Builder hotkeys are changed to Control -

An open source iOS framework for GPU-based image and video processing
An open source iOS framework for GPU-based image and video processing

GPUImage Brad Larson http://www.sunsetlakesoftware.com @bradlarson [email protected] Overview The GPUImage framework is a BSD-licensed iO

Open Source iOS 360 Degree Panorama Video Player.
Open Source iOS 360 Degree Panorama Video Player.

🎺 🎺 🎺 🎺 🎺 🎺 🎺 🎺 🎺 🎺 🎺 The Metal with Swift 5.0 version is comming 🎺 🎺 🎺 🎺 🎺 🎺 🎺 🎺 🎺 🎺 🎺 360 VR Player A Open Source, Ad-free, Na

Open Source iOS 360 Degree Panorama Video Player.
Open Source iOS 360 Degree Panorama Video Player.

🎺 🎺 🎺 🎺 🎺 🎺 🎺 🎺 🎺 🎺 🎺 The Metal with Swift 5.0 version is comming 🎺 🎺 🎺 🎺 🎺 🎺 🎺 🎺 🎺 🎺 🎺 360 VR Player A Open Source, Ad-free, Na

Voice Memos is an audio recorder App for iPhone and iPad that covers some of the new technologies and APIs introduced in iOS 8 written in Swift.
Voice Memos is an audio recorder App for iPhone and iPad that covers some of the new technologies and APIs introduced in iOS 8 written in Swift.

VoiceMemos Voice Memos is a voice recorder App for iPhone and iPad that covers some of the new technologies and APIs introduced in iOS 8 written in Sw

Owner
Infinitaz
Hardware and Software Development
Infinitaz
Flash Chat is an Internet-based messaging application similar to WhatsApp

Flash Chat is an Internet-based messaging application similar to WhatsApp. A service called Firebase Firestore is used as the backend database to store and retrieve our messages from the cloud.

Matias Adrián Molina 1 May 20, 2022
A simple and easily customizable InputAccessoryView for making powerful input bars with autocomplete and attachments

InputBarAccessoryView Features Autocomplete text with @mention, #hashtag or any other prefix A self-sizing UITextView with an optional fixed height (c

Nathan Tannar 968 Jan 2, 2023
pick the voice from the local storage.you can play and pause the voice

flutter_add_voice A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you starte

Mehrab Bozorgi 1 Nov 27, 2021
🗣Voice overlay helps you turn your user's voice into text, providing a polished UX while handling for you the necessary permissions

Voice overlay helps you turn your user's voice into text, providing a polished UX while handling for you the necessary permissions. It uses i

Algolia 490 Dec 19, 2022
Joseph Miller 0 Jan 7, 2022
Email-based instant messaging for iOS.

deltachat-ios Email-based instant messaging for iOS. Testing Betas are distributed via Testflight. Just scan this QR code with the camera app of your

Delta Chat 258 Dec 31, 2022
A Flutter powered messaging app including Firebase registration, authentication and group messaging feature.

we_chat A Flutter powered messaging app including Firebase registration, authentication and group messaging feature. Getting Started This project is a

Yamin Arafat 0 Jan 10, 2022
API Calling - Made an app in swift that gets data from Randomuser api and uses it in UITableView

API_Calling Made an app in swift that gets data from Randomuser api and uses it

Arnav Chhokra 1 Feb 4, 2022
Secret Messenger - a free and open source Jabber (XMPP) messaging client for Apple

Secret Messenger is a free and open source Jabber (XMPP) messaging client for Apple and Android devices focused on Privacy and Security with full OMEMO encrypted messaging support.

Secret Messenger 4 May 2, 2022
Klab Academy, example of calling APIs in flutter

klab A new Flutter application. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this

Hubert IT 0 Dec 2, 2021