58 lines
1.6 KiB
C
58 lines
1.6 KiB
C
#ifndef _GSM_04_11_H
|
|
#define _GSM_04_11_H
|
|
|
|
#include <osmocom/gsm/protocol/gsm_04_11.h>
|
|
#include <osmocom/msc/gsm_04_11_gsup.h>
|
|
|
|
struct vlr_subscr;
|
|
struct ran_conn;
|
|
struct gsm_trans;
|
|
struct msc_a;
|
|
|
|
#define UM_SAPI_SMS 3 /* See GSM 04.05/04.06 */
|
|
|
|
/* SMS deliver PDU */
|
|
struct sms_deliver {
|
|
uint8_t mti:2; /* message type indicator */
|
|
uint8_t mms:1; /* more messages to send */
|
|
uint8_t rp:1; /* reply path */
|
|
uint8_t udhi:1; /* user data header indicator */
|
|
uint8_t sri:1; /* status report indication */
|
|
uint8_t *orig_addr; /* originating address */
|
|
uint8_t pid; /* protocol identifier */
|
|
uint8_t dcs; /* data coding scheme */
|
|
/* service centre time stamp */
|
|
uint8_t ud_len; /* user data length */
|
|
uint8_t *user_data; /* user data */
|
|
|
|
uint8_t msg_ref; /* message reference */
|
|
uint8_t *smsc;
|
|
};
|
|
|
|
struct gsm_network;
|
|
struct msgb;
|
|
|
|
int gsm0411_rcv_sms(struct msc_a *msc_a, struct msgb *msg);
|
|
|
|
struct gsm_sms *sms_alloc(void);
|
|
void sms_free(struct gsm_sms *sms);
|
|
struct gsm_sms *sms_from_text(struct vlr_subscr *receiver,
|
|
const char *sender_msisdn,
|
|
int dcs, const char *text);
|
|
|
|
int gsm411_send_sms(struct gsm_network *net,
|
|
struct vlr_subscr *vsub,
|
|
struct gsm_sms *sms);
|
|
int gsm411_send_rp_data(struct gsm_network *net, struct vlr_subscr *vsub,
|
|
size_t sm_rp_oa_len, const uint8_t *sm_rp_oa,
|
|
size_t sm_rp_ud_len, const uint8_t *sm_rp_ud,
|
|
bool sm_rp_mmts_ind);
|
|
|
|
void gsm411_sapi_n_reject(struct msc_a *msc_a);
|
|
|
|
int gsm411_send_rp_ack(struct gsm_trans *trans, uint8_t msg_ref);
|
|
int gsm411_send_rp_error(struct gsm_trans *trans, uint8_t msg_ref,
|
|
uint8_t cause);
|
|
|
|
#endif
|