Skip to main content

On This Page

VoIP vs Real SIM: Why Your AI Agent Phone Number Gets Blocked

2 min read
Share

These articles are AI-generated summaries. Please check the original sources for full details.

VoIP vs Real SIM: Why Your AI Agent Phone Number Gets Blocked

Developers frequently report Twilio numbers being rejected by Stripe, Google, and WhatsApp because VoIP numbers fail authoritative carrier lookups. These services query a chain of databases including LERG and HLR to verify if a number is backed by a physical SIM or an internet gateway.

Why This Matters

In the technical reality of modern telecommunications, phone numbers are not just strings but entries in the Local Exchange Routing Guide (LERG) maintained by iconectiv. While ideal software models treat SMS as a simple API call, carrier infrastructure differentiates between mobile and VoIP line types, causing automated agents using legacy VoIP providers to face 0% success rates during verification. This discrepancy is exploited by advanced security systems that check for real-time HLR (Home Location Register) registration and active IMSI (International Mobile Subscriber Identity) status.

Key Insights

  • The LERG database maps every NPA-NXX to an Operating Company Number (OCN) and line type, permanently labeling Twilio/Bandwidth blocks as ‘voip’.
  • The Home Location Register (HLR) is a real-time carrier database that tracks active IMSI and cell tower registrations, which VoIP numbers lack.
  • Stripe and Google query LERG to identify line_type; if the result is ‘voip’ or the carrier is a known wholesale provider, the request is rejected.
  • WhatsApp maintains an internal VoIP blocklist and checks number history, including spam reports and previous bans, during the HLR lookup phase.
  • AgentSIM provides a technical bridge by provisioning actual SIM cards on carrier networks that expose a real ‘mobile’ line_type via API.

Working Examples

Using the AgentSIM SDK to provision a real mobile number for OTP verification.

import agentsim
agentsim.configure(api_key="asm_live_xxx")
async with agentsim.provision(agent_id="my-agent", country="US") as num:
    print(num.number) # +14155552671 (real T-Mobile number)
    # This number passes LERG, NPAC, and HLR checks
    otp = await num.wait_for_otp(timeout=60)
    print(otp.otp_code) # "391847"

Configuration for integrating AgentSIM via Model Context Protocol (MCP).

{
  "mcpServers": {
    "agentsim": {
      "url": "https://mcp.agentsim.dev/mcp",
      "headers": {
        "Authorization": "Bearer asm_live_xxx"
      }
    }
  }
}

Practical Applications

  • Use case: AI agents verifying accounts on Stripe or WhatsApp using AgentSIM to ensure 100% success through real mobile network registration.
  • Pitfall: Using Twilio or Bandwidth for automated account creation results in immediate rejection because these numbers are registered as ‘nonFixedVoip’ in the LERG.

References:

Continue reading

Next article

Engineering Deliverability: Overcoming AI Pattern Detection in Cold Outreach

Related Content