osmo-bsc ignores requested channel type in ASSIGNEMENT REQUESTS for signalling channels
In bssmap_handle_assignm_req , if channel type is of GSM0808_CHAN_SIGN it just creates an a request for a signaling channel but never looks at the ct.ch_rate_type fields to see what kind of channel is really requested. Instead in the assignement fsm and throuh lchan_select_by_chan_mode, it will always assume a signalling channel is a SDCCH.
Also in the assignement fsm, if it sees the current channel mode supports the requested mode (and independently of the channel type requests in ct.ch_rate_type), it will ignore it and not do anything.
struct gsm0808_channel_type ct; ct.ch_indctr = GSM0808_CHAN_SIGN; ct.ch_rate_type = GSM0808_SPEECH_FULL_BM; /* libosmocore doesn't actually define constants for signalling mode channels but this one is compatible in value */ ct.perm_spch = 0; /* spare but must be present ! */ ct.perm_spch_len = 1; msg = gsm0808_create_ass(&ct, NULL, NULL, NULL, NULL); osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg);