A beginners howto

This is a beginners howto that illustrates the first steps working with airprobe and the USRP. It is intended for beginners to get a bit more fammiliar with airprobe and the GSM radio interface.
Tools you should have
Gnuradio, airprobe and USRP (of cause)
Baudline ( http://www.baudline.com/)
usrp_bimbo which is included in dsp_buttler ( http://runningserver.com/software/dsp_buttler.tar)
arfcncalc ( http://www.runningserver.com/software/arfcncalc.tar)
the latest development version of wireshark ( http://www.wireshark.org/)
Preparing the USRP

For recording GSM-Data your USRP should be equipped with the DBSRX-Board in RX A. You also should have a suitable antenna but a piece of wire also should do the job. It is good to live in a big city because in urban areas you will have lots of small cells in a thight mesh. You should compile and install the latest gnuradio version.
Suitable test signal source

It is good to have a test signal source such as a GSM-Basestation or a GSM-Radio test set. Productive GSM networks are good signal sources as well but sniffing them might be a punishable offence. So it is recommended to perform all tests in a professional shielded environment.
Monitoring the spectrum

The first one should do is to monitor the spectrum to see what is going on in the neigbourhood. The best way to do this successfully is to take any arfcn number of the spectrum you want to monitor. Say we take arfcn number 10. So the first step is to calculate the downlink frequency with: dexter@da-laptop-w3:~$ arfcncalc -a 10 -v _______________________________________________________________________________ ArfcnCalc - GSM frequency calculation tool V.1.0 Copyright(c) 2010 Philipp Fabian Benedikt Maier CAUTION: This is a very early version of this program. It might still contain some bugs that might cause wrong calculation results. If you find a bug, please email to: philipp.maier@runningserver.com - Thanks! * Arfn: 10 * Downlink frequency is: 937000000 Hz * Uplink frequency is: 892000000 Hz * Distance: 45000000 Hz * Offset: 0 * Licensed to Vodafone (262 02) in Germany * Licensed to Swisscom (228 01) in Swissland * Licensed to Vodafone (234 91) in England * Band: GSM900 (P-GSM, E-GSM or R-GSM) * Country(s): EUROPE, BRAZIL, GUATEMALA, EL SALVADOR


When you use the option -v the program shows lots of useful information eg. to whom the arfcn is licensed too. We are interested in the downlink spectrum. So take the downlink frequency and monitor the spectrum with usrp_bimbo.sh. (Press enter to quit usrp_bimbo.sh!) usrp_bimbo.sh -f 937000000


We see a few carriers here. Take a look at the three most strongest ones You have 2 passing through ones and one that is chunked in bursts. The Chunked ones are hopping carrieres. The non chunked are non hopping. There are always non hopping carriers because the first transceiver of every base station must not hop. It serve - so to say - as springboards (BCCH) for the mobile pones. So lets focus on the strongest carrier. Bring it into the center of the display by adjusting the frequency so that the band starts at 0Hz. Keep in mind that the carriers are 200000Hz wide so you should alter the frequency in steps of 200000Hz. The image should look like this:

When you want to know the Arfcn we are tuned on just use arfcncalc again to get the arfcn number:

dexter@da-laptop-w3:~$ arfcncalc -f 936600000 -b 900 -v
_______________________________________________________________________________
ArfcnCalc - GSM frequency calculation tool V.1.0
Copyright(c) 2010 Philipp Fabian Benedikt Maier

CAUTION: This is a very early version of this program. It might still contain
         some bugs that might cause wrong calculation results. If you find a
         bug, please email to: philipp.maier@runningserver.com - Thanks!

 * Arfn: 8
 * Downlink frequency is: 936600000 Hz
 * Uplink frequency is: 891600000 Hz
 * Distance: 45000000 Hz
 * Offset: 0
 * Licensed to Vodafone (262 02) in Germany
 * Licensed to Swisscom (228 01) in Swissland
 * Licensed to Vodafone (234 91) in England
 * Band: GSM900 (P-GSM, E-GSM or R-GSM)
 * Country(s): EUROPE, BRAZIL, GUATEMALA, EL SALVADOR

So we now know the Arfcn and the Frequency of a non hopping transceiver. We now could use airprobe to sniff some of the beacon traffic. But we stop here because there is a high risk to infringe other peoples privacy. So we stop here and use suitable test equipment as test signal generation. Besides doing so is a lot better because we will have full control over the network parameters.

But before we begin with the airprobe tests we want to learn something about the modulation. Press the pause key to halt the baudline waterfall. Press right mouse key ==> Displays ==> Waveform. Now you should see the waveform in time domain. Now fumble over the spectrum and look at the time domain. You can see the phase shift of the GMSK modulation. With a lot time it should be possible to decode the data with pen and paper. In the image the window cursor was positioned at the edge of a synchronisation burst. Look hat the waveform windows. You can see a sine at the left and lots of phase shift at the right. The sine is used as a frequency standard for taming the local oscillator in the phones.


Using Airprobe/gsm-receiver

Now its time to get familiar with airprobe. Airprobe is a collection of tools and code that allows you do do some basic protocol analysis to the GSM air interface. The tools are unfinished. They should be understood as the result of some experimentation and not as a solid toolkit. However. There is no alternative and maybe you will be the next wo improves the tools - so lets get it on!

For our tests we used a BS11 with openBSC. Our network name is "Vaderfone" (We are funny today, Ha ha!) with MNC=01 and MCC=001. It is just the basic openBSC setup with no freaky extras like encryption and so on. The BS11 works on a dummyload which decreses the coverage to less then 50cm. Bevor operation make sure that you use a free Arfcn because you won't get disturbed by the official providers. We had to move the USRP very close to the BS11 to get an acceptable signal level. In our case we used Arfcn 121 because it was unused. During the capture no phones were logged into the network.


This is what the spectrum looks like. Left and right we see the other providers transmitting. Don't worry. We do not desturb anyone because our range is limited to about 50cm. So this should be legal.

The next task is to operate airprobe/gsm-receiver the right way to strip some useful data out of the Carrier. cd to ~/airprobe/gsm-receiver/src/python$. You should see two scripts named go.sh and capture.sh. The names should be self explaining.

Before we can capture some data we calculate the downlink frequency with arfcncalc as shown above.

dexter@da-laptop-w3:~/airprobe/gsm-receiver/src/python$ ./capture.sh 959200000
/usr/local/bin/usrp_rx_cfile.py
Capturing for 10 seconds to capture_959200000_112.cfile (5714280 samples)
Using RX d'board A: DBS Rx
USB sample rate 571.428k
dexter@da-laptop-w3:~/airprobe/gsm-receiver/src/python$ 

If you take a closer look to what happens you see, the normal gnuradio toolchain (usrp_rx_cfile.py) is used here. Nothing special yet. When the run is complete you should have a file named capture_959200000_112.cfile in the local directory.

Now lets attempt to decode what we have captured. The decoder of airprobe uses GSMTAP. So you have to open Wireshark and let it listen to udp Port 4729. Wireshark acts as a viewing client for the GSMTAP protocol in this case. So, now lets start the dissector with:

dexter@da-laptop-w3:~/bin/airprobe/gsm-receiver/src/python$ ./go.sh capture_959200000_112.cfile
>>> gr_fir_ccc: using SSE
>>> gr_fir_ccf: using SSE
Key: '0000000000000000'
Configuration: ''
  No configuration set.
configure_receiver
gr_vmcircbuf_createfilemapping: createfilemapping is not available
/home/dexter/.gnuradio/prefs/gr_vmcircbuf_default_factory: Permission denied
gr_buffer::allocate_buffer: warning: tried to allocate
   115 items of size 568. Due to alignment requirements
   512 were allocated.  If this isn't OK, consider padding
   your structure to a power-of-two bytes.
   On this platform, our allocation granularity is 4096 bytes.
sch.c:260 ERR: conv_decode 11
cch.c:419 error: sacch: parity error (-1 fn=323589)
gsmstack.c:308 cannot decode fnr=0x04f005 (323589) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323593)
gsmstack.c:308 cannot decode fnr=0x04f009 (323593) ts=0
323600 0: 59 06 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
323604 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
323610 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
323614 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=323620)
gsmstack.c:308 cannot decode fnr=0x04f024 (323620) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323624)
gsmstack.c:308 cannot decode fnr=0x04f028 (323624) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323630)
gsmstack.c:308 cannot decode fnr=0x04f02e (323630) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323634)
gsmstack.c:308 cannot decode fnr=0x04f032 (323634) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323640)
gsmstack.c:308 cannot decode fnr=0x04f038 (323640) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323644)
gsmstack.c:308 cannot decode fnr=0x04f03c (323644) ts=0
323651 0: 49 06 1b 00 01 00 f1 10 00 01 41 03 00 22 4e 00 e5 04 00 3b 2b 2b 2b
323655 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
323661 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
323665 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=323671)
gsmstack.c:308 cannot decode fnr=0x04f057 (323671) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323675)
gsmstack.c:308 cannot decode fnr=0x04f05b (323675) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323681)
gsmstack.c:308 cannot decode fnr=0x04f061 (323681) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323685)
gsmstack.c:308 cannot decode fnr=0x04f065 (323685) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323691)
gsmstack.c:308 cannot decode fnr=0x04f06b (323691) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323695)
gsmstack.c:308 cannot decode fnr=0x04f06f (323695) ts=0
323702 0: 31 06 1c 00 f1 10 00 01 4e 00 e5 04 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
323706 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
323712 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
323716 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=323722)
gsmstack.c:308 cannot decode fnr=0x04f08a (323722) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323726)
gsmstack.c:308 cannot decode fnr=0x04f08e (323726) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323732)
gsmstack.c:308 cannot decode fnr=0x04f094 (323732) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323736)
gsmstack.c:308 cannot decode fnr=0x04f098 (323736) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323742)
gsmstack.c:308 cannot decode fnr=0x04f09e (323742) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323746)
gsmstack.c:308 cannot decode fnr=0x04f0a2 (323746) ts=0
323753 0: 55 06 19 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 04 00 2b
323757 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
323763 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
323767 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=323773)
gsmstack.c:308 cannot decode fnr=0x04f0bd (323773) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323777)
gsmstack.c:308 cannot decode fnr=0x04f0c1 (323777) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323783)
gsmstack.c:308 cannot decode fnr=0x04f0c7 (323783) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323787)
gsmstack.c:308 cannot decode fnr=0x04f0cb (323787) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323793)
gsmstack.c:308 cannot decode fnr=0x04f0d1 (323793) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323797)
gsmstack.c:308 cannot decode fnr=0x04f0d5 (323797) ts=0
323804 0: 59 06 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
323808 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
323814 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
323818 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=323824)
gsmstack.c:308 cannot decode fnr=0x04f0f0 (323824) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323828)
gsmstack.c:308 cannot decode fnr=0x04f0f4 (323828) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323834)
gsmstack.c:308 cannot decode fnr=0x04f0fa (323834) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323838)
gsmstack.c:308 cannot decode fnr=0x04f0fe (323838) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323844)
gsmstack.c:308 cannot decode fnr=0x04f104 (323844) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323848)
gsmstack.c:308 cannot decode fnr=0x04f108 (323848) ts=0
323855 0: 49 06 1b 00 01 00 f1 10 00 01 41 03 00 22 4e 00 e5 04 00 3b 2b 2b 2b
323859 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
323865 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
323869 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=323875)
gsmstack.c:308 cannot decode fnr=0x04f123 (323875) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323879)
gsmstack.c:308 cannot decode fnr=0x04f127 (323879) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323885)
gsmstack.c:308 cannot decode fnr=0x04f12d (323885) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323889)
gsmstack.c:308 cannot decode fnr=0x04f131 (323889) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323895)
gsmstack.c:308 cannot decode fnr=0x04f137 (323895) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323899)
gsmstack.c:308 cannot decode fnr=0x04f13b (323899) ts=0
323906 0: 31 06 1c 00 f1 10 00 01 4e 00 e5 04 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
323910 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
323916 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
323920 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=323926)
gsmstack.c:308 cannot decode fnr=0x04f156 (323926) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323930)
gsmstack.c:308 cannot decode fnr=0x04f15a (323930) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323936)
gsmstack.c:308 cannot decode fnr=0x04f160 (323936) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323940)
gsmstack.c:308 cannot decode fnr=0x04f164 (323940) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323946)
gsmstack.c:308 cannot decode fnr=0x04f16a (323946) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323950)
gsmstack.c:308 cannot decode fnr=0x04f16e (323950) ts=0
323957 0: 55 06 19 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 04 00 2b
323961 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
323967 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
323971 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=323977)
gsmstack.c:308 cannot decode fnr=0x04f189 (323977) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323981)
gsmstack.c:308 cannot decode fnr=0x04f18d (323981) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323987)
gsmstack.c:308 cannot decode fnr=0x04f193 (323987) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323991)
gsmstack.c:308 cannot decode fnr=0x04f197 (323991) ts=0
cch.c:419 error: sacch: parity error (-1 fn=323997)
gsmstack.c:308 cannot decode fnr=0x04f19d (323997) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324001)
gsmstack.c:308 cannot decode fnr=0x04f1a1 (324001) ts=0
324008 0: 59 06 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
324012 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324018 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324022 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324028)
gsmstack.c:308 cannot decode fnr=0x04f1bc (324028) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324032)
gsmstack.c:308 cannot decode fnr=0x04f1c0 (324032) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324038)
gsmstack.c:308 cannot decode fnr=0x04f1c6 (324038) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324042)
gsmstack.c:308 cannot decode fnr=0x04f1ca (324042) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324048)
gsmstack.c:308 cannot decode fnr=0x04f1d0 (324048) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324052)
gsmstack.c:308 cannot decode fnr=0x04f1d4 (324052) ts=0
324059 0: 49 06 1b 00 01 00 f1 10 00 01 41 03 00 22 4e 00 e5 04 00 3b 2b 2b 2b
324063 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324069 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324073 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324079)
gsmstack.c:308 cannot decode fnr=0x04f1ef (324079) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324083)
gsmstack.c:308 cannot decode fnr=0x04f1f3 (324083) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324089)
gsmstack.c:308 cannot decode fnr=0x04f1f9 (324089) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324093)
gsmstack.c:308 cannot decode fnr=0x04f1fd (324093) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324099)
gsmstack.c:308 cannot decode fnr=0x04f203 (324099) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324103)
gsmstack.c:308 cannot decode fnr=0x04f207 (324103) ts=0
324110 0: 31 06 1c 00 f1 10 00 01 4e 00 e5 04 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324114 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324120 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324124 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324130)
gsmstack.c:308 cannot decode fnr=0x04f222 (324130) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324134)
gsmstack.c:308 cannot decode fnr=0x04f226 (324134) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324140)
gsmstack.c:308 cannot decode fnr=0x04f22c (324140) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324144)
gsmstack.c:308 cannot decode fnr=0x04f230 (324144) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324150)
gsmstack.c:308 cannot decode fnr=0x04f236 (324150) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324154)
gsmstack.c:308 cannot decode fnr=0x04f23a (324154) ts=0
324161 0: 55 06 19 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 04 00 2b
324165 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324171 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324175 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324181)
gsmstack.c:308 cannot decode fnr=0x04f255 (324181) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324185)
gsmstack.c:308 cannot decode fnr=0x04f259 (324185) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324191)
gsmstack.c:308 cannot decode fnr=0x04f25f (324191) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324195)
gsmstack.c:308 cannot decode fnr=0x04f263 (324195) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324201)
gsmstack.c:308 cannot decode fnr=0x04f269 (324201) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324205)
gsmstack.c:308 cannot decode fnr=0x04f26d (324205) ts=0
324212 0: 59 06 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
324216 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324222 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324226 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324232)
gsmstack.c:308 cannot decode fnr=0x04f288 (324232) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324236)
gsmstack.c:308 cannot decode fnr=0x04f28c (324236) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324242)
gsmstack.c:308 cannot decode fnr=0x04f292 (324242) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324246)
gsmstack.c:308 cannot decode fnr=0x04f296 (324246) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324252)
gsmstack.c:308 cannot decode fnr=0x04f29c (324252) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324256)
gsmstack.c:308 cannot decode fnr=0x04f2a0 (324256) ts=0
324263 0: 49 06 1b 00 01 00 f1 10 00 01 41 03 00 22 4e 00 e5 04 00 3b 2b 2b 2b
324267 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324273 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324277 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324283)
gsmstack.c:308 cannot decode fnr=0x04f2bb (324283) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324287)
gsmstack.c:308 cannot decode fnr=0x04f2bf (324287) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324293)
gsmstack.c:308 cannot decode fnr=0x04f2c5 (324293) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324297)
gsmstack.c:308 cannot decode fnr=0x04f2c9 (324297) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324303)
gsmstack.c:308 cannot decode fnr=0x04f2cf (324303) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324307)
gsmstack.c:308 cannot decode fnr=0x04f2d3 (324307) ts=0
324314 0: 31 06 1c 00 f1 10 00 01 4e 00 e5 04 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324318 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324324 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324328 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324334)
gsmstack.c:308 cannot decode fnr=0x04f2ee (324334) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324338)
gsmstack.c:308 cannot decode fnr=0x04f2f2 (324338) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324344)
gsmstack.c:308 cannot decode fnr=0x04f2f8 (324344) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324348)
gsmstack.c:308 cannot decode fnr=0x04f2fc (324348) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324354)
gsmstack.c:308 cannot decode fnr=0x04f302 (324354) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324358)
gsmstack.c:308 cannot decode fnr=0x04f306 (324358) ts=0
324365 0: 55 06 19 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 04 00 2b
324369 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324375 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324379 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324385)
gsmstack.c:308 cannot decode fnr=0x04f321 (324385) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324389)
gsmstack.c:308 cannot decode fnr=0x04f325 (324389) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324395)
gsmstack.c:308 cannot decode fnr=0x04f32b (324395) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324399)
gsmstack.c:308 cannot decode fnr=0x04f32f (324399) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324405)
gsmstack.c:308 cannot decode fnr=0x04f335 (324405) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324409)
gsmstack.c:308 cannot decode fnr=0x04f339 (324409) ts=0
324416 0: 59 06 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
324420 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324426 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324430 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324436)
gsmstack.c:308 cannot decode fnr=0x04f354 (324436) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324440)
gsmstack.c:308 cannot decode fnr=0x04f358 (324440) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324446)
gsmstack.c:308 cannot decode fnr=0x04f35e (324446) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324450)
gsmstack.c:308 cannot decode fnr=0x04f362 (324450) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324456)
gsmstack.c:308 cannot decode fnr=0x04f368 (324456) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324460)
gsmstack.c:308 cannot decode fnr=0x04f36c (324460) ts=0
324467 0: 49 06 1b 00 01 00 f1 10 00 01 41 03 00 22 4e 00 e5 04 00 3b 2b 2b 2b
324471 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324477 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324481 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324487)
gsmstack.c:308 cannot decode fnr=0x04f387 (324487) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324491)
gsmstack.c:308 cannot decode fnr=0x04f38b (324491) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324497)
gsmstack.c:308 cannot decode fnr=0x04f391 (324497) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324501)
gsmstack.c:308 cannot decode fnr=0x04f395 (324501) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324507)
gsmstack.c:308 cannot decode fnr=0x04f39b (324507) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324511)
gsmstack.c:308 cannot decode fnr=0x04f39f (324511) ts=0
324518 0: 31 06 1c 00 f1 10 00 01 4e 00 e5 04 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324522 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324528 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324532 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324538)
gsmstack.c:308 cannot decode fnr=0x04f3ba (324538) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324542)
gsmstack.c:308 cannot decode fnr=0x04f3be (324542) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324548)
gsmstack.c:308 cannot decode fnr=0x04f3c4 (324548) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324552)
gsmstack.c:308 cannot decode fnr=0x04f3c8 (324552) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324558)
gsmstack.c:308 cannot decode fnr=0x04f3ce (324558) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324562)
gsmstack.c:308 cannot decode fnr=0x04f3d2 (324562) ts=0
324569 0: 55 06 19 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 04 00 2b
324573 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324579 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324583 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324589)
gsmstack.c:308 cannot decode fnr=0x04f3ed (324589) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324593)
gsmstack.c:308 cannot decode fnr=0x04f3f1 (324593) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324599)
gsmstack.c:308 cannot decode fnr=0x04f3f7 (324599) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324603)
gsmstack.c:308 cannot decode fnr=0x04f3fb (324603) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324609)
gsmstack.c:308 cannot decode fnr=0x04f401 (324609) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324613)
gsmstack.c:308 cannot decode fnr=0x04f405 (324613) ts=0
324620 0: 59 06 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
324624 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324630 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324634 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324640)
gsmstack.c:308 cannot decode fnr=0x04f420 (324640) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324644)
gsmstack.c:308 cannot decode fnr=0x04f424 (324644) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324650)
gsmstack.c:308 cannot decode fnr=0x04f42a (324650) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324654)
gsmstack.c:308 cannot decode fnr=0x04f42e (324654) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324660)
gsmstack.c:308 cannot decode fnr=0x04f434 (324660) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324664)
gsmstack.c:308 cannot decode fnr=0x04f438 (324664) ts=0
324671 0: 49 06 1b 00 01 00 f1 10 00 01 41 03 00 22 4e 00 e5 04 00 3b 2b 2b 2b
324675 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324681 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324685 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324691)
gsmstack.c:308 cannot decode fnr=0x04f453 (324691) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324695)
gsmstack.c:308 cannot decode fnr=0x04f457 (324695) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324701)
gsmstack.c:308 cannot decode fnr=0x04f45d (324701) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324705)
gsmstack.c:308 cannot decode fnr=0x04f461 (324705) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324711)
gsmstack.c:308 cannot decode fnr=0x04f467 (324711) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324715)
gsmstack.c:308 cannot decode fnr=0x04f46b (324715) ts=0
324722 0: 31 06 1c 00 f1 10 00 01 4e 00 e5 04 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324726 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324732 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324736 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324742)
gsmstack.c:308 cannot decode fnr=0x04f486 (324742) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324746)
gsmstack.c:308 cannot decode fnr=0x04f48a (324746) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324752)
gsmstack.c:308 cannot decode fnr=0x04f490 (324752) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324756)
gsmstack.c:308 cannot decode fnr=0x04f494 (324756) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324762)
gsmstack.c:308 cannot decode fnr=0x04f49a (324762) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324766)
gsmstack.c:308 cannot decode fnr=0x04f49e (324766) ts=0
324773 0: 55 06 19 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 04 00 2b
324777 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324783 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324787 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324793)
gsmstack.c:308 cannot decode fnr=0x04f4b9 (324793) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324797)
gsmstack.c:308 cannot decode fnr=0x04f4bd (324797) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324803)
gsmstack.c:308 cannot decode fnr=0x04f4c3 (324803) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324807)
gsmstack.c:308 cannot decode fnr=0x04f4c7 (324807) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324813)
gsmstack.c:308 cannot decode fnr=0x04f4cd (324813) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324817)
gsmstack.c:308 cannot decode fnr=0x04f4d1 (324817) ts=0
324824 0: 59 06 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
324828 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324834 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324838 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324844)
gsmstack.c:308 cannot decode fnr=0x04f4ec (324844) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324848)
gsmstack.c:308 cannot decode fnr=0x04f4f0 (324848) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324854)
gsmstack.c:308 cannot decode fnr=0x04f4f6 (324854) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324858)
gsmstack.c:308 cannot decode fnr=0x04f4fa (324858) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324864)
gsmstack.c:308 cannot decode fnr=0x04f500 (324864) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324868)
gsmstack.c:308 cannot decode fnr=0x04f504 (324868) ts=0
324875 0: 49 06 1b 00 01 00 f1 10 00 01 41 03 00 22 4e 00 e5 04 00 3b 2b 2b 2b
324879 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324885 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324889 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324895)
gsmstack.c:308 cannot decode fnr=0x04f51f (324895) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324899)
gsmstack.c:308 cannot decode fnr=0x04f523 (324899) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324905)
gsmstack.c:308 cannot decode fnr=0x04f529 (324905) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324909)
gsmstack.c:308 cannot decode fnr=0x04f52d (324909) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324915)
gsmstack.c:308 cannot decode fnr=0x04f533 (324915) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324919)
gsmstack.c:308 cannot decode fnr=0x04f537 (324919) ts=0
324926 0: 31 06 1c 00 f1 10 00 01 4e 00 e5 04 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324930 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324936 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324940 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324946)
gsmstack.c:308 cannot decode fnr=0x04f552 (324946) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324950)
gsmstack.c:308 cannot decode fnr=0x04f556 (324950) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324956)
gsmstack.c:308 cannot decode fnr=0x04f55c (324956) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324960)
gsmstack.c:308 cannot decode fnr=0x04f560 (324960) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324966)
gsmstack.c:308 cannot decode fnr=0x04f566 (324966) ts=0
cch.c:419 error: sacch: parity error (-1 fn=324970)
gsmstack.c:308 cannot decode fnr=0x04f56a (324970) ts=0
324977 0: 55 06 19 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 04 00 2b
324981 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324987 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
324991 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=324997)
gsmstack.c:308 cannot decode fnr=0x04f585 (324997) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325001)
gsmstack.c:308 cannot decode fnr=0x04f589 (325001) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325007)
gsmstack.c:308 cannot decode fnr=0x04f58f (325007) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325011)
gsmstack.c:308 cannot decode fnr=0x04f593 (325011) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325017)
gsmstack.c:308 cannot decode fnr=0x04f599 (325017) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325021)
gsmstack.c:308 cannot decode fnr=0x04f59d (325021) ts=0
325028 0: 59 06 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
325032 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325038 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325042 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=325048)
gsmstack.c:308 cannot decode fnr=0x04f5b8 (325048) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325052)
gsmstack.c:308 cannot decode fnr=0x04f5bc (325052) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325058)
gsmstack.c:308 cannot decode fnr=0x04f5c2 (325058) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325062)
gsmstack.c:308 cannot decode fnr=0x04f5c6 (325062) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325068)
gsmstack.c:308 cannot decode fnr=0x04f5cc (325068) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325072)
gsmstack.c:308 cannot decode fnr=0x04f5d0 (325072) ts=0
325079 0: 49 06 1b 00 01 00 f1 10 00 01 41 03 00 22 4e 00 e5 04 00 3b 2b 2b 2b
325083 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325089 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325093 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=325099)
gsmstack.c:308 cannot decode fnr=0x04f5eb (325099) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325103)
gsmstack.c:308 cannot decode fnr=0x04f5ef (325103) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325109)
gsmstack.c:308 cannot decode fnr=0x04f5f5 (325109) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325113)
gsmstack.c:308 cannot decode fnr=0x04f5f9 (325113) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325119)
gsmstack.c:308 cannot decode fnr=0x04f5ff (325119) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325123)
gsmstack.c:308 cannot decode fnr=0x04f603 (325123) ts=0
325130 0: 31 06 1c 00 f1 10 00 01 4e 00 e5 04 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325134 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325140 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325144 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=325150)
gsmstack.c:308 cannot decode fnr=0x04f61e (325150) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325154)
gsmstack.c:308 cannot decode fnr=0x04f622 (325154) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325160)
gsmstack.c:308 cannot decode fnr=0x04f628 (325160) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325164)
gsmstack.c:308 cannot decode fnr=0x04f62c (325164) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325170)
gsmstack.c:308 cannot decode fnr=0x04f632 (325170) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325174)
gsmstack.c:308 cannot decode fnr=0x04f636 (325174) ts=0
325181 0: 55 06 19 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 04 00 2b
325185 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325191 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325195 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=325201)
gsmstack.c:308 cannot decode fnr=0x04f651 (325201) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325205)
gsmstack.c:308 cannot decode fnr=0x04f655 (325205) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325211)
gsmstack.c:308 cannot decode fnr=0x04f65b (325211) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325215)
gsmstack.c:308 cannot decode fnr=0x04f65f (325215) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325221)
gsmstack.c:308 cannot decode fnr=0x04f665 (325221) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325225)
gsmstack.c:308 cannot decode fnr=0x04f669 (325225) ts=0
325232 0: 59 06 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
325236 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325242 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325246 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=325252)
gsmstack.c:308 cannot decode fnr=0x04f684 (325252) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325256)
gsmstack.c:308 cannot decode fnr=0x04f688 (325256) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325262)
gsmstack.c:308 cannot decode fnr=0x04f68e (325262) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325266)
gsmstack.c:308 cannot decode fnr=0x04f692 (325266) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325272)
gsmstack.c:308 cannot decode fnr=0x04f698 (325272) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325276)
gsmstack.c:308 cannot decode fnr=0x04f69c (325276) ts=0
325283 0: 49 06 1b 00 01 00 f1 10 00 01 41 03 00 22 4e 00 e5 04 00 3b 2b 2b 2b
325287 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325293 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325297 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=325303)
gsmstack.c:308 cannot decode fnr=0x04f6b7 (325303) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325307)
gsmstack.c:308 cannot decode fnr=0x04f6bb (325307) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325313)
gsmstack.c:308 cannot decode fnr=0x04f6c1 (325313) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325317)
gsmstack.c:308 cannot decode fnr=0x04f6c5 (325317) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325323)
gsmstack.c:308 cannot decode fnr=0x04f6cb (325323) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325327)
gsmstack.c:308 cannot decode fnr=0x04f6cf (325327) ts=0
325334 0: 31 06 1c 00 f1 10 00 01 4e 00 e5 04 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325338 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325344 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325348 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=325354)
gsmstack.c:308 cannot decode fnr=0x04f6ea (325354) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325358)
gsmstack.c:308 cannot decode fnr=0x04f6ee (325358) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325364)
gsmstack.c:308 cannot decode fnr=0x04f6f4 (325364) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325368)
gsmstack.c:308 cannot decode fnr=0x04f6f8 (325368) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325374)
gsmstack.c:308 cannot decode fnr=0x04f6fe (325374) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325378)
gsmstack.c:308 cannot decode fnr=0x04f702 (325378) ts=0
325385 0: 55 06 19 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 04 00 2b
325389 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325395 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325399 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=325405)
gsmstack.c:308 cannot decode fnr=0x04f71d (325405) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325409)
gsmstack.c:308 cannot decode fnr=0x04f721 (325409) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325415)
gsmstack.c:308 cannot decode fnr=0x04f727 (325415) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325419)
gsmstack.c:308 cannot decode fnr=0x04f72b (325419) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325425)
gsmstack.c:308 cannot decode fnr=0x04f731 (325425) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325429)
gsmstack.c:308 cannot decode fnr=0x04f735 (325429) ts=0
325436 0: 59 06 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
325440 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325446 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325450 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=325456)
gsmstack.c:308 cannot decode fnr=0x04f750 (325456) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325460)
gsmstack.c:308 cannot decode fnr=0x04f754 (325460) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325466)
gsmstack.c:308 cannot decode fnr=0x04f75a (325466) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325470)
gsmstack.c:308 cannot decode fnr=0x04f75e (325470) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325476)
gsmstack.c:308 cannot decode fnr=0x04f764 (325476) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325480)
gsmstack.c:308 cannot decode fnr=0x04f768 (325480) ts=0
325487 0: 49 06 1b 00 01 00 f1 10 00 01 41 03 00 22 4e 00 e5 04 00 3b 2b 2b 2b
325491 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325497 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325501 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=325507)
gsmstack.c:308 cannot decode fnr=0x04f783 (325507) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325511)
gsmstack.c:308 cannot decode fnr=0x04f787 (325511) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325517)
gsmstack.c:308 cannot decode fnr=0x04f78d (325517) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325521)
gsmstack.c:308 cannot decode fnr=0x04f791 (325521) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325527)
gsmstack.c:308 cannot decode fnr=0x04f797 (325527) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325531)
gsmstack.c:308 cannot decode fnr=0x04f79b (325531) ts=0
325538 0: 31 06 1c 00 f1 10 00 01 4e 00 e5 04 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325542 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325548 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325552 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=325558)
gsmstack.c:308 cannot decode fnr=0x04f7b6 (325558) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325562)
gsmstack.c:308 cannot decode fnr=0x04f7ba (325562) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325568)
gsmstack.c:308 cannot decode fnr=0x04f7c0 (325568) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325572)
gsmstack.c:308 cannot decode fnr=0x04f7c4 (325572) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325578)
gsmstack.c:308 cannot decode fnr=0x04f7ca (325578) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325582)
gsmstack.c:308 cannot decode fnr=0x04f7ce (325582) ts=0
325589 0: 55 06 19 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e5 04 00 2b
325593 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325599 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325603 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=325609)
gsmstack.c:308 cannot decode fnr=0x04f7e9 (325609) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325613)
gsmstack.c:308 cannot decode fnr=0x04f7ed (325613) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325619)
gsmstack.c:308 cannot decode fnr=0x04f7f3 (325619) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325623)
gsmstack.c:308 cannot decode fnr=0x04f7f7 (325623) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325629)
gsmstack.c:308 cannot decode fnr=0x04f7fd (325629) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325633)
gsmstack.c:308 cannot decode fnr=0x04f801 (325633) ts=0
325640 0: 59 06 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
325644 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325650 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325654 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=325660)
gsmstack.c:308 cannot decode fnr=0x04f81c (325660) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325664)
gsmstack.c:308 cannot decode fnr=0x04f820 (325664) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325670)
gsmstack.c:308 cannot decode fnr=0x04f826 (325670) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325674)
gsmstack.c:308 cannot decode fnr=0x04f82a (325674) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325680)
gsmstack.c:308 cannot decode fnr=0x04f830 (325680) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325684)
gsmstack.c:308 cannot decode fnr=0x04f834 (325684) ts=0
325691 0: 49 06 1b 00 01 00 f1 10 00 01 41 03 00 22 4e 00 e5 04 00 3b 2b 2b 2b
325695 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325701 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
325705 0: 15 06 21 00 01 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
cch.c:419 error: sacch: parity error (-1 fn=325711)
gsmstack.c:308 cannot decode fnr=0x04f84f (325711) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325715)
gsmstack.c:308 cannot decode fnr=0x04f853 (325715) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325721)
gsmstack.c:308 cannot decode fnr=0x04f859 (325721) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325725)
gsmstack.c:308 cannot decode fnr=0x04f85d (325725) ts=0
cch.c:419 error: sacch: parity error (-1 fn=325731)
gsmstack.c:308 cannot decode fnr=0x04f863 (325731) ts=0
dexter@da-laptop-w3:~/bin/airprobe/gsm-receiver/src/python$ 

When the dissector has finished decoding the captured data you can view the results in wireshark.


Go deeper

After decoding you might want to go deepr. For example you will not see any SDCCH since they are encrypted on the oder side and they are allocated on demand they are not decoded automaticly.

The following commandline decodes the SDCCH and sends the results via GSMTAP to wireshark: ./go.sh [capturefile] 174 1S [Kc in Hex]

The first parameter is the decimation, the second says "the first SDCCH" and the last is the Kc session key in Hexadecimal.

The following commandline strips out the voice data from the traffic channel: ./go.sh [capturefile] 174 1T [Kc in Hex]

Note: The Kc can be easyly determined by removing the accu from the telephone immeadiately after making a testcall. Then you cen read out the EF:KC in DF:GSM. The ChipcardLab? ( http://www.runningserver.com/software/chipcardlab.tar) has a solution for this.







注:A beginners howto(原文出处,翻译整理仅供参考!

ą
IPLinkMe Inc,
2012年10月27日 01:08
ą
IPLinkMe Inc,
2012年10月27日 00:45
ą
IPLinkMe Inc,
2012年10月27日 00:50
ą
IPLinkMe Inc,
2012年10月27日 01:07
ą
IPLinkMe Inc,
2012年10月27日 01:09