trial: SMS-over-GSUP
diff --git a/include/osmocom/hlr/Makefile.am b/include/osmocom/hlr/Makefile.am
index aceda4a..89847ca 100644
--- a/include/osmocom/hlr/Makefile.am
+++ b/include/osmocom/hlr/Makefile.am
@@ -16,5 +16,6 @@
 	proxy.h \
 	rand.h \
 	remote_hlr.h \
+	sms_over_gsup.h \
 	timestamp.h \
 	$(NULL)
diff --git a/include/osmocom/hlr/hlr.h b/include/osmocom/hlr/hlr.h
index 2294bb6..b31b5d0 100644
--- a/include/osmocom/hlr/hlr.h
+++ b/include/osmocom/hlr/hlr.h
@@ -112,6 +112,14 @@
 			} mdns;
 		} client;
 	} mslookup;
+
+	struct {
+		/* FIXME actually use branch fixeria/sms for SMSC routing. completely unimplemented */
+		struct osmo_gsup_peer_id smsc;
+
+		/* If no SMSC is present / responsible, try punching the SMS through directly when this is true. */
+		bool try_direct_delivery;
+	} sms_over_gsup;
 };
 
 extern struct hlr *g_hlr;
diff --git a/include/osmocom/hlr/sms_over_gsup.h b/include/osmocom/hlr/sms_over_gsup.h
new file mode 100644
index 0000000..9b8a051
--- /dev/null
+++ b/include/osmocom/hlr/sms_over_gsup.h
@@ -0,0 +1,8 @@
+#pragma once
+#include <stdbool.h>
+
+#include <osmocom/gsupclient/gsup_req.h>
+
+#define OSMO_MSLOOKUP_SERVICE_SMS_GSUP "gsup.sms"
+
+bool sms_over_gsup_check_handle_msg(struct osmo_gsup_req *req);