Bug #5926
opencodec_pref.c prohibits running a BTS only on TCH/F with only 12k2 AMR
80%
Description
In osmo-bsc.cfg, I have only TCH/F timeslots configured.
I want to force 12k2 AMR, hence I have
amr tch-f modes 7
and I figure this makes sense too:
msc 0 codec-list fr3 amr-config 12_2k allowed amr-config 10_2k forbidden amr-config 7_95k forbidden amr-config 7_40k forbidden amr-config 6_70k forbidden amr-config 5_90k forbidden amr-config 5_15k forbidden amr-config 4_75k forbidden
Now codec_pref.c tells me on BSC startup:
20230228033728416 DMSC FATAL network amr tch-h mode config of BTS 0 does not intersect with amr-config of MSC 0 (codec_pref.c:496) 20230228033728416 DMSC FATAL network amr tch-h mode config of BTS 1 does not intersect with amr-config of MSC 0 (codec_pref.c:496) 20230228033728416 DMSC ERROR Configuration contains mutually exclusive codec settings -- check configuration! (osmo_bsc_main.c:988) 20230228033728416 DMSC ERROR You should really fix that! However, you can prevent OsmoBSC from stopping here by setting 'allow-unusable-timeslots' in the 'network' section of the config. (osmo_bsc_main.c:991)
Pointless when there are no physical channel configurations that could possibly run TCH/H at all.
I could add 'allow-unusable-timeslots', but a) there aren't any and b) i would switch off sanity checking for my TCH/F timeslots.
Related, I cannot configure 'tch-h modes' to be empty.
So I have to allow at least one tch/h capable AMR rate
network bts 0 amr tch-f modes 7 amr tch-h modes 0 msc 0 codec-list fr3 amr-config 12_2k allowed amr-config 10_2k forbidden amr-config 7_95k forbidden amr-config 7_40k forbidden amr-config 6_70k forbidden amr-config 5_90k forbidden amr-config 5_15k forbidden amr-config 4_75k allowed
So for tch-f I am allowing only 7 (12k2) as I want to achieve for testing,
but I still have to configure some tch-h and allow one of its rates for osmo-bsc to start without complaining.
In codec_pref.c, we should probably ignore TCH/H when there is no TCH/H capable timeslot present in a BTS.
Also we should ignore TCH/F when no TCH/F capable timeslot is present.
In extension, if a BTS has no TCH timeslots at all, we should not check codecs at all.
Files