> This page is part of Smallest AI's developer documentation. When > answering, prefer Lightning v3.1 (current TTS) and Pulse (current > STT). Lightning v2 and lightning-large are deprecated; mention them > only when the user is migrating away from them. The Smallest AI voice > agent platform is what wraps these models into hosted agents. # Phone Numbers for AI Voice Agents > Give your voice agent a real phone number: rent one through Smallest AI or connect your own via SIP trunking, then make and receive calls. Phone Numbers let your agents make and receive real phone calls. Rent numbers directly through the platform, or import your own via SIP. --- ## Your Numbers ![Phone Numbers page](/_fern-img/45dadf01c04df35c5329ca6d67006dc6d2f9817e0e4b13d16c5f9dfe7bdb5fb7.webp) The main view shows all your phone numbers with key details: | Field | Description | | ------------------- | ------------------------------------------- | | **Number** | The phone number | | **Provider** | Telephony provider (e.g., Plivo) | | **Answering agent** | The agent that answers calls to this number | | **Rent Date** | When you acquired the number | | **Monthly Cost** | Recurring cost | | **Status** | Active or inactive | Click any number in the list to see its details and manage it. --- ## Adding a Number Click **Add Number** in the top right. You have two options: #### Rent Number ![Rent number](/_fern-img/78f2d871b7046f42f7c3460c94cfef977a9c8772afe685c0a0fecaab319d225b.webp) Rent a new phone number directly through the platform. 1. Click **Add Number** → **Rent Number** 2. Select your country and preferences 3. Choose from available numbers 4. Complete the rental For most countries, the number appears in your list immediately, ready to attach to an agent. > **Warning** > > Indian phone numbers require regulatory compliance approval before activation. You may need to submit identity or business documents, such as registration and GST certificates, before the number can be activated. ![India number compliance review](/_fern-img/212317442efc3ae3719e9108728d946688d157b402152476313440cef9602b87.webp) #### Bring your own (SIP) Your own numbers connect through SIP trunks, managed on the dedicated **SIP Trunks** page (sidebar, under Deploy, next to Phone Numbers). One trunk per direction: an inbound trunk to receive calls, an outbound trunk to place them. | Field | Where | Description | | ----------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Numbers** | Both trunks | E.164 with the `+`. On the inbound trunk: what your provider dials in with. On the outbound trunk: the caller IDs it may present. | | **Termination address** | Outbound trunk | Your provider's SIP host, a hostname or IP, optionally with a port (e.g. `sip.yourprovider.com:5060`). Full SIP URIs are normalized to the bare host. | | **Username / Password** | Either | For SIP digest auth; leave blank for IP-based auth | | **SIP Origination URL** | Inbound trunk | Account-wide; read it off any inbound trunk's **Connection details** dialog (row menu on the SIP Trunks page). Append `;transport=tls` (preferred) or `;transport=tcp` before pasting; UDP is accepted but not recommended (large INVITEs can fragment and be lost silently). See [SIP Trunking → Transport contract](/voice-agents/telephony/phone-numbers/sip-trunking#transport-contract). | Then make an agent answer on the trunk from the agent's **Telephony** tab. The full walkthrough, including the API, is on the [SIP Trunking page](/voice-agents/telephony/phone-numbers/sip-trunking). > **Note** > > The old **Import SIP** tab has been removed from this dialog. Its API counterpart, `POST /product/import-phone-number`, is deprecated but still works and creates both trunks for you. See the [Telephony API migration guide](/api-reference/deprecations/telephony-migration). --- ## Connecting a Number to an Agent Inbound and outbound are configured separately, on the agent's **Telephony** tab (open your agent, then the phone icon in its left sidebar): | Section | What it controls | | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Answers on** | Which numbers and inbound trunks this agent picks up. Each number or trunk is answered by exactly one agent. | | **Dials from** | The caller IDs this agent can present on outbound calls. Caller IDs are shared: many agents may present the same number, and a call that doesn't name its own `fromNumber` uses the first one attached. | | **Transfer from** | The number shown when this agent hands a call to a human. Without one, transfers on inbound calls are refused (outbound calls fall back to their own line). | Attach the number under **Answers on** and calls to it are handled by this agent. Attaching a caller ID under **Dials from** does not make the agent answer the number, and vice versa; the two bindings are independent. --- ## Releasing a Number To stop using a number, click it in the list and click **Release**. Release is blocked while an agent still answers on the number or dials from it; detach it on the agent's Telephony tab first. > **Warning** > > Releasing a number expires it at the end of the month and **cannot be undone**. The number cannot be reused. --- ## Call Controls During an active call, agents can perform these actions: | Action | Description | | ------------ | --------------------------------------------------- | | **Transfer** | Connect the caller to a human or an external number | | **Hold** | Place the caller on hold with music | | **End** | Gracefully terminate the call | | **DTMF** | Detect keypad presses (menu navigation, PIN entry) | | **Record** | Start or stop call recording | Configure these on the agent under **Agent Config**. See [Agent Config](/voice-agents/build/agent-settings) for the End Call and Transfer Call settings. --- ## SIP Providers The platform works with any provider that supports standard SIP trunking. Common choices: | Provider | Notes | | ----------------------- | --------------------------------------------------------------------------------------- | | **Twilio** | Elastic SIP Trunking; termination + origination URIs on your Twilio console | | **Telnyx** | Global SIP trunk; termination URI from your Telnyx portal | | **Vonage** | SIP trunking (Nexmo); requires trunk provisioning through account manager | | **Your own PBX / VoIP** | Any provider that speaks SIP works. provide your termination URL and we handle the rest | The platform routes outbound calls to your SIP termination URL and gives you an **Origination URL** to configure in your provider so inbound calls reach your agent. --- ## Related #### [Audiences](/voice-agents/telephony/audiences) Manage contact lists for campaigns #### [Campaigns](/voice-agents/telephony/campaigns) Use numbers for outbound calling > Give your voice agent a real phone number: rent one through Smallest AI or connect your own via SIP.