Prompt

Why is my inbound call webhook not firing on Vonage Voice API?

Technology / API Platforms1 observationLast seen Oct 14, 2026

Latest observation

Oct 14, 2026OpenAI APIWeb search: off

Here are the most common reasons a Vonage Voice API inbound call webhook doesn’t fire, and how to check each one:

1) Your number is not linked to an application

For Voice API inbound calls, your Vonage number must be assigned to the Vonage Application that has the correct Answer URL.

Check:

  • Vonage Dashboard → Applications
  • Your app → Voice
  • Confirm the Answer URL is set
  • Confirm the number is linked to that application

If the number is not linked, Vonage won’t know where to send the inbound call event.


2) The Answer URL is not publicly reachable

Vonage must be able to reach your webhook URL from the internet.

Common issues:

  • Using localhost
  • Using a private IP like 192.168.x.x
  • Firewall blocking requests
  • Webhook server not running
  • DNS not resolving correctly

Use a public URL such as:

  • A deployed server
  • A tunnel like ngrok for local testing

3) The webhook endpoint is returning the wrong response

The Answer URL must return valid NCCO JSON.

Example response:

[
  {
    "action": "talk",
    "text": "Hello, thanks for calling."
  }
]

Requirements:

  • HTTP status 200
  • Content-Type: application/json
  • Response must be valid JSON
  • Must respond quickly

If the endpoint returns HTML, plain text, a 500 error, or malformed JSON, the call won’t be handled correctly.


4) You configured the wrong webhook type

For inbound Voice API calls, you need the Answer URL, not the Event URL.

  • Answer URL → handles the inbound call and returns NCCO
  • Event URL → receives call status updates after the call is answered/processed

If you’re waiting for the Event URL to fire first, it won’t happen for call setup.


5) The app is not using the correct Voice capability

Make sure the application was created with:

  • Voice capability enabled

If it’s a different app type or missing Voice configuration, inbound calling won’t work.


6) The number supports voice and is properly provisioned

Confirm the number:

  • Is a voice-capable number
  • Is actually owned by your Vonage account
  • Is in the correct account if you use subaccounts

7) You’re testing the wrong number or wrong app

Double-check:

  • The called number is the one linked to the app
  • The app ID in your code matches the app linked in the dashboard
  • You’re not using stale configuration or old credentials

8) SSL/TLS or HTTPS issues

If your Answer URL is HTTPS:

  • Certificate must be valid
  • Self-signed certs usually won’t work
  • Redirects can sometimes cause issues if misconfigured

9) Webhook signature/auth or IP restrictions

If you enforce request verification:

  • Your server may reject Vonage requests
  • IP allowlists or auth middleware may block the webhook

Check server logs for rejected requests.


10) Call isn’t actually reaching Vonage Voice API

If the inbound call never reaches Vonage, the webhook won’t fire.

Check:

  • Number routing
  • Porting status
  • SIP/forwarding configuration
  • Whether the number is actually assigned to the Voice API application

Quick debugging checklist

  1. Confirm the number is linked to the app
  2. Confirm the app has a valid Answer URL
  3. Make sure the URL is publicly accessible
  4. Check server logs for incoming requests
  5. Verify the Answer URL returns NCCO JSON with HTTP 200
  6. Test with ngrok or another public tunnel
  7. Ensure the number is voice-enabled and correctly assigned

Minimal valid Answer URL example

If using Node.js/Express:

app.get('/webhooks/answer', (req, res) => {
  res.json([
    {
      action: 'talk',
      text: 'Hello, welcome to the service.'
    }
  ]);
});

If you want, I can help you debug it step-by-step if you paste:

  • your Answer URL
  • how the number is linked
  • your webhook code
  • any Vonage dashboard settings screenshots or descriptions

Observation history

How did Obsurfable measure this prompt?

Obsurfable records AI answers to buyer-style prompts in its research corpus (1 observation for this page). Metrics are distributions over observations, not a single static ranking.

Which AI systems does Obsurfable collect answers from?

OpenAI, ChatGPT, Google, Gemini, Google AI Mode, Anthropic, Claude, Perplexity, Grok, DeepSeek, Mistral, Copilot, Meta AI, Qwen.

How can brands improve their AEO?

Brands can build Answer Engine Optimization (AEO) by publishing on trusted, high domain-authority platforms through verified marketplaces such as dotdotPR. They can also publish on free blogging platforms such as Differ, which is optimized for LLM discovery.

Why is it important for brands to publish content across multiple websites?

Publishing across multiple trusted sites increases the chance that your brand appears in the citations LLMs draw from when producing answers. Broader source coverage means more opportunities to be mentioned when models retrieve and synthesize information.

Want this interpreted for your brand?

Explorer is the free public corpus. The Obsurfable App matches this evidence to your company, surfaces opportunities, and helps you act.