Commit Graph

7367 Commits

Author SHA1 Message Date
Neels Hofmeyr 058c276133 wip
Change-Id: I00a410e0c01a527d7bbd978da91649f4fdf6775c
2024-02-25 06:24:01 +01:00
Neels Hofmeyr bd7dfe0b2d sdp
Change-Id: If693a0998b6048fb94f10a8049e78b985c55d60e
2024-02-25 03:49:31 +01:00
Neels Hofmeyr 0f6d1effd6 sdp_codec_to_str
Change-Id: I297d425eeac47a83c0f0f2e25b834d2b889c7598
2024-02-25 03:49:31 +01:00
Neels Hofmeyr ee8f99308c sdp
Change-Id: I7f024d8496fd2541866bb34fbb1a574e348964a3
2024-02-25 03:49:31 +01:00
Neels Hofmeyr fd600eb6c2 sdp
Change-Id: I2ffd0ff70c859423c857e84dfaeddec1a0a33a27
2024-02-25 03:49:31 +01:00
Neels Hofmeyr 0e79ac148d sdp_codec_to_str
Change-Id: I6424fa4f8c0a2a583127f00db7a311b4a91b8bbd
2024-02-25 03:49:31 +01:00
Neels Hofmeyr 12dddab03d sdp
Change-Id: Id1b7dd406d5e8e9ae89c5f901a79e2b6135c5202
2024-02-25 03:49:31 +01:00
Neels Hofmeyr f5a7003d86 wip
Change-Id: I974a02ecf8f280177c0ad616a05bb2aabf0d54ff
2024-02-25 03:49:31 +01:00
Neels Hofmeyr 757f793a9a sdp
Change-Id: Ia0484192ba318ee712a9910f631c169060dfabd8
2024-02-25 03:49:31 +01:00
Neels Hofmeyr 9e63d47df4 sdp
Change-Id: Iad35a810669b9824c393af149b7680d42f3df793
2024-02-25 03:49:31 +01:00
Neels Hofmeyr f2fca2a2b1 ws
Change-Id: Ib872882dd06f4240990abacbe22f32aadc7018ac
2024-02-25 03:49:31 +01:00
Neels Hofmeyr 5c905ff873 sdp
Change-Id: Ie425fb586b25fabdc85a42261168f22fae9c3d90
2024-02-25 03:49:31 +01:00
Neels Hofmeyr 183344cd84 msc_vlr_test_call: sane codecs from ran_infra defaults
Change-Id: I83407a1e487237b8805726f9918a3f9186a387cf
2024-02-25 03:49:28 +01:00
Neels Hofmeyr a7918c2241 ran_infra codecs init
Change-Id: I7f7d50eecbd1dcde3a31eb34789e385815bb5a72
2024-02-25 03:48:51 +01:00
Neels Hofmeyr 521f0664a2 all AMR rates in codec_mapping
Change-Id: I1b3fde18a903a8072fecc49ee8ba60307bb2a94e
2024-02-25 03:47:56 +01:00
Neels Hofmeyr bc1dc3bfb8 update_exp
Change-Id: I5e411106ee9206dce6862fec7bc64aaf651e4c2b
2024-02-25 03:43:13 +01:00
Neels Hofmeyr 992baaf205 codecs_match
Change-Id: I5975519e04472b5fd6bf447950c0f8a4147c8d00
2024-02-25 03:43:13 +01:00
Neels Hofmeyr 9d7aa7fcbc update_exp
Change-Id: Ie3389c1a8e0e9718d1564f63335eadf0f61c127e
2024-02-25 03:43:13 +01:00
Neels Hofmeyr f5bd47848f dbg log
Change-Id: Id63ec713e2a8156858f37a2d04159265f36309c7
2024-02-25 03:43:13 +01:00
Neels Hofmeyr 015ebd730e dbg log
Change-Id: I228155695031377e892f844537f9f9d8e80526f6
2024-02-25 03:43:13 +01:00
Neels Hofmeyr d3b270cd02 dbg log
Change-Id: I2e0d5ef66a97b0d8f82f74f12b16884509710c47
2024-02-25 03:43:13 +01:00
Neels Hofmeyr 934c263e0e dbg log
Change-Id: Ia3332166bd2d599c8c12fe9c699c93f40eb1391c
2024-02-25 03:43:12 +01:00
Neels Hofmeyr cd7bcc3df2 tmp dbg log
Change-Id: I1341abf450c2b183bc8b0cf08ce13325512b18c7
2024-02-25 03:43:12 +01:00
Neels Hofmeyr 28a805a6fb tmp dbg validate_perm_speech
Change-Id: Ic853e43a4d2f1db32f20dc2ac7dcfd5b5c20aea8
2024-02-25 03:43:12 +01:00
Neels Hofmeyr 1802478428 tmp dbg
Change-Id: If8b30d6efc1c70ed0e5b0de5b27309f6fc3a2f1b
2024-02-25 03:43:12 +01:00
Neels Hofmeyr cb75da2e30 update_exp
Change-Id: I356992c3aa1de7a8e38c25bf7fd4574b8e36ce18
2024-02-25 03:43:12 +01:00
Neels Hofmeyr de8a282d8d protect re-assignment codec choice from previous codec
Change-Id: I268e19c032429e87ad8f6c949957a887bcb67650
2024-02-25 03:43:12 +01:00
Neels Hofmeyr 7eead3672c base re-assignment based on remote's *first* codec
Change-Id: I51b4b9e511743ea56b84a4584d7d1cb15c08417e
2024-02-25 03:43:12 +01:00
Neels Hofmeyr 02c466e224 codec_mapping: list FR-in-HR-compat last
Change-Id: I04a3baaced36bc99310e1a811cceda6c88030533
2024-02-25 03:43:12 +01:00
Neels Hofmeyr 189a262206 select remote's first codec
Change-Id: I21452edfce34ced393ebb83a5a8b2a746f78d9c6
2024-02-25 03:43:12 +01:00
Neels Hofmeyr dcb6ce71c2 make sdp_audio_codecs_select() safe for any codec
So far, the selected codec needs to be a member of the list. Instead,
make this API safe for any instance, member or not, by looking it up.

