ThunderPhone 2.0 já está no ar.Comece por conta própria, a partir de 2¢/min.Leia o anúncio

Developer cookbook

Traga seus próprios números (VoIP, API)

Conecte o Twilio ou o Telnyx — ou qualquer tronco SIP — importe os números de telefone que você já possui e permita que os agentes do ThunderPhone atendam e façam chamadas com eles.

Números de demonstração são adequados para prototipagem, mas o tráfego de produção deve usar números que você possui por meio do seu próprio provedor de VoIP. Este guia apresenta o fluxo de três etapas: teste as credenciais → crie a conexão → importe os números → verifique.

Provedores compatíveis

ProvedorID de providerObservações
TwiliotwilioChave de API + segredo
TelnyxtelnyxChave de API; integração guiada disponível (setup_method: guided_telnyx)
SignalWiresignalwireEm breve — conecte via SIP manual hoje
VonagevonageEm breve — conecte via SIP manual hoje
SIP manualmanualQualquer tronco SIP — use sua própria configuração

1. Teste as credenciais

Antes de criar uma conexão de VoIP persistente, teste as credenciais do provedor para confirmar que funcionam. Isso retorna um verification_evidence_id que você passa para a etapa de criação, para que as credenciais não sejam cobradas duas vezes pelos testes.

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
  }
}

Se alguma verificação falhar, o status da resposta será fail, e checks mostrará qual etapa falhou. Corrija a configuração no lado do provedor (atribuição do tronco, lista de IPs permitidos, autorização de saída) e tente novamente.

2. Crie a conexão

Passe o verification_evidence_id que você acabou de receber:

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..."
  }'

A resposta é um objeto VoipConnection com status="connected". As credenciais são armazenadas no servidor e nunca retornadas em texto simples por GETs subsequentes — para alterná-las, execute um novo test e faça PATCH com a nova evidência.

3. Liste e importe números

Inspecione os números acessíveis pelas suas credenciais que ainda não estão em uma organização do ThunderPhone:

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

Em seguida, importe os que desejar:

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 importação se torna um recurso de número de telefone na sua organização, com source="voip" e status="provisioning".

4. Verifique cada número importado

A importação registra o número como disponível; para realmente rotear chamadas por ele, é necessária uma verificação de ida e volta (verificação de discagem de entrada + teste de autorização de saída).

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

Em caso de sucesso, voip_verification_status muda para verified e o número passa para status="active". Em caso de falha, a resposta detalha o que falhou — corrija o problema (geralmente uma atribuição de tronco ausente no painel do provedor) e tente novamente.

5. Atribua agentes e atenda uma chamada

Com o número verificado, atribua agentes de entrada / saída da mesma forma que faria com um número de demonstração. Consulte Gerenciar chamadas de entrada e Realizar chamadas de saída.

Rotação de credenciais

Quando uma chave do provedor é alterada, execute novamente o fluxo de testar e atualizar:

# 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"
  }'

A conexão permanece no lugar — não é necessário importar os números novamente.


Próximas etapas