diff --git a/openbsc/include/openbsc/gsm_04_80.h b/openbsc/include/openbsc/gsm_04_80.h
index 0d61dbd..bbf15ef 100644
--- a/openbsc/include/openbsc/gsm_04_80.h
+++ b/openbsc/include/openbsc/gsm_04_80.h
@@ -24,12 +24,12 @@
 			     const struct ussd_request *request);
 
 struct msgb *gsm0480_create_notifySS(const char *text);
-struct msgb *gsm0480_create_unstructuredSS_Notify(const char *text);
+struct msgb *gsm0480_create_unstructuredSS_Notify(int alertLevel, const char *text);
 
 int gsm0480_wrap_invoke(struct msgb *msg, int op, int link_id);
 int gsm0480_wrap_facility(struct msgb *msg);
 
-int gsm0480_send_ussdNotify(struct gsm_subscriber_connection *conn, const char *text);
+int gsm0480_send_ussdNotify(struct gsm_subscriber_connection *conn, int level, const char *text);
 int gsm0480_send_releaseComplete(struct gsm_subscriber_connection *conn);
 
 #endif
diff --git a/openbsc/src/gsm_04_80.c b/openbsc/src/gsm_04_80.c
index 4173ade..a7c8bd7 100644
--- a/openbsc/src/gsm_04_80.c
+++ b/openbsc/src/gsm_04_80.c
@@ -314,7 +314,7 @@
 	return msg;
 }
 
-struct msgb *gsm0480_create_unstructuredSS_Notify(const char *text)
+struct msgb *gsm0480_create_unstructuredSS_Notify(int alertPattern, const char *text)
 {
 	struct msgb *msg;
 	uint8_t *seq_len_ptr, *ussd_len_ptr, *data;
@@ -343,7 +343,13 @@
 	ussd_len_ptr[0] = len;
 	/* USSD-String } */
 
-	seq_len_ptr[0] = 3 + 2 + ussd_len_ptr[0];
+	/* alertingPattern { */
+	msgb_put_u8(msg, ASN1_OCTET_STRING_TAG);
+	msgb_put_u8(msg, 1);
+	msgb_put_u8(msg, alertPattern);
+	/* } alertingPattern */
+
+	seq_len_ptr[0] = 3 + 2 + ussd_len_ptr[0] + 3;
 	/* } SEQUENCE */
 
 	return msg;
@@ -456,12 +462,12 @@
 	return gsm0808_submit_dtap(conn, msg, 0);
 }
 
-int gsm0480_send_ussdNotify(struct gsm_subscriber_connection *conn, const char *text)
+int gsm0480_send_ussdNotify(struct gsm_subscriber_connection *conn, int level, const char *text)
 {
 	struct gsm48_hdr *gh;
 	struct msgb *msg;
 
-	msg = gsm0480_create_unstructuredSS_Notify(text);
+	msg = gsm0480_create_unstructuredSS_Notify(level, text);
 	if (!msg)
 		return -1;
 
diff --git a/openbsc/src/vty_interface_layer3.c b/openbsc/src/vty_interface_layer3.c
index b775af1..55fe1c0 100644
--- a/openbsc/src/vty_interface_layer3.c
+++ b/openbsc/src/vty_interface_layer3.c
@@ -375,9 +375,10 @@
 
 DEFUN(subscriber_ussd_notify,
       subscriber_ussd_notify_cmd,
-      "subscriber " SUBSCR_TYPES " ID ussd-notify .TEXT",
+      "subscriber " SUBSCR_TYPES " ID ussd-notify (0|1|2) .TEXT",
       SUBSCR_HELP "USSD Notify\n"
       "Subscriber ID\n"
+      "Alerting Level\n"
       "Text Message to send\n")
 {
 	char *text;
@@ -385,6 +386,7 @@
 	struct gsm_network *gsmnet = gsmnet_from_vty(vty);
 	struct gsm_subscriber *subscr = get_subscr_by_argv(gsmnet, argv[0], argv[1]);
 	int rc;
+	int level;
 
 	if (!subscr) {
 		vty_out(vty, "%% No subscriber found for %s %s%s",
@@ -392,7 +394,8 @@
 		return CMD_WARNING;
 	}
 
-	text = argv_concat(argv, argc, 2);
+	level = atoi(argv[2]);
+	text = argv_concat(argv, argc, 3);
 	if (!text) {
 		subscr_put(subscr);
 		return CMD_WARNING;
@@ -407,7 +410,7 @@
 		return CMD_WARNING;
 	}
 
-	gsm0480_send_ussdNotify(conn, text);
+	gsm0480_send_ussdNotify(conn, level, text);
 	gsm0480_send_releaseComplete(conn);
 
 	subscr_put(subscr);
