This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.
Sergey V. Efimoff risky at mail.ruHello All, While testing DTMF facilities of OpenBSС I've discovered a couple of bugs. The first bug is generic to GSM TS 04.08, minor and is connected with gsm0408_cc_msg_names variable (gsm_04_08_utils.c). I've found that message names order is wrong: in original source it is enumerated as ... "unknown 0x3b", "STATUS", "unknown 0x3c" "NOTIFY" ... while it should be ... "unknown 0x3b" "unknown 0x3c" "STATUS" "NOTIFY" ... thus faling to identify GSM 04.08 STATUS messages. The second problem is connected with DTMF message sequence. According to the GSM TS 04.08, DTMF message flow is the following: MS -----> START_DTMF MNCC_START_DTMF_IND ----> MNCC MNCC_START_DTMF_RSP <---- MNCC MS <---- START_DTMF_ACK MS ----> STOP_DTMF MNCC_STOP_DTMF_IND ----> MNCC MNCC_STOP_DTMF_RSP <---- MNCC MS <---- STOP_DTMF_ACK This is correct, but some mobile equipment (for example, my iPhone and Nokia 6150) do not reply with STOP_DTMF message; instead of this, they reply with STATUS message (type 0x3D). This type of messages is not processed within OpenBSC. Message is left unhandled in this state and further DTMF transactions become impossible because MNCC does not receive DTMF_STOP. GSM standard says that STATUS message reports about some errors occurred during transaction, but I did not explore the message still, though, I can do that if it is interesting for developers. I have no ideas why some of my mobile phones behave wrong, while others work correctly. I still don't know how to deal with STATUS messages properly, so I've simply added processing entry to the datastatelist[] variable in gsm_04_08.c which describes a call to gsm48_cc_rx_stop_dtmf when received a STATUS message. It is incorrect, I know, but, however, temporary helps to process DTMF messages with MS equipment which have wrong DTMF sequence flow. Now it looks like this: MS -----> START_DTMF MNCC_START_DTMF_IND ----> MNCC MNCC_START_DTMF_RSP <---- MNCC MS <---- START_DTMF_ACK MS ----> STATUS MNCC_STOP_DTMF_IND ----> MNCC MNCC_STOP_DTMF_RSP <---- MNCC MS <---- STOP_DTMF_ACK Sergey.