base-call: do not require primary port to start a call
If the modem is connected using the primary port, we can just rely on the secondary port. # mmcli --call 0 --start error: couldn't start the call: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Connected: Cannot run sequence: port is connected'
This commit is contained in:
@@ -1055,19 +1055,28 @@ call_start_ready (MMBaseModem *modem,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
call_start (MMBaseCall *self,
|
call_start (MMBaseCall *self,
|
||||||
GCancellable *cancellable,
|
GCancellable *cancellable,
|
||||||
GAsyncReadyCallback callback,
|
GAsyncReadyCallback callback,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
GTask *task;
|
GError *error = NULL;
|
||||||
gchar *cmd;
|
GTask *task;
|
||||||
|
gchar *cmd;
|
||||||
|
MMPortSerialAt *port;
|
||||||
|
|
||||||
task = g_task_new (self, NULL, callback, user_data);
|
task = g_task_new (self, NULL, callback, user_data);
|
||||||
|
|
||||||
|
port = mm_base_modem_peek_best_at_port (MM_BASE_MODEM (self->priv->modem), &error);
|
||||||
|
if (!port) {
|
||||||
|
g_task_return_error (task, error);
|
||||||
|
g_object_unref (task);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
cmd = g_strdup_printf ("ATD%s;", mm_gdbus_call_get_number (MM_GDBUS_CALL (self)));
|
cmd = g_strdup_printf ("ATD%s;", mm_gdbus_call_get_number (MM_GDBUS_CALL (self)));
|
||||||
mm_base_modem_at_command_full (self->priv->modem,
|
mm_base_modem_at_command_full (self->priv->modem,
|
||||||
mm_base_modem_peek_port_primary (self->priv->modem),
|
port,
|
||||||
cmd,
|
cmd,
|
||||||
90,
|
90,
|
||||||
FALSE, /* no cached */
|
FALSE, /* no cached */
|
||||||
|
Reference in New Issue
Block a user