mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2026-04-11 08:21:07 -04:00
bluez5: telephony: Do not return call objects in CreateMultiparty
The call's state updates are asynchronous, and even if AT+CHLD=3 returns OK the network may not create the multiparty.
This commit is contained in:
parent
9f37ab25f5
commit
8e7a1a5235
1 changed files with 2 additions and 21 deletions
|
|
@ -103,7 +103,6 @@
|
||||||
" <method name='HangupAll'>" \
|
" <method name='HangupAll'>" \
|
||||||
" </method>" \
|
" </method>" \
|
||||||
" <method name='CreateMultiparty'>" \
|
" <method name='CreateMultiparty'>" \
|
||||||
" <arg name='calls' direction='out' type='a{o}'/>" \
|
|
||||||
" </method>" \
|
" </method>" \
|
||||||
" <method name='SendTones'>" \
|
" <method name='SendTones'>" \
|
||||||
" <arg name='tones' direction='in' type='s'/>" \
|
" <arg name='tones' direction='in' type='s'/>" \
|
||||||
|
|
@ -639,29 +638,11 @@ static DBusMessage *ag_hangup_all(struct agimpl *agimpl, DBusMessage *m)
|
||||||
|
|
||||||
static DBusMessage *ag_create_multiparty(struct agimpl *agimpl, DBusMessage *m)
|
static DBusMessage *ag_create_multiparty(struct agimpl *agimpl, DBusMessage *m)
|
||||||
{
|
{
|
||||||
struct callimpl *callimpl;
|
|
||||||
spa_autoptr(DBusMessage) r = NULL;
|
|
||||||
DBusMessageIter i, oi;
|
|
||||||
enum spa_bt_telephony_error err = BT_TELEPHONY_ERROR_FAILED;
|
enum spa_bt_telephony_error err = BT_TELEPHONY_ERROR_FAILED;
|
||||||
|
|
||||||
if (!ag_emit_create_multiparty(agimpl, &err) || err != BT_TELEPHONY_ERROR_NONE)
|
if (ag_emit_create_multiparty(agimpl, &err) && err == BT_TELEPHONY_ERROR_NONE)
|
||||||
goto failed;
|
return dbus_message_new_method_return(m);
|
||||||
|
|
||||||
if ((r = dbus_message_new_method_return(m)) == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
dbus_message_iter_init_append(r, &i);
|
|
||||||
dbus_message_iter_open_container(&i, DBUS_TYPE_ARRAY, "{o}", &oi);
|
|
||||||
|
|
||||||
spa_list_for_each (callimpl, &agimpl->this.call_list, this.link) {
|
|
||||||
if (callimpl->this.multiparty)
|
|
||||||
dbus_message_iter_append_basic(&oi, DBUS_TYPE_OBJECT_PATH,
|
|
||||||
&callimpl->path);
|
|
||||||
}
|
|
||||||
dbus_message_iter_close_container(&i, &oi);
|
|
||||||
return spa_steal_ptr(r);
|
|
||||||
|
|
||||||
failed:
|
|
||||||
return dbus_message_new_error(m, telephony_error_to_dbus (err),
|
return dbus_message_new_error(m, telephony_error_to_dbus (err),
|
||||||
telephony_error_to_description (err));
|
telephony_error_to_description (err));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue