summaryrefslogtreecommitdiff
path: root/include/gsmd
diff options
context:
space:
mode:
Diffstat (limited to 'include/gsmd')
-rw-r--r--include/gsmd/gsmd.h3
-rw-r--r--include/gsmd/usock.h20
2 files changed, 21 insertions, 2 deletions
diff --git a/include/gsmd/gsmd.h b/include/gsmd/gsmd.h
index f1773c3..ed334f1 100644
--- a/include/gsmd/gsmd.h
+++ b/include/gsmd/gsmd.h
@@ -92,6 +92,9 @@ struct gsmd_user {
struct gsmd *gsmd;
struct gsmd_fd gfd; /* the socket */
u_int32_t subscriptions; /* bitmaks of subscribed event groups */
+
+ struct llist_head pb_readrg_list; /* our READRG phonebook list */
+ struct llist_head pb_find_list; /* our FIND phonebook list */
};
#define GSMD_DEBUG 1 /* debugging information */
diff --git a/include/gsmd/usock.h b/include/gsmd/usock.h
index c2f03f5..66cdf48 100644
--- a/include/gsmd/usock.h
+++ b/include/gsmd/usock.h
@@ -194,6 +194,8 @@ enum gsmd_msg_phonebook {
GSMD_PHONEBOOK_GET_SUPPORT = 6,
GSMD_PHONEBOOK_LIST_STORAGE = 7,
GSMD_PHONEBOOK_SET_STORAGE = 8,
+ GSMD_PHONEBOOK_RETRIEVE_READRG = 9,
+ GSMD_PHONEBOOK_RETRIEVE_FIND = 10,
};
/* Type-of-Address, Numbering-Plan-Identification field, GSM 03.40, 9.1.2.5 */
@@ -432,7 +434,6 @@ struct gsmd_phonebook {
char text[GSMD_PB_TEXT_MAXLEN+1];
} __attribute__ ((packed));
-
/* Refer to GSM 07.07 subclause 8.13 */
/* FIXME: the tlength depends on SIM, use +CPBR=? to get */
struct gsmd_phonebook_find {
@@ -472,8 +473,18 @@ struct gsmd_msg_prefoper {
char opname_longalpha[16];
};
+/* Refer to GSM 07.07 subclause 8.11 */
+struct gsmd_phonebook_mem {
+ u_int8_t type[3];
+ u_int8_t pad;
+ u_int16_t used;
+ u_int16_t total;
+} __attribute__ ((packed));
+
struct gsmd_phonebook_storage {
- char storage[3];
+ /* FIXME the amount of phonebook storage should be dynamic */
+ u_int8_t num;
+ struct gsmd_phonebook_mem mem[20];
} __attribute__ ((packed));
/* Subscriber number information from 3GPP TS 07.07, Clause 7.1 */
@@ -518,6 +529,11 @@ struct gsmd_ucmd {
char buf[];
} __attribute__ ((packed));
+struct gsmd_phonebooks {
+ struct llist_head list;
+ struct gsmd_phonebook pb;
+} __attribute__ ((packed));
+
extern struct gsmd_ucmd *ucmd_alloc(int extra_size);
extern int usock_init(struct gsmd *g);
extern void usock_cmd_enqueue(struct gsmd_ucmd *ucmd, struct gsmd_user *gu);
personal git repositories of Harald Welte. Your mileage may vary