diff --git a/include/openbsc/abis_rsl.h b/include/openbsc/abis_rsl.h
index e7fea80..510c8e9 100644
--- a/include/openbsc/abis_rsl.h
+++ b/include/openbsc/abis_rsl.h
@@ -347,7 +347,8 @@
 int rsl_chan_activate_sdcch(struct gsm_bts_trx_ts *ts);
 int rsl_paging_cmd(struct gsm_bts *bts, u_int8_t paging_group, u_int8_t len,
 		   u_int8_t *ms_ident, u_int8_t chan_needed);
-int rsl_paging_cmd_imsi(struct gsm_bts *bts, u_int8_t chan_needed, const char *imsi_str);
+int rsl_paging_cmd_subscr(struct gsm_bts *bts, u_int8_t chan_needed,
+			 struct gsm_subscriber *subscr);
 int rsl_imm_assign_cmd(struct gsm_bts *bts, u_int8_t len, u_int8_t *val);
 
 int rsl_data_request(struct msgb *msg, u_int8_t link_id);
diff --git a/src/abis_rsl.c b/src/abis_rsl.c
index e8cd9ca..04c8455 100644
--- a/src/abis_rsl.c
+++ b/src/abis_rsl.c
@@ -383,6 +383,16 @@
 	return abis_rsl_sendmsg(msg);
 }
 
+int rsl_paging_cmd_subscr(struct gsm_bts *bts, u_int8_t chan_need,
+			  struct gsm_subscriber *subscr)
+{
+	u_int8_t mi[128];
+	unsigned int mi_len;
+	u_int8_t paging_group;
+
+	return -1;
+}
+
 int imsi_str2bcd(u_int8_t *bcd_out, const char *str_in)
 {
 	int i, len = strlen(str_in);
diff --git a/src/telnet_interface.c b/src/telnet_interface.c
index 49a34c6..7da53fd 100644
--- a/src/telnet_interface.c
+++ b/src/telnet_interface.c
@@ -30,6 +30,7 @@
 #include <openbsc/chan_alloc.h>
 #include <openbsc/gsm_04_08.h>
 #include <openbsc/msgb.h>
+#include <openbsc/abis_rsl.h>
 
 extern void telnet_parse(struct telnet_connection *connection, char *line);
 
@@ -135,10 +136,6 @@
 	ret = write(fd, msg, strlen(msg));
 }
 
-void telnet_page(struct telnet_connection *connection, const char *imsi, int page) {
-	printf("going to page: '%s' %d\n", imsi, page);
-}
-
 static struct gsm_lchan* find_channel(struct gsm_bts *bts, const char *imsi,
 			    const char **error, int fd) {
 	int ret;
@@ -159,6 +156,27 @@
 	return lchan;
 }
 
+void telnet_page(struct telnet_connection *connection, const char *imsi, int type) {
+	int ret;
+	static const char* error[] = {
+		"paging: IMSI not found\n",
+		"paging: No channel allocated for IMSI -> will allocate\n" };
+	struct gsm_bts *bts = &connection->network->bts[connection->bts];
+	struct gsm_lchan *lchan = find_channel(bts, imsi, error, connection->fd.fd);
+
+	if (lchan) {
+		static const char *msg = "paging: A Channel is already allocated.\n";
+		ret = write(connection->fd.fd, msg, strlen(msg));
+		return;
+	}
+
+	struct gsm_subscriber *subscr = subscr_get_by_imsi(imsi);
+	if (!subscr)
+		return;
+
+	rsl_paging_cmd_subscr(bts, type, subscr);
+}
+
 void telnet_put_channel(struct telnet_connection *connection, const char *imsi) {
 	static const char* error[] = {
 		"put_channel: IMSI not found\n",
