How to Add Call Queues and IVR to Your Business for Free

Home Blog

Call queues and IVR for business
Call queues and IVR (Interactive Voice Response) are no longer enterprise-only features. With PBXme, every virtual number plan includes a full cloud PBX — IVR menus, call queues, voicemail, and more — at no extra cost. Here’s how to set it up.

What Are Call Queues and IVR?

IVR (Interactive Voice Response) is the automated menu system callers hear when they dial your number — “Press 1 for Sales, Press 2 for Support.” It routes callers to the right team or extension before anyone picks up, reducing misdirected calls and improving the caller experience. Call queues hold callers in a waiting line when all agents are busy. Instead of hearing a busy tone or being sent to voicemail, callers hear hold music or a position announcement and wait for the next available agent. This is the backbone of any functional customer support or sales phone system. Both features are typically sold as paid add-ons by traditional phone providers — but with PBXme, they are included free with every virtual number plan.

What’s Included Free with Every PBXme Plan

PBX FeatureWhat It DoesExtra Cost
IVR / Auto AttendantRoute callers with multi-level menusFree
Call QueuesHold callers in line with music or announcementsFree
VoicemailPer-extension voicemail with email deliveryFree
Call RecordingRecord inbound and outbound callsFree*
Conference RoomsMulti-party calls, unlimited participantsFree
Ring GroupsRing multiple extensions simultaneouslyFree
Time ConditionsRoute calls differently by time of day or day of weekFree
Dynamic Call ForwardingChange routing destination in real timeFree

* Call recording is available at $0.01/min for inbound and outbound calls.

How to Set Up IVR on Your Virtual Number

Setting up an IVR with PBXme takes under 10 minutes from your online portal. Here’s the process:

  1. Log in to your PBXme portal
  2. Go to PBX Settings → IVR
  3. Click Add New IVR and give it a name (e.g. “Main Menu”)
  4. Record or upload your greeting audio (e.g. “Welcome to Acme Corp. Press 1 for Sales, Press 2 for Support”)
  5. Map each keypress (1, 2, 3…) to a destination: extension, queue, voicemail, or another IVR
  6. Go to your virtual number settings and set the inbound routing to your new IVR
  7. Save and test by calling your number

For multi-level IVR (sub-menus), simply create additional IVR menus and link them as destinations from the main menu keypresses.

How to Set Up a Call Queue

  1. In your portal, go to PBX Settings → Queues
  2. Click Add New Queue
  3. Set the queue name, hold music, and max wait time
  4. Add agent extensions to the queue (the phones that will ring when a caller is waiting)
  5. Set the queue strategy: Ring All (all agents ring at once), Round Robin (rotate between agents), or Least Recent (ring the agent who took a call least recently)
  6. Link your IVR keypress or your virtual number directly to this queue

Now when a caller presses “1 for Sales” on your IVR, they enter the Sales queue and wait for the next available agent.

Real-World Example: 3-Person Support Team

Here’s a common setup for a small business with a support team of 3:

  • Virtual number (+1 212 555 0100) → routes to Main IVR
  • Main IVR: “Press 1 for Sales, Press 2 for Support, Press 3 for Billing”
  • Press 1 → Sales Queue (agents: Alice, Bob) — Ring All strategy
  • Press 2 → Support Queue (agents: Carol) — with voicemail fallback after 60 seconds
  • Press 3 → Billing extension (direct ring to Carol’s desk)
  • After hours → Time Condition routes to voicemail instead of the IVR

This entire setup runs on a single virtual number with PBXme’s free PBX — no additional software, no per-feature fees.

How PBXme Compares to Paid Alternatives

ProviderIVRCall QueuesMonthly Cost
PBXme✅ Free✅ FreeNumber cost only
RingCentralPaid plan requiredPaid plan requiredFrom $30/user/mo
GrasshopperBasic only❌ Not availableFrom $26/mo
TwilioBuild it yourselfBuild it yourselfPay per use + dev time

Frequently Asked Questions

