All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] hfpmodem: Handle repeated held call indicator
@ 2016-01-12 15:03 Kuba Pawlak
  2016-01-12 16:31 ` Denis Kenzior
  0 siblings, 1 reply; 2+ messages in thread
From: Kuba Pawlak @ 2016-01-12 15:03 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 2311 bytes --]

An issue with iPhone 5C iOS 9.2 triggers desynchronization in call
states. When an active call is put on hold and another call arrives,
it is in WAITING state. It should be possible to answer it by issuing
AT+CHLD=2 but the phone changes its state to INCOMING so ATA should be
used. This change is advertised by sending callheld:2 event, but it is
not handled. This event can be used to trigger CLCC poll to synchronize
call states.

+CIEV: 3,1   <- first call arrives
AT+CLCC
+CLCC: 1,1,4,0,0,"01234567890",129
OK
RING
+CLIP: "01234567890",129
ATA
OK
+CIEV: 2,1
+CIEV: 3,0.
AT+CHLD=2.$  <- first call is put on hold
OK
+CIEV: 7,2   <- notification confirming that call #1 is on hold
+CCWA: "09876543210",129,1     <- second call arrives
+CIEV: 7,2
+CIEV: 3,1
AT+CLCC
+CLCC: 1,1,1,0,0,"01234567890",129
+CLCC: 2,1,5,0,0,"09876543210",129 <- new call is still in WAITING state
OK
+CIEV: 7,2 <- phone iternally promotes WAITING call to INCOMING
AT+CHLD=2  <- there is no WAITING call anymore, ATA should be used
+CME ERROR:3
---
 drivers/hfpmodem/voicecall.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/hfpmodem/voicecall.c b/drivers/hfpmodem/voicecall.c
index d0e9353796c335a1fc876779345eedeb6556345d..782fae867ebe0280eaf7b039e60e901bd8812669 100644
--- a/drivers/hfpmodem/voicecall.c
+++ b/drivers/hfpmodem/voicecall.c
@@ -1110,7 +1110,19 @@ static void ciev_callheld_notify(struct ofono_voicecall *vc,
 			 */
 			vd->clcc_source = g_timeout_add(POLL_CLCC_DELAY,
 							poll_clcc, vc);
+		} else {
+			if (vd->clcc_source)
+				g_source_remove(vd->clcc_source);
+
+			/*
+			 * We got a notification that there is a held call
+			 * and no active call but we already are in such state.
+			 * Let's schedule a poll to see what happened.
+			 */
+			vd->clcc_source = g_timeout_add(POLL_CLCC_DELAY,
+							poll_clcc, vc);
 		}
+
 	}
 
 	vd->cind_val[HFP_INDICATOR_CALLHELD] = value;
-- 
1.9.3

Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] hfpmodem: Handle repeated held call indicator
  2016-01-12 15:03 [PATCH v2] hfpmodem: Handle repeated held call indicator Kuba Pawlak
@ 2016-01-12 16:31 ` Denis Kenzior
  0 siblings, 0 replies; 2+ messages in thread
From: Denis Kenzior @ 2016-01-12 16:31 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 1313 bytes --]

Hi Kuba,

On 01/12/2016 09:03 AM, Kuba Pawlak wrote:
> An issue with iPhone 5C iOS 9.2 triggers desynchronization in call
> states. When an active call is put on hold and another call arrives,
> it is in WAITING state. It should be possible to answer it by issuing
> AT+CHLD=2 but the phone changes its state to INCOMING so ATA should be
> used. This change is advertised by sending callheld:2 event, but it is
> not handled. This event can be used to trigger CLCC poll to synchronize
> call states.
>
> +CIEV: 3,1   <- first call arrives
> AT+CLCC
> +CLCC: 1,1,4,0,0,"01234567890",129
> OK
> RING
> +CLIP: "01234567890",129
> ATA
> OK
> +CIEV: 2,1
> +CIEV: 3,0.
> AT+CHLD=2.$  <- first call is put on hold
> OK
> +CIEV: 7,2   <- notification confirming that call #1 is on hold
> +CCWA: "09876543210",129,1     <- second call arrives
> +CIEV: 7,2
> +CIEV: 3,1
> AT+CLCC
> +CLCC: 1,1,1,0,0,"01234567890",129
> +CLCC: 2,1,5,0,0,"09876543210",129 <- new call is still in WAITING state
> OK
> +CIEV: 7,2 <- phone iternally promotes WAITING call to INCOMING
> AT+CHLD=2  <- there is no WAITING call anymore, ATA should be used
> +CME ERROR:3
> ---
>   drivers/hfpmodem/voicecall.c | 12 ++++++++++++
>   1 file changed, 12 insertions(+)
>

Applied, thanks.

Regards,
-Denis


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-01-12 16:31 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-12 15:03 [PATCH v2] hfpmodem: Handle repeated held call indicator Kuba Pawlak
2016-01-12 16:31 ` Denis Kenzior

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.