OSDN Git Service

Do not send AT+CHLD=? if the 3-way call feature is not supported
authorDevin Kim <dojip.kim@lge.com>
Thu, 14 Jan 2016 01:37:57 +0000 (10:37 +0900)
committerSharvil Nanavati <sharvil@google.com>
Fri, 15 Jan 2016 02:08:16 +0000 (18:08 -0800)
The HF shall not issue the AT+CHLD=? test command in case
either the HF or the AG does not support the Three-way calling feature.
Currently HF sends AT+CHLD=? to AG device when SLC sequence on going.
It affects to SCO statemachine so that after going out of range and
coming back in range while active call alives, SCO state goes bad and
never comes back. This is out of specification of HFP and it should be
fixed by checking peer and local 3way call capability check.

Bug: 25703926
Change-Id: I66adac2345c6fb0df6741fdbfa67d9483fc38a00

bta/hf_client/bta_hf_client_main.c

index c573db6..f7afbf4 100644 (file)
@@ -612,7 +612,8 @@ void bta_hf_client_slc_seq(BOOLEAN error)
         break;
 
     case BTA_HF_CLIENT_AT_CMER:
-        if (bta_hf_client_cb.scb.peer_features & BTA_HF_CLIENT_PEER_FEAT_3WAY)
+        if (bta_hf_client_cb.scb.peer_features & BTA_HF_CLIENT_PEER_FEAT_3WAY
+               && bta_hf_client_cb.scb.features & BTA_HF_CLIENT_FEAT_3WAY)
         {
             bta_hf_client_send_at_chld('?', 0);
         }