Holger Hans Peter Freyther wrote:
Codec selection in a real network works a bit differently. It is applied in the BSC and the MSC. The MSC can/will look at the bearer capabilities and then ask the BSC to choose from a list of codecs.
in oder to select a codec, the MSC must know. - what codecs it supports (or the other end, in case of TFO) - what codecs the MS supports (bearer capabilities) - what codecs the BTS supports
in my testing branch: the negotiation is done with LCR and even with built-in MNCC support of osmo-nitb. in case of built-in MNCC, a commonly supported codec (by both MS in a call) is used.
i do not know how the MSC (in a real network) knows about what codecs are supported by the BTS in order to select a supported codec. in this patch i simply remove unsupported codecs from bearer capabilities, so all remaining codecs are supported by BTS and the MS. the MSC will only receive a list of commonly supported codecs.
my question is: how does the MSC in a real network knows what codecs are supported by BTS, so it can skip unsupported codecs when negotiating with the other end?