atmodem: Add call state polling for Qualcomm MSM based modems

The voice call support of the Qualcomm MSM based modems does not report
NO CARRIER, NO ANSWER or BUSY unsolicited notifications. So keep polling
for call state changes via AT+CLCC even during an active call.
This commit is contained in:
Marcel Holtmann 2012-01-06 14:08:35 -08:00
parent 02cbee4955
commit 9e26e29f8d
1 changed files with 9 additions and 2 deletions

View File

@ -161,9 +161,16 @@ static void clcc_poll_cb(gboolean ok, GAtResult *result, gpointer user_data)
nc = n ? n->data : NULL;
oc = o ? o->data : NULL;
if (nc && nc->status >= CALL_STATUS_DIALING &&
nc->status <= CALL_STATUS_WAITING)
switch (vd->vendor) {
case OFONO_VENDOR_QUALCOMM_MSM:
poll_again = TRUE;
break;
default:
if (nc && nc->status >= CALL_STATUS_DIALING &&
nc->status <= CALL_STATUS_WAITING)
poll_again = TRUE;
break;
}
if (oc && (nc == NULL || (nc->id > oc->id))) {
enum ofono_disconnect_reason reason;