Specyfikacja protokołu jest udostępniana na licencji GNU General Public License.

Kodowanie głosu M17 wykorzystuje Codec 2, kodek głosowy o małej przepływności opracowany przez Davida Rowe’a VK5DGR i in. Codec 2 został zaprojektowany do użytku w krótkofalarstwie i innych zastosowaniach wymagających wysokiej kompresji głosu. Opiera się na liniowym kodowaniu predykcyjnym z harmonicznym wzbudzeniem sinusoidalnym. Protokół obsługuje zarówno tryby 3200 (pełna przepływność), jak i 1600 b/s (połowa szybkości).

Korekcja błędów Do korekcji błędów transmisji poprzez kanał radiowy stosowane są trzy metody: binarny kod Golaya, kod splotowy z wykluczaniem i przeplatanie (permutacja) bitów. Dodatkowo przed transmisją wykonywana jest operacja alternatywy rozłącznej (XOR) pomiędzy bitami danych a wstępnie zdefiniowanym, stałym dla każdej ramki, dekorelującym strumieniem pseudolosowym. Zapewnia to możliwie największą liczbę przejść symboli w paśmie podstawowym.

Właściwości protokołu Protokół M17 został zaprojektowany głównie do użytku w krótkofalarstwie.