diff options
author | Dieter Spaar <spaar@mirider.augusta.de> | 2010-07-29 21:24:18 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2010-07-29 21:24:18 +0200 |
commit | 4c0ce874481a4ec895bf55211aa53ff190572e4f (patch) | |
tree | d39f98d9a400f871e306fe7bc49f40c68a965256 /gsm-receiver/src/lib/decoder | |
parent | 31d4d5eb21655fba5081dae441cc1cfdffe857b9 (diff) |
Add SACCH support for TCH/F
Diffstat (limited to 'gsm-receiver/src/lib/decoder')
-rw-r--r-- | gsm-receiver/src/lib/decoder/gsmstack.c | 8 |
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) |