more SMS improvements
* describe data structures in gsm_04_11.h
* increae LCHAN RELEASE TIMEOUT for case of long SMS
* convert header field in sql table from NUMERIC to BLOB
* initial handling for validity period
* send RP ERROR messages with meaningful RP CAUSE in case of error
diff --git a/openbsc/include/openbsc/gsm_04_11.h b/openbsc/include/openbsc/gsm_04_11.h
index 51c37f0..4f45357 100644
--- a/openbsc/include/openbsc/gsm_04_11.h
+++ b/openbsc/include/openbsc/gsm_04_11.h
@@ -92,20 +92,20 @@
/* SMS submit PDU */
struct sms_submit {
u_int8_t *smsc;
- u_int8_t mti:2;
- u_int8_t vpf:2;
- u_int8_t msg_ref;
- u_int8_t pid;
- u_int8_t dcs;
- u_int8_t *vp;
- u_int8_t ud_len;
- u_int8_t *user_data;
+ u_int8_t mti:2; /* message type indicator */
+ u_int8_t vpf:2; /* validity period format */
+ u_int8_t msg_ref; /* message reference */
+ u_int8_t pid; /* protocol identifier */
+ u_int8_t dcs; /* data coding scheme */
+ u_int8_t *vp; /* validity period */
+ u_int8_t ud_len; /* user data length */
+ u_int8_t *user_data; /* user data */
/* interpreted */
- u_int8_t mms:1;
- u_int8_t sri:1;
- u_int8_t udhi:1;
- u_int8_t rp:1;
+ u_int8_t mms:1; /* more messages to send */
+ u_int8_t srr:1; /* status report request */
+ u_int8_t udhi:1; /* user data headre indication */
+ u_int8_t rp:1; /* request for reply path */
enum sms_alphabet alphabet;
char dest_addr[20+1]; /* DA LV is 12 bytes max, i.e. 10 bytes BCD == 20 bytes string */
unsigned long validity_mins;
@@ -187,20 +187,20 @@
/* SMS deliver PDU */
struct sms_deliver {
+ u_int8_t mti:2; /* message type indicator */
+ u_int8_t mms:1; /* more messages to send */
+ u_int8_t rp:1; /* reply path */
+ u_int8_t udhi:1; /* user data header indicator */
+ u_int8_t sri:1; /* status report indication */
+ u_int8_t *orig_addr; /* originating address */
+ u_int8_t pid; /* protocol identifier */
+ u_int8_t dcs; /* data coding scheme */
+ /* service centre time stamp */
+ u_int8_t ud_len; /* user data length */
+ u_int8_t *user_data; /* user data */
+
+ u_int8_t msg_ref; /* message reference */
u_int8_t *smsc;
- u_int8_t mti:2;
- u_int8_t rd:1;
- u_int8_t vpf:2;
- u_int8_t srr:1;
- u_int8_t udhi:1;
- u_int8_t rp:1;
- u_int8_t msg_ref;
- u_int8_t *orig_addr;
- u_int8_t pid;
- u_int8_t dcs;
- u_int8_t vp;
- u_int8_t ud_len;
- u_int8_t *user_data;
};
struct msgb;