Recently-licensed hams may qualify for a FREE first-year RATS membership. Meet new friends, gain new skills, and save $35! What a deal!
All amateur radio operators using DMR need to be aware of the requirements of FCC Part 97 as they pertain to station identification. The IDC protocol described on this page was developed by Steve Crow KG4PEQ and is recommended for all users engaging in data operations on the RATS DMR system.
► The information on this page is relevant only to users of DMR data applications on the RATS repeater. It does not pertain to normal voice operation by a majority of hams.
🛑 All users must obtain the permission of the repeater owner before using DMR data applications on any DMRVA network repeater. Our Technical Committee handles data authorizations for the RATS repeater. For more information, see our DMR IP Data and Messaging page.
🛑 A properly configured software or hardware firewall is required of all data users on the RATS repeater. Failure to adequately block unwanted outbound traffic can result in significant RF network congestion. Offending radios may be permanently blocked from the system. For more information, see our DMR IP Data and Messaging page.
Application developers are encouraged to incorporate the use of a special Identification, Data, and Control (IDC) Talkgroup for purposes of station identification and machine-to-machine communication.
► Pending a permanent designation from the DMRVA network operators, RATS repeater users should use temporary IDC Talkgroup 199.
► If your application uses the IDC talkgroup for machine-to-machine data transfer or to monitor for other stations on the network, add the IDC talkgroup to your RX Group List.
The use of an IDC talkgroup and plain-text UDP packets has advantages over other proposed DMR data ID solutions:
Station ID packets are in a standard SMS format and can be received by nearly any radio via the IDC talkgroup, no special equipment, decoders, or packet sniffers required.
Use of a talkgroup leverages DMR's built-in packet broadcast functionality, allowing one transmission to reach many radios at once.
Segregation of ID and non-ID traffic (UDP ports 5016 and 6016) allows talkgroup reuse, allowing all participating stations to receive the ID traffic without all of the other noise that can be carried on the IDC talkgroup.
ID packets shall be sent in the ETSI DMR standard SMS format, UTF16-encoded plain text on UDP port 5016 to the IDC talkgroup once every 9 minutes, or more often if required by local regulations. An app identifier, station call sign, and other information may be included in the packet, according to the following format:
fccid:app_id | de CALLSIGN | app_data
Descriptions:
fccid: - indicates that this is an FCC ID packet. Required.
app_id - up to 16 characters identifying the specific application being used. Optional.
CALLSIGN - up to 12 characters for station identification (FCC call sign and optional suffix). Required.
app_data - up to 60 characters of application-specific data, such as status flags. Optional.
Sample string, from the KG4PEQ DMR Messenger app:
fccid:dmrmsg-1.0 | de KG4PEQ | tg=99 voice_tg=31511 status=aIFG msg="Monitoring RVA Metro"
The data included in the third section of that sample packet is unique to the DMR Messenger application but can be easily decoded by other programs.
IDC packets are UTF16-encoded plain text messages transmitted on UDP port 5016 to the designated IDC talkgroup by calculating the talkgroup IP address using the Group CAI Network from the codeplug (default 225).
With radio connected via USB, drivers installed, routing table configured to send 225.0.0.0/8 over the DMR interface, and a properly configured firewall in place:
Form a UTF16 packet per the specification on this page.
Calculate the destination IDC talkgroup IP address. Using the default Group CAI Network of 225 and recommended IDC Talkgroup 199, the IP address is 225.0.0.199.
Transmit the packet over UDP port 5016 to the destination talkgroup IP address
It is recommended that IDC packets are beaconed at regular intervals (every 9 minutes for US users) regardless of local application activity, due to the nature of DMR message and data transmission, acknowledgment packets, etc.
Here's a handy DMR IP address calculator. Learn more about DMR IPs here.
If your application uses the IDC talkgroup for machine-to-machine data transfer or to monitor for other stations on the network, add the IDC talkgroup to your RX Group List.
A simple UDP listener can be bound to port 5016 to capture any ID traffic that comes in from the IDC talkgroup. A second listener on 6016 will capture other IDC traffic.
Note that it is not possible, at the receiving PC, to determine which talkgroup an inbound group message or broadcast packet was transmitted to.
The IDC talkgroup can also be used for machine-to-machine communication.
► IDC Identification Packets should be transmitted on UDP port 5016
► IDC Data Packets should use UDP port 6016
► Non-IDC Data Packets can use the IDC talkgroup but should use a port number other than 5016 or 6016
The format of an IDC Data Packet is similar to the ID packet:
type:app_id | de CALLSIGN | app_data
Descriptions:
type: - identifies the type of packet. No standardization here, application-specific. Required.
app_id - up to 16 characters identifying the specific application being used. Required.
CALLSIGN - up to 12 characters for station identification (FCC call sign and optional suffix). Required.
app_data - up to about 225 characters of application-specific data. Optional.
Sample string, from the KG4PEQ DMR Messenger app:
pkg:dmrmsg-1.0 | de KG4PEQ | chunk file_id=abc123 index=5 data=U29tZUJhc2U2NEVuY29kZWREYXRh
Here, the application uses pkg: to identify a file package, and chunk file_id=abc123... is the application-specific data being sent. It's left up to the application developer to determine exactly how to use these types of packets. The KG4PEQ DMR Messenger app defines several custom IDC packet formats including station queries, file transfers, network discovery, and file fill requests. Your app can elect to incorporate interoperability with any of these features using the IDC talkgroup.
The IDC talkgroup may also be used for short voice or CW identification if no data or messaging-based utility is available. These transmissions shall not exceed 10 seconds in length nor occur more than once every 9 minutes unless required by local regulations.