diff options
author | erin_yueh <erin_yueh@99fdad57-331a-0410-800a-d7fa5415bdb3> | 2008-01-03 09:13:39 +0000 |
---|---|---|
committer | erin_yueh <erin_yueh@99fdad57-331a-0410-800a-d7fa5415bdb3> | 2008-01-03 09:13:39 +0000 |
commit | 315e8b45506745f4b28f658772cc65cdef9a2d9e (patch) | |
tree | aa5ee79cba4688243461ee896e068d6fc1787671 /include/libgsmd | |
parent | 6cf14fb22b3bb03822fd0b09d633913fc3ecea64 (diff) |
gsmd: add Call Forwarding function (Sean Chiang)
git-svn-id: http://svn.openmoko.org/trunk/src/target/gsm@3760 99fdad57-331a-0410-800a-d7fa5415bdb3
Diffstat (limited to 'include/libgsmd')
-rw-r--r-- | include/libgsmd/voicecall.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/include/libgsmd/voicecall.h b/include/libgsmd/voicecall.h index ac7b99c..87ecfcc 100644 --- a/include/libgsmd/voicecall.h +++ b/include/libgsmd/voicecall.h @@ -22,12 +22,28 @@ enum lgsm_voicecall_ctrl_proc { LGSM_VOICECALL_CTRL_M_HELD = 6, // 3 }; +/* call forward reason from 3GPP TS 07.07 subclause 07.10 */ +enum lgsmd_voicecall_fwd_reason { + GSMD_VOICECALL_FWD_REASON_UNCOND = 0, + GSMD_VOICECALL_FWD_REASON_BUSY = 1, + GSMD_VOICECALL_FWD_REASON_NO_REPLY = 2, + GSMD_VOICECALL_FWD_REASON_NOT_REACHABLE = 3, + GSMD_VOICECALL_FWD_REASON_ALL_FORWARD = 4, + GSMD_VOICECALL_FWD_REASON_ALL_COND_FORWARD = 5, +}; + /* 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; }; +/* Refer to GSM 07.07 subclause 07.10 */ +struct lgsm_voicecall_fwd_reg { + enum lgsmd_voicecall_fwd_reason reason; + struct lgsm_addr number; +}; + /* Initiate an outgoing voice call */ extern int lgsm_voice_out_init(struct lgsm_handle *lh, const struct lgsm_addr *number); @@ -48,4 +64,23 @@ extern int lgsm_voice_get_status(struct lgsm_handle *lh); extern int lgsm_voice_ctrl(struct lgsm_handle *lh, const struct lgsm_voicecall_ctrl *ctrl); +/* disable call forwarding */ +extern int lgsm_voice_fwd_disable(struct lgsm_handle *lh, + enum lgsmd_voicecall_fwd_reason reason); + +/* enable call forwarding */ +extern int lgsm_voice_fwd_enable(struct lgsm_handle *lh, + enum lgsmd_voicecall_fwd_reason reason); + +/* querty current status/setting of call forwarding */ +extern int lgsm_voice_fwd_stat(struct lgsm_handle *lh, + enum lgsmd_voicecall_fwd_reason reason); + +/* register call forwarding */ +extern int lgsm_voice_fwd_reg(struct lgsm_handle *lh, + struct lgsm_voicecall_fwd_reg *fwd_reg); + +/* erase the record of registered call forwarding */ +extern int lgsm_voice_fwd_erase(struct lgsm_handle *lh, + enum lgsmd_voicecall_fwd_reason reason); #endif |