Remove the lookup from the only caller.
A subsequent patch adds another caller that would have needed a manual
lookup before calling sdp_audio_codecs_select().

Change-Id: Ic1b5ba46c6f4c58e518b080bcb9b5741cb70ccc3
2024-02-25 03:43:12 +01:00
Neels Hofmeyr d94fe1cd37 hr test 2
Change-Id: I1ae2dc48c42fda62ab875242b31ed2ea9e3cea53
2024-02-25 03:43:12 +01:00
Neels Hofmeyr b3d0d4eb28 new_test
Change-Id: Ib14146edd633a4f8c82c018932b5f21336422295
2024-02-25 03:43:12 +01:00
Neels Hofmeyr f07366de22 msc_vlr_test_call tweaks
Change-Id: I3dfd35c76e85c9caf6c320b1cb21cdf214c1ffd3
2024-02-25 03:43:12 +01:00
Neels Hofmeyr d015da36ee hr_first
Change-Id: Id098b39bc55df691aae09b6d6096a73f9d911f79
2024-02-25 03:43:12 +01:00
Neels Hofmeyr c7ea1352e9 msc_vlr_test_call: add test for AMR-HR to AMR-FR matching
Change-Id: I4d8f9ef19c6b1b0016dade027f2ab667da7858d3
2024-02-25 03:43:12 +01:00
Neels Hofmeyr d70e0e355f only first AMR mode-set wip
Change-Id: I66d7822357648c5eb8e2edf27f4f6ce31f4091b4
2024-02-25 03:43:12 +01:00
Neels Hofmeyr e72a58d4bf codecs_node
Change-Id: Ib5655214ce48c66d095e8f1b7b7106ac3ee43ec0
2024-02-25 03:43:12 +01:00
Neels Hofmeyr 10d47901fd make default RAN codecs configurable in ran_infra
Instead of generating the default codecs list for a RAN for each call,
place a pre-composed list in ran_infra.c.

(1) The main aim is to allow configuring this list -- subsequent commit
Ib5655214ce48c66d095e8f1b7b7106ac3ee43ec0 will add the VTY commands to
modify the predefined lists.

(2) As a free side effect, this also allows configuring the order of
preference for specific codecs.

(3) It may also save us some iterations of the codec_map[], which may
grow a lot more variants; for example, we could add one entry for each
possible AMR mode-set...

Change-Id: If46231a53f7512dbd81790fd30462d65fe059aa3
2024-02-25 03:43:12 +01:00
Neels Hofmeyr 390df2f954 pass dynamically configured AMR rates to BSS and RNC [3/3]
In ran_msg_iu.c for 3G:

