<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Piyush Sahoo]]></title><description><![CDATA[Piyush Sahoo]]></description><link>https://piyuzz.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Fri, 13 Nov 2026 19:51:44 GMT</lastBuildDate><atom:link href="https://piyuzz.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[What Is Number Masking? A Guide to Call Masking]]></title><description><![CDATA[How a proxy number connects two people, how many numbers you need, and the telecom and privacy rules that apply]]></description><link>https://piyuzz.hashnode.dev/what-is-number-masking</link><guid isPermaLink="true">https://piyuzz.hashnode.dev/what-is-number-masking</guid><category><![CDATA[privacy]]></category><category><![CDATA[Telephony]]></category><category><![CDATA[api]]></category><category><![CDATA[Security]]></category><category><![CDATA[voip]]></category><dc:creator><![CDATA[Piyush Sahoo]]></dc:creator><pubDate>Fri, 13 Nov 2026 16:01:44 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/97af00c8-e43a-46d8-970a-1fb702bfad55.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A reference on number masking (call masking): the call flow, number pool sizing, and the telecom and privacy rules that apply.</p>
<p>Number masking, also called call masking, lets two people talk by phone without seeing each other's real numbers. Each person sees a virtual number instead, and a telephony platform connects the call in the middle. Delivery, ride-hailing, and marketplace apps use it so strangers can coordinate without swapping personal details.</p>
<p>You have probably used it without noticing. <a href="https://www.uber.com/IN/en/newsroom/privacyandsecurity">Uber described this setup back in 2015</a>, with riders and drivers connected through anonymous numbers.</p>
<p>This guide is for the people deciding whether to use it. You'll learn how it works, how many numbers you actually need, what telecom and privacy rules ask of you, and what to check when you compare platforms.</p>
<blockquote>
<p><strong>Note: Key takeaways</strong></p>
<ul>
<li><strong>Number masking</strong> routes a call through a virtual number, so real numbers stay in your system and off the other person's phone.</li>
<li><strong>One-way masking</strong> hides one side. <strong>Two-way masking</strong> hides both and lets either person call.</li>
<li><strong>You need far fewer numbers than orders.</strong> The minimum pool equals the most live conversations any one person holds at once.</li>
<li><strong>Telecom rules can apply to masked calls.</strong> Some regulators treat app-started calls as automated, and some reserve number series for service calls.</li>
<li><strong>Masking lowers exposure but doesn't replace privacy duties.</strong> You still hold real numbers, so privacy duties such as the GDPR or India's DPDP Act still apply to you.</li>
</ul>
</blockquote>
<h2>What is number masking?</h2>
<p>Number masking places a virtual number, called a masking number or proxy number, between two people. Each person's phone shows that number, never the other person's mobile.</p>
<p>Think of a building's front desk. You ask for someone by name, the desk puts you through, and you never learn their extension.</p>
<p>"Masked" does not mean invisible to everyone. The business running the service still knows both real numbers, because it has to connect the call. The privacy gain is between the two people on the call, plus fewer copies of each number on other people's phones.</p>
<p>It's also different from caller ID spoofing. Spoofing shows a number the caller has no right to use. Masking shows a number the business rents for this purpose.</p>
<h2>How does a masked call work?</h2>
<p>A masked call is really two calls joined together. One runs from the first person to the platform, and the other runs from the platform to the second person.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/6c885bea-af2c-4947-93c5-9506ffb1540b.png" alt="Flow diagram of one masked call. A customer dials a masking number on a telephony platform, the platform asks your system who the call is for, then calls the delivery rider. Both calls join and each phone shows only the masking number." style="display:block;margin:0 auto" />

<p>The key step is the second one. Your system looks up who is calling and which number they dialed, then decides who should ring. That decision happens on every call, which is why you can switch a connection off the moment an order closes.</p>
<p>There are two common ways to start the call:</p>
<ul>
<li><strong>Dial-in.</strong> Each person dials the masking number, often through a <strong>Call</strong> button in your app.</li>
<li><strong>Click-to-call.</strong> The person taps a button, and the platform connects them to the other side, so nobody handles a number. This flow needs a closer look where <a href="#could-masked-calls-count-as-automated-calls">app-started calls count as automated</a>.</li>
</ul>
<h2>One-way vs two-way number masking</h2>
<p>The difference is who stays hidden and who can start the call.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/6386e0d0-ccb8-4c50-aea9-1e277b74aaf4.png" alt="Comparison of three call types. On a direct call, both people see real numbers and can call forever. With one-way masking, the customer sees only the masking number while your agent may still see the customer's number. With two-way masking, both people see only a masking number and either can call until the pairing ends." style="display:block;margin:0 auto" />

<p><strong>One-way masking</strong> suits teams making outbound calls. A field salesperson can call from a business number and keep their own mobile private.</p>
<p><strong>Two-way masking</strong> suits two strangers who need each other for a short time, such as a rider and a customer. Either one can call back, and neither learns the other's number.</p>
<h2>Which setup fits your business?</h2>
<p>Masking isn't the answer to every calling problem. Use this table to decide.</p>
<table>
<thead>
<tr>
<th>Your situation</th>
<th>Good fit</th>
<th>Why</th>
</tr>
</thead>
<tbody><tr>
<td>Two strangers meet once, such as delivery or a ride</td>
<td>Two-way masking</td>
<td>Both need to reach each other, and neither needs a lasting contact</td>
</tr>
<tr>
<td>Buyers and sellers on a marketplace</td>
<td>Two-way masking, one pairing per enquiry</td>
<td>Numbers stay off public listings and can't be collected in bulk</td>
</tr>
<tr>
<td>Tenants and brokers discussing a property</td>
<td>Two-way masking</td>
<td>Enquiries don't turn into a broker's cold-call list</td>
</tr>
<tr>
<td>Field staff calling customers from personal phones</td>
<td>One-way masking</td>
<td>Staff mobiles stay private, and customers see a business number</td>
</tr>
<tr>
<td>A long-term account manager and client</td>
<td>A fixed business number</td>
<td>The relationship is ongoing, so an expiring connection adds friction</td>
</tr>
<tr>
<td>Automated alerts with no reply needed</td>
<td>A normal outbound call</td>
<td>Nobody needs to reach a second person, so there is nothing to mask</td>
</tr>
</tbody></table>
<h2>Does two-way masking need two numbers?</h2>
<p>Not always. One shared number works for a pair, provided your system checks who is calling. If the rider dials it, ring the customer. If the customer dials it, ring the rider.</p>
<p>A two-number design adds clarity. One number always means "rider to customer", and the other always means "customer to rider". The dialed number alone then tells your system the direction, which makes problems easier to trace. <a href="https://www.vobiz.ai/docs/examples/vobiz-two-way-number-masking-python">Vobiz's two-way masking tutorial</a> uses this approach.</p>
<p>Either design is valid. Pick the two-number version if your team wants the simplest logic to audit, and the shared version if you want a smaller pool.</p>
<h2>How many masking numbers do you need?</h2>
<p>Fewer than most people assume. A common first guess is one number per order, but numbers can be shared across conversations. What matters is that your system can always tell conversations apart.</p>
<p>A number can be reused for a new conversation as long as each person remains uniquely identifiable. A driver with an open conversation on one number gets a different one for the next.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/96e9c6ed-f13d-4a8c-b726-01e61d0fbf00.png" alt="Illustrative example of three masking numbers carrying five live conversations. Number 1 carries Rider A with Customer 1 and Rider B with Customer 4. Number 2 carries Rider A with Customer 2 and Rider B with Customer 1. Number 3 carries Rider A with Customer 3. The rule is that nobody appears on the same number twice at once." style="display:block;margin:0 auto" />

<p>So the minimum pool equals the most live conversations any one person holds at the same time. Order volume doesn't set it. Here is that rule applied to three made-up businesses, with about 25% headroom added.</p>
<table>
<thead>
<tr>
<th>Illustrative business</th>
<th>Live conversations at peak</th>
<th>Busiest person holds</th>
<th>Minimum pool</th>
<th>With 25% headroom</th>
</tr>
</thead>
<tbody><tr>
<td>Local courier</td>
<td>500</td>
<td>A rider with 12 parcels</td>
<td>12</td>
<td>15</td>
</tr>
<tr>
<td>Goods marketplace</td>
<td>5,000</td>
<td>A seller with 40 open buyers</td>
<td>40</td>
<td>50</td>
</tr>
<tr>
<td>Property portal</td>
<td>200</td>
<td>A broker with 60 open leads</td>
<td>60</td>
<td>75</td>
</tr>
</tbody></table>
<p>Treat that as a floor, because three things push it up:</p>
<ul>
<li><strong>Two-number designs.</strong> Each pairing takes two numbers from the pool.</li>
<li><strong>Busy people on both sides.</strong> A new pairing needs a number neither person is already using. If a busy seller meets a busy buyer, a pool at the bare minimum may have no such number free.</li>
<li><strong>High volume.</strong> Every call lands on a few numbers, so one blocked or reported number hurts many conversations. Ask your provider how much load one number can safely carry in each country you use.</li>
</ul>
<p>Vendors also model this differently. A design that treats a number as one active pair at a time needs a pool that follows peak concurrent conversations. Ask which model applies before you compare quotes.</p>
<h2>What happens when the order ends?</h2>
<p>People often say the masked number expires after the call. More precisely, the pairing expires. The number itself goes back into the pool for other conversations.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/e68decf0-d3b6-48f3-9777-b54b8b051cb9.png" alt="Illustrative timeline of a masked pairing. The pairing is created when an order is placed, calls connect once a rider is assigned and through a grace window after delivery, then the pairing is removed. Later calls hear a message. The masking number returns to the pool, and real numbers should be erased once the purpose is served." style="display:block;margin:0 auto" />

<p>Plan for three moments that catch teams out:</p>
<ul>
<li><strong>The grace window.</strong> Customers often need to call just after delivery about a missing item. <a href="https://www.uber.com/HK/en/newsroom/safetyfeatures">A 2015 Uber post</a> described a similar window, ending minutes after a trip.</li>
<li><strong>The late caller.</strong> Someone will redial an old masking number. Play a short message telling them how to reach support, so they aren't left with silence.</li>
<li><strong>The reused number.</strong> If that person is in a new pairing on the same number, they'll reach their new contact. Keep the pairing check strict, and keep caller-facing wording clear. A short cooldown before a number is reused can also help.</li>
</ul>
<h2>What number masking doesn't do</h2>
<p>Masking removes one specific risk, so it's worth being clear on the rest.</p>
<ul>
<li><strong>It can't stop people sharing numbers aloud.</strong> Anyone can read their number out during a call.</li>
<li><strong>It can't protect numbers that leak elsewhere.</strong> A number shown in a partner app or left in a shared export is still exposed.</li>
<li><strong>It doesn't remove your responsibility.</strong> Your system now holds both numbers in one place, so that store needs protection.</li>
<li><strong>It doesn't make recordings private.</strong> If you record masked calls, those recordings are still personal data. Tell people, limit access, and delete them on schedule.</li>
<li><strong>It doesn't make marketing calls legal.</strong> Commercial calling rules apply whichever number shows on screen.</li>
</ul>
<h2>Number masking vs call forwarding and private numbers</h2>
<p>These three are often confused, but they solve different problems.</p>
<table>
<thead>
<tr>
<th></th>
<th>Call forwarding</th>
<th>Withheld caller ID</th>
<th>Number masking</th>
</tr>
</thead>
<tbody><tr>
<td><strong>What happens</strong></td>
<td>Calls to one number ring another</td>
<td>The screen shows private or unknown</td>
<td>A virtual number sits between both people</td>
</tr>
<tr>
<td><strong>Can the other person call back?</strong></td>
<td>Yes</td>
<td>No</td>
<td>Yes, while the pairing is live</td>
</tr>
<tr>
<td><strong>Who controls it</strong></td>
<td>Phone settings or the carrier</td>
<td>Phone settings or the carrier</td>
<td>Your application, on every call</td>
</tr>
<tr>
<td><strong>Can it end automatically after an order?</strong></td>
<td>No</td>
<td>No</td>
<td>Yes</td>
</tr>
</tbody></table>
<h2>What rules apply to number masking?</h2>
<p>We found no major rule that names number masking. General telecom and privacy rules still apply to masked calls, so treat this section as orientation rather than legal advice.</p>
<h3>Could masked calls count as automated calls?</h3>
<p>Some regulators treat calls that an app starts as automated, even when a person answers. If you're in India, TRAI's <a href="https://www.trai.gov.in/sites/default/files/2026-09/Regulation_18092026.pdf">Third Amendment of 18 September 2026</a> requires you to <a href="https://www.trai.gov.in/sites/default/files/2026-09/PR_No119of2026.pdf">declare application-to-person calls and their caller ID ranges in advance</a>, and TRAI declined to exempt app-connected driver and delivery calls. This matters most for click-to-call, so ask your provider whether your flow needs declaring.</p>
<h3>Which numbers and routes can masked calls use?</h3>
<p>Some countries reserve number series for service calls, and providers set conditions on their routes:</p>
<ul>
<li><strong>Number series.</strong> In India, for example, TRAI <a href="https://trai.gov.in/sites/default/files/2026-08/PR_No113of2026_1.pdf">directed providers in August 2026</a> to allot 1601-series numbers to utility, courier, and logistics firms for service calls, issued directly to the eligible company.</li>
<li><strong>Caller ID.</strong> On Vobiz's Indian routes, <a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">the calling regulations</a> require the masking number to be one you rent from Vobiz, or the call is rejected as an <a href="https://www.vobiz.ai/docs/concepts/hangup-causes">unknown caller ID</a>. Indian numbers also need <a href="https://www.vobiz.ai/docs/compliance/india/kyc">KYC</a>, and both legs must stay in the country.</li>
<li><strong>Consent.</strong> Commercial calls need valid consent, and on Indian routes <a href="https://www.vobiz.ai/docs/compliance/india/ucc">unsolicited calls can lead to suspension or blacklisting</a>. Keep masked numbers for the transaction they belong to.</li>
</ul>
<h3>How do privacy laws affect masking?</h3>
<p>A phone number is personal data under most privacy laws. <a href="https://gdpr-info.eu/art-5-gdpr/">GDPR Article 5</a> limits personal data to what is necessary, and <a href="https://gdpr-info.eu/art-25-gdpr/">Article 25</a> asks for data protection by design. In California, the <a href="https://oag.ca.gov/privacy/ccpa">CCPA</a> gives consumers rights over the personal information you hold, and India's <a href="https://www.meity.gov.in/static/uploads/2024/06/2bf1f0e9f04e6fb4f8fef35e82c42aa5.pdf">DPDP Act</a> covers any data about an identifiable person.</p>
<p>Masking helps because fewer people ever receive that data. It doesn't take you out of scope, because you still store both numbers. Protect them with reasonable safeguards, and erase them once their purpose is served, unless a law requires you to keep them.</p>
<h2>How to choose a number masking platform for a marketplace</h2>
<p>Most options fall into three groups. The right one depends on how much of the logic you want to own.</p>
<table>
<thead>
<tr>
<th>Option</th>
<th>What you get</th>
<th>Best for</th>
</tr>
</thead>
<tbody><tr>
<td>Ready-made masking service</td>
<td>The vendor manages pairings, expiry, and the number pool</td>
<td>Standard flows and small technical teams</td>
</tr>
<tr>
<td>Programmable voice platform</td>
<td>Numbers and call connection, with your own pairing logic and data</td>
<td>Marketplaces with custom rules or strict data ownership needs</td>
</tr>
<tr>
<td>SIP trunk with your own telephony system</td>
<td>The deepest control, and the most work</td>
<td>Businesses that already run a telephony team</td>
</tr>
</tbody></table>
<p>Vobiz is a programmable voice platform.</p>
<p>Whichever you shortlist, ask these questions:</p>
<ol>
<li><strong>Who stores real numbers and pairings?</strong> Your answer decides where your privacy risk sits.</li>
<li><strong>Can a pairing end on your own event?</strong> You want expiry tied to delivery or a closed listing, not just a timer.</li>
<li><strong>Which number series will you get in each country, and who is the allottee?</strong> In India, this matters most for courier and logistics firms.</li>
<li><strong>How is a number pool managed?</strong> Ask how reuse avoids two conversations colliding.</li>
<li><strong>What do late callers hear?</strong> A silent failure creates support tickets.</li>
<li><strong>What records exist, and for how long?</strong> Check logs and recordings, and whether you control deletion.</li>
<li><strong>What makes up the total cost?</strong> Compare number rental and per-minute charges at your real call volumes.</li>
</ol>
<h2>How Vobiz handles number masking</h2>
<p><a href="https://www.vobiz.ai/docs/introduction">Vobiz</a> gives you the numbers and connects the calls, while the pairing logic and data stay in your own system.</p>
<ul>
<li><strong>Numbers.</strong> You <a href="https://www.vobiz.ai/docs/account-phone-number">rent phone numbers</a> from Vobiz. In India, numbers follow <a href="https://www.vobiz.ai/docs/compliance/india/kyc">KYC verification</a>.</li>
<li><strong>Routing.</strong> You attach your numbers to a <a href="https://www.vobiz.ai/docs/platform/voice/applications">Vobiz application</a>. On each call, Vobiz sends the caller and dialed number to your webhooks (callbacks).</li>
<li><strong>The mask itself.</strong> Your system replies in <a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">VobizXML</a> with a <a href="https://www.vobiz.ai/docs/xml/dial">dial instruction</a> whose caller ID shows a masking number you own or are authorized to use.</li>
<li><strong>Security.</strong> You can <a href="https://www.vobiz.ai/docs/concepts/validating-callbacks">validate that callbacks really came from Vobiz</a> before acting on them.</li>
<li><strong>Records.</strong> <a href="https://www.vobiz.ai/docs/platform/voice/call-logs">Call logs</a> and optional <a href="https://www.vobiz.ai/docs/solutions/call-recording">call recording</a> sit alongside masked calls.</li>
</ul>
<p>For a business overview, see <a href="https://www.vobiz.ai/docs/solutions/number-masking">Vobiz number masking</a>. Your developers can start from the <a href="https://www.vobiz.ai/docs/examples/vobiz-two-way-number-masking-python">two-way masking tutorial</a>. Test calls are real, billed calls, so use your own credentials and only ring numbers you have permission to call.</p>
<h2>Frequently asked questions</h2>
<h3>What is call masking in simple terms?</h3>
<p>Call masking connects two people by phone while each sees a virtual number instead of the other's real one. A telephony platform joins the call in the middle. It's common in delivery, ride-hailing, and marketplace apps.</p>
<h3>Is number masking the same as call masking?</h3>
<p>Yes. Both names describe the same technique, along with phone number masking and proxy calling. Number masking stresses the hidden number, while call masking stresses the connected call. Vendors use the terms interchangeably.</p>
<h3>Is call masking legal?</h3>
<p>We found no major rule that bans it or names it. Masking uses a number your business rents, unlike spoofing. Telecom and privacy rules still apply, including number series, automated-call declarations where they exist, consent, and laws such as the GDPR or India's DPDP Act. Take legal advice for your specific use.</p>
<h3>Does two-way number masking need two numbers?</h3>
<p>Not always. One shared number works for a pair if your system checks who is calling. Two numbers make the direction clear from the dialed number alone, which keeps routing easier to audit. Both designs are valid.</p>
<h3>How many masking numbers does a marketplace need?</h3>
<p>At minimum, as many as the most live conversations any one person holds at once. A seller with 40 open buyers needs at least 40, even across thousands of enquiries. Add headroom, and more if you use two numbers per pairing or run at high volume.</p>
<h3>Can someone call a masked number after the order ends?</h3>
<p>They can dial it, but your system decides what happens. Once the pairing has ended, the call won't connect to the old contact. You can play a short message that points the caller to support instead.</p>
<h2>Further reading on Vobiz</h2>
<ul>
<li><a href="https://www.vobiz.ai/docs/solutions/number-masking">Number masking solution overview</a> · <a href="https://www.vobiz.ai/docs/examples/vobiz-two-way-number-masking-python">Two-way number masking tutorial</a></li>
<li><a href="https://www.vobiz.ai/docs/solutions/logistics-delivery">Logistics and delivery on Vobiz</a> · <a href="https://www.vobiz.ai/docs/solutions/call-recording">Call recording</a></li>
<li><a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">India calling regulations</a> · <a href="https://www.vobiz.ai/docs/compliance/india/kyc">India number KYC</a> · <a href="https://www.vobiz.ai/docs/compliance/india/ucc">UCC and NDNC compliance</a></li>
<li><a href="https://www.vobiz.ai/docs/blogs/what-is-a-did-number">What is a DID number?</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-caller-id-cnam">Caller ID and CNAM explained</a></li>
</ul>
<h2>Sources</h2>
<p><strong>Indian regulators and government</strong></p>
<ul>
<li>TRAI, <a href="https://trai.gov.in/sites/default/files/2026-08/PR_No113of2026_1.pdf">Press release 113/2026 on the 1601 series</a>, 10 August 2026.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2026-08/Direction_10082026.pdf">Direction on allocating the 1601 numbering series</a>, 10 August 2026.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2026-09/Regulation_18092026.pdf">Telecom Commercial Communications Customer Preference (Third Amendment) Regulations, 2026</a>, 18 September 2026.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2026-09/PR_No119of2026.pdf">Press release on the Third Amendment</a>, 18 September 2026.</li>
<li>Ministry of Law and Justice, <a href="https://www.meity.gov.in/static/uploads/2024/06/2bf1f0e9f04e6fb4f8fef35e82c42aa5.pdf">Digital Personal Data Protection Act, 2023</a>, 11 August 2023.</li>
<li>PIB, <a href="https://static.pib.gov.in/WriteReadData/specificdocs/documents/2025/nov/doc20251117695301.pdf">DPDP Rules, 2025 Notified</a>, November 2025.</li>
</ul>
<p><strong>Legal commentary</strong></p>
<ul>
<li>Legal500, <a href="https://www.legal500.com/intelligence/india/privacy/meity-plans-to-cut-short-dpdp-compliance-timeline-and-notify-cross-border-restrictions-for-sdfs">MeitY plans to cut short DPDP compliance timeline</a>, 15 April 2026.</li>
</ul>
<p><strong>Other privacy law</strong></p>
<ul>
<li>GDPR, <a href="https://gdpr-info.eu/art-5-gdpr/">Article 5: Principles relating to processing of personal data</a> and <a href="https://gdpr-info.eu/art-25-gdpr/">Article 25: Data protection by design and by default</a>.</li>
<li>California Attorney General, <a href="https://oag.ca.gov/privacy/ccpa">California Consumer Privacy Act (CCPA)</a>.</li>
</ul>
<p><strong>Companies</strong></p>
<ul>
<li>Uber Newsroom India, <a href="https://www.uber.com/IN/en/newsroom/privacyandsecurity">Privacy and security</a>, 24 September 2015 (historical).</li>
<li>Uber Newsroom Hong Kong, <a href="https://www.uber.com/HK/en/newsroom/safetyfeatures">Safety features</a>, 11 December 2015 (historical).</li>
</ul>
<hr />
<p>If a voice AI agent sits on either end of a masked call, <a href="https://www.vobiz.ai">Vobiz</a> provides the phone numbers and SIP trunks to connect it.</p>
]]></content:encoded></item><item><title><![CDATA[Call Center Optimization with AI: Metrics, Rollout, ROI]]></title><description><![CDATA[A guide for call center managers and CX and operations leaders on applying AI: metrics, the human role, staged rollout, and testing a vendor's savings…]]></description><link>https://piyuzz.hashnode.dev/call-center-optimization-with-ai</link><guid isPermaLink="true">https://piyuzz.hashnode.dev/call-center-optimization-with-ai</guid><category><![CDATA[AI]]></category><category><![CDATA[customer service]]></category><category><![CDATA[voice ai]]></category><category><![CDATA[Productivity]]></category><category><![CDATA[Telephony]]></category><dc:creator><![CDATA[Piyush Sahoo]]></dc:creator><pubDate>Fri, 13 Nov 2026 09:59:40 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/8ae4fa7f-d919-4416-9330-0c66bc05938f.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A guide for call center managers and CX and operations leaders on applying AI: metrics, the human role, staged rollout, and testing a vendor's savings claim with a worked example.</p>
<p>Call center optimization with AI means lowering the cost of each resolved issue without making customers work harder. AI takes routine calls and after-call paperwork, while people keep sensitive, judgment-heavy conversations. You see success in cost per resolved issue, repeat calls, and customer satisfaction, not in handle time alone.</p>
<p>This guide is for call center managers and CX and operations leaders. It shows which metrics should move, where people should stay in charge, how to roll out in stages, and how to test a vendor's savings claim.</p>
<blockquote>
<p><strong>Note: Key takeaways</strong></p>
<ul>
<li>Judge AI on <strong>cost per resolved issue</strong>, repeat calls, and satisfaction together. Any one of them alone can mislead you.</li>
<li>Start by helping agents, then automate routine calls one type at a time.</li>
<li>Keep a clear route to a person. In a 2026 Gartner survey <a href="https://insurance-canada.ca/2026/08/20/gartner-ai-customer-service-human-agents/">published by</a> <a href="http://Insurance-Canada.ca">Insurance-Canada.ca</a>, 87% of customers called that option essential.</li>
<li>In our illustrative example, a pitched saving of $150,000 a month becomes $40,000 once handoffs, repeat calls, and AI costs are counted.</li>
<li>A saving only reaches your budget when you change staffing, overtime, or outsourcing spend.</li>
</ul>
</blockquote>
<h2>What is call center optimization with AI?</h2>
<p>Call center optimization is the ongoing work of resolving more customer issues at a lower cost, with less effort for customers and agents. Staffing, routing, and coaching still matter. AI adds four new jobs you can assign:</p>
<table>
<thead>
<tr>
<th>Job for AI</th>
<th>What it means in practice</th>
<th>Where the value shows up</th>
</tr>
</thead>
<tbody><tr>
<td>Answer routine calls</td>
<td>An <a href="https://www.vobiz.ai/docs/solutions/ai-voice-agent">AI voice agent</a> or <a href="https://www.vobiz.ai/docs/blogs/what-is-an-ivr">conversational phone menu</a> resolves a simple request or sends it to the right team</td>
<td>Fewer calls need an agent</td>
</tr>
<tr>
<td>Help agents live</td>
<td>AI suggests answers and finds information during the call</td>
<td>Faster resolution and quicker new-hire ramp-up</td>
</tr>
<tr>
<td>Handle after-call paperwork</td>
<td>AI drafts the call summary and updates the customer record</td>
<td>Less wrap-up time</td>
</tr>
<tr>
<td>Review quality</td>
<td>AI checks every call against your standards</td>
<td>Earlier coaching and earlier compliance alerts</td>
</tr>
</tbody></table>
<p>The quality job is a bigger change than it sounds. Manual review usually covers only a small sample of calls, so most coaching moments never reach a supervisor.</p>
<p>The best independent evidence covers the second job. A study of 5,179 support agents, published in the <em>Quarterly Journal of Economics</em> in 2025, found that an AI assistant <a href="https://www.nber.org/papers/w31161">raised issues resolved per hour by 14% on average</a>. Novice and lower-skilled agents gained about 34%, while the most experienced agents barely changed.</p>
<p>That split has a practical meaning for you. AI assistance works partly as a training tool, so its payoff is largest where turnover keeps your team inexperienced.</p>
<h2>Which call center metrics should AI move?</h2>
<p>Anchor on <strong>cost per resolved issue</strong>: total monthly cost divided by the distinct customer problems you actually solved. Cost per call can fall simply because customers gave up. This measure can't.</p>
<p>Then read each supporting metric with a partner that catches false progress. Any metric read in isolation can mislead you. The pairings below are our own suggestion.</p>
<table>
<thead>
<tr>
<th>Metric</th>
<th>Plain meaning</th>
<th>Healthy direction</th>
<th>Check it against</th>
</tr>
</thead>
<tbody><tr>
<td>Cost per resolved issue</td>
<td>Total cost ÷ issues solved</td>
<td>Down</td>
<td>Customer satisfaction</td>
</tr>
<tr>
<td>First call resolution</td>
<td>Solved on the first contact</td>
<td>Up</td>
<td>Repeat calls within 7 days</td>
</tr>
<tr>
<td>Containment rate</td>
<td>Calls that end without reaching an agent</td>
<td>Up, with care</td>
<td>Repeat calls and satisfaction</td>
</tr>
<tr>
<td>Average handle time</td>
<td>Talk, hold, and wrap-up time</td>
<td>Can rise at first</td>
<td>Call type mix</td>
</tr>
<tr>
<td>Abandonment rate</td>
<td>Callers who hang up while waiting</td>
<td>Down</td>
<td>Satisfaction on answered calls</td>
</tr>
<tr>
<td>Customer satisfaction</td>
<td>Post-call survey score</td>
<td>Steady or up</td>
<td>The same call types handled by agents</td>
</tr>
<tr>
<td>New-hire ramp-up time</td>
<td>Weeks until an agent reaches target</td>
<td>Down</td>
<td>Quality scores</td>
</tr>
</tbody></table>
<p>Two of these need extra care.</p>
<p><strong>Containment flatters AI.</strong> A caller who hangs up in frustration and rings back tomorrow still counts as contained. Track <strong>true resolution</strong> instead: AI-handled calls with no repeat contact on the same issue within 7 days. The 7-day window is our suggested starting point, so adjust it to your business.</p>
<p><strong>Handle time can rise when things go well.</strong> When AI removes the two-minute calls, agents keep the harder ones. Your average then climbs even if every agent has become more effective. Report handle time by call type, or you may punish a rollout that is working.</p>
<p>For first call resolution, SQM Group gives a <a href="https://www.sqmgroup.com/resources/library/blog/top-10-call-center-metrics-kpis">benchmark average of 71% and a world-class mark of 80%</a>, and says only 5% of centers reach that mark. The same SQM page says each 1% gain in first call resolution cuts operating cost by 1%. That page dates from December 2021, so use it as a rough guide and compare yourself mainly with your own baseline.</p>
<h2>Where does AI help, and where should humans stay?</h2>
<p>Sort your call types by two questions. How costly is a wrong answer? How much judgment or empathy does the call need?</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/f3b175ba-e0aa-4858-8366-8dd00cd24e39.png" alt="Two by two map of call types. Routine low-risk calls such as order status can be resolved by AI. Routine high-risk calls such as large refunds are prepared by AI and confirmed by a person. Low-risk calls needing judgment have AI assisting an agent. High-risk calls needing judgment, such as fraud and bereavement, are led by a person." style="display:block;margin:0 auto" />

<p>Recent customer evidence is a reason to move carefully, and to keep a route to a person on every call type:</p>
<ul>
<li><strong>Customers want the exit.</strong> In a Gartner survey of 3,566 customers, <a href="https://insurance-canada.ca/2026/08/20/gartner-ai-customer-service-human-agents/">as published by</a> <a href="http://Insurance-Canada.ca">Insurance-Canada.ca</a>, 50% said GenAI makes interactions easier, yet 87% said an option to reach a human is essential.</li>
<li><strong>AI service can disappoint.</strong> Qualtrics surveyed more than 20,000 consumers and found <a href="https://www.qualtrics.com/articles/news/ai-powered-customer-service-fails-at-four-times-the-rate-of-other-tasks/">nearly 1 in 5 who used AI for customer service got no benefit</a>. That failure rate is almost four times the rate for AI use in general.</li>
<li><strong>Cheaper doesn't always mean better.</strong> In May 2025, <a href="https://www.entrepreneur.com/business-news/klarna-ceo-reverses-course-by-hiring-more-humans-not-ai/491396">Entrepreneur reported</a> that Klarna's CEO called its AI support cheaper than staff but lower in quality, and that the company had resumed hiring people.</li>
</ul>
<p>Decide your handoff rules before launch. Move a call to a person when the caller asks, when AI fails to understand twice, when the caller sounds distressed, or when a high-risk topic comes up. Pass along the customer's name, reason for calling, and what AI already tried, so nobody has to repeat their story.</p>
<h2>Will AI replace call center agents?</h2>
<p>The current data points to a change in the job more than a wholesale replacement. In a Gartner survey of 321 service leaders, <a href="https://www.nojitter.com/contact-centers/ai-isnt-causing-human-cx-agent-layoffs-gartner-finds">as reported by No Jitter</a>, 85% were moving agent capacity to higher-value work. In the same survey, 63% were shrinking headcount gradually through attrition, and 31% were making or planning AI-related layoffs through early 2027.</p>
<p>The new agent responsibilities Gartner identified, <a href="https://www.nojitter.com/contact-centers/ai-isnt-causing-human-cx-agent-layoffs-gartner-finds">per No Jitter</a>, include expanded issue resolution, advising customers, revenue generation, proactive loyalty outreach, and helping remove the causes of avoidable calls.</p>
<p>Forecasts of how far automation will go disagree, so don't build your plan on one. In March 2025, <a href="https://cxtoday.com/contact-center/agentic-ai-gartner-predicts-80-of-customer-problems-solved-without-human-help-by-2029">CX Today reported</a> Gartner's prediction that agentic AI, meaning AI that acts on its own, would resolve 80% of common service issues by 2029. In early 2026, <a href="https://www.customerexperiencedive.com/news/ai-cheaper-than-human-customer-service-gartner/813413/">Customer Experience Dive reported</a> a newer Gartner prediction that GenAI cost per resolution would exceed $3 by 2030, above many offshore agents. A Gartner analyst also called full automation prohibitively expensive for most organizations.</p>
<p>For your people plan, the safer assumption is fewer routine calls and harder work for the agents who remain. Budget for skills and pay to match, and tell your team early what changes.</p>
<h2>How do you roll out AI without hurting service?</h2>
<p>Move on evidence rather than dates. Each stage has a gate, and a failed gate means you stay or step back.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/874d488d-b212-41d2-8213-f99cdc45fa12.png" alt="Four stage rollout. Stage one measures each call type with no AI answering. Stage two has AI assisting agents, still with no AI answering. Stage three pilots AI on one or two routine call types at about 5 percent of calls against a matched group. Stage four expands one call type at a time, reaching about 25 percent of calls. Each stage has an evidence gate before moving on." style="display:block;margin:0 auto" />

<ol>
<li><strong>Measure.</strong> Collect a few weeks of data for each call type. Without this baseline, every later result is just an opinion.</li>
<li><strong>Assist agents.</strong> This stage carries the lowest customer risk, and it wins agents over. Ask them what the tool gets wrong, because they will spot errors before your dashboards do.</li>
<li><strong>Run a small pilot.</strong> Pick one or two high-volume, low-risk call types. Keep a randomly chosen group of the same calls with agents, so seasonal swings don't distort your comparison.</li>
<li><strong>Expand.</strong> Add one call type at a time, and repeat the same test for each. Keep a way to send any call type back to agents the same day.</li>
</ol>
<p>The percentages in the diagram are illustrative, not targets. The right share depends on your call mix, and your results may justify stopping well below 25%.</p>
<h2>How do you measure the ROI of AI in a call center?</h2>
<p>Count what the pitch usually leaves out: calls AI hands back, callers who ring again, the AI's own cost, and the people who keep it running. The example below uses <strong>illustrative numbers we made up to show the method</strong>. None of them is a benchmark, a market rate, or a Vobiz price.</p>
<table>
<thead>
<tr>
<th>Assumption (illustrative)</th>
<th>Value</th>
</tr>
</thead>
<tbody><tr>
<td>Inbound calls per month</td>
<td>100,000</td>
</tr>
<tr>
<td>Distinct customer issues behind those calls</td>
<td>80,000</td>
</tr>
<tr>
<td>Average handle time, including wrap-up</td>
<td>6 minutes</td>
</tr>
<tr>
<td>Fully loaded agent cost per handled minute</td>
<td>$1</td>
</tr>
<tr>
<td>Calls AI answers</td>
<td>25,000 (25%)</td>
</tr>
<tr>
<td>AI calls handed to an agent</td>
<td>7,500 (30%)</td>
</tr>
<tr>
<td>AI-ended calls that ring back within 7 days</td>
<td>2,500</td>
</tr>
<tr>
<td>AI usage cost, including telephony</td>
<td>$0.50 per minute, 2 minutes per call</td>
</tr>
<tr>
<td>Monthly running costs: tuning, review, platform</td>
<td>$25,000</td>
</tr>
<tr>
<td>One-time setup</td>
<td>$200,000</td>
</tr>
</tbody></table>
<p>We also assume the harder call mix adds 36 seconds to handle time, and that agent assistance removes the same 36 seconds. Handle time therefore stays at 6 minutes.</p>
<p><strong>Today, you spend $600,000 a month.</strong> That is 100,000 calls at $6 each, or $7.50 per resolved issue.</p>
<p><strong>With AI, you spend $560,000 a month.</strong> Agents handle 85,000 calls, made up of 75,000 untouched calls, 7,500 handoffs, and 2,500 repeat calls. That costs $510,000. AI usage adds $25,000 and running costs add $25,000. Cost per resolved issue falls to $7.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/df11af1a-69e9-4ec6-9ec0-7e6094f53c7c.png" alt="Illustrative waterfall chart in thousands of US dollars per month. A pitched saving of 150 falls by 45 for handoffs, 15 for repeat calls, 25 for AI usage, and 25 for running costs, leaving a real saving of 40." style="display:block;margin:0 auto" />

<p>At $40,000 a month, the $200,000 setup pays back in 5 months of steady-state running. Simple first-year ROI is ($480,000 − $200,000) ÷ $200,000, or 140%. A slow ramp-up will lengthen that payback, so model your own ramp.</p>
<p>Now change one assumption at a time, because this is where the decision really gets made:</p>
<table>
<thead>
<tr>
<th>If this changes (illustrative)</th>
<th>Monthly saving</th>
</tr>
</thead>
<tbody><tr>
<td>Base case: AI truly resolves 60% of its calls</td>
<td>$40,000</td>
</tr>
<tr>
<td>True resolution rises to 75%</td>
<td>$62,500</td>
</tr>
<tr>
<td>True resolution falls to 40%</td>
<td>$10,000</td>
</tr>
<tr>
<td>AI usage cost doubles to $1 per minute</td>
<td>$15,000</td>
</tr>
<tr>
<td>Assistance doesn't offset the harder call mix, so handle time reaches 6.6 minutes</td>
<td>$11,000 <strong>extra cost</strong></td>
</tr>
</tbody></table>
<p>Your break-even point is simple to find. Divide monthly running costs and AI usage by your cost per agent-handled call. Here, $50,000 ÷ $6 means AI must truly resolve about 8,333 calls, or one-third of those it answers.</p>
<p>Three cautions keep this honest:</p>
<ul>
<li><strong>Freed time isn't saved money.</strong> The saving only appears when you reduce hiring, overtime, or outsourcing, or when you redeploy agents to work with a measurable return.</li>
<li><strong>AI prices may change.</strong> Gartner's cost forecast is a reason to test the $1 row above, not just your current quote.</li>
<li><strong>Upside exists outside this model.</strong> Shorter queues, fewer abandoned calls, and lower turnover can add value. Gartner analyst Patrick Quinlan says leading adopters will <a href="https://www.customerexperiencedive.com/news/ai-cheaper-than-human-customer-service-gartner/813413/">look beyond cost to lifetime value and loyalty</a>. Add these only when you can measure them.</li>
</ul>
<h3>Questions to ask any AI vendor</h3>
<ul>
<li>How do you define a resolved call, and do you count repeat contacts?</li>
<li>What will we pay per minute, per call, or per resolution, and what happens to that price at renewal?</li>
<li>What does the customer experience when AI hands off, and what information reaches the agent?</li>
<li>Can we run a matched comparison before committing to volume?</li>
<li>How quickly can we move a call type back to agents?</li>
</ul>
<h2>What compliance checks should come first?</h2>
<p>Recordings and transcripts hold personal data, and automated outbound calls face their own rules. Involve your legal team at the measurement stage. This section is a starting point, not legal advice.</p>
<ul>
<li><strong>United States, outbound calls.</strong> In February 2024, the FCC confirmed that <a href="https://docs.fcc.gov/public/attachments/FCC-24-17A1.pdf">AI-generated voices count as "artificial" under the Telephone Consumer Protection Act (TCPA)</a>. Such calls generally need the recipient's prior express consent unless an exemption applies.</li>
<li><strong>Personal data, everywhere.</strong> Data protection laws such as the EU's GDPR expect a clear, specific purpose for processing. Review how your recording, transcription, and AI analysis fit the purposes you told customers about.</li>
<li><strong>If you're in India.</strong> Firms regulated by RBI, SEBI, and PFRDA had <a href="https://www.pib.gov.in/PressReleasePage.aspx?PRID=2191647&amp;reg=48&amp;lang=2">phased deadlines through March 2026</a> to move service and transactional calls to the 1600 series, and a <a href="https://www.pib.gov.in/PressReleasePage.aspx?PRID=2205350&amp;reg=3&amp;lang=1">later direction covers insurers</a>. The DPDP Rules also phase in over an <a href="https://www.pib.gov.in/PressReleasePage.aspx?PRID=2190014&amp;reg=3&amp;lang=2">18-month compliance timeline</a>.</li>
</ul>
<p>Customers notice this too. In the Qualtrics study, <a href="https://www.qualtrics.com/articles/news/ai-powered-customer-service-fails-at-four-times-the-rate-of-other-tasks/">53% feared misuse of their personal data</a> when companies automate interactions with AI. If you're in India, see Vobiz's <a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">India calling regulations</a>.</p>
<h2>How Vobiz supports an AI call center</h2>
<p>Vobiz is the telephony layer, so you can choose your own AI provider, agent tools, and CRM, and connect them through your developers or a partner. Pricing is pay as you go per minute; see the <a href="https://www.vobiz.ai/docs/solutions/contact-centre">contact-centre page</a>.</p>
<table>
<thead>
<tr>
<th>What your rollout needs</th>
<th>How Vobiz supports it</th>
</tr>
</thead>
<tbody><tr>
<td>AI answers calls</td>
<td><a href="https://www.vobiz.ai/docs/audio-streams">Real-time audio streams</a> connect calls to your AI, with <a href="https://www.vobiz.ai/docs/integrations">integrations</a> for platforms such as Vapi, Retell AI, and ElevenLabs</td>
</tr>
<tr>
<td>Smooth handoff to a person</td>
<td>The <a href="https://www.vobiz.ai/docs/call/transfer-call">Transfer Call API</a> moves a live call to an agent, and your application <a href="https://www.vobiz.ai/docs/solutions/agent-to-agent-handoff">passes the context along</a></td>
</tr>
<tr>
<td>Recordings for review</td>
<td><a href="https://www.vobiz.ai/docs/call/record-calls">Record Calls</a> captures audio, with optional automated transcription for supported English calls</td>
</tr>
<tr>
<td>A baseline and repeat-call tracking</td>
<td><a href="https://www.vobiz.ai/docs/cdr">Call detail records</a> include caller, duration, direction, and hangup cause, and they <a href="https://www.vobiz.ai/docs/cdr/export-cdrs">export to CSV</a> for analysis</td>
</tr>
<tr>
<td>Supervisor oversight</td>
<td><a href="https://www.vobiz.ai/docs/solutions/call-escalation">Escalation flows</a> and <a href="https://www.vobiz.ai/docs/conference/members">conference member controls</a> support live monitoring and coaching</td>
</tr>
<tr>
<td>Outbound campaigns</td>
<td><a href="https://www.vobiz.ai/docs/call/machine-detection">Machine detection</a> identifies answering machines on outbound calls</td>
</tr>
</tbody></table>
<p>Calls placed through Vobiz reach real people and are billed. Use your own credentials, and confirm numbers and consent before you launch any live test.</p>
<h2>Frequently asked questions</h2>
<h3>What is call center optimization?</h3>
<p>It is the ongoing work of resolving more customer issues at a lower cost, with less effort for customers and agents. It covers staffing, routing, training, and tools. AI now adds automated answers, live help for agents, automatic call notes, and quality review across every call.</p>
<h3>Will AI replace call center agents?</h3>
<p>Current evidence points to a shift, not a wholesale replacement. In a Gartner survey reported by No Jitter in April 2026, 85% of service leaders were moving agent capacity to higher-value work, while 31% were making or planning AI-related layoffs. Plan for fewer routine calls and harder work for the agents who remain.</p>
<h3>How much can AI reduce call center costs?</h3>
<p>It depends on how many issues AI truly resolves, what AI costs per call, and whether you actually remove capacity. In this guide's illustrative example, the saving is about 7% of monthly cost. Run the same math with your own numbers before you accept a vendor's estimate.</p>
<h3>Which call center metric should AI improve first?</h3>
<p>Start with cost per resolved issue, because it captures both cost and outcome. Read it alongside repeat calls and customer satisfaction. Avoid leading with average handle time, since it can rise when AI removes the easiest calls and leaves agents with harder ones.</p>
<h3>How does an AI contact center determine caller intent?</h3>
<p>The system converts the caller's speech to text, and a language model matches the request to the call reasons you have defined. It then resolves the request, asks a clarifying question, or routes the call. Set a clear fallback to a person for requests it cannot identify confidently.</p>
<h2>Further reading on Vobiz</h2>
<ul>
<li><a href="https://www.vobiz.ai/docs/solutions/contact-centre">Build a contact centre on Vobiz</a></li>
<li><a href="https://www.vobiz.ai/docs/solutions/ai-voice-agent">AI voice agents on Vobiz</a></li>
<li><a href="https://www.vobiz.ai/docs/solutions/agent-to-agent-handoff">Hand calls from AI to human agents</a></li>
<li><a href="https://www.vobiz.ai/docs/solutions/post-call-analytics">Post-call analytics with call records</a></li>
<li><a href="https://www.vobiz.ai/docs/solutions/call-recording">Call recording for quality and compliance</a></li>
<li><a href="https://www.vobiz.ai/docs/blogs/what-is-an-ivr">What is an IVR?</a></li>
</ul>
<h2>Sources</h2>
<ul>
<li>Brynjolfsson, Li, and Raymond, NBER and <em>Quarterly Journal of Economics</em>, <a href="https://www.nber.org/papers/w31161">"Generative AI at Work"</a>.</li>
<li><a href="http://Insurance-Canada.ca">Insurance-Canada.ca</a>, publishing a Gartner release, <a href="https://insurance-canada.ca/2026/08/20/gartner-ai-customer-service-human-agents/">"Customers Want Access to Human Agents From Companies Using GenAI for Customer Service: Gartner"</a>, August 2026.</li>
<li>No Jitter, reporting a Gartner survey, <a href="https://www.nojitter.com/contact-centers/ai-isnt-causing-human-cx-agent-layoffs-gartner-finds">"AI isn't causing human CX agent layoffs, Gartner finds"</a>, April 2026.</li>
<li>Customer Experience Dive, reporting a Gartner prediction, <a href="https://www.customerexperiencedive.com/news/ai-cheaper-than-human-customer-service-gartner/813413/">"Gartner challenges assumption that AI will be cheaper than human support"</a>, March 2026.</li>
<li>CX Today, reporting a Gartner prediction, <a href="https://cxtoday.com/contact-center/agentic-ai-gartner-predicts-80-of-customer-problems-solved-without-human-help-by-2029">"Gartner Predicts that Agentic AI Will Solve 80 Percent of Customer Problems by 2029"</a>, March 2025.</li>
<li>Qualtrics, <a href="https://www.qualtrics.com/articles/news/ai-powered-customer-service-fails-at-four-times-the-rate-of-other-tasks/">"AI-Powered Customer Service Fails at Four Times the Rate of Other Tasks"</a>, October 2025.</li>
<li>Entrepreneur, <a href="https://www.entrepreneur.com/business-news/klarna-ceo-reverses-course-by-hiring-more-humans-not-ai/491396">"Klarna Is Hiring Customer Service Agents After AI Couldn't Cut It on Calls, According to the Company's CEO"</a>, May 2025.</li>
<li>SQM Group, <a href="https://www.sqmgroup.com/resources/library/blog/top-10-call-center-metrics-kpis">"Top 10 Call Center Metrics and KPIs"</a>, December 2021.</li>
<li>Press Information Bureau, Government of India, <a href="https://www.pib.gov.in/PressReleasePage.aspx?PRID=2191647&amp;reg=48&amp;lang=2">"TRAI issues Direction mandating phase-wise adoption of 1600-series by BFSI sector entities"</a>, November 2025.</li>
<li>Press Information Bureau, Government of India, <a href="https://www.pib.gov.in/PressReleasePage.aspx?PRID=2205350&amp;reg=3&amp;lang=1">"TRAI issues Direction mandating adoption of 1600-series by entities regulated by IRDAI"</a>, December 2025.</li>
<li>Press Information Bureau, Government of India, <a href="https://www.pib.gov.in/PressReleasePage.aspx?PRID=2190014&amp;reg=3&amp;lang=2">"Government notifies DPDP Rules to empower citizens and protect privacy"</a>, November 2025.</li>
<li>Federal Communications Commission, <a href="https://docs.fcc.gov/public/attachments/FCC-24-17A1.pdf">Declaratory Ruling FCC 24-17 on AI technologies that generate human voices</a>, February 2024.</li>
</ul>
<p><strong>Talk to sales</strong> — See how Vobiz can power your AI contact centre, book a demo.</p>
<hr />
<p>When some of those calls move to voice AI agents, <a href="https://www.vobiz.ai">Vobiz</a> provides the phone side: SIP trunks and numbers built for AI voice agents.</p>
]]></content:encoded></item><item><title><![CDATA[What Is Answering Machine Detection? Errors, Tuning and Rules]]></title><description><![CDATA[How AMD classifies who picked up an outbound call, which errors cost most, how to test it on your traffic, and how dialler rules count its mistakes.]]></description><link>https://piyuzz.hashnode.dev/what-is-answering-machine-detection-errors-tuning-and-rules</link><guid isPermaLink="true">https://piyuzz.hashnode.dev/what-is-answering-machine-detection-errors-tuning-and-rules</guid><category><![CDATA[Telephony]]></category><category><![CDATA[voip]]></category><category><![CDATA[Machine Learning]]></category><category><![CDATA[Testing]]></category><category><![CDATA[voice ai]]></category><dc:creator><![CDATA[Piyush Sahoo]]></dc:creator><pubDate>Fri, 13 Nov 2026 04:03:30 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/0cbce9df-fe2e-44ae-9ffb-959a8765ee99.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A reference on answering machine detection: how the verdict is made, the two error types and their costs, a testing approach, and how different countries treat abandoned calls.</p>
<p>Answering machine detection (AMD) is a call-analysis feature that listens to the first seconds of an answered outbound call and judges whether a person or a machine picked up. Your application then branches: connect someone, leave a message, or hang up. The verdict is a probability, so wrong answers are part of the design.</p>
<p>This guide explains how detectors decide, why a headline accuracy figure tells you little, and how to measure the error that matters on your own traffic. It also compares the abandoned-call rules in the US, the UK, and India, because each one counts the same mistake differently.</p>
<blockquote>
<p><strong>Note: Key takeaways</strong></p>
<ul>
<li><strong>AMD starts where call signalling stops.</strong> The network tells you a call was answered. Only the audio can suggest who or what answered it.</li>
<li><strong>Accuracy is the wrong first question.</strong> Two detectors can both score 92% while one drops ten times as many people. Ask for the false-machine rate instead.</li>
<li><strong>Background detection doesn't remove the wait.</strong> It starts your call flow at once, but an agent held for the verdict still stays quiet until the verdict arrives.</li>
<li><strong>Phones now answer for people.</strong> iPhone, Pixel, and Truecaller screening can all put a spoken assistant in front of the person you called.</li>
<li><strong>Denominators differ by country.</strong> The US and UK measure abandoned calls against live answers, while India's TRAI measures them against attempted calls.</li>
</ul>
</blockquote>
<h2>What does answering machine detection decide?</h2>
<p>AMD answers one narrow question after a call connects: is this a person? Ringing, busy, and no-answer are different outcomes, and they arrive as <a href="https://www.vobiz.ai/docs/concepts/hangup-causes">call progress and hangup signals</a>. A voicemail system looks like an ordinary answer to the network, so the detector has to work from sound.</p>
<p>Result labels vary by product. Typical results cover a person, a machine, a fax, or an unknown answer, and some say how a greeting ended. Three common uses follow from that verdict:</p>
<ul>
<li><strong>Protect agent time.</strong> Connect only answered humans to a live agent.</li>
<li><strong>Protect AI spend.</strong> Keep a <a href="https://www.vobiz.ai/docs/integrations">voice AI agent</a> from talking to a recording.</li>
<li><strong>Deliver a message.</strong> Wait for the greeting to end, then leave a voicemail.</li>
</ul>
<p>How often a machine answers depends on your traffic, so measure it on your own calls.</p>
<h2>How does a detector tell a person from a machine?</h2>
<p>Most detectors weigh a few signals in the opening seconds. People tend to say something short and wait for a reply. Recordings tend to keep talking because nothing is listening.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/e115e66b-8c83-4e60-8843-b978f7301ec1.png" alt="Illustrative timelines of five answers over eight seconds: a person's short hello, a person's long hello, a person who waits three seconds, a long voicemail greeting ending in a beep, and a phone call screener's spoken prompt. A duration rule reads the long hello and the screener as machines." style="display:block;margin:0 auto" />

<table>
<thead>
<tr>
<th>Signal</th>
<th>What it measures</th>
<th>Where it fails</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Speech length</strong></td>
<td>How long the first utterance runs</td>
<td>A person who answers with a full sentence</td>
</tr>
<tr>
<td><strong>Silence after speech</strong></td>
<td>Whether the speaker stops to wait for you</td>
<td>A short recording that pauses like a person</td>
</tr>
<tr>
<td><strong>Silence before speech</strong></td>
<td>How long nothing happens after answer</td>
<td>A person who doesn't say hello straight away</td>
</tr>
<tr>
<td><strong>Word count</strong></td>
<td>How many separate words arrive. <a href="https://docs.asterisk.org/Latest_API/API_Documentation/Dialplan_Applications/AMD/">Asterisk's AMD application</a> calls a greeting a machine past a set maximum</td>
<td>A chatty person, or background talk</td>
</tr>
<tr>
<td><strong>Tones</strong></td>
<td>Beeps, fax tones, and network tones</td>
<td>Beeps that vary between systems and countries</td>
</tr>
<tr>
<td><strong>Words or sound patterns</strong></td>
<td>Voicemail phrases, or a trained acoustic model</td>
<td>Languages the model or transcription doesn't cover</td>
</tr>
</tbody></table>
<p>The last row matters for multilingual traffic, such as calls in India. A transcript-based check can only match phrases in languages its speech recognition handles. A timing rule ignores language, but it still assumes people everywhere greet at a similar length. Neither assumption should ship without a test on your own audience.</p>
<h2>Why does a 92% accurate detector still fail?</h2>
<p>Accuracy blends two different mistakes into one number, and those mistakes have very different costs.</p>
<ul>
<li><strong>False machine.</strong> A person is classified as a machine. You hang up on them or play them a recording.</li>
<li><strong>False human.</strong> A machine is classified as a person. An agent or AI talks to a recording until someone notices.</li>
</ul>
<p>The chart shows two invented detectors on the same traffic. Both are right on 920 of 1,000 answered calls.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/a991924e-686e-49a0-9ded-446f3315580b.png" alt="Bar chart of two illustrative detectors at 92 percent accuracy on 1,000 answered calls with 250 people and 750 machines. Detector A drops 5 people and passes on 75 machines. Detector B drops 50 people and passes on 30 machines." style="display:block;margin:0 auto" />

<p>Detector A wastes more agent time. Detector B discards 50 of the 250 people you worked to reach. When machines dominate a list, a detector can also look strong simply by leaning toward "machine". On this traffic, one that always says "machine" scores 75% and never reaches a person.</p>
<p>Published figures don't settle the question, because the conditions differ. Vendors quote numbers from different traffic, and most are self-reported, so don't rank products on them.</p>
<h2>Does background detection remove the wait?</h2>
<p>Only part of it. Detection needs audio from the answered call, which often takes a few seconds. Very short timeouts tend to hurt accuracy. The design choice is what the person hears during that time.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/2e65536c-dc47-49c7-9c92-67e9112deb4e.png" alt="Three illustrative timelines with a verdict at about four seconds. Blocking detection leaves silence until the call flow starts. Background detection with an immediate agent greeting fills the audio sample with the agent's voice. Background detection with a held agent runs a wait or hold audio until the agent greets at the verdict." style="display:block;margin:0 auto" />

<ul>
<li><strong>Blocking detection</strong> suits flows with no live conversation, because the branch is simple and nobody is waiting to talk.</li>
<li><strong>Background detection with an immediate greeting</strong> sounds fast, but it damages the sample. The person answers over the agent, and the classifier loses the "hello, then pause" shape it depends on.</li>
<li><strong>Background detection with a held agent</strong> is usually the right design for voice AI. You still pay for the verdict in seconds, so size the timers deliberately and add a fallback.</li>
</ul>
<p>A fallback covers the case where no verdict arrives in time. If the choice is between a person left on hold and an agent talking to voicemail, the person on hold is usually the worse outcome. Let the agent start.</p>
<h2>What changed when phones began answering for people?</h2>
<p>Some "machines" are now assistants with a person behind them. That breaks the old assumption that a machine answer means nobody is there.</p>
<table>
<thead>
<tr>
<th>Screening service</th>
<th>What happens on the call</th>
<th>Availability when we checked</th>
</tr>
</thead>
<tbody><tr>
<td><strong>iPhone Call Screening</strong></td>
<td>iOS answers and asks the caller for a name and reason, then the owner decides</td>
<td>Apple <a href="https://www.apple.com/ios/feature-availability/">lists English (India)</a> for the feature</td>
</tr>
<tr>
<td><strong>Pixel Call Screen</strong></td>
<td>The phone asks who is calling and why before the owner picks up</td>
<td>Google <a href="https://support.google.com/phoneapp/answer/9118387">lists manual screening in India</a> on Pixel 10 and Pixel 11 models</td>
</tr>
<tr>
<td><strong>Truecaller Assistant</strong></td>
<td>An AI assistant answers and transcribes the caller</td>
<td><a href="https://www.gsmarena.com/truecaller_assistant_india_launch_price_details-news-59245.php">Launched in India in July 2023</a> in English, Hindi, and Hinglish. We couldn't confirm the current language list</td>
</tr>
<tr>
<td><strong>Truecaller voicemail</strong></td>
<td>Unanswered calls forward to an app-based voicemail</td>
<td><a href="https://www.businesstoday.in/technology/news/story/truecaller-launches-free-ai-powered-voicemail-for-android-with-12-indian-languages-507367-2025-12-19">Launched for Android in India in December 2025</a>, with transcription in 12 Indian languages</td>
</tr>
</tbody></table>
<p>A screening prompt is long, continuous speech, so a duration rule tends to call it a machine. The person may join seconds later, which is why an automatic hang-up on that verdict can lose a real contact.</p>
<p>We found no reliable public figure for how many calls reach voicemail or a screener in most markets. Don't import a US voicemail rate into another country's campaign plan. Measure it on a labelled sample, as described below.</p>
<h2>How do you measure AMD on your own calls?</h2>
<p>You can't find false machines by reading AMD results alone. <a href="https://www.ofcom.org.uk/siteassets/resources/documents/consultations/uncategorised/8265-silent-calls/associated-documents/tackling-abandoned-and-silent-calls-statement.pdf?v=321902">Ofcom made this point in 2010</a>: the equipment can't identify its own false positive as a call picked up by a live person. So you need to hear what happened after the verdict.</p>
<ol>
<li><strong>Keep the call open.</strong> Run a small test where a machine verdict doesn't end the call, so the audio after the verdict still exists.</li>
<li><strong>Record lawfully.</strong> Follow your consent and retention duties. <a href="https://www.vobiz.ai/docs/blogs/call-recording-apis-compliant-pipelines">Compliant call recording pipelines</a> covers the design.</li>
<li><strong>Label by listening.</strong> Mark each call as person, voicemail, screener, or network announcement, without looking at the verdict.</li>
<li><strong>Split the results.</strong> Report by country, operator, language, device group, and time of day where you can. Tuning on a handful of devices can mislead you once you deploy widely.</li>
<li><strong>Tune one timer at a time.</strong> Then repeat the test, because a change that saves people can let more machines through.</li>
</ol>
<p>Plan for enough live answers. If you label 300 and find 6 false machines, the rate is 2%, but the 95% Wilson interval runs from about 0.9% to 4.3%. That sample can't show you're under a 3% limit.</p>
<p>These are real calls to real people, and they cost money. Use your own Auth ID and Auth Token, confirm your list and consent, and start small.</p>
<h2>Which AMD setup fits your campaign?</h2>
<p>Start from what should change when a machine answers. Sometimes nothing should, and then AMD only adds a wait and a way to fail.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/f5d3f04a-8cc3-4f68-b812-eae59ff666c9.png" alt="Decision map from the question of what should happen if a machine answers. Nothing different: skip AMD and play the same short message. Don't spend a seat: use the fast verdict for live agents with a target for dropped people. Don't start the bot: hold the AI agent until the verdict. Leave a message: wait for the greeting to finish. Costly calls should never be auto-dropped on the verdict alone." style="display:block;margin:0 auto" />

<p>Two checks apply to every branch. Decide who owns a late or missing verdict, and decide what your dialler does next. <a href="https://www.ofcom.org.uk/siteassets/resources/documents/consultations/category-1-10-weeks/7837-review-of-how-we-use-persistent-misuse-powers/summary/persistent-misuse-policy-statement.pdf?v=410974">Ofcom's current policy</a> treats a repeat silent or abandoned call within 72 hours as an aggravating factor, unless a live agent was guaranteed. A false machine verdict looks like voicemail in your logs, so guaranteeing an agent on the retry is a sensible habit anywhere.</p>
<h2>How do regulators treat AMD mistakes?</h2>
<p>Regulators mostly don't regulate the detector. They regulate what happens to the person who answered, and a false machine can count against you. Rules change often, so confirm the current text and take legal advice for your campaign.</p>
<table>
<thead>
<tr>
<th></th>
<th>India (TRAI)</th>
<th>US (FCC and FTC)</th>
<th>UK (Ofcom)</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Abandoned call</strong></td>
<td><a href="https://trai.gov.in/sites/default/files/2025-01/RegulationUcc19072018.pdf">Not connected to a live agent</a> after the recipient answers</td>
<td><a href="https://www.law.cornell.edu/cfr/text/47/64.1200">Not connected to a live sales representative</a> within two seconds of the completed greeting</td>
<td><a href="https://www.ofcom.org.uk/siteassets/resources/documents/consultations/category-1-10-weeks/7837-review-of-how-we-use-persistent-misuse-powers/summary/persistent-misuse-policy-statement.pdf?v=410974">The person answers and hears a message</a> instead of an agent</td>
</tr>
<tr>
<td><strong>Limit</strong></td>
<td>Reporting criterion: above 3%</td>
<td>3% for telemarketing</td>
<td>No specific rate in the policy, though Ofcom may weigh the rate when prioritising cases</td>
</tr>
<tr>
<td><strong>Measured against</strong></td>
<td>Total attempted calls</td>
<td>Calls answered live by a person</td>
<td>Calls connected to a live person</td>
</tr>
<tr>
<td><strong>Period</strong></td>
<td>24 hours</td>
<td>30 days per campaign</td>
<td>Calendar day</td>
</tr>
<tr>
<td><strong>AMD false positives</strong></td>
<td>Not mentioned in the text we read</td>
<td>Not named, though a dropped person appears to fit the definition</td>
<td>Named as a cause of silent calls, and Ofcom may ask for evidence of AMD accuracy</td>
</tr>
</tbody></table>
<h3>The denominator changes your result</h3>
<p>Take 1,000 attempts that reach 300 live people, with a detector that drops 5% of them. That is 15 people, and nothing else goes wrong.</p>
<ul>
<li><strong>Against live answers,</strong> as in the US rule and Ofcom's formula, the rate is 5%. That is above the US limit of 3%.</li>
<li><strong>Against attempted calls,</strong> as in TRAI's 2018 criterion, the rate is 1.5%, which is below 3%.</li>
</ul>
<p>Don't treat the second number as a safe margin. It only shows that a figure from one country can't be read across to another.</p>
<p>If you're in India, TRAI's <a href="https://trai.gov.in/sites/default/files/2025-01/RegulationUcc19072018.pdf">2018 regulations</a> set that attempts-based 3% criterion, and its <a href="https://www.trai.gov.in/sites/default/files/2026-09/Regulation_18092026.pdf">Third Amendment</a> adds advance declaration of A2P calls, including those that connect live agents. Its definition says "live agent", so a recorded message or an AI agent may not satisfy it. Vobiz's <a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">India calling regulations</a>, <a href="https://www.vobiz.ai/docs/compliance/india/ucc">UCC guide</a>, and <a href="https://www.vobiz.ai/docs/best-practices/140-160-acquisition">140 and 160 series guide</a> cover the wider requirements.</p>
<p>The UK shows how this debate moved. In its <a href="https://www.ofcom.org.uk/siteassets/resources/documents/consultations/uncategorised/8481-persistent_misuse/statement/misuse_statement.pdf?v=333937">2008 statement</a>, Ofcom worked through a scenario where a 3% false positive rate on machine verdicts, added to a 2% base of abandoned calls, produced a rate of 4.85%. Its <a href="https://www.ofcom.org.uk/siteassets/resources/documents/consultations/category-1-10-weeks/7837-review-of-how-we-use-persistent-misuse-powers/summary/persistent-misuse-policy-statement.pdf?v=410974">current policy</a>, in force since March 2017, names no specific rate and says the old 3% figure was never a safe harbour. A call with no message counts as a silent call, which sits outside the rate formula, and the policy names AMD as one cause. Ofcom's <a href="https://www.ofcom.org.uk/phones-and-broadband/unwanted-calls-and-messages/refresher-messaging-on-silent-and-abandoned-calls">January 2026 reminder</a> says it can still act on these calls, with penalties of up to £2 million.</p>
<h3>US: a two-second clock, under review</h3>
<p><a href="https://www.law.cornell.edu/cfr/text/47/64.1200">47 CFR 64.1200(a)(7)</a> and the FTC's <a href="https://www.law.cornell.edu/cfr/text/16/310.4">16 CFR 310.4(b)(1)(iv)</a> both start the clock at the person's completed greeting. A detector that waits for silence spends that time first.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/58b95e11-773f-4892-aa5d-00e058088af8.png" alt="Bar chart of the US two-second limit after a completed greeting, with three illustrative settings. Waiting for 700 milliseconds of silence leaves 1,300 milliseconds. Waiting for 1,200 milliseconds leaves 800. Waiting for 2,000 milliseconds leaves nothing." style="display:block;margin:0 auto" />

<p>The chart shows illustrative detector settings, not measured verdict times. The remainder still has to cover your webhook (callback) round trip and the agent connection.</p>
<p>The FCC has <a href="https://www.govinfo.gov/content/pkg/FR-2025-12-05/pdf/2025-22130.pdf">proposed deleting its abandonment limits</a> in a notice published in December 2025. <a href="https://www.kelleydrye.com/viewpoints/blogs/ad-law-access/look-whos-calling-fcc-includes-proposals-to-roll-back-several-tcpa-rules-as-part-of-call-branding-initiative">Kelley Drye's summary</a> covers the proposal. We found no final order as of 3 November 2026, and the FTC's separate rule isn't part of that FCC proposal.</p>
<h2>How Vobiz handles AMD</h2>
<p><a href="https://www.vobiz.ai/docs/call/machine-detection">Vobiz machine detection</a> is a set of parameters on the <a href="https://www.vobiz.ai/docs/call/make-call">Make Call API</a>, not a separate endpoint. It applies to outbound calls placed through that API.</p>
<table>
<thead>
<tr>
<th>Vobiz parameter</th>
<th>What it controls</th>
<th>Default</th>
<th>Range</th>
</tr>
</thead>
<tbody><tr>
<td>machine_detection</td>
<td>true continues the call, and hangup ends it on a machine verdict</td>
<td>Optional</td>
<td>true, hangup</td>
</tr>
<tr>
<td>machine_detection_time</td>
<td>Time spent analysing audio</td>
<td>5,000 ms</td>
<td>2,000 to 10,000 ms</td>
</tr>
<tr>
<td>machine_detection_initial_silence</td>
<td>Maximum silence after answer</td>
<td>4,500 ms</td>
<td>2,000 to 10,000 ms</td>
</tr>
<tr>
<td>machine_detection_initial_greeting</td>
<td>Maximum greeting length</td>
<td>1,500 ms</td>
<td>1,000 to 5,000 ms</td>
</tr>
<tr>
<td>machine_detection_maximum_speech_length</td>
<td>Maximum speech duration</td>
<td>5,000 ms</td>
<td>1,000 to 6,000 ms</td>
</tr>
<tr>
<td>machine_detection_maximum_words</td>
<td>Maximum sentences in the greeting</td>
<td>3</td>
<td>2 to 10</td>
</tr>
</tbody></table>
<ul>
<li><strong>Background results.</strong> Set machine_detection_url and optionally machine_detection_method, and Vobiz sends webhooks (callbacks) with the result. The payload includes Machine, IfMachine, CallUUID, and an Event of MachineDetection.</li>
<li><strong>Reporting.</strong> A call ended by machine_detection set to hangup closes with <a href="https://www.vobiz.ai/docs/concepts/hangup-causes">hangup cause 9100, Machine Detected</a>, which separates it from other outcomes in your data.</li>
<li><strong>Greeting-end timing.</strong> In <a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">VobizXML</a>, <a href="https://www.vobiz.ai/docs/xml/wait/machine-detection">Wait with silence</a> moves on once a greeting stops, and beep waits for a <a href="https://www.vobiz.ai/docs/xml/wait/beep-detection">voicemail beep</a>. The two are mutually exclusive, and the docs describe both as best-effort, so pair them with a fallback.</li>
<li><strong>AI agents.</strong> <a href="https://www.vobiz.ai/docs/call/machine-detection#tuning-for-ai-voice-agents">Tuning for AI voice agents</a> gives balanced, high-accuracy, and low-latency starting profiles. It also gives the gating steps: hold the agent, branch on Machine, and treat a late callback as a human.</li>
<li><strong>Working example.</strong> The <a href="https://www.vobiz.ai/docs/examples/livekit-vobiz-machine-detection-agent-example">LiveKit AMD agent</a> classifies the pickup before the conversation starts, and leaves a recorded message on voicemail.</li>
<li><strong>Audio for agents.</strong> <a href="https://www.vobiz.ai/docs/audio-streams">Audio streams</a> and <a href="https://www.vobiz.ai/docs/concepts/streaming-websockets">WebSocket streaming</a> connect call audio to your agent. Vobiz also has <a href="https://www.vobiz.ai/docs/integrations/vapi-dashboard">Vapi</a> and <a href="https://www.vobiz.ai/docs/integrations/livekit">LiveKit</a> integration guides.</li>
<li><strong>Campaign sizing.</strong> Model channel needs in the <a href="https://www.vobiz.ai/docs/resources/calculator">CPS and concurrency calculator</a>. The <a href="https://www.vobiz.ai/docs/best-practices/outbound-campaign-manager">outbound campaign guide</a> covers running at volume.</li>
</ul>
<p>Calls placed with these settings are real and billed to your account. See the <a href="https://www.vobiz.ai/pricing/">Vobiz pricing page</a> for current rates, and confirm numbers and consent before you run a test.</p>
<h2>Frequently asked questions</h2>
<h3>What does answering machine detection do?</h3>
<p>It listens to the first seconds of an answered outbound call and judges whether a person or a machine picked up. Your application then acts on that verdict. It might connect an agent, start an AI agent, leave a message, or end the call.</p>
<h3>How accurate is AMD?</h3>
<p>Published figures vary widely, but vendors measure them differently and most are self-reported. A single accuracy number also hides which mistakes occur. Measure how many live people your setup wrongly marks as machines, using your own destinations and call types.</p>
<h3>What is an AMD false positive?</h3>
<p>It usually means a live person was classified as a machine. The call may be dropped or sent a recording, so this is normally the costliest error. The opposite error, often called a false negative, sends a machine to your agent or AI.</p>
<h3>Does AMD add delay to a call?</h3>
<p>Yes. The detector needs audio before it can decide, which often takes a few seconds. Running detection in the background lets your call flow start immediately, but an agent held for the verdict still waits.</p>
<h3>Can AMD recognise call screening assistants?</h3>
<p>Sometimes, but a duration rule can read a spoken screening prompt as a voicemail greeting, even though a person may join moments later. Test screened calls separately, and treat a machine verdict on them as uncertain until you have measured it.</p>
<h3>Is answering machine detection legal?</h3>
<p>We found no rule that bans AMD itself. The rules govern the calls around it, such as the US two-second abandonment clock and abandoned-call limits elsewhere. If you're in India, TRAI also requires advance notice of auto dialler use and an A2P declaration. Confirm the current text and take legal advice for your campaign.</p>
<h2>Further reading on Vobiz</h2>
<ul>
<li><a href="https://www.vobiz.ai/docs/blogs/automated-calling-answering-machine-detection">Scaling outbound: automated calling and AMD</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-a-voice-api">What is a voice API?</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-a-call-leg">What is a call leg?</a></li>
<li><a href="https://www.vobiz.ai/docs/call/machine-detection">Machine detection reference</a> · <a href="https://www.vobiz.ai/docs/call/make-call">Make Call API</a> · <a href="https://www.vobiz.ai/docs/xml/wait">Wait reference</a></li>
<li><a href="https://www.vobiz.ai/docs/solutions/automated-outbound-calling">Automated outbound calling</a> · <a href="https://www.vobiz.ai/docs/platform/campaigns/list">Campaigns</a> · <a href="https://www.vobiz.ai/docs/best-practices/dlt-registration">DLT registration</a></li>
</ul>
<h2>Sources</h2>
<p><strong>Regulators and law</strong></p>
<ul>
<li>TRAI, <a href="https://trai.gov.in/sites/default/files/2025-01/RegulationUcc19072018.pdf">Telecom Commercial Communications Customer Preference Regulations, 2018</a>, July 2018.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2026-09/Regulation_18092026.pdf">Third Amendment Regulations, 2026</a>, 18 September 2026.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2026-09/PR_No119of2026.pdf">Press release 119/2026</a>, 18 September 2026.</li>
<li>Cornell Legal Information Institute, <a href="https://www.law.cornell.edu/cfr/text/47/64.1200">47 CFR 64.1200</a> and <a href="https://www.law.cornell.edu/cfr/text/16/310.4">16 CFR 310.4</a>, read November 2026.</li>
<li>Federal Register, <a href="https://www.govinfo.gov/content/pkg/FR-2025-12-05/pdf/2025-22130.pdf">FCC proposed rules on call branding and TCPA provisions</a>, 5 December 2025.</li>
<li>Ofcom, <a href="https://www.ofcom.org.uk/siteassets/resources/documents/consultations/category-1-10-weeks/7837-review-of-how-we-use-persistent-misuse-powers/summary/persistent-misuse-policy-statement.pdf?v=410974">Persistent misuse: statement of general policy</a>, December 2016, applying from 1 March 2017.</li>
<li>Ofcom, <a href="https://www.ofcom.org.uk/phones-and-broadband/unwanted-calls-and-messages/refresher-messaging-on-silent-and-abandoned-calls">Refresher messaging on silent and abandoned calls</a>, January 2026.</li>
<li>Ofcom, <a href="https://www.ofcom.org.uk/siteassets/resources/documents/consultations/uncategorised/8481-persistent_misuse/statement/misuse_statement.pdf?v=333937">Revised statement of policy on persistent misuse</a>, September 2008. Historical.</li>
<li>Ofcom, <a href="https://www.ofcom.org.uk/siteassets/resources/documents/consultations/uncategorised/8265-silent-calls/associated-documents/tackling-abandoned-and-silent-calls-statement.pdf?v=321902">Tackling abandoned and silent calls: statement</a>, October 2010. Historical.</li>
</ul>
<p><strong>Product documentation (read November 2026)</strong></p>
<ul>
<li>Asterisk, <a href="https://docs.asterisk.org/Latest_API/API_Documentation/Dialplan_Applications/AMD/">AMD dialplan application</a>.</li>
<li>Apple, <a href="https://www.apple.com/ios/feature-availability/">iOS feature availability</a>.</li>
<li>Google, <a href="https://support.google.com/phoneapp/answer/9118387">Screen your calls before you answer them</a>.</li>
</ul>
<p><strong>News and legal commentary</strong></p>
<ul>
<li>GSMArena, <a href="https://www.gsmarena.com/truecaller_assistant_india_launch_price_details-news-59245.php">Truecaller Assistant launches in India for Android users</a>, July 2023.</li>
<li>Business Today, <a href="https://www.businesstoday.in/technology/news/story/truecaller-launches-free-ai-powered-voicemail-for-android-with-12-indian-languages-507367-2025-12-19">Truecaller launches free AI-powered voicemail for Android</a>, December 2025.</li>
<li>Kelley Drye, <a href="https://www.kelleydrye.com/viewpoints/blogs/ad-law-access/look-whos-calling-fcc-includes-proposals-to-roll-back-several-tcpa-rules-as-part-of-call-branding-initiative">FCC includes proposals to roll back several TCPA rules</a>, November 2025.</li>
</ul>
<p><strong>Build outbound on Vobiz</strong> — Provision a number and test machine detection on your own outbound calls.</p>
<hr />
<p>If a voice AI agent is placing those outbound calls, <a href="https://www.vobiz.ai">Vobiz</a> provides the telephony layer: SIP trunks, numbers and a voice API built for AI agents.</p>
]]></content:encoded></item><item><title><![CDATA[What Is Cloud Telephony? How It Works and the Rules That Apply]]></title><description><![CDATA[One call through the stack, the products sold under the name, media location and the rules that apply]]></description><link>https://piyuzz.hashnode.dev/what-is-cloud-telephony</link><guid isPermaLink="true">https://piyuzz.hashnode.dev/what-is-cloud-telephony</guid><category><![CDATA[Telephony]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[voip]]></category><category><![CDATA[sip trunking]]></category><dc:creator><![CDATA[Piyush Sahoo]]></dc:creator><pubDate>Thu, 12 Nov 2026 16:06:50 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/738bfba5-5138-4e4f-9b64-40cfd3c448c3.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A reference on cloud telephony: how a call flows through a provider's stack, how the product models differ, how media location affects delay, and the rules that apply, each linked to its source.</p>
<p>Cloud telephony is a business phone service whose switching, call logic, and media processing run on a provider's servers instead of hardware at your site. Calls still reach ordinary phones through telecom operators. You manage everything through a console or API, and you pay by usage or per seat rather than buying a PBX.</p>
<p>This guide follows one call through the stack, separates the products sold under this name, works out what media location does to delay, and maps the rules that apply, each linked to its source.</p>
<blockquote>
<p><strong>Note: Key takeaways</strong></p>
<ul>
<li><strong>Cloud telephony moves the switch, not the phone network.</strong> Your calls still cross operator networks, so numbers, caller ID, and telecom rules all still apply.</li>
<li><strong>The name covers several products.</strong> Hosted PBX, contact centre software, voice APIs, and SIP trunks leave very different work with your team.</li>
<li><strong>Media location sets delay.</strong> In our illustrative example, sending Frankfurt-to-Frankfurt audio through Virginia lifts one-way delay from about 91 ms to about 175 ms.</li>
<li><strong>Your own application becomes part of the call path.</strong> On a programmable service, a slow webhook (callback) means silence for the caller.</li>
<li><strong>Telecom rules still apply.</strong> Authorisation, number series, automated-call rules, and data laws vary by country, and several changed in 2026.</li>
</ul>
</blockquote>
<h2>What is cloud telephony?</h2>
<p>Cloud telephony means renting the brain of a phone system as a service. The provider runs the software that decides where each call goes, and you reach that software through a browser or an API.</p>
<p>Something else stays exactly as it was. A customer calling your number from a mobile phone still uses their operator's network, and the provider connects to that network at its edge. Only the part that used to sit in your server room has moved.</p>
<p>The term is loose, and sources use it differently. <a href="https://www.techtarget.com/news/cloud-telephony-cloud-calling/850354/">TechTarget</a> files it under unified communications as a service and separates shared multi-tenant platforms from dedicated hosted setups. Vendors in markets such as India often frame it around virtual numbers, call flows, APIs, and a dashboard. Both are describing real products, so ask which one a vendor means before you compare prices.</p>
<h2>How does a cloud telephony call work?</h2>
<p>Every call runs on two separate tracks. <a href="https://www.vobiz.ai/docs/blogs/what-is-sip">SIP</a> and your application decide what should happen, and <a href="https://www.rfc-editor.org/rfc/rfc3550.html">RTP</a> carries the sound. The diagram follows one inbound call, and the steps below match its numbers.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/713ce721-0cb1-4c34-a508-1aea03fb85cf.png" alt="Diagram of one inbound call. Signalling runs from the caller through the operator network to the provider's edge and call control, which exchanges instructions with your application. Audio runs separately from the operator through a media server to an agent or AI. After the call, a call record goes to your application as a hangup webhook." style="display:block;margin:0 auto" />

<ol>
<li><strong>The caller dials your number.</strong> Your <a href="https://www.vobiz.ai/docs/blogs/what-is-a-did-number">DID</a> routes to the provider, so the operator network hands the call to the provider's interconnect.</li>
<li><strong>The edge admits it.</strong> A session border controller sits between the outside network and the provider's core. <a href="https://www.rfc-editor.org/rfc/rfc5853.html">RFC 5853</a> catalogues the jobs these devices do, including topology hiding and NAT traversal.</li>
<li><strong>Call control decides.</strong> It looks up what your number should do. A hosted product runs a flow you built in its dashboard. A programmable service sends a webhook (callback) to your server and waits for instructions.</li>
<li><strong>The media server handles audio.</strong> It plays prompts, collects keypresses, records, and can copy audio to another system.</li>
<li><strong>A second leg connects the other party.</strong> That can be a mobile number, a softphone, a browser, or an AI agent. Each adds a <a href="https://www.vobiz.ai/docs/blogs/what-is-a-call-leg">call leg</a> with its own state.</li>
<li><strong>The call ends and leaves a record.</strong> The provider writes a call record with duration, hangup cause, and quality data, and then notifies your application.</li>
</ol>
<p>An outbound call runs the same stack in reverse: your API request or dialler starts at call control, and the operator network delivers the call last.</p>
<h3>What this design adds to your failure list</h3>
<p>A PBX in your building fails in familiar ways. A cloud stack adds an HTTP dependency and a longer audio path, so each stage has its own signature:</p>
<table>
<thead>
<tr>
<th>Stage</th>
<th>Depends on</th>
<th>What the caller notices when it fails</th>
</tr>
</thead>
<tbody><tr>
<td>Operator to provider</td>
<td>Interconnect and number routing</td>
<td>The call never connects, or the caller hears a network message</td>
</tr>
<tr>
<td>Provider to your application</td>
<td>Your server's reachability and response time</td>
<td>Silence after answer, or the call drops</td>
</tr>
<tr>
<td>Media path</td>
<td>Packet loss, jitter, and distance</td>
<td>Clipped words, one-way audio, or people talking over each other</td>
</tr>
<tr>
<td>Agent leg</td>
<td>The agent's network or mobile coverage</td>
<td>The caller waits, or the transfer fails</td>
</tr>
<tr>
<td>Capacity</td>
<td>Concurrent-call and calls-per-second limits</td>
<td>A busy tone, or a campaign that runs slowly</td>
</tr>
</tbody></table>
<h2>Which products count as cloud telephony?</h2>
<p>Four product families use the label, and each one divides the work differently. The first column in this matrix is the on-site PBX they replace or connect to.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/d669ab0f-7a79-40b0-b4cf-cfb1658fbc00.png" alt="Matrix of five models against five layers. On-site PBX: you run everything except PSTN access. SIP trunk with your PBX: the provider supplies PSTN access, you run switching, logic, and the agent interface, and you set capacity. Hosted PBX and contact centre: the provider runs everything and you set call logic. Voice API: the provider runs access, switching, and capacity, while you run call logic and the agent interface." style="display:block;margin:0 auto" />

<ul>
<li><strong>Hosted PBX (UCaaS)</strong> replaces office extensions, usually with desk phones or softphone apps, and often bundles chat and video.</li>
<li><strong>Contact centre software (CCaaS)</strong> adds queues, agent desktops, supervisor views, and reporting, so your team can start without building anything.</li>
<li><strong>A</strong> <a href="https://www.vobiz.ai/docs/blogs/what-is-a-voice-api"><strong>voice API</strong></a> <strong>(CPaaS)</strong> gives you numbers, call control, and media as building blocks. You write the logic and the interface.</li>
<li><a href="https://www.vobiz.ai/docs/blogs/what-is-sip-trunking"><strong>SIP trunking</strong></a> supplies only the carrier connection. Your PBX or AI stack stays in charge of the call.</li>
</ul>
<p>The billing model tends to follow the split. <a href="https://www.retellai.com/blog/cloud-telephony">Retell's guide</a> describes per-user monthly subscriptions, while other services bill pay-as-you-go. As a rule of thumb, seat pricing grows with headcount and usage pricing grows with minutes, so model both against your own traffic.</p>
<h2>How does cloud telephony differ from VoIP, PBX, SIP, and IVR?</h2>
<p>These terms get compared as rivals, yet they answer different questions. Cloud telephony describes where the system runs, and the others describe a technology, a function, or a feature.</p>
<table>
<thead>
<tr>
<th>Term</th>
<th>What kind of thing it is</th>
<th>How it relates to cloud telephony</th>
</tr>
</thead>
<tbody><tr>
<td><a href="https://www.vobiz.ai/docs/blogs/what-is-voip"><strong>VoIP</strong></a></td>
<td>A way to carry voice as IP packets</td>
<td>Almost always used inside it, though <a href="https://www.techtarget.com/news/cloud-telephony-cloud-calling/850354/">VoIP can also run on-site</a></td>
</tr>
<tr>
<td><a href="https://www.vobiz.ai/docs/blogs/what-is-sip"><strong>SIP</strong></a></td>
<td>A signalling protocol</td>
<td>One common way to set up its calls</td>
</tr>
<tr>
<td><strong>SIP trunk</strong></td>
<td>A carrier connection</td>
<td>One of the products sold under the label</td>
</tr>
<tr>
<td><strong>PBX</strong></td>
<td>The function of switching calls inside an organisation</td>
<td>Runs at your site, or in the cloud as a hosted PBX</td>
</tr>
<tr>
<td><a href="https://www.vobiz.ai/docs/blogs/what-is-an-ivr"><strong>IVR</strong></a></td>
<td>A menu feature on a call</td>
<td>A feature that usually runs on the provider's media servers</td>
</tr>
<tr>
<td><strong>Cloud telephony</strong></td>
<td>A delivery model</td>
<td>The umbrella over the products above</td>
</tr>
</tbody></table>
<p>So "VoIP or cloud telephony?" is rarely the real choice. The useful question is which layers you want to run yourself.</p>
<h2>Which cloud telephony model should you choose?</h2>
<p>Start from what you already own and who drives the calls. The map below handles most cases in three questions.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/15ad6f9f-cecd-47a0-9324-197279bbd697.png" alt="Decision map. If you are keeping a PBX you already run, choose a SIP trunk. Otherwise, if software or an AI agent drives the calls, choose a voice API, or a SIP trunk if your AI stack speaks SIP. Otherwise, if agents need queues and a ready-made desktop now, choose contact centre software. Otherwise choose a hosted PBX." style="display:block;margin:0 auto" />

<p>Three situations deserve a second look:</p>
<ul>
<li><strong>You need a contact centre with unusual routing.</strong> Ready-made software suits standard flows. Once your routing depends on your own data, a <a href="https://www.vobiz.ai/docs/solutions/contact-centre">custom contact centre on an API</a> may fit better, at the cost of building the agent interface.</li>
<li><strong>You are building voice AI.</strong> Your AI platform often decides this for you. <a href="https://www.vobiz.ai/docs/concepts/sip-vs-websockets">SIP or WebSocket streaming</a> each suit different stacks, so check what your platform supports first.</li>
<li><strong>You are migrating in stages.</strong> <a href="https://www.techtarget.com/news/cloud-telephony-cloud-calling/850354/">Some organisations run hybrid setups</a> during a longer cloud migration. A SIP trunk lets you keep a PBX while you move teams across one at a time.</li>
</ul>
<h2>Where should the media run?</h2>
<p>Distance matters more on a phone call than on most web traffic, because neither person can wait for a retransmission. <a href="https://www.itu.int/rec/dologin_pub.asp?lang=e&amp;id=T-REC-G.114-200305-I!!PDF-E&amp;type=items">ITU-T G.114</a>, a 2003 Recommendation <a href="https://www.itu.int/rec/T-REC-G.114">still listed as in force</a>, says most applications get essentially transparent interactivity below 150 ms of one-way delay. It treats 400 ms as the ceiling for general network planning.</p>
<p>Consider a Frankfurt caller talking to a Frankfurt agent. Both legs of that call meet at the media server, so its location sets the path length.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/ee76b553-c257-4114-b2bd-3823ae249753.png" alt="Illustrative stacked bar chart of one-way delay. Media in Frankfurt with both people in Frankfurt totals about 91 ms. Media in Frankfurt with the agent in Paris totals about 93 ms. Media in Virginia with both people in Frankfurt totals about 175 ms, past the 150 ms level from ITU-T G.114." style="display:block;margin:0 auto" />

<p>Only the distance segment is calculated. G.114 gives a planning figure of 5 µs per km for optical fibre. Frankfurt to northern Virginia is about 6,550 km on a great circle, and we assumed routes run 30% longer. The round trip through Virginia therefore covers about 17,000 km and adds about 85 ms. The other segments are round assumptions, so measure your own path before you rely on these totals.</p>
<h3>Choosing how agents connect</h3>
<p>Agents don't all need the internet. Reaching them over the phone network moves the dependency from your office link to mobile coverage.</p>
<table>
<thead>
<tr>
<th>Agent connection</th>
<th>Network it depends on</th>
<th>Best when</th>
<th>Watch for</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Mobile number over PSTN</strong></td>
<td>The agent's mobile coverage</td>
<td>Field teams and work from home</td>
<td>A second call leg on every conversation, and less control over the handset</td>
</tr>
<tr>
<td><strong>SIP softphone or desk phone</strong></td>
<td>Your office or home broadband</td>
<td>Fixed teams with a managed network</td>
<td>Firewall rules and NAT</td>
</tr>
<tr>
<td><strong>Browser over</strong> <a href="https://www.vobiz.ai/docs/blogs/what-is-webrtc"><strong>WebRTC</strong></a></td>
<td>The agent's broadband</td>
<td>Click-to-call inside your CRM</td>
<td>Headsets, browser permissions, and Wi-Fi quality</td>
</tr>
<tr>
<td><strong>AI agent over SIP or a stream</strong></td>
<td>The link between provider and your AI stack</td>
<td>Automated conversations</td>
<td>AI processing time adds to the network delay above</td>
</tr>
</tbody></table>
<p>TRAI's <a href="https://www.trai.gov.in/sites/default/files/2025-02/Recommendation_06022025.pdf">February 2025 numbering recommendations</a> put a SIP call at about 87 kbps with G.711 and 32 kbps with G.729. At those rates, 40 softphone agents on calls at once need about 3.5 Mbps with G.711 or 1.3 Mbps with G.729, by our arithmetic. Budget that in each direction, and leave headroom.</p>
<h3>Sizing capacity</h3>
<p>Cloud telephony removes hardware limits, but contractual ones remain. Two numbers cap you: concurrent calls and calls per second. Our <a href="https://www.vobiz.ai/docs/blogs/what-is-sip-trunking">SIP trunking guide</a> works through the Erlang B math for inbound lines and the rate calculation for diallers, and both apply to any model here.</p>
<h2>What rules apply to cloud telephony?</h2>
<p>The call flow is the same everywhere, but the rules around it vary by country, and they change often. Check these points for each market you call:</p>
<ul>
<li><strong>Provider authorisation.</strong> Many countries license who may sell hosted voice. India, for example, lists cloud-based EPABX under its <a href="https://eservices.dot.gov.in/enterprise-communication-service-authorisation">enterprise communication service authorisation</a>.</li>
<li><strong>Number series and telemarketing.</strong> Some regulators reserve series by call type. If you're in India, promotions use 140xx and regulated service calls use 1600xx (<a href="https://www.trai.gov.in/sites/default/files/2026-07/PR_No91of2026.pdf">TRAI, July 2026</a>).</li>
<li><strong>Automated calls.</strong> Rules such as the US TCPA cover calls started by software. India's <a href="https://www.trai.gov.in/sites/default/files/2026-09/Regulation_18092026.pdf">Third Amendment</a> adds an advance declaration of application-initiated calls.</li>
<li><strong>Where the media runs.</strong> Some countries restrict carrying domestic calls abroad or between networks. India's <a href="https://www.dot.gov.in/static/uploads/2025/08/4e6e21029dc45f42b4e1e57e6300fa72.pdf">OSP guidelines</a> treat some of this as toll bypass.</li>
<li><strong>Recordings and personal data.</strong> Privacy laws such as the EU's GDPR, or India's <a href="https://static.pib.gov.in/WriteReadData/specificdocs/documents/2025/nov/doc20251117695301.pdf">DPDP Rules</a>, set notice and retention duties.</li>
</ul>
<p>Confirm the current text and take legal advice for your case.</p>
<h2>What should you ask a cloud telephony provider?</h2>
<p>Feature lists look alike across vendors, so these questions test the parts that are harder to change later. Skip any that don't match your model.</p>
<table>
<thead>
<tr>
<th>Question</th>
<th>Why it matters</th>
</tr>
</thead>
<tbody><tr>
<td>Which authorisation or licence covers the service you're selling me?</td>
<td>Your supply chain depends on it, and the framework is mid-migration</td>
</tr>
<tr>
<td>Where does media run on calls in each country I serve?</td>
<td>It sets delay, and it can decide whether a call is allowed</td>
</tr>
<tr>
<td>How do I declare A2P use, and who records it?</td>
<td>Undeclared calls count as unsolicited once the rule starts</td>
</tr>
<tr>
<td>Which number series do I get for each call type?</td>
<td>The wrong series is a compliance problem, not only a routing one</td>
</tr>
<tr>
<td>What name will my calls display?</td>
<td>Caller name display now depends on subscriber records</td>
</tr>
<tr>
<td>What happens when my webhook fails or times out?</td>
<td>This decides whether a bad deploy drops live calls</td>
</tr>
<tr>
<td>Do I get MOS, jitter, and packet loss for each call?</td>
<td>You can't fix quality that you can't see</td>
</tr>
<tr>
<td>How are concurrency and CPS sold, and what happens at the limit?</td>
<td>Callers hear busy tones at the ceiling</td>
</tr>
<tr>
<td>Where do recordings live, and for how long?</td>
<td>It feeds your retention and consent decisions</td>
</tr>
</tbody></table>
<h2>How Vobiz handles cloud telephony</h2>
<p>Vobiz is a programmable voice platform, so it sits in the voice API and SIP trunking columns of the matrix above. You build the logic and connect the systems you already use.</p>
<ul>
<li><strong>Numbers.</strong> <a href="https://www.vobiz.ai/docs/buy-a-phone-number">Buy a number</a> in the console or over the API. <a href="https://www.vobiz.ai/docs/compliance/india/kyc">India number KYC</a> comes before renting Indian numbers.</li>
<li><strong>Call logic with VobizXML.</strong> A <a href="https://www.vobiz.ai/docs/platform/voice/applications">Vobiz application</a> ties a number to your server. Vobiz requests instructions from your Answer URL, and it <a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">executes the VobizXML you return</a>. A Fallback Answer URL takes over if the primary returns a 5xx error or times out, and the <a href="https://www.vobiz.ai/docs/xml/overview/best-practices">best-practices page</a> asks you to respond within 1 to 2 seconds.</li>
<li><strong>Call control over REST.</strong> The <a href="https://www.vobiz.ai/docs/call/overview">Call API</a> places, transfers, records, and ends calls authenticated with your Auth ID and Auth Token.</li>
<li><strong>SIP trunks.</strong> <a href="https://www.vobiz.ai/docs/platform/sip/overview">Vobiz SIP trunking</a> connects a PBX, AI agent, or VoIP stack, with <a href="https://www.vobiz.ai/docs/trunks">trunks</a> for outbound and inbound.</li>
<li><strong>Agent legs.</strong> The dial instruction bridges to <a href="https://www.vobiz.ai/docs/xml/dial">a PSTN number or SIP user</a>. Registered soft-phones and WebRTC clients use <a href="https://www.vobiz.ai/docs/platform/voice/endpoints">endpoints</a>, and the <a href="https://www.vobiz.ai/docs/integrations/webrtc-application-setup">WebRTC Playground</a> lets you try browser calling.</li>
<li><strong>Media.</strong> <a href="https://www.vobiz.ai/docs/audio-streams">Audio Streams</a> forks live call audio to your WebSocket server, with a bidirectional mode for AI agents. <a href="https://www.vobiz.ai/docs/platform/voice/recordings">Recordings</a> stay available for 30 days, and you can <a href="https://www.vobiz.ai/docs/recording/export-historical-recordings">export them as an archive</a> before that window closes.</li>
<li><strong>Quality data.</strong> Each <a href="https://www.vobiz.ai/docs/cdr">call detail record</a> reports call-quality scores, jitter, packet loss, and the codec.</li>
<li><strong>Capacity.</strong> <a href="https://www.vobiz.ai/docs/platform/capacity/concurrency">Concurrency</a> and <a href="https://www.vobiz.ai/docs/platform/capacity/cps">CPS</a> are separate account limits. The <a href="https://www.vobiz.ai/docs/resources/calculator">CPS and concurrency calculator</a> helps you model a campaign.</li>
<li><strong>Campaigns and tenants.</strong> <a href="https://www.vobiz.ai/docs/platform/campaigns/list">Campaigns</a> run bulk outbound dialling with retries and per-attempt logs. <a href="https://www.vobiz.ai/docs/platform/subaccounts">Sub-accounts</a> give each customer or team its own credentials, numbers, and usage.</li>
<li><strong>Integrations.</strong> <a href="https://www.vobiz.ai/docs/integrations">Vobiz integrations</a> cover CRMs such as Salesforce and HubSpot, and voice AI platforms such as LiveKit and Vapi.</li>
<li><strong>India.</strong> <a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">Calling regulations</a> cover KYC, caller ID, and media anchoring, under which both legs of an Indian call stay in India. A call that breaks this fails with the <a href="https://www.vobiz.ai/docs/concepts/hangup-causes">Violates Media Anchoring hangup cause</a>. The <a href="https://www.vobiz.ai/docs/compliance/india/ucc">UCC page</a>, <a href="https://www.vobiz.ai/docs/best-practices/140-160-acquisition">140 and 160 series guide</a>, and <a href="https://www.vobiz.ai/docs/best-practices/dlt-registration">DLT registration guide</a> cover commercial calling.</li>
<li><strong>Pricing and reach.</strong> Current rates are on the <a href="https://www.vobiz.ai/pricing/">Vobiz pricing page</a>.</li>
</ul>
<p>Test calls and capacity purchases are billed to your account. Run them with your own credentials, and confirm numbers and quantities first.</p>
<h2>Frequently asked questions</h2>
<h3>What is cloud telephony in simple words?</h3>
<p>It is a business phone system that a provider runs for you on its own servers. You get numbers, call routing, recording, and reports through a browser or API. Customers still call you on normal phone numbers, and you buy no PBX hardware.</p>
<h3>Is cloud telephony the same as VoIP?</h3>
<p>No. VoIP is the method of carrying voice as IP packets. Cloud telephony is a way of delivering a phone system, with the provider running it. Most cloud telephony uses VoIP inside, but VoIP can also run on equipment at your own site.</p>
<h3>Is cloud telephony legal?</h3>
<p>Yes, in most countries, when providers hold the right authorisation and you follow the calling rules. In India, for example, DoT lists cloud-based EPABX under its enterprise communication service authorisation, and TRAI's rules govern number series, consent, and automated calls. Check the current text and take legal advice for your case.</p>
<h3>Do I need internet for cloud telephony?</h3>
<p>Not always at the agent's end. An agent can take calls on a mobile number over the phone network, with no office data link involved. Softphones and browser calling do need stable broadband. Your application servers also need reliable internet to answer webhooks.</p>
<h3>How does cloud telephony differ from a cloud PBX?</h3>
<p>A cloud PBX is one product within cloud telephony. It focuses on office extensions and internal calling. Cloud telephony also covers contact centre software, voice APIs, and SIP trunks, which suit customer calling, software-driven calls, and existing phone systems.</p>
<h3>Can cloud telephony connect to AI voice agents?</h3>
<p>Yes. An AI agent usually joins a call over a SIP trunk or a real-time audio stream over WebSocket. Your AI platform often decides which one to use. In India, automated outbound calls appear to match TRAI's A2P wording, so check that with your provider.</p>
<h2>Further reading on Vobiz</h2>
<ul>
<li><a href="https://www.vobiz.ai/docs/blogs/what-is-voip">What is VoIP?</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-sip-trunking">What is SIP trunking?</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-a-voice-api">What is a voice API?</a></li>
<li><a href="https://www.vobiz.ai/docs/blogs/what-is-an-ivr">What is an IVR?</a> · <a href="https://www.vobiz.ai/docs/solutions/cloud-ivr">Build a cloud IVR on Vobiz</a> · <a href="https://www.vobiz.ai/docs/solutions/contact-centre">Custom contact centre on Vobiz</a></li>
<li><a href="https://www.vobiz.ai/docs/concepts/sip-vs-websockets">SIP vs WebSockets</a> · <a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">India calling regulations</a> · <a href="https://www.vobiz.ai/docs/quick-start">Quick start</a></li>
</ul>
<h2>Sources</h2>
<p><strong>Indian regulators and government</strong></p>
<ul>
<li>DoT, <a href="https://eservices.dot.gov.in/enterprise-communication-service-authorisation">Enterprise Communication Service Authorisation, eServices portal</a>, last updated 7 July 2026.</li>
<li>DoT, <a href="https://www.dot.gov.in/static/uploads/2026/10/d86da4092d50f052becd6113de83d37e.pdf">Circular 01/Licensing Policy/2026: Introduction of calling name presentation service</a>, 13 October 2026.</li>
<li>DoT, <a href="https://www.dot.gov.in/static/uploads/2025/08/4e6e21029dc45f42b4e1e57e6300fa72.pdf">Revised Guidelines for Other Service Providers</a>, 23 June 2021.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2026-09/PR_No119of2026.pdf">Press release 119/2026 on the Third Amendment</a>, 18 September 2026.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2026-09/Regulation_18092026.pdf">Telecom Commercial Communications Customer Preference (Third Amendment) Regulations, 2026</a>, 18 September 2026.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2026-07/PR_No91of2026.pdf">Press release 91/2026 on the 1600 and 140 series</a>, 10 July 2026.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2025-02/Recommendation_06022025.pdf">Recommendations on Revision of National Numbering Plan</a>, 6 February 2025.</li>
<li>PIB, <a href="https://static.pib.gov.in/WriteReadData/specificdocs/documents/2025/nov/doc20251117695301.pdf">DPDP Rules, 2025 Notified</a>, November 2025.</li>
</ul>
<p><strong>Legal commentary</strong></p>
<ul>
<li>Khaitan &amp; Co, <a href="https://www.khaitanco.com/sites/default/files/2026-06/Ergo_Miscellaneous%20Telecom%20Services_30062026.pdf">Update on the miscellaneous telecommunication services rules</a>, June 2026.</li>
<li>S.S. Rana &amp; Co., <a href="https://ssrana.in/articles/meity-plans-to-cut-short-dpdp-compliance-timeline-and-notify-cross-border-restrictions-for-sdfs/">MeitY plans to cut short DPDP compliance timeline</a>, February 2026.</li>
<li>ConsentOS, <a href="https://consentos.in/learn/dpdp-rules-notification-status/">DPDP Rules notification status</a>, updated 9 October 2026.</li>
<li>Khaitan &amp; Co, <a href="https://www.khaitanco.com/sites/default/files/2026-06/Ergo_Principal%20Telecom%20Authorisation%20Rules_26062026.pdf">Update on the principal telecommunication services authorisation rules</a>, June 2026.</li>
</ul>
<p><strong>Standards</strong></p>
<ul>
<li>ITU-T, <a href="https://www.itu.int/rec/dologin_pub.asp?lang=e&amp;id=T-REC-G.114-200305-I!!PDF-E&amp;type=items">G.114 (05/2003): One-way transmission time</a>, and its <a href="https://www.itu.int/rec/T-REC-G.114">status page</a>.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3550.html">RFC 3550: RTP: A Transport Protocol for Real-Time Applications</a>, July 2003.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc5853.html">RFC 5853: Requirements from SIP Session Border Control Deployments</a>, April 2010.</li>
</ul>
<p><strong>Other guides we read</strong></p>
<ul>
<li>TechTarget, <a href="https://www.techtarget.com/news/cloud-telephony-cloud-calling/850354/">Cloud telephony (cloud calling)</a>, July 2023.</li>
<li>Retell AI, <a href="https://www.retellai.com/blog/cloud-telephony">Cloud Telephony: What It Is, How It Works and How To Choose A Provider</a>, July 2026.</li>
</ul>
<hr />
<p>For voice AI agents that live in the cloud, <a href="https://www.vobiz.ai">Vobiz</a> is AI-native cloud telephony: SIP trunks, numbers and a voice API.</p>
]]></content:encoded></item><item><title><![CDATA[What Is CPaaS? What It Does and When You Need One]]></title><description><![CDATA[One customer reminder end to end, who does which job, what it costs, and the rules that apply]]></description><link>https://piyuzz.hashnode.dev/what-is-cpaas</link><guid isPermaLink="true">https://piyuzz.hashnode.dev/what-is-cpaas</guid><category><![CDATA[cpaas]]></category><category><![CDATA[api]]></category><category><![CDATA[Telephony]]></category><category><![CDATA[SaaS]]></category><category><![CDATA[whatsapp]]></category><dc:creator><![CDATA[Piyush Sahoo]]></dc:creator><pubDate>Thu, 12 Nov 2026 10:01:45 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/cc37aabb-7e43-4267-b3c8-92303e8205a6.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A plain-language reference on communications platform as a service: how it works, how responsibilities split across cloud models, and the rules that stay with you, using regulator and Meta sources.</p>
<p>CPaaS, or communications platform as a service, lets your business add calls, SMS, WhatsApp, and other channels to its own software through the cloud. You rent the phone connections and tools instead of building them. Your software then decides who to contact, when, and through which channel.</p>
<p>This guide explains CPaaS without assuming a technical background. It follows one customer reminder from start to finish, shows who does which job in each cloud model, and helps you decide whether you need CPaaS at all. It also covers the rules that stay with you, using regulator and Meta sources.</p>
<blockquote>
<p><strong>Note: Key takeaways</strong></p>
<ul>
<li><strong>CPaaS is a supplier, not an app your team opens each morning.</strong> It gives your software the ability to call and message people.</li>
<li><strong>It suits contact that your own data should trigger,</strong> such as a one-time code, a delivery update, or a payment reminder.</li>
<li><strong>It doesn't suit every need.</strong> A finished phone suite or contact centre product may serve you better, and the decision map below shows when.</li>
<li><strong>Compliance stays largely with you.</strong> Consent, SMS registration, and the right calling numbers remain your responsibility as the sender.</li>
<li><strong>Costs track your volume,</strong> whether you pay per use or buy blocks of minutes and messages. Budget for setup and upkeep as well.</li>
</ul>
</blockquote>
<h2>What does CPaaS mean in plain English?</h2>
<p>CPaaS does for calls and messages what a payment gateway does for payments. A shop that takes online payments doesn't build its own links to every bank. It connects to a gateway, and the gateway deals with the banks.</p>
<p>A CPaaS plays the same role between your business and the telecom world. Instead of negotiating with carriers and running call servers, you connect your software to one provider. Your developers do this through an API, which is a defined way for one piece of software to ask another to do something.</p>
<p><a href="https://cxtoday.com/gartner-magic-quadrant-cpaas-2026">Gartner's definition, as reported by CX Today</a>, describes a cloud platform that embeds voice, SMS, email, messaging apps, and video into applications. Providers differ in which of these channels they offer, so check the ones you need.</p>
<p>You've probably used CPaaS without knowing it. It often sits behind these everyday moments:</p>
<ul>
<li>A one-time code arrives while you log in to an app.</li>
<li>A delivery rider calls you, and neither of you sees the other's real number.</li>
<li>An automated call asks you to press 1 to confirm a doctor's appointment.</li>
</ul>
<p><a href="https://www.techtarget.com/news/What-is-communications-platform-as-a-service-CPaaS/848819/">TechTarget lists similar uses</a>, including multifactor login, click-to-call, and automated payment alerts.</p>
<h2>How does CPaaS work?</h2>
<p>The easiest way to understand CPaaS is to follow one job through it. Imagine a clinic whose booking software needs to remind a patient about tomorrow's appointment. The clinic is an illustrative example.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/89bb01f0-7fad-416b-ad5f-01cc2ee0877d.png" alt="Flow diagram of one appointment reminder. Going out: your software asks for a call, the CPaaS checks the request and places the call, a carrier connects it, and the customer hears the options. Coming back: the customer presses 2, the CPaaS sends the keypress to your software as an event, your software moves the booking, and a record of time, outcome and cost is stored." style="display:block;margin:0 auto" />

<p>Four things happen, and each one matters to the business:</p>
<ol>
<li><strong>Your software asks.</strong> The booking system spots the appointment and requests a call. No staff member has to remember.</li>
<li><strong>The provider delivers.</strong> It connects to the phone network and places the call, so you don't run any of that equipment.</li>
<li><strong>The result comes back.</strong> When the patient presses a key, the provider sends an automatic notice to your software. These notices are called <a href="https://www.vobiz.ai/docs/concepts/callbacks">webhooks (callbacks)</a>.</li>
<li><strong>Your software acts, and a record remains.</strong> The booking moves without a receptionist's help, and you keep a record of what happened and what it cost.</li>
</ol>
<p>The clinic chooses all of this logic. The CPaaS knows how to place a call, but it doesn't know your patients or your opening hours. That split is why CPaaS is so flexible, and why somebody has to set it up.</p>
<h2>What can you build with CPaaS?</h2>
<p>Start from the business problem, then pick the channel. This table connects common goals to the channels that usually serve them.</p>
<table>
<thead>
<tr>
<th>What you want</th>
<th>What the customer experiences</th>
<th>Usual channels</th>
</tr>
</thead>
<tbody><tr>
<td>Confirm who someone is</td>
<td>A one-time code during login or payment</td>
<td>SMS, WhatsApp, voice</td>
</tr>
<tr>
<td>Reduce missed bookings</td>
<td>A <a href="https://www.vobiz.ai/docs/solutions/appointment-reminders">reminder they can answer with a keypress</a></td>
<td>Voice, WhatsApp, SMS</td>
</tr>
<tr>
<td>Protect phone numbers</td>
<td><a href="https://www.vobiz.ai/docs/solutions/number-masking">A masked call</a> with a rider or seller</td>
<td>Voice</td>
</tr>
<tr>
<td>Keep customers informed</td>
<td>Order, delivery, and account updates</td>
<td>WhatsApp, SMS, RCS</td>
</tr>
<tr>
<td>Answer routine questions at any hour</td>
<td>A conversation with an <a href="https://www.vobiz.ai/docs/solutions/ai-voice-agent">AI voice agent</a></td>
<td>Voice</td>
</tr>
<tr>
<td>Reach prospects with offers</td>
<td>Promotions to people who agreed to receive them</td>
<td>Voice, SMS, WhatsApp</td>
</tr>
</tbody></table>
<p>The channel choice affects your cost and your compliance work, so settle it before anyone starts building.</p>
<h2>How is CPaaS different from UCaaS and CCaaS?</h2>
<p>These three cloud models get confused because they share channels. The real difference is <a href="https://www.techtarget.com/news/What-is-communications-platform-as-a-service-CPaaS/848819/">how much comes finished</a>. <a href="https://www.techtarget.com/news/UCaaS-vs-CCaaS-vs-CPaaS-Whats-the-difference/849060/">TechTarget's comparison</a> separates them by the communication need each one serves:</p>
<ul>
<li><strong>UCaaS (unified communications as a service)</strong> gives your staff a ready-made suite for calling and meetings.</li>
<li><strong>CCaaS (contact centre as a service)</strong> gives support and sales teams ready-made contact centre tools.</li>
<li><strong>CPaaS</strong> gives your software building blocks, and you create the experience.</li>
</ul>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/b4253625-e179-4838-9962-680c95c454a7.png" alt="Table comparing four models: running on telecom lines yourself, CPaaS, CCaaS and UCaaS. On telecom lines you handle every job. With CPaaS the provider handles carrier links and servers, while you handle agent tools, contact rules and consent. CCaaS and UCaaS supply agent or staff apps too, and contact rules are shared in CCaaS and limited in UCaaS. Consent and message content stay with you in every model. You typically pay by use for CPaaS, per agent for CCaaS and per user for UCaaS." style="display:block;margin:0 auto" />

<p>The payment row reflects a typical market split. Your own quote may differ.</p>
<p>Treat the boundaries as soft. CX Today notes that CPaaS <a href="https://cxtoday.com/gartner-magic-quadrant-cpaas-2026">increasingly overlaps with CCaaS and UCaaS</a>, and <a href="https://www.techtarget.com/news/UCaaS-vs-CCaaS-vs-CPaaS-Whats-the-difference/849060/">some vendors now bundle all three</a>. Ask what a product actually does, whatever its label. You can also <a href="https://www.vobiz.ai/docs/solutions/contact-centre">build a custom contact centre on a CPaaS</a> if a packaged desk doesn't fit how your team works.</p>
<h2>Do you need CPaaS?</h2>
<p>Answer these four questions in order. The first answer that sends you sideways is your likely starting point.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/410292d3-69ae-4d77-a653-e7c1c96cdbb5.png" alt="Decision map with four questions. If you only need staff to call and meet one another, choose UCaaS. If a support or sales team needs a standard desk, choose CCaaS. If your own software or data should not trigger contact, start simple with a business number or one-off campaign tool. If it should, and a developer or partner can own the integration, use CPaaS APIs. If nobody can, use no-code console tools or an app built on CPaaS." style="display:block;margin:0 auto" />

<p>CPaaS tends to pay off when these signs appear:</p>
<ul>
<li>Staff copy details from one system to send messages or place calls by hand.</li>
<li>Customers ask for updates your software already knows.</li>
<li>The same reminder or alert goes out in large numbers each day.</li>
<li>You're building a product, and calling or messaging is part of it.</li>
</ul>
<p>It's probably too early if you send a few messages a week and no system holds the data that would trigger them. A business number or a simple campaign tool will serve you until the volume grows.</p>
<h2>What work does CPaaS leave with you?</h2>
<p>CPaaS removes the telecom engineering, but it doesn't remove every job. Plan for these before you commit.</p>
<table>
<thead>
<tr>
<th>Job</th>
<th>Why it stays with you</th>
<th>Who usually owns it</th>
</tr>
</thead>
<tbody><tr>
<td>Deciding the rules</td>
<td>Only you know when a reminder helps and when it annoys</td>
<td>Operations or product</td>
</tr>
<tr>
<td>Connecting your systems</td>
<td>Calls and messages need your customer data</td>
<td>Developer or partner</td>
</tr>
<tr>
<td>Keeping consent records</td>
<td>You're the party contacting the customer</td>
<td>Compliance or legal</td>
</tr>
<tr>
<td>Writing the messages</td>
<td>Registered templates and clear wording come from you</td>
<td>Marketing or operations</td>
</tr>
<tr>
<td>Acting on replies and failures</td>
<td>Someone must decide what happens next</td>
<td>Operations and developer</td>
</tr>
<tr>
<td>Watching spend</td>
<td>A faulty loop can send far more than you planned</td>
<td>Finance and developer</td>
</tr>
</tbody></table>
<p>Name an owner for each row before launch, because an unowned job tends to surface only when something breaks.</p>
<h2>What rules come with CPaaS?</h2>
<p>Every country has rules for business calls and messages, and they reach well beyond paperwork. Your provider carries the traffic, but most rules place clear duties on the <strong>sender</strong>, which is your business.</p>
<h3>SMS</h3>
<p>Many countries make businesses register before they send. In the US, application-to-person texts from ordinary numbers go through <a href="https://www.vobiz.ai/docs/blogs/what-is-a2p-10dlc">A2P 10DLC registration</a>. If you're in India, every commercial SMS must trace back to <a href="https://www.vobiz.ai/docs/sms/compliance/india-dlt">a registered sender and a registered template</a> on the <a href="https://trai.gov.in/sites/default/files/2024-08/PR_No.12of2023.pdf">DLT platform</a>, and operators reject text that doesn't match.</p>
<h3>Voice</h3>
<p>Telemarketing and automated calls carry their own rules, such as consent under the US TCPA. Some regulators also reserve number series by call type: India, for example, puts promotional calls on <a href="https://trai.gov.in/sites/default/files/2026-07/PR_No91of2026.pdf">140xx and regulated service calls on 1600xx</a>, and its <a href="https://trai.gov.in/sites/default/files/2026-09/PR_No119of2026.pdf">September 2026 amendment</a> makes senders declare calls started by software. Ask your provider which numbers and declarations fit your sector before you build.</p>
<h3>Consent and enforcement</h3>
<p>Consent has limits that your software needs to respect, such as how long it lasts and how fast an opt-out takes effect. Enforcement can reach your whole business, beyond a single campaign. In India, for example, a first threshold violation <a href="https://trai.gov.in/sites/default/files/2025-02/PR_No.11of2025.pdf">bars outgoing services on all of a sender's telecom resources for 15 days</a>.</p>
<h3>WhatsApp</h3>
<p>WhatsApp business messages follow Meta's rules. You need <a href="https://www.vobiz.ai/docs/whatsapp/messaging/templates">Meta's approval for each template</a>, and non-template messages work <a href="https://developers.facebook.com/documentation/business-messaging/whatsapp/pricing">only inside a 24-hour customer service window</a>.</p>
<p>The pricing changed recently. Meta charges <a href="https://developers.facebook.com/documentation/business-messaging/whatsapp/pricing">per delivered message, by category and the recipient's country</a>. Since October 1, 2026, service messages cost money again after <a href="https://developers.facebook.com/documentation/business-messaging/whatsapp/pricing">1,000 free per business number each month</a>. Older guides that quote per-conversation rates are out of date.</p>
<h3>Personal data</h3>
<p>Phone numbers and message content often count as personal data under laws such as the EU's GDPR. If you're in India, the main duties under the Digital Personal Data Protection Act and Rules are <a href="https://ksandk.com/data-protection-and-data-privacy/dpdp-act-rules-2026-compliance-deadline/">scheduled to start in May 2027</a>. The duties include <a href="https://www.amsshardul.com/insight/enforcement-of-the-dpdp-act-and-notification-of-the-dpdp-rules/">security safeguards that can extend into your contracts with data processors</a>. Ask how your provider fits, and start the mapping early.</p>
<h2>What does CPaaS cost?</h2>
<p>Billing models vary, so ask which one you're being quoted. <a href="https://www.techtarget.com/news/What-is-communications-platform-as-a-service-CPaaS/848819/">TechTarget describes</a> fixed monthly rates for blocks of messages or minutes, alongside pay-per-call and per-message plans. Expect these lines on a bill or in a budget:</p>
<ul>
<li><strong>Calls,</strong> charged by duration and destination.</li>
<li><strong>Messages,</strong> charged per message or per SMS segment.</li>
<li><strong>WhatsApp charges,</strong> which include Meta's fee. Ask each provider how it passes this on.</li>
<li><strong>Phone numbers,</strong> usually charged as a monthly rental.</li>
<li><strong>Add-ons,</strong> such as call recording, speech services, or extra capacity.</li>
<li><strong>Your own work,</strong> including development, registration, and upkeep. This one never appears on the provider's invoice.</li>
</ul>
<p>Usage billing helps when your traffic is uneven, because a quiet month costs less. Per-seat products can be easier to forecast. To compare fairly, estimate a normal month and a busy month on each option.</p>
<h2>How do you choose a CPaaS provider?</h2>
<p>The market is large and varied. CX Today reports <a href="https://cxtoday.com/gartner-magic-quadrant-cpaas-2026">Gartner's figures</a> of $14.88 billion in 2025 and a forecast of $17.03 billion for 2026, with 15 vendors assessed in the 2026 Magic Quadrant. TechTarget describes <a href="https://www.techtarget.com/news/What-is-communications-platform-as-a-service-CPaaS/848819/">Gartner's five vendor groups</a>, which range from pure-play platforms to telecom operators.</p>
<p>Whichever shortlist you build, these questions reveal more than a feature list:</p>
<table>
<thead>
<tr>
<th>Ask the provider</th>
<th>Why it matters to you</th>
</tr>
</thead>
<tbody><tr>
<td>Which channels work in the countries we serve?</td>
<td>Coverage varies by channel and country</td>
</tr>
<tr>
<td>How do you handle sender registration, KYC, and number series in each country?</td>
<td>These decide whether your traffic can run at all</td>
</tr>
<tr>
<td>Can we see why a call or message failed?</td>
<td>Clear reasons shorten every investigation</td>
</tr>
<tr>
<td>Can we see costs before sending and after?</td>
<td>You catch budget surprises early</td>
</tr>
<tr>
<td>What can non-developers do in the console?</td>
<td>This shapes who you need to hire</td>
</tr>
<tr>
<td>Can we separate our customers or business units?</td>
<td>Agencies and software companies need clean billing</td>
</tr>
</tbody></table>
<p><a href="https://www.techtarget.com/news/What-is-communications-platform-as-a-service-CPaaS/848819/">TechTarget's buying advice</a> adds API quality, vendor stability, and network reliability, which your technical lead should test directly.</p>
<h2>How Vobiz handles it</h2>
<p><a href="https://www.vobiz.ai/docs/introduction">Vobiz</a> is a programmable communications platformwith voice, SIP trunking, SMS, MMS, RCS, and WhatsApp.</p>
<ul>
<li><strong>Voice.</strong> The <a href="https://www.vobiz.ai/docs/call/overview">Vobiz Voice API</a> places and controls calls, and <a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">VobizXML</a> sets out what happens during each call. <a href="https://www.vobiz.ai/docs/platform/sip/overview">SIP trunks</a> connect existing phone systems.</li>
<li><strong>SMS, MMS, and RCS.</strong> One <a href="https://www.vobiz.ai/docs/sms/overview">Vobiz Messaging API</a> sends all three, with <a href="https://www.vobiz.ai/docs/sms/broadcasts">bulk broadcasts</a> from an uploaded list. You can <a href="https://www.vobiz.ai/docs/sms/api/messages/cost-preview">preview a message's cost</a> before you send it.</li>
<li><strong>WhatsApp.</strong> <a href="https://www.vobiz.ai/docs/whatsapp/getting-started/introduction">WhatsApp Business on Vobiz</a> includes a web console for conversations and a visual campaign builder that needs no coding, along with an API for developers.</li>
<li><strong>Results.</strong> <a href="https://www.vobiz.ai/docs/concepts/callbacks">Webhooks (callbacks)</a> report events to your software, and each <a href="https://www.vobiz.ai/docs/call/call-object">call record</a> shows its timing and cost.</li>
<li><strong>India.</strong> You add your <a href="https://www.vobiz.ai/docs/sms/compliance/india-dlt">DLT IDs</a> to messages sent to Indian numbers. Indian numbers require <a href="https://www.vobiz.ai/docs/compliance/india/kyc">KYC</a>, and the <a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">India calling regulations</a> page lists eligibility and number series. Vobiz also <a href="https://www.vobiz.ai/docs/compliance/india/ucc">checks calls on regulated Indian number series against the national Do Not Call registry</a>.</li>
<li><strong>Several customers.</strong> <a href="https://www.vobiz.ai/docs/sub-accounts">Sub-accounts</a> keep customers separate inside one account, and <a href="https://www.vobiz.ai/docs/concepts/sub-accounts-vs-partner-accounts">a comparison page</a> helps you choose between sub-accounts and partner accounts.</li>
<li><strong>Larger voice campaigns.</strong> The <a href="https://www.vobiz.ai/docs/campaign-manager/overview">Campaign Manager API</a> runs outbound campaigns with contact lists, retries, and schedules.</li>
<li><strong>AI assistants.</strong> The <a href="https://www.vobiz.ai/docs/resources/vobiz-mcp">Vobiz MCP Server</a> lets an AI client such as Claude work on your own account.</li>
</ul>
<p>Calls and messages reach real people and cost real money. Use your own credentials, and confirm the destination and the content before you send anything.</p>
<h2>FAQ</h2>
<h3>What does CPaaS stand for?</h3>
<p>CPaaS is short for communications platform as a service. It is a cloud service that lets a business add calls, messages, and similar channels to its own software. The provider runs the telecom connections and servers, and the business decides who to contact and when.</p>
<h3>What is an example of CPaaS?</h3>
<p>A one-time code sent during a bank login is a common example. The bank's app asks a CPaaS to send the code, and the CPaaS delivers it by SMS or another channel. Masked calls between riders and customers and automated appointment reminders work in a similar way.</p>
<h3>What is the difference between CPaaS and UCaaS?</h3>
<p>UCaaS is a finished suite that staff log in to for calling, meetings, and chat. CPaaS is a set of building blocks that developers connect to your own software, usually for customer communication. A business can use both, because the two solve different problems.</p>
<h3>Do I need developers to use CPaaS?</h3>
<p>You need them for custom work that connects calls and messages to your own systems. Without developers, you can use a provider's console tools where available, such as bulk campaigns, or buy an app already built on CPaaS. A partner can also handle the integration.</p>
<h3>Is WhatsApp a CPaaS?</h3>
<p>No. WhatsApp is a channel that your customers use. The WhatsApp Business Platform gives businesses software access to that channel, and a CPaaS provider can offer it alongside voice and SMS. You can then manage several channels through one provider.</p>
<h3>Does a CPaaS provider handle compliance for me?</h3>
<p>Not completely. A provider supplies tools and carries traffic, but the business sending the calls or messages keeps its own duties. These include consent, sender registration for SMS, such as 10DLC in the US or DLT in India, and the correct numbers for calls. Check the current rules and take legal advice.</p>
<h2>Further reading on Vobiz</h2>
<ul>
<li><a href="https://www.vobiz.ai/docs/blogs/what-is-a-voice-api">What is a voice API?</a> goes deeper on how software controls a call.</li>
<li><a href="https://www.vobiz.ai/docs/blogs/what-is-sip-trunking">What is SIP trunking?</a> explains how an existing phone system connects to carriers.</li>
<li><a href="https://www.vobiz.ai/docs/blogs/what-is-number-masking">What is number masking?</a> covers private calls between two parties.</li>
<li><a href="https://www.vobiz.ai/docs/compliance/india/ucc">Vobiz UCC and NDNC compliance</a> sets out how complaints and the Do Not Call list work.</li>
<li><a href="https://www.vobiz.ai/pricing/">The Vobiz pricing page</a> lists current rates.</li>
</ul>
<h2>Sources</h2>
<p><strong>Regulators and platform owners</strong></p>
<ul>
<li>TRAI, <a href="https://trai.gov.in/sites/default/files/2024-08/PR_No.12of2023.pdf">Press release 12/2023 on misuse of headers and message templates</a>, 16 February 2023.</li>
<li>TRAI, <a href="https://trai.gov.in/sites/default/files/2025-02/PR_No.11of2025.pdf">Press release 11/2025 on the TCCCPR amendments</a>, 12 February 2025.</li>
<li>TRAI, <a href="https://trai.gov.in/sites/default/files/2026-07/PR_No91of2026.pdf">Press release 91/2026 on the 1600 and 140 series</a>, 10 July 2026.</li>
<li>TRAI, <a href="https://trai.gov.in/sites/default/files/2026-09/PR_No119of2026.pdf">Press release 119/2026 on the Third Amendment Regulations</a>, 18 September 2026.</li>
<li>Meta, <a href="https://developers.facebook.com/documentation/business-messaging/whatsapp/pricing">Pricing on the WhatsApp Business Platform</a>, read 3 November 2026.</li>
</ul>
<p><strong>Industry and legal analysis</strong></p>
<ul>
<li>CX Today, <a href="https://cxtoday.com/gartner-magic-quadrant-cpaas-2026">Gartner Magic Quadrant for CPaaS 2026: The Rundown</a>, 29 May 2026.</li>
<li>TechTarget, <a href="https://www.techtarget.com/news/What-is-communications-platform-as-a-service-CPaaS/848819/">What is communications platform as a service (CPaaS)?</a>, 22 September 2025.</li>
<li>TechTarget, <a href="https://www.techtarget.com/news/UCaaS-vs-CCaaS-vs-CPaaS-Whats-the-difference/849060/">UCaaS vs. CCaaS vs. CPaaS: What's the difference?</a>, 6 May 2025.</li>
<li>Shardul Amarchand Mangaldas, <a href="https://www.amsshardul.com/insight/enforcement-of-the-dpdp-act-and-notification-of-the-dpdp-rules/">Enforcement of the DPDP Act and notification of the DPDP Rules</a>, 21 November 2025.</li>
<li>King Stubb &amp; Kasiva, <a href="https://ksandk.com/data-protection-and-data-privacy/dpdp-act-rules-2026-compliance-deadline/">DPDP Act and Rules compliance deadline</a>, updated 8 September 2026.</li>
<li>Lakshmikumaran &amp; Sridharan, <a href="https://www.lkslaw.com/insights/articles/dpdp-act-and-rules-a-ticking-compliance-timeline">DPDP Act and Rules: a ticking compliance timeline</a>, updated 28 May 2026.</li>
</ul>
<hr />
<p>If the voice piece of your CPaaS stack is a voice AI agent, <a href="https://www.vobiz.ai">Vobiz</a> is telephony built for that, with integrations for platforms like Vapi, LiveKit and Retell.</p>
]]></content:encoded></item><item><title><![CDATA[Full-duplex voice agents on phone lines: four things to check in your call path]]></title><description><![CDATA[And a simple way to time barge-in from call recordings]]></description><link>https://piyuzz.hashnode.dev/full-duplex-voice-agents-on-phone-lines-four-things-to-check-in-your-call-path</link><guid isPermaLink="true">https://piyuzz.hashnode.dev/full-duplex-voice-agents-on-phone-lines-four-things-to-check-in-your-call-path</guid><category><![CDATA[voice ai]]></category><category><![CDATA[ai agents]]></category><category><![CDATA[Telephony]]></category><category><![CDATA[WebRTC]]></category><category><![CDATA[Speech Recognition]]></category><dc:creator><![CDATA[Piyush Sahoo]]></dc:creator><pubDate>Thu, 12 Nov 2026 04:08:48 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/a6c0f8b0-77d5-4afe-98d2-1050eee9dcb3.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For two years most voice agents have been polite in a very specific way: they talk, then they listen. While the agent speaks, a lot of pipelines simply stop hearing the caller, or hear them and ignore it until the agent's sentence is done.</p>
<p>In the last two weeks the model layer moved past that.</p>
<ul>
<li><strong>Phonic-1</strong> (Oct 29) is a speech-to-speech model that calls tools while the caller is still talking and answers in under 600 ms speech-in to speech-out, <a href="https://docs.phonic.ai/docs/get-started/overview">per Phonic's docs</a>. (<a href="https://phonic.ai/blog/phonic-1">Phonic blog</a>)</li>
<li><strong>GPT-Live-1 on Retell</strong> (Nov 2) is a full-duplex voice model that talks to the caller directly while a backend text LLM keeps running your prompt and tools. Retell notes it works for single-prompt agents only, not for transfer agents or conversation flows. (<a href="https://www.retellai.com/changelog/gpt-live-1">Retell changelog</a>)</li>
<li><strong>Soniox STT v6</strong> (Nov 3) feeds the agent's own text into recognition so it can filter the agent's voice out of the transcript and keep hearing the user when they interrupt. (<a href="https://soniox.com/blog/soniox-stt-v6">Soniox blog</a>)</li>
<li><strong>Higgs Realtime Duplex</strong> from Boson AI (Nov 5) listens, watches and talks at the same time in 160 ms chunks, with an API waitlist for now. (<a href="https://www.boson.ai/blog/higgs-realtime-duplex">Boson AI blog</a>)</li>
</ul>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/ac159f55-365f-4713-a169-ae4380c82512.png" alt="Four launches in two weeks, one bet. Phonic-1 (Oct 29): speech-to-speech model that calls tools while the caller is still talking, under 600 ms speech-in to speech-out. GPT-Live-1 on Retell (Nov 2): full-duplex model talks to the caller while a backend text LLM runs the prompt and tools, single-prompt agents only for now. Soniox STT v6 (Nov 3): takes the agent's own text to filter its voice out and keep hearing interruptions. Higgs Realtime Duplex from Boson AI (Nov 5): listens, watches and talks at the same time in 160 ms chunks, API waitlist for now." style="display:block;margin:0 auto" />

<p>Different companies, one bet: the agent should keep listening while it talks, say "mm-hm" when that fits, and stop when you cut in.</p>
<p>Here's the funny part. The phone network has worked this way for over a century. A phone call is two audio streams running at the same time, one each way. Nobody on a call waits for a turn token.</p>
<p>So when a full-duplex model meets a phone line, the line isn't the obstacle. The obstacle is everything we bolted between them while models were half-duplex.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/ecb82fe9-c2c5-47b0-b3cd-374553156250.png" alt="Half-duplex versus full-duplex. In a half-duplex pipeline the agent talks, then listens, and the caller is muted while the agent speaks, so an interruption never reaches the model. On a full-duplex phone call both streams are always on: the model hears the caller's &quot;mm-hm&quot;, keeps going, and stops shortly after the caller cuts in." style="display:block;margin:0 auto" />

<h2>Four things to check in your call path</h2>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/56af9fbe-a2f7-4acf-94aa-a5744cebb368.png" alt="Checklist of four half-duplex habits to check in your call path: inbound audio gated while the agent speaks, echo coming back up the line, extra buffering between the phone line and the model, and the handoff to a human." style="display:block;margin:0 auto" />

<p><strong>1. Inbound audio gated while the agent speaks.</strong> A common trick in cascaded stacks was to mute or drop caller audio during TTS playback, so the agent wouldn't transcribe itself. A duplex model needs that audio. If your bridge still drops frames during playback, the model never hears the interruption it was trained to handle.</p>
<p><strong>2. Echo coming back up the line.</strong> On a phone call, some of the agent's own voice can <a href="https://www.vobiz.ai/docs/concepts/audio-quality">come back on the caller's stream</a>. A half-duplex pipeline hid this by not listening. A duplex one hears it, and without handling it can "interrupt itself". This is the exact problem Soniox v6 is aiming at with agent-side text input. (I <a href="https://piyushsahoo7.medium.com/your-voice-agent-keeps-interrupting-itself-on-a-phone-call-thats-an-echo-problem-c59a4defaa8c">wrote about the self-interrupt bug last week</a>; duplex models make it matter more, not less.)</p>
<p><strong>3. Frame pacing.</strong> Phone audio travels in small frames, typically <a href="https://www.vobiz.ai/docs/concepts/streaming-websockets">20 ms of 8 kHz audio</a>. Duplex models work on their own chunk size (Boson quotes 160 ms). Your bridge buffers between the two. Every extra buffer you add is time the agent keeps talking after the caller has started.</p>
<p><strong>4. The handoff.</strong> Retell's own note is telling: GPT-Live-1 isn't available for transfer agents. <a href="https://www.vobiz.ai/docs/solutions/call-transfer">Transfers, holds and warm handoffs</a> happen at the call layer, not in the model. Plan where a duplex call goes when it needs a human.</p>
<h2>Then measure barge-in on your own recordings</h2>
<p>Vendor demos show the model stopping instantly. What your caller hears is the model plus your bridge plus the network. The only honest number is the one in your own call recordings.</p>
<p>Most <a href="https://www.vobiz.ai/docs/concepts/sip-trunking">SIP</a> recordings and agent frameworks can give you a <a href="https://www.vobiz.ai/docs/solutions/call-recording">two-channel recording</a>: caller on one side, agent on the other. That's enough to measure turn-taking, in three steps:</p>
<ol>
<li>Split each channel into 20 ms frames and mark which side is talking in each one.</li>
<li>Find every moment the caller starts speaking while the agent is mid-sentence.</li>
<li>Separate short bursts (under 200 ms, the "mm-hm"s) from real barge-ins, and time how long the agent keeps talking after each barge-in.</li>
</ol>
<p>That last number, the agent's stop time, is the one to watch. On a synthetic test call (six seconds of generated tones, not a real call), this method found two real barge-ins and one backchannel, with 1.3 seconds of overlapping speech in total. After the first barge-in the agent kept talking for 700 ms, and after the second for 500 ms.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/041b5ba9-db26-4f4b-a6b4-c2c6e9649408.png" alt="Timeline of a synthetic test call, six seconds of generated tones, not a real call. Agent and caller speech are drawn as two lanes. One short caller &quot;mm-hm&quot; of 120 ms counts as a backchannel. Two real barge-ins follow, after which the agent keeps talking for 700 ms and then 500 ms. Overlapping speech totals 1.3 seconds." style="display:block;margin:0 auto" />

<p>I use a 300 ms stop budget as my own starting point, not a standard. Pick yours, then measure a batch of calls from your current stack and again after you try a duplex model. If the stop time doesn't drop, the model isn't your bottleneck. Your bridge is.</p>
<p>Two honest limits: deciding who is talking from loudness alone means a noisy line will look like speech, so tune the loudness threshold to your lines, and you can only judge what's in the recording, so record as close to the caller as you can.</p>
<h2>What this means if you build on phone lines</h2>
<p>Full-duplex models are good news for phone agents. Phone calls were always the place where turn-taking broke worst: people interrupt, say "yeah yeah", talk over hold music. Models that expect that fit the phone better than the ones that came before.</p>
<p>But they move the hard part. Once the model can listen while it talks, the quality of the <a href="https://www.vobiz.ai/docs/concepts/sip-vs-websockets">audio path</a> decides how it behaves: whether frames arrive on time, whether echo is handled, whether the caller's interruption reaches the model or gets dropped in a buffer.</p>
<hr />
<p><em>I work on the phone-line side at</em> <a href="https://www.vobiz.ai"><em>Vobiz</em></a><em>, telephony for voice agents. Whatever model you pick this month, measure your call path first.</em></p>
]]></content:encoded></item><item><title><![CDATA[IVR Full Form and Meaning: What Is an IVR Call?]]></title><description><![CDATA[What an IVR call means, how phone menus work, and when you need one]]></description><link>https://piyuzz.hashnode.dev/what-is-an-ivr</link><guid isPermaLink="true">https://piyuzz.hashnode.dev/what-is-an-ivr</guid><category><![CDATA[Telephony]]></category><category><![CDATA[voice ai]]></category><category><![CDATA[UX]]></category><category><![CDATA[voip]]></category><category><![CDATA[#ivr]]></category><dc:creator><![CDATA[Piyush Sahoo]]></dc:creator><pubDate>Wed, 11 Nov 2026 09:12:49 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/ac871554-92bd-4a56-855d-7254d813b6d0.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A reference on Interactive Voice Response: what an IVR call is, how menus and speech input work, and how to choose a type.</p>
<p>The IVR full form is Interactive Voice Response. An IVR is an automated phone system that answers a call, plays recorded or computer-read prompts, and acts on what the caller presses or says. It can give an answer itself, such as an order status, or connect the caller to the right person.</p>
<p>This guide explains what an IVR call means if one just reached you. It also helps a business decide whether it needs an IVR, and which kind fits.</p>
<blockquote>
<p><strong>Note: Key takeaways</strong></p>
<ul>
<li><strong>IVR means Interactive Voice Response.</strong> IVRS is the same thing, with "System" added at the end.</li>
<li><strong>An IVR does one of three things after each input.</strong> It answers the caller, connects a person, or asks the next question.</li>
<li><strong>Start from your call reasons, not the technology.</strong> A week of call reasons shows whether you need a simple menu, self-service, or a conversational system.</li>
<li><strong>Menu shape changes how long callers wait.</strong> In our worked example, two short levels beat both one long menu and three levels.</li>
<li><strong>Keep a way to reach a person.</strong> Callers who can't finish on their own need a clear exit, and a person who already knows why they called.</li>
</ul>
</blockquote>
<h2>What does IVR mean?</h2>
<p>Each word in the name describes part of the job:</p>
<table>
<thead>
<tr>
<th>Letter</th>
<th>Word</th>
<th>What it means on a call</th>
</tr>
</thead>
<tbody><tr>
<td><strong>I</strong></td>
<td>Interactive</td>
<td>The caller takes part by pressing keys or speaking</td>
</tr>
<tr>
<td><strong>V</strong></td>
<td>Voice</td>
<td>The system talks, using recorded audio or text-to-speech</td>
</tr>
<tr>
<td><strong>R</strong></td>
<td>Response</td>
<td>The system acts on what the caller chose</td>
</tr>
</tbody></table>
<p>You will also see <strong>IVRS</strong>, short for Interactive Voice Response System. The railway announcement below uses that form, and it means the same thing. In Hindi, for example, you may see it written as इंटरएक्टिव वॉयस रिस्पांस.</p>
<p>The R stands for response, not recognition. Speech recognition is only one way an IVR can listen, and many systems simply use the keypad.</p>
<p>Public services show the idea at scale. In India, for example:</p>
<ul>
<li><strong>Railway helpline 139.</strong> The ministry's <a href="https://www.zeebiz.com/indian-railways/news-indian-railways-integrates-rail-madad-helpline-number-139-for-all-type-of-queries-complaints/assistance-during-travel-152060">2021 announcement</a> described an IVRS in twelve languages. Pressing 2 led to enquiries such as PNR status, and pressing the asterisk reached an executive. No smartphone was needed.</li>
<li><strong>UPI123Pay.</strong> RBI's <a href="https://rbi.org.in/Scripts/BS_PressReleaseDisplay.aspx?prid=53385">March 2022 launch note</a> listed an IVR option that lets feature phone users make UPI payments without internet. RBI counted more than 40 crore feature phone subscribers at the time.</li>
</ul>
<h2>What is an IVR call?</h2>
<p>Any call counts as one when an automated system, rather than a person, handles the first part of the conversation. It happens in two directions:</p>
<ul>
<li><strong>You call a business.</strong> A voice says something like "For orders, press 1." This is an inbound IVR.</li>
<li><strong>A business calls you.</strong> A recording reminds you about a payment or appointment, and may ask you to press a key to confirm. This is an outbound IVR.</li>
</ul>
<p>The business number that connects to this system is called an <strong>IVR number</strong>. It is a virtual business number linked to automated handling, rather than a line that rings one phone.</p>
<h3>Got an automated call? How to read it</h3>
<p>Many automated calls are routine, but not all of them are genuine. Answering is usually fine. Be careful about what you enter.</p>
<p>If a call you didn't expect asks for an OTP, PIN, or card number, it could be fraud, whatever the voice claims. Hang up, then ring the number printed on your card or the official website. Enter sensitive details only in a process you started yourself, on a number you got from an official source.</p>
<p>Context matters because some genuine services do ask for secrets. In India, for example, RBI's <a href="https://rbi.org.in/Scripts/BS_PressReleaseDisplay.aspx?prid=53385">UPI123Pay note</a> describes a missed-call flow where you receive a call and enter your UPI PIN. The difference is that you started it.</p>
<p>If you're in India, 1600 numbers are <a href="https://www.trai.gov.in/sites/default/files/2026-07/PR_No91of2026.pdf">used for service calls</a> from regulated financial firms and government bodies, and 140 numbers are promotional and can be <a href="https://www.trai.gov.in/sites/default/files/2026-07/PR_No91of2026.pdf">blocked through the Do Not Disturb registry</a>. If a voice threatens to disconnect your number, DoT <a href="https://www.pib.gov.in/PressReleasePage.aspx?PRID=2016613&amp;reg=48&amp;lang=2">has warned</a> that callers use this threat in its name; hang up, share nothing, and report it on <a href="https://sancharsaathi.gov.in/sfc/">Chakshu</a>. If you have already lost money, <a href="https://www.pib.gov.in/PressReleasePage.aspx?PRID=2016613&amp;reg=48&amp;lang=2">DoT points victims</a> to the cyber-crime helpline 1930 or <a href="http://cybercrime.gov.in">cybercrime.gov.in</a>.</p>
<h2>How does an IVR work?</h2>
<p>An IVR repeats a simple cycle until the caller has an answer or reaches a person. The system says something, the caller responds, and the system decides what happens next.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/7ca952d9-c41c-4609-a3e7-b407efe62509.png" alt="Flow of one IVR call. A caller dials, a greeting plays, and a menu or question follows. The caller presses a key or speaks, and the system decides. It can answer the caller, connect a person, or ask the next question, which loops back to the menu. If there is no response, it repeats once and then offers a person. Each step can be logged." style="display:block;margin:0 auto" />

<p>Three parts make this possible:</p>
<ol>
<li><strong>A voice.</strong> Recorded audio suits fixed messages and gives you consistent quality. Text-to-speech suits details that change per caller, such as a due date.</li>
<li><strong>A way to listen.</strong> Every key on a phone sends its own <a href="https://en.wikipedia.org/wiki/DTMF_signaling">pair of tones, known as DTMF</a>, which the system can read. Newer systems can also understand speech.</li>
<li><strong>A set of rules.</strong> These decide where each answer leads. The rules can check your business records, so the system can recognise a caller's number and read out their order status.</li>
</ol>
<p>On Vobiz, each of those parts is one VobizXML element. <a href="https://www.vobiz.ai/docs/xml/speak">Speak</a> or <a href="https://www.vobiz.ai/docs/xml/play">Play</a> is the voice, <a href="https://www.vobiz.ai/docs/xml/gather">Gather</a> listens for keys or speech, and your server's reply to each result is the rules. The <a href="https://www.vobiz.ai/docs/resources/gather-visualizer">Gather input visualizer</a> shows a menu step by step, and the <a href="https://www.vobiz.ai/docs/xml-builder">XML Builder</a> lets you sketch one before you write any server code.</p>
<p>A person is the most important exit in that diagram. Callers who can't finish on their own need a clear way out, and a person who already knows why they called.</p>
<h2>What are the types of IVR?</h2>
<p>IVRs are <a href="https://www.ibm.com/think/topics/interactive-voice-response">commonly grouped into three kinds</a>: touch-tone, directed dialog, and natural language. The easiest way to compare them is to watch each one handle the same request.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/03c01e83-aa22-4317-9a1e-647563813f1f.png" alt="Three columns show one request, where is my order, in three IVR types. Keypad takes one key press and typed digits, works on any phone and in any recorded language, and suits a few clear choices. Directed speech takes two short spoken answers and needs clear audio. Conversational takes one natural sentence, handles many reasons, and needs more testing and a clear handover to a person." style="display:block;margin:0 auto" />

<p>A keypad menu is not the outdated choice. In a multilingual market, a key press means the same thing whatever the caller speaks, and it still works on a noisy street. Many teams mix the types, using keys for the common requests and a conversational system for the rest.</p>
<h3>How is an IVR different from related tools?</h3>
<table>
<thead>
<tr>
<th>Term</th>
<th>What it does</th>
<th>How it relates to an IVR</th>
</tr>
</thead>
<tbody><tr>
<td><strong>IVR</strong></td>
<td>Talks to callers, takes input, and answers or routes</td>
<td>The subject of this guide</td>
</tr>
<tr>
<td><strong>Multi-level IVR</strong></td>
<td>Adds sub-menus under a first menu</td>
<td>A kind of IVR. See our <a href="https://www.vobiz.ai/docs/blogs/what-is-multi-level-ivr">guide to multi-level IVR</a></td>
</tr>
<tr>
<td><strong>Call routing</strong></td>
<td>Decides which team or agent gets a call</td>
<td>An IVR collects the reason, and <a href="https://www.vobiz.ai/docs/blogs/what-is-call-routing">call routing</a> uses it</td>
</tr>
<tr>
<td><strong>AI voice agent</strong></td>
<td>Holds a full spoken conversation and can take actions</td>
<td>The far end of conversational IVR. See <a href="https://www.vobiz.ai/docs/solutions/ai-voice-agent">AI voice agents</a></td>
</tr>
<tr>
<td><strong>Call centre</strong></td>
<td>The team and operation that handles calls</td>
<td>An IVR often sits at its front door</td>
</tr>
</tbody></table>
<h2>What can a business use an IVR for?</h2>
<p>The value comes from taking repeat work off your team without leaving callers stuck. These examples are illustrations, not customer stories:</p>
<table>
<thead>
<tr>
<th>Business</th>
<th>What callers want</th>
<th>What the IVR does</th>
<th>What to measure</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Clinic or hospital</strong></td>
<td>Timings, appointments, billing</td>
<td>Reads timings and sends the rest to the right desk</td>
<td>Calls that reach the front desk</td>
</tr>
<tr>
<td><strong>Online store</strong></td>
<td>"Where is my order?"</td>
<td>Finds the order by phone number and reads the status</td>
<td>Share of order calls finished without an agent</td>
</tr>
<tr>
<td><strong>Lender</strong></td>
<td>EMI amount and due date</td>
<td>Reads the details and offers a person for payment help</td>
<td>Calls that end at a person, and why</td>
</tr>
<tr>
<td><strong>College</strong></td>
<td>Admissions, fees, and exam dates</td>
<td>Sends callers to the right office, in their language</td>
<td>Missed calls in admission season</td>
</tr>
<tr>
<td><strong>Logistics firm</strong></td>
<td>Delivery status</td>
<td>Takes a tracking number on the keypad and reads the status</td>
<td>Time per call</td>
</tr>
</tbody></table>
<p>An IVR also has limits, and it's worth planning around them. <a href="https://www.ibm.com/think/topics/interactive-voice-response">IBM names</a> complex menus, long holds, and impersonal service as common problems. Gartner's survey of 5,728 customers, <a href="https://cxtoday.com/only-1-in-7-customer-service-queries-resolved-with-self-service-gartner-study-finds">reported in August 2024</a>, found that just 14% of issues were fully resolved in self-service. That figure covers all self-service, not only IVRs. It is still a good reason to treat the handover to a person as part of the design.</p>
<h2>Does your business need an IVR?</h2>
<p>Not every business does. A shop with one phone and a few calls a day may serve people better by simply answering. Use this map to find your starting point.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/e1ccd4f2-c399-4fe6-85d1-8ed2a0485eb9.png" alt="Decision map. If calls do not need different teams and questions do not repeat, you may not need an IVR yet. If they do but answers cannot come from a system, use a routing menu. If answers can come from a system and most reasons fit a short list, use keypad self-service. If reasons do not fit a short list, use a conversational IVR or AI agent. Always keep a way to reach a person." style="display:block;margin:0 auto" />

<h3>Work out what it could save</h3>
<p>You can estimate the value without any vendor's figures. List the reasons for one week of calls, then run this sum with your own numbers. The figures below are illustrative:</p>
<table>
<thead>
<tr>
<th>Step</th>
<th>Example</th>
<th>Result</th>
</tr>
</thead>
<tbody><tr>
<td>Calls per month</td>
<td>2,000 calls</td>
<td>2,000</td>
</tr>
<tr>
<td>Share that ask one repeat question</td>
<td>35% ask about order status</td>
<td>700 calls</td>
</tr>
<tr>
<td>Share the IVR could finish</td>
<td>60% of those</td>
<td>420 calls</td>
</tr>
<tr>
<td>Agent time for each</td>
<td>4 minutes</td>
<td>1,680 minutes</td>
</tr>
<tr>
<td>Agent time freed each month</td>
<td>1,680 ÷ 60</td>
<td><strong>28 hours</strong></td>
</tr>
</tbody></table>
<p>Compare those hours with the cost of building and running the IVR. If your calls are spread across many unrelated reasons, the number will be small. In that case, a routing menu or better staffing may help more.</p>
<h2>How do you design an IVR menu that callers finish?</h2>
<p>Good menus respect the caller's time. Listening is slow, so the shape of the menu matters more than most teams expect.</p>
<p>Suppose you have 12 destinations and each spoken option takes 3 seconds. Here is how long callers listen in four designs:</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/104c468f-4276-4cb1-b07c-b04efc713c30.png" alt="Illustrative bar chart at 3 seconds per option with 12 destinations. One menu of 12 options averages 19.5 seconds and 36 at worst. Four options then three averages 13.5 seconds and 21 at worst. Two, then two, then three averages 15 seconds and 21 at worst. Three languages, then four, then three averages 19.5 seconds and 30 at worst." style="display:block;margin:0 auto" />

<p>We calculated these figures by assuming each option is equally likely and that callers press as soon as they hear their choice. Four lessons follow:</p>
<ul>
<li><strong>Keep two short levels where you can.</strong> Some guides, <a href="https://www.vedantu.com/full-form/ivr-full-form">including Vedantu's</a>, suggest four options or fewer per menu, and our sums point the same way.</li>
<li><strong>Put the most-requested option first.</strong> If half of callers want the first option in each menu, the 13.5-second average falls to about 11 seconds. Your call reasons tell you what goes first.</li>
<li><strong>Treat the language menu as a real cost.</strong> Three languages add 6 seconds for the average caller. Listing twelve languages one at a time would take 36 seconds. Remember a returning caller's choice, or publish separate numbers for each language.</li>
<li><strong>Say the reason before the key.</strong> "For billing, press 2" lets people wait for their word, then act. "Press 2 for billing" makes them hold the digit in mind first.</li>
</ul>
<p>Three more habits prevent most dead ends:</p>
<ol>
<li><strong>Offer a person at every level.</strong> Keep the same key throughout. The 139 helpline used the asterisk for this. Urgent needs should skip the queue, as its option for security and medical help did.</li>
<li><strong>Plan for silence and mistakes.</strong> Repeat the prompt once, then offer a person. Don't end the call just because a key press was missed. On Vobiz, if nobody presses a key before Gather's <a href="https://www.vobiz.ai/docs/xml/gather">execution timeout</a> runs out, the call moves on to the next instruction instead of hanging up. That's the natural place to repeat the prompt or connect a person.</li>
<li><strong>Review the numbers.</strong> IBM suggests tracking <a href="https://www.ibm.com/think/topics/interactive-voice-response">hold time and success rate</a> on the most-used options. A step where many callers hang up is the first one to change.</li>
</ol>
<h2>How Vobiz handles IVR</h2>
<p><a href="https://www.vobiz.ai/docs/introduction">Vobiz</a> provides the phone numbers and call control underneath an IVR, in many countries. Your team, or a developer you work with, decides how each call flow behaves. The <a href="https://www.vobiz.ai/docs/solutions/cloud-ivr">cloud IVR overview</a> describes the approach.</p>
<ul>
<li><strong>Call flows.</strong> When a call arrives, Vobiz sends webhooks (callbacks) to your application. Your application replies with <a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">VobizXML</a>, which tells Vobiz what to do next. No PBX hardware is needed.</li>
<li><strong>Voice.</strong> <a href="https://www.vobiz.ai/docs/xml/speak">Text-to-speech</a> reads text aloud in its listed languages. <a href="https://www.vobiz.ai/docs/xml/play">Audio playback</a> plays your MP3 or WAV recordings, which suits prompts recorded in any language you choose.</li>
<li><strong>Input.</strong> <a href="https://www.vobiz.ai/docs/xml/gather">Input collection</a> listens for key presses, speech, or both, using its <a href="https://www.vobiz.ai/docs/xml/gather/supported-languages">supported speech languages</a>.</li>
<li><strong>Routing.</strong> <a href="https://www.vobiz.ai/docs/xml/dial">Call connection</a> connects a caller to a phone number or SIP endpoint. <a href="https://www.vobiz.ai/docs/xml/redirect">Redirection</a> moves a call to a new set of instructions, which is how sub-menus work. <a href="https://www.vobiz.ai/docs/solutions/call-transfer">Call transfer</a> moves a live call and can carry the context with it.</li>
<li><strong>Conversational IVR.</strong> <a href="https://www.vobiz.ai/docs/audio-streams">Audio streams</a> send live call audio to the speech and AI services you choose, and can play audio back. Vobiz also connects to platforms such as <a href="https://www.vobiz.ai/docs/integrations/vapi-dashboard">Vapi</a> and <a href="https://www.vobiz.ai/docs/integrations/livekit">LiveKit</a>.</li>
<li><strong>Numbers.</strong> You can <a href="https://www.vobiz.ai/docs/buy-a-phone-number">buy a phone number</a> for inbound calls, and number types include mobile, landline, and toll-free. If you're in India, see <a href="https://www.vobiz.ai/docs/best-practices/140-160-acquisition">140 and 160 series acquisition</a> for commercial outbound calls; those series are outbound only, so you can pair them with a DID for inbound calls. The <a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">India calling regulations</a> and the <a href="https://www.vobiz.ai/docs/compliance/india/ucc">spam complaints and DND guide</a> cover the platform side.</li>
<li><strong>Records.</strong> Each <a href="https://www.vobiz.ai/docs/cdr">call detail record</a> stores the timing and how the call ended, and <a href="https://www.vobiz.ai/docs/xml/record">Record</a> can capture audio. Because every key press reaches your application, you can log where callers leave a menu.</li>
</ul>
<p>Developers can start with the <a href="https://www.vobiz.ai/docs/examples/vobiz-ivr-xml-python">working IVR example</a>. Test calls and number purchases are billed to your account, so use your own Auth ID and Auth Token and confirm the numbers before you run anything. Current rates are on the <a href="https://www.vobiz.ai/pricing/">Vobiz pricing page</a>.</p>
<h2>Frequently asked questions</h2>
<h3>What is the full form of IVR?</h3>
<p>IVR stands for Interactive Voice Response, an automated phone system that talks to callers, takes their key presses or spoken answers, and then gives information or connects them to a person. IVRS means the same thing, with the S standing for System.</p>
<h3>What does an IVR call mean?</h3>
<p>An IVR call is a phone call answered or placed by an automated system instead of a person. It usually plays a recorded or computer-read message and asks you to press a key or speak. It may then answer your question or connect you to an agent.</p>
<h3>What is an IVR number?</h3>
<p>It is an ordinary business number, often local or toll-free, that connects to an automated menu rather than one desk phone. Customers dial it like any other number. The IVR then answers, and the business decides where each choice leads.</p>
<h3>Is it safe to answer an IVR call?</h3>
<p>Answering is usually fine, because many IVR calls are genuine reminders and alerts. Be careful about what you enter. If you did not expect the call, do not give an OTP, PIN, or card details. Hang up, call the official number yourself, and report suspected fraud through official channels. If you're in India, that includes <a href="https://sancharsaathi.gov.in/sfc/">Chakshu</a>.</p>
<h3>Does an IVR need a smartphone or internet?</h3>
<p>No. A caller only needs a phone that can make a normal call and press keys. That is why India's railway helpline and the IVR option in UPI123Pay can serve feature phone users. The business side usually runs on software connected to the phone network.</p>
<h3>What is the difference between an IVR and a call centre?</h3>
<p>An IVR is the automated system that greets callers and handles or sorts their requests. A call centre is the wider operation, including the agents who take calls. Many call centres use an IVR at the front so that agents receive only the calls that need them.</p>
<h2>Further reading on Vobiz</h2>
<ul>
<li><a href="https://www.vobiz.ai/docs/solutions/cloud-ivr">Cloud IVR on Vobiz</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-multi-level-ivr">What is a multi-level IVR?</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-call-routing">What is call routing?</a></li>
<li><a href="https://www.vobiz.ai/docs/blogs/toll-free-vs-local-vs-mobile-numbers">Toll-free vs local vs mobile numbers</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-a-did-number">What is a DID number?</a> · <a href="https://www.vobiz.ai/docs/best-practices/dlt-registration">DLT registration</a></li>
</ul>
<h2>Sources</h2>
<p><strong>Regulators and government</strong></p>
<ul>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2026-07/PR_No91of2026.pdf">Press release 91/2026 on the 1600 and 140 series</a>, 10 July 2026.</li>
<li>RBI, <a href="https://rbi.org.in/Scripts/BS_PressReleaseDisplay.aspx?prid=53385">Reserve Bank of India launches UPI for Feature Phones (UPI123pay)</a>, March 2022.</li>
<li>DoT, <a href="https://sancharsaathi.gov.in/sfc/">Chakshu: report suspected fraud communication</a>, Sanchar Saathi.</li>
<li>PIB, <a href="https://www.pib.gov.in/PressReleasePage.aspx?PRID=2016613&amp;reg=48&amp;lang=2">Government issues advisory against calls impersonating DoT</a>, March 2024.</li>
</ul>
<p><strong>Industry and reference</strong></p>
<ul>
<li>IBM, <a href="https://www.ibm.com/think/topics/interactive-voice-response">What is interactive voice response (IVR)?</a></li>
<li>CX Today, <a href="https://cxtoday.com/only-1-in-7-customer-service-queries-resolved-with-self-service-gartner-study-finds">Only 1 in 7 customer service queries resolved with self-service, Gartner study finds</a>, 19 August 2024.</li>
<li>Zee Business, <a href="https://www.zeebiz.com/indian-railways/news-indian-railways-integrates-rail-madad-helpline-number-139-for-all-type-of-queries-complaints/assistance-during-travel-152060">Indian Railways integrates Rail Madad helpline number 139</a>, March 2021.</li>
<li>Vedantu, <a href="https://www.vedantu.com/full-form/ivr-full-form">IVR full form</a>.</li>
<li>Wikipedia, <a href="https://en.wikipedia.org/wiki/DTMF_signaling">"DTMF signaling"</a>.</li>
</ul>
<hr />
<p>If you're replacing a menu tree with a voice AI agent, <a href="https://www.vobiz.ai">Vobiz</a> provides the phone numbers and SIP trunks underneath it.</p>
]]></content:encoded></item><item><title><![CDATA[What Is a Virtual Phone Number? How It Works and Which Type to Get]]></title><description><![CDATA[How calls reach you, what free numbers really give you, and which type to get]]></description><link>https://piyuzz.hashnode.dev/what-is-a-virtual-phone-number</link><guid isPermaLink="true">https://piyuzz.hashnode.dev/what-is-a-virtual-phone-number</guid><category><![CDATA[Telephony]]></category><category><![CDATA[voip]]></category><category><![CDATA[voice ai]]></category><category><![CDATA[Security]]></category><category><![CDATA[SIP]]></category><dc:creator><![CDATA[Piyush Sahoo]]></dc:creator><pubDate>Wed, 11 Nov 2026 08:53:31 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/fcc9bd23-4f98-487f-a85c-335f0c451594.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A reference on virtual phone numbers: how routing works in software, the trade-offs of free and trial numbers, and the checks to make before you publish a number.</p>
<p>A virtual phone number is a real phone number that isn't tied to one SIM card, handset, or phone line. Your provider holds it in software and sends each call to the destination you choose, such as a mobile, a team, a voice menu, or an AI agent. Callers dial it normally.</p>
<p>This guide shows how a call reaches you, what "free" numbers really give you, and which type of number suits which job. It ends with the checks to make before you print a number on your website.</p>
<blockquote>
<p><strong>Note: Key takeaways</strong></p>
<ul>
<li><strong>The number and the phone are separate.</strong> You can change where calls go, and customers keep the number they already have.</li>
<li><strong>"Free" covers three different things:</strong> trial access, a number bundled with a paid plan, and a shared public number. Treat the last one as public.</li>
<li><strong>Pick the type by what callers should see and who pays.</strong> Local, toll-free, and mobile-format numbers each send a different signal.</li>
<li><strong>Verification comes first.</strong> Expect identity or business checks before a number goes live.</li>
<li><strong>Messaging apps have their own rules.</strong> Check WhatsApp and SMS support before you buy, including any SIM-binding requirements in your country.</li>
</ul>
</blockquote>
<h2>What is a virtual phone number?</h2>
<p>Think of mail forwarding. Your address stays the same on every business card, while the post goes wherever you tell the service to send it. A virtual number works the same way: the number is the public address, and a routing rule is your forwarding instruction.</p>
<p>The number itself is ordinary. It follows the same <a href="https://www.itu.int/rec/T-REC-E.164">international numbering plan</a> as any other phone number, and people dial it the usual way.</p>
<p>Three common misunderstandings are worth clearing up:</p>
<ul>
<li><strong>It isn't fake.</strong> Calls arrive through the normal phone network, and your provider takes over from there.</li>
<li><strong>It isn't an app.</strong> You might answer in an app, but you can also answer on an ordinary mobile.</li>
<li><strong>It isn't the same as a temporary number.</strong> A business number stays yours while you keep paying for it. A disposable number is built to be thrown away or shared.</li>
</ul>
<h2>How does a call reach a virtual number?</h2>
<p>Each call passes through a chain, and only the last link is yours to edit.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/ce7cd890-7089-4246-a7d0-7f7eb8ed6924.png" alt="Flow diagram. A caller dials your number, the phone network carries the call to your provider, and your provider's routing rule sends it to a mobile phone, a team, a voice menu, or an AI agent. You can edit the rule at any time, and customers keep the same number." style="display:block;margin:0 auto" />

<p>On Vobiz, that editable rule is the number's link to either an <a href="https://www.vobiz.ai/docs/platform/voice/applications">XML application</a>, which asks your server what to do with each call, or an <a href="https://www.vobiz.ai/docs/platform/sip/inbound-trunks">inbound SIP trunk</a>, which hands calls to your phone system or AI platform. Swap the link and calls go somewhere new, with no change to the number.</p>
<p>Calling out works in reverse. Your provider places the call and shows your virtual number as the caller ID. Customers therefore see one number, whichever employee or system dialled.</p>
<p>Two practical details often surprise first-time buyers:</p>
<ul>
<li><strong>Forwarding can cost more.</strong> A forwarded call is really two calls joined together, so the onward leg can carry an extra charge. Ask your provider how it bills that leg. On Vobiz, forwarding uses the <a href="https://www.vobiz.ai/docs/xml/dial">Dial element</a>, which creates a second call and bridges it to the caller, so the two legs are timed, billed, and reported separately. The <a href="https://www.vobiz.ai/docs/resources/dial-transfer-visualizer">Dial transfer visualizer</a> shows both legs step by step.</li>
<li><strong>Internet needs depend on how you answer.</strong> Calls forwarded to an ordinary mobile need only phone signal at your end. Calls answered in an app need a working data connection.</li>
</ul>
<h2>Should your business use a virtual number?</h2>
<p>Start with the problem you have today. This table covers the common cases.</p>
<table>
<thead>
<tr>
<th>Your situation</th>
<th>Good fit?</th>
<th>Why</th>
</tr>
</thead>
<tbody><tr>
<td>Customers call one employee's personal mobile</td>
<td>Yes</td>
<td>The number stays with the business when that person leaves</td>
</tr>
<tr>
<td>Several people need to answer the same number</td>
<td>Yes</td>
<td>One number can ring a whole team</td>
</tr>
<tr>
<td>You want to know which ads bring calls</td>
<td>Yes</td>
<td>A separate number per campaign shows where calls came from</td>
</tr>
<tr>
<td>A driver and a customer need to talk privately</td>
<td>Yes</td>
<td><a href="https://www.vobiz.ai/docs/solutions/number-masking">Number masking</a> hides both real numbers</td>
</tr>
<tr>
<td>You want software or an AI agent to answer</td>
<td>Yes</td>
<td>The routing rule can <a href="https://www.vobiz.ai/docs/integrations">send calls to a voice AI platform</a></td>
</tr>
<tr>
<td>Your current number is printed everywhere</td>
<td>Possibly</td>
<td>Ask about moving it, or run a new number alongside it</td>
</tr>
<tr>
<td>You need one code for a one-off sign-up</td>
<td>No</td>
<td>See the section on free numbers below</td>
</tr>
<tr>
<td>An alarm, a lift, or an emergency line depends on it</td>
<td>Keep your existing line</td>
<td>Emergency location handling varies by provider and setup</td>
</tr>
</tbody></table>
<h2>Can you get a free virtual number?</h2>
<p>You can get something free, but rarely a lasting private number. Numbers carry a real recurring cost, so somebody pays for them. On Vobiz, for example, <a href="https://www.vobiz.ai/docs/buy-a-phone-number#understand-the-fees">each number has a setup fee and a monthly fee</a>.</p>
<p>Before you trust a "free" offer, work out which of these three things you are looking at.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/49a3652a-05ea-4b7e-8b5d-f8ee47cc91e3.png" alt="Comparison table of three kinds of free number. Free credit or trial gives a balance to try a paid service, is seen only by your account, and suits testing. Free with a paid plan bundles a number with calling, is seen only by your account, and suits everyday business calls. A free public number is shared on a public website, its messages are published for anyone, numbers can change often, and it suits nothing you need to keep private." style="display:block;margin:0 auto" />

<p><strong>Free credit or a trial</strong> lets you test a paid service. The <a href="https://www.vobiz.ai/docs/buy-a-phone-number">Vobiz number guide</a> shows how to buy one.</p>
<p><strong>Free with a paid plan</strong> means the number is bundled. Compare the whole plan rather than the headline.</p>
<p><strong>A free public number</strong> is the risky one. A <a href="https://arxiv.org/abs/2306.14497">2023 study of 29 public SMS gateways</a> monitored 17,141 of these numbers and more than 70 million messages over 12 months. <a href="https://ar5iv.labs.arxiv.org/html/2306.14497">Its authors describe</a> shared numbers whose messages appear on a website for anyone to see. They also warn that a login code or recovery message sent to such a number can expose the account behind it.</p>
<p>Apps that advertise a free number are a separate case, and their terms vary. Before you use one, read the terms and answer these questions:</p>
<ul>
<li>Who else can see calls and messages on this number?</li>
<li>Does the number stay yours if you stop using the app for a month?</li>
<li>Can you take it elsewhere if you leave?</li>
<li>Who holds the identity details linked to it?</li>
</ul>
<p>If any answer is unclear, keep that number away from customers, banks, and account recovery.</p>
<h2>Which type of virtual number do you need?</h2>
<p>Pick the type by what your callers should see and who should pay for the call.</p>
<table>
<thead>
<tr>
<th>Type</th>
<th>What callers see</th>
<th>Best for</th>
<th>Check first</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Local</strong></td>
<td>A city or area code</td>
<td>Having a local presence in a market</td>
<td>Which calls that series allows</td>
</tr>
<tr>
<td><strong>Toll-free</strong></td>
<td>A toll-free prefix, such as 1800 or 800</td>
<td>Support lines where callers shouldn't pay</td>
<td>You pay for inbound calls, so check the rate</td>
</tr>
<tr>
<td><strong>Mobile-format</strong></td>
<td>A number shaped like a mobile</td>
<td>Audiences who expect a mobile number</td>
<td>Local rules may limit using these for telemarketing. If you're in India, that includes ordinary 10-digit numbers</td>
</tr>
<tr>
<td><strong>International</strong></td>
<td>A local number in another country</td>
<td>Serving customers abroad without an office there</td>
<td>That country's documents and rules</td>
</tr>
<tr>
<td><strong>Memorable</strong></td>
<td>An easy pattern of digits</td>
<td>Advertising and recall</td>
<td>Availability, which is usually limited</td>
</tr>
</tbody></table>
<p>For more on who pays and when to mix types, read <a href="https://www.vobiz.ai/docs/blogs/toll-free-vs-local-vs-mobile-numbers">toll-free vs local vs mobile numbers</a>.</p>
<p>If you're in India, promotional calls use the 140 series, regulated service calls use 1600, and free-to-call lines use 1800; <a href="https://www.vobiz.ai/docs/compliance/india/ucc">using the wrong series is itself a violation</a>, and <a href="https://www.vobiz.ai/docs/best-practices/140-160-acquisition">140 and 160 series numbers on Vobiz don't take inbound calls</a>.</p>
<h2>Can a virtual number work with WhatsApp, SMS, and OTP codes?</h2>
<p>This is where most disappointment starts, so check it before you buy. Each channel has its own answer.</p>
<p><strong>The regular WhatsApp app.</strong> The consumer app is typically tied to a phone. If you're in India, DoT's November 2025 directions say the app must be <a href="https://www.dot.gov.in/static/uploads/2025/12/4599a9925468a2648d43e3ff724e7f0c.pdf">impossible to use without that specific, active SIM</a>. They also name Telegram, Signal, Snapchat, Arattai, ShareChat, Josh, and JioChat. The deadline moved, and <a href="https://inc42.com/buzz/whatsapp-telegram-sim-binding-mandate-to-take-effect-from-january-1-report/">Inc42 reported in October 2026</a> that platforms must finish by December 31, 2026, with the mandate operational on January 1, 2027. A number with no SIM behind it won't fit that model, so don't build a plan on it.</p>
<p><strong>The WhatsApp Business API.</strong> This is the separate route for businesses. Your number <a href="https://www.vobiz.ai/docs/whatsapp/getting-started/prerequisites">must be able to receive a verification code by voice call or SMS</a>, and it can't already be registered on a WhatsApp app. The reports we read don't discuss how SIM binding treats API accounts, so confirm the position for your setup.</p>
<p><strong>SMS.</strong> Support depends on the number and the country. Check each number's listed capabilities before you buy. If you're in India, <a href="https://www.vobiz.ai/docs/sms/overview">business SMS uses DLT sender IDs rather than long codes</a>, so a voice number and your SMS sender can be different things.</p>
<p><strong>Codes from other services.</strong> Banks and apps may reject some numbers. If a service's code matters to you, test that exact service first.</p>
<h2>How do you get a virtual phone number?</h2>
<p>The steps are similar everywhere, and the first one saves the most money.</p>
<ol>
<li><strong>Write down the job.</strong> Note who calls, who answers, and whether you also call out.</li>
<li><strong>Pick the country and type.</strong> Use the table above. Different jobs can need different numbers.</li>
<li><strong>Check you qualify.</strong> Rules vary by country, and many ask for identity or business documents.</li>
<li><strong>Compare providers.</strong> Use the questions below rather than the headline price.</li>
<li><strong>Complete verification and buy.</strong> Your provider tells you what it needs.</li>
<li><strong>Set your routing, then test.</strong> Call the number from your own phone, and call out from it too. On Vobiz, the <a href="https://www.vobiz.ai/docs/guides/receive-inbound-call">WebRTC Playground</a> lets you answer a new number in a browser tab, which helps when the number has no handset of its own.</li>
</ol>
<p>These questions separate providers better than a feature list:</p>
<table>
<thead>
<tr>
<th>Ask this</th>
<th>Why it matters</th>
</tr>
</thead>
<tbody><tr>
<td>What are the setup, monthly, and per-minute charges?</td>
<td>Many costs sit outside the number's own price</td>
</tr>
<tr>
<td>Is the forwarded leg billed separately?</td>
<td>It adds a second charge to some calls</td>
</tr>
<tr>
<td>Does this number support voice, SMS, or both?</td>
<td>Support varies by number</td>
</tr>
<tr>
<td>What verification do you need, and how long does it take?</td>
<td>This sets your real go-live date</td>
</tr>
<tr>
<td>What happens to the number if I stop paying?</td>
<td>A released number may go to someone else</td>
</tr>
<tr>
<td>Can I use it from every country my team works in?</td>
<td>Some country routes limit where calls can land. If you're in India, both legs of a call on India routes must stay in the country</td>
</tr>
<tr>
<td>How do emergency calls work on this number?</td>
<td>You need the answer before you rely on it</td>
</tr>
</tbody></table>
<h3>Can you keep your existing number?</h3>
<p>Moving a number between providers is called porting, and support differs by country, number type, and provider. Ask both your current and your new provider before you plan around it.</p>
<p>There is a simple alternative. Buy a new number, run it alongside the old one, and update your website and listings over time. Our guide to <a href="https://www.vobiz.ai/docs/blogs/what-is-a-landline-number">landline numbers</a> covers that kind of changeover in more detail.</p>
<h2>How does a virtual number compare with SIM, landline, VoIP, and DID?</h2>
<p>These terms describe different layers, which is why people mix them up.</p>
<table>
<thead>
<tr>
<th>Term</th>
<th>What it means</th>
<th>Tied to a device or site?</th>
<th>Who usually needs the term</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Virtual number</strong></td>
<td>A number whose destination you set in software</td>
<td>No</td>
<td>Anyone buying a business number</td>
</tr>
<tr>
<td><strong>SIM number</strong></td>
<td>A number linked to a SIM or eSIM in one phone</td>
<td>Yes, the phone holding the SIM</td>
<td>Everyday mobile users</td>
</tr>
<tr>
<td><a href="https://www.vobiz.ai/docs/blogs/what-is-a-landline-number"><strong>Landline number</strong></a></td>
<td>A fixed-line number linked to an area code</td>
<td>Usually a line at an address</td>
<td>Offices and shops</td>
</tr>
<tr>
<td><a href="https://www.vobiz.ai/docs/blogs/what-is-voip"><strong>VoIP</strong></a></td>
<td>The technology that carries voice over the internet</td>
<td>Not a number at all</td>
<td>Whoever runs your phone system</td>
</tr>
<tr>
<td><a href="https://www.vobiz.ai/docs/blogs/what-is-a-did-number"><strong>DID</strong></a></td>
<td>The method that delivers inbound calls directly to your system</td>
<td>No</td>
<td>Whoever connects your phone system</td>
</tr>
</tbody></table>
<p>In short, you buy a virtual number, VoIP often carries the call, and DID describes how it arrives. One number can be all three.</p>
<h2>What should you watch out for?</h2>
<p>Most problems are avoidable when you know about them early.</p>
<ul>
<li><strong>Emergency calls.</strong> Don't assume responders will get your location. <a href="https://www.law.cornell.edu/cfr/text/47/9.11">US rules for internet calling</a> set location duties for 911 calls. For services used from more than one place, one permitted method relies on a registered location you supply and keep updated. Outside the US, ask your provider, and keep a regular mobile or landline available until you have an answer.</li>
<li><strong>Spam labels.</strong> Bursts of short calls can get a number flagged. Vobiz's <a href="https://www.vobiz.ai/docs/best-practices/number-utilization">number utilization guide</a> suggests spreading calls through the day and avoiding sudden spikes on new numbers.</li>
<li><strong>Released numbers.</strong> If you release a number, <a href="https://www.vobiz.ai/docs/buy-a-phone-number#manage-and-release">you may not get the same digits back</a>. Print a number only once you plan to keep paying for it.</li>
<li><strong>Your own network.</strong> If your team answers in an app, a weak connection means weak calls. Ordinary mobile forwarding is a useful backup.</li>
</ul>
<h2>How Vobiz handles virtual numbers</h2>
<p><a href="https://www.vobiz.ai/docs/introduction">Vobiz</a> is a communications platform. You buy numbers and connect them to the calling setup you already use, or to one you build. On Vobiz, a number is called a DID. The setup path looks like this:</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/dceca096-4533-4fe2-91b2-696133a97836.png" alt="Six-step timeline for an Indian number on Vobiz. Verify with KYC. Choose by country and compare fees. Buy, with fees taken immediately. Wait for registration. Route the number to an application or SIP trunk, which is required. Test with a billed call from your own phone." style="display:block;margin:0 auto" />

<p>Those steps are the same in other countries, though verification details differ.</p>
<ul>
<li><strong>Verification.</strong> Checks vary by country. If you're in India, <a href="https://www.vobiz.ai/docs/compliance/india/kyc">India number KYC</a> is automated, and companies verify with PAN and GST.</li>
<li><strong>Buying.</strong> You can <a href="https://www.vobiz.ai/docs/buy-a-phone-number">buy a number in the console or through the API</a>. Fees come off your balance straight away, so confirm the number and its cost first.</li>
<li><strong>Routing.</strong> <a href="https://www.vobiz.ai/docs/applications/attach-number">Attach the number to an application</a> to run call flows, or <a href="https://www.vobiz.ai/docs/trunks/assign-number">assign it to a SIP trunk</a> to reach your phone system or AI platform.</li>
<li><strong>Call handling.</strong> An application uses <a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">VobizXML instructions from your server</a>, which arrive through webhooks (callbacks). It can <a href="https://www.vobiz.ai/docs/xml/dial">forward a call</a> or run a <a href="https://www.vobiz.ai/docs/solutions/cloud-ivr">voice menu</a>.</li>
<li><strong>AI agents.</strong> Vobiz connects to <a href="https://www.vobiz.ai/docs/integrations">platforms such as Vapi, Retell, ElevenLabs, and LiveKit</a>.</li>
<li><strong>Number series.</strong> Vobiz works with numbers in many countries. If you're in India, the <a href="https://www.vobiz.ai/docs/best-practices/140-160-acquisition">140 and 160 series guide</a> covers the commercial series, which can be used only during permitted calling hours, and the <a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">calling regulations</a> set the wider rules.</li>
<li><strong>Messaging.</strong> Vobiz also covers <a href="https://www.vobiz.ai/docs/sms/overview">SMS</a> and the <a href="https://www.vobiz.ai/docs/whatsapp/getting-started/introduction">WhatsApp Business API</a>.</li>
<li><strong>Starting fresh.</strong> Vobiz numbers come from its inventory, so you buy a new number and point your call flows at it.</li>
<li><strong>Pricing.</strong> Current rates are on the <a href="https://www.vobiz.ai/pricing/">Vobiz pricing page</a>.</li>
</ul>
<p>Buying a number and placing test calls are billed to your account. Use your own Auth ID and Auth Token, and confirm numbers and costs before you run anything.</p>
<h2>Frequently asked questions</h2>
<h3>What is a virtual phone number in simple terms?</h3>
<p>It is a normal phone number that lives with a provider instead of inside one SIM or phone line. When someone dials it, the provider sends the call wherever you have chosen. You can change that destination later, and callers keep using the same number.</p>
<h3>Can I get a virtual phone number for free?</h3>
<p>Some providers give a trial balance, a number bundled with a paid plan, or a shared public number. A lasting private number usually costs money. Avoid public numbers for anything sensitive, because researchers found their messages are published for anyone to read.</p>
<h3>Is a virtual number legal?</h3>
<p>It depends on the country. In most places a virtual number is legal when an authorised provider issues it and you follow local calling rules. If you're in India, that means completing KYC first and following TRAI's rules on which series you use for promotional and service calls; getting a number through fraud or impersonation is an offence. Take legal advice for your own case.</p>
<h3>Can I use a virtual number on WhatsApp?</h3>
<p>Plan on the WhatsApp Business API rather than the regular app. For the API, the number must be able to receive a verification code by voice call or SMS. If you're in India, SIM binding directions require named messaging apps to stay linked to a SIM in the device.</p>
<h3>Can a virtual number receive SMS and OTP codes?</h3>
<p>Some can, but it depends on the number and the country. Check the number's listed capabilities before you buy. Services that send codes may also refuse some numbers, so test the exact service you depend on before you rely on it.</p>
<h3>Is a virtual number the same as a VoIP number or a DID?</h3>
<p>They overlap but describe different things. Virtual number is the service you buy. VoIP is the technology that carries voice over the internet. DID is the way inbound calls reach your system. One number can be all three at once.</p>
<h2>Further reading on Vobiz</h2>
<ul>
<li><a href="https://www.vobiz.ai/docs/blogs/what-is-a-did-number">What is a DID number?</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-a-landline-number">What is a landline number?</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-voip">What is VoIP?</a> · <a href="https://www.vobiz.ai/docs/blogs/toll-free-vs-local-vs-mobile-numbers">Toll-free vs local vs mobile numbers</a></li>
<li><a href="https://www.vobiz.ai/docs/buy-a-phone-number">Buy a phone number on Vobiz</a> · <a href="https://www.vobiz.ai/docs/best-practices/number-utilization">Number utilization guide</a> · <a href="https://www.vobiz.ai/docs/best-practices/dlt-registration">DLT registration</a></li>
<li><a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">India calling regulations</a> · <a href="https://www.vobiz.ai/docs/compliance/india/kyc">India number KYC</a> · <a href="https://www.vobiz.ai/docs/compliance/india/ucc">UCC and NDNC compliance</a></li>
</ul>
<h2>Sources</h2>
<p><strong>Regulators and standards</strong></p>
<ul>
<li>ITU-T, <a href="https://www.itu.int/rec/T-REC-E.164">Recommendation E.164: The international public telecommunication numbering plan</a>.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2026-07/PR_No91of2026.pdf">Press release 91/2026 on the 1600 and 140 series</a>, 10 July 2026.</li>
<li>Department of Telecommunications, <a href="https://www.dot.gov.in/static/uploads/2025/12/4599a9925468a2648d43e3ff724e7f0c.pdf">PIB release on SIM binding directions</a>, 1 December 2025.</li>
<li>Cornell Legal Information Institute, <a href="https://www.law.cornell.edu/cfr/text/47/9.11">47 CFR 9.11, US emergency calling rules for interconnected VoIP</a>.</li>
</ul>
<p><strong>Research</strong></p>
<ul>
<li>Moreno, Matic, Vallina-Rodriguez, and Tapiador, <a href="https://arxiv.org/abs/2306.14497">Your Code is 0000: An Analysis of the Disposable Phone Numbers Ecosystem</a>, 2023. <a href="https://ar5iv.labs.arxiv.org/html/2306.14497">Readable HTML version</a>.</li>
</ul>
<p><strong>News and industry</strong></p>
<ul>
<li>Inc42, <a href="https://inc42.com/buzz/whatsapp-telegram-sim-binding-mandate-to-take-effect-from-january-1-report/">WhatsApp, Telegram SIM-binding mandate to take effect from January 1</a>, 23 October 2026.</li>
</ul>
<hr />
<p>If a voice AI agent will answer that virtual number, <a href="https://www.vobiz.ai">Vobiz</a> is AI-native telephony with numbers and SIP trunks for exactly that.</p>
]]></content:encoded></item><item><title><![CDATA[What Is a DID Number? Full Form, SIP Routing and Sizing]]></title><description><![CDATA[Direct Inward Dialing, hop by hop over SIP, plus how to size a DID block]]></description><link>https://piyuzz.hashnode.dev/what-is-a-did-number</link><guid isPermaLink="true">https://piyuzz.hashnode.dev/what-is-a-did-number</guid><category><![CDATA[SIP]]></category><category><![CDATA[Telephony]]></category><category><![CDATA[voip]]></category><category><![CDATA[sip trunking]]></category><category><![CDATA[voice ai]]></category><dc:creator><![CDATA[Piyush Sahoo]]></dc:creator><pubDate>Wed, 11 Nov 2026 08:29:57 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/13820216-e5ef-4566-88fa-5648b903eaa3.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A reference on DID numbers: what the term means, how the dialled digits reach your system over a trunk, and how to size a DID block.</p>
<p>DID stands for Direct Inward Dialing. It means a carrier delivers a phone number's calls over a shared trunk, along with the digits the caller dialled, so your system can send the call straight to one person, team, or application. Hundreds of DID numbers can share one trunk.</p>
<p>Europe and Oceania often say <a href="https://en.wikipedia.org/wiki/Direct_inward_dial">DDI, for direct dial-in</a>. If you searched for "DI number" in a telecom context, you probably mean the same thing. This guide follows the dialled number hop by hop, and helps you decide how many DIDs you need.</p>
<blockquote>
<p><strong>Note: Key takeaways</strong></p>
<ul>
<li><strong>DID describes delivery, not a kind of number.</strong> A local, toll-free, or virtual number can be a DID as well.</li>
<li><strong>The dialled digits are the routing key.</strong> They reach you inside a SIP message or as a field in webhooks (callbacks).</li>
<li><strong>Numbers and channels are separate counts.</strong> In our worked example, 500 DIDs need only 25 channels.</li>
<li><strong>Buy numbers for identity, not capacity.</strong> Add one when a person, campaign, tenant, or agent needs its own address.</li>
<li><strong>Direction and portability vary.</strong> A number may be inbound, outbound, or both, and keeping it when you change provider depends on the country and the number type.</li>
</ul>
</blockquote>
<h2>What is the full form of a DID number?</h2>
<p>The full form is <strong>Direct Inward Dialing number</strong>. The name describes its first job, which was letting an outside caller dial inward to one extension without passing through an operator.</p>
<p>The service works in two parts. The telephone company <a href="https://en.wikipedia.org/wiki/Direct_inward_dial">allocates a range of numbers and connects them to your PBX over one or more trunks</a>. It then signals which number was dialled, and the PBX uses that to pick the extension.</p>
<p><a href="https://en.wikipedia.org/wiki/Direct_inward_dial">Wikipedia credits AT&amp;T</a> with developing the feature in the US in the 1960s, modelled on an earlier German service. That entry carries a needs-citations notice, so treat the date as commonly repeated rather than settled.</p>
<h3>A DID number example</h3>
<p>Assume a company rents a block of 100 numbers, from +1 415 XXXX 1000 to +1 415 XXXX 1099, and has 30 channels.</p>
<ul>
<li>A caller dials +1 415 XXXX 1042. The company's system reads the digits and rings the collections team.</li>
<li>Another caller dials +1 415 XXXX 1043. The same trunk delivers that call to a voice AI agent.</li>
<li>Up to 30 calls can run at once, spread across any of the 100 numbers.</li>
</ul>
<p>The same pattern works with a London +44 number, a Bengaluru +91 number, or any other range your carrier assigns.</p>
<p>To each caller, this looks like an ordinary phone number. Nothing about a DID is visible from outside.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/4c953561-93b9-4367-9391-5595e057833f.png" alt="Comparison diagram. Without DID, four numbers need four separate lines into a PBX and allow four calls at most. With DID, a block of 1,000 numbers shares one trunk with 30 channels, and the receiving system reads the dialled digits to route each call. Counts are illustrative." style="display:block;margin:0 auto" />

<h2>How does the dialled number reach your system?</h2>
<p>Everything a DID does depends on one piece of data surviving the trip: the number the caller dialled. Follow it through a call.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/6f8c542a-0964-496f-9cd8-94909beca629.png" alt="Flow diagram of an inbound DID call. The caller dials, the phone network routes on the prefix to the carrier holding the range, and the provider looks up the DID. An application rule sends a webhook with the number in the To parameter, and the server returns VobizXML. A SIP trunk rule sends a SIP INVITE with the number usually in the Request-URI, and a PBX or AI platform matches it." style="display:block;margin:0 auto" />

<p>The form of those digits depends on how the call is delivered:</p>
<table>
<thead>
<tr>
<th>Delivery</th>
<th>How the digits arrive</th>
<th>What you match on</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Analog or PRI trunk</strong></td>
<td>Through <a href="https://en.wikipedia.org/wiki/Direct_inward_dial">DNIS, in a prearranged and often partial format</a> such as the last four digits</td>
<td>A short extension string</td>
</tr>
<tr>
<td><strong>SIP trunk</strong></td>
<td>Inside SIP URIs. <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-8.1.1.1">RFC 3261</a> says the initial Request-URI should match the To field</td>
<td>The full number, after you normalise its format</td>
</tr>
<tr>
<td><strong>Application webhook</strong></td>
<td>As the <a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">dialed-number parameter</a> sent to your answer URL</td>
<td>The full number in your code</td>
</tr>
<tr>
<td><strong>SIP registration</strong></td>
<td>The provider sends the call straight to a registered phone or soft-phone</td>
<td>Nothing, because the binding already chose the device</td>
</tr>
</tbody></table>
<h3>What is a SIP DID?</h3>
<p>A SIP DID is a DID delivered over SIP rather than over a PRI or analog circuit. Three words get mixed up here, and each counts something different:</p>
<ul>
<li><strong>The DID</strong> is the address callers dial.</li>
<li><strong>The</strong> <a href="https://www.vobiz.ai/docs/blogs/what-is-sip-trunking"><strong>SIP trunk</strong></a> is the configured connection that delivers calls for many addresses.</li>
<li><strong>The channel</strong> is one call in progress on that connection.</li>
</ul>
<p>On Vobiz, the inbound side of this is an <a href="https://www.vobiz.ai/docs/platform/sip/inbound-trunks">inbound trunk</a>. Each trunk forwards its numbers' calls to a primary <a href="https://www.vobiz.ai/docs/platform/sip/origination-uri">origination URI</a>, the host, port, and transport of your PBX or AI platform, and you can keep a second URI ready as a backup.</p>
<h3>Two format traps in SIP routing</h3>
<p><strong>Number format.</strong> A global number under <a href="https://www.itu.int/rec/T-REC-E.164">E.164</a> has <a href="https://en.wikipedia.org/wiki/E.164">at most fifteen digits, starting with a country code</a>. Your PBX may hold rules in another form, such as a four-digit extension. Convert the incoming number to one form before you match it. Our <a href="https://www.vobiz.ai/docs/blogs/what-is-e164-phone-number-formatting">E.164 guide</a> covers the details.</p>
<p><strong>Forwarded calls.</strong> RFC 3261 says the To field <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-8.2.2.1">identifies the original recipient, which may not be the system now handling the request</a>. Decide which field your dial plan trusts, then test it with a forwarded call.</p>
<h3>When a DID misbehaves</h3>
<table>
<thead>
<tr>
<th>What you see</th>
<th>Likely cause</th>
<th>Check first</th>
</tr>
</thead>
<tbody><tr>
<td>Number bought, but inbound calls never arrive</td>
<td>The number is <a href="https://www.vobiz.ai/docs/buy-a-phone-number#route-your-number">owned but not yet routed</a></td>
<td>Its application or trunk link</td>
</tr>
<tr>
<td>Call reaches your PBX, then fails or lands on a default route</td>
<td>The dial plan expects a different digit format</td>
<td>Logged digits against the rule</td>
</tr>
<tr>
<td>A forwarded call reaches the wrong team or tenant</td>
<td>Your rule reads a field that changed in transit</td>
<td>The Request-URI against To</td>
</tr>
<tr>
<td>Callers hear busy while the number looks healthy</td>
<td>All channels are in use, regardless of how many DIDs you hold</td>
<td><a href="https://www.vobiz.ai/docs/platform/capacity/concurrency">Live concurrency</a></td>
</tr>
<tr>
<td>Outbound call rejected just after you bought the number</td>
<td><a href="https://www.vobiz.ai/docs/faq/from-number-not-owned">A newly bought number may still be registering</a></td>
<td>The time since purchase</td>
</tr>
</tbody></table>
<p>A cloud DID has no handset to pick up, so the first test is awkward. On Vobiz, the <a href="https://www.vobiz.ai/docs/guides/receive-inbound-call">WebRTC Playground</a> turns a browser tab into a softphone, so you can confirm a new number rings before you point it at an application or a trunk.</p>
<h2>How does a DID differ from virtual, toll-free, and mobile numbers?</h2>
<p>These terms overlap because each answers a different question. One number can fit several of them at once.</p>
<table>
<thead>
<tr>
<th>Term</th>
<th>The question it answers</th>
<th>Relationship to DID</th>
</tr>
</thead>
<tbody><tr>
<td><strong>DID</strong></td>
<td>How does the call reach your system?</td>
<td>Not applicable</td>
</tr>
<tr>
<td><a href="https://www.vobiz.ai/docs/blogs/what-is-a-virtual-phone-number"><strong>Virtual number</strong></a></td>
<td>Is it free of a physical line or SIM?</td>
<td>Most virtual numbers used for inbound calls are also DIDs</td>
</tr>
<tr>
<td><a href="https://www.vobiz.ai/docs/blogs/toll-free-vs-local-vs-mobile-numbers"><strong>Toll-free number</strong></a></td>
<td>Who pays? The called party typically bears the cost</td>
<td>Can be delivered as a DID</td>
</tr>
<tr>
<td><strong>Mobile-format number</strong></td>
<td>Which number range does the caller see?</td>
<td>Can be delivered as a DID</td>
</tr>
<tr>
<td><strong>Extension</strong></td>
<td>Which internal phone rings?</td>
<td>Not a public number, though a DID can map to one</td>
</tr>
<tr>
<td><strong>Direct outward dialing (DOD)</strong></td>
<td>How do internal users call out?</td>
<td>The <a href="https://en.wikipedia.org/wiki/Direct_inward_dial">outbound counterpart, often combined with DID</a></td>
</tr>
</tbody></table>
<p>So is a DID different from a regular phone number? From the caller's side, no. The difference is on your side, where a number points to a rule you control rather than to a fixed line.</p>
<h2>Do you need DID numbers, and how many?</h2>
<p>Start from what the number has to identify. A shared number with an <a href="https://www.vobiz.ai/docs/blogs/what-is-an-ivr">IVR</a> is often enough, and each extra DID should earn its place.</p>
<table>
<thead>
<tr>
<th>Your situation</th>
<th>What to use</th>
<th>Why</th>
</tr>
</thead>
<tbody><tr>
<td>One brand line, and callers choose a department</td>
<td>One number and an IVR</td>
<td>Callers decide, so you don't need separate addresses</td>
</tr>
<tr>
<td>Key people or accounts need a direct line</td>
<td>One DID per person or account</td>
<td>The caller skips the menu</td>
</tr>
<tr>
<td>You want to measure marketing sources</td>
<td>One DID per campaign</td>
<td>The dialled number shows which source drove the call</td>
</tr>
<tr>
<td>You run a multi-tenant product</td>
<td>One or more DIDs per tenant</td>
<td>Routing and records stay separate. On Vobiz, you can <a href="https://www.vobiz.ai/docs/account-phone-number/assign-subaccount">assign a DID to a sub-account</a></td>
</tr>
<tr>
<td>You run several voice AI agents</td>
<td>One DID per agent or flow</td>
<td>Each number points to its own <a href="https://www.vobiz.ai/docs/solutions/ai-voice-agent">agent</a> and shows up in call records</td>
</tr>
<tr>
<td>You serve many cities</td>
<td>One local DID per city</td>
<td>Callers see a local code, and all calls reach the same system</td>
</tr>
<tr>
<td>Your outbound answer rate is falling</td>
<td>Fix pacing and your list, not the number</td>
<td><a href="https://www.vobiz.ai/docs/best-practices/number-health-guide">Rotating numbers to dodge flags gets penalised</a></td>
</tr>
</tbody></table>
<h3>Worked example: numbers by identity, channels by load</h3>
<p>Assume you hold 500 DIDs, one for each salesperson and campaign. In the busiest hour, you take 240 calls that last 4 minutes each.</p>
<ol>
<li><strong>Load:</strong> 240 × 4 ÷ 60 = 16 erlangs.</li>
<li><strong>Channels:</strong> Erlang B gives 25 channels for 0.93% blocking, which meets a 1% target.</li>
<li><strong>Bandwidth:</strong> At about 87 kbps per G.711 call, <a href="https://www.trai.gov.in/sites/default/files/2025-02/Recommendation_06022025.pdf">a figure used by TRAI</a>, that's about 2.2 Mbps.</li>
</ol>
<p>Those are our own calculations. If the same traffic came through 5 numbers, you'd still need 25 channels. Our <a href="https://www.vobiz.ai/docs/blogs/what-is-sip-trunking">SIP trunking guide</a> explains the formula, and the <a href="https://www.vobiz.ai/docs/resources/calculator">CPS and concurrency calculator</a> models outbound campaigns.</p>
<h2>What should you ask a DID provider?</h2>
<p>Whichever provider you consider, these questions separate one offer from another:</p>
<table>
<thead>
<tr>
<th>Ask</th>
<th>Why it matters</th>
</tr>
</thead>
<tbody><tr>
<td>Which countries and series can you supply, and in which direction?</td>
<td>"DID" alone doesn't tell you whether a number takes inbound calls</td>
</tr>
<tr>
<td>What verification comes first?</td>
<td>KYC requirements set your real lead time</td>
</tr>
<tr>
<td>What can a number route to?</td>
<td>You may need a webhook now and a SIP trunk later</td>
</tr>
<tr>
<td>How are channels sold and limited?</td>
<td>Your number count doesn't set your capacity</td>
</tr>
<tr>
<td>Can I see each number's answer rate and spam status?</td>
<td>You want warning before a number burns out</td>
</tr>
<tr>
<td>What are the minimum term, release terms, and cool-off rules?</td>
<td>They decide how freely you can change your number estate</td>
</tr>
</tbody></table>
<h2>How Vobiz handles DID numbers</h2>
<p>Vobiz treats a number as a routable resource that you manage in the console or over the <a href="https://www.vobiz.ai/docs/account-phone-number">Phone Numbers API</a>.</p>
<ul>
<li><strong>Finding numbers.</strong> You <a href="https://www.vobiz.ai/docs/account-phone-number/list-inventory-numbers">browse inventory</a> by country and digit pattern, and each number lists its capabilities and fees.</li>
<li><strong>Buying.</strong> A <a href="https://www.vobiz.ai/docs/account-phone-number/purchase-from-inventory">purchase</a> debits the setup fee and first monthly fee from your balance, and a <a href="https://www.vobiz.ai/docs/buy-a-phone-number">step-by-step guide</a> walks through it. Use your own Auth ID and Auth Token, and confirm the number first. Current rates are on the <a href="https://www.vobiz.ai/pricing/">Vobiz pricing page</a>.</li>
<li><strong>Routing.</strong> A number routes through <a href="https://www.vobiz.ai/docs/applications/attach-number">an application</a> or <a href="https://www.vobiz.ai/docs/trunks/assign-number">a SIP trunk</a>, not both. An application fetches <a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">VobizXML</a> from your answer URL. A trunk forwards the call to an <a href="https://www.vobiz.ai/docs/platform/sip/origination-uri">origination URI</a> on your PBX or AI platform.</li>
<li><strong>India numbers.</strong> If you're in India, <a href="https://www.vobiz.ai/docs/compliance/india/kyc">KYC</a> comes before you rent a number. The <a href="https://www.vobiz.ai/docs/best-practices/did-provisioning">provisioning guide</a> covers 140 and 160 DIDs, the <a href="https://www.vobiz.ai/docs/best-practices/92-series-guide">92 series guide</a> covers mobile-format numbers, and the <a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">calling regulations</a> set which series you can use.</li>
<li><strong>Tenants.</strong> You can <a href="https://www.vobiz.ai/docs/account-phone-number/assign-subaccount">assign a DID to a sub-account</a>. Moving a recently used DID back to the parent pool has a <a href="https://www.vobiz.ai/docs/account-phone-number">15-day cool-off</a>, which keeps a recently active number from reaching another customer too soon.</li>
<li><strong>Reputation.</strong> The <a href="https://www.vobiz.ai/docs/account-phone-number/get-number-health">Number Health API</a> returns each number's status, spam flag, answer rate, and call metrics. The <a href="https://www.vobiz.ai/docs/best-practices/number-health-guide">number health guide</a> covers warm-up and pacing.</li>
<li><strong>Moving to Vobiz.</strong> You <a href="https://www.vobiz.ai/docs/buy-a-phone-number">buy a new Vobiz number</a> from inventory, point your call flows at it, and keep your old number live during the switch.</li>
<li><strong>Reach.</strong> Voice AI platforms such as <a href="https://www.vobiz.ai/docs/integrations/livekit">LiveKit</a> and <a href="https://www.vobiz.ai/docs/integrations/vapi-dashboard">Vapi</a> connect to your numbers over SIP.</li>
</ul>
<h2>Frequently asked questions</h2>
<h3>What is the full form of a DID number?</h3>
<p>DID stands for Direct Inward Dialing. It means a phone number's calls arrive over a shared trunk with the dialled digits attached, so a call can go straight to one person, team, or application. In Europe and Oceania, the same service is often called DDI, for direct dial-in.</p>
<h3>What is an example of a DID number?</h3>
<p>A company rents 100 numbers from +1 415 XXXX 1000 to +1 415 XXXX 1099 on one trunk. A caller dials the number ending 1042, and the system routes that call to collections. To the caller, it looks like any ordinary phone number. The same idea applies to a +44 or +91 range, or any other block your carrier assigns.</p>
<h3>How does a DID differ from a SIP trunk?</h3>
<p>A DID is an address that callers dial. A SIP trunk is the configured connection that delivers calls for many DIDs to your system. One trunk can carry many numbers, and the channel count, not the number count, limits how many calls run at once.</p>
<h3>Can a DID number make outbound calls?</h3>
<p>Often, yes. The name describes inbound delivery, but a provider can also let the same number act as your caller ID. Direction still varies by number series, so always ask which directions a number supports. If you're in India, 140 and 160 series numbers are outbound only, so you pair them with a standard DID for inbound calls.</p>
<h3>How is a DID different from a virtual number?</h3>
<p>The terms answer different questions. Virtual means the number isn't tied to a physical line or SIM. DID means the call and its dialled digits reach your system so you can route them. Most virtual numbers that take inbound calls are also DIDs.</p>
<h3>Can I keep my DID number when I change provider?</h3>
<p>It depends on the country and the number type. <a href="https://en.wikipedia.org/wiki/Local_number_portability">Portability rules differ by country</a>, and some number types are harder to move than others. If you're in India, mobile numbers can be ported, while fixed-line and toll-free portability is more limited. Ask your provider, and plan to run old and new numbers side by side while callers switch.</p>
<h2>Further reading on Vobiz</h2>
<ul>
<li><a href="https://www.vobiz.ai/docs/platform/sip/inbound-trunks">Inbound trunks</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-a-landline-number">What is a landline number?</a></li>
<li><a href="https://www.vobiz.ai/docs/compliance/india/ucc">UCC management</a> · <a href="https://www.vobiz.ai/docs/faq/number-series">140, 160, and 92 series FAQ</a></li>
<li><a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">How VobizXML works</a> · <a href="https://www.vobiz.ai/docs/best-practices/number-utilization">Number utilization guide</a></li>
</ul>
<h2>Sources</h2>
<p><strong>Standards</strong></p>
<ul>
<li>ITU-T, <a href="https://www.itu.int/rec/T-REC-E.164">Recommendation E.164: The international public telecommunication numbering plan</a>.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3261.html">RFC 3261: SIP: Session Initiation Protocol</a>, June 2002.</li>
</ul>
<p><strong>Reference</strong></p>
<ul>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2025-02/Recommendation_06022025.pdf">Recommendations on Revision of National Numbering Plan</a>, 6 February 2025.</li>
<li>Wikipedia, <a href="https://en.wikipedia.org/wiki/Direct_inward_dial">"Direct inward dial"</a>.</li>
<li>Wikipedia, <a href="https://en.wikipedia.org/wiki/E.164">"E.164"</a>.</li>
<li>Wikipedia, <a href="https://en.wikipedia.org/wiki/Local_number_portability">"Local number portability"</a>.</li>
</ul>
<hr />
<p>If a DID is going to ring a voice AI agent, <a href="https://www.vobiz.ai">Vobiz</a> provides the numbers and SIP trunking to connect it.</p>
]]></content:encoded></item><item><title><![CDATA[What Is a Voice API? Call Lifecycle, Webhooks and Media]]></title><description><![CDATA[The three channels, each step of a call, webhook design, media streams and capacity sizing]]></description><link>https://piyuzz.hashnode.dev/what-is-a-voice-api</link><guid isPermaLink="true">https://piyuzz.hashnode.dev/what-is-a-voice-api</guid><category><![CDATA[webhooks]]></category><category><![CDATA[api]]></category><category><![CDATA[Telephony]]></category><category><![CDATA[voice ai]]></category><dc:creator><![CDATA[Piyush Sahoo]]></dc:creator><pubDate>Wed, 11 Nov 2026 08:16:29 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/ddf18071-c8a5-4ffa-aa74-7ccf5219a3da.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A reference for developers integrating programmable calling: the call lifecycle, webhook (callback) handling, when audio reaches your servers, and how to size capacity, with links to the Vobiz reference pages for each concept.</p>
<p>A voice API is a set of web interfaces that lets your software place, answer, and control phone calls. Your code sends HTTP requests to start or change a call, receives webhooks (callbacks) when the call changes state, and can stream live audio, while the provider runs the telephone network connections.</p>
<p>This guide explains how that works once a call is live: the three channels your application uses, each step of a call, how to design webhook handlers, when audio reaches your servers, and how to size capacity. Vobiz details link to their reference pages, so you can move from concept to implementation.</p>
<blockquote>
<p><strong>Note: Key takeaways</strong></p>
<ul>
<li>A voice API separates a phone call into three planes: <strong>commands</strong> you send, <strong>events</strong> you receive, and <strong>media</strong>, the audio itself.</li>
<li>Your application answers an event with <a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">VobizXML</a>, or changes a live call with a <a href="https://www.vobiz.ai/docs/call/overview">REST request</a>. Most production systems use both.</li>
<li>Webhook handlers must be fast, idempotent, and signature-checked. A slow answer handler is heard by the caller as silence.</li>
<li>Capacity has separate limits: <a href="https://www.vobiz.ai/docs/faq/error-429">CPS and concurrency</a> govern calls, and a <a href="https://www.vobiz.ai/docs/rate-limits">request quota</a> governs other API traffic.</li>
<li>Size channels with <strong>calls per second × average seconds per call</strong>, and count ringing time.</li>
</ul>
</blockquote>
<h2>What is a voice API?</h2>
<p>With a voice API, a phone call becomes a resource your software can create, inspect, and change. The call still travels over the <a href="https://en.wikipedia.org/wiki/Public_switched_telephone_network">public switched telephone network (PSTN)</a> or a <a href="https://www.rfc-editor.org/rfc/rfc3261">SIP</a> connection. Your application, though, deals with HTTP requests, identifiers, and events instead of switches and carrier contracts.</p>
<p>The term is used loosely. Some vendors, such as <a href="https://typecast.ai/learn/what-is-a-voice-api-and-how-can-you-use-it/">Typecast</a>, use it to include speech recognition and speech synthesis. This article means the telephony kind, and this table separates it from its neighbours.</p>
<table>
<thead>
<tr>
<th>Technology</th>
<th>What it gives you</th>
<th>What you still own</th>
<th>Reach for it when</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Voice API</strong></td>
<td>Programmatic calls, events, call control, and optional audio streams</td>
<td>Call logic and webhook servers</td>
<td>Your software decides what happens on each call</td>
</tr>
<tr>
<td><a href="https://www.vobiz.ai/docs/concepts/sip-trunking"><strong>SIP trunk</strong></a></td>
<td>A connection between the phone network and your SIP system</td>
<td>The PBX or SIP platform that handles the call</td>
<td>You already run SIP infrastructure</td>
</tr>
<tr>
<td><strong>Speech API</strong></td>
<td>Speech-to-text or text-to-speech</td>
<td>Getting audio to and from the phone call</td>
<td>You need the speech models, not the phone connection</td>
</tr>
<tr>
<td><strong>Voice agent platform</strong></td>
<td>A managed speech and conversation pipeline</td>
<td>Agent design, plus a phone connection</td>
<td>You want a <a href="https://www.vobiz.ai/docs/concepts/sip-vs-websockets">managed AI layer</a> instead of building your own</td>
</tr>
</tbody></table>
<p>These layers combine. An AI voice agent can use a speech API for transcription, a language model for decisions, and a voice API or trunk for the phone call.</p>
<h2>How does a voice API work? The three planes</h2>
<p>The clearest way to understand a voice API is to separate its traffic by job. A call has three planes, and each has its own transport, timing, and failure modes.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/1f96d4aa-d0cc-4cfc-9eb0-62f656e98cbe.png" alt="Diagram of the three voice API planes between your application and Vobiz: REST commands, webhook events with VobizXML responses, and live audio over a WebSocket or RTP, with Vobiz connected to the phone network." style="display:block;margin:0 auto" />

<table>
<thead>
<tr>
<th>Plane</th>
<th>Who starts it</th>
<th>Transport</th>
<th>Timing pressure</th>
<th>What a fault sounds like</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Command</strong></td>
<td>Your application</td>
<td>REST over HTTPS</td>
<td>Low. You choose when to send</td>
<td>The call doesn't start or doesn't change</td>
</tr>
<tr>
<td><strong>Event</strong></td>
<td>Vobiz</td>
<td>Webhook over HTTPS, with VobizXML in some responses</td>
<td>High on instruction requests</td>
<td>Silence while Vobiz waits for instructions</td>
</tr>
<tr>
<td><strong>Media</strong></td>
<td>The call or your stream setup</td>
<td><a href="https://www.rfc-editor.org/rfc/rfc6455">WebSocket</a> or <a href="https://www.rfc-editor.org/rfc/rfc3550">RTP</a></td>
<td>Continuous</td>
<td>Choppy, delayed, or one-way audio</td>
</tr>
</tbody></table>
<p>This separation shapes your architecture. A web service can handle the command and event planes. The media plane behaves more like a real-time service, because each active stream holds a connection open for as long as it runs.</p>
<p>A simple IVR may never touch the media plane, because Vobiz plays prompts and collects input for you. A custom AI agent lives there.</p>
<h2>What happens during a voice API call?</h2>
<p>Here is an outbound call from first request to hangup. It uses a one-question menu, and the shape stays the same for longer flows.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/e7b04173-efd4-4d20-aa0a-f365d1939a6a.png" alt="Sequence diagram of an outbound Vobiz call: the application sends Make Call, Vobiz returns request_uuid and sets up the call, sends a Ring event, sends StartApp to answer_url, runs returned VobizXML, posts digits to the action URL, and sends a final Hangup event." style="display:block;margin:0 auto" />

<ol>
<li><strong>Create.</strong> You send a <a href="https://www.vobiz.ai/docs/call/make-call">Make Call</a> request with from, to, and answer_url. The response carries a request_uuid, which identifies the call. A successful response means Vobiz accepted the request, not that anyone answered.</li>
<li><strong>Ring.</strong> If you set ring_url, Vobiz notifies it when the destination starts ringing.</li>
<li><strong>Answer.</strong> Vobiz sends Event set to StartApp to your answer_url. This is the first moment your application controls the conversation.</li>
<li><strong>Instruct.</strong> Your server returns <a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">VobizXML</a>. Vobiz runs each element in order, such as <a href="https://www.vobiz.ai/docs/xml/speak">Speak</a> followed by <a href="https://www.vobiz.ai/docs/xml/gather">Gather</a>.</li>
<li><strong>Loop.</strong> When an element with an action URL completes, Vobiz sends its result there and asks for more instructions. A menu choice arrives as Digits, for example.</li>
<li><strong>End.</strong> When the call finishes, Vobiz sends Event set to Hangup to your hangup_url. Use this event as your <a href="https://www.vobiz.ai/docs/concepts/callbacks">authoritative end-of-call signal</a>.</li>
</ol>
<p>An inbound call skips steps 1 and 2. Vobiz finds the <a href="https://www.vobiz.ai/docs/applications/attach-number">application attached to the dialed number</a> and requests its answer URL.</p>
<h3>Call legs and identifiers</h3>
<p>When <a href="https://www.vobiz.ai/docs/xml/dial">Dial</a> connects a second party, the original call is the A-leg and each dialed call is a B-leg. Each leg has its own identifier, and a <a href="https://www.vobiz.ai/docs/call/call-object">call record</a> points back to the A-leg through parent_call_uuid. You can <a href="https://www.vobiz.ai/docs/call/transfer-call">transfer each leg independently</a>. The <a href="https://www.vobiz.ai/docs/resources/dial-transfer-visualizer">Dial transfer visualizer</a> steps through a common case, an AI agent handing a caller to a human, with every webhook and XML response along the way.</p>
<p>Store the identifier the moment you create a call, then write every later event against it. <a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">VobizXML is stateless</a>, so your application keeps the conversation state.</p>
<h3>Why a call ended</h3>
<p>The call record carries hangup_source, which says who ended the call, and hangup_cause_code, which says why. Treat them separately. A hangup by the caller and a hangup by your own VobizXML both end the call, but they mean different things in your reports. The <a href="https://www.vobiz.ai/docs/concepts/hangup-causes">hangup cause reference</a> lists each code and its next step.</p>
<h2>How should you design webhook handlers?</h2>
<p>Voice webhooks come in two kinds, and they have different contracts. Mixing them up is a common source of production bugs.</p>
<table>
<thead>
<tr>
<th></th>
<th>Instruction request</th>
<th>Notification</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Examples</strong></td>
<td>answer_url, action URLs</td>
<td>ring_url, hangup_url, recording and stream events</td>
</tr>
<tr>
<td><strong>What Vobiz needs</strong></td>
<td>VobizXML in the response</td>
<td>An HTTP 200 acknowledgement</td>
</tr>
<tr>
<td><strong>Time budget</strong></td>
<td><a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">Aim for 1 to 2 seconds</a></td>
<td><a href="https://www.vobiz.ai/docs/concepts/callbacks">Respond within 3 seconds</a></td>
</tr>
<tr>
<td><strong>If you're slow</strong></td>
<td>The caller hears silence</td>
<td>Vobiz may treat delivery as failed and retry</td>
</tr>
<tr>
<td><strong>Good pattern</strong></td>
<td>Serve decisions from cached data</td>
<td>Queue the event, acknowledge, and process later</td>
</tr>
</tbody></table>
<p>Four rules follow from that contract:</p>
<ul>
<li><strong>Make handlers idempotent.</strong> Vobiz <a href="https://www.vobiz.ai/docs/concepts/callbacks">retries failed callbacks up to 3 times</a> with exponential backoff, so duplicates can happen. A unique key on the call identifier and event type works for one-time events such as Hangup. Events that repeat on a call, such as ClearedAudio, need a different guard.</li>
<li><strong>Plan for answer URL failure.</strong> Set fallback_url on Make Call, or fallback_answer_url on an <a href="https://www.vobiz.ai/docs/applications/application-object">application</a>, so a backup can take over. A static backup that apologises and offers a callback is enough for many teams.</li>
<li><strong>Verify the sender.</strong> Callback URLs <a href="https://www.vobiz.ai/docs/concepts/callback-configurations">must use HTTPS</a>. The X-Vobiz-Signature-V2 and X-Vobiz-Signature-V3 headers carry <a href="https://www.vobiz.ai/docs/concepts/validating-callbacks">HMAC-SHA256 signatures</a> of the URL and a nonce, not the body. They appear when the callback URL has auth credentials configured, and coverage varies by callback type. Configure those credentials, then reject requests that lack a signature you expect.</li>
<li><strong>Expect more stream events than you think.</strong> The <a href="https://www.vobiz.ai/docs/xml/stream">stream docs</a> report a 125-second conversational call producing 15 status callbacks, because ClearedAudio fires on every barge-in. The <a href="https://www.vobiz.ai/docs/resources/stream-events-visualizer">Stream events visualizer</a> walks through that lifecycle event by event, from start and media to checkpoint, barge-in, and stop.</li>
</ul>
<h2>What is call control?</h2>
<p>Call control means changing what a call does. You have two tools, and they answer different triggers.</p>
<p><strong>VobizXML is declarative.</strong> Vobiz asks what to do next, and you return a list of instructions. Use it when the call itself caused the next step, such as a digit press or a finished recording. To prototype a flow before you write a handler, the Vobiz <a href="https://www.vobiz.ai/docs/xml-builder">XML Builder</a> lets you pick and order elements and copy the XML it generates.</p>
<p><strong>REST is imperative.</strong> You act on a live call at any time. Use it when something outside the call triggers the change, such as a supervisor action, a timer, or a fraud rule.</p>
<table>
<thead>
<tr>
<th>You want to</th>
<th>In VobizXML</th>
<th>Over REST on a live call</th>
</tr>
</thead>
<tbody><tr>
<td>Speak text</td>
<td><a href="https://www.vobiz.ai/docs/xml/speak">Speak</a></td>
<td><a href="https://www.vobiz.ai/docs/call/speak-text">Speak text</a></td>
</tr>
<tr>
<td>Play audio</td>
<td><a href="https://www.vobiz.ai/docs/xml/play">Play</a></td>
<td><a href="https://www.vobiz.ai/docs/call/play-audio">Play audio</a></td>
</tr>
<tr>
<td>Collect digits or speech</td>
<td><a href="https://www.vobiz.ai/docs/xml/gather">Gather</a></td>
<td>Transfer to a URL that returns Gather</td>
</tr>
<tr>
<td>Reach another party</td>
<td><a href="https://www.vobiz.ai/docs/xml/dial">Dial</a></td>
<td><a href="https://www.vobiz.ai/docs/call/transfer-call">Transfer a call</a> to new VobizXML</td>
</tr>
<tr>
<td>Send tones</td>
<td><a href="https://www.vobiz.ai/docs/xml/dtmf">DTMF</a></td>
<td><a href="https://www.vobiz.ai/docs/call/dtmf">Send DTMF</a></td>
</tr>
<tr>
<td>Record</td>
<td><a href="https://www.vobiz.ai/docs/xml/record">Record</a></td>
<td><a href="https://www.vobiz.ai/docs/call/record-calls">Record Calls API</a></td>
</tr>
<tr>
<td>Stream audio</td>
<td><a href="https://www.vobiz.ai/docs/xml/stream">Stream</a></td>
<td><a href="https://www.vobiz.ai/docs/audio-streams/start-audio-stream">Start an audio stream</a></td>
</tr>
<tr>
<td>Join a conference</td>
<td><a href="https://www.vobiz.ai/docs/xml/conference">Conference</a></td>
<td>Transfer to a URL that returns Conference</td>
</tr>
<tr>
<td>End the call</td>
<td><a href="https://www.vobiz.ai/docs/xml/hangup">Hangup</a></td>
<td><a href="https://www.vobiz.ai/docs/call/hangup-call">Hang up a call</a></td>
</tr>
</tbody></table>
<p><a href="https://www.vobiz.ai/docs/call/machine-detection">Answering machine detection</a> sits in neither column. You enable it with parameters on Make Call, and it applies to outbound calls.</p>
<h3>The same pattern across providers</h3>
<p>The event-and-instruction model is common across the industry, and the instruction format is what mostly changes. Vobiz uses <a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">VobizXML</a>, an XML response to a webhook. Other voice APIs may use a markup language, a JSON structure, or commands sent in response to webhook events.</p>
<p>If you know one of these models, you already understand the flow of the others. The vocabulary and event names are the parts to relearn.</p>
<h2>How does call audio reach your application?</h2>
<p>You have three options, and the main question is who owns the conversation pipeline.</p>
<table>
<thead>
<tr>
<th>Path</th>
<th>How audio moves</th>
<th>You own</th>
<th>Fits</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Vobiz handles media</strong></td>
<td>Vobiz plays prompts and collects input from your VobizXML</td>
<td>Call logic only</td>
<td>IVRs, alerts, reminders</td>
</tr>
<tr>
<td><a href="https://www.vobiz.ai/docs/concepts/streaming-websockets"><strong>WebSocket stream</strong></a></td>
<td>Vobiz forks call audio to your WebSocket, and you can send audio back</td>
<td>Speech-to-text, agent logic, text-to-speech, voice activity detection, barge-in, and state</td>
<td>Custom AI pipelines, live transcription</td>
</tr>
<tr>
<td><a href="https://www.vobiz.ai/docs/platform/sip/overview"><strong>SIP trunk</strong></a></td>
<td>RTP between the network and your SIP platform</td>
<td>A SIP system or managed platform</td>
<td>PBXs and platforms such as LiveKit, Vapi, or Retell</td>
</tr>
</tbody></table>
<p>The <a href="https://www.vobiz.ai/docs/concepts/sip-vs-websockets">SIP vs WebSockets guide</a> compares the last two in detail. One transport difference matters here: RTP normally <a href="https://www.rfc-editor.org/rfc/rfc3550">runs over UDP</a>, so a lost packet is skipped, while a <a href="https://www.rfc-editor.org/rfc/rfc6455">WebSocket runs over TCP</a>, so a lost packet is resent and can add jitter on a poor network. Here are the two AI paths side by side:</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/d369cfa7-3a97-4b4d-861f-06bd6d6effa6.png" alt="Two-column comparison of the two ways to connect a phone call to an AI agent on Vobiz. SIP trunk: the caller dials, the Vobiz SIP trunk routes a SIP INVITE to the platform's SIP URI, a voice AI platform such as LiveKit, Vapi, Retell or ElevenLabs terminates SIP, and audio flows as RTP over UDP; best for managed platforms, PBX integration, live transfer and scaling by trunk channels. WebSocket stream with Audio Streams: Vobiz fetches your Answer URL and gets a VobizXML Stream element, a wss connection carries Base64 audio to your server, and your code runs STT, LLM and TTS and sends audio back on the same socket; best for custom pipelines, direct model APIs and full control of barge-in." style="display:block;margin:0 auto" />

<p>They aren't exclusive. A call can arrive on a SIP trunk and still be piped to your WebSocket server with a Stream element, so SIP handles routing and the socket handles audio.</p>
<h3>Sizing a WebSocket stream</h3>
<p>Stream audio is Base64-encoded, and <a href="https://www.rfc-editor.org/rfc/rfc4648">Base64 turns every 3 bytes into 4 characters</a>. That adds a third to the raw bitrate. The table below is our own calculation from the <a href="https://www.vobiz.ai/docs/concepts/streaming-websockets">Vobiz stream formats</a> and shows one direction only. It excludes JSON framing and TCP and TLS overhead.</p>
<table>
<thead>
<tr>
<th>Format</th>
<th>Available for</th>
<th>Raw bitrate</th>
<th>With Base64</th>
<th>Per 100 calls</th>
</tr>
</thead>
<tbody><tr>
<td>μ-law, 8 kHz</td>
<td>Inbound and outbound</td>
<td>64 kbit/s</td>
<td>85 kbit/s</td>
<td>8.5 Mbit/s</td>
</tr>
<tr>
<td>L16, 8 kHz</td>
<td>Inbound and outbound</td>
<td>128 kbit/s</td>
<td>171 kbit/s</td>
<td>17.1 Mbit/s</td>
</tr>
<tr>
<td>L16, 16 kHz</td>
<td>Inbound and outbound</td>
<td>256 kbit/s</td>
<td>341 kbit/s</td>
<td>34.1 Mbit/s</td>
</tr>
<tr>
<td>L16, 24 kHz</td>
<td>Outbound only</td>
<td>384 kbit/s</td>
<td>512 kbit/s</td>
<td>51.2 Mbit/s</td>
</tr>
</tbody></table>
<p>The μ-law figure matches the <a href="https://en.wikipedia.org/wiki/G.711">64 kbit/s rate of G.711</a>, the <a href="https://www.itu.int/rec/T-REC-G.711">ITU-T telephone codec</a>. Sizes matter less than matching formats, though. Inbound and outbound audio are <a href="https://www.vobiz.ai/docs/concepts/streaming-websockets">configured separately</a>, so read the inbound format from start.mediaFormat on each connection.</p>
<h3>Keeping a conversation responsive</h3>
<p>People notice delay quickly. <a href="https://www.itu.int/rec/dologin_pub.asp?lang=e&amp;id=T-REC-G.114-200305-I!!PDF-E&amp;type=items">ITU-T G.114</a>, a 2003 Recommendation that ITU <a href="https://www.itu.int/rec/T-REC-G.114">lists as in force</a>, recommends against exceeding 400 ms of one-way delay for general network planning, and notes that most applications aren't significantly affected below 150 ms. An AI agent's thinking time comes on top of network delay, so measure each stage of your pipeline.</p>
<p>Interruptions need their own design. When your voice activity detector confirms that a caller is speaking over the agent, send clearAudio to drop queued playback. The docs recommend <a href="https://www.vobiz.ai/docs/concepts/streaming-websockets">20 to 60 ms playback chunks</a> for responsive barge-in, because a large buffer keeps talking after the caller interrupts.</p>
<p>Watch stream health as well. DegradedStream warns you <a href="https://www.vobiz.ai/docs/xml/stream">while the stream is still up</a>, which gives you time to adapt. StopStream reports that the stream session ended, whatever the cause, so rely on Hangup to detect the end of a call.</p>
<h2>How do you scale a voice API?</h2>
<p>Three limits apply, and each one fails differently. Treat them as separate budgets.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/60c80e39-16be-4ceb-8536-a7be9fd777e5.png" alt="Diagram of capacity limits: in an illustrative example, calls leave your queue through a CPS gate of 2 calls per second, then fill a concurrency pool with 120 of 160 channels busy. Placing a call past either limit returns a 429. The example formula is 2 times 60 seconds equals 120 channels." style="display:block;margin:0 auto" />

<table>
<thead>
<tr>
<th>Limit</th>
<th>What it controls</th>
<th>Scope</th>
<th>How to stay inside it</th>
</tr>
</thead>
<tbody><tr>
<td><a href="https://www.vobiz.ai/docs/faq/cps"><strong>CPS</strong></a></td>
<td>How fast you start calls</td>
<td>Your account's provisioned capacity</td>
<td>Pace calls from a queue</td>
</tr>
<tr>
<td><a href="https://www.vobiz.ai/docs/faq/concurrency"><strong>Concurrency</strong></a></td>
<td>Calls active at the same moment, including those still ringing</td>
<td>Your account's provisioned capacity</td>
<td>Size channels from your call duration</td>
</tr>
<tr>
<td><a href="https://www.vobiz.ai/docs/rate-limits"><strong>Request quota</strong></a></td>
<td>Other Voice API requests, such as listing calls</td>
<td>The parent account, shared with sub-accounts</td>
<td>Pace requests and prefer webhooks to polling</td>
</tr>
</tbody></table>
<p>Inbound calls use the same concurrency pool. A call over the limit is <a href="https://www.vobiz.ai/docs/faq/concurrency">rejected with a 429 or SIP 503</a>.</p>
<p>Make Call has one more safeguard. If too many Make Call requests fail, an <a href="https://www.vobiz.ai/docs/rate-limits">error budget</a> briefly blocks further requests of that type. So fix a 4xx error before you retry it, and back off with jitter on a 429.</p>
<h3>A worked sizing example</h3>
<p>Suppose you need to place 7,200 reminder calls in one hour. Assume each call rings for 15 seconds and talks for 45 seconds.</p>
<ol>
<li><strong>Rate.</strong> 7,200 calls ÷ 3,600 seconds = 2 calls per second, so you need at least 2 CPS.</li>
<li><strong>Channels.</strong> <a href="https://en.wikipedia.org/wiki/Little%27s_law">Little's law</a> says the average number of items in a system equals their arrival rate multiplied by the time each one spends there. So 2 × 60 seconds = 120 channels on average, before any headroom.</li>
<li><strong>Webhooks.</strong> An answered call with one menu produces a ring event, an answer request, an action request, and a hangup event. At 2 calls per second, plan for about 8 requests per second, plus any extra events you enable.</li>
<li><strong>Streams.</strong> If the same calls used μ-law streams, 120 calls would need about 10 Mbit/s in each direction, before framing overhead.</li>
</ol>
<p>The numbers change quickly with duration. At a 3-minute average, the same 2 calls per second need 360 channels. Add headroom for peaks, then test it with the <a href="https://www.vobiz.ai/docs/resources/cps-concurrency-visualizer">CPS and concurrency visualizer</a>.</p>
<h3>What to check when a production call misbehaves</h3>
<table>
<thead>
<tr>
<th>What you notice</th>
<th>Where to look first</th>
<th>Next step</th>
</tr>
</thead>
<tbody><tr>
<td>Silence after answer</td>
<td>answer_url response time</td>
<td>Cache lookups and set a fallback URL</td>
</tr>
<tr>
<td>Duplicate records</td>
<td>Retried callbacks</td>
<td>Add an idempotency key</td>
</tr>
<tr>
<td>429 while placing calls</td>
<td>CPS or concurrency use</td>
<td><a href="https://www.vobiz.ai/docs/faq/error-429">Check which limit you hit</a> and add pacing</td>
</tr>
<tr>
<td>Garbled stream audio</td>
<td>The stream's declared format</td>
<td>Decode with start.mediaFormat, and declare each playAudio format</td>
</tr>
<tr>
<td>Calls end unexpectedly</td>
<td>hangup_source and hangup_cause_code</td>
<td>Follow the <a href="https://www.vobiz.ai/docs/concepts/hangup-causes">hangup cause reference</a></td>
</tr>
</tbody></table>
<h2>What does a voice API cost?</h2>
<p>Most voice API bills have the same parts: per-minute usage, number rental, and any add-on services. For an AI agent, speech and language model costs sit on top.</p>
<p>On Vobiz, a call's per-minute rate <a href="https://www.vobiz.ai/docs/call/call-object">depends on the destination number</a>. See the <a href="https://www.vobiz.ai/pricing/">Vobiz pricing page</a> and your <a href="https://console.vobiz.ai">Vobiz Console</a> for current rates.</p>
<p>After each call, the <a href="https://www.vobiz.ai/docs/call/call-object">call record</a> shows what you were billed through billed_duration, total_rate, and total_amount. If you need more capacity, you can <a href="https://www.vobiz.ai/docs/account/channel-pricing-preview">preview the monthly CPS or concurrency price</a> before you buy.</p>
<h2>How to evaluate a voice API</h2>
<p>Feature lists tend to look alike. These questions reveal more about how a provider behaves in production.</p>
<table>
<thead>
<tr>
<th>Ask</th>
<th>Why it matters</th>
</tr>
</thead>
<tbody><tr>
<td>What is the retry policy for webhooks?</td>
<td>It sets how you design idempotency</td>
</tr>
<tr>
<td>How are webhooks signed, and what does the signature cover?</td>
<td>It decides how you authenticate events</td>
</tr>
<tr>
<td>Which audio formats are available in each direction?</td>
<td>It determines your codec and speech pipeline</td>
</tr>
<tr>
<td>How are limits scoped and reported?</td>
<td>It tells you how your dialer has to pace itself</td>
</tr>
<tr>
<td>What explains a failed call?</td>
<td>Detailed hangup data shortens debugging</td>
</tr>
<tr>
<td>What rules apply in your calling region?</td>
<td>Local rules can change your routing and numbers</td>
</tr>
</tbody></table>
<h2>How Vobiz handles it</h2>
<p><a href="https://www.vobiz.ai/docs/introduction">Vobiz</a> gives you the planes described above in one account,.</p>
<ul>
<li><strong>Commands.</strong> The <a href="https://www.vobiz.ai/docs/api-reference">Vobiz API</a> authenticates with Auth ID and Auth Token, sent as the X-Auth-ID and X-Auth-Token headers. SDKs are available for <a href="https://www.vobiz.ai/docs/integrations/python-sdk">Python</a>, <a href="https://www.vobiz.ai/docs/integrations/node-sdk">Node.js</a>, <a href="https://www.vobiz.ai/docs/integrations/java-sdk">Java</a>, <a href="https://www.vobiz.ai/docs/integrations/go-sdk">Go (Golang)</a>, <a href="https://www.vobiz.ai/docs/integrations/ruby-sdk">Ruby</a>, <a href="https://www.vobiz.ai/docs/integrations/php-sdk">PHP</a>, and <a href="https://www.vobiz.ai/docs/integrations/csharp-sdk">C#</a>.</li>
<li><strong>Events and control.</strong> <a href="https://www.vobiz.ai/docs/concepts/callbacks">Webhooks (callbacks)</a> report call, recording, conference, and stream events. <a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">VobizXML</a> controls the call, and the <a href="https://www.vobiz.ai/docs/xml-builder">XML builder</a> helps you draft it.</li>
<li><strong>Media.</strong> <a href="https://www.vobiz.ai/docs/audio-streams">Audio streams</a> reach your WebSocket application, and <a href="https://www.vobiz.ai/docs/platform/sip/overview">SIP trunks</a> connect your SIP systems. Registered SIP clients use <a href="https://www.vobiz.ai/docs/endpoint">endpoints</a>.</li>
<li><strong>Records.</strong> <a href="https://www.vobiz.ai/docs/cdr">Call detail records</a> keep each call's timing, cost, and hangup data for reporting.</li>
</ul>
<p>Your first <a href="https://www.vobiz.ai/docs/quick-start">quickstart</a> call is a real, billed call. Use your own credentials, and confirm the destination number before you place it. Before you call a new destination, check the <a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">calling regulations</a>, <a href="https://www.vobiz.ai/docs/compliance/india/kyc">KYC</a> and <a href="https://www.vobiz.ai/docs/compliance/india/ucc">UCC consent</a> requirements that apply to it.</p>
<h2>FAQ</h2>
<h3>Is programmable voice the same as a voice API?</h3>
<p>In everyday use, yes. Programmable voice describes the capability of controlling calls with software, and a voice API is the interface you use to do it. Providers may use either term for the same product, so compare what each one actually offers.</p>
<h3>What is the difference between a voice API and a SIP trunk?</h3>
<p>A voice API lets your application control calls through HTTP requests and webhooks. A SIP trunk connects the phone network to a SIP system, such as a PBX, which then handles the call. You can use both, depending on where your call logic runs.</p>
<h3>How do you make a voice API call?</h3>
<p>Send an authenticated Make Call request with a from number, a to number, and an answer_url. When the call is answered, Vobiz requests VobizXML from that URL and runs it. Real calls are billed, so use your own credentials and confirm the destination first.</p>
<h3>How do you authenticate with a voice API?</h3>
<p>Vobiz authenticates REST requests with the X-Auth-ID and X-Auth-Token headers, which carry your Auth ID and Auth Token. Keep both on your server. Webhooks travel the other way, so validate their HMAC signatures to confirm that Vobiz sent them.</p>
<h3>How much does a voice API cost?</h3>
<p>Most voice APIs bill per minute, plus number rental and add-ons. On Vobiz, the per-minute rate depends on the destination number. Check the Vobiz pricing page and your Vobiz Console for current rates. AI agents add speech and language model costs.</p>
<h3>Can a voice API record and transcribe calls?</h3>
<p>Yes, with Vobiz. You can record with the VobizXML Record element or the Record Calls API. Transcription is an option on the Record Calls API, so use that route when you need speech-to-text output from a recording.</p>
<h2>Further reading on Vobiz</h2>
<ul>
<li><a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">How VobizXML works</a> · <a href="https://www.vobiz.ai/docs/concepts/callbacks">Vobiz webhooks (callbacks)</a> · <a href="https://www.vobiz.ai/docs/concepts/validating-callbacks">Validating callbacks</a></li>
<li><a href="https://www.vobiz.ai/docs/concepts/streaming-websockets">Voice streaming over WebSockets</a> · <a href="https://www.vobiz.ai/docs/concepts/sip-vs-websockets">SIP vs WebSockets</a> · <a href="https://www.vobiz.ai/docs/rate-limits">Vobiz API rate limits</a></li>
<li><a href="https://www.vobiz.ai/docs/solutions/ai-voice-agent">AI voice agents</a> · <a href="https://www.vobiz.ai/docs/solutions/cloud-ivr">Cloud IVR</a> · <a href="https://www.vobiz.ai/docs/solutions/automated-outbound-calling">Automated outbound calling</a></li>
<li><a href="https://www.vobiz.ai/docs/blogs/what-is-an-ivr">What is an IVR?</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-sip-trunking">What is SIP trunking?</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-a-did-number">What is a DID number?</a></li>
</ul>
<h2>Sources</h2>
<ul>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3261">"RFC 3261: SIP: Session Initiation Protocol"</a>.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3550">"RFC 3550: RTP: A Transport Protocol for Real-Time Applications"</a>.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc6455">"RFC 6455: The WebSocket Protocol"</a>.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc4648">"RFC 4648: The Base16, Base32, and Base64 Data Encodings"</a>.</li>
<li>ITU-T, <a href="https://www.itu.int/rec/T-REC-G.711">"G.711: Pulse code modulation (PCM) of voice frequencies"</a>.</li>
<li>ITU-T, <a href="https://www.itu.int/rec/dologin_pub.asp?lang=e&amp;id=T-REC-G.114-200305-I!!PDF-E&amp;type=items">"G.114 (05/2003): One-way transmission time"</a>, and its <a href="https://www.itu.int/rec/T-REC-G.114">status page</a>.</li>
<li>TRAI, <a href="https://trai.gov.in/sites/default/files/2026-07/PR_No91of2026.pdf">"Press Release No. 91/2026: clarifications regarding functioning of designated 1600 series and 140 series"</a> (July 10, 2026).</li>
<li>Wikipedia, <a href="https://en.wikipedia.org/wiki/Public_switched_telephone_network">"Public switched telephone network"</a>, <a href="https://en.wikipedia.org/wiki/G.711">"G.711"</a>, and <a href="https://en.wikipedia.org/wiki/Little%27s_law">"Little's law"</a>.</li>
<li>Typecast, <a href="https://typecast.ai/learn/what-is-a-voice-api-and-how-can-you-use-it/">"What Is a Voice API and How Can You Use It?"</a> (February 19, 2026).</li>
</ul>
<p><strong>Get started with Vobiz</strong> — Set up your first programmable call.</p>
<hr />
<p>For voice AI agents that need a programmable phone line, <a href="https://www.vobiz.ai">Vobiz</a> offers a voice API and SIP trunking built for them.</p>
]]></content:encoded></item><item><title><![CDATA[What Is WebRTC? Meaning, How It Works, When to Use It]]></title><description><![CDATA[From microphone permission to encrypted audio: signalling, ICE, TURN and the phone network boundary]]></description><link>https://piyuzz.hashnode.dev/what-is-webrtc</link><guid isPermaLink="true">https://piyuzz.hashnode.dev/what-is-webrtc</guid><category><![CDATA[JavaScript]]></category><category><![CDATA[WebRTC]]></category><category><![CDATA[voip]]></category><category><![CDATA[networking]]></category><category><![CDATA[Telephony]]></category><dc:creator><![CDATA[Piyush Sahoo]]></dc:creator><pubDate>Wed, 11 Nov 2026 07:57:15 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/24dbe80f-01e7-429c-b96b-d96bc8abe867.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A step-by-step reference for WebRTC: what the standards cover, how a connection is negotiated and secured, what relaying costs, and where WebRTC ends and the phone network starts.</p>
<p>WebRTC (Web Real-Time Communication) is a set of open standards that lets browsers and apps send live audio, video, and data to each other without a plugin. Your server introduces the two sides. WebRTC then finds a network path, encrypts it, and streams the media, directly where it can and through a relay where it can't.</p>
<p>This guide follows one call from microphone permission to encrypted audio. It then shows what the relay costs, where WebRTC stops and the phone network starts, and how Indian networks change your test plan.</p>
<blockquote>
<p><strong>Note: Key takeaways</strong></p>
<ul>
<li><strong>WebRTC has three layers:</strong> a W3C browser API, a family of IETF protocols, and an open-source engine. People use the word for all three.</li>
<li><strong>Signalling is your job.</strong> WebRTC creates the offer and answer, but your own server has to carry them between the peers.</li>
<li><strong>Plan for a relay.</strong> Published estimates of relayed sessions run from about 8% to 25%, and each relayed call adds bandwidth you pay for.</li>
<li><strong>WebRTC stops at IP.</strong> Reaching a phone number takes a gateway and a carrier, and phone-call rules apply from that point.</li>
<li><strong>India is a wireless, mixed-IPv6 market.</strong> About 96% of Internet subscribers are wireless, and IPv6 capability runs from about 96% on Jio to under 2% on Hathway.</li>
</ul>
</blockquote>
<h2>What does WebRTC mean?</h2>
<p>The name breaks into <strong>Web</strong>, meaning it runs in the browser, and <strong>RTC</strong>, or real-time communication. That second part is the point: WebRTC favours getting audio to you now over getting every packet to you eventually.</p>
<p>In a design discussion, "WebRTC" can mean any of three different things:</p>
<table>
<thead>
<tr>
<th>Layer</th>
<th>What it is</th>
<th>Who defines it</th>
<th>Who cares most</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Browser API</strong></td>
<td>Objects your page calls, such as RTCPeerConnection</td>
<td><a href="https://www.w3.org/TR/webrtc/">W3C Recommendation</a>, first <a href="https://www.w3.org/press-releases/2021/webrtc-rec/">published in January 2021</a> and last revised in March 2025</td>
<td>Front-end developers</td>
</tr>
<tr>
<td><strong>Protocol family</strong></td>
<td>ICE, DTLS, SRTP, SCTP, and SDP used together</td>
<td>IETF, with <a href="https://www.rfc-editor.org/rfc/rfc8825.html">RFC 8825</a> as the overview</td>
<td>Network and telecom engineers</td>
</tr>
<tr>
<td><strong>Open-source engine</strong></td>
<td>Code with capture, codecs, and network handling, which <a href="https://bloggeek.me/what-is-webrtc/">browsers ship and apps can embed</a></td>
<td>The <a href="https://webrtc.org/">WebRTC project</a></td>
<td>Teams building native apps</td>
</tr>
</tbody></table>
<p>The distinction matters when you compare vendors. A provider can speak the protocols without giving you the browser API, and a mobile app can embed the engine with no browser in sight.</p>
<p>The browser side is small. <a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia">getUserMedia</a> captures the microphone or camera, RTCPeerConnection runs the session, and RTCDataChannel carries anything that isn't audio or video.</p>
<h2>What happens when a WebRTC call connects?</h2>
<p>Setup and media take different routes. Your server handles the introductions, and then the peers talk to each other.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/69de920b-3087-4985-8078-57c62c69fc54.png" alt="Sequence diagram of a WebRTC call. The caller and callee exchange an SDP offer, an SDP answer, and ICE candidates through your signalling server. They then run ICE checks, a DTLS handshake, and SRTP audio and video directly with each other, with data channels running over SCTP and DTLS." style="display:block;margin:0 auto" />

<ol>
<li><strong>The browser asks for the microphone.</strong> getUserMedia prompts the user and is <a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia">limited to secure contexts</a>, so plan on HTTPS from day one.</li>
<li><strong>The caller creates an offer.</strong> This SDP text lists codecs, encryption fingerprints, and ICE credentials. <a href="https://www.rfc-editor.org/rfc/rfc9429.html">JSEP (RFC 9429)</a> sets the rules for creating and applying it.</li>
<li><strong>Your server carries the offer and returns an answer.</strong> The callee's browser picks what both sides support.</li>
<li><strong>Both sides share network addresses as they find them.</strong> These are ICE candidates, and <a href="https://www.rfc-editor.org/rfc/rfc8838.html">Trickle ICE (RFC 8838)</a> lets checks begin before the list is complete.</li>
<li><strong>The peers test the paths.</strong> <a href="https://www.rfc-editor.org/rfc/rfc8445.html">ICE (RFC 8445)</a> sends connectivity checks across candidate pairs and selects a working one.</li>
<li><strong>The peers set up encryption.</strong> They run a DTLS handshake on the chosen path and compare certificates with the fingerprints from step 2.</li>
<li><strong>Media flows.</strong> Audio and video travel as SRTP. Data channels use <a href="https://www.rfc-editor.org/rfc/rfc8831.html">SCTP over DTLS (RFC 8831)</a>, and all of it <a href="https://www.rfc-editor.org/rfc/rfc8835.html">can share one port pair</a>.</li>
</ol>
<p>Each failure points at one of these stages, which makes the sequence useful for debugging:</p>
<table>
<thead>
<tr>
<th>What you see</th>
<th>Stage</th>
<th>Check first</th>
</tr>
</thead>
<tbody><tr>
<td>The other side never rings</td>
<td>Signalling</td>
<td>Your server logs and WebSocket connection</td>
</tr>
<tr>
<td>It rings, then no audio and the ICE state shows failed</td>
<td>ICE</td>
<td>STUN and TURN settings, and UDP rules</td>
</tr>
<tr>
<td>ICE connects, then the session closes</td>
<td>DTLS</td>
<td>Fingerprints changed in transit, or an SDP-rewriting proxy</td>
</tr>
<tr>
<td>Audio flows but only in one direction</td>
<td>Capture or negotiation</td>
<td>Microphone permission and the media direction in the SDP</td>
</tr>
<tr>
<td>Audio breaks up on some networks only</td>
<td>Path quality</td>
<td>Selected candidate pair, loss, and jitter from getStats</td>
</tr>
</tbody></table>
<h2>Why does WebRTC leave signalling to you?</h2>
<p>The standard <a href="https://www.rfc-editor.org/rfc/rfc9429.html#section-3.1">specifies how offers and answers are built</a>, and deliberately not how they travel. That keeps WebRTC out of your login, presence, and routing decisions. It also means no two WebRTC apps interoperate unless someone builds a bridge.</p>
<p>You have four realistic options:</p>
<table>
<thead>
<tr>
<th>Approach</th>
<th>Best when</th>
<th>You operate</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Your own messages over WebSocket</strong></td>
<td>You control both ends, as in an in-app call</td>
<td>Signalling service, authentication, presence</td>
</tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7118.html"><strong>SIP over WebSocket (RFC 7118)</strong></a></td>
<td>The client must register and meet phone systems</td>
<td>A SIP client, with the registrar from you or a provider</td>
</tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc9725.html"><strong>WHIP (RFC 9725)</strong></a></td>
<td>You push a live stream to a media server over HTTP</td>
<td>The publisher, with an ingest service</td>
</tr>
<tr>
<td><strong>A vendor SDK</strong></td>
<td>You want a working call without owning the plumbing</td>
<td>Your application and its token server</td>
</tr>
</tbody></table>
<p>If you take the SIP-over-WebSocket route, the registrar can come from your telephony provider. On Vobiz, that's a <a href="https://www.vobiz.ai/docs/platform/voice/endpoints">SIP endpoint</a>: the browser client signs in with the endpoint's username, password, and registrar domain, and calls to it run the <a href="https://www.vobiz.ai/docs/platform/voice/applications">application</a> you've attached.</p>
<h2>How does WebRTC get through NATs and firewalls?</h2>
<p>Most devices don't hold a public address, so a peer can't simply be dialled. ICE collects every address that might work, tests them in pairs, and uses the best pair that passes.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/503854d9-79eb-4c60-8a95-64ebbf8a1901.png" alt="Three candidate paths in ICE preference order. Host candidates connect peers directly, with a recommended type preference of 126. Server-reflexive candidates pass through each peer's NAT using an address learned from STUN, with a preference of 100. Relayed candidates send all media through a TURN relay, with a preference of 0." style="display:block;margin:0 auto" />

<p>The preferences shown are the <a href="https://www.rfc-editor.org/rfc/rfc8445.html#section-5.1.2.2">values RFC 8445 recommends</a>. Two helpers supply the addresses:</p>
<ul>
<li><strong>STUN</strong> (<a href="https://www.rfc-editor.org/rfc/rfc8489.html">RFC 8489</a>) tells a peer what address it appears to have from outside its NAT. It's only involved in setup, so it carries no media.</li>
<li><strong>TURN</strong> (<a href="https://www.rfc-editor.org/rfc/rfc8656.html">RFC 8656</a>) forwards the media when no direct path passes. It's your safety net, and often a large variable cost.</li>
</ul>
<p>WebRTC endpoints <a href="https://www.rfc-editor.org/rfc/rfc8835.html">must support TURN over TCP and over TLS</a>, because some firewalls block all UDP. Offer those transports as well as UDP, or those users will fail to connect at all.</p>
<h3>How often will calls use a relay?</h3>
<p>There is no recent neutral figure, and every number here comes from a vendor or analyst. <a href="https://www.videosdk.live/developer-hub/webrtc/turn-server-for-webrtc">VideoSDK</a> says about 8 to 15 percent of sessions, <a href="https://www.metered.ca/blog/what-is-a-turn-server-3/">Metered</a> says about 20 to 25 percent, and <a href="https://bloggeek.me/webrtc-turn/">BlogGeek.me</a> calls roughly 80 percent without a relay "common lore". Both Metered and VideoSDK sell related infrastructure.</p>
<p>Treat those figures as a starting assumption. Then log the selected candidate pair from <a href="https://www.w3.org/TR/webrtc-stats/">getStats</a> on real calls, which reports whether each side used a relay candidate.</p>
<p>The math for relay capacity is simple. A relayed Opus call at 32 kbps uses about 53.6 kbps per direction once you add the <a href="https://www.rfc-editor.org/rfc/rfc8656.html">4-byte TURN channel header</a> to the figures in the chart below. The relay forwards both directions, so it sends about 107 kbps, or 48 MB an hour.</p>
<p>As an illustration, take 5,000 concurrent calls with 20% relayed. That's 1,000 relayed calls, or about 107 Mbps out of your TURN fleet, with the same amount coming in.</p>
<h2>Is WebRTC always peer-to-peer?</h2>
<p>No. Two people on a simple call can run peer-to-peer, but most business uses put a server in the media path. Then the "peer" your browser connects to is that server.</p>
<table>
<thead>
<tr>
<th>What you're building</th>
<th>Topology</th>
<th>Why</th>
</tr>
</thead>
<tbody><tr>
<td>One-to-one call in your app</td>
<td>Peer-to-peer, TURN as fallback</td>
<td>Lowest server cost</td>
</tr>
<tr>
<td>Three or four people, no recording</td>
<td><a href="https://www.rfc-editor.org/rfc/rfc7667.html">Mesh</a></td>
<td>Each sender uploads one stream per participant, so it fades quickly on mobile</td>
</tr>
<tr>
<td>Group calls or webinars</td>
<td><a href="https://www.rfc-editor.org/rfc/rfc7667.html">Selective forwarding unit (SFU)</a></td>
<td>Each sender uploads once and the server forwards to the rest. RFC 7667 calls this a selective forwarding middlebox</td>
</tr>
<tr>
<td>One combined stream for weak devices</td>
<td><a href="https://www.rfc-editor.org/rfc/rfc7667.html">Mixer (MCU)</a></td>
<td>The server decodes and mixes, which costs more compute</td>
</tr>
<tr>
<td>Recording, transcription, or an AI agent</td>
<td>Server as a participant</td>
<td>The server needs the decoded audio</td>
</tr>
<tr>
<td>Calls to phone numbers</td>
<td>Media gateway</td>
<td>The server joins WebRTC to the carrier network</td>
</tr>
</tbody></table>
<h2>How does WebRTC reach a phone number?</h2>
<p>WebRTC has no concept of a phone number. Reaching one takes a gateway, a carrier, and a number you're allowed to use as caller ID.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/c5d6601a-948a-4612-be0e-3844d26290d2.png" alt="Diagram of a browser call reaching a phone. The browser signals with SIP over secure WebSocket to a registrar, which connects by SIP to the carrier. Audio goes as Opus or G.711 over DTLS-SRTP to a media gateway, then often as G.711 at 8 kHz over RTP to the phone. WebRTC encryption ends at the gateway." style="display:block;margin:0 auto" />

<p>Three things change at that gateway:</p>
<ul>
<li><strong>Audio can narrow.</strong> WebRTC endpoints <a href="https://www.rfc-editor.org/rfc/rfc7874.html">must implement both Opus and G.711</a>. When the phone side uses G.711, the caller's wideband audio is reduced to 8 kHz for that leg, whichever codec the browser sent.</li>
<li><strong>WebRTC's encryption ends.</strong> The DTLS-SRTP session terminates at the gateway. Any protection on the carrier leg comes from the telephony side.</li>
<li><strong>Keypad tones still work.</strong> The same RFC requires <a href="https://www.rfc-editor.org/rfc/rfc7874.html">support for telephone events</a>, so a browser client can drive a phone menu. On Vobiz, those digits reach your call logic through the <a href="https://www.vobiz.ai/docs/xml/gather">Gather element</a>, which collects keypad presses or speech and posts them to your action URL.</li>
</ul>
<h2>What codecs does WebRTC use, and how much bandwidth?</h2>
<p>Every WebRTC browser <a href="https://developer.mozilla.org/en-US/docs/Web/Media/Guides/Formats/WebRTC_codecs">must support</a> a shared baseline, so two browsers can always agree on something.</p>
<table>
<thead>
<tr>
<th>Media</th>
<th>Required</th>
<th>Often available</th>
<th>Notes</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Audio</strong></td>
<td><a href="https://www.rfc-editor.org/rfc/rfc7874.html">Opus, plus G.711 PCMA and PCMU</a></td>
<td>None needed</td>
<td>RFC 7874 recommends offering Opus first when the device handles more than 8 kHz</td>
</tr>
<tr>
<td><strong>Video</strong></td>
<td><a href="https://www.rfc-editor.org/rfc/rfc7742.html">VP8 and H.264 Constrained Baseline</a></td>
<td><a href="https://developer.mozilla.org/en-US/docs/Web/Media/Guides/Formats/WebRTC_codecs">VP9 and AV1</a>, depending on browser</td>
<td>Support varies by browser version, so check your targets</td>
</tr>
</tbody></table>
<p>Opus <a href="https://www.rfc-editor.org/rfc/rfc7587.html#section-3.1">spans 6 to 510 kbps</a>. The same RFC suggests 16 to 20 kbps for wideband speech and 28 to 40 kbps for full-band speech. The audio is only part of what you send, though:</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/2d84c651-66c5-46a2-a310-ebe10c3aa11b.png" alt="Bar chart of one-direction voice bandwidth at 20 millisecond packets over IPv4. Opus wideband uses 20 kbps of audio plus 20 of headers, for 40 kbps. Opus full-band uses 32 plus 20, for 52 kbps. G.711 uses 64 plus 20, for 84 kbps. Over an hour in both directions, that is 36, 47, and 76 megabytes." style="display:block;margin:0 auto" />

<p>IPv6 headers are 20 bytes longer, which adds 8 kbps to each stream at this packet rate. For a voice agent, the wideband path matters most: it gives a speech model more of the voice to work with than an 8 kHz phone leg does. Vobiz's <a href="https://www.vobiz.ai/docs/concepts/audio-quality">audio quality notes</a> make the same point for speech recognition and list its wideband options, G.722 and Opus.</p>
<h2>How is WebRTC different from SIP, WebSocket, and VoIP?</h2>
<p>These terms sit at different levels, so a system often uses several of them at once. VoIP is the category. WebRTC is one way to do it, and so is SIP with RTP.</p>
<table>
<thead>
<tr>
<th></th>
<th>WebRTC</th>
<th>SIP</th>
<th>WebSocket</th>
</tr>
</thead>
<tbody><tr>
<td><strong>What it is</strong></td>
<td>Complete real-time media stack</td>
<td><a href="https://www.vobiz.ai/docs/blogs/what-is-sip">Session signalling protocol</a></td>
<td><a href="https://www.rfc-editor.org/rfc/rfc6455.html">General two-way channel over TCP</a></td>
</tr>
<tr>
<td><strong>Carries audio itself</strong></td>
<td>Yes, as SRTP</td>
<td>No, RTP or SRTP does</td>
<td>Only if you frame the audio yourself</td>
</tr>
<tr>
<td><strong>Runs natively in a browser</strong></td>
<td>Yes</td>
<td>Only over a WebSocket</td>
<td>Yes</td>
</tr>
<tr>
<td><strong>Reaches phone numbers</strong></td>
<td>Through a gateway</td>
<td>Yes, with a carrier</td>
<td>Through a telephony provider</td>
</tr>
<tr>
<td><strong>Encryption</strong></td>
<td>Mandatory</td>
<td>Optional TLS and SRTP</td>
<td>Optional, using wss://</td>
</tr>
<tr>
<td><strong>Late or lost packets</strong></td>
<td>Skipped or concealed, so the call moves on</td>
<td>Depends on the media path</td>
<td>TCP resends, so later data waits</td>
</tr>
</tbody></table>
<p>They also combine well. A softphone can run SIP over a WebSocket for signalling and use WebRTC for its audio. If your choice is between <a href="https://www.vobiz.ai/docs/concepts/sip-vs-websockets">SIP and WebSocket streaming</a> on the telephony side, that guide covers it in depth. In short, on Vobiz:</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/f769b6fa-f53f-47d8-bb14-54d137d2e954.png" alt="Two-column comparison of the two ways to connect a phone call to an AI agent on Vobiz. SIP trunk: the caller dials, the Vobiz SIP trunk routes a SIP INVITE to the platform's SIP URI, a voice AI platform such as LiveKit, Vapi, Retell or ElevenLabs terminates SIP, and audio flows as RTP over UDP; best for managed platforms, PBX integration, live transfer and scaling by trunk channels. WebSocket stream with Audio Streams: Vobiz fetches your Answer URL and gets a VobizXML Stream element, a wss connection carries Base64 audio to your server, and your code runs STT, LLM and TTS and sends audio back on the same socket; best for custom pipelines, direct model APIs and full control of barge-in." style="display:block;margin:0 auto" />

<ul>
<li><strong>SIP trunk.</strong> Vobiz hands the call to a SIP platform such as <a href="https://www.vobiz.ai/docs/integrations/livekit">LiveKit</a>, which terminates SIP and brings the caller into a WebRTC room. The platform runs the agent and turn-taking.</li>
<li><strong>WebSocket stream.</strong> Vobiz fetches your Answer URL, a <a href="https://www.vobiz.ai/docs/xml/stream">Stream element</a> opens a wss:// socket to your server, and your code receives the caller's audio and sends replies on the same connection. Barge-in is yours to build, using the clear-audio command in the <a href="https://www.vobiz.ai/docs/concepts/streaming-websockets">streaming protocol</a>.</li>
</ul>
<p>The last row of the table above shows up here too. RTP skips lost packets, while a WebSocket runs over TCP and resends them, which can add jitter on poor networks. The <a href="https://www.vobiz.ai/docs/resources/sip-vs-websocket-visualizer">SIP vs WebSocket visualizer</a> steps through both paths.</p>
<h2>When should you use WebRTC?</h2>
<p>Start with who is on the other end and what they already have open.</p>
<table>
<thead>
<tr>
<th>You need</th>
<th>Use</th>
<th>Why</th>
</tr>
</thead>
<tbody><tr>
<td>Agents answering calls in a browser or CRM</td>
<td>WebRTC client with SIP endpoint</td>
<td>No desk phone or softphone install</td>
</tr>
<tr>
<td>Click-to-call from your website or app</td>
<td>WebRTC plus a telephony provider</td>
<td>The caller stays on your page</td>
</tr>
<tr>
<td>An AI agent inside your web app</td>
<td>WebRTC to a media server</td>
<td>Wideband audio with no phone call</td>
</tr>
<tr>
<td>An AI agent people reach by dialling</td>
<td><a href="https://www.vobiz.ai/docs/blogs/what-is-sip-trunking">SIP trunk</a> or <a href="https://www.vobiz.ai/docs/blogs/what-is-a-voice-api">Voice API</a> with media streaming</td>
<td>The caller has only a phone</td>
</tr>
<tr>
<td>Calling customers who don't have your app</td>
<td>SIP trunk or Voice API</td>
<td>WebRTC can't ring a phone on its own</td>
</tr>
<tr>
<td>Live video with <a href="https://bloggeek.me/what-is-webrtc/">very low delay</a>, such as auctions or cloud gaming</td>
<td>WebRTC, with WHIP for ingest</td>
<td>Interaction matters more than scale</td>
</tr>
<tr>
<td>Sending files or game state between users</td>
<td>RTCDataChannel</td>
<td>Encrypted, with no media needed</td>
</tr>
</tbody></table>
<h2>Is WebRTC secure?</h2>
<p>The media layer is secure by rule. <a href="https://www.rfc-editor.org/rfc/rfc8827.html#section-6.5">RFC 8827</a> requires SRTP for all media, DTLS for all data channels, and DTLS-SRTP for keys, and it forbids plain RTP and null ciphers. Other risks sit around that layer, and these are yours to handle:</p>
<ul>
<li><strong>Signalling.</strong> The DTLS fingerprints travel in your SDP, so a compromised signalling path undermines the check. Use TLS and authenticate every user.</li>
<li><strong>Servers in the path.</strong> SRTP protects each hop. An SFU, gateway, or AI server that terminates it can access the media. <a href="https://www.rfc-editor.org/rfc/rfc9605.html">SFrame (RFC 9605)</a> offers end-to-end encryption through an SFU when your design allows it.</li>
<li><strong>IP address exposure.</strong> Connecting peers means revealing network addresses. <a href="https://www.rfc-editor.org/rfc/rfc8828.html">RFC 8828</a> limits what a site sees until the user grants consent, and a relay-only policy can hide them further.</li>
<li><strong>Credentials.</strong> Issue short-lived TURN credentials and client tokens, and never put a long-lived account secret in front-end code.</li>
</ul>
<h2>What changes when your users are in India?</h2>
<p>The textbook WebRTC setup assumes office Wi-Fi. India's Internet looks different, so test for it.</p>
<p>Per <a href="https://trai.gov.in/sites/default/files/2026-10/PR_No135of2026.pdf">TRAI's April to June 2026 report</a>, India had 1,114.17 million Internet subscribers at the end of June 2026, of whom 1,066.43 million were wireless. That's about 96%, against 47.73 million on wired connections. IPv6 capability then varies widely by operator:</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/72f26740-635d-4869-8c1f-406f753afbe8.png" alt="Bar chart of IPv6 capability on Indian networks from APNIC Labs, read 3 November 2026. Jio 95.8 percent, Airtel mobile 89.8, Vi AS38266 82.3, Airtel broadband 77.3, all of India 76.4, Tata Play Broadband 74.1, Netplus 69.1, GTPL 45.1, ACT AS24309 43.4, BSNL 23.8, Excitel 8.1, and Hathway 1.8." style="display:block;margin:0 auto" />

<p>These figures come from <a href="https://stats.labs.apnic.net/ipv6/IN">APNIC Labs' India page</a>, and they change daily. They measure capability, not WebRTC success. Operators can run several networks, so read the numbers as a guide to variety.</p>
<p>Here's what we'd do with that data. These are our recommendations, not measured WebRTC results:</p>
<ol>
<li><strong>Test on real SIMs and home broadband.</strong> Include at least Jio, Airtel, and Vi mobile data, and one IPv4-heavy cable provider. Office Wi-Fi tells you little about your customers.</li>
<li><strong>Run TURN and media servers on both IPv4 and IPv6.</strong> A Jio user and a Hathway user may share no IPv6 path, so that call falls back to IPv4 and any <a href="https://www.rfc-editor.org/rfc/rfc6888.html">carrier-grade NAT</a> in front of it. A dual-stack relay can <a href="https://www.rfc-editor.org/rfc/rfc8835.html">bridge the two families</a>.</li>
<li><strong>Host relays in India for Indian users.</strong> A relay abroad adds a long round trip to every packet of the call.</li>
<li><strong>Report relay share by operator.</strong> Your national average can hide a single network that relays most of its calls.</li>
<li><strong>Keep audio bitrates modest on mobile.</strong> Wideband Opus uses about 36 MB an hour both ways, which suits long agent shifts and prepaid data better than full-band audio does.</li>
</ol>
<h3>Phone-call rules still apply</h3>
<p>A browser is only the start of the call. Once it reaches an Indian phone number, <a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">India's calling regulations</a> apply, and the channel you started from changes nothing. That covers KYC, caller ID, number series, consent, and the media anchoring rule, under which both legs of a call stay in India. Check where your browser clients and media servers sit before you launch.</p>
<p>TRAI's <a href="https://trai.gov.in/sites/default/files/2026-09/Regulation_18092026.pdf">Third Amendment regulations</a>, issued on 18 September 2026 and summarised in <a href="https://trai.gov.in/sites/default/files/2026-09/PR_No119of2026.pdf">press release 119/2026</a>, also matter here:</p>
<ul>
<li><strong>Definition.</strong> An A2P call is one started by an application, software system, or automated platform without direct human dialling, including autodialling, robo-calls, and pre-recorded or artificial voice.</li>
<li><strong>Duty.</strong> Once in force, senders must declare A2P use and caller ID ranges to their originating provider in advance. Undeclared calls found on investigation count as unsolicited.</li>
<li><strong>Live agents.</strong> Stakeholders asked TRAI to exclude calls with a live human agent, and TRAI declined because networks can't reliably tell the two apart.</li>
<li><strong>Charge.</strong> Terminating operators can charge originating operators up to ₹0.05 per minute on A2P calls, with 140xx, 1600xx, and 1601xx series exempt.</li>
</ul>
<p>An AI agent or an app-triggered callback appears to fit that definition. An agent who types a number into a browser softphone looks closer to direct human dialling, but the text doesn't mention softphones, so confirm your flow with your provider. The declaration and the charge both start 60 days after Gazette publication. We couldn't confirm that date, so check whether they're in force when you launch.</p>
<p>Separately, <a href="https://www.khaitanco.com/sites/default/files/2026-06/Ergo_Principal%20Telecom%20Authorisation%20Rules_26062026.pdf">Khaitan &amp; Co reports</a> that DoT notified new authorisation rules under the Telecommunications Act, 2023 in June 2026. If you plan to offer calling as your own service, rather than as a customer of an authorised provider, take legal advice first.</p>
<h2>How Vobiz handles WebRTC</h2>
<p>Vobiz connects your WebRTC clients to phone numbers and call control. Here's how each client type connects, per the docs:</p>
<ul>
<li><strong>Browser testing.</strong> The hosted <a href="https://www.vobiz.ai/docs/integrations/webrtc-application-setup">WebRTC Playground</a> makes and receives calls in a browser tab using your Auth ID and Auth Token. It creates its own application on first connect, and you attach a DID to receive inbound calls. The <a href="https://www.vobiz.ai/docs/guides/receive-inbound-call">inbound guide</a> walks through it.</li>
<li><strong>Custom browser clients.</strong> Create a <a href="https://www.vobiz.ai/docs/platform/voice/endpoints">SIP endpoint</a>, then <a href="https://www.vobiz.ai/docs/endpoint/endpoint-object">register it over SIP on a WebSocket</a> with the endpoint's username and password. Each endpoint holds one active registration, so give each agent their own.</li>
<li><strong>iOS apps.</strong> Run the browser SDK inside a WebView, or place calls through the <a href="https://www.vobiz.ai/docs/call/overview">Voice API</a> and connect the app over your own transport.</li>
<li><strong>Call logic.</strong> An <a href="https://www.vobiz.ai/docs/platform/voice/applications">application</a> holds the Answer URL that returns <a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">VobizXML</a>. Calls to an endpoint hit it.</li>
<li><strong>Voice AI on phone calls.</strong> Connect trunks to a platform such as <a href="https://www.vobiz.ai/docs/integrations/livekit">LiveKit</a>, which brings callers into WebRTC rooms as SIP participants. Or use <a href="https://www.vobiz.ai/docs/xml/stream">audio streaming</a> for <a href="https://www.vobiz.ai/docs/concepts/streaming-websockets">bidirectional WebSocket audio</a>, with L16 at 8 or 16 kHz inbound and up to 24 kHz for playback.</li>
<li><strong>WhatsApp calls.</strong> The <a href="https://www.vobiz.ai/docs/whatsapp/api/calls">WhatsApp calling API</a> takes a WebRTC SDP offer and runs over WhatsApp's own WebRTC infrastructure.</li>
<li><strong>Quality data.</strong> Each <a href="https://www.vobiz.ai/docs/cdr">call detail record</a> reports the negotiated codec, with call-quality scores, jitter, and packet loss. Current rates are on the <a href="https://www.vobiz.ai/pricing/">pricing page</a>. Test calls are real and billed to your account. Use your own credentials, confirm numbers first, and enter your Auth Token only on Vobiz services or your own server.</li>
</ul>
<h2>Frequently asked questions</h2>
<h2>FAQ</h2>
<h3>What does WebRTC mean?</h3>
<p>WebRTC means Web Real-Time Communication. The name covers a browser API, a set of network protocols, and an open-source engine that work together. They let a web page or app send live audio, video, and data without a plugin.</p>
<h3>Is WebRTC peer-to-peer?</h3>
<p>It can be. Media goes directly between two peers when the network allows, and through a TURN relay when it doesn't. Many business deployments also put a media server in the path for recording, group calls, or AI. Setup always needs a signalling server.</p>
<h3>Is WebRTC secure?</h3>
<p>Encryption is mandatory: SRTP protects media and DTLS protects data channels, with no plain mode. Your application still has to secure signalling, login, and any server in the media path, because that server can access the audio.</p>
<h3>Do I need a TURN server for WebRTC?</h3>
<p>For a production service, yes. Some networks block every direct path, and those calls fail without a relay. Published estimates put relayed sessions between about 8% and 25%, so measure your own share. Offer TURN over UDP and over TLS.</p>
<h3>Can WebRTC call a phone number?</h3>
<p>Not by itself, because WebRTC connects browsers, apps, and servers over IP. To reach a phone number, you need a gateway that joins the session to a carrier, plus a number to use as caller ID. On Vobiz, a registered endpoint can place those calls.</p>
<h3>Is WebRTC free?</h3>
<p>The standards and the open-source code cost nothing to use. Running a real service does cost money: signalling servers, TURN bandwidth, and any media servers. Calls that reach the phone network also carry telephony charges.</p>
<h2>Further reading on Vobiz</h2>
<ul>
<li><a href="https://www.vobiz.ai/docs/integrations/webrtc-application-setup">WebRTC Playground</a> · <a href="https://www.vobiz.ai/docs/platform/voice/endpoints">SIP endpoints</a></li>
<li><a href="https://www.vobiz.ai/docs/blogs/what-is-sip">What is SIP?</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-voip">What is VoIP?</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-a-voice-api">What is a Voice API?</a></li>
<li><a href="https://www.vobiz.ai/docs/concepts/sip-vs-websockets">SIP vs WebSockets</a> · <a href="https://www.vobiz.ai/docs/concepts/streaming-websockets">Streaming over WebSockets</a> · <a href="https://www.vobiz.ai/docs/audio-streams">Audio Streams API</a></li>
<li><a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">India calling regulations</a> · <a href="https://www.vobiz.ai/docs/compliance/india/ucc">UCC management</a></li>
</ul>
<h2>Sources</h2>
<p><strong>Web and browser standards</strong></p>
<ul>
<li>W3C, <a href="https://www.w3.org/TR/webrtc/">WebRTC: Real-Time Communication in Browsers</a>, Recommendation, 13 March 2025.</li>
<li>W3C and IETF, <a href="https://www.w3.org/press-releases/2021/webrtc-rec/">WebRTC becomes a W3C Recommendation and multiple IETF standards</a>, 26 January 2021.</li>
<li>W3C, <a href="https://www.w3.org/TR/webrtc-stats/">Identifiers for WebRTC's Statistics API</a>, Candidate Recommendation Draft, 25 September 2025.</li>
<li>MDN, <a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia">MediaDevices: getUserMedia</a> and <a href="https://developer.mozilla.org/en-US/docs/Web/Media/Guides/Formats/WebRTC_codecs">Codecs used by WebRTC</a>.</li>
<li>WebRTC project, <a href="https://webrtc.org/">Real-time communication for the web</a>.</li>
</ul>
<p><strong>IETF standards</strong></p>
<ul>
<li><a href="https://www.rfc-editor.org/rfc/rfc6455.html">RFC 6455: The WebSocket Protocol</a>, December 2011.</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc6888.html">RFC 6888: Common Requirements for Carrier-Grade NATs</a>, April 2013.</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc7118.html">RFC 7118: The WebSocket Protocol as a Transport for SIP</a>, January 2014.</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc7587.html">RFC 7587: RTP Payload Format for the Opus Speech and Audio Codec</a>, June 2015.</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc7667.html">RFC 7667: RTP Topologies</a>, November 2015.</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc7742.html">RFC 7742: WebRTC Video Processing and Codec Requirements</a>, March 2016.</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc7874.html">RFC 7874: WebRTC Audio Codec and Processing Requirements</a>, May 2016.</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc8445.html">RFC 8445: Interactive Connectivity Establishment</a>, July 2018.</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc8489.html">RFC 8489: Session Traversal Utilities for NAT</a>, February 2020.</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc8656.html">RFC 8656: Traversal Using Relays around NAT</a>, February 2020.</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc8825.html">RFC 8825: Overview of Real-Time Protocols for Browser-Based Applications</a>, January 2021.</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc8827.html">RFC 8827: WebRTC Security Architecture</a>, January 2021.</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc8828.html">RFC 8828: WebRTC IP Address Handling Requirements</a>, January 2021.</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc8831.html">RFC 8831: WebRTC Data Channels</a>, January 2021.</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc8835.html">RFC 8835: Transports for WebRTC</a>, January 2021.</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc8838.html">RFC 8838: Trickle ICE</a>, January 2021.</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc9429.html">RFC 9429: JavaScript Session Establishment Protocol</a>, April 2024.</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc9605.html">RFC 9605: Secure Frame (SFrame)</a>, August 2024.</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc9725.html">RFC 9725: WebRTC-HTTP Ingestion Protocol (WHIP)</a>, March 2025.</li>
</ul>
<p><strong>India</strong></p>
<ul>
<li>TRAI, <a href="https://trai.gov.in/sites/default/files/2026-10/PR_No135of2026.pdf">Press release 135/2026: Performance Indicator Report, April to June 2026</a>, 12 October 2026.</li>
<li>TRAI, <a href="https://trai.gov.in/sites/default/files/2026-09/PR_No119of2026.pdf">Press release 119/2026 on the Third Amendment</a>, 18 September 2026.</li>
<li>TRAI, <a href="https://trai.gov.in/sites/default/files/2026-09/Regulation_18092026.pdf">Telecom Commercial Communications Customer Preference (Third Amendment) Regulations, 2026</a>, 18 September 2026.</li>
<li>APNIC Labs, <a href="https://stats.labs.apnic.net/ipv6/IN">Use of IPv6 for India</a>, read 3 November 2026.</li>
<li>Khaitan &amp; Co, <a href="https://www.khaitanco.com/sites/default/files/2026-06/Ergo_Principal%20Telecom%20Authorisation%20Rules_26062026.pdf">Update on the principal telecommunication services authorisation rules</a>, June 2026.</li>
</ul>
<p><strong>Industry estimates</strong></p>
<ul>
<li><a href="http://BlogGeek.me">BlogGeek.me</a>, <a href="https://bloggeek.me/what-is-webrtc/">What is WebRTC and what is it good for?</a> and <a href="https://bloggeek.me/webrtc-turn/">WebRTC TURN</a>.</li>
<li>Metered, <a href="https://www.metered.ca/blog/what-is-a-turn-server-3/">What is a TURN server?</a></li>
<li>VideoSDK, <a href="https://www.videosdk.live/developer-hub/webrtc/turn-server-for-webrtc">TURN server for WebRTC</a>.</li>
</ul>
<hr />
<p>If your voice AI agent also needs to reach ordinary phone numbers, <a href="https://www.vobiz.ai">Vobiz</a> provides SIP trunks and numbers for that leg.</p>
]]></content:encoded></item><item><title><![CDATA[SIP vs VoIP: Call Layers, Buying Choices and India Rules]]></title><description><![CDATA[A layer-by-layer teardown of one call, and the buying decision that actually matters]]></description><link>https://piyuzz.hashnode.dev/sip-vs-voip</link><guid isPermaLink="true">https://piyuzz.hashnode.dev/sip-vs-voip</guid><category><![CDATA[Telephony]]></category><category><![CDATA[architecture]]></category><category><![CDATA[sip trunking]]></category><category><![CDATA[voip]]></category><category><![CDATA[SIP]]></category><dc:creator><![CDATA[Piyush Sahoo]]></dc:creator><pubDate>Wed, 11 Nov 2026 07:39:30 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/c20dd3c8-437c-4999-b1f6-d69078143aa2.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This guide clarifies the relationship between VoIP and SIP, breaks one call into layers, and maps each buying decision to a service type, with a section on what changes for calls in India.</p>
<p>VoIP is the broad category of carrying voice over IP networks. SIP is the signalling protocol most business VoIP uses to start, change, and end calls, and it carries no audio itself. So you never choose between them. You choose a VoIP service, and you decide who runs it.</p>
<p>This guide takes one call apart layer by layer, counts how little of it is really SIP, and maps each buying decision to a service. It then covers what changes when the call runs in India.</p>
<blockquote>
<p><strong>Note: Key takeaways</strong></p>
<ul>
<li><strong>SIP and VoIP sit at different levels.</strong> VoIP names the whole job, while SIP handles one layer of it. The two can't compete.</li>
<li><strong>A call is mostly not SIP.</strong> In our 3-minute example, SIP sends 10 messages and RTP sends 18,000 packets.</li>
<li><strong>The layer tells you where to debug.</strong> Calls that won't connect point at signalling, and bad audio points at media and the network.</li>
<li><strong>The buying decision is about ownership.</strong> Hosted PBX, SIP trunk, Voice API, and audio stream differ in who runs the phone system and the call logic.</li>
<li><strong>Indian rules follow the call.</strong> Number series, automated-call declarations, and toll bypass limits don't depend on what a vendor calls its product.</li>
</ul>
</blockquote>
<h2>What is the difference between SIP and VoIP?</h2>
<p>VoIP describes an outcome: your voice reaches someone over an IP network instead of a circuit. SIP describes one mechanism used along the way. Comparing them is like comparing "shipping" with "the booking system": one is the service, and the other is the part that arranges it.</p>
<p>The <a href="https://www.rfc-editor.org/rfc/rfc3261.html">SIP standard, RFC 3261</a>, defines SIP as an application-layer control protocol for creating, modifying, and terminating sessions. The same document says SIP is not a vertically integrated communications system. It relies on other protocols to do the rest, and the diagram shows where each one fits.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/a7a4a8ed-c94a-4053-a3f0-b0d90e34baa1.png" alt="Stack diagram of a VoIP call. An outer box labelled VoIP holds six rows: application, signalling, description, media, codec, and transport. SIP is highlighted as one of four options in the signalling row, next to H.323, app-defined signalling, and proprietary protocols." style="display:block;margin:0 auto" />

<p>Each row does a different job, and each one fails in its own way:</p>
<table>
<thead>
<tr>
<th>Layer</th>
<th>Job in the call</th>
<th>Common standards</th>
<th>When it fails, you see</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Signalling</strong></td>
<td>Finds the other party, then starts and ends the call</td>
<td><a href="https://www.rfc-editor.org/rfc/rfc3261.html">SIP</a>, <a href="https://www.itu.int/rec/T-REC-H.323">H.323</a></td>
<td>Call rejected, or never rings</td>
</tr>
<tr>
<td><strong>Description</strong></td>
<td>States the codecs and the address that expects audio</td>
<td><a href="https://www.rfc-editor.org/rfc/rfc8866.html">SDP</a>, with <a href="https://www.rfc-editor.org/rfc/rfc3264.html">offer/answer</a></td>
<td>Connected, but one-way audio or none</td>
</tr>
<tr>
<td><strong>Media</strong></td>
<td>Moves timed audio packets</td>
<td><a href="https://www.rfc-editor.org/rfc/rfc3550.html">RTP</a>, <a href="https://www.rfc-editor.org/rfc/rfc3711.html">SRTP</a></td>
<td>Gaps, robotic sound, silence</td>
</tr>
<tr>
<td><strong>Codec</strong></td>
<td>Turns speech into bytes and back</td>
<td><a href="https://www.itu.int/rec/T-REC-G.711">G.711</a>, <a href="https://www.rfc-editor.org/rfc/rfc6716.html">Opus</a></td>
<td>Thin sound, or failed negotiation</td>
</tr>
<tr>
<td><strong>Transport</strong></td>
<td>Delivers packets across the network</td>
<td>UDP, TCP, TLS, <a href="https://www.rfc-editor.org/rfc/rfc7118.html">WebSocket</a></td>
<td>Delay, loss, blocked connections</td>
</tr>
</tbody></table>
<p>The terms blur for a historical reason. <a href="https://www.techtarget.com/news/SIP-trunking-vs-VoIP-Whats-the-difference/850424/">TechTarget dates commercial VoIP to 1995</a>. The IETF published SIP as <a href="https://www.rfc-editor.org/rfc/rfc2543.html">RFC 2543 in March 1999</a> and revised it in 2002. SIP then became the usual signalling choice in business voice, so people started using the names for each other.</p>
<p>You may also read that VoIP is for voice while SIP is for multimedia, or that SIP suits enterprises and VoIP suits small firms. Both framings compare a category with a protocol. A small office on a hosted phone service can still be using SIP handsets, without anyone there knowing the term.</p>
<h2>How much of a call is actually SIP?</h2>
<p>Very little. Take a 3-minute call using G.711 with 20 ms packets, on a trunk that challenges each INVITE for credentials.</p>
<ul>
<li><strong>SIP:</strong> 10 messages on that hop. Eight set the call up, including the challenge and retry, and two end it.</li>
<li><strong>RTP:</strong> 50 packets per second in each direction, which comes to 18,000 packets over 180 seconds.</li>
<li><strong>Data:</strong> <a href="https://www.trai.gov.in/sites/default/files/2025-02/Recommendation_06022025.pdf">TRAI puts a G.711 SIP call at about 87 kbps</a>, so media is about 2 MB per direction.</li>
</ul>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/0e4bfea0-eb71-4413-8125-9261e5392c30.png" alt="Timeline of a three-minute G.711 call. Eight SIP messages cluster at the start and two at the end, while a continuous RTP band fills the time between. Summary cards show 10 SIP messages, 18,000 RTP packets, and a ratio of 1 to 1,800. Labelled as an illustrative Vobiz calculation." style="display:block;margin:0 auto" />

<p>This count has three practical consequences:</p>
<ul>
<li><strong>Bandwidth planning is a media question.</strong> Size your links on the codec and the number of concurrent calls. SIP traffic barely registers next to RTP.</li>
<li><strong>"SIP quality" usually isn't SIP.</strong> Choppy audio comes from loss and jitter on the media path. A clean SIP trace can sit beside a terrible call.</li>
<li><strong>Two paths need two firewall rules.</strong> Signalling and media often use different ports and addresses. That's why a call can ring, connect, and bill while nobody hears anything. On Vobiz, the <a href="https://www.vobiz.ai/docs/concepts/ip-whitelisting">IP address allowlist</a> lists SIP signalling and RTP media ranges as separate rules for exactly this reason.</li>
</ul>
<p>Our <a href="https://www.vobiz.ai/docs/blogs/what-is-sip-trunking">SIP trunking guide</a> follows this split through a full call ladder and a symptom table.</p>
<h2>Can VoIP work without SIP?</h2>
<p>Yes, and you may be using it that way already. SIP is common, but nothing in the definition of VoIP requires it.</p>
<table>
<thead>
<tr>
<th>Approach</th>
<th>How signalling works</th>
<th>Where you meet it</th>
</tr>
</thead>
<tbody><tr>
<td><strong>SIP</strong></td>
<td>Text-based requests and responses, defined by the IETF</td>
<td>PBXs, trunks, desk phones, carriers</td>
</tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-H.323"><strong>H.323</strong></a></td>
<td>An ITU-T system for packet-based multimedia</td>
<td>Some video and voice deployments, especially older ones</td>
</tr>
<tr>
<td><strong>WebRTC</strong></td>
<td><a href="https://www.rfc-editor.org/rfc/rfc8829.html">JSEP specifies no signalling model</a>, and sessions <a href="https://www.rfc-editor.org/rfc/rfc8825.html">typically use application-specific protocols</a></td>
<td>Browser and in-app calling</td>
</tr>
<tr>
<td><strong>SIP over WebSocket</strong></td>
<td><a href="https://www.rfc-editor.org/rfc/rfc7118.html">RFC 7118</a> carries SIP over a WebSocket connection</td>
<td>Web softphones that register like a phone</td>
</tr>
<tr>
<td><strong>Call-control API</strong></td>
<td>Your server exchanges HTTP or WebSocket messages with the platform</td>
<td><a href="https://www.vobiz.ai/docs/blogs/what-is-a-voice-api">Voice APIs</a> and <a href="https://www.vobiz.ai/docs/concepts/streaming-websockets">audio streaming</a></td>
</tr>
</tbody></table>
<p>Two points get lost in most comparisons.</p>
<p><strong>WebRTC and SIP are not opposites.</strong> A browser client can run WebRTC media and use SIP over WebSocket for signalling. WebRTC endpoints <a href="https://www.rfc-editor.org/rfc/rfc7874.html">must support Opus and G.711</a>, and that standard names G.711 as the base for working with legacy phone systems. You can try this on Vobiz with the <a href="https://www.vobiz.ai/docs/guides/receive-inbound-call">WebRTC Playground</a>, which turns a browser tab into a softphone that answers calls to a real number. Our <a href="https://www.vobiz.ai/docs/blogs/what-is-webrtc">WebRTC explainer</a> goes further.</p>
<p><strong>SIP does more than voice.</strong> It has defined extensions for <a href="https://www.rfc-editor.org/rfc/rfc3428.html">instant messaging</a> and <a href="https://www.rfc-editor.org/rfc/rfc3856.html">presence</a>. So you can have VoIP without SIP, and SIP without a voice call.</p>
<h2>Why do vendors compare SIP with VoIP?</h2>
<p>Because the sales page is usually comparing two products while using protocol names. When a provider writes "SIP vs VoIP", it almost always means SIP trunking vs a hosted phone system. The real question behind that comparison is who owns and runs the phone system.</p>
<p>That framing fits an office phone replacement. It leaves out teams building calling into software, who have two more options. The matrix shows all four, and every one of them is VoIP.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/4a4f1c7c-6bed-449a-90de-49e8fe5303e3.png" alt="Matrix of five responsibilities across four services. Hosted PBX: the provider runs nearly everything. SIP trunk with your PBX: you run the phone system, call logic, and SIP edge, while the provider runs the carrier link. Voice API: call logic is shared and the provider runs the rest. Audio stream: you run call logic and live audio processing, while the provider runs the SIP edge and the carrier link." style="display:block;margin:0 auto" />

<p>Read each column as a list of what you'd own. A SIP trunk gives you the phone system and the SIP edge. A Voice API or audio stream gives you call logic instead, and the provider keeps the SIP edge. The carrier link stays with a provider in every column, because that's the part you can't easily run yourself.</p>
<p>These aren't exclusive either. A business can run a cloud PBX and SIP trunking together. A common pattern is a PBX for staff extensions, plus a separate voice application for automated calls.</p>
<h3>SIP phones and VoIP phones</h3>
<p>The same logic applies to hardware. A VoIP phone is any device that calls over IP, and a SIP phone is one that signals with SIP. Many of them are SIP phones too, so the label rarely changes a purchase.</p>
<p>The question to ask is narrower: can this handset register with any standard SIP registrar, or only with one vendor's cloud? That answer decides whether you can move it to another provider later. On Vobiz, a standard SIP client registers as a <a href="https://www.vobiz.ai/docs/platform/voice/endpoints">SIP endpoint</a> using a username, password, and the registrar domain, with no vendor-specific firmware involved.</p>
<h2>Which VoIP service should you buy?</h2>
<p>Four questions settle it. None of them mentions SIP or VoIP.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/dee94c1e-b469-4ace-a793-80fa946eb917.png" alt="Decision map. If software should not decide each call, and you do not run a PBX, choose hosted PBX. If you do run one, choose a SIP trunk to your PBX. If software decides each call and your code processes raw audio, choose an audio stream over WebSocket. If it does not, and you use a managed voice AI platform over SIP, choose a SIP trunk to the platform. Otherwise choose a Voice API with call-control XML." style="display:block;margin:0 auto" />

<p>Here's how that plays out in five hypothetical situations:</p>
<table>
<thead>
<tr>
<th>Your situation</th>
<th>What to buy</th>
<th>The reason</th>
</tr>
</thead>
<tbody><tr>
<td>A 40-seat office with no telecom staff, replacing old desk phones</td>
<td>Hosted PBX</td>
<td>Nobody on the team wants to patch or secure a phone system</td>
</tr>
<tr>
<td>A contact centre with an established PBX and an ageing E1 PRI</td>
<td>SIP trunk</td>
<td>The PBX keeps its call flows, and only the carrier connection changes</td>
</tr>
<tr>
<td>A SaaS product adding appointment reminders and a simple menu</td>
<td>Voice API</td>
<td>Your backend already holds the logic, so it can return call instructions</td>
</tr>
<tr>
<td>An AI agent built on a platform such as LiveKit or Vapi</td>
<td>SIP trunk to the platform</td>
<td>The platform handles speech and turn-taking, and needs a carrier path</td>
</tr>
<tr>
<td>An AI agent built with your own speech and LLM pipeline</td>
<td>Audio stream</td>
<td>Your code needs the raw audio in both directions</td>
</tr>
</tbody></table>
<p><a href="https://www.vobiz.ai/docs/concepts/sip-vs-websockets">Our comparison of SIP and WebSocket paths</a> covers the last two rows in detail. On Vobiz, the two paths start differently:</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/b933310f-034a-4eb6-9408-ba3dbc6989dd.png" alt="Two-column comparison of the two ways to connect a phone call to an AI agent on Vobiz. SIP trunk: the caller dials, the Vobiz SIP trunk routes a SIP INVITE to the platform's SIP URI, a voice AI platform such as LiveKit, Vapi, Retell or ElevenLabs terminates SIP, and audio flows as RTP over UDP; best for managed platforms, PBX integration, live transfer and scaling by trunk channels. WebSocket stream with Audio Streams: Vobiz fetches your Answer URL and gets a VobizXML Stream element, a wss connection carries Base64 audio to your server, and your code runs STT, LLM and TTS and sends audio back on the same socket; best for custom pipelines, direct model APIs and full control of barge-in." style="display:block;margin:0 auto" />

<ul>
<li><strong>SIP trunk to a platform.</strong> Vobiz routes the call to the platform's SIP address, and the platform terminates SIP and runs speech, the model, and turn-taking. Audio moves as RTP over UDP, which never retransmits, so it stays real-time.</li>
<li><strong>Audio stream to your server.</strong> Vobiz fetches your Answer URL, your <a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">VobizXML</a> returns a <a href="https://www.vobiz.ai/docs/xml/stream">Stream element</a>, and the caller's audio reaches your server over a wss:// socket. Your code sends replies back on the same connection and handles barge-in itself.</li>
</ul>
<p>The two also combine. A call can arrive on a SIP trunk and still be piped to your socket, so SIP handles routing and the socket handles audio. The <a href="https://www.vobiz.ai/docs/resources/sip-vs-websocket-visualizer">SIP vs WebSocket visualizer</a> steps through both paths, inbound and outbound.</p>
<h3>Moving off a PRI or landline</h3>
<p>The order of work matters more than the technology:</p>
<ol>
<li><strong>Decide where your numbers will live.</strong> You can stay with your current carrier, or take new numbers from the new provider. Settle this first, because it shapes the cutover. If the numbers stay put, Vobiz's <a href="https://www.vobiz.ai/docs/concepts/bring-your-own-carrier">Bring Your Own Carrier</a> setup routes that carrier's traffic through Vobiz without porting.</li>
<li><strong>Count your channels.</strong> An <a href="https://www.trai.gov.in/sites/default/files/2025-02/Recommendation_06022025.pdf">E1 PRI gives you 30 channels on a 2 Mbps line</a>. Size the replacement on your busiest hour, using the <a href="https://www.vobiz.ai/docs/blogs/what-is-sip-trunking">channel math in our trunking guide</a>, or the Vobiz <a href="https://www.vobiz.ai/docs/resources/calculator">CPS and concurrency calculator</a>, which counts ringing calls as occupied channels too.</li>
<li><strong>Test the data path.</strong> At 87 kbps, 30 G.711 calls need about 2.6 Mbps in each direction.</li>
<li><strong>Open two firewall paths.</strong> Allow signalling and media separately, then test audio in both directions.</li>
<li><strong>Run both systems in parallel.</strong> Move a small group first, and keep the old circuit until the new path has handled a real peak.</li>
</ol>
<h2>What changes when you run SIP or VoIP in India?</h2>
<p>The rule that applies depends on what the call does, not on the product label. Indian telecom documents use the phrase "internet telephony", and commercial calling rules name PRI and SIP trunks directly. The diagram shows the four checks a business call meets.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/ba9acbe5-9050-4303-a362-3f313fa32bb5.png" alt="Diagram of a call running from your app or PBX through an authorised provider and the public network to a recipient, with four checks along it. Why you are calling decides the 140xx or 1600xx series. Automated calls need advance declaration. Where the legs sit raises toll bypass limits for OSP voice BPOs and India's media anchoring requirement. Each DID on a trunk counts as a separate resource for restoration charges." style="display:block;margin:0 auto" />

<p>These rules change often, so confirm the current text and take legal advice for your own case.</p>
<table>
<thead>
<tr>
<th>Question</th>
<th>What the source says</th>
<th>Source and date</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Who may connect VoIP to the phone network?</strong></td>
<td>Access licensees could provide internet telephony and interconnect it with PSTN and mobile networks. DoT clarified that the service isn't tied to the customer's underlying access network</td>
<td><a href="https://trai.gov.in/sites/default/files/2024-11/RecommendationIT16072018.pdf">TRAI response to DoT</a>, July 2018</td>
</tr>
<tr>
<td><strong>Which number series for promotions?</strong></td>
<td>140xx, for registered entities in any sector</td>
<td><a href="https://www.trai.gov.in/sites/default/files/2026-07/PR_No91of2026.pdf">TRAI press release 91/2026</a>, July 2026</td>
</tr>
<tr>
<td><strong>Which series for service calls?</strong></td>
<td>1600xx, for entities regulated by RBI, SEBI, IRDAI, and PFRDA, and for government bodies</td>
<td><a href="https://www.trai.gov.in/sites/default/files/2026-07/PR_No91of2026.pdf">TRAI press release 91/2026</a>, July 2026</td>
</tr>
<tr>
<td><strong>What happens after spam violations?</strong></td>
<td>First instance: outgoing services barred for 15 days. Later instances: all resources, including PRI and SIP trunks, disconnected for one year across all access providers. If TRAI orders restoration, each DID on a trunk counts as a separate resource for the charge. The Third Amendment's revised text keeps these terms</td>
<td><a href="https://www.trai.gov.in/sites/default/files/2025-02/Regulation_12022025.pdf">TCCCPR Second Amendment</a>, February 2025, and <a href="https://www.trai.gov.in/sites/default/files/2026-09/Regulation_18092026.pdf">Third Amendment</a>, September 2026</td>
</tr>
<tr>
<td><strong>Do automated calls need anything extra?</strong></td>
<td>Once in force, senders must declare application-to-person calls and CLI ranges to the originating provider in advance. Undeclared calls count as unsolicited</td>
<td><a href="https://www.trai.gov.in/sites/default/files/2026-09/Regulation_18092026.pdf">TCCCPR Third Amendment</a>, September 2026</td>
</tr>
<tr>
<td><strong>Can you carry PSTN calls on your own network?</strong></td>
<td>For voice BPOs that meet the OSP definition, carrying public network calls between cities, or between India and abroad, over your own network is toll bypass. The same guidelines allow OSPs some carriage between their own centres over leased lines and MPLS VPNs</td>
<td><a href="https://www.dot.gov.in/static/uploads/2025/08/4e6e21029dc45f42b4e1e57e6300fa72.pdf">DoT OSP guidelines</a>, June 2021</td>
</tr>
</tbody></table>
<p>Three points need more care than a table allows.</p>
<p><strong>The licensing framework is moving.</strong> The 2018 position above predates the Telecommunications Act, 2023. <a href="https://www.khaitanco.com/sites/default/files/2026-06/Ergo_Principal%20Telecom%20Authorisation%20Rules_26062026.pdf">Khaitan &amp; Co reports</a> that DoT notified new authorisation rules on 24 June 2026, including a wireline access category for virtual network operators whose scope includes internet telephony. The firm also advises existing licensees to weigh migration against continuing under their licences. We read this law firm's summary and not the Gazette text. We also could not confirm whether the rules change the OSP position, so check with your provider and counsel.</p>
<p><strong>An outbound voice agent appears to be an A2P call.</strong> The <a href="https://www.trai.gov.in/sites/default/files/2026-09/Regulation_18092026.pdf">Third Amendment</a> defines A2P as a call started by an application, software system, or automated platform without direct human dialling, including artificial voice. It also lets terminating operators charge originating operators up to ₹0.05 per minute on A2P calls, with 140xx, 1600xx, and 1601xx numbers exempt. The declaration and the charge start 60 days after Gazette publication. We could not confirm that publication date, so check whether they apply on your launch date.</p>
<p><strong>Watch two recommendations on SIP numbering.</strong> <a href="https://www.trai.gov.in/sites/default/files/2025-02/Recommendation_06022025.pdf">TRAI's February 2025 recommendations</a> ask DoT field units to monitor allocations above 15 numbers per Mbps on SIP and PRI connections, and they call for calling name presentation on SIP and PRI calls reaching mobile networks. These are recommendations, and we could not confirm their current status.</p>
<h2>What should you ask a provider instead?</h2>
<p>Once the label is gone, the useful questions map to the layers:</p>
<table>
<thead>
<tr>
<th>Layer</th>
<th>Ask this</th>
<th>A good answer lets you</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Signalling</strong></td>
<td>Which transports are supported, and how do you authenticate?</td>
<td>Encrypt signalling, and match your network to IP or credential auth</td>
</tr>
<tr>
<td><strong>Media</strong></td>
<td>Is SRTP available, and where does media anchor?</td>
<td>Confirm encryption and data path against your own policy</td>
</tr>
<tr>
<td><strong>Codec</strong></td>
<td>Which codecs can be negotiated on my routes?</td>
<td>Predict bandwidth and audio quality</td>
</tr>
<tr>
<td><strong>Capacity</strong></td>
<td>How are concurrent calls and calls per second enforced?</td>
<td>Size for peaks and avoid surprise rejections</td>
</tr>
<tr>
<td><strong>Visibility</strong></td>
<td>What quality data appears on each call record?</td>
<td>Check quality per call instead of relying on complaints</td>
</tr>
<tr>
<td><strong>Compliance</strong></td>
<td>Who handles KYC and number series, and what do you need from me?</td>
<td>Launch without a late regulatory block</td>
</tr>
</tbody></table>
<p>Ask for documentation of each answer. A provider's public docs show you what you can verify before you sign. As one example of the signalling detail worth expecting, Vobiz publishes its <a href="https://www.vobiz.ai/docs/concepts/hangup-causes">hangup causes</a> and what <a href="https://www.vobiz.ai/docs/faq/sip-codes-480-486">SIP 480 and 486</a> mean on a call record.</p>
<h2>How Vobiz handles both sides</h2>
<p><a href="https://www.vobiz.ai/docs/introduction">Vobiz</a> offers the trunk, API, and streaming paths on one platform. Vobiz also connects to PBXs and voice AI platforms, so the choice above decides which resources you use.</p>
<ul>
<li><strong>SIP trunks.</strong> <a href="https://www.vobiz.ai/docs/platform/sip/outbound-trunks">Outbound</a> and <a href="https://www.vobiz.ai/docs/platform/sip/inbound-trunks">inbound</a> trunks are separate resources. You authenticate with an <a href="https://www.vobiz.ai/docs/platform/sip/ip-access-control-list">IP Access Control List</a> or a <a href="https://www.vobiz.ai/docs/platform/sip/credentials">SIP credential</a>.</li>
<li><strong>Encryption.</strong> On the <a href="https://www.vobiz.ai/docs/trunks/trunk-object">trunk object</a>, one setting picks UDP, TCP, or TLS for signalling and another turns on SRTP for media.</li>
<li><strong>Endpoints.</strong> <a href="https://www.vobiz.ai/docs/endpoint/endpoint-object">SIP endpoints</a> register softphones and desk phones, and custom WebRTC clients can register using SIP over WebSocket. These are separate from trunks.</li>
<li><strong>Call control.</strong> With <a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">VobizXML</a>, Vobiz sends webhooks (callbacks) to your server as call events occur, and it executes the instructions you return. The <a href="https://www.vobiz.ai/docs/call/overview">Call API</a> places and manages calls.</li>
<li><strong>Audio streaming.</strong> <a href="https://www.vobiz.ai/docs/audio-streams">Audio Streams</a> send live call audio to your WebSocket server. Inbound audio is L16 at 8 or 16 kHz, or μ-law at 8 kHz. Bidirectional playback accepts L16 at 8, 16, or 24 kHz, or μ-law at 8 kHz, and <a href="https://www.vobiz.ai/docs/concepts/streaming-websockets">a clear-audio command supports barge-in</a>.</li>
<li><strong>Existing systems.</strong> The <a href="https://www.vobiz.ai/docs/integrations/3cx">3CX guide</a> covers that PBX. <a href="https://www.vobiz.ai/docs/concepts/bring-your-own-carrier">Bring Your Own Carrier</a> lets you route traffic from your existing carrier or SBC through Vobiz while your numbers stay with that carrier.</li>
<li><strong>Voice AI platforms.</strong> Guides cover <a href="https://www.vobiz.ai/docs/integrations/livekit">LiveKit</a>, <a href="https://www.vobiz.ai/docs/integrations/vapi-dashboard">Vapi</a>, and <a href="https://www.vobiz.ai/docs/integrations/retellai-dashboard">Retell AI</a> over SIP, and <a href="https://www.vobiz.ai/docs/integrations/pipecat">Pipecat</a> over WebSocket.</li>
<li><strong>Capacity.</strong> <a href="https://www.vobiz.ai/docs/platform/capacity/concurrency">Concurrency</a> and <a href="https://www.vobiz.ai/docs/platform/capacity/cps">CPS</a> limits apply at account level.</li>
<li><strong>Quality data.</strong> Each <a href="https://www.vobiz.ai/docs/cdr">call record</a> reports the codec, call-quality scores, jitter, and packet loss, so you can trace an audio complaint to the media layer.</li>
<li><strong>India.</strong> The <a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">calling regulations page</a> covers eligibility, KYC, caller ID, and the media anchoring rule, which keeps both legs of an Indian call in India. See also <a href="https://www.vobiz.ai/docs/compliance/india/ucc">UCC management</a> and <a href="https://www.vobiz.ai/docs/best-practices/140-160-acquisition">140 and 160 series acquisition</a>.</li>
</ul>
<p>Current rates are on the <a href="https://www.vobiz.ai/pricing/">Vobiz pricing page</a>. Test calls are billed and reach real phones, so use your own Auth ID and Auth Token, and confirm each number first.</p>
<h2>Frequently asked questions</h2>
<h2>FAQ</h2>
<h3>Is SIP the same as VoIP?</h3>
<p>No. VoIP means carrying voice over IP networks, by any method. SIP is one protocol used inside many VoIP calls, and its job is to start, change, and end the session. SIP needs other protocols to move the audio, so it can't replace VoIP.</p>
<h3>Can VoIP work without SIP?</h3>
<p>Yes. H.323 can signal VoIP calls, some vendors use their own protocols, and WebRTC leaves signalling to the application. SIP is still the usual language at the boundary with carriers and business phone systems, so you often meet it somewhere on the path.</p>
<h3>Does SIP carry the voice in a call?</h3>
<p>No. SIP messages agree who is talking and how, using an SDP description of codecs and addresses. The audio then travels in separate RTP or SRTP packets. That split is why a call can connect correctly and still have no sound.</p>
<h3>Is SIP trunking a type of VoIP?</h3>
<p>Yes. A SIP trunk is a VoIP service that connects your PBX or application to a carrier and the public phone network. Hosted PBX services and Voice APIs are VoIP too. They differ in who runs the phone system and call logic.</p>
<h3>Which is better for a business, SIP or VoIP?</h3>
<p>Neither, because they aren't alternatives. Choose by who should run the phone system. Pick hosted PBX for a managed system, a SIP trunk if you run a PBX or voice AI platform, and a Voice API or audio stream if your software controls calls.</p>
<h3>Are SIP and VoIP calls legal for businesses in India?</h3>
<p>Yes, through an authorised provider and within the rules. Indian rules focus on how you use the service, including number series, automated calling, and toll bypass, rather than on the SIP or VoIP label. Check the current text and take legal advice for your case.</p>
<h2>Further reading on Vobiz</h2>
<ul>
<li><a href="https://www.vobiz.ai/docs/blogs/what-is-sip">What is SIP?</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-voip">Voice over IP explained</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-sip-trunking">SIP trunking guide</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-webrtc">WebRTC explained</a></li>
<li><a href="https://www.vobiz.ai/docs/platform/sip/overview">SIP trunking overview</a> · <a href="https://www.vobiz.ai/docs/concepts/sip-vs-websockets">SIP vs WebSockets</a> · <a href="https://www.vobiz.ai/docs/concepts/streaming-websockets">Voice streaming over WebSockets</a></li>
<li><a href="https://www.vobiz.ai/docs/blogs/what-is-a-voice-api">What is a Voice API?</a> · <a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">How VobizXML works</a> · <a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">India calling regulations</a></li>
</ul>
<h2>Sources</h2>
<p><strong>Standards</strong></p>
<ul>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc2543.html">RFC 2543: SIP: Session Initiation Protocol</a>, March 1999.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3261.html">RFC 3261: SIP: Session Initiation Protocol</a>, June 2002.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3264.html">RFC 3264: An Offer/Answer Model with SDP</a>, June 2002.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3428.html">RFC 3428: SIP Extension for Instant Messaging</a>, December 2002.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3550.html">RFC 3550: RTP: A Transport Protocol for Real-Time Applications</a>, July 2003.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3711.html">RFC 3711: The Secure Real-time Transport Protocol</a>, March 2004.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3856.html">RFC 3856: A Presence Event Package for SIP</a>, August 2004.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc6716.html">RFC 6716: Definition of the Opus Audio Codec</a>, September 2012.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc7118.html">RFC 7118: The WebSocket Protocol as a Transport for SIP</a>, January 2014.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc7874.html">RFC 7874: WebRTC Audio Codec and Processing Requirements</a>, May 2016.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc8825.html">RFC 8825: Overview: Real-Time Protocols for Browser-Based Applications</a>, January 2021.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc8829.html">RFC 8829: JavaScript Session Establishment Protocol</a>, January 2021.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc8866.html">RFC 8866: SDP: Session Description Protocol</a>, January 2021.</li>
<li>ITU-T, <a href="https://www.itu.int/rec/T-REC-H.323">Recommendation H.323: Packet-based multimedia communications systems</a>.</li>
<li>ITU-T, <a href="https://www.itu.int/rec/T-REC-G.711">Recommendation G.711: Pulse code modulation of voice frequencies</a>.</li>
</ul>
<p><strong>Indian regulators and law firm analysis</strong></p>
<ul>
<li>TRAI, <a href="https://trai.gov.in/sites/default/files/2024-11/RecommendationIT16072018.pdf">Response to DoT's back-reference on Internet Telephony</a>, 16 July 2018.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2025-02/Regulation_12022025.pdf">Telecom Commercial Communications Customer Preference (Second Amendment) Regulations, 2025</a>, February 2025.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2025-02/Recommendation_06022025.pdf">Recommendations on Revision of National Numbering Plan</a>, 6 February 2025.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2026-07/PR_No91of2026.pdf">Press release 91/2026 on the 1600 and 140 series</a>, 10 July 2026.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2026-09/Regulation_18092026.pdf">Telecom Commercial Communications Customer Preference (Third Amendment) Regulations, 2026</a>, 18 September 2026.</li>
<li>DoT, <a href="https://www.dot.gov.in/static/uploads/2025/08/4e6e21029dc45f42b4e1e57e6300fa72.pdf">Revised Guidelines for Other Service Providers</a>, 23 June 2021.</li>
<li>Khaitan &amp; Co, <a href="https://www.khaitanco.com/sites/default/files/2026-06/Ergo_Principal%20Telecom%20Authorisation%20Rules_26062026.pdf">Update on the principal telecommunication services authorisation rules</a>, 26 June 2026.</li>
</ul>
<p><strong>Industry pages that shaped this guide</strong></p>
<ul>
<li>TechTarget, <a href="https://www.techtarget.com/news/SIP-trunking-vs-VoIP-Whats-the-difference/850424/">SIP trunking vs. VoIP: What's the difference?</a>, June 2023.</li>
</ul>
<hr />
<p>If you're connecting a voice AI agent over SIP, <a href="https://www.vobiz.ai">Vobiz</a> provides AI-native SIP trunking and phone numbers for it.</p>
]]></content:encoded></item><item><title><![CDATA[What Is SIP Trunking? Channels, Sizing and India Rules]]></title><description><![CDATA[A reference for teams connecting a PBX, contact centre platform or voice application to the phone network over IP: signalling vs media, channel sizing…]]></description><link>https://piyuzz.hashnode.dev/what-is-sip-trunking</link><guid isPermaLink="true">https://piyuzz.hashnode.dev/what-is-sip-trunking</guid><category><![CDATA[sip trunking]]></category><category><![CDATA[SIP]]></category><category><![CDATA[voip]]></category><category><![CDATA[Telephony]]></category><category><![CDATA[voice ai]]></category><dc:creator><![CDATA[Piyush Sahoo]]></dc:creator><pubDate>Wed, 11 Nov 2026 07:19:31 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/c6c629f1-c0be-4e5e-b85e-4e1a18eebdd6.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A reference for teams connecting a PBX, contact centre platform or voice application to the phone network over IP: signalling vs media, channel sizing, authentication, and the Indian rules that apply to a trunk.</p>
<p>SIP trunking connects a PBX, contact centre platform, or voice application to the public telephone network (PSTN) over IP instead of physical circuits. A SIP trunk sets up each call with SIP signalling, carries the audio separately over RTP, and limits capacity by concurrent channels rather than by wires.</p>
<p>This guide traces one call from INVITE to BYE, works through the channel math with real numbers, compares the authentication models, and lists the Indian rules that apply to a trunk, each linked to its source.</p>
<blockquote>
<p><strong>Note: Key takeaways</strong></p>
<ul>
<li>A trunk is a <strong>configuration and a trust relationship</strong> with a carrier. It holds an address, an authentication method, and capacity limits, and no audio moves until a call starts.</li>
<li><strong>Signalling and media take separate paths.</strong> A call can connect perfectly and still carry no audio, because a firewall treats the two flows differently.</li>
<li><strong>Size channels on the busiest hour, not the average.</strong> In our worked example, 60 erlangs of traffic needs 75 channels to keep blocking under 1%.</li>
<li><strong>Registration, digest, and IP allowlisting solve different problems.</strong> Registration says where you are, while digest and IP allowlists establish who you are.</li>
<li><strong>In India, trunks fall inside TRAI's commercial calling rules.</strong> Repeat violations can disconnect every SIP trunk a sender holds, across all access providers, for one year.</li>
</ul>
</blockquote>
<h2>What is a SIP trunk?</h2>
<p>A SIP trunk is an arrangement between your phone system and a carrier that lets the two exchange calls over IP. The word "trunk" survives from circuit-switched telephony, where it meant a shared bundle of lines between switches.</p>
<p>The modern version has no wire to point at, which trips up many first-time deployments. Think of a trunk as three settings rather than a connection:</p>
<ul>
<li><strong>An address.</strong> This is where each side sends call requests.</li>
<li><strong>A proof of identity.</strong> This is how the carrier knows the traffic is yours.</li>
<li><strong>A set of limits.</strong> These cap how many calls can run at once and how fast new ones can start.</li>
</ul>
<p>Calls run in two directions, and each has its own name. <strong>Termination</strong> is your system placing a call out to the PSTN. <strong>Origination</strong> is the carrier delivering an inbound PSTN call to your system. Some providers model both on one trunk, and others keep them as separate resources.</p>
<p>Three counts get confused constantly, so separate them before you buy anything:</p>
<table>
<thead>
<tr>
<th>Term</th>
<th>What it counts</th>
<th>What drives the number</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Trunk</strong></td>
<td>Separate configurations</td>
<td>Environments, tenants, and policy differences</td>
</tr>
<tr>
<td><strong>Channel</strong></td>
<td>Calls in progress at the same moment</td>
<td>Traffic in your busiest hour</td>
</tr>
<tr>
<td><strong>DID</strong></td>
<td>Phone numbers that reach you</td>
<td>How many numbers your business publishes</td>
</tr>
</tbody></table>
<p>A single trunk can carry many <a href="https://www.vobiz.ai/docs/blogs/what-is-a-did-number">DID numbers</a>, and a thousand DIDs don't imply a thousand channels. If <a href="https://www.vobiz.ai/docs/blogs/what-is-sip">SIP itself</a> is new to you, start with that primer and come back.</p>
<h2>How does SIP trunking work?</h2>
<p>Every call on a trunk is two conversations. <a href="https://www.rfc-editor.org/rfc/rfc3261">SIP, defined in RFC 3261</a>, negotiates the call. <a href="https://www.rfc-editor.org/rfc/rfc3550">RTP, defined in RFC 3550</a>, carries the sound. The diagram follows one outbound call on a trunk that uses credentials.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/d137d891-28e7-4368-a1f0-d52e63558e98.png" alt="Sequence diagram of an outbound SIP trunk call: the PBX sends an INVITE, receives a 407 challenge, resends with a digest, the provider sets up the call, 180 and 200 responses return, then RTP or SRTP audio flows in a separate band before BYE ends the call." style="display:block;margin:0 auto" />

<h3>The signalling plane</h3>
<p>Your system opens with an INVITE, which names the called number and includes an SDP description of the audio it can handle. The carrier may challenge that first request, and your system then repeats it with a digest response. Once the far end answers, a 200 OK returns with the chosen codec and the address that expects audio, following the <a href="https://www.rfc-editor.org/rfc/rfc3264">offer/answer model in RFC 3264</a>. A final ACK closes the handshake, and a later BYE ends the call.</p>
<p>RFC 3261 sets the <a href="https://www.rfc-editor.org/rfc/rfc3261#section-18.1.1">default ports</a> at 5060 for UDP and TCP, and 5061 for TLS.</p>
<h3>The media plane</h3>
<p>Audio then flows directly between the addresses named in the <a href="https://www.rfc-editor.org/rfc/rfc8866">SDP</a>, on ports chosen for that call. With G.711 at the usual 20 ms packet interval, each direction sends 50 packets per second, each holding 160 bytes of audio. SIP never touches these packets.</p>
<h3>Why the split matters when you debug</h3>
<p>The separation explains most trunk failures, because each symptom points at one plane:</p>
<table>
<thead>
<tr>
<th>What you see</th>
<th>Plane</th>
<th>Usual cause</th>
<th>Check first</th>
</tr>
</thead>
<tbody><tr>
<td>Call connects, audio one way or none</td>
<td>Media</td>
<td>Firewall or NAT blocks RTP, or SDP advertises a private address</td>
<td>Media rules and the address in the SDP</td>
</tr>
<tr>
<td>Call connects and bills, total silence</td>
<td>Media</td>
<td>The far side requires SRTP and receives plain RTP</td>
<td>Media encryption setting on the trunk</td>
</tr>
<tr>
<td>407 repeats after a retry</td>
<td>Signalling</td>
<td>Wrong username, password, or realm</td>
<td>The digest credentials</td>
</tr>
<tr>
<td>401 in response to an INVITE</td>
<td>Signalling</td>
<td>A registrar or user agent answered rather than a proxy. On Vobiz, traffic has reached an endpoint registrar, not a trunk</td>
<td>The SIP domain you target</td>
</tr>
<tr>
<td>Callers hear busy</td>
<td>Capacity</td>
<td>Concurrent-channel ceiling reached</td>
<td>Live channel usage</td>
</tr>
<tr>
<td>Campaign finishes correctly but slowly</td>
<td>Capacity</td>
<td>Calls-per-second ceiling reached</td>
<td>Attempt rate over time</td>
</tr>
</tbody></table>
<p>Many deployments also place a session border controller at the network edge. <a href="https://www.rfc-editor.org/rfc/rfc5853">RFC 5853</a> catalogues what these devices do in practice, including topology hiding, NAT traversal, and protocol repair. You need one when your PBX can't safely face the internet or when two SIP stacks disagree about details.</p>
<h2>Registration vs IP authentication: which should you use?</h2>
<p>These options are often presented as one choice, but they answer different questions. Registration answers "where are you?". Digest and IP allowlisting answer "who are you?".</p>
<table>
<thead>
<tr>
<th></th>
<th>IP authentication</th>
<th>Digest on each call</th>
<th>Registration</th>
</tr>
</thead>
<tbody><tr>
<td><strong>How it works</strong></td>
<td>The carrier accepts traffic from listed source addresses</td>
<td>The carrier challenges the INVITE, and you answer with a hash of your password</td>
<td>Your system sends REGISTER so the carrier learns its current contact address</td>
</tr>
<tr>
<td><strong>Question answered</strong></td>
<td>Who</td>
<td>Who</td>
<td>Where, and who when challenged</td>
</tr>
<tr>
<td><strong>Needs a static IP</strong></td>
<td>Yes</td>
<td>No</td>
<td>No</td>
</tr>
<tr>
<td><strong>Setup round trips</strong></td>
<td>None added</td>
<td>One extra challenge per call</td>
<td>A recurring refresh, plus any call challenge</td>
</tr>
<tr>
<td><strong>Inbound routing</strong></td>
<td>To an address you configured</td>
<td>To an address you configured</td>
<td>To the address you last registered</td>
</tr>
<tr>
<td><strong>Main risk</strong></td>
<td>Anything sharing that address is trusted</td>
<td>Password guessing and leaked secrets</td>
<td>Same as digest, plus a lost binding when a refresh fails</td>
</tr>
<tr>
<td><strong>Best fit</strong></td>
<td>Data centre PBX, fixed egress</td>
<td>Cloud PBX, dynamic egress</td>
<td>Small sites behind NAT, PBX products built around it</td>
</tr>
</tbody></table>
<p>A few practical rules follow from that table:</p>
<ul>
<li><strong>Prefer IP authentication when your egress addresses are stable.</strong> Keep the list as narrow as you can, because anything behind that NAT inherits the trust.</li>
<li><strong>Use digest when your egress moves.</strong> Autoscaled and cloud-hosted systems rarely keep one address for long.</li>
<li><strong>Use registration when the carrier must find you.</strong> It suits a site with no reachable public address. A PBX that registers many numbers at once can use the mechanism in <a href="https://www.rfc-editor.org/rfc/rfc6140">RFC 6140</a>.</li>
</ul>
<h2>How many channels does a SIP trunk need?</h2>
<p>A channel is one call in progress, and a trunk needs enough of them for your busiest moment. Inbound and outbound traffic behave differently, so size them separately and then add them.</p>
<h3>Inbound: the Erlang B method</h3>
<p>Traffic intensity is measured in <a href="https://en.wikipedia.org/wiki/Erlang_(unit)">erlangs</a>: calls per hour multiplied by the hours each call holds a channel.</p>
<p>Assume a support line with these figures in its busiest hour:</p>
<ol>
<li><strong>Calls:</strong> 1,200 in the hour.</li>
<li><strong>Hold time:</strong> 3 minutes on average. Count IVR and queue time, because those legs occupy a channel too.</li>
<li><strong>Load:</strong> 1,200 × 3 ÷ 60 = 60 erlangs.</li>
</ol>
<p>Sixty erlangs does not mean sixty channels. Calls arrive randomly, so some moments run well above the average. The Erlang B formula gives the share of calls that find every channel occupied:</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/91b189bc-63d4-4c2b-ba80-c5977d94ded1.png" alt="Line chart of blocked calls against channel count at 60 erlangs. Blocking falls from about 15 percent at 55 channels to 9.6 percent at 60, then to 0.83 percent at 75, which is inside a 1 percent target." style="display:block;margin:0 auto" />

<p>At exactly 60 channels, about 116 of the 1,200 callers would hear busy. At 75 channels, that drops to about 10. Here is what each blocking target costs at this load:</p>
<table>
<thead>
<tr>
<th>Blocking target</th>
<th>Channels needed</th>
<th>Headroom over 60 erlangs</th>
</tr>
</thead>
<tbody><tr>
<td>5%</td>
<td>66</td>
<td>10%</td>
</tr>
<tr>
<td>2%</td>
<td>71</td>
<td>18%</td>
</tr>
<tr>
<td>1%</td>
<td>75</td>
<td>25%</td>
</tr>
<tr>
<td>0.5%</td>
<td>78</td>
<td>30%</td>
</tr>
<tr>
<td>0.1%</td>
<td>83</td>
<td>38%</td>
</tr>
</tbody></table>
<p>We calculated these figures with the Erlang B recursion. The formula assumes random arrivals and callers who give up when blocked. Treat its result as a floor when a TV spot, an outage, or an SMS blast can make callers arrive together and redial.</p>
<p>Pooling also matters. At a 1% target, 10 erlangs needs 18 channels, or 80% headroom, while 100 erlangs needs 117, or 17%. Large shared pools run far more efficiently than several small ones, so splitting capacity across small silos wastes channels.</p>
<h3>Outbound: rate times hold time</h3>
<p>Outbound load is under your control, so it needs simpler math. Concurrency equals attempts per second multiplied by the average time each attempt holds a channel.</p>
<p>Take 24,000 attempts in an 8-hour window, with 30% answered, 90 seconds of talk on answered calls, and 20 seconds of ringing on the rest:</p>
<ul>
<li><strong>Rate:</strong> 24,000 ÷ 28,800 seconds = 0.83 calls per second.</li>
<li><strong>Channel time:</strong> (7,200 × 90) + (16,800 × 20) = 984,000 seconds.</li>
<li><strong>Concurrency:</strong> 984,000 ÷ 28,800 = about 34 channels.</li>
</ul>
<p>That result assumes a steady pace. Each attempt holds a channel for 41 seconds on average, so a dialler that bursts at 2 calls per second needs about 82 channels while the burst lasts. Unanswered attempts account for a third of the channel time here, so they belong in the sum.</p>
<h3>Bandwidth</h3>
<p>TRAI's <a href="https://www.trai.gov.in/sites/default/files/2025-02/Recommendation_06022025.pdf">February 2025 numbering recommendations</a> put a SIP call at about 87 kbps with G.711 and 32 kbps with G.729. The G.711 figure checks out from first principles: <a href="https://en.wikipedia.org/wiki/G.711">64 kbps of audio</a>, 16 kbps of IP, UDP, and RTP headers, and about 7 kbps of Ethernet framing.</p>
<p>If the inbound and outbound examples peak together, round the outbound 34.2 up and you need 75 + 35 = 110 channels. That is about 9.6 Mbps in <strong>each</strong> direction with G.711. SRTP's <a href="https://www.rfc-editor.org/rfc/rfc3711">default 80-bit authentication tag</a> adds about 4 kbps per call.</p>
<h3>How many trunks do you need?</h3>
<p>Usually fewer than you think. Create a new trunk when something about the configuration must differ, such as the environment, tenant, recording policy, or target for webhooks (callbacks). Capacity is rarely the reason, because channels are usually a plan setting rather than a property of the trunk.</p>
<h2>How does a SIP trunk differ from PRI and VoIP?</h2>
<p>A <a href="https://en.wikipedia.org/wiki/Primary_Rate_Interface">PRI circuit</a> delivers a fixed block of channels: 23 on a North American T1 and 30 on the E1 used in India. A SIP trunk removes that block size, along with the physical tie to one site.</p>
<table>
<thead>
<tr>
<th></th>
<th>PRI (E1/T1)</th>
<th>SIP trunk</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Capacity unit</strong></td>
<td>Fixed block per circuit</td>
<td>Any number of channels your plan allows</td>
</tr>
<tr>
<td><strong>Delivery</strong></td>
<td>Physical circuit to a site</td>
<td>IP, over internet or private link</td>
</tr>
<tr>
<td><strong>Numbers</strong></td>
<td>Tied to the circuit</td>
<td>Routed in software, movable between trunks</td>
</tr>
<tr>
<td><strong>Failure domain</strong></td>
<td>The site and its circuit</td>
<td>Your IP path and SIP destination, with rerouting possible</td>
</tr>
<tr>
<td><strong>Main dependency</strong></td>
<td>Local exchange</td>
<td>Your network's loss, jitter, and bandwidth</td>
</tr>
</tbody></table>
<p>VoIP is the wider category of voice over IP, and a SIP trunk is one way to use it. <a href="https://www.vobiz.ai/docs/blogs/sip-vs-voip">SIP vs VoIP</a> covers that distinction in full. A hosted PBX differs in a separate way: the provider runs the phone system, whereas with a trunk you run it and buy only the connectivity. If you have no PBX and want to control calls from code, compare <a href="https://www.vobiz.ai/docs/concepts/sip-vs-websockets">SIP with WebSocket streaming</a> before you choose.</p>
<h2>How do you secure a SIP trunk?</h2>
<p>An exposed trunk can spend your money, because anyone who gets through can place calls on your account. Work through these layers:</p>
<ol>
<li><strong>Encrypt signalling.</strong> Use TLS transport so that numbers and headers don't cross the network in clear text.</li>
<li><strong>Encrypt media.</strong> Use <a href="https://www.rfc-editor.org/rfc/rfc3711">SRTP, defined in RFC 3711</a>, and confirm that both sides agree on it.</li>
<li><strong>Narrow who can connect.</strong> Keep allowlists to specific hosts, and use one credential per environment.</li>
<li><strong>Narrow where calls can go.</strong> Enable only the destinations you need, especially international routes.</li>
<li><strong>Watch for odd traffic.</strong> Alert on unusual destinations, off-hours spikes, and sudden rises in attempts.</li>
<li><strong>Rotate secrets when people leave.</strong> Treat SIP passwords like any other production credential.</li>
</ol>
<h2>What rules apply to SIP trunks in India?</h2>
<p>India regulates what you send over a trunk as closely as how you connect it. The rules below come from TRAI and DoT documents, each linked to its source. They change often, so confirm the current text and take legal advice for your own case.</p>
<table>
<thead>
<tr>
<th>Topic</th>
<th>What the rule says</th>
<th>Source and date</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Promotional calls</strong></td>
<td>Use the 140xx series, for an entity in any sector that has registered with its telecom provider</td>
<td><a href="https://www.trai.gov.in/sites/default/files/2026-07/PR_No91of2026.pdf">TRAI press release 91/2026</a>, July 2026</td>
</tr>
<tr>
<td><strong>Service and transactional calls</strong></td>
<td>Entities regulated by RBI, SEBI, IRDAI, and PFRDA, and government bodies, use the 1600xx series</td>
<td><a href="https://www.trai.gov.in/sites/default/files/2026-07/PR_No91of2026.pdf">TRAI press release 91/2026</a>, July 2026</td>
</tr>
<tr>
<td><strong>Ordinary 10-digit numbers</strong></td>
<td>Senders are restricted from using them for telemarketing</td>
<td><a href="https://trai.gov.in/sites/default/files/2025-02/PR_No.11of2025.pdf">TRAI press release 11/2025</a>, February 2025</td>
</tr>
<tr>
<td><strong>Violations</strong></td>
<td>First instance: outgoing services barred for 15 days. Later instances: all resources, including PRI and SIP trunks, disconnected across all access providers for one year, with blacklisting</td>
<td><a href="https://www.trai.gov.in/sites/default/files/2025-02/Regulation_12022025.pdf">TCCCPR Second Amendment</a>, February 2025</td>
</tr>
<tr>
<td><strong>Restoration charge</strong></td>
<td>Where TRAI orders restoration, ₹5,000 per resource up to ₹5 lakh, with each DID on a trunk counted separately</td>
<td><a href="https://www.trai.gov.in/sites/default/files/2025-02/Regulation_12022025.pdf">TCCCPR Second Amendment</a>, February 2025</td>
</tr>
<tr>
<td><strong>Automated calls</strong></td>
<td>Once in force, senders must declare application-initiated calls and their CLI ranges to the originating provider in advance, and undeclared calls count as unsolicited. See the commencement note below</td>
<td><a href="https://www.medianama.com/wp-content/uploads/2026/09/trai-amendments-unsolicited-communications.pdf">TCCCPR Third Amendment, copy hosted by MediaNama</a>, September 2026</td>
</tr>
<tr>
<td><strong>Toll bypass</strong></td>
<td>For voice BPOs that meet the Other Service Provider (OSP) definition, carrying PSTN calls between cities, or between India and abroad, over your own network is illegal, and the OSP answers for violations</td>
<td><a href="https://www.dot.gov.in/static/uploads/2025/08/4e6e21029dc45f42b4e1e57e6300fa72.pdf">DoT OSP guidelines</a>, June 2021</td>
</tr>
</tbody></table>
<p>The toll bypass text dates from 2021. <a href="https://www.khaitanco.com/sites/default/files/2026-06/Ergo_Principal%20Telecom%20Authorisation%20Rules_26062026.pdf">Khaitan &amp; Co reports</a> that DoT notified new authorisation rules under the Telecommunications Act, 2023 in June 2026, and we could not confirm whether they change the OSP position.</p>
<p>Three of these deserve a closer look.</p>
<p><strong>Enforcement reaches trunks directly.</strong> TRAI's <a href="https://www.pib.gov.in/PressReleasePage.aspx?PRID=2044818">August 2024 direction</a> named SIP and PRI when it ordered providers to stop promotional calls from unregistered senders. Within weeks, providers reported <a href="https://www.pib.gov.in/PressReleseDetailm.aspx?PRID=2051282&amp;reg=48&amp;lang=2">blacklisting more than 50 entities and disconnecting over 2.75 lakh resources</a>, including SIP DIDs.</p>
<p><strong>Voice AI needs attention under the Third Amendment.</strong> The regulation defines an A2P call as one started by an application or automated platform without direct human dialling, including artificial voice. An outbound voice agent appears to match that wording, so raise it with your provider before launch. The text also lets terminating operators charge originating operators up to ₹0.05 per minute on A2P calls, and exempts the 140xx, 1600xx, and 1601xx series. <a href="https://www.trai.gov.in/sites/default/files/2026-09/PR_No119of2026.pdf">TRAI announced these changes on 18 September 2026</a>. The notification sets the A2P declaration and charge to start 60 days after Gazette publication. We could not confirm the publication date, so check whether they apply on your launch date.</p>
<p><strong>The 1600 deadlines have passed for many banks.</strong> TRAI's <a href="https://www.trai.gov.in/sites/default/files/2025-11/Direction_19112025.pdf">November 2025 direction</a> set adoption dates for RBI-regulated entities between 1 January and 1 March 2026. If you carry calls for a bank or NBFC, confirm its series before you route traffic.</p>
<p>TRAI has also <a href="https://www.trai.gov.in/sites/default/files/2025-02/Recommendation_06022025.pdf">recommended</a> that DoT write allocation guidelines for numbers on SIP and PRI, monitor enterprise allocations above 15 numbers per Mbps, and bring in calling name presentation for SIP and PRI calls reaching mobile networks. These are recommendations rather than rules, and we could not confirm their current status, so watch for DoT's follow-up.</p>
<h2>How Vobiz handles SIP trunks</h2>
<p><a href="https://www.vobiz.ai/docs/platform/sip/overview">Vobiz SIP trunking</a> gives you outbound and inbound trunks as separate resources in the console and over the <a href="https://www.vobiz.ai/docs/trunks">Trunks API</a>.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/73350dcd-30e3-4a5a-b534-8f51aba94a33.png" alt="Map of Vobiz trunk resources. Outbound: your PBX or app, then an IP ACL or SIP credential, then an outbound trunk with its own SIP domain, then the called number. Inbound: a PSTN caller, then your DID, then an inbound trunk, then an origination URI. Concurrency and CPS limits are shared at account level." style="display:block;margin:0 auto" />

<ul>
<li><strong>Outbound.</strong> Each <a href="https://www.vobiz.ai/docs/platform/sip/outbound-trunks">outbound trunk</a> gets its own SIP domain, shown on the trunk. You point your PBX at that hostname, using the ports on the <a href="https://www.vobiz.ai/docs/concepts/ip-whitelisting">IP whitelisting page</a>.</li>
<li><strong>Authentication.</strong> Attach an <a href="https://www.vobiz.ai/docs/platform/sip/ip-access-control-list">IP Access Control List</a> or a <a href="https://www.vobiz.ai/docs/platform/sip/credentials">SIP credential</a>. Credential trunks are challenged with 407. IP ACLs are evaluated first across your whole account, so a source address in any ACL on your account skips the challenge. Keep test traffic off those addresses when you test digest.</li>
<li><strong>Registration.</strong> Registered soft-phones and WebRTC clients use <a href="https://www.vobiz.ai/docs/endpoint">endpoints</a>, which are a separate resource from trunks. The <a href="https://www.vobiz.ai/docs/integrations/3cx">3CX guide</a> shows a trunk set up through that PBX's own registration step.</li>
<li><strong>Inbound.</strong> An <a href="https://www.vobiz.ai/docs/platform/sip/inbound-trunks">inbound trunk</a> forwards calls for its linked numbers to an <a href="https://www.vobiz.ai/docs/platform/sip/origination-uri">origination URI</a>, set by host, port, and transport (UDP, TCP, or TLS). The <a href="https://www.vobiz.ai/docs/trunks/trunk-object">trunk docs</a> cover primary and fallback URIs.</li>
<li><strong>Encryption.</strong> Trunk settings control signalling transport, including TLS, and <a href="https://www.vobiz.ai/docs/trunks/trunk-object">SRTP for media</a>.</li>
<li><strong>Firewalls.</strong> Allow the signalling and media ranges listed on the <a href="https://www.vobiz.ai/docs/concepts/ip-whitelisting">IP whitelisting page</a>, which stays current as addresses change.</li>
<li><strong>Capacity.</strong> <a href="https://www.vobiz.ai/docs/platform/capacity/concurrency">Concurrency</a> and <a href="https://www.vobiz.ai/docs/platform/capacity/cps">CPS</a> are enforced per account, so inbound and outbound calls share one pool across all trunks. Trunks also store their own concurrency and CPS settings, but the account figures do the enforcing. Check live use with the <a href="https://www.vobiz.ai/docs/account/concurrency">Concurrency API</a>, and model a campaign in the <a href="https://www.vobiz.ai/docs/resources/calculator">CPS and concurrency calculator</a>.</li>
<li><strong>Per-trunk features.</strong> Recording, transcription, PII redaction, and <a href="https://www.vobiz.ai/docs/trunks/webhook">webhooks</a> are all set per trunk.</li>
<li><strong>Quality data.</strong> Each <a href="https://www.vobiz.ai/docs/cdr">call detail record</a> reports call-quality scores, jitter, packet loss, and the negotiated codec, which lets you compare the sizing above with what really happened.</li>
<li><strong>India.</strong> <a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">Calling regulations</a> cover KYC, caller ID, and media anchoring, under which both legs of an Indian call stay in India. The <a href="https://www.vobiz.ai/docs/compliance/india/ucc">UCC page</a> explains complaint handling, and <a href="https://www.vobiz.ai/docs/best-practices/140-160-acquisition">140 and 160 series acquisition</a> covers commercial numbers.</li>
<li><strong>Pricing and reach.</strong> Current rates are on the <a href="https://www.vobiz.ai/pricing/">Vobiz pricing page</a>. Extra capacity is a <a href="https://www.vobiz.ai/docs/platform/capacity/subscriptions">monthly subscription</a>, and you can <a href="https://www.vobiz.ai/docs/account/channel-pricing-preview">preview its price</a> without being charged.</li>
</ul>
<p>Test calls and capacity purchases are billed to your account. Run them with your own Auth ID and Auth Token, and confirm numbers and quantities first. Vobiz also connects trunks to voice AI platforms such as <a href="https://www.vobiz.ai/docs/integrations/livekit">LiveKit</a> and <a href="https://www.vobiz.ai/docs/integrations/vapi-dashboard">Vapi</a>.</p>
<h2>Frequently asked questions</h2>
<h2>FAQ</h2>
<h3>What does SIP trunk mean in simple terms?</h3>
<p>Think of a SIP trunk as a phone line defined in software, linking your phone system to a carrier. It runs over IP rather than copper, so one connection can carry many calls at once. Your system can then place and receive ordinary phone calls through that carrier.</p>
<h3>How does SIP trunking work?</h3>
<p>Your system sends a SIP request to the carrier, which authenticates it and connects the call to the phone network. SIP negotiates the call, and audio then flows separately over RTP or SRTP. A final SIP message ends the call and frees the channel.</p>
<h3>How many channels are in a SIP trunk?</h3>
<p>A SIP trunk has no fixed channel count. You choose a number that suits your traffic, unlike an E1 PRI with its 30 channels. Calculate erlangs for your busiest hour, then apply Erlang B. For example, 60 erlangs needs 75 channels at 1% blocking.</p>
<h3>How many SIP trunks do I need?</h3>
<p>Most teams need one trunk per distinct configuration, such as production and staging or one per tenant. Channel count, not trunk count, sets how many calls you can run. Add a trunk when settings must differ, and add channels when traffic grows.</p>
<h3>How is SIP different from a SIP trunk?</h3>
<p>SIP is the signalling protocol that starts, changes, and ends sessions. A SIP trunk is a carrier service built on that protocol, connecting your system to the phone network. You can use SIP inside a company without ever buying a trunk.</p>
<h3>Is SIP trunking legal in India?</h3>
<p>Yes, when you use an authorised provider and follow the rules. TRAI's commercial calling rules assign number series by call type, and DoT's 2021 OSP guidelines prohibit toll bypass. Repeat spam violations can disconnect every trunk a sender holds for one year. Check current text and take legal advice.</p>
<h2>Further reading on Vobiz</h2>
<ul>
<li><a href="https://www.vobiz.ai/docs/concepts/sip-trunking">SIP trunking concept guide</a> · <a href="https://www.vobiz.ai/docs/platform/sip/overview">SIP trunking overview in the console</a> · <a href="https://www.vobiz.ai/docs/trunks">Trunks API reference</a></li>
<li><a href="https://www.vobiz.ai/docs/blogs/what-is-sip">What is SIP?</a> · <a href="https://www.vobiz.ai/docs/blogs/sip-vs-voip">SIP vs VoIP</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-a-did-number">What is a DID number?</a></li>
<li><a href="https://www.vobiz.ai/docs/platform/capacity/concurrency">Concurrency capacity</a> · <a href="https://www.vobiz.ai/docs/platform/capacity/cps">CPS capacity</a> · <a href="https://www.vobiz.ai/docs/resources/calculator">CPS and concurrency calculator</a></li>
<li><a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">India calling regulations</a> · <a href="https://www.vobiz.ai/docs/best-practices/dlt-registration">DLT registration</a> · <a href="https://www.vobiz.ai/docs/concepts/hangup-causes">Hangup causes</a></li>
</ul>
<h2>Sources</h2>
<p><strong>Standards</strong></p>
<ul>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3261">RFC 3261: SIP: Session Initiation Protocol</a>, June 2002.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3264">RFC 3264: An Offer/Answer Model with SDP</a>, June 2002.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3550">RFC 3550: RTP: A Transport Protocol for Real-Time Applications</a>, July 2003.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3711">RFC 3711: The Secure Real-time Transport Protocol</a>, March 2004.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc5853">RFC 5853: Requirements from SIP Session Border Control Deployments</a>, April 2010.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc6140">RFC 6140: Registration for Multiple Phone Numbers in SIP</a>, March 2011.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc8866">RFC 8866: SDP: Session Description Protocol</a>, January 2021.</li>
</ul>
<p><strong>Indian regulators</strong></p>
<ul>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2025-02/Regulation_12022025.pdf">Telecom Commercial Communications Customer Preference (Second Amendment) Regulations, 2025</a>, February 2025.</li>
<li>TRAI, <a href="https://trai.gov.in/sites/default/files/2025-02/PR_No.11of2025.pdf">Press release 11/2025 on the TCCCPR amendments</a>, February 2025.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2025-02/Recommendation_06022025.pdf">Recommendations on Revision of National Numbering Plan</a>, 6 February 2025.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2025-11/Direction_19112025.pdf">Direction on phase-wise adoption of 1600-series numbers</a>, November 2025.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2026-07/PR_No91of2026.pdf">Press release 91/2026 on the 1600 and 140 series</a>, July 2026.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2026-09/PR_No119of2026.pdf">Press release 119/2026 on the Third Amendment</a>, 18 September 2026.</li>
<li>TRAI, <a href="https://www.medianama.com/wp-content/uploads/2026/09/trai-amendments-unsolicited-communications.pdf">Third Amendment Regulations, 2026 (copy hosted by MediaNama)</a>, 18 September 2026.</li>
<li>PIB, <a href="https://www.pib.gov.in/PressReleasePage.aspx?PRID=2044818">TRAI asks Access Service Providers to disconnect telecom resources of unregistered senders</a>, August 2024.</li>
<li>PIB, <a href="https://www.pib.gov.in/PressReleseDetailm.aspx?PRID=2051282&amp;reg=48&amp;lang=2">Access Providers blacklist 50 entities for spamming</a>, September 2024.</li>
<li>DoT, <a href="https://www.dot.gov.in/static/uploads/2025/08/4e6e21029dc45f42b4e1e57e6300fa72.pdf">Revised Guidelines for Other Service Providers</a>, 23 June 2021.</li>
<li>Khaitan &amp; Co, <a href="https://www.khaitanco.com/sites/default/files/2026-06/Ergo_Principal%20Telecom%20Authorisation%20Rules_26062026.pdf">Update on the principal telecommunication services authorisation rules</a>, June 2026.</li>
</ul>
<p><strong>Reference</strong></p>
<ul>
<li>Wikipedia, <a href="https://en.wikipedia.org/wiki/Erlang_(unit)">"Erlang (unit)"</a>.</li>
<li>Wikipedia, <a href="https://en.wikipedia.org/wiki/G.711">"G.711"</a>.</li>
<li>Wikipedia, <a href="https://en.wikipedia.org/wiki/Primary_Rate_Interface">"Primary Rate Interface"</a>.</li>
</ul>
<hr />
<p>If the trunk is for voice AI agents, <a href="https://www.vobiz.ai">Vobiz</a> provides AI-native SIP trunking, priced pay as you go per minute.</p>
]]></content:encoded></item><item><title><![CDATA[What Is SIP? Sessions, the Handshake and Call Failures]]></title><description><![CDATA[Session, dialog, transaction, the handshake, and how to read a failed call by stage]]></description><link>https://piyuzz.hashnode.dev/what-is-sip</link><guid isPermaLink="true">https://piyuzz.hashnode.dev/what-is-sip</guid><category><![CDATA[Telephony]]></category><category><![CDATA[networking]]></category><category><![CDATA[debugging]]></category><category><![CDATA[SIP]]></category><category><![CDATA[voip]]></category><dc:creator><![CDATA[Piyush Sahoo]]></dc:creator><pubDate>Wed, 11 Nov 2026 06:59:25 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/2d4209f4-b8ba-4635-ae8e-f48f0b507d04.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This guide defines SIP precisely, separates three terms that are often blurred (session, dialog and transaction), and maps call failures to the stage where they stop.</p>
<p>SIP (Session Initiation Protocol) is the IETF signalling standard that sets up, changes, and ends real-time calls over IP. It finds the other party, agrees on codecs and addresses using SDP, then steps aside while RTP carries the audio. SIP itself never carries a caller's voice.</p>
<p>This guide separates three terms that most explainers blur: session, dialog, and transaction. It then shows what the handshake protects, what SIP does when a message goes missing, and how to read a failed call by the stage where it stopped.</p>
<blockquote>
<p><strong>Note: Key takeaways</strong></p>
<ul>
<li><strong>SIP controls calls, and RTP carries them.</strong> A call can connect perfectly and still be silent, because the two protocols can take different network paths.</li>
<li><strong>A session is not a dialog.</strong> The session is the media exchange, the dialog is the signalling relationship, and a transaction is one request with its responses.</li>
<li><strong>The handshake is INVITE, 200 OK, ACK.</strong> SIP needs the third step because a person can take many seconds to answer.</li>
<li><strong>32 seconds is a useful clue.</strong> With default timers, a 200 OK that never gets its ACK ends in a BYE at that point.</li>
<li><strong>In India, what you signal matters.</strong> TRAI's rules on number series and automated calls apply to the calls your trunk sets up.</li>
</ul>
</blockquote>
<h2>What is SIP?</h2>
<p><a href="https://www.rfc-editor.org/rfc/rfc3261.html">RFC 3261</a> defines SIP as an application-layer control protocol for creating, modifying, and terminating sessions. Published in June 2002, it replaced the <a href="https://www.rfc-editor.org/rfc/rfc2543.html">original RFC 2543 of March 1999</a>. It remains the base SIP standard, with extensions added by later RFCs.</p>
<p>SIP messages are readable text, and their request and response model resembles HTTP. A request names a method, such as INVITE, and a response returns a numeric status, such as 200 OK. The <a href="https://www.iana.org/assignments/sip-parameters">IANA SIP registry</a> lists 14 methods as of its October 2026 update, though a basic call needs only a few.</p>
<p>SIP reaches well beyond desk phones. <a href="https://getvoip.com/blog/sip-protocol/">GetVoIP's overview</a> lists uses including VoLTE, SIP trunking, and video conferencing. Each use relies on the same division of labour:</p>
<table>
<thead>
<tr>
<th>Protocol</th>
<th>Job on a call</th>
<th>Defined in</th>
</tr>
</thead>
<tbody><tr>
<td><strong>SIP</strong></td>
<td>Finds the party, rings, accepts, changes, and ends the call</td>
<td><a href="https://www.rfc-editor.org/rfc/rfc3261.html">RFC 3261</a></td>
</tr>
<tr>
<td><strong>SDP</strong></td>
<td>Describes the media: codecs, address, port, and direction</td>
<td><a href="https://www.rfc-editor.org/rfc/rfc8866.html">RFC 8866</a></td>
</tr>
<tr>
<td><strong>Offer/answer</strong></td>
<td>Sets how two sides use SDP to reach agreement</td>
<td><a href="https://www.rfc-editor.org/rfc/rfc3264.html">RFC 3264</a></td>
</tr>
<tr>
<td><strong>RTP</strong></td>
<td>Carries the audio packets</td>
<td><a href="https://www.rfc-editor.org/rfc/rfc3550.html">RFC 3550</a></td>
</tr>
<tr>
<td><strong>SRTP</strong></td>
<td>Encrypts and authenticates those packets</td>
<td><a href="https://www.rfc-editor.org/rfc/rfc3711.html">RFC 3711</a></td>
</tr>
</tbody></table>
<h3>Who takes part in SIP signalling?</h3>
<p>A <strong>user agent</strong> is anything that starts or answers calls, such as a softphone, PBX, or voice AI service. A <strong>proxy</strong> routes requests onward. A <strong>registrar</strong> accepts REGISTER requests and records where a user can be reached. A <strong>session border controller</strong> sits at a network edge, and <a href="https://www.rfc-editor.org/rfc/rfc5853.html">RFC 5853</a> catalogues its usual jobs, including topology hiding and NAT traversal.</p>
<p>The diagram follows the classic example from <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-4">section 4 of RFC 3261</a>. Notice that the audio never touches the proxies in this layout.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/5b2cffe9-2041-4713-8db1-26ef06519724.png" alt="SIP trapezoid diagram. An INVITE goes from the caller through the caller's proxy and the callee's proxy to the callee, after the callee's proxy asks a registrar and location service where the callee is. ACK and later requests go directly between the user agents, and RTP or SRTP audio follows its own direct path." style="display:block;margin:0 auto" />

<h2>What is a SIP session?</h2>
<p>In SIP, the session is the media exchange that signalling sets up. RFC 3261 puts it plainly: a session is <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-5">a collection of participants and the media streams between them</a>. The word gets used loosely, so check which of these two meanings you're reading.</p>
<ul>
<li><strong>In the protocol,</strong> a session is one live media exchange, created when the offer and answer complete.</li>
<li><strong>In a sales quote,</strong> a "SIP session" can mean one concurrent call, the same unit as a channel. TelNet Worldwide's 2022 explainer uses the word this way.</li>
</ul>
<p>Protocol engineers then split the signalling into two more layers. <a href="https://www.videosdk.live/developer-hub/sip/sip-session">VideoSDK's session guide</a> draws a similar three-part split, and these definitions follow the RFC:</p>
<table>
<thead>
<tr>
<th>Layer</th>
<th>What it is</th>
<th>How long it lasts</th>
<th>How SIP identifies it</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Transaction</strong></td>
<td>One request and the responses to it</td>
<td>Usually seconds, or longer while a phone rings</td>
<td>The branch value in the top Via header</td>
</tr>
<tr>
<td><strong>Dialog</strong></td>
<td>The signalling relationship between two user agents</td>
<td>From the first tagged response until BYE</td>
<td><a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-12">Call-ID, a local tag, and a remote tag</a></td>
</tr>
<tr>
<td><strong>Session</strong></td>
<td>The media those user agents exchange</td>
<td>From completed offer/answer until BYE</td>
<td>The origin line in SDP</td>
</tr>
</tbody></table>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/a81f807a-9cec-41bb-b18f-a63e3dbf2f02.png" alt="Ladder diagram of a SIP call: INVITE, 100 Trying, 180 Ringing, 200 OK, ACK, RTP audio, BYE, 200 OK. Beside it, the INVITE transaction spans INVITE to 200 OK, ACK stands alone, and BYE has its own transaction. The dialog is early from 180 Ringing and confirmed from 200 OK until BYE. The session is live for that same confirmed period." style="display:block;margin:0 auto" />

<h3>Why do the layers matter?</h3>
<p>The separation lets you describe a problem precisely.</p>
<ul>
<li><strong>A dialog can exist before a session does.</strong> A tagged 180 Ringing creates an <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-12.1">early dialog</a>, even though nobody has answered.</li>
<li><strong>One INVITE can create several dialogs.</strong> A forking proxy can ring several devices, and <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-13.2.2.4">each 2xx from a different device forms its own dialog</a>.</li>
<li><strong>A session can change while the dialog stays.</strong> A hold or codec change gives the session a new description under the same Call-ID.</li>
<li><strong>Your logs can join them.</strong> Call-ID is the value to search for when you compare traces from two systems.</li>
</ul>
<p>Sizing uses the sales meaning, where one call in progress holds one channel. TRAI's <a href="https://www.trai.gov.in/sites/default/files/2025-02/Recommendation_06022025.pdf">February 2025 numbering recommendations</a> note that a 2 Mbps PRI has 30 channels, and they put a SIP call at about 87 kbps with G.711 or 32 kbps with G.729. To turn call volume into channels, use the worked Erlang B example in What is SIP trunking?.</p>
<h2>What is the SIP handshake?</h2>
<p>The SIP handshake is the three-message exchange that establishes a call: INVITE, 200 OK, and ACK. RFC 3261 calls it the <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-4">INVITE/200/ACK three-way handshake</a>. Responses such as 100 Trying and 180 Ringing report progress, but they don't complete it.</p>
<ol>
<li><strong>INVITE.</strong> The caller asks for a session and usually includes an SDP offer listing the media it can handle.</li>
<li><strong>200 OK.</strong> The callee accepts and returns an SDP answer with its chosen codec and media address.</li>
<li><strong>ACK.</strong> The caller confirms that it received the acceptance, and the call is established.</li>
</ol>
<h3>Why does SIP need a third message?</h3>
<p>Requests other than INVITE finish with a two-way exchange, but an INVITE usually waits on a person. The RFC gives that <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-17.1">long, human-driven delay as the reason</a> for the extra step. By the time someone answers, the caller may have gone or its network may have changed, so the callee needs proof that the caller is still there.</p>
<p>The name invites a comparison with <a href="https://www.rfc-editor.org/rfc/rfc9293.html">TCP's three-way handshake</a>, but the two do different jobs. TCP synchronises a connection between two hosts. SIP's exchange runs at the application layer, over UDP as well as TCP. It records a person's decision to answer and completes an agreement about media.</p>
<p>Two details surprise people when they read traces:</p>
<ul>
<li><strong>The ACK for a 200 OK stands apart.</strong> It's a <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-6">separate transaction</a> and goes end to end, often straight to the address in the callee's Contact header. The ACK for a failure response stays within the INVITE transaction and is handled hop by hop.</li>
<li><strong>The offer can come later.</strong> If an INVITE has no SDP, <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-13.2.2.4">the 200 OK carries the offer and the ACK carries the answer</a>. This is often called delayed offer.</li>
</ul>
<p>Most developers never send the ACK by hand, because SIP stacks normally generate it. <a href="https://www.dialogic.com/webhelp/NaturalAccess/Release9.0/SIP_for_NCC_API_Dev_Manual/acknowledging_a_call.htm">Dialogic's 2010 SIP manual</a>, for example, describes it as automatic with an option for manual control.</p>
<h3>What happens when a handshake message is lost?</h3>
<p>SIP was built to survive packet loss on UDP, so each side resends on a timer. The chart plots what <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-17.1.1.1">RFC 3261's default timers</a> produce.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/52fa2e4a-c4c7-4ab6-ba7f-291b592664f1.png" alt="Timeline chart from 0 to 32 seconds calculated from RFC 3261 default timers. An INVITE with no reply over UDP is sent 7 times with doubling gaps and times out at 32 seconds. A 200 OK with no ACK is sent 11 times with gaps capped at 4 seconds, and the callee sends BYE at 32 seconds." style="display:block;margin:0 auto" />

<p>The lower line produces a recognisable symptom. Both people talk normally for about half a minute, and then the call drops. The callee <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-13.3.1.4">kept resending its 200 OK for 64 × T1 seconds, got no ACK, and ended the session with BYE</a>. One likely cause is a Contact address that the ACK can't reach, such as a private address that a NAT device left in place.</p>
<p>The upper line can't produce audio at all. No reply within <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-17.1.1.2">64 × T1 ends the attempt</a>, and the timing itself tells you that something on the signalling route never answered.</p>
<h3>Other exchanges people call a SIP handshake</h3>
<p>People use the word for four different exchanges, and each one fails in its own way:</p>
<table>
<thead>
<tr>
<th>Exchange</th>
<th>Messages</th>
<th>What it settles</th>
<th>Typical failure</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Call handshake</strong></td>
<td>INVITE, 200 OK, ACK</td>
<td>Call accepted and media agreed</td>
<td>Drop at about 32 seconds</td>
</tr>
<tr>
<td><strong>Digest challenge</strong></td>
<td>Request, 401 or 407, then a retry with credentials</td>
<td>Who is calling</td>
<td>Same challenge repeats</td>
</tr>
<tr>
<td><strong>Registration</strong></td>
<td>REGISTER, often challenged, then 200 OK</td>
<td>Where a user can be reached</td>
<td>Binding expires, calls stop arriving</td>
</tr>
<tr>
<td><strong>TLS handshake</strong></td>
<td>TLS negotiation before any SIP message</td>
<td>Encryption and server identity on that hop</td>
<td>Certificate or version mismatch, with no SIP in the trace</td>
</tr>
</tbody></table>
<h2>How does a SIP session change and end?</h2>
<p>The session stays open to change after the handshake. These methods cover the rest of a call's life:</p>
<table>
<thead>
<tr>
<th>Method</th>
<th>When you see it</th>
<th>What it does</th>
</tr>
</thead>
<tbody><tr>
<td>REGISTER</td>
<td>Before any call</td>
<td>Records a user's current address</td>
</tr>
<tr>
<td>PRACK</td>
<td>During setup</td>
<td><a href="https://www.rfc-editor.org/rfc/rfc3262.html">Makes a provisional response reliable</a>, which matters for PSTN interworking</td>
</tr>
<tr>
<td>CANCEL</td>
<td>Before answer</td>
<td>Abandons a ringing attempt, which <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-9.2">draws a 487</a></td>
</tr>
<tr>
<td>UPDATE</td>
<td>During setup or the call</td>
<td><a href="https://www.rfc-editor.org/rfc/rfc3311.html">Changes session details, even before the answer</a></td>
</tr>
<tr>
<td>re-INVITE</td>
<td>During the call</td>
<td><a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-14">Offers a full new session description</a> in the same dialog</td>
</tr>
<tr>
<td>REFER</td>
<td>During the call</td>
<td><a href="https://www.rfc-editor.org/rfc/rfc3515.html">Asks the other side to contact a third party</a>, the basis of transfer</td>
</tr>
<tr>
<td>BYE</td>
<td>To end the call</td>
<td><a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-15">Ends the session, usually the dialog as well</a></td>
</tr>
</tbody></table>
<p>Hold is a useful worked example. One side sends a new offer that <a href="https://www.rfc-editor.org/rfc/rfc3264.html#section-8.4">marks the stream sendonly</a>. The answer agrees, and the other side stops sending audio. The Call-ID doesn't change, because only the session changed.</p>
<p>If both sides send a re-INVITE at once, each side answers the other with <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-14.2">491 Request Pending</a>. Each one then <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-14.1">retries after a random wait</a>. This collision is sometimes called glare.</p>
<h3>What is a SIP session timer?</h3>
<p>Base SIP has <a href="https://www.rfc-editor.org/rfc/rfc4028.html">no keepalive for sessions</a>. If a BYE is lost, a server tracking the call can't tell that it ended. RFC 4028 solves this with periodic re-INVITE or UPDATE requests, negotiated through the Session-Expires and Min-SE headers.</p>
<p>It <a href="https://www.rfc-editor.org/rfc/rfc4028.html">recommends 30 minutes</a> for Session-Expires, sets a floor of 90 seconds, and recommends refreshing at the halfway point. A value that is too low draws a 422 response. When calls drop at a regular interval, check whether a refresh was sent and answered.</p>
<h2>How do you read a failed SIP call?</h2>
<p>Start with the stage where the call stopped. The map below gives each stage a first check, and it's our own troubleshooting order rather than part of any standard.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/5588cde2-8226-46a3-8b6a-ab50ca862018.png" alt="Failure map of seven SIP call stages. INVITE sent with no reply for 32 seconds: check route, DNS, and signalling firewall. Challenge with 407 repeating: check username, password, and realm. Offer read with 488: check shared codec and SRTP setting. Ringing with 486, 480, 487, or 603: check callee state or whether the caller left. 200 OK sent with a drop at about 32 seconds: check the ACK path, Contact, and NAT. Media start with silent or one-way audio: check RTP firewall and SDP address. Mid-call drop at a regular interval: check whether the session refresh was answered." style="display:block;margin:0 auto" />

<p>The first digit of a <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-21">response code</a> tells you who needs to act:</p>
<table>
<thead>
<tr>
<th>Class</th>
<th>Meaning</th>
<th>Codes you'll meet</th>
</tr>
</thead>
<tbody><tr>
<td><strong>1xx</strong></td>
<td>Still working</td>
<td>100 Trying, 180 Ringing, 183 Session Progress</td>
</tr>
<tr>
<td><strong>2xx</strong></td>
<td>Accepted</td>
<td>200 OK</td>
</tr>
<tr>
<td><strong>3xx</strong></td>
<td>Try elsewhere</td>
<td>302 Moved Temporarily</td>
</tr>
<tr>
<td><strong>4xx</strong></td>
<td>This request can't succeed as sent</td>
<td>401, 404, 407, 408, 480, 486, 487, 488</td>
</tr>
<tr>
<td><strong>5xx</strong></td>
<td>The server failed</td>
<td>500, 503</td>
</tr>
<tr>
<td><strong>6xx</strong></td>
<td>Nobody can accept this</td>
<td>600 Busy Everywhere, 603 Decline</td>
</tr>
</tbody></table>
<h3>When a firewall rewrites SIP</h3>
<p>A firewall can change your SIP messages as well as filter them. <a href="https://docs.fortinet.com/document/fortigate/8.0.0/administration-guide/147933/sip-alg-and-sip-session-helper">Fortinet's FortiGate guide</a>, for example, says its SIP session helper opens SIP and RTP pinholes and translates addresses inside SIP messages, and that SIP ALG mode adds further checks. If an SDP address or Contact header looks wrong, compare traces from both sides of the firewall. Change these settings only after that comparison shows the firewall is altering the messages.</p>
<h2>Which SIP transport should you use?</h2>
<p>RFC 3261 requires <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-18">every SIP element to implement UDP and TCP</a>. Its <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-18.2.1">default ports</a> are 5060 for UDP and TCP, and 5061 for TLS.</p>
<table>
<thead>
<tr>
<th>Choose</th>
<th>When</th>
<th>Watch for</th>
</tr>
</thead>
<tbody><tr>
<td><strong>TLS</strong></td>
<td>Signalling crosses the public internet</td>
<td>Certificates and renewals</td>
</tr>
<tr>
<td><strong>TCP</strong></td>
<td>You stay on a private network and messages grow large</td>
<td>Long-lived connections through NAT</td>
</tr>
<tr>
<td><strong>UDP</strong></td>
<td>You stay on a controlled network and need the simplest setup</td>
<td>Fragmentation. RFC 3261 <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-18.1.1">moves requests above about 1,300 bytes to a congestion-controlled transport</a> when the path MTU is unknown</td>
</tr>
<tr>
<td><strong>WebSocket</strong></td>
<td>The client is a browser, under <a href="https://www.rfc-editor.org/rfc/rfc7118.html">RFC 7118</a></td>
<td>Client and server must both support it</td>
</tr>
</tbody></table>
<h3>What secures a SIP call?</h3>
<p>SIP security comes in separate layers, and each one protects a different thing:</p>
<ul>
<li><strong>TLS protects signalling one hop at a time.</strong> RFC 3261 warns that using TLS to a proxy <a href="https://www.rfc-editor.org/rfc/rfc3261.html#section-26.2.1">gives no assurance of TLS end to end</a>.</li>
<li><strong>SRTP protects the audio.</strong> TLS doesn't encrypt RTP, so you must enable <a href="https://www.rfc-editor.org/rfc/rfc3711.html">SRTP</a> separately. A mismatch can leave a connected call silent.</li>
<li><strong>Digest authentication proves identity.</strong> It avoids sending the password itself, and <a href="https://www.rfc-editor.org/rfc/rfc8760.html">RFC 8760</a> adds SHA-256 options to the original algorithm.</li>
<li><strong>Source controls and destination limits contain damage.</strong> The SIP trunking guide has a full hardening checklist.</li>
</ul>
<h2>Do you need to handle SIP yourself?</h2>
<p>Often you don't. Use this map to choose how much of the protocol you take on, then compare SIP with WebSocket streaming if you're building for voice AI.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/269a5b1e-797c-4dee-abfe-347538f16362.png" alt="Decision map. If you have a PBX or a voice AI platform that accepts a SIP trunk, use a SIP trunk, and you manage authentication, codecs, and the firewall. If people answer on desk phones, softphones, or browser clients, use endpoints. If your own AI pipeline needs raw call audio, use VobizXML with Audio Streams over a secure WebSocket. Otherwise use VobizXML and the Voice API, where Vobiz speaks SIP and you return call logic from webhooks (callbacks)." style="display:block;margin:0 auto" />

<p>Two neighbouring terms cause confusion here. VoIP is the wider category, and SIP is one protocol used within it, as SIP vs VoIP explains. WebRTC is a browser media stack, and it doesn't define which signalling you use.</p>
<h2>What should you know about SIP in India?</h2>
<p>SIP itself works the same in India, but the rules on what you signal are specific and active. The table connects each part of a call to its rule. Rules change often, so confirm the current text and take legal advice for your own case.</p>
<table>
<thead>
<tr>
<th>Part of the call</th>
<th>Rule</th>
<th>Source and date</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Calling number, promotional</strong></td>
<td>Use the 140xx series after registering with your telecom provider</td>
<td><a href="https://www.trai.gov.in/sites/default/files/2026-07/PR_No91of2026.pdf">TRAI press release 91/2026</a>, July 2026</td>
</tr>
<tr>
<td><strong>Calling number, service or transactional</strong></td>
<td>Entities regulated by RBI, SEBI, IRDAI, and PFRDA, plus government bodies, use the 1600xx series</td>
<td><a href="https://www.trai.gov.in/sites/default/files/2026-07/PR_No91of2026.pdf">TRAI press release 91/2026</a>, July 2026</td>
</tr>
<tr>
<td><strong>Calls started by software</strong></td>
<td>Declare A2P calls and their CLI ranges to your originating provider in advance. Undeclared calls count as unsolicited</td>
<td><a href="https://trai.gov.in/sites/default/files/2026-09/Regulation_18092026.pdf">TRAI Third Amendment</a>, September 2026</td>
</tr>
<tr>
<td><strong>The trunk itself</strong></td>
<td>First unsolicited-call violation by a sender: outgoing services on all its telecom resources, including SIP trunks, barred for 15 days. Later violations: those resources disconnected for one year</td>
<td><a href="https://www.trai.gov.in/sites/default/files/2025-02/Regulation_12022025.pdf">TCCCPR Second Amendment</a>, February 2025, and restated in the <a href="https://trai.gov.in/sites/default/files/2026-09/Regulation_18092026.pdf">Third Amendment</a></td>
</tr>
<tr>
<td><strong>Each number on the trunk</strong></td>
<td>For the restoration provisions, each DID on a PRI or SIP trunk counts as a separate resource</td>
<td><a href="https://www.trai.gov.in/sites/default/files/2025-02/Regulation_12022025.pdf">TCCCPR Second Amendment</a>, February 2025, and restated in the <a href="https://trai.gov.in/sites/default/files/2026-09/Regulation_18092026.pdf">Third Amendment</a></td>
</tr>
</tbody></table>
<p>Three points deserve attention if you build on SIP.</p>
<p><strong>Voice agents appear to fit the A2P definition.</strong> The Third Amendment covers calls <a href="https://trai.gov.in/sites/default/files/2026-09/Regulation_18092026.pdf">started by an application, software system, or automated platform without direct human dialling</a>, including artificial voice. An outbound voice agent seems to match that wording, so raise it with your provider before launch. Regulation 4 on declaration starts 60 days after Gazette publication. We could not confirm the publication date, so check whether it applies on your launch date.</p>
<p><strong>The name on the call is changing.</strong> <a href="https://inc42.com/buzz/centre-directs-telcos-to-display-caller-names-from-november-1/">Inc42 reports</a> that DoT directed operators to roll out calling name presentation (CNAP) from November 1, 2026, on 4G and newer networks. It adds that business and bulk-connection users can display a preferred name backed by a registered trademark or GST trade name. We read this in a news report rather than the DoT order. The report doesn't mention SIP.</p>
<p><strong>CLI checks may tighten.</strong> TRAI has <a href="https://www.trai.gov.in/sites/default/files/2025-02/Recommendation_06022025.pdf">recommended</a> CNAP for SIP and PRI calls reaching mobile networks, and a CLI authentication framework when providers extend SIP or PRI trunks to enterprises. These are recommendations, and we could not confirm how far each has been implemented.</p>
<p>For toll bypass and more enforcement detail, see the India section of What is SIP trunking?.</p>
<h2>How Vobiz handles SIP</h2>
<p>Vobiz SIP trunking exposes the protocol where you need it and handles it where you don't..</p>
<ul>
<li><strong>Trunks.</strong> The console has separate pages for outbound and inbound trunks. The Trunks API sets each trunk's direction.</li>
<li><strong>The handshake's identity step.</strong> Attach an IP access control list or a SIP credential. Credential trunks are challenged with 407 Proxy Authentication Required.</li>
<li><strong>Transport and encryption.</strong> The trunk settings choose UDP, TCP, or TLS for signalling, and a separate setting controls SRTP for media.</li>
<li><strong>Paths.</strong> Signalling and media use different addresses, and media flows directly rather than through the signalling SBCs. Open the ranges on that page, because allowing only the SIP ports gives you a connected call with no audio.</li>
<li><strong>Endpoints.</strong> SIP endpoints register their own addresses. The API reports whether each endpoint is registered, its contact address, and when the registration expires, so you can check a binding directly.</li>
<li><strong>Transfers.</strong> SIP trunking supports blind and warm transfer through REFER, and the Transfer API works on a live call from your own code.</li>
<li><strong>No SIP at all.</strong> With VobizXML, your server returns call logic through webhooks (callbacks), and Vobiz handles the signalling. Audio Streams then fork live audio to your WebSocket server.</li>
</ul>
<h3>Tracing a session on Vobiz</h3>
<p>The SIP call logs include a <strong>SIP Trace</strong> view of the raw messages with timing, the hangup cause code, and the authentication method used. Open a call and select the <strong>More</strong> tab to find them.</p>
<p>The CDR API can filter by SIP Call-ID, which lets you match a Vobiz record to your own PBX trace. Each record also reports the negotiated codec, plus call-quality scores, jitter, and packet loss. The hangup causes reference explains each code and its next step.</p>
<h3>India on Vobiz</h3>
<p>Vobiz's India calling regulations cover KYC, caller ID, and media anchoring. Both legs of an Indian call must stay in India. A breach ends the call with hangup cause 2070, and a caller ID that isn't a Vobiz number ends it with 3030. See 140 and 160 series acquisition for commercial numbers and UCC management for complaints.</p>
<p>Test calls are billed to your account. Run them with your own Auth ID and Auth Token, and confirm the numbers first. Current rates are on the Vobiz pricing page.</p>
<h2>Frequently asked questions</h2>
<h2>FAQ</h2>
<h3>What is a SIP session?</h3>
<p>In the protocol, a SIP session is the live media exchange between participants, created when the SDP offer and answer complete. In carrier quotes, the phrase can mean one concurrent call, the same capacity unit as a channel. Check which meaning applies before you compare plans.</p>
<h3>What is the SIP three-way handshake?</h3>
<p>It is the INVITE, 200 OK, and ACK exchange that establishes a call. The caller asks, the callee accepts, and the caller confirms that it received the acceptance. The third message exists because a person may take a long time to answer.</p>
<h3>How does a SIP session differ from a SIP dialog?</h3>
<p>The dialog is the signalling relationship, identified by the Call-ID and two tags. The session is the media that relationship controls. A dialog can exist while a phone rings, before any session starts, and a hold changes the session without creating a new dialog.</p>
<h3>What is a SIP session timer?</h3>
<p>It is a keepalive defined in RFC 4028. The two sides negotiate an interval with the Session-Expires header, then send a re-INVITE or UPDATE at about the halfway point. If no refresh arrives in time, each side treats the session as ended and should send BYE.</p>
<h3>What port does SIP use?</h3>
<p>The defaults are port 5060 for SIP over UDP or TCP, and port 5061 for SIP over TLS. Those ports carry signalling only. RTP audio uses separate ports chosen for each call and named in the SDP, so your firewall has to allow both.</p>
<h3>Is SIP the same as VoIP?</h3>
<p>No. VoIP is the broad category of carrying voice over IP networks. SIP is one signalling protocol used within it, and it handles call setup, changes, and teardown. A VoIP call that uses SIP still relies on RTP or SRTP to carry the audio.</p>
<h2>Further reading on Vobiz</h2>
<ul>
<li>What is SIP trunking? · SIP vs VoIP · What is WebRTC?</li>
<li>SIP trunking concept guide · SIP vs WebSockets · Streaming over WebSockets</li>
<li>Hangup causes · SIP call logs · IP whitelisting</li>
<li>Concurrency capacity · Origination URI · 3CX integration · LiveKit integration</li>
</ul>
<h2>Sources</h2>
<p><strong>Standards and registries</strong></p>
<ul>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc2543.html">RFC 2543: SIP: Session Initiation Protocol</a>, March 1999 (obsoleted).</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3261.html">RFC 3261: SIP: Session Initiation Protocol</a>, June 2002.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3262.html">RFC 3262: Reliability of Provisional Responses in SIP</a>, June 2002.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3264.html">RFC 3264: An Offer/Answer Model with SDP</a>, June 2002.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3311.html">RFC 3311: The SIP UPDATE Method</a>, September 2002.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3515.html">RFC 3515: The SIP Refer Method</a>, April 2003.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3550.html">RFC 3550: RTP: A Transport Protocol for Real-Time Applications</a>, July 2003.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3711.html">RFC 3711: The Secure Real-time Transport Protocol</a>, March 2004.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc4028.html">RFC 4028: Session Timers in SIP</a>, April 2005.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc5853.html">RFC 5853: Requirements from SIP Session Border Control Deployments</a>, April 2010.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc7118.html">RFC 7118: The WebSocket Protocol as a Transport for SIP</a>, January 2014.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc8760.html">RFC 8760: SIP Digest Access Authentication Update</a>, March 2020.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc8866.html">RFC 8866: SDP: Session Description Protocol</a>, January 2021.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc9293.html">RFC 9293: Transmission Control Protocol</a>, August 2022.</li>
<li>IANA, <a href="https://www.iana.org/assignments/sip-parameters">Session Initiation Protocol (SIP) Parameters</a>, updated October 2026.</li>
</ul>
<p><strong>Indian regulators and reporting</strong></p>
<ul>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2025-02/Regulation_12022025.pdf">Telecom Commercial Communications Customer Preference (Second Amendment) Regulations, 2025</a>, February 2025.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2025-02/Recommendation_06022025.pdf">Recommendations on Revision of National Numbering Plan</a>, February 2025.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2026-07/PR_No91of2026.pdf">Press release 91/2026 on the 1600 and 140 series</a>, July 2026.</li>
<li>TRAI, <a href="https://trai.gov.in/sites/default/files/2026-09/Regulation_18092026.pdf">Telecom Commercial Communications Customer Preference (Third Amendment) Regulations, 2026</a>, September 2026.</li>
<li>Inc42, <a href="https://inc42.com/buzz/centre-directs-telcos-to-display-caller-names-from-november-1/">Centre Directs Telcos To Display Caller Names From November 1</a>, October 2026.</li>
</ul>
<p><strong>Vendor references</strong></p>
<ul>
<li>Fortinet, <a href="https://docs.fortinet.com/document/fortigate/8.0.0/administration-guide/147933/sip-alg-and-sip-session-helper">SIP ALG and SIP session helper (FortiOS 8.0.0)</a>.</li>
<li>GetVoIP, <a href="https://getvoip.com/blog/sip-protocol/">What is a SIP Protocol and How Does it Work?</a>, updated December 2023.</li>
<li>VideoSDK, <a href="https://www.videosdk.live/developer-hub/sip/sip-session">SIP Session: The Definitive Guide</a>.</li>
<li>Dialogic, <a href="https://www.dialogic.com/webhelp/NaturalAccess/Release9.0/SIP_for_NCC_API_Dev_Manual/acknowledging_a_call.htm">Acknowledging a call</a>, 2010.</li>
</ul>
<hr />
<p>If you're wiring a voice AI agent into SIP, <a href="https://www.vobiz.ai">Vobiz</a> provides SIP trunks and phone numbers built for AI voice agents.</p>
]]></content:encoded></item><item><title><![CDATA[Why voice agents interrupt themselves on phone calls, and how to fix the timing]]></title><description><![CDATA[Agent text input in Soniox STT v6, paced from the phone leg]]></description><link>https://piyuzz.hashnode.dev/why-voice-agents-interrupt-themselves-on-phone-calls-and-how-to-fix-the-timing</link><guid isPermaLink="true">https://piyuzz.hashnode.dev/why-voice-agents-interrupt-themselves-on-phone-calls-and-how-to-fix-the-timing</guid><category><![CDATA[ai agents]]></category><category><![CDATA[Telephony]]></category><category><![CDATA[WebRTC]]></category><category><![CDATA[voice ai]]></category><dc:creator><![CDATA[Piyush Sahoo]]></dc:creator><pubDate>Wed, 11 Nov 2026 04:16:37 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/0505da1e-8d02-497a-8174-ab41ec959d44.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There's a bug every voice agent team hits eventually. The agent asks a question, gets three words in, stops, and says "Sorry, go ahead." Nobody said anything. The agent heard itself.</p>
<p>In a browser demo you rarely see it. The browser's echo canceller is decent, you're wearing headphones, and the network is clean. On a real phone call it shows up a lot more, and it's one of the reasons an agent that felt great in testing starts "randomly" cutting itself off once it has a real number.</p>
<p>Two launches in early November 2026 went right at this layer, so it's worth walking through what's actually happening.</p>
<h2>What shipped</h2>
<p><strong>Soniox STT v6 (Nov 3).</strong> The headline feature is that the speech model now knows what your agent is saying. You stream the agent's words into the same WebSocket as the caller's audio, and v6 uses them two ways: to recognise the caller's short replies better (it knows what question they are answering), and to filter out any of the agent's own voice that leaks back into the caller's audio. It keeps listening while the agent talks, so a real interruption still gets through. (<a href="https://soniox.com/blog/soniox-stt-v6">Soniox launch post</a>, <a href="https://docs.soniox.com/stt/rt/agent-text-input">agent text input docs</a>)</p>
<p><strong>Hume Audio Decision API (Nov 2).</strong> A different angle on the same gap: transcripts only carry words. Hume's API takes raw audio plus a question you write ("does the caller sound frustrated?", "are two people talking over each other?") and returns an answer with a confidence score. In an initial evaluation, Hume reports 70.7% agreement with a human panel's average judgment, compared with 56.5% for the individual-rater baseline. (<a href="https://www.hume.ai/blog/introducing-hume-audio-decision-api">Hume launch post</a>)</p>
<p>And on the money side, Guava announced a $12.5M seed on Nov 2 (led by Acrew Capital) with a pitch literally about voice AI's "real-world growing pains". (<a href="https://www.businesswire.com/news/home/20261102236960/en/Guava-Lands-%2412.5-Million-to-Tackle-Voice-AIs-Real-world-Growing-Pains">BusinessWire</a>)</p>
<p>The common thread: the models are fast enough now. The work is moving to what happens to audio between the model and a real person.</p>
<h2>Why phone calls make self-interruption worse</h2>
<p>On a call, your agent never hears the caller's room directly. It hears the caller's leg of the call: audio that went through their handset, their carrier, and whatever sits between there and your server. Your agent's own voice can come back on that leg in a few ways:</p>
<ul>
<li><strong>Speakerphones and car kits.</strong> The caller's phone plays your agent out loud and its microphone picks it up again. Phone echo cancellers are good, not perfect, and cheap handsets and noisy cars push them hard.</li>
<li><strong>The network.</strong> Older parts of the phone network convert between two-wire and four-wire circuits, and that creates line echo. Carriers run network echo cancellers (the ITU-T G.168 kind) to remove it, and most of it goes. Some doesn't, especially right as speech starts.</li>
<li><strong>Narrowband audio.</strong> Most phone legs are 8 kHz G.711. Your STT is working with less information than in a browser, so a faint echo of the agent and a soft "uh-huh" from the caller look more alike.</li>
</ul>
<p>Now add the usual voice agent loop: VAD or STT hears "speech" on the caller's leg while the agent is talking, the framework treats it as barge-in, playback stops, the agent apologizes for interrupting. The caller hears a bot that can't finish a sentence.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/9cdd2a79-7492-4e87-b3c4-c1ebd1de05dc.png" alt="Where echo enters the call path: from the voice agent through the media stream and the carrier network to the caller's handset. Acoustic echo returns from the handset's speaker to its microphone, and line echo returns from the network, mostly removed by G.168 cancellers. The speech-to-text model filters what's left using the agent's text." style="display:block;margin:0 auto" />

<p>The tempting fix is to make barge-in less sensitive. That trades one bad experience for another: now the caller says "no, wait" and the agent keeps reading the whole policy.</p>
<p>What v6's echo filtering does is let you keep barge-in sensitive, because the STT can tell "this is the agent's own sentence coming back" from "this is the caller".</p>
<p>Soniox's docs are explicit that this sits <em>on top of</em> normal echo cancellation, not instead of it: "Keep your echo cancellation on. Agent text input handles what it leaves behind; it doesn't replace it." On a phone call that maps nicely: the handset and the network do their echo cancelling, v6 cleans up the remainder.</p>
<h2>The part that's easy to get wrong: timing</h2>
<p>Agent text messages don't carry timestamps. Soniox places each piece of text at the point in the audio stream where it arrives, so you're meant to send each piece about half a second to a second before the caller hears it. The docs say to follow playback, not the LLM and not the TTS, because both produce text and audio faster than real time.</p>
<p>In a browser app, the client can report playback position. On a phone call there's no client to ask. But there's a nice property here: <strong>on a phone call your server is the player.</strong> It writes audio frames into the carrier's media stream. So how much the caller has heard is roughly the smaller of two numbers: the time since the reply started, and the length of audio you've actually sent.</p>
<p>For 8 kHz mu-law audio, that length is simply the bytes sent divided by 8,000, because each sample is one byte. Taking the smaller number matters: if TTS stalls, the wall clock keeps running but the caller hasn't heard anything new, and you don't want the text to race ahead of the audio. (Soniox's docs suggest the same estimate for server-side agents.)</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/e9a97b4f-c7ab-4976-9b70-f8fefbea04af.png" alt="Timing diagram. In the right way, text follows playback on the phone leg and is sent about 0.7 seconds ahead of what the caller hears. In the wrong way, the whole reply goes from the LLM to the speech model at once, long before the caller hears it." style="display:block;margin:0 auto" />

<p>In practice that's a small pacer with one job per turn. After each chunk of caller audio (every 20 ms on most phone streams), it works out how far playback has got, adds a lead of about 0.7 seconds, and sends Soniox the agent's words whose TTS timestamps fall inside that window. When the TTS has finished and every word has gone out, it marks the end of the segment. It doesn't depend on any framework, so it fits wherever your agent writes audio to the phone leg.</p>
<p>Turning the feature on is one setting in the start request. For a raw phone stream you also declare the audio format: Soniox's own Twilio example uses mu-law at 8 kHz and sends both call tracks as two channels, where here it's just the caller leg. Check the current <a href="https://docs.soniox.com/api-reference/stt/websocket-api">WebSocket API reference</a> for the exact format names before you ship, because the docs' own example lets the service detect the format automatically.</p>
<h2>Barge-in on a phone call has two halves</h2>
<p>When the caller really does interrupt, the Soniox docs say: send any text that was already played, mark the end of the segment, and don't send the rest. So the pacer has a second job: on a real interruption, send only the words the caller has already heard, close the turn and drop everything after it.</p>
<p>The phone-specific half: the audio you've already handed to the carrier is still sitting in a buffer somewhere. If you only stop your TTS, the caller keeps hearing the agent for a moment after they started talking, which feels like being ignored. Most media-stream APIs have a way to flush that (Twilio Media Streams has a clear message, for example; SIP-based stacks like LiveKit and Pipecat handle it through their interruption logic). Do both at once: flush the phone leg, close the STT segment.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/6230d14a-95b6-4538-be8e-a4ae37f22d9a.png" alt="Barge-in in two halves, both triggered when the caller starts talking. On the speech-to-text side, send the text already played, end the segment and drop the rest. On the phone side, flush the audio still buffered on the media stream." style="display:block;margin:0 auto" />

<p>One honest caveat about the clock: the smaller-of-two-numbers estimate assumes the carrier plays what you send right away. If your provider buffers a lot, the caller hears things later than you think. The fix is the same as everywhere in voice AI: measure on a real call, not a browser tab.</p>
<h2>Where Hume's API fits</h2>
<p>Hume's Audio Decision API is aimed at a different moment. Echo filtering keeps the live turn-taking clean. Audio questions help you find out where calls went wrong: "were the agent and caller talking over each other?", "is there loud background noise?", "does the caller sound frustrated?". Hume says it's fast enough to ask dozens of questions every few seconds on a live call, and also describes live use as a longer-term opportunity. I'd start with recordings: run a week of recent phone calls through a couple of questions and see whether the "agent interrupted itself" calls cluster on speakerphone or noisy lines. That tells you whether this is a model problem or a phone-line problem before you change anything.</p>
<h2>What I'd do next</h2>
<ol>
<li>Pull 20 recordings where the agent stopped mid-sentence with no real caller speech. Listen to the caller leg only. You'll hear the echo.</li>
<li>If you're on Soniox already, the new real-time model is stt-rt-v6. Agent text input is one setting in the start request, plus a pacer like the one above.</li>
<li>Pace the agent's text from playback (audio sent to the phone leg), never from the LLM stream.</li>
<li>On barge-in, flush the phone leg and close the STT segment together.</li>
<li>Keep echo cancellation on everywhere it already exists. v6 handles what's left, it doesn't replace it.</li>
</ol>
<p>Voice agents got fast. Getting them to finish a sentence on a real phone line is the next bit.</p>
<hr />
<p><em>I work on the phone-line side at</em> <a href="https://www.vobiz.ai"><em>Vobiz</em></a><em>, telephony for voice agents, so the phone leg is the part I stare at.</em></p>
<p><strong>About the author</strong></p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/f1f3eb5a-72ea-475e-8989-beb7aa67248a.png" alt="Piyush Sahoo" style="display:block;margin:0 auto" />

<p>Piyush Sahoo, Founding Member, Vobiz, writes about where AI voice agents meet the phone network. More at <a href="https://www.piyushsahoo.me/">piyushsahoo.me</a>.</p>
]]></content:encoded></item><item><title><![CDATA[Model churn in voice agents: auditing your stack for November's deprecations]]></title><description><![CDATA[Whole-ID matching, per-call drift logs, and re-listening on the phone leg]]></description><link>https://piyuzz.hashnode.dev/model-churn-in-voice-agents-auditing-your-stack-for-november-s-deprecations</link><guid isPermaLink="true">https://piyuzz.hashnode.dev/model-churn-in-voice-agents-auditing-your-stack-for-november-s-deprecations</guid><category><![CDATA[text to speech]]></category><category><![CDATA[Telephony]]></category><category><![CDATA[voice ai]]></category><category><![CDATA[llm]]></category><category><![CDATA[ai agents]]></category><dc:creator><![CDATA[Piyush Sahoo]]></dc:creator><pubDate>Tue, 10 Nov 2026 04:38:31 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/d2e6147a-24eb-4f35-940f-2e56372c8e23.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most voice agents I see in production aren't one model. They're three or four: a speech-to-text model, an LLM, a TTS voice, often a fallback LLM, sometimes a realtime speech model doing all of it at once. Each one is a string in a config file somewhere.</p>
<p>This month several of those strings got an expiry date. Some of them won't fail when the date comes. They'll keep answering, on a different model.</p>
<p>On a web app you might catch that in a dashboard. On a phone call the caller just hears a slightly different voice, a slower first word, or an agent that suddenly calls tools differently. Nobody files a ticket. They hang up.</p>
<p>So this one is practical: what changed in the first week of November 2026, and a three-step routine to find the affected model IDs in your stack and catch the calls that quietly ran on another model.</p>
<h2>What shipped (and what's expiring)</h2>
<p><strong>Google Gemini API: two deprecations (Nov 2) and voice remixing (Nov 4).</strong> On Nov 2 Google deprecated gemini-2.5-pro and gemini-2.5-flash. From December 1, 2026, requests to gemini-2.5-pro automatically route to gemini-3.8-flash, and requests to gemini-2.5-flash route to gemini-3.5-flash-lite, billed at the new model's rates. Google lists breaking API changes for both moves: stricter validation for function calling and thought signatures, a thinking-level setting replacing the thinking budget, and the removal of some sampling parameters and of prefilled model turns. gemini-2.5-flash-lite is not deprecated. (<a href="https://ai.google.dev/gemini-api/docs/changelog">Gemini API release notes</a>)</p>
<p>The voice-specific part is on Google's <a href="https://ai.google.dev/gemini-api/docs/deprecations">deprecations page</a>: the preview TTS models gemini-2.5-flash-preview-tts, gemini-2.5-pro-preview-tts and gemini-3.1-flash-tts-preview have a shutdown date of November 17, 2026 (replacement: gemini-3.8-flash-tts or gemini-3.8-flash-lite-tts). So do the Live API previews gemini-3.1-flash-live-preview and gemini-2.5-flash-native-audio-preview-12-2025 (replacement: gemini-3.8-live). Google notes that dates on that page are the <em>earliest possible</em> shutdown dates. These are listed as shutdowns, not re-routes.</p>
<p>And on Nov 4 Google released <a href="https://ai.google.dev/gemini-api/docs/voice-remixing">voice remixing</a>: you give it a base voice (a prebuilt voice, a library voice or one you designed) plus an instruction like "slightly older, slower pacing", and get back a new stored voice ID that works with both Gemini 3.8 Flash TTS and Flash-Lite TTS. That's timely, because anyone moving off a preview TTS model this month is about to re-check how their agent sounds anyway.</p>
<p><strong>ElevenLabs changelog (Nov 2).</strong> A lot in one entry (<a href="https://elevenlabs.io/docs/changelog/2026/11/2">changelog</a>):</p>
<ul>
<li><em>Default LLM:</em> new agents created without an explicit LLM now use gemini-3.5-flash instead of gemini-2.5-flash. Existing agents are unchanged.</li>
<li><em>Staged migrations:</em> gpt-5, gpt-5-mini, gpt-5-nano and their 2025-08-07 snapshots are deprecated ahead of OpenAI's December 11 shutdown, with traffic moving to gpt-5.6-sol, gpt-5.6-terra and gpt-5.6-luna "in steps from 10% on November 11 to 100% on December 6". The fallback ramp for gemini-2.5-flash and gemini-2.5-flash-lite now starts on November 8 instead of November 1, with the November 30 cutoff unchanged. Claude Sonnet 4.5 is deprecated on November 30, replaced by Claude Sonnet 4.6.</li>
<li><em>Eleven Realtime for every workspace</em>, finishing a rollout that started on October 19, including connecting an OpenAI Realtime client to the Realtime WebSocket.</li>
<li><em>Realtime API behaviour changes:</em> the speech-started and speech-stopped events are now sent once per committed user turn instead of on every pause; each manual commit of the input audio buffer transcribes only the speech since the previous commit; idle audio sessions close after 3 minutes instead of 60 seconds, with a session idle timeout error.</li>
</ul>
<p>The OpenAI date checks out on OpenAI's side too: its <a href="https://platform.openai.com/docs/deprecations">deprecations page</a> lists gpt-5, gpt-5-mini and gpt-5-nano (and their 2025-08-07 snapshots) for removal on Dec 11, 2026.</p>
<p>The common thread: none of this needs you to deploy anything. Your agent changes on the provider's calendar, not yours.</p>
<p><img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/f93cef55-af30-4997-bc8e-8430f79d3188.png" alt="Timeline from November 5 to December 11, 2026: the ElevenLabs Gemini 2.5 fallback ramp starts on November 8, the GPT-5 family ramp begins at 10% on November 11, the Gemini preview TTS and Live models shut down on November 17, the ElevenLabs Gemini 2.5 cutoff and Claude Sonnet 4.5 deprecation land on November 30, Gemini 2.5 Pro and Flash auto-route on December 1, the ramp reaches 100% on December 6, and OpenAI removes GPT-5 on December 11." /></p>
<h2>Why phone agents feel this more</h2>
<p>Three reasons, all boring, all real:</p>
<ul>
<li><strong>Swaps are partial.</strong> "10% of traffic on November 11" means for a while some of your calls run on the old model and some on the new one. If one of them handles a tool call or a long policy answer differently, you get a bug that shows up on one call in ten. That's the hardest kind to chase from call recordings.</li>
<li><strong>Re-routes keep working.</strong> A shutdown fails loudly: the request errors, your fallback kicks in or the call drops, and you notice. An automatic re-route to a different model with breaking API changes (function calling, thinking settings, sampling parameters) fails quietly. The call still connects. The agent is just a bit different.</li>
<li><strong>The caller is the only monitor.</strong> A TTS swap changes the voice your callers have heard for months. A different LLM changes how long it takes to produce the first token, and on a phone line that's dead air. There's no UI to show a spinner in.</li>
</ul>
<p><img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/b56e419e-119d-4dd4-b599-f8c0a283a3a2.png" alt="Two panels. Shutdown: the request errors, the fallback runs or the call drops, and you notice. Auto-route or ramp: the request is answered by a different model, the call continues with different behaviour, and nobody notices." /></p>
<p>And the event changes matter if you built logic on top of realtime events. If your agent treated every speech-started event as "the caller is talking again" (to stop playback, or to start a "listening" timer), it now gets that event once per committed turn instead of on every pause. That's probably what you wanted, but it's a behaviour change, so test it rather than assume it.</p>
<h2>Step 1: find every model ID you actually use</h2>
<p>Model names hide in more places than the main config: environment files, fallback lists, a hard-coded default in a helper, the eval setup, an exported agent definition. A plain text search finds most of them, but a search for gemini-2.5-flash also turns up gemini-2.5-flash-lite (not deprecated) and gemini-2.5-flash-preview-tts (a different deadline). So match whole model IDs: a hit only counts when the name isn't part of a longer one.</p>
<p><img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/dea1b4cc-e186-42bf-9c0a-cf1c2e27a6b2.png" alt="Whole-ID matching: gemini-2.5-flash is flagged, gemini-2.5-flash-lite is not deprecated, and gemini-2.5-flash-preview-tts is flagged with a different date. A substring search isn't enough." /></p>
<p>Then put every hit in one list, with the date from the provider's own page, what happens on that date (a shutdown or an automatic re-route) and the replacement the provider names, and sort it by deadline. On a small demo agent, the top of that list was the Gemini Live native-audio preview and the preview TTS model (shut down on November 17), then gemini-2.5-flash (re-routed on December 1), then gpt-5-mini (removed on December 11). The fallback set to gemini-2.5-flash-lite correctly stayed off the list.</p>
<p>Make the check repeat itself. If your build fails whenever a model in use is 30 days or less from its date, you'll get nagged until it's fixed.</p>
<p>Two honest limits: the list only knows the IDs you put in it, and if you're on a hosted agent platform that picks the model for you, the ID might not be in your repo at all. That's what step 2 is for.</p>
<h2>Step 2: log the model per call, then look for drift</h2>
<p>Your config says what you <em>asked for</em>. What matters is what <em>answered</em>. Most APIs report the model in the response, and hosted agent platforms usually expose it per conversation. Record both on every call, next to the call ID: the configured model and the reported model.</p>
<p>Then count, for each configured model, how many calls it handled and how many came back on something else. On a made-up log of 40 calls where every tenth one came back on the new model, that's 40 calls with 4 on another model, or 10%. That number is fake; yours is the interesting one. Once you can see the split, you can compare the two groups on things you already track: time to first audio, tool-call errors, transfers to a human, call length.</p>
<p>(Treat a call with no reported model as drift too. A call where you didn't record the model is a call you can't explain later.)</p>
<h2>Step 3: re-listen on the phone leg, not on your laptop</h2>
<p>If you're moving off a Gemini preview TTS model, the voice will change, at least a little. Listen to the new one the way callers hear it: 8 kHz, through a real call, ideally on a cheap handset. Studio-quality samples at 24 kHz hide exactly the things that get lost on a phone line, like breathy high-end detail and very fast pacing. If your agent runs on LiveKit, the easy way is to put a real number in front of a test room (a <a href="https://www.vobiz.ai/docs/integrations/livekit">Vobiz SIP trunk on LiveKit</a> is one way to set that up), dial it from your own phone, and listen to both voices side by side.</p>
<p>If the new model's version of your voice is close but off (too quick, too bright), that's where Google's voice remixing is useful: describe the change, get a new voice ID, and pin that ID in your config. I wouldn't promise it recreates the old voice exactly. It's a way to adjust, not a copy button.</p>
<h2>What I'd do next</h2>
<ol>
<li>Search every repo that touches your voice agent for whole model IDs, including eval setups and agent exports. Fix anything with a Nov 17 date first.</li>
<li>Pin explicit model IDs everywhere. Defaults change (ElevenLabs' new-agent default just did), and "whatever the default is" is a different agent every few months.</li>
<li>Record the configured model and the reported model on every call, starting today, before the 10% ramps begin.</li>
<li>For anything that will auto-route, read the migration guide's breaking changes against your tool-calling setup. A re-route that keeps the call connected but breaks function calls is worse than a clean error.</li>
<li>If you use realtime events for barge-in or timers, replay a few recorded turns against the new event behaviour before you trust it.</li>
</ol>
<p>Voice agents used to break when you shipped. Now they also change when you don't.</p>
<hr />
<p><em>Disclosure: I work on the phone-line side at <a href="https://www.vobiz.ai">Vobiz</a>, telephony for voice agents (SIP trunks and real numbers under stacks like LiveKit, Pipecat and Vapi), handling 11M+ calls a day, so the phone leg is the part I stare at.</em></p>
<p><strong>About the author</strong></p>
<p><img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/264de3f1-5b6d-4a44-b173-c9389f181967.png" alt="Piyush Sahoo" /></p>
<p>Piyush Sahoo, Founding Member, Vobiz, writes about where AI voice agents meet the phone network. More at <a href="https://www.piyushsahoo.me/">piyushsahoo.me</a>.</p>
]]></content:encoded></item><item><title><![CDATA[What VoIP Really Is: Packets, Codecs and Delay]]></title><description><![CDATA[This is a reference-style walkthrough of VoIP: the two planes of a call, the bandwidth arithmetic per codec, delay against ITU-T G.114, and India's 2026…]]></description><link>https://piyuzz.hashnode.dev/what-is-voip</link><guid isPermaLink="true">https://piyuzz.hashnode.dev/what-is-voip</guid><dc:creator><![CDATA[Piyush Sahoo]]></dc:creator><pubDate>Mon, 09 Nov 2026 21:41:10 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/4b4f1f8b-550b-43a0-8ba1-3656237e5ec4.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This is a reference-style walkthrough of VoIP: the two planes of a call, the bandwidth arithmetic per codec, delay against ITU-T G.114, and India's 2026 rules, each linked to its source.</p>
<p>VoIP (Voice over Internet Protocol) sends speech as small digital packets over an IP network instead of a reserved circuit. A VoIP call samples and compresses your voice, sets up the session with a protocol such as SIP, then streams audio over RTP. WhatsApp calls, softphones, and voice AI agents all use it.</p>
<p>This guide shows what happens to those packets, works out what a call really consumes, sets delay against the ITU's limits, helps you choose a model, and walks through one country's rules (India's) from the regulators' own documents as a worked example.</p>
<blockquote>
<p><strong>Note: Key takeaways</strong></p>
<ul>
<li><strong>A VoIP call has two planes.</strong> Signalling sets up the call and media carries the sound, so a call can connect and still have no audio.</li>
<li><strong>Headers change the bandwidth math.</strong> G.729 compresses voice 8 times more than G.711, yet uses only about 2.8 times less bandwidth on Ethernet.</li>
<li><strong>Delay and jitter usually matter more than speed.</strong> ITU-T G.114 treats 150 ms one way as nearly transparent and 400 ms as the general planning limit.</li>
<li><strong>VoLTE is VoIP with an operator's guarantees.</strong> The packets are similar, but the operator controls the path.</li>
<li><strong>Legality turns on the provider's licence. In India, for example,</strong> under the June 2026 rules, access services may connect internet telephony to phone networks, while internet service authorisations can't do so within India.</li>
</ul>
</blockquote>
<h2>What is a VoIP call?</h2>
<p>A VoIP call is any voice session whose audio travels as IP packets for at least part of its route. That definition is broad, and it is why "is this a VoIP call?" often has a surprising answer. The useful questions are who controls the path and whether the call can reach ordinary phone numbers.</p>
<table>
<thead>
<tr>
<th>Kind of call</th>
<th>Where IP is used</th>
<th>Who controls the path</th>
<th>Reaches ordinary numbers?</th>
</tr>
</thead>
<tbody><tr>
<td><strong>App to app</strong>, such as WhatsApp or Meet</td>
<td>End to end</td>
<td>Nobody manages it end to end</td>
<td>Not by itself</td>
</tr>
<tr>
<td><strong>Softphone or IP desk phone</strong></td>
<td>From your device to the provider</td>
<td>Your network, then the provider</td>
<td>Yes, through a gateway</td>
</tr>
<tr>
<td><strong>Business call over a SIP trunk</strong></td>
<td>From your system to the provider</td>
<td>Your network, the provider, then the called operator</td>
<td>Yes</td>
</tr>
<tr>
<td><strong>VoLTE on a 4G phone</strong></td>
<td>Inside the operator's IMS network</td>
<td>The mobile operator</td>
<td>Yes</td>
</tr>
<tr>
<td><strong>Mobile number over Wi-Fi</strong></td>
<td><a href="https://khaitanco.com/thought-leadership/the-age-of-internet-telephony-has-officially-arrived">Over your Wi-Fi, then the operator's network</a></td>
<td>Your Wi-Fi, then the operator</td>
<td>Yes</td>
</tr>
<tr>
<td><strong>Analog landline</strong></td>
<td>Not on your line, though a carrier may use IP inside its network</td>
<td>The carrier</td>
<td>Yes</td>
</tr>
</tbody></table>
<h3>Is VoLTE the same as VoIP?</h3>
<p>VoLTE is a managed form of VoIP. It also carries <a href="https://www.eeworldonline.com/volte-what-makes-voice-over-ip-carrier-grade/">digitised voice as IP packets</a>, but it runs on the operator's IP Multimedia Subsystem rather than the open internet. That control lets the operator commit to quality levels, which an app on best-effort internet can't do. The GSMA document IR.92 defines the minimum profile.</p>
<h3>What changes when voice moves to packets?</h3>
<p>The older phone network reserves a path for the whole call. VoIP gives that up in exchange for sharing, and nearly every strength and weakness of VoIP follows from this one trade.</p>
<p><img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/bc9f08cb-74aa-44d2-ac3e-e5d59b8944df.png" alt="Two diagrams. A circuit-switched call reserves one path through three exchanges, even during silence. A packet-switched call shares links with other traffic, packets 2 and 3 arrive out of order, and a jitter buffer at the far end restores the order." /></p>
<p>Sharing means a call can be created, routed, and recorded in software. It also means the network makes no promise about when each packet will land.</p>
<h2>How does a VoIP call travel from mouth to ear?</h2>
<p>Each call is two separate conversations. Signalling agrees what the call is, and media carries the sound. The diagram follows one direction of audio.</p>
<p><img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/b2f72d32-ae3d-4aa8-8579-7c9fa8c299b4.png" alt="Diagram of a VoIP call. SIP INVITE and SDP messages pass through SIP servers on the signalling plane. On the media plane, the sender samples, encodes, and packetises audio, the IP network adds delay, jitter, and packet loss, and the receiver buffers, decodes, and plays it." /></p>
<ol>
<li><strong>Negotiate.</strong> <a href="https://www.rfc-editor.org/rfc/rfc3261.html">SIP, defined in RFC 3261</a>, starts the session. Its INVITE carries an <a href="https://www.rfc-editor.org/rfc/rfc8866.html">SDP</a> description, and the two sides settle on a codec and addresses through the <a href="https://www.rfc-editor.org/rfc/rfc3264.html">offer/answer model</a>.</li>
<li><strong>Sample.</strong> The sender measures the microphone signal thousands of times a second, usually 8,000 for narrowband telephony and 16,000 for wideband.</li>
<li><strong>Encode.</strong> A codec reduces those samples to a target bit rate.</li>
<li><strong>Packetise.</strong> Audio is grouped into frames, commonly 20 ms each, which makes 50 packets a second in each direction. <a href="https://www.rfc-editor.org/rfc/rfc3550.html">RTP, defined in RFC 3550</a>, adds the sequence number and timestamp the receiver needs.</li>
<li><strong>Cross the network.</strong> Each packet finds its own way past Wi-Fi, routers, and firewalls.</li>
<li><strong>Buffer and play.</strong> A <a href="https://www.cisco.com/c/en/us/support/docs/voice/voice-quality/5125-delay-details.html">de-jitter buffer</a> holds packets briefly, so sound leaves at an even rate. The decoder then plays them and hides small gaps.</li>
</ol>
<h3>Which codec does each call use?</h3>
<p>The codec decides how much of the human voice survives and what the call costs in bandwidth.</p>
<table>
<thead>
<tr>
<th>Codec</th>
<th>Audio band</th>
<th>Voice bit rate</th>
<th>Where it fits</th>
</tr>
</thead>
<tbody><tr>
<td><a href="https://www.itu.int/rec/T-REC-G.711-198811-I/en">G.711</a></td>
<td>Narrowband</td>
<td>64 kbps</td>
<td>The common ground for phone networks, with little processing</td>
</tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-G.722-201209-I/en">G.722</a></td>
<td>Wideband, 7 kHz</td>
<td>Up to 64 kbps</td>
<td>HD voice between systems that both support it</td>
</tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-G.729-201206-I/en">G.729</a></td>
<td>Narrowband</td>
<td>8 kbps</td>
<td>Constrained links where every kilobit counts</td>
</tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc6716.html">Opus</a></td>
<td>Narrowband to fullband</td>
<td>6 to 510 kbps</td>
<td>Software clients and browsers, and it adapts to the network</td>
</tr>
</tbody></table>
<p><a href="https://www.rfc-editor.org/rfc/rfc7874.html">Every WebRTC endpoint must implement Opus and G.711</a>, which is why browser calling can still reach legacy phone systems. Wideband quality rarely survives the whole route, though. A call that leaves IP for the phone network falls to the <a href="https://www.vobiz.ai/docs/concepts/sip-vs-websockets">8 kHz PSTN floor</a>, so a clear softphone still sounds like a phone at the far end.</p>
<h3>Three details that catch engineers</h3>
<ul>
<li><strong>NAT.</strong> A device behind a home or office router may advertise a private address that the far side can't reach. <a href="https://www.rfc-editor.org/rfc/rfc8445.html">ICE, with STUN and TURN</a>, exists to find a path that works.</li>
<li><strong>Keypresses.</strong> IVR digits usually travel as <a href="https://www.rfc-editor.org/rfc/rfc4733.html">RFC 4733 telephony events</a> inside RTP, not as tones in the audio. <a href="https://www.rfc-editor.org/rfc/rfc4733.html">Low-rate codecs can't be relied on to reproduce tones</a>, so both sides need to agree on the method.</li>
<li><strong>Encryption is two jobs.</strong> TLS protects signalling, and <a href="https://www.rfc-editor.org/rfc/rfc3711.html">SRTP</a> protects media. Enabling one doesn't enable the other.</li>
</ul>
<h2>How much bandwidth does a VoIP call use?</h2>
<p>A G.711 call uses about 87 kbps in each direction on Ethernet, not 64. Every 20 ms packet carries 40 bytes of IP, UDP, and RTP headers plus 18 bytes of Ethernet framing. At 50 packets a second, that adds 23.2 kbps no matter which codec you pick.</p>
<p><img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/63df3ab9-3b5b-481d-8744-d4586aeea49d.png" alt="Stacked bar chart of per-call bandwidth at 20 millisecond packets on Ethernet. G.711 and G.722 at 64 kbps use 87.2 kbps. Opus wideband at 20 kbps uses 43.2. Opus narrowband at 12 kbps uses 35.2. G.729 uses 31.2. Headers add a fixed 23.2 kbps to each." /></p>
<p>Our G.711 and G.729 results match <a href="https://www.cisco.com/c/en/us/support/docs/voice/voice-quality/7934-bwidth-consume.html">Cisco's per-call table</a>. TRAI's <a href="https://www.trai.gov.in/sites/default/files/2025-02/Recommendation_06022025.pdf">February 2025 numbering recommendations</a> use close round figures of 87 and 32 kbps. The Opus bars use the upper end of the <a href="https://www.rfc-editor.org/rfc/rfc6716.html#section-2.1.1">bit rates RFC 6716 suggests for speech</a>. Opus varies its rate in practice, so treat them as a planning value.</p>
<p>Four consequences follow:</p>
<ul>
<li><strong>Compression pays less than it appears to.</strong> G.729 cuts voice to one eighth of G.711, but it cuts the wire rate to about 36%. Headers are 74% of a G.729 stream.</li>
<li><strong>Longer packets save bandwidth and cost delay.</strong> Moving G.729 from 20 ms to 40 ms packets drops it from 31.2 to 19.6 kbps, and adds 20 ms of waiting to each packet.</li>
<li><strong>SRTP adds a little.</strong> Its <a href="https://www.rfc-editor.org/rfc/rfc3711.html">default 80-bit authentication tag</a> adds about 4 kbps per direction at 50 packets a second.</li>
<li><strong>Upload often runs out first.</strong> A call needs the same rate in both directions, so an asymmetric connection hits its limit on the upload side.</li>
</ul>
<p>For a worked example, take an office with 40 agents on G.711 with SRTP. That is 40 × 91.2 kbps, or about 3.65 Mbps each way. Leave headroom above that, because voice shares the link with everything else on it.</p>
<h2>Why does VoIP sound bad when the speed test looks fine?</h2>
<p>A speed test measures how much data moves, while a call cares about when each packet arrives. Three separate measures decide quality: delay, jitter, and packet loss.</p>
<p><a href="https://www.itu.int/rec/T-REC-G.114-200305-I/en">ITU-T G.114</a> gives the reference points for delay. Below 150 ms mouth to ear, most applications feel essentially transparent. Above 400 ms is unacceptable for general network planning, with rare exceptions such as a double satellite hop. For conversational speech, it recommends the E-model to estimate how delay affects quality.</p>
<p><img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/62c7d002-77b0-4b2e-ac2f-de6f0a09fa1a.png" alt="Illustrative stacked bar chart of one-way delay. A short steady path totals 105 milliseconds: 25 codec and packet, 30 network, 40 jitter buffer, 10 decode and playout. A long unsteady path totals 255 milliseconds: 25, 140, 80, and 10. Reference lines mark the 150 millisecond G.114 guide and 400 millisecond planning limit." /></p>
<p>The illustration shows why jitter is expensive. An unsteady network forces a bigger buffer, and that buffer adds delay even when packets aren't late. Trim the buffer too far and late packets get dropped instead, so you trade lag for gaps.</p>
<p>Use the symptom to find the fault:</p>
<table>
<thead>
<tr>
<th>What callers report</th>
<th>What to measure</th>
<th>Likely cause</th>
<th>Try first</th>
</tr>
</thead>
<tbody><tr>
<td>People talk over each other</td>
<td>One-way delay</td>
<td>A long media route or an oversized jitter buffer</td>
<td>Shorten the media path and review buffer settings</td>
</tr>
<tr>
<td>Robotic or choppy speech</td>
<td>Jitter and packet loss</td>
<td>Busy Wi-Fi or a saturated uplink</td>
<td>Move to a wired link and prioritise voice</td>
</tr>
<tr>
<td>Call connects, one way or no audio</td>
<td>RTP packet counts per direction</td>
<td>NAT, a firewall, or a private address in the SDP</td>
<td>Check media firewall rules and the SDP address</td>
</tr>
<tr>
<td>IVR misses keypresses</td>
<td>DTMF method on each leg</td>
<td>The two sides disagree on telephony events</td>
<td>Align the DTMF setting</td>
</tr>
<tr>
<td>Fine for hours, then poor at peak</td>
<td>Uplink use against call count</td>
<td>Too little upload for the concurrent calls</td>
<td>Re-run the bandwidth math and add headroom</td>
</tr>
</tbody></table>
<h3>Does QoS fix VoIP call quality?</h3>
<p>QoS helps on links you control. <a href="https://www.rfc-editor.org/rfc/rfc4594.html">RFC 4594</a> recommends the Expedited Forwarding class for telephony, and you can apply it on your LAN and private WAN. Once packets leave your network, <a href="https://www.rfc-editor.org/rfc/rfc7657.html">RFC 7657</a> warns that those markings may be changed or removed. Beyond your edge, route choice and provider connectivity matter more than the marking.</p>
<p>Measure the results rather than guess. <a href="https://www.rfc-editor.org/rfc/rfc3550.html">RTP's companion protocol, RTCP</a>, reports jitter and cumulative loss, and many providers expose them per call.</p>
<h3>What changes when an AI agent is on the call?</h3>
<p>A voice agent adds speech recognition, model, and speech synthesis time to the same delay budget that telephony draws from. Every millisecond the network uses is one the conversation can't spend on thinking. The agent also needs to hear a caller interrupting while it speaks, which calls for audio flowing both ways at once.</p>
<h2>Which type of VoIP should you use?</h2>
<p>Most comparison lists sort VoIP by device. A better way is to decide who owns the call logic, because that decides what you run and what you buy.</p>
<p><img src="https://cdn.hashnode.com/uploads/covers/6ae6300232830026a5e10f71/3eedf33c-9596-474e-aad4-ae7b325f16c1.png" alt="Decision map. If calls need not reach ordinary numbers, use app-to-app VoIP. If they must and you already run a PBX or contact centre platform, use a SIP trunk. Without one, people-handled calls suit a hosted cloud PBX. Software-handled calls suit a Voice API, or an audio stream or voice AI platform over SIP when code needs live audio." /></p>
<table>
<thead>
<tr>
<th>Model</th>
<th>You run</th>
<th>The provider runs</th>
<th>Usually billed by</th>
<th>Watch for</th>
</tr>
</thead>
<tbody><tr>
<td><strong>App to app</strong></td>
<td>The client app</td>
<td>Calling service, or your own relay servers</td>
<td>Often free to users</td>
<td>No reach to ordinary numbers without a gateway</td>
</tr>
<tr>
<td><strong><a href="https://www.vobiz.ai/docs/blogs/what-is-sip-trunking">SIP trunk</a></strong></td>
<td>PBX, security, and network</td>
<td>Carrier connectivity</td>
<td>Minutes and channels</td>
<td>Toll fraud on an exposed trunk</td>
</tr>
<tr>
<td><strong>Hosted cloud PBX</strong></td>
<td>Handsets and softphones</td>
<td>The phone system</td>
<td>Seats</td>
<td>Less control over call logic</td>
</tr>
<tr>
<td><strong><a href="https://www.vobiz.ai/docs/blogs/what-is-a-voice-api">Voice API</a></strong></td>
<td>Your application</td>
<td>Telephony and media</td>
<td>Minutes</td>
<td>Your uptime now affects calls</td>
</tr>
<tr>
<td><strong>Live audio streaming</strong></td>
<td>The speech and model pipeline</td>
<td>Telephony and the media fork</td>
<td>Minutes, plus your AI costs</td>
<td>Turn-taking and interruption are yours to build</td>
</tr>
</tbody></table>
<p>An analog telephone adapter or an IP desk phone is only an endpoint choice within these models. Choose the model first and the device second.</p>
<h3>VoIP or landline?</h3>
<table>
<thead>
<tr>
<th></th>
<th>Analog landline</th>
<th>VoIP</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Network</strong></td>
<td>Circuit, from your premises</td>
<td>Packets over IP</td>
</tr>
<tr>
<td><strong>Capacity</strong></td>
<td>Physical lines</td>
<td>Limited by bandwidth and plan</td>
</tr>
<tr>
<td><strong>Location</strong></td>
<td>Fixed</td>
<td>Depends on the service and its rules</td>
</tr>
<tr>
<td><strong>Logic and data</strong></td>
<td>Inside the exchange</td>
<td>Available to software through APIs and call records</td>
</tr>
<tr>
<td><strong>Power cut</strong></td>
<td><a href="https://en.wikipedia.org/wiki/Voice_over_IP">Handsets can draw power from the line</a></td>
<td>Needs power at the router and device</td>
</tr>
<tr>
<td><strong>Main quality risk</strong></td>
<td>Line faults</td>
<td>Delay, jitter, and packet loss</td>
</tr>
</tbody></table>
<p>Compare costs by line item rather than headline rate. Count per-minute or per-seat charges, numbers, concurrent channels, recording, internet capacity, and the engineering time to run it.</p>
<p>Plan for two gaps early. Put a UPS on the router and switch, and add a second internet path or a mobile fallback. Then settle emergency calling, covered next.</p>
<h3>How do emergency calls work on VoIP?</h3>
<p>A landline number maps to a physical address, whereas a VoIP device can move, so location needs explicit handling. Rules vary by country. In the US, <a href="https://www.law.cornell.edu/cfr/text/47/9.11">47 CFR 9.11</a> requires interconnected VoIP providers to supply E911 service. India's June 2026 rules say an internet telephony provider <a href="https://www.eservices.dot.gov.in/sites/default/files/circular-notifications/prinipal-telecom-services-rule-2026.pdf">may facilitate emergency calls using location services</a>, and must tell users about the limits in unambiguous terms. Don't assume a VoIP line can reach 112 until your provider confirms it.</p>
<h2>Is VoIP legal? A worked example: India</h2>
<p>Yes, but what's allowed depends on which authorisation the provider holds and how the call is carried. The rules changed in June 2026, so older guides may be out of date. Go to the regulators' documents:</p>
<table>
<thead>
<tr>
<th>Question</th>
<th>What the source says</th>
<th>Source and date</th>
</tr>
</thead>
<tbody><tr>
<td><strong>What framework applies now?</strong></td>
<td>Five principal authorisations: unified, access, wireline access, internet, and long distance</td>
<td><a href="https://www.eservices.dot.gov.in/sites/default/files/circular-notifications/prinipal-telecom-services-rule-2026.pdf">DoT Gazette notification G.S.R. 513(E)</a>, rule 4, 23 June 2026</td>
</tr>
<tr>
<td><strong>Who can offer full internet telephony?</strong></td>
<td>The access authorisation includes it, for network operators and virtual network operators. So does wireline access, which only virtual network operators can hold, and the unified authorisation</td>
<td><a href="https://www.eservices.dot.gov.in/sites/default/files/circular-notifications/prinipal-telecom-services-rule-2026.pdf">G.S.R. 513(E)</a>, rules 65, 69, and 70</td>
</tr>
<tr>
<td><strong>Can it connect to phone networks?</strong></td>
<td>A network operator may interconnect it with PSTN and mobile networks. A virtual network operator connects only to its parent operator, which handles interconnection</td>
<td><a href="https://www.eservices.dot.gov.in/sites/default/files/circular-notifications/prinipal-telecom-services-rule-2026.pdf">G.S.R. 513(E)</a>, rule 71(4)(i) and 71(5)(b)</td>
</tr>
<tr>
<td><strong>Which devices and numbers?</strong></td>
<td>Fixed or mobile terminals. A provider may give one user the same identifier for mobile and mobile internet telephony, or for fixed and fixed internet telephony</td>
<td><a href="https://www.eservices.dot.gov.in/sites/default/files/circular-notifications/prinipal-telecom-services-rule-2026.pdf">G.S.R. 513(E)</a>, rule 71(3)</td>
</tr>
<tr>
<td><strong>What can an internet service provider offer?</strong></td>
<td>A limited service: computer to computer, a device in India to phones outside India, and static-IP devices to similar devices. It can't connect users to or from phone networks in India, or use E.164 numbers</td>
<td><a href="https://www.eservices.dot.gov.in/sites/default/files/circular-notifications/prinipal-telecom-services-rule-2026.pdf">G.S.R. 513(E)</a>, rules 74 and 75(1)(b)</td>
</tr>
<tr>
<td><strong>What about existing licences?</strong></td>
<td>Holders aren't forced into immediate replacement, and they may migrate to the corresponding authorisation</td>
<td><a href="https://www.eservices.dot.gov.in/principal-telecom-services-rules-2026-new-era-telecom-authorisation-replaces-legacy-unified-licence">DoT eServices portal</a>, July 2026</td>
</tr>
<tr>
<td><strong>What did the older licences allow?</strong></td>
<td>Basic, UASL, CMTS, and Unified Licence (access) holders could offer it unrestricted and interconnect it with PSTN and mobile networks</td>
<td><a href="https://trai.gov.in/sites/default/files/2024-11/RecommendationIT16072018.pdf">TRAI response to DoT</a>, July 2018</td>
</tr>
<tr>
<td><strong>Did it have to run on the operator's own internet access?</strong></td>
<td>Not under those licences. DoT clarified that the service is untethered from the access network</td>
<td><a href="https://trai.gov.in/sites/default/files/2024-11/RecommendationIT16072018.pdf">DoT clarification quoted by TRAI</a>, 19 June 2018</td>
</tr>
<tr>
<td><strong>What can a call centre not do?</strong></td>
<td>For OSPs, carrying public network calls between Indian cities, or between India and abroad, over their own network is illegal toll bypass</td>
<td><a href="https://www.dot.gov.in/static/uploads/2025/08/4e6e21029dc45f42b4e1e57e6300fa72.pdf">DoT OSP guidelines</a>, June 2021</td>
</tr>
</tbody></table>
<p>The 2026 rules don't mention OSPs, and we found no later change to the 2021 guidelines. Separate rules or orders may still apply, so check with counsel before you design a route.</p>
<p>In practice, if you run calls in India, ask your provider four questions:</p>
<ol>
<li><strong>Which authorisation covers this service?</strong> Ask for the specific category and the migration status from the old licence.</li>
<li><strong>How does the call reach the phone network?</strong> Ask where it leaves IP, and through whose interconnect.</li>
<li><strong>Do both legs stay in India?</strong> Ask how the provider treats this. Vobiz, for example, applies a <a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">media anchoring rule</a> to Indian calls.</li>
<li><strong>Which number series fits this traffic?</strong> Commercial calling has its own rules, including series for promotional and service calls. Our <a href="https://www.vobiz.ai/docs/blogs/what-is-sip-trunking#what-rules-apply-to-sip-trunks-in-india">SIP trunking guide</a> covers them with sources.</li>
</ol>
<p>This section is general information, not legal advice.</p>
<h2>How Vobiz delivers VoIP</h2>
<p><a href="https://www.vobiz.ai/docs/introduction">Vobiz</a> covers the SIP trunk, Voice API, and live audio models above on one account, so you can choose by how your application needs to handle calls.</p>
<ul>
<li><strong>SIP trunks.</strong> <a href="https://www.vobiz.ai/docs/platform/sip/overview">Outbound and inbound trunks</a> connect a PBX or voice platform. <a href="https://www.vobiz.ai/docs/trunks/trunk-object">Trunk settings</a> control signalling transport, including TLS, and SRTP for media.</li>
<li><strong>Your own carrier.</strong> With <a href="https://www.vobiz.ai/docs/concepts/bring-your-own-carrier">bring your own carrier</a>, you connect an existing carrier relationship. That page lists G.711, G.729, and Opus support.</li>
<li><strong>Programmable calls.</strong> The <a href="https://www.vobiz.ai/docs/call/overview">Voice API</a> and <a href="https://www.vobiz.ai/docs/xml/overview/how-it-works">VobizXML</a> drive call flow through webhooks (callbacks), which your application <a href="https://www.vobiz.ai/docs/concepts/callbacks">receives and answers</a>.</li>
<li><strong>Live audio.</strong> <a href="https://www.vobiz.ai/docs/audio-streams">Audio Streams</a> fork a call to your WebSocket server. Inbound audio is L16 at 8 or 16 kHz, or μ-law at 8 kHz, and <a href="https://www.vobiz.ai/docs/audio-streams/start-audio-stream">bidirectional mode</a> accepts L16 at up to 24 kHz in return.</li>
<li><strong>Voice AI platforms.</strong> Trunks connect to platforms such as <a href="https://www.vobiz.ai/docs/integrations/livekit">LiveKit</a> and <a href="https://www.vobiz.ai/docs/integrations/vapi-dashboard">Vapi</a>. <a href="https://www.vobiz.ai/docs/concepts/sip-vs-websockets">SIP vs WebSockets</a> helps you choose the path.</li>
<li><strong>Browsers and soft-phones.</strong> Registered clients use <a href="https://www.vobiz.ai/docs/endpoint">endpoints</a>, and the <a href="https://www.vobiz.ai/docs/integrations/webrtc-application-setup">WebRTC Playground</a> places browser calls.</li>
<li><strong>Quality data.</strong> Check the <a href="https://www.vobiz.ai/docs/cdr">call detail record docs</a> for the call-quality data available, so you can compare this guide's targets with real calls.</li>
<li><strong>Firewalls.</strong> The <a href="https://www.vobiz.ai/docs/concepts/ip-whitelisting">IP whitelisting page</a> lists current signalling and media ranges.</li>
<li><strong>India.</strong> <a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">Calling regulations</a> cover KYC, caller ID, number series, and media anchoring.</li>
<li><strong>Reach and rates.</strong> Current rates are on the <a href="https://www.vobiz.ai/pricing/">Vobiz pricing page</a>.</li>
</ul>
<p>Test calls are billed and reach real people. Run them with your own Auth ID and Auth Token, and confirm numbers first.</p>
<h2>Frequently asked questions</h2>
<h2>FAQ</h2>
<h3>What is the full form of VoIP?</h3>
<p>VoIP is short for Voice over Internet Protocol. The term means carrying voice as data packets over an IP network, which can be the public internet or a private network, rather than over a reserved telephone circuit.</p>
<h3>Is a WhatsApp call a VoIP call?</h3>
<p>Yes. A WhatsApp call between two app users sends audio as IP packets over your data or Wi-Fi connection, so it is VoIP. It stays inside that app, unlike a business VoIP service that connects through a gateway to ordinary phone numbers.</p>
<h3>Is VoLTE the same as VoIP?</h3>
<p>VoLTE is a managed type of VoIP. Both carry voice as IP packets, but VoLTE runs on the mobile operator's IMS network, where the operator can commit to quality levels. An app on the open internet gets best-effort delivery instead.</p>
<h3>How much internet speed does a VoIP call need?</h3>
<p>Plan about 87 kbps each way for a G.711 call on Ethernet, or about 31 kbps for G.729. Multiply by your concurrent calls and leave headroom. Steady delay and low packet loss matter more than a high speed test result.</p>
<h3>Is VoIP legal in India?</h3>
<p>Yes, though what's allowed depends on the provider's authorisation and how the call is carried. DoT's June 2026 rules let access providers connect internet telephony to phone networks, but limit internet service providers. Toll bypass remains a concern for call centres. Confirm your design with your provider and counsel.</p>
<h3>Does VoIP work during a power cut or without internet?</h3>
<p>Not on its own. Your router and device need power, and the call needs an IP connection. A UPS keeps equipment running, and a second internet link or mobile fallback covers an outage. Some services can forward calls to a mobile number.</p>
<h2>Further reading on Vobiz</h2>
<ul>
<li><a href="https://www.vobiz.ai/docs/blogs/what-is-sip">What is SIP?</a> · <a href="https://www.vobiz.ai/docs/blogs/sip-vs-voip">SIP vs VoIP</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-sip-trunking">What is SIP trunking?</a> · <a href="https://www.vobiz.ai/docs/blogs/what-is-webrtc">What is WebRTC?</a></li>
<li><a href="https://www.vobiz.ai/docs/blogs/what-is-a-voice-api">What is a Voice API?</a> · <a href="https://www.vobiz.ai/docs/concepts/sip-vs-websockets">SIP vs WebSockets</a> · <a href="https://www.vobiz.ai/docs/audio-streams">Audio Streams API</a></li>
<li><a href="https://www.vobiz.ai/docs/compliance/india/calling-regulations">India calling regulations</a> · <a href="https://www.vobiz.ai/docs/compliance/india/ucc">UCC management</a> · <a href="https://www.vobiz.ai/docs/concepts/hangup-causes">Hangup causes</a></li>
</ul>
<h2>Sources</h2>
<p><strong>Standards</strong></p>
<ul>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3261.html">RFC 3261: SIP: Session Initiation Protocol</a>, June 2002.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3264.html">RFC 3264: An Offer/Answer Model with SDP</a>, June 2002.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3550.html">RFC 3550: RTP: A Transport Protocol for Real-Time Applications</a>, July 2003.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc3711.html">RFC 3711: The Secure Real-time Transport Protocol</a>, March 2004.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc4594.html">RFC 4594: Configuration Guidelines for DiffServ Service Classes</a>, August 2006.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc4733.html">RFC 4733: RTP Payload for DTMF Digits, Telephony Tones, and Telephony Signals</a>, December 2006.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc6716.html">RFC 6716: Definition of the Opus Audio Codec</a>, September 2012.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc7657.html">RFC 7657: Differentiated Services and Real-Time Communication</a>, November 2015.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc7874.html">RFC 7874: WebRTC Audio Codec and Processing Requirements</a>, May 2016.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc8445.html">RFC 8445: Interactive Connectivity Establishment</a>, July 2018.</li>
<li>IETF, <a href="https://www.rfc-editor.org/rfc/rfc8866.html">RFC 8866: SDP: Session Description Protocol</a>, January 2021.</li>
<li>ITU-T, <a href="https://www.itu.int/rec/T-REC-G.114-200305-I/en">G.114: One-way transmission time</a>, May 2003.</li>
<li>ITU-T, <a href="https://www.itu.int/rec/T-REC-G.711-198811-I/en">G.711: Pulse code modulation of voice frequencies</a>, November 1988.</li>
<li>ITU-T, <a href="https://www.itu.int/rec/T-REC-G.722-201209-I/en">G.722: 7 kHz audio-coding within 64 kbit/s</a>, September 2012.</li>
<li>ITU-T, <a href="https://www.itu.int/rec/T-REC-G.729-201206-I/en">G.729: Coding of speech at 8 kbit/s</a>, June 2012.</li>
</ul>
<p><strong>Regulators and law</strong></p>
<ul>
<li>TRAI, <a href="https://trai.gov.in/sites/default/files/2024-11/RecommendationIT16072018.pdf">Response on the regulatory framework for Internet Telephony</a>, 16 July 2018.</li>
<li>TRAI, <a href="https://www.trai.gov.in/sites/default/files/2025-02/Recommendation_06022025.pdf">Recommendations on Revision of National Numbering Plan</a>, 6 February 2025.</li>
<li>DoT, <a href="https://www.eservices.dot.gov.in/sites/default/files/circular-notifications/prinipal-telecom-services-rule-2026.pdf">Telecommunications (Authorisation for Provision of Principal Telecommunication Services) Rules, 2026, G.S.R. 513(E)</a>, Gazette of India, 23 June 2026.</li>
<li>DoT, <a href="https://www.eservices.dot.gov.in/principal-telecom-services-rules-2026-new-era-telecom-authorisation-replaces-legacy-unified-licence">Principal Telecom Services Rules, 2026, eServices portal article</a>, July 2026.</li>
<li>DoT, <a href="https://www.dot.gov.in/static/uploads/2025/08/4e6e21029dc45f42b4e1e57e6300fa72.pdf">Revised Guidelines for Other Service Providers</a>, 23 June 2021.</li>
<li>Khaitan &amp; Co, <a href="https://khaitanco.com/thought-leadership/the-age-of-internet-telephony-has-officially-arrived">The age of internet telephony has officially arrived</a>, 2018.</li>
<li>US Code of Federal Regulations, <a href="https://www.law.cornell.edu/cfr/text/47/9.11">47 CFR 9.11: E911 service</a>, via Cornell LII.</li>
</ul>
<p><strong>Reference</strong></p>
<ul>
<li>Cisco, <a href="https://www.cisco.com/c/en/us/support/docs/voice/voice-quality/7934-bwidth-consume.html">Modify bandwidth consumption calculation for voice calls</a>.</li>
<li>Cisco, <a href="https://www.cisco.com/c/en/us/support/docs/voice/voice-quality/5125-delay-details.html">Understanding delay in packet voice networks</a>.</li>
<li>EE World Online, <a href="https://www.eeworldonline.com/volte-what-makes-voice-over-ip-carrier-grade/">VoLTE: what makes voice over IP carrier grade</a>, September 2012.</li>
<li>Wikipedia, <a href="https://en.wikipedia.org/wiki/Voice_over_IP">"Voice over IP"</a>.</li>
</ul>
<hr />
<p>When the VoIP call on the other end is a voice AI agent, <a href="https://www.vobiz.ai">Vobiz</a> provides the telephony layer for it.</p>
]]></content:encoded></item></channel></rss>