mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-01-26 21:35:16 +00:00
test enhanced call status
This commit is contained in:
parent
2c83f1b764
commit
ae7b82612a
@ -1820,7 +1820,7 @@ void hfp_ag_send_current_call_status(bd_addr_t bd_addr, int idx, hfp_enhanced_ca
|
|||||||
char buffer[100];
|
char buffer[100];
|
||||||
int offset = snprintf(buffer, sizeof(buffer), "\r\n%s: %d,%d,%d,%d,%d", HFP_LIST_CURRENT_CALLS, idx, dir, status, mode, mpty);
|
int offset = snprintf(buffer, sizeof(buffer), "\r\n%s: %d,%d,%d,%d,%d", HFP_LIST_CURRENT_CALLS, idx, dir, status, mode, mpty);
|
||||||
if (number){
|
if (number){
|
||||||
offset += snprintf(buffer+offset, sizeof(buffer)-offset, "\"%s\",%u", number, type);
|
offset += snprintf(buffer+offset, sizeof(buffer)-offset, ", \"%s\",%u", number, type);
|
||||||
}
|
}
|
||||||
snprintf(buffer+offset, sizeof(buffer)-offset, "\r\n");
|
snprintf(buffer+offset, sizeof(buffer)-offset, "\r\n");
|
||||||
send_str_over_rfcomm(connection->rfcomm_cid, buffer);
|
send_str_over_rfcomm(connection->rfcomm_cid, buffer);
|
||||||
|
@ -79,6 +79,12 @@ static uint16_t handle = -1;
|
|||||||
static int memory_1_enabled = 1;
|
static int memory_1_enabled = 1;
|
||||||
static int last_number_exists = 1;
|
static int last_number_exists = 1;
|
||||||
|
|
||||||
|
static int current_call_info_available = 0;
|
||||||
|
static hfp_enhanced_call_dir_t current_call_dir;
|
||||||
|
static hfp_enhanced_call_status_t current_call_status;
|
||||||
|
static hfp_enhanced_call_mpty_t current_call_mpty = HFP_ENHANCED_CALL_MPTY_NOT_A_CONFERENCE_CALL;
|
||||||
|
static char * current_call_number = NULL;
|
||||||
|
|
||||||
static int ag_indicators_nr = 7;
|
static int ag_indicators_nr = 7;
|
||||||
static hfp_ag_indicator_t ag_indicators[] = {
|
static hfp_ag_indicator_t ag_indicators[] = {
|
||||||
// index, name, min range, max range, status, mandatory, enabled, status changed
|
// index, name, min range, max range, status, mandatory, enabled, status changed
|
||||||
@ -203,11 +209,19 @@ static int stdin_process(struct data_source *ds){
|
|||||||
break;
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
printf("Simulate incoming call from 1234567\n");
|
printf("Simulate incoming call from 1234567\n");
|
||||||
|
current_call_info_available = 1;
|
||||||
|
current_call_dir = HFP_ENHANCED_CALL_DIR_INCOMING;
|
||||||
|
current_call_status = HFP_ENHANCED_CALL_STATUS_INCOMING;
|
||||||
|
current_call_number = "1234567";
|
||||||
hfp_ag_set_clip(129, "1234567");
|
hfp_ag_set_clip(129, "1234567");
|
||||||
hfp_ag_incoming_call();
|
hfp_ag_incoming_call();
|
||||||
break;
|
break;
|
||||||
case 'm':
|
case 'm':
|
||||||
printf("Simulate incoming call from 7654321\n");
|
printf("Simulate incoming call from 7654321\n");
|
||||||
|
current_call_info_available = 1;
|
||||||
|
current_call_dir = HFP_ENHANCED_CALL_DIR_INCOMING;
|
||||||
|
current_call_status = HFP_ENHANCED_CALL_STATUS_INCOMING;
|
||||||
|
current_call_number = "7654321";
|
||||||
hfp_ag_set_clip(129, "7654321");
|
hfp_ag_set_clip(129, "7654321");
|
||||||
hfp_ag_incoming_call();
|
hfp_ag_incoming_call();
|
||||||
break;
|
break;
|
||||||
@ -221,10 +235,12 @@ static int stdin_process(struct data_source *ds){
|
|||||||
break;
|
break;
|
||||||
case 'e':
|
case 'e':
|
||||||
printf("Answer call on AG\n");
|
printf("Answer call on AG\n");
|
||||||
|
current_call_status = HFP_ENHANCED_CALL_STATUS_ACTIVE;
|
||||||
hfp_ag_answer_incoming_call();
|
hfp_ag_answer_incoming_call();
|
||||||
break;
|
break;
|
||||||
case 'E':
|
case 'E':
|
||||||
printf("Reject call on AG\n");
|
printf("Reject call on AG\n");
|
||||||
|
current_call_info_available = 0;
|
||||||
hfp_ag_terminate_call();
|
hfp_ag_terminate_call();
|
||||||
break;
|
break;
|
||||||
case 'f':
|
case 'f':
|
||||||
@ -348,6 +364,7 @@ static void packet_handler(uint8_t * event, uint16_t event_size){
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (event[0] != HCI_EVENT_HFP_META) return;
|
if (event[0] != HCI_EVENT_HFP_META) return;
|
||||||
|
|
||||||
if (event[3]
|
if (event[3]
|
||||||
&& event[2] != HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER
|
&& event[2] != HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER
|
||||||
&& event[2] != HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG
|
&& event[2] != HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG
|
||||||
@ -411,9 +428,16 @@ static void packet_handler(uint8_t * event, uint16_t event_size){
|
|||||||
printf("\n** Send DTMF Codes: '%s'\n", &event[3]);
|
printf("\n** Send DTMF Codes: '%s'\n", &event[3]);
|
||||||
hfp_ag_send_dtmf_code_done(device_addr);
|
hfp_ag_send_dtmf_code_done(device_addr);
|
||||||
break;
|
break;
|
||||||
|
case HFP_SUBEVENT_TRANSMIT_STATUS_OF_CURRENT_CALL:
|
||||||
|
if (current_call_info_available){
|
||||||
|
current_call_info_available = 0;
|
||||||
|
hfp_ag_send_current_call_status(device_addr, 1, current_call_dir, current_call_status,
|
||||||
|
HFP_ENHANCED_CALL_MODE_VOICE, current_call_mpty, 129, current_call_number);
|
||||||
|
}
|
||||||
|
hfp_ag_send_current_call_status_done(device_addr);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
// printf("event not handled %u\n", event[2]);
|
printf("Event not handled %u\n", event[2]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user