diff options
-rw-r--r-- | bta/ag/bta_ag_cmd.c | 2 | ||||
-rw-r--r-- | bta/ag/bta_ag_main.c | 2 | ||||
-rwxr-xr-x | btif/src/btif_hf.c | 4 |
3 files changed, 6 insertions, 2 deletions
diff --git a/bta/ag/bta_ag_cmd.c b/bta/ag/bta_ag_cmd.c index ae0febd..632f6f5 100644 --- a/bta/ag/bta_ag_cmd.c +++ b/bta/ag/bta_ag_cmd.c @@ -25,7 +25,7 @@ *****************************************************************************/ /* ring timeout */ -#define BTA_AG_RING_TOUT 4000 +#define BTA_AG_RING_TOUT 10000 #define BTA_AG_CMD_MAX_VAL 32767 /* Maximum value is signed 16-bit value */ diff --git a/bta/ag/bta_ag_main.c b/bta/ag/bta_ag_main.c index df576cc..1a3bf71 100644 --- a/bta/ag/bta_ag_main.c +++ b/bta/ag/bta_ag_main.c @@ -205,7 +205,7 @@ const UINT8 bta_ag_st_open[][BTA_AG_NUM_COLS] = /* DISC_FAIL_EVT */ {BTA_AG_IGNORE, BTA_AG_IGNORE, BTA_AG_OPEN_ST}, /* CI_RX_WRITE_EVT */ {BTA_AG_CI_RX_DATA, BTA_AG_IGNORE, BTA_AG_OPEN_ST}, /* RING_TOUT_EVT */ {BTA_AG_SEND_RING, BTA_AG_IGNORE, BTA_AG_OPEN_ST}, -/* SVC_TOUT_EVT */ {BTA_AG_SVC_CONN_OPEN, BTA_AG_IGNORE, BTA_AG_OPEN_ST}, +/* SVC_TOUT_EVT */ {BTA_AG_START_CLOSE, BTA_AG_IGNORE, BTA_AG_CLOSING_ST}, /* CI_SCO_DATA_EVT */ {BTA_AG_CI_SCO_DATA, BTA_AG_IGNORE, BTA_AG_OPEN_ST}, /* CI_SLC_READY_EVT */ {BTA_AG_RCVD_SLC_READY, BTA_AG_IGNORE, BTA_AG_OPEN_ST} }; diff --git a/btif/src/btif_hf.c b/btif/src/btif_hf.c index bcbf00a..63b1787 100755 --- a/btif/src/btif_hf.c +++ b/btif/src/btif_hf.c @@ -328,6 +328,10 @@ static void btif_hf_upstreams_evt(UINT16 event, char* p_param) bdsetany(btif_hf_cb.connected_bda.address); btif_hf_cb.peer_feat = 0; clear_phone_state(); + /* If AG_OPEN was received but SLC was not setup in a specified time (10 seconds), + ** then AG_CLOSE may be received. We need to advance the queue here + */ + btif_queue_advance(); break; case BTA_AG_CONN_EVT: |