diff --git a/include/gapk/formats.h b/include/gapk/formats.h
index d0f4568..81670b8 100644
--- a/include/gapk/formats.h
+++ b/include/gapk/formats.h
@@ -56,6 +56,8 @@
 
 	/* HR in RTP according to ETSI TS 101 318 */
 	FMT_RTP_HR_ETSI,
+	/* HR in RTP according to IETF RFC5993 */
+	FMT_RTP_HR_IETF,
 
 	_FMT_MAX,
 };
diff --git a/src/Makefile.am b/src/Makefile.am
index f45dcde..e0b622c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -7,7 +7,7 @@
 COM_SOURCES = procqueue.c pq_file.c pq_format.c pq_codec.c pq_rtp.c pq_alsa.c \
 		formats.c fmt_amr.c fmt_gsm.c fmt_hr_ref.c fmt_racal.c \
 		fmt_amr_opencore.c \
-		fmt_rtp_amr.c fmt_rtp_efr.c fmt_rtp_hr_etsi.c \
+		fmt_rtp_amr.c fmt_rtp_efr.c fmt_rtp_hr_etsi.c fmt_rtp_hr_ietf.c \
 		fmt_rawpcm.c fmt_ti.c benchmark.c \
 		codecs.c codec_pcm.c codec_hr.c codec_fr.c codec_efr.c codec_amr.c
 
diff --git a/src/fmt_rtp_hr_ietf.c b/src/fmt_rtp_hr_ietf.c
new file mode 100644
index 0000000..57da9c9
--- /dev/null
+++ b/src/fmt_rtp_hr_ietf.c
@@ -0,0 +1,80 @@
+/* HR RTP Payload according to RFC5993. Incompatible with ETSI TS 101 318! */
+/* (C) 2017 by Harald Welte <laforge@gnumonks.org> */
+
+/*
+ * This file is part of gapk (GSM Audio Pocket Knife).
+ *
+ * gapk is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * gapk is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gapk.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdint.h>
+#include <assert.h>
+#include <string.h>
+
+#include <gapk/codecs.h>
+#include <gapk/formats.h>
+#include <gapk/utils.h>
+
+#define HR_LEN	(HR_CANON_LEN+1)
+
+/* See Section 5.2 of RFC5993 */
+enum rtp_hr_ietf_ft {
+	FT_GOOD_SPEECH	= 0,
+	FT_GOOD_SID	= 2,
+	FT_NO_DATA	= 7,
+};
+
+/* conversion function: RTP payload -> canonical format */
+static int
+rtp_hr_ietf_from_canon(uint8_t *dst, const uint8_t *src, unsigned int src_len)
+{
+	enum rtp_hr_ietf_ft ft;
+
+	/* according to RFC5993 */
+	assert(src_len == HR_CANON_LEN);
+
+	/* TODO: Determine SID frames / NO_DATA frames */
+	ft = FT_GOOD_SPEECH;
+	/* Add ToC byte */
+	dst[0] = ((ft & 0x7) << 4);
+
+	/* copy codec payload */
+	memcpy(dst+1, src, src_len);
+
+	return HR_CANON_LEN;
+}
+
+/* conversion function: canonical format -> RTP payload */
+static int
+rtp_hr_ietf_to_canon(uint8_t *dst, const uint8_t *src, unsigned int src_len)
+{
+	/* according to RFC5993 */
+	assert(src_len == HR_LEN);
+
+	/* Remove ToC byte */
+	memcpy(dst, src+1, HR_CANON_LEN);
+
+	return HR_CANON_LEN;
+}
+
+const struct format_desc fmt_rtp_hr_ietf = {
+	.type			= FMT_RTP_HR_IETF,
+	.codec_type		= CODEC_HR,
+	.name			= "rtp-hr-ietf",
+	.description		= "RTP payload for HR according to IETF RFC5993",
+
+	.frame_len		= HR_LEN,
+	.conv_from_canon	= rtp_hr_ietf_from_canon,
+	.conv_to_canon		= rtp_hr_ietf_to_canon,
+};
diff --git a/src/formats.c b/src/formats.c
index 655a7be..60182fe 100644
--- a/src/formats.c
+++ b/src/formats.c
@@ -38,6 +38,7 @@
 extern const struct format_desc fmt_rtp_amr;
 extern const struct format_desc fmt_rtp_efr;
 extern const struct format_desc fmt_rtp_hr_etsi;
+extern const struct format_desc fmt_rtp_hr_ietf;
 
 static const struct format_desc *supported_formats[_FMT_MAX] = {
 	[FMT_INVALID]		= NULL,
@@ -56,6 +57,7 @@
 	[FMT_RTP_AMR]		= &fmt_rtp_amr,
 	[FMT_RTP_EFR]		= &fmt_rtp_efr,
 	[FMT_RTP_HR_ETSI]	= &fmt_rtp_hr_etsi,
+	[FMT_RTP_HR_IETF]	= &fmt_rtp_hr_ietf,
 };
 
 
