mirror of git://git.sysmocom.de/ofono
huaweimodem: Fix AT^DDSETEX=2 timing for voice calls
Voice output serial port is enabled on some Huawei models (e.g. E169) without problems, but for example on E173u-2 it is never enabled during an incoming call. There might also be other Huawei models having the same issue. I traced the issue down to "^DDSETEX" AT command, which is used to notify the device to start streaming audio. It seems that Ofono sends this command too early on incoming calls. The command should always be sent *after* the dial "D" or answer "A" command. The patch fixes this behavior and afterwards voice will also work on E173u-2.
This commit is contained in:
parent
31e1b2e6ce
commit
8b11ee67d7
|
@ -78,9 +78,6 @@ static struct ofono_call *create_call(struct ofono_voicecall *vc, int type,
|
|||
|
||||
d->calls = g_slist_insert_sorted(d->calls, call, at_util_call_compare);
|
||||
|
||||
g_at_chat_send(d->chat, "AT^DDSETEX=2", none_prefix,
|
||||
NULL, NULL, NULL);
|
||||
|
||||
return call;
|
||||
}
|
||||
|
||||
|
@ -116,6 +113,7 @@ static void huawei_dial(struct ofono_voicecall *vc,
|
|||
enum ofono_clir_option clir,
|
||||
ofono_voicecall_cb_t cb, void *data)
|
||||
{
|
||||
struct voicecall_data *vd = ofono_voicecall_get_data(vc);
|
||||
char buf[256];
|
||||
|
||||
if (ph->type == 145)
|
||||
|
@ -137,12 +135,20 @@ static void huawei_dial(struct ofono_voicecall *vc,
|
|||
strcat(buf, ";");
|
||||
|
||||
huawei_template(vc, buf, cb, data);
|
||||
|
||||
g_at_chat_send(vd->chat, "AT^DDSETEX=2", none_prefix,
|
||||
NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
static void huawei_answer(struct ofono_voicecall *vc,
|
||||
ofono_voicecall_cb_t cb, void *data)
|
||||
{
|
||||
struct voicecall_data *vd = ofono_voicecall_get_data(vc);
|
||||
|
||||
huawei_template(vc, "ATA", cb, data);
|
||||
|
||||
g_at_chat_send(vd->chat, "AT^DDSETEX=2", none_prefix,
|
||||
NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
static void huawei_hangup(struct ofono_voicecall *vc,
|
||||
|
|
Loading…
Reference in New Issue