mirror of git://git.sysmocom.de/ofono
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:
parent
1101465305
commit
68df0eb758
|
@ -169,11 +169,19 @@ static void xcallstat_notify(GAtResult *result, gpointer user_data)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CALL_STATUS_DIALING:
|
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_WAITING:
|
||||||
case CALL_STATUS_INCOMING:
|
case CALL_STATUS_INCOMING:
|
||||||
{
|
|
||||||
int direction;
|
|
||||||
|
|
||||||
/* Handle the following situation:
|
/* Handle the following situation:
|
||||||
* Active Call + Waiting Call. Active Call is Released.
|
* Active Call + Waiting Call. Active Call is Released.
|
||||||
* The Waiting call becomes Incoming. In this case, no
|
* The Waiting call becomes Incoming. In this case, no
|
||||||
|
@ -185,13 +193,8 @@ static void xcallstat_notify(GAtResult *result, gpointer user_data)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status == CALL_STATUS_DIALING)
|
new_call = create_call(vc, 0, CALL_DIRECTION_MOBILE_TERMINATED,
|
||||||
direction = CALL_DIRECTION_MOBILE_ORIGINATED;
|
status, NULL, 128,
|
||||||
else
|
|
||||||
direction = CALL_DIRECTION_MOBILE_TERMINATED;
|
|
||||||
|
|
||||||
new_call = create_call(vc, 0, direction, status,
|
|
||||||
NULL, 128,
|
|
||||||
CLIP_VALIDITY_NOT_AVAILABLE, id);
|
CLIP_VALIDITY_NOT_AVAILABLE, id);
|
||||||
if (new_call == NULL) {
|
if (new_call == NULL) {
|
||||||
ofono_error("Unable to malloc. "
|
ofono_error("Unable to malloc. "
|
||||||
|
@ -199,9 +202,7 @@ static void xcallstat_notify(GAtResult *result, gpointer user_data)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
new_call->id = id;
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case CALL_STATUS_ALERTING:
|
case CALL_STATUS_ALERTING:
|
||||||
case CALL_STATUS_ACTIVE:
|
case CALL_STATUS_ACTIVE:
|
||||||
case CALL_STATUS_HELD:
|
case CALL_STATUS_HELD:
|
||||||
|
|
Loading…
Reference in New Issue