diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index 45151b3f3..dc4ba0e5a 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -841,7 +841,17 @@ static void linphone_iphone_display_status(struct _LinphoneCore *lc, const char data->timer = nil; } LinphoneCallLog *UNlog = linphone_call_get_call_log(call); - if (UNlog == NULL || linphone_call_log_get_status(UNlog) == LinphoneCallMissed) { + BOOL notAnsweredElsewhere = TRUE; + const LinphoneErrorInfo *ei = linphone_call_get_error_info(call); + if (ei) { + // error not between 200-299 or 600-699 + int code = linphone_error_info_get_protocol_code(ei); + notAnsweredElsewhere = !((code >= 200 && code < 300) || (code >= 600 && code < 700)); + } + if ((UNlog == NULL || linphone_call_log_get_status(UNlog) == LinphoneCallMissed || + linphone_call_log_get_status(UNlog) == LinphoneCallAborted || + linphone_call_log_get_status(UNlog) == LinphoneCallEarlyAborted) && + notAnsweredElsewhere) { UNMutableNotificationContent *missed_content = [[UNMutableNotificationContent alloc] init]; missed_content.title = NSLocalizedString(@"Missed call", nil); missed_content.body = address; diff --git a/submodules/linphone b/submodules/linphone index 329821b54..8469ebcfc 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 329821b54904e6ab5c912107deea543f91e7903d +Subproject commit 8469ebcfc2aadad6783ba9b8ca17d19e44f1a477