Skip to content

MDC-1200 Signalling

MDC-1200 signalling support is available in ASL3. MDC-1200 signalling could be used to have the node perform certain functions when a MDC-1200 code is received, and/or it can be used to signal user radios that have been configured for MDC-1200 signalling support.

MDC-1200 Decoding Display

On the Asterisk CLI when MDC-1200 is received, the following will be displayed:

For a radio ID:

Got MDC-1200 (single-length) packet on node 36001:
op: 01, arg: 00, UnitID: 1701
Got MDC-1200 data I1701 from local system (36001)

For a radio check of unit 1400:

Got MDC-1200 (single-length) packet on node 36001:
op: 63, arg: 85, UnitID: 1400
Node Variable dump for node 36001:

For a call-alert of Unit 1400 from unit 1701:

Got MDC-1200 (double-length) packet on node 36001:
op: 35, arg: 89, UnitID: 1400
ex1: 83, ex2: 0d, ex3: 17, ex4: 01
Got MDC-1200 data A1701-1400 from local system (36001)

For a selective call from unit 1701 to unit 1600:

Got MDC-1200 (double-length) packet on node 36001:
op: 35, arg: 89, UnitID: 1600
ex1: 80, ex2: 15, ex3: 17, ex4: 01

Sender Not Parsed

The sender isn't parsed properly.

For a Remote Monitor of unit 1600:

Got MDC-1200 (single-length) packet on node 36001:
op: 71, arg: 85, UnitID: 1600

Sending MDC Message 01 from unit 1701:

Got MDC-1200 (single-length) packet on node 36001:
op: 47, arg: 01, UnitID: 1701

There are others unlisted here, emergency being the most obvious example, but they are quite simple to decode.

If logging is enabled this will be logged to the daily logs as follows:

20180330111954,Got MDC-1200 data I1701 from local system (36001)

The format is I, E, S, C based on the type of call received. Note, this is a subset of the MDC-1200 protocol, but it would be quite easy to extend the code to support other codes. Inhibit and un-inhibit have been tried and do work well, but would need more work to be supported in app_rpt.

MDC-1200 Security

MDC1200 is a very insecure protocol and enabling decode on any radio does open it to an attack over the air if inhibit is enabled. Some radios, such as the Motorola Waris professional series cannot disable remote inhibit if MDC decode is enabled.

MDC-1200 Decoding Macro

Put an [mdcmacro] stanza in rpt.conf

IXXXX=*something                    ; will match PTTID XXXX
EXXXX=*something                    ; will match Emergency from XXXX
SXXXX-Y=*something                  ; will match unit XXXX status Y
CXXXX-YYYY=*something               ; will match unit XXXX calling unit YYYY

The character % may be used to match any single character and * may be used to match any number of characters.

Example:

E*=*something                       ; would match ANY ID with an emergency

Macro Execution

If you have a macro setup to do something based on ID, it will execute once even if it hears the ID multiple times in a row (ie. during testing).

If you are testing a macro based on unit ID such as:

[mdcmacro]
I1701=*81#

This will announce the time only once if there are no other MDC ID's received between hearing ID 1701.

MDC-1200 Encoding

MDC-1200 bursts maybe sent from macros or the command line via cop,60:

function_code=cop,60,type,UnitID[,DestID,SubCode]

Type is I for PttID, E for Emergency, and C for Call (SelCall or Alert), or Sx for STS (status), where x is 0-F.

Type Description
I For PTTID
E For Emergency
C For Call (SelCall or CallAlert)
Sx For Status (STS), where x is 0-F

UnitID is the local system's UnitID.

DestID is the MDC-1200 ID of the radio being called, and are only specified for the C type message. The SubCodes associated are as follows:

SubCode Description
8205 Voice Selective Call for Spectra ('Call')
8015 Voice Selective Call for Maxtrac ('SC') or Astro-Saber('Call')
810D Call Alert (like Maxtrac 'CA')

For example in a macro:

8765=cop,60,I,1234                  ; send MDC PTTID 1234
8766=cop,60,C,1600,1701,8015        ; Send MDC1200 call burst using unitID 1600, DestID 1701, and Maxtrac Selective call Subcode

From the CLI sending a unit call to a CDM1550 unit 1701 from unit 1600:

rpt cmd 41618 cop 60 C,1600,1701,8205