aboutsummaryrefslogtreecommitdiffstats
path: root/src/hlr_ussd.h
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-06-16 20:21:10 +0200
committerHarald Welte <laforge@gnumonks.org>2018-07-30 14:53:13 +0000
commitbb77939a86260fcd0c6e2c15b5c6f06df8a0b9fe (patch)
treebb05e9a1d093fd38dc589fc6dd7b89b288c7aab1 /src/hlr_ussd.h
parent4956ae1f7074aca8b9c45dfd29bd6e3bc36c65ae (diff)
USSD: Add basic dispatch + decode of GSUP-encapsulated SS/USSD
We don't want any SS session to run for more than 30s. The timeout is currently not refreshed. If we need more comprehensive timeout handling, using osmo_fsm for SS sessions might make sense. Change-Id: I5c9fb6b619402d2a23fea9db99590143d85ac11a
Diffstat (limited to 'src/hlr_ussd.h')
-rw-r--r--src/hlr_ussd.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/hlr_ussd.h b/src/hlr_ussd.h
index 05d2099..433a7f2 100644
--- a/src/hlr_ussd.h
+++ b/src/hlr_ussd.h
@@ -1,5 +1,9 @@
#include <stdint.h>
#include <osmocom/core/linuxlist.h>
+#include <osmocom/gsm/gsup.h>
+#include "gsup_server.h"
+
+struct osmo_gsup_conn;
struct hlr_euse_route {
/* hlr_euse.routes */
@@ -18,6 +22,9 @@ struct hlr_euse {
const char *description;
/* list of hlr_euse_route */
struct llist_head routes;
+
+ /* GSUP connection to the EUSE, if any */
+ struct osmo_gsup_conn *conn;
};
@@ -28,3 +35,6 @@ void euse_del(struct hlr_euse *euse);
struct hlr_euse_route *euse_route_find(struct hlr_euse *euse, const char *prefix);
struct hlr_euse_route *euse_route_prefix_alloc(struct hlr_euse *euse, const char *prefix);
void euse_route_del(struct hlr_euse_route *rt);
+
+int rx_proc_ss_req(struct osmo_gsup_conn *conn, const struct osmo_gsup_message *gsup);
+int rx_proc_ss_error(struct osmo_gsup_conn *conn, const struct osmo_gsup_message *gsup);