No description
Find a file
2015-07-03 14:41:05 +02:00
.tx i10n: add Settings page to translatable resources 2015-04-20 14:39:55 +02:00
Classes Filetransfer: temporary fix to display all upload photos in simultanous upload 2015-07-02 13:53:59 +02:00
KifTests ChatTester.m: dont check ftd count because it depends on upload bandwidth 2015-07-02 15:14:24 +02:00
liblinphone-tutorials/hello-world Update hello world project to use the correct libs 2014-08-13 11:07:12 +02:00
linphone.xcodeproj build: officially deprecating autotools build version - updated README and old Makefile in consequence 2015-07-03 11:33:27 +02:00
LinphoneTester travis: use Ninja, fix imgur_upload.sh to correctly display wget instructions and use only WARNING verbosity 2015-07-02 10:20:32 +02:00
LinphoneTester Tests Tester: always use the same logging system 2015-07-01 15:50:25 +02:00
Resources filetransfer: rework file transfer to use latest API 2015-06-15 15:46:26 +02:00
Settings/InAppSettings.bundle InAppSettingsVideo: reset FPS when using non custom preset 2015-06-17 10:51:21 +02:00
submodules submodules: turn off compilation warnings for external projects 2015-07-03 14:31:36 +02:00
Tools build: officially deprecating autotools build version - updated README and old Makefile in consequence 2015-07-03 11:33:27 +02:00
.clang-format coding style: experimental use of a clang-format git pre-commit hook to force code convention 2015-06-15 15:46:24 +02:00
.git-pre-commit .git-pre-commit: quit gracefully if clang-format is not found instead of erroring 2015-06-17 14:47:21 +02:00
.gitignore coding style: experimental use of a clang-format git pre-commit hook to force code convention 2015-06-15 15:46:24 +02:00
.gitmodules update libvpx repo because http://git.chromium.org/webm/libvpx.git is no longuer available 2015-06-15 14:52:54 +02:00
.travis.yml submodules: turn off compilation warnings for external projects 2015-07-03 14:31:36 +02:00
COPYING add GPL license 2011-08-12 17:55:48 +02:00
iTunesArtwork iTunesArtwork must be at the root directory level 2012-12-14 08:17:51 +01:00
linphone-Info.plist linphone-Info.plist: revert name to Linphone 2015-05-04 10:57:53 +02:00
linphone_Prefix.pch Fix initializer warnings for iOS8 2015-05-12 10:35:59 +02:00
main.m Chat: fix message state icon by reworking file transfer a bit and add simultanous uploads/downloads tests 2015-06-26 15:20:18 +02:00
NEWS Add NEWS file 2012-10-04 11:01:45 +02:00
prepare.py prepare.py: enable tunnel if submodules/tunnel folder is present 2015-07-03 14:41:05 +02:00
README.md build: officially deprecating autotools build version - updated README and old Makefile in consequence 2015-07-03 11:33:27 +02:00
UI.md Dynamically change the root view controller, so that when we transition from a portrait-only to a landscape-friendly view. 2014-10-02 16:27:23 +02:00

Linphone on iPhone

Build Status

BUILDING THE SDK

Linphone for iPhone depends on liblinphone SDK. This SDK is generated from makefiles and shell scripts.

  • GPL third parties versus non GPL third parties

This SDK can be generated in 2 flavors. First is with GPL third parties, it means liblinphone includes GPL third parties like FFMPEG or X264. If you choose this flavor, your final application must comply with GPL in any case. This is the default mode.

Note: We are not compiling for the 32 bits i386 simulator by default because since iPhone 6 / iOS 8 simulators run in 64 bits. If you want to activate it, you should call prepare.py "i386" architecture.

To generate the liblinphone multi arch SDK in GPL mode, do:

    ./prepare.py && make

ALTERNATIVELY, you can force liblinphone to use only non GPL code except for liblinphone, mediastreamer2, oRTP, belle-sip. If you choose this flavor, your final application is still subject to GPL except if you have a commercial license for liblinphone, mediastreamer2, oRTP, belle-sip.

To generate the liblinphone multi arch SDK in non GPL mode, do:

    ./prepare.py -DENABLE_GPL_THIRD_PARTIES=NO && make
  • In case you upgrade your IOS SDK, you may force rebuilding everything, by doing

      ./prepare.py -c && ./prepare.py && make
    

The resulting sdk is in liblinphone-sdk/ root directory.

BUILDING THE APPLICATION

After the SDK is built, just open the Linphone Xcode project with Xcode, and press Run.

  • Note regarding third party components subject to license:

The liblinphone-sdk is compiled with third parties code that are subject to patent license, specially: AMR, SILK G729 and H264 codecs. Linphone controls the embedding of these codecs thanks to the preprocessor macros HAVE_SILK, HAVE_AMR, HAVE_G729 HAVE_OPENH264 positioned in Xcode project. Before embedding these 4 codecs in the final application, make sure to have the right to do so.

TESTING THE APPLICATION

We are using the KIF framework to test the UI of Linphone. It is used as a submodule (instead of CocoaPods) for ease.

Simply press Command + U and the default simulator / device will launch and try to pass all the tests.

LIMITATIONS, KNOWN BUGS

  • Video capture does not work in simulator (not implemented by simulator?).

DEBUGING THE SDK

Sometime it can be useful to step into liblinphone SDK functions. To allow Xcode to enable breakpoint within liblinphone, SDK must be built with debug symbols. To add debug symbol to liblinphone SDK, use:

    ./prepare.py -d && make

DEBUGING MEDIASTREAMER2

For iOS specific media development like audio video capture/playback it may be interesting to use mediastream test tool. The project submodule/liblinphone.xcodeproj can be used for this purpose.