modify the signal handler/dispatch code (sorry zecke, no offense, I just had some different ideas)
* introduce new notion of subsystem in addition to signal number
* no need for bitmasks of 'areas' (aka subsystems)
* pass subsystem/signal_nr/... per argument rather than by data structure

diff --git a/src/gsm_04_08.c b/src/gsm_04_08.c
index 0d889fb..c69e246 100644
--- a/src/gsm_04_08.c
+++ b/src/gsm_04_08.c
@@ -685,6 +685,7 @@
 	u_int8_t mi_type = pr->mi[0] & GSM_MI_TYPE_MASK;
 	char mi_string[MI_SIZE];
 	struct gsm_subscriber *subscr;
+	struct paging_signal_data sig_data;
 	int rc = 0;
 
 	mi_to_string(mi_string, sizeof(mi_string), &pr->mi[0], pr->mi_len);
@@ -707,15 +708,11 @@
 		subscr_put(subscr);
 	}
 
-	struct paging_signal_data sig_data = {
-		.data = {
-			.area = S_PAGING,
-		},
-		.subscr = subscr,
-		.bts	= msg->lchan->ts->trx->bts,
-		.lchan	= msg->lchan,
-	};
-	dispatch_signal(&sig_data.data);
+	sig_data.subscr = subscr;
+	sig_data.bts	= msg->lchan->ts->trx->bts;
+	sig_data.lchan	= msg->lchan;
+
+	dispatch_signal(SS_PAGING, S_PAGING_COMPLETED, &sig_data);
 	paging_request_stop(msg->trx->bts, subscr);
 
 	/* FIXME: somehow signal the completion of the PAGING to