mobile: gsm_forward_mncc(): properly mark TCH/H frames
Change-Id: Id3f459bc767ebf31469287fa672893239c5977d9 Related: OS#5599
This commit is contained in:
parent
e69d3f4ba1
commit
b1cfa18d77
|
@ -20,6 +20,8 @@
|
||||||
#include <osmocom/core/msgb.h>
|
#include <osmocom/core/msgb.h>
|
||||||
#include <osmocom/codec/codec.h>
|
#include <osmocom/codec/codec.h>
|
||||||
|
|
||||||
|
#include <osmocom/gsm/protocol/gsm_08_58.h>
|
||||||
|
|
||||||
#include <osmocom/bb/common/logging.h>
|
#include <osmocom/bb/common/logging.h>
|
||||||
#include <osmocom/bb/common/osmocom_data.h>
|
#include <osmocom/bb/common/osmocom_data.h>
|
||||||
#include <osmocom/bb/mobile/mncc.h>
|
#include <osmocom/bb/mobile/mncc.h>
|
||||||
|
@ -37,14 +39,20 @@ static int gsm_forward_mncc(struct osmocom_ms *ms, struct msgb *msg)
|
||||||
msgb_push(msg, sizeof(struct gsm_data_frame));
|
msgb_push(msg, sizeof(struct gsm_data_frame));
|
||||||
mncc->callref = ms->mncc_entity.ref;
|
mncc->callref = ms->mncc_entity.ref;
|
||||||
|
|
||||||
/* FIXME: FR, EFR only! */
|
|
||||||
switch (ms->rrlayer.cd_now.mode) {
|
switch (ms->rrlayer.cd_now.mode) {
|
||||||
case GSM48_CMODE_SPEECH_V1:
|
case GSM48_CMODE_SPEECH_V1:
|
||||||
mncc->msg_type = GSM_TCHF_FRAME;
|
{
|
||||||
|
const uint8_t cbits = ms->rrlayer.cd_now.chan_nr >> 3;
|
||||||
|
if (cbits == ABIS_RSL_CHAN_NR_CBITS_Bm_ACCHs)
|
||||||
|
mncc->msg_type = GSM_TCHF_FRAME;
|
||||||
|
else
|
||||||
|
mncc->msg_type = GSM_TCHH_FRAME;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case GSM48_CMODE_SPEECH_EFR:
|
case GSM48_CMODE_SPEECH_EFR:
|
||||||
mncc->msg_type = GSM_TCHF_FRAME_EFR;
|
mncc->msg_type = GSM_TCHF_FRAME_EFR;
|
||||||
break;
|
break;
|
||||||
|
case GSM48_CMODE_SPEECH_AMR: /* TODO: no AMR support yet */
|
||||||
default:
|
default:
|
||||||
/* TODO: print error message here */
|
/* TODO: print error message here */
|
||||||
goto exit_free;
|
goto exit_free;
|
||||||
|
|
Loading…
Reference in New Issue