From 73a37d4242c917aff233ebd174e872e59009de52 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Thu, 18 Feb 2016 15:39:32 +0100 Subject: [PATCH] allow explicit pause/resume to "repair" a broken call --- coreapi/linphonecall.c | 3 ++- coreapi/linphonecore.c | 2 ++ oRTP | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/coreapi/linphonecall.c b/coreapi/linphonecall.c index bb5d5f8de..da4cbf5a2 100644 --- a/coreapi/linphonecall.c +++ b/coreapi/linphonecall.c @@ -4895,7 +4895,8 @@ void linphone_call_repair_if_broken(LinphoneCall *call){ linphone_call_params_unref(params); break; default: - ms_error("linphone_call_resume_if_broken(): don't know what to do in state [%s]", linphone_call_state_to_string(call->state)); + ms_warning("linphone_call_resume_if_broken(): don't know what to do in state [%s]", linphone_call_state_to_string(call->state)); + call->broken = FALSE; break; } } diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 15a6bf815..cfa5a4816 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -4022,6 +4022,7 @@ int _linphone_core_pause_call(LinphoneCore *lc, LinphoneCall *call){ ms_error("No reason to pause this call, it is already paused or inactive."); return -1; } + call->broken = FALSE; linphone_call_set_state(call, LinphoneCallPausing, "Pausing call"); linphone_call_make_local_media_description(call); #ifdef BUILD_UPNP @@ -4098,6 +4099,7 @@ int linphone_core_resume_call(LinphoneCore *lc, LinphoneCall *call){ } call->was_automatically_paused=FALSE; + call->broken = FALSE; /* Stop playing music immediately. If remote side is a conference it prevents the participants to hear it while the 200OK comes back.*/ diff --git a/oRTP b/oRTP index 45ae584ce..4214b357a 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 45ae584ce2493860056a74ae0f31417a5194be8c +Subproject commit 4214b357a598156bf750e045261a910f5185b46d