diff --git a/Classes/LinphoneCoreSettingsStore.m b/Classes/LinphoneCoreSettingsStore.m
index d37f40c4a..16c3289ee 100644
--- a/Classes/LinphoneCoreSettingsStore.m
+++ b/Classes/LinphoneCoreSettingsStore.m
@@ -200,7 +200,8 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
switch(menc){
case LinphoneMediaEncryptionSRTP: val="SRTP"; break;
case LinphoneMediaEncryptionZRTP: val="ZRTP"; break;
- default: val="None"; break;
+ case LinphoneMediaEncryptionDTLS: val="DTLS"; break;
+ case LinphoneMediaEncryptionNone: val="None"; break;
}
[self setString:val forKey:@"media_encryption_preference"];
}
@@ -573,6 +574,8 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
linphone_core_set_media_encryption(lc, LinphoneMediaEncryptionSRTP);
else if (menc && [menc compare:@"ZRTP"] == NSOrderedSame)
linphone_core_set_media_encryption(lc, LinphoneMediaEncryptionZRTP);
+ else if (menc && [menc compare:@"DTLS"] == NSOrderedSame)
+ linphone_core_set_media_encryption(lc, LinphoneMediaEncryptionDTLS);
else
linphone_core_set_media_encryption(lc, LinphoneMediaEncryptionNone);
diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m
index 994127187..11fbe85c7 100644
--- a/Classes/LinphoneManager.m
+++ b/Classes/LinphoneManager.m
@@ -1477,7 +1477,8 @@ static BOOL libStarted = FALSE;
/* set the CA file no matter what, since the remote provisioning could be hitting an HTTPS server */
const char* lRootCa = [[LinphoneManager bundleFile:@"rootca.pem"] cStringUsingEncoding:[NSString defaultCStringEncoding]];
linphone_core_set_root_ca(theLinphoneCore, lRootCa);
-
+ linphone_core_set_user_certificates_path(theLinphoneCore,[[LinphoneManager cacheDirectory] UTF8String]);
+
/* The core will call the linphone_iphone_configuring_status_changed callback when the remote provisioning is loaded (or skipped).
Wait for this to finish the code configuration */
diff --git a/Classes/SettingsViewController.m b/Classes/SettingsViewController.m
index 733df0327..909a8fb39 100644
--- a/Classes/SettingsViewController.m
+++ b/Classes/SettingsViewController.m
@@ -564,6 +564,14 @@ static UICompositeViewDescription *compositeDescription = nil;
[values removeObject:@"SRTP"];
[dict setObject:values forKey:@"Values"];
}
+ if(!linphone_core_media_encryption_supported([LinphoneManager getLc], LinphoneMediaEncryptionDTLS)) {
+ NSMutableArray *titles = [NSMutableArray arrayWithArray:[dict objectForKey:@"Titles"]];
+ [titles removeObject:@"DTLS"];
+ [dict setObject:titles forKey:@"Titles"];
+ NSMutableArray *values = [NSMutableArray arrayWithArray:[dict objectForKey:@"Values"]];
+ [values removeObject:@"DTLS"];
+ [dict setObject:values forKey:@"Values"];
+ }
return [[[IASKSpecifier alloc] initWithSpecifier:dict] autorelease];
}
diff --git a/Settings/InAppSettings.bundle/Network.plist b/Settings/InAppSettings.bundle/Network.plist
index 890678ce1..4eb893d65 100644
--- a/Settings/InAppSettings.bundle/Network.plist
+++ b/Settings/InAppSettings.bundle/Network.plist
@@ -124,6 +124,7 @@
None
SRTP
ZRTP
+ DTLS
Type
PSMultiValueSpecifier
@@ -132,6 +133,7 @@
None
SRTP
ZRTP
+ DTLS
diff --git a/submodules/belle-sip b/submodules/belle-sip
index eed16af00..e5e0590db 160000
--- a/submodules/belle-sip
+++ b/submodules/belle-sip
@@ -1 +1 @@
-Subproject commit eed16af0014ba89fec25b4351f06f60297600381
+Subproject commit e5e0590db8917ccbf5631ec42022bb9f8e03b064
diff --git a/submodules/build/builder-iphone-os.mk b/submodules/build/builder-iphone-os.mk
index f5a092f6f..879da6690 100644
--- a/submodules/build/builder-iphone-os.mk
+++ b/submodules/build/builder-iphone-os.mk
@@ -38,7 +38,9 @@ linphone_configure_controls = \
--disable-x11 \
--disable-tutorials \
--disable-tools \
- --enable-msg-storage=yes
+ --enable-msg-storage=yes \
+ --with-polarssl=$(prefix) \
+ --enable-dtls
#path
diff --git a/submodules/externals/polarssl b/submodules/externals/polarssl
index e46939b25..ab2f403a3 160000
--- a/submodules/externals/polarssl
+++ b/submodules/externals/polarssl
@@ -1 +1 @@
-Subproject commit e46939b25c990d825d94c2d526c350a1380db67f
+Subproject commit ab2f403a3e0ec91257f0e943129c0eec272f34e8
diff --git a/submodules/linphone b/submodules/linphone
index 229f662b9..ea0aecc8a 160000
--- a/submodules/linphone
+++ b/submodules/linphone
@@ -1 +1 @@
-Subproject commit 229f662b9f0404d2f5f6acf8fc572e9e4315cb08
+Subproject commit ea0aecc8a7cabf3bf7da1cd92039c4e8259bf02f
diff --git a/submodules/msopenh264 b/submodules/msopenh264
index 394ccd39a..6c2cf04b5 160000
--- a/submodules/msopenh264
+++ b/submodules/msopenh264
@@ -1 +1 @@
-Subproject commit 394ccd39acc5671442bd966a54feab39518e5d99
+Subproject commit 6c2cf04b56b226be7bbc4f0ebe47fe937806ac73