OP25 Capture P25 Voice Frames using OP25

Status
Not open for further replies.

Plutonium94

Member
Joined
Sep 11, 2017
Messages
10
Location
Argentina
Hello. I'm doing research about P25 Common Air Interface and encryption protocols. I'm new to using OP25, so please be understandable if I'm wrong about something.

When I turn the logging up to -v 10, I can see the codewords and all the other info, but it's all messy. I think I'm missing something in that point.

Also, I'd like to know if there is any way to decode the voice code word (144 bit) to get the "clean" voice frame (88 bit). I do know that voice frames are encoded into a 144 bit voice code word using Golay and Hamming codes. The 48 most important bits (u_0 through u_3) are error protected with four (23,12,7) Golay code words. The next 33 most significant bits (u_4 through u_6) are error protected with three (15,11,3) Hamming code words. The last 7 least significant bits (u_7) are not error protected. So, in other words, I'd need to decode all error control codes (Hamming and Golay) to produce the voice data vectors (u_0 through u_7), if this is possible using OP25.

Thank you!
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,409
Location
Talbot Co, MD
Obviously op25 decodes all the parameters you are discussing, but it only logs the original codewords. IIRC you can set the logging to "-v 9" to make the logging just a little less verbose and exclude the protocol messages but still see the codewords.

Please don't loose sight of the fact that op25's primary purpose is to receive and play xMBE audio used in P25, DMR, NXDN and other radio systems. There are some specialist applications for op25 including "researching" encryption, but frankly if you are technically capable of doing that, you are probably also capable of forking op25 and adding your own custom logging. The code is fairly easy to figure out - suggest you take a look at the following methods:
Code:
p25p1_fdma::process_voice()
p25p2_tdma::handle_voice_frame()
software_imbe_decoder::decode()
software_imbe_decoder::decode_tap()
 

Plutonium94

Member
Joined
Sep 11, 2017
Messages
10
Location
Argentina
Code:
p25p1_fdma::process_voice()
p25p2_tdma::handle_voice_frame()
software_imbe_decoder::decode()
software_imbe_decoder::decode_tap()
Thank you! I'd really appreciate it if you could guide me a bit in adding my custom logging, since I don't have much experience programming in Python.
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,409
Location
Talbot Co, MD
Thank you! I'd really appreciate it if you could guide me a bit in adding my custom logging, since I don't have much experience programming in Python.
Python won't help you for xMBE logging; it's c++ code.
Just add some "fprintf(stderr, ....);" statements and recompile.
 
Status
Not open for further replies.
Top