blob: 2abe3e202ef38e0cbebb35887f3e0e3b360630f5 [file] [log] [blame]
Jonathan Santos03fd8d02011-05-25 13:54:02 -04001#ifndef _GSM_04_11_H
2#define _GSM_04_11_H
3
Jonathan Santos5a45b152011-08-17 15:33:57 -04004#include <osmocom/gsm/protocol/gsm_04_11.h>
Jonathan Santos03fd8d02011-05-25 13:54:02 -04005
6#define UM_SAPI_SMS 3 /* See GSM 04.05/04.06 */
7
8/* SMS deliver PDU */
9struct sms_deliver {
Jonathan Santos5a45b152011-08-17 15:33:57 -040010 uint8_t mti:2; /* message type indicator */
11 uint8_t mms:1; /* more messages to send */
12 uint8_t rp:1; /* reply path */
13 uint8_t udhi:1; /* user data header indicator */
14 uint8_t sri:1; /* status report indication */
15 uint8_t *orig_addr; /* originating address */
16 uint8_t pid; /* protocol identifier */
17 uint8_t dcs; /* data coding scheme */
Jonathan Santos03fd8d02011-05-25 13:54:02 -040018 /* service centre time stamp */
Jonathan Santos5a45b152011-08-17 15:33:57 -040019 uint8_t ud_len; /* user data length */
20 uint8_t *user_data; /* user data */
Jonathan Santos03fd8d02011-05-25 13:54:02 -040021
Jonathan Santos5a45b152011-08-17 15:33:57 -040022 uint8_t msg_ref; /* message reference */
23 uint8_t *smsc;
Jonathan Santos03fd8d02011-05-25 13:54:02 -040024};
25
26struct msgb;
27
28int gsm0411_rcv_sms(struct gsm_subscriber_connection *conn, struct msgb *msg);
29
30struct gsm_sms *sms_alloc(void);
31void sms_free(struct gsm_sms *sms);
32struct gsm_sms *sms_from_text(struct gsm_subscriber *receiver, int dcs, const char *text);
33
34void _gsm411_sms_trans_free(struct gsm_trans *trans);
35int gsm411_send_sms_subscr(struct gsm_subscriber *subscr,
36 struct gsm_sms *sms);
37int gsm411_send_sms(struct gsm_subscriber_connection *conn,
38 struct gsm_sms *sms);
39void gsm411_sapi_n_reject(struct gsm_subscriber_connection *conn);
40#endif