Compose a list of RAB subflows from the AMR codecs present in the codec
list passed in from msc_a. These will hopefully result in the correct
RFCIs configured in the IuUP Initialization that the MGW receives.

Depends: osmo-iuh I61e0e9e75e3239662846fd797532acdefa9f73dc
Change-Id: Ia9f4ad7f3646556aadc632bc5ffa477941626c5f
2024-02-25 03:43:12 +01:00
Neels Hofmeyr 11365c62c5 pass dynamically configured AMR rates to BSS and RNC [2/3]
In ran_msg_a.c for 2G:

Use sdp_audio_codecs_to_speech_codec_list() to get the correct AMR cfg
bits in the outgoing Speech Codec List (MSC Preferred).

The static function to convert from Speech Versions is no longer used,
move its special-case for CSD to the caller location.

With this patch, a BSC now has a chance to select AMR rates matching the
other call leg, dynamically.

Change-Id: Ia9f4ad7f3646556aadc632bc5ffa477941626c5f
2024-02-25 03:43:12 +01:00
Neels Hofmeyr 03d015e786 pass dynamically configured AMR rates to BSS and RNC [1/3]
These changes will allow dynamically negotiating AMR rates between 2G
and 3G, and between full-rate and half-rate, spanning from 2G and 3G RAN
all the way across to SDP over MNCC / SIP and back.

To ran_msg_assignment, add a full codecs list (sdp_audio_codecs).
So far, there was only the gsm0808_channel_type with a list of
permitted-speech entries, which is not a complete representation.

This patch only adds the list, the two users of this are added in
separate patches:

[2/3] In ran_msg_a.c for 2G:

Before this, we pass a gsm0808_channel_type to ran_msg_assignment, and
from *that* we derive a gsm0808_speech_codec_list -- this loses the AMR
rate config bits. So far, we always transmitted the default cfg bits
defined in gsm0808_speech_codec_defaults, enabling all supported S0-S15
AMR rate combinations. Instead, we'll directly derive the available AMR
rates from the list of SDP codecs resulting from the codecs filter.

[3/3] In ran_msg_iu.c for 3G:

Before this, we compose a fixed set of RAB SDU subflows, i.e. for
exactly and only AMR 12k2. Now, we'll ask for RAB subflows corresponding
to the AMR codec's mode-set fmtp present in the codec list.

Change-Id: Ia9f4ad7f3646556aadc632bc5ffa477941626c5f
2024-02-25 03:43:12 +01:00
Neels Hofmeyr 87c6243b3d sdp_msg: increase max codecs to 64
Change-Id: I3f88eb954de2f50b833297627f9717313778fd12
2024-02-25 03:43:12 +01:00
Neels Hofmeyr 8216b39ead new test
Change-Id: Ic01dd2b5243137d9a9799ff315ffb5713dcf8108
2024-02-25 03:43:12 +01:00
Neels Hofmeyr 2b83b385cd msc_vlr_test_call: assignment indicate FR or HR
Change-Id: I47c18a56a86005d6ae270bfd78bc13b2a7560192
2024-02-25 03:43:12 +01:00
Neels Hofmeyr 602961bc5d msc_vlr_tests: allow more detail for assigned codec
An upcoming test needs to model assignment of a specific AMR variant.
Use sdp_codec_from_str(), which adds the ability to add specific AMR
modes to Assignment Complete messages.

Change-Id: I37680b9bef5ff989b1fcb0816eedae09282d9351
2024-02-25 03:43:12 +01:00
Neels Hofmeyr 60ff867cb5 msc_vlr_test_call: log tweak
Change-Id: I64604634fd7eedc088442f8d21d682095c397a63
2024-02-25 03:43:12 +01:00
Neels Hofmeyr 4f16f742bb tweak comment
Change-Id: I27d8af3cad57d6cef646f341d78ec52159ffa4b5
2024-02-25 03:43:12 +01:00
Neels Hofmeyr f73c91838b whitespace
Change-Id: I0eb7db3a48d1972dd01dcf8483922dfb4dc380c9
2024-02-25 03:43:12 +01:00
Neels Hofmeyr 788a47fe23 amr_mode_set.txt
Change-Id: If6cce37b37018ec0f138bd14fc5d3bdfb455ac04
2024-02-25 03:43:12 +01:00