# Copyright (c) 2013 Cortney T. Buffington, N0MJS and the K0USY Group. n0mjs@me.com # # This work is licensed under the Creative Commons Attribution-ShareAlike # 3.0 Unported License.To view a copy of this license, visit # http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to # Creative Commons, 444 Castro Street, Suite 900, Mountain View, # California, 94041, USA. # MASKS FOR IPSC, RTP AND THE RTP PAYLOAD (DMR FRAME + FRIENDS) ARE LOCATED # IN THIS FILE IN THIS ORDER: IPSC, RTP, PAYLOAD # IPSC MASK VALUES # # LINKING STATUS: # Byte 1 - BIT FLAGS: # xx.. .... = Peer Operational (01 only known valid value) # ..xx .... = Peer MODE: 00 - No Radio, 01 - Analog, 10 - Digital # .... xx.. = IPSC Slot 1: 10 on, 01 off # .... ..xx = IPSC Slot 2: 10 on, 01 off # MASK VALUES: PEER_OP_MSK = 0b01000000 PEER_MODE_MSK = 0b00110000 PEER_MODE_ANALOG = 0b00010000 PEER_MODE_DIGITAL = 0b00100000 IPSC_TS1_MSK = 0b00001100 IPSC_TS2_MSK = 0b00000011 #SERVICE FLAGS: # Byte 1 - 0x00 = Unknown # Byte 2 - 0x00 = Unknown # Byte 3 - BIT FLAGS: # x... .... = CSBK Message # .x.. .... = Repeater Call Monitoring # ..x. .... = 3rd Party "Console" Application # ...x xxxx = Unknown - default to 0 # MASK VALUES: CSBK_MSK = 0b10000000 RPT_MON_MSK = 0b01000000 CON_APP_MSK = 0b00100000 # Byte 4 = BIT FLAGS: # x... .... = XNL Connected (1=true) # .x.. .... = XNL Master Device # ..x. .... = XNL Slave Device # ...x .... = Set if packets are authenticated # .... x... = Set if data calls are supported # .... .x.. = Set if voice calls are supported # .... ..x. = Unknown - default to 0 # .... ...x = Set if master # MASK VALUES: XNL_STAT_MSK = 0b10000000 XNL_MSTR_MSK = 0b01000000 XNL_SLAVE_MSK = 0b00100000 PKT_AUTH_MSK = 0b00010000 DATA_CALL_MSK = 0b00001000 VOICE_CALL_MSK = 0b00000100 MSTR_PEER_MSK = 0b00000001 # TIMESLOT CALL & STATUS BYTE # Byte 17 of Group and Private Voice/Data Packets # ..x.. ....TS Value (0=TS1, 1=TS2) # .x... ....TS In Progress/End (0=In Progress, 1=End) # Possible values: 0x00=TS1, 0x20=TS2, 0x40=TS1 End, 0x60=TS2 End # MASK VALUE: END_MSK = 0b01000000 TS_CALL_MSK = 0b00100000 # RTP MASK VALUES # Bytes 1 and 2 of the RTP header are bit-fields, the rest # are at least one byte long, and do not need masked # Byte 1 RTP_VER_MSK = 0b11000000 RTP_PAD_MSK = 0b00100000 RTP_EXT_MSK = 0b00010000 RTP_CSIC_MSK = 0b00001111 # Byte 2 RTP_MRKR_MSK = 0b10000000 RTP_PAY_TYPE_MSK = 0b01111111 # RTP PAYLOAD (DMR FRAME + FRIENDS) MASK VALUES # This one is tricky. The DMR Frame contents are here # and re-ordered from their position in the original DMR # frame format. There are also some other friends in here # that Motorla added. #