Hi Lennart,
First of all, thank you for being another person who cares about
supporting vintage GSM phones! As to your proposed patch to gsm48_ie.c
in libosmocore, I have a counterproposal - please see attachment.
Instead of patching gsm48_decode_bearer_cap(), I feel that it would be
more philosophically correct to patch the logic in
mncc_bearer_cap_to_channel_type() in OsmoMSC - I feel that IE encoding
and decoding functions should do just that, perform bit-level encoding
and decoding without higher-level interpretation of the data they
operate on, whereas the desired change is in the interpretation of the
condition of MS not having sent any speech version numbers.
Right now I don't have any phones that are old enough to support only
FR1 codec and not EFR. As of right now, the oldest working phone in
my collection is Ericsson I888, and even though it's a very old design
(older, higher-voltage internal components than market-release-date
contemporary Nokia DCT3 phones of the famed monitor mode variety), it
already supports both FR1 and EFR. (Interestingly enough, it does not
support HR codec - but then perhaps I shouldn't be surprised, as I
heard that HR1 is computationally intensive, and whatever ancient DSP
this phone has in it could easily lack the needed horsepower.)
Back to the topic of fixing Osmocom CNI software to work with ancient
FR1-only phones that don't send any octet 3a in their bearer cap IE, I
would appreciate it if someone with more seniority in Osmocom could
weigh in as to the most proper way to do it: would it be Lennart's
proposed patch to libosmocore, or my proposed patch to osmo-msc, or
some other, altogether different approach?
In solidarity for continued preservation and support for GSM/2G,
Lady Mychaela Nadezhda Falconia,
Mother of FreeCalypso,
Dame of the Order of 2G,
Champion of Published Source Code