gsm_08_08: allow zero length speech codec lists in compl l3 info.

The COMPLETE LAYER 3 INFORMATION message contains a an Codec List (BSS
Supported). When generating the compl l3 info msg, we check if the
speech codec list that we have generated before has at least one
element. If it has 0 elements we abort immediately. However, speech
codec lists with 0 elements are permitted by the spec, so we should
remove the checks as there are corner cases where voice support is
intentionally unavailable.

- Remove check for zero length speech codec lists.

Change-Id: Id7332e5273ff0efb85043dd1e1bb804cfe2db944
Depends: libosmocore I1eb1f4466b98bdd26d765b0e4cc690b5e89e9dd6
Related: OS#3657
This commit is contained in:
Philipp Maier 2018-10-16 15:52:24 +02:00
parent f105190cc6
commit 7656f5f90a
1 changed files with 1 additions and 6 deletions

View File

@ -495,12 +495,7 @@ static bool complete_layer3(struct gsm_subscriber_connection *conn,
if (gscon_is_aoip(conn)) {
gen_bss_supported_codec_list(&scl, msc, conn_get_bts(conn));
if (scl.len > 0)
resp = gsm0808_create_layer3_2(msg, cgi_for_msc(conn->sccp.msc, conn_get_bts(conn)), &scl);
else {
LOGP(DMSC, LOGL_ERROR, "Failed to create layer3 message due to empty speech codec list.\n");
return false;
}
resp = gsm0808_create_layer3_2(msg, cgi_for_msc(conn->sccp.msc, conn_get_bts(conn)), &scl);
} else
resp = gsm0808_create_layer3_2(msg, cgi_for_msc(conn->sccp.msc, conn_get_bts(conn)), NULL);