This directory contains programs based on gr-gsm:
* grgsm_decode     (old name: airprobe_decode.py) - program for decoding C0 channel 
                    which is most close in terms of functionality to the old gsm-receiver 
                    from Airprobe project, with ability to decode signalling channels and traffic channels with speech 
                    (analysis of the data can be performed in Wireshark, decoded sound is stored to an audio file),
* grgsm_livemon    (old name: airprobe_rtlsdr.py) - interactive monitor of a single C0 channel with analysis 
`                   performed by Wireshark (command to run wireshark: sudo wireshark -k -f udp -Y gsmtap -i lo),
* grgsm_scanner    (old name: airprobe_rtlsdr_scanner.py) - an application that scans GSM bands and prints 
                    information about base transceiver stations transmitting in the area.

There are following helper programs for grgsm_decode program:

* grgsm_capture    (old name: airprobe_rtlsdr_capture.py) - program for capturing GSM signal to a file 
                    that can be later processed by grgsm_decode,
* grgsm_channelize (old name: gsm_channelize.py) - splits wideband capture file into multiple files - each contain 
                  single GSM channel.

