Holger Hans Peter Freyther | 11b28f9 | 2010-12-24 13:48:27 +0100 | [diff] [blame] | 1 | #ifndef SMS_QUEUE_H |
| 2 | #define SMS_QUEUE_H |
| 3 | |
Harald Welte | 53e2e5f | 2022-05-17 14:39:51 +0200 | [diff] [blame] | 4 | #include <stdbool.h> |
| 5 | |
Holger Hans Peter Freyther | 11b28f9 | 2010-12-24 13:48:27 +0100 | [diff] [blame] | 6 | struct gsm_network; |
Holger Hans Peter Freyther | 1716406 | 2010-12-24 21:39:55 +0100 | [diff] [blame] | 7 | struct gsm_sms_queue; |
Holger Hans Peter Freyther | 81c0e25 | 2010-12-25 14:08:00 +0100 | [diff] [blame] | 8 | struct vty; |
Holger Hans Peter Freyther | 11b28f9 | 2010-12-24 13:48:27 +0100 | [diff] [blame] | 9 | |
Harald Welte | d302bb1 | 2022-05-17 13:31:14 +0200 | [diff] [blame] | 10 | struct 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 Welte | 53e2e5f | 2022-05-17 14:39:51 +0200 | [diff] [blame] | 14 | bool delete_delivered; /* delete delivered SMS from DB? */ |
| 15 | bool delete_expired; /* delete expired SMS from DB? */ |
Harald Welte | a3c639f | 2022-05-17 19:01:43 +0200 | [diff] [blame] | 16 | unsigned int minimum_validity_mins; /* minimum validity period in minutes */ |
Harald Welte | 2765a18 | 2022-05-17 18:56:55 +0200 | [diff] [blame] | 17 | unsigned int default_validity_mins; /* default validity period in minutes */ |
Harald Welte | d302bb1 | 2022-05-17 13:31:14 +0200 | [diff] [blame] | 18 | }; |
| 19 | |
| 20 | struct sms_queue_config *sms_queue_cfg_alloc(void *ctx); |
| 21 | |
Neels Hofmeyr | 7c5346c | 2019-02-19 02:36:35 +0100 | [diff] [blame] | 22 | #define VSUB_USE_SMS_PENDING "SMS-pending" |
Neels Hofmeyr | c4628a3 | 2018-12-07 14:47:34 +0100 | [diff] [blame] | 23 | #define MSC_A_USE_SMS_PENDING "SMS-pending" |
Neels Hofmeyr | 7c5346c | 2019-02-19 02:36:35 +0100 | [diff] [blame] | 24 | |
Harald Welte | d302bb1 | 2022-05-17 13:31:14 +0200 | [diff] [blame] | 25 | int sms_queue_start(struct gsm_network *net); |
Holger Hans Peter Freyther | 1716406 | 2010-12-24 21:39:55 +0100 | [diff] [blame] | 26 | int sms_queue_trigger(struct gsm_sms_queue *); |
Holger Hans Peter Freyther | 11b28f9 | 2010-12-24 13:48:27 +0100 | [diff] [blame] | 27 | |
Holger Hans Peter Freyther | 81c0e25 | 2010-12-25 14:08:00 +0100 | [diff] [blame] | 28 | /* vty helper functions */ |
| 29 | int sms_queue_stats(struct gsm_sms_queue *, struct vty* vty); |
Holger Hans Peter Freyther | 4dcc5e5 | 2010-12-25 14:38:30 +0100 | [diff] [blame] | 30 | int sms_queue_clear(struct gsm_sms_queue *); |
Stefan Sperling | 87cba1f | 2018-01-22 17:05:37 +0100 | [diff] [blame] | 31 | int sms_queue_sms_is_pending(struct gsm_sms_queue *smsq, unsigned long long sms_id); |
Holger Hans Peter Freyther | 81c0e25 | 2010-12-25 14:08:00 +0100 | [diff] [blame] | 32 | |
Holger Hans Peter Freyther | 11b28f9 | 2010-12-24 13:48:27 +0100 | [diff] [blame] | 33 | #endif |