> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ryvo.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Recibe y haz llamadas con tu agente

> Conecta un número de Twilio a un agente del Constructor para que conteste las llamadas que entran, y haz que marque desde el Constructor o desde la API.

Cuando un número de tu cuenta de Twilio queda conectado a un agente, ese agente **contesta todas las llamadas al número** y puede **marcar desde él**. No hay nada más que configurar en Twilio: Ryvo apunta el número a tu agente por ti.

<Info>
  Esta guía es para los agentes hechos en el **Constructor**. Si todavía no tienes un número en Ryvo, empieza por [Conecta tu número de Twilio](/es/guides/phone-numbers/import-your-twilio-number).
</Info>

## Lo que necesitas

1. Un **número de Twilio** importado en **Números**.
2. Un agente **publicado**. Las llamadas usan siempre la versión publicada, nunca el borrador que estás editando.
3. Un **método de pago** guardado y **créditos** en tu cuenta. Las llamadas se cobran como cualquier otra conversación del agente.

## Conecta el número al agente

<Steps>
  <Step title="Abre el agente en el Constructor">
    Desde **Agentes**, abre el agente y entra a la pestaña **Canales**.
  </Step>

  <Step title="Elige el número">
    En la tarjeta **Voz**, elige uno de tus números libres en **Elige un número** y pulsa **Conectar número**.
  </Step>

  <Step title="Listo">
    La tarjeta pasa a **Conectado** y dice en qué número contesta. También lo puedes hacer desde **Números**, con el selector **Asignar agente** de cada fila.
  </Step>
</Steps>

<Frame caption="La tarjeta Voz en la pestaña Canales del Constructor, con un número conectado.">
  <img src="https://mintcdn.com/ryvo-3dab4d1a/04C-GHMZKu_s8s6d/images/portal/canal-telefono.png?fit=max&auto=format&n=04C-GHMZKu_s8s6d&q=85&s=653ec2b52b8e41f0fe2b421678e8fd6c" alt="La tarjeta Voz de Twilio marcada como conectada, con Soltar número e Iniciar llamada" width="710" height="592" data-path="images/portal/canal-telefono.png" />
</Frame>

### Qué cambia Ryvo en tu cuenta de Twilio

Al conectar el número, Ryvo configura su **webhook de voz** en Twilio para que las llamadas entrantes lleguen a tu agente, y **guarda la configuración anterior**. Si sueltas el número (**Soltar número**) o lo borras de Ryvo, se restaura la configuración anterior. Ryvo no toca nada más de tu cuenta.

<Warning>
  Si el número mandaba las llamadas a un conmutador u otro flujo, eso deja de pasar en cuanto lo conectas a un agente. Usa un número dedicado, o suéltalo para volver al ruteo anterior.
</Warning>

## Llamadas entrantes

Quien marque al número habla con tu agente. El agente saluda primero con su primer mensaje y la conversación sigue sus instrucciones, su conocimiento y sus tools, igual que en la prueba del Constructor.

Si el agente no puede atender, quien llama oye un mensaje corto en el idioma del agente y la llamada termina. Pasa cuando:

* el agente está **pausado** o **no tiene versión publicada**;
* la cuenta **no tiene créditos** o no tiene método de pago;
* la cuenta llegó a su tope de **llamadas simultáneas**.

Quien llama nunca oye el motivo. Tú lo ves en **Logs**.

## Llamadas salientes

### Desde el Constructor

En la misma tarjeta **Voz**, escribe el número a marcar en **Número de Destino** (formato E.164, por ejemplo `+5215512345678`) y pulsa **Iniciar llamada**. El agente marca desde su número conectado con su versión publicada.

<Frame caption="Número de Destino e Iniciar llamada.">
  <img src="https://mintcdn.com/ryvo-3dab4d1a/04C-GHMZKu_s8s6d/images/portal/llamar-desde-el-constructor.png?fit=max&auto=format&n=04C-GHMZKu_s8s6d&q=85&s=530bb5a4d99a56ec115b245871d59189" alt="El campo Número de Destino y el botón Iniciar llamada" width="710" height="246" data-path="images/portal/llamar-desde-el-constructor.png" />
</Frame>

El botón queda apagado, con el motivo al lado, mientras el agente no tenga número o no esté publicado.

### Desde la API

`POST /v1/calls` acepta el id de un agente del Constructor. La llamada sale del número conectado a ese agente, o del que mandes en `from` si también está conectado a él.

```bash theme={null}
curl -X POST https://api.ryvo.so/v1/calls \
  -H "Authorization: Bearer ryvo_live_..." \
  -H "Idempotency-Key: lead-8842" \
  -H "Content-Type: application/json" \
  -d '{"agent_id": "b326e44f-9750-4315-8c67-54315a4fdf6f", "to": "+5215512345678"}'
```

La respuesta trae `"runtime": "engine"` y el `id` de la llamada. El detalle completo, en la [referencia de la API](/es/api-reference/calls/trigger-an-outbound-call).

## Llamadas que nadie contesta

Si del otro lado no contestan, está ocupado o la llamada falla, Twilio le avisa a Ryvo al momento y la llamada se cierra en segundos. **No se cobra** y no ocupa la capacidad de tu cuenta.

## Dónde ves tus llamadas

Cada llamada aparece en **Llamadas** con su número, su dirección (entrante o saliente), duración, transcripción y costo. En la API, `GET /v1/calls` las devuelve con `channel: "phone"` y `direction`.

## Quién te cobra qué

| Concepto | Quién lo cobra |
| - | - |
| El número y los minutos de línea | **Twilio**, en tu cuenta |
| El agente: voz, modelo y transcripción | **Ryvo**, en [créditos](/es/guides/billing/credits-and-charges), igual por minuto que una llamada de voz en el navegador |

## Errores comunes

| Mensaje | Qué significa y qué hacer |
| - | - |
| «Conecta un número a este agente para que pueda llamar» | El agente no tiene número. Conecta uno en la tarjeta Voz. |
| «Publica el agente para llamar con él» | Las llamadas usan la versión publicada. Publica el agente. |
| «El número de destino debe ir en formato E.164» | Falta el `+` o la lada del país, o tiene espacios o guiones. |
| «Ese número no está en tu cuenta de Twilio» | Importaste un número de otra cuenta. Impórtalo con las credenciales de la cuenta dueña. |
| «Ese número ya está conectado en Ryvo» | El número ya está en Ryvo. Búscalo en **Números**. |
| API `409 no_phone_number` / `409 agent_not_published` | Los mismos dos casos, desde la API. |
