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