diff --git a/template.py b/template.py new file mode 100644 index 0000000..6d9ea21 --- /dev/null +++ b/template.py @@ -0,0 +1,10 @@ +v_hed_1 = '\x80\x00\x04\xbf\xfd\x08\x2f\x7c\xca\x00\x00\x02\x02\x00\x00\x30\xac\x20\x80\xdd\x3b\x01\x3b\xeb\x3c\xe0\x00\x00\x00\x00\x01\x80\x00\x0a\x80\x0a\x00\x60\x00\x00\x00\x00\x00\x02\x2f\x7c\xca\x92\xaf\x70\x00\x11\x35\x32' +v_hed_2 = '\x80\x00\x04\xbf\xfd\x08\x2f\x7c\xca\x00\x00\x02\x02\x00\x00\x30\xac\x20\x80\x5d\x3b\x02\x3b\xeb\x3e\xc0\x00\x00\x00\x00\x01\x80\x00\x0a\x80\x0a\x00\x60\x00\x00\x00\x00\x00\x02\x2f\x7c\xca\x92\xaf\x70\x00\x11\x35\x30' +v_hed_3 = '\x80\x00\x04\xbf\xfd\x08\x2f\x7c\xca\x00\x00\x02\x02\x00\x00\x30\xac\x20\x80\x5d\x3b\x03\x3b\xeb\x40\xa0\x00\x00\x00\x00\x01\x80\x00\x0a\x80\x0a\x00\x60\x00\x00\x00\x00\x00\x02\x2f\x7c\xca\x92\xaf\x70\x00\x11\x35\x31' +voice_1 = '\x80\x00\x04\xbf\xfd\x08\x2f\x7c\xca\x00\x00\x02\x02\x00\x00\x30\xac\x20\x80\x5d\x3b\x04\x3b\xeb\x42\x80\x00\x00\x00\x00\x8a\x14\x40\xf8\x01\xa9\x9f\x8c\xe0\xbe\x00\x6a\x67\xe3\x38\x2f\x80\x1a\x99\xf8\xce\x08' +voice_2 = '\x80\x00\x04\xbf\xfd\x08\x2f\x7c\xca\x00\x00\x02\x02\x00\x00\x30\xac\x20\x80\x5d\x3b\x05\x3b\xeb\x44\x60\x00\x00\x00\x00\x8a\x19\x06\xf8\x01\xa9\x9f\x8c\xe0\xbe\x00\x6a\x67\xe3\x38\x2f\x80\x1a\x99\xf8\xce\x08\x05\x05\x06\x06\x12' +voice_3 = '\x80\x00\x04\xbf\xfd\x08\x2f\x7c\xca\x00\x00\x02\x02\x00\x00\x30\xac\x20\x80\x5d\x3b\x06\x3b\xeb\x46\x40\x00\x00\x00\x00\x8a\x19\x06\xf8\x01\xa9\x9f\x8c\xe0\xbe\x00\x6a\x67\xe3\x38\x2f\x80\x1a\x99\xf8\xce\x08\x09\x05\x06\x05\x16' +voice_4 = '\x80\x00\x04\xbf\xfd\x08\x2f\x7c\xca\x00\x00\x02\x02\x00\x00\x30\xac\x20\x80\x5d\x3b\x07\x3b\xeb\x48\x20\x00\x00\x00\x00\x8a\x19\x06\x98\x02\xb9\x4f\xa4\xd3\xbb\xb7\x96\xc7\x83\xd8\xee\x81\x19\x41\xe4\x4a\x68\x0f\x05\x06\x0f\x16' +voice_5 = '\x80\x00\x04\xbf\xfd\x08\x2f\x7c\xca\x00\x00\x02\x02\x00\x00\x30\xac\x20\x80\x5d\x3b\x08\x3b\xeb\x4a\x00\x00\x00\x00\x00\x8a\x22\x16\xe8\x1a\x62\xd6\x8c\x6b\xba\x06\x3d\x0d\xeb\x04\xe9\x81\xdd\xf1\x04\x86\xc8\x00\x0a\x0a\x0c\x00\x00\x00\x00\x00\x02\x2f\x7c\xca\x14' +voice_6 = '\x80\x00\x04\xbf\xfd\x08\x2f\x7c\xca\x00\x00\x02\x02\x00\x00\x30\xac\x20\x80\x5d\x3b\x09\x3b\xeb\x4b\xe0\x00\x00\x00\x00\x8a\x19\x06\x98\x22\xd3\xd9\x00\xb4\xa6\x05\x6d\x29\xa2\x17\xa8\x82\x75\x14\xf8\x10\x08\x00\x00\x00\x00\x10' +voice_t = '\x80\x00\x04\xbf\xfd\x08\x2f\x7c\xca\x00\x00\x02\x02\x00\x00\x30\xac\x60\x80\x5e\x3e\x76\x3b\xf1\xb8\x40\x00\x00\x00\x00\x02\x80\x00\x0a\x80\x0a\x00\x60\x00\x00\x00\x00\x00\x02\x2f\x7c\xca\x9d\xa0\x7f\x00\x12\x35\x35' \ No newline at end of file diff --git a/voice_burst_decoding.txt b/voice_burst_decoding.txt new file mode 100644 index 0000000..d0f6467 --- /dev/null +++ b/voice_burst_decoding.txt @@ -0,0 +1,28 @@ +v_hed_1 = '80 00.04.bf.fd 08 2f.7c.ca 00.00.02 02 00.00.30.ac 20 80.dd 3b.01 3b.eb.3c.e0 00.00.00.00 01 80000a800a0060000000000002 2f.7c.ca 92af7000113532' +v_hed_2 = '80 00.04.bf.fd 08 2f.7c.ca 00.00.02 02 00.00.30.ac 20 80.5d 3b.02 3b.eb.3e.c0 00.00.00.00 01 80000a800a0060000000000002 2f.7c.ca 92af7000113530' +v_hed_3 = '80 00.04.bf.fd 08 2f.7c.ca 00.00.02 02 00.00.30.ac 20 80.5d 3b.03 3b.eb.40.a0 00.00.00.00 01 80000a800a0060000000000002 2f.7c.ca 92af7000113531' +voice_A = '80 00.04.bf.fd 08 2f.7c.ca 00.00.02 02 00.00.30.ac 20 80.5d 3b.04 3b.eb.42.80 00.00.00.00 8a 1440f801a99f8ce0be006a67e3382f801a99f8ce08' +voice_B = '80 00.04.bf.fd 08 2f.7c.ca 00.00.02 02 00.00.30.ac 20 80.5d 3b.05 3b.eb.44.60 00.00.00.00 8a 1906f801a99f8ce0be006a67e3382f801a99f8ce080505060612' +voice_C = '80 00.04.bf.fd 08 2f.7c.ca 00.00.02 02 00.00.30.ac 20 80.5d 3b.06 3b.eb.46.40 00.00.00.00 8a 1906f801a99f8ce0be006a67e3382f801a99f8ce080905060516' +voice_D = '80 00.04.bf.fd 08 2f.7c.ca 00.00.02 02 00.00.30.ac 20 80.5d 3b.07 3b.eb.48.20 00.00.00.00 8a 19069802b94fa4d3bbb796c783d8ee811941e44a680f05060f16' +voice_E = '80 00.04.bf.fd 08 2f.7c.ca 00.00.02 02 00.00.30.ac 20 80.5d 3b.08 3b.eb.4a.00 00.00.00.00 8a 2216e81a62d68c6bba063d0deb04e981ddf10486c8000a0a0c000000000002 2f.7c.ca.14' +voice_F = '80 00.04.bf.fd 08 2f.7c.ca 00.00.02 02 00.00.30.ac 20 80.5d 3b.09 3b.eb.4b.e0 00.00.00.00 8a 19069822d3d900b4a6056d29a217a8827514f810080000000010' +voice_T = '80 00.04.bf.fd 08 2f.7c.ca 00.00.02 02 00.00.30.ac 60 80.5e 3e.76 3b.f1.b8.40 00.00.00.00 02 80000a800a0060000000000002 2f.7c.ca 9da07f00123535' + + TP PEER_ID IPSC_SEQ SRC_SUB DST_SUB TYPE unknown INFO RTP RTP_SEQ RTP_TIMESTMP RTP_SSID | BURST + + A is a sync burst + B,C,D are the ame + E has extra data -- EMB? + F is the same length as B,C,D, but has a lot of zeros near the end. + +Send a wakeup before starting a call (type 0x85) + +IPSC Sequence Number - incremented with each call made + +RTP Header - Marker set for 1st voide header - 0x80DD, not for anything else 0x805D except terminator 0x80DE, which is the payload type and use is proprietary. +I've decoded the bits in the RTP header, it's going to be ok to use this recipe. Nothing else is going on. + +RTP Sequence number -- increment with each packet + +RTP timestamp - assumed currently to be 32 bit fixed point number 16bit.16bit seconds. Which would place these packets at 4.8ms apart... seems wrong. \ No newline at end of file