ThunderPhone 2.0 ya está disponible.Empieza por tu cuenta desde 2¢/min.Lee el anuncio

Developer cookbook

Usa tus propios números (VoIP, API)

Conecta Twilio o Telnyx — o cualquier troncal SIP —, importa los números de teléfono que ya tienes y permite que los agentes de voz de ThunderPhone respondan y realicen llamadas con ellos.

Los números de demostración están bien para crear prototipos, pero el tráfico de producción debe usar números propios a través de tu propio proveedor de VoIP. Esta guía te muestra el flujo de tres pasos: probar credenciales → crear conexión → importar números → verificar.

Proveedores compatibles

ProveedorID de providerNotas
TwiliotwilioClave de API + secreto
TelnyxtelnyxClave de API; incorporación guiada disponible (setup_method: guided_telnyx)
SignalWiresignalwirePróximamente — conéctalo mediante SIP manual hoy
VonagevonagePróximamente — conéctalo mediante SIP manual hoy
SIP manualmanualCualquier troncal SIP — usa tu propia configuración

1. Probar credenciales

Antes de crear una conexión VoIP persistente, prueba las credenciales del proveedor para confirmar que funcionan. Esto devuelve un verification_evidence_id que pasas al paso de creación para que las credenciales no se cobren dos veces por las pruebas.

curl -X POST https://api.thunderphone.com/v1/voip-connections/test \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "provider":    "telnyx",
    "credentials": { "apiKey": "KEY...", "connectionId": "123456" },
    "sip_config":  { "domain": "acme.sip.telnyx.com" }
  }'
Response
{
  "status": "pass",
  "verification_evidence_id": "b9a2...",
  "suggested_connection_name": "Telnyx: Acme Main (+15550001234)",
  "checks": {
    "credentials_valid": true,
    "inbound_reachable": true,
    "outbound_authorized": true
  }
}

Si alguna comprobación falla, el status de la respuesta será fail y checks mostrará qué paso falló. Corrige la configuración del proveedor (asignación de troncales, lista de IP permitidas, autorización saliente) y vuelve a intentarlo.

2. Crear la conexión

Pasa el verification_evidence_id que acabas de obtener:

curl -X POST https://api.thunderphone.com/v1/voip-connections \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name":         "Acme Telnyx Main",
    "provider":     "telnyx",
    "setup_method": "api_key",
    "credentials":  { "apiKey": "KEY...", "connectionId": "123456" },
    "sip_config":   { "domain": "acme.sip.telnyx.com" },
    "verification_evidence_id": "b9a2..."
  }'

La respuesta es un objeto VoipConnection con status="connected". Las credenciales se almacenan en el servidor y nunca se devuelven en texto sin formato mediante solicitudes GET posteriores; para rotarlas, ejecuta un test nuevo y usa PATCH con la nueva evidencia.

3. Listar e importar números

Inspecciona los números visibles para tus credenciales que aún no estén en una organización de ThunderPhone:

curl https://api.thunderphone.com/v1/voip-connections/5/available-numbers \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

Luego importa los que quieras:

curl -X POST https://api.thunderphone.com/v1/voip-connections/5/import-numbers \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"numbers": ["+15550001234", "+15550009999"]}'

Cada importación se convierte en un recurso de número de teléfono en tu organización con source="voip" y status="provisioning".

4. Verifica cada número importado

La importación registra el número como disponible; para enrutar llamadas a través de él, necesitas una verificación de ida y vuelta (comprobación de marcación entrante + prueba de autorización saliente).

curl -X POST https://api.thunderphone.com/v1/phone-numbers/{id}/verify-voip \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

Cuando se realiza correctamente, voip_verification_status cambia a verified y el número pasa a status="active". Si falla, la respuesta especifica qué falló; corrígelo (a menudo, falta una asignación de trunk en el panel del proveedor) y vuelve a llamar.

5. Asigna agentes y realiza una llamada

Con el número verificado, asigna agentes entrantes/salientes de la misma forma que con un número de demostración. Consulta Gestionar llamadas entrantes y Realizar llamadas salientes.

Rotación de credenciales

Cuando se roten las claves de un proveedor, vuelve a ejecutar el flujo de prueba y actualización:

# 1. Test the new credentials
curl -X POST https://api.thunderphone.com/v1/voip-connections/test ...
 
# 2. PATCH the connection with the new evidence
curl -X PATCH https://api.thunderphone.com/v1/voip-connections/{id} \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "credentials": { "apiKey": "NEW_KEY..." },
    "verification_evidence_id": "fresh-evidence-id"
  }'

La conexión se mantiene; no es necesario volver a importar los números.


Próximos pasos