aboutsummaryrefslogtreecommitdiffstats
path: root/include/openbsc/gsm_04_11.h
blob: 1c044677f81a09aa68942485937fefbcedcf4b83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#ifndef _GSM_04_11_H
#define _GSM_04_11_H

/* GSM TS 04.11  definitions */

/* Chapter 8.1.2 (refers to GSM 04.07 Chapter 11.2.3.1.1 */
#define GSM411_PDISC_SMS	0x09

/* Chapter 8.1.3 */
#define GSM411_MT_CP_DATA	0x01
#define GSM411_MT_CP_ACK	0x04
#define GSM411_MT_CP_ERROR	0x10

/* Chapter 8.2.2 */
#define GSM411_MT_RP_DATA_MO	0x00
#define GSM411_MT_RP_DATA_MT	0x01
#define GSM411_MT_RP_ACK_MO	0x02
#define GSM411_MT_RP_ACK_MT	0x03
#define GSM411_MT_RP_ERROR_MO	0x04
#define GSM411_MT_RP_ERROR_MT	0x04
#define GSM411_MT_RP_SMMA_MO	0x05

/* Chapter 8.2.1 */
struct gsm411_rp_hdr {
	u_int8_t len;
	u_int8_t msg_type;
	u_int8_t msg_ref;
	u_int8_t data[0];
} __attribute__ ((packed));

/* SMS submit PDU */
struct sms_submit {
	u_int8_t *smsc;
	u_int8_t mti:2;
	u_int8_t mms:1;
	u_int8_t vpf:2;
	u_int8_t sri:1;
	u_int8_t udhi:1;
	u_int8_t rp:1;
	u_int8_t msg_ref;
	u_int8_t *dest_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;

int gsm0411_rcv_sms(struct msgb *msg);

#endif