diff options
Diffstat (limited to 'include/osmocom')
-rw-r--r-- | include/osmocom/msc/db.h | 1 | ||||
-rw-r--r-- | include/osmocom/msc/sms_queue.h | 19 |
2 files changed, 19 insertions, 1 deletions
diff --git a/include/osmocom/msc/db.h b/include/osmocom/msc/db.h index fc1781bd6..7392bd270 100644 --- a/include/osmocom/msc/db.h +++ b/include/osmocom/msc/db.h @@ -49,6 +49,7 @@ struct gsm_sms *db_sms_get_unsent_for_subscr(struct vlr_subscr *vsub, int db_sms_mark_delivered(struct gsm_sms *sms); int db_sms_inc_deliver_attempts(struct gsm_sms *sms); int db_sms_delete_by_msisdn(const char *msisdn); +int db_sms_delete_message_by_id(unsigned long long sms_id); int db_sms_delete_sent_message_by_id(unsigned long long sms_id); int db_sms_delete_expired_message_by_id(unsigned long long sms_id); void db_sms_delete_oldest_expired_message(void); diff --git a/include/osmocom/msc/sms_queue.h b/include/osmocom/msc/sms_queue.h index a6e6aebd3..e4b2a120d 100644 --- a/include/osmocom/msc/sms_queue.h +++ b/include/osmocom/msc/sms_queue.h @@ -2,9 +2,26 @@ #define SMS_QUEUE_H #include <stdbool.h> +#include <osmocom/core/timer.h> +#include <osmocom/msc/gsm_subscriber.h> struct gsm_network; -struct gsm_sms_queue; +/* (global) state of the SMS queue. */ +struct gsm_sms_queue { + struct osmo_timer_list resend_pending; /* timer triggering sms_resend_pending() */ + struct osmo_timer_list push_queue; /* timer triggering sms_submit_pending() */ + struct gsm_network *network; + struct llist_head pending_sms; /* list of gsm_sms_pending */ + struct sms_queue_config *cfg; + int pending; /* current number of gsm_sms_pending in RAM */ + + /* last MSISDN for which we read SMS from the database and created gsm_sms_pending records */ + char last_msisdn[GSM23003_MSISDN_MAX_DIGITS+1]; + + /* statistics / counters */ + struct osmo_stat_item_group *statg; + struct rate_ctr_group *ctrg; +}; struct vty; struct sms_queue_config { |