blob: a6e6aebd306840840c0794ee68af81eba989886c [file] [log] [blame]
Holger Hans Peter Freyther11b28f92010-12-24 13:48:27 +01001#ifndef SMS_QUEUE_H
2#define SMS_QUEUE_H
3
Harald Welte53e2e5f2022-05-17 14:39:51 +02004#include <stdbool.h>
5
Holger Hans Peter Freyther11b28f92010-12-24 13:48:27 +01006struct gsm_network;
Holger Hans Peter Freyther17164062010-12-24 21:39:55 +01007struct gsm_sms_queue;
Holger Hans Peter Freyther81c0e252010-12-25 14:08:00 +01008struct vty;
Holger Hans Peter Freyther11b28f92010-12-24 13:48:27 +01009
Harald Welted302bb12022-05-17 13:31:14 +020010struct sms_queue_config {
11 char *db_file_path; /* SMS database file path */
12 int max_fail; /* maximum number of delivery failures */
13 int max_pending; /* maximum number of gsm_sms_pending in RAM */
Harald Welte53e2e5f2022-05-17 14:39:51 +020014 bool delete_delivered; /* delete delivered SMS from DB? */
15 bool delete_expired; /* delete expired SMS from DB? */
Harald Weltea3c639f2022-05-17 19:01:43 +020016 unsigned int minimum_validity_mins; /* minimum validity period in minutes */
Harald Welte2765a182022-05-17 18:56:55 +020017 unsigned int default_validity_mins; /* default validity period in minutes */
Harald Welted302bb12022-05-17 13:31:14 +020018};
19
20struct sms_queue_config *sms_queue_cfg_alloc(void *ctx);
21
Neels Hofmeyr7c5346c2019-02-19 02:36:35 +010022#define VSUB_USE_SMS_PENDING "SMS-pending"
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010023#define MSC_A_USE_SMS_PENDING "SMS-pending"
Neels Hofmeyr7c5346c2019-02-19 02:36:35 +010024
Harald Welted302bb12022-05-17 13:31:14 +020025int sms_queue_start(struct gsm_network *net);
Holger Hans Peter Freyther17164062010-12-24 21:39:55 +010026int sms_queue_trigger(struct gsm_sms_queue *);
Holger Hans Peter Freyther11b28f92010-12-24 13:48:27 +010027
Holger Hans Peter Freyther81c0e252010-12-25 14:08:00 +010028/* vty helper functions */
29int sms_queue_stats(struct gsm_sms_queue *, struct vty* vty);
Holger Hans Peter Freyther4dcc5e52010-12-25 14:38:30 +010030int sms_queue_clear(struct gsm_sms_queue *);
Stefan Sperling87cba1f2018-01-22 17:05:37 +010031int sms_queue_sms_is_pending(struct gsm_sms_queue *smsq, unsigned long long sms_id);
Holger Hans Peter Freyther81c0e252010-12-25 14:08:00 +010032
Holger Hans Peter Freyther11b28f92010-12-24 13:48:27 +010033#endif