From 6900f8123611fc4667ba42c25a03abf96e697aa7 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Wed, 21 Mar 2018 21:29:03 +0100 Subject: GSCON FSM: Fix argument order when calling gsm0808_assign_req() The first argument is the channel mode (codec), the second one is a flag whether or not it's a full-rate channel. Before this patch the two arguments are reversed, resulting in * all assignments being TCH/F in general * all assignments have FR1 as codec, as the full_Rate=1 is interpreted as FR1 Change-Id: I80f2a016a7646252bce8d86ed0bab236f3adbfca Related: OS#3094 --- src/libbsc/bsc_subscr_conn_fsm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/libbsc/bsc_subscr_conn_fsm.c b/src/libbsc/bsc_subscr_conn_fsm.c index dc088a1f0..9d23dd55f 100644 --- a/src/libbsc/bsc_subscr_conn_fsm.c +++ b/src/libbsc/bsc_subscr_conn_fsm.c @@ -345,7 +345,8 @@ static void gscon_fsm_active(struct osmo_fsm_inst *fi, uint32_t event, void *dat * conn->user_plane.chan_mode parameter that this * assignment is for a signalling channel and will then * change back to ST_ACTIVE (here) immediately. */ - rc = gsm0808_assign_req(conn, conn->user_plane.full_rate, conn->user_plane.chan_mode); + rc = gsm0808_assign_req(conn, conn->user_plane.chan_mode, + conn->user_plane.full_rate); if (rc != 0) { resp = gsm0808_create_assignment_failure(GSM0808_CAUSE_EQUIPMENT_FAILURE, NULL); sigtran_send(conn, resp, fi); @@ -437,7 +438,7 @@ static void gscon_fsm_wait_crcx_bts(struct osmo_fsm_inst *fi, uint32_t event, vo * then start the channel assignment. */ conn->user_plane.rtp_port = conn_peer->port; conn->user_plane.rtp_ip = osmo_ntohl(inet_addr(conn_peer->addr)); - rc = gsm0808_assign_req(conn, conn->user_plane.full_rate, conn->user_plane.chan_mode); + rc = gsm0808_assign_req(conn, conn->user_plane.chan_mode, conn->user_plane.full_rate); if (rc != 0) { resp = gsm0808_create_assignment_failure(GSM0808_CAUSE_RQSTED_SPEECH_VERSION_UNAVAILABLE, NULL); sigtran_send(conn, resp, fi); -- cgit v1.2.3