diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/gsmd/usock.h | 30 | ||||
| -rw-r--r-- | include/libgsmd/phonebook.h | 6 | ||||
| -rw-r--r-- | include/libgsmd/voicecall.h | 27 | 
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 | 
