mirror of git://git.sysmocom.de/ofono
voicecall: prefer release_specific() over hang_up_active/hangup_all
release_specific() has the call_id as parameter in difference to the more unspecific calls hangup_all and hangup_active.
This commit is contained in:
parent
8f00ef8b3b
commit
d43fde3c5e
|
@ -542,10 +542,18 @@ static DBusMessage *voicecall_hangup(DBusConnection *conn,
|
||||||
if (vc->dial_req && vc->dial_req->call != v)
|
if (vc->dial_req && vc->dial_req->call != v)
|
||||||
return __ofono_error_busy(msg);
|
return __ofono_error_busy(msg);
|
||||||
|
|
||||||
switch (call->status) {
|
if (call->status == CALL_STATUS_DISCONNECTED)
|
||||||
case CALL_STATUS_DISCONNECTED:
|
|
||||||
return __ofono_error_failed(msg);
|
return __ofono_error_failed(msg);
|
||||||
|
|
||||||
|
if (vc->driver->release_specific) {
|
||||||
|
vc->pending = dbus_message_ref(msg);
|
||||||
|
vc->driver->release_specific(vc, call->id,
|
||||||
|
generic_callback, vc);
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (call->status) {
|
||||||
case CALL_STATUS_INCOMING:
|
case CALL_STATUS_INCOMING:
|
||||||
if (vc->driver->hangup_all == NULL &&
|
if (vc->driver->hangup_all == NULL &&
|
||||||
vc->driver->hangup_active == NULL)
|
vc->driver->hangup_active == NULL)
|
||||||
|
@ -615,14 +623,7 @@ static DBusMessage *voicecall_hangup(DBusConnection *conn,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vc->driver->release_specific == NULL)
|
return __ofono_error_not_implemented(msg);
|
||||||
return __ofono_error_not_implemented(msg);
|
|
||||||
|
|
||||||
vc->pending = dbus_message_ref(msg);
|
|
||||||
vc->driver->release_specific(vc, call->id,
|
|
||||||
generic_callback, vc);
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static DBusMessage *voicecall_answer(DBusConnection *conn,
|
static DBusMessage *voicecall_answer(DBusConnection *conn,
|
||||||
|
|
Loading…
Reference in New Issue