This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
fixeria gerrit-no-reply at lists.osmocom.orgfixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/17593 ) Change subject: mobile: add audio config, with unused audio loopback setting ...................................................................... mobile: add audio config, with unused audio loopback setting The aim is to add configurable audio loopback to mobile. An existing patch on a branch from fixeria [1] adds the audio config section. Add a reduced version of this audio config to be compatible with the future merge. Add the audio loopback setting, so far without functionality. Subsequent patch adds the actual loopback. [1] osmocom-bb branch fixeria/audio, patch "mobile/vty_interface.c: add new 'audio' section" Change-id I62cd5ef22ca2290fcafe65c78537ddbcb39fb8c6 Change-Id: Ie03e4a6c6f81ea3925266dd22e87506d722a6e1a --- M doc/examples/mobile/default.cfg M doc/examples/mobile/multi_ms.cfg M src/host/layer23/include/osmocom/bb/mobile/settings.h M src/host/layer23/include/osmocom/bb/mobile/vty.h M src/host/layer23/src/mobile/settings.c M src/host/layer23/src/mobile/vty_interface.c 6 files changed, 90 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/doc/examples/mobile/default.cfg b/doc/examples/mobile/default.cfg index cc81630..f14e900 100644 --- a/doc/examples/mobile/default.cfg +++ b/doc/examples/mobile/default.cfg @@ -59,4 +59,6 @@ ki comp128 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 no barred-access rplmn 001 01 + audio + io-handler none no shutdown diff --git a/doc/examples/mobile/multi_ms.cfg b/doc/examples/mobile/multi_ms.cfg index bef2406..c72817f 100644 --- a/doc/examples/mobile/multi_ms.cfg +++ b/doc/examples/mobile/multi_ms.cfg @@ -59,6 +59,8 @@ ki comp128 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 no barred-access rplmn 001 01 + audio + io-handler none no shutdown ! ms two @@ -109,4 +111,6 @@ ki comp128 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff no barred-access rplmn 001 01 + audio + io-handler none no shutdown diff --git a/src/host/layer23/include/osmocom/bb/mobile/settings.h b/src/host/layer23/include/osmocom/bb/mobile/settings.h index 4e5d5a1..57f23ee 100644 --- a/src/host/layer23/include/osmocom/bb/mobile/settings.h +++ b/src/host/layer23/include/osmocom/bb/mobile/settings.h @@ -3,10 +3,29 @@ #define MOB_C7_DEFLT_ANY_TIMEOUT 30 +/* TCH frame I/O handler */ +enum audio_io_handler { + /* No handler, drop frames */ + AUDIO_IOH_NONE = 0, + /* Return to sender */ + AUDIO_IOH_LOOPBACK, +}; + +extern const struct value_string audio_io_handler_names[]; +static inline const char *audio_io_handler_name(enum audio_io_handler val) +{ return get_value_string(audio_io_handler_names, val); } + +struct audio_settings { + enum audio_io_handler io_handler; +}; + struct gsm_settings { char layer2_socket_path[128]; char sap_socket_path[128]; + /* Audio settings */ + struct audio_settings audio; + /* IMEI */ char imei[16]; char imeisv[17]; diff --git a/src/host/layer23/include/osmocom/bb/mobile/vty.h b/src/host/layer23/include/osmocom/bb/mobile/vty.h index 3bec113..d066804 100644 --- a/src/host/layer23/include/osmocom/bb/mobile/vty.h +++ b/src/host/layer23/include/osmocom/bb/mobile/vty.h @@ -10,6 +10,7 @@ MS_NODE = _LAST_OSMOVTY_NODE + 1, TESTSIM_NODE, SUPPORT_NODE, + AUDIO_NODE, }; int ms_vty_go_parent(struct vty *vty); diff --git a/src/host/layer23/src/mobile/settings.c b/src/host/layer23/src/mobile/settings.c index 388c754..9742b1d 100644 --- a/src/host/layer23/src/mobile/settings.c +++ b/src/host/layer23/src/mobile/settings.c @@ -41,6 +41,9 @@ strcpy(set->layer2_socket_path, layer2_socket_path); strcpy(set->sap_socket_path, sap_socket_path); + /* Audio settings: drop TCH frames by default */ + set->audio.io_handler = AUDIO_IOH_NONE; + /* network search */ set->plmn_mode = PLMN_MODE_AUTO; @@ -194,3 +197,8 @@ return 0; } +const struct value_string audio_io_handler_names[] = { + { AUDIO_IOH_NONE, "none" }, + { AUDIO_IOH_LOOPBACK, "loopback" }, + { 0x00, NULL} +}; diff --git a/src/host/layer23/src/mobile/vty_interface.c b/src/host/layer23/src/mobile/vty_interface.c index 70ee703..073303c 100644 --- a/src/host/layer23/src/mobile/vty_interface.c +++ b/src/host/layer23/src/mobile/vty_interface.c @@ -65,6 +65,12 @@ 1 }; +struct cmd_node audio_node = { + AUDIO_NODE, + "%s(audio)# ", + 1 +}; + static void print_vty(void *priv, const char *fmt, ...) { char buffer[1000]; @@ -1526,6 +1532,10 @@ vty_out(vty, " c7-any-timeout %d%s", set->any_timeout, VTY_NEWLINE); + vty_out(vty, " audio%s", VTY_NEWLINE); + if (!hide_default || set->audio.io_handler != AUDIO_IOH_NONE) + vty_out(vty, " io-handler %s%s", audio_io_handler_name(set->audio.io_handler), VTY_NEWLINE); + /* no shutdown must be written to config, because shutdown is default */ vty_out(vty, " %sshutdown%s", (ms->shutdown != MS_SHUTDOWN_NONE) ? "" : "no ", VTY_NEWLINE); @@ -2727,6 +2737,46 @@ return CMD_SUCCESS; } +/* per audio config */ +DEFUN(cfg_ms_audio, cfg_ms_audio_cmd, "audio", + "Configure audio settings") +{ + vty->node = AUDIO_NODE; + return CMD_SUCCESS; +} + +static int set_audio_io_handler(struct vty *vty, enum audio_io_handler val) +{ + struct osmocom_ms *ms = (struct osmocom_ms *) vty->index; + struct gsm_settings *set = &ms->settings; + + /* Don't restart on unchanged value */ + if (val == set->audio.io_handler) + return CMD_SUCCESS; + set->audio.io_handler = val; + + /* Restart required */ + vty_restart_if_started(vty, ms); + + return CMD_SUCCESS; +} + +DEFUN(cfg_ms_audio_io_handler, cfg_ms_audio_io_handler_cmd, + "io-handler (loopback|none)", + "Set TCH frame I/O handler\n" + "Return TCH frame payload back to sender\n" + "No handler, drop TCH frames (default)") +{ + int val = get_string_value(audio_io_handler_names, argv[0]); + return set_audio_io_handler(vty, val); +} + +DEFUN(cfg_ms_audio_no_io_handler, cfg_ms_audio_no_io_handler_cmd, + "no io-handler", NO_STR "Disable TCH frame processing") +{ + return set_audio_io_handler(vty, AUDIO_IOH_NONE); +} + DEFUN(cfg_no_shutdown, cfg_ms_no_shutdown_cmd, "no shutdown", NO_STR "Activate and run MS") { @@ -2807,6 +2857,7 @@ break; case TESTSIM_NODE: case SUPPORT_NODE: + case AUDIO_NODE: vty->node = MS_NODE; break; default: @@ -2918,6 +2969,7 @@ install_element(MS_NODE, &cfg_ms_abbrev_cmd); install_element(MS_NODE, &cfg_ms_no_abbrev_cmd); install_element(MS_NODE, &cfg_ms_testsim_cmd); + install_element(MS_NODE, &cfg_ms_audio_cmd); install_element(MS_NODE, &cfg_ms_neighbour_cmd); install_element(MS_NODE, &cfg_ms_no_neighbour_cmd); install_element(MS_NODE, &cfg_ms_any_timeout_cmd); @@ -2995,6 +3047,10 @@ install_element(MS_NODE, &cfg_ms_script_load_run_cmd); install_element(MS_NODE, &cfg_ms_no_script_load_run_cmd); + install_node(&audio_node, config_write_dummy); + install_element(AUDIO_NODE, &cfg_ms_audio_io_handler_cmd); + install_element(AUDIO_NODE, &cfg_ms_audio_no_io_handler_cmd); + /* Register the talloc context introspection command */ osmo_talloc_vty_add_cmds(); -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/17593 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Ie03e4a6c6f81ea3925266dd22e87506d722a6e1a Gerrit-Change-Number: 17593 Gerrit-PatchSet: 5 Gerrit-Owner: neels <nhofmeyr at sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <axilirator at gmail.com> Gerrit-Reviewer: laforge <laforge at osmocom.org> Gerrit-Reviewer: neels <nhofmeyr at sysmocom.de> Gerrit-Reviewer: osmith <osmith at sysmocom.de> Gerrit-Reviewer: pespin <pespin at sysmocom.de> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200505/fd0f9fc8/attachment.htm>