diff --git a/openbsc/src/vty_interface_layer3.c b/openbsc/src/vty_interface_layer3.c
index 87c1c85..6fe209e 100644
--- a/openbsc/src/vty_interface_layer3.c
+++ b/openbsc/src/vty_interface_layer3.c
@@ -194,12 +194,12 @@
 }
 
 static int _send_sms_buffer(struct gsm_subscriber *receiver,
-			     struct buffer *b)
+			     struct buffer *b, u_int8_t tp_pid)
 {
 	struct gsm_sms *sms;
 
 	sms = sms_from_text(receiver, buffer_getstr(b));
-
+	sms->protocol_id = tp_pid;
 	gsm411_send_sms_subscr(receiver, sms);
 
 	return CMD_SUCCESS;
@@ -219,7 +219,27 @@
 		return CMD_WARNING;
 
 	b = argv_to_buffer(argc, argv, 1);
-	rc = _send_sms_buffer(receiver, b);
+	rc = _send_sms_buffer(receiver, b, 0);
+	buffer_free(b);
+
+	return rc;
+}
+
+DEFUN(sms_send_silent_ext,
+      sms_send_silent_ext_cmd,
+      "sms send silent extension EXTEN .LINE",
+      "Send a silent message to a subscriber identified by EXTEN")
+{
+	struct gsm_subscriber *receiver;
+	struct buffer *b;
+	int rc;
+
+	receiver = subscr_get_by_extension(gsmnet, argv[0]);
+	if (!receiver)
+		return CMD_WARNING;
+
+	b = argv_to_buffer(argc, argv, 1);
+	rc = _send_sms_buffer(receiver, b, 64);
 	buffer_free(b);
 	subscr_put(receiver);
 
@@ -240,7 +260,27 @@
 		return CMD_WARNING;
 
 	b = argv_to_buffer(argc, argv, 1);
-	rc = _send_sms_buffer(receiver, b);
+	rc = _send_sms_buffer(receiver, b, 0);
+	buffer_free(b);
+
+	return rc;
+}
+
+DEFUN(sms_send_silent_imsi,
+      sms_send_silent_imsi_cmd,
+      "sms send silent imsi IMSI .LINE",
+      "Send a silent message to a subscriber identified by IMSI")
+{
+	struct gsm_subscriber *receiver;
+	struct buffer *b;
+	int rc;
+
+	receiver = subscr_get_by_imsi(gsmnet, argv[0]);
+	if (!receiver)
+		return CMD_WARNING;
+
+	b = argv_to_buffer(argc, argv, 1);
+	rc = _send_sms_buffer(receiver, b, 64);
 	buffer_free(b);
 	subscr_put(receiver);
 
@@ -307,6 +347,8 @@
 	install_element(VIEW_NODE, &sms_send_pend_cmd);
 	install_element(VIEW_NODE, &sms_send_ext_cmd);
 	install_element(VIEW_NODE, &sms_send_imsi_cmd);
+	install_element(VIEW_NODE, &sms_send_silent_ext_cmd);
+	install_element(VIEW_NODE, &sms_send_silent_imsi_cmd);
 
 	install_element(CONFIG_NODE, &cfg_subscr_cmd);
 	install_node(&subscr_node, dummy_config_write);
