From ddcf2a1ee477de2630ab233c3fb34464666e3ac9 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Tue, 6 Sep 2022 06:34:43 +0200 Subject: mobile: vty: add 'audio_frame' cmd --- src/host/layer23/src/mobile/vty_interface.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/host/layer23/src/mobile/vty_interface.c b/src/host/layer23/src/mobile/vty_interface.c index d6f6cd1d..d4f8449e 100644 --- a/src/host/layer23/src/mobile/vty_interface.c +++ b/src/host/layer23/src/mobile/vty_interface.c @@ -37,6 +37,7 @@ #include #include #include +#include #include #include @@ -899,6 +900,28 @@ DEFUN(call_dtmf, call_dtmf_cmd, "call MS_NAME dtmf DIGITS", return CMD_SUCCESS; } +DEFUN(audio_frame, audio_frame_cmd, + "audio_frame MS_NAME", + "Send a single audio frame with random data (a voice call must be active)\n" + "Name of MS (e.g. \"1\", see \"show ms\")\n") +{ + struct osmocom_ms *ms; + uint8_t buf[sizeof(struct gsm_data_frame) + 64] = {}; + struct gsm_data_frame *frame = (void*)buf; + int rc; + + frame->data[0] = 0xd0; + + ms = get_ms(argv[0], vty); + if (!ms) + return CMD_WARNING; + if (gsm_send_voice(ms, (void*)buf) < 0) { + vty_out(vty, "sending audio frame failed, see log%s", VTY_NEWLINE); + return CMD_WARNING; + } + return CMD_SUCCESS; +} + DEFUN(sms, sms_cmd, "sms MS_NAME NUMBER .LINE", "Send an SMS\nName of MS (see \"show ms\")\nPhone number to send SMS " "(Use digits '0123456789*#abc', and '+' to dial international)\n" @@ -2909,6 +2932,7 @@ int ms_vty_init(void) install_element(ENABLE_NODE, &call_cmd); install_element(ENABLE_NODE, &call_retr_cmd); install_element(ENABLE_NODE, &call_dtmf_cmd); + install_element(ENABLE_NODE, &audio_frame_cmd); install_element(ENABLE_NODE, &sms_cmd); install_element(ENABLE_NODE, &service_cmd); install_element(ENABLE_NODE, &test_reselection_cmd); -- cgit v1.2.3