diff --git a/Classes/IncallViewController.m b/Classes/IncallViewController.m index 384cc840e..f5ba66ade 100644 --- a/Classes/IncallViewController.m +++ b/Classes/IncallViewController.m @@ -892,10 +892,27 @@ static void hideSpinner(LinphoneCall* call, void* user_data) { [ms appendFormat:@"%@...", NSLocalizedString(@"Ringing...", nil), nil]; break; case LinphoneCallPausedByRemote: - [ms appendFormat:@"%@...", NSLocalizedString(@"Paused by remote", nil), nil]; + { + switch (linphone_call_get_transfer_state(call)) { + case LinphoneCallOutgoingInit: + case LinphoneCallOutgoingProgress: + [ms appendFormat:@"%@...", NSLocalizedString(@"Transfer in progress", nil), nil]; + break; + case LinphoneCallConnected: + [ms appendFormat:@"%@", NSLocalizedString(@"Transfer successful", nil), nil]; + break; + case LinphoneCallError: + [ms appendFormat:@"%@", NSLocalizedString(@"Transfer failed", nil), nil]; + break; + case LinphoneCallIdle: + default: + [ms appendFormat:@"%@...", NSLocalizedString(@"Paused by remote", nil), nil]; + break; + } break; default: break; + } } } [detailLabel setText:ms]; diff --git a/Classes/LinphoneUI/LinphoneManager.h b/Classes/LinphoneUI/LinphoneManager.h index b0cace918..92fc3056d 100644 --- a/Classes/LinphoneUI/LinphoneManager.h +++ b/Classes/LinphoneUI/LinphoneManager.h @@ -44,6 +44,7 @@ struct NetworkReachabilityContext { typedef struct _LinphoneCallAppData { bool_t batteryWarningShown; + // transfer data int transferButtonIndex; } LinphoneCallAppData; diff --git a/Classes/LinphoneUI/LinphoneManager.m b/Classes/LinphoneUI/LinphoneManager.m index ef5498cca..195058561 100644 --- a/Classes/LinphoneUI/LinphoneManager.m +++ b/Classes/LinphoneUI/LinphoneManager.m @@ -337,9 +337,14 @@ static void linphone_iphone_call_state(LinphoneCore *lc, LinphoneCall* call, Lin LinphoneCallPausedByRemote */ [(LinphoneManager*)linphone_core_get_user_data(lc) onCall:call StateChanged: state withMessage: message]; - - - +} + +static void linphone_iphone_transfer_state_changed(LinphoneCore* lc, LinphoneCall* call, LinphoneCallState state) { + /* + LinhoneCallOutgoingProgress -> SalReferTrying + LinphoneCallConnected -> SalReferSuccess + LinphoneCallError -> SalReferFailed | * + */ } -(void) onRegister:(LinphoneCore *)lc cfg:(LinphoneProxyConfig*) cfg state:(LinphoneRegistrationState) state message:(const char*) message { @@ -417,7 +422,8 @@ static LinphoneCoreVTable linphonec_vtable = { .display_warning=linphone_iphone_log, .display_url=NULL, .text_received=NULL, - .dtmf_received=NULL + .dtmf_received=NULL, + .transfer_state_changed=linphone_iphone_transfer_state_changed }; diff --git a/submodules/linphone b/submodules/linphone index d481382fb..e7123e495 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit d481382fb4c55300737d1f6fc02cecb4d509cc60 +Subproject commit e7123e495aa88c5432b1a7c21e5f9de39ef5bc90