further steps towards better, transaction based SMS
diff --git a/openbsc/include/openbsc/gsm_04_11.h b/openbsc/include/openbsc/gsm_04_11.h
index 4f45357..54b44c0 100644
--- a/openbsc/include/openbsc/gsm_04_11.h
+++ b/openbsc/include/openbsc/gsm_04_11.h
@@ -3,6 +3,21 @@
 
 /* GSM TS 04.11  definitions */
 
+/* Chapter 5.2.3: SMC-CS states at the network side */
+enum gsm411_cp_state {
+	GSM411_CPS_IDLE 		= 0,
+	GSM411_CPS_MM_CONN_PENDING	= 1,	/* only MT ! */
+	GSM411_CPS_WAIT_CP_ACK		= 2,
+	GSM411_CPS_MM_ESTABLISHED	= 3,
+};
+
+/* Chapter 6.2.2: SMR states at the network side */
+enum gsm411_rp_state {
+	GSM411_RPS_IDLE			= 0,
+	GSM411_RPS_WAIT_FOR_RP_ACK	= 1,
+	GSM411_RPS_WAIT_TO_TX_RP_ACK	= 3,
+};
+
 /* Chapter 8.1.2 (refers to GSM 04.07 Chapter 11.2.3.1.1 */
 #define GSM411_PDISC_SMS	0x09
 
@@ -73,6 +88,11 @@
 	GSM411_RP_CAUSE_PROTOCOL_ERR		= 111,
 };
 
+/* Chapter 10: Timers */
+#define GSM411_TMR_TR1M		40	/* 35 < x < 45 seconds */
+#define GSM411_TMR_TRAM		30	/* 25 < x < 35 seconds */
+#define GSM411_TMR_TR2M		15	/* 12 < x < 20 seconds */
+
 /* Chapter 8.2.1 */
 struct gsm411_rp_hdr {
 	u_int8_t len;
@@ -184,7 +204,6 @@
 #define GSM338_DCS_1111_CLASS2_SIM	2
 #define GSM338_DCS_1111_CLASS3_TE	3	/* See TS 07.05 */
 
-
 /* SMS deliver PDU */
 struct sms_deliver {
 	u_int8_t mti:2;		/* message type indicator */
diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h
index 7ada2a1..20e62c3 100644
--- a/openbsc/include/openbsc/gsm_data.h
+++ b/openbsc/include/openbsc/gsm_data.h
@@ -351,6 +351,11 @@
 	struct gsm_subscriber *receiver;
 
 	unsigned long validity_minutes;
+	unsigned char reply_path_req;
+	unsigned char status_rep_req;
+	unsigned char protocol_id;
+	unsigned char data_coding_scheme;
+
 	unsigned int header_len;
 	unsigned char header[SMS_HDR_SIZE];
 	char text[SMS_TEXT_SIZE];
diff --git a/openbsc/include/openbsc/transaction.h b/openbsc/include/openbsc/transaction.h
index c51be81..ad6fe35 100644
--- a/openbsc/include/openbsc/transaction.h
+++ b/openbsc/include/openbsc/transaction.h
@@ -39,6 +39,7 @@
 			struct gsm_mncc msg;	/* stores setup/disconnect/release message */
 		} cc;
 		struct {
+			int is_mt;	/* is this a MO (0) or MT (1) transfer */
 			enum gsm411_cp_state cp_state;
 			enum gsm411_rp_state rp_state;