summaryrefslogtreecommitdiff
path: root/gsm-receiver/src/lib/decoder
diff options
context:
space:
mode:
authorDieter Spaar <spaar@mirider.augusta.de>2010-07-29 21:24:18 +0200
committerHarald Welte <laforge@gnumonks.org>2010-07-29 21:24:18 +0200
commit4c0ce874481a4ec895bf55211aa53ff190572e4f (patch)
treed39f98d9a400f871e306fe7bc49f40c68a965256 /gsm-receiver/src/lib/decoder
parent31d4d5eb21655fba5081dae441cc1cfdffe857b9 (diff)
Add SACCH support for TCH/F
Diffstat (limited to 'gsm-receiver/src/lib/decoder')
-rw-r--r--gsm-receiver/src/lib/decoder/gsmstack.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gsm-receiver/src/lib/decoder/gsmstack.c b/gsm-receiver/src/lib/decoder/gsmstack.c
index e5734b9..c1d967e 100644
--- a/gsm-receiver/src/lib/decoder/gsmstack.c
+++ b/gsm-receiver/src/lib/decoder/gsmstack.c
@@ -183,6 +183,9 @@ get_chan_type(enum TIMESLOT_TYPE type, int fn, uint8_t *ss)
*ss = ((fn % 102) > 51) ? 7 : 3;
}
}
+ else if (type == TST_TCHF) {
+ chan_type = GSMTAP_CHANNEL_TCH_F | GSMTAP_CHANNEL_ACCH;
+ }
return chan_type;
}
@@ -239,9 +242,12 @@ GS_process(GS_CTX *ctx, int ts, int type, const unsigned char *src, int fn, int
memset(ctx->msg, 0, sizeof(ctx->msg));
- if (ts_ctx->type == TST_TCHF && type == NORMAL) {
+ if (ts_ctx->type == TST_TCHF && type == NORMAL &&
+ (fn % 26) != 12 && (fn % 26) != 25) {
/* Dieter: we came here because the burst might contain FACCH bits */
ctx->fn = fn;
+
+ /* get burst index to TCH bursts only */
ts_ctx->burst_count2 = fn % 26;
if (ts_ctx->burst_count2 >= 12)
personal git repositories of Harald Welte. Your mileage may vary