ifx: Fix the case of modem-originated call

During STK Set Up Call, we have modem-originated calls that do not go
through the core 'Dial' method.  Make sure the calls are still detected
in this case.
This commit is contained in:
Denis Kenzior 2012-11-24 22:46:49 -06:00
parent 1101465305
commit 68df0eb758
1 changed files with 13 additions and 12 deletions

View File

@ -169,11 +169,19 @@ static void xcallstat_notify(GAtResult *result, gpointer user_data)
break;
}
case CALL_STATUS_DIALING:
new_call = create_call(vc, 0, CALL_DIRECTION_MOBILE_ORIGINATED,
status, NULL, 128,
CLIP_VALIDITY_NOT_AVAILABLE, id);
if (new_call == NULL) {
ofono_error("Unable to malloc. "
"Call management is fubar");
return;
}
ofono_voicecall_notify(vc, new_call);
break;
case CALL_STATUS_WAITING:
case CALL_STATUS_INCOMING:
{
int direction;
/* Handle the following situation:
* Active Call + Waiting Call. Active Call is Released.
* The Waiting call becomes Incoming. In this case, no
@ -185,13 +193,8 @@ static void xcallstat_notify(GAtResult *result, gpointer user_data)
return;
}
if (status == CALL_STATUS_DIALING)
direction = CALL_DIRECTION_MOBILE_ORIGINATED;
else
direction = CALL_DIRECTION_MOBILE_TERMINATED;
new_call = create_call(vc, 0, direction, status,
NULL, 128,
new_call = create_call(vc, 0, CALL_DIRECTION_MOBILE_TERMINATED,
status, NULL, 128,
CLIP_VALIDITY_NOT_AVAILABLE, id);
if (new_call == NULL) {
ofono_error("Unable to malloc. "
@ -199,9 +202,7 @@ static void xcallstat_notify(GAtResult *result, gpointer user_data)
return;
}
new_call->id = id;
break;
}
case CALL_STATUS_ALERTING:
case CALL_STATUS_ACTIVE:
case CALL_STATUS_HELD: