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