preserve media encryption mode for zrtp in case of re-invite initiated by ice

This commit is contained in:
Jehan Monnier 2014-04-18 09:06:11 +02:00
parent 43aa6ef34f
commit 471314ee1a
4 changed files with 13 additions and 7 deletions

View file

@ -2639,11 +2639,17 @@ static void handle_ice_events(LinphoneCall *call, OrtpEvent *ev){
int ping_time;
if (evt == ORTP_EVENT_ICE_SESSION_PROCESSING_FINISHED) {
LinphoneCallParams params;
_linphone_call_params_copy(&params,&call->current_params);
if (call->params.media_encryption == LinphoneMediaEncryptionZRTP) {
/* preserve media encryption param because at that time ZRTP negociation may still be ongoing*/
params.media_encryption=call->params.media_encryption;
}
switch (ice_session_state(call->ice_session)) {
case IS_Completed:
ice_session_select_candidates(call->ice_session);
if (ice_session_role(call->ice_session) == IR_Controlling) {
linphone_core_update_call(call->core, call, &call->current_params);
linphone_core_update_call(call->core, call, &params);
}
break;
case IS_Failed:
@ -2651,7 +2657,7 @@ static void handle_ice_events(LinphoneCall *call, OrtpEvent *ev){
ice_session_select_candidates(call->ice_session);
if (ice_session_role(call->ice_session) == IR_Controlling) {
/* At least one ICE session has succeeded, so perform a call update. */
linphone_core_update_call(call->core, call, &call->current_params);
linphone_core_update_call(call->core, call, &params);
}
}
break;

@ -1 +1 @@
Subproject commit 5363f6d6487f44c0fa898647b7b859857db13283
Subproject commit 86110766b0cfbd0ecfd4ab853715e0c3d681385b

2
oRTP

@ -1 +1 @@
Subproject commit 891f3da6817e30b606493840f305250f81a254bd
Subproject commit c09e63ddba599a7f7da149edf6f7b290f4cfa787

View file

@ -1312,13 +1312,13 @@ static void srtp_ice_call(void) {
call_base(LinphoneMediaEncryptionSRTP,FALSE,FALSE,LinphonePolicyUseIce);
}
static void zrtp_video_ice_call(void) {
/*encrypted_ice_call(LinphoneMediaEncryptionZRTP,TRUE,FALSE);*/
call_base(LinphoneMediaEncryptionZRTP,TRUE,FALSE,LinphonePolicyUseIce);
}
static void zrtp_ice_call(void) {
/*encrypted_ice_call(LinphoneMediaEncryptionZRTP,FALSE,FALSE);*/
call_base(LinphoneMediaEncryptionZRTP,FALSE,FALSE,LinphonePolicyUseIce);
}
static void zrtp_ice_call_with_relay(void) {
/*encrypted_ice_call(LinphoneMediaEncryptionZRTP,FALSE,TRUE);*/
call_base(LinphoneMediaEncryptionZRTP,FALSE,TRUE,LinphonePolicyUseIce);
}
static void early_media_call(void) {