> For the complete documentation index, see [llms.txt](https://anunzi-ai.gitbook.io/anunzi-ia-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://anunzi-ai.gitbook.io/anunzi-ia-documentation/api-de-llamadas-voz/migrar-a-vpower.md).

# Migrar al motor de voz VPower

Estamos pasando todos los agentes de voz a **VPower**, el nuevo motor de voz de Anunzi: más rápido para responder, voces más naturales y gestión completa de tus agentes por API. El motor de voz anterior **quedará deprecado** cuando terminemos el pase.

Los agentes pasan **por tandas**, de a uno, y **te avisamos antes** de pasar los tuyos. Esta guía te dice qué revisar en tu integración para que el cambio no se note.

> 💡 **En resumen:** si integraste llamadas web con nuestro SDK (`VoiceClient`, como indica la [guía de llamadas web v3](/anunzi-ia-documentation/api-de-llamadas-voz/migrar-llamadas-web-v3.md)), **no tienes que cambiar nada**. Las llamadas telefónicas por API tampoco cambian.

***

## Qué cambia y qué no

|                                                          | Con el motor anterior                     | Con VPower                                                                                                 |
| -------------------------------------------------------- | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| URL base y API Key                                       | `https://calls.anunzi.net` · `anz_live_…` | **Igual**                                                                                                  |
| `agent_id`                                               | El de siempre                             | **Igual**: sigues usando el mismo ID                                                                       |
| Llamadas telefónicas (`/v2/create-phone-call`)           | Cuerpo y respuesta                        | **Igual**                                                                                                  |
| Llamadas web (`/v3/create-web-call`)                     | Cuerpo y respuesta                        | Cuerpo **igual**; en la respuesta, `transport` vale `anunzi`                                               |
| SDK de llamadas web                                      | `VoiceClient` de Anunzi                   | **El mismo** `VoiceClient`: detecta el motor solo                                                          |
| Identificador de llamada (`call_id`)                     | `call_…`                                  | Empieza con `lk_…`                                                                                         |
| Obtener, listar, actualizar, detener y eliminar llamadas | —                                         | **Igual** (mismas rutas y mismos campos)                                                                   |
| Gestionar el agente por API (prompt, voz, funciones…)    | No disponible                             | **Disponible**: ver [Gestionar agentes](/anunzi-ia-documentation/api-de-llamadas-voz/gestionar-agentes.md) |
| Webhook de eventos de la plataforma                      | `call.completed`                          | **Igual**                                                                                                  |

***

## Paso 1 — Llamadas web: usa el SDK de Anunzi

Es el único punto que puede requerir un cambio. Revisa qué SDK usa tu frontend:

* **Si importas `VoiceClient` desde `https://panel.anunzi.net/voice/web-sdk.php`**: no tienes que hacer nada. El mismo código funciona con los dos motores, antes y después del pase.
* **Si usas otro SDK de llamadas web** (instalado con npm o copiado de otro lado): reemplázalo **ahora** por el de Anunzi. Con VPower, los otros SDK no pueden conectarse.

```js
import { VoiceClient } from 'https://panel.anunzi.net/voice/web-sdk.php';

const client = new VoiceClient();
client.on('call_started', () => console.log('Llamada iniciada'));
client.on('call_ended',   () => console.log('Llamada terminada'));
client.on('update', (u) => console.log(u.transcript)); // transcripción en vivo

// `call` es la respuesta completa de POST /v3/create-web-call (la crea tu servidor)
await client.startCall({
  accessToken: call.access_token,
  callId:      call.call_id,
  transport:   call.transport,
  url:         call.url,
  iceServers:  call.ice_servers,
});
```

> ⚠️ Pasa **todos** los datos de conexión que devuelve tu servidor, no solo el `accessToken`. Con VPower, `transport` vale `anunzi` y `url` es obligatoria: sin ellas la llamada no conecta.

Los eventos (`call_started`, `call_ready`, `call_ended`, `agent_start_talking`, `agent_stop_talking`, `update`, `error`) y los métodos (`startCall`, `stopCall`, `mute`, `unmute`) son los mismos en los dos motores. Detalle completo en [Crear llamada web](/anunzi-ia-documentation/api-de-llamadas-voz/crear-llamada-web.md).

***

## Paso 2 — Revisa si guardas o validas el `call_id`

Si tu sistema valida el formato del identificador de llamada (por ejemplo, que empiece con `call_`), acepta también los que empiezan con `lk_`. Se usan igual en todas las rutas: [Obtener llamada](/anunzi-ia-documentation/api-de-llamadas-voz/obtener-llamada.md), [Actualizar](/anunzi-ia-documentation/api-de-llamadas-voz/actualizar-llamada.md), [Detener](/anunzi-ia-documentation/api-de-llamadas-voz/detener-llamada.md) y [Eliminar](/anunzi-ia-documentation/api-de-llamadas-voz/eliminar-llamada.md).

***

## Paso 3 (opcional) — Gestiona tus agentes por API

Con VPower puedes cambiar el agente desde tu sistema, sin entrar al panel: prompt, mensaje inicial, modelo, funciones, voz, idioma, comportamiento y extractores, con borradores y publicación.

* [Gestionar agentes](/anunzi-ia-documentation/api-de-llamadas-voz/gestionar-agentes.md): listar, actualizar, publicar y ver versiones.
* [Prompt, modelo y funciones](/anunzi-ia-documentation/api-de-llamadas-voz/prompt-y-funciones.md).
* [Voces y números](/anunzi-ia-documentation/api-de-llamadas-voz/voces-y-numeros.md).

Mientras un agente sigue en el motor anterior, estas rutas responden `409` con `"code": "agent_not_migrated"`.

***

## Cómo probar antes del pase

1. Pide al equipo de Anunzi una **copia de prueba** de tu agente en VPower (o crea uno de prueba).
2. Crea una llamada web y una telefónica con ese `agent_id` desde tu integración, sin cambiar nada más.
3. Si conecta y recibes el resultado como siempre (consulta y webhook), tu integración ya está lista.

¿Dudas? Escríbenos desde **Contacta con Soporte** en el panel.
