summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/gsmd/usock.h30
-rw-r--r--include/libgsmd/phonebook.h6
-rw-r--r--include/libgsmd/voicecall.h27
3 files changed, 57 insertions, 6 deletions
diff --git a/include/gsmd/usock.h b/include/gsmd/usock.h
index 5e07ced..d05f2bc 100644
--- a/include/gsmd/usock.h
+++ b/include/gsmd/usock.h
@@ -42,6 +42,7 @@ enum gsmd_msg_voicecall_type {
GSMD_VOICECALL_VOL_SET = 5,
GSMD_VOICECALL_VOL_GET = 6,
GSMD_VOICECALL_GET_STAT = 7,
+ GSMD_VOICECALL_CTRL = 8,
};
@@ -81,6 +82,23 @@ enum gsmd_call_mpty {
GSMD_CALL_MPTY_YES = 1,
};
+/*
+ * call related supplementary services from 3GPP TS 02.30 4.5.5.1
+ * R - Release
+ * A - Accept
+ * H - Hold
+ * M - Multiparty
+ */
+enum gsmd_call_ctrl_proc {
+ GSMD_CALL_CTRL_R_HLDS = 0, // 0
+ GSMD_CALL_CTRL_UDUB = 1, // 0
+ GSMD_CALL_CTRL_R_ACTS_A_HLD_WAIT = 2, // 1
+ GSMD_CALL_CTRL_R_ACT_X = 3, // 1x
+ GSMD_CALL_CTRL_H_ACTS_A_HLD_WAIT = 4, // 2
+ GSMD_CALL_CTRL_H_ACTS_EXCEPT_X = 5, // 2x
+ GSMD_CALL_CTRL_M_HELD = 6, // 3
+};
+
/* Handset / MT related commands */
enum gsmd_msg_phone_type {
GSMD_PHONE_VOLUME = 1,
@@ -360,6 +378,12 @@ struct gsmd_call_status {
int is_last;
} __attribute__ ((packed));
+/* call status from 3GPP TS 07.07 clause 7.12 */
+struct gsmd_call_ctrl {
+ enum gsmd_call_ctrl_proc proc;
+ u_int8_t idx;
+} __attribute__ ((packed));
+
#define GSMD_PIN_MAXLEN 8
struct gsmd_pin {
enum gsmd_pin_type type;
@@ -425,6 +449,12 @@ struct gsmd_evt_auxdata {
struct {
enum gsm0705_cms_error number;
} cms_err;
+ struct {
+ struct gsmd_addr addr;
+ u_int8_t classx;
+ char alpha[16];
+ u_int8_t cli;
+ } ccwa;
} u;
u_int8_t data[0];
} __attribute__ ((packed));
diff --git a/include/libgsmd/phonebook.h b/include/libgsmd/phonebook.h
index d5f8c14..fbc651e 100644
--- a/include/libgsmd/phonebook.h
+++ b/include/libgsmd/phonebook.h
@@ -84,10 +84,4 @@ extern int lgsm_pb_write_entry(struct lgsm_handle *lh,
/* Get the location range/nlength/tlength supported */
extern int lgsm_pb_get_support(struct lgsm_handle *lh);
-/* Retrieve the records of READRG request */
-extern int lgsm_pb_retrieve_readrg(struct lgsm_handle *lh, int num);
-
-/* Retrieve the records of FIND request */
-extern int lgsm_pb_retrieve_find(struct lgsm_handle *lh, int num);
-
#endif
diff --git a/include/libgsmd/voicecall.h b/include/libgsmd/voicecall.h
index 2d9609c..ac7b99c 100644
--- a/include/libgsmd/voicecall.h
+++ b/include/libgsmd/voicecall.h
@@ -5,6 +5,29 @@
/* Voice Calls */
+/*
+ * call related supplementary services from 3GPP TS 02.30 4.5.5.1
+ * R - Release
+ * A - Accept
+ * H - Hold
+ * M - Multiparty
+ */
+enum lgsm_voicecall_ctrl_proc {
+ LGSM_VOICECALL_CTRL_R_HLDS = 0, // 0
+ LGSM_VOICECALL_CTRL_UDUB = 1, // 0
+ LGSM_VOICECALL_CTRL_R_ACTS_A_HLD_WAIT = 2, // 1
+ LGSM_VOICECALL_CTRL_R_ACT_X = 3, // 1x
+ LGSM_VOICECALL_CTRL_H_ACTS_A_HLD_WAIT = 4, // 2
+ LGSM_VOICECALL_CTRL_H_ACTS_EXCEPT_X = 5, // 2x
+ LGSM_VOICECALL_CTRL_M_HELD = 6, // 3
+};
+
+/* Refer to GSM 07.07 subclause 7.12 and 02.30 subclause 4.5.5.1 */
+struct lgsm_voicecall_ctrl {
+ enum lgsm_voicecall_ctrl_proc proc;
+ int idx;
+};
+
/* Initiate an outgoing voice call */
extern int lgsm_voice_out_init(struct lgsm_handle *lh,
const struct lgsm_addr *number);
@@ -21,4 +44,8 @@ extern int lgsm_voice_dtmf(struct lgsm_handle *lh, char dtmf_char);
/* Get call status */
extern int lgsm_voice_get_status(struct lgsm_handle *lh);
+/* Call control */
+extern int lgsm_voice_ctrl(struct lgsm_handle *lh,
+ const struct lgsm_voicecall_ctrl *ctrl);
+
#endif
personal git repositories of Harald Welte. Your mileage may vary