From cbbf4601211669ededac8d41d6adaec277af3e3b Mon Sep 17 00:00:00 2001 From: erin_yueh Date: Mon, 17 Dec 2007 09:31:02 +0000 Subject: gsmd: conference call support (Sean Chiang) git-svn-id: http://svn.openmoko.org/trunk/src/target/gsm@3657 99fdad57-331a-0410-800a-d7fa5415bdb3 --- include/gsmd/usock.h | 30 ++++++++++++++++++++++++++++++ include/libgsmd/phonebook.h | 6 ------ include/libgsmd/voicecall.h | 27 +++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 6 deletions(-) (limited to 'include') 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 -- cgit v1.2.3