From 0848ff84b7655097a5aedae1b58cdcd2571c8af5 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Thu, 14 Mar 2019 22:11:45 +0000 Subject: Revert "assignment_fsm: Properly support assigning signalling mode TCH/x" This commit breaks voice channel assignment. It results in the Assignment Complete sent to the MSC for a voice lchan lacking AoIP Transport Layer Address, Speech Version and Speech Codec. Hence the MSC cannot complete the Assignment for a voice call. Let's revisit this patch, test thoroughly and re-merge later. This reverts commit 4d3a21269b25e7164a94fa8ce3ad67ff80904aee. Reason for revert: Change-Id: I72aaa03539919e7e85b5b75b133326cec5e68bc9 --- include/osmocom/bsc/gsm_data.h | 17 +++++++---------- include/osmocom/bsc/lchan_select.h | 2 +- 2 files changed, 8 insertions(+), 11 deletions(-) (limited to 'include/osmocom') diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index aff73de36..47ca5e839 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -98,15 +98,9 @@ enum subscr_sccp_state { SUBSCR_SCCP_ST_CONNECTED }; -enum channel_rate { - CH_RATE_SDCCH, - CH_RATE_HALF, - CH_RATE_FULL, -}; - struct channel_mode_and_rate { enum gsm48_chan_mode chan_mode; - enum channel_rate chan_rate; + bool full_rate; uint16_t s15_s0; }; @@ -121,9 +115,12 @@ struct assignment_request { char msc_rtp_addr[INET_ADDRSTRLEN]; uint16_t msc_rtp_port; - /* Rate/codec setting in preference order (need at least 1 !) */ - int n_ch_mode_rate; - struct channel_mode_and_rate ch_mode_rate[3]; + /* Prefered rate/codec setting (mandatory) */ + struct channel_mode_and_rate ch_mode_rate_pref; + + /* Alternate rate/codec setting (optional) */ + bool ch_mode_rate_alt_present; + struct channel_mode_and_rate ch_mode_rate_alt; }; /* State of an ongoing Assignment, while the assignment_fsm is still busy. This serves as state separation to keep the diff --git a/include/osmocom/bsc/lchan_select.h b/include/osmocom/bsc/lchan_select.h index 865181bf5..4aecdf676 100644 --- a/include/osmocom/bsc/lchan_select.h +++ b/include/osmocom/bsc/lchan_select.h @@ -3,4 +3,4 @@ struct gsm_lchan *lchan_select_by_type(struct gsm_bts *bts, enum gsm_chan_t type); struct gsm_lchan *lchan_select_by_chan_mode(struct gsm_bts *bts, - enum gsm48_chan_mode chan_mode, enum channel_rate chan_rate); + enum gsm48_chan_mode chan_mode, bool full_rate); -- cgit v1.2.3