blob: 17a31ecdde5ff5937d82bcfd4def90de55497374 [file] [log] [blame]
Daniel Willmann8b3390e2008-12-28 00:31:09 +00001#ifndef _GSM_04_11_H
2#define _GSM_04_11_H
3
Pablo Neira Ayuso136f4532011-03-22 16:47:59 +01004#include <osmocom/gsm/protocol/gsm_04_11.h>
Vadim Yanitskiy76ef72d2018-11-07 05:08:18 +07005#include <osmocom/msc/gsm_04_11_gsup.h>
Harald Welte7e310b12009-03-30 20:56:32 +00006
Harald Welte2483f1b2016-06-19 18:06:02 +02007struct vlr_subscr;
Neels Hofmeyrc036b792018-11-29 22:37:51 +01008struct ran_conn;
Harald Welte2483f1b2016-06-19 18:06:02 +02009struct gsm_trans;
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010010struct msc_a;
Harald Welte2483f1b2016-06-19 18:06:02 +020011
Holger Hans Peter Freyther6a3d7652010-06-15 12:03:10 +080012#define UM_SAPI_SMS 3 /* See GSM 04.05/04.06 */
13
Vadim Yanitskiy24e025e2018-11-22 15:42:39 +070014struct gsm_network;
Daniel Willmann8b3390e2008-12-28 00:31:09 +000015struct msgb;
16
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010017int gsm0411_rcv_sms(struct msc_a *msc_a, struct msgb *msg);
Daniel Willmann8b3390e2008-12-28 00:31:09 +000018
Holger Hans Peter Freyther34e97492009-08-10 07:54:02 +020019struct gsm_sms *sms_alloc(void);
20void sms_free(struct gsm_sms *sms);
Harald Welte2483f1b2016-06-19 18:06:02 +020021struct gsm_sms *sms_from_text(struct vlr_subscr *receiver,
Harald Welte39b55482018-04-09 19:19:33 +020022 const char *sender_msisdn,
Harald Welte2483f1b2016-06-19 18:06:02 +020023 int dcs, const char *text);
Daniel Willmann6fe997e2008-12-29 04:20:41 +000024
Vadim Yanitskiy24e025e2018-11-22 15:42:39 +070025int gsm411_send_sms(struct gsm_network *net,
26 struct vlr_subscr *vsub,
Holger Hans Peter Freyther11b28f92010-12-24 13:48:27 +010027 struct gsm_sms *sms);
Vadim Yanitskiy82cc8a52018-11-15 01:05:53 +070028int gsm411_send_rp_data(struct gsm_network *net, struct vlr_subscr *vsub,
29 size_t sm_rp_oa_len, const uint8_t *sm_rp_oa,
Vadim Yanitskiy643270f2019-05-12 05:38:41 +070030 size_t sm_rp_ud_len, const uint8_t *sm_rp_ud,
Mychaela N. Falconia02c49372023-09-25 05:13:49 +000031 bool sm_rp_mmts_ind, const uint8_t *gsup_source_name,
32 size_t gsup_source_name_len);
Vadim Yanitskiy82cc8a52018-11-15 01:05:53 +070033
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010034void gsm411_sapi_n_reject(struct msc_a *msc_a);
Holger Hans Peter Freytherca114432014-02-08 15:20:48 +010035
Pablo Neira Ayuso93ffbd02017-05-04 18:44:22 +020036int gsm411_send_rp_ack(struct gsm_trans *trans, uint8_t msg_ref);
37int gsm411_send_rp_error(struct gsm_trans *trans, uint8_t msg_ref,
38 uint8_t cause);
39
Daniel Willmann8b3390e2008-12-28 00:31:09 +000040#endif