diff --git a/.gitmodules b/.gitmodules index 1b977e558..f7d6e198e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -31,3 +31,6 @@ [submodule "submodules/externals/zrtpcpp"] path = submodules/externals/zrtpcpp url = git://github.com/wernerd/ZRTPCPP.git +[submodule "submodules/mssilk"] + path = submodules/mssilk + url = git://git.linphone.org/mssilk.git diff --git a/Classes/AdvancedPhoneViewController.m b/Classes/AdvancedPhoneViewController.m index 9f5c3f633..d4b3a0392 100644 --- a/Classes/AdvancedPhoneViewController.m +++ b/Classes/AdvancedPhoneViewController.m @@ -51,7 +51,10 @@ } -(void) displayIncallFromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName { - [self presentModalViewController:mIncallViewController animated:true]; + + if (linphone_call_get_dir(currentCall)==LinphoneCallIncoming){ + [self presentModalViewController:mIncallViewController animated:true]; + } [super displayIncallFromUI:viewCtrl forUser:username diff --git a/Classes/LinphoneAppDelegate.m b/Classes/LinphoneAppDelegate.m index 377144a3b..5344f5f50 100644 --- a/Classes/LinphoneAppDelegate.m +++ b/Classes/LinphoneAppDelegate.m @@ -66,6 +66,10 @@ @"NO", @"enable_first_login_view_preference", // #ifdef HAVE_AMR @"YES",@"amr_8k_preference", // enable amr by default if compiled with +#endif +#ifdef HAVE_SILK + @"YES",@"silk_16k_preference", // enable amr by default if compiled with + @"YES",@"silk_24k_preference", // enable amr by default if compiled with #endif //@"+33",@"countrycode_preference", nil]; @@ -123,8 +127,8 @@ [[LinphoneManager instance] setCallDelegate:myPhoneViewController]; [[LinphoneManager instance] startLibLinphone]; - - + [[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeSound]; + return YES; } diff --git a/Classes/LinphoneUI/LinphoneManager.m b/Classes/LinphoneUI/LinphoneManager.m index d380e585c..adcafa3a0 100644 --- a/Classes/LinphoneUI/LinphoneManager.m +++ b/Classes/LinphoneUI/LinphoneManager.m @@ -146,7 +146,7 @@ extern void libmssilk_init(); break; case LinphoneCallConnected: - [callDelegate displayIncallFromUI:mCurrentViewController + [callDelegate displayIncallFromUI:mCurrentViewController forUser:lUserName withDisplayName:lDisplayName]; break; diff --git a/README b/README index 4c34e693f..a1c5851a9 100644 --- a/README +++ b/README @@ -23,5 +23,12 @@ In case you upgrade your IOS SDK, you may force configure by using make targets Libraries are available from liblinphone-sdk/ AMR plugin -liblinphone-sdk contains Linphone ARM pluging. As AMR may require to pay for patents, it is not enabled unless Linphone for iphone is compiled with gcc flag HAVE_AMR. +liblinphone-sdk contains Linphone ARM plugin. As AMR may require to pay for patents, it is not enabled unless Linphone for iphone is compiled with gcc flag HAVE_AMR. + +SILK plugin +liblinphone-sdk contains Linphone SILK plugin. +As Skype requires that you accept its license, the plugin is not compiled and enabled unless: +- you compile the SDK with enable_silk=yes flag (make); +- you compile the UI with HAVE_SILK preprocessor macro (xcode). +- you compile add libmssilk.so to the list a library (xcode). diff --git a/Settings.bundle/Root.plist b/Settings.bundle/Root.plist index faa9d3d83..e0d75e2dc 100644 --- a/Settings.bundle/Root.plist +++ b/Settings.bundle/Root.plist @@ -98,26 +98,6 @@ Type PSGroupSpecifier - - DefaultValue - - Key - silk_24k_preference - Title - Silk 24Khz - Type - PSToggleSwitchSpecifier - - - DefaultValue - - Key - silk_16k_preference - Title - Silk 16Khz - Type - PSToggleSwitchSpecifier - DefaultValue diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index 926e796f9..0df02121c 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -82,7 +82,6 @@ 288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; }; 70571E1A13FABCB000CDD3C2 /* rootca.pem in Resources */ = {isa = PBXBuildFile; fileRef = 70571E1913FABCB000CDD3C2 /* rootca.pem */; }; F4D9F27B1458971C0035B0D0 /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22BFFF79134F6AEA00997020 /* libssl.a */; }; - F4D9F27E145897770035B0D0 /* libSKP_SILK_SDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D9F27C1458973C0035B0D0 /* libSKP_SILK_SDK.a */; }; F4D9F27F145897BB0035B0D0 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22BFFF7A134F6AEA00997020 /* libcrypto.a */; }; F4D9F2811458AC3B0035B0D0 /* libsrtp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D9F2801458AC3B0035B0D0 /* libsrtp.a */; }; /* End PBXBuildFile section */ @@ -411,7 +410,6 @@ 32CA4F630368D1EE00C91783 /* linphone_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = linphone_Prefix.pch; sourceTree = ""; }; 70571E1913FABCB000CDD3C2 /* rootca.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = rootca.pem; path = Resources/rootca.pem; sourceTree = ""; }; 8D1107310486CEB800E47090 /* linphone-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "linphone-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; }; - F4D9F27C1458973C0035B0D0 /* libSKP_SILK_SDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libSKP_SILK_SDK.a; path = "liblinphone-sdk/apple-darwin/lib/libSKP_SILK_SDK.a"; sourceTree = ""; }; F4D9F2801458AC3B0035B0D0 /* libsrtp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsrtp.a; path = "liblinphone-sdk/apple-darwin/lib/libsrtp.a"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -422,7 +420,6 @@ files = ( F4D9F2811458AC3B0035B0D0 /* libsrtp.a in Frameworks */, F4D9F27F145897BB0035B0D0 /* libcrypto.a in Frameworks */, - F4D9F27E145897770035B0D0 /* libSKP_SILK_SDK.a in Frameworks */, 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */, 288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */, @@ -829,7 +826,6 @@ isa = PBXGroup; children = ( F4D9F2801458AC3B0035B0D0 /* libsrtp.a */, - F4D9F27C1458973C0035B0D0 /* libSKP_SILK_SDK.a */, 22E19E1C1386AFB900FBFE87 /* Localizable.strings */, 22BFFF79134F6AEA00997020 /* libssl.a */, 22BFFF7A134F6AEA00997020 /* libcrypto.a */, diff --git a/submodules/build/builder-iphone-os.mk b/submodules/build/builder-iphone-os.mk index 51bc853a1..bf36f7195 100644 --- a/submodules/build/builder-iphone-os.mk +++ b/submodules/build/builder-iphone-os.mk @@ -21,7 +21,8 @@ ############################################################################ host?=armv6-apple-darwin -enable_zrtp=no +enable_zrtp?=no +enable_silk?=no config_site:=iphone-config.site library_mode:= --disable-shared --enable-static linphone_configure_controls= --disable-video \ @@ -38,13 +39,13 @@ linphone_configure_controls= --disable-video \ LIBZRTPCPP_LIBS="-L$(prefix)/lib -lzrtpcpp -lcrypto" \ SRTP_CFLAGS="-I$(prefix)/include" \ SRTP_LIBS="-L$(prefix)/lib -lsrtp -lcrypto" \ + SRTP_CFLAGS="-I$(prefix)/include" \ SPEEX_CFLAGS="-I$(prefix)/include" \ SPEEXDSP_CFLAGS="-I$(prefix)/include" \ SPEEXDSP_LIBS="-L$(prefix)/lib -lspeexdsp" \ SPEEX_LIBS="-L$(prefix)/lib -lspeexdsp -lspeex " \ OPENSSL_CFLAGS="-I$(prefix)/include" \ OPENSSL_LIBS="-L$(prefix)/lib -lssl -lcrypto" - MSSILK_CFLAGS="-I$(prefix)/include/silk" ifeq ($(enable_zrtp),yes) linphone_configure_controls+= --with-srtp=$(prefix) --enable-zrtp=yes --disable-tests endif @@ -83,7 +84,7 @@ endif prefix?=$(BUILDER_SRC_DIR)/../liblinphone-sdk/$(host) -all: build-linphone build-msilbc build-msamr +.NOTPARALLEL all: build-linphone build-msilbc build-msamr build-mssilk clean-makefile: clean-makefile-linphone clean: clean-linphone @@ -94,17 +95,17 @@ init: veryclean: veryclean-linphone rm -rf $(BUILDER_BUILD_DIR) -.NOTPARALLEL build-linphone: init build-openssl build-srtp build-zrtpcpp build-osip2 build-eXosip2 build-speex build-libgsm build-silk $(LINPHONE_BUILD_DIR)/Makefile +.NOTPARALLEL build-linphone: init build-openssl build-srtp build-zrtpcpp build-osip2 build-eXosip2 build-speex build-libgsm $(LINPHONE_BUILD_DIR)/Makefile cd $(LINPHONE_BUILD_DIR) && export PKG_CONFIG_PATH=$(prefix)/lib/pkgconfig export CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) make newdate && make && make install -clean-linphone: clean-osip2 clean-eXosip2 clean-speex clean-libgsm clean-srtp clean-zrtpcpp clean-msilbc clean-libilbc clean-openssl clean-msamr clean-silk +clean-linphone: clean-osip2 clean-eXosip2 clean-speex clean-libgsm clean-srtp clean-zrtpcpp clean-msilbc clean-libilbc clean-openssl clean-msamr clean-mssilk cd $(LINPHONE_BUILD_DIR) && make clean -veryclean-linphone: veryclean-osip2 veryclean-eXosip2 veryclean-speex veryclean-srtp veryclean-zrtpcpp veryclean-libgsm veryclean-msilbc veryclean-libilbc veryclean-openssl veryclean-msamr veryclean-silk +veryclean-linphone: veryclean-osip2 veryclean-eXosip2 veryclean-speex veryclean-srtp veryclean-zrtpcpp veryclean-libgsm veryclean-msilbc veryclean-libilbc veryclean-openssl veryclean-msamr veryclean-mssilk #-cd $(LINPHONE_BUILD_DIR) && make distclean -cd $(LINPHONE_SRC_DIR) && rm -f configure -clean-makefile-linphone: clean-makefile-osip2 clean-makefile-eXosip2 clean-makefile-speex clean-makefile-srtp clean-makefile-zrtpcpp clean-makefile-libilbc clean-makefile-msilbc clean-makefile-openssl clean-makefile-msamr +clean-makefile-linphone: clean-makefile-osip2 clean-makefile-eXosip2 clean-makefile-speex clean-makefile-srtp clean-makefile-zrtpcpp clean-makefile-libilbc clean-makefile-msilbc clean-makefile-openssl clean-makefile-msamr clean-makefile-mssilk cd $(LINPHONE_BUILD_DIR) && rm -f Makefile && rm -f oRTP/Makefile && rm -f mediastreamer2/Makefile diff --git a/submodules/build/builders.d/mssilk.mk b/submodules/build/builders.d/mssilk.mk new file mode 100644 index 000000000..706496c8c --- /dev/null +++ b/submodules/build/builders.d/mssilk.mk @@ -0,0 +1,60 @@ +############################################################################ +# mssilk.mk +# Copyright (C) 2011 Belledonne Communications,Grenoble France +# +############################################################################ +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################ +mssilk_dir?=mssilk + +$(BUILDER_SRC_DIR)/$(mssilk_dir)/configure: + echo -e "\033[01;32m Running autogen for mssilk in $(BUILDER_SRC_DIR)/$(mssilk_dir) \033[0m" + cd $(BUILDER_SRC_DIR)/$(mssilk_dir) && ./autogen.sh + +$(BUILDER_BUILD_DIR)/$(mssilk_dir)/Makefile: $(BUILDER_SRC_DIR)/$(mssilk_dir)/configure + echo -e "\033[01;32m Running configure in $(BUILDER_BUILD_DIR)/$(mssilk_dir) \033[0m" + mkdir -p $(BUILDER_BUILD_DIR)/$(mssilk_dir) + cd $(BUILDER_BUILD_DIR)/$(mssilk_dir)/ \ + && PKG_CONFIG_PATH=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \ + $(BUILDER_SRC_DIR)/$(mssilk_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode} \ + --enable-static + +ifeq ($(enable_silk),yes) + +build-mssilk: $(BUILDER_BUILD_DIR)/$(mssilk_dir)/Makefile + echo -e "\033[01;32m building silk \033[0m" + cd $(BUILDER_BUILD_DIR)/$(mssilk_dir) \ + && PKG_CONFIG_PATH=$(prefix)/lib/pkgconfig \ + CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \ + make -j1 && make install + + +else +build-mssilk: + echo "SILK is disabled" + +endif + +clean-mssilk: + -cd $(BUILDER_BUILD_DIR)/$(mssilk_dir) && make clean + +veryclean-mssilk: + -cd $(BUILDER_BUILD_DIR)/$(mssilk_dir) && make distclean + rm -f $(BUILDER_SRC_DIR)/$(mssilk_dir)/configure + +clean-makefile-mssilk: + -cd $(BUILDER_BUILD_DIR)/$(mssilk_dir) && rm -f Makefile diff --git a/submodules/build/builders.d/silk.mk b/submodules/build/builders.d/silk.mk deleted file mode 100644 index 8bc9599fd..000000000 --- a/submodules/build/builders.d/silk.mk +++ /dev/null @@ -1,58 +0,0 @@ -############################################################################ -# silk.mk -# Copyright (C) 2011 Belledonne Communications,Grenoble France -# -############################################################################ -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################ - -SILK_BUILD_DIR?=$(BUILDER_BUILD_DIR)/externals/silk - -ifneq (,$(findstring i386,$(host))) - src := SILK_SDK_SRC_v1.0.8/SILK_SDK_SRC_FIX_v1.0.8 -else - src := SILK_SDK_SRC_v1.0.8/SILK_SDK_SRC_ARM_v1.0.8 -endif -ifneq (,$(findstring armv7,$(host))) - make_options := USE_NEON=yes -endif - -$(SILK_BUILD_DIR)/Makefile: - mkdir -p $(BUILDER_BUILD_DIR)/externals \ - && cd $(BUILDER_BUILD_DIR)/externals \ - && rm -rf silk \ - && wget http://developer.skype.com/silk/SILK_SDK_SRC_v1.0.8.zip \ - && unzip SILK_SDK_SRC_v1.0.8.zip \ - && rm -f SILK_SDK_SRC_v1.0.8.zip \ - && mv ${src} silk \ - && rm -rf SILK_SDK_SRC_v1.0.8 - -build-silk: $(SILK_BUILD_DIR)/Makefile - cd $(SILK_BUILD_DIR) && host_alias=${host} . $(BUILDER_SRC_DIR)/build/$(config_site) \ - && make -j1 all TOOLCHAIN_PREFIX=$$SDK_BIN_PATH/ CXX="$$CXX" CC="$$CC -mno-thumb -g" LD="$$LD" $(make_options) ADDED_DEFINES+=IPHONE \ - && mkdir -p $(prefix)/include/silk \ - && cp -f $(SILK_BUILD_DIR)/interface/* $(prefix)/include/silk \ - && cp -f lib*.a $(prefix)/lib - -clean-silk: - cd $(SILK_BUILD_DIR) && make clean - -clean-makefile-silk: - -veryclean-silk: - rm -rf $(SILK_BUILD_DIR) - diff --git a/submodules/liblinphone.xcodeproj/project.pbxproj b/submodules/liblinphone.xcodeproj/project.pbxproj index 317aeea8b..033406951 100644 --- a/submodules/liblinphone.xcodeproj/project.pbxproj +++ b/submodules/liblinphone.xcodeproj/project.pbxproj @@ -158,7 +158,6 @@ 2252935B12F6CA4700DD9BFB /* ec-calibrator.c in Sources */ = {isa = PBXBuildFile; fileRef = 2252935A12F6CA4700DD9BFB /* ec-calibrator.c */; }; 225AA2DC144F077700BA809B /* silk_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 225AA2DA144F077600BA809B /* silk_dec.c */; }; 225AA2DD144F077700BA809B /* silk_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 225AA2DB144F077700BA809B /* silk_enc.c */; }; - 225AA2DF144F0AA800BA809B /* libSKP_SILK_SDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 225AA2DE144F0AA800BA809B /* libSKP_SILK_SDK.a */; }; 225AA2E1144F1C6600BA809B /* bitratedriver.c in Sources */ = {isa = PBXBuildFile; fileRef = 225AA2E0144F1C6600BA809B /* bitratedriver.c */; }; 225AA2E3144F1E3400BA809B /* qosanalyzer.c in Sources */ = {isa = PBXBuildFile; fileRef = 225AA2E2144F1E3400BA809B /* qosanalyzer.c */; }; 225AA2E5144F2E0200BA809B /* msprivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 225AA2E4144F2E0200BA809B /* msprivate.h */; }; @@ -387,7 +386,6 @@ 2252935A12F6CA4700DD9BFB /* ec-calibrator.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "ec-calibrator.c"; path = "linphone/coreapi/ec-calibrator.c"; sourceTree = SOURCE_ROOT; }; 225AA2DA144F077600BA809B /* silk_dec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = silk_dec.c; sourceTree = ""; }; 225AA2DB144F077700BA809B /* silk_enc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = silk_enc.c; sourceTree = ""; }; - 225AA2DE144F0AA800BA809B /* libSKP_SILK_SDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libSKP_SILK_SDK.a; path = "../liblinphone-sdk/apple-darwin/lib/libSKP_SILK_SDK.a"; sourceTree = ""; }; 225AA2E0144F1C6600BA809B /* bitratedriver.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bitratedriver.c; sourceTree = ""; }; 225AA2E2144F1E3400BA809B /* qosanalyzer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = qosanalyzer.c; sourceTree = ""; }; 225AA2E4144F2E0200BA809B /* msprivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = msprivate.h; sourceTree = ""; }; @@ -436,7 +434,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 225AA2DF144F0AA800BA809B /* libSKP_SILK_SDK.a in Frameworks */, 70E542F113E147CE002BA2C0 /* QuartzCore.framework in Frameworks */, 70E542EE13E147C7002BA2C0 /* OpenGLES.framework in Frameworks */, 221F58A013AB50F800D603C9 /* CoreMedia.framework in Frameworks */, @@ -477,7 +474,6 @@ 0867D691FE84028FC02AAC07 /* liblinphone */ = { isa = PBXGroup; children = ( - 225AA2DE144F0AA800BA809B /* libSKP_SILK_SDK.a */, 70E542F013E147CE002BA2C0 /* QuartzCore.framework */, 70E542ED13E147C7002BA2C0 /* OpenGLES.framework */, 221F589F13AB50F800D603C9 /* CoreMedia.framework */, diff --git a/submodules/linphone b/submodules/linphone index 388ef155a..dcd99591f 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 388ef155ae078d2423cb7d8fddb7529be000bc52 +Subproject commit dcd99591f21154775b3d07fc327caac6cc27b5de diff --git a/submodules/mssilk b/submodules/mssilk new file mode 160000 index 000000000..a0ad1cca9 --- /dev/null +++ b/submodules/mssilk @@ -0,0 +1 @@ +Subproject commit a0ad1cca900afc17204856fd7c2de7e8d511eaad