blob: 00c3a19fa05e35afbead49727b4f40d97e78ec48 [file] [log] [blame]
Harald Welte59b04682009-06-10 05:40:52 +08001#ifndef _GSM_04_11_H
2#define _GSM_04_11_H
3
Pablo Neira Ayusodd5fff42011-03-22 16:47:59 +01004#include <osmocom/gsm/protocol/gsm_04_11.h>
Harald Welte59b04682009-06-10 05:40:52 +08005
Holger Hans Peter Freyther9f619d02010-06-15 12:03:10 +08006#define UM_SAPI_SMS 3 /* See GSM 04.05/04.06 */
7
Harald Welte59b04682009-06-10 05:40:52 +08008/* SMS deliver PDU */
9struct sms_deliver {
Holger Hans Peter Freyther7eb8a9a2011-04-18 17:04:00 +020010 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 */
Harald Welte156c5e62009-07-05 14:02:46 +020018 /* service centre time stamp */
Holger Hans Peter Freyther7eb8a9a2011-04-18 17:04:00 +020019 uint8_t ud_len; /* user data length */
20 uint8_t *user_data; /* user data */
Harald Welte156c5e62009-07-05 14:02:46 +020021
Holger Hans Peter Freyther7eb8a9a2011-04-18 17:04:00 +020022 uint8_t msg_ref; /* message reference */
23 uint8_t *smsc;
Harald Welte59b04682009-06-10 05:40:52 +080024};
25
26struct msgb;
27
Holger Hans Peter Freytherb9795792010-06-17 16:41:25 +080028int gsm0411_rcv_sms(struct gsm_subscriber_connection *conn, struct msgb *msg);
Harald Welte59b04682009-06-10 05:40:52 +080029
Holger Hans Peter Freyther735cd9e2009-08-10 07:54:02 +020030struct gsm_sms *sms_alloc(void);
31void sms_free(struct gsm_sms *sms);
Sylvain Munaut9431faa2012-12-28 00:49:01 +010032struct gsm_sms *sms_from_text(struct gsm_subscriber *receiver, struct gsm_subscriber *sender, int dcs, const char *text);
Harald Welte59b04682009-06-10 05:40:52 +080033
Holger Hans Peter Freytherbb1e3812009-10-22 15:39:37 +020034void _gsm411_sms_trans_free(struct gsm_trans *trans);
35int gsm411_send_sms_subscr(struct gsm_subscriber *subscr,
36 struct gsm_sms *sms);
Holger Hans Peter Freyther575d2e12010-12-24 13:48:27 +010037int gsm411_send_sms(struct gsm_subscriber_connection *conn,
38 struct gsm_sms *sms);
Holger Hans Peter Freyther9f619d02010-06-15 12:03:10 +080039void gsm411_sapi_n_reject(struct gsm_subscriber_connection *conn);
Holger Hans Peter Freyther29225282014-02-08 15:20:48 +010040
41uint8_t sms_next_rp_msg_ref(struct gsm_subscriber_connection *conn);
Harald Welte59b04682009-06-10 05:40:52 +080042#endif