Does PBXme include IVR for free?

Yes. IVR (Interactive Voice Response / Auto Attendant) is included at no extra cost with every PBXme virtual number plan. You can create multi-level IVR menus with unlimited keypresses and destinations.

Do I need to pay extra for call queues on PBXme?

No. Call queues are included free with every virtual number plan. You can create multiple queues, add agents, set hold music, and configure queue strategies — all at no additional charge.

How many extensions can I add to a call queue?

PBXme supports unlimited extensions on your account. You can add as many agents as needed to any call queue.

Can I route calls differently on weekends or after hours?

Yes. PBXme’s Time Conditions feature lets you define routing rules based on day of week and time of day. You can route after-hours callers to voicemail, a different IVR message, or an on-call extension.

Can I record calls that go through the IVR or queue?

Yes. Call recording is available for all inbound and outbound calls at $0.01 per minute. It can be enabled at the extension, queue, or account level from your portal settings.

What is dynamic call forwarding?

Dynamic call forwarding lets you change where a virtual number routes calls in real time — from the portal, via API, or using feature codes from any phone. This is useful for on-call rotations, temporary redirects, or forwarding calls while traveling. See the full PBX features list for all 15 forwarding modes.

Get Free IVR & Call Queues with Your Number →

    Virtual Phone Numbers via API — Complete Developer Guide

    Home Blog

    Virtual phone numbers via API developer guide
    Provisioning virtual phone numbers via API gives developers full programmatic control over number acquisition, call routing, SMS, and webhooks — without touching a dashboard. This guide covers everything you need to get started with the PBXme REST API.

    Why Provision Phone Numbers via API?

    Manual number management works at small scale — but when you’re building a SaaS platform, a multi-tenant call center, an AI voice agent, or a communication app, you need to provision and release numbers programmatically. The PBXme REST API lets you:

    • Search and provision virtual numbers in 145+ countries instantly
    • Configure call forwarding and routing rules per number
    • Send and receive SMS on supported numbers
    • Receive real-time call and SMS events via webhooks
    • Release numbers when no longer needed

    All of this is available via standard HTTP requests — no SDK required, though the API works with any language.

    Authentication

    The PBXme API uses token-based authentication. Send your credentials to the login endpoint to receive an account_token, then include it as a Bearer token in all subsequent requests. Python:

    import requests
    
    response = requests.post("https://newsip.pbxme.com/api/login", json={
        "email": "your@email.com",
        "password": "yourpassword"
    })
    token = response.json()["account_token"]
    headers = {"Authorization": f"Bearer {token}"}

    Node.js:

    const axios = require('axios');
    
    const { data } = await axios.post('https://newsip.pbxme.com/api/login', {
      email: 'your@email.com',
      password: 'yourpassword'
    });
    const headers = { Authorization: `Bearer ${data.account_token}` };

    cURL:

    curl -X POST https://newsip.pbxme.com/api/login \
      -H "Content-Type: application/json" \
      -d '{"email":"your@email.com","password":"yourpassword"}'

    Searching Available Numbers

    Once authenticated, query available numbers by country code and optionally filter by area code or number type (local, toll-free, mobile).

    available = requests.get(
        "https://newsip.pbxme.com/api/dids/available",
        params={
            "country_code": "GB",    # ISO 2-letter country code
            "area_code": "207"       # optional: London area code
        },
        headers=headers
    )
    print(available.json())

    The response returns a list of available DIDs with their number, country, monthly rate, and capabilities (voice, SMS, fax).

    Provisioning a Number

    Once you’ve selected a number from the available list, provision it to your account:

    provision = requests.post(
        "https://newsip.pbxme.com/api/dids/provision",
        headers=headers,
        json={
            "did": "+442071234567",
            "label": "UK Sales Line"
        }
    )
    print(provision.json())

    The number is live immediately after provisioning. No waiting period, no manual approval.

    Configuring Call Forwarding

    After provisioning, set where inbound calls to that number should be routed — a SIP address, a mobile number, a webhook, or your PBX extension:

    routing = requests.post(
        "https://newsip.pbxme.com/api/dids/routing",
        headers=headers,
        json={
            "did": "+442071234567",
            "forward_to": "sip:agent@your-pbx.example.com",
            "type": "sip"
        }
    )
    print(routing.json())

    Routing options include: sip, pstn (forward to a regular phone number), webhook, or ivr (route to a PBX IVR menu).

    Receiving Call Events via Webhook

    To handle inbound calls or call status updates in real time, register a webhook URL. PBXme will POST a JSON payload to your URL on each call event — inbound call, answer, hangup, voicemail, and more.

    webhook = requests.post(
        "https://newsip.pbxme.com/api/webhooks/register",
        headers=headers,
        json={
            "did": "+442071234567",
            "url": "https://your-app.example.com/call-events",
            "events": ["inbound", "answer", "hangup"]
        }
    )
    print(webhook.json())

    See the full Webhooks documentation for all event types and payload formats.

    Sending SMS via API

    For numbers with SMS capability, send outbound text messages with a single POST request:

    sms = requests.post(
        "https://newsip.pbxme.com/api/sms/send",
        headers=headers,
        json={
            "from": "+442071234567",
            "to": "+447700900123",
            "message": "Your appointment is confirmed for tomorrow at 10am."
        }
    )
    print(sms.json())

    Inbound SMS messages are delivered to your registered webhook URL. See the SMS API documentation for full details.

    Releasing a Number

    When a number is no longer needed, release it via API to stop billing:

    requests.delete(
        "https://newsip.pbxme.com/api/dids/release",
        headers=headers,
        json={"did": "+442071234567"}
    )

    API Capabilities Summary

    CapabilityEndpointMethod
    Search available numbers/api/dids/availableGET
    Provision a number/api/dids/provisionPOST
    Configure routing/api/dids/routingPOST
    Register webhook/api/webhooks/registerPOST
    Send SMS/api/sms/sendPOST
    Release a number/api/dids/releaseDELETE

    Frequently Asked Questions

    Can I provision virtual numbers in any country via the PBXme API?

    Yes. The PBXme API supports number provisioning in 145+ countries. Use the /api/dids/available endpoint with a country code to see what’s available in any market.

    Is there a sandbox environment for testing?

    Yes. PBXme provides an API sandbox where you can test provisioning and call flows without affecting live numbers or incurring charges.

    What happens to calls when a number has no routing configured?

    Calls will follow the default behavior set in your account — typically going to voicemail. It is recommended to configure routing immediately after provisioning.

    Can I receive inbound SMS via webhook?

    Yes. Inbound SMS messages are delivered to your webhook URL as POST requests in JSON format, the same way call events are delivered.

    Is the API rate limited?

    The API has rate limits in place to ensure fair usage. For high-volume provisioning needs, contact PBXme support to discuss your requirements.

    Explore the API Sandbox →

      How to Build an AI Voice Agent with a Real Phone Number

      Home Blog

      AI voice agent with a real phone number
      AI voice agents are transforming how businesses handle phone calls — but to make or receive real calls, your AI agent needs a real phone number. This guide walks through exactly how to connect a virtual number to an AI voice agent using the PBXme API.

      What Is an AI Voice Agent?

      An AI voice agent is a software system that can handle phone calls autonomously — answering questions, qualifying leads, booking appointments, or routing callers — without a human operator. Built on large language models (LLMs) like GPT-4 or Claude, these agents listen to speech, generate responses, and speak back using text-to-speech (TTS) engines. Popular platforms for building AI voice agents include Bland.ai, Vapi, Retell AI, and custom stacks combining Twilio or PBXme with Deepgram, ElevenLabs, and an LLM backend. The missing piece for most AI agents is a real phone number — a local number in the right country that callers can actually dial. That’s where the PBXme API comes in.

      What You Need Before You Start

      • A PBXme account with API access
      • A virtual phone number provisioned in your target country
      • An AI voice agent platform (Bland.ai, Vapi, Retell, or custom)
      • A public HTTPS webhook URL to receive inbound call events

      Step 1 — Provision a Virtual Number via the PBXme API

      First, authenticate with the PBXme API and retrieve a number for your target country. The API uses a two-step auth flow: login to get an account token, then use that token for all subsequent calls. Authenticate:

      import requests
      
      auth_response = requests.post("https://newsip.pbxme.com/api/login", json={
          "email": "your@email.com",
          "password": "yourpassword"
      })
      token = auth_response.json()["account_token"]
      headers = {"Authorization": f"Bearer {token}"}

      Browse available numbers:

      numbers = requests.get(
          "https://newsip.pbxme.com/api/dids/available",
          params={"country_code": "US"},
          headers=headers
      )
      print(numbers.json())

      Once you’ve selected a number, provision it to your account via the portal or API. Your number is now live and ready to receive calls.

      Step 2 — Configure a Webhook to Receive Inbound Calls

      When someone dials your virtual number, PBXme needs to know where to send the call. For an AI agent, you point the number’s forwarding destination to your agent’s webhook endpoint — the URL your AI platform exposes to handle incoming calls. In your PBXme portal:

      1. Go to your number’s settings
      2. Set the forwarding type to SIP or Webhook depending on your platform
      3. Enter your AI agent’s inbound call URL (e.g. https://your-agent.example.com/inbound)
      4. Save the configuration

      For platforms like Vapi or Retell AI, your webhook URL is provided in their dashboard after you create an agent. For custom builds, you’ll stand up a small HTTP server to receive the call event.

      Step 3 — Handle the Inbound Call in Your AI Agent

      When a call arrives, your webhook receives a POST request with call metadata. Your agent then:

      1. Answers the call and begins listening
      2. Converts speech to text (STT) using Deepgram, Whisper, or your platform’s built-in engine
      3. Passes the transcript to your LLM with a system prompt defining the agent’s role
      4. Converts the LLM’s text response back to speech (TTS) using ElevenLabs, Azure, or similar
      5. Streams the audio back to the caller

      Here is a minimal Python example using Flask to receive the inbound webhook and respond:

      from flask import Flask, request, jsonify
      
      app = Flask(__name__)
      
      @app.route("/inbound", methods=["POST"])
      def handle_inbound_call():
          call_data = request.get_json()
          caller_number = call_data.get("from")
          
          # Hand off to your AI agent logic here
          response = {
              "action": "speak",
              "text": "Hello, you've reached our AI assistant. How can I help you today?"
          }
          return jsonify(response)
      
      if __name__ == "__main__":
          app.run(port=5000)

      Step 4 — Make Outbound Calls from Your AI Agent

      AI agents that handle outbound calls — sales dialers, appointment reminders, follow-up bots — need to place calls programmatically. With PBXme, your agent can initiate a call via the API and connect the answered call to your agent’s audio stream.

      outbound = requests.post(
          "https://newsip.pbxme.com/api/calls/originate",
          headers=headers,
          json={
              "from": "+12025550100",   # your PBXme virtual number
              "to": "+14155550199",     # destination number
              "webhook_url": "https://your-agent.example.com/outbound"
          }
      )
      print(outbound.json())

      Compatible AI Voice Agent Platforms

      PlatformBest ForPBXme Integration
      Bland.aiSales & outbound callingVia SIP trunk or number import
      VapiInbound & outbound agentsVia SIP or webhook
      Retell AICustomer service botsVia SIP trunk
      Custom LLM stackFull control over logicVia REST API + webhooks

      Why Use PBXme for AI Agent Phone Numbers?

      • 145+ countries — get a local number in any market your agent needs to operate in
      • Full REST API — provision numbers, configure routing, and handle webhooks programmatically
      • Free PBX included — IVR, call queues, and routing logic available without extra cost
      • SIP trunk support — connect your agent via SIP for low-latency audio
      • Instant setup — numbers are live immediately, no paperwork or waiting period

      Frequently Asked Questions

      Can I use PBXme numbers with AI voice agent platforms like Vapi or Bland.ai?

      Yes. PBXme virtual numbers can be connected to AI voice agent platforms via SIP trunk or webhook. Your agent receives inbound calls and can place outbound calls using the PBXme API and your provisioned number.

      Do I need a SIP phone to use the PBXme API?

      No. The PBXme REST API handles call control programmatically. For AI agents, you typically connect via SIP or webhook — no physical phone required.

      Can my AI agent have a local phone number in multiple countries?

      Yes. PBXme offers virtual numbers in 145+ countries. You can provision a separate local number for each market your AI agent operates in, all managed from one account.

      Is there a sandbox to test the API before going live?

      Yes. PBXme provides an API sandbox environment where you can test call flows and number provisioning without affecting live traffic.

      What programming languages does the PBXme API support?

      The PBXme API is a standard REST API that works with any language capable of making HTTP requests — Python, Node.js, PHP, Ruby, Go, and more.

      Get Your AI Agent Phone Number →

        What Is A Virtual Phone Number

        Home Blog

        What is a virtual phone number

        A virtual phone number is a type of phone number that is not tied to any specific physical landline or mobile device. Despite this, it functions just like a traditional phone number — enabling users to make and receive calls from anywhere in the world, on any device.

        What Is a Virtual Phone Number?

        A virtual phone number works over the internet using VoIP (Voice over Internet Protocol) technology instead of a traditional copper phone line. When someone dials your virtual number, the call is routed through the cloud to whichever phone or device you choose — your mobile, a SIP phone, a laptop softphone, or a VoIP app. Unlike a landline, a virtual number has no fixed location. You can get a local number with a US area code, a UK dialing prefix, or an Israeli city code — regardless of where you physically are. This makes virtual numbers ideal for businesses that want a local presence in multiple countries, and for individuals who need to stay reachable across borders.

        Key Benefits of Virtual Phone Numbers

        1. Cost Savings

        Virtual numbers significantly reduce the cost of international and long-distance calls. Since calls travel over the internet, you avoid traditional carrier rates. Businesses can also eliminate expensive hardware and PBX infrastructure — cloud-based systems like PBXme include a full PBX at no extra cost.

        2. Flexibility and Mobility

        Virtual numbers are not tied to a desk or a location. Calls can be forwarded to any device — smartphone, tablet, softphone, or laptop — wherever you are. Remote workers, traveling employees, and distributed teams all stay reachable on a single number.

        3. Instant Setup

        Getting a virtual number takes minutes, not days. No hardware installation, no waiting for a technician, no contracts required. Sign up, choose your number and country, set your forwarding destination, and you’re live.

        4. Local Presence in 145+ Countries

        Virtual numbers let businesses appear local in any market. A company based in Tel Aviv can have a local US number for American clients, a UK number for British customers, and a German number for European partners — all managed from one dashboard. PBXme offers virtual numbers in 145+ countries.

        5. Privacy Protection

        Virtual numbers keep your personal or primary business number private. Use a virtual number for online listings, marketing campaigns, or customer-facing communications — and discard or reassign it at any time without affecting your main number.

        6. Full PBX Features Included

        Modern virtual number providers include advanced telephony features at no extra charge. PBXme includes IVR, call queues, voicemail, call recording, conference rooms, ring groups, and time-based routing — all free with every virtual number plan.

        How Does a Virtual Number Work?

        1. Number Assignment — You choose a number from your desired country or city. The number is provisioned instantly in the cloud.
        2. Call Routing — When someone dials your virtual number, the call is received by the cloud PBX and routed to your chosen destination (mobile, SIP device, or app).
        3. Device Flexibility — You can forward calls to multiple devices simultaneously (ring all) or sequentially (ring one, then another, then voicemail).
        4. IVR & Auto Attendant — Callers can be greeted by a menu (“Press 1 for Sales, Press 2 for Support”) before being routed to the right team.
        5. SMS Support — Many virtual numbers also support inbound and outbound SMS, useful for customer engagement and two-factor authentication flows.
        6. API Access — Developers can provision numbers, configure routing, and handle webhooks programmatically via the PBXme REST API.

        Who Uses Virtual Phone Numbers?

        • Businesses expanding internationally — Get a local number in any country without opening a physical office
        • Remote and distributed teams — One company number, reachable from anywhere
        • Startups and SMBs — Professional phone presence without expensive hardware
        • Developers and AI builders — Provision numbers via API for voice bots, AI agents, and automated workflows
        • Expats and travelers — Keep a home-country number while living or working abroad
        • E-commerce and customer support teams — Dedicated numbers per campaign, product line, or region

        Virtual Number vs. Traditional Phone Line

        FeatureVirtual NumberTraditional Landline
        Setup timeMinutesDays or weeks
        Location requiredNoYes
        Hardware requiredNoYes
        Countries available145+One
        PBX featuresIncluded freeExpensive add-on
        API accessYesNo

        Frequently Asked Questions

        What is a virtual phone number used for?

        Virtual phone numbers are used to make and receive calls over the internet without a physical phone line. Common uses include establishing a local presence in foreign markets, enabling remote teams to share a business number, running call centers, and integrating telephony into apps and AI systems via API.

        Can I get a virtual number from any country?

        Yes. PBXme offers virtual numbers in 145+ countries, including the US, UK, Germany, Australia, Israel, and more. You can get a local area code for any supported country and start receiving calls immediately.

        Does a virtual number support SMS?

        Many virtual numbers support inbound and outbound SMS. PBXme offers SMS-enabled local numbers in select countries. Check the SMS solutions page for coverage details.

        Do I need hardware to use a virtual number?

        No hardware is required. Calls can be received on any SIP-compatible phone or softphone app, on a mobile phone via call forwarding, or on a computer using a VoIP app. PBXme supports bring-your-own-device (BYOD) configurations.

        Are PBX features included with a virtual number?

        Yes — PBXme includes a full cloud PBX at no extra cost with every virtual number plan. This includes IVR, call queues, voicemail, call recording, conference rooms, ring groups, and time-based routing. No additional fees.

        Can developers provision virtual numbers via API?

        Yes. The PBXme REST API supports number provisioning, call control, SMS, and webhook events. It is compatible with any programming language that can make HTTP requests, including Python, Node.js, and PHP.

        Get a Virtual Phone Number Today

        PBXme makes it easy to get a local virtual number in 145+ countries — with a full cloud PBX included free. No contracts, no hardware, instant setup.

        Get Your Virtual Number →

          The Future of VoIP and AI

          VoIP and AI Integration: Top 6 Risks Every Business Must Address

          Home Blog

          As someone deeply involved in the VoIP industry, I’ve witnessed how this technology has revolutionized communication for businesses worldwide. The integration of AI into VoIP systems is an exciting frontier, promising innovative solutions. However, based on my experience with VoIP, I can foresee several risks businesses need to consider when adopting AI-powered tools in their communication systems.

          Read more

            virtual numbers

            Enhancing Communication and Privacy in the Private Sector with Virtual Numbers

            Home Blog

            In today’s rapidly evolving digital landscape, communication is not just a necessity but a strategic asset for businesses. The private sector, in particular, relies heavily on effective communication to foster collaborations, connect with clients, and streamline operations. With the advent of virtual numbers, businesses have gained a powerful tool to enhance their communication capabilities while ensuring data security and privacy.

            Read more

              virtual numbers benefits

              Virtual Numbers Usages & Benefits

              Home Blog

              Virtual phone numbers are phone numbers that are not associated with a physical phone line or device. They are used specifically for online communication, such as messaging and voice calls, and can be accessed through the internet. In this essay, we will explore the benefits of virtual phone numbers and how they can be used for various purposes.

              Read more

                Sales, click to chat