diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-09-23 22:54:41 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-09-23 23:53:41 -0500 |
commit | 6b10d14402bfa6ca87e67e848955070351780369 (patch) | |
tree | 039d18aee12db20c5da4987829ea6bba322a9c9a /drivers/ifxmodem/voicecall.c | |
parent | e1ee41b654227c458a5f30433c7e565c7c3f65f0 (diff) | |
download | ofono-6b10d14402bfa6ca87e67e848955070351780369.tar.bz2 |
ifx: IFX provides hangup_all and hangup_active
Diffstat (limited to 'drivers/ifxmodem/voicecall.c')
-rw-r--r-- | drivers/ifxmodem/voicecall.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/drivers/ifxmodem/voicecall.c b/drivers/ifxmodem/voicecall.c index 4e36de10..e4dae901 100644 --- a/drivers/ifxmodem/voicecall.c +++ b/drivers/ifxmodem/voicecall.c @@ -477,11 +477,18 @@ static void ifx_answer(struct ofono_voicecall *vc, ifx_template("ATA", vc, generic_cb, 0, cb, data); } -static void ifx_hangup(struct ofono_voicecall *vc, +static void ifx_ath(struct ofono_voicecall *vc, ofono_voicecall_cb_t cb, void *data) { - /* Hangup active call */ - ifx_template("AT+CHUP", vc, generic_cb, 0x3f, cb, data); + /* Hangup active + held call, but not waiting */ + ifx_template("ATH", vc, generic_cb, 0x1f, cb, data); +} + +static void ifx_chup(struct ofono_voicecall *vc, + ofono_voicecall_cb_t cb, void *data) +{ + /* Hangup active + but not held or waiting */ + ifx_template("ATH", vc, generic_cb, 0x1d, cb, data); } static void ifx_hold_all_active(struct ofono_voicecall *vc, @@ -896,7 +903,8 @@ static struct ofono_voicecall_driver driver = { .remove = ifx_voicecall_remove, .dial = ifx_dial, .answer = ifx_answer, - .hangup_all = ifx_hangup, + .hangup_all = ifx_ath, + .hangup_active = ifx_chup, .hold_all_active = ifx_hold_all_active, .release_all_held = ifx_release_all_held, .set_udub = ifx_set_udub, |